Files
juipvue/src/components/user/statistics.vue

729 lines
26 KiB
Vue
Raw Normal View History

2020-10-04 10:30:08 +08:00
<template>
<div v-loading="loading">
2020-11-22 11:08:44 +08:00
<el-card class="box-card">
2023-08-11 15:12:33 +08:00
<el-select v-model="manager" @change="select_manager" size="small" style="margin-right:5px;width:110px;float:left;" v-if="$local.isRoot()" placeholder="管理员">
<el-option
v-for="item in manegers"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
2020-11-22 11:08:44 +08:00
<el-date-picker
v-model="sell_detail_month"
2020-10-04 10:30:08 +08:00
size="small"
2020-11-22 11:08:44 +08:00
type="month"
style="margin-right:5px;width:110px;float:left;"
@change="sell_detail_info"
placeholder="选择月">
</el-date-picker>
2021-11-16 16:51:45 +08:00
<router-link :to="{name:'userstatisticsrecord'}">
<el-button type="primary" size="small" plain>跟进记录</el-button>
</router-link>
2023-10-28 14:58:44 +08:00
<el-button type="primary" size="small" @click="click_phone()" plain>号码拨号</el-button>
2024-03-22 11:25:09 +08:00
<div v-if="$local.isRoot()">
{{sell_detail.cost_mogu}}<span style="color:red">|| </span>{{sell_detail.cost_not_mogu}}
</div>
<div>
<p>主动销售</p>
<p>{{sell_detail.other_order_active}}<span style="color:red">|| </span>{{sell_detail.mogu_order_active}}<span style="color:red">|| </span>{{sell_detail.recharge_active}}<span style="color:red">|| </span>{{sell_detail.http_active}}<span style="color:red">|| </span>{{sell_detail.ros_active}}<span style="color:red">|| </span>{{sell_detail.jinqiao_active}}</p>
<p>被动销售</p>
<p>{{sell_detail.other_order_not_active}}<span style="color:red">|| </span>{{sell_detail.mogu_order_not_active}}<span style="color:red">|| </span>{{sell_detail.recharge_not_active}}<span style="color:red">|| </span>{{sell_detail.http_not_active}}<span style="color:red">|| </span>{{sell_detail.ros_not_active}}<span style="color:red">|| </span>{{sell_detail.jinqiao_not_active}}</p>
</div>
2020-11-22 11:08:44 +08:00
<p>
2024-03-22 11:25:09 +08:00
{{sell_detail.sell_percent}}<span style="color:red">|| </span>
{{sell_detail.cost_percent}}<span style="color:red">|| </span>
{{sell_detail.cost_register}}<span style="color:red">|| </span>
{{sell_detail.cost_old_user}}<br>
{{sell_detail.com_cost}}<span style="color:red">|| </span>
{{sell_detail.com_percent}}<span style="color:red">|| </span>
{{sell_detail.today_new_user}}<span style="color:red">|| </span>
2020-11-22 11:08:44 +08:00
{{sell_detail.refund}}
</p>
</el-card>
<el-card class="box-card">
<div class="heior_box">
2020-10-04 10:30:08 +08:00
<!-- <el-button size="small" type="primary" icon="el-icon-sold-out" @click="dataExport" v-if="$local.isRoot()">导出</el-button> -->
<div class="search-box">
<el-date-picker
2020-11-22 11:08:44 +08:00
v-model="last_month"
type="datetimerange"
align="right"
2020-10-04 10:30:08 +08:00
size="small"
2020-11-22 11:08:44 +08:00
style="margin-right:5px;"
2021-03-15 11:46:06 +08:00
start-placeholder="A阶段开始时间"
2023-08-11 15:12:33 +08:00
end-placeholder="A阶段结束时间">
2020-11-22 11:08:44 +08:00
</el-date-picker>
2020-10-04 10:30:08 +08:00
<el-date-picker
2020-11-22 11:08:44 +08:00
v-model="new_month"
type="datetimerange"
align="right"
size="small"
style="margin-right:5px;"
2021-03-15 11:46:06 +08:00
start-placeholder="B阶段开始时间"
2023-08-11 15:12:33 +08:00
end-placeholder="B阶段开始时间">
2020-11-22 11:08:44 +08:00
</el-date-picker>
<!-- <el-date-picker
v-model="searchModel.month"
2020-10-04 10:30:08 +08:00
size="small"
2020-11-22 11:08:44 +08:00
type="month"
style="margin-right:5px;width:110px"
placeholder="选择月">
</el-date-picker> -->
<el-select size="small" style="margin-right:5px;" v-model="searchModel.cost_type" placeholder="请选择">
<el-option
v-for="item in cost_types"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-input
size="small"
placeholder="起始金额"
type="number"
style="margin-right:5px;width:100px"
v-model="searchModel.money1">
</el-input>
<el-input
size="small"
placeholder="截至金额"
type="number"
style="margin-right:5px;width:100px"
v-model="searchModel.money2">
</el-input>
2020-10-04 10:30:08 +08:00
<el-select
2020-11-12 16:49:54 +08:00
v-model="searchModel.profile"
2020-10-04 10:30:08 +08:00
clearable
2020-11-22 11:08:44 +08:00
style="margin-right:5px;width:160px"
2020-10-04 10:30:08 +08:00
size="small"
placeholder="状态"
>
<el-option v-for="item in types" :key="item.label" :label="item.label" :value="item.value"></el-option>
</el-select>
2020-11-22 11:08:44 +08:00
<el-input style="width:190px" v-model="searchModel.keyWord" placeholder="请输入会员号" clearable size="small">
2020-10-04 10:30:08 +08:00
<el-button slot="append" icon="el-icon-search" @click="search"></el-button>
</el-input>
</div>
</div>
2020-11-22 11:08:44 +08:00
<el-table :data="retData.Data" :height="$getHeight(200)"
2020-11-12 16:49:54 +08:00
@sort-change="sort"
2020-10-04 10:30:08 +08:00
row-key="Id" border>
2023-08-11 15:12:33 +08:00
<el-table-column v-if="$local.isRoot()" prop="ManagerName" label="客户经理"></el-table-column>
<el-table-column prop="follow_status" label="跟进状态">
2020-11-22 11:08:44 +08:00
<template slot-scope="scope">
<el-link @click="click_follow_status(scope.row)">{{scope.row.follow_status}}</el-link>
</template>
</el-table-column>
<el-table-column label="会员号">
<template slot-scope="scope">
<el-link @click="click_username(scope.row)">{{scope.row.UserName}}</el-link>
2024-03-22 11:25:09 +08:00
<!-- <br> <span style="color:#409EFF;cursor:pointer;" @click.once="hujiao(scope.row)">拨号</span> -->
2020-11-22 11:08:44 +08:00
</template>
</el-table-column>
2023-08-11 15:12:33 +08:00
<el-table-column prop="is_verify" label="是否实名"></el-table-column>
2020-11-22 11:08:44 +08:00
<el-table-column prop="CreateTime" label="注册时间"></el-table-column>
<el-table-column label="总消费" sortable="all_amount">
2020-11-12 16:49:54 +08:00
<template slot-scope="scope">
2020-11-22 11:08:44 +08:00
<el-link @click="click_all_amount(scope.row,1)">{{scope.row.all_amount}}</el-link>
</template>value
</el-table-column>
2021-03-15 11:46:06 +08:00
<el-table-column label="A阶段消费" sortable="PrevMonthAmount">
2020-11-22 11:08:44 +08:00
<template slot-scope="scope">
<el-link @click="click_all_amount(scope.row,2)">{{scope.row.PrevMonthAmount}}</el-link>
2020-10-04 10:30:08 +08:00
</template>
</el-table-column>
2021-03-15 11:46:06 +08:00
<el-table-column label="B阶段消费" sortable="MonthAmount">
2020-10-04 10:30:08 +08:00
<template slot-scope="scope">
2020-11-22 11:08:44 +08:00
<el-link @click="click_all_amount(scope.row,3)">{{scope.row.MonthAmount}}</el-link>
2020-10-04 10:30:08 +08:00
</template>
</el-table-column>
2020-11-22 11:08:44 +08:00
<el-table-column prop="AddAmount" label="对比增长金额"></el-table-column>
<el-table-column prop="persent" label="对比增长百分比"></el-table-column>
<el-table-column label="账户总数" sortable="account_count">
2020-11-12 16:49:54 +08:00
<template slot-scope="scope">
2020-11-22 11:08:44 +08:00
<el-link @click="click_account(scope.row,1)">{{scope.row.account_count}}</el-link>
</template>
</el-table-column>
<el-table-column label="使用中个数" sortable="account_used">
<template slot-scope="scope">
<el-link @click="click_account(scope.row,3)">{{scope.row.account_used}}</el-link>
</template>
</el-table-column>value
<el-table-column label="过期个数" sortable="account_expire">
<template slot-scope="scope">
<el-link @click="click_account(scope.row,2)">{{scope.row.account_expire}}</el-link>
2020-10-04 10:30:08 +08:00
</template>
</el-table-column>
</el-table>
<div class="block">
<el-pagination
v-if="retData.Data.length>0"
@current-change="get"
:page-size="50"
:current-page.sync="searchModel.PageIndex"
2020-11-28 16:51:11 +08:00
layout="total,prev, pager, next, jumper"
2020-10-04 10:30:08 +08:00
:total="retData.TotalCount"
></el-pagination>
</div>
2020-11-22 11:08:44 +08:00
<el-dialog
title="修改跟进状态"
:visible.sync="follow_status_change_fall"
2020-11-26 17:23:54 +08:00
width="50%">
2020-11-22 11:08:44 +08:00
<el-select size="small" v-model="set_follow_status.status" placeholder="请选择">
<el-option
v-for="item in types"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
2024-03-22 11:25:09 +08:00
<el-select size="small" v-model="set_follow_status.product_type" placeholder="请选择">
<el-option
v-for="item in product_type_list"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-input size="small" v-model="set_follow_status.sell_money" style="width:10%" placeholder="输入金额"></el-input>
<el-radio v-model="set_follow_status.sell_type" label="1">主动销售</el-radio>
<el-radio v-model="set_follow_status.sell_type" label="0">被动销售</el-radio>
2023-08-11 15:12:33 +08:00
<el-input style="margin:5px 0" v-model="set_follow_status.remark" size="small" placeholder="请输入跟进记录"></el-input>
2024-03-20 10:55:02 +08:00
<el-input
class="mb10 input-layout"
type="textarea"
:rows="2"
placeholder="粘贴图片即可上传 目前只能上传一张"
@paste.native="handlePaste"
>
</el-input>
<el-upload
class="upload-demo"
ref="upload"
action=""
:http-request="httpRequest"
:on-preview="handlePreview"
:on-remove="handleRemove"
:limit="1"
:file-list="fileList">
<!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button> -->
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件且不超过5M</div>
</el-upload>
<br>
2020-11-22 11:08:44 +08:00
<el-table :data="follow_status_list" border>
2023-09-17 18:08:36 +08:00
<el-table-column prop="create_time" width="200" label="时间"></el-table-column>
<el-table-column v-if="$local.isRoot()" width="100" prop="op_user" label="维护经理"></el-table-column>
2024-03-22 11:25:09 +08:00
<!-- <el-table-column prop="druation" width="90" label="呼叫时长"></el-table-column> -->
<el-table-column prop="product_type" label="产品类型"></el-table-column>
<el-table-column prop="sell_money" label="销售金额"></el-table-column>
<el-table-column prop="sell_type" label="销售类型"></el-table-column>
2024-03-20 10:55:02 +08:00
<el-table-column label="跟进截图">
<template slot-scope="scope">
<el-link type="primary" v-if="scope.row.file" :href="scope.row.file" target="_blank"> {{scope.row.file}} 查看大图</el-link>
</template>
</el-table-column>
2023-09-17 18:08:36 +08:00
<el-table-column label="跟进记录">
<template slot-scope="scope">
<span v-if="scope.row.remark != null">{{scope.row.remark}}</span>
<span v-if="scope.row.remark == null"><el-link style="color:#409EFF;cursor:pointer;" @click="click_follow_remark(scope.row)">修改</el-link></span>
</template>
</el-table-column>
2020-11-22 11:08:44 +08:00
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="follow_status_change_fall = false"> </el-button>
<el-button :disabled="clickOk" type="primary" @click="changeFolowStatus()"> </el-button>
</span>
</el-dialog>
2023-09-17 18:08:36 +08:00
<el-dialog
title="拨打电话后修改跟进状态"
:visible.sync="follow_status_change_two"
width="50%">
<el-select size="small" v-model="set_follow_status.status" placeholder="请选择">
<el-option
v-for="item in types"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-input style="margin:5px 0" v-model="set_follow_status.remark" size="small" placeholder="请输入跟进记录"></el-input>
<span slot="footer" class="dialog-footer">
<el-button @click="follow_status_change_two = false"> </el-button>
<el-button :disabled="clickOk" type="primary" @click="changeFolowStatus()"> </el-button>
</span>
</el-dialog>
2020-11-22 11:08:44 +08:00
<el-dialog
title="用户信息"
:visible.sync="userinfo_fall"
width="30%">
<el-card class="box-card">
2023-09-17 18:08:36 +08:00
<p oncopy="return false;">电话{{user_info.UserName}} &nbsp;&nbsp; <span style="color:#409EFF;cursor:pointer;" @click="copy_op(user_info.UserName)">复制</span>
</p>
2020-11-22 11:08:44 +08:00
<p>微信{{user_info.Wx}}</p>
<p>QQ{{user_info.QQ}}</p>
</el-card>
</el-dialog>
2023-10-28 14:58:44 +08:00
<el-dialog
title="通过号码拨打电话"
:visible.sync="phone_fall"
width="30%">
<el-card class="box-card">
<el-input v-model="phone_call" size="small" style="width:70%" placeholder="请输入内容"></el-input>
<sapn style="color:#409EFF;cursor:pointer;" @click.once="hujiao2()">拨打</sapn>
</el-card>
</el-dialog>
2020-11-22 11:08:44 +08:00
<el-dialog
title="消费记录"
:visible.sync="cost_fall"
v-loading="cost_loading"
2020-11-26 17:23:54 +08:00
width="70%">
2020-11-22 11:08:44 +08:00
<el-table height="500px" :data="cost_list" border>
2020-11-26 17:23:54 +08:00
<el-table-column prop="UpdateTime" label="时间"></el-table-column>
2020-11-25 09:58:42 +08:00
<el-table-column prop="ProductName" label="产品"></el-table-column>
<el-table-column prop="PackageName" label="套餐"></el-table-column>
<el-table-column prop="OrderType" label="类型"></el-table-column>
<el-table-column prop="ConnectCount" label="连接数"></el-table-column>
2020-11-26 17:23:54 +08:00
<el-table-column prop="Accounts" show-overflow-tooltip="true" label="帐号"></el-table-column>
2023-07-12 17:29:35 +08:00
<el-table-column prop="OrderAmount" label="单价"></el-table-column>
2020-11-26 17:23:54 +08:00
<el-table-column prop="PaymentAmount" label="实付金额"></el-table-column>
2020-11-22 11:08:44 +08:00
</el-table>
</el-dialog>
<el-dialog
title="帐号记录"
:visible.sync="account_fall"
v-loading="account_loading"
2020-11-22 11:08:44 +08:00
width="50%">
<el-table height="500px" :data="account_list" border>
<el-table-column prop="ProductName" label="产品"></el-table-column>
<el-table-column prop="PackageName" label="套餐"></el-table-column>
<el-table-column prop="Account" label="帐号"></el-table-column>
<el-table-column prop="StartTime" label="开始时间"></el-table-column>
<el-table-column prop="EndTime" label="结束时间"></el-table-column>
</el-table>
</el-dialog>
</el-card>
2020-10-04 10:30:08 +08:00
</div>
</template>
<script>
export default {
2020-11-12 16:49:54 +08:00
name: 'userIndex',
components: {
2023-08-11 15:12:33 +08:00
2020-10-04 10:30:08 +08:00
},
2020-11-12 16:49:54 +08:00
data () {
2020-10-04 10:30:08 +08:00
return {
2024-03-20 10:55:02 +08:00
fileList: [],
2020-10-04 10:30:08 +08:00
loading: false,
cost_loading: false,
account_loading: false,
2020-10-04 10:30:08 +08:00
retData: { TotalCount: 0, Data: [] },
dateRange1: [],
dateRange2: [],
searchModel: {
PageIndex: 1,
2020-11-12 16:49:54 +08:00
keyWord: '',
sortLable: '',
sortOrder: 0,
2020-11-22 11:08:44 +08:00
profile: '',
last_month: {
s_time: '',
e_time: ''
},
new_month: {
s_time: '',
e_time: ''
},
cost_type: '0',
money1: null,
2023-08-11 15:12:33 +08:00
money2: null,
manager_id:0
2020-10-04 10:30:08 +08:00
},
2020-11-22 11:08:44 +08:00
types: [],
user_info: {},
follow_status_change_fall: false,
2023-09-17 18:08:36 +08:00
follow_status_change_two: false,
2020-11-22 11:08:44 +08:00
follow_status_list: [],
2023-10-28 14:58:44 +08:00
phone_call: '',
2020-11-22 11:08:44 +08:00
set_follow_status: {
2023-09-17 18:08:36 +08:00
id: null,
2020-11-22 11:08:44 +08:00
user_id: null,
old_status: null,
status: null,
2024-03-20 10:55:02 +08:00
remark: null,
2024-03-22 11:25:09 +08:00
file:null,
product_type:'other_order',
sell_money:0,
sell_type:'0'
2020-11-22 11:08:44 +08:00
},
userinfo_fall: false,
2023-10-28 14:58:44 +08:00
phone_fall: false,
2020-11-22 11:08:44 +08:00
clickOk: false,
cost_fall: false,
cost_list: [],
account_list: [],
account_fall: false,
2023-08-11 15:12:33 +08:00
last_month: [new Date(new Date().getFullYear(),new Date().getMonth()-1),new Date(new Date().getFullYear(),new Date().getMonth()-1,new Date().getDate(),new Date().getHours(),new Date().getMinutes(),new Date().getSeconds())],
new_month: [new Date(new Date().getFullYear(),new Date().getMonth()),new Date()],
2020-11-22 11:08:44 +08:00
cost_types: [{
value: '0',
2023-08-11 15:12:33 +08:00
label: '总消费金额筛选'
2020-11-22 11:08:44 +08:00
}, {
value: '1',
2023-08-11 15:12:33 +08:00
label: 'A阶段消费筛选'
2020-11-22 11:08:44 +08:00
}, {
value: '2',
2023-08-11 15:12:33 +08:00
label: 'B阶段消费筛选'
2020-11-22 11:08:44 +08:00
}],
sell_detail: {},
2020-11-26 17:23:54 +08:00
sell_detail_month: null,
2023-08-11 15:12:33 +08:00
temps: null,
manegers: [{
value: '选项1',
label: '黄金糕'
}],
2024-03-22 11:25:09 +08:00
manager: 0,
isroot:false,
product_type_list:[
{
value: 'other_order',
label: '其他IP产品订单'
},
{
value: 'mogu_order',
label: '蘑菇IP订单'
},
{
value: 'recharge',
label: 'IP充值'
},
{
value: 'http',
label: 'HTTP充值'
},
{
value: 'ros',
label: '软路由订单'
},
{
value: 'jinqiao',
label: '金桥投屏订单'
},
]
2020-11-12 16:49:54 +08:00
}
2020-10-04 10:30:08 +08:00
},
2020-11-12 16:49:54 +08:00
created () {
this.$store.commit('setCurrentNav', '用户管理>>消费统计')
2023-08-11 15:12:33 +08:00
var currentUser = this.$local.getUserByCache()
this.isroot = currentUser.Manager.IsRootUser
2024-03-22 11:25:09 +08:00
this.get()
this.sell_detail_info()
2023-08-11 15:12:33 +08:00
if (this.isroot) {
this.manager_list()
}
2020-10-04 10:30:08 +08:00
},
methods: {
2020-11-22 11:08:44 +08:00
sell_detail_info () {
2023-08-11 15:12:33 +08:00
if (this.isroot) {
2024-03-22 11:25:09 +08:00
this.$api.get(this.$api.phpURL + 'manager/SellInfo/getOneManager', {sell_month: this.sell_detail_month,manager_id: this.manager}).then(res => {
// this.$api.get(this.$api.phpURL + 'manager/SellInfo/getOne', {sell_month: this.sell_detail_month,manager_id: this.manager}).then(res => {
2023-08-11 15:12:33 +08:00
this.sell_detail = res.data
})
} else {
this.$api.get(this.$api.phpURL + 'manager/SellInfo/getOne', {sell_month: this.sell_detail_month}).then(res => {
this.sell_detail = res.data
})
}
},
manager_list () {
this.$api.get(this.$api.phpURL + 'manager/SellInfo/getManagerList',).then(res => {
this.manegers = res.data
2020-11-22 11:08:44 +08:00
})
},
2020-11-12 16:49:54 +08:00
// eslint-disable-next-line standard/object-curly-even-spacing
sort ({column, prop, order }) {
2020-11-22 11:08:44 +08:00
this.searchModel.PageIndex = 1
this.searchModel.sortLable = column.sortable
2020-11-12 16:49:54 +08:00
// eslint-disable-next-line eqeqeq
2020-11-22 11:08:44 +08:00
this.searchModel.sortOrder = order == 'ascending' ? 1 : 0
this.get()
2020-10-04 10:30:08 +08:00
},
2020-11-12 16:49:54 +08:00
search () {
2020-11-22 11:08:44 +08:00
if (this.last_month && this.last_month.length === 2) {
this.searchModel.last_month.s_time = this.last_month[0]
this.searchModel.last_month.e_time = this.last_month[1]
}
if (this.new_month && this.new_month.length === 2) {
this.searchModel.new_month.s_time = this.new_month[0]
this.searchModel.new_month.e_time = this.new_month[1]
}
2020-11-12 16:49:54 +08:00
this.searchModel.PageIndex = 1
2020-11-22 11:08:44 +08:00
this.searchModel.sortLable = null
2023-08-11 15:12:33 +08:00
if (this.searchModel.money1) {
if (!(this.searchModel.money1)) {
2020-11-22 11:08:44 +08:00
this.$message({
message: '请正确填写消费范围',
type: 'warning'
})
return
}
2023-08-11 15:12:33 +08:00
if (!(this.searchModel.money2)) {
this.searchModel.money2 = 999999999;
}
2020-11-22 11:08:44 +08:00
}
2020-11-12 16:49:54 +08:00
this.get()
2020-10-04 10:30:08 +08:00
},
2020-11-12 16:49:54 +08:00
get () {
2023-08-11 15:12:33 +08:00
if (this.isroot) {
this.searchModel.manager_id = this.manager;
}
2020-11-12 16:49:54 +08:00
this.loading = true
2020-11-22 11:08:44 +08:00
this.$api.get(this.$api.phpURL + 'manager/UserFollow/getList', {PageIndex: this.searchModel.PageIndex, search: this.searchModel}).then(res => {
this.retData.Data = res.data.list
2020-11-24 15:22:11 +08:00
// eslint-disable-next-line eqeqeq
if (res.data.count != 0) {
this.retData.TotalCount = parseInt(res.data.count)
}
2020-11-22 11:08:44 +08:00
this.types = res.data.types
this.loading = false
})
},
click_follow_status (row) {
2020-11-26 17:23:54 +08:00
this.temps = row
2020-11-22 11:08:44 +08:00
this.clickOk = false
this.follow_status_change_fall = true
this.set_follow_status.status = row.follow_status
this.set_follow_status.user_id = row.Id
this.set_follow_status.old_status = row.follow_status
this.$api.get(this.$api.phpURL + 'manager/UserFollow/getFollowRecord', {id: row.Id}).then(res => {
this.follow_status_list = res.data
})
},
2023-09-17 18:08:36 +08:00
click_follow_remark (row) {
this.clickOk = false
this.follow_status_change_two = true
this.set_follow_status.id = row.id
this.set_follow_status.status = this.setStatus(row.follow_status)
this.set_follow_status.user_id = row.user_id
this.set_follow_status.old_status = row.follow_status
},
2020-11-22 11:08:44 +08:00
changeFolowStatus () {
// eslint-disable-next-line valid-typeof
if (typeof this.set_follow_status.status !== 'number') {
this.$alert('请选择跟进状态', '警告', {
confirmButtonText: '确定'
2020-11-12 16:49:54 +08:00
})
2020-11-22 11:08:44 +08:00
return
}
2020-11-26 17:23:54 +08:00
this.temps.follow_status = this.setStatus(this.set_follow_status.status)
2020-11-22 11:08:44 +08:00
this.clickOk = true
2024-03-20 10:55:02 +08:00
var up_data = {};
this.set_follow_status.file = this.fileList[0]
up_data.params = this.set_follow_status;
this.$api.upload(this.$api.phpURL + 'manager/UserFollow/changeFolowStatus',up_data).then(res => {
2020-11-22 11:08:44 +08:00
this.follow_status_change_fall = false
2023-09-17 18:08:36 +08:00
this.follow_status_change_two = false
this.set_follow_status.id = null
2024-03-22 11:25:09 +08:00
if (res.Code == 30000) {
this.$alert(res.msg, '警告', {
confirmButtonText: '确定'
})
}
2020-11-22 11:08:44 +08:00
})
},
click_username (row) {
this.userinfo_fall = true
this.$api.get(this.$api.phpURL + 'manager/UserFollow/getUserInfo', {id: row.Id}).then(res => {
this.user_info = res.data
})
},
2023-10-28 14:58:44 +08:00
click_phone () {
this.phone_fall = true
},
2020-11-22 11:08:44 +08:00
click_all_amount (row, index) {
this.cost_fall = true
this.cost_loading = true
2020-11-25 09:58:42 +08:00
this.$api.get(this.$api.phpURL + 'manager/UserFollow/getCostList', {id: row.Id, index: index, search: this.searchModel}).then(res => {
2020-11-22 11:08:44 +08:00
this.cost_list = res.data
this.cost_loading = false
2020-11-22 11:08:44 +08:00
})
},
click_account (row, index) {
this.account_fall = true
this.account_loading = true
2020-11-22 11:08:44 +08:00
this.$api.get(this.$api.phpURL + 'manager/UserFollow/getAccountList', {id: row.Id, index: index}).then(res => {
this.account_list = res.data
this.account_loading = false
2020-11-22 11:08:44 +08:00
})
2020-10-04 10:30:08 +08:00
},
2023-08-11 15:12:33 +08:00
select_manager() {
this.get();
this.sell_detail_info();
},
2020-11-26 17:23:54 +08:00
setStatus (status) {
switch (status) {
case 1:
2023-08-11 15:12:33 +08:00
return '待跟进'
2020-11-26 17:23:54 +08:00
case 2:
2023-08-11 15:12:33 +08:00
return '跟进中'
2020-11-26 17:23:54 +08:00
case 3:
2023-08-11 15:12:33 +08:00
return '跟进完成'
2020-11-26 17:23:54 +08:00
case 4:
return '跟进超时-消费减少'
case 5:
return '流失-需求减少'
case 6:
return '流失-暂时不用'
case 7:
return '流失-价格问题'
case 8:
return '流失-产品问题'
case 9:
return '流失-也可自定义'
case 10:
return '高意向客户'
case 11:
return '已完成'
}
},
2020-11-12 16:49:54 +08:00
dataExport () {
this.$api.getDownloadFile('/course/v1/order/ExportUserConsumeStatistics', this.searchModel)
2022-01-24 18:02:54 +08:00
},
copy_op(str) {
let copy = localStorage.getItem('copy');
let now = parseInt(new Date().getTime()/1000);
let time = (now - copy);
if (time<60) {
this.$message({
message: time+'秒后再复制',
type: 'warning'
})
return false
} else {
const save = (e) => {
e.clipboardData.setData('text/plain', str)
e.preventDefault()
}
document.addEventListener('copy', save)
document.execCommand('copy')
document.removeEventListener('copy', save)
localStorage.setItem('copy', now);
this.$message({
message: '复制成功',
type: 'success'
})
}
2023-09-17 18:08:36 +08:00
},
hujiao(r) {
var phone = r.LoginCode;
2023-10-28 14:58:44 +08:00
this.$api.post(this.$api.phpURL + 'manager/UserFollow/hujiao', {phone: phone}).then(res => {
if (res.Code == 30000) {
this.$message({
message: res.msg,
type: 'error'
})
} else {
this.$message({
message: '呼叫成功',
type: 'success'
})
}
})
},
hujiao2() {
var phone = this.phone_call;
2023-09-17 18:08:36 +08:00
this.$api.post(this.$api.phpURL + 'manager/UserFollow/hujiao', {phone: phone}).then(res => {
if (res.Code == 30000) {
this.$message({
message: res.msg,
type: 'error'
})
} else {
this.$message({
message: '呼叫成功',
type: 'success'
})
}
})
2024-03-20 10:55:02 +08:00
},
submitUpload() {
console.log(this.$refs);
},
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePreview(file) {
console.log(file);
},
// 自定义的提交函数,取出文件设置进请求参数
httpRequest(param) {
this.set_follow_status.file = param.file
},
handlePaste (e) {
var clipboardData = e.clipboardData; // IE
if (!clipboardData) {
//chrome
clipboardData = e.originalEvent.clipboardData;
}
var items='';
items = (e.clipboardData || window.clipboardData).items;
let file = null;
if (!items || items.length === 0) {
this.$message.error('当前浏览器不支持粘贴本地图片,请打开图片复制后再粘贴!');
return;
}
// 搜索剪切板items
for (let i = 0; i < items.length; i++) {
// 限制上传文件类型
if (items[i].type.indexOf('image') !== -1) {
file = items[i].getAsFile();
break;
}
}
// 对复制黏贴的类型进行判断,若是非文件类型,比如复制黏贴的文字,则不会调用上传文件的函数
if(file){
// 上传到图片服务器
this.fileList.push(file)
}
2020-10-04 10:30:08 +08:00
}
}
2020-11-12 16:49:54 +08:00
}
2020-10-04 10:30:08 +08:00
</script>
<style scoped>
</style>