zzq
2023-09-28 2b78cf0cd68e1809bc4cad7d730bef6ab9c4c118
Merge branch 'master' of http://192.168.5.5:10010/r/web/WMS
10个文件已修改
729 ■■■■ 已修改文件
src/api/operate/inventoryAdjustment.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/warehouseManage/warehouse.js 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/makepager/CommonFormTableView.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/makepager/TableCommonView.vue 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/inventoryAdjustment/index.vue 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/overview/AddOverviewDialog.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productManage/product/index.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reportForm/inventoryReport/index.vue 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reportForm/locationReport/index.vue 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/warehouseManage/listingRules/index.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/operate/inventoryAdjustment.js
@@ -33,3 +33,19 @@
    data
  })
}
// 修改库存调整
export function updateInventoryAdjustment(data) {
  return request({
    url: "/api-wms/v1/locationProductAmount/update",
    method: "post",
    data
  })
}
// 应用库存调整
export function finishInventoryAdjustment(data) {
  return request({
    url: "/api-wms/v1/locationProductAmount/finish",
    method: "post",
    data
  })
}
src/api/warehouseManage/warehouse.js
@@ -18,16 +18,16 @@
// 删除仓库
export function deleteWarehouse(data) {
  return request({
    url: "/api-wms/v1/warehouse/warehouse/"+data.id,
    url: "/api-wms/v1/warehouse/warehouse/" + data.id,
    method: "delete",
    data
  })
}
// 更新仓库
// 更新仓库
export function updateWarehouse(data) {
  return request({
    url: "/api-wms/v1/warehouse/warehouse/"+data.id,
    method: "put",
    url: "/api-wms/v1/warehouse/updateWarehouse",
    method: "post",
    data
  })
}
@@ -48,15 +48,15 @@
// 删除业务类型
export function deleteOperationType(data) {
  return request({
    url: "/api-wms/v1/operationType/operationType/"+data.id,
    url: "/api-wms/v1/operationType/operationType/" + data.id,
    method: "delete",
    data
  })
}
// 更新业务类型
// 更新业务类型
export function updateOperationType(data) {
  return request({
    url: "/api-wms/v1/operationType/operationType/"+data.id,
    url: "/api-wms/v1/operationType/operationType/" + data.id,
    method: "put",
    data
  })
@@ -77,10 +77,10 @@
    data
  })
}
// 删除位置
// 删除位置
export function deleteLocation(data) {
  return request({
    url: "/api-wms/v1/location/deleteLocation/"+data.id,
    url: "/api-wms/v1/location/deleteLocation/" + data.id,
    method: "delete",
    data
  })
@@ -88,7 +88,7 @@
// 位置 详情
export function getLocationDetails(data) {
  return request({
    url: "/api-wms/v1/location/getLocationDetails/"+data.id,
    url: "/api-wms/v1/location/getLocationDetails/" + data.id,
    method: "get",
    data
  })
@@ -101,4 +101,3 @@
    data
  })
}
src/components/makepager/CommonFormTableView.vue
@@ -1,9 +1,16 @@
<template>
  <div class="page-view">
    <el-form ref="form" :model="tableList" :show-message="false" label-position="right">
  <div class="page-view" :class="{ setHeight: isinventory || islistingrules }">
    <el-form
      ref="form"
      :model="tableList"
      :show-message="false"
      label-position="right"
      :class="{ setHeight: isinventory || islistingrules }"
    >
      <el-table
        :data="tableList.tableData"
        style="width: 100%"
        :class="{ setHeight: isinventory || islistingrules }"
        :header-cell-style="{ background: '#f1f3f8', color: '#000009' }"
        :row-class-name="tableRowClassName"
        @row-click="tableRowClick"
