<template> <div class="dealGoodsPool pagePadding"> <ex-table v-loading="loading" v-if="powers && powers.length > 0 && powers.some((item) => item == '001')" :table="table" :data="tableData" :columns="columns" :page="pageInfo" :size="size" @page-curr-change="handlePageChange" @page-size-change="handleSizeChange" @screen-reset=" pageInfo.curr = 1; parmValue.page = 1; searchList(); " @screen-submit=" pageInfo.curr = 1; parmValue.page = 1; searchList(); " @selection="selection_change" > <template #table-header="{}"> <div style="width: 100%"> <el-row style="padding: 0 0 0 80px"> <el-col :span="6" style="width: 293px"> <period-date-picker :type="1" :width="'135px'" :size="searchSize" :start="parmValue.start" :end="parmValue.end" @timeReturned="handleTime" /> </el-col> <el-col :span="6" style="width: 250px; padding: 0 0 0 10px"> <el-input :size="searchSize" style="100%" v-model="parmValue.good_code" :maxlength="40" placeholder="商品编码" ></el-input> </el-col> <el-col :span="6" style="width: 280px; padding: 0 0 0 10px"> <el-input :size="searchSize" style="100%" v-model="parmValue.supplier_name" :maxlength="40" placeholder="商品名称" ></el-input> </el-col> <el-col :span="3" class="fr" style="width: 110px; padding: 0 0 0 10px" > <!-- v-if="powers.some((item) => item == '055')" --> <el-button :size="searchSize" type="warning" style="float: right" @click="add_online" > <i class="el-icon-circle-plus-outline"></i> <span>商品上线</span> </el-button> </el-col> <el-col :span="3" class="fr" style="width: 66px; padding: 0 0 0 10px" > <el-button type="primary" :size="searchSize" @click="searchList"> 刷新 </el-button> </el-col> <el-col :span="3" class="fr" style="width: 66px; padding: 0 0 0 10px" > <el-button type="warning" :size="searchSize" @click="restSearch"> 重置 </el-button> </el-col> </el-row> <!-- <el-row> --> <!-- <el-col :span="4" style="width: 518px"> <el-input :size="searchSize" v-model="sinput" :maxlength="40" placeholder="关键字" > <el-select v-model="select" slot="prepend" @change=" pageInfo.curr = 1; parmValue.page = 1; searchList(); " style="width: 130px" placeholder="关键词类型" > <el-option label="业务公司编码" value="1" /> <el-option label="业务公司名称" value="2" /> <el-option label="供应商编码" value="3" /> <el-option label="供应商名称" value="4" /> </el-select> </el-input> </el-col> --> <!-- </el-row> --> </div></template > <template #good_img="{ scope }"> <div v-if="scope.row.good_img" style="width: 20px; height: 20px" class="hover" v-viewer > <img :src="scope.row.good_img" style="display: inline-block; width: 100%; height: 100%" alt="" /> </div> </template> <!-- <template #status="{ scope }"> <el-tag :size="tablebtnSize" :type="scope.row.status == '0' ? '' : 'warning'" v-text=" (statusList.find((item) => item.code == scope.row.status) || {}) .name || '--' " ></el-tag> </template> --> <template #good_type="{ scope }"> <el-tag :size="tablebtnSize" :type="scope.row.good_type == '0' ? 'warning' : ''" v-text=" (options1.find((item) => item.id == scope.row.good_type) || {}) .name || '--' " ></el-tag> </template> <template #operation="{ scope }"> <el-tooltip v-if="powers.some((item) => item == '007')" effect="dark" content="详情" placement="top" > <i class="el-icon-view tb-icon" @click="show_view(scope.row)"></i> </el-tooltip> </template> </ex-table> <no-auth v-else></no-auth> <show-goods-data-table-modal :showModel="visible" :type="'3'" :title="row.dtitle" :skuCode="row.skuCode" :spuCode="row.spuCode" :iscgd="false" @cancel="visible = false" /> <el-dialog title="弹窗" :visible.sync="centerDialogVisible" width="30%" center > <span>暂无</span> </el-dialog> </div> </template> <script> import asyncRequest from "@/apis/service/goodStore/dealGoodsPool"; import mixinPage from "@/mixins/elPaginationHandle"; import { mapGetters } from "vuex"; import resToken from "@/mixins/resToken"; import { listCol, options1 } from "./columns"; import showGoodsDataTableModal from "@/components/show-goods-data-table-modal"; export default { name: "dealGoodsPool", mixins: [mixinPage, resToken], components: { showGoodsDataTableModal, }, computed: { //组件SIZE设置 ...mapGetters(["tablebtnSize", "searchSize", "size"]), powers() { let tran = this.$store.getters.btnList.find( (item) => item.menu_route == "dealGoodsPool" ) || {}; if (tran && tran.action && tran.action.length > 0) { return tran.action; } else { return []; } }, }, data() { return { row: {}, visible: false, select: "1", sinput: "", //弹窗 centerDialogVisible:false, //选中数组 changeList:[], statusList: [ { code: "0", name: "新建待审核", }, { code: "1", name: "审核通过", }, { code: "2", name: "基础修改待审核", }, { code: "3", name: "成本修改待审核", }, ], options1: options1, loading: false, parmValue: { page: 1, // 页码 size: 15, // 每页显示条数 start: "", end: "", status: "", creater: "", }, // 表格 - 数据 tableData: [], // 表格 - 参数 table: { stripe: true, border: true, _defaultHeader_: ["setcol"], }, // 表格 - 分页 pageInfo: { size: 15, curr: 1, total: 0, }, // 表格 - 列参数 columns: listCol, supplierNo: [], cat_id: [], brandid: [], }; }, mounted() { this.supplierNo = []; this.cat_id = []; this.brandid = []; this.searchList(); }, methods: { //点击商品上线 add_online(){ this.centerDialogVisible = true; }, //选中触发函数 selection_change(e) { console.log(e); const { list } = e; //选中的数组集合 this.changeList = list.length > 0 ? JSON.parse(JSON.stringify(list)) : []; }, show_view(keyRow) { this.row = keyRow; this.row.dtitle = "咨询成交商品详情"; this.visible = true; }, restSearch() { this.supplierNo = []; this.cat_id = []; this.brandid = []; // 表格 - 分页 this.pageInfo = { size: 15, curr: 1, total: 0, }; this.parmValue = { page: 1, // 页码 size: 15, // 每页显示条数 start: "", end: "", status: "", creater: "", }; this.searchList(); }, //供应商选择 async supplierNosearchChange(e) { console.log(e); const { code } = e; this.supplierNo = code ? [code] : []; this.parmValue.supplierNo = this.supplierNo.toString(); this.pageInfo.curr = 1; this.parmValue.page = 1; await this.searchList(); }, //业务企业选择 async company_idsearchChange(e) { const { code } = e; this.parmValue.company_id = code ? code : ""; this.pageInfo.curr = 1; this.parmValue.page = 1; await this.searchList(); }, //商品品牌选择 async brandidsearchChange(e) { const { id, code, label } = e; if (id) { this.brandid = [id]; } else { this.brandid = []; } this.ruleForm.brandid = this.this.brandid.toString(); this.pageInfo.curr = 1; this.parmValue.page = 1; await this.searchList(); }, // 时间 async handleTime(e) { this.parmValue.start = e.startTime || ""; this.parmValue.end = e.endTime || ""; if ( (this.parmValue.start !== "" && this.parmValue.end !== "") || (this.parmValue.start === "" && this.parmValue.end === "") ) { this.pageInfo.curr = 1; this.parmValue.page = 1; await this.searchList(); } }, /** * 启用/禁用 * @param {String} id id * @param {String} status 0-禁用 1-启用 */ async changeStatus(id, status) { await this.$confirm(`确定要改为${status === "1" ? "禁用" : "启用"}?`, { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", }) .then(async () => { this.loading = true; const model = { id: id, status: status === "1" ? "0" : "1", }; const res = await asyncRequest.status(model); if (res && res.code === 0) { this.loading = false; this.$notify.success({ title: "状态修改成功!", message: "", }); await this.searchList(); } else if (res && res.code >= 100 && res.code <= 104) { await this.logout(); } else { this.loading = false; this.$message.warning(res.message); } }) .catch(() => { console.log("取消"); }); }, async deleteItem(code) { await this.$confirm("确定要删除?", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", }) .then(async () => { const model = { codes: [code], }; const res = await asyncRequest.delete(model); if (res && res.code === 0) { this.$notify.success({ title: "删除成功", message: "", }); this.searchList(); } else if (res && res.code >= 100 && res.code <= 104) { await this.logout(); } else { this.$message.warning(res.message); } }) .catch(() => { console.log("取消"); }); }, // 刷新表格 async searchList() { if ( (this.parmValue.start !== "" && this.parmValue.end === "") || (this.parmValue.start === "" && this.parmValue.end !== "") ) { this.$message.warning("时间区间不完整!"); return; } this.loading = true; const res = await asyncRequest.list(this.parmValue); if (res && res.code === 0 && res.data) { this.tableData = res.data.list; console.log("11111111",this.tableData) this.tableData.forEach((a) => { a.cat_name = ""; let list = a.cat_info || []; list.forEach((b, i) => { a.cat_name += i == 0 ? b.name : "/" + b.name; }); }); this.pageInfo.total = Number(res.data.count); } else if (res && res.code >= 100 && res.code <= 104) { await this.logout(); } else { this.tableData = []; this.pageInfo.total = 0; } this.loading = false; }, //商品分类选择 async goods_class_change(e) { const { value } = e; this.cat_id = value || []; this.pageInfo.cat_id = this.cat_id.toString(); this.pageInfo.curr = 1; this.parmValue.page = 1; await this.searchList(); }, }, }; </script> <style lang="scss" scoped> </style>