Browse Source

销售管理后台:企微客户那块添加一个详情,展示客户相关数据、看课轨迹

chenguo 2 days ago
parent
commit
4228f5837e

+ 223 - 0
src/views/qw/externalContact/externalContactDetail.vue

@@ -0,0 +1,223 @@
+<template>
+  <div class="contents" v-if="item!=null">
+    <div class="customer-title"  >
+        {{item.name}}
+    </div>
+    <el-descriptions title="" :column="3" border>
+      <el-descriptions-item label="企微客户ID"  >
+        <span v-if="item!=null">{{item.id}}</span>
+      </el-descriptions-item>
+      <el-descriptions-item label="企微客户头像" >
+        <el-image
+          v-if="item!=null"
+          style="width: 100px; height: 100px"
+          :src="item.avatar"
+          fit="contain"
+          @click="openImageViewer(item.avatar)"/>
+      </el-descriptions-item>
+      <el-descriptions-item label="企微客户名称" >
+        <span v-if="item!=null">{{item.name}}</span>
+      </el-descriptions-item>
+      <el-descriptions-item label="客户称呼" >
+        <span v-if="item!=null">{{item.stageStatus}}</span>
+      </el-descriptions-item>
+      <el-descriptions-item label="销售企微昵称" >
+        <span v-if="item!=null">{{item.qwUserName}}</span>
+      </el-descriptions-item>
+      <el-descriptions-item label="企微部门" >
+        <span v-if="item!=null">{{item.departmentName}}</span>
+      </el-descriptions-item>
+      <el-descriptions-item label="用户类别" >
+        <span v-if="item!=null">
+                    <el-tag  v-for="(dict, index) in typeOptions"    v-if="item.type==dict.dictValue">{{dict.dictLabel}}</el-tag>
+        </span>
+      </el-descriptions-item>
+      <el-descriptions-item label="性别" >
+        <span v-if="item!=null">
+                    <el-tag  v-for="(dict, index) in genderOptions"    v-if="item.gender==dict.dictValue">{{dict.dictLabel}}</el-tag>
+        </span>
+      </el-descriptions-item>
+      <el-descriptions-item label="备注" >
+        <span v-if="item!=null">{{item.remark}}</span>
+      </el-descriptions-item>
+      <el-descriptions-item label="描述信息" >
+        <span v-if="item!=null">{{item.description}}</span>
+      </el-descriptions-item>
+      <el-descriptions-item label="标签" >
+        <span v-if="item.tagIdsName!=null && item.tagIdsName.length>0">{{item.tagIdsName.join(',')}}</span>
+      </el-descriptions-item>
+      <el-descriptions-item label="状态" >
+        <span v-if="item!=null">
+                    <el-tag  v-for="(dict, index) in statusOptions"    v-if="item.status==dict.dictValue">{{dict.dictLabel}}</el-tag>
+        </span>
+      </el-descriptions-item>
+      <el-descriptions-item label="客户等级" >
+        <span v-if="item!=null">
+                    <el-tag  v-for="(dict, index) in ratingType"    v-if="item.level==dict.dictValue">{{dict.dictLabel}}</el-tag>
+        </span>
+      </el-descriptions-item>
+      <el-descriptions-item label="等级状态" >
+        <span v-if="item!=null">
+                    <el-tag  v-for="(dict, index) in ratingUpFall"    v-if="item.levelType==dict.dictValue">{{dict.dictLabel}}</el-tag>
+        </span>
+      </el-descriptions-item>
+      <el-descriptions-item label="添加时间" >
+        <span v-if="item!=null">{{item.createTime}}</span>
+      </el-descriptions-item>
+      <el-descriptions-item label="流失时间" >
+        <span v-if="item!=null">{{item.lossTime}}</span>
+      </el-descriptions-item>
+      <el-descriptions-item label="删除时间" >
+        <span v-if="item!=null">{{item.delTime}}</span>
+      </el-descriptions-item>
+      <el-descriptions-item label="备注电话号码" >
+        <span v-if="item!=null && item.remarkMobiles != '[]'">{{item.remarkMobiles}}</span>
+      </el-descriptions-item>
+      <el-descriptions-item label="备注企业名称" >
+        <span v-if="item!=null">{{item.remarkCorpName}}</span>
+      </el-descriptions-item>
+      <el-descriptions-item label="来源" >
+        <span v-if="item!=null">
+                    <el-tag  v-for="(dict, index) in addWayOptions"    v-if="item.addWay==dict.dictValue">{{dict.dictLabel}}</el-tag>
+        </span>
+      </el-descriptions-item>
+      <el-descriptions-item label="转接状态" >
+        <span v-if="item!=null">
+                    <el-tag  v-for="(dict, index) in transferStatusOptions"    v-if="item.transferStatus==dict.dictValue">{{dict.dictLabel}}</el-tag>
+        </span>
+      </el-descriptions-item>
+      <el-descriptions-item label="企业id" >
+        <span v-if="item!=null">{{item.corpId}}</span>
+      </el-descriptions-item>
+      <el-descriptions-item label="是否绑定会员" >
+        <span v-if="item!=null">{{item.fsUserId?'已绑定':'未绑定'}}</span>
+      </el-descriptions-item>
+    </el-descriptions>
+
+    <el-tabs style="margin-top:15px;"  z-index = "99" type="border-card" v-model="activeName" @tab-click="handleClick">
+      <el-tab-pane label="看课记录" name="watch">
+        <external-contact-watch-log ref="watch"></external-contact-watch-log>
+      </el-tab-pane>
+    </el-tabs>
+
+
+    <!-- 大图预览对话框 -->
+    <el-dialog
+      :visible.sync="dialogVisible"
+      :modal="false"
+      width="1200px"
+      append-to-body>
+      <img
+        :src="this.dialogImageUrl"
+        style="display: block; max-width: 100%; margin: 0 auto"
+      />
+    </el-dialog>
+
+  </div>
+</template>
+
+<script>
+
+import {listExternalContact} from "@/api/qw/externalContact";
+import externalContactWatchLog from "@/views/qw/externalContact/externalContactWatchLog"
+export default {
+  name: "externalContactDetail",
+  components: {externalContactWatchLog},
+  data() {
+    return {
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        id: null,
+      },
+      item:null,
+      // 用户类别字典
+      typeOptions: [],
+      ratingType: [],
+      ratingUpFall: [],
+      // 性别字典
+      genderOptions: [],
+      // 来源字典
+      addWayOptions: [],
+      queryTagParams:{
+        pageNum: 1,
+        pageSize: 10,
+        total:0,
+        name:null,
+        corpId:null,
+      },
+      transferStatusOptions:[],
+      statusOptions:[],
+      activeName:"",
+      dialogImageUrl:null,
+      dialogVisible: false
+    };
+  },
+  created() {
+    this.getDicts("sys_qw_externalContact_type").then(response => {
+      this.typeOptions = response.data;
+    });
+    this.getDicts("sys_qw_sop_rating_type").then(response => {
+      this.ratingType = response.data;
+    });
+    this.getDicts("sys_qw_sop_rating_upFall").then(response => {
+      this.ratingUpFall = response.data;
+    });
+    this.getDicts("sys_sex").then(response => {
+      this.genderOptions = response.data;
+    });
+    this.getDicts("sys_qw_externalContact_addWay").then(response => {
+      this.addWayOptions = response.data;
+    });
+    this.getDicts("sys_qw_external_contact_status").then(response => {
+      this.statusOptions = response.data;
+    });
+    this.getDicts("sys_qw_transfer_status").then(response => {
+      this.transferStatusOptions = response.data;
+    });
+  },
+  mounted(){
+  },
+  methods: {
+    handleClick(tab, event) {
+      if(tab.name=="watch"){
+        this.$refs.watch.getData(this.item.customerId);
+      }
+    },
+    openImageViewer(url) {
+      // 打开大图预览对话框
+      this.dialogImageUrl=url
+      this.dialogVisible = true;
+    },
+    getBaseData(id){
+      this.queryParams.id=id;
+      listExternalContact(this.queryParams).then(response => {
+        this.item = response.rows[0];
+      })
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+.contents{
+  height: 100%;
+  background-color: #fff;
+  padding: 0px 20px;
+
+}
+.customer-title{
+  margin-bottom: 15px;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  .customer-name{
+    font-size: 28px;
+  }
+}
+</style>
+<style>
+.el-descriptions-item__label.is-bordered-label{
+  font-weight: normal;
+}
+
+</style>

+ 497 - 0
src/views/qw/externalContact/externalContactWatchLog.vue

@@ -0,0 +1,497 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
+      <el-form-item label="课程" prop="courseId">
+        <el-select filterable v-model="queryParams.courseId" placeholder="请选择课程" clearable size="small"
+                   @change="courseChange(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="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 label="营期时间" prop="scheduleTime">
+        <el-date-picker
+          v-model="scheduleTime"
+          type="daterange"
+          size="small"
+          style="width: 240px"
+          value-format="yyyy-MM-dd"
+          range-separator="-"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          @change="handleScheduleTimeChange">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createTime">
+        <el-date-picker v-model="createTime" size="small" style="width: 220px" value-format="yyyy-MM-dd"
+                        type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
+                        @change="createChange"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="最新更新时间" prop="updateTime">
+        <el-date-picker v-model="updateTime" size="small" style="width: 220px" value-format="yyyy-MM-dd" type="daterange"
+                        range-separator="-" start-placeholder="开始日期"
+                        end-placeholder="结束日期" @change="updateChange"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="看课进度" prop="courseId">
+        <el-select filterable v-model="queryParams.logType" placeholder="请选择" clearable size="small">
+          <el-option
+            v-for="dict in logTypeOptions"
+            :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="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['course:courseWatchLog:myExport']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table border v-loading="loading" :data="courseWatchLogList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="记录编号" align="center" prop="logId"/>
+      <el-table-column label="用户昵称" align="center">
+        <template slot-scope="scope">
+          {{ queryParams.sendType=='1' ? scope.row.fsNickName : scope.row.externalUserName }}
+        </template>
+      </el-table-column>
+      <el-table-column label="课程名称" align="center" prop="courseName"/>
+      <el-table-column label="小节名称" align="center" prop="videoName"/>
+      <el-table-column label="记录类型" align="center" prop="logType">
+        <template slot-scope="scope">
+          <dict-tag :options="logTypeOptions" :value="scope.row.logType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="播放时长" align="center" prop="duration"/>
+      <el-table-column label="所属企微" align="center" prop="qwUserName" v-if="queryParams.sendType==2" />
+      <el-table-column label="创建时间" align="center" prop="createTime" width="100px"/>
+      <el-table-column label="更新时间" align="center" prop="updateTime" width="100px" />
+      <el-table-column label="完课时间" align="center" prop="finishTime" width="100px" />
+      <el-table-column label="营期时间" align="center" prop="campPeriodTime" />
+      <el-table-column
+        fixed="right"
+        label="操作"
+        width="100">
+        <template slot-scope="scope">
+          <el-button @click="openAnswerLogFun(scope.row)" type="text" size="small">答题记录</el-button>
+          <el-button @click="openRedLogFun(scope.row)" type="text" size="small">红包记录</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+
+    <el-drawer title="答题记录" :visible.sync="openAnswerLog" size="70%" append-to-body>
+      <el-table border v-loading="" :data="answerLogsList">
+        <el-table-column label="会员用户" align="center" prop="userName">
+          <template slot-scope="scope">
+            <div style="display: flex;white-space: nowrap">
+              <div style="margin: auto">
+                {{ scope.row.userName }}
+              </div>
+              <el-popover
+                placement="right"
+                title=""
+                trigger="hover">
+                <img slot="reference" :src="scope.row.fsAvatar" style="width: 30px;height: 30px">
+                <img :src="scope.row.fsAvatar" style="max-width: 200px;max-height: 200px">
+              </el-popover>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="课程名称" align="center" prop="courseName"/>
+        <el-table-column label="小节名称" align="center" prop="videoName"/>
+        <el-table-column label="是否全部正确" align="center" prop="isRight">
+          <template slot-scope="scope">
+            <dict-tag :options="sysCompanyOr" :value="scope.row.isRight"></dict-tag>
+          </template>
+        </el-table-column>
+        <el-table-column label="销售名称" align="center" prop="companyUserName"/>
+        <el-table-column label="企微员工名称" align="center" prop="qwUserName"/>
+        <el-table-column label="公司名称" align="center" prop="companyName"/>
+        <el-table-column label="创建时间" align="center" prop="createTime"/>
+      </el-table>
+
+      <pagination
+        v-show="answerLogTotal>0"
+        :total="answerLogTotal"
+        :page.sync="answerLogQueryParams.pageNum"
+        :limit.sync="answerLogQueryParams.pageSize"
+        @pagination="answerLogList"
+      />
+    </el-drawer>
+
+    <el-drawer title="红包记录" :visible.sync="openRedLog" size="70%" append-to-body>
+      <el-table border v-loading="" :data="redLogsList">
+        <el-table-column type="selection" width="55" align="center" />
+        <el-table-column label="记录编号" align="center" prop="logId" />
+        <el-table-column label="批次单号" align="center" prop="outBatchNo" />
+        <el-table-column label="课程名称" align="center" prop="courseId" >
+          <template slot-scope="scope">
+            <span prop="status" v-for="(item, index) in courseLists"    v-if="scope.row.courseId==item.dictValue">{{item.dictLabel}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="小节名称" align="center" prop="title" />
+<!--        <el-table-column label="会员id" align="center" prop="userId" />-->
+        <el-table-column label="会员用户" align="center" prop="fsNickName">
+          <template slot-scope="scope">
+            <div style="display: flex;white-space: nowrap">
+              <div style="margin: auto">
+                {{scope.row.fsNickName}}
+              </div>
+              <el-popover
+                placement="right"
+                title=""
+                trigger="hover">
+                <img slot="reference" :src="scope.row.fsAvatar" style="width: 30px;height: 30px">
+                <img :src="scope.row.fsAvatar" style="max-width: 200px;max-height: 200px">
+              </el-popover>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="转帐金额" align="center" prop="amount" />
+        <el-table-column label="状态" align="center" prop="status" >
+          <template slot-scope="scope">
+            <el-tag>{{ scope.row.status === 0 ? "发送中" : "已完成" }}</el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column label="所属企微" align="center" prop="qwUserName" />
+        <el-table-column label="创建时间" align="center" prop="createTime" />
+      </el-table>
+
+      <pagination
+        v-show="redLogTotal>0"
+        :total="redLogTotal"
+        :page.sync="redLogQueryParams.pageNum"
+        :limit.sync="redLogQueryParams.pageSize"
+        @pagination="redLogList"
+      />
+    </el-drawer>
+
+  </div>
+</template>
+
+<script>
+import {
+  addCourseWatchLog,
+  delCourseWatchLog,
+  exportCourseWatchLog,
+  getCourseWatchLog,
+  myListCourseWatchLog,
+  updateCourseWatchLog
+} from "@/api/course/courseWatchLog";
+import {courseList, myListCourseRedPacketLog, videoList} from '@/api/course/courseRedPacketLog'
+import {myListLogs} from "@/api/course/courseAnswerlogs";
+import {getMyQwUserList} from "@/api/qw/user";
+
+
+export default {
+  name: "CourseWatchLog",
+  data() {
+    return {
+      createTime: null,
+      updateTime:null,
+      courseLists: [],
+      videoList: [],
+      myQwUserList: [],
+      logTypeOptions: [],
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      scheduleTime: null,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      sysCompanyOr: [],
+      // 总条数
+      total: 0,
+      // 短链课程看课记录表格数据
+      courseWatchLogList: [],
+
+
+      openAnswerLog: false,
+      loadingAnswerLog: true,
+      answerLogsList: [],
+      answerLogTotal: 0,
+      answerLogQueryParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      sendTypeOptions:[{
+        dictLabel:"会员",dictValue:'1'
+      },
+        {
+          dictLabel:"企微",dictValue:'2'
+        }
+      ],
+
+
+      openRedLog: false,
+      loadingRedLog: true,
+      redLogsList: [],
+      redLogTotal: 0,
+      redLogQueryParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        userId: null,
+        videoId: null,
+        nickName: null,
+        logType: null,
+        qwExternalContactId: null,
+        externalUserName:null,
+        duration: null,
+        qwUserId: null,
+        companyUserId: null,
+        companyId: null,
+        courseId: null,
+        sTime: null,
+        eTime: null,
+        upSTime:null,
+        upETime:null,
+        scheduleStartTime: null,
+        scheduleEndTime: null,
+        sendType:'1',
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {}
+    };
+  },
+  created() {
+    courseList().then(response => {
+      this.courseLists = response.list;
+    });
+    this.getList();
+    this.getDicts("sys_course_watch_log_type").then(response => {
+      this.logTypeOptions = response.data;
+    });
+
+    this.getDicts("sys_company_or").then(response => {
+      this.sysCompanyOr = response.data;
+    });
+    getMyQwUserList().then(response => {
+      this.myQwUserList = response.data;
+    });
+  },
+  methods: {
+    courseChange(row) {
+      this.queryParams.videoId = null;
+      if (row === '') {
+        this.videoList = [];
+        return
+      }
+      videoList(row).then(response => {
+        this.videoList = response.list
+      });
+    },
+    updateQwuser() {
+      for (const user of this.myQwUserList) {
+        if (user.dictValue == this.queryParams.qwUserId) {
+          this.queryParams.corpId = user.corpId;
+          break;
+        }
+      }
+      this.getList();
+    },
+    createChange() {
+      if (this.createTime != null) {
+        this.queryParams.sTime = this.createTime[0];
+        this.queryParams.eTime = this.createTime[1];
+      } else {
+        this.queryParams.sTime = null;
+        this.queryParams.eTime = null;
+      }
+    },
+    updateChange(){
+      if (this.updateTime != null) {
+        this.queryParams.upSTime = this.updateTime[0];
+        this.queryParams.upETime = this.updateTime[1];
+      } else {
+        this.queryParams.upSTime = null;
+        this.queryParams.upETime = null;
+      }
+    },
+    handleClickX(tab) {
+      this.activeName=tab.name;
+      if(tab.name=="00"){
+        this.queryParams.logType=null;
+      }else{
+        this.queryParams.logType=tab.name;
+      }
+      this.getList()
+    },
+
+    handleScheduleTimeChange(val) {
+      if (val) {
+        this.queryParams.scheduleStartTime = val[0];
+        this.queryParams.scheduleEndTime = val[1];
+      } else {
+        this.queryParams.scheduleStartTime = null;
+        this.queryParams.scheduleEndTime = null;
+      }
+    },
+    /** 查询短链课程看课记录列表 */
+    getList() {
+      this.loading = true;
+      let param = JSON.parse(JSON.stringify(this.queryParams));
+      if (param.logType == "10") {
+        param.logType = null;
+      }
+      myListCourseWatchLog(param).then(response => {
+        this.courseWatchLogList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        logId: null,
+        userId: null,
+        videoId: null,
+        logType: null,
+        createTime: null,
+        updateTime: null,
+        qwExternalContactId: null,
+        externalUserName:null,
+        duration: null,
+        qwUserId: null,
+        companyUserId: null,
+        companyId: null,
+        courseId: null,
+        scheduleStartTime: null,
+        scheduleEndTime: null,
+      };
+      this.scheduleTime=null;
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.createTime = null;
+      this.queryParams.sTime = null;
+      this.queryParams.eTime = null;
+      this.queryParams.upSTime = null;
+      this.queryParams.upETime = null;
+      this.queryParams.scheduleStartTime = null;
+      this.queryParams.scheduleEndTime = null;
+      this.scheduleTime=null;
+      this.updateTime=null;
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.logId)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有短链课程看课记录数据项?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        this.exportLoading = true;
+        return exportCourseWatchLog(queryParams);
+      }).then(response => {
+        this.download(response.msg);
+        this.exportLoading = false;
+      }).catch(() => {
+      });
+    },
+    openAnswerLogFun(row) {
+      this.openAnswerLog = true;
+      this.answerLogQueryParams.watchLogId = row.logId;
+      this.answerLogList();
+    },
+    answerLogList() {
+      this.loadingAnswerLog = true;
+      myListLogs(this.answerLogQueryParams).then(e => {
+        this.answerLogsList = e.rows;
+        this.answerLogTotal = e.total;
+        this.loadingAnswerLog = false;
+      })
+    },
+    openRedLogFun(row) {
+      this.openRedLog = true;
+      this.redLogQueryParams.watchLogId = row.logId;
+      this.redLogList();
+    },
+    redLogList() {
+      this.loadingRedLog = true;
+      console.info(this.redLogQueryParams)
+      myListCourseRedPacketLog(this.redLogQueryParams).then(e => {
+        this.redLogsList = e.rows;
+        this.redLogTotal = e.total;
+        this.loadingRedLog = false;
+      })
+    },
+  }
+};
+</script>

+ 21 - 7
src/views/qw/externalContact/index.vue

@@ -386,7 +386,14 @@
 <!--            <span v-if="scope.row.customerId">换绑CRM</span>-->
 <!--            <span v-else>绑定CRM</span>-->
 <!--          </el-button>-->
-
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-user-solid "
+            @click="handleShow(scope.row)"
+          >
+            <span>客户详情</span>
+          </el-button>
           <el-button
             size="mini"
             type="text"
@@ -434,7 +441,7 @@
     />
 
     <el-drawer size="75%" :title="show.title" :visible.sync="show.open">
-      <customer-details  ref="customerDetails" @refreshList="refreshList"/>
+      <external-contact-detail  ref="externalContactDetail"/>
     </el-drawer>
 
 
@@ -654,9 +661,11 @@ import  selectUser  from "@/views/qw/externalContact/selectUser.vue";
 import info from "@/views/qw/externalContact/info.vue";
 import { editTalk } from "@/api/qw/externalContactInfo";
 import PaginationMore from "../../../components/PaginationMore/index.vue";
+import {getCustomerExt} from "@/api/crm/customerExt";
+import externalContactDetail from "@/views/qw/externalContact/externalContactDetail"
 export default {
   name: "ExternalContact",
-  components:{PaginationMore, mycustomer,customerDetails,SopDialog,selectUser,info},
+  components:{PaginationMore, mycustomer,customerDetails,SopDialog,selectUser,info,externalContactDetail},
   data() {
     return {
       user:{
@@ -917,11 +926,8 @@ export default {
     handleShow(row){
       this.show.open=true;
       var that=this;
-      const tab = "visit";
       setTimeout(() => {
-        that.$refs.customerDetails.getDetails(row.customerId);
-        that.$refs.customerDetails.handleClick(tab);
-
+        that.$refs.externalContactDetail.getBaseData(row.id);
       }, 200);
     },
 
@@ -1403,6 +1409,14 @@ export default {
         this.getList();
       })
     },
+    handleUserDetail(val){
+      //会员详情
+      this.show.open=true;
+      /*this.customerDetails.getDetails(val.id).then(res=>{
+
+      })*/
+
+    },
 
     bindCustomerId(row){