@@ -534,8 +541,12 @@
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
.setHeight {
  height: 100%;
}
.page-view {
  min-width: 100px;
  .el-form-item {
    margin-bottom: 0;
    .custom-name {
src/components/makepager/TableCommonView.vue
@@ -1,9 +1,6 @@
<!-- eslint-disable vue/no-use-v-if-with-v-for -->
<template>
  <div
    :class="{ 'table-view': true, table_height: !showSummary }"
    v-loading="loading"
  >
  <div :class="{ 'table-view': true, table_height: !showSummary }" v-loading="loading">
    <el-table
      ref="table"
      border
@@ -25,15 +22,8 @@
      :summary-method="getSummaries"
      :show-summary="showSummary"
    >
      <el-table-column v-if="tableList.selectBox" type="selection" width="40">
      </el-table-column>
      <el-table-column
        v-if="tableList.selectIndex"
        type="index"
        label="序号"
        width="50"
      >
      </el-table-column>
      <el-table-column v-if="tableList.selectBox" type="selection" width="40"> </el-table-column>
      <el-table-column v-if="tableList.selectIndex" type="index" label="序号" width="50"> </el-table-column>
      <el-table-column
        v-for="(item, i) in tableList.tableColumn"
        :key="i"
@@ -46,9 +36,7 @@
        v-if="item.isShowColumn"
      >
        <template slot-scope="scope">
          <span v-if="item.price">{{
            "¥" + number_format(scope.row[item.prop], 2, ".", ",")
          }}</span>
          <span v-if="item.price">{{ "¥" + number_format(scope.row[item.prop], 2, ".", ",") }}</span>
          <!-- 状态显示 -->
          <div v-else-if="item.status">
            <span
@@ -60,26 +48,19 @@
                graySlot: scope.row.status == '1',
              }"
              >{{
                item.isCallMethod
                  ? item.getCallMethod(scope.row[item.prop], scope.row)
                  : scope.row[item.prop]
                item.isCallMethod ? item.getCallMethod(scope.row[item.prop], scope.row) : scope.row[item.prop]
              }}</span
            >
          </div>
          <!-- 调用方法显示文字 -->
          <div v-else-if="item.isCallMethod">
            <span>{{
              item.getCallMethod(scope.row[item.prop], scope.row)
            }}</span>
            <span>{{ item.getCallMethod(scope.row[item.prop], scope.row) }}</span>
          </div>
          <!-- 小于当前时间显示不同颜色 -->
          <span
            v-else-if="item.date"
            :style="{
              color:
                new Date().getTime() > new Date(scope.row[item.prop]).getTime()
                  ? '#D23F3A'
                  : '#606266',
              color: new Date().getTime() > new Date(scope.row[item.prop]).getTime() ? '#D23F3A' : '#606266'
            }"
            >{{ timeAgo(scope.row[item.prop]) }}</span
          >
@@ -93,18 +74,10 @@
            >{{ scope.row[item.prop] }}</span
          >
          <span v-else-if="item.propType == 'mulitple'">
            {{
              scope.row[item.prop][item.propTwo]
                ? scope.row[item.prop][item.propTwo]
                : "--"
            }}
            {{ scope.row[item.prop][item.propTwo] ? scope.row[item.prop][item.propTwo] : "--" }}
          </span>
          <span :class="item.className ? item.className : ''" v-else>{{
            scope.row[item.prop]
              ? scope.row[item.prop]
              : scope.row[item.prop] === 0
              ? scope.row[item.prop]
              : "--"
            scope.row[item.prop] ? scope.row[item.prop] : scope.row[item.prop] === 0 ? scope.row[item.prop] : "--"
          }}</span>
        </template>
      </el-table-column>
@@ -116,22 +89,15 @@
    <div class="overSpread1" v-show="iscolopen" @click="onMaskClick"></div>
    <div v-if="showCheckcol" class="styleBtn">
      <i @click="checkcol()" class="label">...</i>
      <el-checkbox-group
        v-model="showcolList"
        v-show="iscolopen"
        class="checkbox-group"
        @change="selCeckBoxList"
      >
        <el-checkbox v-for="item in tableList.allcol" :label="item" :key="item"
          >{{ item }}
        </el-checkbox>
      <el-checkbox-group v-model="showcolList" v-show="iscolopen" class="checkbox-group" @change="selCeckBoxList">
        <el-checkbox v-for="item in tableList.allcol" :label="item" :key="item">{{ item }} </el-checkbox>
      </el-checkbox-group>
    </div>
  </div>
</template>
<script>
import { timeago } from "@/common/config/index";
import { timeago } from "@/common/config/index"
export default {
  name: "TableCommonView",
  props: {
@@ -149,147 +115,146 @@
          highlight: false,
          tableColumn: [
            // table表单
            { label: "", prop: "", min: 200, tooltip: true },
          ],
        };
            { label: "", prop: "", min: 200, tooltip: true }
          ]
        }
      },
      showcol: {
        typeof: Array,
        default: () => [],
      },
        default: () => []
      }
    },
    // 合并单元格
    rowData: {
      type: Array,
      default: () => {
        return [];
      },
        return []
      }
    },
    // 加载的loading
    loading: {
      type: Boolean,
      default: false,
      default: false
    },
    // 选中的样式
    selectClassRow: {
      type: Object,
      default: () => {
        return {};
      },
        return {}
      }
    },
    showCheckcol: {
      type: Boolean,
      default: true,
      default: true
    },
    showSummary: {
      type: Boolean,
      default: false,
    },
      default: false
    }
  },
  data() {
    return {
      iscolopen: false,
      showcolList: this.tableList.showcol,
    };
      showcolList: this.tableList.showcol
    }
  },
  watch: {},
  computed: {},
  beforeUpdate() {},
  methods: {
    onMaskClick() {
      this.iscolopen = false;
      this.iscolopen = false
    },
    // 合并单元格
    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
      row;
      column;
      row
      column
      if (this.rowData && this.rowData.length > 0) {
        // 产品BOM 表格特殊处理 合并单元格
        if (columnIndex < 5 || columnIndex == 9) {
          const _row = this.rowData[rowIndex];
          const _col = _row > 0 ? 1 : 0;
          const _row = this.rowData[rowIndex]
          const _col = _row > 0 ? 1 : 0
          return {
            rowspan: _row,
            colspan: _col,
          };
            colspan: _col
          }
        }
      }
    },
    tableRowClick(row) {
      this.$emit("tableRowClick", row);
      this.$emit("tableRowClick", row)
    },
    handleReserve(row) {
      return row._id ? row._id : row.id;
      return row._id ? row._id : row.id
    },
    handleSelectionChange(val) {
      this.$emit("getSelectArray", val);
      this.$emit("getSelectArray", val)
    },
    // 公共详情
    selCommonClick(row) {
      this.$emit("selCommonClick", row);
      this.$emit("selCommonClick", row)
    },
    // 选择列
    checkcol() {
      this.iscolopen = !this.iscolopen;
      this.iscolopen = !this.iscolopen
    },
    closeCheckbox() {
      let label = document.querySelector(".label");
      let label = document.querySelector(".label")
      if (label) {
        this.iscolopen = false;
        this.iscolopen = false
      }
    },
    selCeckBoxList(val) {
      this.$emit("selTableCol", val);
      this.$emit("selTableCol", val)
    },
    // 单选行相关
    tableRowClassName({ row }) {
      if (Object.keys(this.selectClassRow).length > 0) {
        if (row.id == this.selectClassRow.id) {
          return "onSelect";
          return "onSelect"
        }
      }
      this.$emit("tableRowClassName", row);
      this.$emit("tableRowClassName", row)
    },
    timeAgo(val) {
      return timeago(val);
      return timeago(val)
    },
    //求和
    getSummaries(param) {
      if (this.tableList.countcol && this.tableList.countcol.length > 0) {
        const { columns, data } = param;
        const sums = [];
        const { columns, data } = param
        const sums = []
        columns.forEach((column, index) => {
          if (index === 0) {
            sums[index] = " ";
            return;
            sums[index] = " "
            return
          }
          this.tableList.countcol.forEach((countcols) => {
            if (column.label === countcols) {
              const values = data.map((item) => Number(item[column.property]));
              const values = data.map((item) => Number(item[column.property]))
              if (!values.every((value) => isNaN(value))) {
                sums[index] = values.reduce((prev, curr) => {
                  const value = Number(curr);
                  const value = Number(curr)
                  if (!isNaN(value)) {
                    return prev + curr;
                    return prev + curr
                  } else {
                    return prev;
                    return prev
                  }
                }, 0);
                sums[index] =
                  this.tableList.tableColumn[index - 1].unit + "" + sums[index];
                }, 0)
                sums[index] = this.tableList.tableColumn[index - 1].unit + "" + sums[index]
              } else {
                sums[index] = "";
                sums[index] = ""
              }
            } else {
              return;
              return
            }
          });
        });
        return sums;
          })
        })
        return sums
      }
    },
  },
};
    }
  }
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
@@ -297,7 +262,7 @@
.table_height {
  height: 100%;
}
.el-table__body-wrapper{
.el-table__body-wrapper {
  height: 100%;
}
.table-view {
@@ -379,9 +344,6 @@
    border-top-left-radius: 12px;
    border-top-right-radius: 12px;
    overflow: auto;
  }
  .el-table__body-wrapper {
    // height: ;
  }
}
</style>
src/views/operate/inventoryAdjustment/index.vue
@@ -22,28 +22,29 @@
          @inputContent="inputContent"
          @selLocationClick="selLocationClick"
          @selProductClick="selProductClick"
          @tableRowClick="tableRowClick"
        >
          <template slot="tableButton">
            <el-table-column label="操作" width="180" fixed="right" align="center">
              <template slot-scope="scope">
                <span @click="handleHistoryClick(scope.row)" class="yes-cursor">
                <span v-if="scope.row.isEdit" @click.stop="handleHistoryClick(scope.row)" class="yes-cursor">
                  <i class="el-icon-refresh-left"></i>
                  <span>历史</span>
                </span>
                <!-- <span v-if="scope.row.isSet" @click="handleSetClick(scope)" class="margin_left_5px">
                  <i class="el-icon-setting"></i>
                  <span>设置</span>
                </span>
                <template v-else>
                  <span @click="handleUseClick(scope)" class="margin_left_5px">
                </span> -->
                <template v-if="scope.row.status === 3">
                  <span @click.stop="handleUseClick(scope.row)" class="margin_left_5px">
                    <i class="el-icon-document"></i>
                    <span>应用</span>
                  </span>
                  <span @click="handleCleanupClick(scope)" class="margin_left_5px">
                  <!-- <span @click="handleCleanupClick(scope)" class="margin_left_5px">
                    <i class="el-icon-delete"></i>
                    <span>清除</span>
                  </span>
                </template> -->
                  </span> -->
                </template>
              </template>
            </el-table-column>
          </template>
