From 0fa627d021ee2683a8895e49080757c51990a6e1 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期五, 08 八月 2025 16:31:46 +0800
Subject: [PATCH] 导出,商品打标签

---
 manager/src/views/goods/goods-info/goods.vue |  143 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 142 insertions(+), 1 deletions(-)

diff --git a/manager/src/views/goods/goods-info/goods.vue b/manager/src/views/goods/goods-info/goods.vue
index 66c568b..55309ba 100644
--- a/manager/src/views/goods/goods-info/goods.vue
+++ b/manager/src/views/goods/goods-info/goods.vue
@@ -76,6 +76,12 @@
           icon="ios-search"
           >鎼滅储</Button
         >
+        <Button
+          @click="queryExportGoods"
+          class="search-btn"
+          type="primary"
+        >瀵煎嚭鍟嗗搧娓呭崟</Button
+        >
       </Form>
       <Table
         :loading="loading"
@@ -106,6 +112,22 @@
           </div>
         </template>
       </Table>
+      <Modal
+        v-model="showUpdateTag"
+        title="鏍囩"
+        width="800"
+        :mask-closable="false"
+      >
+        <Select v-model="tagForm.selectTagIds" multiple filterable :loading="selectLoading" style="width:200px;">
+          <Option v-for="item in options" :key="item.id" :label="item.tagName" :value="item.id"></Option>
+        </Select>
+
+        <div slot="footer">
+          <Button type="error" @click="saveTag">淇濆瓨</Button>
+          <!--          <Button type="primary" @click="generalQrCode">纭</Button>-->
+        </div>
+      </Modal>
+
       <Modal
         v-model="showGeneralQrCode"
         title="浜岀淮鐮�"
@@ -162,9 +184,12 @@
 </template>
 
 <script>
-import { getGoodsListData, upGoods, lowGoods ,getGoodsFirstSkuId } from "@/api/goods";
+import { getGoodsListData, upGoods, lowGoods ,getGoodsFirstSkuId,queryExportGoods } from "@/api/goods";
 import {getSts} from '@/api/file'
 import vueQr from "vue-qr";
+import {getTags} from "@/api/tag";
+import {addOrUpDateTag,getGoodSTagById} from "@/api/goods-tag"
+
 export default {
   components: {
     "vue-qr": vueQr,
@@ -172,6 +197,18 @@
   name: "goods",
   data() {
     return {
+      tagForm:{
+        selectTagIds:[],
+        goodsId:'',
+        createType:'MANAGER',
+      },
+
+      selectLoading: false,
+      options: [],
+
+      showUpdateTag:false,
+
+
       showGeneralQrCode:false,
       QRCodeUrl:'',
       codeUrl: this.QRcodeBaseUrl+ '/scanpage/goods',
@@ -323,6 +360,7 @@
                   "Button",
                   {
                     props: {
+                      type: "info",
                       size: "small",
                     },
                     on: {
@@ -332,6 +370,24 @@
                     },
                   },
                   "鐢熸垚浜岀淮鐮�"
+                ),
+                h(
+                  "Button",
+                  {
+                    style: {
+                      marginRight: "5px",
+                      marginTop: "5px",
+                    },
+                    props: {
+                      size: "small",
+                    },
+                    on: {
+                      click: () => {
+                        this.openTagsModal(params.row);
+                      },
+                    },
+                  },
+                  "缂栬緫鏍囩"
                 )
               ]);
             } else {
@@ -374,6 +430,9 @@
                 h(
                   "Button",
                   {
+                    style: {
+                      marginRight: "5px",
+                    },
                     props: {
                       type: "error",
                       size: "small",
@@ -385,6 +444,23 @@
                     },
                   },
                   "鐢熸垚浜岀淮鐮�"
+                ),h(
+                  "Button",
+                  {
+                    style: {
+                      marginRight: "5px",
+                      marginTop: "5px",
+                    },
+                    props: {
+                      size: "small",
+                    },
+                    on: {
+                      click: () => {
+                        this.openTagsModal(params.row);
+                      },
+                    },
+                  },
+                  "缂栬緫鏍囩"
                 )
               ]);
             }
@@ -396,6 +472,56 @@
     };
   },
   methods: {
+    saveTag(){
+      this.showUpdateTag = false;
+      const form = {
+        tagIds:this.tagForm.selectTagIds,
+        createType:this.tagForm.createType,
+        goodsId:this.tagForm.goodsId
+      }
+      addOrUpDateTag(form).then(res =>{
+        console.log(res)
+      })
+    },
+    openTagsModal(row){
+
+      this.showUpdateTag = true;
+      this.tagForm.selectTagIds = [];
+      this.tagForm.goodsId = "";
+      getGoodSTagById(row.id).then(res =>{
+        if(res.code === 200){
+          this.tagForm.goodsId = row.id;
+          res.data.forEach(item =>{
+            this.tagForm.selectTagIds.push(item.tagId);
+          })
+        }
+        console.log(this.tagForm)
+      })
+    },
+    queryExportGoods(){
+        queryExportGoods(this.searchForm).then(res =>{
+          const blob = new Blob([res], {
+            type: "application/vnd.ms-excel;charset=utf-8",
+          });
+          //瀵逛簬<a>鏍囩锛屽彧鏈� Firefox 鍜� Chrome锛堝唴鏍革級 鏀寔 download 灞炴��
+          //IE10浠ヤ笂鏀寔blob浣嗘槸渚濈劧涓嶆敮鎸乨ownload
+          if ("download" in document.createElement("a")) {
+            //鏀寔a鏍囩download鐨勬祻瑙堝櫒
+            const link = document.createElement("a"); //鍒涘缓a鏍囩
+            link.download = "鍟嗗搧娓呭崟.xlsx"; //a鏍囩娣诲姞灞炴��
+            link.style.display = "none";
+            link.href = URL.createObjectURL(blob);
+            document.body.appendChild(link);
+            link.click(); //鎵ц涓嬭浇
+            URL.revokeObjectURL(link.href); //閲婃斁url
+            document.body.removeChild(link); //閲婃斁鏍囩
+          } else {
+            navigator.msSaveBlob(blob, fileName);
+          }
+        })
+
+
+    },
     closeGeneralQrCode(){
       this.showGeneralQrCode = false;
     },
@@ -505,9 +631,24 @@
         query: { id: id },
       })
     },
+    remoteMethod(query) {
+      this.selectLoading = true;
+      var params = {
+        "tagTypeKey": "GOODS",
+        "pageNumber": 1,
+        "pageSize": 500
+      }
+      getTags(params).then(res => {
+        this.options = res.data;
+        this.selectLoading = false;
+      });
+    },
+
   },
+
   mounted() {
     this.init();
+    this.remoteMethod("")
   },
 };
 </script>

--
Gitblit v1.8.0