From c75eed5c7ff2ebd592eb997982d1eac31ba9d956 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期三, 02 七月 2025 23:23:34 +0800
Subject: [PATCH] Merge branch 'dev' of http://42.193.1.25:9521/r/lmk-shop-web into dev

---
 manager/src/views/video/VideoList.vue                     |   11 +++++
 manager/src/api/video.js                                  |    8 ++++
 seller/src/views/goods/goods-seller/goods.vue             |    2 +
 seller/src/views/goods/goods-seller/goodsOperationSec.vue |   62 ++++++++++++++++++++++++++++++-
 4 files changed, 80 insertions(+), 3 deletions(-)

diff --git a/manager/src/api/video.js b/manager/src/api/video.js
index 42693bf..dd4dff0 100644
--- a/manager/src/api/video.js
+++ b/manager/src/api/video.js
@@ -94,3 +94,11 @@
     data: data
   })
 }
+
+// 閲嶆柊鏋勫缓es绱㈠紩
+export const recreateIndex = () => {
+  return service({
+    url: "/lmk/video/recreate/es/index",
+    method: "POST"
+  })
+}
diff --git a/manager/src/views/video/VideoList.vue b/manager/src/views/video/VideoList.vue
index ad09c4c..e8c0227 100644
--- a/manager/src/views/video/VideoList.vue
+++ b/manager/src/views/video/VideoList.vue
@@ -55,6 +55,10 @@
         >
       </Form>
 
+      <Row class="operation padding-row">
+        <Button @click="recreateEsIndex" type="primary">閲嶆柊鏋勫缓es绱㈠紩</Button>
+      </Row>
+
       <Modal
         v-model="playVideoShow"
         :title="playVideoTitle"
@@ -223,7 +227,7 @@
 </template>
 
 <script>
-import {getVideos, recommendSet, getVideoById, auditingVideo, up, down} from "@/api/video";
+import {getVideos, recommendSet, getVideoById, auditingVideo, up, down, recreateIndex} from "@/api/video";
 import {getVideoTagList} from "@/api/videoTag";
 import {getFilePreview} from "@/api/file";
 import Editor from '@/components/editor/index.vue'
