Commit c9a5acdb authored by lanbaoming's avatar lanbaoming

2024-06-04提交

parent db9bb0e6
...@@ -117,6 +117,8 @@ export function getLogList(params) { ...@@ -117,6 +117,8 @@ export function getLogList(params) {
} }
// 获得费用登记列表 // 获得费用登记列表
//先登记费用入表 ecw_box_cost 同时进应付款表,ecw_payable,
//用户在应收款列表中点击收款,生成付款单,入表 ecw_payment
export function getCostList(params) { export function getCostList(params) {
return request({ return request({
url: "/ecw/box-cost/list", url: "/ecw/box-cost/list",
...@@ -124,8 +126,8 @@ export function getCostList(params) { ...@@ -124,8 +126,8 @@ export function getCostList(params) {
params, params,
}); });
} }
// 付款单主表 SELECT * from ecw_payment // 收款单表 SELECT * from ecw_payment
// 付款单费用明细 SELECT * from ecw_payable // 应付款表 SELECT * from ecw_payable
// 根据明细获取主表ID // 根据明细获取主表ID
export function getPaymentId(id) { export function getPaymentId(id) {
return request({ return request({
......
...@@ -392,7 +392,7 @@ ...@@ -392,7 +392,7 @@
<el-table-column :label="$t('操作')" align="center"> <el-table-column :label="$t('操作')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
type="primary" type="primary" :disabled="scope.row.paymentId!='-1'"
size="small" size="small"
@click="editCostClick(scope.row)" @click="editCostClick(scope.row)"
style="marginright: 10px" style="marginright: 10px"
...@@ -404,7 +404,7 @@ ...@@ -404,7 +404,7 @@
@confirm="deleteCostClick(scope.row)" @confirm="deleteCostClick(scope.row)"
> >
<el-button <el-button
type="danger" type="danger" :disabled="scope.row.paymentId!='-1'"
size="small" size="small"
slot="reference" slot="reference"
v-hasPermi="['ecw:box-cost:delete']" v-hasPermi="['ecw:box-cost:delete']"
......
...@@ -456,7 +456,7 @@ ...@@ -456,7 +456,7 @@
<el-table-column :label="$t('操作')" align="center"> <el-table-column :label="$t('操作')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
type="primary" type="primary" :disabled="scope.row.paymentId!='-1'"
size="small" size="small"
@click="editCostClick(scope.row)" @click="editCostClick(scope.row)"
style="marginright: 10px" style="marginright: 10px"
...@@ -468,7 +468,7 @@ ...@@ -468,7 +468,7 @@
@confirm="deleteCostClick(scope.row)" @confirm="deleteCostClick(scope.row)"
> >
<el-button <el-button
type="danger" type="danger" :disabled="scope.row.paymentId!='-1'"
size="small" size="small"
slot="reference" slot="reference"
v-hasPermi="['ecw:box-cost:delete']" v-hasPermi="['ecw:box-cost:delete']"
......
<template xmlns=""> <template xmlns="">
<div> <div>
<el-row type="flex" style="margin-top: 15px;margin-bottom: 15px" justify="center"> <el-row
type="flex"
style="margin-top: 15px; margin-bottom: 15px"
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-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 v-model="form.name" :placeholder="$t('请输入客户名称')" /> <el-input
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('国家')" prop="country"> <el-form-item :label="$t('国家')" prop="country">
<el-select filterable clearable v-model="form.country" :placeholder="$t('请选择国家')"> <el-select
<el-option v-for="dict in countryList" filterable
: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('客户英文名称')"> <el-form-item :label="$t('客户英文名称')">
<el-input v-model="form.nameEn" :placeholder="$t('请输入客户英文名称')"></el-input> <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('付款人姓名')"> <el-form-item :label="$t('付款人姓名')">
<el-input v-model="form.payerName" :placeholder="$t('请输入付款人姓名')"></el-input> <el-input
v-model="form.payerName"
: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="level"> <el-form-item :label="$t('客户等级')" prop="level">
<el-select v-model="form.level" :placeholder="$t('请选择客户等级')" disabled> <el-select
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)" v-model="form.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="address"> <el-form-item :label="$t('联系地址')" prop="address">
<el-input v-model="form.address" :placeholder="$t('请输入联系地址')" /> <el-input
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="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 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
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="type"> <el-form-item :label="$t('客户类别')" prop="type">
<dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" form-type="checkbox" multiple v-model="form.type"></dict-selector> <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('资源类型')" prop="remarks">--> <!-- <el-form-item :label="$t('资源类型')" prop="remarks">-->
<!-- <dict-selector :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="form.resourceType" formatter="number"></dict-selector>--> <!-- <dict-selector :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" v-model="form.resourceType" formatter="number"></dict-selector>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item :label="$t('常用提货网点')" prop="remarks"> <el-form-item :label="$t('常用提货网点')" prop="remarks">
<el-select v-model="form.pickupPoint"> <el-select v-model="form.pickupPoint">
<el-option v-for="item in getNodeLists " :value="item.id" :label="isChinese ? item.titleZh : item.titleEn "></el-option> <el-option
</el-select> v-for="item in getNodeLists"
:value="item.id"
:label="isChinese ? item.titleZh : item.titleEn"
></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col
<el-col :span="13" v-show="form.type && form.type.indexOf('2') !== -1"> :span="13"
v-show="form.type && form.type.indexOf('2') !== -1"
>
<el-form-item :label="$t('所属代理')" prop="agentId"> <el-form-item :label="$t('所属代理')" prop="agentId">
<el-select filterable clearable v-model="form.agentId" :placeholder="$t('请选择所属代理')"> <el-select
<el-option v-for="item in serviceUserList" filterable
: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>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('公司名称')" prop="company"> <el-form-item :label="$t('公司名称')" prop="company">
<el-input v-model="form.company" :placeholder="$t('请输入公司名称')" /> <el-input
v-model="form.company"
:placeholder="$t('请输入公司名称')"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
...@@ -85,26 +148,47 @@ ...@@ -85,26 +148,47 @@
v-model="form.birthday" v-model="form.birthday"
type="date" type="date"
value-format="timestamp" value-format="timestamp"
:placeholder="$t('请输入客户生日')"> :placeholder="$t('请输入客户生日')"
>
</el-date-picker> </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-input v-model="form.companyEn" :placeholder="$t('请输入客户英文名称')"></el-input> <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 :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 @change="change" v-model="form.productType" :placeholder="$t('请选择产品类别')"> <el-select
<el-option :label="item.titleZh" :value="item.id" v-for="(item) in productTypeList" :key="item.id"/> @change="change"
v-model="form.productType"
:placeholder="$t('请选择产品类别')"
>
<el-option
:label="item.titleZh"
: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 v-model="form.productId" :placeholder="$t('请选择')"> <el-select
<el-option :label="item.titleZh" :value="parseInt(item.id)" v-for="(item) in productList" :key="item.id"/> v-model="form.productId"
: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>
...@@ -112,25 +196,57 @@ ...@@ -112,25 +196,57 @@
</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 v-model="form.source" :placeholder="$t('请选择客户来源')"> <el-select
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)" v-model="form.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="balance"> <el-form-item :label="$t('结算方式')" prop="balance">
<el-select v-model="form.balance" :placeholder="$t('请选择结算方式')"> <el-select
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_BALANCE)" v-model="form.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('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select v-model="form.customerService" :placeholder="$t('请选择客户经理')" :disabled="((customerId !== '0' && $route.name !== 'allocatedCustomerEdit')) || isCustomerServiceConfirmed"> <el-select
<el-option v-for="item in !(((customerId !== '0' && $route.name !== 'allocatedCustomerEdit')) || isCustomerServiceConfirmed) ? serviceUserList : allSimplList" v-model="form.customerService"
: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>
...@@ -138,24 +254,39 @@ ...@@ -138,24 +254,39 @@
<el-form-item :label="$t('图片')" prop="picture"> <el-form-item :label="$t('图片')" prop="picture">
<upload v-model="form.picture" :limit="1"></upload> <upload v-model="form.picture" :limit="1"></upload>
</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 v-model="form.status" :placeholder="$t('请选择客户状态')" disabled> <el-select
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)" v-model="form.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('推介人')" prop="promoter"> <el-form-item :label="$t('推介人')" prop="promoter">
<el-select clearable remote :remote-method="remoteMethod" v-model="form.promoter" :placeholder="$t('请输入推介人')" filterable> <el-select
clearable
remote
:remote-method="remoteMethod"
v-model="form.promoter"
:placeholder="$t('请输入推介人')"
filterable
>
<el-option <el-option
v-for="item in customerSelectFn" v-for="item in customerSelectFn"
:key="item.id" :key="item.id"
:label="item.name" :label="item.name"
:value="item.id"> :value="item.id"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -167,7 +298,8 @@ ...@@ -167,7 +298,8 @@
v-for="item in allSimplList" v-for="item in allSimplList"
:key="item.id" :key="item.id"
:label="item.nickname" :label="item.nickname"
:value="item.id"> :value="item.id"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -179,34 +311,52 @@ ...@@ -179,34 +311,52 @@
type="datetime" type="datetime"
value-format="timestamp" value-format="timestamp"
disabled disabled
:placeholder="$t('选择创建时间')"> :placeholder="$t('选择创建时间')"
>
</el-date-picker> </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="remarks"> <el-form-item :label="$t('备注')" prop="remarks">
<el-input v-model="form.remarks" :placeholder="$t('请输入备注')"/> <el-input
v-model="form.remarks"
: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="remarks"> <el-form-item :label="$t('是否显示提单价格')" prop="remarks">
<el-switch v-model="form.isShowTidanPrice"></el-switch> <el-switch v-model="form.isShowTidanPrice"></el-switch>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('询盘信息')">
<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>
<el-col :span="12">
<el-form-item :label="$t('询盘信息')">
<el-input show-word-limit v-model="form.inquiry" :rows="3" type="textarea" :maxlength="500"></el-input>
</el-form-item>
</el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item :label="$t('到仓确认')" prop="arrivalConfirm"> <el-form-item :label="$t('到仓确认')" prop="arrivalConfirm">
<el-switch v-model="form.arrivalConfirm" :active-value="1" :inactive-value="0" /> <el-switch
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 v-model="form.weightUnit" :placeholder="$t('请输入重货标准')" v-show="showZhong"> <el-input
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>
...@@ -214,13 +364,23 @@ ...@@ -214,13 +364,23 @@
<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 v-if="showZhong1" :warehouse-list="warehouseList" :import-city-list="importCityList" v-model="zhongLines" :zhong-pao-type="1"></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>
</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 v-model="form.lightUnit" :placeholder="$t('请输入泡货标准')" v-show="showPao"> <el-input
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>
...@@ -228,295 +388,424 @@ ...@@ -228,295 +388,424 @@
<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 v-if="showPao1" :warehouse-list="warehouseList" :import-city-list="importCityList" v-model="paoLines" :zhong-pao-type="2"></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>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item v-hasPermi="['ecw:customer:edit-card']" :label="$t('身份证姓名')"> <el-form-item
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-form-item v-hasPermi="['ecw:customer:edit-card']" :label="$t('身份证号码')"> <el-form-item
<el-input v-model="form.carNo" ></el-input> v-hasPermi="['ecw:customer:edit-card']"
:label="$t('身份证号码')"
>
<el-input v-model="form.carNo"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-card class="box-card"> <el-card class="box-card">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span>{{$t('联系人')}}</span> <span>{{ $t("联系人") }}</span>
<el-button style="float: right;" size="small" type="primary" @click="handleAddContact">+</el-button> <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 <el-table :data="form.customerContacts" style="width: 100%">
:data="form.customerContacts" <el-table-column prop="department" :label="$t('部门')" width="">
style="width: 100%" <template v-slot="{ row }">
> <el-form-item label="">
<el-table-column <el-input
prop="department" v-model="row.department"
:label="$t('部门')" :placeholder="$t('请输入部门')"
width="" size="mini"
> />
<template v-slot="{ row }"> </el-form-item>
<el-form-item label=""> </template>
<el-input v-model="row.department" :placeholder="$t('请输入部门')" size="mini"/> </el-table-column>
</el-form-item> <el-table-column prop="position" :label="$t('职位')" width="">
</template> <template v-slot="{ row }">
</el-table-column> <el-form-item label="">
<el-table-column <el-input
prop="position" v-model="row.position"
:label="$t('职位')" :placeholder="$t('请输入职位')"
width="" size="mini"
> />
<template v-slot="{row}"> </el-form-item>
<el-form-item label=""> </template>
<el-input v-model="row.position" :placeholder="$t('请输入职位')" size="mini"/> </el-table-column>
</el-form-item> <el-table-column prop="name" :label="$t('联系人')">
</template> <template slot="header">
</el-table-column> {{ $t("联系人") }} <span style="color: #ff0000">*</span>
<el-table-column </template>
prop="name" <template v-slot="{ row, cellValue, $index }">
:label="$t('联系人')" <el-form-item
> :rules="contactRules.name"
<template slot="header"> :prop="'customerContacts.' + $index + '.name'"
{{$t('联系人')}} <span style="color: #ff0000">*</span> label=""
</template> >
<template v-slot="{row, cellValue, $index}"> <el-input
<el-form-item :rules="contactRules.name" :prop="'customerContacts.' + $index + '.name'" label=""> v-model="row.name"
<el-input v-model="row.name" :placeholder="$t('请输入联系人')" size="mini"/> :placeholder="$t('请输入联系人')"
</el-form-item> size="mini"
</template> />
</el-table-column> </el-form-item>
<el-table-column> </template>
<template slot="header"> </el-table-column>
{{$t('联系人英文名称')}} <el-table-column>
</template> <template slot="header">
<template v-slot="{row, cellValue, $index}"> {{ $t("联系人英文名称") }}
<el-form-item label=""> </template>
<el-input v-model="row.nameEn" :placeholder="$t('请输入联系人英文名称')" size="mini"/> <template v-slot="{ row, cellValue, $index }">
</el-form-item> <el-form-item label="">
</template> <el-input
</el-table-column> v-model="row.nameEn"
<el-table-column :placeholder="$t('请输入联系人英文名称')"
prop="areaCode" size="mini"
:label="$t('区号')" />
> </el-form-item>
<template slot="header"> </template>
{{$t('区号')}} <span style="color: #ff0000">*</span> </el-table-column>
</template> <el-table-column prop="areaCode" :label="$t('区号')">
<template v-slot="{row, cellValue, $index}"> <template slot="header">
<el-form-item :rules="contactRules.areaCode" :prop="'customerContacts.' + $index + '.areaCode'" label=""> {{ $t("区号") }} <span style="color: #ff0000">*</span>
<el-select v-model="row.areaCode" :placeholder="$t('请选择区号')" filterable size="mini"> </template>
<el-option v-for="(item, index) in countryList" <template v-slot="{ row, cellValue, $index }">
:key="index" :label="item.nameShort + (isChinese ? item.nameZh : item.nameEn) + '(' + item.tel + ')'" :value="item.tel" /> <el-form-item
</el-select> :rules="contactRules.areaCode"
</el-form-item> :prop="'customerContacts.' + $index + '.areaCode'"
</template> label=""
</el-table-column> >
<el-table-column <el-select
prop="phoneNew" v-model="row.areaCode"
:label="$t('联系方式')" :placeholder="$t('请选择区号')"
> filterable
size="mini"
<template slot="header"> >
{{$t('联系方式')}} <span style="color: #ff0000">*</span> <el-option
</template> v-for="(item, index) in countryList"
<template v-slot="{row, cellValue, $index}"> :key="index"
<el-form-item :rules="contactRules.phoneNew" :prop="'customerContacts.' + $index + '.phoneNew'" label=""> :label="
<el-input v-model="row.phoneNew" :placeholder="$t('请输入联系方式')" size="mini"/> item.nameShort +
</el-form-item> (isChinese ? item.nameZh : item.nameEn) +
</template> '(' +
</el-table-column> item.tel +
<el-table-column ')'
prop="" "
:label="$t('关联账号')" :value="item.tel"
> />
<template v-slot = "{row}"> </el-select>
<el-form-item label=""> </el-form-item>
<!-- <el-select v-model="row.userid" clearable remote :remote-method="getUserMemberUserFn" @change="selectBD" size="mini" filterable> </template>
</el-table-column>
<el-table-column prop="phoneNew" :label="$t('联系方式')">
<template slot="header">
{{ $t("联系方式") }} <span style="color: #ff0000">*</span>
</template>
<template v-slot="{ row, cellValue, $index }">
<el-form-item
:rules="contactRules.phoneNew"
:prop="'customerContacts.' + $index + '.phoneNew'"
label=""
>
<el-input
v-model="row.phoneNew"
:placeholder="$t('请输入联系方式')"
size="mini"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="" :label="$t('关联账号')">
<template v-slot="{ row }">
<el-form-item label="">
<!-- <el-select v-model="row.userid" clearable remote :remote-method="getUserMemberUserFn" @change="selectBD" size="mini" filterable>
<el-option v-for="(item,index) in userMemberUser" :value="item.id" :key="index" :label="item.nickname + '(' + item.mobile + ')'" ></el-option> <el-option v-for="(item,index) in userMemberUser" :value="item.id" :key="index" :label="item.nickname + '(' + item.mobile + ')'" ></el-option>
</el-select> --> </el-select> -->
<MemberSelector v-model="row.userid" size="mini" /> <MemberSelector v-model="row.userid" size="mini" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="social" :label="$t('社交软件')">
prop="social" <template v-slot="{ row }">
:label="$t('社交软件')" <el-form-item label="">
> <el-select
<template v-slot="{row}"> v-model="row.social"
<el-form-item label=""> :placeholder="$t('请选择社交软件')"
<el-select v-model="row.social" :placeholder="$t('请选择社交软件')" size="mini"> 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-option
</el-select> v-for="dict in getDictDatas(DICT_TYPE.SOCIAL)"
</el-form-item> :key="dict.value"
</template> :label="isChinese ? dict.label : dict.labelEn"
</el-table-column> :value="parseInt(dict.value)"
<el-table-column />
prop="socialNumber" </el-select>
:label="$t('社交软件号码')" </el-form-item>
> </template>
<template v-slot="{row}"> </el-table-column>
<el-form-item label=""> <el-table-column
<el-input v-model="row.socialNumber" :placeholder="$t('请输入社交软件号码')" size="mini"/> prop="socialNumber"
</el-form-item> :label="$t('社交软件号码')"
</template> >
</el-table-column> <template v-slot="{ row }">
<el-table-column <el-form-item label="">
width="260px" <el-input
prop="email" v-model="row.socialNumber"
:label="$t('邮箱')" :placeholder="$t('请输入社交软件号码')"
> size="mini"
<template v-slot="{row}"> />
<el-form-item v-for="(item, index) in row.email" :key="index" label=""> </el-form-item>
<div style="display: flex;align-items: center;"> </template>
<el-input v-model="row.email[index]" :placeholder="$t('请输入邮箱')" size="mini"/> </el-table-column>
<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-table-column width="260px" prop="email" :label="$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> <template v-slot="{ row }">
</div> <el-form-item
</el-form-item> v-for="(item, index) in row.email"
</template> :key="index"
</el-table-column> label=""
<el-table-column >
prop="isDefault" <div style="display: flex; align-items: center">
:label="$t('设为默认')" <el-input
> v-model="row.email[index]"
<template v-slot="{ row, column, $index }"> :placeholder="$t('请输入邮箱')"
<el-form-item label=""> size="mini"
<el-select v-model="row.isDefault" :placeholder="$t('设为默认')" @change="handleDefaultChange($index)" size="mini"> />
<el-option v-for="dict in getDictDatas(DICT_TYPE.IS_DEFAULT)" <el-button
:key="dict.value" :label=" isChinese ? dict.label : dict.labelEn" :value="Number(dict.value)" /> @click="deleteEmail(row.email, index)"
</el-select> v-if="row.email.length !== 1"
</el-form-item> style="height: 25px; margin-left: 5px"
</template> type="danger"
</el-table-column> size="mini"
<el-table-column >删除</el-button
prop="name" >
:label="$t('操作')" <el-button
> @click="addEmail(row.email)"
<template v-slot="{ row, column, $index }"> style="height: 25px; margin-left: 5px"
<el-form-item label=""> v-if="
<el-button type="danger" @click="handleDeleteContact($index)" size="mini">{{$t('删除')}}</el-button> index === row.email.length - 1 &&
</el-form-item> row.email.length < 5
</template> "
</el-table-column> size="mini"
</el-table> type="primary"
>添加</el-button
>
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="isDefault" :label="$t('设为默认')">
<template v-slot="{ row, column, $index }">
<el-form-item label="">
<el-select
v-model="row.isDefault"
: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-form-item>
</template>
</el-table-column>
<el-table-column prop="name" :label="$t('操作')">
<template v-slot="{ row, column, $index }">
<el-form-item label="">
<el-button
type="danger"
@click="handleDeleteContact($index)"
size="mini"
>{{ $t("删除") }}</el-button
>
</el-form-item>
</template>
</el-table-column>
</el-table>
</el-form> </el-form>
</el-card> </el-card>
<el-row :gutter="10" style="margin-top: 15px"> <el-row :gutter="10" style="margin-top: 15px">
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('发票抬头')" prop="invoiceTitle"> <el-form-item :label="$t('发票抬头')" prop="invoiceTitle">
<el-input v-model="form.invoiceTitle" :placeholder="$t('请输入发票抬头')" /> <el-input
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 v-model="form.licenseNumber" :placeholder="$t('请输入纳税人识别号')" /> <el-input
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 v-model="form.bank" :placeholder="$t('请输入开户行')" /> <el-input
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 v-model="form.bankNumber" :placeholder="$t('请输入账户')" /> <el-input
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 v-model="form.project" :placeholder="$t('请输入项目')" /> <el-input
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 v-model="form.billingAddress" :placeholder="$t('请输入开票地址')" /> <el-input
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 v-model="form.billingTell" :placeholder="$t('请输入开票电话')" maxlength="50" /> <el-input
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 v-model="form.taxRate" :placeholder="$t('请输入税率')" /> <el-input
v-model="form.taxRate"
:placeholder="$t('请输入税率')"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<el-card> <el-card>
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span>{{$t('银行信息')}}</span> <span>{{ $t("银行信息") }}</span>
<el-button style="float: right;" size="small" type="primary" @click="addBankData">+</el-button> <el-button
style="float: right"
size="small"
type="primary"
@click="addBankData"
>+</el-button
>
</div> </div>
<el-form ref="bankForm" :model="form"> <el-form ref="bankForm" :model="form">
<el-table border :data="form.customerBanks"> <el-table border :data="form.customerBanks">
<el-table-column :label="$t('序号')" type="index"></el-table-column> <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> {{ $t("账户名称") }} <span style="color: red">*</span>
</div> </div>
<template v-slot="{row,$index}"> <template v-slot="{ row, $index }">
<el-form-item :rules="{required:true,message:$t('请输入账户名称')}" :prop="'customerBanks.'+ $index +'.accountName'"> <el-form-item
<el-input size="mini" v-model="row.accountName"></el-input> :rules="{ required: true, message: $t('请输入账户名称') }"
</el-form-item> :prop="'customerBanks.' + $index + '.accountName'"
</template> >
<el-input size="mini" v-model="row.accountName"></el-input>
</el-form-item>
</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> {{ $t("币别") }} <span style="color: red">*</span>
</div> </div>
<template v-slot="{row,$index}"> <template v-slot="{ row, $index }">
<el-form-item :prop="'customerBanks.'+ $index +'.currency'" :rules="{required:true,message:$t('请输入币别')}" > <el-form-item
:prop="'customerBanks.' + $index + '.currency'"
:rules="{ required: true, message: $t('请输入币别') }"
>
<el-select v-model="row.currency"> <el-select v-model="row.currency">
<el-option v-for="(item) in currecyList" :label="$l(item,'title')" :value="item.id.toString()" :key="item.id"></el-option> <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> {{ $t("银行名称") }} <span style="color: red">*</span>
</div> </div>
<template v-slot="{row,$index}"> <template v-slot="{ row, $index }">
<el-form-item :prop="'customerBanks.'+ $index +'.bankName'" :rules="{required:true,message:$t('银行名称')}"> <el-form-item
<el-input v-model="row.bankName" size="mini"></el-input> :prop="'customerBanks.' + $index + '.bankName'"
:rules="{ required: true, message: $t('银行名称') }"
>
<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> {{ $t("银行账户") }} <span style="color: red">*</span>
</div> </div>
<template v-slot="{row,$index}"> <template v-slot="{ row, $index }">
<el-form-item :prop="`customerBanks.${$index}.bankAccount`" :rules="{required:true,message:$t('请输入银行账户')}"> <el-form-item
<el-input v-model="row.bankAccount" size="mini"></el-input> :prop="`customerBanks.${$index}.bankAccount`"
:rules="{ required: true, message: $t('请输入银行账户') }"
>
<el-input v-model="row.bankAccount" 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('银行代码')">
<template v-slot="{row}"> <template v-slot="{ row }">
<el-form-item prop="bankCode"> <el-form-item prop="bankCode">
<el-input v-model="row.bankCode" size="mini"></el-input> <el-input v-model="row.bankCode" 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('账户类型')">
<template v-slot="{row}"> <template v-slot="{ row }">
<el-form-item> <el-form-item>
<el-select v-model="row.accountType"> <el-select v-model="row.accountType">
<el-option value="1" :label="$t('公账')"></el-option> <el-option value="1" :label="$t('公账')"></el-option>
<el-option value="2" :label="$t('私账')" ></el-option> <el-option value="2" :label="$t('私账')"></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('状态')">
<template v-slot="{row}"> <template v-slot="{ row }">
<el-form-item> <el-form-item>
<el-select v-model="row.status"> <el-select v-model="row.status">
<el-option :value="0" :label="$t('停用')"></el-option> <el-option :value="0" :label="$t('停用')"></el-option>
...@@ -526,58 +815,68 @@ ...@@ -526,58 +815,68 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('银行地址')"> <el-table-column :label="$t('银行地址')">
<template v-slot="{row}"> <template v-slot="{ row }">
<el-form-item prop="baBankAdd"> <el-form-item prop="baBankAdd">
<el-input v-model="row.bankAddress" size="mini"></el-input> <el-input v-model="row.bankAddress" 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('操作')">
<template v-slot="{$index}"> <template v-slot="{ $index }">
<el-button @click="deleteBankData($index)">{{$t('删除')}}</el-button> <el-button @click="deleteBankData($index)">{{
$t("删除")
}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-form> </el-form>
</el-card> </el-card>
<div style="text-align: center"> <div style="text-align: center">
<el-button type="primary" @click="submitForm">{{$t('确 定')}}</el-button> <el-button type="primary" @click="submitForm">{{
<el-button @click="cancel">{{$t('取 消')}}</el-button> $t("确 定")
}}</el-button>
<el-button @click="cancel">{{ $t("取 消") }}</el-button>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
</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, createCustomer,
getCustomer, getCustomer,
getCustomerList, getCustomerList,
getCustomerPage, memberUserList, getCustomerPage,
memberUserList,
updateCustomer, updateCustomer,
userMemberUserList, userMemberUserList,
getCustomerLines, fillupCustomeInfo, getServiceNetwork getCustomerLines,
} from '@/api/ecw/customer' fillupCustomeInfo,
import {getNodeList} from "@/api/ecw/node" getServiceNetwork,
import { getProductTypeList } from '@/api/ecw/productType' } from "@/api/ecw/customer";
import { getProductList } from '@/api/ecw/product' import { getNodeList } from "@/api/ecw/node";
import {getTradeCityList} from "@/api/ecw/region" import { getProductTypeList } from "@/api/ecw/productType";
import {getWarehouseList} from "@/api/ecw/warehouse" import { getProductList } from "@/api/ecw/product";
import CustomerLineTable from '@/components/CustomerLineTable' import { getTradeCityList } from "@/api/ecw/region";
import {getCustomerSelect} from "@/api/ecw/customer" import { getWarehouseList } from "@/api/ecw/warehouse";
import {listAllSimpl, listServiceUser, listSimpleUsers} from "@/api/system/user" import CustomerLineTable from "@/components/CustomerLineTable";
import { getZhongPaoBest, getZhongPaoPage } from '@/api/ecw/zhongPao' import { getCustomerSelect } from "@/api/ecw/customer";
import { getCustomerContactsListByCustomer } from '@/api/ecw/customerContacts' import {
import { getCountryListAll } from '@/api/ecw/country' 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 Template from "@/views/cms/template";
import {validatorMobile} from "@/api/ecw/validate" 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",
...@@ -586,90 +885,95 @@ export default { ...@@ -586,90 +885,95 @@ 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.isCustomerServiceConfirmed ? true : false this.isCustomerServiceConfirmed = this.$route.query
this.getCustomerSelect() .isCustomerServiceConfirmed
this.reset() ? true
: 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(r => { getCustomerContactsListByCustomer({ customerId: customerId }).then(
this.form.customerContacts = r.data (r) => {
this.form.customerContacts.forEach(item => { this.form.customerContacts = r.data;
if(item.email){ this.form.customerContacts.forEach((item) => {
item.email = item.email.split(',') if (item.email) {
}else { item.email = item.email.split(",");
item.email = [""] } else {
} item.email = [""];
}) }
}) });
if(this.form.promoter){ }
getCustomerList({ids:this.form.promoter}).then(r => { );
if (this.form.promoter) {
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;
} }
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;
}) });
}, },
data(){ data() {
return { return {
getNodeLists:[], getNodeLists: [],
isCustomerServiceConfirmed:false, isCustomerServiceConfirmed: false,
getDictDatas, getDictDatas,
DICT_TYPE, DICT_TYPE,
...@@ -677,29 +981,78 @@ export default { ...@@ -677,29 +981,78 @@ export default {
form: {}, form: {},
// 表单校验 // 表单校验
rules: { rules: {
name: [{ required: true, message: this.$t('客户名称不能为空'), trigger: "blur" }], name: [
country: [{ required: true, message: this.$t('国家不能为空'), trigger: "blur" }], {
level: [{ required: true, message: this.$t('客户等级不能为空'), trigger: "blur" }], required: true,
type: [{ required: true, message: this.$t('客户类别不能为空'), trigger: "blur" }], message: this.$t("客户名称不能为空"),
createTime: [{ required: true, message: this.$t('创建时间不能为空'), trigger: "blur" }], trigger: "blur",
source: [{ required: true, message: this.$t('客户来源不能为空'), trigger: "blur" }], },
customerService: [{ required:this.customerId === '0', message: this.$t('客户经理不能为空'), trigger: "blur" }], ],
status: [{ required: true, message: this.$t('客户状态不能为空'), trigger: "blur" }], country: [
{ required: true, message: this.$t("国家不能为空"), trigger: "blur" },
],
level: [
{
required: true,
message: this.$t("客户等级不能为空"),
trigger: "blur",
},
],
type: [
{
required: true,
message: this.$t("客户类别不能为空"),
trigger: "blur",
},
],
createTime: [
{
required: true,
message: this.$t("创建时间不能为空"),
trigger: "blur",
},
],
source: [
{
required: true,
message: this.$t("客户来源不能为空"),
trigger: "blur",
},
],
customerService: [
{
required: this.customerId === "0",
message: this.$t("客户经理不能为空"),
trigger: "blur",
},
],
status: [
{
required: true,
message: this.$t("客户状态不能为空"),
trigger: "blur",
},
],
}, },
contactRules: { contactRules: {
name: [{ required: true, message: this.$t('请输入联系人'), trigger: "blur" }], name: [
areaCode: [{ required: true, message: this.$t('请选择区号'), trigger: "change" },{ { required: true, message: this.$t("请输入联系人"), trigger: "blur" },
required: true, ],
trigger: 'change', areaCode: [
validator:this.codeValidator { required: true, message: this.$t("请选择区号"), trigger: "change" },
}], {
phoneNew: [{ required: true,
required: true, trigger: "change",
trigger: "blur", validator: this.codeValidator,
validator: this.phoneValidator },
}], ],
phoneNew: [
{
required: true,
trigger: "blur",
validator: this.phoneValidator,
},
],
}, },
// 网点 // 网点
nodeList: [], nodeList: [],
...@@ -712,41 +1065,41 @@ export default { ...@@ -712,41 +1065,41 @@ export default {
warehouseList: [], // 仓库列表 warehouseList: [], // 仓库列表
importCityList: [], // 进口地址 importCityList: [], // 进口地址
customerSelect: [], customerSelect: [],
recommended:[], recommended: [],
serviceUserList: [], serviceUserList: [],
countryList: [], countryList: [],
zhongLines: [], // 重货线路 zhongLines: [], // 重货线路
paoLines: [], // 泡货线路 paoLines: [], // 泡货线路
memberList:[],//会员列表 memberList: [], //会员列表
selectMemberList:[],//选中会员列表 selectMemberList: [], //选中会员列表
serviceNetworkList:[], //网点列表 serviceNetworkList: [], //网点列表
allSimplList:[], allSimplList: [],
currecyList:[] currecyList: [],
} };
}, },
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.productId = ''; this.form.productId = "";
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() {
let p = { let p = {
bankName: "", bankName: "",
bankAccount: "", bankAccount: "",
...@@ -754,89 +1107,99 @@ export default { ...@@ -754,89 +1107,99 @@ export default {
bankCode: "", bankCode: "",
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 => {
this.memberList = r.data.list this.memberList = r.data.list
}) })
}, */ }, */
remoteMethod(val){ remoteMethod(val) {
this.getCustomerSelect(val); this.getCustomerSelect(val);
}, },
getCustomerSelect(val = ''){ getCustomerSelect(val = "") {
getCustomerSelect({pageNo:1,pageSize:30,searchKey:val}).then(res => { getCustomerSelect({ pageNo: 1, pageSize: 30, searchKey: val }).then(
this.customerSelect = res.data.list (res) => {
}) 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(e => e.phoneNew === value).areaCode let areaCode = this.form.customerContacts.find(
if(areaCode){ (e) => e.phoneNew === value
).areaCode;
if (areaCode) {
validatorMobile({ validatorMobile({
code: areaCode, code: areaCode,
mobile: value mobile: value,
}).then(r => {
if (r.data){
callback()
} else {
callback(new Error(r.msg || this.$t('手机号验证失败')))
}
}).catch(e => {
console.error(e)
callback(new Error(this.$t('手机号验证失败')))
}) })
.then((r) => {
if (r.data) {
callback();
} else {
callback(new Error(r.msg || this.$t("手机号验证失败")));
}
})
.catch((e) => {
console.error(e);
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 => {
if (r.data){
callback()
} else {
callback()
this.$message.error(r.msg || this.$t('手机号验证失败'))
}
}).catch(e => {
console.error(e)
callback()
this.$message.error(this.$t('手机号验证失败'))
}) })
.then((r) => {
if (r.data) {
callback();
} else {
callback();
this.$message.error(r.msg || this.$t("手机号验证失败"));
}
})
.catch((e) => {
console.error(e);
callback();
this.$message.error(this.$t("手机号验证失败"));
});
} }
}, },
handleDefaultChange($index){ handleDefaultChange($index) {
// 只有一个联系人,设置成非默认 // 只有一个联系人,设置成非默认
if (this.form.customerContacts.length === 1 && this.form.customerContacts[0].isDefault === 0){ if (
this.$modal.msgWarning(this.$t('至少拥有一个默认联系人')) this.form.customerContacts.length === 1 &&
this.form.customerContacts[0].isDefault = 1 this.form.customerContacts[0].isDefault === 0
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){
...@@ -851,104 +1214,111 @@ export default { ...@@ -851,104 +1214,111 @@ 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.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 = {...this.form, type: this.form.type?.join(','), transportType: (this.form.transportType || [])?.join(','), taxRate: Number(this.form.taxRate)} const form = {
form.customerContacts = JSON.parse(JSON.stringify(this.form.customerContacts)) ...this.form,
form.customerContacts.forEach(e =>{ type: this.form.type?.join(","),
e.email = [...e.email].filter(i => i !== '').join(',') transportType: (this.form.transportType || [])?.join(","),
}) taxRate: Number(this.form.taxRate),
// 检查路线是否启用了但是没选择目的仓 };
let errors = 0 form.customerContacts = JSON.parse(
form.customerLines.forEach(line => { JSON.stringify(this.form.customerContacts)
if(!line.objectiveIds || line.objectiveIds == ''){ );
errors ++ form.customerContacts.forEach((e) => {
e.email = [...e.email].filter((i) => i !== "").join(",");
});
// 检查路线是否启用了但是没选择目的仓
let errors = 0;
form.customerLines.forEach((line) => {
if (!line.objectiveIds || line.objectiveIds == "") {
errors++;
}
});
if (errors) {
return this.$message.error("有两条路线未选择目的地");
} }
}) //我的客户页面跳转直接,完善客户
if(errors){ if (this.isCustomerServiceConfirmed) {
return this.$message.error('有两条路线未选择目的地') form.isCustomerServiceConfirmed = this.isCustomerServiceConfirmed;
} }
//我的客户页面跳转直接,完善客户 // 修改的提交
if(this.isCustomerServiceConfirmed){ if (this.form.id != null) {
form.isCustomerServiceConfirmed = this.isCustomerServiceConfirmed; this.form.customerContacts.forEach((e) => {
} e.customerId = this.customerId;
// 修改的提交 });
if (this.form.id != null) { if (this.$route.name === "perfect") {
this.form.customerContacts.forEach(e => { fillupCustomeInfo(form).then((r) => {
e.customerId = this.customerId this.$modal.msgSuccess(this.$t("修改成功"));
}) this.open = false;
if(this.$route.name === 'perfect'){ const obj = { path: "/customer/customer" };
fillupCustomeInfo(form).then(r => { this.$tab.closeOpenPage(obj);
this.$modal.msgSuccess(this.$t('修改成功')); });
this.open = false; } else {
const obj = { path: "/customer/customer" }; updateCustomer(form).then((response) => {
this.$tab.closeOpenPage(obj); this.$modal.msgSuccess(this.$t("修改成功"));
}) this.open = false;
}else { // this.getList();
updateCustomer(form).then(response => { const obj = { path: "/customer/customer" };
this.$modal.msgSuccess(this.$t('修改成功')); this.$tab.closeOpenPage(obj);
this.open = false; });
// this.getList(); }
const obj = { path: "/customer/customer" };
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() {
this.form = { this.form = {
inquiry:undefined, inquiry: undefined,
id: undefined, id: undefined,
number: undefined, number: undefined,
name: undefined, name: undefined,
...@@ -956,11 +1326,11 @@ export default { ...@@ -956,11 +1326,11 @@ export default {
level: 1, level: 1,
country: undefined, country: undefined,
type: undefined, type: undefined,
transportType:[], transportType: [],
agentId: undefined, agentId: undefined,
company: undefined, company: undefined,
companyEn: undefined, companyEn: undefined,
payerName:undefined, payerName: undefined,
address: undefined, address: undefined,
productType: undefined, productType: undefined,
productId: undefined, productId: undefined,
...@@ -990,84 +1360,94 @@ export default { ...@@ -990,84 +1360,94 @@ export default {
arrivalConfirm: undefined, arrivalConfirm: undefined,
weightUnit: undefined, weightUnit: undefined,
createTime: undefined, createTime: undefined,
isShowTidanPrice:true, isShowTidanPrice: true,
carName:undefined, carName: undefined,
carNo:undefined, carNo: undefined,
customerBanks:[] customerBanks: [],
}; };
this.form.createTime = (new Date()).getTime() this.form.createTime = 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, ...response.data, id: this.customerId,transportType: response.data.transportType && response.data.transportType !== '' ? response.data.transportType.split(',') : [],customerBanks:response.data.customerBankBackVOList }; this.form = {
if(this.form.productType){ ...this.form,
console.log('1231',this.form.productType) ...response.data,
this.getProductListFn(this.form.productType) id: this.customerId,
transportType:
response.data.transportType && response.data.transportType !== ""
? response.data.transportType.split(",")
: [],
customerBanks: response.data.customerBankBackVOList,
};
if (this.form.productType) {
console.log("1231", this.form.productType);
this.getProductListFn(this.form.productType);
} }
this.open = true; this.open = true;
this.title = this.$t('修改客户'); this.title = this.$t("修改客户");
this.getZhongPao() this.getZhongPao();
}); });
}, },
updateCustomerLines() { updateCustomerLines() {
let zhongLines = [], paoLines = [] let zhongLines = [],
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({
"areaCode": "", areaCode: "",
// "customerId": 0,q // "customerId": 0,q
"department": "", department: "",
"email": [''], email: [""],
"isDefault": this.form.customerContacts.length === 0 ? 1 : 0, isDefault: this.form.customerContacts.length === 0 ? 1 : 0,
"name": "", name: "",
"phoneNew": "", phoneNew: "",
"position": "", position: "",
"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;
}) });
} },
}, },
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(){
...@@ -1076,32 +1456,34 @@ export default { ...@@ -1076,32 +1456,34 @@ 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() {
if (this.recommended.length > 0) {
let i = this.customerSelect.find(
(item) => item.id === this.recommended[0].id
);
if (!i) {
this.customerSelect.push(this.recommended[0]);
}
return this.customerSelect;
} else {
return this.customerSelect;
}
}, },
customerSelectFn(){
if(this.recommended.length > 0){
let i = this.customerSelect.find(item => item.id === this.recommended[0].id)
if(!i){
this.customerSelect.push(this.recommended[0])
}
return this.customerSelect
}else {
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">
......
...@@ -343,6 +343,9 @@ import { getSupplierPage } from "@/api/ecw/supplier"; ...@@ -343,6 +343,9 @@ import { getSupplierPage } from "@/api/ecw/supplier";
import { getCurrencyPage } from "@/api/ecw/currency"; import { getCurrencyPage } from "@/api/ecw/currency";
import { getWarehouseList } from "@/api/ecw/warehouse"; import { getWarehouseList } from "@/api/ecw/warehouse";
/*
应付款
*/
export default { export default {
name: "EcwFinancialPayable", name: "EcwFinancialPayable",
components: {}, components: {},
......
...@@ -6,8 +6,9 @@ ...@@ -6,8 +6,9 @@
<pdf-viewer id="pdfViewer" ref="viewer" v-if="pdfData" :url="pdfData" style="display:block; margin: 0 auto; max-height: 80vh; overflow:auto;" /> <pdf-viewer id="pdfViewer" ref="viewer" v-if="pdfData" :url="pdfData" style="display:block; margin: 0 auto; max-height: 80vh; overflow:auto;" />
<!-- <div v-if="detail" class="billcontent" v-html="detail.billContent"></div> --> <!-- <div v-if="detail" class="billcontent" v-html="detail.billContent"></div> -->
<p class="subs" style="text-align:center"> <p class="subs" style="text-align:center">
<el-button type="primary" @click="download" :disabled="!detail">{{$t('下载')}}</el-button> <!--lanbm 2024-06-04 添加审批状态控制逻辑-->
<el-button type="primary" @click="print" :disabled="!detail">{{$t('打印')}}</el-button> <el-button type="primary" @click="download" :disabled="detail.bpmStatus!='2'">{{$t('下载')}}</el-button>
<el-button type="primary" @click="print" :disabled="detail.bpmStatus!='2'">{{$t('打印')}}</el-button>
</p> </p>
</el-dialog> </el-dialog>
</template> </template>
......
...@@ -574,6 +574,7 @@ ...@@ -574,6 +574,7 @@
</el-card> </el-card>
<print-warehouse-receipt v-if="showWarehouseReceipt" :order-id="order.orderId" @close="showWarehouseReceipt=false" /> <print-warehouse-receipt v-if="showWarehouseReceipt" :order-id="order.orderId" @close="showWarehouseReceipt=false" />
<!--查看提货单 lanbm 2024-06-03-->
<print-lading-bill v-if="showLadingBill" :order-id="order.orderId" :transport-type="order.transportId" @close="showLadingBill=false" /> <print-lading-bill v-if="showLadingBill" :order-id="order.orderId" :transport-type="order.transportId" @close="showLadingBill=false" />
<warehouse-detail :order="order" :orderItemId="showWarehouseInItemId" :type="type" @openPackHistory="openPackHistory" v-if="showWarehouseInItemId" @close="showWarehouseInItemId=null" /> <warehouse-detail :order="order" :orderItemId="showWarehouseInItemId" :type="type" @openPackHistory="openPackHistory" v-if="showWarehouseInItemId" @close="showWarehouseInItemId=null" />
<el-dialog :title="$t('付款人')" :visible.sync="showDarweeDialog" v-if="order && order.customDraweeVOList"> <el-dialog :title="$t('付款人')" :visible.sync="showDarweeDialog" v-if="order && order.customDraweeVOList">
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -91,7 +91,6 @@ ...@@ -91,7 +91,6 @@
<el-table-column :label="$t('仓库编号')" align="center" prop="number" /> <el-table-column :label="$t('仓库编号')" align="center" prop="number" />
<el-table-column :label="$t('仓库名称')" align="center" prop="titleZh" /> <el-table-column :label="$t('仓库名称')" align="center" prop="titleZh" />
<el-table-column :label="$t('英文名称')" align="center" prop="titleEn" /> <el-table-column :label="$t('英文名称')" align="center" prop="titleEn" />
<el-table-column :label="$t('贸易属性')" align="center" prop="tradeType"> <el-table-column :label="$t('贸易属性')" align="center" prop="tradeType">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ tradeTypeName(scope.row.tradeType) }}</div> <div>{{ tradeTypeName(scope.row.tradeType) }}</div>
...@@ -114,7 +113,18 @@ ...@@ -114,7 +113,18 @@
align="center" align="center"
:prop="$l('address')" :prop="$l('address')"
/> />
<!--lanbm 2024-06-04 add-->
<el-table-column
:label="$t('仓库免租期')"
align="center"
prop="rentFreeDays"
/>
<el-table-column
:label="$t('锁定收货人天数')"
align="center"
prop="lockRecipientDays"
/>
<!--end lanbm 2024-06-04 add-->
<el-table-column prop="head" :label="$t('负责人')" align="center"> <el-table-column prop="head" :label="$t('负责人')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
...@@ -315,7 +325,7 @@ ...@@ -315,7 +325,7 @@
<!-- 对话框(添加 / 修改) --> <!-- 对话框(添加 / 修改) -->
<el-dialog :title="title" :visible.sync="open" width="900px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="90px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item :label="$t('所属网点')" prop="nodeId"> <el-form-item :label="$t('所属网点')" prop="nodeId">
<el-select <el-select
v-model="form.nodeId" v-model="form.nodeId"
...@@ -504,7 +514,25 @@ ...@@ -504,7 +514,25 @@
> >
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<!--lanbm 2024-06-04 添加控货需要的逻辑字段-->
<el-form-item :label="$t('仓库免租期')" prop="rentFreeDays">
<el-input-number
v-model="form.rentFreeDays"
controls-position="right"
:min="0"
/>
</el-form-item>
<el-form-item :label="$t('锁定收货人天数')" prop="lockRecipientDays">
<el-input-number
v-model="form.lockRecipientDays"
controls-position="right"
:min="0"
/>
</el-form-item>
</el-form> </el-form>
<!--end lanbm 2024-06-04 添加控货需要的逻辑字段-->
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">{{ <el-button type="primary" @click="submitForm">{{
$t("确定") $t("确定")
...@@ -609,7 +637,7 @@ ...@@ -609,7 +637,7 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<!--lanbm 2024-05-25 把海运的相关配置信息也显示出来了,把空运文字提示出掉了--> <!--lanbm 2024-05-25 把海运的相关配置信息也显示出来了,把空运文字提示出掉了-->
<template v-if="['3', '4','1'].includes(lineform.transportType)"> <template v-if="['3', '4', '1'].includes(lineform.transportType)">
<el-form-item :label="$t('模板中文标题')"> <el-form-item :label="$t('模板中文标题')">
<el-input <el-input
v-model="lineform.tempTitleZh" v-model="lineform.tempTitleZh"
......
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