From fb616f2a4d91dd9fb16320fb0b3d5fc3cd9e112c Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期五, 05 一月 2024 13:30:02 +0800 Subject: [PATCH] 销售订单-下载按钮修改2 --- src/views/plan/productionschedul/index.vue | 273 +++++++++++++++++++++++++++++------------------------- 1 files changed, 146 insertions(+), 127 deletions(-) diff --git a/src/views/plan/productionschedul/index.vue b/src/views/plan/productionschedul/index.vue index 2b4de6c..e762066 100644 --- a/src/views/plan/productionschedul/index.vue +++ b/src/views/plan/productionschedul/index.vue @@ -2,81 +2,90 @@ <div class="mod-config"> <basic-container> <el-row> - <el-col :span="14"> - <el-row> - <el-col :span="24"> - <div style="height:40vh;padding: 0px 10px;"> - <span style="position: relative;top:40px;">鏈畬鎴�</span> - <span style="position: relative;top:30px;left:73%;z-index: 11"> - <el-button @click="tagFinished" size="mini" round type="primary">鏍囪宸插畬鎴�</el-button> - </span> - <avue-crud - :data="tableData" - ref="crud" - :option="option" - :span-method="spanMethod" - @refresh-change="getUnFinishedData" - @current-change="handleCurrentChange" - @size-change="handleSizeChange" - :page="page" - @selection-change="selectionRow" - :table-loading="loading"> - <template #menu="{ row, index }"> - <el-button - v-if="permissions.plan_productionschedul_edit" - type="text" - icon="el-icon-edit" - size="small" - @click="editHandle(row, index)">缂栬緫</el-button> - <el-button - v-if="permissions.plan_productionschedul_del" - type="text" - icon="el-icon-delete" - size="small" - @click="deleteHandle(row, index)">鍒犻櫎</el-button> - </template> - </avue-crud> + <el-col :span="16" style="height:100vh"> + <el-row style="height:65%;padding:0px 10px;"> + <el-col :span="24" style="margin: 0;"> + <div style="display:flex;height:36px;justify-content: space-between;align-items:center;"> + <div><span style="color:#E84738;font-weight: bold;">鏈畬鎴�</span></div> + <div> + <el-button @click="tagFinished" size="mini" round type="success">鏍囪宸插畬鎴�</el-button> + <el-button size="mini" round type="primary" + v-if="permissions.plan_productionschedul_edit_line" + @click="openEditDialog">缂栬緫鏃堕棿绾�</el-button> + <el-tooltip content="鍒锋柊"> + <el-button circle icon="el-icon-refresh" @click="getDataList"></el-button> + </el-tooltip> + </div> </div> + <avue-crud + class="unfinished-crud" + :data="tableData" + ref="crud" + :option="option" + :span-method="spanMethod" + @refresh-change="getDataList" + @current-change="handleCurrentChange" + @size-change="handleSizeChange" + :page="page" + @selection-change="selectionRow" + :table-loading="loading"> + <template #menu="{ row, index }"> + <el-button + v-if="permissions.plan_productionschedul_edit" + type="text" + icon="el-icon-edit" + size="small" + @click="editHandle(row, index)">缂栬緫</el-button> + <el-button + v-if="permissions.plan_productionschedul_del" + type="text" + icon="el-icon-delete" + size="small" + @click="deleteHandle(row, index)">鍒犻櫎</el-button> + </template> + </avue-crud> </el-col> </el-row> - <el-row> - <el-col :span="24"> - <div style="height:40vh;padding: 0px 10px;"> - <span style="position: relative;top:40px;">宸插畬鎴�</span> - <avue-crud - :data="finishedTableData" - ref="finished" - :option="finishedOption" - :span-method="spanMethod" - @refresh-change="getFinishedData" - @current-change="handleCurrentChange" - @size-change="handleSizeChange" - :page="finishedPage" - @selection-change="selectionRow"> - <!-- <template #menu="{ row, index }"> - <el-button - v-if="permissions.plan_productionschedul_del" - type="text" - icon="el-icon-delete" - size="small" - @click="deleteHandle(row, index)">鍒犻櫎</el-button> - </template> --> - </avue-crud> + <el-row style="height:35%;padding:0px 10px;"> + <el-col :span="24" style="margin: 0;"> + <div style="display:flex;height:36px;justify-content: space-between;align-items:center;"> + <div><span style="color:#34BD66;font-weight: bold;">宸插畬鎴�</span></div> </div> + <avue-crud + class="finished-crud" + :data="finishedTableData" + ref="finished" + :option="finishedOption" + :span-method="spanMethod" + @refresh-change="getFinishedData" + @current-change="handleCurrentChange" + @size-change="handleSizeChange" + :page="finishedPage" + @selection-change="selectionFinishedRow"> + <!-- <template #menu="{ row, index }"> + <el-button + v-if="permissions.plan_productionschedul_del" + type="text" + icon="el-icon-delete" + size="small" + @click="deleteHandle(row, index)">鍒犻櫎</el-button> + </template> --> + </avue-crud> </el-col> </el-row> </el-col> - <el-col :span="10" style="padding-left: 10px"> + <el-col :span="8" style="padding-left: 10px"> <div style=""> <el-card> <div slot="header" class="clearfix"> <span>璋冨害鏃堕棿绾�</span> - <el-button v-if="permissions.plan_productionschedul_edit_line && scheduleList.length>0" @click="openEditDialog" style="float: right; padding: 3px 0" type="text">缂栬緫</el-button> </div> - <div style="height:70vh;overflow-y: scroll;"> + <div style="height:100vh;overflow-y: scroll;"> <el-timeline> <el-timeline-item placement="top" + :color="(item.planTime||item.actualTime) ? '#34BD66' :null" + :icon="(item.planTime||item.actualTime) ? 'el-icon-circle-check' :null" v-for="(item, index) in scheduleList" :key="index" :timestamp="item.title"> @@ -183,6 +192,7 @@ fillTime, deleteSchedul, updateState, + checkTimeLines, } from '@/api//plan/productionschedul' import ttable from '@/views/common/ztt-table.vue' import { mapGetters } from 'vuex' @@ -220,7 +230,7 @@ prop:'id', order:'descending' }, - height: 200, + height: 370, selection: true, columnBtn: false, index: true, @@ -330,7 +340,7 @@ prop:'id', order:'descending' }, - height: 180, + height: 230, selection: true, columnBtn: false, index: true, @@ -494,6 +504,11 @@ productionStatus: null, } } + }, + multipleSelection(newVal){ + if(newVal.length==0){ + this.scheduleList = [] + } } }, mounted() { @@ -504,7 +519,7 @@ methods: { tagFinished(){ if(this.multipleSelection.length < 1){ - this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�") + this.$message.warning("璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�") return } let ids = this.multipleSelection.map(ele=>{ @@ -541,12 +556,30 @@ } }, openEditDialog(){ - this.scheduleEditList = JSON.parse(JSON.stringify(this.scheduleList)) - this.dialogVisible = true + if(this.multipleSelection.length<1){ + this.$message.warning("璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�") + return + } + let mIds = this.multipleSelection.map(ele=>{ + return ele.mid + }) + checkTimeLines(mIds).then(res=>{ + if(res.data.data.length==1){ + let dataList = this.initTimeLine(res.data.data[0]) + this.scheduleEditList = dataList + this.dialogVisible = true + }else{ + this.$message.error("閫変腑鏁版嵁鐨勮皟搴︽椂闂寸嚎涓嶄竴鑷�!") + } + }).catch(error=>{ + console.error(error); + }) }, confirmEditSchedul(){ let data = this.scheduleEditList - let orderObj = this.multipleSelection[0] + let mIds = this.multipleSelection.map(ele=>{ + return ele.mid + }) let obj = { "documentActualTime": data[0].actualTime, "documentPlanTime": data[0].planTime, @@ -560,13 +593,13 @@ "checkPlanTime": data[4].planTime, "productActualTime": data[5].actualTime, "productPlanTime": data[5].planTime, - "id": orderObj.id, - "contractNo": orderObj.contractNo, - "customerName": orderObj.customerName, - "deliveryDate": orderObj.deliveryDate, - "orderTime": orderObj.orderTime, - "productType": orderObj.productType, - "projectName": orderObj.projectName + "mids": mIds, + // "contractNo": orderObj.contractNo, + // "customerName": orderObj.customerName, + // "deliveryDate": orderObj.deliveryDate, + // "orderTime": orderObj.orderTime, + // "productType": orderObj.productType, + // "projectName": orderObj.projectName } fillTime(obj).then(res=>{ if(res.status===200){ @@ -577,7 +610,7 @@ this.getScheduleById(orderObj.id) this.dialogVisible = false }).catch(error=>{ - console.log(error); + console.error(error); }) }, @@ -585,7 +618,7 @@ done() }, initTimeLine(data){ - this.scheduleList = [] + let scheduleList = [] if(data){ let arr = [ { @@ -619,28 +652,39 @@ planTime: data.productPlanTime, }, ] - this.scheduleList = arr + scheduleList = arr + return scheduleList } }, getScheduleById(id){ if(id){ fetchScheduleById(id).then(res=>{ - this.initTimeLine(res.data.data) + this.scheduleList = this.initTimeLine(res.data.data) }).catch(error=>{ - console.log(error); + console.error(error); }) } }, selectionRow(val){ - // if (val.length > 1) { - // const preVal = val.shift(); - // this.$refs.crud.toggleRowSelection(preVal, false); - // } - // else{ - // this.scheduleList=[] - // } + if (val.length > 1) { + const preVal = val.shift(); + this.$refs.crud.toggleRowSelection(preVal, false); + } + else{ + this.scheduleList=[] + } this.multipleSelection = val - // this.getScheduleById(val[0].id) + this.getScheduleById(val[0].mid) + }, + selectionFinishedRow(val){ + if (val.length > 1) { + const preVal = val.shift(); + this.$refs.finished.toggleRowSelection(preVal, false); + } + else{ + this.scheduleList=[] + } + this.getScheduleById(val[0].mid) }, formatDate(row, cellValue){ if (cellValue) { @@ -664,6 +708,10 @@ } }, // 鑾峰彇鏁版嵁鍒楄〃 + getDataList(){ + this.getUnFinishedData() + this.getFinishedData() + }, getUnFinishedData() { this.loading = true let param = { @@ -697,7 +745,7 @@ // 鍒犻櫎 deleteHandle(row,index) { const _than = this - _than.$confirm('鏄惁纭鍒犻櫎', '鎻愮ず', { + _than.$confirm('鏄惁纭鍒犻櫎璇ョ敓浜ц皟搴︿俊鎭�', '鎻愮ず', { confirmButtonText: '纭畾', cancelButtonText: '鍙栨秷', type: 'warning' @@ -780,51 +828,22 @@ } </script> <style> -.avue-crud__tip{ +.unfinished-crud .avue-crud__tip{ + display: none; +} +.unfinished-crud .avue-crud__menu{ + display: none; +} +.finished-crud .avue-crud__tip{ + display: none; +} +.finished-crud .avue-crud__menu{ display: none; } .avue-crud__pagination { position: relative; - padding: 5px 0 20px 20px; + padding: 0px 0 0px 20px; text-align: right; z-index: 10; -} -.basic-template-table .el-table__body .el-table__row td:first-child .cell { - padding-left: 0px; - padding-right: 0px; -} - -.basic-template-table .el-table__body .el-table__row:hover { - cursor: move; -} - -.basic-template-table .el-table__body .el-table__row:hover .icon { - display: inline-block; -} - -.basic-template-table .el-table__body .el-table__row .icon { - color: rgba(0, 0, 0, 0.45); - font-size: 12px; - line-height: 18px; - display: none; -} - -.aufontAll { - font-family: aufontAll !important; - font-size: 14px; - font-style: normal; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.h-icon-all-drag { - background: url('/img/tz.png') center center no-repeat; - background-size: cover; - font-size: 14px; -} -.h-icon-all-drag:before { - content: '\E63E'; - font-size: 14px; - visibility: hidden; } </style> -- Gitblit v1.9.3