Commit 9482381f authored by zs嵩's avatar zs嵩

报价单,客户等相关优化 bug处理

parent bed4bb1d
......@@ -96,6 +96,7 @@ import '@/icons'
import axios from 'axios'
Vue.prototype.$axios = axios
import '@/styles/index.scss'
import '@/styles/custom.scss'
/**
* If you don't want to use mock-server
......
.search-z {
.el-form-item--small.el-form-item {
width: 360px;
}
}
.search-time {
.el-form-item--small.el-form-item {
width: 520px;
}
}
.flex-c-c {
display: flex;
justify-content: center;
align-items: center;
}
......@@ -109,7 +109,7 @@ textarea {
font-size: 12px;
&:hover {
background: rgba(210, 23, 23, 0.5)
background: rgba(210, 23, 23, 0.5);
}
}
......@@ -144,7 +144,7 @@ textarea {
}
.el-icon-plus {
color: #409EFF;
color: #409eff;
}
.el-icon-delete {
......@@ -152,10 +152,6 @@ textarea {
}
}
.el-scrollbar__view {
/*overflow-x: hidden;*/
}
.el-rate {
display: inline-block;
vertical-align: text-top;
......@@ -164,15 +160,3 @@ textarea {
.el-upload__tip {
line-height: 1.2;
}
.search-z {
.el-form-item--small.el-form-item {
width: 360px;
}
}
.search-time {
.el-form-item--small.el-form-item {
width: 520px;
}
}
......@@ -146,6 +146,7 @@
</div>
</el-dialog>
<choose-contact-dialog v-if="ChooseContactDialog" :type="2" @choose="changeAllContactUser" @close="ChooseContactDialog = false" />
<CustomerFollowSelectOffer v-if="CustomerFollowSelectOffer" :customer-id="customerId" ref="customerFollowSelectOffer" @select="selectOffer" @close="CustomerFollowSelectOffer = false" />
</div>
</template>
<style lang="scss" scoped>
......@@ -172,6 +173,7 @@ import { parseTime } from "@/utils/ruoyi"
import FileUpload from "@/components/FileUpload/fileUpload"
import { formatDate } from "@/utils/index"
import ChooseContactDialog from "@/components/ChooseContactDialog"
import CustomerFollowSelectOffer from "./customerFollowSelectOffer"
export default {
/**
* 客户跟进
......@@ -188,10 +190,12 @@ export default {
},
components: {
ChooseContactDialog,
CustomerFollowSelectOffer,
FileUpload
},
data() {
return {
CustomerFollowSelectOffer: false,
ChooseContactDialog: false,
fileType: ["doc", "xls", "ppt", "txt", "pdf", "png", "jpg", "jpeg"],
DICT_TYPE,
......@@ -242,6 +246,9 @@ export default {
})
},
methods: {
selectOffer(offerId) {
this.form.offerId = offerId
},
init() {
if (this.form.customerId) {
getCustomerContactsListByCustomer({
......@@ -305,7 +312,7 @@ export default {
handleFollowType(val) {
console.log(val)
if (val == "2") {
this.$refs["customerFollowSelectOffer"].offerDialogVisible = true
this.CustomerFollowSelectOffer = true
} else {
this.form.offerId = undefined
}
......@@ -326,7 +333,7 @@ export default {
nextPlan: undefined,
nextTime: undefined,
number: undefined,
offerId: undefined,
offerId: this.offerId,
parentId: undefined,
parentNumber: undefined,
purpose: undefined,
......
<template>
<el-dialog append-to-body :title="$t('报价单')" :visible.sync="offerDialogVisible" :close-on-click-modal="false" width="80%">
<el-dialog append-to-body :title="$t('报价单')" :visible.sync="offerDialogVisible" :close-on-click-modal="false" width="80%" @close="$emit('close')">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="100px">
<el-form-item :label="$t('编号')" prop="searchNumber">
<el-input v-model="queryParams.searchNumber" :placeholder="$t('请输入报价单号、订单号')" clearable @keyup.enter.native="handleQuery"/>
<el-input v-model="queryParams.searchNumber" :placeholder="$t('请输入报价单号、订单号')" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item :label="$t('客户')" prop="searchCustomer">
<el-input v-model="queryParams.searchCustomer" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery"/>
<el-input v-model="queryParams.searchCustomer" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item :label="$t('客户经理')" prop="followUpSalesmanId">
<user-selector v-model="queryParams.followUpSalesmanId" clearable />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{ $t("搜索") }}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{ $t("重置") }}</el-button>
</el-form-item>
</el-form>
<el-table :data="offerList" border size="mini">
<el-table-column align="center" width="80">
<template slot-scope="{row}">
<template slot-scope="{ row }">
<el-radio v-model="offerId" :label="row.offerId">&nbsp;</el-radio>
</template>
</el-table-column>
<el-table-column :label="$t('报价单号')" min-width="160px">
<template slot-scope="{row}">
<el-link type="primary" @click.native="$router.push('/offer/detail?offerId=' + row.offerId)">{{row.number}}</el-link>
<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 :label="$t('销售阶段')" min-width="120">
<template slot-scope="{row}">
<template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.ECW_OFFER_STATUS" :value="row.status" />
</template>
</el-table-column>
<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 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">
<template slot-scope="{row}">
<el-link type="primary" @click.native="$router.push('/customer/query/' + row.relationId)">{{row.customerNumber}}</el-link>
<template slot-scope="{ row }">
<el-link type="primary" @click.native="$router.push('/customer/query/' + row.relationId)">{{ row.customerNumber }}</el-link>
</template>
</el-table-column>
<el-table-column :label="$t('客户名称')" align="center" prop="relationName" min-width="100" />
<el-table-column :label="$t('联系方式')">
<template slot-scope="scope">
+{{ scope.row.relationAreaCode }}{{ scope.row.relationPhone }}
</template>
<template slot-scope="scope"> +{{ scope.row.relationAreaCode }}{{ scope.row.relationPhone }} </template>
</el-table-column>
<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" />
</template>
</el-table-column>
<el-table-column :label="$t('渠道')" align="center" min-width="120" prop="channelName">
</el-table-column>
<el-table-column :label="$t('始发地')" align="center" min-width="120" prop="departureName">
</el-table-column>
<el-table-column :label="$t('渠道')" align="center" min-width="120" prop="channelName"> </el-table-column>
<el-table-column :label="$t('始发地')" align="center" min-width="120" prop="departureName"> </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">
<dict-tag :type="DICT_TYPE.ECW_COST_FEE_TYPE" :value="item.feeType" />
{{item.amount}} {{currencyMap[item.currencyId]}}
{{ item.amount }} {{ currencyMap[item.currencyId] }}
</div>
</template>
</el-table-column>
......@@ -73,18 +69,17 @@
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination v-show="offerTotal > 0" :total="offerTotal" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getOfferList"/>
<pagination v-show="offerTotal > 0" :total="offerTotal" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getOfferList" />
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="confirm">{{$t('确 定')}}</el-button>
<el-button type="primary" @click="confirm">{{ $t("确 定") }}</el-button>
</div>
</el-dialog>
</template>
<script>
import { getCurrencyList } from '@/api/ecw/currency';
import { getCurrencyList } from "@/api/ecw/currency"
import { getOfferPage } from "@/api/ecw/offer"
import UserSelector from '@/components/UserSelector'
import UserSelector from "@/components/UserSelector"
export default {
name: "CustomerFollowSelectOffer",
......@@ -104,35 +99,36 @@ export default {
},
offerList: [],
offerTotal: 0,
currencyList: [],
currencyList: []
}
},
created() {
getCurrencyList().then(res => {
getCurrencyList().then((res) => {
this.currencyList = res.data
})
this.getOfferList()
this.offerDialogVisible = true
},
computed:{
currencyMap(){
computed: {
currencyMap() {
let map = {}
this.currencyList.forEach(item => {
map[item.id] = this.$l(item, 'title')
this.currencyList.forEach((item) => {
map[item.id] = this.$l(item, "title")
})
return map
},
exportCityList() {
return this.tradeCityList.filter(item => item.type == 2)
return this.tradeCityList.filter((item) => item.type == 2)
},
importCityList() {
return this.tradeCityList.filter(item => item.type == 1)
},
return this.tradeCityList.filter((item) => item.type == 1)
}
},
methods: {
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
this.queryParams.pageNo = 1
this.getOfferList()
},
/** 重置按钮操作 */
......@@ -141,20 +137,20 @@ export default {
pageNo: 1,
pageSize: 10
}
this.handleQuery();
this.handleQuery()
},
getOfferList() {
getOfferPage({
...this.queryParams,
customerId: this.customerId
}).then(response => {
this.offerList = response.data.list;
this.offerTotal = response.data.total;
});
}).then((response) => {
this.offerList = response.data.list
this.offerTotal = response.data.total
})
},
confirm() {
if (this.offerId) {
this.$emit('select', this.offerId)
this.$emit("select", this.offerId)
this.offerDialogVisible = false
} else {
this.$message.error(this.$t("请选择报价单"))
......
......@@ -1005,7 +1005,6 @@ export default {
this.$refs.bankForm.validate((valid3, err3) => {
console.log(valid3, "valid3", err3)
if (!valid1 || !valid2 || !valid3) {
console.log(333)
this.$showFormValidateErrors({ ...err1, ...err2, ...err3 })
this.showBaseFlag = true
......
......@@ -33,7 +33,6 @@
<el-descriptions-item :label="$t('客户状态')">
{{ getDictDataLabel(DICT_TYPE.CUSTOMER_STATUS, customer.status) }}
</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.remarks }}</el-descriptions-item>
<el-descriptions-item :label="$t('图片')">
......@@ -42,13 +41,12 @@
</image-display>
</el-descriptions-item>
<template v-if="showMore">
<el-descriptions-item :label="$t('客户等级')">
{{ getDictDataLabel(DICT_TYPE.CUSTOMER_LEVEL, customer.level) }}
</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('业绩类型')">{{ customer.isNew ? $t("新客户") : $t("老客户") }} </el-descriptions-item>
<el-descriptions-item :label="$t('客户经理')">{{ customer.customerServiceName }}</el-descriptions-item>
<el-descriptions-item :label="$t('资源类型')">
<dict-tag :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" :value="customer.resourceType"></dict-tag>
</el-descriptions-item>
......@@ -58,6 +56,8 @@
<el-descriptions-item :label="$t('掉入公海时间')">
{{ customer.estimateEnterOpenSeaTime || customer.enterOpenSeaTime }}
</el-descriptions-item>
<template v-if="showMore">
<el-descriptions-item :label="$t('获取方式')">
{{ getDictDataLabel(DICT_TYPE.CUSTOMER_GET_METHOD, customer.getMethod) }}
</el-descriptions-item>
......@@ -70,6 +70,7 @@
<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.updateTime }}</el-descriptions-item>
<el-descriptions-item :label="$t('业绩类型')">{{ customer.isNew ? $t("新客户") : $t("老客户") }} </el-descriptions-item>
</template>
</el-descriptions>
</el-card>
......@@ -93,7 +94,8 @@
<el-tab-pane name="order" :label="$t('订单')">
<el-card class="box-card">
<div slot="header" class="clearfix">
<el-form :inline="true" size="small">
<el-form :inline="true" size="small" label-width="100px">
<div class="search-z">
<el-form-item :label="$t('运输方式:')">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" formatter="number" />
</el-form-item>
......@@ -103,36 +105,39 @@
<el-form-item :label="$t('报关方式:')">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="queryParams.customsTypes" multiple />
</el-form-item>
<el-form-item :label="$t('控货')">
<el-form-item :label="$t('控货:')">
<dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" v-model="queryParams.isCargoControl" />
</el-form-item>
<el-form-item :label="$t('入仓时间:')">
<el-date-picker v-model="rucangtime" @change="changeDate" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item>
<el-form-item :label="$t('始发仓')" prop="startWarehouseIds">
<el-form-item :label="$t('始发仓:')" prop="startWarehouseIds">
<el-select v-model="queryParams.startWarehouseIds" multiple :placeholder="$t('请选择始发仓')" clearable @change="handleQuery">
<el-option v-for="item in exportWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('目的国')" prop="destCountryId">
<el-form-item :label="$t('目的国:')" prop="destCountryId">
<el-select v-model="destCountryId" multiple :placeholder="$t('请选择目的国')" clearable @change="handleQuery">
<el-option v-for="item in AddressProvince" :key="item.guojia" :label="item.guojiaName" :value="item.guojia"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('目的城市')" prop="objectiveId">
<el-form-item :label="$t('目的城市:')" prop="objectiveId">
<el-select v-model="objectiveId" multiple :placeholder="$t('请选择目的城市')" style="width: 200px" clearable @change="handleQuery">
<el-option v-for="item in AddressCity" :key="item.shi" :label="item.shiName" :value="item.shi"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('目的仓')" prop="destWarehouseId">
<el-form-item :label="$t('目的仓:')" prop="destWarehouseId">
<el-select v-model="destWarehouseId" multiple :placeholder="$t('请选择目的仓')" style="width: 200px" clearable @change="handleQuery">
<el-option v-for="item in AddressTown" :key="item.id" :label="item.titleZh" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item>
</div>
<div class="search-time">
<el-form-item :label="$t('入仓时间:')">
<el-date-picker v-model="rucangtime" @change="changeDate" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item>
<el-form-item style="padding-left: 20px">
<el-button type="primary" @click="getorderList">{{ $t("搜索") }}</el-button>
<el-button type="primary" @click="handleOrderReset">{{ $t("重置") }}</el-button>
</el-form-item>
</div>
</el-form>
</div>
<el-descriptions :column="2">
......@@ -228,7 +233,8 @@
<el-tab-pane name="quote" :label="$t('报价')">
<el-card class="box-card">
<div slot="header" class="clearfix">
<el-form :inline="true" size="small" ref="handleOffer">
<el-form :inline="true" size="small" ref="handleOffer" label-width="100px">
<div class="search-z">
<el-form-item :label="$t('编号')" prop="searchNumber">
<el-input v-model.trim="queryOfferParams.searchNumber" :placeholder="$t('请输入报价单号、订单号')" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
......@@ -278,15 +284,17 @@
<el-option v-for="item in [1, 2, 3, 4, 5]" :label="item" :value="item" :key="item"></el-option>
</el-select>
</el-form-item>
</div>
<div class="search-time">
<el-form-item :label="$t('创建时间')">
<el-date-picker v-model="queryTmp.createTime" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss" @change="handleQuery"> </el-date-picker>
</el-form-item>
<el-form-item>
<el-form-item style="padding-left: 20px">
<el-button type="primary" @click="getInfoListOfferPage">{{ $t("搜索") }}</el-button>
<el-button type="primary" @click="handleOfferReset">{{ $t("重置") }}</el-button>
</el-form-item>
</div>
</el-form>
</div>
<el-table :data="infoListOfferList" style="width: 100%">
......@@ -380,7 +388,7 @@
</el-card>
</el-tab-pane>
<el-tab-pane name="follow" :label="$t('跟进')">
<logListCommon ref="logListCommon" v-if="activeName === 'follow'" :customerId="id" />
<logListCommon ref="logListCommon" :customerService="customer.customerService" :customerNumber="customer.number" v-if="activeName === 'follow'" :customerId="id" />
</el-tab-pane>
<el-tab-pane name="complain" :label="$t('客户投诉')">
<customer-complaint v-if="activeName === 'complain'" ref="customerComplaint" :customer-id="id" hidden-search></customer-complaint>
......@@ -950,7 +958,7 @@ export default {
},
infoListReceiptTotal: 0,
country: "",
showMore: true,
showMore: false,
AddressCity: [],
AddressProvince: [],
AddressTown: [],
......
This diff is collapsed.
......@@ -411,7 +411,7 @@
</div>
<div class="form-section">
<el-form-item :label="$t('竞争对手')" prop="competitor">
<el-select clearable v-model="form.competitor" :placeholder="$t('请选择')" class="w-200" @change="changeCompetitor">
<el-select filterable clearable v-model="form.competitor" :placeholder="$t('请选择')" class="w-200" @change="changeCompetitor">
<el-option v-for="item in competitorList" :key="item.id" :label="item.name" :value="item.name" />
<el-option :label="$t('其他')" :value="0" />
</el-select>
......@@ -1185,6 +1185,8 @@ export default {
formData.stopTime = ""
}
formData.channelId = formData.channelId || null
this.$set(this, "form", formData)
// 接口只返回了发货人和收货人ID,还需要调用接口获取详细信息回显
getCustomerContactsSelect({
......
......@@ -180,7 +180,7 @@
<el-dropdown-item @click.native="$router.push('detail?offerId=' + scope.row.offerId)" v-hasPermi="['ecw:offer:show']">{{ $t("详情") }}</el-dropdown-item>
<el-dropdown-item @click.native="$router.push('edit?id=' + scope.row.offerId)" v-if="[1, 2, 3, 7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{ $t("编辑") }}</el-dropdown-item>
<el-dropdown-item @click.native="$router.push('create?copyId=' + scope.row.offerId)" v-if="[1, 2, 3, 7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:update']">{{ $t("复制") }}</el-dropdown-item>
<el-dropdown-item @click.native="$router.push(`logList?offerId=${scope.row.offerId}&customerId=${scope.row.customerId}`)" v-if="[1, 3, 7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:loglist']">{{ $t("跟进") }}</el-dropdown-item>
<el-dropdown-item @click.native="handleAddOffer(scope.row)" v-if="[1, 3, 7].indexOf(scope.row.status) > -1">{{ $t("跟进") }}</el-dropdown-item>
<el-dropdown-item @click.native="$router.push(`result?offerId=${scope.row.offerId}&number=${scope.row.number}`)" v-if="[3, 7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:result']">{{ $t("结果") }}</el-dropdown-item>
<el-dropdown-item @click.native="$router.push('/offer/special?offerId=' + scope.row.offerId)" v-if="[1, 3, 7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:discount', 'ecw:offer:commission']">{{ $t("特价") }}</el-dropdown-item>
<el-dropdown-item @click.native="cancel(scope.row.offerId)" v-if="[1, 3, 7].indexOf(scope.row.status) > -1" v-hasPermi="['ecw:offer:cancel']">{{ $t("取消") }}</el-dropdown-item>
......@@ -193,6 +193,7 @@
</el-table>
<!-- 分页组件 -->
<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" />
</div>
</template>
......@@ -205,16 +206,19 @@ import { getTradeCityList } from "@/api/ecw/region"
import { getWarehouseList } from "@/api/ecw/warehouse"
import UserSelector from "@/components/UserSelector"
import Selector from "@/components/Selector"
import Template from "@/views/cms/template/index.vue";
import Template from "@/views/cms/template/index.vue"
import CustomerFollow from "@/views/ecw/customer/components/customerFollow"
export default {
name: "EcwOfferIndex",
components: {
Template,
Selector,
UserSelector
UserSelector,
CustomerFollow
},
data() {
return {
customerFollowVisible: false,
// 遮罩层
loading: true,
// 导出遮罩层
......@@ -259,6 +263,7 @@ export default {
cityList: [],
//目的仓
destWarehouseList: [],
curData: {},
dept: false // 是否部门订单
}
},
......@@ -440,6 +445,14 @@ export default {
}
},
methods: {
handleAddOffer(row) {
console.log(row)
this.curData = row
this.customerFollowVisible = true
this.$nextTick(() => {
this.$refs["customerFollow"].handleAdd()
})
},
init() {
//加载时发起请求获取所有省份值
getRegionList(1, 1)
......
......@@ -3,6 +3,7 @@
<el-card class="box-card">
<div slot="header" class="clearfix">
<el-form size="small" :inline="true" label-width="100px">
<div class="search-z">
<el-form-item :label="$t('编号')" prop="number">
<el-input v-model.trim="followForm.number" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
......@@ -18,9 +19,6 @@
<el-form-item :label="$t('客户经理')" prop="followUserIds">
<user-selector v-model="followForm.followUserIds" multiple clearable @input="handleQuery" />
</el-form-item>
<el-form-item :label="$t('下次跟进时间')">
<el-date-picker v-model="followFormTmp.nextTime" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss" @change="handleQuery"> </el-date-picker>
</el-form-item>
<el-form-item :label="$t('关联跟进记录')" prop="parentNumber">
<el-input v-model.trim="followForm.parentNumber" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
......@@ -41,14 +39,22 @@
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_STATUS)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item>
</div>
<div class="search-time">
<el-form-item :label="$t('下次跟进时间')">
<el-date-picker v-model="followFormTmp.nextTime" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss" @change="handleQuery"> </el-date-picker>
</el-form-item>
<el-form-item style="padding-left: 20px; width: auto">
<div class="flex-c-c">
<el-button type="primary" icon="el-icon-search" @click="getCustomerFollowList">{{ $t("搜索") }} </el-button>
<el-button type="primary" @click="reset">{{ $t("重置") }} </el-button>
<el-button type="success" @click="handleAdd" v-hasPermi="['ecw:customer:follow-create']">{{ $t("新增") }} </el-button>
<el-button type="warning" @click="handleExport" v-hasPermi="['ecw:customer:follow-export']">
{{ $t("导出") }}
</el-button>
</div>
</el-form-item>
</div>
</el-form>
</div>
<el-table :data="customerFollowList" style="width: 100%">
......@@ -60,7 +66,11 @@
<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="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="customerNumber" :label="$t('客户编号')"></el-table-column>
<el-table-column prop="customerNumber" :label="$t('客户编号')">
<template slot-scope="scope">
<a href="javascript:void(0)" @click="handleCustomerViewLink(scope.row)" class="link-type">{{ scope.row.customerNumber }}</a>
</template>
</el-table-column>
<el-table-column prop="contactName" :label="$t('联系人')"></el-table-column>
<el-table-column prop="contactPhone" :label="$t('联系方式')"></el-table-column>
<el-table-column prop="followUserName" :label="$t('客户经理')"></el-table-column>
......@@ -101,7 +111,7 @@
</el-table>
<pagination :total="customerFollowTotal" :page.sync="followForm.pageNo" :limit.sync="followForm.pageSize" @pagination="getCustomerFollowList" />
</el-card>
<customer-follow ref="customerFollow" @handleCustomerFollowAdd="handleCustomerFollowAdd" @refresh="handleQuery" v-if="customerFollowVisible" :customer-id="customerId" :offerId="offerId" />
<customer-follow ref="customerFollow" @handleCustomerFollowAdd="handleCustomerFollowAdd" @refresh="handleQuery" v-if="customerFollowVisible" :customer-id="customerId" :customerService="customerService" :customerNumber="customerNumber" />
</div>
</template>
......@@ -112,7 +122,7 @@ import UserSelector from "@/components/UserSelector"
export default {
name: "logListCommon",
components: { UserSelector, CustomerFollow },
props: ["customerId", "offerId"],
props: ["customerId", "offerId", "customerService", "customerNumber"],
data() {
return {
customerFollowVisible: false,
......@@ -172,6 +182,9 @@ export default {
this.$refs["customerFollow"].handleView(row)
})
},
handleCustomerViewLink(row) {
this.$router.push(`/customer/query/${row.customerId}`)
},
formatQuery() {
let obj = {}
obj.customerId = this.customerId || null
......
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