zuozhengqing
2024-03-22 05b72b58002a8733b8b31825ea5edabe7e279283
src/views/overview/AddOverviewDialog.vue
@@ -202,8 +202,8 @@
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12" >
                <el-form-item :label="workType === 1?'仓库位置':'源位置'" prop="location">
              <el-col :span="12">
                <el-form-item :label="workType === 1 ? '仓库位置' : '调出位置'" prop="location">
                  <el-select
                    @change="rootLocationChange"
                    v-model="editConfig.infomation.location"
@@ -216,7 +216,7 @@
                      v-for="item in formLocationOptions"
                      :key="item.id"
                      :label="item.jointName"
                      :value="{label:item.jointName,value:item.id}"
                      :value="{ label: item.jointName, value: item.id }"
                    >
                    </el-option>
                  </el-select>
@@ -243,7 +243,7 @@
                </el-form-item>
              </el-col>
              <el-col :span="12" v-if="workType === 3">
                <el-form-item  label="仓库位置" prop="toLocation">
                <el-form-item label="调入位置" prop="toLocation">
                  <el-select
                    @change="toLocationChange"
                    v-model="editConfig.infomation.toLocation"
@@ -256,7 +256,7 @@
                      v-for="item in toLocationOptions"
                      :key="item.id"
                      :label="item.jointName"
                      :value="{label:item.jointName,value:item.id}"
                      :value="{ label: item.jointName, value: item.id }"
                    >
                    </el-option>
                  </el-select>
@@ -301,17 +301,22 @@
              <CommonFormTableView
                ref="tableView"
                :islistingrules="true"
                :addTypeIdMultiple="true"
                :product-table-list="productTableList"
                :detail-enter="!showFooter"
                @inputContent="inputContent"
                @addProductClick="addProductClick('操作')"
                @getSelectArray="getSelectArray"
                @emptyProductClick="emptyProductClick"
                @clearupProduct="clearupProduct"
              >
                <template v-if="showFooter" slot="tableButton">
                  <el-table-column label="操作" width="60" fixed="right" align="center">
                    <template slot-scope="scope">
                      <div @click="handleDelClick(scope, '操作')">
                      <!-- <div @click="handleDelClick(scope, '操作')">
                        <i class="el-icon-delete"></i>
                      </div>
                      </div> -->
                      <el-button type="text" size="small" @click.stop="handleDelClick(scope, '操作')">删除</el-button>
                    </template>
                  </el-table-column>
                </template>
