diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java index ac368bd0d..47e547cb5 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java @@ -4174,42 +4174,46 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl #a# # - String references_col = record1.get("references_col").toString(); - String[] references_colArr = references_col.split("#"); - if(StringUtils.equals(control_type,ControlTypeEnum.FILE.getValue())){ - String fileId = references_colArr[2]; - List fileInfos = this.ossFileService.getFileInfos(fileId); - String fileName = fileInfos.stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); - references_col = "#"+ references_colArr[0] + "#" + references_colArr[1] + "#" + fileName; - }else if(StringUtils.equals(control_type,ControlTypeEnum.TEXT_FILE.getValue()) - ||StringUtils.equals(control_type,ControlTypeEnum.PULL_SINGLE_FILE.getValue()) - ||StringUtils.equals(control_type,ControlTypeEnum.PULL_MORE_FILE.getValue())){ - String fileId = references_colArr[2]; - List fileInfos = this.ossFileService.getFileInfos(fileId); - String fileName = fileInfos.stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); - references_col = "#"+ references_colArr[0] + "#" + references_colArr[1] + "#" + fileName; - }else if(StringUtils.equals(control_type,ControlTypeEnum.TEXT_PULL_SINGLE_FILE.getValue())){ - String fileId = references_colArr[2]; - List fileInfos = this.ossFileService.getFileInfos(fileId); - String fileName = fileInfos.stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); - references_col = "#"+ references_colArr[0] + "#" + references_colArr[1] + "#" + fileName; - } + if(!Objects.isNull(record1.get("references_col"))){ + String references_col = record1.get("references_col").toString(); + if(StringUtils.isNotEmpty(references_col)){ + String[] references_colArr = references_col.split("#"); + if(StringUtils.equals(control_type,ControlTypeEnum.FILE.getValue())){ + String fileId = references_colArr[2]; + List fileInfos = this.ossFileService.getFileInfos(fileId); + String fileName = fileInfos.stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); + references_col = "#"+ references_colArr[0] + "#" + references_colArr[1] + "#" + fileName; + }else if(StringUtils.equals(control_type,ControlTypeEnum.TEXT_FILE.getValue()) + ||StringUtils.equals(control_type,ControlTypeEnum.PULL_SINGLE_FILE.getValue()) + ||StringUtils.equals(control_type,ControlTypeEnum.PULL_MORE_FILE.getValue())){ + String fileId = references_colArr[2]; + List fileInfos = this.ossFileService.getFileInfos(fileId); + String fileName = fileInfos.stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); + references_col = "#"+ references_colArr[0] + "#" + references_colArr[1] + "#" + fileName; + }else if(StringUtils.equals(control_type,ControlTypeEnum.TEXT_PULL_SINGLE_FILE.getValue())){ + String fileId = references_colArr[2]; + List fileInfos = this.ossFileService.getFileInfos(fileId); + String fileName = fileInfos.stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); + references_col = "#"+ references_colArr[0] + "#" + references_colArr[1] + "#" + fileName; + } - StringBuilder references_colSb = new StringBuilder(); - for (String col : references_col.split("#")) { - if(StringUtils.isNotEmpty(col) && !StringUtils.equals(col," ")){ - references_colSb.append(col).append("#"); + StringBuilder references_colSb = new StringBuilder(); + for (String col : references_col.split("#")) { + if(StringUtils.isNotEmpty(col) && !StringUtils.equals(col," ")){ + references_colSb.append(col).append("#"); + } + } + + if(StringUtils.isNotEmpty(references_colSb)){ + references_col = references_colSb.substring(0,references_colSb.length()-1); + }else { + references_col = references_colSb.toString(); + } + + record1.put("references_col",references_col); } } - if(StringUtils.isNotEmpty(references_colSb)){ - references_col = references_colSb.substring(0,references_colSb.length()-1); - }else { - references_col = references_colSb.toString(); - } - - record1.put("references_col",references_col); - // 处理负责领域 record1.put("duty_territory", dutyTerritoryMap.get(dutyTerritory)); diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index b57ccfc50..25ca4a443 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1376,4 +1376,6 @@ module.exports = { Updateparametercolumn:'Update The Parameter Column', columnfirst:'Reference the parameter column first', columnforced:'Confirm a forced retraction?', + customize:'Customize the header', + customColumn:'Custom column', } \ 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 3f62cbed7..ecda6ea34 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1477,4 +1477,6 @@ module.exports = { brand:'品牌', allsubitemsitem:'该项目下拥有子项目,是否全部删除', contactTheFounder:'联系创建人', + customize:'自定义表头', + customColumn:'自定义列', } \ No newline at end of file diff --git a/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/index.vue b/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/index.vue index bcb6359d8..5e60fffb1 100644 --- a/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/index.vue +++ b/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/index.vue @@ -213,7 +213,7 @@ }, { title: this.$t('brand'), - align: 'center', + align: 'left', ellipsis: true, width: 140, dataIndex: 'brand_text' diff --git a/jero-web/src/views/businessSupport/technologyAssessment/index.vue b/jero-web/src/views/businessSupport/technologyAssessment/index.vue index ff076ae87..277567333 100644 --- a/jero-web/src/views/businessSupport/technologyAssessment/index.vue +++ b/jero-web/src/views/businessSupport/technologyAssessment/index.vue @@ -282,7 +282,7 @@ }, { title: this.$t('brand'), - align: 'center', + align: 'left', ellipsis: true, width: 140, dataIndex: 'brand_text' diff --git a/jero-web/src/views/projectManagement/components/customizeList.vue b/jero-web/src/views/projectManagement/components/customizeList.vue new file mode 100644 index 000000000..0624fa28e --- /dev/null +++ b/jero-web/src/views/projectManagement/components/customizeList.vue @@ -0,0 +1,275 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/listOfRegulations.vue b/jero-web/src/views/projectManagement/components/listOfRegulations.vue index 04be80b4c..4134cfba6 100644 --- a/jero-web/src/views/projectManagement/components/listOfRegulations.vue +++ b/jero-web/src/views/projectManagement/components/listOfRegulations.vue @@ -161,6 +161,10 @@ ...{{ $t('more') }} +
+ + {{ $t('customize') }} +
{{ $t('bringInRelevantPersonnel') }} @@ -311,6 +315,7 @@ + 0) { diff --git a/jero-web/src/views/projectManagement/projectLibrary/index.vue b/jero-web/src/views/projectManagement/projectLibrary/index.vue index fea8392cd..2d27a619d 100644 --- a/jero-web/src/views/projectManagement/projectLibrary/index.vue +++ b/jero-web/src/views/projectManagement/projectLibrary/index.vue @@ -243,7 +243,7 @@ }, { title: this.$t('brand'), - align: 'center', + align: 'left', width: 180, ellipsis: true, dataIndex: 'brandText' diff --git a/jero-web/src/views/system/modules/RoleAssignment.vue b/jero-web/src/views/system/modules/RoleAssignment.vue index 6612e56a3..64091e859 100644 --- a/jero-web/src/views/system/modules/RoleAssignment.vue +++ b/jero-web/src/views/system/modules/RoleAssignment.vue @@ -25,17 +25,24 @@ - - - - - - - - + + + + + + + {{$t('selectAll')}} + + + {{ item.title }} + + @@ -75,6 +82,8 @@ export default { title: this.$t('add'), total: 0, selectedRowKeysDate: {}, + dutylist: [], + jobsStr:'', loading: false, editId: '', newVisible: false, @@ -113,8 +122,50 @@ export default { mounted() { this.loadData() this.initDictData() + this.getdutylist() }, methods: { + getdutylist(){ + getAction('/sys/dict/getDictItems/duty_territory', {}).then((res) => { + if (res.success) { + this.dutylist = res.result + } else { + this.dutylist = [] + } + }) + }, + onChange(val) { + // val 拿到的是数组格式的数据,比如:['测试1','测试3'] + const res = this.dutyTerritories.join(',') + this.jobsStr = res + this.dutyTerritories = this.checkAll(val, this.dutylist) + }, + checkAll(arr, modelList) { + // arr是onChange中的val数组 modelList是下拉框List + let length = arr.length + let list = arr + // 遍历已经选中的选项 + arr.forEach(element => { + // 当数组中存在0,说明此时进行全选/取消全选 + if (element === '0') { + // 当数组长度为最大长度且最后一个元素为0时,说明此时在全选的基础上又点击全选,则取消全选 + if (length - 1 === modelList.length && arr[length - 1] === '0') { + list = [] + // 取消全选时,jobsStr需要重置为空,否则全选的数据还会展示在下拉输入框中 + this.jobsStr = '' + } else { + // 当不是取消全选操作,只要数组中出现了0则说明进行了全选操作 + list = [] + for (let i in modelList) { + list.push(modelList[i].title) + // 全选时,也需要给jobsStr 赋值,拿到所有的下拉选项,并进行数据格式转换 + this.jobsStr = list.join(',') + } + } + } + }) + return list + }, initDictData() { //优先从缓存中读取字典配置 if (getDictItemsFromCache(this.dictCode)) { diff --git a/jero-web/src/views/system/modules/UserModal.vue b/jero-web/src/views/system/modules/UserModal.vue index 2be2d4173..ed5f18123 100644 --- a/jero-web/src/views/system/modules/UserModal.vue +++ b/jero-web/src/views/system/modules/UserModal.vue @@ -76,10 +76,24 @@ - + + + + + + + {{$t('selectAll')}} + + + {{ item.title }} + + @@ -240,8 +254,10 @@ confirmDirty: false, viewshow: false, viewshowbrand: false, + jobsStr:'', selectedDepartKeys: [], //保存用户选择部门id brandsList: [], //保存用户选择部门id + dutylist: [], //保存用户选择部门id checkedDepartKeys: [], checkedDepartNames: [], // 保存部门的名称 =>title checkedDepartNameString: '', // 保存部门的名称 =>title @@ -380,6 +396,15 @@ } }) }, + getdutylist(){ + getAction('/sys/dict/getDictItems/duty_territory', {}).then((res) => { + if (res.success) { + this.dutylist = res.result + } else { + this.dutylist = [] + } + }) + }, loadUserRoles(userid) { queryUserRole({ userid: userid }).then((res) => { if (res.success) { @@ -494,12 +519,45 @@ this.refresh() this.edit({ activitiSync: '1' }) }, + onChange(val) { + // val 拿到的是数组格式的数据,比如:['测试1','测试3'] + const res = this.dutyTerritories.join(',') + this.jobsStr = res + this.dutyTerritories = this.checkAll(val, this.dutylist) + }, + checkAll(arr, modelList) { + // arr是onChange中的val数组 modelList是下拉框List + let length = arr.length + let list = arr + // 遍历已经选中的选项 + arr.forEach(element => { + // 当数组中存在0,说明此时进行全选/取消全选 + if (element === '0') { + // 当数组长度为最大长度且最后一个元素为0时,说明此时在全选的基础上又点击全选,则取消全选 + if (length - 1 === modelList.length && arr[length - 1] === '0') { + list = [] + // 取消全选时,jobsStr需要重置为空,否则全选的数据还会展示在下拉输入框中 + this.jobsStr = '' + } else { + // 当不是取消全选操作,只要数组中出现了0则说明进行了全选操作 + list = [] + for (let i in modelList) { + list.push(modelList[i].title) + // 全选时,也需要给jobsStr 赋值,拿到所有的下拉选项,并进行数据格式转换 + this.jobsStr = list.join(',') + } + } + } + }) + return list + }, edit(record) { this.resetScreenSize() // 调用此方法,根据屏幕宽度自适应调整抽屉的宽度 let that = this this.disabled = false that.initialRoleList() that.barndslist() + that.getdutylist() if (record.activitiSync) { this.disabled = true }