From ded6e8d2312e139e8ce770c7f1d5830bf2db4af6 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期三, 19 七月 2023 11:39:41 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS-WEB/src/components/Tree/classifyTrees.vue | 827 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 684 insertions(+), 143 deletions(-) diff --git a/Source/UBCS-WEB/src/components/Tree/classifyTrees.vue b/Source/UBCS-WEB/src/components/Tree/classifyTrees.vue index f3d1fd1..265d4ee 100644 --- a/Source/UBCS-WEB/src/components/Tree/classifyTrees.vue +++ b/Source/UBCS-WEB/src/components/Tree/classifyTrees.vue @@ -2,14 +2,23 @@ <template> <el-container> <!-- 宸︿晶鑿滃崟--> - <el-aside> - <basic-container style="height: 85vh; max-height: 155vh; overflow-y: scroll;"> + <el-aside > + <basic-container style="overflow:hidden;"> <div> - <div style="display: flex;justify-content: space-around"> - <el-button plain size="small" type="primary" @click="TreeAdd">娣诲姞</el-button> - <el-button plain size="small" type="primary" @click="ExportExcel">瀵煎嚭</el-button> - <el-button plain size="small" type="primary" @click="ImportExcel">瀵煎叆</el-button> - <el-button plain size="small" type="primary" @click="flushed">鍒锋柊</el-button> + <div> + <div style="display: flex; flex-direction: column;"> + <div style="display: flex;"> + <el-button plain size="small" type="primary" @click="TreeAdd">娣诲姞</el-button> + <el-button plain size="small" type="primary" @click="TreeEdit">淇敼</el-button> + <el-button plain size="small" type="primary" @click="TreeDel">鍒犻櫎</el-button> + <el-button plain size="small" type="primary" @click="flushed">鍒锋柊</el-button> + </div> + <div style="display: flex; margin-top: 10px"> + <el-button plain size="small" type="primary" @click="Enable">鍚敤</el-button> + <el-button plain size="small" type="primary" @click="Deactivate">鍋滅敤</el-button> + <el-button plain size="small" type="primary" @click="ImportExcel">瀵煎叆</el-button> + <el-button plain size="small" type="primary" @click="ExportExcel">瀵煎嚭</el-button> + </div> </div> <div style="display: flex;justify-content: space-around;margin-top: 5px;margin-bottom: 5px"> </div> @@ -17,28 +26,28 @@ <!-- 鏍戣妭鐐规坊鍔犲璇濇--> <el-dialog :title="this.TreeFlag ? '娣诲姞鍒嗙被' :'娣诲姞涓婚搴�'" :visible.sync="TreeAddFormVisible" append-to-body style="width: 1700px;margin: auto"> - <el-form :model="TreeAddform"> - <el-form-item :label="this.TreeFlag ? '鍒嗙被缂栧彿锛�' :'涓婚搴撶紪鍙凤細'" label-width="150px" style="display: inline-block"> + <el-form :model="TreeAddform" :rules="rules"> + <el-form-item :label="this.TreeFlag ? '鍒嗙被缂栧彿锛�' :'涓婚搴撶紪鍙凤細'" label-width="150px" style="display: inline-block" prop="id"> <el-input v-model="TreeAddform.id" autocomplete="off" style="width: 170px"></el-input> </el-form-item> - <el-form-item :label="this.TreeFlag ? '鍒嗙被鍚嶇О锛�' :'涓婚搴撳悕绉帮細'" label-width="100px" style="display: inline-block"> + <el-form-item :label="this.TreeFlag ? '鍒嗙被鍚嶇О锛�' :'涓婚搴撳悕绉帮細'" label-width="110px" style="display: inline-block" prop="name"> <el-input v-model="TreeAddform.name" autocomplete="off" style="width: 170px"></el-input> </el-form-item> <el-form-item label="鎻忚堪锛�" label-width="150px"> <el-input v-model="TreeAddform.description" autocomplete="off" style="width: 585px"></el-input> </el-form-item> - <el-form-item v-show="this.TreeFlag==false" label="瀛樺偍鐨勪笟鍔$被鍨嬶細" label-width="150px"> - <el-input v-model="TreeAddform.btmtypename" autocomplete="off" style="width: 585px"></el-input> - </el-form-item> <el-form-item label="缂栫爜瑙勫垯锛�" label-width="150px"> - <el-input v-model="TreeAddform.coderuleoidName" autocomplete="off" style="width: 585px"></el-input> + <el-input v-model="TreeAddform.codeRuleOidName" autocomplete="off" style="width: 585px" @focus="CodeFoucus"></el-input> + </el-form-item> + <el-form-item label="涓氬姟绫诲瀷锛�" label-width="150px" v-if="TreeFlagCode==false"> + <el-input v-model="TreeAddform.btmTypeName" autocomplete="off" style="width: 585px" @focus="btmFoucus"></el-input> </el-form-item> <el-form-item label="鍏抽敭灞炴�ф煡璇㈣鍒欙細" label-width="150px"> - <el-input v-model="TreeAddform.codekeyattrrepeatoidName" autocomplete="off" + <el-input v-model="TreeAddform.codeKeyAttrRepeatOidName" autocomplete="off" @focus="Keyfouce" style="width: 585px"></el-input> </el-form-item> <el-form-item label="鐩镐技鏌ヨ瑙勫垯锛�" label-width="150px"> - <el-input v-model="TreeAddform.codeResembleRuleOidName" autocomplete="off" + <el-input v-model="TreeAddform.codeResembleRuleOidName" autocomplete="off" @focus="simFouce" style="width: 585px"></el-input> </el-form-item> </el-form> @@ -49,43 +58,38 @@ </el-dialog> <!-- 淇敼瀵硅瘽妗�--> <el-dialog :visible.sync="TreeEditFormVisible" append-to-body title="淇敼鍒嗙被"> - <classifyTreeform ref="childForm" :loneTreeNewForm="TreeList" :nodeList="nodeList"></classifyTreeform> + <classifyTreeform ref="childForm" :loneTreeNewForm="TreeList" :nodeList="nodeList" :flag="'edit'" @MasterHandler="MasterHandler" :Editclose=" ()=>{TreeEditFormVisible=false}" :TreeFlag="TreeFlagCode" ::nodeClickList="nodeClickList" @referTreeForm="referTreeForm" @flushed="flushed"></classifyTreeform> </el-dialog> <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="CloneTreedata" :defaultExpandAll="false" :option="Treeoption" - style="height: 80.5vh;padding-top: 5px;padding-bottom: 30px" - @node-click=" nodeClick" - @check-change="checkChange" + style="height: calc(100vh - 230px);" + @node-click="nodeClick" + class="classifyTree" > </avue-tree> + </div> </basic-container> </el-aside> <el-main> - <basic-container style="height: 85vh; max-height: 155vh; "> + <basic-container style="height: calc(100vh - 150px);"> <!-- 鍙充晶琛ㄦ牸--> <avue-tabs :option="tabOption" @change="handleChange"></avue-tabs> <span v-if="type.prop==='tab1'"> - <classifyTreeform ref="childForm" :TreeNewForm="TreeList" :nodeList="nodeList"></classifyTreeform> + <classifyTreeform ref="childForm" :loneTreeNewForm="TreeList" :nodeList="nodeList" :flag="'renonly'" ></classifyTreeform> </span> <span v-else-if="type.prop==='tab2'"> <basic-container> - <avue-crud v-model="crudForm" v-loading="FormLoing" :data="this.Formlist" :option="this.crudTreeOption" + <avue-crud ref="textCrud" v-model="crudForm" v-loading="FormLoing" :data="this.Formlist" :option="this.crudTreeOption" @row-save="CrudRowSave" @row-del="CrudRowDel" @row-update="CrudRowUpdata" :before-close="beforeClose" + @select="selectHandle" > <template slot="menuLeft"> - <el-button plain size="small" type="primary" @click="FindFormVisible = true;">鏌ヨ</el-button> + <el-button plain size="small" type="primary" @click="FindeHanler">鏌ヨ</el-button> <el-button plain size="small" type="primary" @click="TemRefresh">鍒锋柊</el-button> - <el-button plain size="small" type="primary" @click="TreeEdit">淇敼</el-button> - <el-button plain size="small" type="primary" @click="TreeDel">鍒犻櫎</el-button> - <el-button plain size="small" type="primary" @click="Enable">鍚敤</el-button> - <el-button plain size="small" type="primary" @click="Deactivate">鍋滅敤</el-button> <el-button plain size="small" type="primary" @click="CloneBtn">浠庡叾瀹冩ā鏉垮厠闅�</el-button> - <div style="display: inline-block"> <el-input v-model="FindText" placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�" - size="small" - @keyup.enter.native="EnterFind"></el-input></div> <!-- 鏌ヨ瀵硅瘽妗�--> <el-dialog :visible.sync="FindFormVisible" append-to-body title="楂樼骇鏌ヨ"> <div> @@ -94,7 +98,7 @@ </div> <div style="padding-left: 80px;margin-top: 15px;"> <template v-for="(value, key) in FindSelect"> - <div style="display: flex;justify-content: space-around;width: 85%;margin-bottom: 15px"> + <div style="display: flex; justify-content: space-around; width: 85%; margin-bottom: 15px"> <el-select v-model="FindSelect[key]" placeholder="璇烽�夋嫨" style="width: 28%" @change="handleSelectChange(key)"> <el-option label="妯℃澘缂栧彿" value="0"></el-option> @@ -119,11 +123,11 @@ <el-aside width="300px"> <div style="margin-bottom: 5px"><el-tag>涓婚搴撳垎绫�</el-tag></div> <!-- 鍏嬮殕妯℃澘鐨勬爲 娌跨敤棣栭〉鏍戠殑loading鍜宱ption锛屼絾鏄痙ata鍜寁-model缁戝畾鐨勬暟鎹垱寤轰竴涓柊鐨勫彉閲忥紝鍙﹀鐐瑰嚮鏂规硶涔熸槸閲嶆柊鑾峰彇鏉ユ搷浣滃厠闅嗘ā鏉跨殑鏁版嵁--> - <avue-tree ref="tree" v-model="TreeAvueform" v-loading="loading" :data="Treedata" - :defaultExpandAll="false" - :option="Treeoption" - style="height: 50.5vh;margin-right: 10px" - @node-click="ClonenodeClick" + <avue-tree v-model="TreeAvueform" v-loading="loading" :data="Treedata" + :defaultExpandAll="false" + :option="Treeoption" + style="height: 50.5vh;margin-right: 10px" + @node-click="ClonenodeClick" > </avue-tree> </el-aside> @@ -145,6 +149,7 @@ <avue-crud v-model="ClonecrudForm" v-loading="FormLoing" :data="this.CloneFormlist" :option="this.ClonecrudTreeOption" @selection-change="selectionChange" + ></avue-crud> </div> </el-main> @@ -165,20 +170,151 @@ </el-dialog> </el-dialog> </template> + <template #menu="{ size, row ,index}"> + <el-button type="text" + v-if="row.lcStatus == 'Editing'" + icon="el-icon-edit-outline " + :size="size" + @click="$refs.textCrud.rowEdit(row)">缂栬緫</el-button> + <el-button type="text" + v-if="row.lcStatus == 'Editing'" + icon="el-icon-delete" + :size="size" + @click="$refs.textCrud.rowDel(row,index)">鍒犻櫎</el-button> + <el-button + v-show="row.lcStatus === 'Released'" + @click="upAndStopAndStart(row, 'upVersion')" + :loading="row.upVersionLoad" + icon="el-icon-upload2" + type="text" + :size="size" + >鍗囩増</el-button + > + <el-button + v-show="row.lcStatus === 'Released'" + @click="upAndStopAndStart(row, 'stopLose')" + :loading="row.stopLoseLoad" + icon="el-icon-circle-close" + type="text" + :size="size" + >鍋滅敤/澶辨晥</el-button + > + <el-button + v-show="['Disabled', 'Editing'].includes(row.lcStatus)" + @click="upAndStopAndStart(row, 'startRelease')" + :loading="row.startReleaseLoad" + icon="el-icon-circle-check" + type="text" + :size="size" + >鍚敤/鍙戝竷</el-button + > + </template> </avue-crud> </basic-container> - <templatePro :ProData="this.ProData"></templatePro> + <templatePro :ProData="this.ProData" :crudOid="this.crudOid" :crudLCStatus="this.crudLCStatus" :crudArray="this.crudArray" :Formlist="this.Formlist" :codeClassifyOid="this.codeClassifyOid"></templatePro> </span> + <!-- 缂栫爜瑙勫垯--> + <el-dialog :visible.sync="MasterdialogVisible" title="涓恒�愮紪鐮佽鍒欍�戦�夊彇鍊�" append-to-body> + <template> + <el-select v-model="SelectValue" placeholder="璇烽�夋嫨" style="width: 135px"> + <el-option + v-for="item in SelectOption" + :key="item.value" + :label="item.label" + :value="item.value" + style="width: 150px"> + </el-option> + </el-select> + <el-input style="width: 260px;margin-left: 15px" placeholder="杈撳叆鍊煎悗杩涜妯$硦鏌ヨ" v-model="SelectFInd"></el-input> + <el-button size="small" type="primary" plain @click="SelectFindeHandler" style="margin-left: 20px">鏌ヨ</el-button> + </template> + <avue-crud :data="masterData" :option="masterOption" @select="masterSelect"></avue-crud> + <div style="height: 30px"> + <div style="display: inline-block;float: left;border: 1px solid #eee;padding: 5px;margin-top: 5px;font-size: 14px " >宸茶缃殑鍊间负:[{{this.TreeAddform.coderuleoidName ==''?'鏈缃��':this.TreeAddform.coderuleoidName}}]</div> + <div style="padding-top: 10px;display: flex; justify-content: flex-end;float: right;overflow: hidden" > + <el-button type="primary" size="small" @click="MasterHandlerClick">纭畾</el-button> + <el-button size="small" @click="MasterdialogVisible=false">鍙栨秷</el-button> + </div> + </div> + </el-dialog> + <!-- 鍏抽敭灞炴�ф煡璇㈣鍒�--> + <el-dialog :visible.sync="KeydialogVisible" title="涓恒�愬叧閿睘鎬ф煡璇㈣鍒欍�戦�夊彇鍊�" append-to-body> + <template> + <el-select v-model="SelectValue" placeholder="璇烽�夋嫨" style="width: 135px"> + <el-option + v-for="item in SelectOption" + :key="item.value" + :label="item.label" + :value="item.value" + style="width: 150px"> + </el-option> + </el-select> + <el-input style="width: 260px;margin-left: 15px" placeholder="杈撳叆鍊煎悗杩涜妯$硦鏌ヨ" v-model="SelectFInd"></el-input> + <el-button size="small" type="primary" plain @click="KeySelectFindeHandler" style="margin-left: 20px">鏌ヨ</el-button> + </template> + <avue-crud :data="KeyData" :option="masterOption" @select="KeySelect"></avue-crud> + <div style="height: 30px"> + <div style="display: inline-block;float: left;border: 1px solid #eeeeee;padding: 5px;margin-top: 5px;font-size: 14px " >宸茶缃殑鍊间负:[{{this.TreeAddform.codeKeyAttrRepeatOidName ==''?'鏈缃��':this.TreeAddform.codekeyattrrepeatoidName}}]</div> + <div style="padding-top: 10px;display: flex; justify-content: flex-end;float: right;overflow: hidden" > + <el-button type="primary" size="small" @click="KeyHandlerClick">纭畾</el-button> + <el-button size="small" @click="KeydialogVisible=false">鍙栨秷</el-button> + </div> + </div> + </el-dialog> + <!-- 鐩镐技椤规煡璇㈣鍒�--> + <el-dialog :visible.sync="SimidialogVisible" title="涓恒�愮浉浼奸」鏌ヨ瑙勫垯銆戦�夊彇鍊�" append-to-body> + <template> + <el-select v-model="SelectValue" placeholder="璇烽�夋嫨" style="width: 135px"> + <el-option + v-for="item in SelectOption" + :key="item.value" + :label="item.label" + :value="item.value" + style="width: 150px"> + </el-option> + </el-select> + <el-input style="width: 260px;margin-left: 15px" placeholder="杈撳叆鍊煎悗杩涜妯$硦鏌ヨ" v-model="SelectFInd"></el-input> + <el-button size="small" type="primary" plain @click="SimSelectFindeHandler" style="margin-left: 20px">鏌ヨ</el-button> + </template> + <avue-crud :data="simData" :option="masterOption" @select="simSelect"></avue-crud> + <div style="height: 30px"> + <div style="display: inline-block;float: left;border: 1px solid #eee;padding: 5px;margin-top: 5px;font-size: 14px " >宸茶缃殑鍊间负:[{{this.TreeAddform.codeResembleRuleOidName ==''?'鏈缃��':this.TreeAddform.codeResembleRuleOidName}}]</div> + <div style="padding-top: 10px;display: flex; justify-content: flex-end;float: right;overflow: hidden" > + <el-button type="primary" size="small" @click="simHandlerClick">纭畾</el-button> + <el-button size="small" @click="SimidialogVisible=false">鍙栨秷</el-button> + </div> + </div> + </el-dialog> +<!-- 涓氬姟绫诲瀷--> + <el-dialog :visible.sync="BtmdialogVisible" title="涓恒�愪笟鍔$被鍨嬭鍒欍�戦�夊彇鍊�" append-to-body> + <template> + <el-select v-model="SelectValue" placeholder="璇烽�夋嫨" style="width: 135px !important;"> + <el-option + v-for="item in SelectOption" + :key="item.value" + :label="item.label" + :value="item.value" + style="width: 130px"> + </el-option> + </el-select> + <el-input style="width: 260px;margin-left: 15px" placeholder="杈撳叆鍊煎悗杩涜妯$硦鏌ヨ" v-model="SelectFInd"></el-input> + <el-button size="small" type="primary" plain @click="BtmSelectFindeHandler" style="margin-left: 20px">鏌ヨ</el-button> + </template> + <avue-crud :data="BtmData" :option="masterOption" @select="btmSelect"></avue-crud> + <div style="height: 30px"> + <div style="display: inline-block;float: left;border: 1px solid #eee;padding: 5px;margin-top: 5px;font-size: 14px " >宸茶缃殑鍊间负:[{{this.TreeAddform.btmTypeName}}]</div> + <div style="padding-top: 10px;display: flex; justify-content: flex-end;float: right;overflow: hidden" > + <el-button type="primary" size="small" @click="btmHandlerClick">纭畾</el-button> + <el-button size="small" @click="BtmdialogVisible=false">鍙栨秷</el-button> + </div> + </div> + </el-dialog> </basic-container> </el-main> </el-container> </template> <script> -//杩欓噷澹版槑涓�浜涜彍鍗曠粍浠剁敤娉曪細棣栧厛甯冨眬鍒嗕负宸︿晶鑿滃崟鍙充晶琛ㄦ牸锛屽彲鑳戒細鏈夊彸渚ab鏍忓姞琛ㄥ崟鐨勬儏鍐点�傛墍浠ュ彟澶栧紩鍏ヤ簡涓�涓彸渚ц〃鍗曠殑缁勪欢"classifyTreeform"銆� -//棣栧厛鐖剁粍浠惰皟鐢ㄥ瓙缁勪欢鑿滃崟锛岄�氳繃provide浼犻�掑弬鏁般�傛湁Treeoption宸︿晶鏍戞柊澧炶〃鍗曢」 Treedata宸︿晶鏍戣妭鐐归厤缃」 crudTreeOption鍙充晶琛ㄦ牸閰嶇疆椤� crudTreeData鍙充晶琛ㄦ牸鏄剧ず鍐呭 -//鍏朵腑琛ㄦ牸鐨勯厤缃」鐩存帴鐖朵紶瀛愪紶閫掕繃鏉ュ氨琛岋紝鐩存帴:option=浼犻�掔殑鍙傛暟鍚嶏紝閲岄潰鏁版嵁鏄剧ず鐨勫唴瀹瑰洜涓烘槸鍜屽乏渚ц仈鍔ㄧ殑锛屾墍浠ラ噸鏂颁竴涓狥ormlist锛岄�氳繃鐐瑰嚮鏍戣妭鐐逛笅鏍囨潵鍔ㄦ�佹覆鏌撳彸渚ц〃鏍硷紝涓嬮潰鏂规硶閮芥湁鍏蜂綋娉ㄩ噴 -//鐒跺悗鍐嶈鍙充晶鐨勮〃鍗曪紝涓撻棬瀹氫箟浜嗕竴涓粍浠讹紝閫氳繃鐖朵紶瀛愬啀鎶婅〃鍗曟暟鎹甌reeList浼犻�掕繃鍘伙紝浼犻�掑墠鍦�10deCLi1ck鏂规硶閲岄潰渚夸簡澶勭悊涔熸槸涓�涓仈鍔ㄧ殑鏁堟灉锛岃〃鍗曠殑閰嶇疆椤瑰湪鍝釜瀛愮粍浠舵垨鑰呯埗缁勪欢鍐欓兘鍙互銆� import { getAtrrList, TreeSave, @@ -187,7 +323,6 @@ TreeObjcet, TreeEnable, TreeDeactivate, - importClassify, gridCodeClassifyTemplate, getObjectByOid, gridCodeClassifyTemplateAttr, @@ -195,22 +330,103 @@ addSave, deleteData, editSave, - copy + copy, + upVersion, + stopLose, + startRelease } from "@/api/template/templateAttr"; -import done from "@/views/work/done"; - +import {defaultReferDataGrid,referDataGrid} from '@/api/MasterData/master' export default { name: "classifyTrees.vue", //浣跨敤inject鎺ユ敹鍙傛暟 //Treeoption宸︿晶鏍戞柊澧炶〃鍗曢」 Treedata宸︿晶鏍戣妭鐐� 閰嶇疆椤� crudTreeOption鍙充晶琛ㄦ牸閰嶇疆椤� crudTreeData鍙充晶琛ㄦ牸鏄剧ず鍐呭 //Treeform鍙充晶琛ㄥ崟閰嶇疆椤� - inject: ['crudTreeOption', "crudTreeData"], + inject: ["crudTreeData"], data() { return { + //鏍戣妭鐐规樉绀洪殣钘� + TreeFlagCode:false, + //缂栫爜瑙勫垯 + MasterdialogVisible:false, + masterData:[], + masterSelectList:[], + masterName:"", + masterOid:"", + //鍏抽敭灞炴�� + KeydialogVisible:false, + KeyName:"", + KeyOid:"", + KeyData:[], + KeySelectLIst:[], + //鐩镐技椤� + simName:"", + simOid:"", + simData:[], + SimidialogVisible:false, + simSelectList:[], + //涓氬姟绫诲瀷 + btmName:"", + btmOid:"", + BtmData:[], + BtmdialogVisible:false, + btmSelectList:[], + masterOption:{ + addBtn:false, + index:true, + border:true, + selection:true, + menu:false, + height:380, + column:[ + { + label:'鑻辨枃鍚嶇О', + prop:'id' + }, + { + label:'涓枃鍚嶇О', + prop:'name' + }, + { + label:'鎻忚堪', + prop:'description' + } + ] + }, + SelectOption:[ + { + value: 'name', + label: '涓枃鍚嶇О' + }, + { + value: 'id', + label: '鑻辨枃鍚嶇О' + } + ], + SelectValue:"", + SelectFInd:"", + rules: { + id: [ + { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: 'blur' }, + ], + name:[ + { required: true, message: '璇疯緭鍏ョ紪鍙�', trigger: 'blur' }, + ] + }, + addFlag:false, + // 琛ㄦ牸褰撳墠琛宨d + crudOid:"", + //褰撳墠閫変腑妯℃澘鐘舵�� + crudLCStatus:'', + //琛ㄦ牸褰撳墠閫夋嫨鏁扮粍 + crudArray:[], //妯℃澘灞炴�у睍绀哄唴瀹� ProData: [], //鍥炶溅閿悳绱㈢粦瀹氬�� - FindText: "", + searchTemplate: { + searchCondition: 'id', + findText: "", + }, + //楂樼骇鏌ヨ瀵硅瘽妗� FindFormVisible: false, //鍏嬮殕妯℃澘瀵硅瘽妗� @@ -257,11 +473,11 @@ //鐩镐技鏌ヨ瑙勫垯 codeResembleRuleOidName: "", //鍏抽敭灞炴�ф煡璇㈣鍒� - codekeyattrrepeatoidName: "", + codeKeyAttrRepeatOidName: "", //缂栫爜瑙勫垯 - coderuleoidName: "", + codeRuleOidName: "", //瀛樺偍鐨勪笟鍔$被鍨� - btmtypename: "" + btmTypeName: "" }, //avue-tree鏁版嵁锛屾殏鏃舵病鏈変綔鐢紝閲岄潰鍔熻兘鐢╡lement鍐欎簡锛屽彧鐢╝vue鐨勪竴涓爲缁勪欢涓嶇敤鍐呯疆琛ㄥ崟浜嗐�� TreeAvueform: {}, @@ -343,11 +559,21 @@ column: [ { label: "妯℃澘缂栧彿", - prop: "id" + prop: "id", + rules: [{ + required: true, + message: "妯℃澘缂栧彿", + trigger: "blur" + }] }, { label: "妯℃澘鍚嶇О", prop: "name", + rules: [{ + required: true, + message: "妯℃澘鍚嶇О", + trigger: "blur" + }] }, { label: "妯℃澘鎻忚堪", @@ -392,28 +618,334 @@ ], //浼犻�掔粰瀛愮粍浠跺姩鎬佹覆鏌撶殑鏁版嵁 TreeList: {}, - codeClassifyOid: "" + codeClassifyOid: "", + upAndStopAndStartData: { + upVersion: { + tip: "鏄惁杩涜鍗囩増锛�", + typeText: "鍗囩増", + funAPi: upVersion, + load: 'upVersionLoad' + }, + stopLose: { + tip: "妯℃澘鍙湁鍙戝竷鐘舵�佹墠鑳借浣跨敤锛屾槸鍚︾‘瀹氬仠鐢紵", + typeText: "鍋滅敤/澶辨晥", + funAPi: stopLose, + load: 'stopLoseLoad' + }, + startRelease: { + tip: "鏄惁纭畾鍚敤/鍙戝竷杩欎釜妯℃澘锛屾ā鏉垮彧鏈夊彂甯冪姸鎬佹墠鑳借浣跨敤锛屾槸鍚︾户缁紵", + typeText: "鍚敤/鍙戝竷", + funAPi: startRelease, + load: 'startReleaseLoad' + } + }, + //妯℃澘绠$悊缂栬緫 + showEditBtn:false, } }, //tab鏍忛粯璁ゆ槸琛ㄦ牸 mounted() { this.type = this.tabOption.column[0]; this.getAttr(); + const treeEle = this.$refs.tree.$el + treeEle.addEventListener('click', (e) => { + if (e.target.nodeName !== 'SPAN') { + this.$refs.tree.setCurrentKey(null) + this.nodeClickList = {} + this.TreeList=[] + this.TreeFlagCode=false; + } + }, true) + }, + computed:{ + crudTreeOption(){ + return{ + index: true, + border: true, + height:180, + selection:true, + addBtn:this.Formlist.length<=0 && this.nodeClickList != "", + editBtn:false, + delBtn:false, + column: [ + { + label: "妯℃澘缂栧彿", + prop: "id", + rules: [{ + required: true, + message: "妯℃澘缂栧彿", + trigger: "blur" + }] + }, + { + label: "妯℃澘鍚嶇О", + prop: "name", + rules: [{ + required: true, + message: "妯℃澘鍚嶇О", + trigger: "blur" + }] + }, + { + label: "妯℃澘鎻忚堪", + prop:"description" + }, + { + label:"鐗堟湰鍙�", + prop:"revisionSeq", + display:false + }, + { + label:"鐘舵��", + prop:"lcStatusText", + display:false + } + ] + } + } }, methods: { + //妯℃澘绠$悊宸插彂甯冪紪杈� + // checkShowEditBtn() { + // this.showEditBtn = this.Formlist.some(item => item.lcStatus === 'Released'); + // }, + //缂栫爜瑙勫垯澶辩劍 + CodeFoucus(){ + this.MasterdialogVisible=true; + this.MasterdefaultRend() + }, + //缂栫爜澶氶�� + masterSelect(row){ + if(row.length>0){ + this.masterSelectList=row; + this.masterName=row[0].name; + this.masterOid=row[0].oid; + } + }, + //缂栫爜瑙勫垯鏌ヨ + SelectFindeHandler(){ + if(this.SelectValue == 'id'){ + const masterParameter={ + 'conditionMap[id]':this.SelectFInd + } + this.MasterdefaultRend(masterParameter); + this.SelectValue="" + this.SelectFInd="" + }else if(this.SelectValue == 'name'){ + const masterParameter={ + 'conditionMap[name]':this.SelectFInd + } + this.MasterdefaultRend(masterParameter) + this.SelectValue="" + this.SelectFInd="" + } + }, + //缂栫爜瑙勫垯纭畾 + MasterHandlerClick(){ + if(this.masterSelectList.length>1){ + this.$message.warning('鍙兘閫夋嫨涓�鏉℃暟鎹�') + }else if(this.masterSelectList.length<=0){ + this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�') + }else { + this.MasterdialogVisible=false; + this.masterSelectList=[] + this.$set(this.TreeAddform,'codeRuleOidName',this.masterName) + this.$set(this.TreeAddform,'codeRuleOid',this.masterOid) + this.$emit('MasterHandler',this.loneTreeNewForm) + } + }, + //缂栫爜鎺ュ彛 + MasterdefaultRend(){ + defaultReferDataGrid({ + referType:'coderule', + isMuti:'false', + 'conditionMap["lcstatus"]':'Released' + }).then(res=>{ + this.masterData=res.data.records; + }) + }, + Keyfouce(){ + this.KeydialogVisible=true; + this.KeydefaultRend() + }, + //鍏抽敭灞炴�х‘瀹� + KeyHandlerClick(){ + if(this.KeySelectLIst.length>1){ + this.$message.warning('鍙兘閫夋嫨涓�鏉℃暟鎹�') + }else if(this.KeySelectLIst.length<=0){ + this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�') + }else { + this.KeydialogVisible=false; + this.KeySelectLIst=[] + this.$set(this.TreeAddform,'codeKeyAttrRepeatOidName',this.KeyName) + this.$set(this.TreeAddform,'codeKeyAttrRepeatOid',this.KeyOid) + } + }, + //鍏抽敭灞炴�ф煡璇� + KeySelectFindeHandler(){ + if(this.SelectValue == 'id'){ + const masterParameter={ + 'conditionMap[id]':this.SelectFInd + } + this.KeydefaultRend(masterParameter); + this.SelectValue="" + this.SelectFInd="" + }else if(this.SelectValue == 'name'){ + const masterParameter={ + 'conditionMap[name]':this.SelectFInd + } + this.KeydefaultRend(masterParameter) + this.SelectValue="" + this.SelectFInd="" + } + }, + //鍏抽敭灞炴�ф帴鍙� + KeydefaultRend(){ + defaultReferDataGrid({ + referType:'codekeyattrrepeat', + isMuti:'false', + 'conditionMap["lcstatus"]':'Enabled' + }).then(res=>{ + this.KeyData=res.data.records; + }) + }, + // 鍏抽敭澶氶�� + KeySelect(row){ + this.KeySelectLIst=row; + this.KeyName=row[0].name; + this.KeyOid=row[0].oid; + }, + //鍏抽敭澶辩劍 + simFouce(){ + this.SimidialogVisible=true; + this.simdefaultRend() + }, + //鐩镐技椤圭‘瀹� + simHandlerClick(){ + if(this.simSelectList.length>1){ + this.$message.warning('鍙兘閫夋嫨涓�鏉℃暟鎹�') + }else if(this.simSelectList.length<=0){ + this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�') + }else { + this.SimidialogVisible=false; + this.simSelectList=[] + this.$set(this.TreeAddform,'codeResembleRuleOidName',this.simName) + this.$set(this.TreeAddform,'codeResembleRuleOid',this.simOid) + this.$emit('MasterHandler',this.loneTreeNewForm) + } + }, + //鐩镐技椤规煡璇� + SimSelectFindeHandler(){ + if(this.SelectValue == 'id'){ + const masterParameter={ + 'conditionMap[id]':this.SelectFInd + } + this.simdefaultRend(masterParameter); + this.SelectValue="" + this.SelectFInd="" + }else if(this.SelectValue == 'name'){ + const masterParameter={ + 'conditionMap[name]':this.SelectFInd + } + this.simdefaultRend(masterParameter) + this.SelectValue="" + this.SelectFInd="" + } + }, + // 鐩镐技椤瑰閫� + simSelect(row){ + this.simSelectList=row; + this.simName=row[0].name; + this.simOid=row[0].oid; + }, + //鐩镐技椤归」鎺ュ彛 + simdefaultRend(){ + defaultReferDataGrid({ + referType:'coderesemblerule', + isMuti:'false', + 'conditionMap["lcstatus"]':'Enabled' + }).then(res=>{ + this.simData=res.data.records; + }) + }, + //涓氬姟绫诲瀷澶辩劍 + btmFoucus(){ + this.BtmdialogVisible=true; + this.btmdefaultRend() + }, + //涓氬姟绫诲瀷纭畾 + btmHandlerClick(){ + if(this.btmSelectList.length>1){ + this.$message.warning('鍙兘閫夋嫨涓�鏉℃暟鎹�') + }else if(this.btmSelectList.length<=0){ + this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�') + }else { + this.BtmdialogVisible=false; + this.btmSelectList=[] + this.$set(this.TreeAddform,'btmTypeName',this.btmName) + this.$set(this.TreeAddform,'btmTypeId',this.btmOid) + this.$emit('MasterHandler',this.loneTreeNewForm) + } + }, + //涓氬姟绫诲瀷鏌ヨ + BtmSelectFindeHandler(){ + if(this.SelectValue == 'id'){ + const masterParameter={ + 'conditionMap[id]':this.SelectFInd + } + this.btmdefaultRend(masterParameter); + this.SelectValue="" + this.SelectFInd="" + }else if(this.SelectValue == 'name'){ + const masterParameter={ + 'conditionMap[name]':this.SelectFInd + } + this.btmdefaultRend(masterParameter) + this.SelectValue="" + this.SelectFInd="" + } + }, + //涓氬姟绫诲瀷澶氶�� + btmSelect(row){ + this.btmSelectList=row; + this.btmName=row[0].name; + this.btmOid=row[0].oid; + }, + //涓氬姟绫诲瀷鎺ュ彛 + btmdefaultRend(masterParameter){ + referDataGrid({valueField:'id',isMuti:'false',...masterParameter}).then(res=>{ + // console.log(res) + this.BtmData=res.data.data.records + }) + }, + //瀛愪紶鐖� + MasterHandler(val){ + this.TreeList=val + }, + //琛屽崟閫変簨浠� + selectHandle(selection,row){ + this.crudOid=row.oid; + this.crudLCStatus=row.lcStatus; + this.crudArray=selection; + console.log(selection,row) + gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': row.oid}).then(res => { + this.ProData = res.data.data; + }).catch(res => { + this.$message.error(res) + }) + }, //鍒嗙被鏍戞暟鎹鐞� getAttr() { getAtrrList().then(res => { this.Treedata = res.data; this.CloneTreedata = res.data; - this.Treedata.forEach((item) => { + this.Treedata.forEach(() => { for (let i = 0; i < this.Treedata.length; i++) { this.Treedata[i].value = i; } }) //璋冪敤淇敼灞炴�у悕鏂规硶 - this.ModifyProperties(this.Treedata, 'text', 'label'); - this.ModifyProperties(this.CloneTreedata, 'text', 'label'); + this.ModifyProperties(this.CloneTreedata, 'name', 'label'); }).catch(res => { this.$message.error(res) }) @@ -440,22 +972,27 @@ }, //鏍戣妭鐐规坊鍔犱簨浠� TreeAddHandler() { - const data = this.TreeAddform - this.$set(data, "parentCodeClassifyOid", this.nodeClickList.oid) - TreeSave(data).then(() => { - this.$message({ - type: 'success', - message: '娣诲姞鎴愬姛!' + const data = this.TreeAddform; + // data.btmtypename= this.TreeList.btmtypename + this.$set(data, "parentCodeClassifyOid", this.nodeClickList.oid); + TreeSave(data) + .then(() => { + this.$message({ + type: "success", + message: "娣诲姞鎴愬姛!", + }); + Object.keys(this.TreeAddform).forEach(key => { + this.TreeAddform[key] = ""; + }); + this.getAttr(); + this.TreeAddFormVisible = false; + }) + .catch((res) => { + this.$message({ + type: "warning", + message: res, + }); }); - this.getAttr(); - this.TreeAddFormVisible = false - this.TreeAddform = "" - }).catch(res => { - this.$message({ - type: 'warning', - message: res - }); - }) }, //鏍戣妭鐐瑰垹闄ゆ寜閽� TreeDel() { @@ -515,13 +1052,13 @@ }, //淇敼鍥炲~ TreeEdit() { - if (this.nodeClickList == "") { + if ( Object.keys(this.nodeClickList).length<1) { this.$message({ type: 'warning', message: '璇峰厛浠庢爲涓婇�夋嫨涓�鏉℃暟鎹�!' }); } else { - this.TreeEditFormVisible = true + this.TreeEditFormVisible = true; } }, //鏍戝埛鏂� @@ -547,7 +1084,7 @@ cancelButtonText: '鍙栨秷', type: 'warning' }).then(() => { - TreeEnable(this.nodeClickList).then((res) => { + TreeEnable(this.nodeClickList).then(() => { this.$message({ type: 'success', message: '鍚敤鎴愬姛!' @@ -575,7 +1112,7 @@ cancelButtonText: '鍙栨秷', type: 'warning' }).then(() => { - TreeDeactivate(this.nodeClickList).then((res) => { + TreeDeactivate(this.nodeClickList).then(() => { this.$message({ type: 'success', message: '鍋滅敤鎴愬姛!' @@ -594,8 +1131,11 @@ //鏍戠偣鍑讳簨浠� async nodeClick(data) { //瀹氫箟涓�涓ā鏉垮睘鎬d锛屾暟鎹槸妯℃澘绠$悊琛ㄦ牸閲岄潰鐨刼id + if(data.parentId == ""){ + this.TreeFlagCode=true; + } this.nodeClickList = data - console.log(data.oid) + this.ProData=[] try { await TreeObjcet(data.oid).then(res => { this.FlagObj = res.data.data @@ -610,30 +1150,33 @@ return item.codeclassifyoid == this.nodeClickList.oid } }) - gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': this.Formlist[0].oid}).then(res => { - this.ProData = res.data.data - console.log(this.ProData) - }).catch(res => { - this.$message.error(res) - }) - }).catch(res => { - console.log(res) - }) - // 鍩烘湰淇℃伅琛ㄥ崟鏁版嵁 - await getObjectByOid(this.nodeClickList.oid).then(res => { - this.TreeList = res.data.data - // eslint-disable-next-line no-const-assig }).catch(res => { this.$message.error(res) }) + // 鍩烘湰淇℃伅琛ㄥ崟鏁版嵁 + await getObjectByOid(this.nodeClickList.oid).then(res => { + this.TreeList = res.data.data; + }).catch(res => { + this.$message.error(res) + }) } catch (error) { - console.log(error) + this.$message.error(error) } + }, + treeClick(e) { + console.log(e); + }, + //鍩烘湰淇℃伅琛ㄥ崟鍒锋柊 + referTreeForm(){ + getObjectByOid(this.nodeClickList.oid).then(res => { + this.TreeList = res.data.data; + }).catch(res => { + this.$message.error(res) + }) }, //鍏嬮殕妯℃澘鏍戠殑鐐瑰嚮鍒囨崲鏁版嵁 async ClonenodeClick(data){ this.ClonenodeClickList=data; - console.log("aaa",this.ClonenodeClickList.oid) await gridCodeClassifyTemplate({'conditionMap[codeclassifyoid]': data.oid}).then(res=>{ this.CloneFormlist = res.data.data.filter(item => { if (item.codeclassifyoid != "") { @@ -647,44 +1190,6 @@ handleChange(column) { this.type = column; }, - // //楂樼骇鏌ヨ鎸夐挳 - // handleSelectChange(key) { - // const selectedValue = this.FindSelect[key]; - // console.log(selectedValue) - // console.log(this.QueryArray[0]) - // switch (this.FindSelect[key]) { - // case '0': - // this.QueryArray[key] = ''; - // this.$set(this.QueryArray, key, ''); - // // 濡傛灉閫変腑鐨勬槸妯℃澘缂栧彿锛岀浉搴旂殑杈撳叆妗嗗弻鍚戠粦瀹氬叧绯讳负 QueryArray.id - // this.$set(this.QueryArray, 'id', this.QueryArray[key]); - // break; - // case '1': - // this.QueryArray[key] = ''; - // this.$set(this.QueryArray, key, ''); - // // 濡傛灉閫変腑鐨勬槸妯℃澘鍚嶇О锛岀浉搴旂殑杈撳叆妗嗗弻鍚戠粦瀹氬叧绯讳负 QueryArray.name - // this.$set(this.QueryArray, 'name', this.QueryArray[key]); - // break; - // case '2': - // this.QueryArray[key] = ''; - // this.$set(this.QueryArray, key, ''); - // // 濡傛灉閫変腑鐨勬槸妯℃澘鎻忚堪锛岀浉搴旂殑杈撳叆妗嗗弻鍚戠粦瀹氬叧绯讳负 QueryArray.description - // this.$set(this.QueryArray, 'description', this.QueryArray[key]); - // break; - // case '3': - // this.QueryArray[key] = ''; - // this.$set(this.QueryArray, key, ''); - // // 濡傛灉閫変腑鐨勬槸鐗堟湰鍙凤紝鐩稿簲鐨勮緭鍏ユ鍙屽悜缁戝畾鍏崇郴涓� QueryArray.revisionValue - // this.$set(this.QueryArray, 'revisionValue', this.QueryArray[key]); - // break; - // case '4': - // this.QueryArray[key] = ''; - // this.$set(this.QueryArray, key, ''); - // // 濡傛灉閫変腑鐨勬槸鐘舵�侊紝鐩稿簲鐨勮緭鍏ユ鍙屽悜缁戝畾鍏崇郴涓� QueryArray.lcStatus - // this.$set(this.QueryArray, 'lcStatus', this.QueryArray[key]); - // break; - // } - // }, AdvQueries() { this.FindFormVisible = false //濡傛灉鍏ㄩ儴涓虹┖ allEmpty涓簍rue @@ -721,9 +1226,8 @@ message: '璇峰厛浠庢爲涓婇�夋嫨涓�鏉℃暟鎹�!' }); } else { - let codeClassifyOid = this.codeClassifyOid - this.$set(row, "codeclassifyoid", codeClassifyOid) - addSave(row).then(res => { + this.$set(row, "codeclassifyoid", this.nodeClickList.oid) + addSave(row).then(() => { this.$message({ type: "success", message: "娣诲姞鎴愬姛!" @@ -740,7 +1244,7 @@ }, //妯℃澘绠$悊淇敼 CrudRowUpdata(row,index,done) { - editSave(row).then((res) => { + editSave(row).then(() => { this.CrudRend() this.$message({ type: "success", @@ -748,12 +1252,12 @@ }); done() }).catch(res => { - console.log(res) + this.$message.error(res) }) }, //妯℃澘绠$悊鍒犻櫎 CrudRowDel(row) { - deleteData(row).then(res => { + deleteData(row).then(()=> { this.CrudRend() }).catch(res => { this.$message({ @@ -762,21 +1266,20 @@ }); }) }, - //妯℃澘绠$悊琛ㄦ牸鏌ヨ - EnterFind() { - console.log(this.Formlist) - if (this.FindText == "") { + //妯℃澘绠$悊琛ㄦ牸鏌ヨ,鍙湁涓�鏉℃暟鎹病蹇呰鍋氭悳绱� + /*nterFind() { + if (this.findText == "") { gridCodeClassifyTemplate().then(res => { this.Formlist = res.data.data }) } else { gridCodeClassifyTemplate().then(res => { this.Formlist = res.data.data.filter(item => { - return item.name.includes(this.FindText) + return item.name.includes(this.findText) }) }) } - }, + },*/ //鍏嬮殕妯℃澘鏌ヨ CloneEnterFind(){ gridCodeClassifyTemplate().then(res => { @@ -788,6 +1291,14 @@ } }) }) + }, + // 鏌ヨ + FindeHanler(){ + if(this.nodeClickList != ""){ + this.FindFormVisible=true + }else { + this.$message.warning('璇蜂粠鏍戜笂閫夋嫨涓�鏉℃暟鎹�') + } }, //鍏嬮殕妯℃澘閫夋嫨纭畾 Clonehandler(){ @@ -803,7 +1314,6 @@ }); } else { this.CloneinnerVisible=true; - } }, //鐐瑰嚮浠庡叾瀹冩ā鏉垮厠闅� @@ -831,7 +1341,7 @@ //閲嶆柊璧嬪�糃loneSelect浼犻�掔殑鏁版嵁涓鸿緭鍏ユ鍙互淇敼鐨勬暟鎹紝CloneModel鎻愪氦琛ㄥ崟杈撳叆妗嗗弻鍚戠粦瀹氭暟鎹� this.CloneSelect[0].id=this.CloneModel.id; this.CloneSelect[0].name=this.CloneModel.name; - copy(this.CloneSelect[0]).then(res=>{ + copy(this.CloneSelect[0]).then(()=>{ //鍥犱负鏄祵濂楀脊绐楁墍浠ユ墜鍔ㄥ叧闂瑿loneinnerVisible锛孋loneVisible涓や釜寮圭獥銆� this.CloneinnerVisible=false this.CloneVisible=false @@ -858,11 +1368,41 @@ this.FormLoing = false }, 600); }, + upAndStopAndStart(row, type) { + this.$confirm(this.upAndStopAndStartData[type]["tip"], "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }).then(() => { + this.$set(row, this.upAndStopAndStartData[type]["load"], true) + const { ts, oid } = row; + this.upAndStopAndStartData[type]['funAPi']({ ts, oid }).then((res) => { + if (res.data.code === 200) { + this.$set(row, this.upAndStopAndStartData[type]["load"], false) + this.TemRefresh(); + this.$message.success( + this.upAndStopAndStartData[type]["typeText"] + "鎴愬姛锛�" + ); + } + }).catch(() => { + this.$set(row, this.upAndStopAndStartData[type]["load"], false) + }); + }); + }, } } </script> <style lang="scss" scoped> +.el-container{ + height: 100%; +} +.el-aside { + height: calc(100% - 30px); +} +.el-main { + height: calc(100% - 30px); +} .el-form { display: flex; flex-wrap: wrap; /* 璁剧疆鍙崲琛岋紝浠ヤ究鍦ㄥ皬灞忓箷璁惧涓婁娇鐢ㄥ琛屽竷灞� */ @@ -880,4 +1420,5 @@ .my-messageboxs { width: 500px; } + </style> -- Gitblit v1.9.3