Commit 59c5853b authored by dragondean@qq.com's avatar dragondean@qq.com

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

parents 41bf70a6 12955a48
...@@ -530,7 +530,7 @@ export function changeCustomerDefaultBilling(data){ ...@@ -530,7 +530,7 @@ export function changeCustomerDefaultBilling(data){
export function customerSettingButton(data){ export function customerSettingButton(data){
return request({ return request({
url:'ecw/customer/change-customer-arrival-confirm', url:'ecw/customer/update-customer-setup',
method:'put', method:'put',
data data
}) })
......
...@@ -4707,6 +4707,5 @@ ...@@ -4707,6 +4707,5 @@
"下次跟进时间": "Next follow-up time", "下次跟进时间": "Next follow-up time",
"提交结果": "Submit result", "提交结果": "Submit result",
"增加计划": "add plan", "增加计划": "add plan",
"是否确认导出客户跟进记录数据项?": "Are you sure to export all customer follow-up record data items?", "是否确认导出客户跟进记录数据项?": "Are you sure to export all customer follow-up record data items?"
"请选择需要核销的收款明细": "Please select the collection details that need to be written off"
} }
...@@ -37,6 +37,9 @@ ...@@ -37,6 +37,9 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('客户编号')" align="center" min-width="100"> <el-table-column :label="$t('客户编号')" align="center" min-width="100">
<template slot-scope="{row}">
<el-link type="primary" @click.native="$router.push('/customer/query/' + row.relationId)">{{row.customerNumber}}</el-link>
</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('客户名称')" align="center" prop="relationName" min-width="100" /> <el-table-column :label="$t('客户名称')" align="center" prop="relationName" min-width="100" />
<el-table-column :label="$t('联系方式')"> <el-table-column :label="$t('联系方式')">
...@@ -49,9 +52,9 @@ ...@@ -49,9 +52,9 @@
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('渠道')" align="center" min-width="120"> <el-table-column :label="$t('渠道')" align="center" min-width="120" prop="channelName">
</el-table-column> </el-table-column>
<el-table-column :label="$t('始发地')" align="center" min-width="120"> <el-table-column :label="$t('始发地')" align="center" min-width="120" prop="departureName">
</el-table-column> </el-table-column>
<el-table-column :label="$t('目的地')" align="center" prop="objectiveName" min-width="120" /> <el-table-column :label="$t('目的地')" align="center" prop="objectiveName" min-width="120" />
<el-table-column :label="$t('预计销售额')" min-width="160"> <el-table-column :label="$t('预计销售额')" min-width="160">
...@@ -89,7 +92,7 @@ export default { ...@@ -89,7 +92,7 @@ export default {
UserSelector UserSelector
}, },
props: { props: {
customerId: Number, customerId: Number
}, },
data() { data() {
return { return {
......
...@@ -106,6 +106,7 @@ export default { ...@@ -106,6 +106,7 @@ export default {
return { return {
dialogVisible: false, dialogVisible: false,
form: { form: {
id: 0,
isShowTidanPrice: false, isShowTidanPrice: false,
arrivalConfirm: 0, arrivalConfirm: 0,
weightUnit: null, weightUnit: null,
...@@ -123,7 +124,7 @@ export default { ...@@ -123,7 +124,7 @@ export default {
zhongLines: [], zhongLines: [],
warehouseList: [], // 仓库列表 warehouseList: [], // 仓库列表
importCityList: [], // 进口地址 importCityList: [], // 进口地址
zhongLines: [], paoLines: [],
paoLines: [], paoLines: [],
} }
}, },
...@@ -136,22 +137,16 @@ export default { ...@@ -136,22 +137,16 @@ export default {
}); });
}, },
methods: { methods: {
getZhongPao() {
getZhongPaoBest({
customerId: this.customerId,
// departureId: this.departureId,
// objectiveId: this.objectiveId
}).then((r) => {
if (!this.form.weightUnit) this.form.weightUnit = r.data.zhongEdge;
if (!this.form.lightUnit) this.form.lightUnit = r.data.paoEdge;
});
},
init(id) { init(id) {
this.customerId = id this.customerId = id
this.showZhong = false
this.showPao = false
this.showZhong1 = false
this.showPao1 = false
getCustomer(this.customerId).then((response) => { getCustomer(this.customerId).then((response) => {
const row = response.data const row = response.data
this.form = { this.form = {
customerId: row.id, id: row.id,
isShowTidanPrice: row.isShowTidanPrice, isShowTidanPrice: row.isShowTidanPrice,
arrivalConfirm: row.arrivalConfirm, arrivalConfirm: row.arrivalConfirm,
weightUnit: row.weightUnit, weightUnit: row.weightUnit,
...@@ -177,6 +172,16 @@ export default { ...@@ -177,6 +172,16 @@ export default {
this.getZhongPao() this.getZhongPao()
}) })
}, },
getZhongPao() {
getZhongPaoBest({
customerId: this.customerId,
// departureId: this.departureId,
// objectiveId: this.objectiveId
}).then((r) => {
if (!this.form.weightUnit) this.form.weightUnit = r.data.zhongEdge;
if (!this.form.lightUnit) this.form.lightUnit = r.data.paoEdge;
});
},
handleClose() { handleClose() {
this.resetForm("form") this.resetForm("form")
this.dialogVisible = false this.dialogVisible = false
......
...@@ -69,15 +69,6 @@ ...@@ -69,15 +69,6 @@
@input="queryParams.defaultContactPhone=queryParams.defaultContactPhone.replace(/\s+/g, '')" @input="queryParams.defaultContactPhone=queryParams.defaultContactPhone.replace(/\s+/g, '')"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户类别')" prop="level">
<dict-selector
multiple
clearable
:type="DICT_TYPE.CUSTOMER_TYPE"
v-model="queryParams.type"
@change="handleQuery"
></dict-selector>
</el-form-item>
<el-form-item :label="$t('部门')" v-if="path != '/customer/department-customers'"> <el-form-item :label="$t('部门')" v-if="path != '/customer/department-customers'">
<el-select v-model="queryParams.deptIds" :placeholder="$t('请选择部门')"> <el-select v-model="queryParams.deptIds" :placeholder="$t('请选择部门')">
<el-option v-for="item in deptList" :key="item.id" :label="item.name" :value="item.id"/> <el-option v-for="item in deptList" :key="item.id" :label="item.name" :value="item.id"/>
...@@ -117,7 +108,44 @@ ...@@ -117,7 +108,44 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('国籍')" prop="source"> <el-form-item :label="$t('客户类别')" prop="level">
<dict-selector
multiple
clearable
:type="DICT_TYPE.CUSTOMER_TYPE"
v-model="queryParams.type"
@change="handleQuery"
></dict-selector>
</el-form-item>
<el-form-item :label="$t('角色')">
<dict-selector
multiple
clearable
:type="DICT_TYPE.CUSTOMER_ROLE"
v-model="queryParams.role"
formatter="number"
@change="handleQuery"
:placeholder="$t('请选择')"
></dict-selector>
</el-form-item>
<el-form-item :label="$t('客户状态')" prop="status">
<el-select
multiple
clearable
v-model="queryParams.status"
:placeholder="$t('请选择客户状态')"
size="small"
@change="handleQuery"
>
<el-option
v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key="dict.value"
:label="isChinese ? dict.label : dict.labelEn"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('国籍')" prop="country">
<el-select <el-select
multiple multiple
clearable clearable
...@@ -133,23 +161,43 @@ ...@@ -133,23 +161,43 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户状态')" prop="status"> <el-form-item :label="$t('出货渠道')">
<dict-selector
multiple
clearable
:type="DICT_TYPE.ECW_CUSTOMER_TRANSPORT_TYPE"
v-model="queryParams.transportType"
formatter="number"
@change="handleQuery"
></dict-selector>
</el-form-item>
<el-form-item :label="$t('业务国家')" v-show="showSearch">
<el-select <el-select
multiple multiple
clearable clearable
v-model="queryParams.status" v-model="queryParams.busiCountryIds"
:placeholder="$t('请选择客户状态')" :placeholder="$t('请选择')"
size="small"
@change="handleQuery" @change="handleQuery"
> >
<el-option <el-option
v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)" v-for="dict in countryList"
:key="dict.value" :key="dict.id"
:label="isChinese ? dict.label : dict.labelEn" :label="isChinese ? dict.nameZh : dict.nameEn"
:value="dict.value" :value="parseInt(dict.id)"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('常用提货网点')" v-show="showSearch">
<el-select multiple v-model="queryParams.pickupPoints">
<el-option
v-for="item in getNodeLists"
:key="item.id"
:value="item.id"
:label="isChinese ? item.titleZh : item.titleEn"
></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('创建人')" v-show="showSearch"> <el-form-item :label="$t('创建人')" v-show="showSearch">
<el-select v-model="queryParams.founder"> <el-select v-model="queryParams.founder">
<el-option <el-option
...@@ -225,54 +273,7 @@ ...@@ -225,54 +273,7 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
--> -->
<el-form-item :label="$t('角色')">
<dict-selector
multiple
clearable
:type="DICT_TYPE.CUSTOMER_ROLE"
v-model="queryParams.role"
formatter="number"
@change="handleQuery"
:placeholder="$t('请选择')"
></dict-selector>
</el-form-item>
<el-form-item :label="$t('出货渠道')">
<dict-selector
multiple
clearable
:type="DICT_TYPE.ECW_CUSTOMER_TRANSPORT_TYPE"
v-model="queryParams.transportType"
formatter="number"
@change="handleQuery"
></dict-selector>
</el-form-item>
<el-form-item :label="$t('业务国家')" v-show="showSearch">
<el-select
multiple
clearable
v-model="queryParams.busiCountryIds"
:placeholder="$t('请选择')"
@change="handleQuery"
>
<el-option
v-for="dict in countryList"
:key="dict.id"
:label="isChinese ? dict.nameZh : dict.nameEn"
:value="parseInt(dict.id)"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('常用提货网点')" v-show="showSearch">
<el-select multiple v-model="queryParams.pickupPoints">
<el-option
v-for="item in getNodeLists"
:key="item.id"
:value="item.id"
:label="isChinese ? item.titleZh : item.titleEn"
></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('入公海时间')" v-show="showSearch"> <el-form-item :label="$t('入公海时间')" v-show="showSearch">
<el-date-picker <el-date-picker
type="datetimerange" type="datetimerange"
...@@ -314,7 +315,7 @@ ...@@ -314,7 +315,7 @@
@change="handleSelectProductType" @change="handleSelectProductType"
multiple multiple
v-model="queryParams.productTypes" v-model="queryParams.productTypes"
:placeholder="$t('请选择产品类别')" :placeholder="$t('请选择')"
> >
<el-option <el-option
:label="item.titleZh" :label="item.titleZh"
...@@ -591,42 +592,6 @@ ...@@ -591,42 +592,6 @@
>{{ $t("合并客户") }}</el-button >{{ $t("合并客户") }}</el-button
> >
</el-col> </el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-plus"
size="mini"
:disabled="!selectCustomerList.length"
@click="setDefaultPay"
v-hasPermi="['ecw:customer:change-customer-default-pay']"
>{{ $t("设置默认付款") }}</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-plus"
size="mini"
:disabled="!selectCustomerList.length"
@click="setNoConsignee"
v-hasPermi="['ecw:customer:change-customer-no-consignee']"
>{{ $t("设置默认控货无收货人") }}</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-plus"
size="mini"
:disabled="!selectCustomerList.length"
@click="setDefaultBilling"
v-hasPermi="['ecw:customer:change-customer-default-billing']"
>{{ $t("设置默认开票") }}</el-button
>
</el-col>
<right-toolbar <right-toolbar
:showSearch.sync="showSearch" :showSearch.sync="showSearch"
@queryTable="getList" @queryTable="getList"
...@@ -664,14 +629,7 @@ ...@@ -664,14 +629,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('信用等级')" :prop="isChinese ? 'creditLevelNameZh' : 'creditLevelNameEn'"></el-table-column> <el-table-column :label="$t('信用等级')" :prop="isChinese ? 'creditLevelNameZh' : 'creditLevelNameEn'"></el-table-column>
--> -->
<el-table-column :label="$t('客户状态')" align="center" prop="status">
<template slot-scope="scope">
<dict-tag
:type="DICT_TYPE.CUSTOMER_STATUS"
:value="scope.row.status"
/>
</template>
</el-table-column>
<el-table-column <el-table-column
:label="$t('主联系人')" :label="$t('主联系人')"
prop="defaultContactName" prop="defaultContactName"
...@@ -889,7 +847,7 @@ ...@@ -889,7 +847,7 @@
>{{ $t("报价") }}</el-button >{{ $t("报价") }}</el-button
> >
<el-button <el-button
v-has-permi="[selectAuthorityFn('ecw:customer:treat-quoted-price')]" v-has-permi="['ecw:customer:setting']"
size="mini" size="mini"
type="text" type="text"
icon="el-icon-user" icon="el-icon-user"
...@@ -1401,7 +1359,7 @@ ...@@ -1401,7 +1359,7 @@
<customer-setting <customer-setting
ref="customerSetting" ref="customerSetting"
@refresh="getList" @refresh="getList"
/> ></customer-setting>
<!--业绩类型 --> <!--业绩类型 -->
<el-dialog title="业绩类型" :visible.sync="dialogVisible" width="30%"> <el-dialog title="业绩类型" :visible.sync="dialogVisible" width="30%">
<div> <div>
...@@ -2119,6 +2077,12 @@ export default { ...@@ -2119,6 +2077,12 @@ export default {
this.getList() this.getList()
}) })
}, },
handleSetting(row) {
this.$refs['customerSetting'].dialogVisible = true
this.$nextTick(_ => {
this.$refs['customerSetting'].init(row.id)
})
},
getBusiCountryNames(ids) { getBusiCountryNames(ids) {
if (ids) { if (ids) {
const idsArr = ids.split(',') const idsArr = ids.split(',')
...@@ -2133,12 +2097,6 @@ export default { ...@@ -2133,12 +2097,6 @@ export default {
return null return null
} }
}, },
handleSetting(row) {
this.$refs['customerSetting'].dialogVisible = true
this.$nextTick(_ => {
this.$refs['customerSetting'].init(row.id)
})
},
getBusiCountryNames(ids) { getBusiCountryNames(ids) {
if (ids) { if (ids) {
const idsArr = ids.split(',') const idsArr = ids.split(',')
......
...@@ -50,13 +50,72 @@ ...@@ -50,13 +50,72 @@
<el-descriptions-item :label="$t('归属时间')">{{ customer.customerServiceConfirmedTime }}</el-descriptions-item> <el-descriptions-item :label="$t('归属时间')">{{ customer.customerServiceConfirmedTime }}</el-descriptions-item>
<el-descriptions-item :label="$t('创建人')">{{ customer.founderName }}</el-descriptions-item> <el-descriptions-item :label="$t('创建人')">{{ customer.founderName }}</el-descriptions-item>
<el-descriptions-item :label="$t('创建时间')">{{ parseTime(customer.createTime) }}</el-descriptions-item> <el-descriptions-item :label="$t('创建时间')">{{ parseTime(customer.createTime) }}</el-descriptions-item>
<el-descriptions-item :label="$t('最后更新人')">{{ customer.updater }}</el-descriptions-item> <el-descriptions-item :label="$t('最后更新人')">{{ customer.updaterName }}</el-descriptions-item>
<el-descriptions-item :label="$t('最后更新时间')">{{ customer.updateTime }}</el-descriptions-item> <el-descriptions-item :label="$t('最后更新时间')">{{ customer.updateTime }}</el-descriptions-item>
</template> </template>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
<el-tabs v-model="activeName" style="margin-top: 15px" type="border-card"> <el-tabs v-model="activeName" style="margin-top: 15px" type="border-card">
<el-tab-pane name="contact" :label="$t('联系人')">
<el-table
:data="customerContacts"
style="width: 100%"
border
>
<el-table-column
prop="department"
:label="$t('部门')"
>
</el-table-column>
<el-table-column
prop="position"
:label="$t('职位')"
>
</el-table-column>
<el-table-column
prop="name"
:label="$t('联系人')"
>
</el-table-column>
<el-table-column
prop="nameEn"
:label="$t('联系人英文名称')"
>
</el-table-column>
<el-table-column
prop="phoneNew"
:label="$t('联系方式')"
>
<template v-slot="{row}">
+{{ row.areaCode}} {{row.phoneNew}}
</template>
</el-table-column>
<el-table-column
prop="userid"
:label="$t('关联账号')"
:formatter="userIdFormatter"
>
</el-table-column>
<el-table-column
prop="social"
:label="$t('社交软件')"
:formatter="(row, column, cellValue) => getDictDataLabel(DICT_TYPE.SOCIAL, cellValue)"
>
</el-table-column>
<el-table-column
prop="socialNumber"
:label="$t('社交软件号码')"
>
</el-table-column>
<el-table-column
prop="email"
:label="$t('邮箱')"
>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane name="order" :label="$t('订单')"> <el-tab-pane name="order" :label="$t('订单')">
<el-card class="box-card"> <el-card class="box-card">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
...@@ -633,9 +692,7 @@ ...@@ -633,9 +692,7 @@
<el-descriptions-item :label="$t('付款人姓名')">{{ customer.payerName }}</el-descriptions-item> <el-descriptions-item :label="$t('付款人姓名')">{{ customer.payerName }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-card class="box-card"> <el-card class="box-card">
<div slot="header"> <div slot="header">{{$t('开票信息')}}</div>
开票信息
</div>
<el-descriptions :column="2"> <el-descriptions :column="2">
<el-descriptions-item :label="$t('发票抬头')">{{ customer.invoiceTitle }}</el-descriptions-item> <el-descriptions-item :label="$t('发票抬头')">{{ customer.invoiceTitle }}</el-descriptions-item>
<el-descriptions-item :label="$t('纳税人识别号')">{{ customer.licenseNumber }}</el-descriptions-item> <el-descriptions-item :label="$t('纳税人识别号')">{{ customer.licenseNumber }}</el-descriptions-item>
...@@ -647,6 +704,32 @@ ...@@ -647,6 +704,32 @@
<el-descriptions-item :label="$t('税率')">{{ customer.taxRate }}</el-descriptions-item> <el-descriptions-item :label="$t('税率')">{{ customer.taxRate }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
<el-card style="margin-top: 15px;">
<div slot="header">{{$t('银行账户')}}</div>
<el-table :data="customer.customerBankBackVOList" border>
<el-table-column :label="$t('编号')" type="index"></el-table-column>
<el-table-column :label="$t('账户名称')" prop="accountName"></el-table-column>
<el-table-column :label="$t('币别')">
<template v-slot="{row}">
{{$l(currecyList.find(i => row.currency == i.id),'title')}}
</template>
</el-table-column>
<el-table-column :label="$t('银行名称')" prop="bankName"></el-table-column>
<el-table-column :label="$t('银行账户')" prop="bankAccount"></el-table-column>
<el-table-column :label="$t('银行代码')" prop="bankCode"></el-table-column>
<el-table-column :label="$t('账户类型')">
<template v-slot="{row}">
{{Number(row.accountType) === 1 ? $t('公账') : $t('私账')}}
</template>
</el-table-column>
<el-table-column :label="$t('状态')">
<template v-slot="{row}">
{{row.status ? $t('正常') : $t('停用')}}
</template>
</el-table-column>
<el-table-column :label="$t('银行地址')" prop="bankAddress"></el-table-column>
</el-table>
</el-card>
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="special" :label="$t('特殊设置')"> <el-tab-pane name="special" :label="$t('特殊设置')">
...@@ -724,93 +807,7 @@ ...@@ -724,93 +807,7 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<el-card style="margin-top: 15px;">
<h3>{{$t('银行账户')}}</h3>
<el-table :data="customer.customerBankBackVOList" border>
<el-table-column :label="$t('编号')" type="index"></el-table-column>
<el-table-column :label="$t('账户名称')" prop="accountName"></el-table-column>
<el-table-column :label="$t('币别')">
<template v-slot="{row}">
{{$l(currecyList.find(i => row.currency == i.id),'title')}}
</template>
</el-table-column>
<el-table-column :label="$t('银行名称')" prop="bankName"></el-table-column>
<el-table-column :label="$t('银行账户')" prop="bankAccount"></el-table-column>
<el-table-column :label="$t('银行代码')" prop="bankCode"></el-table-column>
<el-table-column :label="$t('账户类型')">
<template v-slot="{row}">
{{Number(row.accountType) === 1 ? $t('公账') : $t('私账')}}
</template>
</el-table-column>
<el-table-column :label="$t('状态')">
<template v-slot="{row}">
{{row.status ? $t('正常') : $t('停用')}}
</template>
</el-table-column>
<el-table-column :label="$t('银行地址')" prop="bankAddress"></el-table-column>
</el-table>
</el-card>
<el-card style="margin-top: 15px">
<h3>{{$t('联系人')}}</h3>
<el-table
:data="customerContacts"
style="width: 100%"
border
>
<el-table-column
prop="department"
:label="$t('部门')"
>
</el-table-column>
<el-table-column
prop="position"
:label="$t('职位')"
>
</el-table-column>
<el-table-column
prop="name"
:label="$t('联系人')"
>
</el-table-column>
<el-table-column
prop="nameEn"
:label="$t('联系人英文名称')"
>
</el-table-column>
<el-table-column
prop="phoneNew"
:label="$t('联系方式')"
>
<template v-slot="{row}">
+{{ row.areaCode}} {{row.phoneNew}}
</template>
</el-table-column>
<el-table-column
prop="userid"
:label="$t('关联账号')"
:formatter="userIdFormatter"
>
</el-table-column>
<el-table-column
prop="social"
:label="$t('社交软件')"
:formatter="(row, column, cellValue) => getDictDataLabel(DICT_TYPE.SOCIAL, cellValue)"
>
</el-table-column>
<el-table-column
prop="socialNumber"
:label="$t('社交软件号码')"
>
</el-table-column>
<el-table-column
prop="email"
:label="$t('邮箱')"
>
</el-table-column>
</el-table>
</el-card>
</el-col> </el-col>
</el-row> </el-row>
<el-dialog <el-dialog
......
...@@ -3,19 +3,23 @@ ...@@ -3,19 +3,23 @@
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="130px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="130px">
<el-form-item :label="$t('客户编号')" prop="number"> <el-form-item :label="$t('客户编号')" prop="number">
<el-input v-model.trim="queryParams.number" :placeholder="$t('请输入客户编号')" clearable @keyup.enter.native="handleQuery" @input="queryParams.number=queryParams.number.replace(/\s+/g, '')" /> <el-input
v-model.trim="queryParams.number"
:placeholder="$t('请输入客户编号')"
clearable
@keyup.enter.native="handleQuery"
@input="queryParams.number=queryParams.number.replace(/\s+/g, '')"
/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户名称')" prop="name"> <el-form-item :label="$t('客户名称')" prop="name">
<el-input v-model.trim="queryParams.name" :placeholder="$t('请输入客户名称')" clearable @keyup.enter.native="handleQuery" @input="queryParams.name=queryParams.name.replace(/\s+/g, '')" /> <el-input
</el-form-item> v-model.trim="queryParams.name"
<!-- :placeholder="$t('请输入客户名称')"
<el-form-item :label="$t('客户等级')" prop="level"> clearable
<el-select multiple v-model="queryParams.level" :placeholder="$t('请选择客户等级')" clearable size="small" @change="handleQuery"> @keyup.enter.native="handleQuery"
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)" @input="queryParams.name=queryParams.name.replace(/\s+/g, '')"
:key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/> />
</el-select>
</el-form-item> </el-form-item>
-->
<el-form-item :label="$t('区号')"> <el-form-item :label="$t('区号')">
<el-select <el-select
v-model="queryParams.areaCode" v-model="queryParams.areaCode"
...@@ -35,10 +39,11 @@ ...@@ -35,10 +39,11 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('联系方式')"> <el-form-item :label="$t('联系方式')">
<el-input :placeholder="$t('请输入联系方式')" v-model.trim="queryParams.defaultContactPhone" @input="queryParams.defaultContactPhone=queryParams.defaultContactPhone.replace(/\s+/g, '')"></el-input> <el-input
</el-form-item> :placeholder="$t('请输入联系方式')"
<el-form-item :label="$t('客户类别')" prop="level"> v-model.trim="queryParams.defaultContactPhone"
<dict-selector multiple :type="DICT_TYPE.CUSTOMER_TYPE" v-model="queryParams.type" clearable @change="handleQuery"></dict-selector> @input="queryParams.defaultContactPhone=queryParams.defaultContactPhone.replace(/\s+/g, '')"
></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('部门')"> <el-form-item :label="$t('部门')">
<el-select v-model="queryParams.deptIds" :placeholder="$t('请选择部门')"> <el-select v-model="queryParams.deptIds" :placeholder="$t('请选择部门')">
...@@ -46,84 +51,48 @@ ...@@ -46,84 +51,48 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select multiple v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small" @change="handleQuery"> <el-select
<el-option v-for="dict in customerServiceList" multiple
:key="dict.id" :label="dict.nickname" :value="dict.id"/> clearable
v-model="queryParams.customerService"
:placeholder="$t('请选择客户经理')"
size="small"
@change="handleQuery"
>
<el-option
v-for="dict in customerServiceList"
:key="dict.id"
:label="dict.nickname"
:value="dict.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户来源')" prop="source"> <el-form-item :label="$t('客户来源')" prop="source">
<el-select v-model="queryParams.source" :placeholder="$t('请选择客户来源')" clearable size="small" @change="handleQuery"> <el-select
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)" multiple
:key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/> clearable
</el-select> v-model="queryParams.source"
</el-form-item> :placeholder="$t('请选择客户来源')"
<el-form-item :label="$t('国家')" prop="source"> size="small"
<el-select multiple clearable v-model="form.country" :placeholder="$t('请选择国家')" @change="handleQuery"> @change="handleQuery"
<el-option v-for="dict in countryList" >
:key="dict.id" :label=" isChinese ? dict.nameZh : dict.nameEn" :value="parseInt(dict.id)" />
</el-select>
</el-form-item>
<el-form-item :label="$t('客户状态')" prop="status">
<el-select multiple v-model="queryParams.status" :placeholder="$t('请选择客户状态')" clearable size="small" @change="handleQuery">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item :label="$t('创建人')" v-show="showSearch">
<el-select v-model="queryParams.founder">
<el-option <el-option
v-for="item in allSimplList" v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
:key="item.id" :key="dict.value"
:label="item.nickname" :label="isChinese ? dict.label : dict.labelEn"
:value="item.id" :value="dict.value"
> />
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('创建时间')" v-show="showSearch">
<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('结束日期')" />
</el-form-item>
<!--
<el-form-item :label="$t('信用等级')" prop="department">
<el-select multiple clearable v-model="queryParams.creditLevel" @change="handleQuery">
<el-option v-for="(item,index) in creditList" :label=" isChinese ? item.nameZh : item.nameEn" :key="index" :value="item.id" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('市场获客')" prop="department"> <el-form-item :label="$t('客户类别')" prop="level">
<dict-selector multiple clearable :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.marketType" formatter="number" @change="handleQuery"></dict-selector> <dict-selector
</el-form-item> multiple
<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>
<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 clearable
@keyup.enter.native="handleQuery" :type="DICT_TYPE.CUSTOMER_TYPE"
/> v-model="queryParams.type"
@change="handleQuery"
></dict-selector>
</el-form-item> </el-form-item>
-->
<el-form-item :label="$t('角色')"> <el-form-item :label="$t('角色')">
<dict-selector <dict-selector
multiple multiple
...@@ -135,6 +104,39 @@ ...@@ -135,6 +104,39 @@
:placeholder="$t('请选择')" :placeholder="$t('请选择')"
></dict-selector> ></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户状态')" prop="status">
<el-select
multiple
clearable
v-model="queryParams.status"
:placeholder="$t('请选择客户状态')"
size="small"
@change="handleQuery"
>
<el-option
v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key="dict.value"
:label="isChinese ? dict.label : dict.labelEn"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('国籍')" prop="country">
<el-select
multiple
clearable
v-model="queryParams.country"
:placeholder="$t('请选择')"
@change="handleQuery"
>
<el-option
v-for="dict in countryList"
:key="dict.id"
:label="isChinese ? dict.nameZh : dict.nameEn"
:value="parseInt(dict.id)"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('出货渠道')"> <el-form-item :label="$t('出货渠道')">
<dict-selector <dict-selector
multiple multiple
...@@ -145,6 +147,7 @@ ...@@ -145,6 +147,7 @@
@change="handleQuery" @change="handleQuery"
></dict-selector> ></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('业务国家')" v-show="showSearch"> <el-form-item :label="$t('业务国家')" v-show="showSearch">
<el-select <el-select
multiple multiple
...@@ -171,6 +174,29 @@ ...@@ -171,6 +174,29 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建人')" v-show="showSearch">
<el-select v-model="queryParams.founder">
<el-option
v-for="item in allSimplList"
:key="item.id"
:label="item.nickname"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('创建时间')" v-show="showSearch">
<el-date-picker
type="datetimerange"
clearable
v-model="dateRangeCreateTime"
style="width: 240px"
value-format="yyyy-MM-dd HH:mm:ss"
range-separator="-"
:start-placeholder="$t('开始日期')"
:end-placeholder="$t('结束日期')"
/>
</el-form-item>
<el-form-item :label="$t('入公海时间')" v-show="showSearch"> <el-form-item :label="$t('入公海时间')" v-show="showSearch">
<el-date-picker <el-date-picker
type="datetimerange" type="datetimerange"
...@@ -212,7 +238,7 @@ ...@@ -212,7 +238,7 @@
@change="handleSelectProductType" @change="handleSelectProductType"
multiple multiple
v-model="queryParams.productTypes" v-model="queryParams.productTypes"
:placeholder="$t('请选择产品类别')" :placeholder="$t('请选择')"
> >
<el-option <el-option
:label="item.titleZh" :label="item.titleZh"
...@@ -272,7 +298,7 @@ ...@@ -272,7 +298,7 @@
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('推介人')" v-show="showSearch"> <el-form-item :label="$t('推介人')" v-show="showSearch">
<el-select <el-select
clearable clearable
remote remote
...@@ -387,42 +413,6 @@ ...@@ -387,42 +413,6 @@
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading" <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
v-hasPermi="['ecw:customer:treat-export']">{{$t('导出')}}</el-button> v-hasPermi="['ecw:customer:treat-export']">{{$t('导出')}}</el-button>
</el-col> </el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-plus"
size="mini"
:disabled="!selectCustomerList.length"
@click="setDefaultPay"
v-hasPermi="['ecw:customer:change-customer-default-pay']"
>{{ $t("设置默认付款") }}</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-plus"
size="mini"
:disabled="!selectCustomerList.length"
@click="setNoConsignee"
v-hasPermi="['ecw:customer:change-customer-no-consignee']"
>{{ $t("设置默认控货无收货人") }}</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-plus"
size="mini"
:disabled="!selectCustomerList.length"
@click="setDefaultBilling"
v-hasPermi="['ecw:customer:change-customer-default-billing']"
>{{ $t("设置默认开票") }}</el-button
>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
...@@ -598,7 +588,15 @@ ...@@ -598,7 +588,15 @@
</router-link> </router-link>
<el-button size="mini" type="text" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" @click="handleUpdate(scope.row)"
v-hasPermi="['ecw:customer:treat-perfect']">{{$t('完善')}}</el-button> v-hasPermi="['ecw:customer:treat-perfect']">{{$t('完善')}}</el-button>
<!-- <el-button v-has-permi="['ecw:customer:treat-recovery']" size="mini" type="text" @click="recovery(scope.row)" > {{$t('回收客户')}} </el-button>--> <!-- <el-button v-has-permi="['ecw:customer:treat-recovery']" size="mini" type="text" @click="recovery(scope.row)" > {{$t('回收客户')}} </el-button>-->
<el-button
v-has-permi="['ecw:customer:setting']"
size="mini"
type="text"
icon="el-icon-user"
@click="handleSetting(scope.row)"
>{{ $t("设置") }}</el-button
>
</template> </template>
</el-table-column> </el-table-column>
...@@ -814,6 +812,10 @@ ...@@ -814,6 +812,10 @@
</div> </div>
</el-dialog> </el-dialog>
<transfer-customer :show.sync="openHandOver" :customer-ids.sync="handOverForm.customerIdList"></transfer-customer> <transfer-customer :show.sync="openHandOver" :customer-ids.sync="handOverForm.customerIdList"></transfer-customer>
<customer-setting
ref="customerSetting"
@refresh="getList"
></customer-setting>
</div> </div>
</template> </template>
...@@ -835,6 +837,7 @@ import {getCountryListAll} from "@/api/ecw/country"; ...@@ -835,6 +837,7 @@ import {getCountryListAll} from "@/api/ecw/country";
import {getCreditPage} from "@/api/customer/credit"; import {getCreditPage} from "@/api/customer/credit";
import transferCustomer from "@/views/ecw/customer/transferCustomer.vue"; import transferCustomer from "@/views/ecw/customer/transferCustomer.vue";
import Contacts from "@/views/ecw/customer/components/contacts.vue"; import Contacts from "@/views/ecw/customer/components/contacts.vue";
import CustomerSetting from "../customer/components/customerSetting.vue";
import AreaCodeSelector from "@/components/AreaCodeSelector/index.vue"; import AreaCodeSelector from "@/components/AreaCodeSelector/index.vue";
import { getNodeList } from "@/api/ecw/node"; import { getNodeList } from "@/api/ecw/node";
import { getCustomerSelect, changeCustomerDefaultPay, changeCustomerNoConsignee,changeCustomerDefaultBilling } from "@/api/ecw/customer"; import { getCustomerSelect, changeCustomerDefaultPay, changeCustomerNoConsignee,changeCustomerDefaultBilling } from "@/api/ecw/customer";
...@@ -919,7 +922,8 @@ export default { ...@@ -919,7 +922,8 @@ export default {
components: { components: {
Contacts, Contacts,
transferCustomer, transferCustomer,
AreaCodeSelector AreaCodeSelector,
CustomerSetting
}, },
data() { data() {
return { return {
...@@ -1252,19 +1256,11 @@ export default { ...@@ -1252,19 +1256,11 @@ export default {
customerIdList : undefined customerIdList : undefined
}; };
}, },
getBusiCountryNames(ids) { handleSetting(row) {
if (ids) { this.$refs['customerSetting'].dialogVisible = true
const idsArr = ids.split(',') this.$nextTick(_ => {
const strArr = [] this.$refs['customerSetting'].init(row.id)
this.countryList.forEach(item => { })
if (idsArr.includes(item.id.toString())) {
strArr.push(this.isChinese ? item.nameZh : item.nameEn)
}
})
return strArr.length > 0 ? strArr.join(',') : null
} else {
return null
}
}, },
getBusiCountryNames(ids) { getBusiCountryNames(ids) {
if (ids) { if (ids) {
...@@ -1321,34 +1317,7 @@ export default { ...@@ -1321,34 +1317,7 @@ export default {
} else { } else {
return null return null
} }
}, }
setDefaultPay() {
changeCustomerDefaultPay({
customerIdList: this.selectCustomerList,
defaultPay: true
}).then(_ => {
this.$message.success(this.$t("操作成功"))
this.getList()
})
},
setNoConsignee() {
changeCustomerNoConsignee({
customerIdList: this.selectCustomerList,
noConsigee: true
}).then(_ => {
this.$message.success(this.$t("操作成功"))
this.getList()
})
},
setDefaultBilling() {
changeCustomerDefaultBilling({
customerIdList: this.selectCustomerList,
defaultBilling: true
}).then(_ => {
this.$message.success(this.$t("操作成功"))
this.getList()
})
},
} }
}; };
</script> </script>
...@@ -4,19 +4,23 @@ ...@@ -4,19 +4,23 @@
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="130px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="130px">
<el-form-item :label="$t('客户编号')" prop="number"> <el-form-item :label="$t('客户编号')" prop="number">
<el-input v-model="queryParams.number" :placeholder="$t('请输入客户编号')" clearable @keyup.enter.native="handleQuery" @input="queryParams.number=queryParams.number.replace(/\s+/g, '')" /> <el-input
v-model.trim="queryParams.number"
:placeholder="$t('请输入客户编号')"
clearable
@keyup.enter.native="handleQuery"
@input="queryParams.number=queryParams.number.replace(/\s+/g, '')"
/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户名称')" prop="name"> <el-form-item :label="$t('客户名称')" prop="name">
<el-input v-model="queryParams.name" :placeholder="$t('请输入客户名称')" clearable @keyup.enter.native="handleQuery" @input="queryParams.name=queryParams.name.replace(/\s+/g, '')" /> <el-input
</el-form-item> v-model.trim="queryParams.name"
<!-- :placeholder="$t('请输入客户名称')"
<el-form-item :label="$t('客户等级')" prop="level"> clearable
<el-select clearable v-model="queryParams.level" :placeholder="$t('请选择客户等级')" size="small"> @keyup.enter.native="handleQuery"
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)" @input="queryParams.name=queryParams.name.replace(/\s+/g, '')"
:key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/> />
</el-select>
</el-form-item> </el-form-item>
-->
<el-form-item :label="$t('区号')"> <el-form-item :label="$t('区号')">
<el-select <el-select
v-model="queryParams.areaCode" v-model="queryParams.areaCode"
...@@ -36,10 +40,11 @@ ...@@ -36,10 +40,11 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('联系方式')"> <el-form-item :label="$t('联系方式')">
<el-input :placeholder="$t('请输入联系方式')" v-model="queryParams.defaultContactPhone"></el-input> <el-input
</el-form-item> :placeholder="$t('请输入联系方式')"
<el-form-item :label="$t('客户类别')" prop="level"> v-model.trim="queryParams.defaultContactPhone"
<dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" v-model="queryParams.type"></dict-selector> @input="queryParams.defaultContactPhone=queryParams.defaultContactPhone.replace(/\s+/g, '')"
></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('部门')"> <el-form-item :label="$t('部门')">
<el-select v-model="queryParams.deptIds" :placeholder="$t('请选择部门')"> <el-select v-model="queryParams.deptIds" :placeholder="$t('请选择部门')">
...@@ -47,84 +52,48 @@ ...@@ -47,84 +52,48 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" size="small"> <el-select
<el-option v-for="dict in customerServiceList" multiple
:key="dict.id" :label="dict.nickname" :value="dict.id"/> clearable
v-model="queryParams.customerService"
:placeholder="$t('请选择客户经理')"
size="small"
@change="handleQuery"
>
<el-option
v-for="dict in customerServiceList"
:key="dict.id"
:label="dict.nickname"
:value="dict.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户来源')" prop="source"> <el-form-item :label="$t('客户来源')" prop="source">
<el-select clearable v-model="queryParams.source" :placeholder="$t('请选择客户来源')" size="small"> <el-select
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)" multiple
:key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/> clearable
</el-select> v-model="queryParams.source"
</el-form-item> :placeholder="$t('请选择客户来源')"
<el-form-item :label="$t('国籍')" prop="source"> size="small"
<el-select clearable v-model="queryParams.country" :placeholder="$t('请选择')"> @change="handleQuery"
<el-option v-for="dict in countryList" >
:key="dict.id" :label="isChinese ? dict.nameZh : dict.nameEn" :value="parseInt(dict.id)" />
</el-select>
</el-form-item>
<el-form-item :label="$t('客户状态')" prop="status">
<el-select clearable v-model="queryParams.status" :placeholder="$t('请选择客户状态')" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item :label="$t('创建人')" v-show="showSearch">
<el-select v-model="queryParams.founder">
<el-option <el-option
v-for="item in allSimplList" v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
:key="item.id" :key="dict.value"
:label="item.nickname" :label="isChinese ? dict.label : dict.labelEn"
:value="item.id" :value="dict.value"
> />
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('创建时间')" v-show="showSearch">
<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('结束日期')" />
</el-form-item>
<!--
<el-form-item :label="$t('信用等级')" prop="department">
<el-select clearable v-model="queryParams.creditLevel" >
<el-option v-for="(item,index) in creditList" :label="isChinese ? item.nameZh : item.nameEn" :key="index" :value="item.id" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('市场获客')" prop="department"> <el-form-item :label="$t('客户类别')" prop="level">
<dict-selector clearable :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.marketType" formatter="number"></dict-selector> <dict-selector
</el-form-item> multiple
<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>
<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 clearable
@keyup.enter.native="handleQuery" :type="DICT_TYPE.CUSTOMER_TYPE"
/> v-model="queryParams.type"
@change="handleQuery"
></dict-selector>
</el-form-item> </el-form-item>
-->
<el-form-item :label="$t('角色')"> <el-form-item :label="$t('角色')">
<dict-selector <dict-selector
multiple multiple
...@@ -136,6 +105,39 @@ ...@@ -136,6 +105,39 @@
:placeholder="$t('请选择')" :placeholder="$t('请选择')"
></dict-selector> ></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户状态')" prop="status">
<el-select
multiple
clearable
v-model="queryParams.status"
:placeholder="$t('请选择客户状态')"
size="small"
@change="handleQuery"
>
<el-option
v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key="dict.value"
:label="isChinese ? dict.label : dict.labelEn"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('国籍')" prop="country">
<el-select
multiple
clearable
v-model="queryParams.country"
:placeholder="$t('请选择')"
@change="handleQuery"
>
<el-option
v-for="dict in countryList"
:key="dict.id"
:label="isChinese ? dict.nameZh : dict.nameEn"
:value="parseInt(dict.id)"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('出货渠道')"> <el-form-item :label="$t('出货渠道')">
<dict-selector <dict-selector
multiple multiple
...@@ -146,6 +148,7 @@ ...@@ -146,6 +148,7 @@
@change="handleQuery" @change="handleQuery"
></dict-selector> ></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('业务国家')" v-show="showSearch"> <el-form-item :label="$t('业务国家')" v-show="showSearch">
<el-select <el-select
multiple multiple
...@@ -172,6 +175,29 @@ ...@@ -172,6 +175,29 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建人')" v-show="showSearch">
<el-select v-model="queryParams.founder">
<el-option
v-for="item in allSimplList"
:key="item.id"
:label="item.nickname"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('创建时间')" v-show="showSearch">
<el-date-picker
type="datetimerange"
clearable
v-model="dateRangeCreateTime"
style="width: 240px"
value-format="yyyy-MM-dd HH:mm:ss"
range-separator="-"
:start-placeholder="$t('开始日期')"
:end-placeholder="$t('结束日期')"
/>
</el-form-item>
<el-form-item :label="$t('入公海时间')" v-show="showSearch"> <el-form-item :label="$t('入公海时间')" v-show="showSearch">
<el-date-picker <el-date-picker
type="datetimerange" type="datetimerange"
...@@ -213,7 +239,7 @@ ...@@ -213,7 +239,7 @@
@change="handleSelectProductType" @change="handleSelectProductType"
multiple multiple
v-model="queryParams.productTypes" v-model="queryParams.productTypes"
:placeholder="$t('请选择产品类别')" :placeholder="$t('请选择')"
> >
<el-option <el-option
:label="item.titleZh" :label="item.titleZh"
...@@ -273,7 +299,7 @@ ...@@ -273,7 +299,7 @@
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('推介人')" v-show="showSearch"> <el-form-item :label="$t('推介人')" v-show="showSearch">
<el-select <el-select
clearable clearable
remote remote
...@@ -394,42 +420,6 @@ ...@@ -394,42 +420,6 @@
v-hasPermi="['ecw:customer:distribution-transfer']">{{$t('批量移交')}}</el-button> v-hasPermi="['ecw:customer:distribution-transfer']">{{$t('批量移交')}}</el-button>
</el-col> </el-col>
</el-col> </el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-plus"
size="mini"
:disabled="!selectCustomerList.length"
@click="setDefaultPay"
v-hasPermi="['ecw:customer:change-customer-default-pay']"
>{{ $t("设置默认付款") }}</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-plus"
size="mini"
:disabled="!selectCustomerList.length"
@click="setNoConsignee"
v-hasPermi="['ecw:customer:change-customer-no-consignee']"
>{{ $t("设置默认控货无收货人") }}</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-plus"
size="mini"
:disabled="!selectCustomerList.length"
@click="setDefaultBilling"
v-hasPermi="['ecw:customer:change-customer-default-billing']"
>{{ $t("设置默认开票") }}</el-button
>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
...@@ -585,6 +575,14 @@ ...@@ -585,6 +575,14 @@
v-hasPermi="['ecw:customer:distribution-delete']">{{$t('删除')}}</el-button> v-hasPermi="['ecw:customer:distribution-delete']">{{$t('删除')}}</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="distribution(scope.row)" <el-button size="mini" type="text" icon="el-icon-delete" @click="distribution(scope.row)"
v-hasPermi="['ecw:customer:distribution-customer-service']">{{$t('分配客服')}}</el-button> v-hasPermi="['ecw:customer:distribution-customer-service']">{{$t('分配客服')}}</el-button>
<el-button
v-has-permi="['ecw:customer:setting']"
size="mini"
type="text"
icon="el-icon-user"
@click="handleSetting(scope.row)"
>{{ $t("设置") }}</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -611,6 +609,10 @@ ...@@ -611,6 +609,10 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"/> @pagination="getList"/>
<transfer-customer :show.sync="batchTransferShow" :customer-ids.sync="selectCustomerList"></transfer-customer> <transfer-customer :show.sync="batchTransferShow" :customer-ids.sync="selectCustomerList"></transfer-customer>
<customer-setting
ref="customerSetting"
@refresh="getList"
></customer-setting>
</div> </div>
</template> </template>
...@@ -628,6 +630,7 @@ import {getCreditPage} from "@/api/customer/credit"; ...@@ -628,6 +630,7 @@ import {getCreditPage} from "@/api/customer/credit";
import transferCustomer from "@/views/ecw/customer/transferCustomer"; import transferCustomer from "@/views/ecw/customer/transferCustomer";
import Template from "@/views/cms/template/index.vue"; import Template from "@/views/cms/template/index.vue";
import Contacts from "@/views/ecw/customer/components/contacts.vue"; import Contacts from "@/views/ecw/customer/components/contacts.vue";
import CustomerSetting from "../customer/components/customerSetting.vue";
import AreaCodeSelector from "@/components/AreaCodeSelector/index.vue"; import AreaCodeSelector from "@/components/AreaCodeSelector/index.vue";
import { getNodeList } from "@/api/ecw/node"; import { getNodeList } from "@/api/ecw/node";
import { getCustomerSelect, changeCustomerDefaultPay, changeCustomerNoConsignee,changeCustomerDefaultBilling } from "@/api/ecw/customer"; import { getCustomerSelect, changeCustomerDefaultPay, changeCustomerNoConsignee,changeCustomerDefaultBilling } from "@/api/ecw/customer";
...@@ -645,7 +648,8 @@ export default { ...@@ -645,7 +648,8 @@ export default {
Template, Template,
upload, upload,
transferCustomer, transferCustomer,
AreaCodeSelector AreaCodeSelector,
CustomerSetting
}, },
data() { data() {
return { return {
...@@ -963,19 +967,11 @@ export default { ...@@ -963,19 +967,11 @@ export default {
}) })
}).catch(() => {}); }).catch(() => {});
}, },
getBusiCountryNames(ids) { handleSetting(row) {
if (ids) { this.$refs['customerSetting'].dialogVisible = true
const idsArr = ids.split(',') this.$nextTick(_ => {
const strArr = [] this.$refs['customerSetting'].init(row.id)
this.countryList.forEach(item => { })
if (idsArr.includes(item.id.toString())) {
strArr.push(this.isChinese ? item.nameZh : item.nameEn)
}
})
return strArr.length > 0 ? strArr.join(',') : null
} else {
return null
}
}, },
getBusiCountryNames(ids) { getBusiCountryNames(ids) {
if (ids) { if (ids) {
......
...@@ -10,19 +10,23 @@ ...@@ -10,19 +10,23 @@
label-width="130px" label-width="130px"
> >
<el-form-item :label="$t('客户编号')" prop="number"> <el-form-item :label="$t('客户编号')" prop="number">
<el-input v-model.trim="queryParams.number" :placeholder="$t('请输入客户编号')" clearable @keyup.enter.native="handleQuery" @input="queryParams.number=queryParams.number.replace(/\s+/g, '')" /> <el-input
v-model.trim="queryParams.number"
:placeholder="$t('请输入客户编号')"
clearable
@keyup.enter.native="handleQuery"
@input="queryParams.number=queryParams.number.replace(/\s+/g, '')"
/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户名称')" prop="name"> <el-form-item :label="$t('客户名称')" prop="name">
<el-input v-model.trim="queryParams.name" :placeholder="$t('请输入客户名称')" clearable @keyup.enter.native="handleQuery" @input="queryParams.name=queryParams.name.replace(/\s+/g, '')" /> <el-input
</el-form-item> v-model.trim="queryParams.name"
<!-- :placeholder="$t('请输入客户名称')"
<el-form-item :label="$t('客户等级')" prop="level"> clearable
<el-select clearable v-model="queryParams.level" multiple :placeholder="$t('请选择客户等级')" clearable size="small" @change="handleQuery"> @keyup.enter.native="handleQuery"
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)" @input="queryParams.name=queryParams.name.replace(/\s+/g, '')"
:key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/> />
</el-select>
</el-form-item> </el-form-item>
-->
<el-form-item :label="$t('区号')"> <el-form-item :label="$t('区号')">
<el-select <el-select
v-model="queryParams.areaCode" v-model="queryParams.areaCode"
...@@ -42,14 +46,16 @@ ...@@ -42,14 +46,16 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('联系方式')"> <el-form-item :label="$t('联系方式')">
<el-input :placeholder="$t('请输入联系方式')" v-model.trim="queryParams.defaultContactPhone" @input="queryParams.defaultContactPhone=queryParams.defaultContactPhone.replace(/\s+/g, '')"></el-input> <el-input
</el-form-item> :placeholder="$t('请输入联系方式')"
<el-form-item :label="$t('客户类别')" prop="level"> v-model.trim="queryParams.defaultContactPhone"
<dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" multiple v-model="queryParams.type" @change="handleQuery"></dict-selector> @input="queryParams.defaultContactPhone=queryParams.defaultContactPhone.replace(/\s+/g, '')"
></el-input>
</el-form-item> </el-form-item>
<!-- <!--
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select <el-select
multiple
clearable clearable
v-model="queryParams.customerService" v-model="queryParams.customerService"
:placeholder="$t('请选择客户经理')" :placeholder="$t('请选择客户经理')"
...@@ -66,86 +72,31 @@ ...@@ -66,86 +72,31 @@
</el-form-item> </el-form-item>
--> -->
<el-form-item :label="$t('客户来源')" prop="source"> <el-form-item :label="$t('客户来源')" prop="source">
<el-select clearable v-model="queryParams.source" multiple :placeholder="$t('请选择客户来源')" size="small" @change="handleQuery"> <el-select
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)" multiple
multiple :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item :label="$t('国籍')" prop="source">
<el-select clearable v-model="queryParams.country" :placeholder="$t('请选择')" multiple @change="handleQuery">
<el-option v-for="dict in countryList"
:key="dict.id" :label=" isChinese ? dict.nameZh : dict.nameEn " :value="parseInt(dict.id)" />
</el-select>
</el-form-item>
<el-form-item :label="$t('客户状态')" prop="status">
<el-select clearable v-model="queryParams.status" multiple :placeholder="$t('请选择客户状态')" size="small" @change="handleQuery">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item :label="$t('创建人')" v-show="showSearch">
<el-select v-model="queryParams.founder">
<el-option
v-for="item in allSimplList"
:key="item.id"
:label="item.nickname"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('创建时间')" v-show="showSearch">
<el-date-picker
clearable clearable
v-model="dateRangeCreateTime" v-model="queryParams.source"
style="width: 240px" :placeholder="$t('请选择客户来源')"
value-format="yyyy-MM-dd HH:mm:ss" size="small"
type="datetimerange" @change="handleQuery"
range-separator="-" >
:start-placeholder="$t('开始日期')" <el-option
:end-placeholder="$t('结束日期')" v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
/> :key="dict.value"
</el-form-item> :label="isChinese ? dict.label : dict.labelEn"
<!-- :value="dict.value"
<el-form-item :label="$t('信用等级')" prop="department"> />
<el-select clearable v-model="queryParams.creditLevel" multiple @change="handleQuery">
<el-option v-for="(item,index) in creditList" :label="isChinese ? item.nameZh : item.nameEn" :key="index" :value="item.id" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('市场获客')" prop="department"> <el-form-item :label="$t('客户类别')" prop="level">
<dict-selector clearable multiple :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="queryParams.marketType" formatter="number" @change="handleQuery"></dict-selector> <dict-selector
</el-form-item> multiple
<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>
<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 clearable
@keyup.enter.native="handleQuery" :type="DICT_TYPE.CUSTOMER_TYPE"
/> v-model="queryParams.type"
@change="handleQuery"
></dict-selector>
</el-form-item> </el-form-item>
-->
<el-form-item :label="$t('角色')"> <el-form-item :label="$t('角色')">
<dict-selector <dict-selector
multiple multiple
...@@ -157,6 +108,39 @@ ...@@ -157,6 +108,39 @@
:placeholder="$t('请选择')" :placeholder="$t('请选择')"
></dict-selector> ></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户状态')" prop="status">
<el-select
multiple
clearable
v-model="queryParams.status"
:placeholder="$t('请选择客户状态')"
size="small"
@change="handleQuery"
>
<el-option
v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key="dict.value"
:label="isChinese ? dict.label : dict.labelEn"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('国籍')" prop="country">
<el-select
multiple
clearable
v-model="queryParams.country"
:placeholder="$t('请选择')"
@change="handleQuery"
>
<el-option
v-for="dict in countryList"
:key="dict.id"
:label="isChinese ? dict.nameZh : dict.nameEn"
:value="parseInt(dict.id)"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('出货渠道')"> <el-form-item :label="$t('出货渠道')">
<dict-selector <dict-selector
multiple multiple
...@@ -167,6 +151,7 @@ ...@@ -167,6 +151,7 @@
@change="handleQuery" @change="handleQuery"
></dict-selector> ></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('业务国家')" v-show="showSearch"> <el-form-item :label="$t('业务国家')" v-show="showSearch">
<el-select <el-select
multiple multiple
...@@ -193,6 +178,29 @@ ...@@ -193,6 +178,29 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建人')" v-show="showSearch">
<el-select v-model="queryParams.founder">
<el-option
v-for="item in allSimplList"
:key="item.id"
:label="item.nickname"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('创建时间')" v-show="showSearch">
<el-date-picker
type="datetimerange"
clearable
v-model="dateRangeCreateTime"
style="width: 240px"
value-format="yyyy-MM-dd HH:mm:ss"
range-separator="-"
:start-placeholder="$t('开始日期')"
:end-placeholder="$t('结束日期')"
/>
</el-form-item>
<el-form-item :label="$t('入公海时间')" v-show="showSearch"> <el-form-item :label="$t('入公海时间')" v-show="showSearch">
<el-date-picker <el-date-picker
type="datetimerange" type="datetimerange"
...@@ -234,7 +242,7 @@ ...@@ -234,7 +242,7 @@
@change="handleSelectProductType" @change="handleSelectProductType"
multiple multiple
v-model="queryParams.productTypes" v-model="queryParams.productTypes"
:placeholder="$t('请选择产品类别')" :placeholder="$t('请选择')"
> >
<el-option <el-option
:label="item.titleZh" :label="item.titleZh"
...@@ -294,7 +302,7 @@ ...@@ -294,7 +302,7 @@
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('推介人')" v-show="showSearch"> <el-form-item :label="$t('推介人')" v-show="showSearch">
<el-select <el-select
clearable clearable
remote remote
...@@ -428,42 +436,6 @@ ...@@ -428,42 +436,6 @@
>{{ $t("导出") }}</el-button >{{ $t("导出") }}</el-button
> >
</el-col> </el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-plus"
size="mini"
:disabled="!selectCustomerList.length"
@click="setDefaultPay"
v-hasPermi="['ecw:customer:change-customer-default-pay']"
>{{ $t("设置默认付款") }}</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-plus"
size="mini"
:disabled="!selectCustomerList.length"
@click="setNoConsignee"
v-hasPermi="['ecw:customer:change-customer-no-consignee']"
>{{ $t("设置默认控货无收货人") }}</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-plus"
size="mini"
:disabled="!selectCustomerList.length"
@click="setDefaultBilling"
v-hasPermi="['ecw:customer:change-customer-default-billing']"
>{{ $t("设置默认开票") }}</el-button
>
</el-col>
<right-toolbar <right-toolbar
:showSearch.sync="showSearch" :showSearch.sync="showSearch"
@queryTable="getList" @queryTable="getList"
...@@ -714,6 +686,14 @@ ...@@ -714,6 +686,14 @@
@click="quote(scope.row)" @click="quote(scope.row)"
>{{ $t("报价") }}</el-button >{{ $t("报价") }}</el-button
> >
<el-button
v-has-permi="['ecw:customer:setting']"
size="mini"
type="text"
icon="el-icon-user"
@click="handleSetting(scope.row)"
>{{ $t("设置") }}</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -740,6 +720,10 @@ ...@@ -740,6 +720,10 @@
:show.sync="show" :show.sync="show"
:customer-ids.sync="selectCustomerList" :customer-ids.sync="selectCustomerList"
></transfer-customer> ></transfer-customer>
<customer-setting
ref="customerSetting"
@refresh="getList"
></customer-setting>
</div> </div>
</template> </template>
...@@ -763,7 +747,7 @@ import { getCreditPage } from "@/api/customer/credit"; ...@@ -763,7 +747,7 @@ import { getCreditPage } from "@/api/customer/credit";
import transferCustomer from "@/views/ecw/customer/transferCustomer"; import transferCustomer from "@/views/ecw/customer/transferCustomer";
import Template from "@/views/cms/template/index.vue"; import Template from "@/views/cms/template/index.vue";
import Contacts from "@/views/ecw/customer/components/contacts.vue"; import Contacts from "@/views/ecw/customer/components/contacts.vue";
import CustomerSetting from "../customer/components/customerSetting.vue";
import AreaCodeSelector from "@/components/AreaCodeSelector/index.vue"; import AreaCodeSelector from "@/components/AreaCodeSelector/index.vue";
import { getNodeList } from "@/api/ecw/node"; import { getNodeList } from "@/api/ecw/node";
import { getCustomerSelect, changeCustomerDefaultPay, changeCustomerNoConsignee, changeCustomerDefaultBilling } from "@/api/ecw/customer"; import { getCustomerSelect, changeCustomerDefaultPay, changeCustomerNoConsignee, changeCustomerDefaultBilling } from "@/api/ecw/customer";
...@@ -778,7 +762,8 @@ export default { ...@@ -778,7 +762,8 @@ export default {
customerFollowList, customerFollowList,
customerComplaints, customerComplaints,
transferCustomer, transferCustomer,
AreaCodeSelector AreaCodeSelector,
CustomerSetting
}, },
computed: { computed: {
isChinese() { isChinese() {
...@@ -1251,31 +1236,10 @@ export default { ...@@ -1251,31 +1236,10 @@ export default {
this.$refs["customerComplaint"].handleAdd(); this.$refs["customerComplaint"].handleAdd();
}); });
}, },
setDefaultPay() { handleSetting(row) {
changeCustomerDefaultPay({ this.$refs['customerSetting'].dialogVisible = true
customerIdList: this.selectCustomerList, this.$nextTick(_ => {
defaultPay: true this.$refs['customerSetting'].init(row.id)
}).then(_ => {
this.$message.success(this.$t("操作成功"))
this.getList()
})
},
setNoConsignee() {
changeCustomerNoConsignee({
customerIdList: this.selectCustomerList,
noConsigee: true
}).then(_ => {
this.$message.success(this.$t("操作成功"))
this.getList()
})
},
setDefaultBilling() {
changeCustomerDefaultBilling({
customerIdList: this.selectCustomerList,
defaultBilling: true
}).then(_ => {
this.$message.success(this.$t("操作成功"))
this.getList()
}) })
}, },
getBusiCountryNames(ids) { getBusiCountryNames(ids) {
......
...@@ -27,24 +27,6 @@ ...@@ -27,24 +27,6 @@
@input="queryParams.name=queryParams.name.replace(/\s+/g, '')" @input="queryParams.name=queryParams.name.replace(/\s+/g, '')"
/> />
</el-form-item> </el-form-item>
<!--
<el-form-item :label="$t('客户等级')" prop="level">
<el-select
multiple
clearable
v-model="queryParams.level"
:placeholder="$t('请选择客户等级')"
size="small"
>
<el-option
v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
:key="dict.value"
:label="isChinese ? dict.label : dict.labelEn"
:value="dict.value"
/>
</el-select>
</el-form-item>
-->
<el-form-item :label="$t('区号')"> <el-form-item :label="$t('区号')">
<el-select <el-select
v-model="queryParams.areaCode" v-model="queryParams.areaCode"
...@@ -67,30 +49,21 @@ ...@@ -67,30 +49,21 @@
<el-input <el-input
:placeholder="$t('请输入联系方式')" :placeholder="$t('请输入联系方式')"
v-model.trim="queryParams.defaultContactPhone" v-model.trim="queryParams.defaultContactPhone"
@keyup.enter.native="handleQuery"
@input="queryParams.defaultContactPhone=queryParams.defaultContactPhone.replace(/\s+/g, '')" @input="queryParams.defaultContactPhone=queryParams.defaultContactPhone.replace(/\s+/g, '')"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户类别')" prop="level">
<dict-selector
multiple
:type="DICT_TYPE.CUSTOMER_TYPE"
v-model="queryParams.type"
@change="handleQuery"
></dict-selector>
</el-form-item>
<el-form-item :label="$t('部门')"> <el-form-item :label="$t('部门')">
<el-select v-model="queryParams.deptIds" :placeholder="$t('请选择部门')"> <el-select v-model="queryParams.deptIds" :placeholder="$t('请选择部门')">
<el-option v-for="item in deptList" :key="item.id" :label="item.name" :value="item.id"/> <el-option v-for="item in deptList" :key="item.id" :label="item.name" :value="item.id"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select <el-select
multiple multiple
clearable clearable
v-model="queryParams.customerService" v-model="queryParams.customerService"
:placeholder="$t('请选择客户经理')" :placeholder="$t('请选择客户经理')"
size="small" size="small"
@change="handleQuery" @change="handleQuery"
> >
<el-option <el-option
...@@ -103,11 +76,11 @@ ...@@ -103,11 +76,11 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户来源')" prop="source"> <el-form-item :label="$t('客户来源')" prop="source">
<el-select <el-select
multiple multiple
clearable clearable
v-model="queryParams.source" v-model="queryParams.source"
:placeholder="$t('请选择客户来源')" :placeholder="$t('请选择客户来源')"
size="small" size="small"
@change="handleQuery" @change="handleQuery"
> >
<el-option <el-option
...@@ -118,29 +91,33 @@ ...@@ -118,29 +91,33 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('国籍')"> <el-form-item :label="$t('客户类别')" prop="level">
<el-select <dict-selector
multiple multiple
clearable clearable
v-model="queryParams.country" :type="DICT_TYPE.CUSTOMER_TYPE"
:placeholder="$t('请选择')" v-model="queryParams.type"
@change="handleQuery" @change="handleQuery"
> ></dict-selector>
<el-option </el-form-item>
v-for="dict in countryList" <el-form-item :label="$t('角色')">
:key="dict.id" <dict-selector
:label="isChinese ? dict.nameZh : dict.nameEn" multiple
:value="parseInt(dict.id)" clearable
/> :type="DICT_TYPE.CUSTOMER_ROLE"
</el-select> v-model="queryParams.role"
formatter="number"
@change="handleQuery"
:placeholder="$t('请选择')"
></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户状态')" prop="status"> <el-form-item :label="$t('客户状态')" prop="status">
<el-select <el-select
multiple multiple
clearable clearable
v-model="queryParams.status" v-model="queryParams.status"
:placeholder="$t('请选择客户状态')" :placeholder="$t('请选择客户状态')"
size="small" size="small"
@change="handleQuery" @change="handleQuery"
> >
<el-option <el-option
...@@ -151,91 +128,21 @@ ...@@ -151,91 +128,21 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建人')" v-show="showSearch"> <el-form-item :label="$t('国籍')" prop="country">
<el-select v-model="queryParams.founder"> <el-select
<el-option
v-for="item in allSimplList"
:key="item.id"
:label="item.nickname"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('创建时间')" v-show="showSearch">
<el-date-picker
clearable
v-model="dateRangeCreateTime"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
:start-placeholder="$t('开始日期')"
:end-placeholder="$t('结束日期')"
/>
</el-form-item>
<!--
<el-form-item :label="$t('信用等级')" prop="department">
<el-select multiple clearable v-model="queryParams.creditLevel" @change="handleQuery">
<el-option
v-for="(item, index) in creditList"
:label="isChinese ? item.nameZh : item.nameEn"
:key="index"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('市场获客')" prop="department">
<dict-selector
multiple
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>
<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('角色')">
<dict-selector
multiple multiple
clearable clearable
:type="DICT_TYPE.CUSTOMER_ROLE" v-model="queryParams.country"
v-model="queryParams.role"
formatter="number"
@change="handleQuery"
:placeholder="$t('请选择')" :placeholder="$t('请选择')"
></dict-selector> @change="handleQuery"
>
<el-option
v-for="dict in countryList"
:key="dict.id"
:label="isChinese ? dict.nameZh : dict.nameEn"
:value="parseInt(dict.id)"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('出货渠道')"> <el-form-item :label="$t('出货渠道')">
<dict-selector <dict-selector
...@@ -247,6 +154,7 @@ ...@@ -247,6 +154,7 @@
@change="handleQuery" @change="handleQuery"
></dict-selector> ></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('业务国家')" v-show="showSearch"> <el-form-item :label="$t('业务国家')" v-show="showSearch">
<el-select <el-select
multiple multiple
...@@ -273,6 +181,29 @@ ...@@ -273,6 +181,29 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建人')" v-show="showSearch">
<el-select v-model="queryParams.founder">
<el-option
v-for="item in allSimplList"
:key="item.id"
:label="item.nickname"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('创建时间')" v-show="showSearch">
<el-date-picker
type="datetimerange"
clearable
v-model="dateRangeCreateTime"
style="width: 240px"
value-format="yyyy-MM-dd HH:mm:ss"
range-separator="-"
:start-placeholder="$t('开始日期')"
:end-placeholder="$t('结束日期')"
/>
</el-form-item>
<el-form-item :label="$t('入公海时间')" v-show="showSearch"> <el-form-item :label="$t('入公海时间')" v-show="showSearch">
<el-date-picker <el-date-picker
type="datetimerange" type="datetimerange"
...@@ -314,7 +245,7 @@ ...@@ -314,7 +245,7 @@
@change="handleSelectProductType" @change="handleSelectProductType"
multiple multiple
v-model="queryParams.productTypes" v-model="queryParams.productTypes"
:placeholder="$t('请选择产品类别')" :placeholder="$t('请选择')"
> >
<el-option <el-option
:label="item.titleZh" :label="item.titleZh"
...@@ -374,7 +305,7 @@ ...@@ -374,7 +305,7 @@
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('推介人')" v-show="showSearch"> <el-form-item :label="$t('推介人')" v-show="showSearch">
<el-select <el-select
clearable clearable
remote remote
...@@ -512,42 +443,6 @@ ...@@ -512,42 +443,6 @@
:showSearch.sync="showSearch" :showSearch.sync="showSearch"
@queryTable="getList" @queryTable="getList"
></right-toolbar> ></right-toolbar>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-plus"
size="mini"
:disabled="!selectCustomerList.length"
@click="setDefaultPay"
v-hasPermi="['ecw:customer:change-customer-default-pay']"
>{{ $t("设置默认付款") }}</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-plus"
size="mini"
:disabled="!selectCustomerList.length"
@click="setNoConsignee"
v-hasPermi="['ecw:customer:change-customer-no-consignee']"
>{{ $t("设置默认控货无收货人") }}</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-plus"
size="mini"
:disabled="!selectCustomerList.length"
@click="setDefaultBilling"
v-hasPermi="['ecw:customer:change-customer-default-billing']"
>{{ $t("设置默认开票") }}</el-button
>
</el-col>
</el-row> </el-row>
<!-- 列表 --> <!-- 列表 -->
...@@ -721,7 +616,7 @@ ...@@ -721,7 +616,7 @@
<span >{{ parseTime(scope.row.updateTime) }}</span> <span >{{ parseTime(scope.row.updateTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="100px" :label="$t('操作')" align="center" fixed="right"> <el-table-column width="200px" :label="$t('操作')" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<router-link :to="'/customer/query/' + scope.row.id"> <router-link :to="'/customer/query/' + scope.row.id">
<el-button <el-button
...@@ -729,6 +624,7 @@ ...@@ -729,6 +624,7 @@
size="mini" size="mini"
style="margin-right: 10px" style="margin-right: 10px"
type="text" type="text"
icon="el-icon-view"
>查看</el-button >查看</el-button
> >
</router-link> </router-link>
...@@ -737,9 +633,18 @@ ...@@ -737,9 +633,18 @@
v-has-permi="['ecw:customer:sea-gain']" v-has-permi="['ecw:customer:sea-gain']"
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit"
@click="fishingFn(scope.row)" @click="fishingFn(scope.row)"
>{{ $t("捞取") }}</el-button >{{ $t("捞取") }}</el-button
> >
<el-button
v-has-permi="['ecw:customer:setting']"
size="mini"
type="text"
icon="el-icon-user"
@click="handleSetting(scope.row)"
>{{ $t("设置") }}</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -787,6 +692,10 @@ ...@@ -787,6 +692,10 @@
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />
<customer-setting
ref="customerSetting"
@refresh="getList"
></customer-setting>
</div> </div>
</template> </template>
...@@ -808,6 +717,7 @@ import { getCountryListAll } from "@/api/ecw/country"; ...@@ -808,6 +717,7 @@ import { getCountryListAll } from "@/api/ecw/country";
import { getCreditPage } from "@/api/customer/credit"; import { getCreditPage } from "@/api/customer/credit";
import Template from "@/views/cms/template/index.vue"; import Template from "@/views/cms/template/index.vue";
import Contacts from "@/views/ecw/customer/components/contacts.vue"; import Contacts from "@/views/ecw/customer/components/contacts.vue";
import CustomerSetting from "../customer/components/customerSetting.vue";
import AreaCodeSelector from "@/components/AreaCodeSelector/index.vue"; import AreaCodeSelector from "@/components/AreaCodeSelector/index.vue";
import { getNodeList } from "@/api/ecw/node"; import { getNodeList } from "@/api/ecw/node";
import { getCustomerSelect, changeCustomerDefaultPay, changeCustomerNoConsignee,changeCustomerDefaultBilling } from "@/api/ecw/customer"; import { getCustomerSelect, changeCustomerDefaultPay, changeCustomerNoConsignee,changeCustomerDefaultBilling } from "@/api/ecw/customer";
...@@ -823,7 +733,8 @@ export default { ...@@ -823,7 +733,8 @@ export default {
Contacts, Contacts,
Template, Template,
upload, upload,
AreaCodeSelector AreaCodeSelector,
CustomerSetting
}, },
data() { data() {
return { return {
...@@ -1297,19 +1208,11 @@ export default { ...@@ -1297,19 +1208,11 @@ export default {
this.multipleSelection = val; this.multipleSelection = val;
this.selectCustomerList = val.map((i) => i.id); this.selectCustomerList = val.map((i) => i.id);
}, },
getBusiCountryNames(ids) { handleSetting(row) {
if (ids) { this.$refs['customerSetting'].dialogVisible = true
const idsArr = ids.split(',') this.$nextTick(_ => {
const strArr = [] this.$refs['customerSetting'].init(row.id)
this.countryList.forEach(item => { })
if (idsArr.includes(item.id.toString())) {
strArr.push(this.isChinese ? item.nameZh : item.nameEn)
}
})
return strArr.length > 0 ? strArr.join(',') : null
} else {
return null
}
}, },
getBusiCountryNames(ids) { getBusiCountryNames(ids) {
if (ids) { if (ids) {
...@@ -1367,33 +1270,6 @@ export default { ...@@ -1367,33 +1270,6 @@ export default {
return null return null
} }
}, },
setDefaultPay() {
changeCustomerDefaultPay({
customerIdList: this.selectCustomerList,
defaultPay: true
}).then(_ => {
this.$message.success(this.$t("操作成功"))
this.getList()
})
},
setNoConsignee() {
changeCustomerNoConsignee({
customerIdList: this.selectCustomerList,
noConsigee: true
}).then(_ => {
this.$message.success(this.$t("操作成功"))
this.getList()
})
},
setDefaultBilling() {
changeCustomerDefaultBilling({
customerIdList: this.selectCustomerList,
defaultBilling: true
}).then(_ => {
this.$message.success(this.$t("操作成功"))
this.getList()
})
},
}, },
}; };
</script> </script>
...@@ -8,6 +8,22 @@ ...@@ -8,6 +8,22 @@
:inline="true" :inline="true"
label-width="100px" label-width="100px"
> >
<el-form-item :label="$t('订单号') + ':'">
<el-input
v-model="queryParams.orderNo"
:placeholder="$t('请输入订单号')"
clearable
@keyup.enter.native="handleQuery"
>
<template slot="prepend">
<dict-selector
:type="DICT_TYPE.EXCEPTION_SELECT_FILED"
v-model="queryParams.orderNoKey"
class="w-50"
/>
</template>
</el-input>
</el-form-item>
<el-form-item> <el-form-item>
<el-select <el-select
v-model="queryParams.dateType" v-model="queryParams.dateType"
...@@ -170,23 +186,6 @@ ...@@ -170,23 +186,6 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item :label="$t('订单号') + ':'">
<el-input
v-model="queryParams.orderNo"
:placeholder="$t('请输入订单号')"
clearable
@keyup.enter.native="handleQuery"
>
<template slot="prepend">
<dict-selector
:type="DICT_TYPE.EXCEPTION_SELECT_FILED"
v-model="queryParams.orderNoKey"
class="w-50"
/>
</template>
</el-input>
</el-form-item>
<!-- <el-form-item :label="$t('发货人')+':'"> <!-- <el-form-item :label="$t('发货人')+':'">
<customer-selector v-model="queryParams.consignor" :clearable="true" @change="consignor = $event" /> <customer-selector v-model="queryParams.consignor" :clearable="true" @change="consignor = $event" />
</el-form-item> </el-form-item>
......
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