标签管理

This commit is contained in:
caoyang
2022-02-12 17:45:04 +08:00
parent 6348b30939
commit 59b0ee8684
7 changed files with 241 additions and 108 deletions
+1
View File
@@ -12,6 +12,7 @@
import moment from 'moment' import moment from 'moment'
import 'moment/locale/zh-cn' import 'moment/locale/zh-cn'
moment.locale('zh-cn') moment.locale('zh-cn')
const EN = 'en-us' const EN = 'en-us'
const ZH = 'zh-cn' const ZH = 'zh-cn'
@@ -6,8 +6,22 @@
<div class="form-title">基本信息</div> <div class="form-title">基本信息</div>
<a-divider dashed /> <a-divider dashed />
<a-col :span="24"> <a-col :span="24">
<a-form-item label="所属模块" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="所属模块" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isModel">
<j-dict-select-tag type="list" v-decorator="['isModel', validatorRules.isModel]" :trigger-change="true" dictCode="onl_cgform_area,所属模块,is_model" placeholder="请选择所属模块(1文档库,0文档拆分)" /> <a-select
v-model="form.isModel"
v-decorator="[
'select',
]"
placeholder="请选择所属模块"
>
<a-select-option value="1">
文档库
</a-select-option>
<a-select-option value="2">
文档条款
</a-select-option>
</a-select>
<!-- <j-dict-select-tag type="list" v-decorator="['isModel', validatorRules.isModel]" :trigger-change="true" dictCode="is_model" placeholder="请选择所属模块(1文档库,0文档拆分)" />-->
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
@@ -118,7 +132,10 @@
}, },
data () { data () {
return { return {
form: this.$form.createForm(this), form: {
isModel:'',
},
model: {}, model: {},
labelCol: { labelCol: {
xs: { span: 24 }, xs: { span: 24 },
@@ -195,7 +212,17 @@
add: "/tag/onlCgformTag/add", add: "/tag/onlCgformTag/add",
edit: "/tag/onlCgformTag/edit", edit: "/tag/onlCgformTag/edit",
queryById: "/tag/onlCgformTag/queryById" queryById: "/tag/onlCgformTag/queryById"
},
is_model:[
{
label:1,
value:'文档库'
},
{
label:2,
value:'文档条款'
} }
]
} }
}, },
computed: { computed: {
@@ -11,7 +11,7 @@
:wrapper-col="wrapperCol" :wrapper-col="wrapperCol"
> >
<a-form-model-item label="所属模块" prop="isModel"> <a-form-model-item label="所属模块" prop="isModel">
<a-select v-model="form.isModel" placeholder="请选择所属模块"> <a-select default-value="1" v-model="form.isModel" placeholder="请选择所属模块">
<a-select-option value="1"> <a-select-option value="1">
文档库 文档库
</a-select-option> </a-select-option>
@@ -41,8 +41,13 @@
/> />
</a-form-model-item> </a-form-model-item>
<a-form-model-item ref="sort" label="排序号" prop="sort"> <a-form-model-item ref="sort" label="排序号" prop="sort">
<a-input <!-- <a-input-number v-decorator="['input-number', { initialValue: 3 }]" :min="1" :max="100" />-->
<a-input-number
style="width:100%"
v-model="form.sort" v-model="form.sort"
:min="1"
:formatter="limitNumber"
:parser="limitNumber"
@blur=" @blur="
() => { () => {
$refs.sort.onFieldBlur(); $refs.sort.onFieldBlur();
@@ -93,6 +98,7 @@
selectedRowKeys: [], selectedRowKeys: [],
loading: false, loading: false,
ipagination:true, ipagination:true,
editId:'',
columns: [ columns: [
{ {
title: '展示区域', title: '展示区域',
@@ -131,17 +137,23 @@
labelCol: { span: 4 }, labelCol: { span: 4 },
wrapperCol: { span: 14 }, wrapperCol: { span: 14 },
form: { form: {
isModel:'', isModel:'1',
showArea:'', showArea:'',
enName:'', enName:'',
sort:'' sort:''
}, },
rules: { rules: {
isModel:[{ required: true, message: '请选择所属模块', trigger: 'change' }], isModel:[
showArea:[ { required: true, message: '请选择所属模块', trigger: 'change' },
{ required: true, message: '请选择展示区域', trigger: 'blur' },
{ min: 1, max: 100, message: 'Length should be 1 to 100', trigger: 'blur' },
], ],
showArea:[
{ required: true, message: '请输入展示区域', trigger: 'blur' },
{ min:1, max: 50, message: '长度在 1 - 50字符', trigger: 'blur' },
],
sort:[
{ required: true, message: '请输入排序号', trigger: 'change' },
]
} }
} }
}, },
@@ -164,9 +176,24 @@
}, },
//新增 //新增
hideModal() { hideModal() {
this.newVisible = false;
this.$refs.ruleForm.validate(valid => { this.$refs.ruleForm.validate(valid => {
if (valid) { if (valid) {
//编辑
if(this.form.id){
putAction(`tag/onlCgformArea/edit`,this.form).then((res)=>{
if(res.success){
this.$emit('updateOk',res.result)
this.form={
isModel:'',
showArea:'',
enName:'',
sort:''
}
}
});
}else{
//新增
postAction(`/tag/onlCgformArea/add`,this.form).then(res=>{ postAction(`/tag/onlCgformArea/add`,this.form).then(res=>{
if(res.success){ if(res.success){
this.$emit('submitOk',res.result) this.$emit('submitOk',res.result)
@@ -179,6 +206,8 @@
} }
} }
) )
}
this.newVisible = false;
} else { } else {
// console.log('error submit!!'); // console.log('error submit!!');
return false; return false;
@@ -201,15 +230,28 @@
}, },
//编辑按钮 //编辑按钮
editArea(val){ editArea(val){
this.newVisible = true;
let params={ let params={
id:val id:val
} }
getAction(`tag/onlCgformArea/queryById`, params).then((res) => { getAction(`tag/onlCgformArea/queryById`, params).then((res) => {
if(res.success){ if(res.success){
this.form={...res.result}
// this.$emit('updateOk',res.result) // this.$emit('updateOk',res.result)
} }
}) })
},
//正则替换小数点
limitNumber(value) {
if (typeof value === 'string') {
return !isNaN(Number(value)) ? value.replace(/\./g, '') : 0
} else if (typeof value === 'number') {
return !isNaN(value) ? String(value).replace(/\./g, '') : 0
} else {
return 0
}
} }
} }
} }
@@ -1,64 +0,0 @@
<template>
<div class="content-manage">
<a-form-model
class="tag-module"
ref="ruleForm"
:model="form"
:rules="rules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
>
<a-form-model-item label="所属模块" prop="isModel">
<a-select v-model="form.isModel" placeholder="请选择所属模块">
<a-select-option value="1">
文档库
</a-select-option>
<a-select-option value="2">
文档条款
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item ref="showArea" label="展示区域" prop="showArea">
<a-input
v-model="form.showArea"
@blur="
() => {
$refs.showArea.onFieldBlur();
}
"
/>
</a-form-model-item>
<a-form-model-item ref="enName" label="英文名称" prop="enName">
<a-input
v-model="form.enName"
@blur="
() => {
$refs.enName.onFieldBlur();
}
"
/>
</a-form-model-item>
<a-form-model-item ref="sort" label="排序号" prop="sort">
<a-input
v-model="form.sort"
@blur="
() => {
$refs.sort.onFieldBlur();
}
"
/>
</a-form-model-item>
</a-form-model>
</div>
</template>
<script>
export default {
name: 'contentManage'
}
</script>
<style scoped>
</style>
@@ -1,34 +1,91 @@
<template> <template>
<div> <div>
<onl-cgform-tag-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></onl-cgform-tag-form> <!-- <onl-cgform-tag-form ref="tagForm" @ok="submitCallback" :disabled="disableSubmit" normal></onl-cgform-tag-form>-->
<!-- <div class="tag-form">-->
<!-- <a-form-model-->
<!-- ref="tagForm"-->
<!-- :form="form"-->
<!-- :rules="rules"-->
<!-- :label-col="labelCol"-->
<!-- :wrapper-col="wrapperCol"-->
<!-- >-->
<!-- <div class="form-title">基本信息</div>-->
<!-- <a-divider dashed />-->
<!-- <a-form-model-item-->
<!-- label="所属模块"-->
<!-- prop="isModel"-->
<!-- >-->
<!-- <a-select v-model="form.isModel" placeholder="请选择所属模块">-->
<!-- <a-select-option value="1">-->
<!-- 文档库-->
<!-- </a-select-option>-->
<!-- <a-select-option value="2">-->
<!-- 文档条款-->
<!-- </a-select-option>-->
<!-- </a-select>-->
<!-- </a-form-model-item>-->
<!-- <a-form-model-item-->
<!-- label="属性名称"-->
<!-- prop="dbFieldName"-->
<!-- >-->
<!-- <a-input placeholder="请输入属性名称" v-model="form.dbFieldName" ></a-input>-->
<!-- </a-form-model-item>-->
<!-- </a-form-model>-->
<!-- </div>-->
<div class="drawer-footer"> <div class="drawer-footer">
<a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;">保存</a-button> <a-button v-if="!disableSubmit" @click="submitForm" type="primary" style="margin-bottom: 0;">保存</a-button>
<a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button> <a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { httpAction, getAction } from '@/api/manage'
import OnlCgformTagForm from './OnlCgformTagForm' // import OnlCgformTagForm from './OnlCgformTagForm'
export default { export default {
name: 'newDrawer', name: 'newDrawer',
components: { components: {
OnlCgformTagForm // OnlCgformTagForm
}, },
data () { data () {
return { return {
title:"操作", title:"操作",
width:800, width:800,
visible: false, visible: false,
disableSubmit: false disableSubmit: false,
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
form:{
isModel:'1',
dbFieldName:''
},
rules:{
isModel:[
{ required: true, message: '请选择所属模块',trigger: 'change'},
],
dbFieldName:[
{ required: true, message: '请输入属性名称',trigger: 'blur'},
{ min:1, max: 20, message: '长度在 1 - 20字符', trigger: 'blur' },
]
}
} }
}, },
props:{ props:{
drawerVisible:Boolean, drawerVisible:Boolean,
}, },
// beforeCreate() {
// this.form = this.$form.createForm(this, { name: 'validate_other' });
// },
mounted() { mounted() {
this.visible=this.drawerVisible this.visible=this.drawerVisible
}, },
@@ -36,13 +93,13 @@
add () { add () {
this.visible=true this.visible=true
this.$nextTick(()=>{ this.$nextTick(()=>{
this.$refs.realForm.add(); this.$refs.tagForm.add();
}) })
}, },
edit (record) { edit (record) {
this.visible=true this.visible=true
this.$nextTick(()=>{ this.$nextTick(()=>{
this.$refs.realForm.edit(record); this.$refs.tagForm.edit(record);
}); });
}, },
close () { close () {
@@ -53,12 +110,51 @@
this.$emit('ok'); this.$emit('ok');
this.visible = false; this.visible = false;
}, },
handleOk () {
this.$refs.realForm.submitForm();
},
handleCancel () { handleCancel () {
this.close() this.close()
},
//表单提交
submitForm () {
console.log('formValid',this.$refs.tagForm)
console.log('this.form',this.form)
const that = this;
// 触发表单验证
this.$refs.tagForm.validateField((err,values)=>{
console.log('validateddd',err)
if(!err){
// this.$refs.tagForm.validate(valid => {
// console.log('validateddd',valid,)
// if(valid){
// this.form.validateFields((err, values) => {
// if (!err) {
// that.confirmLoading = true;
// let httpurl = '';
// let method = '';
// if(!this.model.id){
// httpurl+=this.url.add;
// method = 'post';
// }else{
// httpurl+=this.url.edit;
// method = 'put';
// }
// let formData = Object.assign(this.model, values);
// console.log("表单提交数据",formData)
// httpAction(httpurl,formData,method).then((res)=>{
// if(res.success){
// that.$message.success(res.message);
// that.$emit('ok');
// }else{
// that.$message.warning(res.message);
// }
// }).finally(() => {
// that.confirmLoading = false;
// })
} }
})
},
} }
} }
</script> </script>
@@ -72,7 +168,7 @@
} }
.drawer-footer{ .drawer-footer{
position: absolute; position: absolute;
bottom: -8px; bottom: 0;
width: 100%; width: 100%;
border-top: 1px solid #e8e8e8; border-top: 1px solid #e8e8e8;
padding: 10px 16px; padding: 10px 16px;
@@ -14,7 +14,7 @@
<a slot="name" slot-scope="text">{{ text }}</a> <a slot="name" slot-scope="text">{{ text }}</a>
<span slot="customTitle">属性名称</span> <span slot="customTitle">属性名称</span>
<span slot="action" slot-scope="text, record"> <span slot="action" slot-scope="text, record">
<a>编辑</a> <a @click="editVisible(record.id)">编辑</a>
<a-divider type="vertical" /> <a-divider type="vertical" />
<a class="table-del">删除</a> <a class="table-del">删除</a>
</span> </span>
@@ -30,7 +30,7 @@
selectedRowKeys: [], selectedRowKeys: [],
loading: false, loading: false,
ipagination:true, ipagination:true,
visibleEd:false,
} }
}, },
props:{ props:{
@@ -47,6 +47,9 @@
}, },
handleTableChange(){ handleTableChange(){
},
editVisible(id){
this.$emit('visibleEd',true,id)
} }
} }
} }
@@ -29,7 +29,7 @@
<a-button type="primary" @click="handleShow">展示区域管理</a-button> <a-button type="primary" @click="handleShow">展示区域管理</a-button>
</div> </div>
<a-drawer class="show-drawer" title="新增标签项" placement="right" width="1000px" @close="close" :visible="drawerVisible"> <a-drawer class="show-drawer" title="新增标签项" placement="right" width="1000px" @close="close" :visible="drawerVisible">
<new-drawer v-if="drawerVisible"></new-drawer> <new-drawer v-if="drawerVisible" :editData="editData"></new-drawer>
</a-drawer> </a-drawer>
<a-modal class="show-area" v-model="areaVisible" title="展示区域管理" :footer="null" @cancel="hideModal"> <a-modal class="show-area" v-model="areaVisible" title="展示区域管理" :footer="null" @cancel="hideModal">
<area-manage v-if="areaVisible" @diaHide="diaHide" :areaTable="areaTable" @submitOk="submitOk" @deleteOk="deleteOk" @updateOk="updateOk"></area-manage> <area-manage v-if="areaVisible" @diaHide="diaHide" :areaTable="areaTable" @submitOk="submitOk" @deleteOk="deleteOk" @updateOk="updateOk"></area-manage>
@@ -37,7 +37,7 @@
<div class="tag-doc-tab"> <div class="tag-doc-tab">
<a-tabs default-active-key="1" @change="callbackTab"> <a-tabs default-active-key="1" @change="callbackTab">
<a-tab-pane key="1" tab="文档库"> <a-tab-pane key="1" tab="文档库">
<tabTable :tableData="tableData" :columns="taglabColumns"></tabTable> <tabTable :tableData="tableData" :columns="taglabColumns" @visibleEd="visibleEd"></tabTable>
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="2" tab="文档拆分" force-render> <a-tab-pane key="2" tab="文档拆分" force-render>
<tabTable :tableData="tableData" :columns="tagSplit"></tabTable> <tabTable :tableData="tableData" :columns="tagSplit"></tabTable>
@@ -69,6 +69,7 @@
page:1, page:1,
pageSize:10, pageSize:10,
}, },
editData:[], //编辑的数据
areas:[ areas:[
{ {
value: 1, value: 1,
@@ -102,10 +103,10 @@
], ],
taglabColumns: [ taglabColumns: [
{ {
dataIndex: 'name', dataIndex: 'dbFieldName',
key: 'name', key: 'dbFieldName',
slots: { title: 'customTitle' }, slots: { title: 'customTitle' },
scopedSlots: { customRender: 'name' }, scopedSlots: { customRender: 'dbFieldName' },
align: "center", align: "center",
width: 100, width: 100,
}, },
@@ -113,25 +114,25 @@
title: '英文名称', title: '英文名称',
align: "center", align: "center",
width: 100, width: 100,
dataIndex: 'englishName', dataIndex: 'dbFieldEnName',
}, },
{ {
title: '属性类型', title: '属性类型',
align: "center", align: "center",
width: 100, width: 100,
dataIndex: 'type', dataIndex: 'fieldShowType',
}, },
{ {
title: '字段长度', title: '字段长度',
align: "center", align: "center",
width: 80, width: 80,
dataIndex: 'length' dataIndex: 'fieldLength'
}, },
{ {
title: '展示顺序', title: '展示顺序',
align: "center", align: "center",
width: 80, width: 80,
dataIndex: 'numberSort' dataIndex: 'orderNum'
}, },
{ {
title: '展示区域', title: '展示区域',
@@ -184,9 +185,13 @@
], ],
areaVisible:false, areaVisible:false,
areaTable:[], areaTable:[],
drawerVisible:false drawerVisible:false,
value:1
} }
}, },
mounted() {
this.loadData()
},
methods:{ methods:{
searchQuery(){ searchQuery(){
@@ -197,6 +202,8 @@
handleAdd(){ handleAdd(){
this.drawerVisible=true this.drawerVisible=true
}, },
//区域管理列表数据
handleShow(){ handleShow(){
this.areaVisible=true this.areaVisible=true
getAction(`/tag/onlCgformArea/list`,{}).then(res=>{ getAction(`/tag/onlCgformArea/list`,{}).then(res=>{
@@ -205,11 +212,20 @@
} }
}) })
}, },
//标签项管理初始数据
loadData(){
getAction(`Field/onlCgformField/page`,{}).then(res=>{
if(res.success){
this.tableData= [ ...res.result.records]
}
})
},
//标签项管理tab切换
callbackTab(value){ callbackTab(value){
console.log('values',value)
if(value==1){ if(value==1){
this.tableData=this.taglab this.loadData()
this.tableData=this.taglabSplit // this.tableData=this.taglab
// this.tableData=this.taglabSplit
} }
}, },
diaHide(vis){ diaHide(vis){
@@ -230,6 +246,18 @@
//编辑按钮 //编辑按钮
updateOk(value){ updateOk(value){
this.handleShow() this.handleShow()
},
//编辑
visibleEd(val,id){
this.drawerVisible=val
let params={
id:id
}
getAction(`Field/onlCgformField/queryById`,params).then(res=>{
if(res.success){
this.editData=res.result
}
})
} }
} }
} }