@@ -59,7 +60,12 @@
<script>
import CommonFormTableView from "@/components/makepager/CommonFormTableView"
import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
import { getInventoryAdjustmentList, addInventoryAdjustment } from "@/api/operate/inventoryAdjustment"
import {
  getInventoryAdjustmentList,
  addInventoryAdjustment,
  updateInventoryAdjustment,
  finishInventoryAdjustment
} from "@/api/operate/inventoryAdjustment"
import { currentTime } from "@/common/config/index"
export default {
  name: "InventoryAdjustment",
@@ -80,7 +86,8 @@
      locationId: 0,
      productId: 0,
      differenceAmount: 0,
      Amount: 0
      amount: 0,
      operationId: 0
    }
  },
  created() {
@@ -128,31 +135,25 @@
    },
    // 操作输入
    inputContent(val, prop, row) {
      console.log("22222222222222")
      console.log(val, prop, row)
      // this.countId = row.countId
      // this.tableData.map((item) => {
      //   if (item.countId === row.countId) {
      //     item[prop] = val
      //   }
      // })
      this.differenceAmount = val
    },
    // 新增
    addProductClick() {
      console.log(this.tableData)
      console.log(this.addTitle)
      this.isSel()
      this.$refs.tablelistRef.getRuleList()
      if (this.isNoProduct && this.addTitle === "新建") {
        this.$refs.tablelistRef.getRuleList()
        this.addTitle = "保存"
        this.showDiscard = true
        this.isRowClick = false
        this.operationId = 0
        this.currentRowId = 0
        this.countId++
        this.tableData.push({
          countId: this.countId,
          Amount: 0,
          areaName: "",
          amount: 0,
          adjustAmount: 0,
          productId: "",
          differenceAmount: 0,
@@ -167,34 +168,29 @@
        this.productCategoryId = 0
        this.productId = 0
      } else {
        if (this.locationId === 0) {
          this.$message.error("请选择位置")
        } else if (this.productId === 0) {
          this.$message.error("请选择产品")
        } else {
          this.addTitle = "新建"
          this.showDiscard = false
          // let requestUrl = this.currentRowId === 0 ? addInventoryAdjustment : updateListingRules
          addInventoryAdjustment({
            // id: this.currentRowId,
            locationId: this.locationId,
            Amount: this.Amount,
            differenceAmount: this.differenceAmount,
            productId: this.productId
          })
            .then((res) => {
              console.log(res)
              if (res.code === 200) {
                // let tipStr = this.currentRowId === 0 ? "添加成功" : "修改成功"
                this.$message.success("添加成功")
                this.getData()
              }
            })
            .catch((err) => {
              console.log(err)
        this.addTitle = "新建"
        this.showDiscard = false
        let requestUrl = this.currentRowId === 0 ? addInventoryAdjustment : updateInventoryAdjustment
        requestUrl({
          amount: this.amount,
          differenceAmount: this.differenceAmount,
          locationId: this.locationId,
          operationId: this.operationId,
          productId: this.productId
        })
          .then((res) => {
            console.log(res)
            if (res.code === 200) {
              let tipStr = this.currentRowId === 0 ? "添加成功" : "修改成功"
              this.$message.success(tipStr)
              this.getData()
            })
        }
            }
          })
          .catch((err) => {
            console.log(err)
            this.getData()
          })
        // }
      }
    },
    // 是否选择产品
@@ -244,8 +240,19 @@
      }
    },
    // 应用
    handleUseClick(scope) {
      scope.row.isSet = !scope.row.isSet
    handleUseClick(row) {
      // scope.row.isSet = !scope.row.isSet
      finishInventoryAdjustment({
        locationProductAmountId: row.locationProductAmount,
        operationId: row.operationId,
        productId: row.productId
      }).then((res) => {
        console.log(res)
        if (res.code === 200) {
          this.$message.success("应用成功")
          this.getData()
        }
      })
    },
    // 清除
    handleCleanupClick(scope) {
@@ -253,22 +260,31 @@
    },
    // 行点击
    tableRowClick(row, rowIndex) {
      console.log(row, rowIndex)
      this.addTitle = "保存"
      this.showDiscard = true
      this.isRowClick = true
      console.log("11111")
      this.isSel()
      if (!this.isNoProduct) {
        this.tableData.splice(this.tableData.length - 1, 1)
      }
      this.tableData.map((item, index) => {
        if (index === rowIndex) {
          item.isEdit = false
          item.editable = true
        } else {
          item.isEdit = true
      if (!this.isNoProduct && this.currentRowId === 0) {
        this.$message.error("请完成当前新建或取消新建")
      } else {
        this.currentRowId = row.id
        this.addTitle = "保存"
        this.showDiscard = true
        this.isRowClick = true
        if (!this.isNoProduct) {
          this.tableData.splice(this.tableData.length - 1, 1)
        }
      })
        this.tableData.map((item, index) => {
          if (index === rowIndex) {
            item.isEdit = false
            item.editable = true
          } else {
            item.isEdit = true
          }
        })
        this.differenceAmount = row.differenceAmount
        this.amount = row.amount
        this.productId = row.productId
        this.operationId = row.operationId
      }
    },
    // 搜索
    getList(val) {
@@ -295,4 +311,12 @@
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped></style>
<style lang="scss" scoped>
::v-deep {
  .el-table {
    border-top-left-radius: 12px;
    border-top-right-radius: 12px;
    overflow: auto;
  }
}
</style>
src/views/overview/AddOverviewDialog.vue
@@ -107,10 +107,9 @@
                  </el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="12">
              <el-col v-if="showOperationType" :span="12">
                <el-form-item label="入库类型" prop="operationTypeId">
                  <el-select
                    v-if="showOperationType"
                    v-model="editConfig.infomation.operationTypeId"
                    placeholder="请选择"
                    size="mini"
@@ -120,7 +119,11 @@
                    <el-option v-for="item in operationTypeOptions" :key="item.id" :label="item.name" :value="item.id">
                    </el-option>
                  </el-select>
                  <el-input v-else v-model="receiptType" disabled style="width: 90%"></el-input>
                </el-form-item>
              </el-col>
              <el-col v-else :span="12">
                <el-form-item label="入库类型">
                  <el-input v-model="receiptType" disabled style="width: 90%"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
src/views/productManage/product/index.vue
@@ -32,11 +32,9 @@
        <div class="product-box" v-for="item in tableList.tableInfomation" :key="item.id" @click="tableRowClick(item)">
          <div class="left">
            <!-- <el-image style="width: 60px; height: 80px" :src="url"></el-image> -->
            <el-image class="img-view">
              <div slot="error" class="image-slot">
                <i class="el-icon-picture-outline"></i>
              </div>
            </el-image>
            <div class="img-view">
              <i class="el-icon-picture-outline"></i>
            </div>
          </div>
          <div class="right">
            <div class="label">
@@ -107,15 +105,15 @@
      url: "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
      pageSizes: [15, 30],
      keyWord: "",
      categoryId:null,
      categoryId: null
    }
  },
  created() {
    this.setTable()
    let query = this.$route.query;
    let query = this.$route.query
    if (query) {
      this.categoryId = query.id ? Number(query.id) : null;
      this.pagerOptions.currPage=1
      this.categoryId = query.id ? Number(query.id) : null
      this.pagerOptions.currPage = 1
    }
    this.getData()
  },
@@ -227,7 +225,7 @@
    async getData() {
      await getProductList({
        keyWord: this.keyWord,
        categoryId:this.categoryId?this.categoryId:null,
        categoryId: this.categoryId ? this.categoryId : null,
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize
      }).then((res) => {
src/views/reportForm/inventoryReport/index.vue
@@ -30,16 +30,11 @@
        </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 v-for="item in categoryList" :key="item.id" :label="item.id">{{ item.name }}</el-checkbox>
        </el-checkbox-group>
      </div>
      <div class="con_right">
        <div class="list-view">
      <div class="list-view">
        <div class="table">
          <TableCommonView
            ref="tableListRef"
            :table-list="tableList"
@@ -59,17 +54,11 @@
                    <span>补货</span>
                  </span>
                  <template>
                    <span
                      @click="handleLocation(scope)"
                      class="margin_left_5px"
                    >
                    <span @click="handleLocation(scope)" class="margin_left_5px">
                      <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">
                      <i class="el-icon-s-data"></i>
                      <span>预测</span>
                    </span>
@@ -78,35 +67,22 @@
              </el-table-column>
            </template>
          </TableCommonView>
          <div class="btn-pager">
            <PagerView
              class="page"
              :pager-options="pagerOptions"
              :page-size="pageSizes"
              v-on="pagerEvents"
            />
          </div>
        </div>
        <div class="btn-pager">
          <PagerView class="page" :pager-options="pagerOptions" :page-size="pageSizes" v-on="pagerEvents" />
        </div>
      </div>
    </div>
    <!-- 编辑 dialog-->
    <AddOverviewDialog
      v-if="editConfig.visible"
      :edit-common-config="editConfig"
      :add-name="this.$route.params.name"
    />
    <AddOverviewDialog v-if="editConfig.visible" :edit-common-config="editConfig" :add-name="this.$route.params.name" />
  </div>
</template>
<script>
import pageMixin from "@/components/makepager/pager/mixin/pageMixin";
import AddOverviewDialog from "@/views/overview/AddOverviewDialog";
import {
  getInventoryData,
  getProductCategoryList,
  getWarehouseList,
} from "@/api/reportForm/inventoryRwport";
import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
import AddOverviewDialog from "@/views/overview/AddOverviewDialog"
import { getInventoryData, getProductCategoryList, getWarehouseList } from "@/api/reportForm/inventoryRwport"
export default {
  name: "InboundOutboundDetail",
@@ -130,7 +106,7 @@
          inStorage: "100.00", // 入库
          toStore: "20.00", // 出库
          forecast: "0.00", //预测
          unit: "件", //单位
          unit: "件" //单位
        },
        {
          product: "南方丝巢12306xxx",
@@ -142,8 +118,8 @@
          inStorage: "0.00",
          toStore: "0.00",
          forecast: "0.00",
          unit: "件",
        },
          unit: "件"
        }
      ],
      tableList: {},
      showcol: ["产品类别", "单位成本", "总价值", "入库", "出库"],
@@ -152,12 +128,12 @@
      commonDetail: {
        visible: false,
        title: "新建",
        infomation: {},
        infomation: {}
      },
      editConfig: {
        visible: false,
        title: "新建",
        infomation: {},
        infomation: {}
      },
      productId: this.$route.params.id,
      productName: this.$route.params.name,
@@ -172,13 +148,13 @@
    };
  },
  created() {
    this.setTable();
    this.getData(); //库存报表
    this.getStashData(); // 仓库列表数据
    this.getProductCategoryList();
    this.setTable()
    this.getData() //库存报表
    this.getStashData() // 仓库列表数据
    this.getProductCategoryList()
  },
  mounted() {
    this.countSums();
    this.countSums()
  },
  methods: {
    checkListHandler(e) {
@@ -200,17 +176,17 @@
        showcol: this.showcol,
        countcol: this.countcol,
        allcol: [],
        tableColumn: this.setTableColumn(this.showcol),
      };
        tableColumn: this.setTableColumn(this.showcol)
      }
      // this.tableList.tableInfomation = this.testArr;
      let allcol = [];
      let allcol = []
      for (let i = 0; i < this.tableList.tableColumn.length; i++) {
        if (!this.tableList.tableColumn[i].default) {
          const label = this.tableList.tableColumn[i].label;
          allcol.push(label);
          const label = this.tableList.tableColumn[i].label
          allcol.push(label)
        }
      }
      this.tableList.allcol = allcol;
      this.tableList.allcol = allcol
    },
    setTableColumn(showcol) {
      let tableColumn = [
@@ -219,95 +195,95 @@
          prop: "productName",
          default: true,
          width: 300,
          isShowColumn: true,
          isShowColumn: true
          // date: true, // 是否为日期格式
        },
        {
          label: "产品类别",
          prop: "productType",
          default: true,
          isShowColumn: showcol.includes("产品类别"),
          isShowColumn: showcol.includes("产品类别")
        },
        {
          label: "单位成本",
          prop: "cost",
          default: false,
          isShowColumn: showcol.includes("单位成本"),
          isShowColumn: showcol.includes("单位成本")
        },
        {
          label: "总价值",
          prop: "value",
          default: false,
          isShowColumn: showcol.includes("总价值"),
          unit: "¥",
          unit: "¥"
        },
        {
          label: "在库",
          prop: "amount",
          default: true,
          isShowColumn: true,
          unit: "",
          unit: ""
        },
        {
          label: "可用库存",
          prop: "availableNumber",
          default: true,
          isShowColumn: true,
          unit: "",
          unit: ""
        },
        {
          label: "入库",
          prop: "in",
          default: false,
          isShowColumn: showcol.includes("入库"),
          unit: "",
          unit: ""
        },
        {
          label: "出库",
          prop: "out",
          isShowColumn: showcol.includes("出库"),
          default: false,
          unit: "",
          unit: ""
        },
        {
          label: "预测",
          prop: "forecast",
          isShowColumn: showcol.includes("预测"),
          default: false,
          unit: "",
          unit: ""
        },
        {
          label: "单位",
          prop: "unit",
          default: true,
          isShowColumn: true,
        },
      ];
      return tableColumn;
          isShowColumn: true
        }
      ]
      return tableColumn
    },
    selTableCol(val) {
      this.showcol = val;
      this.tableList.tableColumn = this.setTableColumn(val);
      this.showcol = val
      this.tableList.tableColumn = this.setTableColumn(val)
    },
    getList(val) {
      console.log(val);
      console.log(val)
    },
    // 行点击
    tableRowClick(row) {
      console.log(row);
      console.log(row)
      // this.editConfig.visible = true;
      this.editConfig.title = "查看";
      this.editConfig.infomation = { ...row };
      this.editConfig.title = "查看"
      this.editConfig.infomation = { ...row }
    },
    // 新建
    addBtnClick() {
      // this.editConfig.visible = true;
      this.editConfig.title = "新建";
      this.getData();
      this.editConfig.title = "新建"
      this.getData()
    },
    // 状态
    getStatus(val) {
      return val === 1 ? "草稿" : val === 3 ? "就绪" : "完成";
      return val === 1 ? "草稿" : val === 3 ? "就绪" : "完成"
    },
    // 历史
    handleHistoryClick(row) {
@@ -344,7 +320,7 @@
    },
    // 位置
    handleLocation() {
      this.$router.push("/reportForm/locationReport");
      this.$router.push("/reportForm/locationReport")
    },
    // 预测
    handleForecast() {},
