Commit fae04a69 authored by yujinyao's avatar yujinyao

客户BUG

parent eb9e7f83
...@@ -92,3 +92,10 @@ export function editCustomerFollow(data) { ...@@ -92,3 +92,10 @@ export function editCustomerFollow(data) {
}) })
} }
export function exportCustomerFollow() {
return request({
url: '/customer/followup/export-excel',
method: 'get'
})
}
...@@ -4708,5 +4708,6 @@ ...@@ -4708,5 +4708,6 @@
"增加计划": "add plan", "增加计划": "add plan",
"提货状态": "pickup status", "提货状态": "pickup status",
"未提货": "not pickup", "未提货": "not pickup",
"部分提货": "portion pickup" "部分提货": "portion pickup",
"是否确认导出客户跟进记录数据项?": "Are you sure to export all customer follow-up record data items?"
} }
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
--> -->
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('跟进时间')" required> <el-form-item :label="$t('跟进时间')" required>
<el-date-picker v-model="form.followTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('请选择')"></el-date-picker> <el-date-picker v-model="form.followTime" type="datetime" :placeholder="$t('请选择')"></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
...@@ -94,13 +94,13 @@ ...@@ -94,13 +94,13 @@
</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 v-model="form.nextTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('请选择')" :picker-options="pickerOptions"> <el-date-picker v-model="form.nextTime" type="datetime" :placeholder="$t('请选择')" :picker-options="pickerOptions">
</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="founder"> <el-form-item :label="$t('创建人')" prop="founder">
<el-select v-model="form.creatorName" disabled> <el-select v-model="form.creatorName" disabled :placeholder="$t('请选择')">
<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-option>
</el-select> </el-select>
...@@ -108,7 +108,7 @@ ...@@ -108,7 +108,7 @@
</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 v-model="form.createTime" type="datetime" value-format="timestamp" disabled :placeholder="$t('选择创建时间')"> <el-date-picker v-model="form.createTime" type="datetime" disabled :placeholder="$t('请选择')">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -122,7 +122,7 @@ ...@@ -122,7 +122,7 @@
</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 v-model="form.updateTime" type="datetime" value-format="timestamp" disabled> <el-date-picker v-model="form.updateTime" type="datetime" disabled :placeholder="$t('请选择')">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -167,6 +167,7 @@ import { ...@@ -167,6 +167,7 @@ import {
parseTime parseTime
} from '@/utils/ruoyi' } from '@/utils/ruoyi'
import FileUpload from "@/components/FileUpload"; import FileUpload from "@/components/FileUpload";
import {formatDate} from "@/utils/index";
export default { export default {
/** /**
* 客户跟进 * 客户跟进
...@@ -340,9 +341,11 @@ export default { ...@@ -340,9 +341,11 @@ export default {
let func = this.form.id ? editCustomerFollow : addCustomerFollow let func = this.form.id ? editCustomerFollow : addCustomerFollow
func({ func({
...this.form, ...this.form,
followTime: this.form.followTime ? formatDate(this.form.followTime) : undefined,
nextTime: this.form.nextTime ? formatDate(this.form.nextTime) : undefined,
status status
}).then(r => { }).then(r => {
this.$message.info(this.$t("操作成功")) this.$message.success(this.$t("操作成功"))
this.$emit('refresh') this.$emit('refresh')
this.customerFollowClose() this.customerFollowClose()
}) })
......
...@@ -21,30 +21,40 @@ ...@@ -21,30 +21,40 @@
<el-radio v-model="offerId" :label="row.offerId">&nbsp;</el-radio> <el-radio v-model="offerId" :label="row.offerId">&nbsp;</el-radio>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('报价单号')" align="left" prop="number" width="200px"> <el-table-column :label="$t('报价单号')" min-width="160px">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-link type="primary" @click.native="$router.push('/offer/detail?offerId=' + row.offerId)">{{row.number}}</el-link> <el-link type="primary" @click.native="$router.push('/offer/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('销售阶段')" min-width="120">
<el-table-column :label="$t('客户名称')" align="left" prop="relationName" />
<el-table-column :label="$t('目的地')" align="center" prop="objectiveName" />
<el-table-column :label="$t('销售阶段')" align="left" width="180">
<template slot-scope="{row}"> <template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.ECW_OFFER_STATUS" :value="row.status" /> <dict-tag :type="DICT_TYPE.ECW_OFFER_STATUS" :value="row.status" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('预计结束时间')" align="left"> <el-table-column :label="$t('订单编号')" min-width="150px">
<template slot-scope="{row}">
<el-link type="primary" @click.native="$router.push('/order/detail?orderId=' + row.orderId)">{{row.orderNo}}</el-link>
</template>
</el-table-column>
<el-table-column :label="$t('客户编号')" align="center" min-width="100">
</el-table-column>
<el-table-column :label="$t('客户名称')" align="center" prop="relationName" min-width="100" />
<el-table-column :label="$t('联系方式')">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.stopTime, "{y}-{m}-{d}") }}</span> +{{ scope.row.relationAreaCode }}{{ scope.row.relationPhone }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('运输方式')" align="left"> <el-table-column :label="$t('运输方式')">
<template slot-scope="scope" > <template slot-scope="scope" >
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('预计销售额')" align="left" prop="estCost"> <el-table-column :label="$t('渠道')" align="center" min-width="120">
</el-table-column>
<el-table-column :label="$t('始发地')" align="center" min-width="120">
</el-table-column>
<el-table-column :label="$t('目的地')" align="center" prop="objectiveName" min-width="120" />
<el-table-column :label="$t('预计销售额')" min-width="160">
<template slot-scope="{row}"> <template slot-scope="{row}">
<div class="" v-for="(item, feeIndex) in row.estCostVO.feeDtoList" :key="feeIndex"> <div class="" v-for="(item, feeIndex) in row.estCostVO.feeDtoList" :key="feeIndex">
<dict-tag :type="DICT_TYPE.ECW_COST_FEE_TYPE" :value="item.feeType" /> <dict-tag :type="DICT_TYPE.ECW_COST_FEE_TYPE" :value="item.feeType" />
...@@ -52,9 +62,8 @@ ...@@ -52,9 +62,8 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('客户经理')" align="left" prop="creatorName"> <el-table-column :label="$t('客户经理')" prop="creatorName" align="center" min-width="100" />
</el-table-column> <el-table-column :label="$t('创建时间')" align="center" min-width="160">
<el-table-column :label="$t('创建时间')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ parseTime(scope.row.createTime) }} {{ parseTime(scope.row.createTime) }}
</template> </template>
......
...@@ -275,7 +275,6 @@ ...@@ -275,7 +275,6 @@
<el-date-picker <el-date-picker
v-model="form.customerServiceConfirmedTime" v-model="form.customerServiceConfirmedTime"
type="datetime" type="datetime"
value-format="timestamp"
disabled disabled
:placeholder="$t('请选择')" :placeholder="$t('请选择')"
> >
...@@ -1693,7 +1692,7 @@ export default { ...@@ -1693,7 +1692,7 @@ export default {
}; };
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) => {
......
...@@ -637,6 +637,7 @@ ...@@ -637,6 +637,7 @@
:data="list" :data="list"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column type="selection" width="55" fixed></el-table-column>
<el-table-column :label="$t('客户编号')" align="center" fixed> <el-table-column :label="$t('客户编号')" align="center" fixed>
<template v-slot="{ row }"> <template v-slot="{ row }">
<router-link :to="`/customer/query/${row.id}`" class="link-type"> <router-link :to="`/customer/query/${row.id}`" class="link-type">
...@@ -1726,6 +1727,11 @@ export default { ...@@ -1726,6 +1727,11 @@ export default {
this.deptList = response.data this.deptList = response.data
}) })
}, },
updated() {
this.$nextTick(() => {
this.$refs.multipleTable.doLayout()
})
},
activated() { activated() {
this.getList(); this.getList();
}, },
......
...@@ -301,9 +301,12 @@ ...@@ -301,9 +301,12 @@
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="number"
:label="$t('报价单号')" :label="$t('报价单号')"
width="160px"
> >
<template slot-scope="{row}">
<el-link type="primary" @click.native="$router.push('/offer/detail?offerId=' + row.offerId)">{{row.number}}</el-link>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="orderNo" prop="orderNo"
...@@ -353,6 +356,16 @@ ...@@ -353,6 +356,16 @@
{{STATUS[row.status]}} {{STATUS[row.status]}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column
:label="$t('预计销售额')"
>
<template slot-scope="{row}" v-if="row.estCostVO">
<div class="" v-for="(item, feeIndex) in row.estCostVO.feeDtoList" :key="feeIndex">
<dict-tag :type="DICT_TYPE.ECW_COST_FEE_TYPE" :value="item.feeType" />
{{item.amount}} {{currencyMap[item.currencyId]}}
</div>
</template>
</el-table-column>
<el-table-column <el-table-column
prop="stopTime" prop="stopTime"
:label="$t('预计结束时间')" :label="$t('预计结束时间')"
...@@ -452,16 +465,19 @@ ...@@ -452,16 +465,19 @@
<el-button type="primary" @click="()=>{ <el-button type="primary" @click="()=>{
followFrom = { pageNo:1,pageSize:10}; getCustomerFollowList(); followFrom = { pageNo:1,pageSize:10}; getCustomerFollowList();
}">{{$t('重置')}}</el-button> }">{{$t('重置')}}</el-button>
<el-button type="success" @click="customerFollowFn('follow')">{{$t('新增')}}</el-button> <el-button type="success" @click="customerFollowFn('follow')" v-hasPermi="['ecw:customer:follow-create']">{{$t('新增')}}</el-button>
<el-button type="warning" @click="handleExport" v-hasPermi="['ecw:customer:follow-export']">{{$t('导出')}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<el-table :data="customerFollowList" style="width: 100%"> <el-table :data="customerFollowList" style="width: 100%">
<el-table-column prop="number" :label="$t('编号')"> </el-table-column> <el-table-column prop="number" :label="$t('编号')"> </el-table-column>
<el-table-column prop="followType" :label="$t('跟进类型')" :formatter="(row, column, cellValue) => getDictDataLabel(DICT_TYPE.CUSTOMER_FOLLOWUP_TYPE, cellValue)"></el-table-column> <el-table-column prop="followType" :label="$t('跟进类型')" :formatter="(row, column, cellValue) => getDictDataLabel(DICT_TYPE.CUSTOMER_FOLLOWUP_TYPE, cellValue)"></el-table-column>
<el-table-column prop="offerId" :label="$t('报价单号')"></el-table-column> <el-table-column prop="offerNumber" :label="$t('报价单号')"></el-table-column>
<el-table-column prop="followTime" :label="$t('跟进时间')" :formatter="(row, column, cellValue) => parseTime(cellValue)"></el-table-column> <el-table-column prop="followTime" :label="$t('跟进时间')" :formatter="(row, column, cellValue) => parseTime(cellValue)"></el-table-column>
<el-table-column prop="customerNumber" :label="$t('客户编号')"></el-table-column>
<el-table-column prop="contactName" :label="$t('联系人')"></el-table-column> <el-table-column prop="contactName" :label="$t('联系人')"></el-table-column>
<el-table-column :label="$t('联系方式')"></el-table-column>
<el-table-column prop="followUserName" :label="$t('客户经理')"></el-table-column> <el-table-column prop="followUserName" :label="$t('客户经理')"></el-table-column>
<el-table-column prop="followMethod" :label="$t('跟进方式')" :formatter="(row, column, cellValue) => getDictDataLabel(DICT_TYPE.CUSTOMER_FOLLOWUP_METHOD, cellValue)"> <el-table-column prop="followMethod" :label="$t('跟进方式')" :formatter="(row, column, cellValue) => getDictDataLabel(DICT_TYPE.CUSTOMER_FOLLOWUP_METHOD, cellValue)">
</el-table-column> </el-table-column>
...@@ -537,6 +553,53 @@ ...@@ -537,6 +553,53 @@
<pagination v-show="infoListReceiptList.length" :total="infoListReceiptTotal" :page.sync="infoListReceiptFrom.pageNo" :limit.sync="infoListReceiptFrom.pageSize" <pagination v-show="infoListReceiptList.length" :total="infoListReceiptTotal" :page.sync="infoListReceiptFrom.pageNo" :limit.sync="infoListReceiptFrom.pageSize"
@pagination="infoListReceiptFn"/> @pagination="infoListReceiptFn"/>
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="empower" :label="$t('品牌授权')">
<el-table border style="width:100%" :data="brandAuthorizationList">
<el-table-column type="index" :prop="$t('序号')"></el-table-column>
<el-table-column :label="$t('中文标题')" prop="titleZh" ></el-table-column>
<el-table-column prop="titleEn" :label="$t('英文标题')"></el-table-column>
<el-table-column :label="$t('有无备案')">
<template v-slot="{row}">
<dict-tag :type="DICT_TYPE.BRAND_REG_TYPE" :value="row.filing" />
</template>
</el-table-column>
<el-table-column :label="$t('授权开始')">
<template v-slot="{row}">
{{parseTime(row.startTime)}}
</template>
</el-table-column>
<el-table-column :label="$t('授权结束')">
<template v-slot="{row}">
{{parseTime(row.endTime)}}
</template>
</el-table-column>
<el-table-column :label="$t('授权证明')">
<template v-slot="{row}">
<div v-if="!!row.fileUrl && row.fileUrl.length > 0">
<span v-for="(item, index) in (row.fileUrl||'').split(',')">
<a :href="item" target="_blank">{{$t('附件')}}{{ index + 1 }}</a>,
</span>
</div>
</template>
</el-table-column>
<el-table-column
prop="feeScale"
:formatter="(row) => getDictDataLabel(DICT_TYPE.BRAND_CUSTOMER_CHARGING_MODEL, row.feeScale)"
:label="$t('收费标准')">
</el-table-column>
<el-table-column
prop="createUsername"
:label="$t('添加人')">
</el-table-column>
<el-table-column :label="$t('创建时间')">
<template v-slot="{row}">
{{parseTime(row.createTime)}}
</template>
</el-table-column>
</el-table>
<pagination v-show="brandAuthorizationTotal.length" :total="brandAuthorizationTotal" :page.sync="brandAuthorizationFrom.pageNo" :limit.sync="brandAuthorizationFrom.pageSize"
@pagination="getBrankByCustomerList"/>
</el-tab-pane>
<el-tab-pane name="deliver" :label="$t('发货评估')"> <el-tab-pane name="deliver" :label="$t('发货评估')">
<el-descriptions :column="2"> <el-descriptions :column="2">
<el-descriptions-item :label="$t('客户类别')"> <el-descriptions-item :label="$t('客户类别')">
...@@ -604,54 +667,6 @@ ...@@ -604,54 +667,6 @@
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="empower" :label="$t('品牌授权')">
<el-table border style="width:100%" :data="brandAuthorizationList">
<el-table-column type="index" :prop="$t('序号')"></el-table-column>
<el-table-column :label="$t('中文标题')" prop="titleZh" ></el-table-column>
<el-table-column prop="titleEn" :label="$t('英文标题')"></el-table-column>
<el-table-column :label="$t('有无备案')">
<template v-slot="{row}">
<dict-tag :type="DICT_TYPE.BRAND_REG_TYPE" :value="row.filing" />
</template>
</el-table-column>
<el-table-column :label="$t('授权开始')">
<template v-slot="{row}">
{{parseTime(row.startTime)}}
</template>
</el-table-column>
<el-table-column :label="$t('授权结束')">
<template v-slot="{row}">
{{parseTime(row.endTime)}}
</template>
</el-table-column>
<el-table-column :label="$t('授权证明')">
<template v-slot="{row}">
<div v-if="!!row.fileUrl && row.fileUrl.length > 0">
<span v-for="(item, index) in (row.fileUrl||'').split(',')">
<a :href="item" target="_blank">{{$t('附件')}}{{ index + 1 }}</a>,
</span>
</div>
</template>
</el-table-column>
<el-table-column
prop="feeScale"
:formatter="(row) => getDictDataLabel(DICT_TYPE.BRAND_CUSTOMER_CHARGING_MODEL, row.feeScale)"
:label="$t('收费标准')">
</el-table-column>
<el-table-column
prop="createUsername"
:label="$t('添加人')">
</el-table-column>
<el-table-column :label="$t('创建时间')">
<template v-slot="{row}">
{{parseTime(row.createTime)}}
</template>
</el-table-column>
</el-table>
<pagination v-show="brandAuthorizationTotal.length" :total="brandAuthorizationTotal" :page.sync="brandAuthorizationFrom.pageNo" :limit.sync="brandAuthorizationFrom.pageSize"
@pagination="getBrankByCustomerList"/>
</el-tab-pane>
<el-tab-pane name="credit" :label="$t('信用日志')"> <el-tab-pane name="credit" :label="$t('信用日志')">
<el-card class="box-card"> <el-card class="box-card">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
...@@ -834,13 +849,12 @@ import { ...@@ -834,13 +849,12 @@ import {
levelLogPage, levelLogPage,
customerCreditLogPage, customerCreditLogPage,
infoListOrderPage, infoListOrderPage,
infoListOfferPage,
orderStatistics, orderStatistics,
creditLogCreate, creditLogCreate,
creditScoreStatistic, creditScoreStatistic,
infoListReceiptPage, memberUserList, deleteCustomer, infoListReceiptPage, memberUserList, deleteCustomer,
} from '@/api/ecw/customer' } from '@/api/ecw/customer'
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'
import { getNodeList } from '@/api/ecw/node' import { getNodeList } from '@/api/ecw/node'
...@@ -861,7 +875,8 @@ import { getListTree } from "@/api/ecw/region"; ...@@ -861,7 +875,8 @@ import { getListTree } from "@/api/ecw/region";
import { getWarehouseList } from "@/api/ecw/warehouse"; import { getWarehouseList } from "@/api/ecw/warehouse";
import { deleteOffer, cancel, recovery } from "@/api/ecw/offer"; import { deleteOffer, cancel, recovery } from "@/api/ecw/offer";
import { import {
getCustomerFollowList getCustomerFollowList,
exportCustomerFollow
} from "@/api/ecw/customerFollow" } from "@/api/ecw/customerFollow"
export default { export default {
name: 'query', name: 'query',
...@@ -1143,7 +1158,8 @@ export default { ...@@ -1143,7 +1158,8 @@ export default {
followTime: [], followTime: [],
nextTime: [], nextTime: [],
customerFollowTotal: 0, customerFollowTotal: 0,
customerFollowList: [] customerFollowList: [],
currencyList: [],
} }
}, },
computed: { computed: {
...@@ -1176,7 +1192,14 @@ export default { ...@@ -1176,7 +1192,14 @@ export default {
else return (this.getDictDatas(DICT_TYPE.CUSTOMER_CREDIT_RULE_TYPE).find(i => i.value === val)||{}).labelEn else return (this.getDictDatas(DICT_TYPE.CUSTOMER_CREDIT_RULE_TYPE).find(i => i.value === val)||{}).labelEn
} }
} }
} },
currencyMap(){
let map = {}
this.currencyList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
},
}, },
filters: { filters: {
deliveryRate(pickNum, sumNum) { deliveryRate(pickNum, sumNum) {
...@@ -1278,15 +1301,15 @@ export default { ...@@ -1278,15 +1301,15 @@ export default {
let queryParams = {} let queryParams = {}
//目的国 //目的国
if (this.destCountryId != null && this.destCountryId != "") { if (this.destCountryId != null && this.destCountryId != "") {
queryParams.destCountryId = this.destCountryId; queryParams.destCountryIds = this.destCountryId;
} }
//目的城市 //目的城市
if (this.objectiveId != null && this.objectiveId != "") { if (this.objectiveId != null && this.objectiveId != "") {
queryParams.objectiveId = this.objectiveId; queryParams.destCountryIds = this.objectiveId;
} }
//目的仓 //目的仓
if (this.destWarehouseId != null && this.destWarehouseId != "") { if (this.destWarehouseId != null && this.destWarehouseId != "") {
queryParams.destWarehouseId = this.destWarehouseId; queryParams.destWarehouseIds = this.destWarehouseId;
} }
infoListOfferPage({...this.infoListOfferFrom,customerId:this.id,...queryParams}).then(r => { infoListOfferPage({...this.infoListOfferFrom,customerId:this.id,...queryParams}).then(r => {
this.infoListOfferList = r.data.list; this.infoListOfferList = r.data.list;
...@@ -1420,7 +1443,6 @@ export default { ...@@ -1420,7 +1443,6 @@ export default {
} }
return warehouseName return warehouseName
}, },
},
cancel(id){ cancel(id){
this.doAction(this.$t('确定要取消此报价单么?'), cancel, id); this.doAction(this.$t('确定要取消此报价单么?'), cancel, id);
}, },
...@@ -1438,6 +1460,18 @@ export default { ...@@ -1438,6 +1460,18 @@ export default {
this.$message.success('操作成功') this.$message.success('操作成功')
this.handleQuery() this.handleQuery()
}) })
},
/** 导出按钮操作 */
handleExport() {
// 执行导出
this.$modal.confirm(this.$t('是否确认导出客户跟进记录数据项?')).then(() => {
exportCustomerFollow().then((r) => {
this.$message.success(
this.$t("已加入导出队列,请稍后在下载日志中下载")
);
});
})
},
} }
} }
</script> </script>
...@@ -397,7 +397,8 @@ ...@@ -397,7 +397,8 @@
<!-- 列表 --> <!-- 列表 -->
<el-table ref="multipleTable" v-loading="loading" :data="list" @selection-change="handleSelectionChange"> <el-table ref="multipleTable" v-loading="loading" :data="list" @selection-change="handleSelectionChange">
<el-table-column :label="$t('客户编号')" align="center" prop="number" > <el-table-column type="selection" width="55" fixed></el-table-column>
<el-table-column :label="$t('客户编号')" align="center" prop="number">
<template v-slot="{row}"> <template v-slot="{row}">
{{row.number}} {{row.number}}
</template> </template>
...@@ -725,6 +726,11 @@ export default { ...@@ -725,6 +726,11 @@ export default {
this.deptList = response.data this.deptList = response.data
}) })
}, },
updated() {
this.$nextTick(() => {
this.$refs.multipleTable.doLayout()
})
},
methods: { methods: {
countryFormatter(row, column, cellValue) { countryFormatter(row, column, cellValue) {
const country = this.countryList.find((e) => e.id === cellValue) const country = this.countryList.find((e) => e.id === cellValue)
......
...@@ -47,6 +47,7 @@ ...@@ -47,6 +47,7 @@
<el-form-item :label="$t('客户类别')" prop="level"> <el-form-item :label="$t('客户类别')" prop="level">
<dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" multiple v-model="queryParams.type" @change="handleQuery"></dict-selector> <dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" multiple v-model="queryParams.type" @change="handleQuery"></dict-selector>
</el-form-item> </el-form-item>
<!--
<el-form-item :label="$t('客户经理')" prop="customerService"> <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select <el-select
clearable clearable
...@@ -63,6 +64,7 @@ ...@@ -63,6 +64,7 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
-->
<el-form-item :label="$t('客户来源')" prop="source"> <el-form-item :label="$t('客户来源')" prop="source">
<el-select clearable v-model="queryParams.source" multiple :placeholder="$t('请选择客户来源')" size="small" @change="handleQuery"> <el-select clearable v-model="queryParams.source" multiple :placeholder="$t('请选择客户来源')" size="small" @change="handleQuery">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
...@@ -437,6 +439,7 @@ ...@@ -437,6 +439,7 @@
:data="list" :data="list"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column type="selection" width="55" fixed></el-table-column>
<el-table-column :label="$t('客户编号')" align="center" fixed> <el-table-column :label="$t('客户编号')" align="center" fixed>
<template v-slot="{ row }"> <template v-slot="{ row }">
<router-link :to="`/customer/query/${row.id}`" class="link-type"> <router-link :to="`/customer/query/${row.id}`" class="link-type">
...@@ -963,6 +966,11 @@ export default { ...@@ -963,6 +966,11 @@ export default {
this.competitorList = r.data; this.competitorList = r.data;
}) })
}, },
updated() {
this.$nextTick(() => {
this.$refs.multipleTable.doLayout()
})
},
methods: { methods: {
handleSelectionChange(val) { handleSelectionChange(val) {
this.selectCustomerList = val.map((i) => i.id); this.selectCustomerList = val.map((i) => i.id);
......
...@@ -514,10 +514,12 @@ ...@@ -514,10 +514,12 @@
<!-- 列表 --> <!-- 列表 -->
<el-table <el-table
ref="multipleTable"
v-loading="loading" v-loading="loading"
:data="list" :data="list"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column type="selection" width="55" fixed></el-table-column>
<el-table-column :label="$t('客户编号')" align="center" fixed> <el-table-column :label="$t('客户编号')" align="center" fixed>
<template v-slot="{ row }"> <template v-slot="{ row }">
<router-link :to="`/customer/query/${row.id}`" class="link-type"> <router-link :to="`/customer/query/${row.id}`" class="link-type">
...@@ -944,6 +946,11 @@ export default { ...@@ -944,6 +946,11 @@ export default {
this.deptList = response.data this.deptList = response.data
}) })
}, },
updated() {
this.$nextTick(() => {
this.$refs.multipleTable.doLayout()
})
},
computed: { computed: {
isChinese() { isChinese() {
return this.$i18n.locale === "zh_CN"; return this.$i18n.locale === "zh_CN";
......
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