From 6675c7c9342d115b4f4ac6a043ab8cdd36c9dd3a Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期二, 14 十一月 2023 16:14:17 +0800 Subject: [PATCH] modified: src/views/plan/customerorder/confirm-pull-customerorder.vue modified: src/views/plan/customerorder/index.vue modified: src/views/plan/customerorder/other-customer-order-line.vue modified: src/views/plan/customerorder/sample-customerorder-form.vue --- src/views/plan/customerorder/other-customer-order-line.vue | 4 src/views/plan/customerorder/confirm-pull-customerorder.vue | 2 src/views/plan/customerorder/index.vue | 84 ++++++---- src/views/plan/customerorder/sample-customerorder-form.vue | 362 +++++++++++++++++++++++++++++++++++--------- 4 files changed, 337 insertions(+), 115 deletions(-) diff --git a/src/views/plan/customerorder/confirm-pull-customerorder.vue b/src/views/plan/customerorder/confirm-pull-customerorder.vue index 2f3c9ae..063efb7 100644 --- a/src/views/plan/customerorder/confirm-pull-customerorder.vue +++ b/src/views/plan/customerorder/confirm-pull-customerorder.vue @@ -53,7 +53,7 @@ if (this.dataForm.selectTime != null && this.dataForm.selectTime != '') { otcCustomerOrderSync({ selectTime: this.dataForm.selectTime, - pathCode: '0' + orderNo: '' }) .then((response) => { const resData = response.data diff --git a/src/views/plan/customerorder/index.vue b/src/views/plan/customerorder/index.vue index 2adf766..9c4423c 100644 --- a/src/views/plan/customerorder/index.vue +++ b/src/views/plan/customerorder/index.vue @@ -250,18 +250,18 @@ </el-dialog> </basic-container> - <el-dialog title="閫夋嫨鍚屾鏃ユ湡" :visible.sync="syncDateVisible" width="30%"> + <el-dialog title="閫夋嫨鍚屾鏃ユ湡" :visible.sync="syncDateVisible" width="20%"> <div style="display: flex;justify-content: center"> - <el-date-picker - v-model="syncDate" - type="daterange" - value-format="yyyy-MM-dd" - range-separator="鑷�" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" - :picker-options="pickerOptions" - > - </el-date-picker> + <el-form :model="dataForm" :inline="true" :rules="dataRule" ref="dataForm" class="l-mes"> + <el-form-item label="鏃ユ湡" prop="selectTime"> + <el-date-picker + v-model="dataForm.selectTime" + type="datetime" + placeholder="閫夋嫨鏃ユ湡鏃堕棿" + value-format="yyyy-MM-dd HH:mm:ss"> + </el-date-picker> + </el-form-item> + </el-form> </div> <span slot="footer" class="dialog-footer"> <el-button @click="syncDateVisible = false">鍙� 娑�</el-button> @@ -283,6 +283,7 @@ import MpsRequirements from './mps-requirements' import SalesPartBatchDialog from './sales-part-batch.vue' import CustomerorderReturnDialog from './customerorder-return.vue' +import { otcCustomerOrderSync } from '@/api/plan/customerorder' import { delCustomerOrder, fetchListCustomerOrder, @@ -310,6 +311,14 @@ export default { data() { return { + dataForm: { + selectTime: null, + exportTime: null + }, + dataRule: { + exportTime:[{required:true,message:'瀵煎嚭鏃ユ湡涓嶈兘涓虹┖',trigger:'change'}], + selectTime:[{required:true,message:'鏃ユ湡涓嶈兘涓虹┖',trigger:'change'}] + }, pickerOptions: { onPick: ({ maxDate, minDate }) => { if (minDate && this.pickerMinDate) { @@ -819,7 +828,7 @@ this.table.toolbar.push({ text: '鑾峰彇閿�鍞鍗�', type: 'primary', - fun: this.pullCustomerOrder, + fun: this.syncERP, disabled: false, permitArr: [] }) @@ -1534,28 +1543,37 @@ this.syncDateVisible = false this.table.toolbar.find((e) => e.text === '鑾峰彇閿�鍞鍗�').loading = true - syncOrder({ - startTime: this.syncDate[0], - endTime: this.syncDate[1] - }) - .then((res) => { - this.table.toolbar.find( - (e) => e.text === '鑾峰彇閿�鍞鍗�' - ).loading = false - const resData = res.data - if (resData.code === 0) { - this.$message.success(resData.data) - this.getData() - } else { - this.$message.error('鍚屾澶辫触') - } + if (this.dataForm.selectTime != null && this.dataForm.selectTime != '') { + otcCustomerOrderSync({ + selectTime: this.dataForm.selectTime, + orderNo: '' }) - .catch((e) => { - this.table.toolbar.find( - (e) => e.text === '鑾峰彇閿�鍞鍗�' - ).loading = false - this.$forceUpdate() - }) + .then((response) => { + this.table.toolbar.find( + (e) => e.text === '鑾峰彇閿�鍞鍗�' + ).loading = false + const resData = response.data + if (resData.code === 0) { + this.$message.success('鑾峰彇閿�鍞鍗曟垚鍔燂紱' + resData.msg) + this.dataForm.selectTime = null + this.$emit('refreshDataList') + this.getData() + } else { + this.$message.success('鎷夊彇閿�鍞鍗曞け璐�') + } + }) + .catch((e) => { + this.table.toolbar.find( + (e) => e.text === '鑾峰彇閿�鍞鍗�' + ).loading = false + this.$forceUpdate() + }) + } else { + this.table.toolbar.find( + (e) => e.text === '鑾峰彇閿�鍞鍗�' + ).loading = false + this.$message.error('璇峰厛閫夋嫨鏃ユ湡') + } } } } diff --git a/src/views/plan/customerorder/other-customer-order-line.vue b/src/views/plan/customerorder/other-customer-order-line.vue index 2663c3a..0af2b9d 100644 --- a/src/views/plan/customerorder/other-customer-order-line.vue +++ b/src/views/plan/customerorder/other-customer-order-line.vue @@ -111,8 +111,8 @@ } }, customerOrderId: { - type: Number, - default: 0 + type: String, + default: '' }, otherCustomerOrderLineList: { type: Array, diff --git a/src/views/plan/customerorder/sample-customerorder-form.vue b/src/views/plan/customerorder/sample-customerorder-form.vue index 85f9d64..6c11ee7 100644 --- a/src/views/plan/customerorder/sample-customerorder-form.vue +++ b/src/views/plan/customerorder/sample-customerorder-form.vue @@ -1,7 +1,7 @@ <template> <el-dialog width="75%" - top="10vh" + top="5vh" :fullscreen="isFullScreen" :close-on-click-modal="false" :visible.sync="visible" @@ -51,30 +51,40 @@ <el-input v-model="dataForm.entityName" placeholder=""></el-input> </el-form-item> </el-col> - <el-col :span="6"> + <!-- <el-col :span="6"> <el-form-item label="浜嬩笟閮�" prop="salesDepartment"> <el-input v-model="dataForm.salesDepartment" placeholder="" ></el-input> </el-form-item> - </el-col> - </el-row> - <el-row> + </el-col> --> <el-col :span="6"> <el-form-item label="鐪佷唤" prop="province"> <el-input v-model="dataForm.province" placeholder=""></el-input> </el-form-item> </el-col> + </el-row> + <el-row> <el-col :span="6"> <el-form-item label="涓氬姟鍛�" prop="salesMan"> - <el-input v-model="dataForm.salesMan" placeholder=""></el-input> + <el-select @change="selsctionSales" v-model="salesSelectData" style="width:100%"> + <el-option v-for="(item,index) in staffOptions" :key="index" :value="item" :label="item.staffName"/> + </el-select> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="姝f湰鐘舵��" prop="originalContractStatus"> <el-input v-model="dataForm.originalContractStatus" + placeholder="" + ></el-input> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="鍚堝悓姝f湰鐘舵��" prop="returnStatus"> + <el-input + v-model="dataForm.returnStatus" placeholder="" ></el-input> </el-form-item> @@ -89,14 +99,6 @@ <el-col :span="6"> <el-form-item label="瀹㈡埛缂栫爜" prop="customerNo"> <el-input v-model="dataForm.customerNo" placeholder=""></el-input> - </el-form-item> - </el-col> - <el-col :span="6"> - <el-form-item label="鍚堝悓姝f湰鐘舵��" prop="returnStatus"> - <el-input - v-model="dataForm.returnStatus" - placeholder="" - ></el-input> </el-form-item> </el-col> <el-col :span="6"> @@ -121,6 +123,30 @@ </el-date-picker> </el-form-item> </el-col> + <el-col :span="6"> + <el-form-item label="浜よ揣鏃ユ湡" prop="deliveryDate"> + <el-date-picker + v-model="dataForm.deliveryDate" + style="width: 100%" + type="datetime" + value-format="yyyy-MM-dd HH:mm:ss" + > + </el-date-picker> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="璁㈠崟澶囨敞" prop="comment"> + <el-input + v-model="dataForm.comment" + style="width: 100%" + type="textarea" + :rows="2" + > + </el-input> + </el-form-item> + </el-col> </el-row> </el-form> </div> @@ -128,7 +154,7 @@ <el-divider> <span style="font-weight:bold;font-size:16px;">璁㈠崟琛�</span> </el-divider> - <div class="l-mes normal-form"> + <div> <avue-crud ref="crud" show-hide="false" :option="option" @@ -147,12 +173,198 @@ :value="item.value" /> </el-select> </template> - <template slot="menu" slot-scope="scope"> - <el-button :disabled="tableData.length<2" @click="delRow(scope.row,scope.$index)" - icon="el-icon-circle-close" type="text" size="small">鍙栨秷</el-button> - </template> </avue-crud> </div> + <!-- <div class="l-mes normal-form"> + <el-row :gutter="20"> + <el-col :span="2"> + <span>闆朵欢鍙�</span> + </el-col> + <el-col :span="6"> + <el-input + v-model="dataForm.customerOrder.partNo" + placeholder="" + readonly + > + <el-button + slot="append" + icon="el-icon-search" + @click="openPartDialog()" + ></el-button> + </el-input> + </el-col> + <el-col :span="2"> + <span>鍗曚綅</span> + </el-col> + <el-col :span="6"> + <el-select + v-model="dataForm.customerOrder.unit" + placeholder="" + style="width: 100%" + > + <el-option + v-for="item in units" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-col> + <el-col :span="2"> + <span>鏁伴噺</span> + </el-col> + <el-col :span="6"> + <el-input + v-model="dataForm.customerOrder.buyQtyDue" + placeholder="" + ></el-input> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="2"> + <span>鐢靛帇绛夌骇</span> + </el-col> + <el-col :span="6"> + <el-input + v-model="dataForm.customerOrder.voltAgeClass" + placeholder="" + ></el-input> + </el-col> + <el-col :span="2"> + <span>浜у搧鍚嶇О</span> + </el-col> + <el-col :span="6"> + <el-input + v-model="dataForm.customerOrder.productName" + placeholder="" + ></el-input> + </el-col> + <el-col :span="2"> + <span>鍒堕�犲睘鎬�</span> + </el-col> + <el-col :span="6"> + <el-select + v-model="dataForm.customerOrder.manufactureAttr" + placeholder="" + style="width: 100%" + disabled + > + <el-option + v-for="item in manufactureAttrs" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="2"> + <span>澶栨姢棰滆壊</span> + </el-col> + <el-col :span="6"> + <el-input + v-model="dataForm.customerOrder.outerColor" + placeholder="" + ></el-input> + </el-col> + <el-col :span="2"> + <span>闆朵欢瑙勬牸</span> + </el-col> + <el-col :span="6"> + <el-input + v-model="dataForm.customerOrder.customerPartSpec" + placeholder="" + ></el-input> + </el-col> + <el-col :span="2"> + <span>鍖呰瑕佹眰</span> + </el-col> + <el-col :span="6"> + <el-input + v-model="dataForm.customerOrder.packageRequire" + placeholder="" + ></el-input> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="2"> + <span>璐ㄩ噺瑕佹眰</span> + </el-col> + <el-col :span="6"> + <el-input + v-model="dataForm.customerOrder.qualityRequire" + placeholder="" + ></el-input> + </el-col> + <el-col :span="2"> + <span>鐢熶骇闇�姹傝鏄�</span> + </el-col> + <el-col :span="6"> + <el-input + v-model="dataForm.customerOrder.otherProductRequire" + placeholder="" + ></el-input> + </el-col> + <el-col :span="2"> + <span>绯荤粺</span> + </el-col> + <el-col :span="6"> + <el-input + v-model="dataForm.customerOrder.divisionSystem" + placeholder="" + ></el-input> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="2"> + <span>鏀惰揣鍦板潃</span> + </el-col> + <el-col :span="6"> + <el-input + v-model="dataForm.customerOrder.shippingAddress" + placeholder="" + ></el-input> + </el-col> + <el-col :span="2"> + <span>涓氬姟鍛�</span> + </el-col> + <el-col :span="6"> + <el-select v-model="dataForm.customerOrder.salesmanName" style="width:100%"> + <el-option v-for="(item,index) in staffOptions" :key="index" :value="item.staff_no" :label="item.staffName"/> + </el-select> + </el-col> + <el-col :span="2"> + <span>鐩橀暱瑕佹眰</span> + </el-col> + <el-col :span="6"> + <el-input + v-model="dataForm.customerOrder.lengthRequirement" + placeholder="" + ></el-input> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="2"> + <span>澶囨敞</span> + </el-col> + <el-col :span="6"> + <el-input + v-model="dataForm.customerOrder.remark" + placeholder="" + ></el-input> + </el-col> + <el-col :span="2"> + <span>浜у搧绫诲瀷</span> + </el-col> + <el-col :span="6"> + <el-input + v-model="dataForm.customerOrder.productType" + placeholder="" + ></el-input> + </el-col> + </el-row> + </div> --> <span slot="footer" class="dialog-footer"> <el-button @click="visible = false">鍙栨秷</el-button> @@ -195,6 +407,8 @@ import { remote } from '@/api/admin/dict' import PartDialog from '@/views/common/part.vue' import { validateSixDecimal } from '@/util/validate' +import {dateFormat} from '@/util/date' +// import { chooseStaff } from '@/api/admin/productType' import { tableOption } from '@/const/crud/customerOrder/customerOrderForm' export default { @@ -203,7 +417,8 @@ }, data() { return { - currentSelectRow: null, + salesSelectData: null, + currentSelectRow: 0, option: tableOption, tableData: [{ "$cellEdit": true, @@ -219,45 +434,29 @@ "remark": "", "isTrusted": true }], + staffOptions: [], title: '', isFullScreen: false, visible: false, buttonDisable: false, showPart: false, dataForm: { - id: 0, contractNo: null, customerName: null, - entityName: null, - salesDepartment: null, - province: null, - salesMan: null, - originalContractStatus: null, - isCp: null, customerNo: null, - returnStatus: null, - placeOrderDate: null, + customerOrderVOList: [], + deliveryDate: null, + entityName: null, factoryPlaceOrderDate: null, - customerOrder: { - partNo: null, - unit: null, - buyQtyDue: null, - voltAgeClass: null, - productName: null, - manufactureAttr: 'S', - outerColor: null, - customerPartSpec: null, - printType: null, - printingRequirements: null, - packageRequire: null, - qualityRequire: null, - otherProductRequire: null, - divisionSystem: null, - shippingAddress: null, - salesmanName: null, - lengthRequirement: null, - remark: null - } + salesDepartment: null, + isCp: null, + originalContractStatus: null, + placeOrderDate: null, + province: null, + returnStatus: null, + salesMan: null, + salerWorkCode: null, + comment: null }, dataRule: {}, units: [], @@ -267,10 +466,17 @@ mounted: function() { this.getDicUnit('unit') // 鑾峰彇鍗曚綅 this.getManufactureAttrs('manufacture_attr_type') + this.getStaffOptions(); }, methods: { - delRow(row,index) { - this.tableData.splice(index,1) + selsctionSales(data){ + this.dataForm.salesMan = data.staffName + this.dataForm.salerWorkCode = data.staffNo + }, + getStaffOptions(){ + // chooseStaff().then((response)=>{ + // this.staffOptions = response.data.data + // }) }, init(id) { this.initDataForm() @@ -280,46 +486,44 @@ }) }, initDataForm() { - this.dataForm.id = 0 this.dataForm.contractNo = null this.dataForm.customerName = null this.dataForm.entityName = null - this.dataForm.salesDepartment = null this.dataForm.province = null this.dataForm.salesMan = null this.dataForm.originalContractStatus = null this.dataForm.isCp = null this.dataForm.customerNo = null this.dataForm.returnStatus = null - this.dataForm.placeOrderDate = null - this.dataForm.factoryPlaceOrderDate = null - this.dataForm.customerOrder.partNo = null - this.dataForm.customerOrder.unit = null - this.dataForm.customerOrder.buyQtyDue = null - this.dataForm.customerOrder.voltAgeClass = null - this.dataForm.customerOrder.productName = null - this.dataForm.customerOrder.manufactureAttr = 'S' - this.dataForm.customerOrder.outerColor = null - this.dataForm.customerOrder.customerPartSpec = null - this.dataForm.customerOrder.printType = null - this.dataForm.customerOrder.printingRequirements = null - this.dataForm.customerOrder.packageRequire = null - this.dataForm.customerOrder.qualityRequire = null - this.dataForm.customerOrder.otherProductRequire = null - this.dataForm.customerOrder.divisionSystem = null - this.dataForm.customerOrder.shippingAddress = null - this.dataForm.customerOrder.salesmanName = null - this.dataForm.customerOrder.lengthRequirement = null - this.dataForm.customerOrder.remark = null + this.dataForm.placeOrderDate = dateFormat(new Date(),'yyyy-MM-dd hh:mm:ss') + this.dataForm.factoryPlaceOrderDate = dateFormat(new Date(),'yyyy-MM-dd hh:mm:ss') + this.dataForm.deliveryDate = null + this.dataForm.comment = null + this.dataForm.customerOrderVOList = [{ + "$cellEdit": true, + "$index": 0, + "partNo": "", + "customerPartSpec": "", + "manufactureAttr": "", + "productName": "", + "productType": "", + "otcUnit": "", + "buyQtyDue": "", + "shippingAddress": "", + "remark": "", + "isTrusted": true + }] }, // 琛ㄥ崟鎻愪氦 dataFormSubmit() { this.buttonDisable = true this.$refs.dataForm.validate((valid) => { + this.dataForm.customerOrderVOList = this.tableData if (valid) { addObj(this.dataForm) .then((data) => { this.$message.success('娣诲姞鎴愬姛') + this.initDataForm(); this.visible = false this.buttonDisable = false this.$emit('refreshDataList', 1) @@ -338,12 +542,12 @@ this.showPart = true }, selectPart(part) { + console.log(part); + const index = this.currentSelectRow if (part) { - this.dataForm.customerOrder.partNo = part.partNo - const index = this.currentSelectRow - this.tableData[index].partNo = part.partNo - this.tableData[index].customerPartSpec = part.specs - this.tableData[index].productName = part.partName + this.tableData[index].partNo = part.partNo + this.tableData[index].customerPartSpec = part.specs + this.tableData[index].productName = part.partName } }, // 鍏ㄥ睆 @@ -371,4 +575,4 @@ } } } -</script> +</script> \ No newline at end of file -- Gitblit v1.9.3