From f6811caf6c66d4e2a55393f3b6dc169efd28d863 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期四, 25 四月 2024 14:45:02 +0800
Subject: [PATCH] 修改工艺文件
---
src/views/plan/customerorder/sample-customerorder-form.vue | 434 ++++++++++++++++++++++-------------------------------
1 files changed, 182 insertions(+), 252 deletions(-)
diff --git a/src/views/plan/customerorder/sample-customerorder-form.vue b/src/views/plan/customerorder/sample-customerorder-form.vue
index 21b97b8..765dc1a 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"
@@ -34,7 +34,7 @@
<el-input
v-model="dataForm.contractNo"
placeholder=""
- disabled
+
></el-input>
</el-form-item>
</el-col>
@@ -51,14 +51,6 @@
<el-input v-model="dataForm.entityName" placeholder=""></el-input>
</el-form-item>
</el-col>
- <!-- <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-col :span="6">
<el-form-item label="鐪佷唤" prop="province">
<el-input v-model="dataForm.province" placeholder=""></el-input>
@@ -68,9 +60,11 @@
<el-row>
<el-col :span="6">
<el-form-item label="涓氬姟鍛�" prop="salesMan">
- <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>
+ <!-- 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">
@@ -135,6 +129,19 @@
</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>
@@ -143,16 +150,17 @@
</el-divider>
<div>
<avue-crud ref="crud"
+ class="l-mes"
show-hide="false"
:option="option"
:data="tableData">
<template slot="partNo" slot-scope="scope">
- <el-input v-model="scope.row.partNo" placeholder="" readonly>
+ <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-select v-model="scope.row.otcUnit" placeholder="璇烽�夋嫨鍗曚綅" style="width: 100%">
<el-option
v-for="item in units"
:key="item.value"
@@ -162,196 +170,6 @@
</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>
@@ -388,12 +206,37 @@
color: #c0c4cc;
margin: -1px 0;
}
+.l-mes .el-input-group__append,
+.l-mes .el-input-group__prepend {
+ padding: 0;
+ border-top: none;
+ border-right: none;
+ border-left: none;
+ border-radius: 0;
+ background-color: transparent;
+}
+
+.l-mes .el-input-group__append .el-button,
+.l-mes .el-input-group__prepend .el-button {
+ padding: 0;
+ width: 25px;
+ border: none !important;
+ line-height: 28px;
+ color: #c0c4cc;
+ margin: -1px 0;
+}
+
+.l-mes .el-input-group__append .el-button i,
+.l-mes .el-input-group__prepend .el-button i {
+ vertical-align: middle;
+}
</style>
<script>
-import { addObj } from '@/api/plan/customer'
+import { saveOrUpdate } from '@/api/plan/customer'
+import { getCustomerMainAndOrderBycNo } from '@/api/plan/customerorder'
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'
@@ -401,12 +244,10 @@
components: {
PartDialog
},
- data() {
- return {
- salesSelectData: null,
- currentSelectRow: 0,
- option: tableOption,
- tableData: [{
+ watch:{
+ visible(newVal){
+ if(!newVal){
+ this.tableData = [{
"$cellEdit": true,
"$index": 0,
"partNo": "",
@@ -419,6 +260,29 @@
"shippingAddress": "",
"remark": "",
"isTrusted": true
+ }]
+ }
+ }
+ },
+ data() {
+ return {
+ salesSelectData: null,
+ currentSelectRow: 0,
+ option: tableOption,
+ tableData: [{
+ id: null,
+ $cellEdit: true,
+ $index: 0,
+ partNo: "",
+ customerPartSpec: "",
+ manufactureAttr: "",
+ productName: "",
+ productType: "",
+ otcUnit: "",
+ buyQtyDue: "",
+ shippingAddress: "",
+ remark: "",
+ isTrusted: true
}],
staffOptions: [],
title: '',
@@ -427,6 +291,7 @@
buttonDisable: false,
showPart: false,
dataForm: {
+ id: null,
contractNo: null,
customerName: null,
customerNo: null,
@@ -442,6 +307,7 @@
returnStatus: null,
salesMan: null,
salerWorkCode: null,
+ comment: null
},
dataRule: {},
units: [],
@@ -455,20 +321,57 @@
},
methods: {
selsctionSales(data){
- this.dataForm.salesMan = data.staffName
- this.dataForm.salerWorkCode = data.staffNo
+ 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
- this.$nextTick(() => {
- this.title = '鏂板'
- })
+ init(contractNo) {
+ if(contractNo){
+ getCustomerMainAndOrderBycNo(contractNo).then(res=>{
+ if(res.status===200){
+ let data = res.data.data
+ this.dataForm.id = data.id
+ this.dataForm.contractNo = data.contractNo
+ this.dataForm.customerName = data.customerName
+ this.dataForm.entityName = data.entityName
+ this.dataForm.province = data.province
+ this.salesSelectData = data.salesMan
+ this.dataForm.salesMan = data.salesMan
+ this.dataForm.originalContractStatus = data.originalContractStatus
+ this.dataForm.isCp = data.isCp
+ this.dataForm.customerNo = data.customerNo
+ this.dataForm.returnStatus = data.returnStatus
+ this.dataForm.placeOrderDate = data.placeOrderDate
+ this.dataForm.factoryPlaceOrderDate = data.factoryPlaceOrderDate
+ this.dataForm.deliveryDate = data.deliveryDate
+ this.dataForm.comment = data.comment
+ data.customerOrderVOList.forEach(e=>{
+ e.$cellEdit = true
+ })
+ this.tableData = data.customerOrderVOList
+ console.log(this.dataForm);
+ }
+ }).catch(error=>{
+ console.error(error)
+ })
+ this.visible = true
+ this.$nextTick(() => {
+ this.title = '缂栬緫'
+ })
+ }else{
+ this.initDataForm()
+ this.visible = true
+ this.$nextTick(() => {
+ this.title = '鏂板'
+ })
+ }
},
initDataForm() {
this.dataForm.contractNo = null
@@ -480,43 +383,71 @@
this.dataForm.isCp = null
this.dataForm.customerNo = null
this.dataForm.returnStatus = null
- this.dataForm.placeOrderDate = null
- this.dataForm.factoryPlaceOrderDate = 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
+ id: null,
+ $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
+ const _than = this
+ let isError = false
+ _than.buttonDisable = true
+ _than.tableData.forEach(ele=>{
+ if(ele.productType==null || ele.productType=='' || ele.productType==undefined){
+ _than.$message.error("浜у搧鐨勯毝灞炲搧鐗屼笉鑳戒负绌�!")
+ isError = true
+ }
+ 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.initDataForm();
- this.visible = false
- this.buttonDisable = false
- this.$emit('refreshDataList', 1)
- })
- .catch((error) => {
- this.buttonDisable = false
+ _than.dataForm.customerOrderVOList = _than.tableData
+ saveOrUpdate(_than.dataForm).then((res) => {
+ if(res.status===200){
+ if(_than.dataForm.id){
+ _than.$message.success('鏇存柊鎴愬姛')
+ }else{
+ _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
}
})
},
@@ -526,12 +457,11 @@
this.showPart = true
},
selectPart(part) {
- console.log(part);
const index = this.currentSelectRow
if (part) {
this.tableData[index].partNo = part.partNo
- this.tableData[index].customerPartSpec = part.specs
- this.tableData[index].productName = part.partName
+ // this.tableData[index].customerPartSpec = part.specs
+ // this.tableData[index].productName = part.partName
}
},
// 鍏ㄥ睆
--
Gitblit v1.9.3