@@ -398,6 +402,11 @@
     this.getTags('')
   },
   methods: {
+    recreateEsIndex() {
+      recreateIndex().then(res => {
+        this.$Message.success(res.msg)
+      })
+    },
     // 绉掕浆x鍒唜绉�
     formatSeconds(seconds) {
       if (isNaN(seconds) || seconds < 0) return '0绉�';
diff --git a/seller/src/views/goods/goods-seller/goods.vue b/seller/src/views/goods/goods-seller/goods.vue
index e4efb96..63942cf 100644
--- a/seller/src/views/goods/goods-seller/goods.vue
+++ b/seller/src/views/goods/goods-seller/goods.vue
@@ -333,6 +333,8 @@
               return h("Tag", { props: { color: "orange" } }, "闆跺敭");
             } else if (params.row.salesModel === "WHOLESALE") {
               return h("Tag", { props: { color: "magenta" } }, "鎵瑰彂");
+            }  else if (params.row.salesModel === "PRESALE") {
+              return h("Tag", { props: { color: "magenta" } }, "棰勫敭");
             } else {
               return h("Tag", { props: { color: "volcano" } }, "鍏朵粬绫诲瀷");
             }
diff --git a/seller/src/views/goods/goods-seller/goodsOperationSec.vue b/seller/src/views/goods/goods-seller/goodsOperationSec.vue
index c78ec8b..1d58489 100644
--- a/seller/src/views/goods/goods-seller/goodsOperationSec.vue
+++ b/seller/src/views/goods/goods-seller/goodsOperationSec.vue
@@ -23,6 +23,14 @@
             <FormItem label="鍟嗗搧浠锋牸" prop="price">
               <Input v-model="baseInfoForm.price" clearable placeholder="鍟嗗搧浠锋牸" style="width: 260px" type="text"/>
             </FormItem>
+
+            <FormItem label="鎶芥垚姣斾緥" prop="commission">
+<!--              <Input v-model="baseInfoForm.commission" max="100" min="0" clearable placeholder="鎶芥垚姣斾緥" style="width: 260px" type="number"/>-->
+              <InputNumber v-model="baseInfoForm.commission" :formatter="value => `${value}%`"
+                           :parser="value => value.replace('%', '')" :max="100" :min="0" clearable
+                           placeholder="鎶芥垚姣斾緥" style="width: 260px" type="number"/>
+            </FormItem>
+
             <FormItem label="鍟嗗搧鍗栫偣" prop="sellingPoint">
               <Input v-model="baseInfoForm.sellingPoint" :rows="4" style="width: 260px" type="textarea"/>
             </FormItem>
@@ -48,13 +56,22 @@
               <RadioGroup v-if="baseInfoForm.goodsType != 'VIRTUAL_GOODS'" v-model="baseInfoForm.salesModel"
                           button-style="solid" type="button" @on-change="renderTableData(skuTableData)">
                 <Radio label="RETAIL" title="闆跺敭鍨�">闆跺敭鍨�</Radio>
-                <Radio label="WHOLESALE" title="鎵瑰彂鍨�">鎵瑰彂鍨�</Radio>
+<!--                <Radio label="WHOLESALE" title="鎵瑰彂鍨�">鎵瑰彂鍨�</Radio>-->
+                <Radio label="PRESALE" title="棰勫敭">棰勫敭</Radio>
               </RadioGroup>
               <RadioGroup v-else v-model="baseInfoForm.salesModel" button-style="solid" type="button">
                 <Radio label="RETAIL" title="闆跺敭鍨�">
                   <span>铏氭嫙鍨�</span>
                 </Radio>
               </RadioGroup>
+            </FormItem>
+            <FormItem v-if="baseInfoForm.salesModel == 'PRESALE'">
+              <div>
+                棰勫敭鏃堕棿锛�
+                <DatePicker type="daterange" v-model="baseInfoForm.preSaleTime"
+                            format="yyyy-MM-dd" placement="bottom-end" placeholder="璇烽�夋嫨棰勫敭鏃堕棿" style="width: 200px"
+                            @on-change="choosePreTime"></DatePicker>
+              </div>
             </FormItem>
             <FormItem v-if="baseInfoForm.salesModel == 'WHOLESALE'" class="form-item-view-el" label="閿�鍞鍒�"
                       prop="wholesaleRule">
@@ -541,6 +558,7 @@
 import COS from 'cos-js-sdk-v5';
 import {getFileKey} from "@/utils/file.js";
 import {getFilePreview, getSts} from "@/api/file";
+import {formatDate} from "@/utils/filters";
 
 
 export default {
@@ -677,6 +695,10 @@
         categoryName: [],
         goodsVideo: "",
         showGoodsVideo: "",
+        // 棰勫敭鏃堕棿
+        preSaleTime:[],
+        preSaleBeginDate:'',
+        preSaleEndDate:'',
       },
       /** 琛ㄦ牸澶� */
       skuTableColumn: [],
@@ -758,6 +780,32 @@
     }
   },
   methods: {
+    // 鏍煎紡鍖栨樉绀哄��
+    formatter(date) {
+      return this.formatDate(date, 'yyyy-MM-dd');
+    },
+
+    // 鏃ユ湡鏍煎紡鍖栧伐鍏�
+    formatDate(date, format) {
+      const year = date.getFullYear();
+      const month = (date.getMonth() + 1).toString().padStart(2, '0');
+      const day = date.getDate().toString().padStart(2, '0');
+
+      return format
+        .replace('yyyy', year)
+        .replace('MM', month)
+        .replace('dd', day);
+    },
+    choosePreTime(e){
+      if (this.baseInfoForm.preSaleTime){
+        const[begin,end] = this.baseInfoForm.preSaleTime;
+        this.baseInfoForm.preSaleBeginDate = this.formatDate(begin,'yyyy-MM-dd');
+        this.baseInfoForm.preSaleEndDate = this.formatDate(end,'yyyy-MM-dd');
+        console.log('------------------>閫夋嫨鏃堕棿',this.baseInfoForm.preSaleBeginDate,this.baseInfoForm.preSaleEndDate)
+
+      }
+      console.log('鏃堕棿閫夋嫨------------------銆�',e)
+    },
     // 閫夋嫨鍥剧墖modal
     handleCLickImg(val, index) {
       console.log('娴嬭瘯杈撳叆鐨勫��----------------銆�', val)
@@ -1185,6 +1233,7 @@
       response.result.recommend
         ? (response.result.recommend = 1)
         : (response.result.recommend = 0);
+      response.result.preSaleTime = [response.result.preSaleBeginDate, response.result.preSaleEndDate];
       this.baseInfoForm = {...this.baseInfoForm, ...response.result};
       this.baseInfoForm.release = 1; //鍗充娇鏄鏀惧叆浠撳簱锛屼慨鏀圭殑鏃跺�欎篃浼氭樉绀轰細绔嬪嵆鍙戝竷
       this.categoryId = response.result.categoryPath.split(",")[2];
@@ -1679,6 +1728,7 @@
      * 娓叉煋table鎵�闇�瑕佺殑column 鍜� data
      */
     renderTableData(skus) {
+      console.log('-------------->閿�鍞被鍨�',skus)
       this.skuTableColumn = [];
       let pushData = [];
       // 娓叉煋澶撮儴
@@ -1703,7 +1753,15 @@
           }
         );
       }
-
+      // 棰勫敭妯″紡
+      if (this.baseInfoForm.salesModel !== "PRESALE") {
+        pushData.push(
+          {
+            title: "棰勫敭鏃堕棿",
+            slot: "price",
+          }
+        );
+      }
       if (this.baseInfoForm.salesModel === "WHOLESALE" && this.wholesaleData) {
         this.wholesaleData.forEach((item, index) => {
           pushData.push({

--
Gitblit v1.8.0