Browse Source

根据角色筛选v1

qin_26
liwenxuan 2 months ago
parent
commit
c76eabc8a1
  1. 1
      src/components/DesignForm/assembly/index.ts
  2. 183
      src/components/DesignForm/formControlPropertiNew.vue

1
src/components/DesignForm/assembly/index.ts

@ -1046,6 +1046,7 @@ export default [
modelValue: '', modelValue: '',
orgRange:[], orgRange:[],
roleRange:[], roleRange:[],
roleCheckDataList:[],
queryBy:'org', queryBy:'org',
}, },
config: {}, // 其他配置信息 config: {}, // 其他配置信息

183
src/components/DesignForm/formControlPropertiNew.vue

@ -4060,7 +4060,7 @@ watch(
} }
); );
// // start
const tabsRef = ref(null); const tabsRef = ref(null);
const userRangeDialogFlag = ref(false) const userRangeDialogFlag = ref(false)
function handleUserRangeDialogFlag(){ function handleUserRangeDialogFlag(){
@ -4082,7 +4082,6 @@ function reRenderComponent() {
} }
function handleExpandTabChange(){ function handleExpandTabChange(){
console.log("切换页签")
if(controlData.value.control.queryBy=='role'){ if(controlData.value.control.queryBy=='role'){
queryAllRole() queryAllRole()
} }
@ -4114,24 +4113,30 @@ function queryAllRole(){
}) })
} }
const expandPageNum = ref(1)
function getPersonByRoleId(id:string){ function getPersonByRoleId(id:string){
return request({ return request({
url: "/javasys/lowCode/manCont/getPersonByRoleId", url: "/javasys/lowCode/manCont/getPersonByRoleId",
method: "post", method: "post",
data: { data: {
id: id, id: id,
pageNum: expandPageNum.value,
pageSize: '10',
number:expandQueryParamNumber.value,
name:expandQueryParamName.value
}, },
}); });
} }
//const activeName = ref('1') //const activeName = ref('1')
const total = ref(10)
const activeTab = ref('') const activeTab = ref('')
const expandTableData = ref() const expandTableData = ref()
function handleLeftTabChange(tab: any){ function handleLeftTabChange(tab: any){
getPersonByRoleId(tab).then(({ data }) => { getPersonByRoleId(tab).then(({ data }) => {
//console.log(data) //console.log(data)
expandTableData.value = data expandTableData.value = data.list
total.value = data.total
//activeName.value = tab //activeName.value = tab
}); });
@ -4144,14 +4149,113 @@ const multipleSelection = ref<User[]>([])
interface User { interface User {
id: number id: number
name: string name: string
number: string
key: string
} }
const handleSelectionChange = (val: User[]) => { const handleSelectionChange = (val: User[]) => {
console.log(1111)
multipleSelection.value = val multipleSelection.value = val
}
/* controlData.value.control.roleRange = computed(()=>{
let arr: any[] = []
checkDataList.value.forEach(element => {
let str = element.key+""
arr.push(str)
});
return arr
}) */
function gotoRight(){
// multipleSelection
multipleSelection.value.forEach(user => {
// checkDataListkey
const exists = controlData.value.control.roleCheckDataList.some((item: { key: string; }) => item.key === user.key);
// checkDataList
if (!exists) {
controlData.value.control.roleCheckDataList.push(user);
}
});
let arr: any[] = []
controlData.value.control.roleCheckDataList.forEach((element: { key: string; }) => {
let str = element.key+""
arr.push(str)
});
console.log(arr)
controlData.value.control.roleRange = arr
}
function handleCurrentChange(){
//alert(expandPageNum.value)
handleLeftTabChange(activeTab.value)
}
const expandQueryParam = ref('')
function isAllDigits(str:any) {
//
if (typeof str !== 'string') {
return false;
}
//
if (str.length === 0) {
return false;
}
// 使
// ^ $
// \d+
const regex = /^\d+$/;
return regex.test(str);
}
const expandQueryParamNumber = ref('')
const expandQueryParamName = ref('')
function searchClick(){
expandQueryParamNumber.value = ''
expandQueryParamName.value = ''
if(isAllDigits(expandQueryParam.value)){
expandQueryParamNumber.value = expandQueryParam.value
}else{
expandQueryParamName.value = expandQueryParam.value
}
handleLeftTabChange(activeTab.value)
}
function resetClick(){
expandQueryParamNumber.value = ''
expandQueryParamName.value = ''
handleLeftTabChange(activeTab.value)
} }
function delRowClick(param: any){
let key = param.key
console.log(key)
controlData.value.control.roleCheckDataList = controlData.value.control.roleCheckDataList.filter((item: { key: any; }) => item.key !== key);
let arr: any[] = []
controlData.value.control.roleCheckDataList.forEach((element: { key: string; }) => {
let str = element.key+""
arr.push(str)
});
console.log(arr)
controlData.value.control.roleRange = arr
}
function delAllClick(){
controlData.value.control.roleCheckDataList = []
controlData.value.control.roleRange = []
}
// end
/** /**
@ 作者: 秦东 @ 作者: 秦东
@ 时间: 2024-12-23 10:39:48 @ 时间: 2024-12-23 10:39:48
@ -4588,11 +4692,7 @@ const aiAgentList = ref([
</el-row> </el-row>
<el-row v-else-if="item.type === 'expand-user'"> <el-row v-else-if="item.type === 'expand-user'">
{{controlData.control.orgRange}}
{{controlData.control.roleRange}}
<el-button @click="handleUserRangeDialogFlag">可选用户设置</el-button> <el-button @click="handleUserRangeDialogFlag">可选用户设置</el-button>
</el-row> </el-row>
@ -5756,15 +5856,15 @@ const aiAgentList = ref([
> >
<el-tabs v-model="controlData.control.queryBy" style="width:100%;" @tab-change="handleExpandTabChange" > <el-tabs v-model="controlData.control.queryBy" style="width:100%;" @tab-change="handleExpandTabChange" >
<el-tab-pane label="根据角色筛选" name="role"> <el-tab-pane label="根据角色筛选" name="role">
<div > <div >
<el-row> <el-row>
<el-col :span="17" style="padding: 0;border-right: 0px solid black;"> <el-col :span="16" style="padding: 0;border-right: 0px solid black;">
<el-tabs ref="tabsRef" v-model="activeTab" tab-position="left" @tab-change="handleLeftTabChange" > <el-tabs ref="tabsRef" v-model="activeTab" style="height:483px;" tab-position="left" @tab-change="handleLeftTabChange" >
<el-tab-pane <el-tab-pane
v-for="tab in tabsData" v-for="tab in tabsData"
:key="tab.id" :key="tab.id"
@ -5772,12 +5872,12 @@ const aiAgentList = ref([
:name="tab.id" :name="tab.id"
> >
<div> <div>
<el-input placeholder="请输入用户名" v-model="userName" clearable style="width: 50%; margin-bottom: 10px;margin-left: 3px;"/> <el-input placeholder="请输入用户名" v-model="expandQueryParam" clearable style="width: 50%; margin-bottom: 10px;margin-left: 3px;"/>
<el-button type="primary" @click="searchClick" style="margin-left: 10px; margin-bottom: 10px;">查询</el-button> <el-button type="primary" @click="searchClick" style="margin-left: 10px; margin-bottom: 10px;">查询</el-button>
<el-button @click="resetClick" style="margin-bottom: 10px;">重置</el-button> <el-button @click="resetClick" style="margin-bottom: 10px;">重置</el-button>
</div> </div>
<div class="expandTable"> <div class="expandTable">
<el-table ref="multipleTableRef" :data="expandTableData" style="width: 100%; height: 440px" :row-style="{ height: '35px' }" :cell-style="{ padding: '1.5px 0' }" @selection-change="handleSelectionChange"> <el-table ref="multipleTableRef" :data="expandTableData" style="width: 100%; height: 440px" :row-style="{ height: '39.8px' }" :cell-style="{ padding: '1.5px 0' }" @selection-change="handleSelectionChange">
<!-- <el-table-column prop="userName" label="照片" width="70px" align="center"> <!-- <el-table-column prop="userName" label="照片" width="70px" align="center">
<template #default="scope"> <template #default="scope">
<el-avatar <el-avatar
@ -5795,14 +5895,16 @@ const aiAgentList = ref([
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column prop="tel" label="联系方式" width="120px" align="left" /> --> <!-- <el-table-column prop="tel" label="联系方式" width="120px" align="left" /> -->
<el-table-column prop="nickName" label="部门" width="160px" align="left"> <el-table-column prop="nickName" label="部门" width="140px" align="left">
<template #default="{ row }"> <template #default="{ row }">
{{row.deparment}} {{row.deparment}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column type="selection" width="55" /> <el-table-column type="selection" width="45" />
</el-table> </el-table>
</div> </div>
<div class="expandPage"> <div class="expandPage">
@ -5813,12 +5915,50 @@ const aiAgentList = ref([
</el-tabs> </el-tabs>
</el-col> </el-col>
<el-col :span="1" style="display: flex; align-items: center;" > <el-col :span="1" style="display: flex; align-items: center;justify-content: center;" >
<el-icon style="font-size: large;cursor: pointer;" @click="gotoRight"><ArrowRightBold /></el-icon> <el-icon style="font-size: large;cursor: pointer;" @click="gotoRight"><ArrowRightBold /></el-icon>
</el-col> </el-col>
<el-col :span="6" style="padding: 0"> <el-col :span="6" style="padding: 0">
{{multipleSelection}} <div >
<div style="display: flex; align-items: center; padding-bottom: 18px;">
<div>已选择{{ controlData.control.roleCheckDataList.length }}</div>
<el-button type="danger" @click="delAllClick" size="small" style="margin-left: auto"
>全部移除</el-button
>
</div>
<el-table :data="controlData.control.roleCheckDataList" style="height: 440px">
<!-- <el-table-column prop="userName" label="照片" width="60px" align="center">
<template #default="scope">
<el-avatar
v-if="scope.row.icon != ''"
shape="square"
:size="30"
:src="scope.row.icon"
/>
<el-avatar v-else shape="square" :size="30" :src="UserRole" />
</template>
</el-table-column> -->
<el-table-column prop="name" label="姓名" align="left">
<template #default="scope">
{{ scope.row.name }}({{ scope.row.number }})
</template>
</el-table-column>
<el-table-column label="操作" width="60px">
<template #default="{ row }">
<el-button size="small" type="danger" @click="delRowClick(row)"
>移除</el-button
>
</template>
</el-table-column>
</el-table>
</div>
</el-col> </el-col>
<div style="width:100%;display: flex;margin-top: 18px;justify-content: center;">
<el-pagination v-model:current-page="expandPageNum" background layout="prev, pager, next, jumper" :pager-count="3" :page-size="10" :total = "total" @current-change="handleCurrentChange"/>
</div>
</el-row> </el-row>
@ -5826,7 +5966,10 @@ const aiAgentList = ref([
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="根据组织筛选" name="org"> <el-tab-pane label="根据组织筛选" name="org">
<TransferSelectUserRange :key="componentKey" :data="transferSelectUserRangeData" :selected-value="controlData.control.orgRange" @checked-id-list-changed="checkedIdListChangedIndex" @re-render-component="reRenderComponent" /> <div style="width:100%;display: flex;margin-top: 1px;justify-content: center;">
<TransferSelectUserRange :key="componentKey" :data="transferSelectUserRangeData" :selected-value="controlData.control.orgRange" @checked-id-list-changed="checkedIdListChangedIndex" @re-render-component="reRenderComponent" />
</div>
</el-tab-pane> </el-tab-pane>

Loading…
Cancel
Save