llj
2026-04-08 8cd0e22e4a194252c4639bebdec59f565f393f93
src/views/scMould/warehouse/Sc_MouldProdMoveBillEdit.vue
@@ -3,7 +3,7 @@
    <div style=" margin-bottom: 10px; border-bottom: 1px solid #f6f6f6;">
      <el-button type="primary" @click="handleAdd(OperationType = 1)" v-if="addBtnShow">新增</el-button>
      <el-button type="primary" @click="submitForm" :disabled="subDisabled">保 存</el-button>
      <el-button type="primary" @click="set_CheckBill(1, form)">审 核</el-button>
      <!-- <el-button type="primary" @click="set_CheckBill(1, form)">审 核</el-button> -->
      <el-button type="primary" @click="close">退 出</el-button>
      <!-- <el-button @click="cancel">取 消</el-button> -->
    </div>
@@ -14,12 +14,12 @@
          <el-row>
            <el-col :span="6">
              <el-form-item v-show="HIsShow" label="单据号" prop="HBillNo">
                <el-input v-model="form.HBillNo" placeholder="请输入单据号" />
                <el-input v-model="form.HBillNo" placeholder="请输入单据号" disabled/>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item v-show="HIsShow" label="日期" prop="HDate">
                <el-date-picker v-model="form.HDate" type="date" placeholder="选择日期" value-format="yyyy-MM-dd">
                <el-date-picker v-model="form.HDate" type="date" placeholder="选择日期" format="yyyy-MM-dd">
                </el-date-picker>
              </el-form-item>
            </el-col>
@@ -34,7 +34,7 @@
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item v-show="HIsShow" label="往来类型" prop="HSupTypeID">
              <el-form-item v-show="false" label="往来类型" prop="HSupTypeID">
                <el-select v-model="form.HSupTypeID" placeholder="请选择往来类型" @change="form.HSupName='',form.HSupId=0">
                  <el-option v-for="(item, index) in hSupTypeList" :key="index" :label="item.name" :value="item.id">
                  </el-option>
@@ -42,7 +42,7 @@
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item v-show="HIsShow" label="往来单位" prop="HSupName">
              <el-form-item v-show="false" label="往来单位" prop="HSupName">
                <el-input v-model="form.HSupName" placeholder="请选择往来单位" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialogChoose()"></el-button>
                </el-input>
@@ -56,6 +56,12 @@
                </el-select>
              </el-form-item>
            </el-col>
              <el-form-item label="子单据类型" prop="HBillSubType">
              <el-select v-model="form.HBillSubType" placeholder="请选择子单据类型">
                <el-option label="发货" value="发货"></el-option>
                <el-option label="内部调拨" value="内部调拨"></el-option>
              </el-select>
            </el-form-item>
          </el-row>
          <el-row>
            <el-col :span="6">
@@ -88,13 +94,13 @@
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
            <!-- <el-col :span="6">
              <el-form-item v-show="HIsShow" label="负责人" prop="HMangerName">
                <el-input v-model="form.HMangerName" placeholder="请选择" disabled>
                <el-input v-model="form.HManagerName" placeholder="请选择" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4,empType=2)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            </el-col> -->
            <el-col :span="6">
              <el-form-item v-show="HIsShow" label="验收员" prop="HSecManagerName">
                <el-input v-model="form.HSecManagerName" placeholder="请选择" disabled>
@@ -171,25 +177,25 @@
          <el-row>
            <el-col :span="6">
              <el-form-item v-show="HIsShow" label="制单日期" prop="HMakeDate">
                <el-date-picker v-model="form.HMakeDate" type="date" placeholder="选择制单日期" disabled>
                <el-date-picker v-model="form.HMakeDate" type="date" placeholder="选择制单日期" format="yyyy-MM-dd hh:mm:ss" disabled>
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item v-show="HIsShow" label="修改日期" prop="HUpDateDate">
                <el-date-picker v-model="form.HUpDateDate" type="date" placeholder="选择审核日期" disabled>
                <el-date-picker v-model="form.HUpDateDate" type="date" placeholder="选择审核日期" format="yyyy-MM-dd hh:mm:ss" disabled>
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item v-show="HIsShow" label="审核日期" prop="HCheckDate">
                <el-date-picker v-model="form.HCheckDate" type="date" placeholder="选择审核日期" disabled>
                <el-date-picker v-model="form.HCheckDate" type="date" placeholder="选择审核日期" format="yyyy-MM-dd hh:mm:ss" disabled>
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item v-show="HIsShow" label="关闭日期" prop="HCloseDate">
                <el-date-picker v-model="form.HCloseDate" type="date" placeholder="选择关闭日期" disabled>
                <el-date-picker v-model="form.HCloseDate" type="date" placeholder="选择关闭日期" format="yyyy-MM-dd hh:mm:ss" disabled>
                </el-date-picker>
              </el-form-item>
            </el-col>
