diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index ee9098642..cb6a0ad64 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1318,4 +1318,5 @@ module.exports = { endProcess:'End Process', thereForTheCurrentlySelectedData:'There is no standard breakdown for the currently selected data', secondaryDirectory:'Secondary directory', + OnlyPersonsCanBeSelected:'The maximum upper limit is exceeded; Only 100 persons can be selected', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index 6c242520e..28ce6b3c9 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1419,4 +1419,5 @@ module.exports = { endProcess:'结束流程', thereForTheCurrentlySelectedData:'当前所选数据暂无标准分解单', secondaryDirectory:'二级目录', + OnlyPersonsCanBeSelected:'超出最大上限;只能选择100个人员', } \ No newline at end of file diff --git a/jero-web/src/components/PersonnelSelection/index.vue b/jero-web/src/components/PersonnelSelection/index.vue index 9521fee72..b84f99147 100644 --- a/jero-web/src/components/PersonnelSelection/index.vue +++ b/jero-web/src/components/PersonnelSelection/index.vue @@ -32,39 +32,39 @@ v-model="searchModel" @search="onSearch"/>
{{$t('dataLoading')}} - - - - - - - - - - - - - - - - - - - - - - + ref="virtualNodeTreeRef" + :keeps="40" + show-checkbox + v-model="checkboxList" + class="treeWrap" + :defaultCheckedKeys="defaultCheckedKeys" + :defaultExpandAll="defaultExpandAll" + :check-strictly="false" + node-key="id" + @check="handleCheckChange" + @check-change="checkChange" + :data.sync="gData"> + + + {{ data.title }} + + + + + + + + + + + + + + + +
{{$t('cancel')}} @@ -114,137 +114,137 @@ }, methods: { - // checkChange(val, checked, indeterminate) { - // if (!checked && this.searchData) { - // this.userName = this.userName.filter(res => { - // return res != val.title - // }) - // this.userIds = this.userIds.filter(res => { - // return res != val.id - // }) - // for (let i = 0; i < this.userIds.length; i++) { - // if (this.userIds[i] == val.parentId) { - // this.userIds.splice(i, 1) - // this.userName.splice(i, 1) - // i-- - // } - // } - // } else if (checked && this.searchData) { - // this.userName.push(val.title) - // this.userIds.push(val.id) - // } - // }, - // handleCheckChange(val, data, checked) { - // if (!this.searchData) { - // this.userName = [] - // this.userIds = [] - // if (data.checkedNodes && data.checkedNodes.length > 0) { - // data.checkedNodes.forEach(res => { - // this.userName.push(res.title) - // this.userIds.push(res.id) - // }) - // } - // } - // }, + checkChange(val, checked, indeterminate) { + if (!checked && this.searchData) { + this.userName = this.userName.filter(res => { + return res != val.title + }) + this.userIds = this.userIds.filter(res => { + return res != val.id + }) + for (let i = 0; i < this.userIds.length; i++) { + if (this.userIds[i] == val.parentId) { + this.userIds.splice(i, 1) + this.userName.splice(i, 1) + i-- + } + } + } else if (checked && this.searchData) { + this.userName.push(val.title) + this.userIds.push(val.id) + } + }, + handleCheckChange(val, data, checked) { + if (!this.searchData) { + this.userName = [] + this.userIds = [] + if (data.checkedNodes && data.checkedNodes.length > 0) { + data.checkedNodes.forEach(res => { + this.userName.push(res.title) + this.userIds.push(res.id) + }) + } + } + }, standardClick() { this.treeVisible = false - this.departId = '' + // this.departId = '' this.searchModel = '' this.searchData = '' - this.userIds = [] - this.userName = [] - this.queryDepartUserTreeList(1) + // this.userIds = [] + // this.userName = [] + // this.queryDepartUserTreeList(1) this.visible = true - // let gData = localStorage.getItem('gData') - // if (gData) { - // let dataList = JSON.parse(gData) - // if (!this.selectDepartment) { - // dataList.forEach(res => { - // if (res.type == 'Depart') { - // res.disabled = true - // } - // }) - // } - // this.dataList = this.toTree(dataList) - // } - // setTimeout(() => { - // if (gData) { - // this.gData = this.dataList - // this.gData = [...this.gData] - // // this.treeVisible = true - // if (this.personneQuery[this.query.db_field_name + 'Name']) { - // this.userName = this.personneQuery[this.query.db_field_name + 'Name'].split(',') - // } else if (this.personneQuery[this.query.db_field_name]) { - // this.userName = this.personneQuery[this.query.db_field_name].split(',') - // } else { - // this.userName = [] - // } - // if (this.personneQuery[this.query.db_field_name + '_id']) { - // this.userIds = this.personneQuery[this.query.db_field_name + '_id'].split(',') - // } else if (this.personneQuery[this.query.db_field_name]) { - // this.userIds = this.personneQuery[this.query.db_field_name].split(',') - // } else { - // this.userIds = [] - // } - // this.defaultCheckedKeys = this.userIds - // this.defaultCheckedKeys = [...this.defaultCheckedKeys] - // this.defaultExpandAll = false - // this.treeVisible = true - // } else { - // this.queryDepartUserTreeList(1) - // } - // }, 200) + let gData = localStorage.getItem('gData') + if (gData) { + let dataList = JSON.parse(gData) + if (!this.selectDepartment) { + dataList.forEach(res => { + if (res.type == 'Depart') { + res.disabled = true + } + }) + } + this.dataList = this.toTree(dataList) + } + setTimeout(() => { + if (gData) { + this.gData = this.dataList + this.gData = [...this.gData] + // this.treeVisible = true + if (this.personneQuery[this.query.db_field_name + 'Name']) { + this.userName = this.personneQuery[this.query.db_field_name + 'Name'].split(',') + } else if (this.personneQuery[this.query.db_field_name]) { + this.userName = this.personneQuery[this.query.db_field_name].split(',') + } else { + this.userName = [] + } + if (this.personneQuery[this.query.db_field_name + '_id']) { + this.userIds = this.personneQuery[this.query.db_field_name + '_id'].split(',') + } else if (this.personneQuery[this.query.db_field_name]) { + this.userIds = this.personneQuery[this.query.db_field_name].split(',') + } else { + this.userIds = [] + } + this.defaultCheckedKeys = this.userIds + this.defaultCheckedKeys = [...this.defaultCheckedKeys] + this.defaultExpandAll = false + this.treeVisible = true + } else { + this.queryDepartUserTreeList(1) + } + }, 200) + }, + deleteChildren(value, arr) { + let newarr = [] + arr.forEach(element => { + if (element.title.indexOf(value) > -1) { // 判断条件 + newarr.push(element) + } else { + if (element.children && element.children.length > 0) { + let redata = this.deleteChildren(value, element.children) + if (redata && redata.length > 0) { + let obj = { + ...element, + children: redata + } + newarr.push(obj) + } + } + } + }) + return newarr + }, + // 将数据拼成树形结构 + toTree(config, num) { + // 删除 所有 children,以防止多次调用 + config.forEach(function(item) { + delete item.children + }) + // 将数据存储为 以 id 为 KEY 的 map 索引数据列 + let map = {} + config.forEach((item) => { + item.label = item.name + item.key = item.id + + item.title = item.name + (item.itemName ? ' ' + item.itemName : '') + map[item.id] = item + }) + let val = [] + config.forEach((item) => { + // 以当前遍历项,的pid,去map对象中找到索引的id + let parent = map[item.parentId] + + // 如果找到索引,那么说明此项不在顶级当中,那么需要把此项添加到,他对应的父级中 + if (parent) { + (parent.children || (parent.children = [])).push(item) + } else { + //如果没有在map中找到对应的索引ID,那么直接把 当前的item添加到 val结果集中,作为顶级 + val.push(item) + } + }) + return val }, - // deleteChildren(value, arr) { - // let newarr = [] - // arr.forEach(element => { - // if (element.title.indexOf(value) > -1) { // 判断条件 - // newarr.push(element) - // } else { - // if (element.children && element.children.length > 0) { - // let redata = this.deleteChildren(value, element.children) - // if (redata && redata.length > 0) { - // let obj = { - // ...element, - // children: redata - // } - // newarr.push(obj) - // } - // } - // } - // }) - // return newarr - // }, - //将数据拼成树形结构 - // toTree(config, num) { - // // 删除 所有 children,以防止多次调用 - // config.forEach(function(item) { - // delete item.children - // }) - // // 将数据存储为 以 id 为 KEY 的 map 索引数据列 - // let map = {} - // config.forEach((item) => { - // item.label = item.name - // item.key = item.id - // - // item.title = item.name + (item.itemName ? ' ' + item.itemName : '') - // map[item.id] = item - // }) - // let val = [] - // config.forEach((item) => { - // // 以当前遍历项,的pid,去map对象中找到索引的id - // let parent = map[item.parentId] - // - // // 如果找到索引,那么说明此项不在顶级当中,那么需要把此项添加到,他对应的父级中 - // if (parent) { - // (parent.children || (parent.children = [])).push(item) - // } else { - // //如果没有在map中找到对应的索引ID,那么直接把 当前的item添加到 val结果集中,作为顶级 - // val.push(item) - // } - // }) - // return val - // }, standardDelete() { this.$emit('input', null) this.$forceUpdate() @@ -255,61 +255,61 @@ // this.selectedKey = selectedKeys // }, - onCheck(checkedKeys, info) { - this.userIds = checkedKeys.checked - this.userName = [] - if (this.userIds.length > 0) { - for (let i = 0; i < this.userIds.length; i++) { - for (let j = 0; j < this.defaultCheckedKeysName.length; j++) { - if (this.userIds[i] == this.defaultCheckedKeysName[j].id) { - this.userName.push(this.defaultCheckedKeysName[j].name) - } - } - } - } - if (info.checkedNodes && info.checkedNodes.length > 0) { - info.checkedNodes.forEach(res => { - if (res.data.props.dataRef.key) { - this.content.push({ - id: res.data.props.dataRef.key, - title: res.data.props.dataRef.title - }) - } else { - this.content.push({ - id: res.data.props.id, - title: res.data.props.title - }) - } - }) - } - if (this.content && this.content.length > 0) { - for (let i = 0; i < this.content.length; i++) { - for (let j = i + 1; j < this.content.length; j++) { - if (this.content[i].id == this.content[j].id) { - this.content.splice(j, 1) - j-- - } - } - } - this.userIds.forEach(res => { - this.content.forEach(val => { - if (res == val.id) { - this.userName.push(val.title) - } - }) - }) - } - if (this.userName.length > 0) { - for (let i = 0; i < this.userName.length; i++) { - for (let j = i + 1; j < this.userName.length; j++) { - if (this.userName[i] == this.userName[j]) { - this.userName.splice(j, 1) - j-- - } - } - } - } - }, + // onCheck(checkedKeys, info) { + // this.userIds = checkedKeys.checked + // this.userName = [] + // if (this.userIds.length > 0) { + // for (let i = 0; i < this.userIds.length; i++) { + // for (let j = 0; j < this.defaultCheckedKeysName.length; j++) { + // if (this.userIds[i] == this.defaultCheckedKeysName[j].id) { + // this.userName.push(this.defaultCheckedKeysName[j].name) + // } + // } + // } + // } + // if (info.checkedNodes && info.checkedNodes.length > 0) { + // info.checkedNodes.forEach(res => { + // if (res.data.props.dataRef.key) { + // this.content.push({ + // id: res.data.props.dataRef.key, + // title: res.data.props.dataRef.title + // }) + // } else { + // this.content.push({ + // id: res.data.props.id, + // title: res.data.props.title + // }) + // } + // }) + // } + // if (this.content && this.content.length > 0) { + // for (let i = 0; i < this.content.length; i++) { + // for (let j = i + 1; j < this.content.length; j++) { + // if (this.content[i].id == this.content[j].id) { + // this.content.splice(j, 1) + // j-- + // } + // } + // } + // this.userIds.forEach(res => { + // this.content.forEach(val => { + // if (res == val.id) { + // this.userName.push(val.title) + // } + // }) + // }) + // } + // if (this.userName.length > 0) { + // for (let i = 0; i < this.userName.length; i++) { + // for (let j = i + 1; j < this.userName.length; j++) { + // if (this.userName[i] == this.userName[j]) { + // this.userName.splice(j, 1) + // j-- + // } + // } + // } + // } + // }, handleCancel() { this.visible = false this.treeVisible = false @@ -324,12 +324,16 @@ } let userIds = JSON.parse(JSON.stringify(this.userIds)) let userName = JSON.parse(JSON.stringify(this.userName)) - // userName = userName.filter(function(item, index) { - // return userName.indexOf(item) === index // 因为indexOf 只能查找到第一个 - // }) - // userIds = userIds.filter(function(item, index) { - // return userIds.indexOf(item) === index // 因为indexOf 只能查找到第一个 - // }) + userName = userName.filter(function(item, index) { + return userName.indexOf(item) === index // 因为indexOf 只能查找到第一个 + }) + userIds = userIds.filter(function(item, index) { + return userIds.indexOf(item) === index // 因为indexOf 只能查找到第一个 + }) + if (userIds.length > 100 && this.selectDepartment) { + this.$message.warning(this.$t('OnlyPersonsCanBeSelected')) + return + } this.$emit('input', userName.join(',')) this.$emit('change', this.query.db_field_name, userIds.join(','), this.query.subscript) this.visible = false @@ -347,119 +351,120 @@ this.defaultCheckedKeys = [] }, onSearch(e) { - // this.treeVisible = false - // let p = new Promise((resolve, reject) => { - // resolve() - // }) - // p.then(() => { - // this.searchData = e - // let gData = localStorage.getItem('gData') - // let content = [] - // if (gData) { - // if (e) { - // JSON.parse(gData).forEach(res => { - // if (res.type == 'User') { - // if (res.name.includes(e)) { - // res.color = true - // content.push(res) - // } - // } - // // else if(res.type == 'Depart'){ - // // content.push(res) - // // } - // }) - // let gDataAdmin = this.toTree(content) - // this.gData = this.deleteChildren(e, gDataAdmin) - // this.defaultExpandAll = true - // this.treeVisible = true - // this.defaultCheckedKeys = this.userIds - // this.defaultCheckedKeys = [...this.defaultCheckedKeys] - // this.loading = false - // } else { - // let content = JSON.parse(gData) - // if (!this.selectDepartment) { - // content.forEach(res => { - // if (res.type == 'Depart') { - // res.disabled = true - // } - // }) - // } - // this.gData = this.toTree(content) - // this.defaultExpandAll = false - // this.defaultCheckedKeys = this.userIds - // this.defaultCheckedKeys = [...this.defaultCheckedKeys] - // this.treeVisible = true - // this.loading = false - // } - // } - // }) - this.gData = [] - this.departId = '' - this.visibleTree = false - if (e) { - this.getUserAndDepart() - } else { - this.treeVisible = false - this.queryDepartUserTreeList(2) - } - }, - getUserAndDepart() { - getAction('sys/user/getUserAndDepart', { name: this.searchModel }).then((res) => { - if (res) { - this.gData = res.filter(ele => ele.flag === 'DEPART') - } else { - this.gData = [] - } - this.visibleTree = true + this.treeVisible = false + let p = new Promise((resolve, reject) => { + resolve() }) - }, - onExpand(selectedKeys, val) { - if (this.searchModel == '' || !this.searchModel) { - if (val.expanded) { - if (this.departId == val.node.value) { + p.then(() => { + this.searchData = e + let gData = localStorage.getItem('gData') + let content = [] + if (gData) { + if (e) { + JSON.parse(gData).forEach(res => { + if (res.type == 'User') { + if (res.name.includes(e)) { + res.color = true + content.push(res) + } + } + // else if(res.type == 'Depart'){ + // content.push(res) + // } + }) + let gDataAdmin = this.toTree(content) + this.gData = this.deleteChildren(e, gDataAdmin) + this.defaultExpandAll = true + this.treeVisible = true + this.defaultCheckedKeys = this.userIds + this.defaultCheckedKeys = [...this.defaultCheckedKeys] + this.loading = false } else { - this.departId = val.node.value - this.queryDepartUserTreeList(2) + let content = JSON.parse(gData) + if (!this.selectDepartment) { + content.forEach(res => { + if (res.type == 'Depart') { + res.disabled = true + } + }) + } + this.gData = this.toTree(content) + this.defaultExpandAll = false + this.defaultCheckedKeys = this.userIds + this.defaultCheckedKeys = [...this.defaultCheckedKeys] + this.treeVisible = true + this.loading = false } } - } + }) + // this.gData = [] + // this.departId = '' + // this.visibleTree = false + // if (e) { + // this.getUserAndDepart() + // } else { + // this.treeVisible = false + // this.queryDepartUserTreeList(2) + // } }, + // getUserAndDepart() { + // getAction('sys/user/getUserAndDepart', { name: this.searchModel }).then((res) => { + // if (res) { + // this.gData = res.filter(ele => ele.flag === 'DEPART') + // } else { + // this.gData = [] + // } + // this.visibleTree = true + // }) + // }, + // onExpand(selectedKeys, val) { + // if (this.searchModel == '' || !this.searchModel) { + // if (val.expanded) { + // if (this.departId == val.node.value) { + // } else { + // this.departId = val.node.value + // this.queryDepartUserTreeList(2) + // } + // } + // } + // }, queryDepartUserTreeList(num) { - let gData = JSON.parse(JSON.stringify(this.gData)) - if (gData && gData.length > 0) { - gData = JSON.stringify(gData) - } else { - gData = '' - } + // let gData = JSON.parse(JSON.stringify(this.gData)) + // if (gData && gData.length > 0) { + // gData = JSON.stringify(gData) + // } else { + // gData = '' + // } this.confirmLoading = true this.loading = true - //queryDepartUserTreeList - //queryUserTreeList - postAction('sys/user/queryDepartUserTreeList', { - departId: this.departId, - json: gData, - flag: '1' + //queryDepartUserTreeList post + //queryUserTreeList get + //换接口需要改请求 + getAction('sys/user/queryUserTreeList', { + // departId: this.departId, + // json: gData, + // flag: '1' }).then((res) => { this.confirmLoading = false if (res.success) { this.loading = false // localStorage.setItem('gData', JSON.stringify(res.result)) // this.toTree(dataList) - // let content = JSON.parse(JSON.stringify(res.result)) - // if (!this.selectDepartment) { - // res.result.forEach(res => { - // if (res.type == 'Depart') { - // res.disabled = true - // } - // }) - // } - // localStorage.removeItem('gData') - // localStorage.setItem('gData', JSON.stringify(content)) - // this.gData = this.toTree(res.result) - this.gData = res.result + let content = JSON.parse(JSON.stringify(res.result)) + if (!this.selectDepartment) { + res.result.forEach(res => { + if (res.type == 'Depart') { + res.disabled = true + } + }) + } + localStorage.removeItem('gData') + localStorage.setItem('gData', JSON.stringify(content)) + this.gData = this.toTree(res.result) + // this.gData = res.result this.gData = [...this.gData] // this.gData[0].isLeaf = false - this.defaultExpandedKeys = [this.departId] + // this.defaultExpandedKeys = [this.departId] if (num == 1) { if (this.userName && this.userName.length == 0) { if (this.personneQuery[this.query.db_field_name + 'Name']) { @@ -481,15 +486,15 @@ } this.defaultCheckedKeys = this.userIds this.defaultCheckedKeys = [...this.defaultCheckedKeys] - this.defaultCheckedKeysName = [] - if (this.defaultCheckedKeys.length > 0) { - for (let i = 0; i < this.defaultCheckedKeys.length; i++) { - this.defaultCheckedKeysName.push({ - id: this.defaultCheckedKeys[i], - name: this.userName[i] - }) - } - } + // this.defaultCheckedKeysName = [] + // if (this.defaultCheckedKeys.length > 0) { + // for (let i = 0; i < this.defaultCheckedKeys.length; i++) { + // this.defaultCheckedKeysName.push({ + // id: this.defaultCheckedKeys[i], + // name: this.userName[i] + // }) + // } + // } } this.defaultExpandAll = false this.treeVisible = true