From 5a3dd615ebbc9919330ac375d4798a73f64fe89c Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期三, 26 七月 2023 17:41:06 +0800 Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs --- Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue | 875 ++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 635 insertions(+), 240 deletions(-) diff --git a/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue b/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue index f58d3b0..b604ba4 100644 --- a/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue +++ b/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue @@ -1,194 +1,220 @@ <template> <basic-container> - <div class="testbox"> - <div style="margin-top: 10px;display: flex;flex-wrap: wrap;width: 100%;"> - <el-button plain size="small" type="primary" @click="addvisible=true">澧炲姞 - </el-button> - <FormTemplateDialog - :codeClassifyOid="this.codeClassifyOid" - :codeRuleOid="this.codeRuleOid" - :disabledProp="disabledProp" - :templateOid="templateOid" - type="add" - :visible.sync="addvisible" - @submit="AddSumbit" - > - </FormTemplateDialog> - <el-button plain size="small" type="primary" @click="editHandler">缂栬緫 - </el-button> - <FormTemplateDialog - :codeClassifyOid="this.codeClassifyOid" - :codeRuleOid="this.codeRuleOid" - :disabledProp="disabledProp" - :rowOid="rowOid" - :templateOid="templateOid" - type="edit" - :title="'淇敼缂栫爜淇℃伅'" - :visible.sync="editvisible" - @submit="EditSumbit" - ></FormTemplateDialog> - <el-button plain size="small" type="primary">鎵归噺瀵煎叆鐢宠</el-button> - <el-button plain size="small" type="primary" @click="historyVisible = true">鍘嗗彶鏁版嵁瀵煎叆</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">鏌ョ湅娴佺▼鍘嗗彶</el-button> - <el-button plain size="small" type="primary">鍒犻櫎</el-button> - <el-button plain size="small" type="primary" @click="setHandler">鍙戝竷</el-button> - <set-personnel :visible.sync="visibleFlow" :parameter="parameter" - ></set-personnel> - <el-button plain size="small" type="primary" @click="DataChange">鏁版嵁鏇存敼</el-button> - <FormTemplateDialog - :codeClassifyOid="this.codeClassifyOid" - :codeRuleOid="this.codeRuleOid" - :disabledProp="disabledProp" - :rowOid="rowOid" - :templateOid="templateOid" - :type="edit" - :title="'宸插彂甯冩暟鎹洿鏀�'" - :visible.sync="DataVisible" - ></FormTemplateDialog> - <el-button plain size="small" type="primary" @click="huishouHandler">鍥炴敹</el-button> - <el-button plain size="small" type="primary" @click="openD">瀵煎嚭 - <integration-transfer :data="transferData" :props="transferProps" - :visible.sync="dialogPush" @save="handelTransferSave"></integration-transfer> - </el-button> - <el-button plain size="small" type="primary" @click="findHandler">鏌ヨ + <div class="main"> + <div class="top"> + <div class="testbox" style=""> + <div> + <!-- <el-button plain size="small" type="primary" @click="addvisible = true">澧炲姞 + </el-button> + <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> + <el-button plain size="small" type="primary" @click="openBatchImport('batchApplyCode')">鎵归噺鐢宠缂栫爜</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">鍒犻櫎</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> + <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">鍒锋柊</el-button> + <el-input placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�" size="small" + style="width: 180px; margin-left: 5px; margin-top: 10px"></el-input> --> + + </div> + <el-row style="width: 100%;margin-bottom: 20px"> + <div> + <el-button v-for="(item, index) in masterVrBtnList" + v-if="!['PREVIEW', 'DELETEFILE', 'revisefile', 'DOWNLOADFILE', 'UPLOADFILE'].includes(item.uniqueFlag)" + :key="index" plain size="small" + type="primary" + @click="handelBtnClick(item)">{{ + item.name + }} + </el-button> + <el-input v-model="WupinFindValue" placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�" + size="small" style="width: 180px; margin-left: 5px; margin-top: 10px" + @keyup.enter.native="tableFindInp" v-if="tableData.length != 0"></el-input> + </div> + <el-table ref="dataTable" v-loading="isLoading" :data="tableData" + :height="tableHeight" + @select="handleSelection" @cell-click="handleCellClick" @row-click="handleRowClick" + @select-all="handleSelectionAll" @selection-change="handleSelectionChange" + @sort-change="sortChange"> + <el-table-column fixed type="selection" width="55" v-if="tableData.length != 0"></el-table-column> + <el-table-column fixed label="搴忓彿" type="index" width="55" v-if="tableData.length != 0"> + </el-table-column> + <el-table-column v-for="item in this.tableHeadFindData" :key="item.id" :formatter="item.formatter" + :label="item.label" + :prop="item.prop" :show-overflow-tooltip="true" + :sortable="item.sortable" + :width="item.label.length >= 4 ? '150' : item.label.length == 3 ? '120' : '90'" + align="center"> + </el-table-column> + </el-table> + </el-row> + <!-- 鏂板--> + <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" + :disabledProp="disabledProp" :templateOid="templateOid" :visible.sync="addvisible" + type="add" + @submit="AddSumbit"> + </FormTemplateDialog> + <!-- 淇敼--> + <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" + :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" :title="'淇敼缂栫爜淇℃伅'" + :visible.sync="editvisible" + type="edit" @submit="EditSumbit"></FormTemplateDialog> + <!-- 宸插彂甯冩暟鎹慨鏀�--> + <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" + :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" + :title="'宸插彂甯冩暟鎹洿鏀�'" + :type="edit" + :visible.sync="DataVisible"></FormTemplateDialog> + <!-- 鍙戝竷--> + <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleFlow"></set-personnel> + <!-- 鍋滅敤--> + <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleDeactivate"></set-personnel> + <!-- 鍚敤--> + <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleEnable"></set-personnel> + <!-- 鍥炴敹--> + <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleRecovery"></set-personnel> + <!-- 楂樼骇鏌ヨ--> <advanced-query :options="this.options" :visible.sync="findvisible" @echoContion="echoContion"></advanced-query> - </el-button> - <el-button plain size="small" type="primary" @click="similarHandler">鐩镐技椤规煡璇�</el-button> - <ResembleQueryDialog - :visible.sync="similarVisible" - :templateOid="templateOid" - :codeClassifyOid="codeClassifyOid" - :rowOid="rowOid" - :codeRuleOid="this.codeRuleOid" - ></ResembleQueryDialog> - <el-button plain size="small" style="margin-left: 1px;margin-top:10px" type="primary">鍒锋柊</el-button> - <el-input placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�" size="small" - style="width: 180px;margin-left: 5px;margin-top:10px"></el-input> + <!-- 瀵煎嚭--> + <MasterTransfer :codeClassifyOid="codeClassifyOid" :selectRow="selectRow" + :tableData="tableData" :tableHeadData="tableHeadFindData" + :visible.sync="dialogPush"></MasterTransfer> + <!-- 鐩镐技椤�--> + <ResembleQueryDialog :codeClassifyOid="codeClassifyOid" :codeRuleOid="this.codeRuleOid" :rowOid="rowOid" + :templateOid="templateOid" :visible.sync="similarVisible"></ResembleQueryDialog> + <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> + </div> + </div> </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-column - fixed - type="selection" - width="55"> - </el-table-column> - <el-table-column - fixed - label="搴忓彿" - type="index" - width="55"> - </el-table-column> -<!-- <div>--> - <el-table-column v-for="(item,index) in this.tableHeadFindData" :key="item.id" :label="item.label" :prop="item.prop" :sortable="item.sortable" > - <!-- 缂栬緫鍜屽睍绀洪�昏緫 --> - <!-- <template slot-scope="{ row }">--> - <!-- <el-input v-if="editingRow === row && editShow== item.prop" v-model="row[item.prop]" @blur="saveRow"></el-input>--> - <!-- <span v-else>{{row[item.prop]}}</span>--> - <!-- <el-switch--> - <!-- v-if="editShow === 'true'"--> - <!-- v-model="row[item.prop]"--> - <!-- active-color="#13ce66"--> - <!-- inactive-color="#ff4949">--> - <!-- </el-switch>--> - <!-- </template>--> - </el-table-column> -<!-- </div>--> - </el-table> - </el-row> + <BatchImport v-if="batchImportData.visible" v-bind="batchImportData" :visible.sync="batchImportData.visible" :resetTable="CrudRend"> + </BatchImport> + </div> + <div class="bottom"> + <el-collapse v-model="visibleNames" @change="handleCollapse"> + <el-collapse-item name="1" title="闄勪欢鍒楄〃"> + <fileInHtml :options="fileOptions"></fileInHtml> + </el-collapse-item> + </el-collapse> + </div> </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> - </div> - <historyImport :visible.sync="historyVisible" :codeClassifyOid="codeClassifyOid" type="historyImport"></historyImport> </basic-container> </template> <script> -import {MasterTable, TableData,FindData} from "@/api/GetItem"; -import {listCodeAttributeByClassId} from '@/api/integration/integration.js' -import integrationTransfer from '@/views/integration/integrationTransfer' -import SetPersonnel from '@/components/template/SetPersonnel' +import {MasterTable, TableData, FindData, addSaveCode, editSaveCode} from "@/api/GetItem"; +import {processTS,changeStatus} from "@/api/template/setPersonnel" +import {listCodeAttributeByClassId} from "@/api/integration/integration.js"; +import integrationTransfer from "@/views/integration/integrationTransfer"; +import SetPersonnel from "@/components/template/SetPersonnel"; import ResembleQueryDialog from "@/components/FormTemplate/ResembleQueryDialog.vue"; -import historyImport from '../BatchImport/index.vue' +import BatchImport from '@/components/BatchImport' +import {validatenull} from "@/util/validate"; +import fileInHtml from "@/components/file/inHtml.vue"; + export default { components: { integrationTransfer, SetPersonnel, ResembleQueryDialog, - historyImport + BatchImport, + fileInHtml }, name: "Crud.vue", props: { page: { type: Object, default: () => { - return {} - } + return {}; + }, }, codeClassifyOid: { type: String, - default: "" + default: "", }, coderuleoid: { type: String, - default: "" + default: "", }, tableDataArray: { type: Array, }, total: { type: String, - default: "" + default: "", }, templateOid: { type: String, + default: "", }, tableHeadDataFateher: { type: Array, }, isLoading: { type: Boolean, - default: false + default: false, }, - tableHeadFindData:{ - type:Array, - } + tableHeadFindData: { + type: Array, + }, + tableHeadBtnData: { + type: Array, + }, }, data() { return { + searchResults: [], + //棣栭〉鍙充晶鎼滅储 + WupinFindValue: "", //鐩镐技椤规煡璇� - similarVisible:false, + similarVisible: false, //鍙戝竷 - parameter:{ - ids:['0000','22222222'], - code:this.templateOid, - type:'PUBLIC', - template:'妯℃澘template' + parameter: { + ids: [], + code: "", + type: '', + // this.visibleDeactivate ?'ENABLE':this.visibleEnable ? 'DISABLE' :this.visibleRecovery ? 'ROLLBACK' :'PUBLIC' + template: "", + vars: { + codeClassifyOid: "", + templateOid: "" + } }, + visibleNames: [], + //鍙戝竷 visibleFlow: false, + //鍋滅敤 + visibleDeactivate: false, + //鍚敤 + visibleEnable: false, + //鍥炴敹 + visibleRecovery: false, + title: '', transferData: [], transferProps: { - key: 'oid', - label: 'name' + key: "oid", + label: "name", }, - tableHeadFindDatas:[], - templateOid: "", + tableHeadFindDatas: [], addvisible: false, editvisible: false, findvisible: false, dialogPush: false, - rowOid: '', + rowOid: "", disabledProp: ["id"], editingRow: null, editShow: "", @@ -196,7 +222,7 @@ data: [], options: {}, option: { - column: [] + column: [], }, List: [], columnType: { @@ -207,102 +233,408 @@ datetime: "datetime", }, tableData: [], - DataVisible:false, + tableHeight: 'calc(100vh - 330px)', + DataVisible: false, tableHeadData: [], items: {}, seniorQueryColumns: [], selectRow: [], - historyVisible: false - } + userName: "", + batchImportData: { + visible: false, + type: '', + codeClassifyOid: '' + }, + // 涓绘暟鎹寜閽� + masterVrBtnList: [], + fileOptions: { + ownbizOid: "0", + ownbizBtm: "0", + fileDocClassify: '!=processAuditSuggest', + fileDocClassifyName: '', + hasDownload: true, + hasUpload: true, + height: 100 + } + }; }, computed: {}, created() { - // this.CrudHeaderRend(); - // this.tableHeadHandle() }, mounted() { }, activated() { - this.doLayout() + // this.doLayout(); + this.$nextTick(() => { + this.$refs.dataTable.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 }, - deep: true + deep: true, }, tableDataArray: { handler(newval, oldval) { this.tableData = newval; - } + this.searchResults = newval + }, }, - tableHeadFindData:{ + tableHeadFindData: { handler(newval, oldval) { + 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) { + 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' ? '鏄�' : '鍚�' + } + } + } + }) this.tableHeadFindDatas = newval; - } + }, }, total: { handler(newval, oldval) { this.page.total = newval; - } + }, }, + templateOid: { + handler(newval, oldval) { + this.parameter.code = newval; + this.fileOptions.ownbizOid = "0"; + this.parameter.vars.templateOid = newval + }, + deep: true, + }, + tableHeadBtnData: { + handler(newval) { + if (newval.length !== 0) { + this.masterVrBtnList = newval + } + }, + deep: true + } }, methods: { - setHandler() { - this.visibleFlow = true; - }, - huishouHandler() { - - }, - openD() { - this.dialogPush = true; - this.getListCodeByClassId() - }, - async getListCodeByClassId() { - this.transferData = [] - const response = await listCodeAttributeByClassId({codeClassifyId: this.codeClassifyOid}) - if (response.status === 200) { - const data = response.data.data - this.transferData = data + //灞曞紑闄勪欢 + handleCollapse(activeNames) { + if (activeNames.length > 0) { + this.tableHeight = 'calc(100vh - 630px)'; + this.$refs.dataTable.doLayout() + } else { + this.tableHeight = 'calc(100vh - 330px)'; + this.$refs.dataTable.doLayout() } }, + openVis(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 === 'batchApplyCode') return this.openBatchImport('batchApplyCode') + // 鎵归噺鐢宠缂栫爜 + // if(uniqueFlag === 'CODEEDIT') return this.openBatchImport('batchApplyCode') + if (uniqueFlag === 'CODESTARTPROCESS') return this.setHandler() + if (uniqueFlag === 'CODEUPREVISION') return this.DataChange() + if (uniqueFlag === 'CODEEXPORT') return this.openD() + if (uniqueFlag === 'CODEQUERY') return this.findHandler() + //鍋滅敤 + if (uniqueFlag === 'CODEDISABLE') return this.Deactivate() + //鍚敤 + if (uniqueFlag === 'CODEENABLE') return this.Enable() + //鍥炴敹 + if (uniqueFlag === 'CODERECYCLE') return this.Recovery() + // 鐩镐技椤规煡璇� + // if(uniqueFlag === 'CODEEDIT') return this.similarHandler() + }); + }, + openD() { + this.getListCodeByClassId(); + }, + async getListCodeByClassId() { + this.dialogPush = true; + this.transferData = []; + const response = await listCodeAttributeByClassId({ + codeClassifyId: this.codeClassifyOid, + }); + if (response.status === 200) { + const data = response.data.data; + this.transferData = data; + } + }, + handelTransferSave(val) { + console.log('鍙戝竷', val) + }, rend() { - this.tableData = this.tableHeadData + this.tableData = this.tableHeadData; + }, + // 鍙戝竷 + setHandler() { + if (this.selectRow.length > 0) { + let hasEditing = this.selectRow.some(item => item.lcstatus !== 'Editing'); + let showMessage = true; + this.selectRow.forEach(item => { + if (this.selectRow.length === 1 && item.lcstatus !== "Editing" && showMessage) { + this.$message.warning('鍙湁鐘舵�佹槸銆愮紪杈戜腑銆戠殑鏁版嵁鎵嶅彲浠ュ彂璧锋祦绋�'); + showMessage = false; + } else if (hasEditing && showMessage) { + this.$message.warning('鎮ㄩ�夋嫨鐨勬暟鎹叏閮ㄤ负銆愮紪杈戜腑銆戞墠鍙互鍙戣捣娴佺▼'); + showMessage = false; + } else if (showMessage) { + processTS({templateId: this.templateOid, buttonTypeKey: 'PUBLIC'}).then(res => { + if (res.data.records != [] && res.data.code != 200) { + this.userName = localStorage.getItem("username"); + this.parameter.template = this.userName + "-鍙戝竷" + "[鐗╁搧]"; + this.parameter.type = 'PUBLIC' + this.title = '娴佺▼瀹℃壒' + this.visibleFlow = true; + this.onLoad() + } else { + this.$confirm('褰撳墠鍒嗙被娌℃湁娣诲姞娴佺▼妯℃澘锛屾槸鍚︿笉鐢ㄦ祦绋嬪鎵圭洿鎺ユ墽琛�?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + this.userName = localStorage.getItem("username"); + this.parameter.template = this.userName + "-鍙戝竷" + "[鐗╁搧]"; + this.parameter.type = 'PUBLIC' + this.title = '娴佺▼瀹℃壒' + this.visibleFlow = true; + this.onLoad() + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑�' + }); + }) + } + }) + } + }); + } else { + this.$message.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�') + } + }, + //鍋滅敤 + Deactivate() { + if (this.selectRow.length <= 0) { + this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�"); + } else { + let hasEditing = this.selectRow.every(item => item.lcstatus == 'Released'); + let showMessage = true; + this.selectRow.forEach(item => { + if (this.selectRow.length === 1 && item.lcstatus === "Disabled" && showMessage) { + this.$message.warning('閫夋嫨鐨勬暟鎹腑鐘舵�佹棤闇�鍐嶆墽琛屽綋鍓嶆搷浣�'); + showMessage = false; + } else if (this.selectRow.length >=1 && !hasEditing && showMessage) { + this.$message.warning('鎮ㄩ�夋嫨鐨勬暟鎹叏閮ㄤ负銆愬彂甯冪姸鎬併�戞墠鍙互鍙戣捣娴佺▼'); + showMessage = false; + } else if (this.selectRow.length > 1 && hasEditing && showMessage) { + processTS({ templateId: this.templateOid, buttonTypeKey: 'PUBLIC' }).then(res => { + if (res.data.records != [] && res.data.code != 200) { + this.userName = localStorage.getItem("username"); + this.parameter.template = this.userName + "鍋滅敤" + "[鐗╁搧]"; + this.parameter.type = 'DISABLE' + this.title = '鍋滅敤锛堝喕缁擄級缂栫爜鏁版嵁' + this.visibleDeactivate = true; + } else { + if (showMessage) { + showMessage = false; // 鏍囪宸叉墽琛岃繃鎿嶄綔 + this.$confirm('褰撳墠鍒嗙被娌℃湁娣诲姞娴佺▼妯℃澘锛屾槸鍚︿笉鐢ㄦ祦绋嬪鎵圭洿鎺ユ墽琛�?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + const index = this.$route.query.id.indexOf('@'); + const result = this.$route.query.id.substring(0, index); + const oid = this.selectRow.map(obj => obj.oid).join(","); + changeStatus({ oid: oid, btmname: result, lcStatus: 'Disabled' }).then(res => { + console.log(res); + if(res.data.code == 200 ){ + this.$message.success('鍋滅敤鎴愬姛') + this.onLoad() + } + }); + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑�' + }); + }); + } + } + }); + }else { + this.$message.warning('鎮ㄩ�夋嫨鐨勬暟鎹负銆愬彂甯冪姸鎬併�戞墠鍙互鍙戣捣娴佺▼') + } + }); + } + }, + //鍚敤 + Enable() { + if (this.selectRow.length <= 0) { + this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�"); + } else { + let hasEditing = this.selectRow.every(item => item.lcstatus == 'Disabled'); + console.log('hasEditing',hasEditing) + let showMessage = true; + this.selectRow.forEach(item => { + if (this.selectRow.length === 1 && item.lcstatus !== "Disabled" && showMessage) { + this.$message.warning('閫夋嫨鐨勬暟鎹腑鐘舵�佹棤闇�鍐嶆墽琛屽綋鍓嶆搷浣�'); + showMessage = false; + } else if (this.selectRow.length >=1 && hasEditing && showMessage) { + processTS({ templateId: this.templateOid, buttonTypeKey: 'PUBLIC' }).then(res => { + if (res.data.records != [] && res.data.code != 200) { + this.userName = localStorage.getItem("username"); + this.parameter.template = this.userName + "鍚敤" + "[鐗╁搧]"; + this.parameter.type = 'Released' + this.title = '鍚敤缂栫爜鏁版嵁' + this.visibleDeactivate = true; + } else { + if (showMessage) { + showMessage = false; // 鏍囪宸叉墽琛岃繃鎿嶄綔 + this.$confirm('褰撳墠鍒嗙被娌℃湁娣诲姞娴佺▼妯℃澘锛屾槸鍚︿笉鐢ㄦ祦绋嬪鎵圭洿鎺ユ墽琛�?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + const index = this.$route.query.id.indexOf('@'); + const result = this.$route.query.id.substring(0, index); + const oid = this.selectRow.map(obj => obj.oid).join(","); + changeStatus({ oid: oid, btmname: result, lcStatus: 'Released' }).then(res => { + console.log(res); + if(res.data.code == 200 ){ + this.$message.success('鍚敤鎴愬姛') + this.onLoad() + } + }); + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑�' + }); + }); + } + } + }); + } else if (this.selectRow.length >1 && !hasEditing && showMessage) { + this.$message.warning('鎮ㄩ�夋嫨鐨勬暟鎹叏閮ㄤ负銆愬仠鐢ㄧ姸鎬併�戞墠鍙互鍙戣捣娴佺▼'); + showMessage = false; + } + }); + } + }, + //鍥炴敹 + Recovery() { + if (this.selectRow.length <= 0) { + this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�"); + } else { + // 缂栬緫涓�-鍙兘鍙戝竷锛屼笉鑳藉洖鏀� + // 瀹℃牳涓�-浠�涔堥兘涓嶈兘鍋� + // 宸插彂甯�-鍋滅敤銆佸洖鏀� + // 鍋滅敤-鍙兘鍚敤銆佸洖鏀� + const disabledCount = this.selectRow.filter(item => item.lcstatus === 'Disabled').length; + const releasedCount = this.selectRow.filter(item => item.lcstatus === 'Released').length; + console.log('hasEditing',disabledCount,releasedCount) + let showMessage = true; + this.selectRow.forEach(item => { + if (this.selectRow.length === 1 && item.lcstatus == "TakeBack" && showMessage) { + this.$message.warning('閫夋嫨鐨勬暟鎹腑鐘舵�佹棤闇�鍐嶆墽琛屽綋鍓嶆搷浣�'); + showMessage = false; + } else if (this.selectRow.length >=1 && (disabledCount === this.selectRow.length || releasedCount === this.selectRow.length) || (disabledCount > 0 && releasedCount > 0) && showMessage) { + //disabledCount 鍜� releasedCount 涓换鎰忎竴涓瓑浜� this.selectRow 鏁扮粍鐨勯暱搴﹀垯琛ㄧず鍏ㄩ儴鏄悓涓�绉嶇姸鎬侊紝杩斿洖 true 濡傛灉disabledCount 鍜� releasedCount 閮藉ぇ浜�0锛屽垯琛ㄧず鏃㈡湁Disabled涔熸湁Released杩斿洖 true + processTS({ templateId: this.templateOid, buttonTypeKey: 'PUBLIC' }).then(res => { + if (res.data.records != [] && res.data.code != 200) { + this.userName = localStorage.getItem("username"); + this.parameter.template = this.userName + "鍥炴敹" + "[鐗╁搧]"; + this.parameter.type = 'TakeBack' + this.title = '鍥炴敹缂栫爜鏁版嵁' + this.visibleDeactivate = true; + } else { + if (showMessage) { + showMessage = false; // 鏍囪宸叉墽琛岃繃鎿嶄綔 + this.$confirm('褰撳墠鍒嗙被娌℃湁娣诲姞娴佺▼妯℃澘锛屾槸鍚︿笉鐢ㄦ祦绋嬪鎵圭洿鎺ユ墽琛�?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + const index = this.$route.query.id.indexOf('@'); + const result = this.$route.query.id.substring(0, index); + const oid = this.selectRow.map(obj => obj.oid).join(","); + changeStatus({ oid: oid, btmname: result, lcStatus: 'TakeBack' }).then(res => { + console.log(res); + if(res.data.code == 200 ){ + this.$message.success('鍥炴敹鎴愬姛') + this.onLoad() + } + }); + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑�' + }); + }); + } + } + }); + } else if (this.selectRow.length >=1 && !(disabledCount === this.selectRow.length || releasedCount === this.selectRow.length) || (disabledCount > 0 && releasedCount > 0) && showMessage) { + this.$message.warning('鎮ㄩ�夋嫨鐨勬暟鎹叏閮ㄤ负銆愬仠鐢ㄧ姸鎬佹垨鍙戝竷鐘舵�併�戞墠鍙互鍙戣捣娴佺▼'); + showMessage = false; + } + }); + } }, handleSizeChange(val) { this.isLoading = true; setTimeout(() => { - this.page.pageSize = val - this.$emit('pageSize', val) - this.CrudRend() + this.page.pageSize = val; + this.$emit("pageSize", val); + this.CrudRend(); }, 3000); - }, handleCurrentChange(val) { this.isLoading = true; setTimeout(() => { - this.page.currentPage = val - this.$emit('currentPage', val) - this.CrudRend() + this.page.currentPage = val; + this.$emit("currentPage", val); + this.CrudRend(); }, 3000); }, // 鐩戝惉鍗曞厓鏍肩偣鍑讳簨浠跺苟瀛樺偍姝e湪缂栬緫鐨勮 handleCellClick(row, column) { this.editingRow = row; this.editShow = column.property; - this.rowOid = row.oid + this.rowOid = row.oid; + }, + handleRowClick(row, column) { + this.fileOptions.ownbizOid = row.oid; + this.fileOptions.ownbizBtm = row.btmname; + this.$refs.dataTable.toggleRowSelection(row); }, //鍒犻櫎 enumDeleteRow(row) { - this.tableData.splice(row, 1) + this.tableData.splice(row, 1); }, // 灏嗘鍦ㄧ紪杈戠殑琛岀殑鐘舵�佸彉涓� null 锛屽嵆閫�鍑虹紪杈戠姸鎬� saveRow() { @@ -310,6 +642,7 @@ }, doLayout() { this.$nextTick(() => { + console.log(this.$refs) this.$refs.crud.doLayout(); }); }, @@ -317,25 +650,24 @@ CrudHeaderRend() { if (this.codeClassifyOid != "") { MasterTable({ - codeClassifyOid: this.codeClassifyOid, - functionId: 5, - }).then(res => { - this.options = res.data.tableDefineVO.seniorQueryColumns + codeClassifyOid: this.codeClassifyOid + }).then((res) => { + this.options = res.data.tableDefineVO.seniorQueryColumns; this.List = res.data.tableDefineVO.cols[0]; - this.List.forEach(item => { + this.List.forEach((item) => { let columnItem = { label: item.title, prop: item.field, type: this.columnType[item.type], sortable: item.sort, - width: item.minWidth + width: item.minWidth, }; this.option.column.push(columnItem); this.option.column = this.tableHeadData; - this.templateOid = res.data.tableDefineVO.oid - this.$emit('templateOid', this.templateOid) - }) - }) + this.templateOid = res.data.tableDefineVO.oid; + this.$emit("templateOid", this.templateOid); + }); + }); } }, //琛ㄦ牸鏁版嵁 @@ -345,16 +677,16 @@ codeClassifyOid: this.codeClassifyOid, page: this.page.currentPage, limit: this.page.pageSize, - }).then(res => { + }).then((res) => { this.page.total = res.data.total; this.data = res.data.data; this.tableData = res.data.data; - }) + }); }, // 鎺掑簭 sortChange(val) { this.isLoading = true; - let order = "" + let order = ""; if (val.order == "ascending") { order = "asc"; } else { @@ -367,100 +699,138 @@ sort: val.prop, page: this.page.currentPage, limit: this.page.pageSize, - }).then(res => { + }).then((res) => { setTimeout(() => { this.data = res.data.data; this.isLoading = false; }, 100); - }) + }); }, //鍒嗛〉鍒锋柊 async onLoad(val) { - console.log('鍒嗛〉', this.templateOid) await TableData({ templateOid: this.templateOid, codeClassifyOid: this.codeClassifyOid, - page: val.currentPage, - limit: val.pageSize, - }).then(res => { - this.data = res.data.data; - }) + page: this.page.currentPage, + limit: this.page.pageSize, + }).then((res) => { + this.tableData = res.data.data; + }); }, //澶氶�� - handleSelectionChange(row) { - if(this.row){ - this.rowOid = row[0].oid; - }else { - this.rowOid='' - } - this.selectRow = row; - console.log(row) + handleSelectionChange(list) { + this.selectRow = list; + this.parameter.ids = []; + list.forEach((item) => { + this.parameter.ids.push(item.oid); + }); + console.log(this.selectRow) + }, + //閫夋嫨 + handleSelection(list, row) { + this.fileOptions.ownbizOid = row.oid; + this.fileOptions.ownbizBtm = row.btmname; + + }, + //閫夋嫨鍏ㄩ儴 + handleSelectionAll() { + this.fileOptions.ownbizOid = '0'; + this.fileOptions.ownbizBtm = '0'; }, //缂栬緫 editHandler() { - console.log('row',this.rowOid) - console.log('temp',this.templateOid) - console.log('code',this.codeClassifyOid) - console.log('rule',this.coderuleoid) if (this.selectRow.length <= 0) { - this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�') + this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�"); } else if (this.selectRow.length > 1) { - this.$message.warning('鍙兘閫夋嫨涓�鏉℃暟鎹�') - } else if (this.selectRow[0].lcstatus != 'Editing') { - this.$message.warning('缂栫爜鐘舵�佷笉鏄�滅紪杈戜腑鈥�,涓嶅彲缂栬緫') + this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�"); + } else if (this.selectRow[0].lcstatus != "Editing") { + this.$message.warning("缂栫爜鐘舵�佷笉鏄�滅紪杈戜腑鈥�,涓嶅彲缂栬緫"); } else { - this.editvisible = true + this.editvisible = true; + this.rowOid = this.selectRow[0]['oid'] } }, //楂樼骇鏌ヨ鎸夐挳 - findHandler(){ - this.findvisible=true; - console.log(this.options) + findHandler() { + this.findvisible = true; }, // 楂樼骇鏌ヨ echoContion(val) { - console.log(val) - FindData({templateOid:this.templateOid, + FindData({ + templateOid: this.templateOid, codeClassifyOid: this.codeClassifyOid, - ...val - }).then(res=>{ - console.log(res) - }) + ...val, + }).then((res) => { + console.log(res); + this.tableData = res.data.data; + this.page.total = res.data.total + }); }, //鐩镐技椤规煡璇� - similarHandler(){ + similarHandler() { if (this.selectRow.length <= 0) { - this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�') + this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�"); } else if (this.selectRow.length > 1) { - this.$message.warning('鍙兘閫夋嫨涓�鏉℃暟鎹�') - } else { - this.similarVisible=true; + this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�"); + } else { + this.similarVisible = true; } - }, //鏁版嵁鏇存敼 - DataChange(){ + DataChange() { if (this.selectRow.length <= 0) { - this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�') + this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�"); } else if (this.selectRow.length > 1) { - this.$message.warning('鍙兘閫夋嫨涓�鏉℃暟鎹�') - } else if (this.selectRow[0].lcstatus != 'Released') { - this.$message.warning('鍙湁鐘舵�佷负宸插彂甯冪殑鏁版嵁鎵嶈兘杩涜鏁版嵁鏇存敼') + this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�"); + } else if (this.selectRow[0].lcstatus != "Released") { + this.$message.warning("鍙湁鐘舵�佷负宸插彂甯冪殑鏁版嵁鎵嶈兘杩涜鏁版嵁鏇存敼"); } else { - this.DataVisible = true + this.DataVisible = true; } }, //澧炲姞淇濆瓨 - AddSumbit(val){ + AddSumbit(val) { + this.addvisible = false; console.log(val) - this.addvisible=false + addSaveCode(val).then(res => { + console.log(res) + this.$nextTick(() => { + this.onLoad() + }) + }) }, - EditSumbit(val){ + EditSumbit(val) { + this.editvisible = false; console.log(val) - this.editvisible=false + editSaveCode(val).then(res => { + console.log(res) + this.$nextTick(() => { + this.onLoad() + }) + }) + }, + openBatchImport(type) { + this.batchImportData.visible = true + this.batchImportData.type = type + this.batchImportData.codeClassifyOid = this.codeClassifyOid + }, + //杈撳叆鍥炶溅鎼滅储 + tableFindInp() { + if (this.WupinFindValue.trim() === '') { + this.$message.warning('杈撳叆鍊间笉鑳戒负绌�') + return; + } + this.tableData = this.searchResults.filter(item => { + if (typeof item.name === 'string') { + return item.name.includes(this.WupinFindValue); + } else { + return false; // item.name涓嶆槸瀛楃涓茬被鍨嬶紝杩斿洖false + } + }); } + } -} +}; </script> <style lang="scss" scoped> @@ -473,4 +843,29 @@ background-color: #f5f7fa !important; } } + +/deep/ .el-button { + margin: 0 10px 10px 0; +} + +.main { + display: flex; + flex-direction: column; + height: calc(100vh - 150px); + min-height: 400px; +} + +.top { + overflow-y: scroll; + min-height: 55%; +} + +.bottom { + margin-top: 20px; + overflow-y: scroll; +} + +.el-collapse-item__content { + padding-bottom: 0; +} </style> -- Gitblit v1.9.3