Commit dfb9d7b6 authored by zs嵩's avatar zs嵩

6

parent 225acd64
...@@ -213,18 +213,21 @@ ...@@ -213,18 +213,21 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('主营类别')" prop="productTypes"> <el-form-item :label="$t('主营类别')">
<el-row :gutter="10"> <el-row :gutter="10" v-for="(ITEM, INDEX) in form.products" :key="INDEX">
<el-col :span="11"> <el-col :span="10">
<el-select @change="change" v-model="form.productTypes" filterable multiple :placeholder="$t('请选择产品类别')"> <el-select @change="change(INDEX, $event)" v-model="form.products[INDEX].typeId" filterable :placeholder="$t('请选择产品类别')">
<el-option :label="isChinese ? item.titleZh : item.titleEn" :value="item.id" v-for="item in productTypeList" :key="item.id" /> <el-option :label="isChinese ? item.titleZh : item.titleEn" :value="item.id" v-for="item in productTypeList" :key="item.id" />
</el-select> </el-select>
</el-col> </el-col>
<el-col :span="11"> <el-col :span="10">
<el-select @change="productIdsChange" multiple filterable clearable v-model="form.productIds" :placeholder="$t('请选择')"> <el-select @change="productIdsChange(INDEX, $event)" multiple filterable clearable v-model="form.products[INDEX].productIds" :placeholder="$t('请选择')">
<el-option :label="`${isChinese ? item.typeTitleZh : item.typeTitleEn}: ${item.titleZh}`" :value="parseInt(item.id)" v-for="item in productList" :key="item.id" /> <el-option :label="`${isChinese ? item.typeTitleZh : item.typeTitleEn}: ${item.titleZh}`" :value="parseInt(item.id)" v-for="item in form.products[INDEX].productList" :key="item.id" />
</el-select> </el-select>
</el-col> </el-col>
<el-col :span="2">
<el-button size="small" type="default" @click="handleAddProduct">+</el-button>
</el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -614,7 +617,7 @@ import { getDictDatas, DICT_TYPE } from "@/utils/dict" ...@@ -614,7 +617,7 @@ import { getDictDatas, DICT_TYPE } from "@/utils/dict"
import upload from "@/components/ImageUpload" import upload from "@/components/ImageUpload"
import { createCustomer, getCustomer, getCustomerList, getCustomerPage, memberUserList, updateCustomer, userMemberUserList, getCustomerLines, fillupCustomeInfo, getServiceNetwork, addCompetitor, competitorListAll } from "@/api/ecw/customer" import { createCustomer, getCustomer, getCustomerList, getCustomerPage, memberUserList, updateCustomer, userMemberUserList, getCustomerLines, fillupCustomeInfo, getServiceNetwork, addCompetitor, competitorListAll } from "@/api/ecw/customer"
import { getNodeList } from "@/api/ecw/node" import { getNodeList } from "@/api/ecw/node"
import user from "@/store/modules/user" import user from "@/store/modules/user"
import { getProductTypeList } from "@/api/ecw/productType" import { getProductTypeList } from "@/api/ecw/productType"
import { getProductList } from "@/api/ecw/product" import { getProductList } from "@/api/ecw/product"
import { getTradeCityList } from "@/api/ecw/region" import { getTradeCityList } from "@/api/ecw/region"
...@@ -695,8 +698,8 @@ export default { ...@@ -695,8 +698,8 @@ export default {
} }
// 掉入公海时间 // 掉入公海时间
this.enterOpenSeaTime = this.form.estimateEnterOpenSeaTime || this.form.enterOpenSeaTime || undefined this.enterOpenSeaTime = this.form.estimateEnterOpenSeaTime || this.form.enterOpenSeaTime || undefined
if (!this.form.customerService || (this.form.customerService !== user.state.id)){ if (!this.form.customerService || this.form.customerService !== user.state.id) {
console.log(!this.form.customerService? "当前客户没有客户经理" : "与当前登录用户的客户经理不同") console.log(!this.form.customerService ? "当前客户没有客户经理" : "与当前登录用户的客户经理不同")
// 当前客户没有客户经理,或者与当前登录用户的客户经理不同, 可以不校验部分必填字段 // 当前客户没有客户经理,或者与当前登录用户的客户经理不同, 可以不校验部分必填字段
// 2024-12-03 客户-编辑,当客户所属客户经理非当前用户,保存必填校验去掉客户类别,常用提货网点,业务国家,主营类别 // 2024-12-03 客户-编辑,当客户所属客户经理非当前用户,保存必填校验去掉客户类别,常用提货网点,业务国家,主营类别
// 2024-12-05 客户-编辑,当客户所属客户经理非当前用户,保存必填校验去补充掉竞争对手 // 2024-12-05 客户-编辑,当客户所属客户经理非当前用户,保存必填校验去补充掉竞争对手
...@@ -709,36 +712,36 @@ export default { ...@@ -709,36 +712,36 @@ export default {
trigger: "blur" trigger: "blur"
} }
], ],
country: [{ required: true, message: this.$t("国家不能为空"), trigger: "blur" }], country: [{ required: true, message: this.$t("国家不能为空"), trigger: "blur" }],
level: [ level: [
{ {
required: true, required: true,
message: this.$t("客户等级不能为空"), message: this.$t("客户等级不能为空"),
trigger: "blur" trigger: "blur"
} }
], ],
createTime: [ createTime: [
{ {
required: true, required: true,
message: this.$t("创建时间不能为空"), message: this.$t("创建时间不能为空"),
trigger: "blur" trigger: "blur"
} }
], ],
source: [ source: [
{ {
required: true, required: true,
message: this.$t("客户来源不能为空"), message: this.$t("客户来源不能为空"),
trigger: "blur" trigger: "blur"
} }
], ],
customerService: [ customerService: [
{ {
required: this.customerId === "0", required: this.customerId === "0",
message: this.$t("客户经理不能为空"), message: this.$t("客户经理不能为空"),
trigger: "blur" trigger: "blur"
} }
], ],
status: [ status: [
{ {
required: true, required: true,
message: this.$t("客户状态不能为空"), message: this.$t("客户状态不能为空"),
...@@ -760,7 +763,7 @@ export default { ...@@ -760,7 +763,7 @@ export default {
} }
}) })
// 判断当前客登录用户是否为当前客户的客户经理 // 判断当前客登录用户是否为当前客户的客户经理
this.getProductListFn([]) this.getProductListFn(0, [undefined])
} else { } else {
this.getZhongPao() this.getZhongPao()
// 新建客户 // 新建客户
...@@ -768,7 +771,8 @@ export default { ...@@ -768,7 +771,8 @@ export default {
if (this.isCustomerServiceConfirmed) { if (this.isCustomerServiceConfirmed) {
this.form.customerService = this.userId this.form.customerService = this.userId
} }
this.getProductListFn([]) this.form.products.push({ typeId: undefined, productIds: [], productList: [] })
this.getProductListFn(0, [undefined])
} }
getNodeList().then((r) => { getNodeList().then((r) => {
...@@ -906,7 +910,7 @@ export default { ...@@ -906,7 +910,7 @@ export default {
// 网点 // 网点
nodeList: [], nodeList: [],
productTypeList: [], productTypeList: [],
productList: [], productList: {},
showZhong: false, showZhong: false,
showZhong1: false, showZhong1: false,
showPao: false, showPao: false,
...@@ -941,25 +945,33 @@ export default { ...@@ -941,25 +945,33 @@ export default {
deleteEmail(row, index) { deleteEmail(row, index) {
row.splice(index, 1) row.splice(index, 1)
}, },
change(val) { change(INDEX, val) {
this.form.productIds = [] this.form.productIds = []
this.getProductListFn(val) this.getProductListFn(INDEX, [val])
}, },
getProductListFn(val) { getProductListFn(INDEX, val) {
getProductList({ typeIds: val }).then((r) => { console.log(INDEX, val, 11111111111111)
this.productList = r.data
getProductList({ typeIds: !val[0] ? [] : val }).then((r) => {
console.log(r, 2222)
this.form.products[INDEX].productList = r.data
}) })
}, },
productIdsChange(val) { handleAddProduct(){
console.log(val) this.form.products.push({ typeId: undefined, productIds: [], productList: [] })
let typeIds = this.productList.filter((item) => val.indexOf(item.id) > -1).map((item) => item.typeId) this.getProductListFn(this.form.products.length-1, [undefined])
},
productIdsChange(INDEX, val) {
let typeIds = this.form.products[INDEX].productList.filter((item) => val.indexOf(item.id) > -1).map((item) => item.typeId)
typeIds = [...new Set(typeIds)] typeIds = [...new Set(typeIds)]
console.log(typeIds) let typeId = undefined
typeIds.forEach((item) => { if (typeIds.length) {
if (this.form.productTypes.indexOf(item) < 0) { typeId = typeIds[0]
this.form.productTypes.push(item) }
} if (typeId !== this.form.products[INDEX].typeId) {
}) this.form.products[INDEX].typeId = typeId
this.getProductListFn(INDEX, [typeId])
}
}, },
deleteBankData(index) { deleteBankData(index) {
this.form.customerBanks.splice(index, 1) this.form.customerBanks.splice(index, 1)
...@@ -1212,6 +1224,7 @@ export default { ...@@ -1212,6 +1224,7 @@ export default {
productTypes: [], productTypes: [],
pickupPoints: [], pickupPoints: [],
productIds: [], productIds: [],
products: [],
memberId: undefined, memberId: undefined,
birthday: undefined, birthday: undefined,
balance: undefined, balance: undefined,
...@@ -1279,9 +1292,12 @@ export default { ...@@ -1279,9 +1292,12 @@ export default {
competitorIds: Number(response.data.competitorIds), competitorIds: Number(response.data.competitorIds),
productTypes: this.stringArrToNumberArr(response.data.productTypes) productTypes: this.stringArrToNumberArr(response.data.productTypes)
} }
if (this.form.productTypes.length) { if (!this.form.products.length) {
this.getProductListFn(this.form.productTypes) this.form.products.push({ typeId: undefined, productIds: [], productList: [] })
} }
this.form.products.forEach((ITEM, INDEX) => {
this.getProductListFn(INDEX, [ITEM.typeId])
})
console.log(this.form) console.log(this.form)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment