1 |
- {"remainingRequest":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\babel-loader\\lib\\index.js!D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\wnmp\\www\\vue\\seaBlueAdmin\\src\\views\\Multistore\\goods\\GoodsList.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\src\\views\\Multistore\\goods\\GoodsList.vue","mtime":1678954023566},{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\babel.config.js","mtime":1681371897685},{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1681371913603},{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\babel-loader\\lib\\index.js","mtime":1681371912860},{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1681371913603},{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1681371925849}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0IEdvb2RzQ2F0ZWdvcnkgZnJvbSAiQC9jb21wb25lbnQvY29tbW9uL0dvb2RzQ2F0ZWdvcnkudnVlIjsKaW1wb3J0IHsgZ2V0QWxsR29vZHMsIHNlYXJjaEdvb2QsIGdldEdvb2RzSW5mbyB9IGZyb20gIkAvYXBpL2dvb2RzIjsKaW1wb3J0IHsgbWFwR2V0dGVycyB9IGZyb20gInZ1ZXgiOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogIkdvb2RzTGlzdCIsCiAgY29tcG9uZW50czogewogICAgR29vZHNDYXRlZ29yeQogIH0sCgogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBtZXJjaGFudElkOiAiIiwKICAgICAgc2VhcmNoOiB7CiAgICAgICAga2V5d29yZDogIiIsCiAgICAgICAgY2F0ZWdvcnlQYXRoOiBbXQogICAgICB9LAogICAgICBnb29kc19saXN0OiBbXSwKICAgICAgc3BlY19sb2FkaW5nOiBmYWxzZSwKICAgICAgdG90YWw6IDAsCiAgICAgIHBhZ2U6IDEsCiAgICAgIHBhZ2VTaXplOiAxMAogICAgfTsKICB9LAoKICBjb21wdXRlZDogeyAuLi5tYXBHZXR0ZXJzKHsKICAgICAgc3RvcmVEYXRhOiAiTVVzZXIvc3RvcmVEYXRhIgogICAgfSkKICB9LAoKICBjcmVhdGVkKCkgewogICAgaWYgKHRoaXMuc3lzdGVtVHlwZSA9PT0gMykgewogICAgICB0aGlzLm1lcmNoYW50SWQgPSB0aGlzLnN0b3JlRGF0YS5tZXJjaGFudERhdGEuaWQ7CiAgICB9CgogICAgdGhpcy5nZXRBbGxHb29kcygpOwogIH0sCgogIGFjdGl2YXRlZCgpIHsKICAgIGlmICh0aGlzLiRfaXNJbml0KCkpIHJldHVybjsKICAgIHRoaXMuZ2V0RGF0YSgpOwogIH0sCgogIG1ldGhvZHM6IHsKICAgIGNhdGVnb3J5Q2hhbmdlKHZhbCkge30sCgogICAgLy8g5YiH6aG1CiAgICBwYWdlQ2hhbmdlKHZhbCkgewogICAgICB0aGlzLnBhZ2UgPSB2YWw7CiAgICAgIHRoaXMuZ2V0RGF0YSgpOwogICAgfSwKCiAgICAvLyDmr4/pobXmlbDmja7lpKflsI/mlLnlj5gKICAgIHNpemVDaGFuZ2UodmFsKSB7CiAgICAgIHRoaXMucGFnZVNpemUgPSB2YWw7CiAgICAgIHRoaXMucGFnZUNoYW5nZSgxKTsKICAgIH0sCgogICAgLy8g6I635Y+W5YiX6KGoCiAgICBhc3luYyBnZXRBbGxHb29kcygpIHsKICAgICAgbGV0IHBhcmFtcyA9IHsKICAgICAgICBwYWdlOiB0aGlzLnBhZ2UsCiAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsCiAgICAgICAgc2hvcElkOiB0aGlzLnN0b3JlRGF0YS5pZCwKICAgICAgICBtZXJjaGFudElkOiB0aGlzLm1lcmNoYW50SWQKICAgICAgfTsKICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGdldEFsbEdvb2RzKHBhcmFtcyk7CiAgICAgIHRoaXMuZ29vZHNfbGlzdCA9IGRhdGEuZGF0YS5tYXAoaXRlbSA9PiB7CiAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwKICAgICAgICAgIHNhbGVfZmFsc2VfdmlzaWJsZTogZmFsc2UKICAgICAgICB9OwogICAgICB9KTsKICAgICAgdGhpcy50b3RhbCA9IGRhdGEucGFnZVRvdGFsOwogICAgfSwKCiAgICAvLyAg5pCc57Si5ZWG5ZOBIHNlYXJjaEdvb2QKICAgIGFzeW5jIHNlYXJjaEdvb2QoKSB7CiAgICAgIGxldCBwYXJhbXMgPSB7CiAgICAgICAga2V5d29yZDogdGhpcy5zZWFyY2gua2V5d29yZCwKICAgICAgICBjYXRlZ29yeVBhdGg6IHRoaXMuc2VhcmNoLmNhdGVnb3J5UGF0aC5qb2luKCIsIiksCiAgICAgICAgcGFnZTogdGhpcy5wYWdlLAogICAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLAogICAgICAgIG1lcmNoYW50SWQ6IHRoaXMubWVyY2hhbnRJZAogICAgICB9OwogICAgICBjb25zdCBkYXRhID0gYXdhaXQgc2VhcmNoR29vZChwYXJhbXMpOwogICAgICB0aGlzLmdvb2RzX2xpc3QgPSBkYXRhLmRhdGEubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiB7IC4uLml0ZW0sCiAgICAgICAgICBzYWxlX2ZhbHNlX3Zpc2libGU6IGZhbHNlCiAgICAgICAgfTsKICAgICAgfSk7CiAgICAgIHRoaXMudG90YWwgPSBkYXRhLnBhZ2VUb3RhbDsKICAgIH0sCgogICAgLy8g5Yik5pat5b2T5YmN5L2/55So5pa55rOV5Li65YiX6KGo5o6l5Y+j6L+Y5piv5pCc57Si5byV5pOO5o6l5Y+jIOiOt+WPluWIl+ihqOaVsOaNrgogICAgZ2V0RGF0YSgpIHsKICAgICAgLy8g5pCc57Si5Y+C5pWw6KeE5pW0CiAgICAgIGNvbnN0IG9iaiA9IHsKICAgICAgICBrZXl3b3JkOiB0aGlzLnNlYXJjaC5rZXl3b3JkLAogICAgICAgIGNhdGVnb3J5UGF0aDogdGhpcy5zZWFyY2guY2F0ZWdvcnlQYXRoLmpvaW4oIiwiKQogICAgICB9OwogICAgICBjb25zdCBpc0tleSA9IHRoaXMuJF9jb21tb24uaXNTZXJjaChvYmopOwoKICAgICAgaWYgKGlzS2V5KSB7CiAgICAgICAgdGhpcy5zZWFyY2hHb29kKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5nZXRBbGxHb29kcygpOwogICAgICB9CiAgICB9LAoKICAgIGFzeW5jIHNob3dTcGVjKGluZGV4KSB7CiAgICAgIGxldCB0YXJnZXQgPSB0aGlzLiRfY29tbW9uLmRlZXBDbG9uZSh0aGlzLmdvb2RzX2xpc3QpOwoKICAgICAgaWYgKCF0YXJnZXRbaW5kZXhdLmdvb2RzX3NrdV9saXN0KSB7CiAgICAgICAgdGhpcy5zcGVjX2xvYWRpbmcgPSB0cnVlOwogICAgICAgIGNvbnN0IHsKICAgICAgICAgIGRhdGEKICAgICAgICB9ID0gYXdhaXQgZ2V0R29vZHNJbmZvKHRhcmdldFtpbmRleF0uaWQpOwogICAgICAgIHRoaXMuc3BlY19sb2FkaW5nID0gZmFsc2U7CgogICAgICAgIGlmIChkYXRhLnNwZWNUeXBlID09PSAyKSB7CiAgICAgICAgICB0aGlzLmdvb2RzX2xpc3RbaW5kZXhdLmdvb2RzX3NrdV9saXN0ID0gZGF0YS5zcGVjTXVsdGlwbGUubWFwKGl0ZW0gPT4gewogICAgICAgICAgICBjb25zdCBzcGVjVmFsdWVOYW1lID0gaXRlbS5zcGVjR3JvdXAubWFwKGl0ZW1TID0+IHsKICAgICAgICAgICAgICByZXR1cm4gaXRlbVMuc3BlY1ZhbHVlTmFtZTsKICAgICAgICAgICAgfSkuam9pbigiXyIpOwogICAgICAgICAgICByZXR1cm4geyAuLi5pdGVtLAogICAgICAgICAgICAgIHNwZWNWYWx1ZU5hbWU6IHNwZWNWYWx1ZU5hbWUKICAgICAgICAgICAgfTsKICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSBpZiAoZGF0YS5zcGVjVHlwZSA9PT0gMSkgewogICAgICAgICAgdGhpcy5nb29kc19saXN0W2luZGV4XS5nb29kc19za3VfbGlzdCA9IGRhdGEuc3BlY011bHRpcGxlLm1hcChpdGVtID0+IHsKICAgICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwKICAgICAgICAgICAgICBzcGVjVmFsdWVOYW1lOiAi5pegIgogICAgICAgICAgICB9OwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9IC8vIHRoaXMuZ29vZHNfZGF0YSA9IHRhcmdldAoKICAgIH0KCiAgfQp9Ow=="},{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwMA;AACA;AACA;AACA;EACAA,iBADA;EAEAC;IACAC;EADA,CAFA;;EAKAC;IACA;MACAC,cADA;MAEAC;QACAC,WADA;QAEAC;MAFA,CAFA;MAMAC,cANA;MAOAC,mBAPA;MAQAC,QARA;MASAC,OATA;MAUAC;IAVA;EAYA,CAlBA;;EAmBAC,YACA;MACAC;IADA;EADA,CAnBA;;EAwBAC;IACA;MACA;IACA;;IACA;EACA,CA7BA;;EA8BAC;IACA;IACA;EACA,CAjCA;;EAkCAC;IACAC,sBADA;;IAEA;IACAC;MACA;MACA;IACA,CANA;;IAOA;IACAC;MACA;MACA;IACA,CAXA;;IAYA;IACA;MACA;QACAT,eADA;QAEAC,uBAFA;QAGAS,yBAHA;QAIAjB;MAJA;MAMA;MACA;QACA,SACA,OADA;UAEAkB;QAFA;MAIA,CALA;MAMA;IACA,CA5BA;;IA6BA;IACA;MACA;QACAhB,4BADA;QAEAC,gDAFA;QAGAI,eAHA;QAIAC,uBAJA;QAKAR;MALA;MAOA;MAEA;QACA,SACA,OADA;UAEAkB;QAFA;MAIA,CALA;MAMA;IACA,CA/CA;;IAgDA;IACAC;MACA;MACA;QACAjB,4BADA;QAEAC;MAFA;MAIA;;MACA;QACA;MACA,CAFA,MAEA;QACA;MACA;IACA,CA7DA;;IA8DA;MACA;;MACA;QACA;QACA;UAAAJ;QAAA;QACA;;QAEA;UACA,8DACAqB;YACA,qCACAC,GADA,CACAC;cACA;YACA,CAHA,EAIAC,IAJA,CAIA,GAJA;YAKA,SACA,OADA;cAEAC;YAFA;UAIA,CAXA;QAaA,CAdA,MAcA;UACA,8DACAJ;YACA,SACA,OADA;cAEAI;YAFA;UAIA,CANA;QAQA;MACA,CA/BA,CAgCA;;IACA;;EA/FA;AAlCA","names":["name","components","GoodsCategory","data","merchantId","search","keyword","categoryPath","goods_list","spec_loading","total","page","pageSize","computed","storeData","created","activated","methods","categoryChange","pageChange","sizeChange","shopId","sale_false_visible","getData","item","map","itemS","join","specValueName"],"sourceRoot":"src/views/Multistore/goods","sources":["GoodsList.vue"],"sourcesContent":["<template>\n <Container>\n <div slot=\"right\">\n <el-form size=\"small\" inline>\n <el-form-item>\n <el-input\n v-model=\"search.keyword\"\n size=\"small\"\n placeholder=\"搜索商品名称\"\n >\n <el-button slot=\"append\" icon=\"el-icon-search\"></el-button>\n </el-input>\n </el-form-item>\n <el-form-item>\n <GoodsCategory\n v-model=\"search.categoryPath\"\n clearable\n size=\"small\"\n @change=\"categoryChange\"\n />\n </el-form-item>\n </el-form>\n </div>\n <el-table border :data=\"goods_list\">\n <el-table-column prop=\"title\" label=\"商品信息\" min-width=\"220\">\n <template slot-scope=\"scope\">\n <div class=\"clearfix\">\n <div class=\"float_left\">\n <el-image\n fit=\"contain\"\n style=\"width: 40px; height: 40px\"\n :src=\"scope.row.images[0]\"\n alt=\"\"\n lazy\n scroll-container=\".el-table__body-wrapper\"\n >\n <div\n slot=\"error\"\n style=\"\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n box-sizing: border-box;\n border: 1px solid #eee;\n \"\n >\n 暂无图片\n </div>\n </el-image>\n </div>\n <div class=\"float_left goods-name-view\" style=\"margin-left: 10px\">\n <div class=\"goods-title\">\n {{ scope.row.title }}\n </div>\n <div class=\"goods-no\">\n {{ scope.row.code }}\n </div>\n </div>\n </div>\n </template>\n </el-table-column>\n <el-table-column prop=\"goods\" label=\"价格\" min-width=\"120\">\n <template slot-scope=\"scope\">\n <el-popover\n placement=\"right\"\n width=\"1000\"\n trigger=\"click\"\n @show=\"showSpec(scope.$index)\"\n >\n <el-table\n v-loading=\"spec_loading\"\n :height=\"500\"\n :data=\"scope.row.goods_sku_list\"\n size=\"small\"\n border\n >\n <el-table-column\n property=\"unitName\"\n label=\"单位\"\n min-width=\"60px\"\n ></el-table-column>\n <el-table-column\n property=\"specValueName\"\n label=\"属性\"\n min-width=\"120px\"\n ></el-table-column>\n <el-table-column\n property=\"enabledLadder\"\n label=\"阶梯价\"\n min-width=\"70px\"\n >\n <template slot-scope=\"props\">\n <el-tag v-if=\"props.row.enabledLadder === 1\" type=\"success\">\n 是\n </el-tag>\n <el-tag v-else type=\"info\">否</el-tag>\n </template>\n </el-table-column>\n <el-table-column\n property=\"salePrice\"\n label=\"销售价(元)\"\n min-width=\"160px\"\n >\n <template slot-scope=\"props\">\n <span\n v-if=\"props.row.enabledLadder === 0\"\n style=\"color: #ff4040\"\n >\n ¥{{ props.row.salePrice }}\n </span>\n <div v-else>\n <p\n v-for=\"(item, index) in props.row.ladderPrice\"\n :key=\"index\"\n >\n <span>\n 数量:\n <span style=\"color: #ff4040\">\n {{ item.from }}-{{\n index === props.row.ladderPrice.length - 1\n ? \"∞\"\n : item.to\n }}\n </span>\n ,\n </span>\n <span>\n 价格:\n <span style=\"color: #ff4040\">¥{{ item.price }}</span>\n ;\n </span>\n </p>\n </div>\n </template>\n </el-table-column>\n <el-table-column\n property=\"marketPrice\"\n label=\"市场价(元)\"\n min-width=\"100px\"\n ></el-table-column>\n <el-table-column\n property=\"setNum\"\n label=\"起订数量\"\n min-width=\"100px\"\n ></el-table-column>\n <el-table-column\n property=\"inventory\"\n label=\"可用库存\"\n min-width=\"100px\"\n >\n <template slot-scope=\"props\">\n {{ props.row.inventory - 0 }}\n </template>\n </el-table-column>\n <el-table-column\n property=\"salesNum\"\n label=\"销量\"\n min-width=\"100px\"\n ></el-table-column>\n <el-table-column\n property=\"barCode\"\n label=\"条形码\"\n min-width=\"100px\"\n ></el-table-column>\n </el-table>\n <el-button slot=\"reference\" size=\"mini\" plain type=\"primary\">\n {{ scope.row.specTotal }}\n 种规格\n </el-button>\n </el-popover>\n </template>\n </el-table-column>\n <el-table-column prop=\"inventorTotal\" label=\"总库存\" min-width=\"130\">\n <template slot-scope=\"scope\">\n {{ Number(scope.row.inventorTotal) || 0 }}\n </template>\n </el-table-column>\n <el-table-column label=\"操作\" min-width=\"100\">\n <template>\n <el-button\n type=\"text\"\n @click=\"$router.push('/Multistore/ShopAdministration')\"\n >\n 编辑\n </el-button>\n </template>\n </el-table-column>\n </el-table>\n <FooterPage\n :page-size=\"pageSize\"\n :total-page.sync=\"total\"\n :current-page.sync=\"page\"\n @pageChange=\"pageChange\"\n @sizeChange=\"sizeChange\"\n ></FooterPage>\n </Container>\n</template>\n\n<script>\n import GoodsCategory from \"@/component/common/GoodsCategory.vue\";\n import { getAllGoods, searchGood, getGoodsInfo } from \"@/api/goods\";\n import { mapGetters } from \"vuex\";\n export default {\n name: \"GoodsList\",\n components: {\n GoodsCategory,\n },\n data() {\n return {\n merchantId: \"\",\n search: {\n keyword: \"\",\n categoryPath: [],\n },\n goods_list: [],\n spec_loading: false,\n total: 0,\n page: 1,\n pageSize: 10,\n };\n },\n computed: {\n ...mapGetters({\n storeData: \"MUser/storeData\",\n }),\n },\n created() {\n if (this.systemType === 3) {\n this.merchantId = this.storeData.merchantData.id;\n }\n this.getAllGoods();\n },\n activated() {\n if (this.$_isInit()) return;\n this.getData();\n },\n methods: {\n categoryChange(val) {},\n // 切页\n pageChange(val) {\n this.page = val;\n this.getData();\n },\n // 每页数据大小改变\n sizeChange(val) {\n this.pageSize = val;\n this.pageChange(1);\n },\n // 获取列表\n async getAllGoods() {\n let params = {\n page: this.page,\n pageSize: this.pageSize,\n shopId: this.storeData.id,\n merchantId: this.merchantId,\n };\n const data = await getAllGoods(params);\n this.goods_list = data.data.map((item) => {\n return {\n ...item,\n sale_false_visible: false,\n };\n });\n this.total = data.pageTotal;\n },\n // 搜索商品 searchGood\n async searchGood() {\n let params = {\n keyword: this.search.keyword,\n categoryPath: this.search.categoryPath.join(\",\"),\n page: this.page,\n pageSize: this.pageSize,\n merchantId: this.merchantId,\n };\n const data = await searchGood(params);\n\n this.goods_list = data.data.map((item) => {\n return {\n ...item,\n sale_false_visible: false,\n };\n });\n this.total = data.pageTotal;\n },\n // 判断当前使用方法为列表接口还是搜索引擎接口 获取列表数据\n getData() {\n // 搜索参数规整\n const obj = {\n keyword: this.search.keyword,\n categoryPath: this.search.categoryPath.join(\",\"),\n };\n const isKey = this.$_common.isSerch(obj);\n if (isKey) {\n this.searchGood();\n } else {\n this.getAllGoods();\n }\n },\n async showSpec(index) {\n let target = this.$_common.deepClone(this.goods_list);\n if (!target[index].goods_sku_list) {\n this.spec_loading = true;\n const { data } = await getGoodsInfo(target[index].id);\n this.spec_loading = false;\n\n if (data.specType === 2) {\n this.goods_list[index].goods_sku_list = data.specMultiple.map(\n (item) => {\n const specValueName = item.specGroup\n .map((itemS) => {\n return itemS.specValueName;\n })\n .join(\"_\");\n return {\n ...item,\n specValueName: specValueName,\n };\n }\n );\n } else if (data.specType === 1) {\n this.goods_list[index].goods_sku_list = data.specMultiple.map(\n (item) => {\n return {\n ...item,\n specValueName: \"无\",\n };\n }\n );\n }\n }\n // this.goods_data = target\n },\n },\n };\n</script>\n\n<style scoped>\n .goods-name-view {\n width: calc(100% - 76px);\n }\n</style>\n"]}]}
|