lex-xin 4 anos atrás
pai
commit
ed87982ebc

+ 0 - 0
src/utils/downLoadFile.js


+ 56 - 1
src/views/businessManager/shopManager/shopList.vue

@@ -6,7 +6,7 @@
     <div class="m-core">
       <el-button class="btn-primary" @click="onShopOperation('create')" v-permission="'/shopOperation'">添加</el-button>
       <el-button class="btn-primary">批量导入</el-button>
-      <el-button class="btn-primary">下载模板</el-button>
+      <el-button class="btn-primary" @click="onDownload">下载模板</el-button>
       <!-- 搜索类型 -->
       <!-- <el-form :inline="true"
                class="searchForm"
@@ -138,6 +138,11 @@ import pagination from '@/components/Pagination/index'
 import { goodsQuery, goodsUpdate, goodsDelete } from '@/api/businessManager'
 import store from '@/store'
 import Tooltip from '@/components/Tooltip/index'
+import axios from 'axios'
+import qs from 'qs'
+import { getToken } from '@/utils/auth'
+import load from '@/utils/loading'
+import dayjs from 'dayjs'
 export default {
   components: { pagination, Tooltip },
   name: 'shopList',
@@ -231,6 +236,56 @@ export default {
         path: '/shopManager/shopOperation',
         query: { paramInfo, pageInfo }
       })
+    },
+    onDownload() { // 下载模板
+      // 报表导出
+      let url = "/api-web/import/downloadTemplate";
+      const options = {
+        method: "get",
+        headers: {
+          Authorization: getToken()
+        },
+        params: { templateType: 'goods' },
+        url,
+        responseType: "blob"
+      };
+      this.$confirm("您确定下载模板", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+          load.startLoading()
+          axios(options).then(res => {
+            let blob = new Blob([res.data], {
+              // type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
+              type: "application/vnd.ms-excel;charset=utf-8"
+              //word文档为application/msword,pdf文档为application/pdf,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
+            });
+            let text = (new Response(blob)).text()
+            text.then(res => {
+              // 判断是否报错
+              if (res.indexOf('code') != -1) {
+                let json = JSON.parse(res)
+                this.$message.error(json.msg)
+              } else {
+                let objectUrl = URL.createObjectURL(blob);
+                let link = document.createElement("a");
+                let fname = "商品模板" + new Date().getTime() + '.xls'; //下载文件的名字
+                link.href = objectUrl;
+                link.setAttribute("download", fname);
+                document.body.appendChild(link);
+                link.click();
+              }
+            })
+
+            load.endLoading();
+          }).catch(error => {
+            this.$message.error('下载失败,请联系管理员');
+            load.endLoading();
+          });
+        })
+        .catch(() => { });
     }
   }
 }

+ 2 - 0
src/views/businessManager/shopManager/shopOperation.vue

@@ -264,6 +264,7 @@ export default {
           // discountPrice: 8000,
           // image: null,
           // desc: 'C调、法式键、曲列、E键、白铜按键、台湾镍白'
+          sn: null,
           brand: null,
           name: null,
           type: null,
@@ -286,6 +287,7 @@ export default {
             let result = res.data
             this.form = {
               id: result.id,
+              sn: result.sn,
               brand: result.brand,
               name: result.name,
               type: result.type,