xw há 2 semanas atrás
pai
commit
e00df8b36a

+ 39 - 9
src/views/course/courseRedPacketLog/index.vue

@@ -84,6 +84,7 @@
           :remote-method="remoteMethod"
           :loading="loadingPeriod"
           @focus="handleFocus"
+          @change="periodChange"
         >
           <el-option
             v-for="dict in periodLists"
@@ -227,7 +228,7 @@
 </template>
 
 <script>
-import { courseList,videoList,getCourseRedPacketLog, delCourseRedPacketLog, addCourseRedPacketLog, updateCourseRedPacketLog, exportCourseRedPacketLog,listCourseRedPacketLogPage } from "@/api/course/courseRedPacketLog";
+import { courseList, videoList, qwVideoList, getCourseRedPacketLog, delCourseRedPacketLog, addCourseRedPacketLog, updateCourseRedPacketLog, exportCourseRedPacketLog, listCourseRedPacketLogPage } from "@/api/course/courseRedPacketLog";
 import { getCompanyList } from "@/api/company/company";
 import { periodList } from "@/api/course/userCoursePeriod";
 import {treeselect} from "../../../api/company/companyDept";
@@ -386,17 +387,44 @@ export default {
 	      }
 
 	    },
-	courseChange(row){
-		if(row==""){
-			this.videoList=[]
-			this.queryParams.videoId=null
-		}else{
-			videoList(row).then(response => {
+	// 根据当前“是否选择营期”加载小节列表
+	async loadVideoListByPeriod() {
+		const courseId = this.queryParams.courseId
+		if (courseId === null || courseId === '' || courseId === undefined) {
+			this.videoList = []
+			this.queryParams.videoId = null
+			return
+		}
 
-				this.videoList=response.list
-			});
+		const periodId = this.queryParams.periodId
+		// 未选择营期 -> 走 qwvideoList/{id}
+		// 选择了营期 -> 走 videoList/{courseId}
+		if (periodId === null || periodId === '' || periodId === undefined) {
+			const response = await qwVideoList(courseId)
+			this.videoList = response.list || []
+		} else {
+			const response = await videoList(courseId)
+			this.videoList = response.list || []
 		}
+	},
 
+	// 切换营期:清空小节并按当前 courseId 刷新
+	async periodChange() {
+		this.videoList = []
+		this.queryParams.videoId = null
+		await this.loadVideoListByPeriod()
+	},
+
+	// 切换课程:清空小节并按当前 periodId 刷新
+	async courseChange(row) {
+		if (row === '' || row === null || row === undefined) {
+			this.videoList = []
+			this.queryParams.videoId = null
+			return
+		}
+		this.videoList = []
+		this.queryParams.videoId = null
+		await this.loadVideoListByPeriod()
 	},
     // 取消按钮
     cancel() {
@@ -433,6 +461,8 @@ export default {
       this.queryParams.pageNum = 1;    // Reset to first page
       this.queryParams.pageSize = 10;  // Reset to default page size
 	  this.queryParams.periodId=null;
+      this.videoList = []
+      this.queryParams.videoId = null
       this.handleQuery();
     },
     // 多选框选中数据

+ 60 - 1
src/views/hisStore/storeOrder/healthStoreList.vue

@@ -11,6 +11,24 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item> -->
+      <el-form-item label="公司名" prop="companyId">
+        <el-select
+          v-model="queryParams.companyId"
+          clearable
+          filterable
+          placeholder="请选择公司名"
+          size="small"
+          @change="companyChange"
+        >
+          <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="orderCodes">
         <div class="tag-input-container">
           <!-- 标签显示区域 -->
@@ -106,6 +124,19 @@
         />
       </el-form-item>
 
+      <el-form-item label="制单方式" prop="orderMakerType">
+        <el-select
+          v-model="queryParams.orderMakerType"
+          clearable
+          placeholder="请选择制单方式"
+          size="small"
+          @change="handleQuery"
+        >
+          <el-option label="用户下单" :value="0" />
+          <el-option label="销售制单" :value="1" />
+        </el-select>
+      </el-form-item>
+
       <el-form-item label="产品" prop="productName">
         <el-input
 
@@ -470,7 +501,7 @@
       <el-tab-pane label="已退款" name="-2"></el-tab-pane>
       <el-tab-pane label="已取消" name="-3"></el-tab-pane>
     </el-tabs>
-    <el-table ref="orderTable" v-loading="loading" :data="storeOrderList" border height="500" @selection-change="handleSelectionChange"
+    <el-table ref="orderTable" v-loading="loading" :data="filteredStoreOrderList" border height="500" @selection-change="handleSelectionChange"
     @sort-change="handleSortChange" :default-sort="{prop: 'createTime', order: 'descending'}">
       <el-table-column align="center" type="selection" width="55"/>
       <el-table-column align="center" label="订单号" prop="orderCode" width="200px"/>
@@ -494,6 +525,12 @@
           <span>{{ scope.row.realName }} </span>
         </template>
       </el-table-column>
+
+      <el-table-column align="center" label="下单方式" width="110px">
+        <template slot-scope="scope">
+          <span>{{ scope.row.companyUserNickName ? '销售制单' : '用户下单' }}</span>
+        </template>
+      </el-table-column>
       <!-- <el-table-column label="商品" align="center" width="300px" >
           <template slot-scope="scope">
               <div  v-for="(item, index) in scope.row.items" class="items"  >
@@ -1405,6 +1442,9 @@ export default {
       queryParams: {
         pageNum: 1,
         pageSize: 10,
+        companyId: null,
+        // 0=用户下单(公司销售为空);1=销售制单(公司销售不为空)
+        orderMakerType: null,
         orderCode: null,
         orderCodes:[],
         bankTransactionId: null,
@@ -1535,12 +1575,31 @@ export default {
         '&shipmentType=' +
         this.ruleForm.shipmentType;
     }
+    ,
+    // 本地根据“制单方式”筛选表格展示数据
+    filteredStoreOrderList() {
+      const type = this.queryParams.orderMakerType
+      const list = Array.isArray(this.storeOrderList) ? this.storeOrderList : []
+
+      if (type === 0 || type === '0') {
+        // 为空:用户下单
+        return list.filter(row => !row.companyUserNickName)
+      }
+
+      if (type === 1 || type === '1') {
+        // 不为空:销售制单
+        return list.filter(row => !!row.companyUserNickName)
+      }
+
+      return list
+    }
   },
   created() {
     getCompanyList().then(response => {
       this.companys = response.data
       if (this.companys != null && this.companys.length > 0) {
         this.companyId = this.companys[0].companyId
+        this.queryParams.companyId = this.companyId
         this.getTreeselect()
       }
     })