<template>
|
|
<div class="total">
|
<span class="left">
|
<el-form :model="form">
|
|
<el-form-item label="码段编号:" :label-width="leftFormLabelWidth">
|
<el-input v-model="form.id" ></el-input>
|
</el-form-item>
|
|
<el-form-item label="码段名称:" :label-width="leftFormLabelWidth">
|
<el-input v-model="form.name"></el-input>
|
</el-form-item>
|
|
<el-form-item label="码段类型" :label-width="leftFormLabelWidth" prop="codefixedsec">
|
<el-select v-model="form.sectype" placeholder="请选择" @change="changeSectypeFormItems">
|
<el-option
|
v-for="item in sectypeList"
|
:key="item.dictValue"
|
:label="item.dictValue"
|
:value="item.dictKey">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
|
<el-form-item label="描述:" :label-width="leftFormLabelWidth">
|
<el-input type="textarea" v-model="form.description"></el-input>
|
</el-form-item>
|
|
<el-form-item label="是否流水依赖:" :label-width="leftFormLabelWidth" prop="serialDependFlag">
|
<el-switch v-model="form.serialDependFlag"></el-switch>
|
<el-input-number v-show="form.serialDependFlag" v-model="form.serialDependOrder" controls-position="right"></el-input-number>
|
</el-form-item>
|
|
<el-form-item label="是否为空:" :label-width="leftFormLabelWidth">
|
<el-switch v-model="form.nullableFlag"></el-switch>
|
</el-form-item>
|
|
</el-form>
|
</span>
|
<el-divider direction="vertical"></el-divider>
|
<span class="right">
|
|
<!-- 固定码段 -->
|
<el-form v-show="form.sectype==='codefixedsec' ? true:false">
|
<el-form-item label="码段长度类型:" :label-width="rightFormLabelWidth">
|
<el-select v-model="form.codeSecLengthType" placeholder="请选择">
|
<el-option
|
v-for="item in codeSecLengthType"
|
:key="item.dictValue"
|
:label="item.dictValue"
|
:value="item.dictKey">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="码段的长度:" :label-width="rightFormLabelWidth">
|
<el-input v-model="form.codeSecLength"></el-input>
|
</el-form-item>
|
</el-form>
|
|
<!-- 属性码段 -->
|
<el-form v-show="form.sectype==='codeattrsec' ? true:false">
|
<el-form-item label="属性:" :label-width="rightFormLabelWidth">
|
<el-input
|
placeholder="请选择"
|
suffix-icon="el-icon-search"
|
readonly="true"
|
v-model="form.referAttributeName"
|
@focus="openAttrSelectOrGetValue('attr')">
|
<span slot="suffix">
|
<i class="el-icon-circle-close" @click="clearAttrDataByIcon('attr')" style="margin-right: 5px;cursor: pointer;"></i>
|
</span>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="属性所在分类:" :label-width="rightFormLabelWidth">
|
<el-input
|
v-model="form.referCodeClassifyOidName"
|
disabled>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="取值规则:" :label-width="rightFormLabelWidth">
|
<el-input
|
placeholder="请选择"
|
suffix-icon="el-icon-search"
|
readonly="true"
|
v-model="form.getValueClass"
|
@focus="openAttrSelectOrGetValue('value')">
|
<span slot="suffix">
|
<i class="el-icon-circle-close" @click="clearAttrDataByIcon('value')" style="margin-right: 5px;cursor: pointer;"></i>
|
</span>
|
</el-input>
|
</el-form-item>
|
</el-form>
|
|
<!-- 流水码段 -->
|
<el-form v-show="form.sectype==='codeserialsec' ? true:false">
|
<el-form-item label="码段的长度:" :label-width="rightFormLabelWidth">
|
<el-input v-model="form.codeSecLength"></el-input>
|
</el-form-item>
|
<el-form-item label="流水号的起始值:" :label-width="rightFormLabelWidth">
|
<el-input v-model="form.serialStart"></el-input>
|
</el-form-item>
|
<el-form-item label="流水的步长:" :label-width="rightFormLabelWidth">
|
<el-input v-model="form.serialStep"></el-input>
|
</el-form-item>
|
<el-form-item label="编码补位方式:" :label-width="rightFormLabelWidth">
|
<el-select v-model="form.codeFillType" placeholder="请选择">
|
<el-option label="左补位" value="codeattrsec"
|
v-for="item in codeFillType"
|
:key="item.dictValue"
|
:label="item.dictValue"
|
:value="item.dictKey">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="补位时的字符:" :label-width="rightFormLabelWidth">
|
<el-select v-model="form.codeFillSeparatorSelect" filterable placeholder="请选择">
|
<el-option
|
v-for="item in codeFillSeparator"
|
:key="item.dictValue"
|
:label="item.dictValue"
|
:value="item.dictKey">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="填充长度:" :label-width="rightFormLabelWidth">
|
<el-input v-model="form.codeFillLength"></el-input>
|
</el-form-item>
|
<el-form-item label="流水上限:" :label-width="rightFormLabelWidth">
|
<el-input v-model="form.codeFillLimit"></el-input>
|
</el-form-item>
|
<el-form-item label="流水是否补码:" :label-width="rightFormLabelWidth">
|
<el-switch v-model="form.codeFillFlag"></el-switch>
|
</el-form-item>
|
<el-form-item label="自定义的流水算法:" :label-width="rightFormLabelWidth">
|
<el-input v-model="form.customCodeSerialClass"></el-input>
|
</el-form-item>
|
</el-form>
|
|
<!-- 层级码段 -->
|
<el-form v-show="form.sectype==='codelevelsec' ? true:false">
|
<el-form-item label="层级类型:" :label-width="rightFormLabelWidth">
|
<el-select v-model="form.codeLevelType" placeholder="请选择">
|
<el-option
|
v-for="item in codeLevelType"
|
:key="item.dictValue"
|
:label="item.dictValue"
|
:value="item.dictKey">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="层级的值:" :label-width="rightFormLabelWidth">
|
<el-input v-model="form.codeLevelValue"></el-input>
|
</el-form-item>
|
<el-form-item label="字符截取类型:" :label-width="rightFormLabelWidth">
|
<el-select v-model="form.valueCutType" placeholder="请选择">
|
<el-option
|
v-for="item in codeCutType"
|
:key="item.dictValue"
|
:label="item.dictValue"
|
:value="item.dictKey">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="取值类型:" :label-width="rightFormLabelWidth">
|
<el-select v-model="form.codeGetValueType" placeholder="请选择">
|
<el-option
|
v-for="item in codeGetValueType"
|
:key="item.dictValue"
|
:label="item.dictValue"
|
:value="item.dictKey">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-form>
|
|
<!-- 引用码段 -->
|
<el-form v-show="form.sectype==='coderefersec' ? true:false">
|
<el-form-item label="参照引用的业务类型:" :label-width="rightFormLabelWidth">
|
<el-input v-model="form.referBtmId"></el-input>
|
</el-form-item>
|
<el-form-item label="参照配置:" :label-width="rightFormLabelWidth">
|
<el-input v-model="form.referConfig"></el-input>
|
</el-form-item>
|
</el-form>
|
|
<!-- 日期码段 -->
|
<el-form v-show="form.sectype==='codedatesec' ? true:false">
|
<el-form-item label="日期格式:" :label-width="rightFormLabelWidth">
|
<el-input v-model="form.codeDateFormatStr"></el-input>
|
</el-form-item>
|
</el-form>
|
|
<!-- 分类码段 -->
|
<el-form v-show="form.sectype==='codeclassifysec' ? true:false">
|
<el-form-item label="码段长度类型:" :label-width="rightFormLabelWidth">
|
<el-select v-model="form.codeSecLengthType" placeholder="请选择">
|
<el-option
|
v-for="item in codeSecLengthType"
|
:key="item.dictValue"
|
:label="item.dictValue"
|
:value="item.dictKey">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="码段的长度:" :label-width="rightFormLabelWidth">
|
<el-input v-model="form.codeSecLength"></el-input>
|
</el-form-item>
|
<el-form-item label="是否自动分配分类值:" :label-width="rightFormLabelWidth">
|
<el-switch v-model="form.matchClassifyValueFlag"></el-switch>
|
</el-form-item>
|
<el-form-item label="父分类码段:" :label-width="rightFormLabelWidth">
|
<el-input v-model="form.parentClassifySecOid"></el-input>
|
</el-form-item>
|
</el-form>
|
|
<!-- 可变码段 -->
|
<el-form v-show="form.sectype==='codevariablesec' ? true:false">
|
<el-form-item label="码段的长度:" :label-width="rightFormLabelWidth">
|
<el-input v-model="form.codeSecLength"></el-input>
|
</el-form-item>
|
<el-form-item label="编码补位方式:" :label-width="rightFormLabelWidth">
|
<el-select v-model="form.codeFillType" placeholder="请选择">
|
<el-option
|
v-for="item in codeFillType"
|
:key="item.dictValue"
|
:label="item.dictValue"
|
:value="item.dictKey">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="补位时的字符:" :label-width="rightFormLabelWidth">
|
<el-select v-model="form.codeFillSeparatorSelect" placeholder="请选择">
|
<el-option
|
v-for="item in codeFillSeparator"
|
:key="item.dictValue"
|
:label="item.dictValue"
|
:value="item.dictKey">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-form>
|
|
</span>
|
|
</div>
|
|
</template>
|
|
<script>
|
import { addSave } from "@/api/code/codebasic";
|
import { getDictionary } from "@/api/omd/dict";
|
export default {
|
name: "addBasicCode",
|
data() {
|
return {
|
form: {
|
id: '', //编号
|
name: '', //名称
|
sectype: 'codefixedsec', //码段类型
|
description: '', //描述
|
serialDependFlag: false, //是否流水依赖
|
serialDependOrder: '', //流水依赖顺序
|
nullableFlag: false, //是否为空
|
displayFlag: false, //
|
componentCodeFlag: false, //是否参与编码
|
pkCodeRule: '', //所属编码规则
|
},
|
sectypeList:[], //码段类型
|
codeSecLengthType:[], //码段长度类型
|
codeFillType:[], //编码补位方式
|
codeFillSeparator:[], //补位时的字符,可输可选内容
|
codeLevelType:[], //层级类型
|
codeCutType:[], //字符截取类型
|
codeGetValueType:[], //取值类型
|
|
//表单元素标签宽度
|
leftFormLabelWidth: '110px',
|
rightFormLabelWidth: '150px',
|
|
};
|
},
|
computed: {
|
|
|
},
|
methods: {
|
|
//公式内容回调到子组件进行回显
|
saveFormulaContent(data){
|
console.log(data);
|
this.form.getValueClass = data;
|
},
|
|
// 为属性选取值之后的回显
|
selectedListClassifyLinkAttr(data){
|
//console.log(data);
|
this.form = Object.assign({}, this.form, {
|
referAttributeId:data.referAttributeId,
|
referAttributeName:data.referAttributeName,
|
referCodeClassifyOid: data.referCodeClassifyOid,
|
referCodeClassifyOidName: data.referCodeClassifyOidName,
|
})
|
},
|
|
// 打开为属性选取值或者取值规则窗口
|
openAttrSelectOrGetValue(condition){
|
if(condition === 'attr'){
|
//console.log('attr');
|
//调用父组件的方法
|
this.$emit('openAttrSelectOrGetValue')
|
}else if(condition === 'value'){
|
//console.log('value');
|
this.$emit('openformulaEdit')
|
}
|
},
|
|
// 点击输入框的×号,清空输入框中的内容
|
clearAttrDataByIcon(condition){
|
if(condition === 'attr'){
|
this.form.referAttributeName = '';
|
this.form.referAttributeId = '';
|
this.form.referCodeClassifyOid = '';
|
this.form.referCodeClassifyOidName = '';
|
}else if(condition === 'value'){
|
this.form.getValueClass = '';
|
}
|
},
|
|
addSave(pkCodeRule) {
|
this.form.pkCodeRule = pkCodeRule;
|
console.log(this.form);
|
addSave(this.form).then(() => {
|
this.$message({
|
type: "success",
|
message: "操作成功!"
|
});
|
}, error => {
|
window.console.log(error);
|
});
|
},
|
|
loadCodeSecType(){
|
getDictionary({code: "codeBasicSecType"}).then(res=>{
|
this.sectypeList = res.data.data;
|
})
|
this.loadCodeSecLength();
|
//console.log(this.sectypeList);
|
},
|
|
loadCodeSecLength(){
|
getDictionary({code: "codeSecLength"}).then(res=>{
|
this.codeSecLengthType = res.data.data;
|
})
|
},
|
|
loadCodeFillType(){
|
getDictionary({code: "codeFillType"}).then(res=>{
|
this.codeFillType = res.data.data;
|
})
|
},
|
|
loadCodeFillSeparator(){
|
getDictionary({code: "codeFillSeparator"}).then(res=>{
|
this.codeFillSeparator = res.data.data;
|
})
|
},
|
|
loadCodeLevelType(){
|
getDictionary({code: "codeLevelType"}).then(res=>{
|
this.codeLevelType = res.data.data;
|
})
|
},
|
|
loadCodeCutType(){
|
getDictionary({code: "codeCutType"}).then(res=>{
|
this.codeCutType = res.data.data;
|
})
|
},
|
|
loadCodeGetValueType(){
|
getDictionary({code: "codeGetValueType"}).then(res=>{
|
this.codeGetValueType = res.data.data;
|
console.log(this.codeGetValueType);
|
})
|
},
|
|
// 码段类型改变时,增加对应的form表单中的属性
|
changeSectypeFormItems(){
|
if(this.form.sectype==='codefixedsec'){
|
//固定码段
|
this.form = Object.assign({}, this.form,{
|
codeSecLength: '',
|
codeSecLengthType: 'code_sec_length_variable'
|
});
|
this.loadCodeSecLength();
|
}else if(this.form.sectype==='codeattrsec'){
|
//属性码段
|
this.form = Object.assign({}, this.form, {
|
referCodeClassifyOid: '', //属性id
|
referCodeClassifyOidName: '', //属性所在分类
|
referAttributeId: '', //属性编号
|
referAttributeName:'', //属性
|
getValueClass:'' //取值规则
|
});
|
}else if(this.form.sectype==='codeserialsec'){
|
//流水码段
|
this.form = Object.assign({}, this.form,{
|
codeSecLength: '', //码段的长度
|
serialStart: '1', //流水号起始值
|
serialStep: '1', //流水的步长
|
codeFillType: 'code_fill_right', //编码补位方式
|
codeFillSeparatorSelect: '0', //补位时的字符,选中的下拉框的下标
|
codeFillSeparator: '0', //补位时的字符
|
codeFillLength: '', //填充长度
|
codeFillLimit: '', //流水上限
|
codeFillFlag: 'false', //流水是否补码
|
customCodeSerialClass: '', //自定义流水算法
|
});
|
this.loadCodeFillType();
|
this.loadCodeFillSeparator();
|
}else if(this.form.sectype==='codelevelsec'){
|
//层级码段
|
this.form = Object.assign({}, this.form,{
|
codeLevelType: 'code_level_min', //层级类型 枚举查询
|
codeLevelValue: '', //层级的值
|
valueCutType: 'code_cut_none', //字符截取类型 枚举查询
|
valueCutLength: '', //
|
codeGetValueType: 'code_get_value_all_up', //取值类型 枚举查询
|
});
|
this.loadCodeLevelType();
|
this.loadCodeCutType();
|
this.loadCodeGetValueType();
|
}else if(this.form.sectype==='coderefersec'){
|
//引用码段
|
this.form = Object.assign({}, this.form,{
|
referBtmId: '', //参照引用的业务类型,的id
|
referBtmName: '', //参照引用的业务类型
|
referConfig: '' //参照配置
|
});
|
}else if(this.form.sectype==='codedatesec'){
|
//日期码段
|
this.form = Object.assign({}, this.form,{
|
codeDateFormatStr: '', //日期格式
|
});
|
}else if(this.form.sectype==='codeclassifysec'){
|
//分类码段
|
this.form = Object.assign({}, this.form,{
|
codeSecLengthType: 'code_sec_length_variable', //码段长度类型
|
codeSecLength: '', //码段的长度
|
matchClassifyValueFlag: 'false', //是否自动匹配值
|
parentClassifySecOid: '', //父分类码段选中的id
|
parentClassifySecText: '', //父分类码段
|
});
|
this.loadCodeSecLength();
|
}else if(this.form.sectype==='codevariablesec'){
|
//可变码段
|
this.form = Object.assign({}, this.form,{
|
codeSecLength: '', //码段的长度
|
codeFillType: 'code_fill_right', //编码部位方式,枚举查询
|
codeFillSeparatorSelect: '0', //选中的补位时的字符的下标
|
codeFillSeparator: '', //补位时的字符,可输可选查询
|
});
|
this.loadCodeFillType();
|
this.loadCodeFillSeparator();
|
}
|
//console.log(this.form);
|
}
|
|
}
|
};
|
</script>
|
|
<style>
|
.total{
|
height: 420px;
|
width: 100%;
|
|
}
|
|
.total .el-input__inner,.total .el-textarea__inner {
|
width: 220px;
|
}
|
|
.el-divider--vertical {
|
width: 2px;
|
height: 31.5em;
|
margin: 0 5px;
|
}
|
|
.left {
|
float: left;
|
width: 49%;
|
/* border-right: 2px rgb(0, 0, 0); */
|
}
|
.right {
|
float: right;
|
width: 49%;
|
/* border-left: 2px rgb(0, 0, 0); */
|
}
|
.right > .el-form > .el-form-item{
|
margin-bottom: 8px;
|
}
|
|
.el-input-number > .el-input > .el-input__inner{
|
width: 180px;
|
}
|
</style>
|