wangyi
2026-02-28 fd9d75b6d9c8ce5b36afd46c2751164259af24ee
src/views/scMould/warehouse/Sc_MouldMoveStockRequestBillEdit.vue
@@ -13,18 +13,18 @@
        <el-tab-pane label="基本信息" name="first">
          <el-row>
            <el-col :span="6">
              <el-form-item label="单据号" prop="HBillNo">
              <el-form-item v-show="HIsShow" label="单据号" prop="HBillNo">
                <el-input v-model="form.HBillNo" placeholder="请输入单据号" />
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="日期" prop="HDate">
                <el-date-picker v-model="form.HDate" type="date" placeholder="选择日期" value-format="yyyy-MM-ddT">
              <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>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="调入组织" prop="HStockInOrgID">
              <el-form-item v-show="HIsShow" label="调入组织" prop="HStockInOrgID">
                <el-select v-model="form.HStockInOrgID" placeholder="请选择组织">
                  <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name" :value="item.ID">
                  </el-option>
@@ -34,22 +34,22 @@
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="往来类型" prop="HSupTypeID">
                <el-select v-model="form.HSupTypeID" placeholder="请选择往来类型">
              <el-form-item v-show="HIsShow" 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>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="往来单位" prop="HSupName">
              <el-form-item v-show="HIsShow" 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>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="调出组织" prop="HStockOutOrgID">
              <el-form-item v-show="HIsShow" label="调出组织" prop="HStockOutOrgID">
                <el-select v-model="form.HStockOutOrgID" placeholder="请选择组织">
                  <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name" :value="item.ID">
                  </el-option>
@@ -59,21 +59,21 @@
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="部门" prop="HDeptName">
              <el-form-item v-show="HIsShow" label="部门" prop="HDeptName">
                <el-input v-model="form.HDeptName" placeholder="请选择部门" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(1,deptType=1)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="调入仓库" prop="HWHName">
              <el-form-item v-show="HIsShow" label="调入仓库" prop="HWHName">
                <el-input v-model="form.HWHName" placeholder="请选择调入仓库" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(2,eHWHType=1)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="调出仓库" prop="HSCWHName">
              <el-form-item v-show="HIsShow" label="调出仓库" prop="HSCWHName">
                <el-input v-model="form.HSCWHName" placeholder="请选择调出仓库" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(2,eHWHType=2)"></el-button>
                </el-input>
@@ -82,28 +82,28 @@
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="业务员" prop="HEmpName">
              <el-form-item v-show="HIsShow" label="业务员" prop="HEmpName">
                <el-input v-model="form.HEmpName" placeholder="请选择" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4,empType=1)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="主管" prop="HMangerName">
              <el-form-item v-show="HIsHide" label="主管" prop="HMangerName">
                <el-input v-model="form.HMangerName" 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 :span="6">
              <el-form-item label="验收员" prop="HSecManagerName">
              <el-form-item v-show="HIsShow" label="验收员" prop="HSecManagerName">
                <el-input v-model="form.HSecManagerName" placeholder="请选择" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4,empType=3)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="保管员" prop="HKeeperName">
              <el-form-item v-show="HIsShow" label="保管员" prop="HKeeperName">
                <el-input v-model="form.HKeeperName" placeholder="请选择" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4,empType=4)"></el-button>
                </el-input>
@@ -112,12 +112,12 @@
          </el-row>
          <el-row>
            <el-col :span="12">
              <el-form-item label="摘要" prop="HExplanation">
              <el-form-item v-show="HIsShow" label="摘要" prop="HExplanation">
                <el-input v-model="form.HExplanation" placeholder="请输入摘要" />
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="备注" prop="HRemark">
              <el-form-item v-show="HIsShow" label="备注" prop="HRemark">
                <el-input v-model="form.HRemark" placeholder="请输入备注" />
              </el-form-item>
            </el-col>
@@ -126,47 +126,47 @@
        <el-tab-pane label="制单信息" name="third">
          <el-row>
            <el-col :span="6">
              <el-form-item label="制单人" prop="HMaker">
              <el-form-item v-show="HIsShow" label="制单人" prop="HMaker">
                <el-input v-model="form.HMaker" placeholder="请输入制单人" disabled />
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="修改人" prop="HUpDater">
              <el-form-item v-show="HIsShow" label="修改人" prop="HUpDater">
                <el-input v-model="form.HUpDater" placeholder="请输入修改人" disabled />
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="审核人" prop="HChecker">
              <el-form-item v-show="HIsShow" label="审核人" prop="HChecker">
                <el-input v-model="form.HChecker" placeholder="请输入审核人" disabled />
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="关闭人" prop="HCloseMan">
              <el-form-item v-show="HIsShow" label="关闭人" prop="HCloseMan">
                <el-input v-model="form.HCloseMan" placeholder="请输入关闭人" disabled />
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="制单日期" prop="HMakeDate">
              <el-form-item v-show="HIsShow" label="制单日期" prop="HMakeDate">
                <el-date-picker v-model="form.HMakeDate" type="date" placeholder="选择制单日期" disabled>
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="修改日期" prop="HUpDateDate">
              <el-form-item v-show="HIsShow" label="修改日期" prop="HUpDateDate">
                <el-date-picker v-model="form.HUpDateDate" type="date" placeholder="选择审核日期" disabled>
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="审核日期" prop="HCheckDate">
              <el-form-item v-show="HIsShow" label="审核日期" prop="HCheckDate">
                <el-date-picker v-model="form.HCheckDate" type="date" placeholder="选择审核日期" disabled>
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="关闭日期" prop="HCloseDate">
              <el-form-item v-show="HIsShow" label="关闭日期" prop="HCloseDate">
                <el-date-picker v-model="form.HCloseDate" type="date" placeholder="选择关闭日期" disabled>
                </el-date-picker>
              </el-form-item>
