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

6

parent 4af4e00f
This diff is collapsed.
...@@ -337,6 +337,28 @@ ...@@ -337,6 +337,28 @@
<el-card class="box-card"> <el-card class="box-card">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<el-form size="small" :inline="true" label-width="100px"> <el-form size="small" :inline="true" label-width="100px">
<el-form-item :label="$t('编号')" prop="number">
<el-input v-model.trim="followForm.number" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item :label="$t('报价单号')" prop="offerNumber">
<el-input v-model.trim="followForm.offerNumber" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item :label="$t('联系人')" prop="contactName">
<el-input v-model.trim="followForm.contactName" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item :label="$t('联系方式')" prop="contactPhone">
<el-input v-model.trim="followForm.contactPhone" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item :label="$t('客户经理')" prop="salesmanIds">
<user-selector v-model="followForm.salesmanIds" multiple clearable @change="handleQuery" />
</el-form-item>
<el-form-item :label="$t('下次跟进时间')">
<el-date-picker v-model="followFormTmp.nextTime" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss" @change="handleQuery"> </el-date-picker>
</el-form-item>
<el-form-item :label="$t('关联跟进记录')" prop="parentNumber">
<el-input v-model.trim="followForm.parentNumber" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item :label="$t('跟进类型')"> <el-form-item :label="$t('跟进类型')">
<dict-selector clearable :type="DICT_TYPE.CUSTOMER_FOLLOWUP_TYPE" v-model="followForm.followType" @change="handleQuery"></dict-selector> <dict-selector clearable :type="DICT_TYPE.CUSTOMER_FOLLOWUP_TYPE" v-model="followForm.followType" @change="handleQuery"></dict-selector>
</el-form-item> </el-form-item>
...@@ -353,14 +375,6 @@ ...@@ -353,14 +375,6 @@
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_STATUS)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value" /> <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_STATUS)" :key="dict.value" :label="isChinese ? dict.label : dict.labelEn" :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<!--
<el-form-item :label="$t('跟进时间')">
<el-date-picker type="datetimerange" clearable v-model="followTime" style="width: 320px" value-format="yyyy-MM-dd HH:mm:ss" range-separator="-" :start-placeholder="$t('开始跟进时间')" :end-placeholder="$t('结束跟进时间')" />
</el-form-item>
<el-form-item :label="$t('下次跟进时间')">
<el-date-picker type="datetimerange" clearable v-model="nextTime" style="width: 320px" value-format="yyyy-MM-dd HH:mm:ss" range-separator="-" :start-placeholder="$t('开始下次跟进时间')" :end-placeholder="$t('结束下次跟进时间')" />
</el-form-item>
-->
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="getCustomerFollowList">{{ $t("搜索") }} </el-button> <el-button type="primary" icon="el-icon-search" @click="getCustomerFollowList">{{ $t("搜索") }} </el-button>
<el-button <el-button
...@@ -423,7 +437,7 @@ ...@@ -423,7 +437,7 @@
</el-table-column> </el-table-column>
<el-table-column width="150px" :label="$t('操作')" align="center" fixed="right" class-name="small-padding fixed-width"> <el-table-column width="150px" :label="$t('操作')" align="center" fixed="right" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleCustomerFollow(scope.row, scope.row.status === 0)" v-hasPermi="['ecw:customer:follow-update']">{{ $t("编辑") }} </el-button> <el-button size="mini" type="text" icon="el-icon-edit" v-if="!scope.row.status" @click="handleCustomerFollow(scope.row, scope.row.status === 0)" v-hasPermi="['ecw:customer:follow-update']">{{ $t("编辑") }} </el-button>
<el-button size="mini" type="text" icon="el-icon-collection" @click="handleCustomerFollow(scope.row, true)" v-has-permi="['ecw:customer:follow-add-plan']">{{ $t("增加计划") }} </el-button> <el-button size="mini" type="text" icon="el-icon-collection" @click="handleCustomerFollow(scope.row, true)" v-has-permi="['ecw:customer:follow-add-plan']">{{ $t("增加计划") }} </el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -991,6 +1005,7 @@ export default { ...@@ -991,6 +1005,7 @@ export default {
pageNo: 1, pageNo: 1,
pageSize: 10 pageSize: 10
}, },
followFormTmp: {},
followTime: [], followTime: [],
nextTime: [], nextTime: [],
customerFollowTotal: 0, customerFollowTotal: 0,
......
...@@ -7,11 +7,11 @@ ...@@ -7,11 +7,11 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户')" prop="searchCustomer"> <el-form-item :label="$t('客户')" prop="searchCustomer">
<el-input v-model.trim="queryParams.searchCustomer" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model.trim="queryParams.searchCustomer" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('联系方式')" prop="relationPhone"> <el-form-item :label="$t('联系方式')" prop="relationPhone">
<el-input v-model.trim="queryParams.relationPhone" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery" @input="queryParams.relationPhone = queryParams.relationPhone.replace(/\s+/g, '')" /> <el-input v-model.trim="queryParams.relationPhone" clearable @keyup.enter.native="handleQuery" @input="queryParams.relationPhone = queryParams.relationPhone.replace(/\s+/g, '')" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('区号')" prop="relationAreaCode"> <el-form-item :label="$t('区号')" prop="relationAreaCode">
...@@ -111,14 +111,18 @@ ...@@ -111,14 +111,18 @@
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list" border> <el-table v-loading="loading" :data="list" border>
<el-table-column :label="$t('报价单号')" align="left" prop="number" width="200px"> <el-table-column :label="$t('报价单号')" align="left" prop="number" width="150">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-link type="primary" @click.native="$router.push('detail?offerId=' + row.offerId)">{{ row.number }}</el-link> <el-link type="primary" @click.native="$router.push('detail?offerId=' + row.offerId)">{{ row.number }}</el-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('订单编号')" align="left" prop="orderNo" /> <el-table-column :label="$t('订单编号')" align="left" width="120">
<el-table-column :label="$t('联系人')" align="left" prop="relationName" width="180" /> <template slot-scope="{ row }">
<el-table-column :label="$t('联系电话')" align="left" prop="relationPhone" /> <a class="el-link el-link--primary is-underline" href="javascript:;" @click="$router.push(`/order/detail?orderId=${row.orderId}`)">{{ row.orderNo }}</a>
</template>
</el-table-column>
<el-table-column :label="$t('联系人')" align="left" prop="relationName" width="120" />
<el-table-column :label="$t('联系电话')" align="left" prop="relationPhone" width="150" />
<el-table-column :label="$t('重要程序')" align="center" prop="importance" /> <el-table-column :label="$t('重要程序')" align="center" prop="importance" />
<el-table-column :label="$t('始发地')" align="left" prop="departureName" /> <el-table-column :label="$t('始发地')" align="left" prop="departureName" />
<el-table-column :label="$t('目的地')" align="center" prop="objectiveName" /> <el-table-column :label="$t('目的地')" align="center" prop="objectiveName" />
...@@ -568,7 +572,7 @@ export default { ...@@ -568,7 +572,7 @@ export default {
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
// 处理查询参数 // 处理查询参数
let params = { ...this.queryParams } let params = { ...this.queryParams, ...this.formatQuery() }
params.pageNo = undefined params.pageNo = undefined
params.pageSize = undefined params.pageSize = undefined
// 执行导出 // 执行导出
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-card> <el-card>
<div slot="header" class="card-title">{{$t('跟进记录列表')}}</div> <div slot="header" class="card-title">{{ $t("跟进记录列表") }}</div>
<!-- 列表 --> <!-- 列表 -->
<div class="offer-header"> <div class="offer-header">
<span style="font-size: 15px;">{{$t('报价单号')}}{{number}}</span> <span style="font-size: 15px">{{ $t("报价单号") }}{{ number }}</span>
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">{{ $t("新增") }}</el-button>
>{{$t('新增')}}</el-button> </div>
</div>
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">
<el-table-column :label="$t('序号')" align="center" prop="id" type="index"> <el-table-column :label="$t('序号')" align="center" prop="id" type="index">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.$index + 1}}</span> <span>{{ scope.$index + 1 }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('跟进类型')" align="center" prop="type" > <el-table-column :label="$t('跟进类型')" align="center" prop="type">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_OFFER_TYPE" :value="scope.row.type"></dict-tag> <dict-tag :type="DICT_TYPE.ECW_OFFER_TYPE" :value="scope.row.type"></dict-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('联系人')" align="center" prop="contactName" /> <el-table-column :label="$t('联系人')" align="center" prop="contactName" />
<el-table-column :label="$t('跟进方式')" align="center" prop="followUpMethod"> <el-table-column :label="$t('跟进方式')" align="center" prop="followUpMethod">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.CUSTOMER_FOLLOW_METHOD" :value="scope.row.followUpMethod"></dict-tag> <dict-tag :type="DICT_TYPE.CUSTOMER_FOLLOW_METHOD" :value="scope.row.followUpMethod"></dict-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('跟进时间')" align="center" prop="followUpTime" width="180"> <el-table-column :label="$t('跟进时间')" align="center" prop="followUpTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.followUpTime}}</span> <span>{{ scope.row.followUpTime }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('客户反馈')" align="center" prop="customerFeedback" /> <el-table-column :label="$t('客户反馈')" align="center" prop="customerFeedback" />
<el-table-column :label="$t('处理结果')" align="center" prop="processingResults" /> <el-table-column :label="$t('处理结果')" align="center" prop="processingResults" />
<el-table-column :label="$t('客户经理')" align="center" prop="followUpSalesmanName"> <el-table-column :label="$t('客户经理')" align="center" prop="followUpSalesmanName">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{getCustomerService(scope.row.followUpSalesmanId)}}</span> <span>{{ getCustomerService(scope.row.followUpSalesmanId) }}</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="params.page" :limit.sync="params.rows" <pagination v-show="total > 0" :total="total" :page.sync="params.page" :limit.sync="params.rows" @pagination="getList" />
@pagination="getList"/> </el-card>
</el-card>
</div> </div>
</template> </template>
<script> <script>
import {getOfferLogPage} from "@/api/ecw/offerLog"; import { getOfferLogPage } from "@/api/ecw/offerLog"
import {DICT_TYPE} from '@/utils/dict' import { DICT_TYPE } from "@/utils/dict"
import {getOffer} from '@/api/ecw/offer' import { getOffer } from "@/api/ecw/offer"
import { userList } from "@/api/system/user" import { userList } from "@/api/system/user"
export default { export default {
name: "OfferLog", name: "OfferLog",
components: { components: {},
},
data() { data() {
return { return {
// 遮罩层 // 遮罩层
loading: true, loading: true,
list: [], list: [],
total:0, total: 0,
params:{ params: {
page:1, page: 1,
rows:20, rows: 20,
offerId:0, offerId: 0,
type:2 type: 2
}, },
number:'', number: "",
relationId:0, relationId: 0,
creatorName:'test', creatorName: "test",
creatorData:[] creatorData: []
}; }
}, },
created() { created() {
if(this.$route.query.offerId){ if (this.$route.query.offerId) {
this.params.offerId = this.$route.query.offerId this.params.offerId = this.$route.query.offerId
this.getList(); this.getList()
this.getRelationID() this.getRelationID()
} }
userList('customer service').then(res =>this.creatorData = res.data) userList("customer service").then((res) => (this.creatorData = res.data))
}, },
methods: { methods: {
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true
let params = {...this.params}; let params = { ...this.params }
// 执行查询 // 执行查询
getOfferLogPage(params).then(response => { getOfferLogPage(params).then((response) => {
this.list = response.data.list; this.list = response.data.list
this.total = response.data.total; this.total = response.data.total
this.loading = false; this.loading = false
}); })
}, },
getCustomerService(id){ getCustomerService(id) {
var user = this.creatorData.find(item=>item.id==id) var user = this.creatorData.find((item) => item.id == id)
if(user) return user.nickname if (user) return user.nickname
return '' return ""
}, },
getRelationID(){ getRelationID() {
getOffer(this.params.offerId).then(response => { getOffer(this.params.offerId).then((response) => {
this.relationId = response.data.consignorId; this.relationId = response.data.consignorId
this.number = response.data.number; this.number = response.data.number
}) })
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.$router.push({ this.$router.push({
path: "/offer/createLog", path: "/offer/createLog",
query:{ query: {
offerId:this.params.offerId, offerId: this.params.offerId,
number:this.number number: this.number
} }
}); })
}, }
} }
}; }
</script> </script>
<style scoped> <style scoped>
.card-title{ .card-title {
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
} }
.offer-header{ .offer-header {
padding-bottom: 16px; padding-bottom: 16px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
} }
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment