From aa5973abc2272df6892703cde8c78ee184ad714b Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期五, 08 八月 2025 17:04:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 manager/src/views/goodsBanner/index.vue      |  505 ++++++++++++++++++++++++++++++++++++++++++
 manager/src/api/goodsBanner.js               |   35 ++
 manager/src/views/video/VideoList.vue        |   33 ++
 manager/src/api/goods.js                     |   16 +
 buyer/public/config.js                       |   16 
 manager/public/config.js                     |   12 
 manager/src/views/goods/goods-info/goods.vue |   64 +++++
 seller/public/config.js                      |   12 
 8 files changed, 674 insertions(+), 19 deletions(-)

diff --git a/buyer/public/config.js b/buyer/public/config.js
index e9fae39..edf1c23 100644
--- a/buyer/public/config.js
+++ b/buyer/public/config.js
@@ -3,15 +3,15 @@
    * @description api璇锋眰鍩虹璺緞
    */
   API_DEV: {
-    common: "http://127.0.0.1:8890",
-    buyer: "http://127.0.0.1:8888",
-    seller: "http://127.0.0.1:8889",
-    manager: "http://127.0.0.1:8887",
+    common: "http://1.95.67.54:888",
+    buyer: "http://1.95.67.54:888",
+    seller: "http://1.95.67.54:888",
+    manager: "http://1.95.67.54:888",
   },
   API_PROD: {
-    common: "https://common-api.pickmall.cn",
-    buyer: "https://buyer-api.pickmall.cn",
-    seller: "https://store-api.pickmall.cn",
-    manager: "https://admin-api.pickmall.cn"
+    common: "http://1.95.67.54:888",
+    buyer: "http://1.95.67.54:888",
+    seller: "http://1.95.67.54:888",
+    manager: "http://1.95.67.54:888",
   },
 };
diff --git a/manager/public/config.js b/manager/public/config.js
index 0937568..bb9368c 100644
--- a/manager/public/config.js
+++ b/manager/public/config.js
@@ -7,12 +7,16 @@
     buyer: "http://127.0.0.1:8888",
     seller: "http://127.0.0.1:8889",
     manager: "http://127.0.0.1:8887",
+    // seller: "https://myk.9village.cn",
+    // common: "https://myk.9village.cn",
+    // buyer: "https://myk.9village.cn",
+    // manager: "https://myk.9village.cn",
   },
   API_PROD: {
-    common: "https://common-api.pickmall.cn",
-    buyer: "https://buyer-api.pickmall.cn",
-    seller: "https://store-api.pickmall.cn",
-    manager: "https://admin-api.pickmall.cn"
+    common: "http://1.95.67.54:888",
+    buyer: "http://1.95.67.54:888",
+    seller: "http://1.95.67.54:888",
+    manager: "http://1.95.67.54:888",
   },
   /**
    * @description // 璺宠浆涔板绔湴鍧� pc绔�
diff --git a/manager/src/api/goods.js b/manager/src/api/goods.js
index ab6af95..8ee8e4c 100644
--- a/manager/src/api/goods.js
+++ b/manager/src/api/goods.js
@@ -1,6 +1,7 @@
 // 缁熶竴璇锋眰璺緞鍓嶇紑鍦╨ibs/axios.js涓慨鏀�
 import { getRequest, postRequest, putRequest, deleteRequest} from '@/libs/axios';
-
+import service from "@/libs/axios";
+import {managerUrl} from '@/libs/axios';
 //  鑾峰彇鍟嗗搧鍝佺墝鍒嗛〉鍒楄〃
 export const getManagerBrandPage = (params) => {
     return getRequest('/goods/brand/getByPage', params)
@@ -16,6 +17,19 @@
 export const addBrand = (params) => {
     return postRequest('/goods/brand', params)
 }
+//  鍟嗗搧鎺掑簭
+// export const goodsSort = (params) => {
+//   return postRequest('/goods/goods/goods/sort', params)
+// }
+
+export const goodsSort = (params) => {
+  return service({
+    baseURL: managerUrl,
+    url: "/goods/goods/goods/sort",
+    method: "POST",
+    data: params
+  })
+}
 // 淇敼鍝佺墝璁剧疆
 export const updateBrand = (params) => {
     return putRequest(`/goods/brand/${params.id}`, params)
diff --git a/manager/src/api/goodsBanner.js b/manager/src/api/goodsBanner.js
new file mode 100644
index 0000000..9d55060
--- /dev/null
+++ b/manager/src/api/goodsBanner.js
@@ -0,0 +1,35 @@
+// 缁熶竴璇锋眰璺緞鍓嶇紑鍦╨ibs/axios.js涓慨鏀�
+import service from "@/libs/axios";
+import {managerUrl} from '@/libs/axios';
+
+export const add = (params) => {
+  return service({
+    baseURL: managerUrl,
+    url: "/lmk/goods-banner",
+    method: "POST",
+    data: params
+  })
+}
+export const page = (params) => {
+  return service({
+    baseURL: managerUrl,
+    url: "/lmk/goods-banner/page",
+    method: "GET",
+    params: params
+  })
+}
+export const update = (params) => {
+  return service({
+    baseURL: managerUrl,
+    url: "/lmk/goods-banner",
+    method: "PUT",
+    data: params
+  })
+}
+export const deleteBanner = (id) => {
+  return service({
+    baseURL: managerUrl,
+    url: `/lmk/goods-banner/${id}`,
+    method: "DELETE",
+  })
+}
diff --git a/manager/src/views/goods/goods-info/goods.vue b/manager/src/views/goods/goods-info/goods.vue
index 55309ba..ed1eece 100644
--- a/manager/src/views/goods/goods-info/goods.vue
+++ b/manager/src/views/goods/goods-info/goods.vue
@@ -180,11 +180,30 @@
         >
       </div>
     </Modal>
+    <Modal
+      title="璁剧疆鍟嗗搧鎺掑簭"
+      v-model="showSort"
+      :mask-closable="false"
+      :width="500"
+    >
+      <Form ref="underForm" :model="sortForm" :label-width="100">
+        <FormItem label="鍟嗗搧鎺掑簭" prop="reason">
+          <InputNumber v-model="sortForm.sort" :min="0" :max="999" clearable style="width: 100%" />
+        </FormItem>
+      </Form>
+      <div slot="footer">
+        <Button type="text" @click="showSort= false">鍙栨秷</Button>
+        <Button type="primary" :loading="submitLoading" @click="submitSort"
+        >鎻愪氦</Button
+        >
+      </div>
+    </Modal>
   </div>
 </template>
 
 <script>
-import { getGoodsListData, upGoods, lowGoods ,getGoodsFirstSkuId,queryExportGoods } from "@/api/goods";
+import { getGoodsListData, upGoods, lowGoods ,getGoodsFirstSkuId,queryExportGoods,goodsSort } from "@/api/goods";
+
 import {getSts} from '@/api/file'
 import vueQr from "vue-qr";
 import {getTags} from "@/api/tag";
@@ -197,6 +216,12 @@
   name: "goods",
   data() {
     return {
+      sortForm:{
+        goodsId:'',
+        sort:0
+      },
+      showSort:false,
+
       tagForm:{
         selectTagIds:[],
         goodsId:'',
@@ -317,7 +342,7 @@
           key: "action",
           align: "center",
           fixed: "right",
-          width: 220,
+          width: 400,
           render: (h, params) => {
             if (params.row.marketEnable == "DOWN") {
               return h("div", [
@@ -359,6 +384,9 @@
                 h(
                   "Button",
                   {
+                    style: {
+                      marginRight: "5px",
+                    },
                     props: {
                       type: "info",
                       size: "small",
@@ -444,6 +472,20 @@
                     },
                   },
                   "鐢熸垚浜岀淮鐮�"
+                ),                h(
+                  "Button",
+                  {
+                    props: {
+                      type: "error",
+                      size: "small",
+                    },
+                    on: {
+                      click: () => {
+                        this.goodsSort(params.row);
+                      },
+                    },
+                  },
+                  "璁剧疆鍟嗗搧鎺掑簭"
                 ),h(
                   "Button",
                   {
@@ -472,6 +514,24 @@
     };
   },
   methods: {
+    cancelSort(){
+      console.log('鐐瑰嚮浜嗗彇娑�')
+      this.showSort = false;
+    },
+   async submitSort(){
+    const response =  await goodsSort(this.sortForm)
+    console.log(response)
+     this.showSort = false;
+     this.getDataList();
+    },
+    goodsSort(row){
+      // this.sortForm = {
+      //
+      // }
+      this.sortForm.goodsId = row.id;
+      this.sortForm.sort = row.goodsSort
+      this.showSort = true;
+    },
     saveTag(){
       this.showUpdateTag = false;
       const form = {
diff --git a/manager/src/views/goodsBanner/index.vue b/manager/src/views/goodsBanner/index.vue
new file mode 100644
index 0000000..21cb041
--- /dev/null
+++ b/manager/src/views/goodsBanner/index.vue
@@ -0,0 +1,505 @@
+<template>
+  <div class="activity-management">
+    <Card>
+      <!-- 鎼滅储琛ㄥ崟 -->
+      <Form
+        ref="searchForm"
+        @keydown.enter.native="handleSearch"
+        :model="searchForm"
+        inline
+        :label-width="80"
+        class="search-form"
+      >
+        <FormItem label="鍟嗗搧鍚嶇О" prop="activityName">
+          <Input
+            type="text"
+            v-model="searchForm.goodsName"
+            placeholder="璇疯緭鍏ュ晢鍝佸悕绉�"
+            clearable
+            @on-clear="handleSearch"
+            style="width: 180px"
+          />
+        </FormItem>
+
+        <Button
+          @click="handleSearch"
+          type="primary"
+          icon="ios-search"
+          class="search-btn"
+        >鎼滅储
+        </Button>
+        <Button
+          @click="resetSearch"
+          icon="md-refresh"
+          style="margin-left: 8px"
+        >閲嶇疆
+        </Button>
+      </Form>
+
+      <Row class="operation">
+        <Button @click="openGoodsBanner" type="primary" icon="md-add">娣诲姞鎺ㄨ崘</Button>
+      </Row>
+      <!-- 娲诲姩琛ㄦ牸 -->
+      <Table
+        :loading="loading"
+        border
+        :columns="goodsBannerColum"
+        :data="goodsBannerList"
+        ref="table"
+        class="activity-table"
+      >
+        <template slot-scope="{ row, index }" slot="canShow">
+          <div v-if="row.canShow">
+            鏄剧ず
+          </div>
+          <div v-else>
+            涓嶆樉绀�
+          </div>
+        </template>
+        <template slot-scope="{ row, index }" slot="showBannerUrl">
+          <img :src="row.showBannerUrl" style="width: 100%">
+        </template>
+        <!-- 鎿嶄綔鎸夐挳鎻掓Ы -->
+        <template slot-scope="{ row }" slot="action">
+          <div class="action-btns">
+<!--            <Button-->
+<!--              type="primary"-->
+<!--              size="small"-->
+<!--              @click="showBanner(row, row.canShow ? '鍙栨秷鎺ㄨ崘' : '鎺ㄨ崘')"-->
+<!--              :loading="row.recommendLoading"-->
+<!--            >-->
+<!--              {{ row.canShow ? '鍙栨秷鎺ㄨ崘' : '鎺ㄨ崘' }}-->
+<!--            </Button>-->
+            <Button
+              type="info"
+              size="small"
+              @click="openEdit(row)"
+            >缂栬緫
+            </Button>
+            <Button
+              type="error"
+              size="small"
+              @click="delBanner(row)"
+            >鍒犻櫎
+            </Button>
+          </div>
+        </template>
+      </Table>
+      <Page
+        :current="searchForm.pageNumber"
+        :total="total"
+        :page-size="searchForm.pageSize"
+        @on-change="changePage"
+        @on-page-size-change="changePageSize"
+        :page-size-opts="[10, 20, 50]"
+        size="small"
+        show-total
+        show-elevator
+        show-sizer
+      ></Page>
+    </Card>
+    <Modal
+      v-model="goodsBannerShow"
+      :title="goodsBannerForm.id?'缂栬緫鎺ㄨ崘鍟嗗搧':'娣诲姞鎺ㄨ崘鍟嗗搧'"
+      @on-cancel="goodsBannerShow=false"
+      width="1000"
+      class="members-modal"
+    >
+      <Form
+        ref="goodsForm"
+        :model="goodsBannerForm"
+        inline
+        :label-width="80"
+      >
+        <Row :gutter="24">
+          <Col span="12">
+            <FormItem label="灏侀潰涓婁紶">
+              <div>
+                <Upload
+                  :before-upload="handleBeforeUpload"
+                  action="#">
+                  <Button icon="ios-cloud-upload-outline">涓婁紶灏侀潰</Button>
+                </Upload>
+              </div>
+            </FormItem>
+          </Col>
+          <Col span="12">
+            <div v-if="uploadImg !== null||goodsBannerForm.bannerUrl!=null" style="width: 200px">
+              <span v-if="uploadImg!=null" style="text-wrap: nowrap">宸蹭笂浼犲皝闈�:{{ uploadImg.name }}</span>
+              <Button @click="preImg">棰勮鍥剧墖</Button>
+            </div>
+          </Col>
+        </Row>
+        <Row :gutter="24">
+          <Col span="12">
+            <FormItem label="鏄惁鏄剧ず">
+              <RadioGroup v-model="goodsBannerForm.canShow">
+                <Radio label="true">
+                  <span>鏄剧ず</span>
+                </Radio>
+                <Radio label="false">
+                  <span>涓嶆樉绀�</span>
+                </Radio>
+              </RadioGroup>
+            </FormItem>
+          </Col>
+          <Col span="12">
+            <FormItem label="鎺掑簭">
+              <InputNumber v-model="goodsBannerForm.sort" :max="999" :min="0"/>
+            </FormItem>
+          </Col>
+        </Row>
+        <Row :gutter="24">
+          <Col span="12">
+            <FormItem label="鍟嗗搧鍒楄〃" :label-width="80">
+              <Input v-model="searchGoodsForm.keyword" style="width:200px" @on-change="searchGoodsList"></Input>
+              <div style="height: 400px;overflow: auto;">
+                <div v-for="item in goodsData" :key="item.id" style="display: flex;
+                          align-items: center;justify-content: flex-start;border: 1px solid gray;margin-top: 10px;
+                          padding: 10px;border-radius: 20px" @click="chooseGoods(item.id)">
+                  <div>
+                    <img :src="endpoint+'/'+item.thumbnail" style="width: 80px;height: 80px">
+                  </div>
+                  <div style="display: flex;flex-direction: column;margin-left: 20px">
+                    <div style="font-size: 1.5em;font-weight: bold">{{ item.goodsName }}</div>
+                    <div style="color: #ff6f6f">
+                      锟{ item.price }}
+                    </div>
+                  </div>
+                </div>
+              </div>
+              <Page
+                :current="searchGoodsForm.pageNumber"
+                :total="goodsTotal"
+                :page-size="searchGoodsForm.pageSize"
+                @on-change="goodsChangePage"
+                @on-page-size-change="goodsChangePageSize"
+                :page-size-opts="[10, 20, 50]"
+                size="small"
+                show-total
+              ></Page>
+            </FormItem>
+          </Col>
+          <Col span="12">
+            <FormItem label="閫変腑鍟嗗搧" :label-width="80">
+              <div style="height: 130px;overflow: hidden;" v-if="goodsBannerForm.skuId">
+                <div style="display: flex;
+                          align-items: center;justify-content: flex-start;border: 1px solid gray;margin-top: 10px;
+                          padding: 10px;border-radius: 20px">
+                  <div>
+                    <img :src="endpoint+'/'+goodsBannerForm.thumbnail" style="width: 80px;height: 80px">
+                  </div>
+                  <div style="display: flex;flex-direction: column;margin-left: 20px">
+                    <div style="font-size: 1.5em;font-weight: bold">{{ goodsBannerForm.goodsName }}</div>
+                    <div style="color: #ff6f6f">
+                      锟{ goodsBannerForm.price }}
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </FormItem>
+          </Col>
+        </Row>
+        <Input v-model="flushDom" v-show="false"></Input>
+      </Form>
+
+      <div slot="footer">
+        <Button @click="goodsBannerShow = false">鍙栨秷</Button>
+        <Button type="primary" :loading="submitLoading" @click="saveOrUpdateGoodsBanner">鎻愪氦</Button>
+      </div>
+    </Modal>
+    <Modal title="鍥剧墖棰勮" v-model="visible">
+      <img :src="tempUrl" v-if="visible" style="width: 100%">
+    </Modal>
+  </div>
+</template>
+<script>
+import {getSts} from "@/api/file";
+import COS from "cos-js-sdk-v5";
+import {getFileKey} from "@/utils/file";
+import {videoGoodsEsPage} from "@/api/videoTag";
+import {add, page,update,deleteBanner} from '@/api/goodsBanner'
+
+export default {
+  data() {
+    return {
+      total: 0,
+      flushDom: '',
+      endpoint: '',
+      goodsData: [],
+      goodsTotal: 0, // 琛ㄥ崟鏁版嵁鎬绘暟
+      tempUrl: '',
+      uploadImg: null,
+      fileLoading: false,
+      visible: false,
+      goodsBannerShow: false,
+      submitLoading: false,
+      goodsBannerList: [],
+      loading: false,
+      searchForm: {
+        goodsName: '',
+        pageSize: 10,
+        pageNumber: 1
+      },
+      goodsBannerForm: {
+        id: null,
+        goodsId: null,
+        skuId: null,
+        sort: 0,
+        canShow: 'true',
+        bannerUrl: null
+      },
+      searchGoodsForm: {
+        // 鎼滅储妗嗗垵濮嬪寲瀵硅薄
+        pageNumber: 1, // 褰撳墠椤垫暟
+        pageSize: 10, // 椤甸潰澶у皬
+        keyword: '',
+        searchFromSelfStore: false
+      },
+      goodsBannerColum: [
+        {
+          type: 'selection',
+          width: 60,
+          align: 'center'
+        },
+        {
+          title: '灏侀潰鍥�',
+          key: 'showBannerUrl',
+          slot: 'showBannerUrl',
+          minWidth: 100
+        },
+        {
+          title: '鍟嗗搧鍚嶇О',
+          key: 'goodsName',
+          minWidth: 120
+        }, {
+          title: '鎺掑簭',
+          key: 'sort',
+          minWidth: 120
+        }, {
+          title: '鏄惁鏄剧ず',
+          key: 'canShow',
+          slot: 'canShow',
+          minWidth: 120
+        },
+        {
+          title: '鎿嶄綔',
+          slot: 'action',
+          width: 280,
+          align: 'center',
+          fixed: 'right'
+        }
+      ],
+    }
+  },
+  methods: {
+    openEdit(row){
+      this.uploadImg = null;
+      this.goodsBannerShow = true;
+      this.goodsBannerForm = row
+      this.goodsBannerForm.canShow  = this.goodsBannerForm.canShow.toString()
+      console.log(this.goodsBannerForm,row)
+      this.tempUrl = row.showBannerUrl
+      this.getGoodsDataList();
+
+    },
+    showBanner(row,index){
+      console.log(row,index)
+    },
+   async delBanner(row,index){
+     this.$Modal.confirm({
+       title: "鍒犻櫎",
+       content: "<p>纭畾瑕佸垹闄ゅ悧锛�</p>",
+       onOk: () => {
+         deleteBanner(row.id).then((res) => {
+           if (res.code==200) {
+             this.$Message.success("鍒犻櫎鎴愬姛");
+             this.getGoodsBannerList();
+           }
+         });
+       },
+       onCancel: () => {},
+     });
+
+    },
+    chooseGoods(id) {
+      const goods = this.goodsData.find(item => {
+        return item.id === id;
+      })
+      this.flushDom = new Date().toString();
+      console.log(goods)
+      this.goodsBannerForm.goodsId = goods.goodsId;
+      this.goodsBannerForm.skuId = goods.id;
+      this.goodsBannerForm.goodsName = goods.goodsName;
+      this.goodsBannerForm.thumbnail = goods.thumbnail
+      this.goodsBannerForm.price = goods.price
+    },
+    // 鑾峰彇鍒楄〃鏁版嵁
+    getGoodsDataList() {
+      let search = this.searchGoodsForm;
+      console.log('-------------------------->', this.searchGoodsForm)
+      if (search.pageNumber > 0) {
+        search.pageNumber = search.pageNumber - 1;
+      }
+      videoGoodsEsPage(search).then((res) => {
+        console.log(res)
+        this.loading = false;
+        if (res.code == 200) {
+          this.goodsData = res.data;
+          getSts().then(res => {
+            this.endpoint = res.data.endpoint
+          })
+          this.goodsTotal = res.total;
+        }
+      });
+    },
+    searchGoodsList() {
+      this.searchGoodsForm.pageNumber = 1;
+      this.getGoodsDataList();
+    },
+    // 鍒嗛〉 鏀瑰彉椤电爜
+    goodsChangePage(v) {
+      console.log('-------------------------->鍒嗛〉', v);
+      this.searchGoodsForm.pageNumber = v;
+      this.getGoodsDataList();
+    },
+    // 鍒嗛〉 鏀瑰彉椤垫暟
+    goodsChangePageSize(v) {
+      this.searchGoodsForm.pageNumber = 1;
+      this.searchGoodsForm.pageSize = v;
+      this.getGoodsDataList();
+    },
+    preImg() {
+      this.visible = true;
+    },
+    // 鍒嗛〉 鏀瑰彉椤电爜
+    changePage(v) {
+      this.searchForm.pageNumber = v;
+      this.getGoodsBannerList();
+    },
+    // 鍒嗛〉 鏀瑰彉椤垫暟
+    changePageSize(v) {
+      this.searchForm.pageNumber = 1;
+      this.searchForm.pageSize = v;
+      this.getGoodsBannerList();
+    },
+    async uploadFile() {
+      try {
+        // this.upLoadVideoLoading = true;
+        // 鑾峰彇鏂囦欢涓婁紶涓存椂瀵嗛挜
+        const sts = await getSts();
+        const cos = new COS({
+          getAuthorization: async function (options, callback) {
+            callback({
+              TmpSecretId: sts.data.tmpSecretId,
+              TmpSecretKey: sts.data.tmpSecretKey,
+              SecurityToken: sts.data.sessionToken,
+              // 寤鸿杩斿洖鏈嶅姟鍣ㄦ椂闂翠綔涓虹鍚嶇殑寮�濮嬫椂闂达紝閬垮厤瀹㈡埛绔湰鍦版椂闂村亸宸繃澶у鑷寸鍚嶉敊璇�
+              StartTime: sts.data.stsStartTime, // 鏃堕棿鎴筹紝鍗曚綅绉掞紝濡傦細1580000000
+              ExpiredTime: sts.data.stsEndTime,// 鏃堕棿鎴筹紝鍗曚綅绉掞紝濡傦細1580000000
+              ScopeLimit: true, // 缁嗙矑搴︽帶鍒舵潈闄愰渶瑕佽涓� true锛屼細闄愬埗瀵嗛挜鍙湪鐩稿悓璇锋眰鏃堕噸澶嶄娇鐢�
+            });
+          }
+        })
+        const fileKey = getFileKey(this.uploadImg.name)
+        const upData = await cos.uploadFile({
+          Bucket: sts.data.bucket,
+          Region: sts.data.region,
+          Key: fileKey,
+          Body: this.uploadImg, // 瑕佷笂浼犵殑鏂囦欢瀵硅薄銆�
+          SliceSize: 1024 * 1024 * 5,
+          onProgress: function (progressData) {
+            console.log('涓婁紶杩涘害锛�', progressData);
+          },
+        });
+        this.goodsBannerForm.bannerUrl = fileKey
+        console.log("涓婁紶鎴愬姛", upData)
+      } catch (e) {
+        console.log("涓婁紶澶辫触", e)
+      } finally {
+        // this.upLoadVideoLoading = false;
+      }
+      // this.fileLoading = true;
+      // this.uploadImg = null;
+      // this.fileLoading = false;
+      // this.$Message.success('Success')
+      console.log("鎵ц鏂囦欢涓婃1")
+    },
+    handleBeforeUpload(file) {
+      this.uploadImg = file;
+      this.tempUrl = URL.createObjectURL(file);
+      console.log(this.tempUrl);
+      return false;
+    },
+    async saveOrUpdateGoodsBanner() {
+      if (this.uploadImg){
+        await this.uploadFile()
+      }
+
+      console.log(this.goodsBannerForm)
+      if (!this.goodsBannerForm.skuId) {
+        this.$Message.error('璇烽�夋嫨鍟嗗搧');
+        return;
+      }
+      if (!this.goodsBannerForm.bannerUrl) {
+        this.$Message.error('璇蜂笂浼犲浘鐗�');
+        return;
+      }
+      if (this.goodsBannerForm.id){
+        const result = await update(this.goodsBannerForm)
+        if (result.code == 200) {
+          this.goodsBannerShow = false;
+        }
+      }else {
+        const result = await add(this.goodsBannerForm)
+        if (result.code == 200) {
+          this.goodsBannerShow = false;
+        }
+      }
+      await  this.getGoodsBannerList();
+
+
+    },
+    openGoodsBanner() {
+      this.goodsBannerForm = {
+        id: null,
+        goodsId: null,
+        skuId: null,
+        sort: 999,
+        canShow: 'true',
+        bannerUrl: null
+      }
+      this.goodsBannerShow = true;
+      this.tempUrl = null;
+      this.visible = false;
+      this.uploadImg = null;
+      this.getGoodsDataList();
+    },
+    async getGoodsBannerList() {
+      const pageData = await page(this.searchForm)
+      if (pageData.code == 200) {
+        this.goodsBannerList = pageData.data
+        this.total = pageData.total
+      }
+    },
+    // 閲嶇疆鎼滅储
+    async resetSearch() {
+      this.$refs.searchForm.resetFields()
+      this.searchForm.pageNumber = 1
+      await this.getGoodsBannerList()
+    },
+    async handleSearch() {
+      this.searchForm.pageNumber = 1
+      await this.getGoodsBannerList()
+    }
+  },
+  async created() {
+    await this.getGoodsBannerList();
+  },
+}
+</script>
+<style scoped>
+.operation {
+  margin-top: 10px;
+}
+</style>
diff --git a/manager/src/views/video/VideoList.vue b/manager/src/views/video/VideoList.vue
index cd7070a..f3e5c72 100644
--- a/manager/src/views/video/VideoList.vue
+++ b/manager/src/views/video/VideoList.vue
@@ -402,6 +402,9 @@
           <Button type="primary" size="small" style="margin-right: 5px" v-if="row.status === '99'"
                   @click="openAuditing(row)">瀹℃牳
           </Button>
+<!--          <Button type="primary" size="small" style="margin-right: 5px"-->
+<!--                  @click="editVideo(row)">缂栬緫-->
+<!--          </Button>-->
           <Button type="error" size="small" style="margin-right: 5px" v-if="row.status === '1'"
                   @click="openVideoDown(row)">涓嬫灦
           </Button>
@@ -704,6 +707,36 @@
     this.getTags('')
   },
   methods: {
+    editVideo(row){
+      // this.uploadVideoForm = {};
+      // this.uploadVideoForm = row;
+      // this.showUploadVideoShow = true;
+      console.log('------------------->缂栬緫',JSON.stringify(row));
+      this.upLoadVideoShow = true;
+      this.videoTagList = []
+      this.chooseTag = row.tagList
+      this.uploadVideoForm = {
+        id: '',
+        title: '',
+        cover: "",
+        videoFileKey: "",
+        videoDuration: 0,
+        videoFit: "cover",
+        videoContentType: 'video',
+        videoImgs: [],
+        showListImages: [],
+        tags: [],
+        fileInfo: {},
+        goodsList: []
+      }
+      this.uploadVideoForm = row
+      recommend({
+        searchType: "HOT"
+      }).then(res => {
+        this.videoTagList = res.data;
+      })
+      this.searchGoodsList();
+    },
     closeGeneralQrCode(){
       this.showGeneralQrCode = false;
       this.QRCodeUrl = '';
diff --git a/seller/public/config.js b/seller/public/config.js
index 59331e7..c7bfcf4 100644
--- a/seller/public/config.js
+++ b/seller/public/config.js
@@ -7,12 +7,16 @@
     buyer: "http://127.0.0.1:8888",
     seller: "http://127.0.0.1:8889",
     manager: "http://127.0.0.1:8887",
+    // common: "http://1.95.67.54:888",
+    // buyer: "http://1.95.67.54:888",
+    // seller: "http://1.95.67.54:888",
+    // manager: "http://1.95.67.54:888",
   },
   API_PROD: {
-    common: "https://common-api.pickmall.cn",
-    buyer: "https://buyer-api.pickmall.cn",
-    seller: "https://store-api.pickmall.cn",
-    manager: "https://admin-api.pickmall.cn",
+    common: "http://1.95.67.54:888",
+    buyer: "http://1.95.67.54:888",
+    seller: "http://1.95.67.54:888",
+    manager: "http://1.95.67.54:888",
   },
   /**
    * @description // 璺宠浆涔板绔湴鍧� pc绔�

--
Gitblit v1.8.0