From ff2f7d7bad0132c130c305364a863ff446e926b2 Mon Sep 17 00:00:00 2001 From: 小小儁爺 <1694218219@qq.com> Date: 星期一, 30 十二月 2024 13:47:24 +0800 Subject: [PATCH] 1.在缓存模式下 页面切换会请求接口 --- src/views/produce/reportCorrect.vue | 1562 +++++++++++++++++++++++++++++---------------------------- 1 files changed, 785 insertions(+), 777 deletions(-) diff --git a/src/views/produce/reportCorrect.vue b/src/views/produce/reportCorrect.vue index aec8a5c..d670b72 100644 --- a/src/views/produce/reportCorrect.vue +++ b/src/views/produce/reportCorrect.vue @@ -1,777 +1,785 @@ -<template> - <div> - <div class="body" :style="{height:mainHeight+'px'}"> - - <div class="bodyTopFormGroup" style="margin-top: 10px;"> - <el-form - ref="form" - :model="form" - label-width="100px" - inline - style="display: flex;" - > - <div class="elForm"> - <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;"> - <el-select - v-model="form.wkshopcode" - filterable - :popper-append-to-body="false" - style="width: 200px" - placeholder="璇烽�夋嫨" - > - <el-option - v-for="item in wkshopcodeArr" - :key="item.torg_code" - :label="item.torg_name" - :value="item.torg_code" - /> - </el-select> - </el-form-item> - <el-form-item label="宸ュ崟缂栫爜" style=" display: flex;"> - <el-input v-model="form.wo_code" placeholder="璇疯緭鍏�" style="width: 200px" /> - </el-form-item> - <el-form-item label="浜у搧缂栫爜" style=" display: flex;"> - <el-input v-model="form.partnumber" placeholder="璇疯緭鍏�" style="width: 200px" /> - </el-form-item> - <el-form-item label="浜у搧鍚嶇О" style=" display: flex;"> - <el-input v-model="form.partname" placeholder="璇疯緭鍏�" style="width: 200px" /> - </el-form-item> - <el-form-item v-show="isExpandForm" label="浜у搧瑙勬牸" style=" display: flex;"> - <el-input v-model="form.partspec" placeholder="璇疯緭鍏�" style="width: 200px" /> - </el-form-item> - - <el-form-item v-show="isExpandForm" label="鎶ュ伐浜哄憳" style=" display: flex;"> - <el-input v-model="form.reportuser" placeholder="璇疯緭鍏�" style="width: 200px" /> - </el-form-item> - <el-form-item v-show="isExpandForm" label="鎶ュ伐鏃堕棿" style=" display: flex;"> - <el-date-picker - v-model="form.reportdate" - type="daterange" - range-separator="~" - class="timeMini" - size="mini" - style="width: 200px;" - :clearable="false" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" - /> - </el-form-item> - </div> - <div - class="bodySearchReset" - :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}" - > - <el-button v-waves type="primary" icon="el-icon-search" @click="getMesOrderStepVerifySearch">鏌ヨ</el-button> - <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button> - </div> - </el-form> - <div - class="bodyTopFormExpand" - > - <svg-icon - v-show="mouseHoverType==='mouseout'" - style="cursor: pointer" - :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'" - @mouseenter="mouseHoverType=$event.type" - /> - <svg-icon - v-show="mouseHoverType==='mouseenter'" - style="cursor: pointer" - :icon-class="!isExpandForm?'doubleDown':'doubleUp'" - @click="isExpandForm=!isExpandForm" - @mouseout="mouseHoverType=$event.type" - /> - </div> - </div> - - <div class="elTableDiv"> - <el-table - ref="tableDataRef" - class="tableFixed" - :data="tableData" - :height="isExpandForm?tableHeight:(tableHeight+40)+'px'" - border - row-class-name="custom-row" - :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}" - highlight-current-row - :header-cell-style="this.$headerCellStyle" - :cell-style="this.$cellStyle" - @sort-change="sortChange" - > - <!-- <el-table-column--> - <!-- type="selection"--> - <!-- width="50"--> - <!-- :reserve-selection="true"--> - <!-- fixed--> - <!-- />--> - <el-table-column - prop="rowNum" - width="50" - fixed - label="搴忓彿" - /> - <el-table-column - prop="wo_code" - label="鎶ュ伐宸ュ崟" - sortable="custom" - min-width="160" - show-overflow-tooltip - /> - <el-table-column - prop="partnumber" - label="浜у搧缂栫爜" - show-overflow-tooltip - sortable="custom" - min-width="110" - /> - <el-table-column - prop="partname" - label="浜у搧鍚嶇О" - sortable="custom" - show-overflow-tooltip - min-width="110" - /> - <el-table-column - prop="wkshp_name" - label="杞﹂棿鍚嶇О" - sortable="custom" - show-overflow-tooltip - min-width="110" - /> - <el-table-column - prop="task_qty" - label="浠诲姟鏁伴噺" - sortable="custom" - show-overflow-tooltip - min-width="110" - /> - <!-- <el-table-column--> - <!-- prop="wkshp_name"--> - <!-- label="杞﹂棿鍚嶇О"--> - <!-- show-overflow-tooltip--> - <!-- sortable="custom"--> - <!-- min-width="110"--> - <!-- />--> - <!-- <el-table-column--> - <!-- prop="eqp_name"--> - <!-- label="璁惧鍚嶇О"--> - <!-- sortable="custom"--> - <!-- show-overflow-tooltip--> - <!-- min-width="110"--> - <!-- />--> - <el-table-column - prop="stepname" - label="宸ュ簭鍚嶇О" - show-overflow-tooltip - sortable="custom" - min-width="110" - /> - <!-- <el-table-column--> - <!-- prop="step_price"--> - <!-- label="宸ュ簭鍗曚环"--> - <!-- show-overflow-tooltip--> - <!-- sortable="custom"--> - <!-- min-width="110"--> - <!-- />--> - <el-table-column - prop="steptype" - label="宸ュ簭绫诲瀷" - show-overflow-tooltip - sortable="custom" - min-width="110" - > - <template slot-scope="{row}"> - {{ row.steptype === 'Z' ? '鑷埗' : '澶栧崗' }} - </template> - </el-table-column> - <el-table-column - prop="wx_name" - label="渚涘簲鍟�" - show-overflow-tooltip - sortable="custom" - min-width="110" - > - <template slot-scope="{row}"> - {{ row.wx_name ? row.wx_name : '/' }} - </template> - </el-table-column> - <el-table-column - prop="usergroup_name" - label="鎶ュ伐鐝粍" - show-overflow-tooltip - min-width="110" - sortable="custom" - > - <template slot-scope="{row}"> - {{ row.usergroup_name ? row.usergroup_name : '/' }} - </template> - </el-table-column> - <el-table-column - prop="username" - label="鎶ュ伐浜哄憳" - show-overflow-tooltip - min-width="110" - sortable="custom" - /> - <el-table-column - prop="report_qty" - label="鍚堟牸鏁伴噺" - show-overflow-tooltip - sortable="custom" - min-width="110" - /> - <el-table-column - prop="ng_qty" - label="涓嶈壇鏁伴噺" - show-overflow-tooltip - min-width="110" - sortable="custom" - /> - <el-table-column - prop="laborbad_qty" - label="宸ュ簾鏁伴噺" - min-width="110" - show-overflow-tooltip - sortable="custom" - /> - <el-table-column - prop="materielbad_qty" - label="鏂欏簾鏁伴噺" - show-overflow-tooltip - min-width="110" - sortable="custom" - /> - <el-table-column - prop="report_date" - label="鎶ュ伐鏃堕棿" - min-width="160" - show-overflow-tooltip - sortable="custom" - /> - <el-table-column - label="鎿嶄綔" - width="100" - fixed="right" - > - <template slot-scope="{row}"> - <div class="operationClass"> - <el-button - type="text" - style="cursor: pointer;font-size: 14px" - @click="reportAdjust(row)" - >鎶ュ伐璋冩暣 - </el-button> - - </div> - </template> - </el-table-column> - </el-table> - </div> - <!--鍒嗛〉--> - <pagination - :total="total" - :page.sync="form.page" - :limit.sync="form.rows" - align="right" - layout="total,prev, pager, next,sizes,jumper" - popper-class="select_bottom" - @pagination="getMesOrderStepVerifySearch" - /> - </div> - - <el-dialog - v-el-drag-dialog - title="鎶ュ伐璋冩暣" - :visible.sync="dialogVisible" - width="1080px" - :close-on-click-modal="false" - top="15vh" - @closed="handleClose" - @close="handleClose" - > - <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px"> - <el-divider content-position="left">宸ュ崟淇℃伅</el-divider> - - <el-form-item label="宸ュ崟缂栧彿" class="dialogFormItem"> - <div style="width: 200px;"> - {{ dialogForm.wo_code }} - </div> - <!-- <el-input v-model="dialogForm.postcode" style="width: 200px" />--> - </el-form-item> - <el-form-item label="浜у搧缂栫爜" class="dialogFormItem"> - <div style="width: 200px;"> - {{ dialogForm.partnumber }} - </div> - <!-- <el-input v-model="dialogForm.postname" style="width: 200px" />--> - </el-form-item> - <el-form-item label="浜у搧鍚嶇О" class="dialogFormItem"> - <div style="width: 200px;"> - {{ dialogForm.partname }} - </div> - </el-form-item> - <el-form-item label="浜у搧瑙勬牸" class="dialogFormItem"> - <div style="width: 200px;"> - {{ dialogForm.partspec ? dialogForm.partspec : '/' }} - </div> - </el-form-item> - <el-form-item label="鐢熶骇宸ュ簭" class="dialogFormItem"> - <div style="width: 200px;"> - {{ dialogForm.step_name }} - </div> - </el-form-item> - <el-form-item label="宸ュ簭鍗曚环" class="dialogFormItem"> - <!-- <div style="width: 200px;">--> - <!-- {{ dialogForm.unprice ? dialogForm.unprice : '/' }}--> - <!-- </div>--> - <el-input - v-model="dialogForm.unprice" - oninput="value=value.replace(/[^0-9.]/g,'')" - style="width: 200px" - /> - </el-form-item> - <el-form-item v-if="dialogForm.flw_type==='Z'" label="鎶ュ伐鐝粍" class="dialogFormItem"> - <div style="width: 200px;" class="ellipsis"> - {{ dialogForm.usergroup_name ? dialogForm.usergroup_name : '/' }} - </div> - </el-form-item> - <el-form-item v-if="dialogForm.flw_type!=='Z'" label="渚涘簲鍟�" class="dialogFormItem"> - <div style="width: 200px;" class="ellipsis"> - {{ dialogForm.wx_name }} - </div> - </el-form-item> - <el-form-item label="鎶ュ伐浜哄憳" class="dialogFormItem"> - <div style="width: 200px;" class="ellipsis"> - {{ dialogForm.username }} - </div> - </el-form-item> - <el-form-item :label="dialogForm.flw_type==='Z'?'鍚堟牸鏁伴噺':'鏀舵枡鏁伴噺'" prop="report_qty" class="dialogFormItem"> - <el-input - v-model="dialogForm.report_qty" - oninput="value=value.replace(/[^0-9]/g,'')" - style="width: 200px" - /> - </el-form-item> - - <el-divider content-position="left">鎶ュ伐鎯呭喌</el-divider> - - <el-table - ref="tableDataDialogRef" - key="tableDataDialogKey" - :data="tableDataDialog" - border - row-class-name="custom-row" - height="200" - style="width: 100%;margin-top: 15px;" - highlight-current-row - :header-cell-style="this.$headerCellStyle" - :cell-style="this.$cellStyle" - > - <el-table-column - type="index" - label="搴忓彿" - align="center" - width="50" - /> - <el-table-column - prop="stepcode" - show-tooltip-when-overflow - label="缂洪櫡缂栫爜/鍚嶇О" - align="center" - min-width="400" - > - <template slot-scope="{row}"> - <el-select - v-model="row.defect_code" - style="width: 100%" - placeholder="璇烽�夋嫨" - multiple - filterable - > - <!-- collapse-tags--> - <el-option - v-for="item in defectArr" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - </template> - </el-table-column> - - <el-table-column - prop="defect_qty" - label="涓嶈壇鏁伴噺" - align="center" - > - <template slot-scope="{row}"> - <el-input - v-model="row.defect_qty" - placeholder="璇疯緭鍏ユ暟閲�" - oninput="value=value.replace(/[^0-9]/g,'')" - style="width: 100%" - /> - </template> - </el-table-column> - <el-table-column - prop="laborbad_qty" - label="宸ュ簾鏁伴噺" - align="center" - > - <template slot-scope="{row}"> - <el-input - v-model="row.laborbad_qty" - placeholder="璇疯緭鍏ユ暟閲�" - oninput="value=value.replace(/[^0-9]/g,'')" - style="width: 100%" - /> - </template> - </el-table-column> - <el-table-column - prop="materielbad_qty" - label="鏂欏簾鏁伴噺" - align="center" - > - <template slot-scope="{row}"> - <el-input - v-model="row.materielbad_qty" - placeholder="璇疯緭鍏ユ暟閲�" - oninput="value=value.replace(/[^0-9]/g,'')" - style="width: 100%" - /> - </template> - </el-table-column> - </el-table> - - </el-form> - <span slot="footer" class="dialog-footer"> - <div class="footerButton"> - <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button> - <el-button - v-waves - type="primary" - :loading="$store.state.app.buttonIsDisabled" - :disabled="$store.state.app.buttonIsDisabled" - @click="dialogVisibleConfirm" - >纭� 瀹�</el-button> - </div> - </span> - </el-dialog> - - </div> -</template> - -<script> -import Pagination from '@/components/Pagination' -import { handleDatetime } from '@/utils/global' -import elDragDialog from '@/directive/el-drag-dialog' -import waves from '@/directive/waves' -import { DefectPermissions, PrentOrganizationNoCompany } from '@/api/GeneralBasicData' -import { MesOrderStepModelSearch, MesOrderStepUpdateSeave, MesOrderStepVerifySearch } from '@/api/WorkOrder' - -export default { - name: 'ReportCorrect', - components: { - Pagination - }, - directives: { elDragDialog, waves }, - data() { - return { - mouseHoverType: 'mouseout', - isExpandForm: false, - mainHeight: 0, - tableHeight: 0, - form: { - wkshopcode: '', - wo_code: '', // 宸ュ崟缂栫爜 - partnumber: '', // 浜у搧缂栫爜 - partname: '', // 浜у搧鍚嶇О - partspec: '', // 浜у搧瑙勬牸 - reportuser: '', // 鎶ュ伐浜哄憳 - reportdate: '', // 鎶ュ伐鏃堕棿 - - prop: 'report_date', // 鎺掑簭瀛楁 - order: 'desc', // 鎺掑簭瀛楁 - page: 1, // 绗嚑椤� - rows: 20 // 姣忛〉澶氬皯鏉� - }, - total: 10, - tableData: [], - wkshopcodeArr: [], - dialogVisible: false, - dialogForm: { - 'id': '', - 'sbid': '', - 'wo_code': '', - 'partnumber': '', - partname: '', - partspec: '', - usergroup_name: '', - username: '', - 'task_qty': '', - 'wkshp_code': '', - 'eqp_code': '', - 'step_seq': '', - 'step_code': '', - 'step_name': '', - 'flw_type': '', - 'first_choke': '', - 'last_choke': '', - 'unprice': '', - 'groupcode': '', - 'usercode': '', - 'report_date': '', - 'report_qty': '', - 'report_dvalue': '', - wx_code: '', - wx_name: '', - children: [] - }, - tableDataDialog: [], - - defectArr: [], // 涓嶈壇缂洪櫡 - - dialogFormRules: { - report_qty: [ - { required: true, message: '璇疯緭鍏ュ悎鏍兼暟閲�', trigger: ['blur', 'change'] } - ] - } - - } - }, - activated() { window.addEventListener('resize', this.getHeight) this.getHeight() }, created() { - }, - mounted() { - window.addEventListener('resize', this.getHeight) - this.getHeight() - - this.getMesOrderStepVerifySearch() - this.getDefectPermissions() - this.getPrentOrganizationNoCompany() - }, - methods: { - async getPrentOrganizationNoCompany() { - const { data: res } = await PrentOrganizationNoCompany() - this.wkshopcodeArr = res - }, - async getDefectPermissions() { - const { data: res3 } = await DefectPermissions() // 缂洪櫡 - this.defectArr = res3 - }, - // 鎶ュ伐璋冩暣鍒楄〃鏌ヨ - async getMesOrderStepVerifySearch() { - let tempDate = this.form.reportdate - if (tempDate.length > 0) { - tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1]) - } - const data = { - wkshopcode: this.form.wkshopcode, - wo_code: this.form.wo_code, - partnumber: this.form.partnumber, - partname: this.form.partname, - partspec: this.form.partspec, - reportuser: this.form.reportuser, - reportdate: tempDate, - - prop: this.form.prop, // 鎺掑簭瀛楁 - order: this.form.order, // 鎺掑簭瀛楁 - page: this.form.page, // 绗嚑椤� - rows: this.form.rows // 姣忛〉澶氬皯鏉� - } - const res = await MesOrderStepVerifySearch(data) - this.tableData = res.data - this.total = res.count - }, - // 鎺掑簭鏀瑰彉鏃� - sortChange({ column, prop, order }) { - if (order === 'descending') { - order = 'desc' - } else if (order === 'ascending') { - order = 'asc' - } else { - order = 'desc' - } - this.form.order = order - this.form.prop = prop - this.getMesOrderStepVerifySearch() - }, - // 閲嶇疆 - reset() { - this.form.wkshopcode = '' - this.form.wo_code = '' - this.form.partnumber = '' - this.form.partname = '' - this.form.partspec = '' - this.form.reportuser = '' - this.form.reportdate = '' - this.getMesOrderStepVerifySearch() - }, - - // 鎶ュ伐璋冩暣 - async reportAdjust(row) { - const data = { - wo_code: row.wo_code, - step_code: row.step_code, - step_type: row.steptype, - isbott: row.first_choke, - isend: row.last_choke, - id: row.id, - sbid: row.sbid - } - const res = await MesOrderStepModelSearch(data) - if (res.code === '200') { - this.dialogForm.id = row.id - this.dialogForm.sbid = row.sbid - this.dialogForm.wo_code = row.wo_code - this.dialogForm.partnumber = row.partnumber - this.dialogForm.partname = row.partname - this.dialogForm.partspec = row.partspec - this.dialogForm.task_qty = row.task_qty - this.dialogForm.wkshp_code = row.wkshp_code - this.dialogForm.eqp_code = row.eqp_code - this.dialogForm.step_seq = row.step_seq - this.dialogForm.step_code = row.step_code - this.dialogForm.step_name = row.stepname - this.dialogForm.flw_type = row.steptype - this.dialogForm.first_choke = row.first_choke - this.dialogForm.last_choke = row.last_choke - this.dialogForm.unprice = row.step_price - this.dialogForm.groupcode = row.usergroup_code - this.dialogForm.usercode = row.usercode - this.dialogForm.usergroup_name = row.usergroup_name - this.dialogForm.username = row.username - this.dialogForm.report_date = row.report_date - this.dialogForm.report_qty = row.report_qty - this.dialogForm.report_qty2 = row.report_qty // old鍊� - - this.dialogForm.wx_code = row.wx_code - this.dialogForm.wx_name = row.wx_name - - if (res.data.length > 0) { - res.data.forEach(i => { - i.defect_code = i.defect_code.split(',') - i.defect_qty2 = i.defect_qty - i.laborbad_qty2 = i.laborbad_qty - i.materielbad_qty2 = i.materielbad_qty - }) - } - this.tableDataDialog = res.data - - this.dialogVisible = true - } - }, - // 瀵硅瘽妗嗗叧闂簨浠� - handleClose() { - this.tableDataDialog = [] - }, - // 瀵硅瘽妗嗗彇娑� - dialogVisibleCancel() { - this.dialogVisible = false - }, - // 瀵硅瘽妗嗙‘璁� - async dialogVisibleConfirm() { - this.$refs.dialogForm.validate(async valid => { - if (valid) { - const children = [] - - this.tableDataDialog.forEach(i => { - children.push({ - ng_id: i.id, - ng_sbid: i.record_id, - ng_qty: parseFloat(i.defect_qty), - ng_dvalue: parseFloat(i.defect_qty) - parseFloat(i.defect_qty2), - laborbad_qty: parseFloat(i.laborbad_qty), - laborbad_dvalue: parseFloat(i.laborbad_qty) - parseFloat(i.laborbad_qty2), - materielbad_qty: parseFloat(i.materielbad_qty), - materielbad_dvalue: parseFloat(i.materielbad_qty) - parseFloat(i.materielbad_qty2), - bad_money: 0, - badmoney_dvalue: 0 - }) - }) - const data = { - 'id': this.dialogForm.id, - 'sbid': this.dialogForm.sbid, - 'wo_code': this.dialogForm.wo_code, - 'partnumber': this.dialogForm.partnumber, - 'task_qty': this.dialogForm.task_qty, - 'wkshp_code': this.dialogForm.wkshp_code, - 'eqp_code': this.dialogForm.eqp_code, - 'step_seq': this.dialogForm.step_seq, - 'step_code': this.dialogForm.step_code, - 'flw_type': this.dialogForm.flw_type, - 'first_choke': this.dialogForm.first_choke, - 'last_choke': this.dialogForm.last_choke, - 'unprice': this.dialogForm.unprice, - 'groupcode': this.dialogForm.groupcode, - 'usercode': this.dialogForm.usercode, - wxcode: this.dialogForm.wx_code, - 'report_date': this.dialogForm.report_date, - 'report_qty': parseFloat(this.dialogForm.report_qty), - 'report_dvalue': parseFloat(this.dialogForm.report_qty) - parseFloat(this.dialogForm.report_qty2), - children - } - // console.log(JSON.stringify(data), 12) - // console.log(JSON.parse(JSON.stringify(data)), 12) - this.$store.state.app.buttonIsDisabled = true - const res = await MesOrderStepUpdateSeave([data]) - if (res.code === '200') { - this.$notify.success('璋冩暣鎴愬姛锛�') - await this.getMesOrderStepVerifySearch() - this.$store.state.app.buttonIsDisabled = false - this.dialogVisible = false - } else { - this.$store.state.app.buttonIsDisabled = false - this.$notify.error('璋冩暣澶辫触锛�') - } - } - }) - }, - // 鑾峰彇椤甸潰楂樺害 - getHeight() { - this.$nextTick(() => { - this.mainHeight = window.innerHeight - 85 - this.tableHeight = this.mainHeight - 205 - this.$refs.tableDataRef.doLayout() - }) - } - } -} -</script> - -<style scoped lang="scss"> -.dialogFormItem { - margin: 0 10px 0 0; -} - -::v-deep .el-dialog .el-divider__text { - font-weight: bolder !important; -} - -::v-deep .el-dialog .el-form-item__label { - font-weight: lighter !important; -} - -::v-deep .el-select__caret { - display: flex; - align-items: center; - justify-content: center; -} - -::v-deep .el-range__icon { - line-height: 28px !important; -} - -::v-deep .el-range-separator { - line-height: 28px !important; -} - -::v-deep .el-range-input { - font-size: 14px; -} - -::v-deep .el-range-separator { - display: flex; - justify-content: center; - align-items: center; -} - -</style> +<template> + <div> + <div class="body" :style="{height:mainHeight+'px'}"> + + <div class="bodyTopFormGroup" style="margin-top: 10px;"> + <el-form + ref="form" + :model="form" + label-width="100px" + inline + style="display: flex;" + > + <div class="elForm"> + <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;"> + <el-select + v-model="form.wkshopcode" + filterable + :popper-append-to-body="false" + style="width: 200px" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in wkshopcodeArr" + :key="item.torg_code" + :label="item.torg_name" + :value="item.torg_code" + /> + </el-select> + </el-form-item> + <el-form-item label="宸ュ崟缂栫爜" style=" display: flex;"> + <el-input v-model="form.wo_code" placeholder="璇疯緭鍏�" style="width: 200px" /> + </el-form-item> + <el-form-item label="浜у搧缂栫爜" style=" display: flex;"> + <el-input v-model="form.partnumber" placeholder="璇疯緭鍏�" style="width: 200px" /> + </el-form-item> + <el-form-item label="浜у搧鍚嶇О" style=" display: flex;"> + <el-input v-model="form.partname" placeholder="璇疯緭鍏�" style="width: 200px" /> + </el-form-item> + <el-form-item v-show="isExpandForm" label="浜у搧瑙勬牸" style=" display: flex;"> + <el-input v-model="form.partspec" placeholder="璇疯緭鍏�" style="width: 200px" /> + </el-form-item> + + <el-form-item v-show="isExpandForm" label="鎶ュ伐浜哄憳" style=" display: flex;"> + <el-input v-model="form.reportuser" placeholder="璇疯緭鍏�" style="width: 200px" /> + </el-form-item> + <el-form-item v-show="isExpandForm" label="鎶ュ伐鏃堕棿" style=" display: flex;"> + <el-date-picker + v-model="form.reportdate" + type="daterange" + range-separator="~" + class="timeMini" + size="mini" + style="width: 200px;" + :clearable="false" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + /> + </el-form-item> + </div> + <div + class="bodySearchReset" + :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}" + > + <el-button v-waves type="primary" icon="el-icon-search" @click="getMesOrderStepVerifySearch">鏌ヨ</el-button> + <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button> + </div> + </el-form> + <div + class="bodyTopFormExpand" + > + <svg-icon + v-show="mouseHoverType==='mouseout'" + style="cursor: pointer" + :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'" + @mouseenter="mouseHoverType=$event.type" + /> + <svg-icon + v-show="mouseHoverType==='mouseenter'" + style="cursor: pointer" + :icon-class="!isExpandForm?'doubleDown':'doubleUp'" + @click="isExpandForm=!isExpandForm" + @mouseout="mouseHoverType=$event.type" + /> + </div> + </div> + + <div class="elTableDiv"> + <el-table + ref="tableDataRef" + class="tableFixed" + :data="tableData" + :height="isExpandForm?tableHeight:(tableHeight+40)+'px'" + border + row-class-name="custom-row" + :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}" + highlight-current-row + :header-cell-style="this.$headerCellStyle" + :cell-style="this.$cellStyle" + @sort-change="sortChange" + > + <!-- <el-table-column--> + <!-- type="selection"--> + <!-- width="50"--> + <!-- :reserve-selection="true"--> + <!-- fixed--> + <!-- />--> + <el-table-column + prop="rowNum" + width="50" + fixed + label="搴忓彿" + /> + <el-table-column + prop="wo_code" + label="鎶ュ伐宸ュ崟" + sortable="custom" + min-width="160" + show-overflow-tooltip + /> + <el-table-column + prop="partnumber" + label="浜у搧缂栫爜" + show-overflow-tooltip + sortable="custom" + min-width="110" + /> + <el-table-column + prop="partname" + label="浜у搧鍚嶇О" + sortable="custom" + show-overflow-tooltip + min-width="110" + /> + <el-table-column + prop="wkshp_name" + label="杞﹂棿鍚嶇О" + sortable="custom" + show-overflow-tooltip + min-width="110" + /> + <el-table-column + prop="task_qty" + label="浠诲姟鏁伴噺" + sortable="custom" + show-overflow-tooltip + min-width="110" + /> + <!-- <el-table-column--> + <!-- prop="wkshp_name"--> + <!-- label="杞﹂棿鍚嶇О"--> + <!-- show-overflow-tooltip--> + <!-- sortable="custom"--> + <!-- min-width="110"--> + <!-- />--> + <!-- <el-table-column--> + <!-- prop="eqp_name"--> + <!-- label="璁惧鍚嶇О"--> + <!-- sortable="custom"--> + <!-- show-overflow-tooltip--> + <!-- min-width="110"--> + <!-- />--> + <el-table-column + prop="stepname" + label="宸ュ簭鍚嶇О" + show-overflow-tooltip + sortable="custom" + min-width="110" + /> + <!-- <el-table-column--> + <!-- prop="step_price"--> + <!-- label="宸ュ簭鍗曚环"--> + <!-- show-overflow-tooltip--> + <!-- sortable="custom"--> + <!-- min-width="110"--> + <!-- />--> + <el-table-column + prop="steptype" + label="宸ュ簭绫诲瀷" + show-overflow-tooltip + sortable="custom" + min-width="110" + > + <template slot-scope="{row}"> + {{ row.steptype === 'Z' ? '鑷埗' : '澶栧崗' }} + </template> + </el-table-column> + <el-table-column + prop="wx_name" + label="渚涘簲鍟�" + show-overflow-tooltip + sortable="custom" + min-width="110" + > + <template slot-scope="{row}"> + {{ row.wx_name ? row.wx_name : '/' }} + </template> + </el-table-column> + <el-table-column + prop="usergroup_name" + label="鎶ュ伐鐝粍" + show-overflow-tooltip + min-width="110" + sortable="custom" + > + <template slot-scope="{row}"> + {{ row.usergroup_name ? row.usergroup_name : '/' }} + </template> + </el-table-column> + <el-table-column + prop="username" + label="鎶ュ伐浜哄憳" + show-overflow-tooltip + min-width="110" + sortable="custom" + /> + <el-table-column + prop="report_qty" + label="鍚堟牸鏁伴噺" + show-overflow-tooltip + sortable="custom" + min-width="110" + /> + <el-table-column + prop="ng_qty" + label="涓嶈壇鏁伴噺" + show-overflow-tooltip + min-width="110" + sortable="custom" + /> + <el-table-column + prop="laborbad_qty" + label="宸ュ簾鏁伴噺" + min-width="110" + show-overflow-tooltip + sortable="custom" + /> + <el-table-column + prop="materielbad_qty" + label="鏂欏簾鏁伴噺" + show-overflow-tooltip + min-width="110" + sortable="custom" + /> + <el-table-column + prop="report_date" + label="鎶ュ伐鏃堕棿" + min-width="160" + show-overflow-tooltip + sortable="custom" + /> + <el-table-column + label="鎿嶄綔" + width="100" + fixed="right" + > + <template slot-scope="{row}"> + <div class="operationClass"> + <el-button + type="text" + style="cursor: pointer;font-size: 14px" + @click="reportAdjust(row)" + >鎶ュ伐璋冩暣 + </el-button> + + </div> + </template> + </el-table-column> + </el-table> + </div> + <!--鍒嗛〉--> + <pagination + :total="total" + :page.sync="form.page" + :limit.sync="form.rows" + align="right" + layout="total,prev, pager, next,sizes,jumper" + popper-class="select_bottom" + @pagination="getMesOrderStepVerifySearch" + /> + </div> + + <el-dialog + v-el-drag-dialog + title="鎶ュ伐璋冩暣" + :visible.sync="dialogVisible" + width="1080px" + :close-on-click-modal="false" + top="15vh" + @closed="handleClose" + @close="handleClose" + > + <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px"> + <el-divider content-position="left">宸ュ崟淇℃伅</el-divider> + + <el-form-item label="宸ュ崟缂栧彿" class="dialogFormItem"> + <div style="width: 200px;"> + {{ dialogForm.wo_code }} + </div> + <!-- <el-input v-model="dialogForm.postcode" style="width: 200px" />--> + </el-form-item> + <el-form-item label="浜у搧缂栫爜" class="dialogFormItem"> + <div style="width: 200px;"> + {{ dialogForm.partnumber }} + </div> + <!-- <el-input v-model="dialogForm.postname" style="width: 200px" />--> + </el-form-item> + <el-form-item label="浜у搧鍚嶇О" class="dialogFormItem"> + <div style="width: 200px;"> + {{ dialogForm.partname }} + </div> + </el-form-item> + <el-form-item label="浜у搧瑙勬牸" class="dialogFormItem"> + <div style="width: 200px;"> + {{ dialogForm.partspec ? dialogForm.partspec : '/' }} + </div> + </el-form-item> + <el-form-item label="鐢熶骇宸ュ簭" class="dialogFormItem"> + <div style="width: 200px;"> + {{ dialogForm.step_name }} + </div> + </el-form-item> + <el-form-item label="宸ュ簭鍗曚环" class="dialogFormItem"> + <!-- <div style="width: 200px;">--> + <!-- {{ dialogForm.unprice ? dialogForm.unprice : '/' }}--> + <!-- </div>--> + <el-input + v-model="dialogForm.unprice" + oninput="value=value.replace(/[^0-9.]/g,'')" + style="width: 200px" + /> + </el-form-item> + <el-form-item v-if="dialogForm.flw_type==='Z'" label="鎶ュ伐鐝粍" class="dialogFormItem"> + <div style="width: 200px;" class="ellipsis"> + {{ dialogForm.usergroup_name ? dialogForm.usergroup_name : '/' }} + </div> + </el-form-item> + <el-form-item v-if="dialogForm.flw_type!=='Z'" label="渚涘簲鍟�" class="dialogFormItem"> + <div style="width: 200px;" class="ellipsis"> + {{ dialogForm.wx_name }} + </div> + </el-form-item> + <el-form-item label="鎶ュ伐浜哄憳" class="dialogFormItem"> + <div style="width: 200px;" class="ellipsis"> + {{ dialogForm.username }} + </div> + </el-form-item> + <el-form-item :label="dialogForm.flw_type==='Z'?'鍚堟牸鏁伴噺':'鏀舵枡鏁伴噺'" prop="report_qty" class="dialogFormItem"> + <el-input + v-model="dialogForm.report_qty" + oninput="value=value.replace(/[^0-9]/g,'')" + style="width: 200px" + /> + </el-form-item> + + <el-divider content-position="left">鎶ュ伐鎯呭喌</el-divider> + + <el-table + ref="tableDataDialogRef" + key="tableDataDialogKey" + :data="tableDataDialog" + border + row-class-name="custom-row" + height="200" + style="width: 100%;margin-top: 15px;" + highlight-current-row + :header-cell-style="this.$headerCellStyle" + :cell-style="this.$cellStyle" + > + <el-table-column + type="index" + label="搴忓彿" + align="center" + width="50" + /> + <el-table-column + prop="stepcode" + show-tooltip-when-overflow + label="缂洪櫡缂栫爜/鍚嶇О" + align="center" + min-width="400" + > + <template slot-scope="{row}"> + <el-select + v-model="row.defect_code" + style="width: 100%" + placeholder="璇烽�夋嫨" + multiple + filterable + > + <!-- collapse-tags--> + <el-option + v-for="item in defectArr" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + </template> + </el-table-column> + + <el-table-column + prop="defect_qty" + label="涓嶈壇鏁伴噺" + align="center" + > + <template slot-scope="{row}"> + <el-input + v-model="row.defect_qty" + placeholder="璇疯緭鍏ユ暟閲�" + oninput="value=value.replace(/[^0-9]/g,'')" + style="width: 100%" + /> + </template> + </el-table-column> + <el-table-column + prop="laborbad_qty" + label="宸ュ簾鏁伴噺" + align="center" + > + <template slot-scope="{row}"> + <el-input + v-model="row.laborbad_qty" + placeholder="璇疯緭鍏ユ暟閲�" + oninput="value=value.replace(/[^0-9]/g,'')" + style="width: 100%" + /> + </template> + </el-table-column> + <el-table-column + prop="materielbad_qty" + label="鏂欏簾鏁伴噺" + align="center" + > + <template slot-scope="{row}"> + <el-input + v-model="row.materielbad_qty" + placeholder="璇疯緭鍏ユ暟閲�" + oninput="value=value.replace(/[^0-9]/g,'')" + style="width: 100%" + /> + </template> + </el-table-column> + </el-table> + + </el-form> + <span slot="footer" class="dialog-footer"> + <div class="footerButton"> + <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button> + <el-button + v-waves + type="primary" + :loading="$store.state.app.buttonIsDisabled" + :disabled="$store.state.app.buttonIsDisabled" + @click="dialogVisibleConfirm" + >纭� 瀹�</el-button> + </div> + </span> + </el-dialog> + + </div> +</template> + +<script> +import Pagination from '@/components/Pagination' +import { handleDatetime } from '@/utils/global' +import elDragDialog from '@/directive/el-drag-dialog' +import waves from '@/directive/waves' +import { DefectPermissions, PrentOrganizationNoCompany } from '@/api/GeneralBasicData' +import { MesOrderStepModelSearch, MesOrderStepUpdateSeave, MesOrderStepVerifySearch } from '@/api/WorkOrder' + +export default { + name: 'ReportCorrect', + components: { + Pagination + }, + directives: { elDragDialog, waves }, + data() { + return { + mouseHoverType: 'mouseout', + isExpandForm: false, + mainHeight: 0, + tableHeight: 0, + form: { + wkshopcode: '', + wo_code: '', // 宸ュ崟缂栫爜 + partnumber: '', // 浜у搧缂栫爜 + partname: '', // 浜у搧鍚嶇О + partspec: '', // 浜у搧瑙勬牸 + reportuser: '', // 鎶ュ伐浜哄憳 + reportdate: '', // 鎶ュ伐鏃堕棿 + + prop: 'report_date', // 鎺掑簭瀛楁 + order: 'desc', // 鎺掑簭瀛楁 + page: 1, // 绗嚑椤� + rows: 20 // 姣忛〉澶氬皯鏉� + }, + total: 10, + tableData: [], + wkshopcodeArr: [], + dialogVisible: false, + dialogForm: { + 'id': '', + 'sbid': '', + 'wo_code': '', + 'partnumber': '', + partname: '', + partspec: '', + usergroup_name: '', + username: '', + 'task_qty': '', + 'wkshp_code': '', + 'eqp_code': '', + 'step_seq': '', + 'step_code': '', + 'step_name': '', + 'flw_type': '', + 'first_choke': '', + 'last_choke': '', + 'unprice': '', + 'groupcode': '', + 'usercode': '', + 'report_date': '', + 'report_qty': '', + 'report_dvalue': '', + wx_code: '', + wx_name: '', + children: [] + }, + tableDataDialog: [], + + defectArr: [], // 涓嶈壇缂洪櫡 + + dialogFormRules: { + report_qty: [ + { required: true, message: '璇疯緭鍏ュ悎鏍兼暟閲�', trigger: ['blur', 'change'] } + ] + } + + } + }, + activated() { + window.addEventListener('resize', this.getHeight) + this.getHeight() + + this.getMesOrderStepVerifySearch() + this.getDefectPermissions() + this.getPrentOrganizationNoCompany() + }, + created() { + }, + mounted() { + window.addEventListener('resize', this.getHeight) + this.getHeight() + + this.getMesOrderStepVerifySearch() + this.getDefectPermissions() + this.getPrentOrganizationNoCompany() + }, + methods: { + async getPrentOrganizationNoCompany() { + const { data: res } = await PrentOrganizationNoCompany() + this.wkshopcodeArr = res + }, + async getDefectPermissions() { + const { data: res3 } = await DefectPermissions() // 缂洪櫡 + this.defectArr = res3 + }, + // 鎶ュ伐璋冩暣鍒楄〃鏌ヨ + async getMesOrderStepVerifySearch() { + let tempDate = this.form.reportdate + if (tempDate.length > 0) { + tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1]) + } + const data = { + wkshopcode: this.form.wkshopcode, + wo_code: this.form.wo_code, + partnumber: this.form.partnumber, + partname: this.form.partname, + partspec: this.form.partspec, + reportuser: this.form.reportuser, + reportdate: tempDate, + + prop: this.form.prop, // 鎺掑簭瀛楁 + order: this.form.order, // 鎺掑簭瀛楁 + page: this.form.page, // 绗嚑椤� + rows: this.form.rows // 姣忛〉澶氬皯鏉� + } + const res = await MesOrderStepVerifySearch(data) + this.tableData = res.data + this.total = res.count + }, + // 鎺掑簭鏀瑰彉鏃� + sortChange({ column, prop, order }) { + if (order === 'descending') { + order = 'desc' + } else if (order === 'ascending') { + order = 'asc' + } else { + order = 'desc' + } + this.form.order = order + this.form.prop = prop + this.getMesOrderStepVerifySearch() + }, + // 閲嶇疆 + reset() { + this.form.wkshopcode = '' + this.form.wo_code = '' + this.form.partnumber = '' + this.form.partname = '' + this.form.partspec = '' + this.form.reportuser = '' + this.form.reportdate = '' + this.getMesOrderStepVerifySearch() + }, + + // 鎶ュ伐璋冩暣 + async reportAdjust(row) { + const data = { + wo_code: row.wo_code, + step_code: row.step_code, + step_type: row.steptype, + isbott: row.first_choke, + isend: row.last_choke, + id: row.id, + sbid: row.sbid + } + const res = await MesOrderStepModelSearch(data) + if (res.code === '200') { + this.dialogForm.id = row.id + this.dialogForm.sbid = row.sbid + this.dialogForm.wo_code = row.wo_code + this.dialogForm.partnumber = row.partnumber + this.dialogForm.partname = row.partname + this.dialogForm.partspec = row.partspec + this.dialogForm.task_qty = row.task_qty + this.dialogForm.wkshp_code = row.wkshp_code + this.dialogForm.eqp_code = row.eqp_code + this.dialogForm.step_seq = row.step_seq + this.dialogForm.step_code = row.step_code + this.dialogForm.step_name = row.stepname + this.dialogForm.flw_type = row.steptype + this.dialogForm.first_choke = row.first_choke + this.dialogForm.last_choke = row.last_choke + this.dialogForm.unprice = row.step_price + this.dialogForm.groupcode = row.usergroup_code + this.dialogForm.usercode = row.usercode + this.dialogForm.usergroup_name = row.usergroup_name + this.dialogForm.username = row.username + this.dialogForm.report_date = row.report_date + this.dialogForm.report_qty = row.report_qty + this.dialogForm.report_qty2 = row.report_qty // old鍊� + + this.dialogForm.wx_code = row.wx_code + this.dialogForm.wx_name = row.wx_name + + if (res.data.length > 0) { + res.data.forEach(i => { + i.defect_code = i.defect_code.split(',') + i.defect_qty2 = i.defect_qty + i.laborbad_qty2 = i.laborbad_qty + i.materielbad_qty2 = i.materielbad_qty + }) + } + this.tableDataDialog = res.data + + this.dialogVisible = true + } + }, + // 瀵硅瘽妗嗗叧闂簨浠� + handleClose() { + this.tableDataDialog = [] + }, + // 瀵硅瘽妗嗗彇娑� + dialogVisibleCancel() { + this.dialogVisible = false + }, + // 瀵硅瘽妗嗙‘璁� + async dialogVisibleConfirm() { + this.$refs.dialogForm.validate(async valid => { + if (valid) { + const children = [] + + this.tableDataDialog.forEach(i => { + children.push({ + ng_id: i.id, + ng_sbid: i.record_id, + ng_qty: parseFloat(i.defect_qty), + ng_dvalue: parseFloat(i.defect_qty) - parseFloat(i.defect_qty2), + laborbad_qty: parseFloat(i.laborbad_qty), + laborbad_dvalue: parseFloat(i.laborbad_qty) - parseFloat(i.laborbad_qty2), + materielbad_qty: parseFloat(i.materielbad_qty), + materielbad_dvalue: parseFloat(i.materielbad_qty) - parseFloat(i.materielbad_qty2), + bad_money: 0, + badmoney_dvalue: 0 + }) + }) + const data = { + 'id': this.dialogForm.id, + 'sbid': this.dialogForm.sbid, + 'wo_code': this.dialogForm.wo_code, + 'partnumber': this.dialogForm.partnumber, + 'task_qty': this.dialogForm.task_qty, + 'wkshp_code': this.dialogForm.wkshp_code, + 'eqp_code': this.dialogForm.eqp_code, + 'step_seq': this.dialogForm.step_seq, + 'step_code': this.dialogForm.step_code, + 'flw_type': this.dialogForm.flw_type, + 'first_choke': this.dialogForm.first_choke, + 'last_choke': this.dialogForm.last_choke, + 'unprice': this.dialogForm.unprice, + 'groupcode': this.dialogForm.groupcode, + 'usercode': this.dialogForm.usercode, + wxcode: this.dialogForm.wx_code, + 'report_date': this.dialogForm.report_date, + 'report_qty': parseFloat(this.dialogForm.report_qty), + 'report_dvalue': parseFloat(this.dialogForm.report_qty) - parseFloat(this.dialogForm.report_qty2), + children + } + // console.log(JSON.stringify(data), 12) + // console.log(JSON.parse(JSON.stringify(data)), 12) + this.$store.state.app.buttonIsDisabled = true + const res = await MesOrderStepUpdateSeave([data]) + if (res.code === '200') { + this.$notify.success('璋冩暣鎴愬姛锛�') + await this.getMesOrderStepVerifySearch() + this.$store.state.app.buttonIsDisabled = false + this.dialogVisible = false + } else { + this.$store.state.app.buttonIsDisabled = false + this.$notify.error('璋冩暣澶辫触锛�') + } + } + }) + }, + // 鑾峰彇椤甸潰楂樺害 + getHeight() { + this.$nextTick(() => { + this.mainHeight = window.innerHeight - 85 + this.tableHeight = this.mainHeight - 205 + this.$refs.tableDataRef.doLayout() + }) + } + } +} +</script> + +<style scoped lang="scss"> +.dialogFormItem { + margin: 0 10px 0 0; +} + +::v-deep .el-dialog .el-divider__text { + font-weight: bolder !important; +} + +::v-deep .el-dialog .el-form-item__label { + font-weight: lighter !important; +} + +::v-deep .el-select__caret { + display: flex; + align-items: center; + justify-content: center; +} + +::v-deep .el-range__icon { + line-height: 28px !important; +} + +::v-deep .el-range-separator { + line-height: 28px !important; +} + +::v-deep .el-range-input { + font-size: 14px; +} + +::v-deep .el-range-separator { + display: flex; + justify-content: center; + align-items: center; +} + +</style> -- Gitblit v1.9.3