From dedbadd96ab7e1533572b25511fd201678c64dad Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 17 十月 2024 09:56:18 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue | 936 ++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 682 insertions(+), 254 deletions(-) diff --git a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue index 7324680..04d6918 100644 --- a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue +++ b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue @@ -2,26 +2,37 @@ <basic-container> <div class="main"> <div class="top"> - <div class="testbox" style=""> + <div class="testbox"> <div> </div> - <el-row style="width: 100%;margin-bottom: 20px"> - <div> + <el-row style="width: 100%;margin-bottom: 10px"> + <div style="margin-bottom: 10px"> <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)">{{ + @click="handleBtnClick(item)">{{ item.name }} </el-button> - <span v-if="tableHeadFindData.length > 0"> - <el-select slot="prepend" v-model="keyWordFind" placeholder="璇烽�夋嫨" size="small"> - <el-option v-for="item in tableHeadFindData" :label="item.label" :value="item.prop"></el-option> + <span v-if="tableHeadFindData.length > 0 "> + <el-select slot="prepend" v-model="keyWordFind" placeholder="璇烽�夋嫨" size="small" @change="searchChange"> + <el-option v-for="item in tableHeadFindData" :key="item.id" :label="item.label" + :value="item.query"></el-option> </el-select> - <el-input v-model="WupinFindValue" placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�" - size="small" style="width: 180px; margin-left: 5px; margin-top: 10px" + <el-input v-if="!isTimeStatus" v-model="WupinFindValue" + placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�" size="small" style="width: 180px; margin-left: 5px; margin-top: 10px" @keyup.enter.native="tableFindInp"></el-input> + </span> + <span v-if="tableHeadFindData.length > 0 && isTimeStatus" class="block"> + <el-date-picker + v-model="dateValue" + placeholder="閫夋嫨鏃ユ湡" + size="small" + style="margin-left: 5px" + type="date" + @change="dateChange"> + </el-date-picker> </span> <span v-if="tableHeadFindData.length > 0" style="margin-left: 10px"> <p style="font-size: 13px;display: inline-block;"> 鐘舵�侊細</p> @@ -34,34 +45,84 @@ <el-option label="瀹℃牳涓�" value="Auditing"></el-option> </el-select></span> </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 v-if="tableData.length != 0" fixed type="selection" width="55"></el-table-column> - <el-table-column v-if="tableData.length != 0" fixed label="搴忓彿" type="index" width="55"> - </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.width" - align="center"> - </el-table-column> - </el-table> + <div class="custom-table"> + <el-table ref="dataTable" v-loading="isLoading" :data="tableData" + :header-cell-style="{background:'#FAFAFA',color:'#505050'}" + :height="tableHeight" border + class="cus-table" @select="handleSelection" @cell-click="handleCellClick" + @row-click="handleRowClick" @select-all="handleSelectionAll" + @selection-change="handleSelectionChange" @sort-change="sortChange"> + <el-table-column v-if="tableData.length != 0" fixed type="selection" width="55"></el-table-column> + <el-table-column v-if="tableData.length != 0" fixed label="搴忓彿" type="index" width="55"> + </el-table-column> + <!-- 鐢熷懡鍛ㄦ湡--> + <!-- <el-table-column v-for="(item,index) in lcstatusArray"--> + <!-- v-if=" lcstatusArray.length >= 0 && !item.hidden"--> + <!-- key="index" :show-overflow-tooltip="true" :sortable="item.sortable"--> + <!-- :width="item.width" align="center" label="鐢熷懡鍛ㄦ湡鍊�"--> + <!-- prop="lcstatus">--> + <!-- <template slot-scope="scope">--> + <!-- <span>{{ scope.row.lcstatus_text }}</span>--> + <!-- </template>--> + <!-- </el-table-column>--> + <!-- 缂栧彿--> + <el-table-column v-for="(item, index) in CodeArray" v-if="CodeArray.length !== 0 && !item.hidden" + key="index" :label="item.label" :prop="item.prop" + :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width" + align="center"> + <template slot-scope="scope"> + <el-link type="primary" @click="CodeLinkHandler(scope.row)"> + {{ scope.row[item.prop] }} + </el-link> + </template> + </el-table-column> + <el-table-column v-for="item in this.tableHeadFindData" + v-if="!item.hidden && item.prop !== 'id'" + :key="item.id" + :formatter="item.formatter" + :label="item.label" + :prop="item.prop" + :show-overflow-tooltip="true" + :sortable="item.sortable" + :width="item.width" + align="center"> + </el-table-column> + </el-table> + </div> </el-row> - <!-- 鏂板--> + <!-- 鐢宠--> + <FormTemplateDialog :TreeValue="TreeValue" :codeClassifyOid="this.codeClassifyOid" + :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :templateOid="templateOid" + :visible.sync="applyvisible" status="apply" + type="add" + @submit="applySumbit"> + </FormTemplateDialog> + <!-- 淇--> <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" - :disabledProp="disabledProp" :templateOid="templateOid" :visible.sync="addvisible" + :disabledProp="disabledProp" :selectRow="selectRow" :templateOid="templateOid" + :title="'鏁版嵁淇'" :visible.sync="amendvisible" status="amend" + type="add" @submit="amendSumbit"></FormTemplateDialog> + <!-- 鏂板--> + <FormTemplateDialog :TreeValue="TreeValue" :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="'淇敼缂栫爜淇℃伅'" + :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" + :title="'淇敼缂栫爜淇℃伅'" :visible.sync="editvisible" type="edit" @submit="EditSumbit"></FormTemplateDialog> + <!-- 鎵归噺缂栬緫--> + <!-- <MasterEditBulk :visible.sync="bulkeditvisible" ></MasterEditBulk>--> + <!-- 鏁版嵁璇︽儏--> + <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" + :rowOid="this.LinkObject.oid" :templateOid="templateOid" + :title="'鏁版嵁璇︽儏'" + :visible.sync="LinkVisible" + type="detail"></FormTemplateDialog> <!-- 宸插彂甯冩暟鎹慨鏀�--> <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" @@ -88,22 +149,38 @@ :tableData="tableData" :tableHeadData="tableHeadFindData" :templateOid="templateOid" :visible.sync="dialogPush"></MasterTransfer> + <!-- 瀵煎叆--> + <BatchImport v-if="batchImportData.visible" v-bind="batchImportData" :resetTable="CrudRend" + :selectRow="selectRow" :tableHeadData="tableHeadFindData" + :visible.sync="batchImportData.visible"> + </BatchImport> <!-- 鐩镐技椤�--> <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" + <el-pagination :current-page="page.currentPage" :page-size="page.pageSize" :page-sizes="page.pageSizes" :total="page.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" @current-change="handleCurrentChange"> </el-pagination> </div> + <el-dialog v-loading="syncLoading" :visible.sync="syncDialogBox" append-to-body title="鎵嬪姩鍚屾" top="200px" + width="30%" @close="syncClose"> + <p style="display: inline-block">鏈�鍚庢洿鏂版椂闂达細</p> + <el-date-picker + v-model="SyncValue" + format="yyyy 骞� MM 鏈� dd 鏃� HH 鏃� mm 鍒� ss 绉�" + placeholder="閫夋嫨鏃ユ湡" + style="width: 300px" + type="date" + value-format="yyyy-MM-dd HH:mm:ss"> + </el-date-picker> + <div slot="footer" class="dialog-footer"> + <el-button @click="syncClose">鍙� 娑�</el-button> + <el-button type="primary" @click="submitSync">纭� 瀹�</el-button> + </div> + </el-dialog> </div> - </div> - <div> - <BatchImport v-if="batchImportData.visible" v-bind="batchImportData" :resetTable="CrudRend" - :visible.sync="batchImportData.visible"> - </BatchImport> </div> <div class="bottom"> <el-collapse v-model="visibleNames" @change="handleCollapse"> @@ -116,16 +193,32 @@ </basic-container> </template> <script> -import {MasterTable, TableData, FindData, addSaveCode, editSaveCode, deleteCode, upSaveCode} from "@/api/GetItem"; +import { + MasterTable, + TableData, + FindData, + addSaveCode, + editSaveCode, + deleteCode, + upSaveCode, + applyGroupCode, + receiveEditApply, + applySaveCode, + exportGroupCodeExcel, + syncSearch +} 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 BatchImport from '@/components/BatchImport' +import MasterEditBulk from '@/components/Master/MasterEditBulk' import {validatenull} from "@/util/validate"; import fileInHtml from "@/components/file/inHtml.vue"; import {getUserInfo} from "@/api/system/user"; +import func from "@/util/func"; +import moment from "moment/moment"; export default { components: { @@ -133,7 +226,8 @@ SetPersonnel, ResembleQueryDialog, BatchImport, - fileInHtml + fileInHtml, + MasterEditBulk }, name: "Crud.vue", props: { @@ -153,6 +247,10 @@ }, tableDataArray: { type: Array, + }, + TreeValue: { + type: String, + default: "", }, total: { type: String, @@ -177,10 +275,34 @@ }, Treedata: { type: Array + }, + nodeClickList: { + type: Array, + default: [] } }, data() { return { + //鎵嬪姩鍚屾model + SyncValue: '', + syncLoading: false, + syncDialogBox: false, + isTimeStatus: false, + isTimeName: '', + dateValue: "", + //鎵归噺缂栬緫瀵硅瘽妗� + bulkeditvisible: false, + LinkVisible: false, + LinkObject: {}, // 缂栫爜鏁版嵁 + LinkList: [], + isCodeArrayPushed: false, // 缂栫爜鏁扮粍娣诲姞鏍囪瘑鍙橀噺 + CodeArray: [], + //鐢熷懡鍛ㄦ湡鏁扮粍 + lcstatusArray: [], + //鍙傜収鏁版嵁鏁扮粍 + referArray: [], + islcstatusPushed: false, + isReferPushed: false, // 鐘舵�佹悳绱� statusSelect: "all", // 鍏抽敭瀛楁煡璇� @@ -196,7 +318,6 @@ btmtype: '', code: "", type: '', - // this.visibleDeactivate ?'ENABLE':this.visibleEnable ? 'DISABLE' :this.visibleRecovery ? 'ROLLBACK' :'PUBLIC' processName: "", vars: { codeClassifyOid: "", @@ -218,7 +339,8 @@ key: "oid", label: "name", }, - tableHeadFindDatas: [], + applyvisible: false, + amendvisible: false, addvisible: false, editvisible: false, findvisible: false, @@ -242,7 +364,7 @@ datetime: "datetime", }, tableData: [], - tableHeight: 'calc(100vh - 330px)', + tableHeight: 'calc(100vh - 350px)', DataVisible: false, tableHeadData: [], items: {}, @@ -256,16 +378,10 @@ }, // 涓绘暟鎹寜閽� masterVrBtnList: [], - fileOptions: { - ownbizOid: "0", - ownbizBtm: "0", - fileDocClassify: '!=processAuditSuggest', - fileDocClassifyName: '', - hasDownload: true, - hasUpload: true, - height: 100 - }, - result: '' + fileOptions: {}, + result: '', + elapsedTime: '', + conditionMap: [], }; }, computed: { @@ -275,11 +391,9 @@ oids.push(ele.oid); }); return oids; - } + }, }, created() { - // const index = this.$route.query.id.indexOf('@name=') + '@name='.length; - // this.result = this.$route.query.id.substring(index); getUserInfo().then(res => { this.result = res.data.data.realName }) @@ -293,9 +407,16 @@ this.doLayout() }, watch: { + isLoading: { + handler(newval) { + // console.log(newval) + } + }, tableHeadDataFateher: { handler(newval, oldval) { - this.options = newval.tableDefineVO.seniorQueryColumns + if (Object.keys(newval).length > 0) { + this.options = newval.tableDefineVO.seniorQueryColumns; + } } }, codeClassifyOid: { @@ -307,14 +428,29 @@ tableDataArray: { handler(newval, oldval) { this.tableData = newval; - this.searchResults = newval - this.doLayout() + this.searchResults = newval; + this.doLayout(); + if (newval.length > 0) { + this.fileOptions = { + ownbizOid: "0", + ownbizBtm: "0", + fileDocClassify: '!=processAuditSuggest', + fileDocClassifyName: '', + hasDownload: true, + hasUpload: true, + hasEdit: true, + hasDel: true, + height: 'auto' + } + } else { + this.fileOptions = {}; + } }, }, tableHeadFindData: { handler(newval, oldval) { newval.forEach((record, _index) => { - if (record.field == 'id' && validatenull(record.templet)) { + if (record.queryField == 'id' && validatenull(record.templet)) { //浼佷笟缂栫爜鐨勯粯璁ゆ坊鍔犺秴閾炬帴,鏆傛湭瀹炵幇 record.formatter = ''; } else { @@ -329,10 +465,40 @@ } if (_index == 0) { - this.keyWordFind = record.field + this.keyWordFind = record.queryField; } + ; + // if(record.fieldType === "datetime"){ + // this.isTimeStatus = true; + // console.log(this.isTimeStatus) + // console.log(record) + // } }) - this.tableHeadFindDatas = newval; + if (newval) { + this.CodeArray = []; + if (newval.find(item => item.prop === 'id')) { + this.CodeArray.push(newval.find(item => item.prop === 'id')); + } else { + this.CodeArray = []; + } + + } + if (newval) { + this.lcstatusArray = []; + if (newval.find(item => item.prop === 'lcstatus')) { + this.lcstatusArray.push(newval.find(item => item.prop === 'lcstatus')); + } else { + this.lcstatusArray = []; + } + } + if (newval) { + this.referArray = []; + if (newval.find(item => Object.keys(item.referConfig).length > 0)) { + this.referArray.push(newval.find(item => Object.keys(item.referConfig).length > 0)); + } else { + this.referArray = []; + } + } this.WupinFindValue = '' }, }, @@ -344,19 +510,28 @@ templateOid: { handler(newval, oldval) { this.fileOptions.ownbizOid = "0"; + this.statusSelect = 'all' }, deep: true, }, tableHeadBtnData: { handler(newval) { - if (newval.length !== 0) { - this.masterVrBtnList = newval - } + this.masterVrBtnList = newval }, deep: true }, }, methods: { + // 缃┖鏌ヨ鏉′欢 + resetConditionMap() { + this.conditionMap = {}; + }, + + CodeLinkHandler(row) { + this.LinkObject = row; + this.LinkVisible = true; + this.LinkList = Object.keys(row).map(property => property) + }, //鐘舵�佹悳绱� cellSelectHandler(row) { if (row === 'all') { @@ -366,6 +541,8 @@ } }, cellStatusFind(lcstatus) { + this.isLoading = true; + this.conditionMap["conditionMap[lcstatus]"] = lcstatus; TableData({ templateOid: this.templateOid, codeClassifyOid: this.codeClassifyOid, @@ -373,8 +550,10 @@ limit: this.page.pageSize, 'conditionMap[lcstatus]': lcstatus }).then(res => { - console.log(res) - this.tableData = res.data.data + // console.log(res) + this.tableData = res.data.data; + this.page.total = res.data.total; + this.isLoading = false; }) }, //灞曞紑闄勪欢 @@ -383,17 +562,17 @@ this.tableHeight = 'calc(100vh - 630px)'; this.$refs.dataTable.doLayout() } else { - this.tableHeight = 'calc(100vh - 330px)'; + this.tableHeight = 'calc(100vh - 350px)'; this.$refs.dataTable.doLayout() } }, openVis(visible) { this[visible] = true }, - handelBtnClick(event) { + handleBtnClick(event) { const {uniqueFlag} = event this.$nextTick(() => { - if (uniqueFlag === 'CODEADD') return this.addvisible = true + if (uniqueFlag === 'CODEADD') return this.addSaveHandler() if (uniqueFlag === 'CODEEDIT') return this.editHandler() if (uniqueFlag === 'CODEBATCHADD') return this.openBatchImport('batchImportApply') if (uniqueFlag === 'CODEIMPORTHISTORY') return this.openBatchImport('historyImport') @@ -412,9 +591,198 @@ if (uniqueFlag === 'CODERECYCLE') return this.Recovery() //鍒犻櫎 if (uniqueFlag === 'CODEDELETE') return this.enumDeleteRow() + //鐢宠闆嗗洟鐮佹暟鎹� + if (uniqueFlag === 'applyGroupCode') return this.applyGroupCode() + //鏇存柊闆嗗洟鐮佹暟鎹� + if (uniqueFlag === 'receiveEditApply') return this.receiveEditApply() // 鐩镐技椤规煡璇� // if(uniqueFlag === 'CODEEDIT') return this.similarHandler() + // 鏍囧噯鐢宠 + if (uniqueFlag === 'CODEAPPLY') return this.codeApplyHandler() + // 鏍囧噯淇 + if (uniqueFlag === 'CODEAMEND') return this.codeAMENDHandler() + //鎵归噺缂栬緫 + if (uniqueFlag === 'bulkEdit') return this.bulkEditHandler("bulkEdit") + //闆嗗洟鐮佸鍑� + if (uniqueFlag === 'excelGroupCode') return this.excelGroupCode() + //闆嗗洟鐮佸鍏� + if (uniqueFlag === 'importGroupCode') return this.importGroupCode("groupCode") + //鎵嬪姩鍚屾 + if (uniqueFlag === 'manualSyncing') return this.manualSyncing("groupCode") }); + }, + //鎵嬪姩鍚屾 + manualSyncing() { + this.syncDialogBox = true; + }, + //鎵嬪姩鍚屾鍏抽棴 + syncClose() { + this.syncDialogBox = false; + }, + //鎵嬪姩鍚屾纭畾 + async submitSync() { + if (this.SyncValue) { + this.syncLoading = true; + const response = await syncSearch({endDate: this.SyncValue}) + console.log('response',response) + if (response.data.code === 200) { + this.$message.success('鍚屾鎴愬姛锛�') + this.syncLoading = false; + this.syncDialogBox = false; + this.SyncValue = ""; + } else { + this.syncLoading = false; + this.syncDialogBox = false; + this.SyncValue = ""; + } + } else { + this.$message.warning('璇烽�夋嫨鏈�鍚庢洿鏂版椂闂达紒') + } + }, + //闆嗗洟鐮佸鍏� + importGroupCode(type) { + this.batchImportData.visible = true + this.batchImportData.type = type + this.batchImportData.codeClassifyOid = this.codeClassifyOid + }, + //闆嗗洟鐮佸鍑� + excelGroupCode() { + this.isLoading = true; + exportGroupCodeExcel({ + codeClassifyOid: this.codeClassifyOid, + }).then(res => { + // let reader = new FileReader(); + // reader.readAsText(res.data); + // reader.onload = () => { + // try { + // let resData = JSON.parse(reader.result); // 瑙f瀽瀵硅薄鎴愬姛 + // if (!resData.success) { + // this.$message.error(resData.msg); + // this.isLoading = false; + // } + // } catch (err) { + // // 瑙f瀽鎴愬璞″け璐ワ紝璇存槑鏄甯哥殑鏂囦欢娴� + // func.downloadFileByBlobHandler(res); + // this.$message.success('涓嬭浇鎴愬姛锛岃鏌ョ湅锛�'); + // this.isLoading = false; + // } + // }; + func.downloadFileByBlobHandler(res); + this.$message.success('涓嬭浇鎴愬姛锛岃鏌ョ湅锛�'); + this.isLoading = false; + }).catch(error => { + this.$message.error(error); + }); + }, + //鏍囧噯鐢宠 + codeApplyHandler() { + this.$nextTick(() => { + this.applyvisible = true; + }); + }, + applySumbit(val) { + // console.log('val',val) + if (func.notEmpty(val.ts)) { + val.ts = func.formattedDateTime(val.ts); + //console.log(val.ts); + } + applySaveCode(val).then(res => { + this.$nextTick(() => { + this.applyvisible = false; + this.$message.success("淇濆瓨鎴愬姛"); + this.onLoad() + }) + }) + }, + amendSumbit(val) { + applySaveCode(val).then(res => { + this.$nextTick(() => { + this.amendvisible = false; + this.$message.success("淇濆瓨鎴愬姛"); + this.onLoad() + }) + }) + + }, + //鏍囧噯淇 + codeAMENDHandler() { + let foundItem = false; + this.tableHeadFindData.forEach(item => { + if (item.field === "oldcode" && Object.keys(item.referConfig).length >= 1) { + foundItem = true; + } + }); + if (foundItem) { + if (this.selectRow.length >= 1) { + this.$confirm('宸叉湁鍙傜収鏄惁鍙栨秷鍕鹃�夌户缁墽琛岋紵', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + this.selectRow = []; + //鍙栨秷鍕鹃�夌姸鎬� + this.$refs.dataTable.clearSelection(); + this.amendvisible = true; + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝綋鍓嶆搷浣�' + }); + }); + } else { + this.amendvisible = true; + } + } else { + if (this.selectRow.length <= 0) { + this.$message.warning("璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�"); + } else { + this.amendvisible = true; + + } + } + }, + //鎵归噺缂栬緫 + bulkEditHandler(type) { + if (this.nodeClickList.children.length >= 1) { + this.$message.warning('褰撳墠閫夋嫨鐨勫垎绫讳笉鏄彾瀛愯妭鐐癸紝涓嶅厑璁告壒閲忕紪杈戯紒') + return; + } + this.batchImportData.visible = true + this.batchImportData.type = type + this.batchImportData.codeClassifyOid = this.codeClassifyOid + }, + addSaveHandler() { + this.$nextTick(() => { + this.addvisible = true; + }); + }, + //鐢宠闆嗗洟鐮佹暟鎹� + applyGroupCode() { + if (this.selectRow.length <= 0) { + this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹ā鏉匡紒') + } else { + const oids = this.selectRow.map(item => item.oid).join(','); + applyGroupCode({oids, btmName: this.selectRow[0].btmname}).then(res => { + if (res.data.code == 200) { + this.$message.success('鐢宠鎴愬姛') + } + this.onLoad() + }) + } + }, + //鏇存柊闆嗗洟鐮佹暟鎹� + receiveEditApply() { + if (this.selectRow.length <= 0) { + this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹ā鏉匡紒') + } else { + const oids = this.selectRow.map(item => item.oid).join(','); + receiveEditApply({oids, btmName: this.selectRow[0].btmname}).then(res => { + if (res.data.code == 200) { + this.$message.success('鏇存柊鎴愬姛') + this.onLoad() + } + }); + } }, openD() { this.getListCodeByClassId(); @@ -430,75 +798,72 @@ this.transferData = data; } }, - handelTransferSave(val) { - console.log('鍙戝竷', val) - }, rend() { this.tableData = this.tableHeadData; }, // 鍙戝竷 setHandler() { var options = { - processUse:'PUBLIC', - processUseText:'鐢宠', - allowStatus:'Editing', - allowStatusText:'宸茬紪杈�', - startStatus:'Auditing', - resetStatus:'Editing', - batchTitle:'鎵归噺鎻愪氦缂栫爜鏁版嵁鍒版祦绋嬪鎵�', - title:'鎻愪氦缂栫爜鏁版嵁鍒版祦绋嬪鎵�' + processUse: 'PUBLIC', + processUseText: '鐢宠', + allowStatus: 'Editing', + allowStatusText: '宸茬紪杈�', + startStatus: 'Auditing', + resetStatus: 'Editing', + batchTitle: '鎵归噺鎻愪氦缂栫爜鏁版嵁鍒版祦绋嬪鎵�', + title: '鎻愪氦缂栫爜鏁版嵁鍒版祦绋嬪鎵�' } - this.checkStatusAndSubmitProcess(options,'Released'); + this.checkStatusAndSubmitProcess(options, 'Released'); }, //鍋滅敤 Deactivate() { var options = { - processUse:'DISABLE', - processUseText:'鍋滅敤', - allowStatus:'Released', - allowStatusText:'宸插彂甯�', - resetStatus:'Released', - batchTitle:'鎵归噺鍋滅敤(鍐荤粨)鐨勭紪鐮佹暟鎹�', - title:'鍋滅敤(鍐荤粨)缂栫爜鏁版嵁', - confirmMsg:'鏄惁瑕佸仠鐢ㄨ繖浜涙暟鎹�' + processUse: 'DISABLE', + processUseText: '鍋滅敤', + allowStatus: 'Released', + allowStatusText: '宸插彂甯�', + resetStatus: 'Released', + batchTitle: '鎵归噺鍋滅敤(鍐荤粨)鐨勭紪鐮佹暟鎹�', + title: '鍋滅敤(鍐荤粨)缂栫爜鏁版嵁', + confirmMsg: '鏄惁瑕佸仠鐢ㄨ繖浜涙暟鎹�' } - this.checkStatusAndSubmitProcess(options,'Disabled'); + this.checkStatusAndSubmitProcess(options, 'Disabled'); }, //鍚敤 Enable() { var options = { - processUse:'ENABLE', - processUseText:'鍚敤', - allowStatus:'Disabled', - allowStatusText:'宸插仠鐢�', - resetStatus:'Disabled', - batchTitle:'鎵归噺鍚敤(瑙e喕)鐨勭紪鐮佹暟鎹�', - title:'鍚敤(瑙e喕)缂栫爜鏁版嵁', - confirmMsg:'鏄惁瑕佸惎鐢�(瑙e喕)杩欎簺鏁版嵁' + processUse: 'ENABLE', + processUseText: '鍚敤', + allowStatus: 'Disabled', + allowStatusText: '宸插仠鐢�', + resetStatus: 'Disabled', + batchTitle: '鎵归噺鍚敤(瑙e喕)鐨勭紪鐮佹暟鎹�', + title: '鍚敤(瑙e喕)缂栫爜鏁版嵁', + confirmMsg: '鏄惁瑕佸惎鐢�(瑙e喕)杩欎簺鏁版嵁' } - this.checkStatusAndSubmitProcess(options,'Released'); + this.checkStatusAndSubmitProcess(options, 'Released'); }, //鍥炴敹 Recovery() { var options = { - processUse:'ROLLBACK', - processUseText:'鍥炴敹', - allowStatus:'Released,Disabled', - allowStatusText:'宸插彂甯�,宸插仠鐢�', - batchTitle:'鎵归噺鍥炴敹鐨勭紪鐮佹暟鎹�', - title:'鍥炴敹缂栫爜鏁版嵁', - confirmMsg:'鏄惁瑕佸洖鏀惰繖浜涙暟鎹�', + processUse: 'ROLLBACK', + processUseText: '鍥炴敹', + allowStatus: 'Released,Disabled', + allowStatusText: '宸插彂甯�,宸插仠鐢�', + batchTitle: '鎵归噺鍥炴敹鐨勭紪鐮佹暟鎹�', + title: '鍥炴敹缂栫爜鏁版嵁', + confirmMsg: '鏄惁瑕佸洖鏀惰繖浜涙暟鎹�', } - this.checkStatusAndSubmitProcess(options,'TakeBack'); + this.checkStatusAndSubmitProcess(options, 'TakeBack'); }, - checkStatusAndSubmitProcess(options,targetLcstatus){ + checkStatusAndSubmitProcess(options, targetLcstatus) { // 缂栬緫涓�-鍙兘鍙戝竷锛屼笉鑳藉洖鏀� // 瀹℃牳涓�-浠�涔堥兘涓嶈兘鍋� // 宸插彂甯�-鍋滅敤銆佸洖鏀� // 鍋滅敤-鍙兘鍚敤銆佸洖鏀� if (this.selectRow.length <= 0) { this.$message.warning("璇烽�夋嫨鏁版嵁"); - } else if (this.selectRow.length >1000) { + } else if (this.selectRow.length > 1000) { this.$message.warning("姣忔鎻愪氦鍒版祦绋嬬殑鏁伴噺璇蜂笉瑕佽秴杩�1000鏉�"); } else { //瀹℃壒鐨勬暟鎹殑鐘舵�佸繀椤荤浉鍚� @@ -512,27 +877,27 @@ this.$message.warning("閫夋嫨鐨勬暟鎹腑鐘舵�佹棤闇�鍐嶆墽琛屽綋鍓嶆搷浣�"); return false; } - if(options.processUseText=='鐢宠' && !validatenull(this.selectRow[0].copyfromversion)){ - options.processUseText='淇敼' - options.processUse='EDIT' + if (options.processUseText == '鐢宠' && !validatenull(this.selectRow[0].copyfromversion)) { + options.processUseText = '淇敼' + options.processUse = 'EDIT' } - let checkStatus = this.selectRow.every(item => options.allowStatus.indexOf(item.lcstatus)!=-1); - if(!checkStatus){ - this.$message.warning('鍙湁鐘舵�佹槸銆�'+options.allowStatusText+'銆戠殑鏁版嵁鎵嶅彲浠ュ彂璧锋祦绋�'); - return false; + let checkStatus = this.selectRow.every(item => options.allowStatus.indexOf(item.lcstatus) != -1); + if (!checkStatus) { + this.$message.warning('鍙湁鐘舵�佹槸銆�' + options.allowStatusText + '銆戠殑鏁版嵁鎵嶅彲浠ュ彂璧锋祦绋�'); + return false; } processTS({templateId: this.templateOid, buttonTypeKey: options.processUse}).then(res => { if (res.data.data.records && res.data.data.records.length != 0) { - this.parameter.ids=this.oids; - this.parameter.processName = this.result + '-'+options.processUseText+'[' + this.Treedata[0].name + '-' + this.selectRow[0].name + ']'; + this.parameter.ids = this.oids; + this.parameter.processName = this.result + '-' + options.processUseText + '[' + this.Treedata[0].name + '-' + this.selectRow[0].name + ']'; this.parameter.type = options.processUse; this.parameter.code = this.templateOid - this.parameter.btmtype=this.selectRow[0].btmname || this.selectRow[0].btmtype; - this.parameter.vars= { + this.parameter.btmtype = this.selectRow[0].btmname || this.selectRow[0].btmtype; + this.parameter.vars = { codeClassifyOid: this.codeClassifyOid, templateOid: this.templateOid }; - this.title = this.selectRow.length>1?options.batchTitle:options.title; + this.title = this.selectRow.length > 1 ? options.batchTitle : options.title; this.visibleDeactivate = true; } else { this.$confirm('褰撳墠鍒嗙被娌℃湁娣诲姞娴佺▼妯℃澘锛屾槸鍚︿笉鐢ㄦ祦绋嬪鎵圭洿鎺ユ墽琛�?', '鎻愮ず', { @@ -540,7 +905,11 @@ cancelButtonText: '鍙栨秷', type: 'warning' }).then(() => { - changeStatus({oid: this.oids.join(','), btmname: this.selectRow[0].btmname, lcStatus: targetLcstatus}).then(res => { + changeStatus({ + oid: this.oids.join(','), + btmname: this.selectRow[0].btmname, + lcStatus: targetLcstatus + }).then(res => { if (res.data.code == 200) { this.$message.success(options.processUseText + '鎴愬姛') this.onLoad() @@ -556,21 +925,37 @@ }); } }, - handleSizeChange(val) { - this.isLoading = true; - setTimeout(() => { - this.page.pageSize = val; - this.$emit("pageSize", val); - this.CrudRend(); - }, 3000); + async CrudRend() { + this.elapsedTime = 0; + const startTime = performance.now(); + const res = await TableData({ + templateOid: this.templateOid, + codeClassifyOid: this.codeClassifyOid, + page: this.page.currentPage, + limit: this.page.pageSize, + ...this.conditionMap, /**甯︿笂鍒嗛〉鏌ヨ鏉′欢 */ + }); + const endTime = performance.now(); + this.elapsedTime = Math.floor(endTime - startTime) * 1; + this.page.total = res.data.total; + this.data = res.data.data; + this.tableData = res.data.data; }, - handleCurrentChange(val) { + + async handleSizeChange(val) { + this.page.pageSize = val; + this.$emit("pageSize", val); this.isLoading = true; - setTimeout(() => { - this.page.currentPage = val; - this.$emit("currentPage", val); - this.CrudRend(); - }, 3000); + await this.CrudRend(); + this.isLoading = false; + }, + + async handleCurrentChange(val) { + this.page.currentPage = val; + this.$emit("currentPage", val); + this.isLoading = true; + await this.CrudRend(); + this.isLoading = false; }, // 鐩戝惉鍗曞厓鏍肩偣鍑讳簨浠跺苟瀛樺偍姝e湪缂栬緫鐨勮 handleCellClick(row, column) { @@ -595,7 +980,6 @@ list.push(item.oid) }) deleteCode({codeClassifyOid: this.codeClassifyOid, oidList: list}).then(res => { - console.log(res) if (res.data.code === 200) { this.$message({ type: 'success', @@ -611,7 +995,7 @@ }); }); }, - // 灏嗘鍦ㄧ紪杈戠殑琛岀殑鐘舵�佸彉涓� null 锛屽嵆閫�鍑虹紪杈戠姸鎬� + //灏嗘鍦ㄧ紪杈戠殑琛岀殑鐘舵�佸彉涓� null 锛屽嵆閫�鍑虹紪杈戠姸鎬� saveRow() { this.editingRow = null; }, @@ -623,77 +1007,47 @@ } }) }, - //琛ㄦ牸澶存覆鏌� - CrudHeaderRend() { - if (this.codeClassifyOid != "") { - MasterTable({ - codeClassifyOid: this.codeClassifyOid - }).then((res) => { - this.options = res.data.tableDefineVO.seniorQueryColumns; - this.List = res.data.tableDefineVO.cols[0]; - this.List.forEach((item) => { - let columnItem = { - label: item.title, - prop: item.field, - type: this.columnType[item.type], - sortable: item.sort, - width: item.minWidth, - }; - this.option.column.push(columnItem); - this.option.column = this.tableHeadData; - this.templateOid = res.data.tableDefineVO.oid; - this.$emit("templateOid", this.templateOid); - }); - }); - } - }, - //琛ㄦ牸鏁版嵁 - CrudRend() { - TableData({ - templateOid: this.templateOid, - codeClassifyOid: this.codeClassifyOid, - page: this.page.currentPage, - limit: this.page.pageSize, - }).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 = ""; - if (val.order == "ascending") { - order = "asc"; - } else { - order = "desc"; + async sortChange(val) { + try { + this.isLoading = true; + const order = val.order == 'ascending' ? 'asc' : 'desc'; + const {data} = await TableData({ + templateOid: this.templateOid, + codeClassifyOid: this.codeClassifyOid, + order: order, + sort: val.prop, + page: this.page.currentPage, + limit: this.page.pageSize, + ...this.conditionMap + }); + this.data = data.data; + } finally { + this.isLoading = false; } - TableData({ - templateOid: this.templateOid, - codeClassifyOid: this.codeClassifyOid, - order: order, - sort: val.prop, - page: this.page.currentPage, - limit: this.page.pageSize, - }).then((res) => { - setTimeout(() => { - this.data = res.data.data; - this.isLoading = false; - }, 100); - }); }, //鍒嗛〉鍒锋柊 async onLoad(val) { - await TableData({ - templateOid: this.templateOid, - codeClassifyOid: this.codeClassifyOid, - page: this.page.currentPage, - limit: this.page.pageSize, - }).then((res) => { + this.isLoading = true; + try { + let conditionMap = {}; + if (this.statusSelect !== 'all') { + conditionMap.lcstatus = this.statusSelect; + } + const res = await TableData({ + templateOid: this.templateOid, + codeClassifyOid: this.codeClassifyOid, + page: this.page.currentPage, + limit: this.page.pageSize, + conditionMap + }); this.tableData = res.data.data; - this.doLayout() - }); + this.doLayout(); + } catch (error) { + this.$message.error(error) + } finally { + this.isLoading = false; + } }, //澶氶�� handleSelectionChange(list) { @@ -712,15 +1066,13 @@ }, //缂栬緫 editHandler() { - if (this.selectRow.length <= 0) { + if (this.selectRow.length !== 1) { this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�"); - } else if (this.selectRow.length > 1) { - this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�"); - } else if (this.selectRow[0].lcstatus != "Editing") { - this.$message.warning("缂栫爜鐘舵�佷笉鏄�滅紪杈戜腑鈥�,涓嶅彲缂栬緫"); + } else if (this.selectRow[0].lcstatus !== "Editing") { + this.$message.warning("缂栫爜鐘舵�佷笉鏄�滅紪杈戜腑鈥濓紝涓嶅彲缂栬緫"); } else { this.editvisible = true; - this.rowOid = this.selectRow[0]['oid'] + this.rowOid = this.selectRow[0].oid; } }, //楂樼骇鏌ヨ鎸夐挳 @@ -728,66 +1080,83 @@ this.findvisible = true; }, // 楂樼骇鏌ヨ - echoContion(val) { - FindData({ - templateOid: this.templateOid, - codeClassifyOid: this.codeClassifyOid, - ...val, - }).then((res) => { + async echoContion(val) { + this.conditionMap = val; + try { + const res = await FindData({ + templateOid: this.templateOid, + codeClassifyOid: this.codeClassifyOid, + ...val, + page: this.page.currentPage = 1, /** 姣忔鐐瑰嚮楂樼骇鏌ヨ閮藉簲璇ヤ粠绗竴椤靛紑濮�*/ + limit: this.page.pageSize + }); this.tableData = res.data.data; this.page.total = res.data.total - }); + } catch (error) { + + } }, //鐩镐技椤规煡璇� similarHandler() { if (this.selectRow.length <= 0) { this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�"); - } else if (this.selectRow.length > 1) { - this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�"); - } else { - this.similarVisible = true; + return; } + if (this.selectRow.length > 1) { + this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�"); + return; + } + this.similarVisible = true; }, //鏁版嵁鏇存敼 DataChange() { if (this.selectRow.length <= 0) { this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�"); - } else if (this.selectRow.length > 1) { - this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�"); - } else if (this.selectRow[0].lcstatus != "Released") { - this.$message.warning("鍙湁鐘舵�佷负宸插彂甯冪殑鏁版嵁鎵嶈兘杩涜鏁版嵁鏇存敼"); - } else { - this.DataVisible = true; - this.rowOid = this.selectRow[0]['oid'] + return } + if (this.selectRow.length > 1) { + this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�"); + return; + } + if (this.selectRow[0].lcstatus != "Released") { + this.$message.warning("鍙湁鐘舵�佷负宸插彂甯冪殑鏁版嵁鎵嶈兘杩涜鏁版嵁鏇存敼"); + return; + } + this.DataVisible = true; + this.rowOid = this.selectRow[0]['oid'] }, //澧炲姞淇濆瓨 AddSumbit(val) { - this.addvisible = false; + if (func.notEmpty(val.ts)) { + val.ts = func.formattedDateTime(val.ts); + //console.log(val.ts); + } addSaveCode(val).then(res => { this.$nextTick(() => { + this.addvisible = false; + this.$message.success("淇濆瓨鎴愬姛"); this.onLoad() }) }) }, //淇敼鍥炶皟 EditSumbit(val) { - this.editvisible = false; editSaveCode(val).then(res => { this.$nextTick(() => { + this.editvisible = false; + this.$message.success("淇濆瓨鎴愬姛"); this.onLoad() }) }) }, //鏁版嵁鏇存敼鍥炶皟 updataSumbit(val) { - this.DataVisible = false; val.copyFromVersion = this.rowOid; val.oid = ''; - console.log(val) upSaveCode(val).then(res => { - console.log(res) this.$nextTick(() => { + this.DataVisible = false; + this.$message.success("淇濆瓨鎴愬姛"); this.onLoad() }) }) @@ -797,21 +1166,57 @@ this.batchImportData.type = type this.batchImportData.codeClassifyOid = this.codeClassifyOid }, + searchChange(val) { + this.isTimeName = val; + this.isTimeStatus = this.tableHeadFindData.some(item => { + if (item.fieldType === "datetime" && item.prop === val) { + return true; + } + return false; + }); + // console.log(this.isTimeStatus) + }, + dateChange(val) { + if (val) { + const momentDate = moment(this.dateValue); + const dateString = momentDate.format("yyyy-MM-DD"); + this.isLoading = true; + try { + TableData({ + templateOid: this.templateOid, + codeClassifyOid: this.codeClassifyOid, + page: this.page.currentPage, + limit: this.page.pageSize, + ['conditionMap[' + this.keyWordFind + ']']: dateString + }).then(res => { + this.tableData = res.data.data; + this.page.total = res.data.total; + }) + } finally { + this.isLoading = false; + } + } + }, //杈撳叆鍥炶溅鎼滅储 tableFindInp() { - /*if (this.WupinFindValue.trim() === '') { - this.$message.warning('杈撳叆鍊间笉鑳戒负绌�') - return; - }*/ - TableData({ - templateOid: this.templateOid, - codeClassifyOid: this.codeClassifyOid, - page: this.page.currentPage, - limit: this.page.pageSize, - ['conditionMap[' + this.keyWordFind + ']']: '*' + this.WupinFindValue + '*' - }).then(res => { - this.tableData = res.data.data - }) + this.isLoading = true; + try { + this.conditionMap = {}; + // 瀛樺偍鏌ヨ鏉′欢锛屼富瑕佹槸涓轰簡鐐瑰嚮椤电爜鏃跺甫涓婅繖涓潯浠� + this.conditionMap["conditionMap[" + this.keyWordFind + "]"] = '*' + this.WupinFindValue + '*'; + TableData({ + templateOid: this.templateOid, + codeClassifyOid: this.codeClassifyOid, + page: this.page.currentPage, + limit: this.page.pageSize, + ['conditionMap[' + this.keyWordFind + ']']: '*' + this.WupinFindValue + '*' + }).then(res => { + this.tableData = res.data.data; + this.page.total = res.data.total; + }) + } finally { + this.isLoading = false; + } } } @@ -819,38 +1224,61 @@ </script> <style lang="scss" scoped> -.testbox { - .el-table--scrollable-x .el-table__body-wrapper { - overflow: auto !important; - } - .el-table__fixed-right-patch { - background-color: #f5f7fa !important; +/deep/ .el-table__fixed-body-wrapper { + .el-table__body { + padding-bottom: 15px; } } -/deep/ .el-button { +//鍥哄畾鍒楅珮搴� +/deep/ .el-table__fixed { + height: calc(100vh - 365px) !important; +} + +// 婊氬姩鏉℃牱寮忎慨鏀� +// 婊氬姩鏉$殑瀹藉害 +/deep/ .el-table__body-wrapper::-webkit-scrollbar { + height: 15px; // 绾靛悜婊氬姩鏉� 蹇呭啓 + background: white; + border: white; + width: 10px; + +} + +// 婊氬姩鏉$殑婊戝潡 +/deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb { + background-color: #ececec; + border-radius: 20px; + border: #ececec; +} + + +.el-button { margin: 0 10px 10px 0; +} + +/deep/ .dialog-footer .el-button { + margin: 0 10px 0 0; } .main { display: flex; flex-direction: column; - height: calc(100vh - 150px); + height: calc(100vh - 145px); min-height: 400px; } .top { overflow-y: scroll; - min-height: 55%; + min-height: 40%; } .bottom { - margin-top: 20px; - overflow-y: scroll; + margin-top: 10px; } -.el-collapse-item__content { - padding-bottom: 0; +.el-table__body-wrapper { + height: calc(100% - 44px) !important; } </style> -- Gitblit v1.9.3