From 39a6e2d4cbbc789955400ffd2352514a8fe4c188 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期一, 19 八月 2024 14:05:18 +0800 Subject: [PATCH] 整合代码 --- Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue | 764 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 654 insertions(+), 110 deletions(-) diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue index 5506afe..6d4bb28 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue @@ -1,5 +1,5 @@ <template> - <el-container> + <el-container v-loading="createViewLoading"> <el-aside> <basic-container> <div ref="TreeBox" style="height: calc(100vh - 144px);!important;"> @@ -18,7 +18,7 @@ type="primary" @click="createViewClickHandler">鍒涘缓瑙嗗浘 </el-button> <el-button class="miniBtn" icon="el-icon-circle-plus-outline" plain size="small" - type="primary" @click="checkClickHandler">鍒涘缓绱㈠紩 + type="primary" @click="indexClickHandler">鍒涘缓绱㈠紩 </el-button> <el-button icon="el-icon-menu" plain size="small" style="width: 82px;text-align: center;padding-left: 1px" type="primary" @click="checkClickHandler">涓�鑷存�ф鏌� @@ -29,12 +29,12 @@ <el-button class="smallBtn" plain size="small" type="danger" @click="checkClickHandler">鍒犻櫎鍏ㄩ儴绫诲瀷 </el-button> - <el-button class="smallBtn" plain size="small" type="primary">鏌ョ湅浣跨敤鑼冨洿 + <el-button class="smallBtn" plain size="small" type="primary" @click="checkViewClickHandler">鏌ョ湅浣跨敤鑼冨洿 </el-button> </div> <!-- 宸︿晶鏍� --> <div style="height: calc(100vh - 330px);"> - <avue-tree :data="treeData" :option="treeOption" @node-click="nodeClick"> + <avue-tree ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick"> <span slot-scope="{ node, data }" class="el-tree-node__label"> <span style="font-size: 15px"> <i class="el-icon-s-promotion"></i> @@ -168,17 +168,23 @@ class="avue-dialog" width="75%" @close="addDialogClose"> - <el-form ref="form" :model="form" :rules="rules" label-width="90px"> + <el-form ref="form" :model="form" :rules="rules" label-width="95px"> <div class="dialogForm"> <div class="leftForm"> - <el-form-item label="绫诲瀷鍚嶇О锛�" prop="name"> + <el-form-item label="绫诲瀷鍚嶇О锛�" prop="id"> <el-input v-model="form.id" :readOnly="title === 'edit'"></el-input> </el-form-item> <el-form-item label="鏍囩锛�"> <el-input v-model="form.name"></el-input> </el-form-item> <el-form-item label="缁ф壙鑷細"> - <el-input v-model="form.fName" :readOnly="title === 'edit'"></el-input> + <div style="display: flex;gap: 5px;align-items: center"> + <el-input v-model="form.fName" :readOnly="true"></el-input> + <el-button :disabled="title === 'add'" plain size="small" style="margin-left: 5px;height: 30px" + type="success" + @click="inheritClickHandler">閫夋嫨 + </el-button> + </div> </el-form-item> <el-form-item label="瀹炵幇绫伙細"> <el-input v-model="form.implClass"></el-input> @@ -188,44 +194,50 @@ </el-form-item> </div> <div class="centerForm"> - <el-form-item label="鐗堟湰瑙勫垯锛�" label-width="100px" prop="revLevel"> - <el-select v-model="form.revLevel"> + <el-form-item label="鐗堟湰瑙勫垯锛�" label-width="110px" prop="revLevel"> + <el-select v-model="form.revLevel" @change="revLevelChange"> <el-option label="涓嶅彲淇" value="0"></el-option> <el-option label="閲囩敤涓�绾х増鏈鐞�" value="1"></el-option> <el-option label="閲囩敤浜岀骇鐗堟湰绠$悊" value="2"></el-option> </el-select> </el-form-item> - <el-form-item v-if="form.revLevel !== '0'" label="鐗堟湰鍙疯鍒欙細" label-width="100px" prop="revisionRuleName"> + <el-form-item v-if="form.revLevel !== '0'" label="鐗堟湰鍙疯鍒欙細" label-width="110px" prop="revisionRuleId"> <div style="display: flex;gap: 5px;align-items: center"> <el-input v-model="form.revisionRuleId" :readOnly="true"></el-input> - <el-button plain size="small" style="margin-left: 5px;height: 30px" type="success" @click="versionAddHandler">娣诲姞</el-button> + <el-button :disabled="form.inputRevisionFlag" plain size="small" style="margin-left: 5px;height: 30px" + type="success" + @click="versionAddHandler">娣诲姞 + </el-button> <el-switch - style="width: 300px" v-model="form.inputRevisionFlag" - active-text="鎵嬪伐杈撳叆"> + active-text="鎵嬪伐杈撳叆" + style="width: 300px" + @change="form.revisionRuleId = ''"> </el-switch> </div> </el-form-item> - <el-form-item v-if="form.revLevel !== '0'" label="鍒嗛殧绗︼細" label-width="100px" prop="delimiter"> + <el-form-item v-if="form.revLevel !== '0'" label="鍒嗛殧绗︼細" label-width="110px" prop="delimiter"> <el-select v-model="form.delimiter" clearable> <el-option label="." value="."></el-option> <el-option label="-" value="-"></el-option> </el-select> </el-form-item> - <el-form-item v-if="form.revLevel !== '0' && form.revLevel !== '1'" label="鐗堟鍙疯鍒欙細" label-width="100px" - prop="revLevel"> + <el-form-item v-if="form.revLevel !== '0' && form.revLevel !== '1'" label="鐗堟鍙疯鍒欙細" label-width="110px" + prop="versionRule"> <el-select v-model="form.versionRule" clearable> - <el-option label="1.2.3..." value="1.2.3..."></el-option> - <el-option label="a.b.c..." value="a.b.c..."></el-option> - <el-option label="0.1.2..." value="0.1.2..."></el-option> + <el-option label="1.2.3..." value="0"></el-option> + <el-option label="a.b.c..." value="1"></el-option> + <el-option label="0.1.2..." value="2"></el-option> </el-select> </el-form-item> </div> <div class="rightForm"> - <el-form-item label="鐢熷懡鍛ㄦ湡锛�" label-width="138px" prop="revLevel"> + <el-form-item label="鐢熷懡鍛ㄦ湡锛�" label-width="138px" prop="lifeCycleId"> <div style="display: flex;gap: 5px;align-items: center"> <el-input v-model="form.lifeCycleId" :readOnly="true"></el-input> - <el-button plain size="small" style="margin-left: 5px;height: 30px" type="success" @click="lifeAddHandler('input')">娣诲姞</el-button> + <el-button plain size="small" style="margin-left: 5px;height: 30px" type="success" + @click="lifeAddHandler('input')">娣诲姞 + </el-button> </div> </el-form-item> @@ -270,7 +282,8 @@ <h3>灞炴�ф睜鍒楄〃</h3> <avue-crud :data="dialogAttrData" - :option="dialogAttrOption"> + :option="dialogAttrOption" + @row-del="dialogBottomAttrDel"> <template slot="menuLeft"> <el-button icon="el-icon-plus" size="small" type="primary" @click="addDialogClickHandler">鍒涘缓</el-button> </template> @@ -313,6 +326,7 @@ </span> </el-dialog> + <!-- 鐗堟湰鍙疯鍒欓�夋嫨 --> <el-dialog v-dialogDrag :visible.sync="dialogVersionVisible" @@ -368,73 +382,245 @@ </el-dialog> + <!-- 缁ф壙鑷� --> + <el-dialog + v-dialogDrag + :visible.sync="dialogInheritVisible" + append-to-body="true" + class="avue-dialog" + title="缁ф壙涓氬姟绫诲瀷" + width="30%" + @close="inheritClose" + > + <avue-tree ref="inheritTree" v-model="treeForm" :data="inheritTreeData" :option="inheritTreeOption" + @node-click="inheritNodeClick"> + <span slot-scope="{ node, data }" class="el-tree-node__label"> + <span style="font-size: 15px"> + <i class="el-icon-s-promotion"></i> + {{ (node || {}).label }} + </span> + </span> + </avue-tree> + <span slot="footer" class="dialog-footer"> + <el-button @click="inheritClose">鍙� 娑�</el-button> + <el-button type="primary" @click="inheritSaveClickHandler">纭� 瀹�</el-button> + </span> + </el-dialog> + + <!-- 瀵煎叆 --> + <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" title="瀵煎叆" + @updata="getTreeList"></upload-file> + + <!-- 鏌ョ湅浣跨敤鑼冨洿 --> + <el-dialog + v-dialogDrag + :visible.sync="checkViewVisible" + append-to-body="true" + class="avue-dialog" + title="鏌ョ湅浣跨敤鑼冨洿" + width="60%" + > + <avue-crud + ref="checkViewCrud" + :data="checkViewData" + :option="checkViewOption" + :table-loading="checkViewLoading" + @search-change="checkHandleSearch" + @search-reset="checkHandleReset" + > + </avue-crud> + </el-dialog> + + <!-- 涓�鑷存�ф鏌� --> + <el-dialog + v-dialogDrag + :visible.sync="conCheckVisible" + append-to-body="true" + class="avue-dialog" + title="涓�鑷存�ф鏌�" + width="60%" + > + <avue-crud + :data="conCheckData" + :option="conCheckOption" + :table-loading="conCheckLoading"> + </avue-crud> + <span slot="footer" class="dialog-footer"> + <el-button @click="conCheckVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="repairClickHandler">淇� 澶�</el-button> + </span> + </el-dialog> + + <!-- 涓�鑷存�ф鏌� --> + <el-dialog + v-dialogDrag + :visible.sync="indexVisible" + append-to-body="true" + class="avue-dialog" + title="绱㈠紩淇℃伅" + width="60%" + > + + </el-dialog> + </el-container> </template> <script> import basicOption from '@/util/basic-option' -import {getBizTypes} from "@/api/modeling/businessType/api" +import { + getBizTypes, + addLifeCycle, + updateLifeCycle, + deleteBtmType, + createView, + expData, + getUsedBtmLinkList, + checkBtmConsistency, + executeRepair, + getIndexByCondition +} from "@/api/modeling/businessType/api" import {gridAttribute} from "@/api/modeling/attributePool/api"; import func from "@/util/func"; -import {getVersionRuleAllList} from "@/api/modeling/version/api"; +import {getUsedVersionRuleList, getVersionRuleAllList} from "@/api/modeling/version/api"; import {gridLifeCycle} from "@/api/modeling/lifeCycle/api"; export default { name: "index", data() { return { - dialogLifeDefalutData:[], // 鏌ヨ閲嶇疆榛樿鏁版嵁 - lifeType:'', - dialogLifeTable:[], - dialogLifeSaveRow:{}, - dialogLifeKey:Math.random(), - dialogLifeData:[], - dialogLifeOption:{ + indexVisible:false, + conDefaultCheckData: [], // 淇濈暀涓婁釜鎺ュ彛杩斿洖鐨勬暟鎹� + conCheckLoading: false, + conCheckOption: { ...basicOption, - addBtn:false, - selection:false, - refreshBtn:false, - menu:false, - height:450, - searchMenuSpan: 8, - highlightCurrentRow:true, - column:[ + menu: false, + addBtn: false, + index: false, + selection: false, + refreshBtn: false, + column: [ { - label:'鐢熷懡鍛ㄦ湡妯℃澘鍚�', - prop:'id', - searchLabelWidth:120, - search:true + label: '绫诲瀷鍚�', + prop: 'id', + }, + { + label: '鎿嶄綔', + prop: 'methods', + }, + { + label: '鐘舵��', + prop: 'status', } ] }, - dialogLifeLoading:false, - dialogLfeVisible:false, - dialogVersionDefalutData:[], // 鏌ヨ閲嶇疆榛樿鏁版嵁 - dialogSwitchValue:false, - dialogVersionSaveRow:{}, - dialogVersionVisible:false, - dialogVersionKey:Math.random(), - dialogVersionData:[], - dialogVersionOption:{ + conCheckData: [], + conCheckVisible: false, + checkViewVisible: false, + checkViewData: [], + checkViewDataSearch: [], + checkViewLoading: false, + checkViewOption: { ...basicOption, - addBtn:false, - selection:false, - refreshBtn:false, - menu:false, - height:450, + addBtn: false, + menu: false, searchMenuSpan: 8, - highlightCurrentRow:true, + refreshBtn: false, + selection: false, + column: [ + { + label: '鍚嶇О', + prop: 'name', + sortable: true, + }, + { + label: '鏉ユ簮', + prop: 'source', + sortable: true, + search: true + }, + { + label: '璇存槑', + prop: 'description', + } + ] + }, + tipList: [ + "瀵煎叆涓氬姟鍚嶇О涓嶅彲涓虹┖涓旈摼鎺ョ被鍨嬪悕绉板彧鑳戒负鑻辨枃瀛楁瘝", + "瀵煎叆鐨勬枃浠跺寘鎷睘鎬с�佷笟鍔$被鍨嬨�佺敓鍛藉懆鏈熺瓑鏂囦欢", + "涓婁紶鐨勬枃浠朵负鍘嬬缉鏂囦欢锛屼笖鍘嬬缉鏍煎紡浠呰兘涓簔ip鏍煎紡" + ], + upFileType: ['zip'], + fileUrl: 'api/linkTypeController/impData', + createViewLoading: false, // 鍒涘缓瑙嗗浘 + versionAddFlag: false, + treeForm: {}, + inheritNodeRow: {}, + inheritTreeOption: { + height: 'auto', + defaultExpandAll: false, + menu: false, + addBtn: false, + props: { + label: 'id', + value: 'id', + children: 'children' + } + }, + inheritTreeData: [], + dialogInheritVisible: false, + dialogLifeDefalutData: [], // 鏌ヨ閲嶇疆榛樿鏁版嵁 + lifeType: '', + dialogLifeTable: [], + dialogLifeSaveRow: {}, + dialogLifeKey: Math.random(), + dialogLifeData: [], + dialogLifeOption: { + ...basicOption, + addBtn: false, + selection: false, + refreshBtn: false, + menu: false, + height: 450, + searchMenuSpan: 8, + highlightCurrentRow: true, + column: [ + { + label: '鐢熷懡鍛ㄦ湡妯℃澘鍚�', + prop: 'id', + searchLabelWidth: 120, + search: true + } + ] + }, + dialogLifeLoading: false, + dialogLfeVisible: false, + dialogVersionDefalutData: [], // 鏌ヨ閲嶇疆榛樿鏁版嵁 + dialogSwitchValue: false, + dialogVersionSaveRow: {}, + dialogVersionVisible: false, + dialogVersionKey: Math.random(), + dialogVersionData: [], + dialogVersionOption: { + ...basicOption, + addBtn: false, + selection: false, + refreshBtn: false, + menu: false, + height: 450, + searchMenuSpan: 8, + highlightCurrentRow: true, // calcHeight: 100, - column:[ + column: [ { - label:'鐗堟湰鍙疯鍒�', - prop:'id', - searchLabelWidth:110, - search:true + label: '鐗堟湰鍙疯鍒�', + prop: 'id', + searchLabelWidth: 110, + search: true } ] }, - dialogVersionLoading:false, + dialogVersionLoading: false, dialogAttrSelectList: [], searchAttrParams: {}, dialogAttrLoading: false, @@ -481,7 +667,18 @@ }, dialogAttrSaveData: [], attrPollDialogVisible: false, - rules: [], + rules: { + id: [ + {required: true, message: '璇疯緭绫诲瀷鍚嶇О', trigger: 'blur'}, + {validator: this.validateEnglishOnly, trigger: 'blur'} + ], + revLevel: [ + {required: true, message: '璇烽�夋嫨鐗堟湰瑙勫垯', trigger: 'blur'}, + ], + lifeCycleId: [ + {required: true, message: '璇烽�夋嫨鐢熷懡鍛ㄦ湡', trigger: 'blur'}, + ] + }, dialogAttrData: [], dialogAttrOption: { ...basicOption, @@ -496,6 +693,12 @@ label: '灞炴�у悕', prop: 'id', sortable: true, + }, + { + + prop: 'btmTypeId', + label: '涓氬姟绫诲瀷', + sortable: true }, { label: '灞炴�х被鍨�', @@ -537,7 +740,7 @@ sortable: true }, { - prop: 'attrDataType', + prop: 'attributeDataType', label: '灞炴�х被鍨�', sortable: true }, @@ -554,31 +757,39 @@ ] }, form: { - id:'', // 绫诲瀷鍚嶇О - name:'', // 鏍囩 - fName:'', // 缁ф壙鑷� - implClass:'', // 瀹炵幇绫� - description:'', // 鎻忚堪 - revLevel:'', // 鐗堟湰瑙勫垯 - revisionRuleId:'',// 鐗堟湰鍙疯鍒� - inputRevisionFlag:'', // 鎵嬪伐杈撳叆 - versionRule:'', // 鐗堟鍙疯鍒� - lifeCycleId:'', // 鐢熷懡鍛ㄦ湡 - subLifeCycleId:'', // 鐢熷懡鍛ㄦ湡澶囬�夊垪琛� + id: '', // 绫诲瀷鍚嶇О + name: '', // 鏍囩 + fName: '', // 缁ф壙鑷� + implClass: '', // 瀹炵幇绫� + description: '', // 鎻忚堪 + revLevel: '', // 鐗堟湰瑙勫垯 + revisionRuleId: '',// 鐗堟湰鍙疯鍒� + inputRevisionFlag: false, // 鎵嬪伐杈撳叆, + delimiter: '', // 鍒嗛殧绗� + versionRule: '0', // 鐗堟鍙疯鍒� + lifeCycleId: '', // 鐢熷懡鍛ㄦ湡 + subLifeCycleId: '', // 鐢熷懡鍛ㄦ湡澶囬�夊垪琛�, + apNameArray: "", // 灞炴�ф睜鍒楄〃鈥欙紝鈥樺垎闅� }, nodeRow: {}, treeOption: { height: 'auto', - defaultExpandAll: false, + defaultExpandedKeys: ['topNode'], menu: false, addBtn: false, props: { - label: 'id', + label: 'TreeName', value: 'id', children: 'children' } }, - treeData: [], + treeData: [ + { + TreeName: '涓氬姟绫诲瀷鏍�', + id: 'topNode', + children: [] + } + ], descriptionOption: { labelStyle: 'text-align:center;width:100px;', contentStyle: 'max-width:200px;text-align:center;word-break;break-all;' @@ -593,27 +804,73 @@ created() { this.getTreeList(); }, + mounted() { + }, methods: { //鏍戣〃鏌ヨ getTreeList() { getBizTypes().then(res => { const data = res.data.data.map(item => { - return item.attributes; + this.processChildren(item); // 澶勭悊姣忎釜鑺傜偣 + item.attributes.TreeName = item.attributes.id; + return item.attributes; // 杩斿洖澶勭悊鍚庣殑 attributes }); - this.treeData = data; - }) + this.treeData[0].children = data; + console.log(this.treeData); + this.inheritTreeData = data; + }); + }, + + // 澶勭悊鏍戝舰缁撴瀯 + processChildren(item) { + if (item.children && item.children.length > 0) { + item.attributes.children = item.children.map(child => { + child.attributes.TreeName = child.attributes.id; + this.processChildren(child); // 閫掑綊澶勭悊姣忎釜瀛愯妭鐐� + return child.attributes; // 鍙繑鍥炲瓙鑺傜偣鐨� attributes + }); + } }, // 鏍戠偣鍑� nodeClick(row) { - this.attrData = JSON.parse(row.attributes); + this.attrData = row.attributes ? JSON.parse(row.attributes) : []; this.nodeRow = row; }, // 鍒涘缓鎸夐挳 addClickHandler() { + if (func.isEmptyObject(this.nodeRow)) { + this.$message.error('璇烽�夋嫨瑕佹坊鍔犵殑鑺傜偣'); + return; + } this.title = 'add'; + this.form.fName = this.nodeRow.id === 'topNode' ? "" : this.nodeRow.id; + console.log(this.nodeRow); + this.form.inputRevisionFlag = JSON.parse(this.form.inputRevisionFlag); // 瀛楃涓瞗alse杞崲涓哄竷灏斿�� this.visible = true; + }, + + // 鍏抽棴缁ф壙瀵硅瘽妗� + inheritClose() { + this.dialogInheritVisible = false; + this.$refs.inheritTree.setCurrentKey(null); // 鍙栨秷褰撳墠閫変腑鐨勮妭鐐� + }, + + // 缁ф壙鎸夐挳 + inheritClickHandler() { + this.dialogInheritVisible = true; + }, + + // 缁ф壙鏍戣鐐瑰嚮 + inheritNodeClick(row) { + this.inheritNodeRow = row; + }, + + // 缁ф壙鏍戜繚瀛� + inheritSaveClickHandler() { + this.form.fName = this.inheritNodeRow.id; + this.dialogInheritVisible = false; }, // 瀵硅瘽妗� 灞炴�ф睜鍒楄〃澧炲姞鎸夐挳 @@ -728,15 +985,20 @@ } }, + // 灞炴�ф睜鍒犻櫎 + dialogBottomAttrDel(form, index) { + this.dialogAttrData.splice(index, 1); + }, + // 鐗堟湰瑙勫垯绠$悊娣诲姞 - versionAddHandler(){ + versionAddHandler() { this.dialogVersionVisible = true; this.dialogVersionKey = Math.random(); // 鎵撳紑鏃跺埛鏂拌〃鏍奸伩鍏嶈〃鏍奸敊琛� this.dialogVersionLoading = true; getVersionRuleAllList().then(res => { const data = res.data.data.map(item => { return { - id:item.id + id: item.id } }); this.dialogVersionData = data; @@ -748,12 +1010,12 @@ }, // 鐗堟湰瑙勫垯琛岀偣鍑� - dialogVersionRowClick(row){ + dialogVersionRowClick(row) { this.dialogVersionSaveRow = row; }, // 鐗堟湰瑙勫垯鎼滅储 - versionHandleSearch(params,done){ + versionHandleSearch(params, done) { const {id} = params; if (!params.id) { @@ -771,22 +1033,22 @@ }, // 鐗堟湰绠$悊缃┖ - versionHandleReset(){ + versionHandleReset() { this.dialogVersionData = this.dialogVersionDefalutData; }, - // 鐗堟湰瑙勫垯淇濆瓨 - dialogVersionAddClickHandler(){ - if(func.isEmptyObject(this.dialogVersionSaveRow)){ + // 鐗堟湰鍙疯鍒欎繚瀛� + dialogVersionAddClickHandler() { + if (func.isEmptyObject(this.dialogVersionSaveRow)) { this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�'); return; } - this.form.revRuleName = this.dialogVersionSaveRow.id; + this.form.revisionRuleId = this.dialogVersionSaveRow.id; this.dialogVersionVisible = false; }, // 鐢熷懡鍛ㄦ湡鏂板 - lifeAddHandler(val){ + lifeAddHandler(val) { this.dialogLfeVisible = true; this.dialogLifeKey = Math.random(); // 鎵撳紑鏃跺埛鏂拌〃鏍奸伩鍏嶈〃鏍奸敊琛� this.dialogLifeLoading = true; @@ -794,7 +1056,7 @@ gridLifeCycle().then(res => { const data = res.data.data.map(item => { return { - id:item.id + id: item.id } }); this.dialogLifeData = data; @@ -806,19 +1068,19 @@ }, // 鐢熷懡鍛ㄦ湡琛岀偣鍑� - dialogLifeRowClick(row){ + dialogLifeRowClick(row) { this.dialogLifeSaveRow = row; }, // 鐢熷懡鍛ㄦ湡淇濆瓨 - dialogLifeAddClickHandler(){ - if(func.isEmptyObject(this.dialogLifeSaveRow)){ + dialogLifeAddClickHandler() { + if (func.isEmptyObject(this.dialogLifeSaveRow)) { this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�'); return; } - if(this.lifeType === 'input'){ - this.form.lifeCycle = this.dialogLifeSaveRow.id; - }else { + if (this.lifeType === 'input') { + this.form.lifeCycleId = this.dialogLifeSaveRow.id; + } else { const flag = this.dialogLifeTable.some(item => item.id === this.dialogLifeSaveRow.id); if (flag) { @@ -831,12 +1093,12 @@ }, // 鐢熷懡鍛ㄦ湡澶囬�夊垪琛ㄧЩ闄� - dialogDeleteLifeTable(index){ - this.dialogLifeTable.splice(index,1) + dialogDeleteLifeTable(index) { + this.dialogLifeTable.splice(index, 1) }, // 鐢熷懡鍛ㄦ湡鎼滅储 - lifeHandleSearch(params,done){ + lifeHandleSearch(params, done) { const {id} = params; if (!params.id) { @@ -854,22 +1116,304 @@ }, // 鐢熷懡鍛ㄦ湡閲嶇疆 - lifeHandleReset(){ + lifeHandleReset() { this.dialogLifeData = this.dialogLifeDefalutData; }, - // 鏂板缂栬緫淇濆瓨 - addDialogSavaHandler(){ - console.log(this.form) - } + // 鍙兘杈撳叆鑻辨枃姝e垯鏍¢獙 + validateEnglishOnly(rule, value, callback) { + if (!value) { + return callback(new Error('璇疯緭鍏ョ被鍨嬪悕绉�')); + } + if (!/^[A-Za-z]+$/.test(value)) { + return callback(new Error('鍙兘杈撳叆鑻辨枃瀛楁瘝')); + } + callback(); // 楠岃瘉閫氳繃 + }, + // 娓呯┖琛ㄥ崟 + resetForm() { + const form = { + id: '', // 绫诲瀷鍚嶇О + name: '', // 鏍囩 + fName: '', // 缁ф壙鑷� + implClass: '', // 瀹炵幇绫� + description: '', // 鎻忚堪 + revLevel: '', // 鐗堟湰瑙勫垯 + revisionRuleId: '',// 鐗堟湰鍙疯鍒� + inputRevisionFlag: 'false', // 鎵嬪伐杈撳叆 + delimiter: '', // 鍒嗛殧绗� + versionRule: '0', // 鐗堟鍙疯鍒� + lifeCycleId: '', // 鐢熷懡鍛ㄦ湡 + subLifeCycleId: '', // 鐢熷懡鍛ㄦ湡澶囬�夊垪琛�, + apNameArray: "", // 灞炴�ф睜鍒楄〃鈥欙紝鈥樺垎闅� + }; + this.dialogLifeTable = []; // 灏嗙敓鍛藉懆鏈熻〃鏍肩疆绌� + this.dialogAttrData = []; // 灏嗗睘鎬ф睜琛ㄦ牸缃┖ + this.form = {...form}; + this.$refs.form.clearValidate(); + }, + + // 鏂板缂栬緫瀵硅瘽妗嗗彇娑� + addDialogClose() { + this.resetForm(); + this.visible = false; + }, + + // 鐗堟湰瑙勫垯鍒囨崲 缃┖鍏朵粬鏉′欢 + revLevelChange() { + this.form.versionRule = ""; + this.form.inputRevisionFlag = false; + this.form.delimiter = ""; + this.form.versionRule = "0"; + this.form.revisionRuleId = ""; + }, + + // 鏂板缂栬緫淇濆瓨 + addDialogSavaHandler() { + if (!this.form.inputRevisionFlag && (!this.form.revisionRuleId || this.form.revisionRuleId === "")) { + this.$message.error('璇锋鏌ョ増鏈彿瑙勫垯涓嶈兘涓虹┖'); + return; + } + this.form.subLifeCycleId = this.dialogLifeTable ? this.dialogLifeTable.map(item => item.id).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; + if (valid) { + if (this.form.revLevel === 0) { + this.form.versionRule = ""; + } + saveFunction(this.form).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.obj); + this.getTreeList(); + this.resetForm(); + this.visible = false; + } + }) + } else { + return false; + } + }); + }, + + // 缂栬緫鎸夐挳鐐瑰嚮浜嬩欢 + editClickHandler() { + /** + * id 鍚嶇О + * name 鏍囩 + * implClass 瀹炵幇绫� + * fName 缁ф壙鑷� + * description 鎻忚堪 + * revLevel 鐗堟湰瑙勫垯 + * revisionRuleId 鐗堟湰鍙疯鍒� + * inputRevisionFlag 鎵嬪伐杈撳叆 + * delimiter 鍒嗛殧绗� + * versionRule 鐗堟鍙疯鍒� + * lifeCycleId 鐢熷懡鍛ㄦ湡 + * lifeCycleIds 鐢熷懡鍛ㄦ湡鍒楄〃 + * attributes 灞炴�ф睜鍒楄〃 + */ + if (func.isEmptyObject(this.nodeRow)) { + this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�'); + return; + } + if (this.nodeRow.id === 'topNode') { + this.$message.error('璇烽�夋嫨瀛愯妭鐐硅繘琛屼慨鏀�') + return; + } + this.form = {...this.nodeRow}; + this.form.inputRevisionFlag = JSON.parse(this.form.inputRevisionFlag); // 瀛楃涓瞗alse杞崲涓哄竷灏斿�� + // this.form.fName = this.nodeRow.id === 'topNode' ? "" : this.nodeRow.id; + this.dialogLifeTable = (this.nodeRow.lifeCycleIds && this.nodeRow.lifeCycleIds.trim()) + ? this.nodeRow.lifeCycleIds.split(',').map(item => ({id: item.trim()})) + : []; + this.dialogAttrData = this.nodeRow.attributes ? JSON.parse(this.nodeRow.attributes) : []; + this.title = 'edit'; + this.visible = true; + console.log(this.form); + }, + + // 鍒犻櫎鎸夐挳 + deleteClickHandler() { + if (func.isEmptyObject(this.nodeRow)) { + this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�'); + return; + } + ; + this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎鎵�閫夋嫨鐨勬暟鎹悧锛�', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + const {id, oid, ts} = this.nodeRow; + const obj = {id, oid, ts}; + deleteBtmType(obj).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.obj); + this.getTreeList(); + } + }) + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }); + }); + }, + + // 鍒涘缓瑙嗗浘 + createViewClickHandler() { + this.createViewLoading = true; + createView().then(res => { + if (res.data.code === 200) { + this.createViewLoading = false; + this.$message.success(res.data.obj); + } + }).catch(err => { + this.createViewLoading = false; + }) + }, + + // 瀵煎嚭 + exportClickHandler() { + if (func.isEmptyObject(this.nodeRow)) { + this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�'); + return; + } + let name = this.nodeRow.id; + expData({name: name}).then(res => { + func.downloadFileByBlobHandler(res); + this.$message.success('瀵煎嚭鎴愬姛'); + }).catch(err => { + this.$message.error(err); + }); + }, + + // 瀵煎叆 + upLoadClickHandler() { + this.$refs.upload.visible = true; + }, + + // 鏌ョ湅浣跨敤鑼冨洿鎸夐挳 + checkViewClickHandler() { + if (func.isEmptyObject(this.nodeRow)) { + this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹紒'); + return; + } + getUsedBtmLinkList({btmName: this.nodeRow.id}).then(res => { + if (res.data.code === 200) { + this.checkViewVisible = true; + const data = res.data.data.map(item => { + return{ + name:this.nodeRow.id, + source:item + } + }); + this.checkViewData = data; + this.checkViewDataSearch = data; + } + }) + }, + + // 鏌ョ湅浣跨敤鑼冨洿鏌ヨ + checkHandleSearch(params, done) { + const {source} = params; + + if (!params.source) { + this.checkViewData = this.checkViewDataSearch; + return done(); + } + ; + + this.checkViewData = this.checkViewDataSearch.filter(item => { + return item.source && item.source.includes(source); + }); + + done(); + + }, + + // 鏌ョ湅浣跨敤鑼冨洿閲嶇疆 + checkHandleReset() { + this.checkViewData = this.checkViewDataSearch; + }, + + // 涓�鑷存�ф鏌ユ寜閽偣鍑� + checkClickHandler(){ + checkBtmConsistency().then(res =>{ + if(res && res.data && res.data.data){ + this.conCheckVisible = true; + this.conCheckLoading = true; + if(res.data.code === 200){ + const data = res.data.data[0]; + this.conDefaultCheckData = data; // 淇濈暀涓�浠藉師濮嬫暟鎹� + this.conCheckLoading = false; + const outputData = []; + Object.entries(data).forEach(([id, methods]) => { + let action; + + switch (methods) { + case '_CREATE': + action = '鍒涘缓琛�'; + break; + case '_ADD': + action = '澧炲姞鍒�'; + break; + case '_DROP': + action = '绉婚櫎鍒�'; + break; + default: + action = '鏈煡'; + } + outputData.push({ + id: id, + methods: action, + status: '鏈慨澶�' + }) + }) + this.conCheckData = outputData; + } + }else { + this.$message.success(res.data.msg); + } + }) + }, + + // 淇涓�鑷存�ф鏌� + repairClickHandler() { + const params = this.conDefaultCheckData; + executeRepair(params).then(res => { + if (res.data.obj) { + this.$message.success('淇鎴愬姛'); + this.conCheckData = []; + } else { + this.$message.error('淇澶辫触锛岃閲嶆柊灏濊瘯锛�'); + } + this.conCheckVisible = false; + }) + }, + + // 鍒涘缓绱㈠紩鎸夐挳鐐瑰嚮 + indexClickHandler(){ + if(func.isEmptyObject(this.nodeRow)){ + this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�'); + return; + } + const params = { + "conditionMap[typename]":this.nodeRow.id + } + getIndexByCondition(params).then(res => { + console.log(res); + }) + } } } </script> <style lang="scss" scoped> ::v-deep { - .avue-dialog .el-dialog__body{ + .avue-dialog .el-dialog__body { padding: 20px 20px 0px 20px; // 涓婂彸涓嬪乏 margin-bottom: 10px !important; } -- Gitblit v1.9.3