charles
2024-08-06 5ecb7958c96d3f0b6d47b79aff7eb306c2cf690f
src/views/overview/OverviewListView.vue
@@ -1,8 +1,8 @@
<template>
  <div class="rightContent">
    <!-- <div class="label-fixed-element">
    <div class="label-fixed-element">
      <span>{{ params.name }}</span>
    </div> -->
    </div>
    <div class="top">
      <SearchCommonView
        :add-title="'新建'"
@@ -57,22 +57,35 @@
          >
            产品信息
          </div>
          <!--<div
                  class="tab-pane"
                  @click="getTab(1)"
                  :style="{background: TabsIndex == 1 ? '#2a78fb' : '#F1F3F8',color: TabsIndex == 1 ? '#fff' : '#666'}"
          >
            单据追溯
          </div>-->
        </div>
        <div class="list-view">
          <TableCommonView :table-list="productTableList" @selTableCol="selBottomTableCol">
            <!-- <template slot="tableButton">
              <el-table-column label="操作" width="160" fixed="right">
                <template slot-scope="scope">
                  <el-button @click="viewClick(scope.row)" type="text" size="small">查看</el-button>
                </template>
              </el-table-column>
            </template> -->
             <template slot="tableButton">
               <el-table-column label="辅助数量" width="160">
                 <template slot-scope="scope">
                   <span>{{(scope.row.moreUnitList||[]).map(item=>item.amount).join('/')}}</span>
                 </template>
               </el-table-column>
                <el-table-column label="辅助单位" width="160">
                  <template slot-scope="scope">
                    <span>{{(scope.row.moreUnitList||[]).map(item=>item.unit).join('/')}}</span>
                  </template>
                </el-table-column>
            </template>
          </TableCommonView>
        </div>
      </div>
    </div>
    <!-- 新建/编辑 -->
    <AddOverviewDialog
      ref="addOverview"
      v-if="editConfig.visible"
      :workType="workType"
      :edit-common-config="editConfig"
@@ -87,7 +100,7 @@
import { getOperation } from "@/api/overview/overview"
// import DetailProduct from "@/views/productManage/product/DetailProduct"
import AddOverviewDialog from "@/views/overview/AddOverviewDialog"
import {getOperationInfoApi } from "@/api/product/product";
export default {
  name: "OverviewListView",
  props: {},
@@ -109,7 +122,7 @@
        title: "新建",
        infomation: {}
      },
      workType: this.$route.params.workType,
      workType: parseInt(this.$route.query.workType),
      keyword: "",
      params: {},
      displayEdit: false,
@@ -120,26 +133,52 @@
      numberLabel: "单号",
      TabsIndex: "0",
      productTableList: {},
      showBottomCol: ["产品编号", "产品名称", "产品规格", "产品型号", "计量单位", "调出位置", "调入位置", "数量","主管","会计","保管员",],
      showBottomCol: ["产品编号", "产品名称", "产品规格", "产品型号", "计量单位", "调出位置", "调入位置", "仓库位置","数量","主管","会计","保管员",'辅助数量','辅助单位','毛重','总毛重','净重','总净重'],
      tableBottomColumn: [],
      selectRow: {},
      productColumn: [
        { label: "产品编号", prop: "id", default: true },
        { label: "产品编号", prop: "productId", default: true },
        { label: "产品名称", prop: "productName" },
        { label: "产品规格", prop: "specs" },
        { label: "产品型号", prop: "model" },
        { label: "数量", prop: "amount" },
        { label: "调出位置", prop: "location" },
        { label: "计量单位", prop: "unit" },
        { label: "数量", prop: "amount" }
        /*{ label: "辅助数量", prop: "adjunctAmount" },
        { label: "辅助单位", prop: "adjunctUnit" },*/
        { label: "毛重", prop: "grossWeight" },
        { label: "总毛重", prop: "totalGrossWeight" },
        { label: "净重", prop: "netWeight" },
        { label: "总净重", prop: "totalNetWeight" }
      ],
        productColumn1:[{ label: "产品编号", prop: "productId", default: true },
            { label: "产品名称", prop: "productName" },
            { label: "产品规格", prop: "specs" },
            { label: "产品型号", prop: "model" },
            { label: "数量", prop: "amount" },
            { label: "仓库位置", prop: "toLocation" },
            { label: "计量单位", prop: "unit" },
            /*{ label: "辅助数量", prop: "adjunctAmount" },
            { label: "辅助单位", prop: "adjunctUnit" },*/
            { label: "毛重", prop: "grossWeight" },
            { label: "总毛重", prop: "totalGrossWeight" },
            { label: "净重", prop: "netWeight" },
            { label: "总净重", prop: "totalNetWeight" }],
      allotProductColumn: [
        { label: "产品编号", prop: "id", default: true },
        { label: "产品编号", prop: "productId", default: true },
        { label: "产品名称", prop: "productName" },
        { label: "产品规格", prop: "specs" },
        { label: "产品型号", prop: "model" },
        { label: "计量单位", prop: "unit" },
        { label: "调出位置", prop: "location" },
        { label: "调入位置", prop: "toLocation" },
        { label: "数量", prop: "amount" }
        { label: "数量", prop: "amount" },
        /*{ label: "辅助数量", prop: "adjunctAmount" },
        { label: "辅助单位", prop: "adjunctUnit" },*/
        { label: "毛重", prop: "grossWeight" },
        { label: "总毛重", prop: "totalGrossWeight" },
        { label: "净重", prop: "netWeight" },
        { label: "总净重", prop: "totalNetWeight" }
      ]
    }
  },
@@ -151,7 +190,8 @@
    if (paramsData) {
      params = JSON.parse(sessionStorage.getItem("paramsData"))
    } else {
      params = this.$route.params
      params = this.$route.query
      params.id=Number(params.id)
      sessionStorage.setItem("paramsData", JSON.stringify(params))
    }
    this.params = params
@@ -162,20 +202,22 @@
  },
  // 页面销毁之前
  beforeDestroy() {
    sessionStorage.removeItem("paramsData")
    sessionStorage.removeItem("paramsData");
  },
  methods: {
    setFormToLabel() {
      if (this.workType === 1) {
        this.showcol=["仓库位置", "调入位置", "联系人","日期", "创建人" ,"创建时间","验证人","验证时间",  "销售明细单", "状态","主管","会计","保管员",],
        this.formLabel = "供应商位置"
        this.toLabel = "仓库位置"
        this.toLabel = "调入位置"
        this.numberLabel = "入库单号"
      } else if (this.workType === 2) {
        this.formLabel = "仓库位置"
        this.showcol=["仓库位置", "调出位置", "联系人","日期", "创建人" ,"创建时间","验证人","验证时间",  "销售明细单", "状态","主管","会计","保管员",],
        this.formLabel = "调出位置"
        this.toLabel = "客户位置"
        this.numberLabel = "出库单号"
      } else {
        this.showcol=["仓库位置", "调出位置", "调入位置", "联系人","日期",   "销售明细单", "状态","主管","会计","保管员",],
        this.showcol=["仓库位置", "调出位置", "调入位置", "联系人","日期","创建人" ,"创建时间","验证人","验证时间",  "销售明细单", "状态","主管","会计","保管员",],
        this.formLabel = "调出位置"
        this.toLabel = "调入位置"
        this.numberLabel = "调拨单号"
@@ -189,8 +231,8 @@
        showcol: this.showcol,
        allcol: [],
        tableColumn: this.setTableColumn(this.showcol)
      }
      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
@@ -198,7 +240,7 @@
        }
      }
      this.tableList.allcol = allcol
      this.tableBottomColumn = this.workType == 3 ? this.allotProductColumn : this.productColumn
      this.tableBottomColumn = this.workType == 3 ? this.allotProductColumn :this.workType===2 ?this.productColumn:this.productColumn1;
      this.setBottomList()
    },
    setTableColumn(showcol) {
@@ -255,6 +297,32 @@
          default: false,
          date: true
        },
          {
              label: "创建人",
              prop: "createBy",
              isShowColumn: showcol.includes("创建人"),
              default: false,
          },
          {
              label: "创建时间",
              prop: "createTime",
              isShowColumn: showcol.includes("创建时间"),
              default: false,
              date: true
          },
          {
              label: "验证人",
              prop: "checkedBy",
              isShowColumn: showcol.includes("验证人"),
              default: false,
          },
          {
              label: "验证时间",
              prop: "auditDate",
              isShowColumn: showcol.includes("验证时间"),
              default: false,
              date: true
          },
        // {
        //   label: "截止日期",
        //   prop: "faultTime",
@@ -307,33 +375,33 @@
          isShowColumn: showcol.includes("保管员"),
          default: false
        },
      ]
      return tableColumn
      ];
      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 getOperation({
        number: this.keyword,
        operationTypeId: this.$route.params.id ? this.$route.params.id : this.params.id,
        operationTypeId: this.$route.query.id ? Number(this.$route.query.id) : this.params.id,
        page: this.pagerOptions.currPage,
        pageSize: this.pagerOptions.pageSize,
        status: this.params.status
        status: parseInt(this.params.status)
      }).then((res) => {
        console.log(res.data)
        if (res.code === 200) {
          const list = res.data.map((item) => {
          const list = (res.data||[]).map((item) => {
            return {
              ...item,
              from: item.location.jointName,
              to: item.location.jointName
              to: item.toLocation.jointName,
                operationDate:this.$moment(item.operationDate).format('yyyy-MM-DD')
            }
          })
          this.tableList.tableInfomation = list || []
          this.pagerOptions.totalCount = res.total
          });
          this.tableList.tableInfomation = list || [];
          this.pagerOptions.totalCount = res.total;
          if (res.total > 0) {
            this.selectRow = this.tableList.tableInfomation.length > 0 ? this.tableList.tableInfomation[0] : {}
            this.tableRowClick(this.selectRow)
@@ -344,20 +412,38 @@
    },
    // bottom产品信息数据处理
    bottomProductData(arr) {
      const list = arr.details.map((item) => {
        return {
          ...item,
          productName: item.product.name,
          unit: item.product.unit,
          location: arr.location.name,
          toLocation: arr.toLocation.name
        }
      })
        //console.log(arr);
        const list = arr.details.map((item) => {
            const params={
                ...item,
                productName: item.product.name,
                unit: item.product.unit,
                model:item.product.model,
                specs:item.product.specs,
               /* location: arr.location.name,
                toLocation: arr.toLocation.name,*/
                adjunctUnit:item.auxiliaryUnit,
                adjunctAmount:item.auxiliaryAmount,
                grossWeight:item.product.grossWeight==0?'':item.product.grossWeight,
                totalGrossWeight:item.totalGrossWeight==0?'':item.totalGrossWeight,
                netWeight:item.product.netWeight==0?'':item.product.netWeight,
                totalNetWeight:item.totalNetWeight==0?'':item.totalNetWeight,
            };
            if(this.workType===1){
                params.toLocation=item.toLocation.name;
            }else if(this.workType===2){
                params.location=item.fromLocation.name;
            }else if(this.workType===3){
                params.toLocation=item.toLocation.name;
                params.location=item.fromLocation.name;
            }
        return params;
      });
      this.productTableList.tableInfomation = list
    },
    // top 行点击
    tableRowClick(row) {
      this.selectRow = row
      this.selectRow = row;
      this.bottomProductData(this.selectRow)
    },
    // 搜索
@@ -368,20 +454,70 @@
      this.getData()
    },
    // 查看 编辑
    viewEditClick(row, val) {
     async viewEditClick(row, val) {
     const {data}=await getOperationInfoApi(row.id);
      const row1=data;
      this.editConfig.visible = true
      this.editConfig.title = val
      this.editConfig.operationTypeId = this.params.id
      this.editConfig.code = this.params.code
      row.details.map((item) => {
        item.fromLocationId = item.fromLocation.jointName
        item.toLocationId = item.toLocation.jointName
      })
      row.location = {
      this.editConfig.code = this.params.code;
      /*if(row1.warehouseId===0){
          if(row1.warehouse){
              row1.warehouseId=row1.warehouse.id;
          }
      }*/
      if(val==='查看'){
          row1.details.map((item,index) => {
              item.fromLocationId = item.fromLocation.name;
              item.toLocationId = item.toLocation.name;
              item.relAmount=item.amount;
              if(this.$route.query.workType!=1){
                  item.amount=item.stockAmount;
              }
          });
      }else{
          row1.details.map((item) => {
              item.fromLocationId = item.fromLocation.id;
              item.toLocationId = item.toLocation.id;
              item.relAmount=item.amount;
              if(this.$route.query.workType!=1){
                  item.fromLocationId = item.fromLocation.name;
                  item.toLocationId = item.toLocation.id;
                  item.amount=item.stockAmount;
              }
          });
      }
      row1.location=row1.location.id;
      row1.toLocation=row1.toLocation.id;
      if(this.$route.query.workType==1&&row1.toLocation==0||row1.location==0){
        if(Array.isArray(row1.details)&&row1.details.length>0){
            row1.toLocation=row1.details[0].toLocation.id;
            row1.location=row1.details[0].toLocation.id;
        }
      }
        row1.managerObj={
            label:row1.manager,
            value:row1.managerId
        }
        row1.accountantObj={
            label:row1.accountant,
            value:row1.accountantId
        }
        row1.custodianObj={
            label:row1.custodian,
            value:row1.custodianId
        }
      /*row.details.map((item) => {
        item.fromLocationId = item.location.id
        item.toLocationId = item.toLocation.id
      });*/
      /*row.location = {
          ...row.location,
        value: row.location.id || row.location.value,
        label: row.location.jointName || row.location.label
      }
      row.toLocation = {
          ...row.toLocation,
        value: row.toLocation.id || row.toLocation.value,
        label: row.toLocation.jointName || row.toLocation.label
      }
@@ -398,18 +534,20 @@
      row.custodianObj={
        label:row.custodian,
        value:row.custodianId
      }
      }*/
      // row.tolocationId=row.tolocation.value
      this.editConfig.infomation = { ...row }
    },
      this.editConfig.infomation = { ...row1 }
     },
    // 新建
    addBtnClick() {
      this.editConfig.title = "新建"
      this.addName = this.params.name
      this.editConfig.operationTypeId = this.params.id
      this.editConfig.code = this.params.code
      this.editConfig.code = this.params.code;
      this.editConfig.warehouseId=this.params.warehouseId;
      this.editConfig.infomation = {
        // location:{jointName:""}
          operationDate:new Date()
      }
      this.editConfig.visible = true
    },
@@ -435,7 +573,7 @@
        allcol: [],
        showcol: this.showBottomCol,
        tableColumn: this.setColumnVisible(this.showBottomCol, this.tableBottomColumn)
      }
      };
      this.setTableList(this.productTableList)
    },
    setTableList(tableList) {
@@ -461,11 +599,11 @@
    },
    getTab(tab) {
      this.TabsIndex = tab
      // if (this.TabsIndex == 0) {
      //   // 产品信息列表
      //   this.setBottomList()
      //   this.getProductInventoryInfo(this.selectRow)
      // }
      if (this.TabsIndex === 0){
        // 产品信息列表
        //this.setBottomList()
        //this.getProductInventoryInfo(this.selectRow)
      }
    }
  }
}
@@ -478,7 +616,7 @@
  overflow: hidden;
  .body {
    box-sizing: border-box;
    padding: 10px 20px;
    padding: 10px 0px;
    border-radius: 12px;
    height: calc(100% - 70px);
    .content-top {
@@ -537,8 +675,8 @@
  }
}
.label-fixed-element {
  background: #e6ecf2;
  position: fixed;
  background:#f8f8f9;
  font-size: 14px;
  width: calc(100% - 530px);
  height: 45px;