zuozhengqing
2024-01-08 95b3446e38cc84c66883e4ae0e0c9985d6e3e722
src/views/overview/AddOverviewDialog.vue
@@ -202,7 +202,7 @@
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12">
              <el-col :span="12" >
                <el-form-item :label="workType === 1?'仓库位置':'源位置'" prop="location">
                  <el-select
                    @change="rootLocationChange"
@@ -213,7 +213,7 @@
                    :disabled="!showFooter"
                  >
                    <el-option
                      v-for="item in toLocationOptions"
                      v-for="item in formLocationOptions"
                      :key="item.id"
                      :label="item.jointName"
                      :value="{label:item.jointName,value:item.id}"
@@ -222,25 +222,6 @@
                  </el-select>
                </el-form-item>
              </el-col>
              <!-- <el-col :span="12">
                <el-form-item v-if="workType !== 2" label="仓库位置" prop="toLocationId">
                  <el-select
                    v-model="editConfig.infomation.toLocationId"
                    placeholder="请选择"
                    size="mini"
                    style="width: 90%"
                    :disabled="!showFooter"
                  >
                    <el-option
                      v-for="item in toLocationOptions"
                      :key="item.id"
                      :label="item.jointName"
                      :value="item.id"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col> -->
              <el-col :span="12">
                <el-form-item label="负责人" prop="contacterName">
                  <el-select
@@ -256,6 +237,26 @@
                      :key="item.id"
                      :label="item.name"
                      :value="{ value: item.id, label: item.name }"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="12" v-if="workType === 3">
                <el-form-item  label="仓库位置" prop="toLocation">
                  <el-select
                    @change="toLocationChange"
                    v-model="editConfig.infomation.toLocation"
                    placeholder="请选择"
                    size="mini"
                    style="width: 90%"
                    :disabled="!showFooter"
                  >
                    <el-option
                      v-for="item in toLocationOptions"
                      :key="item.id"
                      :label="item.jointName"
                      :value="{label:item.jointName,value:item.id}"
                    >
                    </el-option>
                  </el-select>
