Browse Source

合并订单页面

yuhongqi 3 days ago
parent
commit
74d081b546

+ 2 - 2
src/views/hisStore/storeOrder/index.vue

@@ -129,10 +129,10 @@
           @keyup.enter.native="handleQuery"/>
       </el-form-item>
 
-      <el-form-item label="员工姓名" prop="companyUserNickName">
+      <el-form-item label="销售名称" prop="companyUserNickName">
         <el-input
           v-model="queryParams.companyUserNickName"
-          placeholder="请输入员工姓名"
+          placeholder="请输入销售名称"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"

+ 15 - 15
src/views/live/liveConsole/LiveConsole.vue

@@ -149,11 +149,11 @@
           <div style="height: 20px;"></div>
           </el-scrollbar>
           <!-- 加载最新消息按钮 -->
-          <el-button 
-            v-if="showLoadLatestBtn" 
-            class="load-latest-btn" 
-            type="primary" 
-            size="small" 
+          <el-button
+            v-if="showLoadLatestBtn"
+            class="load-latest-btn"
+            type="primary"
+            size="small"
             @click.stop="loadLatestMessages"
             :disabled="isLoadingLatest"
             :loading="isLoadingLatest"
@@ -474,7 +474,7 @@ export default {
           const clientHeight = wrap.clientHeight;
           const currentScrollTop = wrap.scrollTop;
           const maxScrollTop = scrollHeight - clientHeight;
-          
+
           if (currentScrollTop < maxScrollTop - 50) {
             this.showLoadLatestBtn = true;
           }
@@ -487,17 +487,17 @@ export default {
       if (!this.isAutoScrollEnabled && !forceScroll) {
         return;
       }
-      
+
       if (this.$refs.manageRightRef && this.$refs.manageRightRef.wrap) {
         this.$nextTick(() => {
           const wrap = this.$refs.manageRightRef.wrap;
           if (!wrap) return;
-          
+
           const scrollHeight = wrap.scrollHeight;
           const clientHeight = wrap.clientHeight;
           const currentScrollTop = wrap.scrollTop;
           const maxScrollTop = scrollHeight - clientHeight;
-          
+
           // 强制滚动或启用自动滚动时,直接滚动到底部并隐藏按钮
           if (forceScroll || this.isAutoScrollEnabled) {
             this.showLoadLatestBtn = false;
@@ -811,7 +811,7 @@ export default {
             }
             if (res.data.liveType == 1) {
               this.videoParam.livingUrl = res.data.flvHlsUrl
-              this.videoParam.livingUrl = this.livingUrl.replace("flv","m3u8")
+              this.videoParam.livingUrl = this.videoParam.livingUrl.replace("flv","m3u8")
               // this.$nextTick(() => {
               //   this.initPlayer()
               // })
@@ -1191,7 +1191,7 @@ export default {
             setTimeout(() => {
               // 重置加载状态
               this.isLoadingLatest = false;
-              
+
               if (this.isAutoScrollEnabled) {
                 // 如果启用自动滚动,强制滚动到底部并隐藏按钮
                 this.scrollToBottom(true);
@@ -1203,7 +1203,7 @@ export default {
                   const clientHeight = wrap.clientHeight;
                   const currentScrollTop = wrap.scrollTop;
                   const maxScrollTop = scrollHeight - clientHeight;
-                  
+
                   if (currentScrollTop < maxScrollTop - 50) {
                     this.showLoadLatestBtn = true;
                   } else {
@@ -1229,11 +1229,11 @@ export default {
       if (this.scrollDebounceTimer) {
         clearTimeout(this.scrollDebounceTimer);
       }
-      
+
       // 设置防抖,300ms内只执行一次
       this.scrollDebounceTimer = setTimeout(() => {
         this.saveChatScrollPosition();
-        
+
         // 检查是否滚动到底部
         if (this.$refs.manageRightRef && this.$refs.manageRightRef.wrap) {
           const wrap = this.$refs.manageRightRef.wrap;
@@ -1241,7 +1241,7 @@ export default {
           const clientHeight = wrap.clientHeight;
           const currentScrollTop = wrap.scrollTop;
           const maxScrollTop = scrollHeight - clientHeight;
-          
+
           // 如果滚动到底部(距离底部小于50px),隐藏按钮并恢复自动滚动
           if (currentScrollTop >= maxScrollTop - 50) {
             this.showLoadLatestBtn = false;

+ 28 - 2
src/views/live/liveConsole/LivePlayer.vue

@@ -1,8 +1,10 @@
 <template>
   <div class="live-player">
-    <video ref="videoPlayer" loop autoplay class="player">
+    <video v-if="videoParam.liveType == 2" ref="videoPlayer" loop autoplay class="player">
       <source :src="videoParam.videoUrl" type="application/x-mpegURL">
     </video>
+    <video v-if="videoParam.liveType == 1" ref="livePlayer" loop autoplay class="player">
+    </video>
   </div>
 </template>
 
@@ -84,6 +86,28 @@ export default {
       // 设置视频播放位置
       video.currentTime = elapsedSeconds % this.videoDuration;
     },
+    livePlay(url) {
+      if (Hls.isSupported()) {
+        const videoElement = this.$refs.livePlayer
+        if (!videoElement) {
+          console.error('找不到 video 元素')
+          return
+        }
+        this.hls = new Hls();
+        this.hls.attachMedia(videoElement);
+        this.hls.on(Hls.Events.MEDIA_ATTACHED, () => {
+          this.hls.loadSource(url);
+          this.hls.on(Hls.Events.STREAM_LOADED, (event, data) => {
+            videoElement.play();
+          });
+        });
+        this.hls.on(Hls.Events.ERROR, (event, data) => {
+          console.error('HLS 错误:', data);
+        });
+      } else {
+        console.error('浏览器不支持 HLS')
+      }
+    },
     initPlayer() {
 
       if (this.videoParam.liveType === 1) {
@@ -93,7 +117,9 @@ export default {
           console.error('直播地址为空,无法初始化播放器')
           return
         }
-        this.videoPlay(this.videoParam.livingUrl);
+        this.$nextTick(() => {
+          this.livePlay(this.videoParam.livingUrl);
+        })
         return;
       }
       const viUrl = this.videoParam.videoUrl === null || this.videoParam.videoUrl.trim() === ''

+ 39 - 29
src/views/live/liveOrder/index.vue

@@ -25,6 +25,15 @@
           @keyup.enter.native="handleQuery"
         />
       </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="订单号" prop="orderCode">
         <el-input
           v-model="queryParams.orderCode"
@@ -74,25 +83,25 @@
         />
       </el-form-item>
 
-      <el-form-item label="商品数量" prop="totalNum">
-        <el-input
-          v-model="queryParams.totalNum"
-          placeholder="请输入商品数量"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-
-      <el-form-item label="销售价格" prop="price">
-        <el-input
-          v-model="queryParams.price"
-          placeholder="请输入销售价格"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
+<!--      <el-form-item label="商品数量" prop="totalNum">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.totalNum"-->
+<!--          placeholder="请输入商品数量"-->
+<!--          clearable-->
+<!--          size="small"-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+
+<!--      <el-form-item label="销售价格" prop="price">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.price"-->
+<!--          placeholder="请输入销售价格"-->
+<!--          clearable-->
+<!--          size="small"-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
 
       <el-form-item label="收货地址" prop="userAddress">
         <el-input
@@ -124,15 +133,15 @@
         />
       </el-form-item>
 
-      <el-form-item label="供应商" prop="supplierName">
-        <el-input
-          v-model="queryParams.supplierName"
-          placeholder="请输入供应商名称"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
+<!--      <el-form-item label="供应商" prop="supplierName">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.supplierName"-->
+<!--          placeholder="请输入供应商名称"-->
+<!--          clearable-->
+<!--          size="small"-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
 
       <!-- 下单时间范围选择 -->
       <el-form-item label="下单时间" prop="orderTimeRange">
@@ -244,7 +253,7 @@
       <el-table-column label="商品分类" align="center" prop="cateName" v-if="showFinanceTableField"/>
       <el-table-column label="成交价" align="center" prop="payMoney"/>
       <el-table-column label="收货地址" align="center" prop="userAddress" width="200" />
-      <el-table-column label="对应供应商" align="center" prop="supplierName" width="120" />
+<!--      <el-table-column label="对应供应商" align="center" prop="supplierName" width="120" />-->
       <el-table-column label="下单时间" align="center" prop="createTime" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
@@ -411,6 +420,7 @@ export default {
         liveId: null,
         pageSize: 10,
         companyId: null,
+        companyUserName: null,
         deptId: null,
         productName: null,
         productSpec: null,

+ 55 - 53
src/views/live/order/index.vue

@@ -193,25 +193,25 @@
         />
       </el-form-item>
 
-      <el-form-item label="商品数量" prop="totalNum">
-        <el-input
-          v-model="queryParams.totalNum"
-          placeholder="请输入商品数量"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
+<!--      <el-form-item label="商品数量" prop="totalNum">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.totalNum"-->
+<!--          placeholder="请输入商品数量"-->
+<!--          clearable-->
+<!--          size="small"-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
 
-      <el-form-item label="销售价格" prop="price">
-        <el-input
-          v-model="queryParams.price"
-          placeholder="请输入销售价格"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
+<!--      <el-form-item label="销售价格" prop="price">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.price"-->
+<!--          placeholder="请输入销售价格"-->
+<!--          clearable-->
+<!--          size="small"-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
 
       <el-form-item label="收货地址" prop="userAddress">
         <el-input
@@ -243,15 +243,15 @@
 <!--        />-->
 <!--      </el-form-item>-->
 
-      <el-form-item label="供应商" prop="supplierName">
-        <el-input
-          v-model="queryParams.supplierName"
-          placeholder="请输入供应商名称"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
+<!--      <el-form-item label="供应商" prop="supplierName">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.supplierName"-->
+<!--          placeholder="请输入供应商名称"-->
+<!--          clearable-->
+<!--          size="small"-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
 
       <el-form-item label="档期归属" prop="scheduleId">
         <el-select filterable style="width: 215px" v-model="queryParams.scheduleId" placeholder="请选择档期" clearable size="small">
@@ -306,38 +306,38 @@
           clearable
           size="small"
           v-model="payTimeRange"
-          type="daterange"
-          value-format="yyyy-MM-dd"
+          type="datetimerange"
+          value-format="yyyy-MM-dd HH:mm:ss"
           start-placeholder="开始日期"
           end-placeholder="结束日期"
         />
       </el-form-item>
 
-      <el-form-item label="发货时间" prop="deliverySendTimeRange">
-        <el-date-picker
-          style="width:215px"
-          clearable
-          size="small"
-          v-model="deliverySendTimeRange"
-          type="daterange"
-          value-format="yyyy-MM-dd"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-        />
-      </el-form-item>
+<!--      <el-form-item label="发货时间" prop="deliverySendTimeRange">-->
+<!--        <el-date-picker-->
+<!--          style="width:215px"-->
+<!--          clearable-->
+<!--          size="small"-->
+<!--          v-model="deliverySendTimeRange"-->
+<!--          type="daterange"-->
+<!--          value-format="yyyy-MM-dd"-->
+<!--          start-placeholder="开始日期"-->
+<!--          end-placeholder="结束日期"-->
+<!--        />-->
+<!--      </el-form-item>-->
 
-      <el-form-item label="回单时间" prop="deliveryImportTimeRange">
-        <el-date-picker
-          style="width:215px"
-          clearable
-          size="small"
-          v-model="deliveryImportTimeRange"
-          type="daterange"
-          value-format="yyyy-MM-dd"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-        />
-      </el-form-item>
+<!--      <el-form-item label="回单时间" prop="deliveryImportTimeRange">-->
+<!--        <el-date-picker-->
+<!--          style="width:215px"-->
+<!--          clearable-->
+<!--          size="small"-->
+<!--          v-model="deliveryImportTimeRange"-->
+<!--          type="daterange"-->
+<!--          value-format="yyyy-MM-dd"-->
+<!--          start-placeholder="开始日期"-->
+<!--          end-placeholder="结束日期"-->
+<!--        />-->
+<!--      </el-form-item>-->
 
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -360,6 +360,7 @@
           type="warning"
           icon="el-icon-download"
           size="mini"
+          v-hasPermi="['live:order:export']"
           :loading="exportLoading"
           @click="handleExport"
         >导出订单</el-button>
@@ -385,6 +386,7 @@
           type="warning"
           icon="el-icon-download"
           size="mini"
+          v-hasPermi="['live:order:exportAll']"
           @click="handleExportDetails"
         >导出订单(明文)</el-button>
       </el-col>