| | |
| | | icon="ios-search" |
| | | >搜索</Button |
| | | > |
| | | <Button |
| | | @click="queryExportGoods" |
| | | class="search-btn" |
| | | type="primary" |
| | | >导出商品清单</Button |
| | | > |
| | | </Form> |
| | | <Table |
| | | :loading="loading" |
| | |
| | | </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="二维码" |
| | |
| | | > |
| | | </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 } 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"; |
| | | import {addOrUpDateTag,getGoodSTagById} from "@/api/goods-tag" |
| | | |
| | | export default { |
| | | components: { |
| | | "vue-qr": vueQr, |
| | |
| | | name: "goods", |
| | | data() { |
| | | return { |
| | | sortForm:{ |
| | | goodsId:'', |
| | | sort:0 |
| | | }, |
| | | showSort:false, |
| | | |
| | | tagForm:{ |
| | | selectTagIds:[], |
| | | goodsId:'', |
| | | createType:'MANAGER', |
| | | }, |
| | | |
| | | selectLoading: false, |
| | | options: [], |
| | | |
| | | showUpdateTag:false, |
| | | |
| | | |
| | | showGeneralQrCode:false, |
| | | QRCodeUrl:'', |
| | | codeUrl: this.QRcodeBaseUrl+ '/scanpage/goods', |
| | |
| | | key: "action", |
| | | align: "center", |
| | | fixed: "right", |
| | | width: 220, |
| | | width: 400, |
| | | render: (h, params) => { |
| | | if (params.row.marketEnable == "DOWN") { |
| | | return h("div", [ |
| | |
| | | h( |
| | | "Button", |
| | | { |
| | | style: { |
| | | marginRight: "5px", |
| | | }, |
| | | props: { |
| | | type: "info", |
| | | size: "small", |
| | | }, |
| | | on: { |
| | |
| | | }, |
| | | }, |
| | | "生成二维码" |
| | | ), |
| | | h( |
| | | "Button", |
| | | { |
| | | style: { |
| | | marginLeft: "5px", |
| | | marginTop: "5px", |
| | | }, |
| | | props: { |
| | | size: "small", |
| | | }, |
| | | on: { |
| | | click: () => { |
| | | this.openTagsModal(params.row); |
| | | }, |
| | | }, |
| | | }, |
| | | "编辑标签" |
| | | ) |
| | | ]); |
| | | } else { |
| | |
| | | h( |
| | | "Button", |
| | | { |
| | | style: { |
| | | marginRight: "5px", |
| | | }, |
| | | props: { |
| | | type: "error", |
| | | size: "small", |
| | |
| | | }, |
| | | }, |
| | | "生成二维码" |
| | | ), h( |
| | | "Button", |
| | | { |
| | | props: { |
| | | type: "error", |
| | | size: "small", |
| | | }, |
| | | on: { |
| | | click: () => { |
| | | this.goodsSort(params.row); |
| | | }, |
| | | }, |
| | | }, |
| | | "设置商品排序" |
| | | ),h( |
| | | "Button", |
| | | { |
| | | style: { |
| | | marginLeft: "5px", |
| | | marginTop: "5px", |
| | | }, |
| | | props: { |
| | | size: "small", |
| | | }, |
| | | on: { |
| | | click: () => { |
| | | this.openTagsModal(params.row); |
| | | }, |
| | | }, |
| | | }, |
| | | "编辑标签" |
| | | ) |
| | | ]); |
| | | } |
| | |
| | | }; |
| | | }, |
| | | 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 = { |
| | | 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但是依然不支持download |
| | | 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; |
| | | }, |
| | |
| | | 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> |