From 38dd9ea383a844f54c05676dcc09acf7d6552727 Mon Sep 17 00:00:00 2001 From: zhangxp <zhangxp@chicecm.com> Date: 星期五, 07 七月 2023 18:08:05 +0800 Subject: [PATCH] 主数据动态按钮 --- .gitignore | 2 Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue | 224 +++++++++++++++--------------------- Source/UBCS-WEB/src/views/MasterData/items.vue | 122 +++++++++----------- Source/UBCS-WEB/src/components/Master/MasterTree.vue | 5 4 files changed, 156 insertions(+), 197 deletions(-) diff --git a/.gitignore b/.gitignore index 32858aa..fd96978 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,5 @@ # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* +Source/UBCS-WEB/vue.config.js +Source/UBCS-WEB/package-lock.json diff --git a/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue b/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue index 2c7f374..137ee2c 100644 --- a/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue +++ b/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue @@ -2,11 +2,9 @@ <basic-container> <div class="testbox"> <div> - <el-button plain size="small" type="primary" @click="addvisible = true" - >澧炲姞 + <!-- <el-button plain size="small" type="primary" @click="addvisible = true">澧炲姞 </el-button> - <el-button plain size="small" type="primary" @click="editHandler" - >缂栬緫 + <el-button plain size="small" type="primary" @click="editHandler">缂栬緫 </el-button> <el-button plain size="small" type="primary" @click="openBatchImport('batchImportApply')">鎵归噺瀵煎叆鐢宠</el-button> <el-button plain size="small" type="primary" @click="openBatchImport('historyImport')">鍘嗗彶鏁版嵁瀵煎叆</el-button> @@ -14,126 +12,60 @@ <el-button plain size="small" type="primary">鎵归噺鍙戝竷</el-button> <el-button plain size="small" type="primary">鏌ョ湅娴佺▼鍘嗗彶</el-button> <el-button plain size="small" type="primary">鍒犻櫎</el-button> - <el-button plain size="small" type="primary" @click="setHandler" - >鍙戝竷</el-button - > - <el-button plain size="small" type="primary" @click="DataChange" - >鏁版嵁鏇存敼</el-button - > - <el-button plain size="small" type="primary" @click="huishouHandler" - >鍥炴敹</el-button - > - <el-button plain size="small" type="primary" @click="openD" - >瀵煎嚭 + <el-button plain size="small" type="primary" @click="setHandler">鍙戝竷</el-button> + <el-button plain size="small" type="primary" @click="DataChange">鏁版嵁鏇存敼</el-button> + <el-button plain size="small" type="primary" @click="huishouHandler">鍥炴敹</el-button> + <el-button plain size="small" type="primary" @click="openD">瀵煎嚭 </el-button> - <el-button plain size="small" type="primary" @click="findHandler" - >鏌ヨ + <el-button plain size="small" type="primary" @click="findHandler">鏌ヨ </el-button> - <el-button plain size="small" type="primary" @click="similarHandler" - >鐩镐技椤规煡璇�</el-button - > + <el-button plain size="small" type="primary" @click="similarHandler">鐩镐技椤规煡璇�</el-button> <el-button plain size="small" type="primary">鍒锋柊</el-button> - <el-input - placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�" - size="small" - style="width: 180px; margin-left: 5px; margin-top: 10px" - ></el-input> + <el-input placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�" size="small" + style="width: 180px; margin-left: 5px; margin-top: 10px"></el-input> --> + <el-button plain size="small" type="primary" v-for="(item, index) in masterVrBtnList" :key="index" + @click="handelBtnClick(item)">{{ + item.name }}</el-button> + <el-input placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�" size="small" + style="width: 180px; margin-left: 5px; margin-top: 10px"></el-input> </div> <el-row style="height: 700px; width: 100%"> - <el-table - v-loading="isLoading" - :data="tableData" - max-height="700" - style="" - @cell-click="handleCellClick" - @selection-change="handleSelectionChange" - @sort-change="sortChange" - v-if="tableData.length != 0" - > + <el-table v-loading="isLoading" :data="tableData" max-height="700" style="" @cell-click="handleCellClick" + @selection-change="handleSelectionChange" @sort-change="sortChange" v-if="tableData.length != 0"> <el-table-column fixed type="selection" width="55"> </el-table-column> <el-table-column fixed label="搴忓彿" type="index" width="55"> </el-table-column> - <el-table-column - v-for="item in this.tableHeadFindData" - :key="item.id" - :label="item.label" - :prop="item.prop" - :sortable="item.sortable" - :formatter="item.formatter" - :width="item.label.length >=4 ?'150':item.label.length==3 ?'120':'90'" - :show-overflow-tooltip="true" - align="center" - > + <el-table-column v-for="item in this.tableHeadFindData" :key="item.id" :label="item.label" :prop="item.prop" + :sortable="item.sortable" :formatter="item.formatter" + :width="item.label.length >= 4 ? '150' : item.label.length == 3 ? '120' : '90'" :show-overflow-tooltip="true" + align="center"> </el-table-column> </el-table> </el-row> - <FormTemplateDialog - :codeClassifyOid="this.codeClassifyOid" - :codeRuleOid="this.codeRuleOid" - :disabledProp="disabledProp" - :templateOid="templateOid" - type="add" - :visible.sync="addvisible" - @submit="AddSumbit" - > + <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" + :disabledProp="disabledProp" :templateOid="templateOid" type="add" :visible.sync="addvisible" @submit="AddSumbit"> </FormTemplateDialog> - <FormTemplateDialog - :codeClassifyOid="this.codeClassifyOid" - :codeRuleOid="this.codeRuleOid" - :disabledProp="disabledProp" - :rowOid="rowOid" - :templateOid="templateOid" - type="edit" - :title="'淇敼缂栫爜淇℃伅'" - :visible.sync="editvisible" - @submit="EditSumbit" - ></FormTemplateDialog> - <FormTemplateDialog - :codeClassifyOid="this.codeClassifyOid" - :codeRuleOid="this.codeRuleOid" - :disabledProp="disabledProp" - :rowOid="rowOid" - :templateOid="templateOid" - :type="edit" - :title="'宸插彂甯冩暟鎹洿鏀�'" - :visible.sync="DataVisible" - ></FormTemplateDialog> - <set-personnel - :visible.sync="visibleFlow" - :parameter="this.parameter" - ></set-personnel> - <advanced-query - :options="this.options" - :visible.sync="findvisible" - @echoContion="echoContion" - ></advanced-query> - <integration-transfer - :data="transferData" - :props="transferProps" - :visible.sync="dialogPush" - @save="handelTransferSave" - ></integration-transfer> - <ResembleQueryDialog - :visible.sync="similarVisible" - :templateOid="templateOid" - :codeClassifyOid="codeClassifyOid" - :rowOid="rowOid" - :codeRuleOid="this.codeRuleOid" - ></ResembleQueryDialog> + <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" + :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" type="edit" :title="'淇敼缂栫爜淇℃伅'" + :visible.sync="editvisible" @submit="EditSumbit"></FormTemplateDialog> + <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" + :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" :type="edit" :title="'宸插彂甯冩暟鎹洿鏀�'" + :visible.sync="DataVisible"></FormTemplateDialog> + <set-personnel :visible.sync="visibleFlow" :parameter="this.parameter"></set-personnel> + <advanced-query :options="this.options" :visible.sync="findvisible" @echoContion="echoContion"></advanced-query> + <integration-transfer :data="transferData" :props="transferProps" :visible.sync="dialogPush" + @save="handelTransferSave"></integration-transfer> + <ResembleQueryDialog :visible.sync="similarVisible" :templateOid="templateOid" :codeClassifyOid="codeClassifyOid" + :rowOid="rowOid" :codeRuleOid="this.codeRuleOid"></ResembleQueryDialog> </div> <div class="block" style="display: flex; justify-content: flex-end"> - <el-pagination - :current-page="page.currentPage" - :page-size="page.pageSizes" - :page-sizes="page.pageSizes" - :total="page.total" - layout="total, sizes, prev, pager, next, jumper" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - > + <el-pagination :current-page="page.currentPage" :page-size="page.pageSizes" :page-sizes="page.pageSizes" + :total="page.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" + @current-change="handleCurrentChange"> </el-pagination> </div> - <BatchImport v-if="batchImportData.visible" :visible.sync="batchImportData.visible" v-bind="batchImportData"></BatchImport> + <BatchImport v-if="batchImportData.visible" :visible.sync="batchImportData.visible" v-bind="batchImportData"> + </BatchImport> </basic-container> </template> <script> @@ -188,6 +120,9 @@ tableHeadFindData: { type: Array, }, + tableHeadBtnData: { + type: Array, + }, }, data() { return { @@ -199,8 +134,8 @@ code: "", type: "PUBLIC", template: "", - vars:{ - codeClassifyOid:"" + vars: { + codeClassifyOid: "" } }, visibleFlow: false, @@ -243,25 +178,27 @@ visible: false, type: '', codeClassifyOid: '' - } + }, + // 涓绘暟鎹寜閽� + masterVrBtnList: [] }; }, computed: {}, - created() {}, - mounted() {}, + created() { }, + mounted() { }, activated() { - this.doLayout(); + // this.doLayout(); }, watch: { - tableHeadDataFateher:{ - handler(newval,oldval){ - this.options=newval.tableDefineVO.seniorQueryColumns + tableHeadDataFateher: { + handler(newval, oldval) { + this.options = newval.tableDefineVO.seniorQueryColumns } }, codeClassifyOid: { handler(newval, oldval) { this.codeClassifyOid = newval; - this.parameter.vars.codeClassifyOid=newval + this.parameter.vars.codeClassifyOid = newval }, deep: true, }, @@ -272,16 +209,16 @@ }, tableHeadFindData: { handler(newval, oldval) { - newval.forEach((record,_index) =>{ - if(record.field == 'id' && validatenull(record.templet)){ + newval.forEach((record, _index) => { + if (record.field == 'id' && validatenull(record.templet)) { //浼佷笟缂栫爜鐨勯粯璁ゆ坊鍔犺秴閾炬帴,鏆傛湭瀹炵幇 record.formatter = ''; - }else { - if (record.templet && typeof (record.templet) == 'string' && !validatenull(record.templet) && record.templet.indexOf("function(row,column)")>-1) { + } else { + if (record.templet && typeof (record.templet) == 'string' && !validatenull(record.templet) && record.templet.indexOf("function(row,column)") > -1) { record.formatter = eval("(" + record.templet + ")"); //function(row,column){return row[column.property]=='true' || row[column.property]=='1'?'鏄�':'鍚�'} - }else if(record.fieldType=="truefalse"){ - record.formatter = function(row,column){return row[column.property]=='true' || row[column.property]=='1'?'鏄�':'鍚�'} + } else if (record.fieldType == "truefalse") { + record.formatter = function (row, column) { return row[column.property] == 'true' || row[column.property] == '1' ? '鏄�' : '鍚�' } } } }) @@ -299,6 +236,14 @@ }, deep: true, }, + tableHeadBtnData: { + handler(newval) { + if (newval.length !== 0) { + this.masterVrBtnList = newval + } + }, + deep: true + } }, methods: { // 鍙戝竷 @@ -310,6 +255,28 @@ this.parameter.template = this.userName + "-鍙戝竷" + "[鐗╁搧]"; this.visibleFlow = true; } + }, + openVis(visible) { + console.log(visible) + this[visible] = true + }, + handelBtnClick(event) { + const { uniqueFlag } = event + this.$nextTick(() => { + if (uniqueFlag === 'CODEADD') return this.addvisible = true + if (uniqueFlag === 'CODEEDIT') return this.editHandler() + if (uniqueFlag === 'CODEBATCHADD') return this.openBatchImport('batchImportApply') + if (uniqueFlag === 'CODEIMPORTHISTORY') return this.openBatchImport('historyImport') + // 鎵归噺鐢宠缂栫爜 + // if(uniqueFlag === 'CODEEDIT') return this.openBatchImport('batchApplyCode') + if (uniqueFlag === 'CODESTARTPROCESS') return this.setHandler() + if (uniqueFlag === 'CODEUPREVISION') return this.DataChange() + if (uniqueFlag === 'CODERECYCLE') return this.huishouHandler() + if (uniqueFlag === 'CODEEXPORT') return this.openD() + if (uniqueFlag === 'CODEQUERY') return this.findHandler() + // 鐩镐技椤规煡璇� + // if(uniqueFlag === 'CODEEDIT') return this.similarHandler() + }); }, openD() { this.getListCodeByClassId(); @@ -359,6 +326,7 @@ }, doLayout() { this.$nextTick(() => { + console.log(this.$refs) this.$refs.crud.doLayout(); }); }, @@ -446,7 +414,7 @@ row.forEach((item) => { this.parameter.ids.push(item.oid); }); - console.log( ' this.parameter.ids',this.parameter.ids) + console.log(' this.parameter.ids', this.parameter.ids) }, //缂栬緫 editHandler() { @@ -473,8 +441,8 @@ ...val, }).then((res) => { console.log(res); - this.tableData=res.data.data; - this.page.total=res.data.total + this.tableData = res.data.data; + this.page.total = res.data.total }); }, //鐩镐技椤规煡璇� @@ -529,6 +497,4 @@ /deep/ .el-button { margin: 0 10px 10px 0; } - - </style> diff --git a/Source/UBCS-WEB/src/components/Master/MasterTree.vue b/Source/UBCS-WEB/src/components/Master/MasterTree.vue index 4d63d27..dd92b72 100644 --- a/Source/UBCS-WEB/src/components/Master/MasterTree.vue +++ b/Source/UBCS-WEB/src/components/Master/MasterTree.vue @@ -29,6 +29,7 @@ }, data(){ return{ + masterVrBtnList:[], tableHeadFindData:[], tableHeadDataFateher:[], templateOids:"", @@ -120,6 +121,8 @@ codeClassifyOid: this.nodeClickList.oid, functionId: 5, }).then(res => { + console.log(res.data.buttons) + this.masterVrBtnList = res.data.buttons this.tableHeadDataFateher = res.data; this.templateOids = res.data.tableDefineVO.oid; let List = res.data.tableDefineVO.cols[0]; @@ -136,6 +139,7 @@ }) this.$emit('tableHeadDataFateher', this.tableHeadDataFateher); this.$emit('tableHeadFindData', this.tableHeadFindData); + this.$emit('tableHeadBttoms', this.masterVrBtnList); resolve(); }).catch(err=>{ reject(err) @@ -152,7 +156,6 @@ this.TableRend(); // TableHeadRend() 鏂规硶瀹屾垚鍚庡啀鎵ц TableRend() this.$emit('nodeClick',this.templateOids) this.$emit("codeClassifyOid", this.nodeClickList.oid ) - } catch (error) { // 澶勭悊閿欒 this.$message.error(error) diff --git a/Source/UBCS-WEB/src/views/MasterData/items.vue b/Source/UBCS-WEB/src/views/MasterData/items.vue index 0ca87ed..5a94682 100644 --- a/Source/UBCS-WEB/src/views/MasterData/items.vue +++ b/Source/UBCS-WEB/src/views/MasterData/items.vue @@ -1,43 +1,29 @@ <template> - <el-container> - <el-aside> - <basic-container style="height: 85vh; max-height: 155vh; overflow-y: scroll;"> -<!-- 鏍戠粍浠�--> - <master-tree @codeClassifyOid="codeClassifyOidList" - @coderuleoid="coderuleoidList" - :pageSize="this.pageSize" - :currentPage="this.currentPage" - @tableDataArray="tableDataArrays" - @tableHeadDataFateher="tableHeadDatas" - @total="totals" - @nodeClick="nodeClick" - @tableHeadFindData="tableHeadFindDatas" - ></master-tree> - </basic-container> - </el-aside> - <el-main> -<!-- 琛ㄦ牸缁勪欢--> - <VciMasterCrud :page="this.page" - :codeClassifyOid="this.codeClassifyOid" - :coderuleoid="this.coderuleoid" - @pageSize="pageSizes" - @currentPage="currentPages" - :tableDataArray="tableDataArray" - :total="this.total" - :tableHeadDataFateher="this.tableHeadDataFateher" - :isLoading="isLoading" - :templateOid="templateOid" - :tableHeadFindData="tableHeadFindData" - ></VciMasterCrud> - </el-main> - </el-container> + <el-container> + <el-aside> + <basic-container style="height: 85vh; max-height: 155vh; overflow-y: scroll;"> + <!-- 鏍戠粍浠�--> + <master-tree @codeClassifyOid="codeClassifyOidList" @coderuleoid="coderuleoidList" :pageSize="this.pageSize" + :currentPage="this.currentPage" @tableDataArray="tableDataArrays" @tableHeadDataFateher="tableHeadDatas" + @tableHeadBttoms="tableHeadBttoms" @total="totals" @nodeClick="nodeClick" + @tableHeadFindData="tableHeadFindDatas"></master-tree> + </basic-container> + </el-aside> + <el-main> + <!-- 琛ㄦ牸缁勪欢--> + <VciMasterCrud :page="this.page" :codeClassifyOid="this.codeClassifyOid" :coderuleoid="this.coderuleoid" + @pageSize="pageSizes" @currentPage="currentPages" :tableDataArray="tableDataArray" :total="this.total" + :tableHeadDataFateher="this.tableHeadDataFateher" :isLoading="isLoading" :templateOid="templateOid" + :tableHeadFindData="tableHeadFindData" :tableHeadBtnData="masterVrBtnList"></VciMasterCrud> + </el-main> + </el-container> </template> <script> export default { name: "items.vue", - data(){ - return{ + data() { + return { // 鍒嗛〉 page: { total: 0, @@ -45,56 +31,58 @@ pageSize: 10, pageSizes: [10, 30, 50, 100, 200], }, - pageSize:"10", - currentPage:"1", - codeClassifyOid:"", - coderuleoid:"", - templateOid:"", - tableDataArray:[], - tableHeadDataFateher:[], - total:"", + pageSize: "10", + currentPage: "1", + codeClassifyOid: "", + coderuleoid: "", + templateOid: "", + tableDataArray: [], + masterVrBtnList: [], + tableHeadDataFateher: [], + total: "", isLoading: false, - tableHeadFindData:{} + tableHeadFindData: {} } }, created() { }, - methods:{ - codeClassifyOidList(val){ - this.codeClassifyOid=val; + methods: { + codeClassifyOidList(val) { + this.codeClassifyOid = val; }, - coderuleoidList(val){ - this.coderuleoid=val; + coderuleoidList(val) { + this.coderuleoid = val; }, - pageSizes(val){ - this.pageSize=val + pageSizes(val) { + this.pageSize = val }, - currentPages(val){ - this.currentPage=val + currentPages(val) { + this.currentPage = val }, - tableDataArrays(val){ - this.tableDataArray=val + tableDataArrays(val) { + this.tableDataArray = val }, - totals(val){ - this.total=val + totals(val) { + this.total = val }, - tableHeadDatas(val){ - this.tableHeadDataFateher=val + tableHeadDatas(val) { + this.tableHeadDataFateher = val }, - tableHeadFindDatas(val){ - this.tableHeadFindData=val + tableHeadFindDatas(val) { + this.tableHeadFindData = val }, - nodeClick(val){ - this.templateOid=val; - this.isLoading=true; + nodeClick(val) { + this.templateOid = val; + this.isLoading = true; setTimeout(() => { this.isLoading = false; }, 2000); -} + }, + tableHeadBttoms(val) { + this.masterVrBtnList = val + }, } } </script> -<style scoped> - -</style> +<style scoped></style> -- Gitblit v1.9.3