songshankun
2023-11-03 cf6a4b874aed82592eea78294715c7c688f9b248
src/views/reportForm/inventoryReport/index.vue
@@ -3,8 +3,9 @@
  <div class="rightContent">
    <div class="top">
      <SearchCommonView
        :showAdd="false"
        :add-title="'新建'"
        :placeholder="'请输入参考'"
        :placeholder="'请输入产品名称或产品类别'"
        :amount-view="false"
        @addCommonClick="addBtnClick"
        @searchClick="getList"
@@ -21,17 +22,19 @@
              v-for="(item, index) in warehouseList"
              :key="index"
              v-model="stashRadio"
              :label="item.name"
              :label="item.code"
              @change="radioHandleChange"
              >{{ item.name }}</el-radio
            >
            <!-- <el-radio v-model="stashRadio" label="2">备选项</el-radio> -->
            <!-- @click.prevent.native="checkRadio(item.code)"   取消单选项 -->
          </template>
        </div>
        <p style="margin-top: 30px">类别</p>
        <el-checkbox-group v-model="checkList" @change="checkListHandler">
          <el-checkbox v-for="item in categoryList" :key="item.id" :label="item.id">{{ item.name }}</el-checkbox>
        </el-checkbox-group>
          <el-checkbox v-for="item in categoryList" :key="item.id" :label="item.id">
            {{ item.name }}
          </el-checkbox>
          </el-checkbox-group>
      </div>
      <div class="list-view">
        <div class="table">
@@ -45,20 +48,20 @@
            <template slot="tableButton">
              <el-table-column label="操作" width="220" align="center">
                <template slot-scope="scope">
                  <span @click="handleHistoryClick(scope.row)">
                  <span @click="handleHistoryClick(scope.row)" class="yes-cursor">
                    <i class="el-icon-refresh-left"></i>
                    <span>历史</span>
                  </span>
                  <span @click="handleAddGoods(scope)" class="margin_left_5px">
                  <span @click="handleAddGoods(scope)" class="margin_left_5px no-cursor">
                    <i class="el-icon-refresh"></i>
                    <span>补货</span>
                  </span>
                  <template>
                    <span @click="handleLocation(scope)" class="margin_left_5px">
                    <span @click="handleLocation(scope)" class="margin_left_5px yes-cursor">
                      <i class="el-icon-menu"></i>
                      <span>位置</span>
                    </span>
                    <span @click="handleForecast(scope)" class="margin_left_5px">
                    <span @click="handleForecast(scope)" class="margin_left_5px no-cursor">
                      <i class="el-icon-s-data"></i>
                      <span>预测</span>
                    </span>
