5 Commits

Author SHA1 Message Date
  wangxy f93476745a Merge pull request '修复客户询单bug' (#22) from xuxiaoming into develop 3 years ago
  xuxiaoming a179f94868 修复客户询单bug 3 years ago
  xuxiaoming 1a3f128e10 Merge branch 'develop' into xuxiaoming 3 years ago
  xuxiaoming 648c231096 修改客户询单bug 3 years ago
  xuxiaoming 2fb0f12ef3 修改客户需求管理bug 3 years ago
6 changed files with 154 additions and 173 deletions
Split View
  1. +7
    -1
      src/views/productionPlanning/customerForecastDemandReview/resourceContent/index.vue
  2. +1
    -0
      src/views/productionPlanning/customerForecastDemandReview/resourceContent/resourceLoad/detail.vue
  3. +4
    -1
      src/views/productionPlanning/customerForecastDemandReview/resourceContent/resourceLoad/index.vue
  4. +79
    -91
      src/views/productionPlanning/customerInquiry/add.vue
  5. +48
    -76
      src/views/productionPlanning/customerInquiry/index.vue
  6. +15
    -4
      src/views/productionPlanning/customerInquiry/upload.vue

+ 7
- 1
src/views/productionPlanning/customerForecastDemandReview/resourceContent/index.vue View File

@ -14,6 +14,7 @@
ref="resourceLoadComponents"
:resourceId="resourceId"
:resourceType="resourceType"
:Height="tableHeight+'px'"
@calculateTableHeight="calculateTableHeight"
@handleCancelResource="handleCancelResource" />
</el-tab-pane>
@ -45,13 +46,18 @@ export default {
},
data() {
return {
tableHeight:0,
evaluationLoading:false,
evaluationDataNew: [],
evaluationDataOld: [],
activeName: 'evaluation'
activeName: 'resourceLoad'
}
},
methods: {
calculateTableHeight(height) {
console.log('%cindex.vue line:58 height', 'color: #007acc;', height);
this.tableHeight = (height -10)+"";
},
//
handlePublic(param){
param.data = JSON.stringify(param.data);


+ 1
- 0
src/views/productionPlanning/customerForecastDemandReview/resourceContent/resourceLoad/detail.vue View File

@ -8,6 +8,7 @@
<div class="cl" ref="topTableRef">
<el-table
:data="dataList"
height="500px"
border size="mini" >
<el-table-column
v-for="item in headers"


+ 4
- 1
src/views/productionPlanning/customerForecastDemandReview/resourceContent/resourceLoad/index.vue View File

@ -59,7 +59,7 @@
v-loading="articleDemandLoading"
class="articleDemand-table"
:data="tableData"
:height="tableHeight"
:height="Height"
:cell-class-name="cellStyle"
border size="mini" >
<el-table-column
@ -120,6 +120,9 @@ export default {
type: String,
default:""
},
Height:{
type:String
}
},
data(){
return {


+ 79
- 91
src/views/productionPlanning/customerInquiry/add.vue View File

@ -1,54 +1,42 @@
<template>
<el-dialog
title="添加询单"
model-value
width="1000px"
:close-on-click-modal="false"
:before-close="handleClose"
>
<el-form
ref="formRef"
v-loading="loading"
:model="formData"
:rules="rules"
label-width="140px"
>
title="添加询单" model-value width="1000px" :close-on-click-modal="false" :before-close="handleClose" >
<el-form ref="formRef" v-loading="loading" :model="formData" :rules="rules" label-width="140px" >
<el-row>
<el-col :span="12">
<el-form-item
:label="getColumnName('CustomerOrderReviewInfo-CustomerId')" prop="CustomerId" >
<el-select v-model="formData['CustomerOrderReviewInfo-CustomerId']" placeholder="请选择" @change="customerChange">
<el-option v-for="item in customerList" :key="item['Customer-CustomerId']"
:label="item['Customer-Name1']" :value="item['Customer-CustomerId']"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
:label="getColumnName('CustomerOrderReviewInfo-ArtId')" prop="ArtId" >
<el-select v-model="formData['CustomerOrderReviewInfo-ArtId']" placeholder="请选择">
<el-option v-for="item in custartList" :key="item['AP_CustArtlst-ArtId']"
:label="item['AP_CustArtlst-ArtId']" :value="item['AP_CustArtlst-ArtId']"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
:label="getColumnName('CustomerOrderReviewInfo-CustomerId')" prop="CustomerOrderReviewInfo-CustomerId" >
<el-select v-model="formData['CustomerOrderReviewInfo-CustomerId']" placeholder="请选择" @change="customerChange">
<el-option v-for="item in customerList" :key="item['Customer-CustomerId']"
:label="item['Customer-Name1']" :value="item['Customer-CustomerId']"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
:label="getColumnName('CustomerOrderReviewInfo-ArtId')" prop="CustomerOrderReviewInfo-ArtId" >
<el-select v-model="formData['CustomerOrderReviewInfo-ArtId']" placeholder="可输入关键字赛选" filterable>
<el-option v-for="item in custartList" :key="item['AP_CustArtlst-ArtId']"
:label="item['AP_CustArtlst-ArtId']" :value="item['AP_CustArtlst-ArtId']"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item :label="getColumnName('CustomerOrderReviewInfo-Qty')" prop="Qty" >
<el-input v-model="formData['CustomerOrderReviewInfo-Qty']" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="getColumnName('CustomerOrderReviewInfo-ExpectedDate')" prop="ExpectedDate" >
<el-date-picker
value-format="YYYY-MM-DD"
v-model="formData['CustomerOrderReviewInfo-ExpectedDate']"
placeholder="请选择日期"/>
</el-form-item>
</el-col>
<el-row>
<el-col :span="12">
<el-form-item :label="getColumnName('CustomerOrderReviewInfo-Qty')" prop="CustomerOrderReviewInfo-Qty" >
<el-input v-model="formData['CustomerOrderReviewInfo-Qty']" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="getColumnName('CustomerOrderReviewInfo-ExpectedDate')" prop="CustomerOrderReviewInfo-ExpectedDate" >
<el-date-picker
:editable="false"
value-format="YYYY-MM-DD"
v-model="formData['CustomerOrderReviewInfo-ExpectedDate']"
placeholder="请选择日期"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
@ -63,8 +51,8 @@ width="1000px"
import { getCustartlist } from "@/server/productionPlanning/customerInquiry";
export default {
emits:[
"setIsAdd",
"pushData"
'setIsAdd',
'pushData'
],
props: {
customerList: {
@ -73,44 +61,43 @@ export default {
},
data() {
return {
formData: {
'CustomerOrderReviewInfo-CustomerId':'',
'CustomerOrderReviewInfo-ArtId':'',
'CustomerOrderReviewInfo-Qty':'',
'CustomerOrderReviewInfo-ExpectedDate':'',
},
rules: {
"CustomerOrderReviewInfo-CustomerId": [
{
required: true,
message: "此项不能为空",
trigger: "blur",
},
],
"CustomerOrderReviewInfo-ArtId": [
{
required: true,
message: "此项不能为空",
trigger: "blur",
},
],
"CustomerOrderReviewInfo-Qty": [
{
required: true,
message: "此项不能为空",
trigger: "blur",
},
],
"CustomerOrderReviewInfo-ExpectedDate": [
{
required: true,
message: "此项不能为空",
trigger: "blur",
},
],
'CustomerOrderReviewInfo-CustomerId': [
{
required: true,
message: '此项不能为空',
trigger: 'blur'
},
],
'CustomerOrderReviewInfo-ArtId': [
{
required: true,
message: '此项不能为空',
trigger: 'blur'
},
],
'CustomerOrderReviewInfo-Qty': [
{
required: true,
message: '此项不能为空',
trigger: 'blur'
},
]
},
loading: false,
formData: {}, //
//
treeMenu: [], // tree
custartList: [],
defaultProps: {
children: "Children",
label: "Menu-Title",
children: 'Children',
label: 'Menu-Title',
},
};
},
@ -120,29 +107,30 @@ export default {
},
//
getCustartlist(customerId){
getCustartlist( { "customerId": customerId }).then(({data=[]})=>{
getCustartlist( { 'customerId': customerId }).then(({data=[]})=>{
this.custartList=data;
})
},
//
submitForm() {
this.$refs["formRef"].validate((valid) => {
if (valid) {
this.formData['CustomerOrderReviewInfo-ReplyDate'] = ""
this.$emit("pushData", this.formData);
} else {
console.log("error submit!!");
return false;
}
this.$refs['formRef'].validate((valid) => {
console.log('%cadd.vue line:130 valid', 'color: #007acc;', valid);
if (valid) {
this.formData['CustomerOrderReviewInfo-ReplyDate'] = ''
this.$emit('pushData', this.formData);
} else {
console.log('error submit!!');
return false;
}
});
},
// /
handleClose() {
this.$emit("setIsAdd", false);
this.$emit('setIsAdd', false);
},
//
selected(name) {
this.formData["Menu-Icon"] = name;
this.formData['Menu-Icon'] = name;
},
}


+ 48
- 76
src/views/productionPlanning/customerInquiry/index.vue View File

@ -13,7 +13,7 @@
<el-form-item>
<el-button
class="add-button-style"
@click="handleUpload"
@click="importDialogVisable = true"
>批量导入
</el-button>
</el-form-item>
@ -49,25 +49,25 @@
type="selection"
width="55">
</el-table-column>
<el-table-column
v-for="item in headers"
:key="item"
:label="getColumnName(item)"
:prop="item"
:show-overflow-tooltip="true" >
<template #default="scope">
<span v-if="item === 'CustomerOrderReviewInfo-CustomerId'">{{
mappingText(customerList, scope.row["CustomerOrderReviewInfo-CustomerId"], 'Customer-CustomerId', 'Customer-Name1')
}}</span>
<template v-else-if="item === 'CustomerOrderReviewInfo-ReplyDate' && scope.row['CustomerOrderReviewInfo-ReplyDate']" >
<span v-if="compareDate(scope.row['CustomerOrderReviewInfo-ExpectedDate'], scope.row['CustomerOrderReviewInfo-ReplyDate'])"
style="color:#2D9B8E" >{{ scope.row[item] }}</span>
<span v-else style="color:#FC524B">{{ scope.row[item] }}</span>
</template>
<el-table-column
v-for="item in headers"
:key="item"
:label="getColumnName(item)"
:prop="item"
:show-overflow-tooltip="true" >
<template #default="scope">
<span v-if="item === 'CustomerOrderReviewInfo-CustomerId'">{{
mappingText(customerList, scope.row["CustomerOrderReviewInfo-CustomerId"], 'Customer-CustomerId', 'Customer-Name1')
}}</span>
<template v-else-if="item === 'CustomerOrderReviewInfo-ReplyDate' && scope.row['CustomerOrderReviewInfo-ReplyDate']" >
<span v-if="compareDate(scope.row['CustomerOrderReviewInfo-ExpectedDate'], scope.row['CustomerOrderReviewInfo-ReplyDate'])"
style="color:#2D9B8E" >{{ scope.row[item] }}</span>
<span v-else style="color:#FC524B">{{ scope.row[item] }}</span>
</template>
<span v-else>{{ scope.row[item] }}</span>
</template>
</el-table-column>
<span v-else>{{ scope.row[item] }}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
@ -105,7 +105,7 @@
@setIsAdd="setIsAdd"
@pushData="pushData" />
<Upload
v-if="isUpload"
v-model="importDialogVisable"
@editCallBack="completeCallBack" />
</div>
@ -114,7 +114,7 @@
import Add from "./add.vue";
import Upload from "./upload.vue";
import { ListMixin } from "@/mixins/newListMixin";
import { getCustomerList ,getCustartlist,customerorderreviewlist,exportExcel } from "@/server/productionPlanning/customerInquiry";
import { getCustomerList ,customerorderreviewlist,exportExcel } from "@/server/productionPlanning/customerInquiry";
export default {
components: {
Add,
@ -126,7 +126,7 @@ export default {
tableHeight:0,
loading: false,
isAdd: false,
isUpload: false,
importDialogVisable: false,
deliveryTrialDisable:false,
isShowDialog: '',
detailHeaders: [],
@ -141,6 +141,7 @@ export default {
"CustomerOrderReviewInfo-ExpectedDate",
"CustomerOrderReviewInfo-ReplyDate"
],
tableData:[],
customerList:[],
custartList:[],
multipleSelection: [],
@ -150,12 +151,9 @@ export default {
methods: {
handleExport(){
// let queryData = this.tableData.map(item => {
// item['CustomerOrderReviewInfo-ExpectedDate'] = this.dealDate(item['CustomerOrderReviewInfo-ExpectedDate'])
// item['CustomerOrderReviewInfo-ReplyDate'] = this.dealDate(item['CustomerOrderReviewInfo-ReplyDate'])
// return item
// })
// console.log('%cindex.vue line:156 queryData', 'color: #007acc;', queryData);
this.tableData.forEach(item => {
item['CustomerOrderReviewInfo-Qty'] = parseFloat(item['CustomerOrderReviewInfo-Qty'])
})
exportExcel(this.tableData).then(res => {
let link = document.createElement('a');
link.style.display = 'none';
@ -165,24 +163,11 @@ export default {
link.click();
})
},
//
handleUpload() {
this.isUpload = true
},
//
completeCallBack(dataList) {
this.tableData = dataList
// dataList.forEach(item => {
// let date = new Date(item['CustomerOrderReviewInfo-ExpectedDate']);
// this.tableData.push({
// "CustomerOrderReviewInfo-ArtId" : item['CustomerOrderReviewInfo-ArtId'],
// "CustomerOrderReviewInfo-CustomerId" : item['CustomerOrderReviewInfo-CustomerId'],
// "CustomerOrderReviewInfo-ExpectedDate" : date.getFullYear() + '.' + (date.getMonth() + 1) + '.' + date.getDate(),
// "CustomerOrderReviewInfo-Qty" : item['CustomerOrderReviewInfo-Qty']
// })
// })
this.isUpload = false
this.importDialogVisable = false
},
//
getCustomerList(){
@ -190,15 +175,8 @@ export default {
this.customerList=data;
})
},
//
getCustartlist(){
getCustartlist().then(({data=[]})=>{
this.custartList=data;
})
},
// /
setIsAdd(value) {
console.log('%cindex.vue line:147 setIsAdd value', 'color: #007acc;', value);
this.isAdd = value;
},
pushData(data){
@ -206,15 +184,18 @@ export default {
this.tableData.push(data)
},
compareDate(expectedDate,replyDate){
if(!replyDate) {
return
if(!expectedDate) {
return true
}
let expectedDateArr = expectedDate.split("-")
let expectedDateTime = new Date(expectedDateArr[0], expectedDateArr[1], expectedDateArr[2])
if(!replyDate) {
return false
}
let replyDateArr = replyDate.split("-")
let replyDateTime = new Date(replyDateArr[0], replyDateArr[1], replyDateArr[2])
if (expectedDateTime.getTime() >= replyDateTime.getTime()) {
if (expectedDateTime.getTime() > replyDateTime.getTime()) {
return false
} else {
return true
@ -232,7 +213,7 @@ export default {
"CustomerOrderReviewInfo-CustomerId": row['CustomerOrderReviewInfo-CustomerId'],
"CustomerOrderReviewInfo-ArtId": row['CustomerOrderReviewInfo-ArtId'],
"CustomerOrderReviewInfo-Qty": parseFloat(row['CustomerOrderReviewInfo-Qty']),
"CustomerOrderReviewInfo-ExpectedDate": row['CustomerOrderReviewInfo-ExpectedDate']
"CustomerOrderReviewInfo-ExpectedDate": row['CustomerOrderReviewInfo-ExpectedDate']==""?null:row['CustomerOrderReviewInfo-ExpectedDate']
})
})
this.deliveryTrialDisable = true
@ -241,10 +222,12 @@ export default {
this.detailHeaders = []
this.detailTableData = []
res.data.forEach( (item,index) => {
this.multipleSelection[index]["CustomerOrderReviewInfo-ReplyDate"] = item['CustomerOrderReviewInfo-ReplyDate'].replaceAll("-",".")
this.multipleSelection[index]["CustomerOrderReviewInfo-ReplyDate"] = item['CustomerOrderReviewInfo-ReplyDate']
})
this.deliveryTrialDisable = false
}
}).catch(() => {
this.deliveryTrialDisable = false
})
}
},
@ -254,9 +237,9 @@ export default {
"CustomerOrderReviewInfo-CustomerId": row['CustomerOrderReviewInfo-CustomerId'],
"CustomerOrderReviewInfo-ArtId": row['CustomerOrderReviewInfo-ArtId'],
"CustomerOrderReviewInfo-Qty": parseFloat(row['CustomerOrderReviewInfo-Qty']),
"CustomerOrderReviewInfo-ExpectedDate": row['CustomerOrderReviewInfo-ExpectedDate']
"CustomerOrderReviewInfo-ExpectedDate": row['CustomerOrderReviewInfo-ExpectedDate']==""?null:row['CustomerOrderReviewInfo-ExpectedDate']
}]
// let mockData = [{
// searchParam = [{
// "CustomerOrderReviewInfo-CustomerId": "3",
// "CustomerOrderReviewInfo-ArtId": "CAADQ00001A",
// "CustomerOrderReviewInfo-Qty": 1000,
@ -267,18 +250,11 @@ export default {
if(res.code === 200 && res.data.length > 0) {
this.detailHeaders = []
this.detailTableData = []
row["CustomerOrderReviewInfo-ReplyDate"] = res.data[0]['CustomerOrderReviewInfo-ReplyDate']
this.showDetail(res.data[0])
row["CustomerOrderReviewInfo-ReplyDate"] = res.data[0]['CustomerOrderReviewInfo-ReplyDate'].replaceAll("-",".")
}
})
},
// 0
// dealDate(dateString){
// let dateArr = dateString.split(".")
// return dateArr[0] +"-"+ (Array(2).join(0) + dateArr[1]).slice(-2)+"-"+ (Array(2).join(0) + dateArr[2]).slice(-2)
// },
//
showDetail(data){
this.detailHeaders.push({"prop":"-","lable":""})
@ -302,20 +278,16 @@ export default {
}
},
created(){
this.getCustomerList()
this.getCustartlist()
},
mounted(){
this.$nextTick(() => {
this.tableHeight = this.calculationTableHeight(
this.$refs.tableRef,
300
);
});
}
this.$nextTick(() => {
this.tableHeight = this.calculationTableHeight(
this.$refs.tableRef,
300
);
});
}
};
</script>
<style lang="less" scoped>


+ 15
- 4
src/views/productionPlanning/customerInquiry/upload.vue View File

@ -1,5 +1,5 @@
<template>
<el-dialog :title="title" model-value width="50%" :close-on-click-modal="false" :before-close="cancel">
<el-dialog :title="title" width="50%" :before-close="handleClose" >
<input
type="file"
accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, xls, xlsx"
@ -18,7 +18,14 @@
import { uploadExcel } from "@/server/productionPlanning/customerInquiry.js";
export default {
name: 'editField',
props:{
showUploadDailog : {
type: Boolean,
default: () => {
return false
}
},
},
data() {
return {
title: '导入', //
@ -26,9 +33,13 @@ export default {
excel: '',
}
},
created () {
console.log('%cupload.vue line:37 this.showUploadDailog dd', 'color: #007acc;', this.showUploadDailog);
},
methods: {
cancel() { //
this.$emit('update:isShowDialog','')
handleClose(done) { //
done();
},
//
previewUpload(file) {


Loading…
Cancel
Save