Commit d426fd2e authored by dragondean@qq.com's avatar dragondean@qq.com

Merge remote-tracking branch 'origin/pre-release' into pre-release

# Conflicts:
#	src/views/ecw/order/edit.vue
parents 4cbe0f49 306ee654
......@@ -10,7 +10,7 @@ ENV = 'staging'
VUE_APP_BASE_API = 'https://api.jd.qipx.top'
# 静态资源地址
# PUBLIC_PATH = 'https://static.jd.qipx.top/'
PUBLIC_PATH = 'https://static.jd.qipx.top/'
# 多租户的开关
VUE_APP_TENANT_ENABLE = false
......
<template>
<div class="dict-selector">
<selector v-model="valueSync" :options="countryList" value-field="tel" key-field="id" :label-field="item => $l(item, 'name') + ' +' + item.tel" filterable clearable :disabled="disabled"></selector>
</div>
</template>
<script>
import {getCountryListAll} from '@/api/ecw/country'
......
......@@ -165,6 +165,7 @@ export const DICT_TYPE = {
CUSTOMER_ROLE: 'customer_role', //角色
CUSTOMER_FOLLOWUP_TYPE: 'customer_followup_type', //跟进类型
CUSTOMER_FOLLOWUP_METHOD: 'customer_followup_method', //跟进方式
CUSTOMER_FOLLOWUP_SALE_STAGE: 'sale_stage', //销售阶段
CUSTOMER_FOLLOWUP_RESULT_TYPE: 'customer_followup_result_type', //跟进结果
CUSTOMER_FOLLOWUP_STATUS: 'customer_followup_status', //跟进状态
CUSTOMER_QUERY_NUMBER_FIELD: "customer_query_number_field", //客户查询数字字段
......
......@@ -758,11 +758,11 @@ export default {
// }
//目的国
if (this.countryIdList != null && this.countryIdList != "") {
obj.countryIdLists = this.countryIdList
obj.countryIdList = this.countryIdList
}
//目的城市
if (this.destCityIdList != null && this.destCityIdList != "") {
obj.destCityIdLists = this.destCityIdList
obj.destCityIdList = this.destCityIdList
}
//目的仓
if (this.destWarehouseIdList != null && this.destWarehouseIdList != "") {
......@@ -913,7 +913,7 @@ export default {
this.handleDelete(row);
break;
case "editLadingBill":
let line = await getLineInfo({startWarehouseId: row.startWarehouseId,destWarehouseIdList: row.destWarehouseIdList,transportType:row.transportType})
let line = await getLineInfo({startWarehouseId: row.startWarehouseId,destWarehouseId: row.destWarehouseId,transportType:row.transportType})
let makeBillNode = line.data.makeBillNode
console.log(row,this.makeBillNodeStatus[makeBillNode])
if(row.shipmentStatusAir<this.makeBillNodeStatus[makeBillNode]){
......
......@@ -969,11 +969,11 @@ export default {
// }
//目的国
if (this.countryIdList != null && this.countryIdList != "") {
obj.countryIdLists = this.countryIdList
obj.countryIdList = this.countryIdList
}
//目的城市
if (this.destCityIdList != null && this.destCityIdList != "") {
obj.destCityIdLists = this.destCityIdList
obj.destCityIdList = this.destCityIdList
}
//目的仓
if (this.destWarehouseIdList != null && this.destWarehouseIdList != "") {
......
......@@ -78,6 +78,13 @@
<el-input v-model="form.parentNumber" :placeholder="$t('请输入上一级跟进单')" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('销售阶段')" prop="followMethod">
<el-select v-model="form.saleStage" clearable :placeholder="$t('请选择')" :disabled="isView">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_SALE_STAGE)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('跟进结果')" prop="followMethod">
<el-select v-model="form.resultType" clearable :placeholder="$t('请选择')" :disabled="isView">
......@@ -173,7 +180,7 @@
<script>
import { addCustomerFollow, editCustomerFollow, getFollowupNewNumber } from "@/api/ecw/customerFollow"
import { getCustomerContactsSelect } from "@/api/ecw/customerContacts"
import {getOfferPage, getOfferNumber, getOffer} from "@/api/ecw/offer"
import { getOfferPage, getOfferNumber, getOffer } from "@/api/ecw/offer"
import { DICT_TYPE, getDictDataLabel } from "@/utils/dict"
import { getCustomerContactsListByCustomer } from "@/api/ecw/customerContacts"
import { listAllSimpl, listServiceUser, listSimpleUsers } from "@/api/system/user"
......@@ -264,13 +271,14 @@ export default {
// 选择了报价单后,需要将报价单中的客户及客户联系人信息回显
this.form.offerNumber = offer.number
this.form.customerId = offer.relationId
this.customerId = offer.relationId
this.form.contactId = offer.relation === 1 ? offer.consignorId : offer.consigneeId
getCustomerContactsListByCustomer({
customerId: this.form.customerId
}).then((res) => {
this.customerContactsList = res.data
this.customerContactsList.forEach((item) =>{
if (item.id === this.form.contactId){
this.customerContactsList.forEach((item) => {
if (item.id === this.form.contactId) {
this.form.customerNumber = item.customerNumber
this.form.contactName = item.name
this.form.contactPhone = "+" + item.areaCode + item.phoneNew
......@@ -282,6 +290,25 @@ export default {
} else {
this.form.offerNumber = ""
}
},
"form.customerId"(v) {
if (v) {
getCustomerContactsListByCustomer({
customerId: v
}).then((res) => {
this.customerContactsList = res.data
this.customerContactsList.forEach((item) => {
if (item.id === this.form.contactId) {
this.form.customerNumber = item.customerNumber
this.form.contactName = item.name
this.form.contactPhone = "+" + item.areaCode + item.phoneNew
this.form.followUserId = item.customerService
}
})
})
} else {
this.form.customerNumber = ""
}
}
},
methods: {
......@@ -317,6 +344,7 @@ export default {
this.form.contactId = item.customerContactsId
this.form.contactName = item.contactsName
this.form.customerId = item.customerId
this.customerId = item.customerId
this.form.contactPhone = "+" + item.areaCode + item.phoneNew
if (item.customerService) this.form.followUserId = item.customerService
if (item.customerNumber) this.form.customerNumber = item.customerNumber
......@@ -334,6 +362,7 @@ export default {
this.form.contactId = item.id
this.form.contactName = item.name
this.form.customerId = item.customerId
this.customerId = item.customerId
this.form.contactPhone = "+" + item.areaCode + item.phoneNew
if (item.customerService) this.form.followUserId = item.customerService
if (item.customerNumber) this.form.customerNumber = item.customerNumber
......@@ -379,6 +408,7 @@ export default {
parentId: undefined,
parentNumber: undefined,
purpose: undefined,
saleStage: undefined,
resultType: undefined,
status: undefined,
creatorName: this.$store.getters.userId,
......@@ -543,7 +573,16 @@ export default {
}
</script>
<style scoped>
<style scoped lang="scss">
.border {
padding: 10px;
border: 1px solid #dcdfe6;
border-radius: 4px;
::v-deep .el-textarea__inner {
padding: 0 4px;
border: 0;
}
}
.text_style {
white-space: pre-wrap;
}
......
......@@ -441,7 +441,7 @@ export default {
this.$message.success(this.$t("保留客户和非主客户不能为同一客户"))
return
}
this.$confirm('保留客户和非主客户,不能在两个不同的客户经理名下,请先确认两个客户在同一个客户经理名下,不允许提交当非主客户/保留客户在移交过程中,不允许合并', '提示', {
this.$confirm('保留客户和非主客户,不能在两个不同的客户经理名下,请先确认两个客户在同一个客户经理名下,不允许提交当非主客户/保留客户在移交过程中,不允许合并', '提示', {
confirmButtonText: this.$t('确定'),
cancelButtonText: this.$t('取消')
}).then(() => {
......
......@@ -201,6 +201,10 @@ export default {
beginOldEstimateEnterOpenSeaTime:null,
endNewEstimateEnterOpenSeaTime:null,
endOldEstimateEnterOpenSeaTime:null,
memberCode: null,
memberName: null,
memberMobile: null,
memberAreaCode: null,
customerId:this.customerId
}
},
......
......@@ -127,6 +127,21 @@
<el-option :label="$t('否')" :value="0" />
</el-select>
</el-form-item>
<el-form-item :label="$t('会员电话')" prop="department" label-width="100px">
<el-input :placeholder="$t('请输入会员电话')" class="w-200" clearable v-model.trim="queryParams.memberMobile" @input="queryParams.memberMobile = queryParams.memberMobile.replace(/\s+/g, '')">
<template slot="prepend">
<area-code-selector v-model="queryParams.memberAreaCode" class="w-50"/>
</template>
</el-input>
</el-form-item>
<el-form-item :label="$t('会员编号')" prop="number">
<el-input
v-model.trim="queryParams.memberCode"
:placeholder="$t('请输入会员编号')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('控货无收货人')" v-show="showSearch" label-width="100px">
<div style="width: 194px">
<el-switch v-model="queryParams.noConsignee" />
......
......@@ -25,19 +25,12 @@
<el-form-item :label="$t('市场获客')" prop="department">
<dict-selector clearable :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.marketType" formatter="number" @change="handleQuery"></dict-selector>
</el-form-item>
<el-form-item :label="$t('会员电话')" prop="department">
<el-col :span="11">
<area-code-selector style="width: 100%;" v-model="queryParams.memberAreaCode" />
</el-col>
<el-col class="line" :span="2"></el-col>
<el-col :span="11">
<el-input maxlength="11"
width="100%"
class="ml-10 w-200"
clearable
v-model.number="queryParams.memberMobile"
:placeholder="$t('请输入会员电话')"/>
</el-col>
<el-form-item :label="$t('会员电话')" prop="department" label-width="100px">
<el-input :placeholder="$t('请输入会员电话')" class="w-200" clearable v-model.trim="queryParams.memberMobile" @input="queryParams.memberMobile = queryParams.memberMobile.replace(/\s+/g, '')">
<template slot="prepend">
<area-code-selector v-model="queryParams.memberAreaCode" class="w-50"/>
</template>
</el-input>
</el-form-item>
<el-form-item :label="$t('会员编号')" prop="number">
<el-input
......@@ -47,14 +40,6 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('会员名称')" prop="name">
<el-input
v-model.trim="queryParams.memberName"
:placeholder="$t('请输入会员名称')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('创建时间')">
<el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
......@@ -251,11 +236,7 @@ export default {
pageSize: 10,
name: null,
source: null,
customerService: null,
memberCode: null,
memberName: null,
memberMobile: null,
memberAreaCode: null
customerService: null
}
this.handleQuery();
},
......
......@@ -128,6 +128,29 @@
<el-option :label="$t('否')" :value="0" />
</el-select>
</el-form-item>
<el-form-item :label="$t('会员电话')" prop="department" label-width="100px">
<el-input :placeholder="$t('请输入会员电话')" class="w-200" clearable v-model.trim="queryParams.memberMobile" @input="queryParams.memberMobile = queryParams.memberMobile.replace(/\s+/g, '')">
<template slot="prepend">
<area-code-selector v-model="queryParams.memberAreaCode" class="w-50"/>
</template>
</el-input>
</el-form-item>
<el-form-item :label="$t('会员编号')" prop="number">
<el-input
v-model.trim="queryParams.memberCode"
:placeholder="$t('请输入会员编号')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('会员名称')" prop="name">
<el-input
v-model.trim="queryParams.memberName"
:placeholder="$t('请输入会员名称')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('控货无收货人')" v-show="showSearch" label-width="100px">
<div style="width: 194px">
<el-switch v-model="queryParams.noConsignee" />
......@@ -143,6 +166,7 @@
<el-switch v-model="queryParams.isShowTidanPrice" />
</div>
</el-form-item>
</div>
<div class="search-time">
<el-form-item :label="$t('入公海时间')" v-show="showSearch">
......
......@@ -128,6 +128,21 @@
<el-option :label="$t('否')" :value="0" />
</el-select>
</el-form-item>
<el-form-item :label="$t('会员电话')" prop="department" label-width="100px">
<el-input :placeholder="$t('请输入会员电话')" class="w-200" clearable v-model.trim="queryParams.memberMobile" @input="queryParams.memberMobile = queryParams.memberMobile.replace(/\s+/g, '')">
<template slot="prepend">
<area-code-selector v-model="queryParams.memberAreaCode" class="w-50"/>
</template>
</el-input>
</el-form-item>
<el-form-item :label="$t('会员编号')" prop="number">
<el-input
v-model.trim="queryParams.memberCode"
:placeholder="$t('请输入会员编号')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('控货无收货人')" v-show="showSearch" label-width="100px">
<div style="width: 194px">
<el-switch v-model="queryParams.noConsignee" />
......
......@@ -128,6 +128,21 @@
<el-option :label="$t('否')" :value="0" />
</el-select>
</el-form-item>
<el-form-item :label="$t('会员电话')" prop="department" label-width="100px">
<el-input :placeholder="$t('请输入会员电话')" class="w-200" clearable v-model.trim="queryParams.memberMobile" @input="queryParams.memberMobile = queryParams.memberMobile.replace(/\s+/g, '')">
<template slot="prepend">
<area-code-selector v-model="queryParams.memberAreaCode" class="w-50"/>
</template>
</el-input>
</el-form-item>
<el-form-item :label="$t('会员编号')" prop="number">
<el-input
v-model.trim="queryParams.memberCode"
:placeholder="$t('请输入会员编号')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('控货无收货人')" v-show="showSearch" label-width="100px">
<div style="width: 194px">
<el-switch v-model="queryParams.noConsignee" />
......
......@@ -129,6 +129,21 @@
<el-option :label="$t('否')" :value="0" />
</el-select>
</el-form-item>
<el-form-item :label="$t('会员电话')" prop="department" label-width="100px">
<el-input :placeholder="$t('请输入会员电话')" class="w-200" clearable v-model.trim="queryParams.memberMobile" @input="queryParams.memberMobile = queryParams.memberMobile.replace(/\s+/g, '')">
<template slot="prepend">
<area-code-selector v-model="queryParams.memberAreaCode" class="w-50"/>
</template>
</el-input>
</el-form-item>
<el-form-item :label="$t('会员编号')" prop="number">
<el-input
v-model.trim="queryParams.memberCode"
:placeholder="$t('请输入会员编号')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('控货无收货人')" v-show="showSearch" label-width="100px">
<div style="width: 194px">
<el-switch v-model="queryParams.noConsignee" />
......
......@@ -394,7 +394,7 @@
<div class="card-title" slot="header">{{ $t("通用") }}</div>
<div class="form-section">
<el-form-item :label="$t('唛头')" prop="marks">
<el-input v-model="form.marks" placeholder="" class="w-200"></el-input>
<el-input v-model.trim="form.marks" placeholder="" class="w-200"></el-input>
</el-form-item>
<el-form-item :label="$t('报关方式')" prop="customsType" label-width="200px">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="form.customsType" form-type="radio" defaultable />
......
......@@ -29,6 +29,9 @@
<el-form-item :label="$t('跟进方式')">
<dict-selector clearable :type="DICT_TYPE.CUSTOMER_FOLLOWUP_METHOD" v-model="followForm.followMethod" @input="handleQuery"></dict-selector>
</el-form-item>
<el-form-item :label="$t('销售阶段')">
<dict-selector clearable :type="DICT_TYPE.CUSTOMER_FOLLOWUP_SALE_STAGE" v-model="followForm.saleStage" @input="handleQuery"></dict-selector>
</el-form-item>
<el-form-item :label="$t('跟进结果')">
<el-select clearable v-model="followForm.resultType" :placeholder="$t('请选择')" size="small" @change="handleQuery">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_RESULT_TYPE)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value" />
......@@ -92,6 +95,7 @@
<el-table-column prop="followMethod" :label="$t('跟进方式')" :formatter="(row, column, cellValue) => getDictDataLabel(DICT_TYPE.CUSTOMER_FOLLOWUP_METHOD, cellValue)"></el-table-column>
<el-table-column prop="purpose" :label="$t('目的')"></el-table-column>
<el-table-column prop="feedback" :label="$t('跟进情况')"></el-table-column>
<el-table-column prop="saleStage" :label="$t('销售阶段')" :formatter="(row, column, cellValue) => getDictDataLabel(DICT_TYPE.CUSTOMER_FOLLOWUP_SALE_STAGE, cellValue)"></el-table-column>
<el-table-column prop="resultType" :label="$t('跟进结果')" :formatter="(row, column, cellValue) => getDictDataLabel(DICT_TYPE.CUSTOMER_FOLLOWUP_RESULT_TYPE, cellValue)"></el-table-column>
<el-table-column :label="$t('下次跟进时间')" align="center">
<template slot-scope="scope">
......
......@@ -30,6 +30,9 @@
<el-form-item :label="$t('跟进方式')">
<dict-selector clearable :type="DICT_TYPE.CUSTOMER_FOLLOWUP_METHOD" v-model="followForm.followMethod" @input="handleQuery"></dict-selector>
</el-form-item>
<el-form-item :label="$t('销售阶段')">
<dict-selector clearable :type="DICT_TYPE.CUSTOMER_FOLLOWUP_SALE_STAGE" v-model="followForm.saleStage" @input="handleQuery"></dict-selector>
</el-form-item>
<el-form-item :label="$t('跟进结果')">
<el-select clearable v-model="followForm.resultType" :placeholder="$t('请选择')" size="small" @change="handleQuery">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_RESULT_TYPE)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value" />
......@@ -90,6 +93,7 @@
<el-table-column prop="followMethod" :label="$t('跟进方式')" :formatter="(row, column, cellValue) => getDictDataLabel(DICT_TYPE.CUSTOMER_FOLLOWUP_METHOD, cellValue)"></el-table-column>
<el-table-column prop="purpose" :label="$t('目的')"></el-table-column>
<el-table-column prop="feedback" :label="$t('跟进情况')"></el-table-column>
<el-table-column prop="saleStage" :label="$t('销售阶段')" :formatter="(row, column, cellValue) => getDictDataLabel(DICT_TYPE.CUSTOMER_FOLLOWUP_SALE_STAGE, cellValue)"></el-table-column>
<el-table-column prop="resultType" :label="$t('跟进结果')" :formatter="(row, column, cellValue) => getDictDataLabel(DICT_TYPE.CUSTOMER_FOLLOWUP_RESULT_TYPE, cellValue)"></el-table-column>
<el-table-column :label="$t('下次跟进时间')" align="center">
<template slot-scope="scope">
......
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