@@ -374,15 +350,15 @@
        categoryIds: this.categoryListId,
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize,
        warehouseCode: this.warehouseListName,
      };
        warehouseCode: this.warehouseListName
      }
      await getInventoryData(params).then((res) => {
        if (res.code === 200) {
          const list = res.data;
          this.tableList.tableInfomation = list || [];
          this.pagerOptions.totalCount = res.total;
        }
      });
      })
    },
    // 获取产品类型列表数据
    async getProductCategoryList() {
@@ -392,9 +368,9 @@
        pageSize: this.pagerOptions.pageSize,
      }).then((res) => {
        if (res.code === 200) {
          this.categoryList = res.data;
          this.categoryList = res.data
        }
      });
      })
    },
    // 请求仓库列表数据
    async getStashData() {
@@ -406,45 +382,31 @@
        if (res.data.code === 200) {
          this.warehouseList = res.data.data;
        }
      });
    },
  },
};
      })
    }
  }
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
.rightContent {
  height: 100%;
  background: #e6ecf2;
  // width: 100%;
  padding: 10px;
  .top {
    margin-bottom: 20px;
    height: 60px;
    background: #fff;
    border-radius: 8px;
.content_wrap {
  height: calc(100% - 0px);
  display: flex;
  justify-content: space-between;
  .con_left {
    width: 200px;
    .el-checkbox-group {
      display: flex;
      flex-direction: column;
    }
    .stash {
      display: flex;
      flex-direction: column;
    }
  }
  .content_wrap {
    height: calc(100% - 50px);
    display: flex;
    justify-content: space-between;
    .con_left {
      width: 200px;
      .el-checkbox-group {
        display: flex;
        flex-direction: column;
      }
      .stash {
        display: flex;
        flex-direction: column;
      }
    }
    .con_right {
      width: calc(100% - 200px);
    }
  .list-view {
    flex: 1;
  }
}
// }
</style>
src/views/reportForm/locationReport/index.vue
@@ -15,42 +15,35 @@
      </div>
    </div>
    <div class="list-view">
      <TableCommonView
        ref="tableListRef"
        :table-list="tableList"
        @selTableCol="selTableCol"
        @tableRowClick="tableRowClick"
        :showSummary="true"
      >
        <template slot="tableButton">
          <el-table-column label="操作" width="210" align="center">
            <template slot-scope="scope">
              <span @click="handleHistoryClick(scope.row)">
                <i class="el-icon-refresh-left"></i>
                <span>历史</span>
              </span>
              <span @click="handleAddGoods(scope)" class="margin_left_5px">
                <i class="el-icon-refresh"></i>
                <span>补货</span>
              </span>
            </template>
          </el-table-column>
        </template>
      </TableCommonView>
      <div class="table">
        <TableCommonView
          ref="tableListRef"
          :table-list="tableList"
          @selTableCol="selTableCol"
          @tableRowClick="tableRowClick"
        >
          <template slot="tableButton">
            <el-table-column label="操作" width="210" align="center">
              <template slot-scope="scope">
                <span @click="handleHistoryClick(scope.row)">
                  <i class="el-icon-refresh-left"></i>
                  <span>历史</span>
                </span>
                <span @click="handleAddGoods(scope)" class="margin_left_5px">
                  <i class="el-icon-refresh"></i>
                  <span>补货</span>
                </span>
              </template>
            </el-table-column>
          </template>
        </TableCommonView>
      </div>
      <div class="btn-pager">
        <PagerView
          class="page"
          :pager-options="pagerOptions"
          v-on="pagerEvents"
        />
        <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
      </div>
    </div>
    <!-- 编辑 -->
    <AddOverviewDialog
      v-if="editConfig.visible"
      :edit-common-config="editConfig"
      :add-name="this.$route.params.name"
    />
    <AddOverviewDialog v-if="editConfig.visible" :edit-common-config="editConfig" :add-name="this.$route.params.name" />
  </div>
</template>
@@ -86,7 +79,7 @@
          inStorage: "00.00",
          toStore: 65432.0,
          forecast: "0.00",
          unit: "件",
          unit: "件"
        },
        {
          product: "HC销售区/A区",
@@ -98,19 +91,19 @@
          inStorage: "0.00",
          toStore: 32618.0,
          forecast: "0.00",
          unit: "件",
        },
          unit: "件"
        }
      ],
      searchOptions: [],
      commonDetail: {
        visible: false,
        title: "新建",
        infomation: {},
        infomation: {}
      },
      editConfig: {
        visible: false,
        title: "新建",
        infomation: {},
        infomation: {}
      },
      productId: this.$route.params.id,
      productName: this.$route.params.name,