@@ -174,14 +174,14 @@
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="作废人" prop="HDeleteMan">
              <el-form-item v-show="HIsShow" label="作废人" prop="HDeleteMan">
                <el-input v-model="form.HDeleteMan" placeholder="请输入作废人" disabled />
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="作废日期" prop="HDeleteDate">
              <el-form-item v-show="HIsShow" label="作废日期" prop="HDeleteDate">
                <el-date-picker v-model="form.HDeleteDate" type="date" placeholder="选择作废日期" disabled>
                </el-date-picker>
              </el-form-item>
@@ -201,6 +201,9 @@
              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_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>
@@ -232,6 +235,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 || 0 }}
            </template>
          </el-table-column>
            <el-table-column align="center" label="数量" width="120">
              <template slot-scope="scope">
                <el-input-number v-model="scope.row.HQty" :min="1" style="width: 90px;"
@@ -315,6 +323,8 @@
    <el-dialog title="隐藏列设置" :visible.sync="openRowHide" width="816px" append-to-body>
      <RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="rowSetClose" v-if="rowHideShow" />
    </el-dialog>
    <!-- 容器库存 -->
    <ICInventoryMould :visible.sync="ICInventoryMouldShow" ref="ICInventoryMould"/>
  </div>
</template>
@@ -328,11 +338,12 @@
import GyCustomer from '@/views/GyCustomer'
import GyMould from '@/views/scMould/basicModeling/Gy_MouldFileList.vue'
import GyStockPlace from '@/views/basic/gyStockPlace/gyStockPlace.vue'
import ICInventoryMould from '@/views/component/ICInventory_Mould'               //容器库存组件
import moment from 'moment';
export default {
  name: 'Sc_MouldMoveStockRequestBillEdit',
  components: { Dept, Warehouse, RowSettings, GyEmployee,GySupplier,GyCustomer,GyMould,GyStockPlace },
  components: { Dept, Warehouse, RowSettings, GyEmployee,GySupplier,GyCustomer,GyMould,GyStockPlace,ICInventoryMould},
  props: {
    OperationType: { type: Number, },//操作类型(1新增、2编辑、3复制、4下推)
    linterid: { type: Number, },
@@ -342,6 +353,8 @@
  },
  data() {
    return {
      HIsShow: true,
      HIsHide: false,
      HModName: "Sc_MouldMoveStockRequestBill",
      formShow: false,
      temp: undefined,
@@ -370,6 +383,7 @@
      organizationList: [],//组织列表
      subDisabled: false,//编辑页面保存按钮是否禁用(true禁用,false可用)
      // OperationType: this.$route.query.OperationType,//保存类型(新增1修改2)
      ICInventoryMouldShow:false, //容器库存组件显示标记
      HInterID: 0,
      baseURL: process.env.VUE_APP_BASE_API,
      checkedSysZb: [],
@@ -432,9 +446,6 @@
        HEmpName: [
          { required: true, message: "业务员不能为空", trigger: "blur" }
        ],
        HMangerName: [
          { required: true, message: "主管不能为空", trigger: "blur" }
        ],
        HSecManagerName: [
          { required: true, message: "验收员不能为空", trigger: "blur" }
        ],
@@ -450,7 +461,7 @@
  },
  methods: {
    fetchData() {
      axios.get(this.baseURL + "/Web/GetOrganizations", {
      axios.get(this.$baseUrl + "/Web/GetOrganizations", {
      }).then(response => {
        if (response.data.count == 1) {
          this.organizationList = response.data.data;//组织列表
@@ -515,10 +526,20 @@
            this.form.HWHName = deptRow.仓库名称
            this.form.HWHID = deptRow.HItemID
            this.form.HWHNumber = deptRow.仓库代码
            for (let 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 (let 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.仓库代码
@@ -616,27 +637,27 @@
        HSCWHName:'',
        HSCWHNumber:'',
        HSCWHID:0,
        HEmpName:'',
        HEmpID:'',
        HEmpName:sessionStorage["HSellMan"],
        HEmpID:sessionStorage["HSellManID"],
        HMangerName:'',
        HMangerID:'',
        HSecManagerName:'',
        HSecManagerID:'',
        HKeeperName:'',
        HKeeperID:'',
        HMangerID:0,
        HSecManagerName:sessionStorage["HCheckEmpName"],
        HSecManagerID:sessionStorage["HCheckEmpID"],
        HKeeperName:sessionStorage["HKeeper"],
        HKeeperID:sessionStorage["HKeeperID"],
        HExplanation:'',
        HRemark:'',
        HMaker: '',
        HUpDater: '',
        HChecker: '',
        HMakeDate: new Date(),
        HUpDateDate: '',
        HCheckDate: '',
        HMakeDate: moment(new Date()).format('YYYY-MM-DD hh:mm:ss'),
        HUpDateDate: moment(new Date()).format('YYYY-MM-DD hh:mm:ss'),
        HCheckDate: moment(new Date()).format('YYYY-MM-DD hh:mm:ss'),
        HCloseMan: '',
        HDeleteMan: '',
        HCloseDate: '',
        HDeleteDate: '',
        HCloseDate: moment(new Date()).format('YYYY-MM-DD hh:mm:ss'),
        HDeleteDate: moment(new Date()).format('YYYY-MM-DD hh:mm:ss'),
      }
      this.editData = []
      this.editData1 = []
@@ -675,7 +696,7 @@
    },
    //根据用户获取对应职员、部门、销售主管
    getCzyglByUser() {
      axios.get(this.baseURL + '/Xs_SeOrderBill/getCzyglByUser', {
      axios.get(this.$baseUrl + '/Xs_SeOrderBill/getCzyglByUser', {
        params: { "CurUserName": sessionStorage["HUserName"] }
      }).then(response => {
        let dataForm = response.data.data[0]
@@ -693,7 +714,7 @@
      //新增获取单据号
      this.getHBillNo()
      let date = new Date()
      this.form.HDate = moment(date).format('YYYY-MM-DDTHH:mm:ss')
      this.form.HDate = moment(date).format('YYYY-MM-DD')
      if (this.OperationType == 1) {
        this.handleAddSysZb()
      }
@@ -703,7 +724,7 @@
      })
    },
    getHBillNo() {
      axios.get(this.baseURL + "/WEBSController/GetMaxBillNo_Json", {
      axios.get(this.$baseUrl + "/WEBSController/GetMaxBillNo_Json", {
        params: {
          HBillType: '3850'
        }
@@ -718,12 +739,97 @@
      });
    },
    /** 修改按钮操作 */
      //#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
    handleUpdate() {
      this.reset()
      let rowHmainid = this.linterid
      console.log(this.linterid)
      //主表
      axios.get(this.baseURL + "/Sc_MouldMoveStockRequestBillController/GetSc_MouldMoveStockRequestBill_Json", {
      axios.get(this.$baseUrl + "/Sc_MouldMoveStockRequestBillController/GetSc_MouldMoveStockRequestBill_Json", {
        params: { 'HInterID': rowHmainid,'HMaker':sessionStorage["HUserName"] }
      }).then(response => {
        if (response.data.count == 1) {
@@ -733,7 +839,7 @@
          if (this.copyType == 1) {
            this.getHBillNo()
            let date = new Date()
            this.form.HDate = moment(date).format('YYYY-MM-DDTHH:mm:ss')
            this.form.HDate = moment(date).format('YYYY-MM-DD')
          } else {
            this.form = {
                  "HBillNo": data.单据号
@@ -980,6 +1086,21 @@
        this.$refs.zbTable.toggleRowSelection(del_row, false) //设置这一行取消选中
      }
    },
    //#region 查看容器库存
    get_ICInventoryMould(zbSelForm) {
      if (!this.zbIndex) {
        this.$modal.msgError("请选择一行数据")
      } else {
        var index = zbSelForm.index-1;
        this.ICInventoryMouldShow = true
        this.$nextTick(() => {
          this.$refs.ICInventoryMould.open(this.editData[index]);
        })
      }
    },
    //#endregion
    // 编辑提交保存
    submitForm() {
      this.$refs["form"].validate(valid => {
@@ -1014,7 +1135,7 @@
              var sMainSub = sMainStr + ';' + sSubStr + ';' + Operation + ";" + sessionStorage["HUserName"];
              axios({
                method: 'post',
                url: this.baseURL + "/Sc_MouldMoveStockRequestBillController/GetSc_MouldMoveStockRequestBill_Save_Json",
                url: this.$baseUrl + "/Sc_MouldMoveStockRequestBillController/GetSc_MouldMoveStockRequestBill_Save_Json",
                data: {
                  'sMainSub': sMainSub
                },
@@ -1043,7 +1164,7 @@
    set_CheckBill(num, form) {
      var InterID = form.hmainid || form.HInterID
      //逻辑审核方法
      axios.get(this.baseURL + "/Sc_MouldMoveStockRequestBillController/GetSc_MouldMoveStockRequestBill_Check_Json", {
      axios.get(this.$baseUrl + "/Sc_MouldMoveStockRequestBillController/GetSc_MouldMoveStockRequestBill_Check_Json", {
        params: { "HInterID": InterID, "Type": num, "HMaker": sessionStorage["HUserName"] }
      }).then(response => {
        let result = response.data