@@ -85,7 +88,7 @@
import { getInventoryData, getProductCategoryList, getWarehouseList } from "@/api/reportForm/inventoryRwport"
export default {
  name: "InboundOutboundDetail",
  name: "inventoryReport",
  props: {},
  components: { AddOverviewDialog },
  mixins: [pageMixin],
@@ -144,7 +147,8 @@
      stashRadio: "1",
      pageSizes: [15, 30],
      oldRadioBtn: "",
      metaTitle: this.$route.meta.title
      metaTitle: this.$route.meta.title,
      searchStr: this.$route.params.name ?? ''
    }
  },
  created() {
@@ -165,6 +169,12 @@
      this.warehouseListName = e
      this.getData()
    },
    // checkRadio(val){
    //   console.log(val)
    //   val == this.stashRadio ? this.stashRadio = '' : this.stashRadio = val
    //   this.warehouseListName = val
    //   this.getData()
    // },
    setTable() {
      if (this.isIconIndex === "1") {
        this.pageSizes = [30, 60]
@@ -172,7 +182,8 @@
      }
      this.tableList = {
        tableInfomation: [],
        selectBox: true,
        selectBox: false,
        selectIndex: true,
        showcol: this.showcol,
        countcol: this.countcol,
        allcol: [],
@@ -208,42 +219,48 @@
          label: "单位成本",
          prop: "cost",
          default: false,
          isShowColumn: showcol.includes("单位成本")
          isShowColumn: showcol.includes("单位成本"),
          textAlign:"right"
        },
        {
          label: "总价值",
          prop: "value",
          default: false,
          isShowColumn: showcol.includes("总价值"),
          unit: "¥"
          unit: "¥",
          textAlign:"right"
        },
        {
          label: "在库",
          prop: "amount",
          default: true,
          isShowColumn: true,
          unit: ""
          unit: "",
          textAlign:"right"
        },
        {
          label: "可用库存",
          prop: "availableNumber",
          default: true,
          isShowColumn: true,
          unit: ""
          unit: "",
          textAlign:"right"
        },
        {
          label: "入库",
          prop: "in",
          default: false,
          isShowColumn: showcol.includes("入库"),
          unit: ""
          unit: "",
          textAlign:"right"
        },
        {
          label: "出库",
          prop: "out",
          isShowColumn: showcol.includes("出库"),
          default: false,
          unit: ""
          unit: "",
          textAlign:"right"
        },
        {
          label: "预测",
@@ -266,7 +283,12 @@
      this.tableList.tableColumn = this.setTableColumn(val)
    },
    getList(val) {
      console.log(val)
      this.searchStr = val
      this.getInventoryData({
        page: 1,
        pageSize: this.pagerOptions.pageSize,
        keyWord: val
      })
    },
    // 行点击
    tableRowClick(row) {
@@ -278,8 +300,8 @@
    // 新建
    addBtnClick() {
      // this.editConfig.visible = true;
      this.editConfig.title = "新建"
      this.getData()
      // this.editConfig.title = "新建"
      // this.getData()
    },
    // 状态
    getStatus(val) {
@@ -290,7 +312,10 @@
      this.$router.push({
        name: "inboundOutboundDetail",
        params: {
          id: row.produceId,
          keyWord:row.productType,
          produceId:row.produceId,
          unit:row.unit,
          productName:row.productName,
          name: "报表"
        }
      })
@@ -301,8 +326,17 @@
      console.log(row)
    },
    // 位置
    handleLocation() {
      this.$router.push("/reportForm/locationReport")
    handleLocation(row) {
      console.log(row,"rowwww")
      this.$router.push({
        name:"locationReport",
        params:{
          // keyWord:row.row.productName,
          wareHouseCode:this.warehouseListName,
          productId:row.row.produceId,
          name:"库存报表"
        }
      })
    },
    // 预测
    handleForecast() {},
@@ -327,13 +361,7 @@
    //接口请求-----------------------------------------------------------------------------------------------
    // 获取库存报表数据
    async getData() {
      let params = {
        categoryIds: this.categoryListId,
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize,
        warehouseCode: this.warehouseListName
      }
    async getInventoryData(params) {
      await getInventoryData(params).then((res) => {
        if (res.code === 200) {
          const list = res.data
@@ -341,6 +369,16 @@
          this.pagerOptions.totalCount = res.total
        }
      })
    },
    getData() {
      let params = {
        keyWord: this.searchStr,
        categoryIds: this.categoryListId,
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize,
        warehouseCode: this.warehouseListName
      }
      this.getInventoryData(params)
    },
    // 获取产品类型列表数据
    async getProductCategoryList() {
@@ -361,8 +399,8 @@
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      }).then((res) => {
        if (res.data.code === 200) {
          this.warehouseList = res.data.data
        if (res.code === 200) {
          this.warehouseList = res.data
        }
      })
    }
@@ -379,6 +417,7 @@
  .con_left {
    width: 200px;
    .el-checkbox-group {
      width:100%;
      display: flex;
      flex-direction: column;
    }
@@ -391,4 +430,18 @@
    flex: 1;
  }
}
::v-deep {
  .el-checkbox {
    padding: 5px;
  }
  .el-checkbox__label {
    width: 95%;
    box-sizing: border-box;
    padding-right: 5px;
    word-break: break-all;
    word-wrap: break-word;
    white-space: pre-wrap !important;
  }
}
</style>