@@ -490,7 +491,7 @@
      rules: {
        sourceNumber: [{ required: true, message: "请输入来源单据", trigger: "blur" }],
        operationDate: [{ required: true, message: "请选择日期", trigger: "change" }],
        toLocationId: [{ 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"] }]
@@ -509,7 +510,8 @@
      supplierOptions: [], //供应商
      clientOptions: [], //客户
      memberOptions: [{ id: 1, name: "管理员" }],
      toLocationOptions: [], //  源位置 仓库位置
      formLocationOptions:[],// 源位置
      toLocationOptions: [], // 仓库位置
      showButton: true,
      activeName: "first",
      productTableList: {},
@@ -561,9 +563,11 @@
    }
    this.getLogisticCompanyList()
    this.formInfo()
    setTimeout(() => {
      this.$refs.tableView.setLocationList(this.editConfig.infomation.location.label)
    }, 100);
    if(this.editConfig.title==="查看"||this.editConfig.title==="编辑"){
      setTimeout(() => {
        this.$refs.tableView.setLocationList(this.editConfig.infomation.location.label)
      }, 100);
    }
  },
  mounted(){
  },
@@ -619,11 +623,22 @@
        })
      }
    },
    // 获取仓库位置列表
    // 获取源位置/仓库位置列表
    async getLocationList() {
      await getLocationList({
        keyWord: "",
        jointName: this.editConfig.code,
        page: 0,
        pageSize: 0
      }).then((res) => {
        console.log(res)
        if (res.code === 200) {
          this.formLocationOptions = res.data
        }
      })
      await getLocationList({
        keyWord: "",
        // jointName: this.editConfig.code,
        page: 0,
        pageSize: 0
      }).then((res) => {
@@ -758,18 +773,18 @@
            this.$message.error("请添加明细行或选择产品不能为空")
          } else {
            let params = this.saveParams()
            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
              })
            }
            // 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
            //   })
            // }
            // 产品列表解构
            if(this.editConfig.title === "编辑"){
            if(this.editConfig.title === "编辑"||this.editConfig.title === "查看"){
              let arr=[]
              if(this.workType===1){
                params.details.map((item)=>{
@@ -782,25 +797,63 @@
                params.details=arr
              }else if(this.workType===2){
                params.details.map((item)=>{
                  arr.push({
                    operationId:item.operationId,
                    amount:item.amount,
                    fromLocationId:item.fromLocation.id,
                    productId:item.productId,
                  })
                  if(item.fromLocationId.value){
                    arr.push({
                      operationId:item.operationId,
                      amount:item.amount,
                      fromLocationId:item.fromLocationId.value,
                      productId:item.productId,
                    })
                  }else{
                    arr.push({
                      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)=>{
                  arr.push({
                    operationId:item.operationId,
                    amount:item.amount,
                    fromLocationId:item.fromLocation.id,
                    toLocationId: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,
                  //     amount:item.amount,
                  //     fromLocationId:item.fromLocationId.value,
                  //     toLocationId:item.toLocation.id,
                  //     productId:item.productId,
                  //   })
                  // }else{
                  //   arr.push({
                  //     operationId:item.operationId,
                  //     amount:item.amount,
                  //     fromLocationId:item.fromLocation.id,
                  //     toLocationId:item.toLocation.id,
                  //     productId:item.productId,
                  //   })
                  // }
                })
                params.details=arr
              }
            }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
                })
              }
            }
            let requestUrl = this.editConfig.title === "新建" ? addOperation : updateOperation
@@ -808,7 +861,6 @@
            requestUrl({
              ...params
            }).then((res) => {
              console.log(res)
              this.editConfig.visible = false
              if (res.code === 200) {
                if (this.editConfig.title === "新建") {
@@ -817,6 +869,8 @@
                  this.$message.success("编辑成功")
                }
                this.$parent.getData()
              }else{
                this.$message.success(res.msg)
              }
            })
          }
@@ -842,30 +896,59 @@
        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 = {
        baseOperationType: data.baseOperationType,
        comment: data.comment || "",
        companyID: companyID,
        companyName: companyName,
        contacterID: contacterID,
        contacterName: contacterName,
        details: this.tableData,
        locationId: data.location.value || 0,
        id: data.id,
        number: data.number || "",
        operationDate: data.operationDate || "",
        operationTypeId: this.showOperationType ? data.operationTypeId : this.editConfig.operationTypeId,
        operationTypeName: this.receiptType,
        sourceNumber:data.sourceNumber || "" ,
        status: 3,
        toLocationId: data.toLocationId || 0,
        waybillNumber: data.waybillNumber || "",
        weight: data.weight || 0,
        logisticWeight: data.logisticWeight || 0,
        logisticCompanyId: data.logisticCompanyId,
        receiverAddr: data.receiverAddr || "",
        receiverName: data.receiverName || "",
        receiverPhone: data.receiverPhone || ""
      let params={}
      if(this.workType===1||this.workType===2){
        params = {
          baseOperationType: data.baseOperationType,
          comment: data.comment || "",
          companyID: companyID,
          companyName: companyName,
          contacterID: contacterID,
          contacterName: contacterName,
          details: this.tableData,
          locationId: data.location.value || 0,
          id: data.id,
          number: data.number || "",
          operationDate: data.operationDate || "",
          operationTypeId: this.showOperationType ? data.operationTypeId : this.editConfig.operationTypeId,
          operationTypeName: this.receiptType,
          sourceNumber:data.sourceNumber || "" ,
          status: 3,
          // toLocationId: data.toLocation.value||0,
          waybillNumber: data.waybillNumber || "",
          weight: data.weight || 0,
          logisticWeight: data.logisticWeight || 0,
          logisticCompanyId: data.logisticCompanyId,
          receiverAddr: data.receiverAddr || "",
          receiverName: data.receiverName || "",
          receiverPhone: data.receiverPhone || ""
        }
      }else if(this.workType===3){
        params = {
          baseOperationType: data.baseOperationType,
          comment: data.comment || "",
          companyID: companyID,
          companyName: companyName,
          contacterID: contacterID,
          contacterName: contacterName,
          details: this.tableData,
          locationId: data.location.value || 0,
          id: data.id,
          number: data.number || "",
          operationDate: data.operationDate || "",
          operationTypeId: this.showOperationType ? data.operationTypeId : this.editConfig.operationTypeId,
          operationTypeName: this.receiptType,
          sourceNumber:data.sourceNumber || "" ,
          status: 3,
          toLocationId: data.toLocation.value||0,
          waybillNumber: data.waybillNumber || "",
          weight: data.weight || 0,
          logisticWeight: data.logisticWeight || 0,
          logisticCompanyId: data.logisticCompanyId,
          receiverAddr: data.receiverAddr || "",
          receiverName: data.receiverName || "",
          receiverPhone: data.receiverPhone || ""
        }
      }
      return params
    },
@@ -917,7 +1000,7 @@
        tableColumnArr = [
          { label: "产品", prop: "productName", productName: true, isRequird: true },
          { label: "从", prop: "fromLocationId", sonLocation: true, isRequird: true },
          { label: "至", prop: "toLocationId", toLocation: true },
          { label: "至", prop: "toLocationId", toLocation: true,isRequird: true },
          { label: "数量", prop: "amount", inputFloat: true },
          { label: "计量单位", prop: "unit" }
        ]
@@ -931,7 +1014,7 @@
    inputContent(val, prop, row) {
      this.countId = row.countId
      this.tableData.map((item) => {
        if (item.countId === row.countId) {
        if (item.id === row.id) {
          item[prop] = val
        }
      })
@@ -1105,12 +1188,17 @@
    // 源位置选择
    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)
      // this.productTableList.tableData.map((item)=>{
      //   console.log(item,"item")
      //   // item.toLocationId={}
      //   // item.fromLocationId={}
      // })
      this.$refs.tableView.setLocationList(val.label,"fromLocation")
    },
    // 仓库位置选择
    toLocationChange(val){
      this.editConfig.infomation.toLocation=val
      this.$refs.tableView.setLocationList(val.label,"toLocation")
    }
  }
}