haoxuan
2024-04-17 1888b426ff2b6a529f5fdef0f0453dadef71824b
src/views/productManage/product/index.vue
@@ -5,8 +5,10 @@
        :add-title="'新建'"
        :placeholder="'请输入产品名称'"
        :amount-view="false"
        :search-task-map="searchTaskMap"
        @addCommonClick="addBtnClick"
        @searchClick="searchClick"
        @delSelectClick="delSelectClick"
      />
    </div>
    <div class="list-view">
@@ -14,25 +16,32 @@
        <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> -->
            <div class="img-view">
            <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>
@@ -54,16 +63,20 @@
      </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" />
@@ -89,7 +102,7 @@
  data() {
    return {
      tableList: {},
      showcol: ["内部参考", "负责人", "产品标签", "销售价格", "成本", "在库数量", "预测数量", "计量单位"],
      showcol: ["内部编码",'产品规格', "负责人", "产品标签", "成本", "在库数量", "预测数量", "计量单位"],
      searchOptions: [],
      commonDetail: {
        visible: false,
@@ -99,21 +112,25 @@
      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],
      keyWord: "",
      categoryId: null
      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()
  },
@@ -125,7 +142,8 @@
      }
      this.tableList = {
        tableInfomation: [],
        selectBox: true,
        selectBox: false,
        selectIndex: true,
        showcol: this.showcol,
        allcol: [],
        tableColumn: this.setTableColumn(this.showcol)
@@ -142,15 +160,27 @@
    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
        },
        {
@@ -231,8 +261,20 @@
      }).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 || []
@@ -249,16 +291,28 @@
    },
    // 新建
    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) {
@@ -272,7 +326,13 @@
        this.pagerOptions.pageSize = 15
      }
      this.getData()
    }
    },
    // 删除产品类型
    delSelectClick() {
      this.categoryId = 0
      this.getData()
    },
    imgClick() {}
  }
}
</script>
@@ -365,7 +425,7 @@
  }
}
.product-list {
  height: calc(100% - 65px);
  height: calc(100% - 70px);
}
::v-deep {
  .el-table {