@@ -204,7 +210,7 @@
          <el-row>
            <el-col :span="6">
              <el-form-item v-show="HIsShow" label="作废日期" prop="HDeleteDate">
                <el-date-picker v-model="form.HDeleteDate" type="date" placeholder="选择作废日期" disabled>
                <el-date-picker v-model="form.HDeleteDate" type="date" placeholder="选择作废日期" format="yyyy-MM-dd hh:mm:ss" disabled>
                </el-date-picker>
              </el-form-item>
            </el-col>
@@ -223,7 +229,8 @@
              size="mini">上移</el-button>
            <el-button type="success" plain icon="el-icon-arrow-down" @click="handleMoveRowDown(zbSelForm)"
              size="mini">下移</el-button>
            <el-button type="success" plain icon="el-icon-printer" @click="get_ICInventoryMould(zbSelForm)">容器库存</el-button>
            <!-- <el-button type="success" plain icon="el-icon-printer" @click="get_ICInventoryMould(zbSelForm)">容器库存</el-button> -->
              <el-button type="success" plain icon="el-icon-printer" @click="get_ContainerInstantStock(zbSelForm)">容器即时库存</el-button>
          </div>
          <el-table :data="editData" style="width: 100%" height="300" width="100%" ref="zbTable"
            @selection-change="handleTableZbEdit" :row-class-name="rowSysZbIndex" show-summary border>
@@ -255,6 +262,11 @@
                <span>{{ scope.row.HUnitName }}</span>
              </template>
            </el-table-column>
             <el-table-column align="center" label="库存数量" width="120">
            <template slot-scope="scope">
                {{ scope.row.KuHQty }}
            </template>
          </el-table-column>
            <el-table-column align="center" label="应发数量" width="120">
              <template slot-scope="scope">
                <span>{{ scope.row.HQtyMust }}</span>
@@ -441,6 +453,7 @@
      zzSelDis: false,
      rowHideShow: false,
      openRowHide: false,
      HBillSubType: '',
      hSupTypeList: [{name:'供应商',id:1,},{name:'客户',id:2},{name:'车间部门',id:3}],
      HSourceBillTypes:[],
      addBtnShow: false,
@@ -527,15 +540,18 @@
        HStockOutOrgID: [
          { required: true, message: "调出组织不能为空", trigger: "blur" }
        ],
        HSecManagerName: [
          { required: true, message: "验收员不能为空", trigger: "blur" }
        HBillSubType: [
          { required: true, message: "子单据类型不能为空", trigger: "blur" }
        ],
        HEmpName: [
          { required: true, message: "业务员不能为空", trigger: "blur" }
        ],
        HKeeperName: [
          { required: true, message: "保管员不能为空", trigger: "blur" }
        ]
        // HSecManagerName: [
        //   { required: true, message: "验收员不能为空", trigger: "blur" }
        // ],
        // HEmpName: [
        //   { required: true, message: "业务员不能为空", trigger: "blur" }
        // ],
        // HKeeperName: [
        //   { required: true, message: "保管员不能为空", trigger: "blur" }
        // ]
      }
    };
  },
@@ -543,6 +559,7 @@
    this.fetchData()
    this.SourceBillType()
    this.getdata()
  },
  methods: {
    fetchData() {
@@ -641,8 +658,11 @@
      this.form.HDeptID = data.HDeptID
      this.form.HDeptName = data.HDeptName
      this.form.HStockOrgID = data.HStockOutOrgID
      this.form.HBillSubType = data.HBillSubType
      this.form.HStockInOrgID = data.HStockInOrgID == null ? 0 : data.HStockInOrgID
      this.form.HStockOutOrgID = data.HStockOutOrgID == null ? 0 : data.HStockOutOrgID
      this.form.HWHName = data.HWHName
      this.form.HSCWHName = data.HSCWHName
      this.ifOrganizationEdit = true
      //子表  赋值
      var rowdata = [];
@@ -721,6 +741,91 @@
      this.editData = rowdata
    },
    //弹窗赋值
        //#region 查看容器即时库存
  async get_ContainerInstantStock(zbSelForm) {
    if (!this.zbIndex) {
      this.$modal.msgError("请选择一行数据");
      return;
    }
    var index = zbSelForm.index - 1;
    const rowData = this.editData[index];
    if (rowData.HMaterID==0) {
      this.$modal.msgError("请先选择容器");
      return;
    }
    const whId = rowData.HWHID || this.form.HWHID;
    if (!whId || whId == 0) {
      this.$modal.msgError("请先选择有效的仓库");
      return;
    }
    try {
      this.$modal.loading("正在查询库存...");
      // 获取仓库名称
      const whResponse = await axios.get(this.$baseUrl + "/CommonModel/searchMethod", {
        params: {
          "sql": `select HName from Gy_Warehouse where HItemID = ${whId}`,
          "user": sessionStorage["HUserName"],
          "ModRightNameCheck": ""
        }
      });
      const whName = whResponse.data.data[0]?.HName;
      if (!whName) {
        this.$modal.closeLoading();
        this.$modal.msgError("未找到仓库信息");
        return;
      }
      // 获取所有库存数据
      var sql = "exec h_p_Kf_ICInventory_Mould ''";
      const response = await axios.get(this.$baseUrl + "/CommonModel/searchMethod", {
        params: {
          "sql": sql,
          "user": sessionStorage["HUserName"],
          "ModRightNameCheck": ""
        }
      });
      let totalQty = 0;
      if (response.data.count == 1 && response.data.data) {
        // 基础过滤:容器ID + 仓库名称
        let filteredData = response.data.data.filter(item =>
          item['HMaterID'] == rowData.HMaterID && item['仓库'] === whName
        );
        // 如果有库位,按库位过滤
        if (rowData.HSPName) {
          filteredData = filteredData.filter(item => item['仓位'] === rowData.HSPName);
        }
        // 计算总库存
        filteredData.forEach(item => {
          totalQty += Number(item['库存数量'] || 0);
        });
      }
      // 更新当前行的库存数量
      this.$set(this.editData, index, {
        ...rowData,
        KuHQty: totalQty
      });
      this.$modal.closeLoading();
      this.$modal.msgSuccess(`库存查询成功,当前库存:${totalQty}`);
    } catch (error) {
      this.$modal.closeLoading();
      this.$modal.msgError("查询库存失败");
    }
  },
  //#endregion
    dbEmitData(deptRow, num) {
      // num=1部门 num=2仓库
      console.log(33,deptRow)
@@ -763,10 +868,21 @@
              this.form.HWHName = deptRow.仓库名称
              this.form.HWHID = deptRow.HItemID
              this.form.HWHNumber = deptRow.仓库代码
              for(i=0;i<this.editData.length;i++){
                this.editData[i].HWHID = deptRow.HItemID
                this.editData[i].HWHNumber = deptRow.仓库代码
                this.editData[i].HWHName = deptRow.仓库名称
              }
            }else if(this.eHWHType == 2){
              this.form.HSCWHName = deptRow.仓库名称
              this.form.HSCWHID = deptRow.HItemID
              this.form.HSCWHNumber = deptRow.仓库代码
               for(i=0;i<this.editData.length;i++){
                this.editData[i].HSCWHID = deptRow.HItemID
                this.editData[i].HSCWHNumber = deptRow.仓库代码
                this.editData[i].HSCWHName = deptRow.仓库名称
              }
            }else if(this.eHWHType == 3){
              this.editData[this.zbIndex].HWHID = deptRow.HItemID
              this.editData[this.zbIndex].HWHNumber = deptRow.仓库代码
@@ -820,13 +936,15 @@
            this.openData = false
          } else if (num == 9){
            if(this.HSPType == 1){
              this.editData[this.zbIndex].HSPID = deptRow.HMainID
              this.editData[this.zbIndex].HSPID = deptRow.HItemID || 0
              this.editData[this.zbIndex].HSPNumber = deptRow.仓位代码
              this.editData[this.zbIndex].HSPName = deptRow.仓位名称
              console.log( "仓位id",deptRow.HItemID)
            }else{
              this.editData[this.zbIndex].HSCSPID = deptRow.HMainID
              this.editData[this.zbIndex].HSCSPID = deptRow.HItemID || 0
              this.editData[this.zbIndex].HSCSPNumber = deptRow.仓位代码
              this.editData[this.zbIndex].HSCSPName = deptRow.仓位名称
              console.log( "仓位2id",deptRow.HItemID)
            }
            this.gyStockPlaceShow = false
            this.openData = false
@@ -861,6 +979,7 @@
        HSupName:'',
        HSupID:0,
        HStockOutOrgID:sessionStorage["OrganizationID"] - 0,
        HBillSubType: '',
        HDeptName: '',
        HDeptID: 0,
        HWHName:'',
@@ -871,8 +990,8 @@
        HSCWHID:0,
        HEmpName:'',
        HEmpID:0,
        HMangerName:'',
        HMangerID:0,
        HManagerName:'',
        HManagerID:0,
        HSecManagerName:'',
        HSecManagerID:0,
        HKeeperName:'',
@@ -946,7 +1065,7 @@
      //新增获取单据号
      this.getHBillNo()
      let date = new Date()
      this.form.HDate = moment(date).format('YYYY-MM-DD')
      this.form.HDate = moment(date).format('YYYY-MM-DD HH:mm:ss')
      if (this.OperationType == 1) {
        this.handleAddSysZb()
      }
@@ -976,7 +1095,7 @@
      //新增获取单据号
      this.getHBillNo()
      let date = new Date()
      this.form.HDate = moment(date).format('YYYY-MM-DD')
      this.form.HDate = moment(date).format('YYYY-MM-DD HH:mm:ss')
      //设置源单类型
      this.form.HSourceBillType = this.HSouceBillType
@@ -1016,7 +1135,7 @@
          if (this.copyType == 1) {
            this.getHBillNo()
            let date = new Date()
            this.form.HDate = moment(date).format('YYYY-MM-DD')
            this.form.HDate = moment(date).format('YYYY-MM-DD HH:mm:ss')
          } else {
            if (data[0].HSourceInterID != "0") {
              this.ifOrganizationEdit = true
@@ -1046,6 +1165,7 @@
                , "HInnerBillNo": data[0].内部单据号
                , "HStockInOrgID": data[0].HStockInOrgID
                , "HStockOutOrgID": data[0].HStockOutOrgID
                , "HBillSubType": data[0].子单据类型
                , "HMaker": data[0].制单人
                , "HChecker": data[0].审核人
                , "HCloseMan": data[0].关闭人
@@ -1060,6 +1180,7 @@
            this.form.HStockInOrgID = data[0].HStockInOrgID == null ? 0 : data[0].HStockInOrgID;
            this.form.HStockOutOrgID = data[0].HStockOutOrgID == null ? 0 : data[0].HStockOutOrgID;
            //子表  赋值
            console.log(response.data.data)
            this.editData = response.data.data[0];
            this.editData1 = response.data.data[1];
          }
@@ -1230,9 +1351,12 @@
      }
    },
    //#endregion
    // 编辑提交保存
    submitForm() {
        if (this.form.HDate) {
      this.form.HDate = moment(this.form.HDate).format('YYYY-MM-DD');
    }
      this.$refs["form"].validate(valid => {
        if (valid) {
          let fhck = false
@@ -1250,10 +1374,12 @@
            }else if(!item.HSCWHID){
              fhck = true
              this.$modal.msgError("第" + (index + 1) + "行:调出仓库未选择!");
            }else if(!item.HUnitID){
              fhck = true
              this.$modal.msgError("第" + (index + 1) + "行:计量单位为空!");
            }else if(item.HQty == 0){
            }
            // else if(!item.HUnitID){
            //   fhck = true
            //   this.$modal.msgError("第" + (index + 1) + "行:计量单位为空!");
            // }
            else if(item.HQty == 0){
              fhck = true
              this.$modal.msgError("第" + (index + 1) + "行:数量不能为0!");
            }
@@ -1272,6 +1398,7 @@
              var sMainStr = JSON.stringify(this.form);
              var sSubStr = JSON.stringify(this.editData);
              var sMainSub = sMainStr + ';' + sSubStr + ';' + Operation + ";" + sessionStorage["HUserName"];
              console.log(sSubStr)
              axios({
                method: 'post',
                url: this.$baseUrl + "/Sc_MouldProdMoveBillController/GetSc_MouldProdMoveBill_Save_Json",