Commit 54e4e7d9 authored by 黄奎's avatar 黄奎
parents 41267782 77e3fb8e
...@@ -20,7 +20,6 @@ ...@@ -20,7 +20,6 @@
text-indent: 15px; text-indent: 15px;
border-bottom: 1px dotted #eee; border-bottom: 1px dotted #eee;
} }
</style> </style>
<template> <template>
...@@ -30,31 +29,34 @@ ...@@ -30,31 +29,34 @@
<q-card-section class="row items-center q-pb-none "> <q-card-section class="row items-center q-pb-none ">
<div class="text-h6">选择企业成员</div> <div class="text-h6">选择企业成员</div>
<q-space /> <q-space />
<q-btn icon="close" flat round dense v-close-popup /> <q-btn icon="close" flat round dense v-close-popup @click="closeEditOrder" />
</q-card-section> </q-card-section>
<q-separator /> <q-separator />
<q-card-section class="q-pt-none" style="padding: 20px 0;"> <q-card-section class="q-pt-none" style="padding: 20px 0;">
<div style="display: flex;align-items: flex-start;justify-content: space-between;"> <div style="display: flex;align-items: flex-start;justify-content: space-between;">
<div style="width: 300px; margin: 0 20px;"> <div style="width: 300px; margin: 0 20px;">
<p style="margin: 0 0 10px 0;display: flex;align-items: center;">选择:<el-input style="width: 200px;" <p style="margin: 0 0 10px 0;display: flex;align-items: center;">选择:<el-input
placeholder="输入关键字进行过滤" v-model="filterText"> style="width: 200px;" placeholder="输入关键字进行过滤" v-model="filterText">
</el-input> </el-input>
</p> </p>
<el-tree class='ApprovalProcessBg' :filter-node-method="filterNode" :data="memberList" show-checkbox <el-tree class='ApprovalProcessBg' :filter-node-method="filterNode" :data="memberList"
ref="treeUser" :props="defaultProps" :render-after-expand="false" node-key="DeptId" show-checkbox ref="treeUser" :props="defaultProps" :render-after-expand="false"
@check-change="handleNodeChange" @check='btncheck'> node-key="DeptId" @check-change="handleNodeChange" @check='btncheck'>
</el-tree> </el-tree>
</div> </div>
<div style="width: 300px; margin: 0 20px;"> <div style="width: 300px; margin: 0 20px;">
<p style="margin: 0 0 20px 0;">已选:</p> <p style="margin: 0 0 20px 0;">已选:</p>
<div class="Approval_yxList"> <div class="Approval_yxList">
<li v-for="item in showMember">{{item.DeptName}} <li v-for="item in newList">{{item.DeptName}}
<i @click="mySetCheckedKeys(item.DeptId)" class="el-icon-circle-close showMemberIcon"></i> <i @click="mySetCheckedKeys(item.DeptId)"
class="el-icon-circle-close showMemberIcon"></i>
</li> </li>
</div> </div>
</div> </div>
</div> </div>
</q-card-section> </q-card-section>
<q-separator /> <q-separator />
<q-card-actions align="right" class="bg-white"> <q-card-actions align="right" class="bg-white">
<q-btn class="q-mr-md" label="取消" @click="closeEditOrder" /> <q-btn class="q-mr-md" label="取消" @click="closeEditOrder" />
...@@ -62,6 +64,7 @@ ...@@ -62,6 +64,7 @@
</q-card-actions> </q-card-actions>
</q-card> </q-card>
</q-dialog> </q-dialog>
</div> </div>
</template> </template>
...@@ -71,6 +74,7 @@ ...@@ -71,6 +74,7 @@
} from '../../../../../api/users/user' } from '../../../../../api/users/user'
export default { export default {
props: { props: {
outerindex: { outerindex: {
type: String, type: String,
...@@ -80,11 +84,13 @@ ...@@ -80,11 +84,13 @@
type: Array, type: Array,
default: [], default: [],
}, },
cptype: { //1是列表上使用2 新增使用 cptype: {//1是列表上使用2 新增使用
type: String, type: String,
default: '1', default: '1',
} }
}, },
data() { data() {
return { return {
IsShow: true, IsShow: true,
...@@ -102,16 +108,19 @@ ...@@ -102,16 +108,19 @@
} }
}, },
created() { created() {
this.IsShow = true
if (this.byval.length > 0) { if (this.byval.length > 0) {
this.memberSetCheckedKeys = []; this.memberSetCheckedKeys = [];
this.showMember = JSON.parse(JSON.stringify(this.byval)) this.showMember = JSON.parse(JSON.stringify(this.byval))
this.newList = JSON.parse(JSON.stringify(this.byval))
this.byval.forEach(x => { this.byval.forEach(x => {
this.memberSetCheckedKeys.push(x.DeptId) this.memberSetCheckedKeys.push(x.DeptId)
}) })
} }
this.getMember() //部门下面选择员工 this.getMember()//部门下面选择员工
}, },
mounted() { mounted() {
}, },
watch: { watch: {
filterText(val) { filterText(val) {
...@@ -128,13 +137,17 @@ ...@@ -128,13 +137,17 @@
_this.$refs.treeUser.setCheckedKeys(_arr); _this.$refs.treeUser.setCheckedKeys(_arr);
} }
}).catch(() => { }).catch(() => {
}) })
}, },
filterNode(value, data) { filterNode(value, data) {
if (!value) return true; if (!value) return true;
return data.DeptName.indexOf(value) !== -1; return data.DeptName.indexOf(value) !== -1;
}, },
handleNodeChange(data, checked) { handleNodeChange(data, checked) {
// console.log(data,checked)
data.IsCheck = checked; data.IsCheck = checked;
if (data.DataType == 2 && data.IsCheck) { //是员工且选中 if (data.DataType == 2 && data.IsCheck) { //是员工且选中
let isExsit = false let isExsit = false
...@@ -145,11 +158,7 @@ ...@@ -145,11 +158,7 @@
} }
}) })
if (!isExsit) { if (!isExsit) {
this.showMember.push({ this.showMember.push(data)
DeptName: data.DeptName,
DeptId: data.DeptId,
DataType: data.DataType
})
this.memberSetCheckedKeys.push(data.DeptId) this.memberSetCheckedKeys.push(data.DeptId)
} }
} else if (data.DataType == 2 && !data.IsCheck) { } else if (data.DataType == 2 && !data.IsCheck) {
...@@ -164,6 +173,7 @@ ...@@ -164,6 +173,7 @@
if (data.DataType != 2 && data.IsCheck) { if (data.DataType != 2 && data.IsCheck) {
if (this.memberSetCheckedKeys.findIndex(item => item === data.DeptId) == -1) { if (this.memberSetCheckedKeys.findIndex(item => item === data.DeptId) == -1) {
this.memberSetCheckedKeys.push(data.DeptId) this.memberSetCheckedKeys.push(data.DeptId)
this.showMember.push(data)
} }
} else if (data.DataType == 2 && !data.IsCheck) { } else if (data.DataType == 2 && !data.IsCheck) {
if (this.memberSetCheckedKeys.findIndex(item => item === data.DeptId) != -1) { if (this.memberSetCheckedKeys.findIndex(item => item === data.DeptId) != -1) {
...@@ -172,20 +182,49 @@ ...@@ -172,20 +182,49 @@
this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === data.ParentId), 1) this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === data.ParentId), 1)
} }
} }
} else if (data.DataType != 2 && !data.IsCheck) {
if (this.memberSetCheckedKeys.findIndex(item => item === data.DeptId) != -1) {
this.showMember.splice(this.showMember.findIndex(item => item.DeptId === data.DeptId), 1)
this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === data.DeptId), 1)
if (this.showMember.findIndex(item => item.DeptId === data.ParentId) != -1) {
this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === data.ParentId), 1)
}
}
} }
}, },
btncheck() { //对数据的处理 btncheck() {//对数据的处理
this.getdataprocess() this.newList = []
// console.log(this.memberList)
this.memberList.forEach(x => {
if (x.IsCheck == true) {
this.newList.push(x)
} else {
this.getChildList(x.ChildList)
}
})
// console.log(this.newList)
}, },
getdataprocess() {
getChildList(ChildList) {
ChildList.forEach(x => {
if (x.IsCheck == true) {
this.newList.push(x)
} else {
this.getChildList(x.ChildList)
}
})
}, },
getChildList(x, list) { arrayUnique(arr, id) {//数组去重
var hash = {};
return arr.reduce(function (item, next) {
hash[next[id]] ? '' : hash[next[id]] = true && item.push(next);
return item;
}, []);
}, },
mySetCheckedKeys(id) { mySetCheckedKeys(id) {
console.log(id)
console.log(this.memberSetCheckedKeys)
if (this.memberSetCheckedKeys.length == 0) if (this.memberSetCheckedKeys.length == 0)
return return
if (id == -1) { if (id == -1) {
...@@ -194,14 +233,65 @@ ...@@ -194,14 +233,65 @@
} }
this.showMember.splice(this.showMember.findIndex(item => item.DeptId === id), 1) this.showMember.splice(this.showMember.findIndex(item => item.DeptId === id), 1)
this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === id), 1) this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === id), 1)
this.qudiaoziji(id)
console.log(this.memberSetCheckedKeys)
this.newList.splice(this.newList.findIndex(item => item.DeptId === id), 1)
this.$refs.treeUser.setCheckedKeys(this.memberSetCheckedKeys); this.$refs.treeUser.setCheckedKeys(this.memberSetCheckedKeys);
}, },
qudiaoziji(id) {
this.memberList.forEach(x => {
if (x.DeptId == id) {
let obj = []
if (x.ChildList && x.ChildList.length > 0) {
x.ChildList.forEach(j => {
obj.push(j.DeptId)
})
this.memberSetCheckedKeys = this.arrayWeightRemoval(this.memberSetCheckedKeys,obj)
}
} else {
this.qudiaoziji_t(x.ChildList, id)
}
})
},
arrayWeightRemoval(array1,array2) {
//临时数组存放
var tempArray1 = [];//临时数组1
var tempArray2 = [];//临时数组2
for (var i = 0; i < array2.length; i++) {
tempArray1[array2[i]] = true;//将数array2 中的元素值作为tempArray1 中的键,值为true;
}
for (var i = 0; i < array1.length; i++) {
if (!tempArray1[array1[i]]) {
tempArray2.push(array1[i]);//过滤array1 中与array2 相同的元素;
}
}
return tempArray2;
},
qudiaoziji_t(ChildList, id) {
ChildList.forEach(x => {
if (x.DeptId == id) {
let obj = []
if (x.ChildList && x.ChildList.length > 0) {
x.ChildList.forEach(j => {
obj.push(j.DeptId)
})
this.memberSetCheckedKeys = this.arrayWeightRemoval(this.memberSetCheckedKeys,obj)
}
} else {
this.qudiaoziji_t(x.ChildList, id)
}
})
},
//关闭弹窗 //关闭弹窗
closeEditOrder() { closeEditOrder() {
this.$emit('close') this.$emit('close')
}, },
saveOrderInfo() { saveOrderInfo() {
this.$emit('success', this.showMember, this.cptype) this.$emit('success', this.newList, this.cptype)
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment