|
@@ -28,7 +28,7 @@
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="1.5">
|
|
|
- <el-form-item label="线路类型" prop="type">
|
|
|
+ <el-form-item label="线路类型" prop="type" :rules="{ required: true, message: '请选择线路类型', trigger: 'blur' }">
|
|
|
<el-select :disabled="sonDisable" v-model="basicForm.type" size="mini" style="width: 200px">
|
|
|
<el-option v-for="dict in dict.type.mk_plan_route_type" :key="dict.value" :label="dict.label" :value="dict.value">
|
|
|
</el-option>
|
|
@@ -37,7 +37,7 @@
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="1.5">
|
|
|
- <el-form-item label="执行人" prop="chargerName">
|
|
|
+ <el-form-item label="执行人" prop="chargerName" :rules="{ required: true, message: '请选择执行人', trigger: 'blur' }">
|
|
|
<el-select clearable size="mini" v-model="basicForm.chargerName" :disabled="sonDisable" @focus="choose('CONTACTS_PARAM', true, '执行人')" style="width: 200px">
|
|
|
<el-option v-for="item in personOptions" :key="item.id" :label="item.name" :value="item.code" />
|
|
|
</el-select>
|
|
@@ -70,9 +70,9 @@
|
|
|
>
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
- </el-col>
|
|
|
+ </el-col>
|
|
|
|
|
|
- <el-col :span="1.5">
|
|
|
+ <el-col :span="1.5">
|
|
|
<el-form-item label="截止时间" prop="deadlineTime" :rules="{ required: true, message: '请选择截止时间', trigger: 'blur' }">
|
|
|
<el-date-picker
|
|
|
v-model="basicForm.deadlineTime"
|
|
@@ -85,10 +85,10 @@
|
|
|
>
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
- </el-col>
|
|
|
+ </el-col>
|
|
|
|
|
|
<el-col :span="1.5">
|
|
|
- <el-form-item label="销售区域" prop="marketingAreaName">
|
|
|
+ <el-form-item label="销售区域" prop="marketingAreaName" :rules="{ required: true, message: '请选择销售区域', trigger: 'blur' }">
|
|
|
<el-select clearable v-model="basicForm.marketingAreaName" size="mini" :disabled="sonDisable" @focus="choose('MK_SALESAREA_PARAM', true, '销售区域')" style="width: 200px">
|
|
|
<el-option
|
|
|
v-for="item in deptOptions"
|
|
@@ -118,6 +118,7 @@
|
|
|
<span>明细信息</span>
|
|
|
<div class="btn_grooup">
|
|
|
<el-button type="primary" size="mini" @click="addLine" v-if="!sonDisable">增行</el-button>
|
|
|
+ <el-button type="primary" size="mini" @click="copy" v-if="sonPageStu == 'check'">复制</el-button>
|
|
|
<el-button type="primary" size="mini" @click="delItems" v-if="sonPageStu == 'edit'">批量删除</el-button>
|
|
|
<el-button type="primary" size="mini" @click="edit" v-if="sonPageStu == 'check'">编辑</el-button>
|
|
|
</div>
|
|
@@ -125,7 +126,7 @@
|
|
|
<el-table
|
|
|
:data="basicForm.mkBoPlanItemList"
|
|
|
fit
|
|
|
- max-height="300"
|
|
|
+ max-height="600"
|
|
|
style="font-size: 12px;"
|
|
|
@selection-change="handleSelectionChange"
|
|
|
:cell-class-name="cellClassName"
|
|
@@ -151,7 +152,7 @@
|
|
|
|
|
|
<el-table-column show-overflow-tooltip label="客户名称" prop="customerName" min-width="230">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-form-item class="hang">
|
|
|
+ <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'customerName'" :rules="{ required: true, message: '请选择客户', trigger: 'blur' }">
|
|
|
<el-select clearable size="mini" v-model="scope.row.customerName" :disabled="sonDisable" @focus="chooseSon(scope.$index, 'CUSTOMER_PARAM_ZT', true, '客户')" style="width: 200px">
|
|
|
<el-option v-for="item in customerOptions" :key="item.id" :label="item.name" :value="item.code" />
|
|
|
</el-select>
|
|
@@ -161,7 +162,7 @@
|
|
|
|
|
|
<el-table-column show-overflow-tooltip label="联系人" prop="contactName" min-width="230">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-form-item class="hang">
|
|
|
+ <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'contactName'" :rules="{ required: true, message: '请选择联系人', trigger: 'blur' }">
|
|
|
<el-select clearable size="mini" v-model="scope.row.contactName" :disabled="sonDisable" @focus="chooseSon(scope.$index, 'LINKMAN_PARAM', true, '联系人', {})" style="width: 200px">
|
|
|
<el-option v-for="item in linkOptions" :key="item.id" :label="item.name" :value="item.code" />
|
|
|
</el-select>
|
|
@@ -171,7 +172,7 @@
|
|
|
|
|
|
<el-table-column show-overflow-tooltip label="详细地址" prop="address" min-width="200">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-form-item class="hang">
|
|
|
+ <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'address'">
|
|
|
<el-input clearable :readonly="sonDisable" size="mini" v-model="scope.row.address"/>
|
|
|
</el-form-item>
|
|
|
</template>
|
|
@@ -179,7 +180,7 @@
|
|
|
|
|
|
<el-table-column show-overflow-tooltip label="拜访目的" prop="purpose" min-width="200">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-form-item class="hang">
|
|
|
+ <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'purpose'" :rules="{ required: true, message: '请选择拜访目的', trigger: 'blur' }">
|
|
|
<el-select clearable :disabled="sonDisable" v-model="scope.row.purpose" size="mini">
|
|
|
<el-option v-for=" dict in dict.type.mk_bo_behavior_goal" :key="dict.value" :label="dict.label" :value="dict.value">
|
|
|
</el-option>
|
|
@@ -188,10 +189,17 @@
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
|
|
|
- <el-table-column :readonly="sonDisable" show-overflow-tooltip label="商机" prop="boName" min-width="200"/>
|
|
|
+ <el-table-column :readonly="sonDisable" show-overflow-tooltip label="商机" prop="boName" min-width="200">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'boName'">
|
|
|
+ <el-input clearable :readonly="sonDisable" size="mini" v-model="scope.row.boName"/>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
<el-table-column :readonly="sonDisable" show-overflow-tooltip label="营销活动" prop="marketingCampaign" min-width="200">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-form-item class="hang">
|
|
|
+ <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'marketingCampaign'">
|
|
|
<el-input clearable :readonly="sonDisable" size="mini" v-model="scope.row.marketingCampaign"/>
|
|
|
</el-form-item>
|
|
|
</template>
|
|
@@ -214,10 +222,10 @@
|
|
|
<el-col :span="1.5">
|
|
|
<el-button type="primary" size="mini" plain @click="save" v-if="sonPageStu == 'add' || sonPageStu == 'edit'">保存</el-button>
|
|
|
</el-col>
|
|
|
- <el-col :span="1.5" style="margin: 0 10px;">
|
|
|
+ <!-- <el-col :span="1.5" style="margin: 0 10px;">
|
|
|
<el-button type="primary" size="mini" plain @click="submit" v-if="sonPageStu == 'check' && (row.status == '0' || row.status == '3')">提交</el-button>
|
|
|
- </el-col>
|
|
|
- <el-col :span="1.5">
|
|
|
+ </el-col> -->
|
|
|
+ <el-col :span="1.5" style="margin: 0 10px;">
|
|
|
<el-button size="mini" plain @click="back">返回</el-button>
|
|
|
</el-col>
|
|
|
|
|
@@ -253,32 +261,21 @@ export default {
|
|
|
// },
|
|
|
basicForm: {
|
|
|
id: '',
|
|
|
- planId: '',
|
|
|
planCode: '',
|
|
|
planName :'',
|
|
|
charger: '',
|
|
|
- chargerName: '',
|
|
|
- type: '0',
|
|
|
+ chargerName: this.$store.state.user.nickName,
|
|
|
dept: '',
|
|
|
- deptName: '',
|
|
|
- startDate: this.getWeek(1),
|
|
|
- deadlineTime: this.getWeek(7),
|
|
|
- date: '',
|
|
|
+ deptName: this.$store.state.user.deptName,
|
|
|
+ startDate: this.getNextWeek(1),
|
|
|
+ deadlineTime: this.getNextWeek(7),
|
|
|
+ type: '0',
|
|
|
+ state: '0',
|
|
|
marketingArea: '',
|
|
|
marketingAreaName: '',
|
|
|
- state: '0',
|
|
|
- customer: '',
|
|
|
- customerName: '',
|
|
|
- contact: '',
|
|
|
- contactName: '',
|
|
|
- address: '',
|
|
|
- purpose: '',
|
|
|
- bo: '',
|
|
|
- boName: '',
|
|
|
- marketingCampaign: '',
|
|
|
mkBoPlanItemList: []
|
|
|
},
|
|
|
- delDemandItemList: [],
|
|
|
+ delPlanItemList: [],
|
|
|
basicRules: {},
|
|
|
tableList: [],
|
|
|
referCondition: {
|
|
@@ -298,43 +295,67 @@ export default {
|
|
|
personOptions: [],
|
|
|
deptOptions: [],
|
|
|
customerOptions: [],
|
|
|
- pickerOptionsEnd: {
|
|
|
- disabledDate: (time) => {
|
|
|
- return time.getTime() < Date.now() - 1 * 24 * 60 * 60 * 1000
|
|
|
- }
|
|
|
- },
|
|
|
- isBDXQ: false,
|
|
|
- isYl: false,
|
|
|
+ salesAreaOptions: [],
|
|
|
+ //判断默认明细行带出完毕后日期等于当前日期的标识
|
|
|
+ isFlag: false
|
|
|
}
|
|
|
},
|
|
|
updated() {},
|
|
|
mounted() {},
|
|
|
created() {
|
|
|
+ //查看系统数据
|
|
|
+ // console.log(this.$store.state.user, 'this.$store.state.user')
|
|
|
if(this.pageStu == 'check') {
|
|
|
console.log('数据', this.row)
|
|
|
this.getDetails(this.row)
|
|
|
- } else if(this.pageStu == 'edit') {
|
|
|
+ } else if (this.pageStu == 'edit') {
|
|
|
this.getDetails(this.row)
|
|
|
+ } else if (this.pageStu == 'add') {
|
|
|
+ //新增时默认带出7条明细行
|
|
|
+ this.defaultDetailLine(7)
|
|
|
}
|
|
|
},
|
|
|
methods:{
|
|
|
+ copy() {
|
|
|
+ this.isFlag = true;
|
|
|
+ this.$modal.notifySuccess("复制成功");
|
|
|
+ this.sonPageStu = 'add'
|
|
|
+ this.sonDisable = false
|
|
|
+ // this.getDetails(this.row)
|
|
|
+ this.basicForm.id = ''
|
|
|
+ this.basicForm.code = ''
|
|
|
+ this.basicForm.createBy = ''
|
|
|
+ this.basicForm.chargerName = this.$store.state.user.name
|
|
|
+ this.basicForm.deptName = this.$store.state.user.deptId
|
|
|
+ if (this.basicForm.chargerName) { this.reBackRefer('CONTACTS_PARAM', this.basicForm.chargerName) }
|
|
|
+ if (this.basicForm.marketingAreaName) { this.reBackRefer('MK_SALESAREA_PARAM', this.basicForm.marketingAreaName) }
|
|
|
+ if (this.basicForm.deptName) { this.reBackRefer('DEPT_PARAM', this.basicForm.deptName) }
|
|
|
+ // this.basicForm.mkBoPlanItemList.forEach(item => {
|
|
|
+ // item.date = ''
|
|
|
+ // item.customer = ''
|
|
|
+ // item.customerName = ''
|
|
|
+ // item.contact = ''
|
|
|
+ // item.contactName = ''
|
|
|
+ // item.address = ''
|
|
|
+ // item.purpose = ''
|
|
|
+ // item.bo = ''
|
|
|
+ // item.boName = ''
|
|
|
+ // item.marketingCampaign = ''
|
|
|
+ // })
|
|
|
+ },
|
|
|
handleData() {
|
|
|
console.log('222')
|
|
|
// 复制新增把id,编码,创建人置为空,子表去掉id
|
|
|
this.basicForm.id = ''
|
|
|
- this.basicForm.code = ''
|
|
|
+ this.basicForm.planCode = ''
|
|
|
this.basicForm.createBy = ''
|
|
|
- this.basicForm.source = '4'
|
|
|
if (this.basicForm.mkBoPlanItemList.length !== 0) {
|
|
|
this.basicForm.mkBoPlanItemList.forEach(item => {
|
|
|
if (item.id) {
|
|
|
delete item.id
|
|
|
}
|
|
|
- if (item.demandId) {
|
|
|
- delete item.demandId
|
|
|
- }
|
|
|
- if (item.allotCode) {
|
|
|
- delete item.allotCode
|
|
|
+ if (item.planId) {
|
|
|
+ delete item.planId
|
|
|
}
|
|
|
})
|
|
|
}
|
|
@@ -367,12 +388,12 @@ export default {
|
|
|
})
|
|
|
} else if (this.sonPageStu == 'edit') {
|
|
|
let list = []
|
|
|
- list.push(...this.basicForm.mkBoPlanItemList, ...this.delDemandItemList)
|
|
|
+ list.push(...this.basicForm.mkBoPlanItemList, ...this.delPlanItemList)
|
|
|
// 深拷贝一下参数对象
|
|
|
let param = JSON.parse(JSON.stringify(this.basicForm))
|
|
|
console.log('深拷贝对象',param);
|
|
|
param.mkBoPlanItemList = list
|
|
|
- // this.basicForm.mkBoPlanItemList.push(...this.delDemandItemList)
|
|
|
+ // this.basicForm.mkBoPlanItemList.push(...this.delPlanItemList)
|
|
|
editPlan(param).then(res => {
|
|
|
if (res.code === 200) {
|
|
|
this.$modal.msgSuccess("编辑成功");
|
|
@@ -389,26 +410,29 @@ export default {
|
|
|
this.$modal.msgWarning("明细信息不能为空!");
|
|
|
}
|
|
|
},
|
|
|
- submit() {
|
|
|
- this.$modal.loading("提交中...");
|
|
|
- submitDemand(this.basicForm).then(res => {
|
|
|
- if (res.code === 200) {
|
|
|
- this.$modal.msgSuccess("提交成功");
|
|
|
- this.$modal.closeLoading();
|
|
|
- this.back()
|
|
|
- }
|
|
|
- }).catch(err => {
|
|
|
- this.$modal.closeLoading();
|
|
|
- })
|
|
|
- },
|
|
|
+ // submit() {
|
|
|
+ // this.$modal.loading("提交中...");
|
|
|
+ // submitDemand(this.basicForm).then(res => {
|
|
|
+ // if (res.code === 200) {
|
|
|
+ // this.$modal.msgSuccess("提交成功");
|
|
|
+ // this.$modal.closeLoading();
|
|
|
+ // this.back()
|
|
|
+ // }
|
|
|
+ // }).catch(err => {
|
|
|
+ // this.$modal.closeLoading();
|
|
|
+ // })
|
|
|
+ // },
|
|
|
// 增行
|
|
|
- addLine() {
|
|
|
+ addLine(date) {
|
|
|
+ if (this.isFlag) {
|
|
|
+ date = this.getCurrentTime();
|
|
|
+ }
|
|
|
const newLine = {
|
|
|
contacts: null,
|
|
|
id: null,
|
|
|
planId: null,
|
|
|
planCode: null,
|
|
|
- date: this.getCurrentTime(),
|
|
|
+ date: date,
|
|
|
customer: null,
|
|
|
customerName: null,
|
|
|
contact: null,
|
|
@@ -457,14 +481,16 @@ export default {
|
|
|
this.basicForm.mkBoPlanItemList = this.basicForm.mkBoPlanItemList.filter(item => {
|
|
|
return item.delFlag == '0'
|
|
|
})
|
|
|
- this.delDemandItemList.push(...delList)
|
|
|
- console.log('删除的数组',this.delDemandItemList)
|
|
|
+ this.delPlanItemList.push(...delList)
|
|
|
+ console.log('删除的数组',this.delPlanItemList)
|
|
|
},
|
|
|
edit() {
|
|
|
- // this.isList = false
|
|
|
- // this.page = 'edit'
|
|
|
- // this.rowDetail = row
|
|
|
- // this.disable = false
|
|
|
+ this.isFlag = true;
|
|
|
+ this.sonPageStu = 'edit'
|
|
|
+ this.sonDisable = false
|
|
|
+ this.basicForm.mkBoPlanItemList.forEach(item => {
|
|
|
+ item.planCode = this.basicForm.planCode
|
|
|
+ })
|
|
|
},
|
|
|
back() {
|
|
|
this.$emit('jugislist', true)
|
|
@@ -474,6 +500,17 @@ export default {
|
|
|
// }
|
|
|
this.$emit('refresh')
|
|
|
},
|
|
|
+ // 如果需要回显则调用详情接口
|
|
|
+ getDetails(row) {
|
|
|
+ getPlanDetail(row.id).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.basicForm = res.data
|
|
|
+ for (let i = 0; i < this.basicForm.mkBoPlanItemList.length; i++) {
|
|
|
+ this.basicForm.mkBoPlanItemList[i].planCode = res.data.planCode
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
// 单元格标红
|
|
|
cellClassName({row, column, rowIndex, columnIndex}) {
|
|
|
if(this.basicForm.isSpeical == 'N' && column.label == '需求可用周期' && Number(row.demandPeriod) > 1.5 && Number(row.demandPeriod) > Number(row.minOrderQty)) {
|
|
@@ -494,8 +531,8 @@ export default {
|
|
|
// 回显参照框
|
|
|
reBackRefer(type, id, title) {
|
|
|
getRefer({type: type, id: id}).then(res => {
|
|
|
- if(type == 'LINKMAN_PARAM') {
|
|
|
- this.linkOptions = res.rows
|
|
|
+ if(type == 'MK_SALESAREA_PARAM') {
|
|
|
+ this.salesAreaOptions = res.rows
|
|
|
}
|
|
|
if (type == 'CUSTOMER_PARAM_ZT') {
|
|
|
this.customerOptions = res.rows
|
|
@@ -503,10 +540,10 @@ export default {
|
|
|
if (type == 'CONTACTS_PARAM') {
|
|
|
this.personOptions = res.rows
|
|
|
}
|
|
|
- if (type == 'DEPT_PARAM') {
|
|
|
- this.deptOptions = res.rows
|
|
|
+ if (type == 'LINKMAN_PARAM') {
|
|
|
+ this.linkOptions = res.rows
|
|
|
}
|
|
|
- if (type == 'MK_SALESAREA_PARAM') {
|
|
|
+ if (type == 'DEPT_PARAM') {
|
|
|
this.deptOptions = res.rows
|
|
|
}
|
|
|
})
|
|
@@ -539,7 +576,7 @@ export default {
|
|
|
this.basicForm.chargerName = selection[0].name
|
|
|
}
|
|
|
if(this.referCondition.type == 'MK_SALESAREA_PARAM') {
|
|
|
- this.personOptions = selection
|
|
|
+ this.salesAreaOptions = selection
|
|
|
this.basicForm.marketingArea = selection[0].id
|
|
|
this.basicForm.marketingAreaName = selection[0].name
|
|
|
}
|
|
@@ -560,7 +597,7 @@ export default {
|
|
|
return date;
|
|
|
},
|
|
|
//获取下周七天日期,day表示想要星期几
|
|
|
- getWeek(day) {
|
|
|
+ getNextWeek(day) {
|
|
|
const week = [];
|
|
|
for (let i = 0; i < 7; i++) {
|
|
|
let Stamp = new Date();
|
|
@@ -569,6 +606,13 @@ export default {
|
|
|
week[i] = Stamp.getFullYear() + '-' + (Stamp.getMonth() + 1) + '-' + Stamp.getDate();
|
|
|
}
|
|
|
return week[day - 1];
|
|
|
+ },
|
|
|
+ //新增时默认带出num条明细行
|
|
|
+ defaultDetailLine(num) {
|
|
|
+ for (let i = 0; i < num; i++) {
|
|
|
+ this.addLine(this.getNextWeek(i + 1));
|
|
|
+ }
|
|
|
+ this.isFlag = true;
|
|
|
}
|
|
|
}
|
|
|
}
|