@sunny-base/effects 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dataDictionary/dataDictionaryAdd.vue +95 -0
- package/dataDictionary/dataDictionaryQuery.vue +133 -0
- package/dataDictionary/dataDictionaryUpdate.vue +159 -0
- package/i18n/components/AddDialog.vue +103 -0
- package/i18n/components/EditDialog.vue +76 -0
- package/i18n/components/ModuleI18nDialog.vue +229 -0
- package/i18n/components/ResourceTree.vue +132 -0
- package/i18n/components/i18nExport.vue +200 -0
- package/i18n/components/i18nImport.vue +124 -0
- package/i18n/i18nQuery.vue +202 -0
- package/index.js +11 -2
- package/package.json +1 -1
- package/role/RoleQuery.vue +175 -0
- package/role/compontents/RoleAuthorization.vue +184 -0
- package/role/compontents/RoleManagementTree.vue +262 -0
- package/ywsjzd/ywsjzdAdd.vue +97 -0
- package/ywsjzd/ywsjzdQuery.vue +134 -0
- package/ywsjzd/ywsjzdUpdate.vue +156 -0
- package/user/api/user.js +0 -57
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<el-row>
|
|
3
|
+
<el-col :span="24">
|
|
4
|
+
<kunkka-form
|
|
5
|
+
ref="kunkkaForm"
|
|
6
|
+
:form="roleManagement.dialog.resource.form"
|
|
7
|
+
:model="roleManagement.dialog.resource.model"
|
|
8
|
+
:events="roleManagement.dialog.resource.events"
|
|
9
|
+
:sm="12"
|
|
10
|
+
:gutter="25"
|
|
11
|
+
/>
|
|
12
|
+
</el-col>
|
|
13
|
+
<el-col :span="24">
|
|
14
|
+
<el-tabs v-model="activeName">
|
|
15
|
+
<el-tab-pane :label="'资源配置'" name="resourceConfig">
|
|
16
|
+
<div style="max-height:460px;overflow:auto">
|
|
17
|
+
<el-tree
|
|
18
|
+
ref="tree"
|
|
19
|
+
:data="roleManagement.dialog.treeData"
|
|
20
|
+
show-checkbox
|
|
21
|
+
node-key="id"
|
|
22
|
+
:props="props"
|
|
23
|
+
:expand-on-click-node="false"
|
|
24
|
+
:check-on-click-node="false"
|
|
25
|
+
:check-strictly="true"
|
|
26
|
+
:render-content="renderContent"
|
|
27
|
+
:default-checked-keys="roleManagement.dialog.defaultChecked"
|
|
28
|
+
@node-expand="nodeExpand"
|
|
29
|
+
@check="checkClick"
|
|
30
|
+
/>
|
|
31
|
+
</div>
|
|
32
|
+
</el-tab-pane>
|
|
33
|
+
</el-tabs>
|
|
34
|
+
</el-col>
|
|
35
|
+
</el-row>
|
|
36
|
+
</template>
|
|
37
|
+
<script>
|
|
38
|
+
import { mapGetters } from 'vuex'
|
|
39
|
+
|
|
40
|
+
export default {
|
|
41
|
+
components: {},
|
|
42
|
+
data() {
|
|
43
|
+
return {
|
|
44
|
+
name: 'roleManagement',
|
|
45
|
+
props: {
|
|
46
|
+
children: 'children',
|
|
47
|
+
label: 'label'
|
|
48
|
+
},
|
|
49
|
+
activeName: 'resourceConfig',
|
|
50
|
+
tableHeight: 200
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
computed: {
|
|
54
|
+
...mapGetters(['roleManagement'])
|
|
55
|
+
},
|
|
56
|
+
watch: {
|
|
57
|
+
'roleManagement.dialog.visible'(val) {
|
|
58
|
+
if (val === true) {
|
|
59
|
+
this.$nextTick(() => {
|
|
60
|
+
this.activeName = 'resourceConfig'
|
|
61
|
+
this.$refs.kunkkaForm.$refs.kunkkaForm.clearValidate()
|
|
62
|
+
})
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
methods: {
|
|
67
|
+
// 渲染树
|
|
68
|
+
renderContent(h, { node, data }) {
|
|
69
|
+
let className = ''
|
|
70
|
+
if (data.cType && data.cType === '2') {
|
|
71
|
+
className = 'especially'
|
|
72
|
+
return <div class={className}>{data.label}</div>
|
|
73
|
+
}
|
|
74
|
+
const _flag = data.children.some((item) => {
|
|
75
|
+
return item.cType === '2'
|
|
76
|
+
})
|
|
77
|
+
if (_flag) {
|
|
78
|
+
for (var i = 0; i < data.children.length; i++) {
|
|
79
|
+
if (data.children[i].cType === '2') {
|
|
80
|
+
data.children.map((item) => {
|
|
81
|
+
if (this.roleManagement.dialog.defaultChecked.includes(item.id)) {
|
|
82
|
+
item.checked = true
|
|
83
|
+
} else {
|
|
84
|
+
item.checked = false
|
|
85
|
+
}
|
|
86
|
+
})
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return (
|
|
90
|
+
<div style='display: flex;width:100%;'>
|
|
91
|
+
<div style='width:20%;'>{data.label}</div>
|
|
92
|
+
<div style='width:80%;overflow: scroll;'>
|
|
93
|
+
{data.children.map(item =>
|
|
94
|
+
item.cType === '2' ? (
|
|
95
|
+
<el-checkbox
|
|
96
|
+
key={item.label}
|
|
97
|
+
v-model={item.checked}
|
|
98
|
+
disabled={item.disabled}
|
|
99
|
+
onChange={() => this.changeCheck(item)}
|
|
100
|
+
>
|
|
101
|
+
{item.label}
|
|
102
|
+
</el-checkbox>
|
|
103
|
+
) : (
|
|
104
|
+
''
|
|
105
|
+
)
|
|
106
|
+
)}
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
)
|
|
110
|
+
} else {
|
|
111
|
+
return <div>{data.label}</div>
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
nodeExpand(data, node, event) {
|
|
115
|
+
this.changeExpanded(node)
|
|
116
|
+
var classDomList = event.$el.getElementsByClassName('especially')
|
|
117
|
+
this.$nextTick(() => {
|
|
118
|
+
for (var i = 0; i < classDomList.length; i++) {
|
|
119
|
+
classDomList[i].parentNode.style.cssText = 'display:none'
|
|
120
|
+
}
|
|
121
|
+
})
|
|
122
|
+
},
|
|
123
|
+
changeExpanded(node) {
|
|
124
|
+
node.childNodes.forEach((item) => {
|
|
125
|
+
item.expanded = true
|
|
126
|
+
if (item.childNodes.length > 0) {
|
|
127
|
+
// 子节点仅按钮的为叶子节点
|
|
128
|
+
if (item.data.cType == 1) {
|
|
129
|
+
if (item.childNodes.length > 0) {
|
|
130
|
+
// console.log(item.data.label, item, item.childNodes,);
|
|
131
|
+
var a = []
|
|
132
|
+
item.childNodes.forEach((item1) => {
|
|
133
|
+
if (item1.data.cType != 2) {
|
|
134
|
+
a.push(1)
|
|
135
|
+
}
|
|
136
|
+
})
|
|
137
|
+
if (a.length > 0) {
|
|
138
|
+
item.isLeaf = false
|
|
139
|
+
} else {
|
|
140
|
+
item.isLeaf = true
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (item.data.cType == 5) {
|
|
145
|
+
item.isLeaf = true
|
|
146
|
+
}
|
|
147
|
+
this.changeExpanded(item)
|
|
148
|
+
}
|
|
149
|
+
})
|
|
150
|
+
},
|
|
151
|
+
// cType=2
|
|
152
|
+
changeCheck(data) {
|
|
153
|
+
if (
|
|
154
|
+
data.checked === true &&
|
|
155
|
+
this.roleManagement.dialog.defaultChecked.indexOf(data.id) === -1
|
|
156
|
+
) {
|
|
157
|
+
this.roleManagement.dialog.defaultChecked.push(data.id)
|
|
158
|
+
this.$refs.tree.setCheckedKeys(
|
|
159
|
+
this.roleManagement.dialog.defaultChecked
|
|
160
|
+
)
|
|
161
|
+
} else {
|
|
162
|
+
this.roleManagement.dialog.defaultChecked =
|
|
163
|
+
this.roleManagement.dialog.defaultChecked.filter(
|
|
164
|
+
(item) => item != data.id
|
|
165
|
+
)
|
|
166
|
+
this.$refs.tree.setCheckedKeys(
|
|
167
|
+
this.roleManagement.dialog.defaultChecked
|
|
168
|
+
)
|
|
169
|
+
}
|
|
170
|
+
var thisNode = this.$refs.tree.getNode(data.id)
|
|
171
|
+
thisNode.checked = data.checked
|
|
172
|
+
if (thisNode.checked) {
|
|
173
|
+
// 子节点选中则拥有父节点权限,选中父节点
|
|
174
|
+
for (let i = thisNode.level; i > 1; i--) {
|
|
175
|
+
if (
|
|
176
|
+
!thisNode.parent.checked &&
|
|
177
|
+
this.roleManagement.dialog.defaultChecked.indexOf(
|
|
178
|
+
thisNode.parent.data.id
|
|
179
|
+
) === -1
|
|
180
|
+
) {
|
|
181
|
+
this.roleManagement.dialog.defaultChecked.push(
|
|
182
|
+
thisNode.parent.data.id
|
|
183
|
+
)
|
|
184
|
+
this.$refs.tree.setCheckedKeys(
|
|
185
|
+
this.roleManagement.dialog.defaultChecked
|
|
186
|
+
)
|
|
187
|
+
thisNode = thisNode.parent
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
checkClick(data, node) {
|
|
193
|
+
const _this = this
|
|
194
|
+
// 选中子节点自动勾选父节点
|
|
195
|
+
let thisNode = this.$refs.tree.getNode(data.id) // 获取当前节点
|
|
196
|
+
const keys = this.$refs.tree.getCheckedKeys() // 获取已勾选节点的key值
|
|
197
|
+
|
|
198
|
+
if (thisNode.checked) {
|
|
199
|
+
// 当前节点若被选中
|
|
200
|
+
for (let i = thisNode.level; i > 1; i--) {
|
|
201
|
+
// 判断是否有父级节点
|
|
202
|
+
if (!thisNode.parent.checked) {
|
|
203
|
+
// 父级节点未被选中,则将父节点替换成当前节点,往上继续查询,并将此节点key存入keys数组
|
|
204
|
+
thisNode = thisNode.parent
|
|
205
|
+
keys.push(thisNode.data.id)
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
this.$refs.tree.setCheckedKeys(keys)
|
|
210
|
+
// 选中父节点,自动勾选所有子节点
|
|
211
|
+
// 获取当前节点是否被选中
|
|
212
|
+
const isChecked = this.$refs.tree.getNode(data).checked
|
|
213
|
+
// 如果当前节点被选中,则遍历上级节点和下级子节点并选中,如果当前节点取消选中,则遍历下级节点并取消选中
|
|
214
|
+
if (isChecked) {
|
|
215
|
+
// 判断是否有上级节点,如果有那么遍历设置上级节点选中
|
|
216
|
+
data.pid && setParentChecked(data.pid)
|
|
217
|
+
// 判断该节点是否有下级节点,如果有那么遍历设置下级节点为选中
|
|
218
|
+
data[_this.props.children] &&
|
|
219
|
+
setChildreChecked(data[_this.props.children], true)
|
|
220
|
+
} else {
|
|
221
|
+
// 如果节点取消选中,则取消该节点下的子节点选中
|
|
222
|
+
data[_this.props.children] &&
|
|
223
|
+
setChildreChecked(data[_this.props.children], false)
|
|
224
|
+
}
|
|
225
|
+
// 每次选择执行(解决卡顿)
|
|
226
|
+
// 调用父组件方法
|
|
227
|
+
_this.roleManagement.dialog.defaultChecked = this.$refs.tree
|
|
228
|
+
.getCheckedNodes()
|
|
229
|
+
.map((item) => {
|
|
230
|
+
return item.id
|
|
231
|
+
})
|
|
232
|
+
_this.$emit('treeCheck', this.$refs.tree.getCheckedNodes())
|
|
233
|
+
function setParentChecked(parenId) {
|
|
234
|
+
// eslint-disable-next-line no-undef
|
|
235
|
+
if (_.isNumber(parenId)) {
|
|
236
|
+
// 获取该id的父级node
|
|
237
|
+
const parentNode = _this.$refs.tree.getNode(parenId)
|
|
238
|
+
// 如果该id的父级node存在父级id则继续遍历
|
|
239
|
+
parentNode.data.pid && setParentChecked(setParentChecked)
|
|
240
|
+
// 设置该id的节点为选中状态
|
|
241
|
+
_this.$refs.tree.setChecked(parenId, true)
|
|
242
|
+
} else {
|
|
243
|
+
return
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
function setChildreChecked(node, isChecked) {
|
|
247
|
+
node.forEach((item) => {
|
|
248
|
+
item[_this.props.children] &&
|
|
249
|
+
setChildreChecked(item[_this.props.children], isChecked)
|
|
250
|
+
!item.disabled && _this.$refs.tree.setChecked(item.id, isChecked)
|
|
251
|
+
})
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
</script>
|
|
257
|
+
|
|
258
|
+
<style lang="scss" scoped>
|
|
259
|
+
.option-wrapper {
|
|
260
|
+
padding: 0 !important;
|
|
261
|
+
}
|
|
262
|
+
</style>
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<KunkkaModal
|
|
3
|
+
ref="registerModal"
|
|
4
|
+
width="600px"
|
|
5
|
+
:visible.sync="visible"
|
|
6
|
+
:can-fullscreen="true"
|
|
7
|
+
:show-close="false"
|
|
8
|
+
:title="title"
|
|
9
|
+
top="10px"
|
|
10
|
+
@ok="handleOk"
|
|
11
|
+
>
|
|
12
|
+
<kunkka-form
|
|
13
|
+
label-position="left"
|
|
14
|
+
label-width="110px"
|
|
15
|
+
:show-message="false"
|
|
16
|
+
:lg="24"
|
|
17
|
+
v-bind="ywsjzd.formModalAttrs"
|
|
18
|
+
>
|
|
19
|
+
<template #cMeta="{ item }">
|
|
20
|
+
<el-table :data="ywsjzd.formModalAttrs.model[item.prop]" border size="mini">
|
|
21
|
+
<el-table-column label="key">
|
|
22
|
+
<template slot-scope="scope">
|
|
23
|
+
<el-select v-model="scope.row.key" size="mini" style="width: 100%;">
|
|
24
|
+
<el-option v-for="op in keyOpts" :key="op.cXuhao" :label="op.cName" :value="op.cXuhao" />
|
|
25
|
+
</el-select>
|
|
26
|
+
</template>
|
|
27
|
+
</el-table-column>
|
|
28
|
+
<el-table-column label="value">
|
|
29
|
+
<template slot-scope="scope">
|
|
30
|
+
<el-input v-model="scope.row.value" size="mini" style="width: 100%;" />
|
|
31
|
+
</template>
|
|
32
|
+
</el-table-column>
|
|
33
|
+
<el-table-column label="操作" width="40" align="center">
|
|
34
|
+
<template #header>
|
|
35
|
+
<i
|
|
36
|
+
class="el-icon-circle-plus-outline"
|
|
37
|
+
style="font-size: 16px; cursor: pointer;"
|
|
38
|
+
@click="ywsjzd.formModalAttrs.model[item.prop].push({})"
|
|
39
|
+
/>
|
|
40
|
+
</template>
|
|
41
|
+
<template slot-scope="scope">
|
|
42
|
+
<i
|
|
43
|
+
class="el-icon-remove-outline"
|
|
44
|
+
style="font-size: 16px; cursor: pointer;"
|
|
45
|
+
@click="ywsjzd.formModalAttrs.model[item.prop].splice(scope.$index, 1)"
|
|
46
|
+
/>
|
|
47
|
+
</template>
|
|
48
|
+
</el-table-column>
|
|
49
|
+
</el-table>
|
|
50
|
+
</template>
|
|
51
|
+
</kunkka-form>
|
|
52
|
+
</KunkkaModal>
|
|
53
|
+
</template>
|
|
54
|
+
<script>
|
|
55
|
+
/* eslint-disable no-async-promise-executor */
|
|
56
|
+
import { mapGetters } from 'vuex'
|
|
57
|
+
import { queryByXuhao } from '@/api/core'
|
|
58
|
+
|
|
59
|
+
export default {
|
|
60
|
+
data() {
|
|
61
|
+
return {
|
|
62
|
+
name: 'ywsjzd',
|
|
63
|
+
title: '业务数据字典-新增',
|
|
64
|
+
visible: false,
|
|
65
|
+
keyOpts: []
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
computed: {
|
|
69
|
+
...mapGetters(['ywsjzd'])
|
|
70
|
+
},
|
|
71
|
+
mounted: function() {},
|
|
72
|
+
methods: {
|
|
73
|
+
//
|
|
74
|
+
onDataReceive(res) {
|
|
75
|
+
this.ywsjzd.formModalAttrs.form = res.resFieldList.form
|
|
76
|
+
this.ywsjzd.formModalAttrs.model = {
|
|
77
|
+
nParent: res.nParent || 0,
|
|
78
|
+
cMeta: []
|
|
79
|
+
}
|
|
80
|
+
queryByXuhao({ cXuhao: 'DICTATTR' }).then(res => {
|
|
81
|
+
this.keyOpts = res.result
|
|
82
|
+
})
|
|
83
|
+
this.visible = true
|
|
84
|
+
},
|
|
85
|
+
// 弹窗确定回调
|
|
86
|
+
handleOk() {
|
|
87
|
+
this.$refs.registerModal.changeOkLoading(true)
|
|
88
|
+
this.$store.dispatch('ywsjzd/addSave').then(() => {
|
|
89
|
+
this.visible = false
|
|
90
|
+
this.$emit('handleSubmit')
|
|
91
|
+
}).finally(() => {
|
|
92
|
+
this.$refs.registerModal.changeOkLoading(false)
|
|
93
|
+
})
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
</script>
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="ywsjzd commonQueryDiv">
|
|
3
|
+
<kunkka-ux-grid
|
|
4
|
+
ref="kunkka-ux-grid"
|
|
5
|
+
v-bind="ywsjzd.tableAttrs"
|
|
6
|
+
row-id="id"
|
|
7
|
+
:checkbox-config="{
|
|
8
|
+
checkStrictly:true
|
|
9
|
+
}"
|
|
10
|
+
:tree-config="{lazy: true, children: 'children', hasChild: 'hasChildren', loadMethod: loadChildrenMethod }"
|
|
11
|
+
@toggleToolbarClick="toggleToolbarClick"
|
|
12
|
+
@selection-change="toggleSelectRow"
|
|
13
|
+
/>
|
|
14
|
+
<DataDictionaryAdd ref="registerDataDictionaryAdd" @handleSubmit="handleSubmit" />
|
|
15
|
+
<DataDictionaryUpdate ref="registerDataDictionaryUpdate" @handleSubmit="handleSubmit" />
|
|
16
|
+
<!-- 导入弹窗 -->
|
|
17
|
+
<importDialog />
|
|
18
|
+
</div>
|
|
19
|
+
</template>
|
|
20
|
+
<script>
|
|
21
|
+
// test
|
|
22
|
+
/* eslint-disable no-async-promise-executor */
|
|
23
|
+
import { mapGetters } from 'vuex'
|
|
24
|
+
import DataDictionaryAdd from './ywsjzdAdd.vue'
|
|
25
|
+
import DataDictionaryUpdate from './ywsjzdUpdate.vue'
|
|
26
|
+
import list from '@/mixins/list'
|
|
27
|
+
|
|
28
|
+
export default {
|
|
29
|
+
name: 'YwsjzdQuery',
|
|
30
|
+
components: {
|
|
31
|
+
DataDictionaryAdd,
|
|
32
|
+
DataDictionaryUpdate
|
|
33
|
+
},
|
|
34
|
+
mixins: [list],
|
|
35
|
+
data() {
|
|
36
|
+
return {
|
|
37
|
+
name: 'ywsjzd',
|
|
38
|
+
visible: false
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
computed: {
|
|
42
|
+
...mapGetters(['ywsjzd'])
|
|
43
|
+
},
|
|
44
|
+
mounted: function() {},
|
|
45
|
+
methods: {
|
|
46
|
+
// 表格按钮回调
|
|
47
|
+
toggleToolbarClick: function(data) {
|
|
48
|
+
const { handle } = data.item
|
|
49
|
+
switch (handle) {
|
|
50
|
+
case 'ywsjzd/add':
|
|
51
|
+
this.currentUserResourcesGroupBycArea({ modnumb: 'bc8cd31b-3cf4-4cee-a7da-b6f4ab40a8f6' }).then(result => {
|
|
52
|
+
const { resFieldList, resButtonList } = result
|
|
53
|
+
this.$refs.registerDataDictionaryAdd.onDataReceive({
|
|
54
|
+
visible: true,
|
|
55
|
+
nParent: this.ywsjzd.selectRow[0]?.id,
|
|
56
|
+
resFieldList,
|
|
57
|
+
resButtonList
|
|
58
|
+
})
|
|
59
|
+
})
|
|
60
|
+
break
|
|
61
|
+
case 'ywsjzd/update':
|
|
62
|
+
this.$refs.registerDataDictionaryUpdate.onDataReceive({
|
|
63
|
+
visible: true,
|
|
64
|
+
row: this[this.name].selectRow[0]
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
break
|
|
68
|
+
case 'ywsjzd/enable':
|
|
69
|
+
this.handleSubmit()
|
|
70
|
+
break
|
|
71
|
+
case 'ywsjzd/disabled':
|
|
72
|
+
this.handleSubmit()
|
|
73
|
+
break
|
|
74
|
+
case 'ywsjzd/del':
|
|
75
|
+
this.handleSubmit()
|
|
76
|
+
break
|
|
77
|
+
default:
|
|
78
|
+
break
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
// 选择行事件
|
|
82
|
+
toggleSelectRow: function(row) {
|
|
83
|
+
const self = this
|
|
84
|
+
self[self.name].selectRow = row
|
|
85
|
+
},
|
|
86
|
+
// 弹窗确定回调
|
|
87
|
+
handleOk() {
|
|
88
|
+
this.$refs.registerModal.changeOkLoading(true)
|
|
89
|
+
|
|
90
|
+
if (this.ywsjzd.formModalAttrs.model.type !== 'update') {
|
|
91
|
+
this.$store.dispatch('ywsjzd/addSave').then(() => {
|
|
92
|
+
this.visible = false
|
|
93
|
+
this.$refs['kunkka-ux-grid'].fetch()
|
|
94
|
+
}).finally(() => {
|
|
95
|
+
this.$refs.registerModal.changeOkLoading(false)
|
|
96
|
+
})
|
|
97
|
+
} else {
|
|
98
|
+
this.$store.dispatch('ywsjzd/updateSave').then(() => {
|
|
99
|
+
this.visible = false
|
|
100
|
+
}).finally(() => {
|
|
101
|
+
this.$refs.registerModal.changeOkLoading(false)
|
|
102
|
+
})
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
handleSubmit() {
|
|
106
|
+
this.$refs['kunkka-ux-grid'].fetch()
|
|
107
|
+
this[this.name].selectRow = []
|
|
108
|
+
},
|
|
109
|
+
// 懒加载
|
|
110
|
+
loadChildrenMethod({ row }) {
|
|
111
|
+
return new Promise((resolve, reject) => {
|
|
112
|
+
// this.loadNodeMap.set(row.id, { row, resolve })
|
|
113
|
+
const jsonStr = {
|
|
114
|
+
pageNo: 1,
|
|
115
|
+
pageSize: 999,
|
|
116
|
+
authDict: {
|
|
117
|
+
nParent: row.id
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
this.$store.dispatch('ywsjzd/queryListAction', { jsonStr }).then((res) => {
|
|
121
|
+
if (res.records.length > 0) {
|
|
122
|
+
res.records.forEach(element => {
|
|
123
|
+
element.hasChildren = true
|
|
124
|
+
})
|
|
125
|
+
} else {
|
|
126
|
+
row.hasChildren = false
|
|
127
|
+
}
|
|
128
|
+
resolve(res.records)
|
|
129
|
+
})
|
|
130
|
+
})
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
</script>
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<KunkkaModal
|
|
4
|
+
ref="registerModal"
|
|
5
|
+
width="960px"
|
|
6
|
+
:visible.sync="visible"
|
|
7
|
+
:can-fullscreen="true"
|
|
8
|
+
:show-close="false"
|
|
9
|
+
:title="title"
|
|
10
|
+
top="10px"
|
|
11
|
+
@ok="handleOk"
|
|
12
|
+
>
|
|
13
|
+
<kunkka-form
|
|
14
|
+
label-position="left"
|
|
15
|
+
label-width="110px"
|
|
16
|
+
:lg="24"
|
|
17
|
+
:show-message="false"
|
|
18
|
+
v-bind="tableAttr.formConfig"
|
|
19
|
+
@inputSearchClick="inputSearchClick"
|
|
20
|
+
>
|
|
21
|
+
<template #cMeta="{ item }">
|
|
22
|
+
<el-table :data="tableAttr.formConfig.model[item.prop]" border size="mini">
|
|
23
|
+
<el-table-column label="key">
|
|
24
|
+
<template slot-scope="scope">
|
|
25
|
+
<el-select v-model="scope.row.key" size="mini" style="width: 100%;">
|
|
26
|
+
<el-option v-for="op in keyOpts" :key="op.cXuhao" :label="op.cName" :value="op.cXuhao" />
|
|
27
|
+
</el-select>
|
|
28
|
+
</template>
|
|
29
|
+
</el-table-column>
|
|
30
|
+
<el-table-column label="value">
|
|
31
|
+
<template slot-scope="scope">
|
|
32
|
+
<el-input v-model="scope.row.value" size="mini" style="width: 100%;" />
|
|
33
|
+
</template>
|
|
34
|
+
</el-table-column>
|
|
35
|
+
<el-table-column label="操作" width="40" align="center">
|
|
36
|
+
<template #header>
|
|
37
|
+
<i
|
|
38
|
+
class="el-icon-circle-plus-outline"
|
|
39
|
+
style="font-size: 16px; cursor: pointer;"
|
|
40
|
+
@click="tableAttr.formConfig.model[item.prop].push({})"
|
|
41
|
+
/>
|
|
42
|
+
</template>
|
|
43
|
+
<template slot-scope="scope">
|
|
44
|
+
<i
|
|
45
|
+
class="el-icon-remove-outline"
|
|
46
|
+
style="font-size: 16px; cursor: pointer;"
|
|
47
|
+
@click="tableAttr.formConfig.model[item.prop].splice(scope.$index, 1)"
|
|
48
|
+
/>
|
|
49
|
+
</template>
|
|
50
|
+
</el-table-column>
|
|
51
|
+
</el-table>
|
|
52
|
+
</template>
|
|
53
|
+
</kunkka-form>
|
|
54
|
+
|
|
55
|
+
<kunkka-ux-grid
|
|
56
|
+
ref="kunkka-ux-grid"
|
|
57
|
+
v-bind="tableAttr"
|
|
58
|
+
:height="250"
|
|
59
|
+
/>
|
|
60
|
+
|
|
61
|
+
<!-- 资源国际化配置 -->
|
|
62
|
+
</KunkkaModal>
|
|
63
|
+
<i18nDataDialog />
|
|
64
|
+
</div>
|
|
65
|
+
</template>
|
|
66
|
+
<script>
|
|
67
|
+
/* eslint-disable no-async-promise-executor */
|
|
68
|
+
import { mapGetters } from 'vuex'
|
|
69
|
+
import { queryByXuhao } from '@/api/core'
|
|
70
|
+
import i18nDataDialog from '@/components/i18nDataDialog'
|
|
71
|
+
import formTable from '@/mixins/formTable'
|
|
72
|
+
export default {
|
|
73
|
+
components: {
|
|
74
|
+
i18nDataDialog
|
|
75
|
+
},
|
|
76
|
+
mixins: [formTable],
|
|
77
|
+
data() {
|
|
78
|
+
return {
|
|
79
|
+
name: 'ywsjzd',
|
|
80
|
+
title: '业务数据字典-修改',
|
|
81
|
+
visible: false,
|
|
82
|
+
keyOpts: []
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
computed: {
|
|
86
|
+
...mapGetters(['ywsjzd'])
|
|
87
|
+
},
|
|
88
|
+
mounted: function() {},
|
|
89
|
+
methods: {
|
|
90
|
+
onDataReceive(data) {
|
|
91
|
+
const { visible, row } = data
|
|
92
|
+
const _this = this
|
|
93
|
+
if (visible) {
|
|
94
|
+
this.currentUserResourcesGroupBycArea({ modnumb: '359a862a-f4fd-4366-81ef-ac3cb64085df' }).then(result => {
|
|
95
|
+
const { resFieldList, resButtonList } = result
|
|
96
|
+
this.tableAttr.columns = resFieldList.table
|
|
97
|
+
this.tableAttr.formConfig.form = resFieldList.form
|
|
98
|
+
this.tableAttr.toolbar = resButtonList.table || []
|
|
99
|
+
this.$store.dispatch(`${this.name}/editInitById`, {
|
|
100
|
+
id: row.id
|
|
101
|
+
}).then((res) => {
|
|
102
|
+
_this.tableAttr.model = res.result.childList
|
|
103
|
+
_this.$refs['kunkka-ux-grid'].$refs['kunkka-ux-grid'].reloadData(res.result.childList)
|
|
104
|
+
|
|
105
|
+
this.tableAttr.formConfig.model = { ...res.result.authDict,
|
|
106
|
+
cMeta: res.result.authDict.cMeta ? _.reduce(JSON.parse(res.result.authDict.cMeta), function(result, value, key) {
|
|
107
|
+
result.push({
|
|
108
|
+
'key': key,
|
|
109
|
+
'value': value
|
|
110
|
+
})
|
|
111
|
+
return result
|
|
112
|
+
}, []) : []
|
|
113
|
+
}
|
|
114
|
+
})
|
|
115
|
+
queryByXuhao({ cXuhao: 'DICTATTR' }).then(res => {
|
|
116
|
+
this.keyOpts = res.result
|
|
117
|
+
})
|
|
118
|
+
this.visible = true
|
|
119
|
+
})
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
// 弹窗确定回调
|
|
123
|
+
handleOk() {
|
|
124
|
+
this.$refs.registerModal.changeOkLoading(true)
|
|
125
|
+
|
|
126
|
+
const model = this.tableAttr.formConfig.model
|
|
127
|
+
const cMetaObj = _.reduce(model.cMeta, function(result, value, key) {
|
|
128
|
+
result[value.key] = value.value
|
|
129
|
+
return result
|
|
130
|
+
}, {})
|
|
131
|
+
model.cMeta = JSON.stringify(cMetaObj)
|
|
132
|
+
model.authDictList = this.tableAttr.model
|
|
133
|
+
|
|
134
|
+
this.$store.dispatch(`${this.name}/updateSaveById`, { authDict: {
|
|
135
|
+
...model
|
|
136
|
+
},
|
|
137
|
+
authDictList: this.tableAttr.model
|
|
138
|
+
}
|
|
139
|
+
).then(() => {
|
|
140
|
+
this.visible = false
|
|
141
|
+
this.$emit('handleSubmit')
|
|
142
|
+
}).finally(() => {
|
|
143
|
+
this.$refs.registerModal.changeOkLoading(false)
|
|
144
|
+
})
|
|
145
|
+
},
|
|
146
|
+
inputSearchClick(data) {
|
|
147
|
+
this.$store.dispatch('i18nDataDialog/show', {
|
|
148
|
+
nParentId: this.tableAttr.formConfig.model['id'],
|
|
149
|
+
cBname: 'AUTH_DICT', // 业务表名
|
|
150
|
+
cFname: 'C_NAME', // 业务字段
|
|
151
|
+
cDataKey: this.tableAttr.formConfig.model[data.prop]
|
|
152
|
+
})
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
</script>
|
package/user/api/user.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { request } from '@core/utils'
|
|
2
|
-
|
|
3
|
-
export function login(data) {
|
|
4
|
-
return request({
|
|
5
|
-
url: '/base-auth/login',
|
|
6
|
-
method: 'post',
|
|
7
|
-
data,
|
|
8
|
-
params: data
|
|
9
|
-
})
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export function logout() {
|
|
13
|
-
return request({
|
|
14
|
-
url: '/base-auth/logout',
|
|
15
|
-
method: 'post'
|
|
16
|
-
})
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export function getInfo(data) {
|
|
20
|
-
return request({
|
|
21
|
-
url: '/core/contact/getCurrentUserAndResources',
|
|
22
|
-
method: 'post',
|
|
23
|
-
data
|
|
24
|
-
})
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export function getGyUuid(data) {
|
|
28
|
-
return request({
|
|
29
|
-
url: '/core/assSysSetting/getGyUuid',
|
|
30
|
-
method: 'post',
|
|
31
|
-
data
|
|
32
|
-
})
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export function updatePwd(data) {
|
|
36
|
-
return request({
|
|
37
|
-
url: '/core/authUser/updatePwd',
|
|
38
|
-
method: 'post',
|
|
39
|
-
data
|
|
40
|
-
})
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export function findAllUser(data) {
|
|
44
|
-
return request({
|
|
45
|
-
url: '/core/authUser/findAllUser',
|
|
46
|
-
method: 'post',
|
|
47
|
-
data
|
|
48
|
-
})
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export function changeAccount(data) {
|
|
52
|
-
return request({
|
|
53
|
-
url: '/changeAccount',
|
|
54
|
-
method: 'post',
|
|
55
|
-
data
|
|
56
|
-
})
|
|
57
|
-
}
|