| | |
| | | <el-main> |
| | | <basic-container> |
| | | <div> |
| | | <el-button v-if="permissionList.addBtn" icon="el-icon-plus" plain size="small" type="primary" @click="addClickHandler">创建</el-button> |
| | | <el-button v-if="permissionList.editBtn" icon="el-icon-edit" plain size="small" type="primary" @click="editClickHandler">修改</el-button> |
| | | <el-button v-if="permissionList.delBtn" icon="el-icon-delete" plain size="small" type="danger" @click="deleteClickHandler">删除</el-button> |
| | | <el-button v-if="permissionList.importBtn" icon="el-icon-upload2" plain size="small" type="primary" @click="upLoadClickHandler">导入</el-button> |
| | | <el-button v-if="permissionList.exportBtn" icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">导出</el-button> |
| | | <el-button v-if="permissionList.createViewBtn" icon="el-icon-circle-plus-outline" plain size="small" type="primary" @click="createViewClickHandler">创建视图</el-button> |
| | | <el-button v-if="permissionList.createIndexBtn" icon="el-icon-circle-plus-outline" plain size="small" type="primary" @click="indexClickHandler">创建索引</el-button> |
| | | <el-button v-if="permissionList.consistencyCheckBtn" icon="el-icon-menu" plain size="small" type="primary" @click="checkClickHandler">一致性检查</el-button> |
| | | <el-button v-if="permissionList.deleteDataBtn" icon="el-icon-delete" plain size="small" type="danger" @click="checkClickHandler">删除数据</el-button> |
| | | <el-button v-if="permissionList.deleteEveryTypeBtn" icon="el-icon-delete" plain size="small" type="danger" @click="checkClickHandler">删除全部类型</el-button> |
| | | <el-button v-if="permissionList.viewTheScopeBtn" icon="el-icon-view" plain size="small" type="primary" @click="checkViewClickHandler">查看使用范围</el-button> |
| | | <el-button v-if="permissionList.addBtn" icon="el-icon-plus" plain size="small" type="primary" |
| | | @click="addClickHandler">创建 |
| | | </el-button> |
| | | <el-button v-if="permissionList.editBtn" icon="el-icon-edit" plain size="small" type="primary" |
| | | @click="editClickHandler">修改 |
| | | </el-button> |
| | | <el-button v-if="permissionList.delBtn" icon="el-icon-delete" plain size="small" type="danger" |
| | | @click="deleteClickHandler">删除 |
| | | </el-button> |
| | | <el-button v-if="permissionList.importBtn" icon="el-icon-upload2" plain size="small" type="primary" |
| | | @click="upLoadClickHandler">导入 |
| | | </el-button> |
| | | <el-button v-if="permissionList.exportBtn" icon="el-icon-download" plain size="small" type="primary" |
| | | @click="exportClickHandler">导出 |
| | | </el-button> |
| | | <el-button v-if="permissionList.createViewBtn" icon="el-icon-circle-plus-outline" plain size="small" |
| | | type="primary" @click="createViewClickHandler">创建视图 |
| | | </el-button> |
| | | <el-button v-if="permissionList.createIndexBtn" icon="el-icon-circle-plus-outline" plain size="small" |
| | | type="primary" @click="indexClickHandler">创建索引 |
| | | </el-button> |
| | | <el-button v-if="permissionList.consistencyCheckBtn" icon="el-icon-menu" plain size="small" type="primary" |
| | | @click="checkClickHandler">一致性检查 |
| | | </el-button> |
| | | <el-button v-if="permissionList.deleteDataBtn" icon="el-icon-delete" plain size="small" type="danger" |
| | | @click="checkClickHandler">删除数据 |
| | | </el-button> |
| | | <el-button v-if="permissionList.deleteEveryTypeBtn" icon="el-icon-delete" plain size="small" type="danger" |
| | | @click="checkClickHandler">删除全部类型 |
| | | </el-button> |
| | | <el-button v-if="permissionList.viewTheScopeBtn" icon="el-icon-view" plain size="small" type="primary" |
| | | @click="checkViewClickHandler">查看使用范围 |
| | | </el-button> |
| | | </div> |
| | | <div style="display: flex;justify-content:left;margin-top: 15px;"> |
| | | <div class="descBox" style="width: 40%"> |
| | | <el-descriptions :column="2" border class="margin-top" size="medium" title="属性信息"> |
| | | <el-descriptions-item :span="12" :contentStyle="descriptionOption.contentStyle" |
| | | :labelStyle="descriptionOption.labelStyle"> |
| | | <el-descriptions-item :contentStyle="descriptionOption.contentStyle" |
| | | :labelStyle="descriptionOption.labelStyle" |
| | | :span="12"> |
| | | <template slot="label"> |
| | | 名称 |
| | | </template> |
| | |
| | | </template> |
| | | <el-tag v-if="nodeRow.name">{{ nodeRow.name }}</el-tag> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item :contentStyle="descriptionOption.contentStyle+';min-width: 100px;'" |
| | | <el-descriptions-item :contentStyle="descriptionOption.contentStyle+';min-width: 100px;'" |
| | | :labelStyle="descriptionOption.labelStyle"> |
| | | <template slot="label"> |
| | | 图标 |
| | |
| | | <icon-show :name="nodeRow.imageName"></icon-show> |
| | | </span> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item :span="12" :contentStyle="descriptionOption.contentStyle" |
| | | :labelStyle="descriptionOption.labelStyle"> |
| | | <el-descriptions-item :contentStyle="descriptionOption.contentStyle" |
| | | :labelStyle="descriptionOption.labelStyle" |
| | | :span="12"> |
| | | <template slot="label"> |
| | | 实现类 |
| | | </template> |
| | |
| | | <el-tag style="max-width: 100%;overflow: hidden;display: block">{{ nodeRow.implClass }}</el-tag> |
| | | </el-tooltip> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item :span="12" :contentStyle="descriptionOption.contentStyle" |
| | | :labelStyle="descriptionOption.labelStyle"> |
| | | <el-descriptions-item :contentStyle="descriptionOption.contentStyle" |
| | | :labelStyle="descriptionOption.labelStyle" |
| | | :span="12"> |
| | | <template slot="label"> |
| | | 描述 |
| | | </template> |
| | |
| | | </el-col> |
| | | </el-row> |
| | | <el-form-item label="继承自:" prop="fName"> |
| | | <avue-input-tree :disabled="title === 'add'" |
| | | v-model="form.fName" |
| | | placeholder="请选择业务类型" |
| | | <avue-input-tree v-model="form.fName" |
| | | :dic="inheritTreeData" |
| | | :disabled="title === 'add'" |
| | | :props="{label: 'id', value: 'id',children: 'children'}" |
| | | :dic="inheritTreeData"></avue-input-tree> |
| | | placeholder="请选择业务类型"></avue-input-tree> |
| | | </el-form-item> |
| | | <el-form-item label="实现类:" prop="implClass"> |
| | | <el-input v-model="form.implClass"></el-input> |
| | |
| | | </div> |
| | | <div class="centerForm" style="width: 26%"> |
| | | <el-form-item label="版本规则:" label-width="100px" prop="revLevel" style="margin-bottom: 10px;"> |
| | | <el-radio v-model="form.revLevel" label="0" @input="revLevelChange">不可修订</el-radio><br> |
| | | <el-radio v-model="form.revLevel" label="1" @input="revLevelChange">采用一级版本管理</el-radio><br> |
| | | <el-radio v-model="form.revLevel" label="0" @input="revLevelChange">不可修订</el-radio> |
| | | <br> |
| | | <el-radio v-model="form.revLevel" label="1" @input="revLevelChange">采用一级版本管理</el-radio> |
| | | <br> |
| | | <el-radio v-model="form.revLevel" label="2" @input="revLevelChange">采用二级版本管理</el-radio> |
| | | </el-form-item> |
| | | <el-form-item v-if="form.revLevel !== '0'" label="版本号规则:" label-width="100px" prop="revisionRuleId" style="margin-bottom: 5px;"> |
| | | <el-form-item v-if="form.revLevel !== '0'" label="版本号规则:" label-width="100px" prop="revisionRuleId" |
| | | style="margin-bottom: 5px;"> |
| | | <avue-select v-model="form.revisionRuleId" |
| | | :dic="versionData" |
| | | :disabled="form.inputRevisionFlag" |
| | | placeholder="请选择版本号规则" |
| | | :filterable="true" |
| | | :props="{label: 'id', value: 'id'}" |
| | | :dic="versionData"></avue-select> |
| | | placeholder="请选择版本号规则"></avue-select> |
| | | <el-switch |
| | | v-model="form.inputRevisionFlag" |
| | | active-text="手工输入" |
| | |
| | | @change="form.revisionRuleId = ''"> |
| | | </el-switch> |
| | | </el-form-item> |
| | | <el-form-item v-if="form.revLevel !== '0'" label="分隔符:" label-width="100px" prop="delimiter" style="margin-bottom: 5px;"> |
| | | <el-form-item v-if="form.revLevel !== '0'" label="分隔符:" label-width="100px" prop="delimiter" |
| | | style="margin-bottom: 5px;"> |
| | | <el-radio v-model="form.delimiter" label=""> </el-radio> |
| | | <el-radio v-model="form.delimiter" label=".">.</el-radio> |
| | | <el-radio v-model="form.delimiter" label="-">-</el-radio> |
| | |
| | | <div class="rightForm" style="width: 25%"> |
| | | <el-form-item label="生命周期:" label-width="138px" prop="lifeCycleId"> |
| | | <avue-select v-model="form.lifeCycleId" |
| | | placeholder="请选择生命周期" |
| | | :dic="lifeData" |
| | | :filterable="true" |
| | | :props="{label: 'id', value: 'id'}" |
| | | :dic="lifeData"></avue-select> |
| | | placeholder="请选择生命周期"></avue-select> |
| | | </el-form-item> |
| | | <el-form-item label="备选生命周期列表:" label-width="138px" prop="subLifeCycleIdList"> |
| | | <avue-select multiple |
| | | :filterable="true" |
| | | v-model="form.subLifeCycleIdList" |
| | | placeholder="请选择生命周期" |
| | | :props="{label: 'id', value: 'id'}" |
| | | type="tree" |
| | | <avue-select v-model="form.subLifeCycleIdList" |
| | | :dic="subLifeData" |
| | | :filterable="true" |
| | | :props="{label: 'id', value: 'id'}" |
| | | multiple |
| | | placeholder="请选择生命周期" |
| | | type="tree" |
| | | @change="subLifeChange"></avue-select> |
| | | </el-form-item> |
| | | </div> |
| | |
| | | </el-form> |
| | | <div class="bottomForm"> |
| | | <avue-crud |
| | | size="mini" |
| | | :data="dialogAttrData" |
| | | :option="dialogAttrOption" |
| | | size="mini" |
| | | @row-del="dialogBottomAttrDel"> |
| | | <template slot="menuLeft"> |
| | | <h3 style="display: inline-block;margin-right: 20px;margin-bottom: 10px;">属性池列表</h3> |
| | |
| | | index: false, |
| | | selection: false, |
| | | refreshBtn: false, |
| | | header:false, |
| | | header: false, |
| | | column: [ |
| | | { |
| | | label: '类型名', |
| | | prop: 'id', |
| | | width: 250, |
| | | }, |
| | | { |
| | | label: '操作', |
| | |
| | | { |
| | | label: '状态', |
| | | prop: 'status', |
| | | width: 250, |
| | | } |
| | | ] |
| | | }, |
| | |
| | | searchMenuSpan: 8, |
| | | refreshBtn: false, |
| | | selection: false, |
| | | header:false, |
| | | header: false, |
| | | column: [ |
| | | { |
| | | label: '名称', |
| | |
| | | versionAddFlag: false, |
| | | inheritTreeData: [], |
| | | lifeData: [],//生命周期下拉数据 |
| | | subLifeData:[],//备选生命周期下拉数据 |
| | | allLifeData:[], |
| | | subLifeData: [],//备选生命周期下拉数据 |
| | | allLifeData: [], |
| | | versionData: [],//版本规则数据 |
| | | dialogAttrSelectList: [], |
| | | searchAttrParams: {}, |
| | |
| | | height: 450, |
| | | searchMenuSpan: 8, |
| | | header: false, |
| | | selectable:function(row){ |
| | | selectable: function (row) { |
| | | return row.selectable; |
| | | }, |
| | | column: [ |
| | |
| | | prop: 'id', |
| | | sortable: true, |
| | | search: true, |
| | | width:260 |
| | | width: 260 |
| | | }, |
| | | { |
| | | label: '属性类型', |
| | | prop: 'attributeDataType', |
| | | sortable: true, |
| | | width:150, |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: '初始值', |
| | |
| | | {required: true, message: '请输类型名称', trigger: 'blur'}, |
| | | {validator: this.validateEnglishOnly, trigger: 'blur'} |
| | | ], |
| | | imageName:[ |
| | | imageName: [ |
| | | {required: true, message: '请选择图标', trigger: 'submit'}, |
| | | ], |
| | | revLevel: [ |
| | |
| | | selection: false, |
| | | height: 220, |
| | | addBtn: false, |
| | | gridBtn:false, |
| | | columnBtn:false, |
| | | menuWidth:100, |
| | | gridBtn: false, |
| | | columnBtn: false, |
| | | menuWidth: 100, |
| | | // index:false, |
| | | column: [ |
| | | { |
| | | label: '属性名', |
| | | prop: 'id', |
| | | sortable: true, |
| | | width:260, |
| | | width: 260, |
| | | }, |
| | | { |
| | | |
| | |
| | | label: '属性类型', |
| | | prop: 'attributeDataType', |
| | | sortable: true, |
| | | width:150, |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: '初始值', |
| | | prop: 'defaultValue', |
| | | sortable: true, |
| | | width:200, |
| | | width: 200, |
| | | }, |
| | | { |
| | | label: '说明', |
| | |
| | | prop: 'id', |
| | | label: '属性名', |
| | | sortable: true, |
| | | width:260 |
| | | width: 260 |
| | | }, |
| | | { |
| | | prop: 'btmTypeId', |
| | | label: '业务类型', |
| | | sortable: true, |
| | | width:200 |
| | | width: 200 |
| | | }, |
| | | { |
| | | prop: 'attributeDataType', |
| | | label: '属性类型', |
| | | sortable: true, |
| | | width:150 |
| | | width: 150 |
| | | }, |
| | | { |
| | | prop: 'defaultValue', |
| | |
| | | versionRule: '0', // 版次号规则 |
| | | lifeCycleId: '', // 生命周期 |
| | | subLifeCycleId: '', // 生命周期备选列表, |
| | | subLifeCycleIdList:[], |
| | | subLifeCycleIdList: [], |
| | | apNameArray: "", // 属性池列表’,‘分隔 |
| | | }, |
| | | nodeRow: {}, |
| | |
| | | this.getVersionList(); |
| | | this.getLifeCycle(); |
| | | }, |
| | | computed:{ |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | |
| | | }; |
| | | }, |
| | | }, |
| | | watch:{ |
| | | 'form.lifeCycleId':{ |
| | | watch: { |
| | | 'form.lifeCycleId': { |
| | | handler(newval) { |
| | | if(this.form.lifeCycleId){ |
| | | this.subLifeData = this.allLifeData.filter(item=>{ |
| | | return item.id!=this.form.lifeCycleId |
| | | if (this.form.lifeCycleId) { |
| | | this.subLifeData = this.allLifeData.filter(item => { |
| | | return item.id != this.form.lifeCycleId |
| | | }); |
| | | }else { |
| | | } else { |
| | | this.subLifeData = this.allLifeData |
| | | } |
| | | }, |
| | |
| | | this.nodeRow = row; |
| | | }, |
| | | //获取版本规则数据 |
| | | getVersionList(){ |
| | | getVersionList() { |
| | | getVersionRuleAllList().then(res => { |
| | | this.versionData = res.data.data; |
| | | }); |
| | | }, |
| | | //获取生命周期数据 |
| | | getLifeCycle(){ |
| | | getLifeCycle() { |
| | | gridLifeCycle().then(res => { |
| | | this.allLifeData=res.data.data; |
| | | this.allLifeData = res.data.data; |
| | | }); |
| | | }, |
| | | // 创建按钮 |
| | |
| | | |
| | | // 新增编辑保存 |
| | | addDialogSavaHandler() { |
| | | if (this.form.revLevel !== '0' &&!this.form.inputRevisionFlag && (!this.form.revisionRuleId || this.form.revisionRuleId === "")) { |
| | | if (this.form.revLevel !== '0' && !this.form.inputRevisionFlag && (!this.form.revisionRuleId || this.form.revisionRuleId === "")) { |
| | | this.$message.error('请检查版本号规则不能为空'); |
| | | return; |
| | | } |
| | | this.form.lifeCycleIds=this.form.subLifeCycleIdList.join(','); |
| | | this.form.subLifeCycleId=this.form.subLifeCycleIdList.join(','); |
| | | this.form.lifeCycleIds = this.form.subLifeCycleIdList.join(','); |
| | | this.form.subLifeCycleId = this.form.subLifeCycleIdList.join(','); |
| | | this.form.apNameArray = this.dialogAttrData ? this.dialogAttrData.map(item => item.id).join(',') : ""; |
| | | this.$refs.form.validate((valid) => { |
| | | const saveFunction = this.title === 'add' ? addLifeCycle : updateLifeCycle; |
| | |
| | | this.form = {...this.nodeRow}; |
| | | this.form.inputRevisionFlag = JSON.parse(this.form.inputRevisionFlag); // 字符串false转换为布尔值 |
| | | // this.form.fName = this.nodeRow.id === 'topNode' ? "" : this.nodeRow.id; |
| | | this.form.subLifeCycleIdList = this.nodeRow.lifeCycleIds?this.nodeRow.lifeCycleIds.split(','):[]; |
| | | this.form.subLifeCycleIdList = this.nodeRow.lifeCycleIds ? this.nodeRow.lifeCycleIds.split(',') : []; |
| | | this.dialogAttrData = this.nodeRow.attributes ? JSON.parse(this.nodeRow.attributes) : []; |
| | | function processChildren(item,fName) { |
| | | |
| | | function processChildren(item, fName) { |
| | | if (item.children && item.children.length > 0) { |
| | | item.children = item.children.map(child => { |
| | | processChildren(child,fName); // 递归处理每个子节点 |
| | | if(fName==child.id){ |
| | | child.disabled=true; |
| | | }else { |
| | | child.disabled=false; |
| | | processChildren(child, fName); // 递归处理每个子节点 |
| | | if (fName == child.id) { |
| | | child.disabled = true; |
| | | } else { |
| | | child.disabled = false; |
| | | } |
| | | return child; |
| | | }); |
| | | } |
| | | }; |
| | | const inheritTreeData=this.inheritTreeData.map(item => { |
| | | processChildren(item,this.form.id); // 处理每个节点 |
| | | if(this.form.id==item.id){ |
| | | item.disabled=true; |
| | | }else { |
| | | item.disabled=false; |
| | | const inheritTreeData = this.inheritTreeData.map(item => { |
| | | processChildren(item, this.form.id); // 处理每个节点 |
| | | if (this.form.id == item.id) { |
| | | item.disabled = true; |
| | | } else { |
| | | item.disabled = false; |
| | | } |
| | | return item; |
| | | }); |
| | | this.inheritTreeData=inheritTreeData |
| | | this.inheritTreeData = inheritTreeData |
| | | this.title = 'edit'; |
| | | this.visible = true; |
| | | }, |
| | | |
| | | subLifeChange(data){ |
| | | subLifeChange(data) { |
| | | if (data.value.length == 0) { |
| | | this.lifeData = this.allLifeData |
| | | } else { |
| | |
| | | // 查询属性池列表数据 |
| | | getAttrDialogDta() { |
| | | gridAttribute(this.attrPage.currentPage, this.attrPage.pageSize, this.searchAttrParams).then(res => { |
| | | const data = res.data.data.map(item=>{ |
| | | item.selectable=!this.dialogAttrData.some(existingItem => existingItem.id === item.id); |
| | | const data = res.data.data.map(item => { |
| | | item.selectable = !this.dialogAttrData.some(existingItem => existingItem.id === item.id); |
| | | return item; |
| | | }); |
| | | this.dialogAttrSaveData=data; |
| | | this.dialogAttrSaveData = data; |
| | | this.attrPage.total = res.data.total; |
| | | this.dialogAttrLoading = false; |
| | | }).catch(err => { |
| | |
| | | |
| | | // 添加属性池 行点击 |
| | | dialogAttrRowClickHandler(row) { |
| | | if(!row.selectable){ |
| | | if (!row.selectable) { |
| | | return; |
| | | } |
| | | func.rowClickHandler( |
| | |
| | | versionRule: '0', // 版次号规则 |
| | | lifeCycleId: '', // 生命周期 |
| | | subLifeCycleId: '', // 生命周期备选列表, |
| | | subLifeCycleIdList:[], |
| | | lifeCycleIds:'', |
| | | subLifeCycleIdList: [], |
| | | lifeCycleIds: '', |
| | | apNameArray: "", // 属性池列表’,‘分隔 |
| | | }; |
| | | this.dialogAttrData = []; // 将属性池表格置空 |
| | |
| | | Object.entries(data).forEach(([id, methods]) => { |
| | | let action; |
| | | |
| | | switch (methods) { |
| | | case '_CREATE': |
| | | action = '创建表'; |
| | | break; |
| | | case '_ADD': |
| | | action = '增加列'; |
| | | break; |
| | | case '_DROP': |
| | | action = '移除列'; |
| | | break; |
| | | default: |
| | | action = '未知'; |
| | | if (methods.includes('_CREATE')) { |
| | | action = methods.replace('_CREATE', '创建表'); |
| | | } else if (methods.includes('_ADD')) { |
| | | action = methods.replace('_ADD', '增加列'); |
| | | } else if (methods.includes('_DROP')) { |
| | | action = methods.replace('_DROP', '移除列'); |
| | | } else { |
| | | action = '未知'; |
| | | } |
| | | outputData.push({ |
| | | id: id, |
| | |
| | | width: 100%; |
| | | } |
| | | |
| | | .el-tag{ |
| | | line-height:22px; |
| | | .el-tag { |
| | | line-height: 22px; |
| | | height: 24px; |
| | | } |
| | | |
| | | .el-radio{ |
| | | .el-radio { |
| | | margin-right: 20px; |
| | | } |
| | | } |