Commit d625d224 authored by 1483922988@qq.com's avatar 1483922988@qq.com

6

parent 4af4e00f
<template xmlns=""> <template xmlns="">
<el-row <el-row type="flex" style="margin: 15px 0" justify="center">
type="flex"
style="margin: 15px 0"
justify="center"
>
<el-col :xs="24" :sm="24" :md="24" :lg="22" :xl="20"> <el-col :xs="24" :sm="24" :md="24" :lg="22" :xl="20">
<el-form ref="form" :model="form" :rules="rules" label-width="150px"> <el-form ref="form" :model="form" :rules="rules" label-width="150px">
<el-card class="box-card"> <el-card class="box-card">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span class="title-text">{{ $t('基本') }}</span> <span class="title-text">{{ $t("基本") }}</span>
<el-button <el-button style="float: right" size="small" type="primary" @click="showBaseFlag = !showBaseFlag">{{ showBaseFlag ? $t("隐藏") : $t("更多") }}</el-button>
style="float: right"
size="small"
type="primary"
@click="showBaseFlag = !showBaseFlag"
>{{showBaseFlag ? $t('隐藏') : $t('更多')}}</el-button
>
</div> </div>
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('客户名称')" prop="name"> <el-form-item :label="$t('客户名称')" prop="name">
<el-input <el-input v-model="form.name" :placeholder="$t('请输入客户名称')" />
v-model="form.name"
:placeholder="$t('请输入客户名称')"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('客户英文名称')"> <el-form-item :label="$t('客户英文名称')">
<el-input <el-input v-model="form.nameEn" :placeholder="$t('请输入客户英文名称')"></el-input>
v-model="form.nameEn"
:placeholder="$t('请输入客户英文名称')"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('客户来源')" prop="source"> <el-form-item :label="$t('客户来源')" prop="source">
<el-select <el-select v-model="form.source" :placeholder="$t('请选择客户来源')">
v-model="form.source" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)" />
:placeholder="$t('请选择客户来源')"
>
<el-option
v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
:key="dict.value"
:label="isChinese ? dict.label : dict.labelEn"
:value="parseInt(dict.value)"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('国籍')" prop="country"> <el-form-item :label="$t('国籍')" prop="country">
<el-select <el-select filterable clearable v-model="form.country" :placeholder="$t('请选择国家')">
filterable <el-option v-for="dict in countryList" :key="dict.id" :label="isChinese ? dict.nameZh : dict.nameEn" :value="parseInt(dict.id)" />
clearable
v-model="form.country"
:placeholder="$t('请选择国家')"
>
<el-option
v-for="dict in countryList"
:key="dict.id"
:label="isChinese ? dict.nameZh : dict.nameEn"
:value="parseInt(dict.id)"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select <el-select v-model="form.customerService" :placeholder="$t('请选择客户经理')" :disabled="(customerId !== '0' && $route.name !== 'allocatedCustomerEdit') || isCustomerServiceConfirmed">
v-model="form.customerService" <el-option v-for="item in !((customerId !== '0' && $route.name !== 'allocatedCustomerEdit') || isCustomerServiceConfirmed) ? serviceUserList : allSimplList" :key="item.id" :label="item.nickname" :value="item.id" />
:placeholder="$t('请选择客户经理')"
:disabled="
(customerId !== '0' &&
$route.name !== 'allocatedCustomerEdit') ||
isCustomerServiceConfirmed
"
>
<el-option
v-for="item in !(
(customerId !== '0' &&
$route.name !== 'allocatedCustomerEdit') ||
isCustomerServiceConfirmed
)
? serviceUserList
: allSimplList"
:key="item.id"
:label="item.nickname"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('推介人')" prop="promoter"> <el-form-item :label="$t('推介人')" prop="promoter">
<el-select <el-select clearable remote :remote-method="remoteMethod" v-model="form.promoter" :placeholder="$t('请输入推介人')" filterable>
clearable <el-option v-for="item in customerSelectFn" :key="item.id" :label="item.name" :value="item.id"> </el-option>
remote
:remote-method="remoteMethod"
v-model="form.promoter"
:placeholder="$t('请输入推介人')"
filterable
>
<el-option
v-for="item in customerSelectFn"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('备注')" prop="remarks"> <el-form-item :label="$t('备注')" prop="remarks">
<el-input <el-input v-model="form.remarks" :placeholder="$t('请输入备注')" />
v-model="form.remarks"
:placeholder="$t('请输入备注')"
/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('询盘信息')"> <el-form-item :label="$t('询盘信息')">
<el-input <el-input show-word-limit v-model="form.inquiry" :rows="3" type="textarea" :maxlength="500"></el-input>
show-word-limit
v-model="form.inquiry"
:rows="3"
type="textarea"
:maxlength="500"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -141,33 +66,19 @@ ...@@ -141,33 +66,19 @@
<el-row :gutter="10" v-show="showBaseFlag"> <el-row :gutter="10" v-show="showBaseFlag">
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('联系地址')" prop="address"> <el-form-item :label="$t('联系地址')" prop="address">
<el-input <el-input v-model="form.address" :placeholder="$t('请输入联系地址')" />
v-model="form.address"
:placeholder="$t('请输入联系地址')"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('客户生日')" prop="birthday"> <el-form-item :label="$t('客户生日')" prop="birthday">
<el-date-picker <el-date-picker v-model="form.birthday" type="date" value-format="timestamp" :placeholder="$t('请输入客户生日')"> </el-date-picker>
v-model="form.birthday"
type="date"
value-format="timestamp"
:placeholder="$t('请输入客户生日')"
>
</el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('业绩类型')"> <el-form-item :label="$t('业绩类型')">
<el-switch <el-switch v-model="form.isNew" disabled active-text="新客户" inactive-text="老客户"> </el-switch>
v-model="form.isNew"
disabled
active-text="新客户"
inactive-text="老客户">
</el-switch>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
...@@ -178,158 +89,76 @@ ...@@ -178,158 +89,76 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('客户等级')" prop="level"> <el-form-item :label="$t('客户等级')" prop="level">
<el-select <el-select v-model="form.level" :placeholder="$t('请选择客户等级')" disabled>
v-model="form.level" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)" />
:placeholder="$t('请选择客户等级')"
disabled
>
<el-option
v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
:key="dict.value"
:label="isChinese ? dict.label : dict.labelEn"
:value="parseInt(dict.value)"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('客户状态')" prop="status"> <el-form-item :label="$t('客户状态')" prop="status">
<el-select <el-select v-model="form.status" :placeholder="$t('请选择客户状态')" disabled>
v-model="form.status" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)" />
:placeholder="$t('请选择客户状态')"
disabled
>
<el-option
v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key="dict.value"
:label="isChinese ? dict.label : dict.labelEn"
:value="parseInt(dict.value)"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('首次成交时间')"> <el-form-item :label="$t('首次成交时间')">
<el-date-picker <el-date-picker v-model="form.firstDealTime" type="datetime" :placeholder="$t('请选择')" disabled />
v-model="form.firstDealTime"
type="datetime"
:placeholder="$t('请选择')"
disabled
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('掉入公海时间')"> <el-form-item :label="$t('掉入公海时间')">
<el-date-picker <el-date-picker v-model="enterOpenSeaTime" type="datetime" :placeholder="$t('请选择')" disabled />
v-model="enterOpenSeaTime"
type="datetime"
:placeholder="$t('请选择')"
disabled
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('获取方式')" prop="getMethod"> <el-form-item :label="$t('获取方式')" prop="getMethod">
<el-select <el-select v-model="form.getMethod" :placeholder="$t('请选择')" disabled>
v-model="form.getMethod" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_GET_METHOD)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)" />
:placeholder="$t('请选择')"
disabled
>
<el-option
v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_GET_METHOD)"
:key="dict.value"
:label="isChinese ? dict.label : dict.labelEn"
:value="parseInt(dict.value)"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('创建入口')" prop="createFrom"> <el-form-item :label="$t('创建入口')" prop="createFrom">
<el-select <el-select v-model="form.createFrom" :placeholder="$t('请选择')" disabled>
v-model="form.createFrom" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_FROM)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)" />
:placeholder="$t('请选择')"
disabled
>
<el-option
v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_FROM)"
:key="dict.value"
:label="isChinese ? dict.label : dict.labelEn"
:value="parseInt(dict.value)"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('捞取时间')"> <el-form-item :label="$t('捞取时间')">
<el-date-picker <el-date-picker v-model="form.catchTime" type="datetime" :placeholder="$t('请选择')" disabled />
v-model="form.catchTime"
type="datetime"
:placeholder="$t('请选择')"
disabled
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('归属时间')"> <el-form-item :label="$t('归属时间')">
<el-date-picker <el-date-picker v-model="form.customerServiceConfirmedTime" type="datetime" disabled :placeholder="$t('请选择')"> </el-date-picker>
v-model="form.customerServiceConfirmedTime"
type="datetime"
disabled
:placeholder="$t('请选择')"
>
</el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('创建人')" prop="founder"> <el-form-item :label="$t('创建人')" prop="founder">
<el-select v-model="form.founder" disabled> <el-select v-model="form.founder" disabled>
<el-option <el-option v-for="item in allSimplList" :key="item.id" :label="item.nickname" :value="item.id"> </el-option>
v-for="item in allSimplList"
:key="item.id"
:label="item.nickname"
:value="item.id"
>
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('创建时间')" prop="createTime"> <el-form-item :label="$t('创建时间')" prop="createTime">
<el-date-picker <el-date-picker v-model="form.createTime" type="datetime" value-format="timestamp" disabled :placeholder="$t('选择创建时间')"> </el-date-picker>
v-model="form.createTime"
type="datetime"
value-format="timestamp"
disabled
:placeholder="$t('选择创建时间')"
>
</el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('最后更新人')"> <el-form-item :label="$t('最后更新人')">
<el-select v-model="form.updater" disabled> <el-select v-model="form.updater" disabled>
<el-option <el-option v-for="item in allSimplList" :key="item.id" :label="item.nickname" :value="item.id"> </el-option>
v-for="item in allSimplList"
:key="item.id"
:label="item.nickname"
:value="item.id"
>
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('最后更新时间')"> <el-form-item :label="$t('最后更新时间')">
<el-date-picker <el-date-picker v-model="form.updateTime" type="datetime" value-format="timestamp" disabled> </el-date-picker>
v-model="form.updateTime"
type="datetime"
value-format="timestamp"
disabled
>
</el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -337,54 +166,25 @@ ...@@ -337,54 +166,25 @@
<el-card style="margin-top: 15px"> <el-card style="margin-top: 15px">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span class="title-text">{{ $t('发货信息') }}</span> <span class="title-text">{{ $t("发货信息") }}</span>
<el-button <el-button style="float: right" size="small" type="primary" @click="showShippingFlag = !showShippingFlag">{{ showShippingFlag ? $t("隐藏") : $t("更多") }}</el-button>
style="float: right"
size="small"
type="primary"
@click="showShippingFlag = !showShippingFlag"
>{{showShippingFlag ? $t('隐藏') : $t('更多')}}</el-button
>
</div> </div>
<el-row :gutter="10" v-show="showShippingFlag"> <el-row :gutter="10" v-show="showShippingFlag">
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('客户类别')" prop="type"> <el-form-item :label="$t('客户类别')" prop="type">
<dict-selector <dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" form-type="checkbox" multiple v-model="form.type"></dict-selector>
:type="DICT_TYPE.CUSTOMER_TYPE"
form-type="checkbox"
multiple
v-model="form.type"
></dict-selector>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('角色')"> <el-form-item :label="$t('角色')">
<dict-selector <dict-selector :type="DICT_TYPE.CUSTOMER_ROLE" form-type="checkbox" multiple v-model="form.roles"></dict-selector>
:type="DICT_TYPE.CUSTOMER_ROLE"
form-type="checkbox"
multiple
v-model="form.roles"
></dict-selector>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col <el-col :span="13" v-show="form.roles && form.roles.indexOf('2') !== -1">
:span="13"
v-show="form.roles && form.roles.indexOf('2') !== -1"
>
<el-form-item :label="$t('所属代理')" prop="agentId"> <el-form-item :label="$t('所属代理')" prop="agentId">
<el-select <el-select filterable clearable v-model="form.agentId" :placeholder="$t('请选择所属代理')">
filterable <el-option v-for="item in serviceUserList" :key="item.id" :label="item.nickname" :value="item.id" />
clearable
v-model="form.agentId"
:placeholder="$t('请选择所属代理')"
>
<el-option
v-for="item in serviceUserList"
:key="item.id"
:label="item.nickname"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -393,45 +193,22 @@ ...@@ -393,45 +193,22 @@
<el-form-item :label="$t('出货渠道')" prop="transportType"> <el-form-item :label="$t('出货渠道')" prop="transportType">
<!-- <dict-selector :type="DICT_TYPE.ECW_CUSTOMER_TRANSPORT_TYPE" form-type="checkbox" multiple v-model="form.transportType"></dict-selector>--> <!-- <dict-selector :type="DICT_TYPE.ECW_CUSTOMER_TRANSPORT_TYPE" form-type="checkbox" multiple v-model="form.transportType"></dict-selector>-->
<el-checkbox-group v-model="form.transportType"> <el-checkbox-group v-model="form.transportType">
<el-checkbox <el-checkbox v-for="item in getDictDatas(DICT_TYPE.ECW_CUSTOMER_TRANSPORT_TYPE)" :key="item.value" :label="item.value" :disabled="[3].includes(+item.value)">{{ item.label }}</el-checkbox>
v-for="item in getDictDatas(
DICT_TYPE.ECW_CUSTOMER_TRANSPORT_TYPE
)"
:key="item.value"
:label="item.value"
:disabled="[3].includes(+item.value)"
>{{ item.label }}</el-checkbox
>
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('常用提货网点')" prop="pickupPoints"> <el-form-item :label="$t('常用提货网点')" prop="pickupPoints">
<el-select multiple v-model="form.pickupPoints"> <el-select multiple v-model="form.pickupPoints">
<el-option <el-option v-for="item in getNodeLists" :key="item.id" :value="item.id" :label="isChinese ? item.titleZh : item.titleEn"></el-option>
v-for="item in getNodeLists"
:key="item.id"
:value="item.id"
:label="isChinese ? item.titleZh : item.titleEn"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('业务国家')" prop="busiCountryIds"> <el-form-item :label="$t('业务国家')" prop="busiCountryIds">
<el-select <el-select multiple clearable v-model="form.busiCountryIds" :placeholder="$t('请选择')">
multiple <el-option v-for="dict in countryList" :key="dict.id" :label="isChinese ? dict.nameZh : dict.nameEn" :value="parseInt(dict.id)" />
clearable
v-model="form.busiCountryIds"
:placeholder="$t('请选择')"
>
<el-option
v-for="dict in countryList"
:key="dict.id"
:label="isChinese ? dict.nameZh : dict.nameEn"
:value="parseInt(dict.id)"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -439,33 +216,13 @@ ...@@ -439,33 +216,13 @@
<el-form-item :label="$t('主营类别')" prop="productType"> <el-form-item :label="$t('主营类别')" prop="productType">
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="11"> <el-col :span="11">
<el-select <el-select @change="change" v-model="form.productType" :placeholder="$t('请选择产品类别')">
@change="change" <el-option :label="isChinese ? item.titleZh : item.titleEn" :value="item.id" v-for="item in productTypeList" :key="item.id" />
v-model="form.productType"
:placeholder="$t('请选择产品类别')"
>
<el-option
:label="isChinese ? item.titleZh : item.titleEn"
:value="item.id"
v-for="item in productTypeList"
:key="item.id"
/>
</el-select> </el-select>
</el-col> </el-col>
<el-col :span="11"> <el-col :span="11">
<el-select <el-select multiple filterable clearable v-model="form.productIds" :placeholder="$t('请选择')">
multiple <el-option :label="item.titleZh" :value="parseInt(item.id)" v-for="item in productList" :key="item.id" />
filterable
clearable
v-model="form.productIds"
:placeholder="$t('请选择')"
>
<el-option
:label="item.titleZh"
:value="parseInt(item.id)"
v-for="item in productList"
:key="item.id"
/>
</el-select> </el-select>
</el-col> </el-col>
</el-row> </el-row>
...@@ -479,22 +236,9 @@ ...@@ -479,22 +236,9 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('主要竞争对手')" prop="competitorIds"> <el-form-item :label="$t('主要竞争对手')" prop="competitorIds">
<el-select <el-select clearable v-model="form.competitorIds" :placeholder="$t('请选择')" @change="changeCompetitor">
clearable <el-option v-for="item in competitorList" :key="item.id" :label="item.name" :value="item.id" />
v-model="form.competitorIds" <el-option :label="$t('其他')" :value="0" />
:placeholder="$t('请选择')"
@change="changeCompetitor"
>
<el-option
v-for="item in competitorList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
<el-option
:label="$t('其他')"
:value="0"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -503,61 +247,36 @@ ...@@ -503,61 +247,36 @@
<el-input-number v-model="form.numYearly" :min="1" /> <el-input-number v-model="form.numYearly" :min="1" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-card> </el-card>
</el-form> </el-form>
<el-card class="box-card" style="margin-top: 15px;"> <el-card class="box-card" style="margin-top: 15px">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span class="title-text">{{ $t("联系人") }}</span> <span class="title-text">{{ $t("联系人") }}</span>
<el-button <el-button style="float: right" size="small" type="primary" @click="handleAddContact">+</el-button>
style="float: right"
size="small"
type="primary"
@click="handleAddContact"
>+</el-button
>
</div> </div>
<el-form ref="contactForm" :rules="contactRules" :model="form"> <el-form ref="contactForm" :rules="contactRules" :model="form">
<el-table :data="form.customerContacts" style="width: 100%"> <el-table :data="form.customerContacts" style="width: 100%">
<el-table-column prop="department" :label="$t('部门')" width=""> <el-table-column prop="department" :label="$t('部门')" width="">
<template v-slot="{ row }"> <template v-slot="{ row }">
<el-form-item label=""> <el-form-item label="">
<el-input <el-input v-model="row.department" :placeholder="$t('请输入部门')" size="mini" />
v-model="row.department"
:placeholder="$t('请输入部门')"
size="mini"
/>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="position" :label="$t('职位')" width=""> <el-table-column prop="position" :label="$t('职位')" width="">
<template v-slot="{ row }"> <template v-slot="{ row }">
<el-form-item label=""> <el-form-item label="">
<el-input <el-input v-model="row.position" :placeholder="$t('请输入职位')" size="mini" />
v-model="row.position"
:placeholder="$t('请输入职位')"
size="mini"
/>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="name" :label="$t('联系人')"> <el-table-column prop="name" :label="$t('联系人')">
<template slot="header"> <template slot="header"> {{ $t("联系人") }} <span style="color: #ff0000">*</span> </template>
{{ $t("联系人") }} <span style="color: #ff0000">*</span>
</template>
<template v-slot="{ row, cellValue, $index }"> <template v-slot="{ row, cellValue, $index }">
<el-form-item <el-form-item :rules="contactRules.name" :prop="'customerContacts.' + $index + '.name'" label="">
:rules="contactRules.name" <el-input v-model="row.name" :placeholder="$t('请输入联系人')" size="mini" />
:prop="'customerContacts.' + $index + '.name'"
label=""
>
<el-input
v-model="row.name"
:placeholder="$t('请输入联系人')"
size="mini"
/>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
...@@ -567,62 +286,25 @@ ...@@ -567,62 +286,25 @@
</template> </template>
<template v-slot="{ row, cellValue, $index }"> <template v-slot="{ row, cellValue, $index }">
<el-form-item label=""> <el-form-item label="">
<el-input <el-input v-model="row.nameEn" :placeholder="$t('请输入联系人英文名称')" size="mini" />
v-model="row.nameEn"
:placeholder="$t('请输入联系人英文名称')"
size="mini"
/>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="areaCode" :label="$t('区号')"> <el-table-column prop="areaCode" :label="$t('区号')">
<template slot="header"> <template slot="header"> {{ $t("区号") }} <span style="color: #ff0000">*</span> </template>
{{ $t("区号") }} <span style="color: #ff0000">*</span>
</template>
<template v-slot="{ row, cellValue, $index }"> <template v-slot="{ row, cellValue, $index }">
<el-form-item <el-form-item :rules="contactRules.areaCode" :prop="'customerContacts.' + $index + '.areaCode'" label="">
:rules="contactRules.areaCode" <el-select v-model="row.areaCode" :placeholder="$t('请选择区号')" filterable size="mini">
:prop="'customerContacts.' + $index + '.areaCode'" <el-option v-for="(item, index) in countryList" :key="index" :label="item.nameShort + (isChinese ? item.nameZh : item.nameEn) + '(' + item.tel + ')'" :value="item.tel" />
label=""
>
<el-select
v-model="row.areaCode"
:placeholder="$t('请选择区号')"
filterable
size="mini"
>
<el-option
v-for="(item, index) in countryList"
:key="index"
:label="
item.nameShort +
(isChinese ? item.nameZh : item.nameEn) +
'(' +
item.tel +
')'
"
:value="item.tel"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="phoneNew" :label="$t('联系方式')"> <el-table-column prop="phoneNew" :label="$t('联系方式')">
<template slot="header"> <template slot="header"> {{ $t("联系方式") }} <span style="color: #ff0000">*</span> </template>
{{ $t("联系方式") }} <span style="color: #ff0000">*</span>
</template>
<template v-slot="{ row, cellValue, $index }"> <template v-slot="{ row, cellValue, $index }">
<el-form-item <el-form-item :rules="contactRules.phoneNew" :prop="'customerContacts.' + $index + '.phoneNew'" label="">
:rules="contactRules.phoneNew" <el-input v-model.trim="row.phoneNew" :placeholder="$t('请输入联系方式')" size="mini" @input="row.phoneNew = row.phoneNew.replace(/\s+/g, '')" />
:prop="'customerContacts.' + $index + '.phoneNew'"
label=""
>
<el-input
v-model.trim="row.phoneNew"
:placeholder="$t('请输入联系方式')"
size="mini"
@input="row.phoneNew=row.phoneNew.replace(/\s+/g, '')"
/>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
...@@ -639,67 +321,26 @@ ...@@ -639,67 +321,26 @@
<el-table-column prop="social" :label="$t('社交软件')"> <el-table-column prop="social" :label="$t('社交软件')">
<template v-slot="{ row }"> <template v-slot="{ row }">
<el-form-item label=""> <el-form-item label="">
<el-select <el-select v-model="row.social" :placeholder="$t('请选择社交软件')" size="mini">
v-model="row.social" <el-option v-for="dict in getDictDatas(DICT_TYPE.SOCIAL)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)" />
:placeholder="$t('请选择社交软件')"
size="mini"
>
<el-option
v-for="dict in getDictDatas(DICT_TYPE.SOCIAL)"
:key="dict.value"
:label="isChinese ? dict.label : dict.labelEn"
:value="parseInt(dict.value)"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="socialNumber" :label="$t('社交软件号码')">
prop="socialNumber"
:label="$t('社交软件号码')"
>
<template v-slot="{ row }"> <template v-slot="{ row }">
<el-form-item label=""> <el-form-item label="">
<el-input <el-input v-model="row.socialNumber" :placeholder="$t('请输入社交软件号码')" size="mini" />
v-model="row.socialNumber"
:placeholder="$t('请输入社交软件号码')"
size="mini"
/>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="260px" prop="email" :label="$t('邮箱')"> <el-table-column width="260px" prop="email" :label="$t('邮箱')">
<template v-slot="{ row }"> <template v-slot="{ row }">
<el-form-item <el-form-item v-for="(item, index) in row.email" :key="index" label="">
v-for="(item, index) in row.email"
:key="index"
label=""
>
<div style="display: flex; align-items: center"> <div style="display: flex; align-items: center">
<el-input <el-input v-model="row.email[index]" :placeholder="$t('请输入邮箱')" size="mini" />
v-model="row.email[index]" <el-button @click="deleteEmail(row.email, index)" v-if="row.email.length !== 1" style="height: 25px; margin-left: 5px" type="danger" size="mini">删除</el-button>
:placeholder="$t('请输入邮箱')" <el-button @click="addEmail(row.email)" style="height: 25px; margin-left: 5px" v-if="index === row.email.length - 1 && row.email.length < 5" size="mini" type="primary">添加</el-button>
size="mini"
/>
<el-button
@click="deleteEmail(row.email, index)"
v-if="row.email.length !== 1"
style="height: 25px; margin-left: 5px"
type="danger"
size="mini"
>删除</el-button
>
<el-button
@click="addEmail(row.email)"
style="height: 25px; margin-left: 5px"
v-if="
index === row.email.length - 1 &&
row.email.length < 5
"
size="mini"
type="primary"
>添加</el-button
>
</div> </div>
</el-form-item> </el-form-item>
</template> </template>
...@@ -707,18 +348,8 @@ ...@@ -707,18 +348,8 @@
<el-table-column prop="isDefault" :label="$t('设为默认')"> <el-table-column prop="isDefault" :label="$t('设为默认')">
<template v-slot="{ row, column, $index }"> <template v-slot="{ row, column, $index }">
<el-form-item label=""> <el-form-item label="">
<el-select <el-select v-model="row.isDefault" :placeholder="$t('设为默认')" @change="handleDefaultChange($index)" size="mini">
v-model="row.isDefault" <el-option v-for="dict in getDictDatas(DICT_TYPE.IS_DEFAULT)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="Number(dict.value)" />
:placeholder="$t('设为默认')"
@change="handleDefaultChange($index)"
size="mini"
>
<el-option
v-for="dict in getDictDatas(DICT_TYPE.IS_DEFAULT)"
:key="dict.value"
:label="isChinese ? dict.label : dict.labelEn"
:value="Number(dict.value)"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</template> </template>
...@@ -726,12 +357,7 @@ ...@@ -726,12 +357,7 @@
<el-table-column prop="name" :label="$t('操作')"> <el-table-column prop="name" :label="$t('操作')">
<template v-slot="{ row, column, $index }"> <template v-slot="{ row, column, $index }">
<el-form-item label=""> <el-form-item label="">
<el-button <el-button type="danger" @click="handleDeleteContact($index)" size="mini">{{ $t("删除") }}</el-button>
type="danger"
@click="handleDeleteContact($index)"
size="mini"
>{{ $t("删除") }}</el-button
>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
...@@ -739,16 +365,10 @@ ...@@ -739,16 +365,10 @@
</el-form> </el-form>
</el-card> </el-card>
<el-card class="box-card" style="margin-top: 15px;"> <el-card class="box-card" style="margin-top: 15px">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span class="title-text">{{ $t('设置') }}</span> <span class="title-text">{{ $t("设置") }}</span>
<el-button <el-button style="float: right" size="small" type="primary" @click="showSettingFlag = !showSettingFlag">{{ showSettingFlag ? $t("隐藏") : $t("更多") }}</el-button>
style="float: right"
size="small"
type="primary"
@click="showSettingFlag = !showSettingFlag"
>{{showSettingFlag ? $t('隐藏') : $t('更多')}}</el-button
>
</div> </div>
<el-form ref="setForm" label-width="150px" v-if="showSettingFlag"> <el-form ref="setForm" label-width="150px" v-if="showSettingFlag">
<el-row :gutter="10"> <el-row :gutter="10">
...@@ -759,22 +379,14 @@ ...@@ -759,22 +379,14 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('到仓确认')" prop="arrivalConfirm"> <el-form-item :label="$t('到仓确认')" prop="arrivalConfirm">
<el-switch <el-switch v-model="form.arrivalConfirm" :active-value="1" :inactive-value="0" />
v-model="form.arrivalConfirm"
:active-value="1"
:inactive-value="0"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="13"> <el-col :span="13">
<el-form-item :label="$t('重货标准')" prop="weightUnit"> <el-form-item :label="$t('重货标准')" prop="weightUnit">
<el-switch v-model="showZhong" /> <el-switch v-model="showZhong" />
<el-input <el-input v-model="form.weightUnit" :placeholder="$t('请输入重货标准')" v-show="showZhong">
v-model="form.weightUnit"
:placeholder="$t('请输入重货标准')"
v-show="showZhong"
>
<template slot="append">kg/cbm</template> <template slot="append">kg/cbm</template>
</el-input> </el-input>
</el-form-item> </el-form-item>
...@@ -782,24 +394,14 @@ ...@@ -782,24 +394,14 @@
<el-col :span="24" v-show="showZhong"> <el-col :span="24" v-show="showZhong">
<el-form-item :label="$t('指定线路')" prop="line"> <el-form-item :label="$t('指定线路')" prop="line">
<el-switch v-model="showZhong1"></el-switch> <el-switch v-model="showZhong1"></el-switch>
<customer-line-table <customer-line-table v-if="showZhong1" :warehouse-list="warehouseList" :import-city-list="importCityList" v-model="zhongLines" :zhong-pao-type="1"></customer-line-table>
v-if="showZhong1"
:warehouse-list="warehouseList"
:import-city-list="importCityList"
v-model="zhongLines"
:zhong-pao-type="1"
></customer-line-table>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="13"> <el-col :span="13">
<el-form-item :label="$t('泡货标准')" prop="lightUnit"> <el-form-item :label="$t('泡货标准')" prop="lightUnit">
<el-switch v-model="showPao" /> <el-switch v-model="showPao" />
<el-input <el-input v-model="form.lightUnit" :placeholder="$t('请输入泡货标准')" v-show="showPao">
v-model="form.lightUnit"
:placeholder="$t('请输入泡货标准')"
v-show="showPao"
>
<template slot="append">kg/cbm</template> <template slot="append">kg/cbm</template>
</el-input> </el-input>
</el-form-item> </el-form-item>
...@@ -807,13 +409,7 @@ ...@@ -807,13 +409,7 @@
<el-col :span="24" v-show="showPao"> <el-col :span="24" v-show="showPao">
<el-form-item :label="$t('指定线路')" prop="line"> <el-form-item :label="$t('指定线路')" prop="line">
<el-switch v-model="showPao1"></el-switch> <el-switch v-model="showPao1"></el-switch>
<customer-line-table <customer-line-table v-if="showPao1" :warehouse-list="warehouseList" :import-city-list="importCityList" v-model="paoLines" :zhong-pao-type="2"></customer-line-table>
v-if="showPao1"
:warehouse-list="warehouseList"
:import-city-list="importCityList"
v-model="paoLines"
:zhong-pao-type="2"
></customer-line-table>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -832,146 +428,91 @@ ...@@ -832,146 +428,91 @@
<el-switch v-model="form.defaultBilling" disabled /> <el-switch v-model="form.defaultBilling" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
</el-card> </el-card>
<el-card class="box-card" style="margin-top: 15px;"> <el-card class="box-card" style="margin-top: 15px">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span class="title-text">{{ $t('财务') }}</span> <span class="title-text">{{ $t("财务") }}</span>
<el-button <el-button style="float: right" size="small" type="primary" @click="showFinanceFlag = !showFinanceFlag">{{ showFinanceFlag ? $t("隐藏") : $t("更多") }}</el-button>
style="float: right"
size="small"
type="primary"
@click="showFinanceFlag = !showFinanceFlag"
>{{showFinanceFlag ? $t('隐藏') : $t('更多')}}</el-button
>
</div> </div>
<el-form ref="financeForm" label-width="150px" v-if="showFinanceFlag"> <el-form ref="financeForm" label-width="150px" v-if="showFinanceFlag">
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('公司名称')" prop="company"> <el-form-item :label="$t('公司名称')" prop="company">
<el-input <el-input v-model="form.company" :placeholder="$t('请输入公司名称')" />
v-model="form.company"
:placeholder="$t('请输入公司名称')"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('公司英文名称')"> <el-form-item :label="$t('公司英文名称')">
<el-input <el-input v-model="form.companyEn" :placeholder="$t('请输入客户英文名称')"></el-input>
v-model="form.companyEn"
:placeholder="$t('请输入客户英文名称')"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item v-hasPermi="['ecw:customer:edit-card']" :label="$t('身份证号码')">
v-hasPermi="['ecw:customer:edit-card']"
:label="$t('身份证号码')"
>
<el-input v-model="form.carNo"></el-input> <el-input v-model="form.carNo"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item v-hasPermi="['ecw:customer:edit-card']" :label="$t('身份证姓名')">
v-hasPermi="['ecw:customer:edit-card']"
:label="$t('身份证姓名')"
>
<el-input v-model="form.carName"></el-input> <el-input v-model="form.carName"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('结算方式')" prop="balance"> <el-form-item :label="$t('结算方式')" prop="balance">
<el-select <el-select v-model="form.balance" :placeholder="$t('请选择结算方式')">
v-model="form.balance" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_BALANCE)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)" />
:placeholder="$t('请选择结算方式')"
>
<el-option
v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_BALANCE)"
:key="dict.value"
:label="isChinese ? dict.label : dict.labelEn"
:value="parseInt(dict.value)"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('付款人姓名')"> <el-form-item :label="$t('付款人姓名')">
<el-input <el-input v-model="form.payerName" :placeholder="$t('请输入付款人姓名')"></el-input>
v-model="form.payerName"
:placeholder="$t('请输入付款人姓名')"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<h3 style="font-size: 15px;">{{$t('开票信息')}}</h3> <h3 style="font-size: 15px">{{ $t("开票信息") }}</h3>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('发票抬头')" prop="invoiceTitle"> <el-form-item :label="$t('发票抬头')" prop="invoiceTitle">
<el-input <el-input v-model="form.invoiceTitle" :placeholder="$t('请输入发票抬头')" />
v-model="form.invoiceTitle"
:placeholder="$t('请输入发票抬头')"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('纳税人识别号')" prop="licenseNumber"> <el-form-item :label="$t('纳税人识别号')" prop="licenseNumber">
<el-input <el-input v-model="form.licenseNumber" :placeholder="$t('请输入纳税人识别号')" />
v-model="form.licenseNumber"
:placeholder="$t('请输入纳税人识别号')"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('开户行')" prop="bank"> <el-form-item :label="$t('开户行')" prop="bank">
<el-input <el-input v-model="form.bank" :placeholder="$t('请输入开户行')" />
v-model="form.bank"
:placeholder="$t('请输入开户行')"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('账户')" prop="bankNumber"> <el-form-item :label="$t('账户')" prop="bankNumber">
<el-input <el-input v-model="form.bankNumber" :placeholder="$t('请输入账户')" />
v-model="form.bankNumber"
:placeholder="$t('请输入账户')"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('项目')" prop="project"> <el-form-item :label="$t('项目')" prop="project">
<el-input <el-input v-model="form.project" :placeholder="$t('请输入项目')" />
v-model="form.project"
:placeholder="$t('请输入项目')"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('开票地址')" prop="billingAddress"> <el-form-item :label="$t('开票地址')" prop="billingAddress">
<el-input <el-input v-model="form.billingAddress" :placeholder="$t('请输入开票地址')" />
v-model="form.billingAddress"
:placeholder="$t('请输入开票地址')"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('开票电话')" prop="billingTell"> <el-form-item :label="$t('开票电话')" prop="billingTell">
<el-input <el-input v-model="form.billingTell" :placeholder="$t('请输入开票电话')" maxlength="50" />
v-model="form.billingTell"
:placeholder="$t('请输入开票电话')"
maxlength="50"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('税率')" prop="taxRate"> <el-form-item :label="$t('税率')" prop="taxRate">
<el-input <el-input v-model="form.taxRate" :placeholder="$t('请输入税率')" />
v-model="form.taxRate"
:placeholder="$t('请输入税率')"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -979,74 +520,41 @@ ...@@ -979,74 +520,41 @@
<el-form ref="bankForm" :model="form" v-if="showFinanceFlag"> <el-form ref="bankForm" :model="form" v-if="showFinanceFlag">
<el-row type="flex" class="row-bg" justify="space-between"> <el-row type="flex" class="row-bg" justify="space-between">
<span style="font-size: 15px; line-height: 30px">{{$t('银行信息')}}</span> <span style="font-size: 15px; line-height: 30px">{{ $t("银行信息") }}</span>
<el-button <el-button size="small" type="primary" @click="addBankData">+</el-button>
size="small"
type="primary"
@click="addBankData"
>+</el-button
>
</el-row> </el-row>
<el-table border :data="form.customerBanks" style="margin-top: 10px"> <el-table border :data="form.customerBanks" style="margin-top: 10px">
<el-table-column <el-table-column :label="$t('序号')" type="index"></el-table-column>
:label="$t('序号')"
type="index"
></el-table-column>
<el-table-column> <el-table-column>
<div slot="header"> <div slot="header">{{ $t("账户名称") }} <span style="color: red">*</span></div>
{{ $t("账户名称") }} <span style="color: red">*</span>
</div>
<template v-slot="{ row, $index }"> <template v-slot="{ row, $index }">
<el-form-item <el-form-item :rules="{ required: true, message: $t('请输入账户名称') }" :prop="'customerBanks.' + $index + '.accountName'">
:rules="{ required: true, message: $t('请输入账户名称') }"
:prop="'customerBanks.' + $index + '.accountName'"
>
<el-input size="mini" v-model="row.accountName"></el-input> <el-input size="mini" v-model="row.accountName"></el-input>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('币别')"> <el-table-column :label="$t('币别')">
<div slot="header"> <div slot="header">{{ $t("币别") }} <span style="color: red">*</span></div>
{{ $t("币别") }} <span style="color: red">*</span>
</div>
<template v-slot="{ row, $index }"> <template v-slot="{ row, $index }">
<el-form-item <el-form-item :prop="'customerBanks.' + $index + '.currency'" :rules="{ required: true, message: $t('请输入币别') }">
:prop="'customerBanks.' + $index + '.currency'"
:rules="{ required: true, message: $t('请输入币别') }"
>
<el-select v-model="row.currency"> <el-select v-model="row.currency">
<el-option <el-option v-for="item in currecyList" :label="$l(item, 'title')" :value="item.id.toString()" :key="item.id"></el-option>
v-for="item in currecyList"
:label="$l(item, 'title')"
:value="item.id.toString()"
:key="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('银行名称')"> <el-table-column :label="$t('银行名称')">
<div slot="header"> <div slot="header">{{ $t("银行名称") }} <span style="color: red">*</span></div>
{{ $t("银行名称") }} <span style="color: red">*</span>
</div>
<template v-slot="{ row, $index }"> <template v-slot="{ row, $index }">
<el-form-item <el-form-item :prop="'customerBanks.' + $index + '.bankName'" :rules="{ required: true, message: $t('银行名称') }">
:prop="'customerBanks.' + $index + '.bankName'"
:rules="{ required: true, message: $t('银行名称') }"
>
<el-input v-model="row.bankName" size="mini"></el-input> <el-input v-model="row.bankName" size="mini"></el-input>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('银行账户')"> <el-table-column :label="$t('银行账户')">
<div slot="header"> <div slot="header">{{ $t("银行账户") }} <span style="color: red">*</span></div>
{{ $t("银行账户") }} <span style="color: red">*</span>
</div>
<template v-slot="{ row, $index }"> <template v-slot="{ row, $index }">
<el-form-item <el-form-item :prop="`customerBanks.${$index}.bankAccount`" :rules="{ required: true, message: $t('请输入银行账户') }">
:prop="`customerBanks.${$index}.bankAccount`"
:rules="{ required: true, message: $t('请输入银行账户') }"
>
<el-input v-model="row.bankAccount" size="mini"></el-input> <el-input v-model="row.bankAccount" size="mini"></el-input>
</el-form-item> </el-form-item>
</template> </template>
...@@ -1087,9 +595,7 @@ ...@@ -1087,9 +595,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')"> <el-table-column :label="$t('操作')">
<template v-slot="{ $index }"> <template v-slot="{ $index }">
<el-button @click="deleteBankData($index)">{{ <el-button @click="deleteBankData($index)">{{ $t("删除") }}</el-button>
$t("删除")
}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -1097,9 +603,7 @@ ...@@ -1097,9 +603,7 @@
</el-card> </el-card>
<div style="margin-top: 15px; text-align: center"> <div style="margin-top: 15px; text-align: center">
<el-button type="primary" @click="submitForm">{{ <el-button type="primary" @click="submitForm">{{ $t("确 定") }}</el-button>
$t("确 定")
}}</el-button>
<el-button @click="cancel">{{ $t("取 消") }}</el-button> <el-button @click="cancel">{{ $t("取 消") }}</el-button>
</div> </div>
</el-col> </el-col>
...@@ -1107,42 +611,25 @@ ...@@ -1107,42 +611,25 @@
</template> </template>
<script> <script>
import { getDictDatas, DICT_TYPE } from "@/utils/dict"; import { getDictDatas, DICT_TYPE } from "@/utils/dict"
import upload from "@/components/ImageUpload"; import upload from "@/components/ImageUpload"
import { import { createCustomer, getCustomer, getCustomerList, getCustomerPage, memberUserList, updateCustomer, userMemberUserList, getCustomerLines, fillupCustomeInfo, getServiceNetwork, addCompetitor, competitorListAll } from "@/api/ecw/customer"
createCustomer, import { getNodeList } from "@/api/ecw/node"
getCustomer, import { getProductTypeList } from "@/api/ecw/productType"
getCustomerList, import { getProductList } from "@/api/ecw/product"
getCustomerPage, import { getTradeCityList } from "@/api/ecw/region"
memberUserList, import { getWarehouseList } from "@/api/ecw/warehouse"
updateCustomer, import CustomerLineTable from "@/components/CustomerLineTable"
userMemberUserList, import { getCustomerSelect } from "@/api/ecw/customer"
getCustomerLines, import { listAllSimpl, listServiceUser, listSimpleUsers } from "@/api/system/user"
fillupCustomeInfo, import { getZhongPaoBest, getZhongPaoPage } from "@/api/ecw/zhongPao"
getServiceNetwork, import { getCustomerContactsListByCustomer } from "@/api/ecw/customerContacts"
addCompetitor, import { getCountryListAll } from "@/api/ecw/country"
competitorListAll import Template from "@/views/cms/template"
} from "@/api/ecw/customer"; import { validatorMobile } from "@/api/ecw/validate"
import { getNodeList } from "@/api/ecw/node";
import { getProductTypeList } from "@/api/ecw/productType";
import { getProductList } from "@/api/ecw/product";
import { getTradeCityList } from "@/api/ecw/region";
import { getWarehouseList } from "@/api/ecw/warehouse";
import CustomerLineTable from "@/components/CustomerLineTable";
import { getCustomerSelect } from "@/api/ecw/customer";
import {
listAllSimpl,
listServiceUser,
listSimpleUsers,
} from "@/api/system/user";
import { getZhongPaoBest, getZhongPaoPage } from "@/api/ecw/zhongPao";
import { getCustomerContactsListByCustomer } from "@/api/ecw/customerContacts";
import { getCountryListAll } from "@/api/ecw/country";
import Template from "@/views/cms/template";
import { validatorMobile } from "@/api/ecw/validate";
// import {customerDropDownList} from "@/api/ecw/customerCommissionInfo"; // import {customerDropDownList} from "@/api/ecw/customerCommissionInfo";
import MemberSelector from "@/components/MemberSelector"; import MemberSelector from "@/components/MemberSelector"
import { getCurrencyList } from "@/api/ecw/currency"; import { getCurrencyList } from "@/api/ecw/currency"
export default { export default {
name: "EcwCustomerEdit", name: "EcwCustomerEdit",
...@@ -1151,46 +638,41 @@ export default { ...@@ -1151,46 +638,41 @@ export default {
Template, Template,
upload, upload,
CustomerLineTable, CustomerLineTable,
MemberSelector, MemberSelector
}, },
created() { created() {
getCurrencyList().then((response) => { getCurrencyList().then((response) => {
this.currecyList = response.data; this.currecyList = response.data
}); })
this.isCustomerServiceConfirmed = this.$route.query this.isCustomerServiceConfirmed = this.$route.query.isCustomerServiceConfirmed ? true : false
.isCustomerServiceConfirmed this.getCustomerSelect()
? true this.reset()
: false;
this.getCustomerSelect();
this.reset();
// this.getUserMemberUserFn() // this.getUserMemberUserFn()
if (this.customerId !== "0") { if (this.customerId !== "0") {
let customerId = this.customerId; let customerId = this.customerId
// 编辑客户 // 编辑客户
this.getCustomer(this.customerId).then(() => { this.getCustomer(this.customerId).then(() => {
getCustomerContactsListByCustomer({ customerId: customerId }).then( getCustomerContactsListByCustomer({ customerId: customerId }).then((r) => {
(r) => { this.form.customerContacts = r.data
this.form.customerContacts = r.data;
this.form.customerContacts.forEach((item) => { this.form.customerContacts.forEach((item) => {
if (item.email) { if (item.email) {
item.email = item.email.split(","); item.email = item.email.split(",")
} else { } else {
item.email = [""]; item.email = [""]
} }
}); })
} })
);
if (this.form.promoter) { if (this.form.promoter) {
getCustomerList({ ids: this.form.promoter }).then((r) => { getCustomerList({ ids: this.form.promoter }).then((r) => {
this.recommended = r.data; this.recommended = r.data
}); })
} }
// 打开重泡货开关 // 打开重泡货开关
if (this.form.weightUnit) { if (this.form.weightUnit) {
this.showZhong = true; this.showZhong = true
} }
if (this.form.lightUnit) { if (this.form.lightUnit) {
this.showPao = true; this.showPao = true
} }
// 掉入公海时间 // 掉入公海时间
this.enterOpenSeaTime = this.form.estimateEnterOpenSeaTime || this.form.enterOpenSeaTime || undefined this.enterOpenSeaTime = this.form.estimateEnterOpenSeaTime || this.form.enterOpenSeaTime || undefined
...@@ -1198,46 +680,46 @@ export default { ...@@ -1198,46 +680,46 @@ export default {
if (customerId) { if (customerId) {
// 获取重泡货路线 // 获取重泡货路线
getCustomerLines(customerId).then((res) => { getCustomerLines(customerId).then((res) => {
this.zhongLines = res.data.filter((item) => item.zhongPaoType == 1); this.zhongLines = res.data.filter((item) => item.zhongPaoType == 1)
this.paoLines = res.data.filter((item) => item.zhongPaoType == 2); this.paoLines = res.data.filter((item) => item.zhongPaoType == 2)
if (this.zhongLines.length) this.showZhong1 = true; if (this.zhongLines.length) this.showZhong1 = true
if (this.paoLines.length) this.showPao1 = true; if (this.paoLines.length) this.showPao1 = true
// /admin-api/customer-line/get-by-customer // /admin-api/customer-line/get-by-customer
// /admin-api/customer-line/get-by-customer?customerId=29564 // /admin-api/customer-line/get-by-customer?customerId=29564
}); })
} }
}); })
} else { } else {
this.getZhongPao(); this.getZhongPao()
// 新建客户 // 新建客户
this.handleAddContact(); this.handleAddContact()
if (this.isCustomerServiceConfirmed) { if (this.isCustomerServiceConfirmed) {
this.form.customerService = this.userId; this.form.customerService = this.userId
} }
} }
getNodeList().then((r) => { getNodeList().then((r) => {
this.getNodeLists = r.data; this.getNodeLists = r.data
}); })
getProductTypeList().then((r) => { getProductTypeList().then((r) => {
this.productTypeList = r.data; this.productTypeList = r.data
}); })
getTradeCityList({ type: 1 }).then((r) => { getTradeCityList({ type: 1 }).then((r) => {
this.importCityList = r.data.filter((item) => item.type === "1"); this.importCityList = r.data.filter((item) => item.type === "1")
}); })
getWarehouseList().then((r) => { getWarehouseList().then((r) => {
this.warehouseList = r.data; this.warehouseList = r.data
}); })
listServiceUser().then((r) => { listServiceUser().then((r) => {
this.serviceUserList = r.data; this.serviceUserList = r.data
}); })
listAllSimpl().then((r) => { listAllSimpl().then((r) => {
this.allSimplList = r.data; this.allSimplList = r.data
}); })
getCountryListAll().then((r) => { getCountryListAll().then((r) => {
this.countryList = r.data; this.countryList = r.data
}); })
this.getCompetitorList() this.getCompetitorList()
}, },
data() { data() {
...@@ -1255,89 +737,85 @@ export default { ...@@ -1255,89 +737,85 @@ export default {
{ {
required: true, required: true,
message: this.$t("客户名称不能为空"), message: this.$t("客户名称不能为空"),
trigger: "blur", trigger: "blur"
}, }
],
country: [
{ required: true, message: this.$t("国家不能为空"), trigger: "blur" },
], ],
country: [{ required: true, message: this.$t("国家不能为空"), trigger: "blur" }],
level: [ level: [
{ {
required: true, required: true,
message: this.$t("客户等级不能为空"), message: this.$t("客户等级不能为空"),
trigger: "blur", trigger: "blur"
}, }
], ],
type: [ type: [
{ {
required: true, required: true,
message: this.$t("客户类别不能为空"), message: this.$t("客户类别不能为空"),
trigger: "blur", trigger: "blur"
}, }
], ],
createTime: [ createTime: [
{ {
required: true, required: true,
message: this.$t("创建时间不能为空"), message: this.$t("创建时间不能为空"),
trigger: "blur", trigger: "blur"
}, }
], ],
source: [ source: [
{ {
required: true, required: true,
message: this.$t("客户来源不能为空"), message: this.$t("客户来源不能为空"),
trigger: "blur", trigger: "blur"
}, }
], ],
customerService: [ customerService: [
{ {
required: this.customerId === "0", required: this.customerId === "0",
message: this.$t("客户经理不能为空"), message: this.$t("客户经理不能为空"),
trigger: "blur", trigger: "blur"
}, }
], ],
status: [ status: [
{ {
required: true, required: true,
message: this.$t("客户状态不能为空"), message: this.$t("客户状态不能为空"),
trigger: "blur", trigger: "blur"
}, }
], ],
busiCountryIds: [ busiCountryIds: [
{ {
required: true, required: true,
message: this.$t("请选择业务国家"), message: this.$t("请选择业务国家"),
trigger: "blur", trigger: "blur"
}, }
], ],
competitorIds: [ competitorIds: [
{ {
required: true, required: true,
message: this.$t("请选择主要竞争对手"), message: this.$t("请选择主要竞争对手"),
trigger: "change", trigger: "change"
}, }
], ],
pickupPoints: [ pickupPoints: [
{ {
required: true, required: true,
message: this.$t("请选择常用提货网点"), message: this.$t("请选择常用提货网点"),
trigger: "change", trigger: "change"
}, }
], ],
productType: [ productType: [
{ {
required: true, required: true,
message: this.$t("请选择产品类别"), message: this.$t("请选择产品类别"),
trigger: "change", trigger: "change"
}, }
], ]
}, },
contactRules: { contactRules: {
name: [ name: [{ required: true, message: this.$t("请输入联系人"), trigger: "blur" }],
{ required: true, message: this.$t("请输入联系人"), trigger: "blur" },
],
areaCode: [ areaCode: [
{ required: true, message: this.$t("请选择区号"), trigger: "change" }, { required: true, message: this.$t("请选择区号"), trigger: "change" }
/*{ /*{
required: true, required: true,
trigger: "change", trigger: "change",
...@@ -1348,9 +826,9 @@ export default { ...@@ -1348,9 +826,9 @@ export default {
{ {
required: true, required: true,
trigger: "blur", trigger: "blur",
validator: this.phoneValidator, validator: this.phoneValidator
}, }
], ]
}, },
// 网点 // 网点
nodeList: [], nodeList: [],
...@@ -1379,28 +857,28 @@ export default { ...@@ -1379,28 +857,28 @@ export default {
showShippingFlag: true, showShippingFlag: true,
showSettingFlag: true, showSettingFlag: true,
showFinanceFlag: true, showFinanceFlag: true,
competitorList: [], competitorList: []
}; }
}, },
methods: { methods: {
addEmail(row) { addEmail(row) {
row.push(""); row.push("")
}, },
deleteEmail(row, index) { deleteEmail(row, index) {
row.splice(index, 1); row.splice(index, 1)
}, },
change(val) { change(val) {
this.form.productIds = []; this.form.productIds = []
this.getProductListFn(val); this.getProductListFn(val)
}, },
getProductListFn(val) { getProductListFn(val) {
getProductList({ typeId: val }).then((r) => { getProductList({ typeId: val }).then((r) => {
this.productList = r.data; this.productList = r.data
}); })
}, },
deleteBankData(index) { deleteBankData(index) {
this.form.customerBanks.splice(index, 1); this.form.customerBanks.splice(index, 1)
}, },
//添加银行卡 //添加银行卡
addBankData() { addBankData() {
...@@ -1412,10 +890,10 @@ export default { ...@@ -1412,10 +890,10 @@ export default {
accountType: null, accountType: null,
status: null, status: null,
currency: "", currency: "",
accountName: "", accountName: ""
}; }
this.form.customerBanks = [...this.form.customerBanks, p]; this.form.customerBanks = [...this.form.customerBanks, p]
}, },
/* getUserMemberUserFn(val){ /* getUserMemberUserFn(val){
userMemberUserList({pageNo:1,pageSize:100,searchKey:val}).then(r => { userMemberUserList({pageNo:1,pageSize:100,searchKey:val}).then(r => {
...@@ -1423,87 +901,80 @@ export default { ...@@ -1423,87 +901,80 @@ export default {
}) })
}, */ }, */
remoteMethod(val) { remoteMethod(val) {
this.getCustomerSelect(val); this.getCustomerSelect(val)
}, },
getCustomerSelect(val = "") { getCustomerSelect(val = "") {
getCustomerSelect({ pageNo: 1, pageSize: 30, searchKey: val }).then( getCustomerSelect({ pageNo: 1, pageSize: 30, searchKey: val }).then((res) => {
(res) => { this.customerSelect = res.data.list
this.customerSelect = res.data.list; })
}
);
}, },
phoneValidator(rule, value, callback) { phoneValidator(rule, value, callback) {
if (!value) { if (!value) {
return callback(new Error(this.$t("请输入联系方式"))); return callback(new Error(this.$t("请输入联系方式")))
} }
let areaCode = this.form.customerContacts.find( let areaCode = this.form.customerContacts.find((e) => e.phoneNew === value).areaCode
(e) => e.phoneNew === value
).areaCode;
if (areaCode) { if (areaCode) {
validatorMobile({ validatorMobile({
code: areaCode, code: areaCode,
mobile: value, mobile: value
}) })
.then((r) => { .then((r) => {
if (r.data) { if (r.data) {
callback(); callback()
} else { } else {
callback(new Error(r.msg || this.$t("手机号验证失败"))); callback(new Error(r.msg || this.$t("手机号验证失败")))
} }
}) })
.catch((e) => { .catch((e) => {
console.error(e); console.error(e)
callback(new Error(this.$t("手机号验证失败"))); callback(new Error(this.$t("手机号验证失败")))
}); })
} }
}, },
codeValidator(rule, value, callback) { codeValidator(rule, value, callback) {
let index = +rule.field.split(".")[1]; let index = +rule.field.split(".")[1]
let phone = this.form.customerContacts[index].phoneNew; let phone = this.form.customerContacts[index].phoneNew
if (phone) { if (phone) {
validatorMobile({ validatorMobile({
code: value, code: value,
mobile: phone, mobile: phone
}) })
.then((r) => { .then((r) => {
if (r.data) { if (r.data) {
callback(); callback()
} else { } else {
callback(); callback()
this.$message.error(r.msg || this.$t("手机号验证失败")); this.$message.error(r.msg || this.$t("手机号验证失败"))
} }
}) })
.catch((e) => { .catch((e) => {
console.error(e); console.error(e)
callback(); callback()
this.$message.error(this.$t("手机号验证失败")); this.$message.error(this.$t("手机号验证失败"))
}); })
} }
}, },
handleDefaultChange($index) { handleDefaultChange($index) {
// 只有一个联系人,设置成非默认 // 只有一个联系人,设置成非默认
if ( if (this.form.customerContacts.length === 1 && this.form.customerContacts[0].isDefault === 0) {
this.form.customerContacts.length === 1 && this.$modal.msgWarning(this.$t("至少拥有一个默认联系人"))
this.form.customerContacts[0].isDefault === 0 this.form.customerContacts[0].isDefault = 1
) { return
this.$modal.msgWarning(this.$t("至少拥有一个默认联系人"));
this.form.customerContacts[0].isDefault = 1;
return;
} }
// 设置默认联系人 // 设置默认联系人
if (this.form.customerContacts[$index].isDefault === 1) { if (this.form.customerContacts[$index].isDefault === 1) {
// 其他的置否 // 其他的置否
let i = 0; let i = 0
this.form.customerContacts.forEach((e) => { this.form.customerContacts.forEach((e) => {
if (i !== $index) { if (i !== $index) {
e.isDefault = 0; e.isDefault = 0
} }
i++; i++
}); })
} else { } else {
// 第一个置是 // 第一个置是
this.form.customerContacts[0].isDefault = 1; this.form.customerContacts[0].isDefault = 1
} }
}, },
/* selectBD(val){ /* selectBD(val){
...@@ -1518,49 +989,49 @@ export default { ...@@ -1518,49 +989,49 @@ export default {
}, */ }, */
/** 取消按钮 */ /** 取消按钮 */
cancel() { cancel() {
this.$tab.closePage(); this.$tab.closePage()
this.open = false; this.open = false
this.reset(); this.reset()
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
if (this.form.customerContacts.length === 0) { if (this.form.customerContacts.length === 0) {
this.$modal.alert(this.$t("至少添加一位联系人")); this.$modal.alert(this.$t("至少添加一位联系人"))
return; return
} }
this.$refs["contactForm"].validate((valid1, err1) => { this.$refs["contactForm"].validate((valid1, err1) => {
this.$refs["form"].validate((valid2, err2) => { this.$refs["form"].validate((valid2, err2) => {
this.$refs.bankForm.validate((valid3, err3) => { this.$refs.bankForm.validate((valid3, err3) => {
console.log(valid3, "valid3"); console.log(valid3, "valid3")
if (!valid1 || !valid2 || !valid3) { if (!valid1 || !valid2 || !valid3) {
this.$showFormValidateErrors({ ...err1, ...err2, ...err3 }); this.$showFormValidateErrors({ ...err1, ...err2, ...err3 })
return; return
} }
if (this.form.customerContacts.length === 0) { if (this.form.customerContacts.length === 0) {
this.$modal.msgError(this.$t("至少填写一个联系人信息")); this.$modal.msgError(this.$t("至少填写一个联系人信息"))
return; return
} }
if (this.form.competitorIds == 0) { if (this.form.competitorIds == 0) {
this.$modal.msgError(this.$t("请重新选择主要竞争对手")); this.$modal.msgError(this.$t("请重新选择主要竞争对手"))
return; return
} }
// 重货标准和泡货标准,未打开就不传,提交前清空一下 // 重货标准和泡货标准,未打开就不传,提交前清空一下
if (!this.showZhong) { if (!this.showZhong) {
this.form.weightUnit = null; this.form.weightUnit = null
this.zhongLines = []; this.zhongLines = []
} }
if (!this.showZhong1) { if (!this.showZhong1) {
this.zhongLines = []; this.zhongLines = []
} }
if (!this.showPao) { if (!this.showPao) {
this.form.lightUnit = null; this.form.lightUnit = null
this.paoLines = []; this.paoLines = []
} }
if (!this.showPao1) { if (!this.showPao1) {
this.paoLines = []; this.paoLines = []
} }
this.updateCustomerLines(); this.updateCustomerLines()
const form = { const form = {
...this.form, ...this.form,
type: this.form.type?.join(","), type: this.form.type?.join(","),
...@@ -1572,65 +1043,63 @@ export default { ...@@ -1572,65 +1043,63 @@ export default {
busiCountryIds: (this.form.busiCountryIds || [])?.join(","), busiCountryIds: (this.form.busiCountryIds || [])?.join(","),
noConsignee: undefined, noConsignee: undefined,
defaultPay: undefined, defaultPay: undefined,
defaultBilling: undefined, defaultBilling: undefined
}; }
form.customerContacts = JSON.parse( form.customerContacts = JSON.parse(JSON.stringify(this.form.customerContacts))
JSON.stringify(this.form.customerContacts)
);
form.customerContacts.forEach((e) => { form.customerContacts.forEach((e) => {
e.email = [...e.email].filter((i) => i !== "").join(","); e.email = [...e.email].filter((i) => i !== "").join(",")
}); })
// 检查路线是否启用了但是没选择目的仓 // 检查路线是否启用了但是没选择目的仓
let errors = 0; let errors = 0
form.customerLines.forEach((line) => { form.customerLines.forEach((line) => {
if (!line.objectiveIds || line.objectiveIds == "") { if (!line.objectiveIds || line.objectiveIds == "") {
errors++; errors++
} }
}); })
if (errors) { if (errors) {
return this.$message.error("有两条路线未选择目的地"); return this.$message.error("有两条路线未选择目的地")
} }
//我的客户页面跳转直接,完善客户 //我的客户页面跳转直接,完善客户
if (this.isCustomerServiceConfirmed) { if (this.isCustomerServiceConfirmed) {
form.isCustomerServiceConfirmed = this.isCustomerServiceConfirmed; form.isCustomerServiceConfirmed = this.isCustomerServiceConfirmed
} }
// 修改的提交 // 修改的提交
if (this.form.id != null) { if (this.form.id != null) {
this.form.customerContacts.forEach((e) => { this.form.customerContacts.forEach((e) => {
e.customerId = this.customerId; e.customerId = this.customerId
}); })
console.log(this.form) console.log(this.form)
if (this.$route.name === "perfect") { if (this.$route.name === "perfect") {
fillupCustomeInfo(form).then((r) => { fillupCustomeInfo(form).then((r) => {
this.$modal.msgSuccess(this.$t("修改成功")); this.$modal.msgSuccess(this.$t("修改成功"))
this.open = false; this.open = false
const obj = { path: "/customer/customer" }; const obj = { path: "/customer/customer" }
this.$tab.closeOpenPage(obj); this.$tab.closeOpenPage(obj)
}); })
} else { } else {
updateCustomer(form).then((response) => { updateCustomer(form).then((response) => {
this.$modal.msgSuccess(this.$t("修改成功")); this.$modal.msgSuccess(this.$t("修改成功"))
this.open = false; this.open = false
// this.getList(); // this.getList();
const obj = { path: "/customer/customer" }; const obj = { path: "/customer/customer" }
this.$tab.closeOpenPage(obj); this.$tab.closeOpenPage(obj)
}); })
} }
return; return
} }
// 添加的提交 // 添加的提交
createCustomer(form).then((response) => { createCustomer(form).then((response) => {
this.$modal.msgSuccess(this.$t("新增成功")); this.$modal.msgSuccess(this.$t("新增成功"))
this.open = false; this.open = false
// this.getList(); // this.getList();
const obj = { path: "/customer/customer" }; const obj = { path: "/customer/customer" }
this.$tab.closeOpenPage(obj); this.$tab.closeOpenPage(obj)
}); })
}); })
}); })
}); })
}, },
/** 表单重置 */ /** 表单重置 */
reset() { reset() {
...@@ -1683,63 +1152,60 @@ export default { ...@@ -1683,63 +1152,60 @@ export default {
carName: undefined, carName: undefined,
carNo: undefined, carNo: undefined,
customerBanks: [], customerBanks: [],
isNew: true,// 业绩类型 isNew: true, // 业绩类型
firstDealTime: undefined,// 首次成交时间 firstDealTime: undefined, // 首次成交时间
// estimateEnterOpenSeaTime: undefined,// 掉入公海时间 // estimateEnterOpenSeaTime: undefined,// 掉入公海时间
getMethod: undefined,// 获取方式 getMethod: undefined, // 获取方式
createFrom: undefined,// 创建入口 createFrom: undefined, // 创建入口
catchTime: undefined,//捞取时间 catchTime: undefined, //捞取时间
customerServiceConfirmedTime: undefined,//归属时间 customerServiceConfirmedTime: undefined, //归属时间
updater: this.$store.getters.userId,// 更新人 updater: this.$store.getters.userId, // 更新人
updateTime: undefined,// 更新时间 updateTime: undefined, // 更新时间
roles: undefined,// 客户角色 roles: undefined, // 客户角色
busiCountryIds: undefined,// 业务国家 busiCountryIds: undefined, // 业务国家
competitorIds: undefined,// 主要竞争对手 competitorIds: undefined, // 主要竞争对手
weightYearly: undefined,// 年度发货量 weightYearly: undefined, // 年度发货量
numYearly: undefined,// 年度发货次数 numYearly: undefined, // 年度发货次数
noConsignee: false,// 控制无收货人 noConsignee: false, // 控制无收货人
defaultPay: false,// 默认付款 defaultPay: false, // 默认付款
defaultBilling: false,// 默认开票 defaultBilling: false // 默认开票
}; }
this.form.createTime = new Date().getTime(); this.form.createTime = new Date().getTime()
this.form.updateTime = new Date().getTime(); this.form.updateTime = new Date().getTime()
this.resetForm("form"); this.resetForm("form")
}, },
getCustomer(id) { getCustomer(id) {
return getCustomer(id).then((response) => { return getCustomer(id).then((response) => {
console.log(response, "response"); console.log(response, "response")
this.form = { this.form = {
...this.form, ...this.form,
...response.data, ...response.data,
id: this.customerId, id: this.customerId,
transportType: transportType: response.data.transportType && response.data.transportType !== "" ? response.data.transportType.split(",") : [],
response.data.transportType && response.data.transportType !== ""
? response.data.transportType.split(",")
: [],
customerBanks: response.data.customerBankBackVOList, customerBanks: response.data.customerBankBackVOList,
roles: response.data.roles? response.data.roles.split(",") : [], roles: response.data.roles ? response.data.roles.split(",") : [],
pickupPoints: this.stringArrToNumberArr(response.data.pickupPoints), pickupPoints: this.stringArrToNumberArr(response.data.pickupPoints),
productIds: this.stringArrToNumberArr(response.data.productIds), productIds: this.stringArrToNumberArr(response.data.productIds),
busiCountryIds: this.stringArrToNumberArr(response.data.busiCountryIds), busiCountryIds: this.stringArrToNumberArr(response.data.busiCountryIds),
competitorIds: Number(response.data.competitorIds) competitorIds: Number(response.data.competitorIds)
}; }
if (this.form.productType) { if (this.form.productType) {
console.log("1231", this.form.productType); console.log("1231", this.form.productType)
this.getProductListFn(this.form.productType); this.getProductListFn(this.form.productType)
} }
console.log(this.form) console.log(this.form)
this.open = true; this.open = true
this.title = this.$t("修改客户"); this.title = this.$t("修改客户")
this.$forceUpdate() this.$forceUpdate()
this.getZhongPao(); this.getZhongPao()
}); })
}, },
stringArrToNumberArr(data) { stringArrToNumberArr(data) {
if (data) { if (data) {
const strArr = data.split(",") const strArr = data.split(",")
const numArr = strArr.map(item => Number(item)) const numArr = strArr.map((item) => Number(item))
return numArr return numArr
} else { } else {
return [] return []
...@@ -1747,14 +1213,14 @@ export default { ...@@ -1747,14 +1213,14 @@ export default {
}, },
updateCustomerLines() { updateCustomerLines() {
let zhongLines = [], let zhongLines = [],
paoLines = []; paoLines = []
if (this.zhongLines.length > 0) { if (this.zhongLines.length > 0) {
zhongLines = this.zhongLines; zhongLines = this.zhongLines
} }
if (this.paoLines.length > 0) { if (this.paoLines.length > 0) {
paoLines = this.paoLines; paoLines = this.paoLines
} }
this.form.customerLines = [...zhongLines, ...paoLines]; this.form.customerLines = [...zhongLines, ...paoLines]
}, },
handleAddContact() { handleAddContact() {
this.form.customerContacts.push({ this.form.customerContacts.push({
...@@ -1769,46 +1235,46 @@ export default { ...@@ -1769,46 +1235,46 @@ export default {
social: undefined, social: undefined,
socialNumber: "", socialNumber: "",
userid: undefined, userid: undefined,
nameEn: "", nameEn: ""
// "username": "" // "username": ""
}); })
}, },
handleDeleteContact($index) { handleDeleteContact($index) {
this.form.customerContacts.splice($index, 1); this.form.customerContacts.splice($index, 1)
if (this.form.customerContacts.length > 0) { if (this.form.customerContacts.length > 0) {
this.$refs["contactForm"].clearValidate(); this.$refs["contactForm"].clearValidate()
if (!this.form.customerContacts.find((e) => e.isDefault)) { if (!this.form.customerContacts.find((e) => e.isDefault)) {
this.form.customerContacts[0].isDefault = 1; this.form.customerContacts[0].isDefault = 1
} }
} }
}, },
getZhongPao() { getZhongPao() {
getZhongPaoBest({ getZhongPaoBest({
customerId: this.customerId, customerId: this.customerId
// departureId: this.departureId, // departureId: this.departureId,
// objectiveId: this.objectiveId // objectiveId: this.objectiveId
}).then((r) => { }).then((r) => {
if (!this.form.weightUnit) this.form.weightUnit = r.data.zhongEdge; if (!this.form.weightUnit) this.form.weightUnit = r.data.zhongEdge
if (!this.form.lightUnit) this.form.lightUnit = r.data.paoEdge; if (!this.form.lightUnit) this.form.lightUnit = r.data.paoEdge
}); })
}, },
getCompetitorList() { getCompetitorList() {
competitorListAll().then((r) => { competitorListAll().then((r) => {
this.competitorList = r.data; this.competitorList = r.data
}) })
}, },
changeCompetitor(val) { changeCompetitor(val) {
if (val == 0) { if (val == 0) {
this.$prompt("请输入主要竞争对手", "提示", { this.$prompt("请输入主要竞争对手", "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消"
}).then((data) => { }).then((data) => {
console.log(data) console.log(data)
addCompetitor({ addCompetitor({
name: data.value name: data.value
}).then(_ => { }).then((_) => {
this.$message.success('添加成功!') this.$message.success("添加成功!")
this.getCompetitorList() this.getCompetitorList()
}) })
}) })
...@@ -1817,13 +1283,13 @@ export default { ...@@ -1817,13 +1283,13 @@ export default {
}, },
computed: { computed: {
isChinese() { isChinese() {
return this.$i18n.locale === "zh_CN"; return this.$i18n.locale === "zh_CN"
}, },
userId() { userId() {
return this.$store.state.user.id; return this.$store.state.user.id
}, },
customerId() { customerId() {
return this.$route.params.customerId; return this.$route.params.customerId
}, },
/* userMemberUser(){ /* userMemberUser(){
let list = this.memberList.filter(item => { let list = this.memberList.filter(item => {
...@@ -1832,33 +1298,31 @@ export default { ...@@ -1832,33 +1298,31 @@ export default {
return [...this.selectMemberList,...list] return [...this.selectMemberList,...list]
}, */ }, */
productListFilter() { productListFilter() {
return this.productList.filter((p) => p.typeId === this.form.productType); return this.productList.filter((p) => p.typeId === this.form.productType)
}, },
customerSelectFn() { customerSelectFn() {
if (this.recommended.length > 0) { if (this.recommended.length > 0) {
let i = this.customerSelect.find( let i = this.customerSelect.find((item) => item.id === this.recommended[0].id)
(item) => item.id === this.recommended[0].id
);
if (!i) { if (!i) {
this.customerSelect.push(this.recommended[0]); this.customerSelect.push(this.recommended[0])
} }
return this.customerSelect; return this.customerSelect
} else { } else {
return this.customerSelect; return this.customerSelect
}
} }
},
}, },
watch: { watch: {
zhongLines() { zhongLines() {
console.log("zhongLines", this.zhongLines); console.log("zhongLines", this.zhongLines)
this.updateCustomerLines(); this.updateCustomerLines()
}, },
paoLines() { paoLines() {
console.log("paoLines", this.paoLines); console.log("paoLines", this.paoLines)
this.updateCustomerLines(); this.updateCustomerLines()
}, }
}, }
}; }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
......
...@@ -337,6 +337,28 @@ ...@@ -337,6 +337,28 @@
<el-card class="box-card"> <el-card class="box-card">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<el-form size="small" :inline="true" label-width="100px"> <el-form size="small" :inline="true" label-width="100px">
<el-form-item :label="$t('编号')" prop="number">
<el-input v-model.trim="followForm.number" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item :label="$t('报价单号')" prop="offerNumber">
<el-input v-model.trim="followForm.offerNumber" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item :label="$t('联系人')" prop="contactName">
<el-input v-model.trim="followForm.contactName" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item :label="$t('联系方式')" prop="contactPhone">
<el-input v-model.trim="followForm.contactPhone" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item :label="$t('客户经理')" prop="salesmanIds">
<user-selector v-model="followForm.salesmanIds" multiple clearable @change="handleQuery" />
</el-form-item>
<el-form-item :label="$t('下次跟进时间')">
<el-date-picker v-model="followFormTmp.nextTime" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss" @change="handleQuery"> </el-date-picker>
</el-form-item>
<el-form-item :label="$t('关联跟进记录')" prop="parentNumber">
<el-input v-model.trim="followForm.parentNumber" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item :label="$t('跟进类型')"> <el-form-item :label="$t('跟进类型')">
<dict-selector clearable :type="DICT_TYPE.CUSTOMER_FOLLOWUP_TYPE" v-model="followForm.followType" @change="handleQuery"></dict-selector> <dict-selector clearable :type="DICT_TYPE.CUSTOMER_FOLLOWUP_TYPE" v-model="followForm.followType" @change="handleQuery"></dict-selector>
</el-form-item> </el-form-item>
...@@ -353,14 +375,6 @@ ...@@ -353,14 +375,6 @@
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_STATUS)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value" /> <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_STATUS)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<!--
<el-form-item :label="$t('跟进时间')">
<el-date-picker type="datetimerange" clearable v-model="followTime" style="width: 320px" value-format="yyyy-MM-dd HH:mm:ss" range-separator="-" :start-placeholder="$t('开始跟进时间')" :end-placeholder="$t('结束跟进时间')" />
</el-form-item>
<el-form-item :label="$t('下次跟进时间')">
<el-date-picker type="datetimerange" clearable v-model="nextTime" style="width: 320px" value-format="yyyy-MM-dd HH:mm:ss" range-separator="-" :start-placeholder="$t('开始下次跟进时间')" :end-placeholder="$t('结束下次跟进时间')" />
</el-form-item>
-->
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="getCustomerFollowList">{{ $t("搜索") }} </el-button> <el-button type="primary" icon="el-icon-search" @click="getCustomerFollowList">{{ $t("搜索") }} </el-button>
<el-button <el-button
...@@ -423,7 +437,7 @@ ...@@ -423,7 +437,7 @@
</el-table-column> </el-table-column>
<el-table-column width="150px" :label="$t('操作')" align="center" fixed="right" class-name="small-padding fixed-width"> <el-table-column width="150px" :label="$t('操作')" align="center" fixed="right" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleCustomerFollow(scope.row, scope.row.status === 0)" v-hasPermi="['ecw:customer:follow-update']">{{ $t("编辑") }} </el-button> <el-button size="mini" type="text" icon="el-icon-edit" v-if="!scope.row.status" @click="handleCustomerFollow(scope.row, scope.row.status === 0)" v-hasPermi="['ecw:customer:follow-update']">{{ $t("编辑") }} </el-button>
<el-button size="mini" type="text" icon="el-icon-collection" @click="handleCustomerFollow(scope.row, true)" v-has-permi="['ecw:customer:follow-add-plan']">{{ $t("增加计划") }} </el-button> <el-button size="mini" type="text" icon="el-icon-collection" @click="handleCustomerFollow(scope.row, true)" v-has-permi="['ecw:customer:follow-add-plan']">{{ $t("增加计划") }} </el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -991,6 +1005,7 @@ export default { ...@@ -991,6 +1005,7 @@ export default {
pageNo: 1, pageNo: 1,
pageSize: 10 pageSize: 10
}, },
followFormTmp: {},
followTime: [], followTime: [],
nextTime: [], nextTime: [],
customerFollowTotal: 0, customerFollowTotal: 0,
......
...@@ -7,11 +7,11 @@ ...@@ -7,11 +7,11 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户')" prop="searchCustomer"> <el-form-item :label="$t('客户')" prop="searchCustomer">
<el-input v-model.trim="queryParams.searchCustomer" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model.trim="queryParams.searchCustomer" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('联系方式')" prop="relationPhone"> <el-form-item :label="$t('联系方式')" prop="relationPhone">
<el-input v-model.trim="queryParams.relationPhone" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery" @input="queryParams.relationPhone = queryParams.relationPhone.replace(/\s+/g, '')" /> <el-input v-model.trim="queryParams.relationPhone" clearable @keyup.enter.native="handleQuery" @input="queryParams.relationPhone = queryParams.relationPhone.replace(/\s+/g, '')" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('区号')" prop="relationAreaCode"> <el-form-item :label="$t('区号')" prop="relationAreaCode">
...@@ -111,14 +111,18 @@ ...@@ -111,14 +111,18 @@
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list" border> <el-table v-loading="loading" :data="list" border>
<el-table-column :label="$t('报价单号')" align="left" prop="number" width="200px"> <el-table-column :label="$t('报价单号')" align="left" prop="number" width="150">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-link type="primary" @click.native="$router.push('detail?offerId=' + row.offerId)">{{ row.number }}</el-link> <el-link type="primary" @click.native="$router.push('detail?offerId=' + row.offerId)">{{ row.number }}</el-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('订单编号')" align="left" prop="orderNo" /> <el-table-column :label="$t('订单编号')" align="left" width="120">
<el-table-column :label="$t('联系人')" align="left" prop="relationName" width="180" /> <template slot-scope="{ row }">
<el-table-column :label="$t('联系电话')" align="left" prop="relationPhone" /> <a class="el-link el-link--primary is-underline" href="javascript:;" @click="$router.push(`/order/detail?orderId=${row.orderId}`)">{{ row.orderNo }}</a>
</template>
</el-table-column>
<el-table-column :label="$t('联系人')" align="left" prop="relationName" width="120" />
<el-table-column :label="$t('联系电话')" align="left" prop="relationPhone" width="150" />
<el-table-column :label="$t('重要程序')" align="center" prop="importance" /> <el-table-column :label="$t('重要程序')" align="center" prop="importance" />
<el-table-column :label="$t('始发地')" align="left" prop="departureName" /> <el-table-column :label="$t('始发地')" align="left" prop="departureName" />
<el-table-column :label="$t('目的地')" align="center" prop="objectiveName" /> <el-table-column :label="$t('目的地')" align="center" prop="objectiveName" />
...@@ -568,7 +572,7 @@ export default { ...@@ -568,7 +572,7 @@ export default {
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
// 处理查询参数 // 处理查询参数
let params = { ...this.queryParams } let params = { ...this.queryParams, ...this.formatQuery() }
params.pageNo = undefined params.pageNo = undefined
params.pageSize = undefined params.pageSize = undefined
// 执行导出 // 执行导出
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-card> <el-card>
<div slot="header" class="card-title">{{$t('跟进记录列表')}}</div> <div slot="header" class="card-title">{{ $t("跟进记录列表") }}</div>
<!-- 列表 --> <!-- 列表 -->
<div class="offer-header"> <div class="offer-header">
<span style="font-size: 15px;">{{$t('报价单号')}}{{number}}</span> <span style="font-size: 15px">{{ $t("报价单号") }}{{ number }}</span>
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">{{ $t("新增") }}</el-button>
>{{$t('新增')}}</el-button>
</div> </div>
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">
<el-table-column :label="$t('序号')" align="center" prop="id" type="index"> <el-table-column :label="$t('序号')" align="center" prop="id" type="index">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.$index + 1}}</span> <span>{{ scope.$index + 1 }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('跟进类型')" align="center" prop="type" > <el-table-column :label="$t('跟进类型')" align="center" prop="type">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_OFFER_TYPE" :value="scope.row.type"></dict-tag> <dict-tag :type="DICT_TYPE.ECW_OFFER_TYPE" :value="scope.row.type"></dict-tag>
</template> </template>
...@@ -29,105 +28,101 @@ ...@@ -29,105 +28,101 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('跟进时间')" align="center" prop="followUpTime" width="180"> <el-table-column :label="$t('跟进时间')" align="center" prop="followUpTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.followUpTime}}</span> <span>{{ scope.row.followUpTime }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('客户反馈')" align="center" prop="customerFeedback" /> <el-table-column :label="$t('客户反馈')" align="center" prop="customerFeedback" />
<el-table-column :label="$t('处理结果')" align="center" prop="processingResults" /> <el-table-column :label="$t('处理结果')" align="center" prop="processingResults" />
<el-table-column :label="$t('客户经理')" align="center" prop="followUpSalesmanName"> <el-table-column :label="$t('客户经理')" align="center" prop="followUpSalesmanName">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{getCustomerService(scope.row.followUpSalesmanId)}}</span> <span>{{ getCustomerService(scope.row.followUpSalesmanId) }}</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="params.page" :limit.sync="params.rows" <pagination v-show="total > 0" :total="total" :page.sync="params.page" :limit.sync="params.rows" @pagination="getList" />
@pagination="getList"/>
</el-card> </el-card>
</div> </div>
</template> </template>
<script> <script>
import {getOfferLogPage} from "@/api/ecw/offerLog"; import { getOfferLogPage } from "@/api/ecw/offerLog"
import {DICT_TYPE} from '@/utils/dict' import { DICT_TYPE } from "@/utils/dict"
import {getOffer} from '@/api/ecw/offer' import { getOffer } from "@/api/ecw/offer"
import { userList } from "@/api/system/user" import { userList } from "@/api/system/user"
export default { export default {
name: "OfferLog", name: "OfferLog",
components: { components: {},
},
data() { data() {
return { return {
// 遮罩层 // 遮罩层
loading: true, loading: true,
list: [], list: [],
total:0, total: 0,
params:{ params: {
page:1, page: 1,
rows:20, rows: 20,
offerId:0, offerId: 0,
type:2 type: 2
}, },
number:'', number: "",
relationId:0, relationId: 0,
creatorName:'test', creatorName: "test",
creatorData:[] creatorData: []
}; }
}, },
created() { created() {
if(this.$route.query.offerId){ if (this.$route.query.offerId) {
this.params.offerId = this.$route.query.offerId this.params.offerId = this.$route.query.offerId
this.getList(); this.getList()
this.getRelationID() this.getRelationID()
} }
userList('customer service').then(res =>this.creatorData = res.data) userList("customer service").then((res) => (this.creatorData = res.data))
}, },
methods: { methods: {
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true
let params = {...this.params}; let params = { ...this.params }
// 执行查询 // 执行查询
getOfferLogPage(params).then(response => { getOfferLogPage(params).then((response) => {
this.list = response.data.list; this.list = response.data.list
this.total = response.data.total; this.total = response.data.total
this.loading = false; this.loading = false
}); })
}, },
getCustomerService(id){ getCustomerService(id) {
var user = this.creatorData.find(item=>item.id==id) var user = this.creatorData.find((item) => item.id == id)
if(user) return user.nickname if (user) return user.nickname
return '' return ""
}, },
getRelationID(){ getRelationID() {
getOffer(this.params.offerId).then(response => { getOffer(this.params.offerId).then((response) => {
this.relationId = response.data.consignorId; this.relationId = response.data.consignorId
this.number = response.data.number; this.number = response.data.number
}) })
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.$router.push({ this.$router.push({
path: "/offer/createLog", path: "/offer/createLog",
query:{ query: {
offerId:this.params.offerId, offerId: this.params.offerId,
number:this.number number: this.number
}
})
} }
});
},
} }
}; }
</script> </script>
<style scoped> <style scoped>
.card-title{ .card-title {
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
} }
.offer-header{ .offer-header {
padding-bottom: 16px; padding-bottom: 16px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
} }
</style> </style>
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