| | |
| | | :add-title="'新建'" |
| | | :placeholder="'请输入产品名称'" |
| | | :amount-view="false" |
| | | :search-task-map="searchTaskMap" |
| | | @addCommonClick="addBtnClick" |
| | | @searchClick="searchClick" |
| | | @delSelectClick="delSelectClick" |
| | | /> |
| | | </div> |
| | | <div class="list-view"> |
| | |
| | | <div class="icon-view"> |
| | | <span |
| | | class="icon-label" |
| | | @click="selIconSwitchClick('1')" |
| | | :class="{ blueBackgroud: isIconIndex === '1', whiteBackgroud: isIconIndex === '2' }" |
| | | ><i class="el-icon-menu"></i |
| | | ></span> |
| | | <span |
| | | class="icon-label" |
| | | @click="selIconSwitchClick('2')" |
| | | :class="{ whiteBackgroud: isIconIndex === '1', blueBackgroud: isIconIndex === '2' }" |
| | | style="margin-left: 5px" |
| | | ><i class="el-icon-s-unfold"></i |
| | | ></span> |
| | | <span |
| | | class="icon-label" |
| | | @click="selIconSwitchClick('1')" |
| | | :class="{ blueBackgroud: isIconIndex === '1', whiteBackgroud: isIconIndex === '2' }" |
| | | ><i class="el-icon-menu"></i |
| | | ></span> |
| | | </div> |
| | | </div> |
| | | <!-- 图表形式 --> |
| | | <div v-if="isIconIndex === '1'" class="product-view"> |
| | | <div class="product-box" v-for="item in tableList.tableInfomation" :key="item.id" @click="tableRowClick(item)"> |
| | | <div class="product-box" v-for="item in tableList.tableInfomation" :key="item.id" @click="showDetail(item)"> |
| | | <div class="left"> |
| | | <el-image style="width: 60px; height: 80px" :src="url"></el-image> |
| | | <el-image |
| | | v-if="item.attachmentList?.length > 0" |
| | | style="width: 60px; height: 80px" |
| | | :src="item.attachmentList[0].FileUrl" |
| | | :preview-src-list="item.srcList" |
| | | :z-index="9999" |
| | | @click.stop="imgClick" |
| | | ></el-image> |
| | | <div v-else class="img-view"> |
| | | <i class="el-icon-picture-outline"></i> |
| | | </div> |
| | | </div> |
| | | <div class="right"> |
| | | <div class="label"> |
| | |
| | | </div> |
| | | <!-- 列表形式 --> |
| | | <div v-if="isIconIndex === '2'" class="product-list"> |
| | | <TableCommonView |
| | | ref="tableListRef" |
| | | :table-list="tableList" |
| | | @selTableCol="selTableCol" |
| | | @tableRowClick="tableRowClick" |
| | | > |
| | | <TableCommonView ref="tableListRef" :table-list="tableList" @selTableCol="selTableCol"> |
| | | <template slot="tableButton"> |
| | | <el-table-column label="操作" width="90" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span @click.stop="showDetail(scope.row)" class="cursor_pointer" style="margin-right: 10px"> |
| | | <span style="color: #2a78fb">查看</span> |
| | | </span> |
| | | <span @click.stop="editRow(scope.row)" class="cursor_pointer"> |
| | | <span style="color: #2a78fb">编辑</span> |
| | | </span> |
| | | </template> |
| | | </el-table-column> |
| | | </template> |
| | | </TableCommonView> |
| | | <!-- <div class="btn-pager"> |
| | | <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" /> |
| | | </div> --> |
| | | </div> |
| | | <div class="btn-pager"> |
| | | <PagerView class="page" :pager-options="pagerOptions" :page-size="pageSizes" v-on="pagerEvents" /> |
| | |
| | | data() { |
| | | return { |
| | | tableList: {}, |
| | | showcol: ["内部参考", "负责人", "产品标签", "销售价格", "成本", "在库数量", "预测数量", "计量单位"], |
| | | showcol: ["内部编码",'产品规格', "负责人", "产品标签", "成本", "在库数量", "预测数量", "计量单位"], |
| | | searchOptions: [], |
| | | commonDetail: { |
| | | visible: false, |
| | |
| | | editConfig: { |
| | | visible: false, |
| | | title: "新建", |
| | | infomation: {} |
| | | infomation: {}, |
| | | autoEdit: false |
| | | }, |
| | | isIconIndex: "1", // 1 图标 2 列表 |
| | | isIconIndex: "2", // 1 图标 2 列表 |
| | | url: "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg", |
| | | pageSizes: [15, 30] |
| | | pageSizes: [15, 30], |
| | | keyWord: "", |
| | | categoryId: null, |
| | | searchTaskMap: [] |
| | | } |
| | | }, |
| | | created() { |
| | | this.setTable() |
| | | let query = this.$route.query |
| | | if (query) { |
| | | console.log("ssssss") |
| | | this.categoryId = query.id ? Number(query.id) : null |
| | | this.pagerOptions.currPage = 1 |
| | | this.searchTaskMap = query.id ? [{ categoryId: this.categoryId, title: query.categoryName }] : [] |
| | | } |
| | | this.getData() |
| | | }, |
| | | methods: { |
| | |
| | | } |
| | | this.tableList = { |
| | | tableInfomation: [], |
| | | selectBox: true, |
| | | selectBox: false, |
| | | selectIndex: true, |
| | | showcol: this.showcol, |
| | | allcol: [], |
| | | tableColumn: this.setTableColumn(this.showcol) |
| | |
| | | setTableColumn(showcol) { |
| | | let tableColumn = [ |
| | | { |
| | | label: "产品编码", |
| | | prop: "id", |
| | | isShowColumn: true, |
| | | default: true |
| | | }, |
| | | { |
| | | label: "产品名称", |
| | | prop: "name", |
| | | isShowColumn: true, |
| | | default: true |
| | | }, |
| | | { |
| | | label: "内部参考", |
| | | label: "产品规格", |
| | | prop: "specs", |
| | | isShowColumn: showcol.includes("产品规格"), |
| | | default: false |
| | | }, |
| | | { |
| | | label: "内部编码", |
| | | prop: "internalReference", |
| | | isShowColumn: showcol.includes("内部参考"), |
| | | isShowColumn: showcol.includes("内部编码"), |
| | | default: false |
| | | }, |
| | | { |
| | |
| | | }, |
| | | { |
| | | label: "产品类型", |
| | | prop: "productType", |
| | | prop: "model", |
| | | isShowColumn: showcol.includes("产品类型"), |
| | | default: false |
| | | }, |
| | |
| | | this.tableList.tableColumn = this.setTableColumn(val) |
| | | }, |
| | | // 请求数据 |
| | | async getData(val) { |
| | | async getData() { |
| | | await getProductList({ |
| | | keyWord: val, |
| | | keyWord: this.keyWord, |
| | | categoryId: this.categoryId ? this.categoryId : null, |
| | | page: this.pagerOptions.currPage, |
| | | pageSize: this.pagerOptions.pageSize |
| | | }).then((res) => { |
| | | if (res.code === 200) { |
| | | const list = res.data.map((item) => { |
| | | let srcList = [] |
| | | if (item.attachmentList?.length > 0) { |
| | | item.attachmentList.forEach((ele) => { |
| | | if (ele.fileType === "picture") { |
| | | srcList.push(ele.FileUrl) |
| | | } |
| | | }) |
| | | } else { |
| | | srcList = [] |
| | | } |
| | | |
| | | return { |
| | | ...item |
| | | ...item, |
| | | srcList |
| | | } |
| | | }) |
| | | this.tableList.tableInfomation = list || [] |
| | |
| | | // 搜索 |
| | | searchClick(val) { |
| | | console.log(val) |
| | | this.keyWord = val |
| | | this.pagerOptions.currPage = 1 |
| | | this.getData(val) |
| | | this.getData() |
| | | }, |
| | | // 新建 |
| | | addBtnClick() { |
| | | this.editConfig.visible = true |
| | | this.editConfig.title = "新建" |
| | | this.editConfig.infomation = {} |
| | | }, |
| | | // 行点击 |
| | | tableRowClick(row) { |
| | | console.log(row) |
| | | this.editConfig.infomation = { |
| | | purchaseTypeList:[] |
| | | } |
| | | this.editConfig.visible = true |
| | | }, |
| | | // 详情 |
| | | showDetail(row) { |
| | | console.log(row) |
| | | this.editConfig.autoEdit = false |
| | | this.editConfig.title = "编辑" |
| | | this.editConfig.infomation = { ...row } |
| | | let imageSrc = row.attachmentList?.length > 0 ? row.attachmentList[0].FileUrl : "" |
| | | this.editConfig.infomation = { ...row, imageSrc: imageSrc } |
| | | this.editConfig.visible = true |
| | | }, |
| | | // 编辑 |
| | | editRow(row) { |
| | | this.editConfig.autoEdit = true |
| | | this.editConfig.title = "编辑" |
| | | let imageSrc = row.attachmentList?.length > 0 ? row.attachmentList[0].FileUrl : "" |
| | | this.editConfig.infomation = { ...row, imageSrc: imageSrc } |
| | | this.editConfig.visible = true |
| | | }, |
| | | // 切换列表展现形式 |
| | | selIconSwitchClick(value) { |
| | |
| | | this.pagerOptions.pageSize = 15 |
| | | } |
| | | this.getData() |
| | | } |
| | | }, |
| | | // 删除产品类型 |
| | | delSelectClick() { |
| | | this.categoryId = 0 |
| | | this.getData() |
| | | }, |
| | | imgClick() {} |
| | | } |
| | | } |
| | | </script> |
| | |
| | | .left { |
| | | width: 60px; |
| | | text-align: center; |
| | | .img-view { |
| | | width: 60px; |
| | | height: 80px; |
| | | line-height: 80px; |
| | | border: 1px solid #dee2e6; |
| | | font-size: 22px; |
| | | color: #b8babb; |
| | | } |
| | | } |
| | | .right { |
| | | flex: 1; |
| | |
| | | } |
| | | } |
| | | .product-list { |
| | | height: calc(100% - 65px); |
| | | height: calc(100% - 70px); |
| | | } |
| | | ::v-deep { |
| | | .el-table { |