|
@@ -21,19 +21,19 @@
|
|
|
<span>{{ parentData.name }}</span>
|
|
<span>{{ parentData.name }}</span>
|
|
|
</el-form-item> -->
|
|
</el-form-item> -->
|
|
|
|
|
|
|
|
- <el-form-item label="分类名称:"
|
|
|
|
|
|
|
+ <el-form-item label="分类名称:"
|
|
|
prop="name">
|
|
prop="name">
|
|
|
<el-input v-model="type.name"
|
|
<el-input v-model="type.name"
|
|
|
v-pinyin="{vm:type,key:'typeKey'}" />
|
|
v-pinyin="{vm:type,key:'typeKey'}" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="分类Key:"
|
|
|
|
|
|
|
+ <el-form-item label="分类Key:"
|
|
|
prop="typeKey">
|
|
prop="typeKey">
|
|
|
<el-input v-model="type.typeKey"
|
|
<el-input v-model="type.typeKey"
|
|
|
:disabled="$utils.isNotEmpty(formId)" />
|
|
:disabled="$utils.isNotEmpty(formId)" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
|
|
<el-form-item v-show="categoryKey==='DIC_TYPE'"
|
|
<el-form-item v-show="categoryKey==='DIC_TYPE'"
|
|
|
- label="分类类型:"
|
|
|
|
|
|
|
+ label="分类类型:"
|
|
|
prop="struType">
|
|
prop="struType">
|
|
|
<el-radio-group v-model="type.struType">
|
|
<el-radio-group v-model="type.struType">
|
|
|
<el-radio v-for="option in srtuOptions"
|
|
<el-radio v-for="option in srtuOptions"
|
|
@@ -64,37 +64,48 @@
|
|
|
:model="type"
|
|
:model="type"
|
|
|
:rules="rules"
|
|
:rules="rules"
|
|
|
:label-width="formLabelWidth">
|
|
:label-width="formLabelWidth">
|
|
|
- <el-form-item label="分类:">
|
|
|
|
|
|
|
+ <el-form-item label="分类:">
|
|
|
<span>{{ isPrivateLocal ? '私有分类' : '普通分类' }}</span>
|
|
<span>{{ isPrivateLocal ? '私有分类' : '普通分类' }}</span>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item v-show="!formId"
|
|
<el-form-item v-show="!formId"
|
|
|
- label="父节点名称:">
|
|
|
|
|
|
|
+ label="父节点名称:">
|
|
|
<span>{{ parentData.name }}</span>
|
|
<span>{{ parentData.name }}</span>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="分类名称:"
|
|
|
|
|
|
|
+ <el-form-item label="分类名称:"
|
|
|
prop="name">
|
|
prop="name">
|
|
|
<el-input v-if="!readonly"
|
|
<el-input v-if="!readonly"
|
|
|
v-model="type.name"
|
|
v-model="type.name"
|
|
|
v-pinyin="{vm:type,key:'typeKey'}" />
|
|
v-pinyin="{vm:type,key:'typeKey'}" />
|
|
|
<span v-else>{{ type.name }}</span>
|
|
<span v-else>{{ type.name }}</span>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="分类Key:"
|
|
|
|
|
|
|
+ <el-form-item label="分类Key:"
|
|
|
prop="typeKey">
|
|
prop="typeKey">
|
|
|
<el-input v-if="!readonly"
|
|
<el-input v-if="!readonly"
|
|
|
v-model="type.typeKey"
|
|
v-model="type.typeKey"
|
|
|
:disabled="$utils.isNotEmpty(formId)" />
|
|
:disabled="$utils.isNotEmpty(formId)" />
|
|
|
<span v-else>{{ type.typeKey }}</span>
|
|
<span v-else>{{ type.typeKey }}</span>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="查阅权限:"
|
|
|
|
|
- prop="authorityName"
|
|
|
|
|
|
|
+ <el-form-item label="查阅权限:"
|
|
|
|
|
+ prop="authorityObject.chaYue"
|
|
|
v-show="categoryKey==='FILE_TYPE'">
|
|
v-show="categoryKey==='FILE_TYPE'">
|
|
|
<el-radio-group v-if="!readonly"
|
|
<el-radio-group v-if="!readonly"
|
|
|
- v-model="type.authorityName">
|
|
|
|
|
|
|
+ v-model="type.authorityObject.chaYue"
|
|
|
|
|
+ @change="radioChangeHandle">
|
|
|
<el-radio label="公用查阅">公用查阅</el-radio>
|
|
<el-radio label="公用查阅">公用查阅</el-radio>
|
|
|
<el-radio label="部门查阅">部门查阅</el-radio>
|
|
<el-radio label="部门查阅">部门查阅</el-radio>
|
|
|
<el-radio label="受限查阅">受限查阅</el-radio>
|
|
<el-radio label="受限查阅">受限查阅</el-radio>
|
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
|
- <span v-else>{{ type.authorityName }}</span>
|
|
|
|
|
|
|
+ <span v-else>{{ type.authorityObject.chaYue }}</span>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="部门:"
|
|
|
|
|
+ prop="authorityObject.buMen"
|
|
|
|
|
+ v-show="categoryKey==='FILE_TYPE' && type.authorityObject.chaYue=='部门查阅'">
|
|
|
|
|
+ <el-cascader placeholder="请选择部门"
|
|
|
|
|
+ :options="cascaderOptions"
|
|
|
|
|
+ :props="cascaderProps"
|
|
|
|
|
+ filterable
|
|
|
|
|
+ :disabled="readonly"
|
|
|
|
|
+ v-model="type.authorityObject.buMen"></el-cascader>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item v-show="categoryKey==='DIC_TYPE'"
|
|
<el-form-item v-show="categoryKey==='DIC_TYPE'"
|
|
|
label="字典类型:"
|
|
label="字典类型:"
|
|
@@ -115,6 +126,8 @@ import { save, get } from '@/api/platform/cat/type'
|
|
|
import ActionUtils from '@/utils/action'
|
|
import ActionUtils from '@/utils/action'
|
|
|
import { srtuOptions } from './constants'
|
|
import { srtuOptions } from './constants'
|
|
|
import { validateKey } from '@/utils/validate'
|
|
import { validateKey } from '@/utils/validate'
|
|
|
|
|
+import curdPost from '@/business/platform/form/utils/custom/joinCURD.js'
|
|
|
|
|
+
|
|
|
export default {
|
|
export default {
|
|
|
props: {
|
|
props: {
|
|
|
className: String,
|
|
className: String,
|
|
@@ -158,17 +171,26 @@ export default {
|
|
|
name: '',
|
|
name: '',
|
|
|
typeKey: '',
|
|
typeKey: '',
|
|
|
ownerId: '0',
|
|
ownerId: '0',
|
|
|
- authorityName: ''
|
|
|
|
|
|
|
+ authorityObject: {
|
|
|
|
|
+ chaYue: '', buMen: ''
|
|
|
|
|
+ }
|
|
|
},
|
|
},
|
|
|
rules: {
|
|
rules: {
|
|
|
name: [{ required: true, message: this.$t('validate.required') }],
|
|
name: [{ required: true, message: this.$t('validate.required') }],
|
|
|
typeKey: [{ required: true, validator: validateKey }],
|
|
typeKey: [{ required: true, validator: validateKey }],
|
|
|
- authorityName: [{ required: false }]
|
|
|
|
|
|
|
+ authorityObject: [{ required: false }]
|
|
|
},
|
|
},
|
|
|
toolbars: [
|
|
toolbars: [
|
|
|
{ key: 'save', hidden: () => { return this.readonly } },
|
|
{ key: 'save', hidden: () => { return this.readonly } },
|
|
|
{ key: 'cancel' }
|
|
{ key: 'cancel' }
|
|
|
- ]
|
|
|
|
|
|
|
+ ],
|
|
|
|
|
+ cascaderOptions: [],
|
|
|
|
|
+ cascaderProps: {
|
|
|
|
|
+ multiple: true,
|
|
|
|
|
+ children: 'children', //匹配响应数据中的children
|
|
|
|
|
+ label: 'NAME_', //匹配响应数据中的name
|
|
|
|
|
+ value: 'ID_'
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
computed: {
|
|
computed: {
|
|
@@ -228,7 +250,7 @@ export default {
|
|
|
},
|
|
},
|
|
|
// 保存数据
|
|
// 保存数据
|
|
|
handleSave() {
|
|
handleSave() {
|
|
|
- this.rules.authorityName = this.categoryKey == 'FILE_TYPE' ? [{ required: true, message: '不得为空' }] : [{ required: false }]
|
|
|
|
|
|
|
+ this.rules.authorityObject = this.categoryKey == 'FILE_TYPE' ? [{ required: true, message: '不得为空' }] : [{ required: false }]
|
|
|
this.$refs[this.formName].validate(valid => {
|
|
this.$refs[this.formName].validate(valid => {
|
|
|
if (valid) {
|
|
if (valid) {
|
|
|
this.saveData()
|
|
this.saveData()
|
|
@@ -249,7 +271,6 @@ export default {
|
|
|
this.type.parentId = this.parentData.id
|
|
this.type.parentId = this.parentData.id
|
|
|
this.type.categoryKey = this.categoryKey
|
|
this.type.categoryKey = this.categoryKey
|
|
|
this.type.isPrivate = this.isPrivate
|
|
this.type.isPrivate = this.isPrivate
|
|
|
-
|
|
|
|
|
if (this.$utils.isEmpty(this.type.id) && (this.type.isPrivate === true || this.type.isPrivate === 'true')) {
|
|
if (this.$utils.isEmpty(this.type.id) && (this.type.isPrivate === true || this.type.isPrivate === 'true')) {
|
|
|
this.type.ownerId = this.$store.getters.userId
|
|
this.type.ownerId = this.$store.getters.userId
|
|
|
}
|
|
}
|
|
@@ -303,9 +324,82 @@ export default {
|
|
|
}).then(response => {
|
|
}).then(response => {
|
|
|
this.$refs[this.formName].clearValidate()
|
|
this.$refs[this.formName].clearValidate()
|
|
|
this.type = response.data
|
|
this.type = response.data
|
|
|
|
|
+ this.type.authorityObject = JSON.parse(response.data.authorityObject)
|
|
|
this.isPrivateLocal = !((this.$utils.isEmpty(this.type.ownerId) || this.type.ownerId === '0'))
|
|
this.isPrivateLocal = !((this.$utils.isEmpty(this.type.ownerId) || this.type.ownerId === '0'))
|
|
|
}).catch(() => { })
|
|
}).catch(() => { })
|
|
|
|
|
+ },
|
|
|
|
|
+ radioChangeHandle(h) {
|
|
|
|
|
+ if (h == '部门查阅' && this.cascaderOptions.length == 0) {
|
|
|
|
|
+ this.type.authorityObject.buMen = ''
|
|
|
|
|
+ let sql = `select * FROM ibps_party_entity WHERE party_type_='position' AND PATH_ IN (${this.$store.getters.level.first})`
|
|
|
|
|
+ curdPost('sql', sql).then(res => {
|
|
|
|
|
+ let datas = res.variables.data
|
|
|
|
|
+ let treeDatas = this.buildTree(datas, 'ID_', 'PARENT_ID_')
|
|
|
|
|
+ for (let i in treeDatas) {
|
|
|
|
|
+ this.cascaderOptions.push(treeDatas[i])
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ // 数据扁平化处理
|
|
|
|
|
+ buildTree(array, id, parent_id) {
|
|
|
|
|
+ // 创建临时对象
|
|
|
|
|
+ let temp = {};
|
|
|
|
|
+ // 创建需要返回的树形对象
|
|
|
|
|
+ let tree = {};
|
|
|
|
|
+ // 先遍历数组,将数组的每一项添加到temp对象中
|
|
|
|
|
+ for (let i in array) {
|
|
|
|
|
+ temp[array[i][id]] = array[i];
|
|
|
|
|
+ }
|
|
|
|
|
+ // 遍历temp对象,将当前子节点与父节点建立连接
|
|
|
|
|
+ for (let i in temp) {
|
|
|
|
|
+ // 判断是否是根节点下的项
|
|
|
|
|
+ if (temp[i][parent_id] !== '0') {
|
|
|
|
|
+ if (!temp[temp[i][parent_id]].children) {
|
|
|
|
|
+ temp[temp[i][parent_id]].children = new Array();
|
|
|
|
|
+ }
|
|
|
|
|
+ temp[temp[i][parent_id]].children.push(temp[i]);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ tree[temp[i][id]] = temp[i];
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return tree;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
</script>
|
|
</script>
|
|
|
|
|
+<style lang="scss">
|
|
|
|
|
+.el-cascader {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+}
|
|
|
|
|
+.gy-cascader {
|
|
|
|
|
+ max-width: 500px;
|
|
|
|
|
+ overflow-x: auto;
|
|
|
|
|
+ &::-webkit-scrollbar-track-piece {
|
|
|
|
|
+ background-color: #f8f8f800;
|
|
|
|
|
+ }
|
|
|
|
|
+ &::-webkit-scrollbar {
|
|
|
|
|
+ transition: all 2s;
|
|
|
|
|
+ height: 6px;
|
|
|
|
|
+ }
|
|
|
|
|
+ &::-webkit-scrollbar-thumb {
|
|
|
|
|
+ background-color: #ebeaef;
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ }
|
|
|
|
|
+ &::-webkit-scrollbar-thumb:hover {
|
|
|
|
|
+ background-color: #bbb;
|
|
|
|
|
+ }
|
|
|
|
|
+ &::-webkit-scrollbar-track {
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ }
|
|
|
|
|
+ &::-webkit-scrollbar-corner {
|
|
|
|
|
+ background-color: rgba(255, 255, 255, 0);
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+</style>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|