From 9cb6303ce663a7a6583346026a292152ca008012 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 13 十二月 2023 16:36:56 +0800
Subject: [PATCH] modified: src/views/product/workbench/steprecord-tab.vue
---
src/views/plan/customerorder/sample-customerorder-form.vue | 315 +++++++++++++++++++++++++++++++++------------------
1 files changed, 203 insertions(+), 112 deletions(-)
diff --git a/src/views/plan/customerorder/sample-customerorder-form.vue b/src/views/plan/customerorder/sample-customerorder-form.vue
index 46fd83d..94aaeb1 100644
--- a/src/views/plan/customerorder/sample-customerorder-form.vue
+++ b/src/views/plan/customerorder/sample-customerorder-form.vue
@@ -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" clearable filterable v-model="salesSelectData" style="width:100%">
+ <el-option v-for="(item,index) in staffOptions" :key="index" :value="item.staffNo+','+item.staffName" :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,14 +123,59 @@
</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="6">
+ <el-form-item label="璁㈠崟澶囨敞" prop="comment">
+ <el-input
+ v-model="dataForm.comment"
+ style="width: 100%"
+ type="textarea"
+ :rows="1"
+ >
+ </el-input>
+ </el-form-item>
+ </el-col>
</el-row>
</el-form>
</div>
- <el-divider
- ><span style="font-weight:bold;font-size:16px;">璁㈠崟琛�</span></el-divider
- >
- <div class="l-mes normal-form">
+ <el-divider>
+ <span style="font-weight:bold;font-size:16px;">璁㈠崟琛�</span>
+ </el-divider>
+ <div>
+ <avue-crud ref="crud"
+ show-hide="false"
+ :option="option"
+ :data="tableData">
+ <template slot="partNo" slot-scope="scope">
+ <el-input v-model="scope.row.partNo" placeholder="鏌ヨ闆朵欢鍙�" readonly>
+ <el-button slot="append" icon="el-icon-search" @click="openPartDialog(scope.row.$index)"></el-button>
+ </el-input>
+ </template>
+ <template slot="otcUnit" slot-scope="scope">
+ <el-select v-model="scope.row.otcUnit" placeholder="璇烽�夋嫨鍗曚綅" style="width: 100%">
+ <el-option
+ v-for="item in units"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value" />
+ </el-select>
+ </template>
+ </avue-crud>
+ </div>
+ <!-- <div class="l-mes normal-form">
<el-row :gutter="20">
<el-col :span="2">
<span>闆朵欢鍙�</span>
@@ -231,26 +278,6 @@
></el-input>
</el-col>
<el-col :span="2">
- <span>鍗板瓧绫诲瀷</span>
- </el-col>
- <el-col :span="6">
- <el-input
- v-model="dataForm.customerOrder.printType"
- 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.printingRequirements"
- placeholder=""
- ></el-input>
- </el-col>
- <el-col :span="2">
<span>鍖呰瑕佹眰</span>
</el-col>
<el-col :span="6">
@@ -259,6 +286,8 @@
placeholder=""
></el-input>
</el-col>
+ </el-row>
+ <el-row :gutter="20">
<el-col :span="2">
<span>璐ㄩ噺瑕佹眰</span>
</el-col>
@@ -268,8 +297,6 @@
placeholder=""
></el-input>
</el-col>
- </el-row>
- <el-row :gutter="20">
<el-col :span="2">
<span>鐢熶骇闇�姹傝鏄�</span>
</el-col>
@@ -288,6 +315,8 @@
placeholder=""
></el-input>
</el-col>
+ </el-row>
+ <el-row :gutter="20">
<el-col :span="2">
<span>鏀惰揣鍦板潃</span>
</el-col>
@@ -297,16 +326,13 @@
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.salesmanName"
- placeholder=""
- ></el-input>
+ <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>
@@ -317,6 +343,8 @@
placeholder=""
></el-input>
</el-col>
+ </el-row>
+ <el-row :gutter="20">
<el-col :span="2">
<span>澶囨敞</span>
</el-col>
@@ -326,8 +354,17 @@
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>
+ </div> -->
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">鍙栨秷</el-button>
@@ -369,53 +406,76 @@
import { addObj } from '@/api/plan/customer'
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 {
components: {
PartDialog
},
+ watch:{
+ visible(newVal){
+ if(!newVal){
+ this.tableData = [{
+ "$cellEdit": true,
+ "$index": 0,
+ "partNo": "",
+ "customerPartSpec": "",
+ "manufactureAttr": "",
+ "productName": "",
+ "productType": "",
+ "otcUnit": "",
+ "buyQtyDue": "",
+ "shippingAddress": "",
+ "remark": "",
+ "isTrusted": true
+ }]
+ }
+ }
+ },
data() {
return {
+ salesSelectData: null,
+ currentSelectRow: 0,
+ option: tableOption,
+ tableData: [{
+ "$cellEdit": true,
+ "$index": 0,
+ "partNo": "",
+ "customerPartSpec": "",
+ "manufactureAttr": "",
+ "productName": "",
+ "productType": "",
+ "otcUnit": "",
+ "buyQtyDue": "",
+ "shippingAddress": "",
+ "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: [],
@@ -425,8 +485,21 @@
mounted: function() {
this.getDicUnit('unit') // 鑾峰彇鍗曚綅
this.getManufactureAttrs('manufacture_attr_type')
+ this.getStaffOptions();
},
methods: {
+ selsctionSales(data){
+ if(data){
+ let arr = data.split(",")
+ this.dataForm.salesMan = arr[1]
+ this.dataForm.salerWorkCode = arr[0]
+ }
+ },
+ getStaffOptions(){
+ chooseStaff().then((response)=>{
+ this.staffOptions = response.data.data
+ })
+ },
init(id) {
this.initDataForm()
this.visible = true
@@ -435,65 +508,83 @@
})
},
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) => {
+ const _than = this
+ let isError = false
+ _than.buttonDisable = true
+ _than.tableData.forEach(ele=>{
+ if(ele.buyQtyDue==null || ele.buyQtyDue=='' || ele.buyQtyDue==undefined){
+ _than.$message.error("闆朵欢鏁伴噺涓嶈兘涓虹┖!")
+ isError = true
+ }else{
+ var reg = /^\d+$/
+ if(!reg.test(ele.buyQtyDue)){
+ _than.$message.error("闆朵欢鏁伴噺绫诲瀷蹇呴』鏄暟瀛�!")
+ isError = true
+ }
+ }
+ })
+ if(isError){
+ _than.buttonDisable = false
+ return
+ }
+ _than.$refs.dataForm.validate((valid) => {
if (valid) {
- addObj(this.dataForm)
- .then((data) => {
- this.$message.success('娣诲姞鎴愬姛')
- this.visible = false
- this.buttonDisable = false
- this.$emit('refreshDataList', 1)
- })
- .catch((error) => {
- this.buttonDisable = false
+ _than.dataForm.customerOrderVOList = _than.tableData
+ addObj(_than.dataForm).then((data) => {
+ _than.$message.success('娣诲姞鎴愬姛')
+ _than.initDataForm();
+ _than.visible = false
+ _than.buttonDisable = false
+ _than.$emit('refreshDataList', 1)
+ }).catch((error) => {
+ _than.buttonDisable = false
})
} else {
- this.buttonDisable = false
+ _than.buttonDisable = false
}
})
},
// 闆朵欢閫夋嫨
- openPartDialog() {
+ openPartDialog(index) {
+ this.currentSelectRow = index
this.showPart = true
},
selectPart(part) {
+ const index = this.currentSelectRow
if (part) {
- this.dataForm.customerOrder.partNo = part.partNo
+ this.tableData[index].partNo = part.partNo
+ this.tableData[index].customerPartSpec = part.specs
+ this.tableData[index].productName = part.partName
}
},
// 鍏ㄥ睆
--
Gitblit v1.9.3