|
@@ -20,7 +20,7 @@
|
|
|
<el-input
|
|
|
v-model.trim="basicForm.planName"
|
|
|
size="mini"
|
|
|
- :disabled="sonDisable"
|
|
|
+ :readonly="sonDisable"
|
|
|
clearable
|
|
|
style="width: 200px"
|
|
|
/>
|
|
@@ -28,6 +28,15 @@
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="1.5">
|
|
|
+ <el-form-item label="线路类型" prop="type">
|
|
|
+ <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>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="1.5">
|
|
|
<el-form-item label="执行人" prop="chargerName">
|
|
|
<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" />
|
|
@@ -36,6 +45,19 @@
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="1.5">
|
|
|
+ <el-form-item label="确认状态" prop="state">
|
|
|
+ <el-select disabled v-model="basicForm.state" size="mini" style="width: 200px">
|
|
|
+ <el-option v-for="dict in dict.type.mk_plan_state" :key="dict.value" :label="dict.label" :value="dict.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-row :gutter="10">
|
|
|
+
|
|
|
+ <el-col :span="1.5">
|
|
|
<el-form-item label="开始时间" prop="startDate" :rules="{ required: true, message: '请选择开始时间', trigger: 'blur' }">
|
|
|
<el-date-picker
|
|
|
v-model="basicForm.startDate"
|
|
@@ -43,7 +65,6 @@
|
|
|
clearable
|
|
|
type="date"
|
|
|
value-format="yyyy-MM-dd"
|
|
|
- @change="changePlanDate"
|
|
|
size="mini"
|
|
|
style="width: 200px"
|
|
|
>
|
|
@@ -59,7 +80,6 @@
|
|
|
clearable
|
|
|
type="date"
|
|
|
value-format="yyyy-MM-dd"
|
|
|
- @change="changePlanDate"
|
|
|
size="mini"
|
|
|
style="width: 200px"
|
|
|
>
|
|
@@ -93,19 +113,13 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
- <el-col :span="1.5">
|
|
|
- <el-form-item label="确认状态" prop="state">
|
|
|
- <el-select disabled v-model="basicForm.state" size="mini" style="width: 200px">
|
|
|
- <el-option v-for="dict in dict.type.mk_plan_state" :key="dict.value" :label="dict.label" :value="dict.value">
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
</el-row>
|
|
|
|
|
|
<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="delItems" v-if="sonPageStu == 'edit'">批量删除</el-button>
|
|
|
+ <el-button type="primary" size="mini" @click="edit" v-if="sonPageStu == 'check'">编辑</el-button>
|
|
|
</div>
|
|
|
|
|
|
<el-table
|
|
@@ -116,82 +130,82 @@
|
|
|
@selection-change="handleSelectionChange"
|
|
|
:cell-class-name="cellClassName"
|
|
|
>
|
|
|
- <el-table-column show-overflow-tooltip type="selection"/>
|
|
|
- <el-table-column show-overflow-tooltip label="序号" type="index" align="center"/>
|
|
|
- <el-table-column show-overflow-tooltip label="计划编号" prop="planCode" width="150"/>
|
|
|
- <el-table-column show-overflow-tooltip label="日期" prop="date" width="230px">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'date'" :rules="{ required: true, message: '请填写日期', trigger: 'blur' }">
|
|
|
- <el-date-picker
|
|
|
- v-model="scope.row.date"
|
|
|
- :readonly="sonDisable"
|
|
|
- clearable
|
|
|
- type="date"
|
|
|
- size="mini"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- placeholder="选择日期">
|
|
|
- </el-date-picker>
|
|
|
- </el-form-item>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+ <el-table-column type="selection" align="center"/>
|
|
|
+ <el-table-column label="序号" type="index" align="center"/>
|
|
|
+ <el-table-column show-overflow-tooltip label="计划编号" prop="planCode" width="150"/>
|
|
|
+ <el-table-column show-overflow-tooltip label="日期" prop="date" width="230px">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'date'" :rules="{ required: true, message: '请填写日期', trigger: 'blur' }">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="scope.row.date"
|
|
|
+ readonly
|
|
|
+ clearable
|
|
|
+ type="date"
|
|
|
+ size="mini"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
|
|
|
- <el-table-column show-overflow-tooltip label="客户名称" prop="customerName" min-width="230">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-form-item class="hang">
|
|
|
- <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>
|
|
|
- </el-form-item>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+ <el-table-column show-overflow-tooltip label="客户名称" prop="customerName" min-width="230">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item class="hang">
|
|
|
+ <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>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
|
|
|
- <el-table-column show-overflow-tooltip label="联系人" prop="contactName" min-width="230">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-form-item class="hang">
|
|
|
- <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>
|
|
|
- </el-form-item>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+ <el-table-column show-overflow-tooltip label="联系人" prop="contactName" min-width="230">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item class="hang">
|
|
|
+ <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>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
|
|
|
- <el-table-column show-overflow-tooltip label="详细地址" prop="address" min-width="200">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-form-item class="hang">
|
|
|
- <el-input clearable :readonly="sonDisable" size="mini" v-model="scope.row.address"/>
|
|
|
- </el-form-item>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+ <el-table-column show-overflow-tooltip label="详细地址" prop="address" min-width="200">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item class="hang">
|
|
|
+ <el-input clearable :readonly="sonDisable" size="mini" v-model="scope.row.address"/>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
|
|
|
- <el-table-column show-overflow-tooltip label="拜访目的" prop="purpose" min-width="200">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-form-item class="hang">
|
|
|
- <el-select clearable 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>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+ <el-table-column show-overflow-tooltip label="拜访目的" prop="purpose" min-width="200">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item class="hang">
|
|
|
+ <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>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
|
|
|
- <el-table-column show-overflow-tooltip label="商机" prop="boName" min-width="200"/>
|
|
|
- <el-table-column show-overflow-tooltip label="营销活动" prop="marketingCampaign" min-width="200">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-form-item class="hang">
|
|
|
- <el-input clearable :readonly="sonDisable" size="mini" v-model="scope.row.marketingCampaign"/>
|
|
|
- </el-form-item>
|
|
|
- </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="marketingCampaign" min-width="200">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item class="hang">
|
|
|
+ <el-input clearable :readonly="sonDisable" size="mini" v-model="scope.row.marketingCampaign"/>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
|
|
|
- <el-table-column
|
|
|
+ <el-table-column
|
|
|
fixed="right"
|
|
|
label="操作"
|
|
|
align="center"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button type="text" size="mini" :disabled="sonDisable" @click="delLine(scope.$index, scope.row)">删除</el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button type="text" size="mini" :disabled="sonDisable" @click="delLine(scope.$index, scope.row)">删除</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table>
|
|
|
</el-form>
|
|
|
</el-card>
|
|
@@ -209,26 +223,21 @@
|
|
|
|
|
|
<Refers ref="refer" @doSubmit="selectionsToInput" :single="true"/>
|
|
|
|
|
|
- <!-- <popDialog ref="materialRefer" @doSubmit="selectMaterial" :single="true" /> -->
|
|
|
-
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import {addPlan, getPlanDetail, editPlan} from '@/api/business/spd/task_management/visitingPlan/visitingPlan.js'
|
|
|
+import {addPlan, getPlanDetail, editPlan, delPlanItem} from '@/api/business/spd/task_management/visitingPlan/visitingPlan.js'
|
|
|
import Refers from '@/components/Refers/refers.vue'
|
|
|
// 用于回显参照框数据
|
|
|
import {getRefer} from '@/api/purchase/basic.js'
|
|
|
-// 明细行选择物料参照
|
|
|
-import popDialog from '@/components/PopDialog/index.vue'
|
|
|
export default {
|
|
|
name: 'addPlanList',
|
|
|
- props: ['pageStu','row', 'disable'],
|
|
|
- dicts: ['mk_plan_state', 'mk_bo_behavior_goal'],
|
|
|
+ props: ['pageStu', 'row', 'disable'],
|
|
|
+ dicts: ['mk_plan_state', 'mk_plan_route_type', 'mk_bo_behavior_goal'],
|
|
|
components: {
|
|
|
- Refers,
|
|
|
- popDialog
|
|
|
+ Refers
|
|
|
},
|
|
|
model: {
|
|
|
prop: 'isList',
|
|
@@ -239,9 +248,9 @@ export default {
|
|
|
// 不能直接改变props传来的值
|
|
|
sonPageStu: this.pageStu,
|
|
|
sonDisable: this.disable,
|
|
|
- dialog: {
|
|
|
- config: false
|
|
|
- },
|
|
|
+ // dialog: {
|
|
|
+ // config: false
|
|
|
+ // },
|
|
|
basicForm: {
|
|
|
id: '',
|
|
|
planId: '',
|
|
@@ -249,10 +258,11 @@ export default {
|
|
|
planName :'',
|
|
|
charger: '',
|
|
|
chargerName: '',
|
|
|
+ type: '0',
|
|
|
dept: '',
|
|
|
deptName: '',
|
|
|
- startDate: '',
|
|
|
- deadlineTime: '',
|
|
|
+ startDate: this.getWeek(1),
|
|
|
+ deadlineTime: this.getWeek(7),
|
|
|
date: '',
|
|
|
marketingArea: '',
|
|
|
marketingAreaName: '',
|
|
@@ -269,11 +279,6 @@ export default {
|
|
|
mkBoPlanItemList: []
|
|
|
},
|
|
|
delDemandItemList: [],
|
|
|
- options: [{
|
|
|
- value: 'Y', label: '是',
|
|
|
- }, {
|
|
|
- value: 'N', label: '否'
|
|
|
- }],
|
|
|
basicRules: {},
|
|
|
tableList: [],
|
|
|
referCondition: {
|
|
@@ -313,17 +318,6 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods:{
|
|
|
- // 改变单据日期时清空子表的日期
|
|
|
- changePlanDate() {
|
|
|
- this.basicForm.mkBoPlanItemList.forEach(item => {
|
|
|
- item.deliveryDate = null
|
|
|
- })
|
|
|
- },
|
|
|
- // 清空
|
|
|
- cleanYLSL(scope) {
|
|
|
- scope.row.reservedQty = ''
|
|
|
- scope.row.reservedPeriod = ''
|
|
|
- },
|
|
|
handleData() {
|
|
|
console.log('222')
|
|
|
// 复制新增把id,编码,创建人置为空,子表去掉id
|
|
@@ -351,31 +345,9 @@ export default {
|
|
|
if (res.code === 200) {
|
|
|
// console.log('res', res)
|
|
|
this.basicForm = res.data
|
|
|
- for (let i = 0; i < this.basicForm.mkBoPlanItemList.length; i++) {
|
|
|
- this.basicForm.mkBoPlanItemList[i].planCode = res.data.planCode
|
|
|
- }
|
|
|
- // console.log('this.basicForm.mkBoPlanItemList.planCode', this.basicForm.mkBoPlanItemList.planCode)
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
- // getDetails(row) {
|
|
|
- // getPlanDetail(row.id).then(res => {
|
|
|
- // if (res.code === 200) {
|
|
|
- // // this.basicForm = res.data
|
|
|
- // console.log('res', res)
|
|
|
- // let reciveForm = res.data
|
|
|
- // let params = {...{id: row.id}, ...{pageNum:1, pageSize: 10}}
|
|
|
- // getPlanSonDetail(params.id).then(res => {
|
|
|
- // if (res.code === 200) {
|
|
|
- // reciveForm.mkBoPlanItemList = res.data
|
|
|
- // console.log('reciveForm',reciveForm)
|
|
|
- // this.basicForm = reciveForm
|
|
|
- // }
|
|
|
- // })
|
|
|
- // }
|
|
|
- // })
|
|
|
- // },
|
|
|
-
|
|
|
async save() {
|
|
|
if(this.basicForm.mkBoPlanItemList.length !== 0) {
|
|
|
this.$refs['basic'].validate((valid) => {
|
|
@@ -436,7 +408,7 @@ export default {
|
|
|
id: null,
|
|
|
planId: null,
|
|
|
planCode: null,
|
|
|
- date: null,
|
|
|
+ date: this.getCurrentTime(),
|
|
|
customer: null,
|
|
|
customerName: null,
|
|
|
contact: null,
|
|
@@ -446,14 +418,6 @@ export default {
|
|
|
bo: null,
|
|
|
boName: null,
|
|
|
marketingCampaign: null,
|
|
|
- tenantId: null,
|
|
|
- revision: null,
|
|
|
- createBy: null,
|
|
|
- createByName: null,
|
|
|
- createTime: null,
|
|
|
- updateBy: null,
|
|
|
- updateByName: null,
|
|
|
- updateTime: null,
|
|
|
delFlag: 0,
|
|
|
// 新增字段
|
|
|
model: null,
|
|
@@ -462,6 +426,22 @@ export default {
|
|
|
}
|
|
|
this.basicForm.mkBoPlanItemList.push(newLine)
|
|
|
},
|
|
|
+ // 批量删除按钮
|
|
|
+ delItems() {
|
|
|
+ if(this.ids.length == 0) {
|
|
|
+ this.$modal.msgWarning("请选中至少一条数据");
|
|
|
+ } else {
|
|
|
+ let param = this.ids.join()
|
|
|
+ this.$modal.confirm('确认信息').then(() => {
|
|
|
+ delPlanItem(param).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$modal.msgSuccess("删除成功");
|
|
|
+ this.getDetails(this.row)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }).catch(() => {})
|
|
|
+ }
|
|
|
+ },
|
|
|
delLine(index, row) {
|
|
|
console.log('删除行:', index)
|
|
|
console.log('改变行:', row)
|
|
@@ -480,7 +460,12 @@ export default {
|
|
|
this.delDemandItemList.push(...delList)
|
|
|
console.log('删除的数组',this.delDemandItemList)
|
|
|
},
|
|
|
-
|
|
|
+ edit() {
|
|
|
+ // this.isList = false
|
|
|
+ // this.page = 'edit'
|
|
|
+ // this.rowDetail = row
|
|
|
+ // this.disable = false
|
|
|
+ },
|
|
|
back() {
|
|
|
this.$emit('jugislist', true)
|
|
|
// let queryParams = {
|
|
@@ -495,11 +480,16 @@ export default {
|
|
|
return 'success-row';
|
|
|
}
|
|
|
},
|
|
|
+ // handleSelectionChange(selection) {
|
|
|
+ // this.ids = selection.map(item =>{
|
|
|
+ // return item.id
|
|
|
+ // })
|
|
|
+ // console.log('选中数组', this.ids)
|
|
|
+ // },
|
|
|
handleSelectionChange(selection) {
|
|
|
- this.ids = selection.map(item =>{
|
|
|
- return item.id
|
|
|
- })
|
|
|
- console.log('选中数组', this.ids)
|
|
|
+ console.log('选中', selection)
|
|
|
+ this.ids = selection.map(item => item.id)
|
|
|
+ console.log('选中数组', this.ids.join())
|
|
|
},
|
|
|
// 回显参照框
|
|
|
reBackRefer(type, id, title) {
|
|
@@ -564,13 +554,22 @@ export default {
|
|
|
this.basicForm.mkBoPlanItemList[this.tableIndex].contactName = selection[0].name
|
|
|
}
|
|
|
},
|
|
|
- // tableRowClassName({ row, rowIndex }) {
|
|
|
- // row.index = rowIndex;
|
|
|
- // },
|
|
|
- // rowClick(row){
|
|
|
- // this.tableIndex = row.index;
|
|
|
- // console.log("row.index",row.index);
|
|
|
- // }
|
|
|
+ //获取当前时间
|
|
|
+ getCurrentTime() {
|
|
|
+ let date = new Date();
|
|
|
+ return date;
|
|
|
+ },
|
|
|
+ //获取下周七天日期,day表示想要星期几
|
|
|
+ getWeek(day) {
|
|
|
+ const week = [];
|
|
|
+ for (let i = 0; i < 7; i++) {
|
|
|
+ let Stamp = new Date();
|
|
|
+ let num = 7-Stamp.getDay() + 1 + i;
|
|
|
+ Stamp.setDate(Stamp.getDate() + num);
|
|
|
+ week[i] = Stamp.getFullYear() + '-' + (Stamp.getMonth() + 1) + '-' + Stamp.getDate();
|
|
|
+ }
|
|
|
+ return week[day - 1];
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|