|
@@ -83,6 +83,12 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="是否重粉" prop="userRepeat">
|
|
|
+ <el-select v-model="queryParams.userRepeat" placeholder="重粉" clearable size="small">
|
|
|
+ <el-option label="否" :value="0"/>
|
|
|
+ <el-option label="是" :value="1"/>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="客户等级" prop="level">
|
|
|
<el-select v-model="queryParams.level" placeholder="客户等级" clearable size="small">
|
|
|
<el-option
|
|
@@ -422,6 +428,20 @@
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="企业id" align="center" prop="corpId" />
|
|
|
+ <el-table-column label="重粉看课历史" width="100px" align="center" fixed="right">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div v-if="scope.row.fsUserId">
|
|
|
+ <el-tag type="success" v-if="scope.row.userRepeat == 0">正常</el-tag>
|
|
|
+ <el-tag type="danger" v-if="scope.row.userRepeat == 1">重粉</el-tag>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ @click="showLog(scope.row)"
|
|
|
+ >重粉看课历史
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="是否绑定会员" width="100px" align="center" fixed="right">
|
|
|
<template slot-scope="scope">
|
|
|
<el-tag v-if="scope.row.fsUserId" >已绑定</el-tag>
|
|
@@ -771,6 +791,70 @@
|
|
|
<mycustomer ref="mycustomer" @bindCustomerId="bindCustomerId"></mycustomer>
|
|
|
</el-dialog>
|
|
|
|
|
|
+ <!-- 重粉看课记录 -->
|
|
|
+ <el-drawer title="重粉看课历史" :visible.sync="log.open" size="75%" append-to-body>
|
|
|
+ <div style="padding: 10px">
|
|
|
+ <el-form :model="log.queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
|
|
|
+ <el-form-item label="所属项目" prop="project">
|
|
|
+ <el-select v-model="log.queryParams.project" placeholder="请选择项目" filterable clearable size="small">
|
|
|
+ <el-option
|
|
|
+ v-for="dict in projectOptions"
|
|
|
+ :key="dict.dictValue"
|
|
|
+ :label="dict.dictLabel"
|
|
|
+ :value="dict.dictValue"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="课程" prop="courseId">
|
|
|
+ <el-select filterable v-model="log.queryParams.courseId" placeholder="请选择课程" clearable size="small"
|
|
|
+ @change="courseChange(log.queryParams.courseId)">
|
|
|
+ <el-option
|
|
|
+ v-for="dict in courseLists"
|
|
|
+ :key="dict.dictValue"
|
|
|
+ :label="dict.dictLabel"
|
|
|
+ :value="dict.dictValue"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="小节" prop="videoId">
|
|
|
+ <el-select filterable v-model="log.queryParams.videoId" placeholder="请选择小节" clearable size="small">
|
|
|
+ <el-option
|
|
|
+ v-for="dict in videoList"
|
|
|
+ :key="dict.dictValue"
|
|
|
+ :label="dict.dictLabel"
|
|
|
+ :value="dict.dictValue"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQueryWatchLog">搜索</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <el-table v-loading="log.loading" :data="log.list">
|
|
|
+ <!-- <el-table-column label="企微" align="center" prop="qwUserName"/>-->
|
|
|
+ <el-table-column label="项目" align="center" prop="projectName"/>
|
|
|
+ <el-table-column label="课程" align="center" prop="courseName"/>
|
|
|
+ <el-table-column label="小节" align="aligner" prop="videoName"/>
|
|
|
+ <el-table-column label="记录时间" align="center" prop="createTime"/>
|
|
|
+ <el-table-column label="是否完课" align="center" prop="logType">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-tag v-if="scope.row.logType == 2" type="success">已完课</el-tag>
|
|
|
+ <el-tag v-else type="success">未完课</el-tag>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="完课时间" align="center" prop="finishTime"/>
|
|
|
+ </el-table>
|
|
|
+
|
|
|
+ <pagination
|
|
|
+ v-show="log.total>0"
|
|
|
+ :total="log.total"
|
|
|
+ :page.sync="log.queryParams.pageNum"
|
|
|
+ :limit.sync="log.queryParams.pageSize"
|
|
|
+ @pagination="logList"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </el-drawer>
|
|
|
+
|
|
|
<!-- 设置一个课程sop-->
|
|
|
<el-dialog :title="setSop.title" :visible.sync="setSop.open" width="1200px" append-to-body>
|
|
|
<SopDialog ref="SopDialog" @bindCourseSop="bindCourseSop"></SopDialog>
|
|
@@ -825,7 +909,7 @@ import {
|
|
|
setCustomerCourseSop,
|
|
|
getCustomerCourseSop,
|
|
|
setCustomerCourseSopList,
|
|
|
- unBindUserId, updateExternalContactCall,updateExternalContactStatus
|
|
|
+ unBindUserId, updateExternalContactCall,updateExternalContactStatus,getWatchLogList
|
|
|
} from '@/api/qw/externalContact'
|
|
|
import {getMyQwUserList, getMyQwCompanyList, updateUser,getQwUserListLikeName} from "@/api/qw/user";
|
|
|
import {listTag, getTag, searchTags,} from "@/api/qw/tag";
|
|
@@ -839,12 +923,32 @@ import info from "@/views/qw/externalContact/info.vue";
|
|
|
import { editTalk } from "@/api/qw/externalContactInfo";
|
|
|
import PaginationMore from "../../../components/PaginationMore/index.vue";
|
|
|
import userDetails from '@/views/store/components/userDetails.vue';
|
|
|
+import {courseList, videoList} from "@/api/course/courseRedPacketLog";
|
|
|
import Collection from './collection.vue';
|
|
|
export default {
|
|
|
name: "ExternalContact",
|
|
|
components:{PaginationMore, mycustomer,customerDetails,SopDialog,selectUser,info,userDetails,collection},
|
|
|
data() {
|
|
|
return {
|
|
|
+ projectOptions: [],
|
|
|
+ courseLists: [],
|
|
|
+ videoList: [],
|
|
|
+ //重粉记录的参数
|
|
|
+ log: {
|
|
|
+ open: false,
|
|
|
+ loading: true,
|
|
|
+ list: [],
|
|
|
+ total: 0,
|
|
|
+ queryParams: {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ externalUserId: null,
|
|
|
+ fsUserId: null,
|
|
|
+ projectId: null,
|
|
|
+ courseId: null,
|
|
|
+ videoId: null,
|
|
|
+ },
|
|
|
+ },
|
|
|
statusDialog: {
|
|
|
open: false,
|
|
|
title: "修改客户状态"
|
|
@@ -1033,7 +1137,8 @@ export default {
|
|
|
level:null,
|
|
|
wayId:null,
|
|
|
levelType:null,
|
|
|
- companyUser:null
|
|
|
+ companyUser:null,
|
|
|
+ userRepeat: null
|
|
|
},
|
|
|
selectTags:[],
|
|
|
// 表单参数
|
|
@@ -1048,6 +1153,9 @@ export default {
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
+ this.getDicts("sys_course_project").then(response => {
|
|
|
+ this.projectOptions = response.data;
|
|
|
+ });
|
|
|
|
|
|
this.getDicts("sys_qw_externalContact_type").then(response => {
|
|
|
this.typeOptions = response.data;
|
|
@@ -1094,6 +1202,38 @@ export default {
|
|
|
|
|
|
},
|
|
|
methods: {
|
|
|
+ /** 重粉查看操作 */
|
|
|
+ showLog(row) {
|
|
|
+ this.log.queryParams.fsUserId = row.fsUserId;
|
|
|
+ this.log.open = true;
|
|
|
+ this.log.loading = true;
|
|
|
+ courseList().then(response => {
|
|
|
+ this.courseLists = response.list;
|
|
|
+ this.logList();
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleQueryWatchLog() {
|
|
|
+ this.log.queryParams.pageNum = 1;
|
|
|
+ this.log.queryParams.pageSize = 10;
|
|
|
+ this.logList();
|
|
|
+ },
|
|
|
+ logList() {
|
|
|
+ getWatchLogList(this.log.queryParams).then(e => {
|
|
|
+ this.log.loading = false;
|
|
|
+ this.log.list = e.rows;
|
|
|
+ this.log.total = e.total;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ courseChange(row) {
|
|
|
+ this.log.queryParams.videoId = null;
|
|
|
+ if (row === '') {
|
|
|
+ this.videoList = [];
|
|
|
+ return
|
|
|
+ }
|
|
|
+ videoList(row).then(response => {
|
|
|
+ this.videoList = response.list
|
|
|
+ });
|
|
|
+ },
|
|
|
handleMemberdetails(row){
|
|
|
this.show.open=true;
|
|
|
setTimeout(() => {
|
|
@@ -1110,7 +1250,7 @@ export default {
|
|
|
},
|
|
|
closeCollection(){
|
|
|
this.collection.open = false;
|
|
|
- },
|
|
|
+ },
|
|
|
onQwUserNameClear() {
|
|
|
this.queryParams.qwUserId = null; // 同时清空 qwUserId
|
|
|
},
|