标签管理字典配置

This commit is contained in:
caoyang
2022-03-04 15:14:41 +08:00
parent 923d02bbe7
commit 1caa38a97d
10 changed files with 154 additions and 140 deletions
+13
View File
@@ -416,4 +416,17 @@ module.exports = {
PersonnelSelection:'Personnel selection',
EmployeeNumber:'Employee number',
EmployeeType:'Employee type',
LabeItemName:'Label item name',
PleaseEnterLabelName:'Please enter label name',
DisplayArea:'Display area',
ChineseName:'Chinese name',
AttributeType:'Attribute type',
FieldLength:'Field length',
DisplayOrder:'Display order',
LabelName:'Label name',
LabelType:'Label type',
PleaseSelectLabelType:'Please select a label type',
PleaseEnterDescription:'Please enter a description',
LengthBe1to100:'Length should be 1 to 100',
}
+12
View File
@@ -420,4 +420,16 @@ module.exports = {
PersonnelSelection:'人员选择',
EmployeeNumber:'员工号',
EmployeeType:'员工类型',
LabeItemName:'标签项名称',
PleaseEnterLabelName:'请输入标签名称',
DisplayArea:'展示区域',
ChineseName:'中文名称',
AttributeType:'属性类型',
FieldLength:'字段长度',
DisplayOrder:'展示顺序',
LabelName:'标签名称',
LabelType:'标签类型',
PleaseSelectLabelType:'请选择标签类型',
PleaseEnterDescription:'请输入描述',
LengthBe1to100:'长度应为1到100',
}
@@ -2,7 +2,7 @@
<div class="doc-table">
<a-drawer
class="doc-table-drawer"
title="调取已入库文件"
:title="title"
placement="right"
:visible="visible"
:after-visible-change="afterVisibleChange"
@@ -50,6 +50,7 @@
},
data(){
return{
title:this.$t('RetrieveFiles'),
visible:false,
queryParams:{
pageNo:1,
@@ -30,8 +30,10 @@
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="属性类型" prop="fieldShowType">
<j-dict-select-tag type="list" v-model="form.fieldShowType" dictCode="field_show_type" placeholder="请选择属性类型" />
<a-form-model-item label="属性类型" prop="fieldShowType" >
<j-dict-select-tag type="list"v-model="form.fieldShowType" dictCode="field_show_type" />
<!-- <j-dict-select-tag type="list" v-if="type=='input'" v-model="form.fieldShowType" dictCode="sys_dict_item,item_text,item_value,dict_id='1493098515761917954' and (item_text = '输入框(字符串)' or item_text = '输入框(数字)' or item_text = '单日期选择' or item_text = '多日期选择' or item_text = '文件' or item_text = '文本框' or item_text='标准选择' or item_text = '输入框(链接)' or item_text = '人员选择') " placeholder="请选择属性类型" />-->
<!-- <j-dict-select-tag type="list" v-if="type=='select'" v-model="form.fieldShowType" dictCode="sys_dict_item,item_text,item_value,dict_id='1493098515761917954' and (item_text = '单选下拉框' or item_text = '多选下拉框' or item_text = '树形结构')" placeholder="请选择属性类型" />-->
</a-form-model-item>
</a-col>
<a-col :span="24" v-if="isTagContent">
@@ -152,6 +154,9 @@
},
submitEdit:{
type:String
},
type:{
type:String
}
},
data () {
@@ -217,11 +222,27 @@
//展示区域选项内容
areaOptions:[],
//选项内容选项
contentOption:[]
contentOption:[],
contentFlag:3,
contentOption1:[],
contentOption2:[]
}
},
watch:{
'form.fieldShowType'(val){
// this.contentFlag=val
if(val==0){
this.contentOption=[...this.contentOption2]
// console.log('ops11',this.contentOption)
}else{
this.contentOption=[...this.contentOption1]
// console.log('ops22',this.contentOption)
}
// console.log('val',val)
},
contentOption(){
}
},
computed: {
changeType(val){
@@ -261,7 +282,16 @@
let params = {};
getAction(`sys/dict/queryDictName`,params).then((res)=>{
if(res.success){
this.contentOption=res.result
let data=[...res.result]
this.contentOption1=[]
this.contentOption2=[]
data.map(res=>{
if(res.attributeType=='1'){
this.contentOption1.push(res)
}else if(res.attributeType=='2'){
this.contentOption2.push(res)
}
})
}
});
},
@@ -37,15 +37,18 @@
:wrapper-col="wrapperCol"
>
<a-form-model-item label="名称" prop="itemText">
<a-input v-model="form.itemText" placeholder="请输入名称" />
<a-form-model-item label="名称" prop="name">
<a-input v-model="form.name" placeholder="请输入名称" />
</a-form-model-item>
<a-form-model-item label="数据值" prop="itemValue">
<a-input v-model="form.itemValue" placeholder="请输入数据值" />
</a-form-model-item>
<a-form-model-item label="英文名称" prop="enName">
<a-input v-model="form.enName" placeholder="请输入英文名称" />
</a-form-model-item>
<a-form-model-item label="父级名称" prop="pid" v-if="parentVisible">
<a-select v-model="form.pid" @change="handleChange" placeholder="请选择" >
<a-select-option :value="item.id" v-for="(item, index) in tabletreeData" :key="item.id">
<a-select-option :value="item.id" v-for="(item, index) in parentData" :key="item.id">
{{item.name}}
</a-select-option>
</a-select>
@@ -99,10 +102,14 @@
form:{},
newVisible:false,
rules:{
itemText:[
name:[
{ required: true, message: '请输入名称', trigger: 'blur' },
{ min:1, max: 30, message: '长度在 1 - 30字符', trigger: 'blur' },
],
itemValue:[
{ required: true, message: '请输入数据值', trigger: 'blur' },
{ min:1, max: 30, message: '长度在 1 - 30字符', trigger: 'blur' },
],
enName:[
{ required: true, message: '请输入英文名称', trigger: 'blur' },
{ min:1, max: 100, message: '长度在 1 - 100字符', trigger: 'blur' },
@@ -160,6 +167,7 @@
total:0,
isEdit:false,
selectedIds:[], //树形选中的id
parentData:[]
}
},
watch: {
@@ -169,13 +177,8 @@
},
mounted() {
this.loadData()
this.getParents()
},
methods:{
//获取父级列表
getParents(){
},
//获取列表数据
loadData(){
this.dataFlag=false
@@ -191,7 +194,6 @@
this.tableData=[...res.result.records]
this.dataFlag=true
}
})
}else if(this.dictVal=='tree'){
getAction(`sys/category/queryBySysDictId`,{
@@ -200,17 +202,27 @@
isTagDict:1
}).then(res=>{
let parentNode=[]
this.tabletreeData=[...res.result]
let data = this.toTree(this.tabletreeData)
let tabletreeData=[...res.result]
let data = this.toTree(tabletreeData)
this.tabletreeData=data
this.parentData=this.getParents(tabletreeData)
this.dataFlag=true
})
}
},
//获取父级名称
getParents(data){
let parents=[]
data.forEach((item)=>{
if(item.pid=='0'){
parents.push(item)
}
})
return parents
},
//将数据拼成树形结构
toTree(config) {
// 删除 所有 children,以防止多次调用
config.forEach(function(item) {
delete item.children;
});
@@ -340,6 +352,9 @@
this.title=this.$t('edit')
this.isEdit=true
this.form={...form}
if(form.pid=='0'){
this.form.pid=''
}
this.newVisible=val
this.parentVisible=true
},
@@ -1,6 +1,6 @@
<template>
<div class="new-tag-drawer">
<onl-cgform-tag-form ref="realForm" @ok="submitCallback" :isTagContent="isTagContent" :editData="editData" :editId=editId :submitEdit="submitEdit" :disabled="disableSubmit" normal v-if="drawerVisible"> </onl-cgform-tag-form>
<onl-cgform-tag-form ref="realForm" @ok="submitCallback" :isTagContent="isTagContent" :editData="editData" :editId=editId :submitEdit="submitEdit" :type="type" :disabled="disableSubmit" normal v-if="drawerVisible"> </onl-cgform-tag-form>
<div class="drawer-footer">
<a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;">{{$t('preservation')}}</a-button>
@@ -30,7 +30,8 @@
isTagContent:Boolean,
editData:Object,
editId:String,
submitEdit:String
submitEdit:String,
type:String
},
mounted() {
this.visible=this.drawerVisible
@@ -72,11 +72,13 @@
let treeData = [...res.result]
let data = this.toTree(treeData)
this.tabData=data
let parents=this.getParents(treeData)
this.loading=false
// console.log('treedata',data)
// this.dataFlag=true
})
},
//将数据拼成树形结构
toTree(config) {
// 删除 所有 children,以防止多次调用
@@ -10,17 +10,15 @@
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
@change="handleTableChange">
<a slot="name" slot-scope="text">{{ text }}</a>
<span slot="customTitle">属性名称</span>
<span slot="action" slot-scope="text, record">
<a @click="editVisible(record.id)" v-if="record.isReadOnly==0">编辑</a>
<a @click="editVisible(record.id)" v-if="record.isReadOnly==0">{{$t('edit')}}</a>
<a-divider type="vertical" v-if="record.isReadOnly==0" />
<a class="table-del" @click="deleteVisible(record.id)">删除</a>
</span>
<a class="table-del" @click="deleteVisible(record.id)">{{$t('delete')}}</a>
</span>
</a-table>
<div class="page" v-if="tableData.length > 0">
<a-pagination
:show-total="total => ` ${total} `"
:show-total="total => $t('total')+` ${total} `+ $t('strip')"
show-quick-jumper
show-size-changer
:current="queryParams.pageNo"
@@ -4,8 +4,8 @@
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="6" :sm="12">
<a-form-item :label="'标签项名称'">
<j-input :placeholder="'请输入标签名称'" v-model="queryParams.dictName"></j-input>
<a-form-item :label="$t('LabeItemName')">
<j-input :placeholder="$t('PleaseEnterLabelName')" v-model="queryParams.dictName"></j-input>
</a-form-item>
</a-col>
<a-col :md="6" :sm="8">
@@ -32,20 +32,20 @@
:label-col="labelCol"
:wrapper-col="wrapperCol"
>
<a-form-model-item ref="tagName" label="标签名称" prop="dictName">
<a-form-model-item ref="tagName" :label="$t('LabeItemName')" prop="dictName">
<a-input
v-model="form.dictName"
placeholder="请输入标签名称"
:placeholder="$t('PleaseEnterLabelName')"
/>
</a-form-model-item>
<a-form-model-item label="标签类型" prop="attributeType">
<j-dict-select-tag type="list" v-model="form.attributeType" dictCode="attribute_type" placeholder="请选择标签类型" />
<a-form-model-item :label="$t('LabelType')" prop="attributeType" v-if="isEdit==1">
<j-dict-select-tag type="list" v-model="form.attributeType" dictCode="attribute_type" :placeholder="$t('PleaseSelectLabelType')" />
</a-form-model-item>
<a-form-model-item ref="describe" label="描述" prop="description">
<a-form-model-item ref="describe" :label="$t('describe')" prop="description">
<a-input
v-model="form.description"
placeholder="请输入描述"
:placeholder="$t('PleaseEnterDescription')"
/>
</a-form-model-item>
</a-form-model>
@@ -54,14 +54,14 @@
<a-table bordered :data-source="tableData" :columns="columns" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :pagination="false" class="tag-con-table">
<template slot="action" slot-scope="text, record">
<a class="action-dict" @click="handleDicPop(record)">字典配置</a>
<a class="action-edit" @click="actionEdit(record)">编辑</a>
<a class="action-delete" href="javascript:;" @click="onDelete(record)">删除</a>
<a class="action-dict" @click="handleDicPop(record)">{{$t('DictionaryConfiguration')}}</a>
<a class="action-edit" @click="actionEdit(record)">{{$t('edit')}}</a>
<a class="action-delete" href="javascript:;" @click="onDelete(record)">{{$t('delete')}}</a>
</template>
</a-table>
<div class="page" v-if="tableData.length > 0">
<a-pagination
:show-total="total => ` ${total} `"
:show-total="total => $t('total')+` ${total} `+$t('strip')"
show-quick-jumper
show-size-changer
:page-size.sync="queryParams.pageSize"
@@ -72,7 +72,7 @@
</div>
<a-drawer
class="dict-drawer"
title="字典列表"
:title="$t('DictionaryList')"
placement="right"
:closable="true"
:visible="dicVisible"
@@ -107,36 +107,23 @@
},
selectedRowKeys: [],
contentVisible:false,
tableData:[
{
key: '1',
tagName: '适用地区',
tagType:'下拉单选',
describe:'单选',
},
{
key: '2',
tagName: '类别',
tagType:'下拉单选',
describe:'单选',
},
],
tableData:[],
columns: [
{
title: '标签名称',
title: this.$t('LabelName'),
dataIndex: 'dictName',
key: 'dictName',
align: "center",
width: 100,
},
{
title: '标签类型',
title: this.$t('LabelType'),
align: "center",
width: 100,
dataIndex: 'attributeType_dictText',
},
{
title: '描述',
title: this.$t('describe'),
align: "center",
width: 100,
dataIndex: 'description',
@@ -153,10 +140,10 @@
wrapperCol: { span: 18 },
form:{},
rules:{
dictName:[{ required: true, message: '请输入标签名称', trigger: 'change' },
{ min: 1, max: 100, message: 'Length should be 1 to 100', trigger: 'blur' }],
dictName:[{ required: true, message: this.$t('PleaseEnterLabelName'), trigger: 'change' },
{ min: 1, max: 100, message: this.$t('LengthBe1to100'), trigger: 'blur' }],
attributeType:[
{ required: true, message: '请选择标签类型', trigger: 'blur' },
{ required: true, message: this.$t('PleaseSelectLabelType'), trigger: 'blur' },
],
},
@@ -4,14 +4,14 @@
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="6" :sm="12">
<a-form-item :label="'标签项名称'">
<j-input :placeholder="'请输入标签名称'" v-model="queryParam.dbFieldTxt"></j-input>
<a-form-item :label="$t('LabeItemName')">
<j-input :placeholder="$t('PleaseEnterLabelName')" v-model="queryParam.dbFieldTxt"></j-input>
</a-form-item>
</a-col>
<a-col :md="6" :sm="8">
<a-form-item :label="'显示区域'">
<a-form-item :label="$t('DisplayArea')">
<a-select v-model="queryParam.showArea" :placeholder="$t('pleaseSelect')">
<a-select-option :value="item.value" v-for="item in areas">{{item.label}}</a-select-option>
<a-select-option :value="item.id" v-for="item in areas">{{item.showArea}}</a-select-option>
</a-select>
</a-form-item>
</a-col>
@@ -33,7 +33,7 @@
<p class="type type-select" @click="handleAddPop('select')">{{$t('DropDownType')}}</p>
</div>
</template>
<a-icon type="plus" />
<a-icon type="plus" @click="handleAddPop" />
{{$t('add')}}
</a-popover>
</div>
@@ -43,7 +43,7 @@
</div>
</div>
<a-drawer class="show-drawer" :title="titleTag" placement="right" width="1000px" @close="close" :visible="drawerVisible" :after-visible-change="afterVisibleChange" >
<new-drawer v-if="drawerVisible&&editFlag" :drawerVisible="drawerVisible" :isTagContent="isTagContent" :editData="editData" :editId="editId" :submitEdit="submitEdit" @closeTag="closeTag" ></new-drawer>
<new-drawer v-if="drawerVisible&&editFlag" :drawerVisible="drawerVisible" :isTagContent="isTagContent" :editData="editData" :editId="editId" :submitEdit="submitEdit" :type="type" @closeTag="closeTag" ></new-drawer>
</a-drawer>
<a-modal class="show-area" v-model="areaVisible" :title="$t('ExhibitionAreaManagement')" :footer="null" @cancel="hideModal">
<area-manage v-if="areaVisible" @diaHide="diaHide" @submitOk="submitOk" @deleteOk="deleteOk" @updateOk="updateOk"></area-manage>
@@ -54,9 +54,9 @@
<a-tab-pane key="1" :tab="$t('DocumentLibrary')">
<tabTable :tableData="tableData" :columns="taglabColumns" @visibleEd="visibleEd" @visibleDelete="visibleDelete" @queryParams="queryParams" :total="total"></tabTable>
</a-tab-pane>
<a-tab-pane key="2" :tab="$t('DocumentSplitting')" force-render>
<tabTable :tableData="tableData" :columns="taglabColumns" @visibleEd="visibleEd" @visibleDelete="visibleDelete" @queryParams="queryParams" :total="total"></tabTable>
</a-tab-pane>
<!-- <a-tab-pane key="2" :tab="$t('DocumentSplitting')" force-render>-->
<!-- <tabTable :tableData="tableData" :columns="taglabColumns" @visibleEd="visibleEd" @visibleDelete="visibleDelete" @queryParams="queryParams" :total="total"></tabTable>-->
<!-- </a-tab-pane>-->
</a-tabs>
</a-spin>
</div>
@@ -88,70 +88,41 @@
isTagContent:false,
editData:{}, //编辑的数据
editFlag:true,
areas:[
{
value: 1,
label:'基本信息'
},
{
value:2,
label:'文本信息'
}
],
areas:[],
tableData:[],
taglab:[
{
key: '1',
name: '编号',
englishName:'number',
type:'文本框',
length:100,
numberSort:1,
showArea:'文档库'
},
{
key: '2',
name: '标题',
englishName:'title',
type:'下拉单选',
length:100,
numberSort:2,
showArea:'文档拆分'
},
],
taglabColumns: [
{
title: '中文名称',
title: this.$t('ChineseName'),
align: "center",
width: 100,
dataIndex: 'dbFieldTxt',
},
{
title: '英文名称',
title: this.$t('enName'),
align: "center",
width: 100,
dataIndex: 'dbFieldEnName',
},
{
title: '属性类型',
title: this.$t('AttributeType'),
align: "center",
width: 100,
dataIndex: 'fieldShowType_dictText',
},
{
title: '字段长度',
title: this.$t('FieldLength'),
align: "center",
width: 80,
dataIndex: 'dbLength'
},
{
title: '展示顺序',
title: this.$t('DisplayOrder'),
align: "center",
width: 80,
dataIndex: 'orderNum'
},
{
title: '展示区域',
title: this.$t('DisplayArea'),
align: "center",
width: 80,
dataIndex: 'showArea_dictText'
@@ -164,41 +135,7 @@
width: 170
}
],
taglabSplit:[
{
key: '1',
name: '编号',
englishName:'number',
},
{
key: '2',
name: '标题',
englishName:'title',
},
],
tagSplit:[
{
dataIndex: 'dbFieldName',
key: 'dbFieldName',
slots: { title: 'customTitle' },
scopedSlots: { customRender: 'dbFieldName' },
align: "center",
width: 100,
},
{
title: '英文名称',
align: "center",
width: 100,
dataIndex: 'dbFieldEnName',
},
{
title: this.$t('operation'),
dataIndex: 'action',
scopedSlots: {customRender: 'action'},
align: "center",
width: 170
}
],
areaVisible:false,
areaTable:[],
areaTotal:0,
@@ -207,13 +144,30 @@
editId:'',
submitEdit:'add',
key:1,
total:0
total:0,
type:'input'
}
},
mounted() {
this.loadData(1)
this.loadShowArea()
// this.getHeader()
},
methods:{
getHeader(){
getAction(`tag/onlCgformArea/getHeader`,{flag:3}).then(res=>{
})
},
//获取展示区域
loadShowArea(){
let params = {};
getAction(`tag/onlCgformArea/queryShowArea`,params).then((res)=>{
if(res.success){
this.areas=res.result
}
});
},
searchQuery(){
if(this.key==1){
this.loadData(1)
@@ -358,6 +312,7 @@
this.drawerVisible=true
this.titleTag=this.$t('NewLabelItem')
this.submitEdit='add'
this.type=val
if(val=='input'){
this.typeVisible=false
this.isTagContent=false