فهرست منبع

陕西今正需求调整界面

peicj 2 هفته پیش
والد
کامیت
003f62dc6b

+ 12 - 3
src/api/course/courseRedPacketLog.js

@@ -9,6 +9,15 @@ export function listCourseRedPacketLog(query) {
   })
 }
 
+// 查询短链课程看课记录列表
+export function listCourseRedPacketLogPage(data) {
+  return request({
+    url: '/course/courseRedPacketLog/pageList',
+    method: 'post',
+    data: data
+  })
+}
+
 // 查询短链课程看课记录详细
 export function getCourseRedPacketLog(logId) {
   return request({
@@ -55,10 +64,10 @@ export function delCourseRedPacketLog(logId) {
 }
 
 // 导出短链课程看课记录
-export function exportCourseRedPacketLog(query) {
+export function exportCourseRedPacketLog(data) {
   return request({
     url: '/course/courseRedPacketLog/export',
-    method: 'get',
-    params: query
+    method: 'post',
+    data: data
   })
 }

+ 11 - 2
src/api/course/courseWatchLog.js

@@ -9,6 +9,15 @@ export function listCourseWatchLog(query) {
   })
 }
 
+// 查询短链课程看课记录列表
+export function listCourseWatchLogPage(query) {
+  return request({
+    url: '/course/courseWatchLog/pageList',
+    method: 'post',
+    data: query
+  })
+}
+
 // 查询短链课程看课记录详细
 export function getCourseWatchLog(logId) {
   return request({
@@ -47,8 +56,8 @@ export function delCourseWatchLog(logId) {
 export function exportCourseWatchLog(query) {
   return request({
     url: '/course/courseWatchLog/export',
-    method: 'get',
-    params: query
+    method: 'post',
+    data: query
   })
 }
 

+ 71 - 40
src/views/course/courseRedPacketLog/index.vue

@@ -1,30 +1,43 @@
 <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-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="companyId">
+        <select-tree
+          v-model="selectedCompanyList"
+          :raw-data="deptList"
+          :parentSelectable="true"
+          placeholder="请选择"
+          :multiple="true"
+          component-width="300px"
+          :max-display-tags="3"
+          :check-strictly="false"
+          :return-leaf-only="false"
+          @change="handleMultiChange"
+        ></select-tree>
+      </el-form-item>
+		<el-form-item label="所属员工" prop="companyUserName">
 		  <el-input
 		    v-model="queryParams.companyUserName"
-		    placeholder="员工"
+		    placeholder="所属员工"
 		    clearable
 		    size="small"
 		    @keyup.enter.native="handleQuery"
 		  />
 		</el-form-item>
-
-      <el-form-item label="用户ID" prop="userId">
+      <el-form-item label="会员ID" prop="userId">
         <el-input
           v-model="queryParams.userId"
-          placeholder="请输入用户ID"
+          placeholder="请输入会员ID"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -110,9 +123,11 @@
       </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" />
       <el-table-column label="会员电话" align="center" prop="phone" />
-      <el-table-column label="所属销售" align="center" prop="companyUserName" />
+      <el-table-column label="所属员工" align="center" prop="companyUserName" />
       <el-table-column label="所属公司" align="center" prop="companyName" />
+      <el-table-column label="员工部门" align="center" prop="deptName" />
       <el-table-column label="转帐金额" align="center" prop="amount" />
       <el-table-column label="状态" align="center" prop="status" >
         <template slot-scope="scope">
@@ -138,14 +153,14 @@
         <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 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 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" />
@@ -166,15 +181,19 @@
 </template>
 
 <script>
-import { courseList,videoList,listCourseRedPacketLog, getCourseRedPacketLog, delCourseRedPacketLog, addCourseRedPacketLog, updateCourseRedPacketLog, exportCourseRedPacketLog } from "@/api/course/courseRedPacketLog";
+import { courseList,videoList,getCourseRedPacketLog, delCourseRedPacketLog, addCourseRedPacketLog, updateCourseRedPacketLog, exportCourseRedPacketLog,listCourseRedPacketLogPage } from "@/api/course/courseRedPacketLog";
 import { getCompanyList } from "@/api/company/company";
+import {getDeptData} from "@/api/system/employeeStats";
+import SelectTree from "@/components/TreeSelect/index.vue";
 
 export default {
   name: "CourseRedPacketLog",
+  components: {SelectTree},
   data() {
     return {
 	  companys:[],
-	  deptOptions:[],
+    selectedCompanyList: [],
+    deptList: [],
       // 遮罩层
       loading: true,
       // 导出遮罩层
@@ -214,6 +233,7 @@ export default {
         phoneMk: null,
         sTime:null,
         eTime:null,
+        userIds: null
       },
 	   createTime:null,
       // 表单参数
@@ -231,22 +251,36 @@ export default {
 	  courseList().then(response => {
 	    this.courseLists = response.list;
 	  });
+    getDeptData().then(response => {
+      this.deptList = response.data;
+    })
   },
   methods: {
+    handleMultiChange(e){
+
+    },
 	  handleClick(tab, event) {
 	    this.activeName=tab.name;
-	    this.queryParams.status=tab.name
-	    console.log(this.queryParams.status)
-	    this.getList();
+      if(tab.name == "00") {
+        this.queryParams.status = null;
+      } else {
+        this.queryParams.status = tab.name;
+      }
+        this.getList();
 	  },
     /** 查询短链课程看课记录列表 */
     getList() {
       this.loading = true;
-      listCourseRedPacketLog(this.queryParams).then(response => {
-        this.courseRedPacketLogList = response.rows;
-        this.total = response.total;
+      if(this.selectedCompanyList != null && this.selectedCompanyList.length > 0) {
+        this.queryParams.userIds = this.selectedCompanyList;
+      }else {
+        this.queryParams.userIds = [];
+      }
+      listCourseRedPacketLogPage(this.queryParams).then(response => {
+        this.courseRedPacketLogList = response.data.list;
+        this.total = response.data.total;
         this.loading = false;
-      });
+      })
     },
 	change(){
 	      if(this.createTime!=null){
@@ -259,7 +293,6 @@ export default {
 
 	    },
 	courseChange(row){
-
 		if(row==""){
 			this.videoList=[]
 			this.queryParams.videoId=null
@@ -302,6 +335,9 @@ export default {
 	   this.createTime=null;
 	  this.queryParams.sTime=null;
 	  this.queryParams.eTime=null;
+      this.selectedCompanyList = [];
+      this.queryParams.pageNum = 1;    // Reset to first page
+      this.queryParams.pageSize = 10;  // Reset to default page size
       this.handleQuery();
     },
     // 多选框选中数据
@@ -360,18 +396,13 @@ export default {
           this.msgSuccess("删除成功");
         }).catch(() => {});
     },
-	getSubCateList(pid){
-	  this.form.subCateId=null;
-	  if(pid == ''){
-	    this.subCategoryOptions=[];
-	    return
-	  }
-	  getCateListByPid(pid).then(response => {
-	    this.subCategoryOptions = response.data;
-	  });
-	},
     /** 导出按钮操作 */
     handleExport() {
+      if(this.selectedCompanyList != null && this.selectedCompanyList.length > 0) {
+        this.queryParams.userIds = this.selectedCompanyList;
+      }else {
+        this.queryParams.userIds = [];
+      }
       const queryParams = this.queryParams;
       this.$confirm('是否确认导出所有短链课程看课记录数据项?', "警告", {
           confirmButtonText: "确定",

+ 53 - 19
src/views/course/courseWatchLog/index.vue

@@ -1,15 +1,29 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
-      <el-form-item label="销售公司" prop="companyId">
-        <el-select filterable v-model="queryParams.companyId" clearable placeholder="请选择公司名" size="small">
-          <el-option
-            v-for="item in companyList"
-            :key="item.companyId"
-            :label="item.companyName"
-            :value="item.companyId"
-          />
-        </el-select>
+<!--      <el-form-item label="销售公司" prop="companyId">-->
+<!--        <el-select filterable v-model="queryParams.companyId" clearable placeholder="请选择公司名" size="small">-->
+<!--          <el-option-->
+<!--            v-for="item in companyList"-->
+<!--            :key="item.companyId"-->
+<!--            :label="item.companyName"-->
+<!--            :value="item.companyId"-->
+<!--          />-->
+<!--        </el-select>-->
+<!--      </el-form-item>-->
+      <el-form-item label="员工部门" prop="companyId">
+        <select-tree
+          v-model="selectedCompanyList"
+          :raw-data="deptList"
+          :parentSelectable="true"
+          placeholder="请选择"
+          :multiple="true"
+          component-width="300px"
+          :max-display-tags="3"
+          :check-strictly="false"
+          :return-leaf-only="false"
+          @change="handleMultiChange"
+        ></select-tree>
       </el-form-item>
       <el-form-item label="课程" prop="courseId">
         <el-select filterable  v-model="queryParams.courseId" placeholder="请选择课程"  clearable size="small" @change="courseChange(queryParams.courseId)">
@@ -140,6 +154,7 @@
       </el-table-column>
       <el-table-column label="播放时长" align="center" prop="duration" />
       <el-table-column label="所属销售" align="center" prop="companyUserName" />
+      <el-table-column label="销售部门" align="center" prop="deptName" />
 <!--      <el-table-column label="所属公司" align="center" prop="companyName" />-->
 <!--      <el-table-column label="企微员工名称" align="center" prop="qwUserName" />-->
       <el-table-column label="所属发送方式" align="center" prop="sendType" />
@@ -161,16 +176,21 @@
 </template>
 
 <script>
-import { listCourseWatchLog, getCourseWatchLog, delCourseWatchLog, addCourseWatchLog, updateCourseWatchLog, exportCourseWatchLog } from "@/api/course/courseWatchLog";
+import { listCourseWatchLog, getCourseWatchLog, delCourseWatchLog, addCourseWatchLog, updateCourseWatchLog, exportCourseWatchLog,listCourseWatchLogPage } from "@/api/course/courseWatchLog";
 import { allList, getCompanyList } from '@/api/company/company'
 import { courseList,videoList } from '@/api/course/courseRedPacketLog'
 import {getUserList} from "@/api/company/companyUser";
 import {getFsUserList} from "@/api/users/user";
+import {getDeptData} from "@/api/system/employeeStats";
+import SelectTree from "@/components/TreeSelect/index.vue";
 export default {
   name: "CourseWatchLog",
+  components: {SelectTree},
   data() {
     return {
       userSourceTypeOptions: [],
+      selectedCompanyList: [],
+      deptList: [],
       activeName:"00",
       createTime:null,
       updateTime:null,
@@ -258,7 +278,9 @@ export default {
 
     this.loading = false;
 
-
+    getDeptData().then(response => {
+      this.deptList = response.data;
+    })
   },
   computed: {
     sourceTypeModel: {
@@ -271,7 +293,9 @@ export default {
     }
   },
   methods: {
+    handleMultiChange(e){
 
+    },
     setToday(){
       const today = new Date();
       const todayStart = new Date(today);
@@ -412,7 +436,12 @@ export default {
     },
     /** 查询短链课程看课记录列表 */
     getList() {
-
+      // 在API调用前设置部门参数
+      if(this.selectedCompanyList != null && this.selectedCompanyList.length > 0) {
+        this.queryParams.userIds = this.selectedCompanyList;
+      } else {
+        this.queryParams.userIds = [];
+      }
       // xgb 看课数据量太大必须限制时间if (this.isEmptyArray(this.createTime) &&
       if (this.isEmptyArray(this.createTime) &&
         this.isEmptyArray(this.updateTime) &&
@@ -425,14 +454,11 @@ export default {
         this.queryParams.logType = null;
       }
 
-      listCourseWatchLog(this.queryParams).then(response => {
-        this.courseWatchLogList = response.rows;
-        this.total = response.total;
+      listCourseWatchLogPage(this.queryParams).then(response => {
+        this.courseWatchLogList = response.data.list;
+        this.total = response.data.total;
         this.loading = false;
-      }).catch(() => {
-          this.loading = false;
-        }
-      );
+      })
     },
     // 取消按钮
     cancel() {
@@ -457,6 +483,7 @@ export default {
         courseId: null,
         scheduleStartTime: null,
         scheduleEndTime: null,
+        userIds: null,
       };
       this.scheduleTime=null;
       this.resetForm("form");
@@ -479,6 +506,8 @@ export default {
       this.queryParams.scheduleEndTime = null;
       this.scheduleTime=null;
       this.updateTime=null;
+      this.selectedCompanyList = [];
+      // this.selectedCompanyList = [];
       // 重置时间当天
       this.setToday();
 
@@ -547,6 +576,11 @@ export default {
     },
     /** 导出按钮操作 */
     handleExport() {
+      if(this.selectedCompanyList != null && this.selectedCompanyList.length > 0) {
+        this.queryParams.userIds = this.selectedCompanyList;
+      }else {
+        this.queryParams.userIds = [];
+      }
       // xgb 看课数据量太大必须限制时间
       if (this.isEmptyArray(this.createTime) &&
         this.isEmptyArray(this.updateTime) &&