Commit 4061ceb8 authored by zs嵩's avatar zs嵩

客户反馈问题处理

parent 4ab7754d
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('跟进类型')" required> <el-form-item :label="$t('跟进类型')" required>
<el-select v-model="form.followType" clearable :placeholder="$t('请选择')" @change="handleFollowType" :disabled="isView"> <el-select v-model="form.followType" clearable :placeholder="$t('请选择')" @change="handleFollowType" :disabled="isView || !!offerId">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_TYPE)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)" /> <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_TYPE)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="parseInt(dict.value)" />
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
<el-col :span="20" v-if="isView"> <el-col :span="20" v-if="isView">
<el-form-item> <el-form-item>
<div style="text-align: right"> <div style="text-align: right">
<!-- <el-button size="mini" icon="el-icon-collection" type="primary" @click="$emit('handleCustomerFollowAdd', form)" v-has-permi="['ecw:customer:follow-add-plan']">{{ $t("增加计划") }} </el-button>--> <!-- <el-button size="mini" icon="el-icon-collection" type="primary" @click="$emit('handleCustomerFollowAdd', form)" v-has-permi="['ecw:customer:follow-add-plan']">{{ $t("增加计划") }} </el-button>-->
<el-button size="mini" type="text" icon="el-icon-collection" @click="handleUpdate(form, true)" v-has-permi="['ecw:customer:follow-add-plan']">{{ $t("增加计划") }} </el-button> <el-button size="mini" type="text" icon="el-icon-collection" @click="handleUpdate(form, true)" v-has-permi="['ecw:customer:follow-add-plan']">{{ $t("增加计划") }} </el-button>
</div> </div>
</el-form-item> </el-form-item>
...@@ -185,6 +185,7 @@ export default { ...@@ -185,6 +185,7 @@ export default {
/** /**
* 如果是客户投诉跟进,则id为客户投诉id;如果是客户跟进,则id为客户id * 如果是客户投诉跟进,则id为客户投诉id;如果是客户跟进,则id为客户id
*/ */
offerId: Number,
customerId: Number, customerId: Number,
customerNumber: String, customerNumber: String,
customerService: Number customerService: Number
...@@ -208,7 +209,7 @@ export default { ...@@ -208,7 +209,7 @@ export default {
customerFollow: { customerFollow: {
dialogVisible: false, dialogVisible: false,
form: { form: {
followType: "3" followType: 3
} }
}, },
offerDialogVisible: true, offerDialogVisible: true,
...@@ -315,7 +316,7 @@ export default { ...@@ -315,7 +316,7 @@ export default {
}, },
handleFollowType(val) { handleFollowType(val) {
console.log(val) console.log(val)
if (val == "2") { if (val == 2) {
this.CustomerFollowSelectOffer = true this.CustomerFollowSelectOffer = true
} else { } else {
this.form.offerId = undefined this.form.offerId = undefined
...@@ -332,7 +333,7 @@ export default { ...@@ -332,7 +333,7 @@ export default {
feedback: undefined, feedback: undefined,
followMethod: undefined, followMethod: undefined,
followTime: new Date().getTime(), followTime: new Date().getTime(),
followType: undefined, followType: this.offerId ? 2 : undefined,
followUserId: this.customerService, followUserId: this.customerService,
nextPlan: undefined, nextPlan: undefined,
nextTime: undefined, nextTime: undefined,
...@@ -423,6 +424,7 @@ export default { ...@@ -423,6 +424,7 @@ export default {
}, },
customerFollowClose() { customerFollowClose() {
this.customerFollow.dialogVisible = false this.customerFollow.dialogVisible = false
this.$emit("close")
}, },
handleView(row) { handleView(row) {
this.form = row this.form = row
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
<el-descriptions-item :label="$t('客户状态')"> <el-descriptions-item :label="$t('客户状态')">
{{ getDictDataLabel(DICT_TYPE.CUSTOMER_STATUS, customer.status) }} {{ getDictDataLabel(DICT_TYPE.CUSTOMER_STATUS, customer.status) }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('客户经理')">{{ customer.customerServiceName }}</el-descriptions-item>
<el-descriptions-item :label="$t('询盘信息')">{{ customer.inquiry }}</el-descriptions-item> <el-descriptions-item :label="$t('询盘信息')">{{ customer.inquiry }}</el-descriptions-item>
<el-descriptions-item :label="$t('备注')">{{ customer.remarks }}</el-descriptions-item> <el-descriptions-item :label="$t('备注')">{{ customer.remarks }}</el-descriptions-item>
<el-descriptions-item :label="$t('图片')"> <el-descriptions-item :label="$t('图片')">
...@@ -46,7 +47,7 @@ ...@@ -46,7 +47,7 @@
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('推介人')">{{ customer.promoterName }}</el-descriptions-item> <el-descriptions-item :label="$t('推介人')">{{ customer.promoterName }}</el-descriptions-item>
<el-descriptions-item :label="$t('客户生日')">{{ parseTime(customer.birthday, "{y}-{m}-{d}") }} </el-descriptions-item> <el-descriptions-item :label="$t('客户生日')">{{ parseTime(customer.birthday, "{y}-{m}-{d}") }} </el-descriptions-item>
<el-descriptions-item :label="$t('客户经理')">{{ customer.customerServiceName }}</el-descriptions-item> <el-descriptions-item :label="$t('业绩类型')">{{ customer.isNew ? $t("新客户") : $t("老客户") }} </el-descriptions-item>
<el-descriptions-item :label="$t('资源类型')"> <el-descriptions-item :label="$t('资源类型')">
<dict-tag :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" :value="customer.resourceType"></dict-tag> <dict-tag :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" :value="customer.resourceType"></dict-tag>
</el-descriptions-item> </el-descriptions-item>
...@@ -70,7 +71,6 @@ ...@@ -70,7 +71,6 @@
<el-descriptions-item :label="$t('创建时间')">{{ parseTime(customer.createTime) }}</el-descriptions-item> <el-descriptions-item :label="$t('创建时间')">{{ parseTime(customer.createTime) }}</el-descriptions-item>
<el-descriptions-item :label="$t('最后更新人')">{{ customer.updaterName }}</el-descriptions-item> <el-descriptions-item :label="$t('最后更新人')">{{ customer.updaterName }}</el-descriptions-item>
<el-descriptions-item :label="$t('最后更新时间')">{{ customer.updateTime }}</el-descriptions-item> <el-descriptions-item :label="$t('最后更新时间')">{{ customer.updateTime }}</el-descriptions-item>
<el-descriptions-item :label="$t('业绩类型')">{{ customer.isNew ? $t("新客户") : $t("老客户") }} </el-descriptions-item>
</template> </template>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
...@@ -496,7 +496,13 @@ ...@@ -496,7 +496,13 @@
<el-descriptions-item :label="$t('业务国家')"> <el-descriptions-item :label="$t('业务国家')">
{{ isChinese ? customer.busiCountryNameZh : customer.busiCountryNameEn }} {{ isChinese ? customer.busiCountryNameZh : customer.busiCountryNameEn }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('主营类别')">{{ $l(customer, "productTypeName") }}</el-descriptions-item> <el-descriptions-item :label="$t('主营类别')">
<div>
<div v-for="(item, index) in productTypeName" :key="index">
<b>{{ $l(item, "title") }}:</b><span>{{ item.productList || "-" }}</span>
</div>
</div>
</el-descriptions-item>
<el-descriptions-item :label="$t('年度发货量')">{{ customer.weightYearly }}</el-descriptions-item> <el-descriptions-item :label="$t('年度发货量')">{{ customer.weightYearly }}</el-descriptions-item>
<el-descriptions-item :label="$t('主要竞争对手')">{{ customer.competitorNames }}</el-descriptions-item> <el-descriptions-item :label="$t('主要竞争对手')">{{ customer.competitorNames }}</el-descriptions-item>
<el-descriptions-item :label="$t('年度发货次数')">{{ customer.numYearly }}</el-descriptions-item> <el-descriptions-item :label="$t('年度发货次数')">{{ customer.numYearly }}</el-descriptions-item>
...@@ -671,21 +677,7 @@ ...@@ -671,21 +677,7 @@
</template> </template>
<script> <script>
import { import { getCustomer, getCustomerSelect, getBrankByCustomer, levelLogPage, customerCreditLogPage, infoListOrderPage, orderStatistics, creditLogCreate, creditScoreStatistic, infoListReceiptPage, memberUserList, deleteCustomer, infoListStatisticsOrder } from "@/api/ecw/customer"
getCustomer,
getCustomerSelect,
getBrankByCustomer,
levelLogPage,
customerCreditLogPage,
infoListOrderPage,
orderStatistics,
creditLogCreate,
creditScoreStatistic,
infoListReceiptPage,
memberUserList,
deleteCustomer,
infoListStatisticsOrder
} from "@/api/ecw/customer"
import { getOfferPage as infoListOfferPage } from "@/api/ecw/offer" import { getOfferPage as infoListOfferPage } from "@/api/ecw/offer"
import { DICT_TYPE, getDictDataLabel, getDictDatas2 } from "@/utils/dict" import { DICT_TYPE, getDictDataLabel, getDictDatas2 } from "@/utils/dict"
import { getProductTypeList } from "@/api/ecw/productType" import { getProductTypeList } from "@/api/ecw/productType"
...@@ -929,7 +921,8 @@ export default { ...@@ -929,7 +921,8 @@ export default {
remarks: undefined, remarks: undefined,
arrivalConfirm: undefined, arrivalConfirm: undefined,
weightUnit: undefined, weightUnit: undefined,
createTime: undefined createTime: undefined,
productTypeList: []
}, },
brandAuthorizationFrom: { brandAuthorizationFrom: {
pageNo: 1, pageNo: 1,
...@@ -993,6 +986,17 @@ export default { ...@@ -993,6 +986,17 @@ export default {
} }
}, },
computed: { computed: {
productTypeName() {
return this.customer.productTypeList.map((item) => {
return {
...item,
productList: this.customer.productList
.filter((i) => i.typeId === item.id)
.map((i) => this.$l(i, "title"))
.join("")
}
})
},
exportCityList() { exportCityList() {
return this.tradeCityList.filter((item) => item.type == 2) return this.tradeCityList.filter((item) => item.type == 2)
}, },
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<div class="title-font"> <div class="title-font">
<label>{{ $t("报价单所属") }}{{ list.relation ? (list.relation == 1 ? $t("发货人") : $t("收货人")) : $t("发货人") }}</label> <label>{{ $t("报价单所属") }}{{ list.relation ? (list.relation == 1 ? $t("发货人") : $t("收货人")) : $t("发货人") }}</label>
</div> </div>
<el-descriptions :column="3" border class="card" v-if="list.consignorId"> <el-descriptions :column="3" border class="card" v-if="list.consignorId" :labelStyle="{ width: '110px' }">
<el-descriptions-item :label="$t('发货人') + ':'"> <el-descriptions-item :label="$t('发货人') + ':'">
{{ consignorData.contactsName || $t("") }} {{ consignorData.contactsName || $t("") }}
</el-descriptions-item> </el-descriptions-item>
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions :column="3" border class="card" v-if="list.consigneeId"> <el-descriptions :column="3" border class="card" v-if="list.consigneeId" :labelStyle="{ width: '110px' }">
<el-descriptions-item :label="$t('收货人') + ':'"> <el-descriptions-item :label="$t('收货人') + ':'">
{{ consigneeData.contactsName || $t("") }} {{ consigneeData.contactsName || $t("") }}
</el-descriptions-item> </el-descriptions-item>
...@@ -60,50 +60,39 @@ ...@@ -60,50 +60,39 @@
{{ consigneeData.socialNumber ? "(" + consigneeData.socialNumber + ")" : "" }} {{ consigneeData.socialNumber ? "(" + consigneeData.socialNumber + ")" : "" }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions :column="4" class="card"> </div>
</el-card>
<el-card class="card">
<div slot="header" class="card-title">{{ $t("运输") }}</div>
<div style="overflow: auto">
<el-descriptions :column="5" border class="card" v-if="list.consignorId" :labelStyle="{ width: '110px' }">
<el-descriptions-item :label="$t('始发仓')">{{ $l(list.logisticsInfoDto, "startTitle") }}</el-descriptions-item>
<el-descriptions-item :label="$t('目的仓')"> {{ $l(list.logisticsInfoDto, "destCountryTitle") }} - {{ $l(list.logisticsInfoDto, "destCityTitle") }} - {{ $l(list.logisticsInfoDto, "destTitle") }} </el-descriptions-item>
<el-descriptions-item :label="$t('运输方式')"> <el-descriptions-item :label="$t('运输方式')">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="list.transportId" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="list.transportId" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('出货渠道')" v-if="[3, 4].indexOf(list.transportId) > -1"> <el-descriptions-item v-if="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, list.transportId).cssClass == 'channel'" :label="$t('出货渠道')">{{ list.channelName }}</el-descriptions-item>
{{ channelName }} <el-descriptions-item :label="$t('服务')">
</el-descriptions-item> <el-tag v-if="list.type && list.type.indexOf('1') > -1">
</el-descriptions> {{ $t("集运") }}
<el-descriptions :column="4" class="card"> </el-tag>
<el-descriptions-item :label="$t('始发城市')"> <el-tag v-if="list.type && list.type.indexOf('2') > -1">
{{ getCity(list.departureId) }} {{ $t("海外仓") }}
</el-descriptions-item> </el-tag>
<el-descriptions-item :label="$t('目的城市')">
{{ getCity(list.objectiveId) }}
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="4" class="card">
<el-descriptions-item :label="$t('线路')">
{{ getRouterNameById(list.lineId) }}
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="4" class="card">
<el-descriptions-item :label="$t('报价单状态')">
<dict-tag :type="DICT_TYPE.ECW_OFFER_STATUS" :value="list.status" />
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="4" class="card" v-if="list.status == 5">
<el-descriptions-item :label="$t('输单原因')">
{{ list.reason }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
</el-card> </el-card>
<el-card class="card"> <el-card class="card">
<div slot="header" class="card-title">{{ $t("商品信息") }}</div> <div slot="header" class="card-title">{{ $t("商品") }}</div>
<div style="overflow: auto"> <div style="overflow: auto">
<el-table v-loading="loading" border :data="list.offerProdRespVOList"> <el-table v-loading="loading" border show-summary :data="list.offerProdRespVOList">
<el-table-column :label="$t('序号')" width="60px" fixed> <el-table-column :label="$t('序号')" width="60px" fixed>
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.$index + 1 }} {{ scope.$index + 1 }}
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column :label="商品类型" align="center" prop="goodsType" /> -->
<el-table-column :label="$t('中文品名')" align="center" prop="prodTitleZh" /> <el-table-column :label="$t('中文品名')" align="center" prop="prodTitleZh" />
<el-table-column :label="$t('英文品名')" align="center" prop="prodTitleEn" /> <el-table-column :label="$t('英文品名')" align="center" prop="prodTitleEn" />
<el-table-column :label="$t('品牌')" width="100px"> <el-table-column :label="$t('品牌')" width="100px">
...@@ -146,36 +135,9 @@ ...@@ -146,36 +135,9 @@
</el-table> </el-table>
</div> </div>
</el-card> </el-card>
<el-card class="card">
<div slot="header" class="card-title">{{ $t("费用小计") }}</div>
<el-descriptions border class="card" :column="5">
<el-descriptions-item :label="$t('总件数') + ':'">
{{ list.estCostVO ? list.estCostVO.totalNum || "0" : 0 }}
</el-descriptions-item>
<el-descriptions-item :label="$t('总体积') + ':'">
{{ list.estCostVO ? list.estCostVO.totalVolume + "m³" || "0" : 0 }}
</el-descriptions-item>
<el-descriptions-item :label="$t('总重量') + ':'">
{{ list.estCostVO ? list.estCostVO.totalWeight + "kg" || "0" : 0 }}
</el-descriptions-item>
<el-descriptions-item :label="$t('总数量') + ':'">
{{ list.estCostVO ? list.estCostVO.totalQuantity || "0" : 0 }}
</el-descriptions-item>
<el-descriptions-item :label="$t('总货值(RMB)') + ':'">
{{ list.estCostVO ? list.estCostVO.totalWorth || "0" : 0 }}
</el-descriptions-item>
<!-- <el-descriptions-item :label="报价费:">
{{list.estCostVO?list.estCostVO.insuranceFee||'0':0}}
</el-descriptions-item> -->
</el-descriptions>
<!-- <el-descriptions border class="card">
<el-descriptions-item :label="佣金类型" :span="2" class="card">
<dict-selector :type="DICT_TYPE.COMMISSION_TYPE" form-type="radio" fomtter="number" :value="list.commissionType" defaultable />
</el-descriptions-item>
</el-descriptions> -->
</el-card>
<el-card class="mt-10"> <el-card class="mt-10">
<div class="card-title" slot="header">{{ $t("预计费用") }}</div> <div class="card-title" slot="header">{{ $t("费用") }}</div>
<el-descriptions :column="5" border> <el-descriptions :column="5" border>
<el-descriptions-item :label="$t('保价费')"> {{ list.estCostVO ? list.estCostVO.insuranceFee : 0 }} {{ selectedRouter ? currentcyMap[selectedRouter.currencyUnit || 1] : "" }} </el-descriptions-item> <el-descriptions-item :label="$t('保价费')"> {{ list.estCostVO ? list.estCostVO.insuranceFee : 0 }} {{ selectedRouter ? currentcyMap[selectedRouter.currencyUnit || 1] : "" }} </el-descriptions-item>
...@@ -356,7 +318,7 @@ ...@@ -356,7 +318,7 @@
</template> </template>
<script> <script>
import { DICT_TYPE, getDictDatas } from "@/utils/dict" import { DICT_TYPE, getDictDatas, getDictData } from "@/utils/dict"
import { getOffer, deleteOffer } from "@/api/ecw/offer" import { getOffer, deleteOffer } from "@/api/ecw/offer"
import { getProductAttrList } from "@/api/ecw/productAttr" import { getProductAttrList } from "@/api/ecw/productAttr"
import { getCustomerList, getCustomer } from "@/api/ecw/customer" import { getCustomerList, getCustomer } from "@/api/ecw/customer"
...@@ -408,6 +370,9 @@ export default { ...@@ -408,6 +370,9 @@ export default {
} }
}, },
computed: { computed: {
getDictData() {
return (type, value) => getDictData(type, value) || {}
},
// 根据id获取商品名称(显示优惠列表的时候用) // 根据id获取商品名称(显示优惠列表的时候用)
getProductName() { getProductName() {
return (prodId) => { return (prodId) => {
......
...@@ -52,7 +52,6 @@ ...@@ -52,7 +52,6 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('运输方式')" prop="transportId" v-show="showSearch"> <el-form-item :label="$t('运输方式')" prop="transportId" v-show="showSearch">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" multiple formatter="number" clearable @change="handleQuery" /> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" multiple formatter="number" clearable @change="handleQuery" />
</el-form-item> </el-form-item>
...@@ -193,7 +192,7 @@ ...@@ -193,7 +192,7 @@
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" /> <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" />
<CustomerFollow ref="customerFollow" @refresh="handleQuery" v-if="customerFollowVisible" :customer-id="curData.relationId" :customerService="curData.salesmanId" :customerNumber="curData.customerNumber" :offerId="curData.offerId" /> <CustomerFollow ref="customerFollow" @refresh="handleQuery" v-if="customerFollowVisible" @close="customerFollowVisible = false" :customer-id="curData.relationId" :customerService="curData.salesmanId" :customerNumber="curData.customerNumber" :offerId="curData.offerId" />
</div> </div>
</template> </template>
......
This diff is collapsed.
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