From b172994cb67bd03949e40dd810fffd0293054929 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期四, 29 二月 2024 16:12:15 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/plan/productionschedul/index.vue | 239 +++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 143 insertions(+), 96 deletions(-) diff --git a/src/views/plan/productionschedul/index.vue b/src/views/plan/productionschedul/index.vue index 13e02e7..1037dd2 100644 --- a/src/views/plan/productionschedul/index.vue +++ b/src/views/plan/productionschedul/index.vue @@ -2,56 +2,67 @@ <div class="mod-config"> <basic-container> <el-row> - <el-col :span="16" style="height:100vh"> - <el-row style="height:65%;padding:0px 10px;"> + <el-col :span="24"> + <el-row style="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-dropdown @command="changeTable"> + <span :style="dropdownTitleStyle" class="el-dropdown-link"> + {{dropdownTitle}}<i class="el-icon-arrow-down el-icon--right"></i> + </span> + <el-dropdown-menu slot="dropdown"> + <el-dropdown-item command="undone">寰呭畬鎴愯皟搴�</el-dropdown-item> + <el-dropdown-item command="done">宸插畬鎴愯皟搴�</el-dropdown-item> + </el-dropdown-menu> + </el-dropdown> + </div> + <div> + <el-button @click="tagFinished" v-if="showUnDownTable" size="mini" round type="success">鏍囪宸插畬鎴�</el-button> <el-button size="mini" round type="primary" - v-if="permissions.plan_productionschedul_edit_line" + v-if="permissions.plan_productionschedul_edit_line && showUnDownTable" @click="openEditDialog">缂栬緫鏃堕棿绾�</el-button> <el-tooltip content="鍒锋柊"> <el-button circle icon="el-icon-refresh" @click="getDataList"></el-button> </el-tooltip> </div> </div> + <!-- 寰呭畬鎴愯皟搴﹁〃鏍� --> <avue-crud + v-if="showUnDownTable" class="unfinished-crud" :data="tableData" - ref="crud" + ref="unfinished" :option="option" :span-method="spanMethod" @refresh-change="getDataList" @current-change="handleCurrentChange" @size-change="handleSizeChange" + @cell-click="handleClickCell" :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> + <template slot="product" slot-scope="scope"> + <el-link type="primary">{{ scope.row.product }}</el-link> + </template> + <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 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 + v-else class="finished-crud" :data="finishedTableData" ref="finished" @@ -59,45 +70,20 @@ :span-method="spanMethod" @refresh-change="getFinishedData" @current-change="handleCurrentChange" + @cell-click="handleClickCell" @size-change="handleSizeChange" :page="finishedPage" @selection-change="selectionFinishedRow"> + <template slot="product" slot-scope="scope"> + <el-link type="primary">{{ scope.row.product }}</el-link> + </template> </avue-crud> </el-col> </el-row> </el-col> - <el-col :span="8" style="padding-left: 10px"> - <div style=""> - <el-card> - <div slot="header" class="clearfix"> - <span>璋冨害鏃堕棿绾�</span> - </div> - <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"> - <el-card shadow="hover" :body-style="{margin: '0',padding:'0px 20px 0px 20px'}" style="width:90%;"> - <p> - <span style="font-weight: bold;">璁″垝鏃堕棿: </span> - {{item.planTime}} - </p> - <p> - <span style="font-weight: bold;">瀹為檯鏃堕棿: </span> - {{ item.actualTime }}</p> - </el-card> - </el-timeline-item> - </el-timeline> - </div> - </el-card> - </div> - </el-col> </el-row> </basic-container> + <!-- 缂栬緫鏃堕棿绾� --> <el-dialog title="缂栬緫鏃堕棿绾�" :visible.sync="dialogVisible" @@ -147,32 +133,63 @@ <el-button @click="dialogVisible = false">鍙� 娑�</el-button> <el-button type="primary" @click="confirmEditSchedul">纭� 瀹�</el-button> </span> - </el-dialog> - <el-dialog - title="缂栬緫" - :visible.sync="editDialogVisible" - width="50%"> - <el-form :model="editForm" label-width="120px"> - <el-row> - <el-col :span="24"> - <el-form-item label="鐢熶骇鎯呭喌:"> - <el-input style="width:100%" placeholder="璇疯緭鍏ョ敓浜ф儏鍐�" type="textarea" :row="2" v-model="editForm.productionStatus"></el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="鐢熶骇绋嬪害:"> - <el-input style="width:100%" placeholder="璇疯緭鍏ョ敓浜х▼搴�" type="textarea" :row="2" v-model="editForm.productionRoutine"></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <span slot="footer" class="dialog-footer"> - <el-button @click="editDialogVisible = false">鍙� 娑�</el-button> - <el-button type="primary" @click="confirmEdit()">纭� 瀹�</el-button> - </span> - </el-dialog> + </el-dialog> + <!-- 缂栬緫鐢熶骇杩囩▼鍜岀敓浜ф儏鍐� --> + <el-dialog + title="缂栬緫" + :visible.sync="editDialogVisible" + width="50%"> + <el-form :model="editForm" label-width="120px"> + <el-row> + <el-col :span="24"> + <el-form-item label="鐢熶骇鎯呭喌:"> + <el-input style="width:100%" placeholder="璇疯緭鍏ョ敓浜ф儏鍐�" type="textarea" :row="2" v-model="editForm.productionStatus"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="鐢熶骇绋嬪害:"> + <el-input style="width:100%" placeholder="璇疯緭鍏ョ敓浜х▼搴�" type="textarea" :row="2" v-model="editForm.productionRoutine"></el-input> + </el-form-item> + </el-col> + </el-row> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="editDialogVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="confirmEdit()">纭� 瀹�</el-button> + </span> + </el-dialog> + <!-- 鏌ョ湅鏃堕棿绾� --> + <el-dialog + title="鏌ョ湅璋冨害鏃堕棿绾�" + top="5vh" + :visible.sync="showTimeLineDialog" + width="40%"> + <el-card> + <div style="height:500px;overflow-y: scroll;"> + <el-timeline> + <el-timeline-item + placement="top" + :color="(item.actualTime) ? '#34BD66' :null" + :icon="(item.actualTime) ? 'el-icon-circle-check' :null" + v-for="(item, index) in scheduleList" + :key="index" + :timestamp="item.title"> + <el-card shadow="hover" :body-style="{margin: '0',padding:'0px 20px 0px 20px'}" style="width:90%;"> + <p> + <span style="font-weight: bold;">璁″垝鏃堕棿: </span> + {{item.planTime}} + </p> + <p> + <span style="font-weight: bold;">瀹為檯鏃堕棿: </span> + {{ item.actualTime }}</p> + </el-card> + </el-timeline-item> + </el-timeline> + </div> + </el-card> + </el-dialog> </div> </template> @@ -184,12 +201,20 @@ deleteSchedul, updateState, checkTimeLines, + updateSchedul } from '@/api//plan/productionschedul' import ttable from '@/views/common/ztt-table.vue' import { mapGetters } from 'vuex' export default { data() { return { + dropdownTitleStyle: { + color: '#E84738', + fontWeight: 'bold' + }, + showUnDownTable: true, + dropdownTitle: '寰呭畬鎴愯皟搴�', + showTimeLineDialog:false, editForm:{ id: null, productionRoutine: null, @@ -221,7 +246,7 @@ prop:'id', order:'descending' }, - height: 370, + height: 530, selection: true, columnBtn: false, index: true, @@ -280,6 +305,7 @@ prop: 'product', label: '浜у搧鍚�', overHidden: true, + slot: true }, { minWidth: 120, @@ -404,6 +430,7 @@ prop: 'product', label: '浜у搧鍚�', overHidden: true, + slot: true }, { minWidth: 120, @@ -515,12 +542,26 @@ } } }, - mounted() { - - }, - beforeDestroy() { - }, + mounted() {}, + beforeDestroy() {}, methods: { + handleClickCell(row, column, cell, event){ + if(column.label === '浜у搧鍚�'){ + this.getScheduleById(row.mid) + this.showTimeLineDialog = true + } + }, + changeTable(command){ + if(command === 'undone'){ + this.dropdownTitle = '寰呭畬鎴愯皟搴�' + this.dropdownTitleStyle = {color:'#E84738',fontWeight: 'bold'} + this.showUnDownTable = true + }else if(command === 'done'){ + this.dropdownTitle = '宸插畬鎴愯皟搴�' + this.dropdownTitleStyle = {color:'#34BD66',fontWeight: 'bold'} + this.showUnDownTable = false + } + }, tagFinished(){ if(this.multipleSelection.length < 1){ this.$message.warning("璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�") @@ -580,6 +621,7 @@ }) }, confirmEditSchedul(){ + const _than = this let data = this.scheduleEditList let mIds = this.multipleSelection.map(ele=>{ return ele.mid @@ -601,16 +643,15 @@ } fillTime(obj).then(res=>{ if(res.status===200){ - this.$message.success("鏇存柊鎴愬姛") + _than.$message.success("鏇存柊鎴愬姛") }else{ - this.$message.error("鏇存柊澶辫触") + _than.$message.error("鏇存柊澶辫触") } - this.getScheduleById(orderObj.id) - this.dialogVisible = false + // _than.getScheduleById(orderObj.id) + _than.dialogVisible = false }).catch(error=>{ console.error(error); }) - }, initTimeLine(data){ let scheduleList = [] @@ -662,7 +703,10 @@ }, selectionRow(val){ this.multipleSelection = val - this.getScheduleById(val[val.length-1].mid) + // if(this.multipleSelection.length>0){ + // this.getScheduleById(val[val.length-1].mid) + // this.showTimeLineDialog = true + // } }, selectionFinishedRow(val){ if (val.length > 1) { @@ -699,6 +743,9 @@ getDataList(){ this.getUnFinishedData() this.getFinishedData() + this.$nextTick(()=>{ + this.rowCalc() + }) }, getUnFinishedData() { this.loading = true @@ -741,7 +788,7 @@ deleteSchedul(row.mid).then(res=>{ if(res.status===200){ _than.$message.success("鍒犻櫎鎴愬姛") - _than.getData() + _than.getDataList() } }).catch(error=>{ console.error(error) -- Gitblit v1.9.3