@@ -469,9 +474,9 @@
    },
    workType: {
      type: Number,
      default: function() {
        // return JSON.parse(window.sessionStorage.getItem('paramsData')).workType|| 1;
        return 1;
      default: function () {
        // return JSON.parse(window.sessionStorage.getItem('paramsData')).workType|| 1;
        return 1
      }
    },
    addName: {
@@ -492,8 +497,8 @@
      rules: {
        sourceNumber: [{ required: true, message: "请输入来源单据", trigger: "blur" }],
        operationDate: [{ required: true, message: "请选择日期", trigger: "change" }],
        toLocation: [{ required: true, message: "请选择仓库位置", trigger: "change" }],
        location: [{ required: true, message: "请选择源位置", trigger: "change" }],
        toLocation: [{ required: true, message: "请选择位置", trigger: "change" }],
        location: [{ required: true, message: "请选择调出位置", trigger: "change" }],
        operationTypeId: [{ required: true, message: "请选择入库类型", trigger: "change" }],
        number: [{ required: true, validator: this.validateCheckCode, trigger: ["change", "blur"] }]
      },
@@ -511,12 +516,12 @@
      supplierOptions: [], //供应商
      clientOptions: [], //客户
      memberOptions: [{ id: 1, name: "管理员" }],
      formLocationOptions:[],// 源位置
      formLocationOptions: [], // 调出位置
      toLocationOptions: [], // 仓库位置
      showButton: true,
      activeName: "first",
      productTableList: {},
      tableData:[],
      tableData: [],
      countId: 0,
      isNoProduct: true, // 添加明细行时是否有产品未选择
      showEdit: false, // 是否显示编辑按钮
@@ -564,14 +569,13 @@
    }
    this.getLogisticCompanyList()
    this.formInfo()
    if(this.editConfig.title==="查看"||this.editConfig.title==="编辑"){
    if (this.editConfig.title === "查看" || this.editConfig.title === "编辑") {
      setTimeout(() => {
        this.$refs.tableView.setLocationList(this.editConfig.infomation.location.label)
      }, 100);
      }, 100)
    }
  },
  mounted(){
  },
  mounted() {},
  methods: {
    formInfo() {
      this.objCode.type = this.workType === 1 ? "入库编码" : this.workType === 2 ? "出库编码" : "调拨编码"
@@ -624,7 +628,7 @@
        })
      }
    },
    // 获取源位置/仓库位置列表
    // 获取调出位置/仓库位置列表
    async getLocationList() {
      await getLocationList({
        keyWord: "",
@@ -761,7 +765,7 @@
      console.log(validArr, "xxx")
      Promise.all(validArr)
        .then((results) => {
          console.log(results, "执行成功")
          console.log(results, "执行成功", this.tableData)
          for (let i = 0; i < this.tableData.length; i++) {
            if (this.tableData[i].productName.length === 0) {
              this.isNoProduct = true
@@ -785,46 +789,46 @@
            //   })
            // }
            // 产品列表解构
            if(this.editConfig.title === "编辑"||this.editConfig.title === "查看"){
              let arr=[]
              if(this.workType===1){
                params.details.map((item)=>{
            if (this.editConfig.title === "编辑" || this.editConfig.title === "查看") {
              let arr = []
              if (this.workType === 1) {
                params.details.map((item) => {
                  arr.push({
                    operationId:item.operationId,
                    amount:item.amount,
                    productId:item.productId
                    operationId: item.operationId,
                    amount: item.amount,
                    productId: item.productId
                  })
                })
                params.details=arr
              }else if(this.workType===2){
                params.details.map((item)=>{
                  if(item.fromLocationId.value){
                params.details = arr
              } else if (this.workType === 2) {
                params.details.map((item) => {
                  if (item.fromLocationId.value) {
                    arr.push({
                      operationId:item.operationId,
                      amount:item.amount,
                      fromLocationId:item.fromLocationId.value,
                      productId:item.productId,
                      operationId: item.operationId,
                      amount: item.amount,
                      fromLocationId: item.fromLocationId.value,
                      productId: item.productId
                    })
                  }else{
                  } else {
                    arr.push({
                      operationId:item.operationId,
                      amount:item.amount,
                      fromLocationId:item.fromLocation.id,
                      productId:item.productId,
                      operationId: item.operationId,
                      amount: item.amount,
                      fromLocationId: item.fromLocation.id,
                      productId: item.productId
                    })
                  }
                })
                params.details=arr
              }else if(this.workType===3){
                console.log(params.details,"看看")
                params.details.map((item)=>{
                params.details = arr
              } else if (this.workType === 3) {
                console.log(params.details, "看看")
                params.details.map((item) => {
                  arr.push({
                      operationId:item.operationId,
                      amount:item.amount,
                      fromLocationId:item.fromLocationId.value?item.fromLocationId.value:item.fromLocation.id,
                      toLocationId:item.toLocationId.value?item.toLocationId.value:item.toLocation.id,
                      productId:item.productId,
                    })
                    operationId: item.operationId,
                    amount: item.amount,
                    fromLocationId: item.fromLocationId.value ? item.fromLocationId.value : item.fromLocation.id,
                    toLocationId: item.toLocationId.value ? item.toLocationId.value : item.toLocation.id,
                    productId: item.productId
                  })
                  // if(item.fromLocationId.value){
                  //   arr.push({
                  //     operationId:item.operationId,
@@ -843,17 +847,17 @@
                  //   })
                  // }
                })
                params.details=arr
                params.details = arr
              }
            }else if(this.editConfig.title === "新建"){
              if(this.workType===2){
                params.details.map((item)=>{
                  item.fromLocationId=item.fromLocationId.value
            } else if (this.editConfig.title === "新建") {
              if (this.workType === 2) {
                params.details.map((item) => {
                  item.fromLocationId = item.fromLocationId.value
                })
              }else if(this.workType===3){
                params.details.map((item)=>{
                  item.fromLocationId=item.fromLocationId.value
                  item.toLocationId=item.toLocationId.value
              } else if (this.workType === 3) {
                params.details.map((item) => {
                  item.fromLocationId = item.fromLocationId.value
                  item.toLocationId = item.toLocationId.value
                })
              }
            }
@@ -870,7 +874,7 @@
                  this.$message.success("编辑成功")
                }
                this.$parent.getData()
              }else{
              } else {
                this.$message.success(res.msg)
              }
            })
@@ -897,8 +901,8 @@
        contacterID = Object.keys(this.contacterObj).length === 0 ? data.contacterID : this.contacterObj.value
        contacterName = Object.keys(this.contacterObj).length === 0 ? data.contacterName : this.contacterObj.label
      }
      let params={}
      if(this.workType===1||this.workType===2){
      let params = {}
      if (this.workType === 1 || this.workType === 2) {
        params = {
          baseOperationType: data.baseOperationType,
          comment: data.comment || "",
@@ -913,7 +917,7 @@
          operationDate: data.operationDate || "",
          operationTypeId: this.showOperationType ? data.operationTypeId : this.editConfig.operationTypeId,
          operationTypeName: this.receiptType,
          sourceNumber:data.sourceNumber || "" ,
          sourceNumber: data.sourceNumber || "",
          status: 3,
          // toLocationId: data.toLocation.value||0,
          waybillNumber: data.waybillNumber || "",
@@ -924,7 +928,7 @@
          receiverName: data.receiverName || "",
          receiverPhone: data.receiverPhone || ""
        }
      }else if(this.workType===3){
      } else if (this.workType === 3) {
        params = {
          baseOperationType: data.baseOperationType,
          comment: data.comment || "",
@@ -939,9 +943,9 @@
          operationDate: data.operationDate || "",
          operationTypeId: this.showOperationType ? data.operationTypeId : this.editConfig.operationTypeId,
          operationTypeName: this.receiptType,
          sourceNumber:data.sourceNumber || "" ,
          sourceNumber: data.sourceNumber || "",
          status: 3,
          toLocationId: data.toLocation.value||0,
          toLocationId: data.toLocation.value || 0,
          waybillNumber: data.waybillNumber || "",
          weight: data.weight || 0,
          logisticWeight: data.logisticWeight || 0,
@@ -975,6 +979,7 @@
          return {
            ...item,
            productName: item.product.name,
            productId: item.product.id,
            unit: item.product.unit
          }
        })
@@ -983,27 +988,36 @@
        this.tableData = []
      }
      // this.tableData = this.editConfig.title !== "新建" ? list : []
      let tableColumnArr=[]
      if(this.workType===1){
        tableColumnArr= [
          { label: "产品", prop: "productName", productName: true, isRequird: true },
          { label: "数量", prop: "amount", inputFloat: true },
          { label: "计量单位", prop: "unit" }
        ]
      }else if(this.workType===2){
      let tableColumnArr = []
      if (this.workType === 1) {
        tableColumnArr = [
          { label: "产品", prop: "productName", productName: true, isRequird: true },
          { label: "从", prop: "fromLocationId", sonLocation: true, isRequird: true },
          { label: "数量", prop: "amount", inputFloat: true },
          { label: "计量单位", prop: "unit" }
          { label: "产品名称", prop: "productName", productName: true, isRequird: true },
          { label: "产品编码", prop: "productId" },
          { label: "计量单位", prop: "unit" },
          { label: "产品规格", prop: "specs" },
          { label: "产品型号", prop: "model" },
          { label: "数量", prop: "amount", inputFloat: true }
        ]
      }else if(this.workType===3){
      } else if (this.workType === 2) {
        tableColumnArr = [
          { label: "产品", prop: "productName", productName: true, isRequird: true },
          { label: "从", prop: "fromLocationId", sonLocation: true, isRequird: true },
          { label: "至", prop: "toLocationId", toLocation: true,isRequird: true },
          { label: "数量", prop: "amount", inputFloat: true },
          { label: "计量单位", prop: "unit" }
          { label: "产品名称", prop: "productName", productName: true, isRequird: true },
          { label: "产品编码", prop: "productId" },
          { label: "计量单位", prop: "unit" },
          { label: "产品规格", prop: "specs" },
          { label: "产品型号", prop: "model" },
          // { label: "调出位置", prop: "fromLocationId", sonLocation: true, isRequird: true },
          { label: "数量", prop: "amount", inputFloat: true }
        ]
      } else if (this.workType === 3) {
        tableColumnArr = [
          { label: "产品名称", prop: "productName", productName: true, isRequird: true },
          { label: "产品编码", prop: "productId" },
          { label: "计量单位", prop: "unit" },
          { label: "产品规格", prop: "specs" },
          { label: "产品型号", prop: "model" },
          { label: "调出位置", prop: "fromLocationId", sonLocation: true, isRequird: true },
          { label: "调入位置", prop: "toLocationId", toLocation: true, isRequird: true },
          { label: "数量", prop: "amount", inputFloat: true }
        ]
      }
      this.productTableList = {
@@ -1023,56 +1037,92 @@
    // 新增
    addProductClick(value) {
      console.log(value)
      if (value === "操作") {
        console.log(this.tableData)
        for (let i = 0; i < this.tableData.length; i++) {
          if (this.tableData[i].productName.length === 0) {
            this.isNoProduct = false
            break
          } else {
            this.isNoProduct = true
          }
        }
        if (this.isNoProduct) {
          this.countId++
          this.tableData.push({
            countId: this.countId,
            productId: "",
            amount: 0,
            unit: "",
            productName: "",
          })
        }
      } else {
        console.log(this.detailTableData)
        for (let i = 0; i < this.detailTableData.length; i++) {
          if (this.detailTableData[i].name.length === 0) {
            this.isNoDetail = true
            break
          } else {
            this.isNoDetail = false
          }
        }
        if (!this.isNoDetail) {
          this.detailId++
          this.detailTableData.push({
            detailId: this.detailId,
            id: 0,
            amount: 0,
            desc: "",
            name: "",
            number: "",
            price: 0,
            total: 0
          })
        }
      // if (value === "操作") {
      //   console.log(this.tableData)
      //   for (let i = 0; i < this.tableData.length; i++) {
      //     if (this.tableData[i].productName.length === 0) {
      //       this.isNoProduct = false
      //       break
      //     } else {
      //       this.isNoProduct = true
      //     }
      //   }
      //   if (this.isNoProduct) {
      //     this.countId++
      //     this.tableData.push({
      //       countId: this.countId,
      //       productId: "",
      //       amount: 0,
      //       unit: "",
      //       productName: ""
      //     })
      //   }
      // } else {
      //   console.log(this.detailTableData)
      //   for (let i = 0; i < this.detailTableData.length; i++) {
      //     if (this.detailTableData[i].name.length === 0) {
      //       this.isNoDetail = true
      //       break
      //     } else {
      //       this.isNoDetail = false
      //     }
      //   }
      //   if (!this.isNoDetail) {
      //     this.detailId++
      //     this.detailTableData.push({
      //       detailId: this.detailId,
      //       id: 0,
      //       amount: 0,
      //       desc: "",
      //       name: "",
      //       number: "",
      //       price: 0,
      //       total: 0
      //     })
      //   }
      // }
    },
    // 新增方式修改
    getSelectArray(val, index) {
      if (this.tableData.length == 1 && this.tableData[0].number.length == 0) {
        this.tableData = []
      }
      if (index < this.tableData.length) {
        this.tableData.splice(index, 1)
        val.map((item, ind) => {
          this.tableData.splice(index + ind, 0, item)
        })
      } else {
        this.tableData = this.tableData.concat(val)
      }
      console.log(this.tableData)
      let list = this.tableData.map((res) => {
        return {
          ...res,
          productName: res.name,
          productId: res.id
        }
      })
      this.tableData = list
      this.productTableList.tableData = list
      // this.showSummary.show = true
    },
    //  产品清空
    emptyProductClick() {
      this.tableData = []
      this.productTableList.tableData = this.tableData
    },
    clearupProduct(data) {
      this.tableData = data
      this.productTableList.tableData = this.tableData
    },
    // 删除
    handleDelClick(scope, value) {
      console.log(scope)
      if (value === "操作") {
        this.tableData.splice(scope.$index, 1)
        this.productTableList.tableData.splice(scope.$index, 1)
        this.$message.success("删除成功!")
      } else {
        this.detailTableData.splice(scope.$index, 1)
      }
@@ -1186,20 +1236,20 @@
        }
      }
    },
    // 源位置选择
    rootLocationChange(val){
      this.editConfig.infomation.location=val
    // 调出位置选择
    rootLocationChange(val) {
      this.editConfig.infomation.location = val
      // this.productTableList.tableData.map((item)=>{
      //   console.log(item,"item")
      //   // item.toLocationId={}
      //   // item.fromLocationId={}
      // })
      this.$refs.tableView.setLocationList(val.label,"fromLocation")
      this.$refs.tableView.setLocationList(val.label, "fromLocation")
    },
    // 仓库位置选择
    toLocationChange(val){
      this.editConfig.infomation.toLocation=val
      this.$refs.tableView.setLocationList(val.label,"toLocation")
    toLocationChange(val) {
      this.editConfig.infomation.toLocation = val
      this.$refs.tableView.setLocationList(val.label, "toLocation")
    }
  }
}