@@ -118,8 +111,8 @@
    };
  },
  created() {
    this.setTable();
    this.getData();
    this.setTable()
    this.getData()
  },
  methods: {
    setTable() {
@@ -129,16 +122,16 @@
        showcol: this.showcol,
        countcol: this.countcol,
        allcol: [],
        tableColumn: this.setTableColumn(this.showcol),
      };
      let allcol = [];
        tableColumn: this.setTableColumn(this.showcol)
      }
      let allcol = []
      for (let i = 0; i < this.tableList.tableColumn.length; i++) {
        if (!this.tableList.tableColumn[i].default) {
          const label = this.tableList.tableColumn[i].label;
          allcol.push(label);
          const label = this.tableList.tableColumn[i].label
          allcol.push(label)
        }
      }
      this.tableList.allcol = allcol;
      this.tableList.allcol = allcol
    },
    setTableColumn(showcol) {
      let tableColumn = [
@@ -146,26 +139,26 @@
          label: "位置",
          prop: "locationName",
          default: true,
          isShowColumn: true,
          isShowColumn: true
        },
        {
          label: "存储类别",
          prop: "category",
          default: false,
          isShowColumn: showcol.includes("存储类别"),
          isShowColumn: showcol.includes("存储类别")
        },
        {
          label: "产品",
          prop: "productName",
          default: true,
          isShowColumn: true,
          isShowColumn: true
        },
        {
          label: "产品类别",
          prop: "productTypeName",
          default: false,
          isShowColumn: showcol.includes("产品类别"),
          isShowColumn: showcol.includes("产品类别")
        },
        {
          label: "在库数量",
@@ -186,7 +179,7 @@
          prop: "unit",
          width: 120,
          default: false,
          isShowColumn: showcol.includes("价值"),
          isShowColumn: showcol.includes("价值")
        },
        {
          label: "价值",
@@ -200,33 +193,33 @@
      return tableColumn;
    },
    selTableCol(val) {
      this.showcol = val;
      this.tableList.tableColumn = this.setTableColumn(val);
      this.showcol = val
      this.tableList.tableColumn = this.setTableColumn(val)
    },
    // 请求数据
    async getData() {
      await getLocationData({
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize,
        pageSize: this.pagerOptions.pageSize
      }).then((res) => {
        if (res.code === 200) {
          const list = res.data;
          this.tableList.tableInfomation = list || [];
          this.pagerOptions.totalCount = res.total;
        }
      });
      })
    },
    // 搜索
    getList(val) {
      console.log(val);
      console.log(val)
    },
    // 行点击
    tableRowClick(row) {
      console.log(row);
      console.log(row)
      // this.editConfig.visible = true;
      this.editConfig.title = "查看";
      this.editConfig.infomation = { ...row };
      this.editConfig.title = "查看"
      this.editConfig.infomation = { ...row }
    },
    // 新建
    addBtnClick() {
@@ -236,7 +229,7 @@
    },
    // 状态
    getStatus(val) {
      return val === 1 ? "草稿" : val === 3 ? "就绪" : "完成";
      return val === 1 ? "草稿" : val === 3 ? "就绪" : "完成"
    },
    // 历史
    handleHistoryClick(row) {
@@ -267,25 +260,10 @@
      });
    },
    // 补货
    handleAddGoods() {},
  },
};
    handleAddGoods() {}
  }
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
.rightContent {
  height: 100%;
  background: #e6ecf2;
  padding: 10px;
  // .top {
  //   margin-bottom: 20px;
  //   height: 60px;
  //   background: #fff;
  //   border-radius: 8px;
  // }
  .list-view {
    height: calc(100% - 150px);
  }
}
</style>
<style lang="scss" scoped></style>
src/views/warehouseManage/listingRules/index.vue
@@ -342,4 +342,12 @@
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped></style>
<style lang="scss" scoped>
::v-deep {
  .el-table {
    border-top-left-radius: 12px;
    border-top-right-radius: 12px;
    overflow: auto;
  }
}
</style>