瀏覽代碼

优化页面展示,新增红包记录和积分信息

chenguo 10 小時之前
父節點
當前提交
0a370886d6

+ 18 - 0
src/api/company/companyIntegral.js

@@ -0,0 +1,18 @@
+import request from '@/utils/request'
+
+export function listUserIntegralLogs(query) {
+  return request({
+    url: '/company/companyIntegral/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 导出积分记录
+export function exportUserIntegralLogs(query) {
+  return request({
+    url: '/company/companyIntegral/export',
+    method: 'get',
+    params: query
+  })
+}

+ 25 - 17
src/views/qw/externalContact/externalContactDetail.vue

@@ -15,18 +15,12 @@
           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>
@@ -62,7 +56,7 @@
         </span>
       </el-descriptions-item>
       <el-descriptions-item label="添加时间" >
-        <span v-if="item!=null">{{item.createTime}}</span>
+        <span  v-if="item!=null">{{item.createTime}}</span>
       </el-descriptions-item>
       <el-descriptions-item label="流失时间" >
         <span v-if="item!=null">{{item.lossTime}}</span>
@@ -71,7 +65,7 @@
         <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>
+        <span v-if="item.remarkMobiles !== '[]'">{{item.remarkMobiles}}</span>
       </el-descriptions-item>
       <el-descriptions-item label="备注企业名称" >
         <span v-if="item!=null">{{item.remarkCorpName}}</span>
@@ -95,11 +89,17 @@
     </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">
+      <el-tab-pane label="看课轨迹" name="watch">
         <external-contact-watch-log ref="watch"></external-contact-watch-log>
       </el-tab-pane>
-      <el-tab-pane label="订单记录" name="list">
-        <external-contact-order ref="list"></external-contact-order>
+      <el-tab-pane label="订单信息" name="list">
+        <external-contact-order ref="order"></external-contact-order>
+      </el-tab-pane>
+      <el-tab-pane label="红包记录" name="red">
+        <external-contact-red ref="red"></external-contact-red>
+      </el-tab-pane>
+      <el-tab-pane label="积分信息" name="integral">
+        <external-contact-integral ref="integral"></external-contact-integral>
       </el-tab-pane>
     </el-tabs>
 
@@ -108,12 +108,12 @@
     <el-dialog
       :visible.sync="dialogVisible"
       :modal="false"
-      width="1200px"
+      width="40%"
       append-to-body>
       <img
         :src="this.dialogImageUrl"
         style="display: block; max-width: 100%; margin: 0 auto"
-      />
+       alt="头像"/>
     </el-dialog>
 
   </div>
@@ -123,10 +123,12 @@
 
 import {listExternalContact} from "@/api/qw/externalContact";
 import externalContactWatchLog from "@/views/qw/externalContact/externalContactWatchLog"
-import externalContactOrder from "@/views/qw/externalContact/externalContactOrder.vue"
+import externalContactOrder from "@/views/qw/externalContact/externalContactOrder"
+import externalContactRed from "@/views/qw/externalContact/externalContactRed"
+import externalContactIntegral from "@/views/qw/externalContact/externalContactIntegral"
 export default {
   name: "externalContactDetail",
-  components: {externalContactWatchLog,externalContactOrder},
+  components: {externalContactWatchLog,externalContactOrder,externalContactRed,externalContactIntegral},
   data() {
     return {
       queryParams: {
@@ -187,8 +189,14 @@ export default {
       if(tab.name==="watch"){
         this.$refs.watch.getData(this.item.fsUserId);
       }
-      if(tab.name==="list"){
-        this.$refs.list.getData(this.item.fsUserId);
+      if(tab.name==="order"){
+        this.$refs.order.getData(this.item.fsUserId);
+      }
+      if(tab.name==="red"){
+        this.$refs.red.getData(this.item.fsUserId);
+      }
+      if(tab.name==="integral"){
+        this.$refs.integral.getData(this.item.fsUserId);
       }
     },
     openImageViewer(url) {

+ 217 - 0
src/views/qw/externalContact/externalContactIntegral.vue

@@ -0,0 +1,217 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px">
+<!--      <el-form-item label="用户id" prop="userId">
+        <el-input
+          v-model="queryParams.userId"
+          placeholder="请输入用户id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>-->
+<!--      <el-form-item label="用户电话" prop="phone">
+        <el-input
+          v-model="queryParams.phone"
+          placeholder="请输入用户电话"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>-->
+      <el-form-item label="订单关联" prop="businessId">
+        <el-input
+          v-model="queryParams.businessId"
+          placeholder="请输入订单关联"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </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="change"></el-date-picker>
+              </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="['company:integral:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" border :data="userIntegralLogsList" @selection-change="handleSelectionChange">
+      <el-table-column label="用户id" align="center" prop="userId" />
+      <el-table-column label="用户昵称" align="center" prop="nickName" />
+      <el-table-column label="用户电话" align="center" prop="phone" />
+      <el-table-column label="类别" align="center" prop="logType" >
+        <template slot-scope="scope">
+          <dict-tag :options="intefralLogTypeOptions" :value="scope.row.logType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="积分" align="center" prop="integral" />
+      <el-table-column label="积分余额" align="center" prop="balance" />
+      <el-table-column label="订单关联id" align="center" prop="businessId" />
+      <el-table-column label="时间" align="center" prop="createTime" />
+
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+  </div>
+</template>
+
+<script>
+import { listUserIntegralLogs,exportUserIntegralLogs } from "@/api/company/companyIntegral";
+
+export default {
+  name: "externalContactIntegral",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      intefralLogTypeOptions: [],
+      // 总条数
+      total: 0,
+      // 积分记录表格数据
+      userIntegralLogsList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      createTime:null,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        userId: null,
+        logtype: null,
+        integral: null,
+        balance: null,
+        businessId: null,
+        createTime: null,
+        phone:null,
+        sTime:null,
+        eTime:null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getDicts("sys_integral_log_type").then(response => {
+      this.intefralLogTypeOptions = response.data;
+    });
+  },
+  methods: {
+    /** 查询积分记录列表 */
+    getList() {
+      this.loading = true;
+      listUserIntegralLogs(this.queryParams).then(response => {
+        this.userIntegralLogsList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        //userId: null,
+        logType: null,
+        integral: null,
+        balance: null,
+        businessId: null,
+        createTime: 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.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    change(){
+          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;
+          }
+
+        },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有积分记录数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.exportLoading = true;
+          return exportUserIntegralLogs(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+          this.exportLoading = false;
+        }).catch(() => {});
+    },
+    getData(id){
+      this.queryParams.userId = id;
+      this.getList();
+    }
+  }
+};
+</script>

+ 19 - 19
src/views/qw/externalContact/externalContactOrder.vue

@@ -60,7 +60,7 @@
           <el-form-item label="物流状态" prop="deliveryStatus">
             <el-select  style="width:220px" v-model="queryParams.deliveryStatus" placeholder="请选择物流状态" clearable size="small" >
               <el-option
-                v-for="item in deliveryStatusOptions"
+                v-for="(item,index) in deliveryStatusOptions"
                 :key="'ecDeliveryStatus'+item.dictValue"
                 :label="item.dictLabel"
                 :value="item.dictValue"
@@ -72,7 +72,7 @@
           <el-form-item label="结算状态" prop="deliveryPayStatus">
             <el-select style="width:220px" v-model="queryParams.deliveryPayStatus" placeholder="请选择物流结算状态" clearable size="small" >
               <el-option
-                v-for="item in deliveryPayStatusOptions"
+                v-for="(item,index) in deliveryPayStatusOptions"
                 :key="'ecDeliveryPayStatus'+item.dictValue"
                 :label="item.dictLabel"
                 :value="item.dictValue"
@@ -110,8 +110,8 @@
           <el-form-item label="是否首次进线" prop="isFirst">
             <el-select filterable v-model="queryParams.isFirst" style="width:220px" placeholder="状态" clearable size="small">
               <el-option
-                v-for="dict in orOptions"
-                :key="'ecIsFirst'+dict.dictValue"
+                v-for="(dict,index) in orOptions"
+                :key="'ecIsFirst'+dict.dictValue+index"
                 :label="dict.dictLabel"
                 :value="dict.dictValue"
               />
@@ -124,7 +124,7 @@
           <el-form-item label="档期归属" prop="scheduleId"  >
             <el-select multiple filterable style="width: 220px" v-model="scheduleIdArr" placeholder="请选择档期" clearable size="small" >
               <el-option
-                v-for="item in scheduleOptions"
+                v-for="(item,index) in scheduleOptions"
                 :key="'ecScheduleId'+item.id"
                 :label="item.name"
                 :value="item.id"
@@ -136,7 +136,7 @@
           <el-form-item label="订单购买类型" prop="orderBuyType">
             <el-select multiple filterable style="width: 220px" v-model="buyTypeArr" placeholder="请选择购买类型" clearable size="small" >
               <el-option
-                v-for="item in orderBuyTypeOptions"
+                v-for="(item,index) in orderBuyTypeOptions"
                 :key="'ecOrderBuyType'+item.dictValue"
                 :label="item.dictLabel"
                 :value="item.dictValue"
@@ -148,8 +148,8 @@
           <el-form-item label="渠道" prop="channel">
             <el-select multiple filterable style="width: 220px" v-model="channelArr" placeholder="请选择渠道" clearable size="small" >
               <el-option
-                v-for="item in channelOptions"
-                :key="'ecChannel'+item.dictValue"
+                v-for="(item, index) in channelOptions"
+                :key="item.dictValue+index"
                 :label="item.dictLabel"
                 :value="item.dictValue"
               />
@@ -162,7 +162,7 @@
           <el-form-item label="企微主体" prop="qwSubject">
             <el-select multiple filterable style="width: 220px" v-model="qwSubjectArr" placeholder="请选择企微主体" clearable size="small" >
               <el-option
-                v-for="item in qwSubjectOptions"
+                v-for="(item,index) in qwSubjectOptions"
                 :key="'ecQwSubject'+item.dictValue"
                 :label="item.dictLabel"
                 :value="item.dictValue"
@@ -222,7 +222,7 @@
         </el-col>
         <el-col :span="7">
           <el-form-item label="订单来源" prop="source">
-            <el-select v-model="queryParams.source" style="width:220px" placeholder="请选择是否支付" clearable size="small">
+            <el-select v-model="queryParams.source" style="width:220px" placeholder="请选择订单来源" clearable size="small">
               <el-option
                 v-for="dict in sourceOptions"
                 :key="'ecSource'+dict.dictValue"
@@ -236,10 +236,10 @@
       <el-row>
         <el-col :span="7">
           <el-form-item label="订单类型" prop="orderType">
-            <el-select v-model="queryParams.orderType" style="width:220px" placeholder="状态" clearable size="small">
+            <el-select v-model="queryParams.orderType" style="width:220px" placeholder="请选择订单类型" clearable size="small">
               <el-option
-                v-for="dict in orderTypeOptions"
-                :key="'ecOrderType'+dict.dictValue"
+                v-for="(dict,index) in orderTypeOptions"
+                :key="'ecOrderType'+dict.dictValue+index"
                 :label="dict.dictLabel"
                 :value="dict.dictValue"
               />
@@ -250,7 +250,7 @@
           <el-form-item label="支付方式" prop="payType">
             <el-select  multiple  v-model="payTypeArr" style="width:220px" placeholder="请选择支付方式" clearable size="small" >
               <el-option
-                v-for="item in PayOptions"
+                v-for="(item,index) in PayOptions"
                 :key="'ecPayType'+item.dictValue"
                 :label="item.dictLabel"
                 :value="item.dictValue"
@@ -262,7 +262,7 @@
           <el-form-item label="订单状态" prop="status">
             <el-select  multiple  v-model="queryParams.status" style="width:220px" placeholder="请选择订单状态" clearable size="small" >
               <el-option
-                v-for="item in orderOptions"
+                v-for="(item,index) in orderOptions"
                 :key="'ecStatus'+item.dictValue"
                 :label="item.dictLabel"
                 :value="item.dictValue"
@@ -328,9 +328,9 @@
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
-    <el-table height="450" v-loading="loading" border :data="orderList" @selection-change="handleSelectionChange" >
+    <el-table height="450" v-loading="loading" border :data="orderList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="药品订单号12" align="center" prop="orderCode" width="180px"/>
+      <el-table-column label="药品订单号" align="center" prop="orderCode" width="180px"/>
       <el-table-column label="所属公司" align="center" prop="companyName" />
       <el-table-column label="员工" align="center" prop="companyUserName" />
       <el-table-column label="就诊人" align="center" prop="patientName" />
@@ -340,12 +340,12 @@
       <el-table-column label="应收金额" align="center" prop="payPrice" />
       <el-table-column label="实收金额" align="center" prop="payMoney" />
       <el-table-column label="支付方式" align="center" prop="payType" >
-        <template slot-scope="scope">
+        <template #default="{scope}">
               <dict-tag :options="PayOptions" :value="scope.row.payType"/>
          </template>
       </el-table-column>
 		<el-table-column label="订单来源" align="center" prop="source" >
-				  <template slot-scope="scope">
+				  <template #default="scope">
 				     <dict-tag :options="sourceOptions" :value="scope.row.source"/>
 				  </template>
 		</el-table-column>

+ 422 - 0
src/views/qw/externalContact/externalContactRed.vue

@@ -0,0 +1,422 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+		<el-form-item label="公司名" prop="companyId">
+		     <el-select filterable  v-model="queryParams.companyId" placeholder="请选择公司名"  clearable size="small">
+		         <el-option
+		           v-for="item in companys"
+		           :key="item.companyId"
+		           :label="item.companyName"
+		           :value="item.companyId"
+		         />
+		   </el-select>
+		 </el-form-item>
+		<el-form-item label="员工" prop="companyUserName">
+		  <el-input
+		    v-model="queryParams.companyUserName"
+		    placeholder="员工"
+		    clearable
+		    size="small"
+		    @keyup.enter.native="handleQuery"
+		  />
+		</el-form-item>
+
+<!--    <el-form-item label="用户ID" prop="userId">
+      <el-input
+        v-model="queryParams.userId"
+        placeholder="请输入用户ID"
+        clearable
+        size="small"
+        @keyup.enter.native="handleQuery"
+      />
+    </el-form-item>-->
+<!--    <el-form-item label="用户昵称" prop="nickName">
+      <el-input
+        v-model="queryParams.nickName"
+        placeholder="请输入用户昵称"
+        clearable
+        size="small"
+        @keyup.enter.native="handleQuery"
+      />
+    </el-form-item>-->
+	  <el-form-item label="电话" prop="phone">
+	    <el-input
+	      v-model="queryParams.phone"
+	      placeholder="请输入电话"
+	      clearable
+	      size="small"
+	      @keyup.enter.native="handleQuery"
+	    />
+	  </el-form-item>
+	  <el-form-item label="加密电话" prop="phoneMk">
+	    <el-input
+	      v-model="queryParams.phoneMk"
+	      placeholder="请输入电话"
+	      clearable
+	      size="small"
+	      @keyup.enter.native="handleQuery"
+	    />
+	  </el-form-item>
+		<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="parseInt(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="parseInt(dict.dictValue)"
+           />
+     </el-select>
+	</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="change"></el-date-picker>
+	 </el-form-item>
+<!--      <el-tabs type="card" v-model="activeName" @tab-click="handleClick">
+        <el-tab-pane label="全部订单" name="00"></el-tab-pane>
+        <el-tab-pane label="待发送" name="0"></el-tab-pane>
+        <el-tab-pane label="已发送" name="1"></el-tab-pane>
+      </el-tabs>-->
+    <el-form-item label="订单状态" prop="status">
+      <el-select filterable  v-model="queryParams.status" placeholder="请选择订单状态"  clearable size="small">
+        <el-option key="0" label="待发送" value=0></el-option>
+        <el-option key="1" label="已发送" value=1></el-option>
+      </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:courseRedPacketLog:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+    <el-table border v-loading="loading" :data="courseRedPacketLogList" @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" prop="outBatchNo" />
+      <el-table-column label="课程名称" align="center" prop="courseName" />
+      <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="phone" />
+      <el-table-column label="所属销售" align="center" prop="companyUserName" />
+      <el-table-column label="所属公司" align="center" prop="companyName" />
+      <el-table-column label="企微员工名称" align="center" prop="qwUserName" />
+      <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="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改短链课程看课记录对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="课程id" prop="courseId">
+          <el-input v-model="form.courseId" placeholder="请输入课程id" />
+        </el-form-item>
+        <el-form-item label="用户id" prop="userId">
+          <el-input v-model="form.userId" placeholder="请输入用户id" />
+        </el-form-item>
+        <el-form-item label="小节id" prop="videoId">
+          <el-input v-model="form.videoId" placeholder="请输入小节id" />
+        </el-form-item>
+        <el-form-item label="公司员工id" prop="companyUserId">
+          <el-input v-model="form.companyUserId" placeholder="请输入公司员工id" />
+        </el-form-item>
+        <el-form-item label="公司id" prop="companyId">
+          <el-input v-model="form.companyId" placeholder="请输入公司id" />
+        </el-form-item>
+        <el-form-item label="转帐金额" prop="amount">
+          <el-input v-model="form.amount" placeholder="请输入转帐金额" />
+        </el-form-item>
+        <el-form-item label="企微userid" prop="qwUserId">
+          <el-input v-model="form.qwUserId" placeholder="请输入分享企微userid" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { courseList,videoList,listCourseRedPacketLog,getCourseRedPacketLog, delCourseRedPacketLog, addCourseRedPacketLog, updateCourseRedPacketLog, exportCourseRedPacketLog } from "@/api/course/courseRedPacketLog";
+import { getCompanyList } from "@/api/company/company";
+
+export default {
+  name: "CourseRedPacketLog",
+  data() {
+    return {
+	  companys:[],
+	  deptOptions:[],
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      activeName:"00",
+      courseLists:[],
+      videoList:[],
+      // 总条数
+      total: 0,
+      // 短链课程看课记录表格数据
+      courseRedPacketLogList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        courseId: null,
+        userId: null,
+        nickName:null,
+        videoId: null,
+        companyUserId: null,
+        companyId: null,
+        amount: null,
+        qwUserId: null,
+        subCateId: null,
+        phone: null,
+        phoneMk: null,
+        sTime:null,
+        eTime:null,
+      },
+	   createTime:null,
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+	    getCompanyList().then(response => {
+	    this.companys = response.data;
+	  });
+	  courseList().then(response => {
+	    this.courseLists = response.list;
+	  });
+  },
+  methods: {
+	  handleClick(tab, event) {
+	    this.activeName=tab.name;
+	    this.queryParams.status=tab.name
+	    console.log(this.queryParams.status)
+	    this.getList();
+	  },
+    /** 查询短链课程看课记录列表 */
+    getList() {
+      this.loading = true;
+      listCourseRedPacketLog(this.queryParams).then(response => {
+        this.courseRedPacketLogList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+	change(){
+	      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;
+	      }
+
+	    },
+	courseChange(row){
+
+		if(row==""){
+			this.videoList=[]
+			this.queryParams.videoId=null
+		}else{
+			videoList(row).then(response => {
+
+				this.videoList=response.list
+			});
+		}
+
+	},
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        logId: null,
+        courseId: null,
+        userId: null,
+        videoId: null,
+        companyUserId: null,
+        companyId: null,
+        amount: null,
+        createTime: null,
+        qwUserId: 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.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.logId)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加短链课程看课记录";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const logId = row.logId || this.ids
+      getCourseRedPacketLog(logId).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改短链课程看课记录";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.logId != null) {
+            updateCourseRedPacketLog(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addCourseRedPacketLog(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const logIds = row.logId || this.ids;
+      this.$confirm('是否确认删除短链课程看课记录编号为"' + logIds + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delCourseRedPacketLog(logIds);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(() => {});
+    },
+	getSubCateList(pid){
+	  this.form.subCateId=null;
+	  if(pid == ''){
+	    this.subCategoryOptions=[];
+	    return
+	  }
+	  getCateListByPid(pid).then(response => {
+	    this.subCategoryOptions = response.data;
+	  });
+	},
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有短链课程看课记录数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.exportLoading = true;
+          return exportCourseRedPacketLog(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+          this.exportLoading = false;
+        }).catch(() => {});
+    },
+    getData(id){
+      this.queryParams.userId = id;
+      this.getList();
+    }
+  }
+};
+</script>

+ 7 - 16
src/views/qw/externalContact/externalContactWatchLog.vue

@@ -98,7 +98,7 @@
       <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
+<!--      <el-table-column
         fixed="right"
         label="操作"
         width="100">
@@ -106,7 +106,7 @@
           <el-button @click="openAnswerLogFun(scope.row)" type="text" size="small" style="margin-left: 10px">答题记录</el-button>
           <el-button @click="openRedLogFun(scope.row)" type="text" size="small">红包记录</el-button>
         </template>
-      </el-table-column>
+      </el-table-column>-->
     </el-table>
 
     <pagination
@@ -118,7 +118,7 @@
     />
 
 
-    <el-drawer title="答题记录" :visible.sync="openAnswerLog" size="70%" append-to-body>
+<!--    <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">
@@ -156,9 +156,9 @@
         :limit.sync="answerLogQueryParams.pageSize"
         @pagination="answerLogList"
       />
-    </el-drawer>
+    </el-drawer>-->
 
-    <el-drawer title="红包记录" :visible.sync="openRedLog" size="70%" append-to-body>
+<!--    <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" />
@@ -169,7 +169,7 @@
           </template>
         </el-table-column>
         <el-table-column label="小节名称" align="center" prop="title" />
-<!--        <el-table-column label="会员id" align="center" prop="userId" />-->
+&lt;!&ndash;        <el-table-column label="会员id" align="center" prop="userId" />&ndash;&gt;
         <el-table-column label="会员用户" align="center" prop="fsNickName">
           <template slot-scope="scope">
             <div style="display: flex;white-space: nowrap">
@@ -203,7 +203,7 @@
         :limit.sync="redLogQueryParams.pageSize"
         @pagination="redLogList"
       />
-    </el-drawer>
+    </el-drawer>-->
 
   </div>
 </template>
@@ -338,15 +338,6 @@ export default {
         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];