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/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/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
}