From ebe7bf1b9118958f6a93406305f5728bfd5d90c9 Mon Sep 17 00:00:00 2001 From: 小小儁爺 <1694218219@qq.com> Date: 星期一, 03 三月 2025 10:33:24 +0800 Subject: [PATCH] 1. 综合看板修改编码 --- src/views/workOrder/produceOrderList.vue | 2650 ++++++++++++++++++++++++++++++---------------------------- 1 files changed, 1,358 insertions(+), 1,292 deletions(-) diff --git a/src/views/workOrder/produceOrderList.vue b/src/views/workOrder/produceOrderList.vue index 6ca4d42..e0a54e9 100644 --- a/src/views/workOrder/produceOrderList.vue +++ b/src/views/workOrder/produceOrderList.vue @@ -1,1292 +1,1358 @@ -<template> - <div> - <div class="body" :style="{height:mainHeight+'px'}"> - - <div class="bodyTopButtonGroup" style="justify-content: space-between"> - <el-button - v-waves - icon="el-icon-refresh-right" - @click="syncERP" - >鍚屾ERP - </el-button> - <div style="display: flex"> - <el-button - v-waves - type="primary" - icon="el-icon-bottom" - @click="batchHandle" - >鎵归噺涓嬭揪 - </el-button> - </div> - - </div> - - <div class="bodyTopFormGroup"> - <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-select - v-model="form.erporderstus" - filterable - :popper-append-to-body="false" - style="width: 200px" - placeholder="璇烽�夋嫨" - > - <el-option - v-for="item in erporderstusArr" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - </el-form-item> - <el-form-item label="璁㈠崟缂栧彿" style=" display: flex;"> - <el-input v-model="form.erpordercode" placeholder="璇疯緭鍏�" style="width: 200px" /> - </el-form-item> - - <el-form-item label="閿�鍞鍗�" style=" display: flex;"> - <el-input v-model="form.saleordercode" style="width: 200px" placeholder="璇疯緭鍏�" /> - </el-form-item> - - <el-form-item v-show="isExpandForm" label="浜у搧缂栫爜" style=" display: flex;"> - <el-input v-model="form.partcode" style="width: 200px" placeholder="璇疯緭鍏�" /> - </el-form-item> - - <el-form-item v-show="isExpandForm" label="浜у搧鍚嶇О" style=" display: flex;"> - <el-input v-model="form.partname" style="width: 200px" placeholder="璇疯緭鍏�" /> - </el-form-item> - <el-form-item v-show="isExpandForm" label="浜у搧瑙勬牸" style=" display: flex;"> - <el-input v-model="form.partspec" style="width: 200px" placeholder="璇疯緭鍏�" /> - </el-form-item> - - <DateType - ref="DateTypeRef" - :is-expand-form="isExpandForm" - style="display:flex;justify-content: center;align-items: center;position: relative" - @DateTypeChange="DateTypeChange" - @cycleTimeChange="cycleTimeChange" - /> - - <!-- <el-form-item--> - <!-- v-show="isExpandForm"--> - <!-- label="棰勮寮�宸ユ椂闂�"--> - <!-- label-width="100px"--> - <!-- style="display: flex;font-size: 14px;align-items: center"--> - <!-- >--> - <!-- <el-date-picker--> - <!-- v-model="form.paystartdate"--> - <!-- type="datetimerange"--> - <!-- range-separator="~"--> - <!-- class="timeMini"--> - <!-- size="mini"--> - <!-- style="width: 200px;display: flex;line-height: 34px;height: 34px;"--> - <!-- :clearable="false"--> - <!-- start-placeholder="寮�濮嬫棩鏈�"--> - <!-- end-placeholder="缁撴潫鏃ユ湡"--> - <!-- :picker-options="pickerOptions"--> - <!-- value-format="yyyy-MM-dd"--> - <!-- @change="pickerChange"--> - <!-- />--> - <!-- </el-form-item>--> - - <!-- <el-form-item--> - <!-- v-show="isExpandForm"--> - <!-- label="棰勮瀹屽伐鏃堕棿"--> - <!-- label-width="100px"--> - <!-- style=" display: flex;font-size: 14px;align-items: center"--> - <!-- >--> - <!-- <el-date-picker--> - <!-- v-model="form.payenddate"--> - <!-- type="daterange"--> - <!-- :clearable="false"--> - <!-- class="timeMini"--> - <!-- range-separator="~"--> - <!-- start-placeholder="寮�濮嬫棩鏈�"--> - <!-- style="width: 200px;display: flex;line-height: 34px ;height: 34px ;"--> - <!-- end-placeholder="缁撴潫鏃ユ湡"--> - <!-- size="mini"--> - <!-- />--> - <!-- </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="search">鏌ヨ</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="tableRowClassName" - :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}" - highlight-current-row - :header-cell-style="this.$headerCellStyle" - :cell-style="this.$cellStyle" - :summary-method="getSummaries" - show-summary - @sort-change="sortChange" - @selection-change="handleSelectionChange" - > - <!-- @row-click="rowClick"--> - <el-table-column - type="selection" - width="50" - :selectable="selected" - /> - <!-- <el-table-column--> - <!-- width="50"--> - <!-- fixed--> - <!-- >--> - <!-- <template slot-scope="{row}">--> - <!-- <el-radio--> - <!-- v-model="radioSelectedId"--> - <!-- :label="row.id"--> - <!-- style="color: transparent;padding-left: 10px;"--> - <!-- />--> - <!-- <!– @change.native="getCurrentRow(row.id)"–>--> - <!-- </template>--> - <!-- </el-table-column>--> - <el-table-column - prop="rowNum" - width="50" - fixed - label="搴忓彿" - /> - <el-table-column - prop="status" - label="璁㈠崟鐘舵��" - sortable="custom" - width="110" - show-tooltip-when-overflow - > - <template slot-scope="{row}"> - <div v-if="row.status==='NEW'">鏂拌鍗�</div> - <div v-if="row.status==='CREATING'">閮ㄥ垎涓嬭揪</div> - <div v-if="row.status==='CREATED'">鍏ㄩ儴涓嬭揪</div> - <div v-if="row.status==='CLOSED'">宸插叧闂�</div> - </template> - </el-table-column> - <el-table-column - prop="wo" - label="璁㈠崟缂栧彿" - show-tooltip-when-overflow - sortable="custom" - min-width="150" - /> - <el-table-column - show-tooltip-when-overflow - prop="saleOrderCode" - label="閿�鍞鍗�" - sortable="custom" - width="150" - > - <template slot-scope="{row}"> - <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - prop="partcode" - label="浜у搧缂栫爜" - sortable="custom" - show-tooltip-when-overflow - min-width="150" - /> - <el-table-column - prop="partname" - label="浜у搧鍚嶇О" - sortable="custom" - min-width="200" - show-tooltip-when-overflow - /> - <el-table-column - prop="partspec" - label="浜у搧瑙勬牸" - sortable="custom" - show-tooltip-when-overflow - min-width="110" - > - <template slot-scope="{row}"> - <div v-if="row.partspec">{{ row.partspec }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - prop="qty" - label="璁㈠崟鏁伴噺" - width="150" - show-tooltip-when-overflow - sortable="custom" - /> - <el-table-column - prop="relse_qty" - label="宸蹭笅鍗曟暟閲�" - show-tooltip-when-overflow - width="150" - sortable="custom" - /> - <el-table-column - prop="clerkuser" - label="閿�鍞笟鍔″憳" - show-tooltip-when-overflow - width="150" - sortable="custom" - > - <template slot-scope="{row}"> - <div v-if="row.clerkuser">{{ row.clerkuser }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - prop="wkshp_name" - label="鐢熶骇杞﹂棿" - show-tooltip-when-overflow - sortable="custom" - width="150" - > - <template slot-scope="{row}"> - <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <!-- <el-table-column--> - <!-- prop="planstartdate"--> - <!-- show-tooltip-when-overflow--> - <!-- label="棰勮寮�宸ユ椂闂�"--> - <!-- sortable="custom"--> - <!-- width="130"--> - <!-- >--> - <!-- <template slot-scope="{row}">--> - <!-- <div v-if="row.planstartdate">{{ row.planstartdate.substring(0, 11) }}</div>--> - <!-- <div v-else>/</div>--> - <!-- </template>--> - <!-- </el-table-column>--> - <!-- <el-table-column--> - <!-- prop="planenddate"--> - <!-- label="棰勮瀹屽伐鏃堕棿"--> - <!-- show-tooltip-when-overflow--> - <!-- sortable="custom"--> - <!-- width="130"--> - <!-- >--> - <!-- <template slot-scope="{row}">--> - <!-- <div v-if="row.planenddate">{{ row.planenddate.substring(0, 11) }}</div>--> - <!-- <div v-else>/</div>--> - <!-- </template>--> - <!-- </el-table-column>--> - <el-table-column - prop="planenddate" - label="棰勮寮�宸ユ棩鏈�" - sortable="custom" - show-tooltip-when-overflow - width="130" - > - <template slot-scope="{row}"> - <div v-if="row.planenddate">{{ row.planenddate.substring(0, 11) }}</div> - <div v-else>/</div> - </template> - </el-table-column> - - <el-table-column - prop="planstartdate" - label="棰勮瀹屽伐鏃ユ湡" - sortable="custom" - show-tooltip-when-overflow - width="130" - > - <template slot-scope="{row}"> - <div v-if="row.planstartdate">{{ row.planstartdate.substring(0, 11) }}</div> - <div v-else>/</div> - </template> - </el-table-column> - - <el-table-column - prop="saleOrderDeliveryDate" - label="棰勮浜や粯鏃ユ湡" - sortable="custom" - show-tooltip-when-overflow - width="130" - > - <template slot-scope="{row}"> - <div v-if="row.saleOrderDeliveryDate">{{ row.saleOrderDeliveryDate.substring(0, 11) }}</div> - <div v-else>/</div> - </template> - </el-table-column> - - <el-table-column - show-tooltip-when-overflow - prop="createuser" - label="鍒涘缓浜哄憳" - sortable="custom" - width="150" - > - <template slot-scope="{row}"> - <div v-if="row.createuser">{{ row.createuser }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - prop="createdate" - label="鍒涘缓鏃堕棿" - width="130" - show-tooltip-when-overflow - sortable="custom" - > - <template slot-scope="{row}"> - <div v-if="row.createdate">{{ row.createdate.substring(0, 11) }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - label="鎿嶄綔" - fixed="right" - width="120" - > - <template slot-scope="{row}"> - <div class="operationClass"> - <el-tooltip class="item" effect="dark" content="涓嬭揪" placement="top"> - <!-- <el-button v-waves type="text" @click="edit('edit',row)">涓嬭揪</el-button>--> - <i - class="el-icon-bottom" - :style="{color:$store.state.settings.theme}" - style="cursor: pointer;margin-left: 5px" - @click="edit('edit',row)" - /> - </el-tooltip> - <el-tooltip v-del-tab-index class="item" effect="dark" content="璁㈠崟鍏抽棴" placement="top"> - <i - class="el-icon-switch-button" - :style="{color:$store.state.settings.theme}" - style="cursor: pointer;margin-left: 15px" - @click="orderClose(row.id)" - /> - </el-tooltip> - - <el-tooltip v-del-tab-index class="item" effect="dark" content="璁㈠崟鍒犻櫎" placement="top"> - <i - class="el-icon-delete" - :style="{color:$store.state.settings.theme}" - style="cursor: pointer;margin-left: 15px" - @click="orderDel(row.id)" - /> - </el-tooltip> - </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="getErpOrderSearch" - /> - </div> - - <el-dialog - v-el-drag-dialog - :title="operation==='add'?'鏂板':'涓嬭揪'" - :visible.sync="dialogVisible" - width="900px" - top="12vh" - :close-on-click-modal="false" - @closed="handleClose" - @close="handleClose" - > - <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="106px"> - <el-form-item label="璁㈠崟缂栧彿" prop="erpordercode"> - <el-input v-model="dialogForm.erpordercode" disabled style="width: 200px" /> - </el-form-item> - <el-form-item label="浜у搧缂栫爜" prop="partcode"> - <el-input v-model="dialogForm.partcode" disabled style="width: 200px" /> - </el-form-item> - <el-form-item label="浜у搧鍚嶇О" prop="partname"> - <el-input v-model="dialogForm.partname" disabled style="width: 200px" /> - </el-form-item> - - <el-form-item label="浜у搧瑙勬牸" prop="partspec"> - <el-input v-model="dialogForm.partspec" disabled style="width: 200px" /> - </el-form-item> - <el-form-item label="鐢熶骇杞﹂棿" prop="wkshopname"> - <el-input v-model="dialogForm.wkshopname" disabled style="width: 200px" /> - </el-form-item> - <el-form-item label="鎵�灞炰粨搴�" prop="warehousename"> - <el-input v-model="dialogForm.warehousename" disabled style="width: 200px" /> - </el-form-item> - <el-form-item label="璁㈠崟鏁伴噺" prop="erpqty"> - <el-input v-model="dialogForm.erpqty" disabled style="width: 200px" /> - </el-form-item> - <el-form-item label="宸蹭笅鍗曟暟" prop="relse_qty"> - <el-input - v-model="dialogForm.relse_qty" - disabled - oninput="value=value.replace(/[^0-9.]/g,'')" - style="width: 200px" - /> - </el-form-item> - <el-form-item label="涓嬪崟鏁伴噺" prop="markqty"> - <el-input - v-model="dialogForm.markqty" - oninput="value=value.replace(/[^0-9.]/g,'')" - style="width: 200px" - /> - </el-form-item> - <el-form-item label="涓嬪崟鍗曟暟" prop="ordernum"> - <el-input - v-model="dialogForm.ordernum" - oninput="value=value.replace(/[^0-9.]/g,'')" - style="width: 200px" - /> - </el-form-item> - - <el-form-item label="閿�鍞笟鍔″憳" prop=""> - <el-input - v-model="dialogForm.clerkuser" - disabled - style="width: 200px" - /> - </el-form-item> - <!-- :picker-options="pickerOptions"--> - - <el-form-item label="棰勮浜や粯鏃ユ湡" prop="saleOrderDeliveryDate"> - <el-date-picker - v-model="dialogForm.saleOrderDeliveryDate" - type="date" - size="mini" - :clearable="false" - class="dateMini" - format="yyyy-MM-dd" - style="width: 200px" - placeholder="閫夋嫨鏃ユ湡" - :disabled="dialogForm.saleOrderDeliveryDateIsDisabled" - /> - </el-form-item> - - <div style="display: flex"> - <el-form-item label="棰勮寮�宸ユ棩鏈�" prop="" style="display: flex"> - <el-date-picker - v-model="dialogForm.paystartdate" - type="date" - size="mini" - style="width: 200px" - :clearable="false" - class="dateMini" - format="yyyy-MM-dd" - value-format="yyyy-MM-dd" - placeholder="閫夋嫨鏃ユ湡" - /> - </el-form-item> - - <el-form-item label="棰勮瀹屽伐鏃ユ湡" prop="" style="display: flex"> - <el-date-picker - v-model="dialogForm.payenddate" - type="date" - size="mini" - style="width: 200px" - :clearable="false" - class="dateMini" - format="yyyy-MM-dd" - value-format="yyyy-MM-dd" - placeholder="閫夋嫨鏃ユ湡" - /> - </el-form-item> - - </div> - - </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 { - ClosedErpOrder, - DeleteErpOrder, - ErpOrderSearch, - MarkBatchSaveErpOrder, - MarkSaveErpOrder -} from '@/api/WorkOrder' -import { SeaveSearchErpOrder } from '@/api/ErpSyncMes' -import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData' -import DateType from '@/components/DateType' - -const SER_HZ = /^[\u4e00-\u9fa5]+$/ -export default { - name: 'ProduceOrderList', - components: { - Pagination, DateType - }, - directives: { elDragDialog, waves }, - data() { - const validateName = (rule, value, callback) => { - if (!value) { - return callback(new Error('璇疯緭鍏ョ紪鐮�')) - } else { - if (SER_HZ.test(value)) { - return callback(new Error('缂栫爜涓嶈兘涓轰腑鏂�')) - } else { - callback() - } - } - } - return { - mouseHoverType: 'mouseout', - isExpandForm: false, - mainHeight: 0, - tableHeight: 0, - form: { - wkshopcode: '', // 杞﹂棿缂栫爜 - erporderstus: '', // 璁㈠崟鐘舵�佺爜 - erpordercode: '', // 璁㈠崟缂栧彿 - partcode: '', // 浜у搧缂栫爜 - partname: '', // 浜у搧鍚嶇О - partspec: '', // 浜у搧瑙勬牸 - creatuser: '', // 鍒涘缓浜哄憳 - saleordercode: '', // 閿�鍞鍗� - // paystartdate: '', // 浜や粯鏃堕棿 - paystartdate: '', // 棰勮寮�宸ユ椂闂� - payenddate: '', // 棰勮瀹屽伐鏃堕棿 - createdate: '', // 鍒涘缓鏃堕棿 - - datatype: 'ED', // 鏃堕棿绫诲瀷 - timeValue: [], // 鏃堕棿鍊� - - prop: 'wo', // 鎺掑簭瀛楁 - order: 'desc', // 鎺掑簭瀛楁 - page: 1, // 绗嚑椤� - rows: 20 // 姣忛〉澶氬皯鏉� - }, - - erporderstusArr: [ - { code: 'NEW', name: '鏂拌鍗�' }, - { code: 'CREATING', name: '閮ㄥ垎涓嬭揪' }, - { code: 'CREATED', name: '鍏ㄩ儴涓嬭揪' }, - { code: 'CLOSED', name: '宸插叧闂�' } - ], - wkshopcodeArr: [], - total: 10, - radioSelectedId: '', - tableData: [], - dialogVisible: false, - dialogForm: { - erporderid: '', // 璁㈠崟id - sbid: '', // 璁㈠崟鏄庣粏id - erpordercode: '', // 璁㈠崟缂栧彿 - saleordercode: '', // 閿�鍞鍗� - - partcode: '', // 浜у搧缂栫爜 - partname: '', // 浜у搧鍚嶇О - partspec: '', // 浜у搧瑙勬牸 - - wkshopcode: '', // 杞﹂棿缂栫爜 - wkshopname: '', // 杞﹂棿鍚嶇О - - warehousecode: '', // 浠撳簱缂栫爜 - warehousename: '', // 浠撳簱鍚嶇О - - erpqty: '', // 璁㈠崟鏁伴噺 - markqty: '', // 涓嬪崟鏁伴噺 - ordernum: '', // 涓嬪崟鍗曟暟 - relse_qty: '', // 宸蹭笅鍗曟暟閲� - - clerkuser: '', // 閿�鍞笟鍔″憳 - - saleOrderDeliveryDate: '', // 棰勮浜や粯鏃ユ湡 - - paystartdate: '', // 棰勮寮�宸ユ棩鏈� - payenddate: ''// 棰勮瀹屽伐鏃ユ湡 - }, - operation: '', - dialogFormRules: { - // OrgType: [ - // { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] } - // ], - // OrgCode: [ - // { required: true, validator: validateName, trigger: ['blur', 'change'] } - // ], - markqty: [ - { required: true, message: '璇疯緭鍏ヤ笅鍗曟暟閲�', trigger: ['blur', 'change'] } - ], - ordernum: [ - { required: true, message: '璇疯緭鍏ヤ笅鍗曞崟鏁�', trigger: ['blur', 'change'] } - ], - saleOrderDeliveryDate: [ - { required: true, message: '璇烽�夋嫨棰勮浜や粯鏃ユ湡', trigger: ['blur', 'change'] } - ] - - }, - pickerOptions: { - disabledDate(time) { - return time.getTime() < Date.now() - 8.64e7 - } - }, - multipleSelection: [] - - // expireTimeOption: { - // disabledDate(time) { - // return time.getTime() > Date.now() - 8.64e6 // 濡傛灉娌℃湁鍚庨潰鐨�-8.64e6灏辨槸涓嶅彲浠ラ�夋嫨浠婂ぉ鐨� - // } - // } - - } - }, - activated() { window.addEventListener('resize', this.getHeight) this.getHeight() }, created() { - this.getErpOrderSearch() - // this.getPartSelect()// 鑾峰彇浜у搧缂栫爜淇℃伅 - - this.getPrentOrganizationNoCompany() - }, - mounted() { - window.addEventListener('resize', this.getHeight) - this.getHeight() - }, - methods: { - - DateTypeChange(value) { - this.form.datatype = value - }, - cycleTimeChange(val) { - this.form.timeValue = val - }, - - pickerChange(value) { - console.log(value, 123) - this.cycleTime = null - }, - - async getPrentOrganizationNoCompany() { - const { data: res } = await PrentOrganizationNoCompany() - this.wkshopcodeArr = res - }, - async getErpOrderSearch() { - console.log(this.form, 1) - // let tempDate2 = this.form.paystartdate - // if (tempDate2.length > 0) { - // tempDate2 = handleDatetime(tempDate2[0]) + '~' + handleDatetime(tempDate2[1]) - // } - // - // let tempDate = this.form.payenddate - // if (tempDate.length > 0) { - // tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1]) - // } - - const data = { - - erporderstus: this.form.erporderstus, // 璁㈠崟鐘舵�佺爜 - wkshopcode: this.form.wkshopcode, // 杞﹂棿缂栫爜 - erpordercode: this.form.erpordercode, // 璁㈠崟缂栧彿 - saleordercode: this.form.saleordercode, // 閿�鍞崟鍙� - - partcode: this.form.partcode, // 浜у搧缂栫爜 - partname: this.form.partname, // 浜у搧鍚嶇О - partspec: this.form.partspec, // 浜у搧瑙勬牸 - - datatype: this.form.datatype, // 鏃ユ湡绫诲瀷(璁″垝寮�宸�(PS)銆佽鍒掑畬宸�(PE)銆侀璁′氦浠�(ED)) - searchdate: this.form.timeValue.join('~'), // 鏃堕棿娈� - // paystartdate: tempDate2, // 浜や粯鏃堕棿 - // payenddate: tempDate, // 浜や粯鏃堕棿 - - creatuser: this.form.creatuser, // 鍒涘缓浜哄憳 - - prop: this.form.prop, // 鎺掑簭瀛楁 - order: this.form.order, // 鎺掑簭瀛楁 - page: this.form.page, // 绗嚑椤� - rows: this.form.rows // 姣忛〉澶氬皯鏉� - - } - - const res = await ErpOrderSearch(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.getErpOrderSearch() - }, - // 鍚屾ERP - syncERP() { - const loading = this.$loading({ - lock: true, - text: '姝e湪鍚屾ERP锛岃绋嶇瓑...', - spinner: 'el-icon-loading', - customClass: 'osloading', - background: 'rgba(0, 0, 0, 0.7)' - }) - - SeaveSearchErpOrder().then(res => { - console.log(res, 11) - if (res.code === '200') { - setTimeout(() => { - this.getErpOrderSearch() - loading.close() - this.$message.success('鍚屾鎴愬姛锛�') - }, 2000) - } - // else if (res.code === '300') { - // setTimeout(() => { - // loading.close() - // this.$message.error('鍚屾澶辫触锛�') - // }, 10000) - // } - }).catch(e => { - loading.close() - }) - }, - // 鏌ヨ - search() { - this.getErpOrderSearch() - }, - // 閲嶇疆 - reset() { - this.form.wkshopcode = '' - this.form.erporderstus = '' - this.form.erpordercode = '' - this.form.partcode = '' - this.form.partname = '' - this.form.partspec = '' - this.form.paystartdate = '' - this.form.payenddate = '' - this.form.creatuser = '' - this.form.saleordercode = '' - this.form.createdate = '' - - this.form.timeValue = [] - this.cycleTime = null - - this.$refs.DateTypeRef.clearValue() - - this.getErpOrderSearch() - }, - // 鍗曢�夋閫変腑鑾峰彇褰撳墠琛屼俊鎭� - // getCurrentRow(id) { - // this.radioSelectedId = id - // }, - // rowClick(row) { - // this.radioSelectedId = row.id - // }, - - // 璁㈠崟鍒犻櫎 - orderDel(id) { - this.tableData.forEach(item => { - if (item.id === id) { - if (item.status === 'CLOSED') { - return this.$message.info('姝よ鍗曞凡鍏抽棴锛屾棤娉曞垹闄わ紒') - } else { - this.$confirm('鏄惁纭鍏抽棴璁㈠崟?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - DeleteErpOrder({ erpordercode: item.wo, erporderid: id }).then(res => { - if (res.code === '200') { - this.$message.success('璁㈠崟鍒犻櫎鎴愬姛!') - this.getErpOrderSearch() - } - }) - }).catch(() => { - this.$message.info('宸插彇娑堝垹闄わ紒') - }) - } - } - }) - }, - // 璁㈠崟鍏抽棴 - async orderClose(id) { - this.tableData.forEach(item => { - if (item.id === id) { - if (item.status !== 'NEW') { - return this.$message.info('姝よ鍗曢潪鏂拌鍗曪紝鏃犳硶鍏抽棴锛�') - } else { - this.$confirm('鏄惁纭鍏抽棴璁㈠崟?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - ClosedErpOrder({ erpordercode: item.wo, erporderid: id }).then(res => { - if (res.code === '200') { - this.$message.success('璁㈠崟鍏抽棴鎴愬姛!') - this.getErpOrderSearch() - } - }) - }).catch(() => { - this.$message.info('宸插彇娑堝叧闂紒') - }) - } - } - }) - }, - batchHandle() { - this.$confirm('鏄惁鎵归噺涓嬭揪?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - if (this.multipleSelection.length === 0) { - return this.$message.info('璇峰厛閫夋嫨璁㈠崟锛�') - } - // console.log(JSON.parse(JSON.stringify(this.multipleSelection))) - const data = [] - this.multipleSelection.forEach(i => { - data.push({ - 'erporderid': i.id, - 'sbid': i.sbid, - 'erpordercode': i.wo, - 'partcode': i.partcode, - 'wkshopcode': i.wkshp_code, - 'warehousecode': i.stck_code, - 'erpqty': i.qty, - 'markqty': i.qty, - 'ordernum': 1, - 'clerkuser': i.clerkuser, - 'relse_qty': i.qty, - 'saleordercode': i.saleOrderCode, - // 'saleOrderDeliveryDate': i.saleOrderDeliveryDate - 'saleOrderDeliveryDate': handleDatetime(new Date()) + ' 00:00:00', - - 'paystartdate': i.planstartdate, - 'payenddate': i.planenddate - }) - }) - // console.log(JSON.parse(JSON.stringify(data))) - MarkBatchSaveErpOrder(data).then(res => { - if (res.code === '200') { - this.multipleSelection = [] - this.$message.success('鎵归噺涓嬭揪鎴愬姛锛�') - this.getErpOrderSearch() - } else { - this.$message.error('鎵归噺涓嬭揪澶辫触锛�') - } - }) - }).catch(() => { - this.$message.info('宸插彇娑堜笅杈撅紒') - }) - }, - selected(row, index) { - return row.status === 'NEW' - }, - handleSelectionChange(val) { - this.multipleSelection = val - }, - // 鏂板鎸夐挳 - add(operation) { - this.operation = operation - this.dialogVisible = true - }, - // 淇敼鎸夐挳 - edit(operation, row) { - if (parseFloat(row.qty) === parseFloat(row.relse_qty) || row.status === 'CLOSED') { - return this.$message.info('姝ゅ伐鍗曞凡鍏ㄩ儴涓嬭揪锛�') - } - - this.operation = operation - this.dialogVisible = true - - this.$nextTick(() => { - this.dialogForm.sbid = row.sbid - this.dialogForm.erporderid = row.id - this.dialogForm.erpordercode = row.wo - this.dialogForm.saleordercode = row.saleOrderCode - - this.dialogForm.partcode = row.partcode - this.dialogForm.partname = row.partname - this.dialogForm.partspec = row.partspec - - this.dialogForm.wkshopcode = row.wkshp_code - this.dialogForm.wkshopname = row.wkshp_name - - this.dialogForm.warehousecode = row.stck_code - this.dialogForm.warehousename = row.stck_name - - this.dialogForm.saleOrderDeliveryDate = row.saleOrderDeliveryDate - - this.dialogForm.erpqty = row.qty - this.dialogForm.markqty = parseFloat(row.qty) - parseFloat(row.relse_qty) - this.dialogForm.ordernum = 1 - this.dialogForm.relse_qty = row.relse_qty - this.dialogForm.clerkuser = row.clerkuser - - this.dialogForm.paystartdate = row.planstartdate - this.dialogForm.payenddate = row.planenddate - }) - }, - // 瀵硅瘽妗嗗叧闂簨浠� - handleClose() { - this.dialogForm = { - erporderid: '', // 璁㈠崟id - sbid: '', // 璁㈠崟鏄庣粏id - erpordercode: '', // 璁㈠崟缂栧彿 - saleordercode: '', // 閿�鍞鍗� - - partcode: '', // 浜у搧缂栫爜 - partname: '', // 浜у搧鍚嶇О - partspec: '', // 浜у搧瑙勬牸 - - wkshopcode: '', // 杞﹂棿缂栫爜 - wkshopname: '', // 杞﹂棿鍚嶇О - - warehousecode: '', // 浠撳簱缂栫爜 - warehousename: '', // 浠撳簱鍚嶇О - - erpqty: '', // 璁㈠崟鏁伴噺 - markqty: '', // 涓嬪崟鏁伴噺 - ordernum: '', // 涓嬪崟鍗曟暟 - relse_qty: '', // 宸蹭笅鍗曟暟閲� - - payenddate: '', // 棰勮瀹屽伐鏃ユ湡 - paystartdate: '', // 棰勮寮�宸ユ棩鏈� - - saleOrderDeliveryDate: '' // 棰勮浜や粯鏃ユ湡 - } - this.$refs.dialogForm.clearValidate() - }, - // 瀵硅瘽妗嗗彇娑� - dialogVisibleCancel() { - this.dialogVisible = false - }, - // 瀵硅瘽妗嗙‘璁� - dialogVisibleConfirm() { - this.dialogForm.markqty = parseFloat(this.dialogForm.markqty) - this.dialogForm.erpqty = parseFloat(this.dialogForm.erpqty) - this.dialogForm.relse_qty = parseFloat(this.dialogForm.relse_qty) - this.dialogForm.ordernum = parseFloat(this.dialogForm.ordernum) - if (this.dialogForm.markqty < 1 || this.dialogForm.markqty > this.dialogForm.erpqty - this.dialogForm.relse_qty) { - return this.$message.info('涓嬪崟鏁伴噺瓒呭嚭鍙笅鍗曟暟鐨勮寖鍥达紒') - } - - if (this.dialogForm.ordernum < 1 || this.dialogForm.ordernum > this.dialogForm.markqty) { - return this.$message.info('涓嬪崟鍗曟暟瓒呭嚭鍙笅鍗曞崟鏁扮殑鑼冨洿锛�') - } - - this.$refs.dialogForm.validate(valid => { - if (valid) { - this.$store.state.app.buttonIsDisabled = true - const data = { - 'sbid': this.dialogForm.sbid, - 'erporderid': this.dialogForm.erporderid, - 'erpordercode': this.dialogForm.erpordercode, - 'saleordercode': this.dialogForm.saleordercode, - 'partcode': this.dialogForm.partcode, - 'wkshopcode': this.dialogForm.wkshopcode, - 'warehousecode': this.dialogForm.warehousecode, - 'clerkuser': this.dialogForm.clerkuser, - 'erpqty': this.dialogForm.erpqty, - 'markqty': this.dialogForm.markqty, - 'ordernum': this.dialogForm.ordernum, - 'payenddate': this.dialogForm.payenddate, - 'paystartdate': this.dialogForm.paystartdate, - 'relse_qty': this.dialogForm.relse_qty, - 'saleOrderDeliveryDate': handleDatetime(this.dialogForm.saleOrderDeliveryDate) + ' 00:00:00' - } - - MarkSaveErpOrder(data).then(res => { - if (res.code === '200') { - this.dialogVisible = false - this.$message.success('涓嬭揪鎴愬姛锛�') - this.getErpOrderSearch() - this.$store.state.app.buttonIsDisabled = false - } else { - this.$message.error('涓嬭揪澶辫触锛�') - } - }) - } - }) - }, - // 鑾峰彇椤甸潰楂樺害 - getHeight() { - this.$nextTick(() => { - this.mainHeight = window.innerHeight - 85 - this.tableHeight = this.mainHeight - 250 - - this.$refs.tableDataRef.doLayout() - }) - }, - tableRowClassName({ row, rowIndex }) { - return 'custom-row' - }, - getSummaries(param) { - const { columns, data } = param - const sums = [] - const i = 7 - columns.forEach((column, index) => { - if (index === i) { - sums[index] = '鎬绘暟' - return - } - const values = data.map(item => Number(item[column.property])) - if (column.property === 'qty') { - sums[index] = values.reduce((prev, curr) => { - const value = Number(curr) - if (!isNaN(value)) { - return prev + curr - // return Math.round(prev * 100) / 100 + Math.round(curr * 100) / 100 - } - }, 0) - - sums[index] += ' 鍗�' - } - if (column.property === 'relse_qty') { - sums[index] = values.reduce((prev, curr) => { - const value = Number(curr) - if (!isNaN(value)) { - return prev + curr - // return Math.round(prev * 100) / 100 + Math.round(curr * 100) / 100 - } - }, 0) - - sums[index] += ' 鍗�' - } - }) - - this.$nextTick(() => { - this.$refs.tableDataRef.doLayout() - }) - return sums - } - } -} -</script> - -<!--鍏叡椤甸潰鏍峰紡--> -<style lang="scss" scoped> -$main_color: #42b983; - -::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; -} - -.el-icon-share, .el-icon-delete, .el-icon-edit-outline { - color: $main_color; - cursor: pointer; -} - -.el-icon-edit-outline { - margin-right: 15px; -} - -//::v-deep .el-button--primary, .el-button--default, .el-button--info { -// height: 34px; -// display: flex; -// align-items: center; -// padding: 0 15px; -//} - -::v-deep .el-button--primary { - //background-color: $main_color !important; -} - -::v-deep .el-button--default { - background-color: #f8f8fa; - border: none; -} - -::v-deep .el-input__inner { - height: 34px; - line-height: 34px; - //color: #a7a7a7; -} - -::v-deep .el-dialog__body { - padding: 20px 100px !important; -} - -::v-deep .dialogVisibleRoles .el-dialog__body { - padding: 20px 20px !important; -} - -::v-deep .importPickerClass .el-dialog__body { - padding: 20px 20px !important; -} - -::v-deep .el-dialog__footer { - display: flex; - justify-content: flex-end; -} - -::v-deep .el-table .caret-wrapper { - transform: scale(0.8); -} - -::v-deep .cell { - display: flex; - align-items: center; - justify-content: space-between; -} - -::v-deep .el-table::before { - height: 0; -} - -::v-deep .el-table__body-wrapper { - background-color: #f8f8fa; -} - -::v-deep .el-table__body .el-table__row.hover-row td { - background-color: #eaecef; -} - -::v-deep .el-form--inline .el-form-item__label { - color: #a7a7a7; -} - -.body ::v-deep .el-divider { - border: 1px solid #eee; - width: 99%; - margin: 10px auto; -} - -.body ::v-deep .el-form-item { - margin-bottom: 0; -} - -.userDialogVisible ::v-deep .el-form-item { - margin-bottom: 0; -} - -.elTableDiv { - ::v-deep .el-radio__label { - display: none; - } -} - -.tableFixed { - ::v-deep .el-table__fixed-right { - height: 100% !important; - } - - ::v-deep .el-table__fixed { - height: 100% !important; - } -} - -.dateMini { - ::v-deep .el-input__inner { - line-height: 34px; - height: 34px; - width: 200px; - display: flex; - font-size: 14px !important; - align-items: center !important; - } - - ::v-deep .el-input__prefix { - margin-top: -3px; - } -} - -::v-deep .el-icon-delete { - cursor: pointer; - margin-right: 0px !important; -} -</style> -<style> -.el-table .custom-row { - background: #f8f8fa; -} - -.osloading { - font-size: 26px !important; -} - -.el-loading-text { - font-size: 26px !important; -} - -.el-picker-panel__footer { - display: flex !important; - justify-content: flex-end !important; -} - -</style> - +<template> + <div> + <div class="body" :style="{height:mainHeight+'px'}"> + + <div class="bodyTopButtonGroup" style="justify-content: space-between"> + <el-button + v-waves + icon="el-icon-refresh-right" + @click="syncERP" + >鍚屾ERP + </el-button> + <div style="display: flex"> + <el-button + v-waves + type="primary" + icon="el-icon-bottom" + @click="batchHandle" + >鎵归噺涓嬭揪 + </el-button> + </div> + + </div> + + <div class="bodyTopFormGroup"> + <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-select + v-model="form.erporderstus" + filterable + :popper-append-to-body="false" + style="width: 200px" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in erporderstusArr" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + </el-form-item> + <el-form-item label="璁㈠崟缂栧彿" style=" display: flex;"> + <el-input v-model="form.erpordercode" placeholder="璇疯緭鍏�" style="width: 200px" /> + </el-form-item> + + <el-form-item label="閿�鍞鍗�" style=" display: flex;"> + <el-input v-model="form.saleordercode" style="width: 200px" placeholder="璇疯緭鍏�" /> + </el-form-item> + + <el-form-item v-show="isExpandForm" label="浜у搧缂栫爜" style=" display: flex;"> + <el-input v-model="form.partcode" style="width: 200px" placeholder="璇疯緭鍏�" /> + </el-form-item> + + <el-form-item v-show="isExpandForm" label="浜у搧鍚嶇О" style=" display: flex;"> + <el-input v-model="form.partname" style="width: 200px" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item v-show="isExpandForm" label="浜у搧瑙勬牸" style=" display: flex;"> + <el-input v-model="form.partspec" style="width: 200px" placeholder="璇疯緭鍏�" /> + </el-form-item> + + <DateType + ref="DateTypeRef" + :is-expand-form="isExpandForm" + style="display:flex;justify-content: center;align-items: center;position: relative" + @DateTypeChange="DateTypeChange" + @cycleTimeChange="cycleTimeChange" + /> + + <!-- <el-form-item--> + <!-- v-show="isExpandForm"--> + <!-- label="棰勮寮�宸ユ椂闂�"--> + <!-- label-width="100px"--> + <!-- style="display: flex;font-size: 14px;align-items: center"--> + <!-- >--> + <!-- <el-date-picker--> + <!-- v-model="form.paystartdate"--> + <!-- type="datetimerange"--> + <!-- range-separator="~"--> + <!-- class="timeMini"--> + <!-- size="mini"--> + <!-- style="width: 200px;display: flex;line-height: 34px;height: 34px;"--> + <!-- :clearable="false"--> + <!-- start-placeholder="寮�濮嬫棩鏈�"--> + <!-- end-placeholder="缁撴潫鏃ユ湡"--> + <!-- :picker-options="pickerOptions"--> + <!-- value-format="yyyy-MM-dd"--> + <!-- @change="pickerChange"--> + <!-- />--> + <!-- </el-form-item>--> + + <!-- <el-form-item--> + <!-- v-show="isExpandForm"--> + <!-- label="棰勮瀹屽伐鏃堕棿"--> + <!-- label-width="100px"--> + <!-- style=" display: flex;font-size: 14px;align-items: center"--> + <!-- >--> + <!-- <el-date-picker--> + <!-- v-model="form.payenddate"--> + <!-- type="daterange"--> + <!-- :clearable="false"--> + <!-- class="timeMini"--> + <!-- range-separator="~"--> + <!-- start-placeholder="寮�濮嬫棩鏈�"--> + <!-- style="width: 200px;display: flex;line-height: 34px ;height: 34px ;"--> + <!-- end-placeholder="缁撴潫鏃ユ湡"--> + <!-- size="mini"--> + <!-- />--> + <!-- </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="search">鏌ヨ</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="tableRowClassName" + :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}" + highlight-current-row + :header-cell-style="this.$headerCellStyle" + :cell-style="this.$cellStyle" + :summary-method="getSummaries" + show-summary + @sort-change="sortChange" + @selection-change="handleSelectionChange" + > + <!-- @row-click="rowClick"--> + <el-table-column + type="selection" + width="50" + :selectable="selected" + /> + <!-- <el-table-column--> + <!-- width="50"--> + <!-- fixed--> + <!-- >--> + <!-- <template slot-scope="{row}">--> + <!-- <el-radio--> + <!-- v-model="radioSelectedId"--> + <!-- :label="row.id"--> + <!-- style="color: transparent;padding-left: 10px;"--> + <!-- />--> + <!-- <!– @change.native="getCurrentRow(row.id)"–>--> + <!-- </template>--> + <!-- </el-table-column>--> + <el-table-column + prop="rowNum" + width="50" + fixed + label="搴忓彿" + /> + <el-table-column + prop="status" + label="璁㈠崟鐘舵��" + sortable="custom" + width="110" + show-tooltip-when-overflow + > + <template slot-scope="{row}"> + <div v-if="row.status==='NEW'">鏂拌鍗�</div> + <div v-if="row.status==='CREATING'">閮ㄥ垎涓嬭揪</div> + <div v-if="row.status==='CREATED'">鍏ㄩ儴涓嬭揪</div> + <div v-if="row.status==='CLOSED'">宸插叧闂�</div> + </template> + </el-table-column> + <el-table-column + prop="wo" + label="璁㈠崟缂栧彿" + show-tooltip-when-overflow + sortable="custom" + min-width="150" + /> + <el-table-column + show-tooltip-when-overflow + prop="saleOrderCode" + label="閿�鍞鍗�" + sortable="custom" + width="150" + > + <template slot-scope="{row}"> + <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + prop="partcode" + label="浜у搧缂栫爜" + sortable="custom" + show-tooltip-when-overflow + min-width="150" + /> + <el-table-column + prop="partname" + label="浜у搧鍚嶇О" + sortable="custom" + min-width="200" + show-tooltip-when-overflow + /> + <el-table-column + prop="partspec" + label="浜у搧瑙勬牸" + sortable="custom" + show-tooltip-when-overflow + min-width="110" + > + <template slot-scope="{row}"> + <div v-if="row.partspec">{{ row.partspec }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + prop="qty" + label="璁㈠崟鏁伴噺" + width="150" + show-tooltip-when-overflow + sortable="custom" + /> + <el-table-column + prop="relse_qty" + label="宸蹭笅鍗曟暟閲�" + show-tooltip-when-overflow + width="150" + sortable="custom" + /> + <el-table-column + prop="priuserdefnvc1" + label="瀹㈡埛鍚嶇О" + width="110" + sortable="custom" + > + <template slot-scope="{row}"> + {{ row.priuserdefnvc1 ? row.priuserdefnvc1 : '/' }} + </template> + </el-table-column> + <el-table-column + prop="priuserdefnvc6" + label="瀹㈡埛缂栫爜" + width="110" + sortable="custom" + > + <template slot-scope="{row}"> + {{ row.priuserdefnvc6 ? row.priuserdefnvc6 : '/' }} + </template> + </el-table-column> + <el-table-column + prop="priuserdefnvc2" + label="瀵瑰唴鍚嶇О" + width="110" + sortable="custom" + > + <template slot-scope="{row}"> + {{ row.priuserdefnvc2 ? row.priuserdefnvc2 : '/' }} + </template> + </el-table-column> + <el-table-column + prop="priuserdefnvc3" + label="CTP鏃ユ湡" + width="110" + sortable="custom" + > + <template slot-scope="{row}"> + {{ row.priuserdefnvc3 ? row.priuserdefnvc3 : '/' }} + </template> + </el-table-column> + <el-table-column + prop="priuserdefnvc4" + label="閽㈠垁缂栧彿" + width="110" + sortable="custom" + > + <template slot-scope="{row}"> + {{ row.priuserdefnvc4 ? row.priuserdefnvc4 : '/' }} + </template> + </el-table-column> + <el-table-column + prop="priuserdefnvc5" + label="鐩掑瀷" + width="110" + sortable="custom" + > + <template slot-scope="{row}"> + {{ row.priuserdefnvc5 ? row.priuserdefnvc5 : '/' }} + </template> + </el-table-column> + <el-table-column + prop="clerkuser" + label="閿�鍞笟鍔″憳" + show-tooltip-when-overflow + width="150" + sortable="custom" + > + <template slot-scope="{row}"> + <div v-if="row.clerkuser">{{ row.clerkuser }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + prop="wkshp_name" + label="鐢熶骇杞﹂棿" + show-tooltip-when-overflow + sortable="custom" + width="150" + > + <template slot-scope="{row}"> + <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <!-- <el-table-column--> + <!-- prop="planstartdate"--> + <!-- show-tooltip-when-overflow--> + <!-- label="棰勮寮�宸ユ椂闂�"--> + <!-- sortable="custom"--> + <!-- width="130"--> + <!-- >--> + <!-- <template slot-scope="{row}">--> + <!-- <div v-if="row.planstartdate">{{ row.planstartdate.substring(0, 11) }}</div>--> + <!-- <div v-else>/</div>--> + <!-- </template>--> + <!-- </el-table-column>--> + <!-- <el-table-column--> + <!-- prop="planenddate"--> + <!-- label="棰勮瀹屽伐鏃堕棿"--> + <!-- show-tooltip-when-overflow--> + <!-- sortable="custom"--> + <!-- width="130"--> + <!-- >--> + <!-- <template slot-scope="{row}">--> + <!-- <div v-if="row.planenddate">{{ row.planenddate.substring(0, 11) }}</div>--> + <!-- <div v-else>/</div>--> + <!-- </template>--> + <!-- </el-table-column>--> + <el-table-column + prop="planenddate" + label="棰勮寮�宸ユ棩鏈�" + sortable="custom" + show-tooltip-when-overflow + width="130" + > + <template slot-scope="{row}"> + <div v-if="row.planenddate">{{ row.planenddate.substring(0, 11) }}</div> + <div v-else>/</div> + </template> + </el-table-column> + + <el-table-column + prop="planstartdate" + label="棰勮瀹屽伐鏃ユ湡" + sortable="custom" + show-tooltip-when-overflow + width="130" + > + <template slot-scope="{row}"> + <div v-if="row.planstartdate">{{ row.planstartdate.substring(0, 11) }}</div> + <div v-else>/</div> + </template> + </el-table-column> + + <el-table-column + prop="saleOrderDeliveryDate" + label="棰勮浜や粯鏃ユ湡" + sortable="custom" + show-tooltip-when-overflow + width="130" + > + <template slot-scope="{row}"> + <div v-if="row.saleOrderDeliveryDate">{{ row.saleOrderDeliveryDate.substring(0, 11) }}</div> + <div v-else>/</div> + </template> + </el-table-column> + + <el-table-column + show-tooltip-when-overflow + prop="createuser" + label="鍒涘缓浜哄憳" + sortable="custom" + width="150" + > + <template slot-scope="{row}"> + <div v-if="row.createuser">{{ row.createuser }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + prop="createdate" + label="鍒涘缓鏃堕棿" + width="130" + show-tooltip-when-overflow + sortable="custom" + > + <template slot-scope="{row}"> + <div v-if="row.createdate">{{ row.createdate.substring(0, 11) }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + label="鎿嶄綔" + fixed="right" + width="120" + > + <template slot-scope="{row}"> + <div class="operationClass"> + <el-tooltip class="item" effect="dark" content="涓嬭揪" placement="top"> + <!-- <el-button v-waves type="text" @click="edit('edit',row)">涓嬭揪</el-button>--> + <i + class="el-icon-bottom" + :style="{color:$store.state.settings.theme}" + style="cursor: pointer;margin-left: 5px" + @click="edit('edit',row)" + /> + </el-tooltip> + <el-tooltip v-del-tab-index class="item" effect="dark" content="璁㈠崟鍏抽棴" placement="top"> + <i + class="el-icon-switch-button" + :style="{color:$store.state.settings.theme}" + style="cursor: pointer;margin-left: 15px" + @click="orderClose(row.id)" + /> + </el-tooltip> + + <el-tooltip v-del-tab-index class="item" effect="dark" content="璁㈠崟鍒犻櫎" placement="top"> + <i + class="el-icon-delete" + :style="{color:$store.state.settings.theme}" + style="cursor: pointer;margin-left: 15px" + @click="orderDel(row.id)" + /> + </el-tooltip> + </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="getErpOrderSearch" + /> + </div> + + <el-dialog + v-el-drag-dialog + :title="operation==='add'?'鏂板':'涓嬭揪'" + :visible.sync="dialogVisible" + width="900px" + top="12vh" + :close-on-click-modal="false" + @closed="handleClose" + @close="handleClose" + > + <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="106px"> + <el-form-item label="璁㈠崟缂栧彿" prop="erpordercode"> + <el-input v-model="dialogForm.erpordercode" disabled style="width: 200px" /> + </el-form-item> + <el-form-item label="浜у搧缂栫爜" prop="partcode"> + <el-input v-model="dialogForm.partcode" disabled style="width: 200px" /> + </el-form-item> + <el-form-item label="浜у搧鍚嶇О" prop="partname"> + <el-input v-model="dialogForm.partname" disabled style="width: 200px" /> + </el-form-item> + + <el-form-item label="浜у搧瑙勬牸" prop="partspec"> + <el-input v-model="dialogForm.partspec" disabled style="width: 200px" /> + </el-form-item> + <el-form-item label="鐢熶骇杞﹂棿" prop="wkshopname"> + <el-input v-model="dialogForm.wkshopname" disabled style="width: 200px" /> + </el-form-item> + <el-form-item label="鎵�灞炰粨搴�" prop="warehousename"> + <el-input v-model="dialogForm.warehousename" disabled style="width: 200px" /> + </el-form-item> + <el-form-item label="璁㈠崟鏁伴噺" prop="erpqty"> + <el-input v-model="dialogForm.erpqty" disabled style="width: 200px" /> + </el-form-item> + <el-form-item label="宸蹭笅鍗曟暟" prop="relse_qty"> + <el-input + v-model="dialogForm.relse_qty" + disabled + oninput="value=value.replace(/[^0-9.]/g,'')" + style="width: 200px" + /> + </el-form-item> + <el-form-item label="涓嬪崟鏁伴噺" prop="markqty"> + <el-input + v-model="dialogForm.markqty" + oninput="value=value.replace(/[^0-9.]/g,'')" + style="width: 200px" + /> + </el-form-item> + <el-form-item label="涓嬪崟鍗曟暟" prop="ordernum"> + <el-input + v-model="dialogForm.ordernum" + oninput="value=value.replace(/[^0-9.]/g,'')" + style="width: 200px" + /> + </el-form-item> + + <el-form-item label="閿�鍞笟鍔″憳" prop=""> + <el-input + v-model="dialogForm.clerkuser" + disabled + style="width: 200px" + /> + </el-form-item> + <!-- :picker-options="pickerOptions"--> + + <el-form-item label="棰勮浜や粯鏃ユ湡" prop="saleOrderDeliveryDate"> + <el-date-picker + v-model="dialogForm.saleOrderDeliveryDate" + type="date" + size="mini" + :clearable="false" + class="dateMini" + format="yyyy-MM-dd" + style="width: 200px" + placeholder="閫夋嫨鏃ユ湡" + :disabled="dialogForm.saleOrderDeliveryDateIsDisabled" + /> + </el-form-item> + + <div style="display: flex"> + <el-form-item label="棰勮寮�宸ユ棩鏈�" prop="" style="display: flex"> + <el-date-picker + v-model="dialogForm.paystartdate" + type="date" + size="mini" + style="width: 200px" + :clearable="false" + class="dateMini" + format="yyyy-MM-dd" + value-format="yyyy-MM-dd" + placeholder="閫夋嫨鏃ユ湡" + /> + </el-form-item> + + <el-form-item label="棰勮瀹屽伐鏃ユ湡" prop="" style="display: flex"> + <el-date-picker + v-model="dialogForm.payenddate" + type="date" + size="mini" + style="width: 200px" + :clearable="false" + class="dateMini" + format="yyyy-MM-dd" + value-format="yyyy-MM-dd" + placeholder="閫夋嫨鏃ユ湡" + /> + </el-form-item> + + </div> + + </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 { + ClosedErpOrder, + DeleteErpOrder, + ErpOrderSearch, + MarkBatchSaveErpOrder, + MarkSaveErpOrder +} from '@/api/WorkOrder' +import { SeaveSearchErpOrder } from '@/api/ErpSyncMes' +import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData' +import DateType from '@/components/DateType' + +const SER_HZ = /^[\u4e00-\u9fa5]+$/ +export default { + name: 'ProduceOrderList', + components: { + Pagination, DateType + }, + directives: { elDragDialog, waves }, + data() { + const validateName = (rule, value, callback) => { + if (!value) { + return callback(new Error('璇疯緭鍏ョ紪鐮�')) + } else { + if (SER_HZ.test(value)) { + return callback(new Error('缂栫爜涓嶈兘涓轰腑鏂�')) + } else { + callback() + } + } + } + return { + mouseHoverType: 'mouseout', + isExpandForm: false, + mainHeight: 0, + tableHeight: 0, + form: { + wkshopcode: '', // 杞﹂棿缂栫爜 + erporderstus: '', // 璁㈠崟鐘舵�佺爜 + erpordercode: '', // 璁㈠崟缂栧彿 + partcode: '', // 浜у搧缂栫爜 + partname: '', // 浜у搧鍚嶇О + partspec: '', // 浜у搧瑙勬牸 + creatuser: '', // 鍒涘缓浜哄憳 + saleordercode: '', // 閿�鍞鍗� + // paystartdate: '', // 浜や粯鏃堕棿 + paystartdate: '', // 棰勮寮�宸ユ椂闂� + payenddate: '', // 棰勮瀹屽伐鏃堕棿 + createdate: '', // 鍒涘缓鏃堕棿 + + datatype: 'ED', // 鏃堕棿绫诲瀷 + timeValue: [], // 鏃堕棿鍊� + + prop: 'wo', // 鎺掑簭瀛楁 + order: 'desc', // 鎺掑簭瀛楁 + page: 1, // 绗嚑椤� + rows: 20 // 姣忛〉澶氬皯鏉� + }, + + erporderstusArr: [ + { code: 'NEW', name: '鏂拌鍗�' }, + { code: 'CREATING', name: '閮ㄥ垎涓嬭揪' }, + { code: 'CREATED', name: '鍏ㄩ儴涓嬭揪' }, + { code: 'CLOSED', name: '宸插叧闂�' } + ], + wkshopcodeArr: [], + total: 10, + radioSelectedId: '', + tableData: [], + dialogVisible: false, + dialogForm: { + erporderid: '', // 璁㈠崟id + sbid: '', // 璁㈠崟鏄庣粏id + erpordercode: '', // 璁㈠崟缂栧彿 + saleordercode: '', // 閿�鍞鍗� + + partcode: '', // 浜у搧缂栫爜 + partname: '', // 浜у搧鍚嶇О + partspec: '', // 浜у搧瑙勬牸 + + wkshopcode: '', // 杞﹂棿缂栫爜 + wkshopname: '', // 杞﹂棿鍚嶇О + + warehousecode: '', // 浠撳簱缂栫爜 + warehousename: '', // 浠撳簱鍚嶇О + + erpqty: '', // 璁㈠崟鏁伴噺 + markqty: '', // 涓嬪崟鏁伴噺 + ordernum: '', // 涓嬪崟鍗曟暟 + relse_qty: '', // 宸蹭笅鍗曟暟閲� + + clerkuser: '', // 閿�鍞笟鍔″憳 + + saleOrderDeliveryDate: '', // 棰勮浜や粯鏃ユ湡 + + paystartdate: '', // 棰勮寮�宸ユ棩鏈� + payenddate: ''// 棰勮瀹屽伐鏃ユ湡 + }, + operation: '', + dialogFormRules: { + // OrgType: [ + // { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] } + // ], + // OrgCode: [ + // { required: true, validator: validateName, trigger: ['blur', 'change'] } + // ], + markqty: [ + { required: true, message: '璇疯緭鍏ヤ笅鍗曟暟閲�', trigger: ['blur', 'change'] } + ], + ordernum: [ + { required: true, message: '璇疯緭鍏ヤ笅鍗曞崟鏁�', trigger: ['blur', 'change'] } + ], + saleOrderDeliveryDate: [ + { required: true, message: '璇烽�夋嫨棰勮浜や粯鏃ユ湡', trigger: ['blur', 'change'] } + ] + + }, + pickerOptions: { + disabledDate(time) { + return time.getTime() < Date.now() - 8.64e7 + } + }, + multipleSelection: [] + + // expireTimeOption: { + // disabledDate(time) { + // return time.getTime() > Date.now() - 8.64e6 // 濡傛灉娌℃湁鍚庨潰鐨�-8.64e6灏辨槸涓嶅彲浠ラ�夋嫨浠婂ぉ鐨� + // } + // } + + } + }, + activated() { + window.addEventListener('resize', this.getHeight) + this.getHeight() + this.getErpOrderSearch() + this.getPrentOrganizationNoCompany() + }, + created() { + this.getErpOrderSearch() + // this.getPartSelect()// 鑾峰彇浜у搧缂栫爜淇℃伅 + + this.getPrentOrganizationNoCompany() + }, + mounted() { + window.addEventListener('resize', this.getHeight) + this.getHeight() + }, + methods: { + + DateTypeChange(value) { + this.form.datatype = value + }, + cycleTimeChange(val) { + this.form.timeValue = val + }, + + pickerChange(value) { + console.log(value, 123) + this.cycleTime = null + }, + + async getPrentOrganizationNoCompany() { + const { data: res } = await PrentOrganizationNoCompany() + this.wkshopcodeArr = res + }, + async getErpOrderSearch() { + console.log(this.form, 1) + // let tempDate2 = this.form.paystartdate + // if (tempDate2.length > 0) { + // tempDate2 = handleDatetime(tempDate2[0]) + '~' + handleDatetime(tempDate2[1]) + // } + // + // let tempDate = this.form.payenddate + // if (tempDate.length > 0) { + // tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1]) + // } + + const data = { + + erporderstus: this.form.erporderstus, // 璁㈠崟鐘舵�佺爜 + wkshopcode: this.form.wkshopcode, // 杞﹂棿缂栫爜 + erpordercode: this.form.erpordercode, // 璁㈠崟缂栧彿 + saleordercode: this.form.saleordercode, // 閿�鍞崟鍙� + + partcode: this.form.partcode, // 浜у搧缂栫爜 + partname: this.form.partname, // 浜у搧鍚嶇О + partspec: this.form.partspec, // 浜у搧瑙勬牸 + + datatype: this.form.datatype, // 鏃ユ湡绫诲瀷(璁″垝寮�宸�(PS)銆佽鍒掑畬宸�(PE)銆侀璁′氦浠�(ED)) + searchdate: this.form.timeValue.join('~'), // 鏃堕棿娈� + // paystartdate: tempDate2, // 浜や粯鏃堕棿 + // payenddate: tempDate, // 浜や粯鏃堕棿 + + creatuser: this.form.creatuser, // 鍒涘缓浜哄憳 + + prop: this.form.prop, // 鎺掑簭瀛楁 + order: this.form.order, // 鎺掑簭瀛楁 + page: this.form.page, // 绗嚑椤� + rows: this.form.rows // 姣忛〉澶氬皯鏉� + + } + + const res = await ErpOrderSearch(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.getErpOrderSearch() + }, + // 鍚屾ERP + syncERP() { + const loading = this.$loading({ + lock: true, + text: '姝e湪鍚屾ERP锛岃绋嶇瓑...', + spinner: 'el-icon-loading', + customClass: 'osloading', + background: 'rgba(0, 0, 0, 0.7)' + }) + + SeaveSearchErpOrder().then(res => { + console.log(res, 11) + if (res.code === '200') { + setTimeout(() => { + this.getErpOrderSearch() + loading.close() + this.$message.success('鍚屾鎴愬姛锛�') + }, 2000) + } + // else if (res.code === '300') { + // setTimeout(() => { + // loading.close() + // this.$message.error('鍚屾澶辫触锛�') + // }, 10000) + // } + }).catch(e => { + loading.close() + }) + }, + // 鏌ヨ + search() { + this.getErpOrderSearch() + }, + // 閲嶇疆 + reset() { + this.form.wkshopcode = '' + this.form.erporderstus = '' + this.form.erpordercode = '' + this.form.partcode = '' + this.form.partname = '' + this.form.partspec = '' + this.form.paystartdate = '' + this.form.payenddate = '' + this.form.creatuser = '' + this.form.saleordercode = '' + this.form.createdate = '' + + this.form.timeValue = [] + this.cycleTime = null + + this.$refs.DateTypeRef.clearValue() + + this.getErpOrderSearch() + }, + // 鍗曢�夋閫変腑鑾峰彇褰撳墠琛屼俊鎭� + // getCurrentRow(id) { + // this.radioSelectedId = id + // }, + // rowClick(row) { + // this.radioSelectedId = row.id + // }, + + // 璁㈠崟鍒犻櫎 + orderDel(id) { + this.tableData.forEach(item => { + if (item.id === id) { + if (item.status === 'CLOSED') { + return this.$message.info('姝よ鍗曞凡鍏抽棴锛屾棤娉曞垹闄わ紒') + } else { + this.$confirm('鏄惁纭鍏抽棴璁㈠崟?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + DeleteErpOrder({ erpordercode: item.wo, erporderid: id }).then(res => { + if (res.code === '200') { + this.$message.success('璁㈠崟鍒犻櫎鎴愬姛!') + this.getErpOrderSearch() + } + }) + }).catch(() => { + this.$message.info('宸插彇娑堝垹闄わ紒') + }) + } + } + }) + }, + // 璁㈠崟鍏抽棴 + async orderClose(id) { + this.tableData.forEach(item => { + if (item.id === id) { + if (item.status !== 'NEW') { + return this.$message.info('姝よ鍗曢潪鏂拌鍗曪紝鏃犳硶鍏抽棴锛�') + } else { + this.$confirm('鏄惁纭鍏抽棴璁㈠崟?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + ClosedErpOrder({ erpordercode: item.wo, erporderid: id }).then(res => { + if (res.code === '200') { + this.$message.success('璁㈠崟鍏抽棴鎴愬姛!') + this.getErpOrderSearch() + } + }) + }).catch(() => { + this.$message.info('宸插彇娑堝叧闂紒') + }) + } + } + }) + }, + batchHandle() { + this.$confirm('鏄惁鎵归噺涓嬭揪?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + if (this.multipleSelection.length === 0) { + return this.$message.info('璇峰厛閫夋嫨璁㈠崟锛�') + } + // console.log(JSON.parse(JSON.stringify(this.multipleSelection))) + const data = [] + this.multipleSelection.forEach(i => { + data.push({ + 'erporderid': i.id, + 'sbid': i.sbid, + 'erpordercode': i.wo, + 'partcode': i.partcode, + 'wkshopcode': i.wkshp_code, + 'warehousecode': i.stck_code, + 'erpqty': i.qty, + 'markqty': i.qty, + 'ordernum': 1, + 'clerkuser': i.clerkuser, + 'relse_qty': i.qty, + 'saleordercode': i.saleOrderCode, + // 'saleOrderDeliveryDate': i.saleOrderDeliveryDate + 'saleOrderDeliveryDate': handleDatetime(new Date()) + ' 00:00:00', + + 'paystartdate': i.planstartdate, + 'payenddate': i.planenddate + }) + }) + // console.log(JSON.parse(JSON.stringify(data))) + MarkBatchSaveErpOrder(data).then(res => { + if (res.code === '200') { + this.multipleSelection = [] + this.$message.success('鎵归噺涓嬭揪鎴愬姛锛�') + this.getErpOrderSearch() + } else { + this.$message.error('鎵归噺涓嬭揪澶辫触锛�') + } + }) + }).catch(() => { + this.$message.info('宸插彇娑堜笅杈撅紒') + }) + }, + selected(row, index) { + return row.status === 'NEW' + }, + handleSelectionChange(val) { + this.multipleSelection = val + }, + // 鏂板鎸夐挳 + add(operation) { + this.operation = operation + this.dialogVisible = true + }, + // 淇敼鎸夐挳 + edit(operation, row) { + if (parseFloat(row.qty) === parseFloat(row.relse_qty) || row.status === 'CLOSED') { + return this.$message.info('姝ゅ伐鍗曞凡鍏ㄩ儴涓嬭揪锛�') + } + + this.operation = operation + this.dialogVisible = true + + this.$nextTick(() => { + this.dialogForm.sbid = row.sbid + this.dialogForm.erporderid = row.id + this.dialogForm.erpordercode = row.wo + this.dialogForm.saleordercode = row.saleOrderCode + + this.dialogForm.partcode = row.partcode + this.dialogForm.partname = row.partname + this.dialogForm.partspec = row.partspec + + this.dialogForm.wkshopcode = row.wkshp_code + this.dialogForm.wkshopname = row.wkshp_name + + this.dialogForm.warehousecode = row.stck_code + this.dialogForm.warehousename = row.stck_name + + this.dialogForm.saleOrderDeliveryDate = row.saleOrderDeliveryDate + + this.dialogForm.erpqty = row.qty + this.dialogForm.markqty = parseFloat(row.qty) - parseFloat(row.relse_qty) + this.dialogForm.ordernum = 1 + this.dialogForm.relse_qty = row.relse_qty + this.dialogForm.clerkuser = row.clerkuser + + this.dialogForm.paystartdate = row.planstartdate + this.dialogForm.payenddate = row.planenddate + }) + }, + // 瀵硅瘽妗嗗叧闂簨浠� + handleClose() { + this.dialogForm = { + erporderid: '', // 璁㈠崟id + sbid: '', // 璁㈠崟鏄庣粏id + erpordercode: '', // 璁㈠崟缂栧彿 + saleordercode: '', // 閿�鍞鍗� + + partcode: '', // 浜у搧缂栫爜 + partname: '', // 浜у搧鍚嶇О + partspec: '', // 浜у搧瑙勬牸 + + wkshopcode: '', // 杞﹂棿缂栫爜 + wkshopname: '', // 杞﹂棿鍚嶇О + + warehousecode: '', // 浠撳簱缂栫爜 + warehousename: '', // 浠撳簱鍚嶇О + + erpqty: '', // 璁㈠崟鏁伴噺 + markqty: '', // 涓嬪崟鏁伴噺 + ordernum: '', // 涓嬪崟鍗曟暟 + relse_qty: '', // 宸蹭笅鍗曟暟閲� + + payenddate: '', // 棰勮瀹屽伐鏃ユ湡 + paystartdate: '', // 棰勮寮�宸ユ棩鏈� + + saleOrderDeliveryDate: '' // 棰勮浜や粯鏃ユ湡 + } + this.$refs.dialogForm.clearValidate() + }, + // 瀵硅瘽妗嗗彇娑� + dialogVisibleCancel() { + this.dialogVisible = false + }, + // 瀵硅瘽妗嗙‘璁� + dialogVisibleConfirm() { + this.dialogForm.markqty = parseFloat(this.dialogForm.markqty) + this.dialogForm.erpqty = parseFloat(this.dialogForm.erpqty) + this.dialogForm.relse_qty = parseFloat(this.dialogForm.relse_qty) + this.dialogForm.ordernum = parseFloat(this.dialogForm.ordernum) + if (this.dialogForm.markqty < 1 || this.dialogForm.markqty > this.dialogForm.erpqty - this.dialogForm.relse_qty) { + return this.$message.info('涓嬪崟鏁伴噺瓒呭嚭鍙笅鍗曟暟鐨勮寖鍥达紒') + } + + if (this.dialogForm.ordernum < 1 || this.dialogForm.ordernum > this.dialogForm.markqty) { + return this.$message.info('涓嬪崟鍗曟暟瓒呭嚭鍙笅鍗曞崟鏁扮殑鑼冨洿锛�') + } + + this.$refs.dialogForm.validate(valid => { + if (valid) { + this.$store.state.app.buttonIsDisabled = true + const data = { + 'sbid': this.dialogForm.sbid, + 'erporderid': this.dialogForm.erporderid, + 'erpordercode': this.dialogForm.erpordercode, + 'saleordercode': this.dialogForm.saleordercode, + 'partcode': this.dialogForm.partcode, + 'wkshopcode': this.dialogForm.wkshopcode, + 'warehousecode': this.dialogForm.warehousecode, + 'clerkuser': this.dialogForm.clerkuser, + 'erpqty': this.dialogForm.erpqty, + 'markqty': this.dialogForm.markqty, + 'ordernum': this.dialogForm.ordernum, + 'payenddate': this.dialogForm.payenddate, + 'paystartdate': this.dialogForm.paystartdate, + 'relse_qty': this.dialogForm.relse_qty, + 'saleOrderDeliveryDate': handleDatetime(this.dialogForm.saleOrderDeliveryDate) + ' 00:00:00' + } + + MarkSaveErpOrder(data).then(res => { + if (res.code === '200') { + this.dialogVisible = false + this.$message.success('涓嬭揪鎴愬姛锛�') + this.getErpOrderSearch() + this.$store.state.app.buttonIsDisabled = false + } else { + this.$message.error('涓嬭揪澶辫触锛�') + } + }) + } + }) + }, + // 鑾峰彇椤甸潰楂樺害 + getHeight() { + this.$nextTick(() => { + this.mainHeight = window.innerHeight - 85 + this.tableHeight = this.mainHeight - 250 + + this.$refs.tableDataRef.doLayout() + }) + }, + tableRowClassName({ row, rowIndex }) { + return 'custom-row' + }, + getSummaries(param) { + const { columns, data } = param + const sums = [] + const i = 7 + columns.forEach((column, index) => { + if (index === i) { + sums[index] = '鎬绘暟' + return + } + const values = data.map(item => Number(item[column.property])) + if (column.property === 'qty') { + sums[index] = values.reduce((prev, curr) => { + const value = Number(curr) + if (!isNaN(value)) { + return prev + curr + // return Math.round(prev * 100) / 100 + Math.round(curr * 100) / 100 + } + }, 0) + + sums[index] += ' 鍗�' + } + if (column.property === 'relse_qty') { + sums[index] = values.reduce((prev, curr) => { + const value = Number(curr) + if (!isNaN(value)) { + return prev + curr + // return Math.round(prev * 100) / 100 + Math.round(curr * 100) / 100 + } + }, 0) + + sums[index] += ' 鍗�' + } + }) + + this.$nextTick(() => { + this.$refs.tableDataRef.doLayout() + }) + return sums + } + } +} +</script> + +<!--鍏叡椤甸潰鏍峰紡--> +<style lang="scss" scoped> +$main_color: #42b983; + +::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; +} + +.el-icon-share, .el-icon-delete, .el-icon-edit-outline { + color: $main_color; + cursor: pointer; +} + +.el-icon-edit-outline { + margin-right: 15px; +} + +//::v-deep .el-button--primary, .el-button--default, .el-button--info { +// height: 34px; +// display: flex; +// align-items: center; +// padding: 0 15px; +//} + +::v-deep .el-button--primary { + //background-color: $main_color !important; +} + +::v-deep .el-button--default { + background-color: #f8f8fa; + border: none; +} + +::v-deep .el-input__inner { + height: 34px; + line-height: 34px; + //color: #a7a7a7; +} + +::v-deep .el-dialog__body { + padding: 20px 100px !important; +} + +::v-deep .dialogVisibleRoles .el-dialog__body { + padding: 20px 20px !important; +} + +::v-deep .importPickerClass .el-dialog__body { + padding: 20px 20px !important; +} + +::v-deep .el-dialog__footer { + display: flex; + justify-content: flex-end; +} + +::v-deep .el-table .caret-wrapper { + transform: scale(0.8); +} + +::v-deep .cell { + display: flex; + align-items: center; + justify-content: space-between; +} + +::v-deep .el-table::before { + height: 0; +} + +::v-deep .el-table__body-wrapper { + background-color: #f8f8fa; +} + +::v-deep .el-table__body .el-table__row.hover-row td { + background-color: #eaecef; +} + +::v-deep .el-form--inline .el-form-item__label { + color: #a7a7a7; +} + +.body ::v-deep .el-divider { + border: 1px solid #eee; + width: 99%; + margin: 10px auto; +} + +.body ::v-deep .el-form-item { + margin-bottom: 0; +} + +.userDialogVisible ::v-deep .el-form-item { + margin-bottom: 0; +} + +.elTableDiv { + ::v-deep .el-radio__label { + display: none; + } +} + +.tableFixed { + ::v-deep .el-table__fixed-right { + height: 100% !important; + } + + ::v-deep .el-table__fixed { + height: 100% !important; + } +} + +.dateMini { + ::v-deep .el-input__inner { + line-height: 34px; + height: 34px; + width: 200px; + display: flex; + font-size: 14px !important; + align-items: center !important; + } + + ::v-deep .el-input__prefix { + margin-top: -3px; + } +} + +::v-deep .el-icon-delete { + cursor: pointer; + margin-right: 0px !important; +} +</style> +<style> +.el-table .custom-row { + background: #f8f8fa; +} + +.osloading { + font-size: 26px !important; +} + +.el-loading-text { + font-size: 26px !important; +} + +.el-picker-panel__footer { + display: flex !important; + justify-content: flex-end !important; +} + +</style> + -- Gitblit v1.9.3