chenhaozhe
2025-11-27 cc33c00a94f0c74c769abf052f32709f56f222cd
src/views/warehouse/transfer/Kf_MoveStockRequestBillEdit.vue
@@ -1 +1,923 @@
<template></template>
<template>
  <div v-loading="formLoading" v-if="formShow">
    <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="close">退 出</el-button>
      <!-- <el-button @click="cancel">取 消</el-button> -->
    </div>
    <div style="margin: 10px; font-size: 28px; font-weight: bold; text-align: center;">调拨申请单</div>
    <el-form ref="form" :model="form" :rules="rules" label-width="90px">
      <el-tabs v-model="activeName" type="card">
        <el-tab-pane label="基本信息" name="first">
          <el-row>
            <el-col :span="6">
              <el-form-item 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-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="辅助字段" prop="HInnerBillNo">
                <el-input v-model="form.HInnerBillNo" placeholder="" disabled/>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="往来单位" prop="HSupName">
                <el-input v-model="form.HSupName" placeholder="请选择往来单位" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(6)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item 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-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-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-input v-model="form.HKeeperName" placeholder="请选择" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4,empType=4)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item 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-input v-model="form.HSCWHName" placeholder="请选择调出仓库" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(2,eHWHType=2)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="部门" prop="HDeptName">
                <el-input v-model="form.HDeptName" placeholder="请选择部门" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(1)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="备注" prop="HRemark">
                <el-input v-model="form.HRemark" placeholder="请输入备注" />
              </el-form-item>
            </el-col>
          </el-row>
        </el-tab-pane>
        <el-tab-pane label="制单信息" name="third">
          <el-row>
            <el-col :span="6">
              <el-form-item 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-input v-model="form.HUpDater" placeholder="请输入修改人" disabled />
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item 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-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-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-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-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-date-picker v-model="form.HCloseDate" type="date" placeholder="选择关闭日期" disabled>
                </el-date-picker>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item 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-date-picker v-model="form.HDeleteDate" type="date" placeholder="选择作废日期" disabled>
                </el-date-picker>
              </el-form-item>
            </el-col>
          </el-row>
        </el-tab-pane>
      </el-tabs>
      <el-tabs v-model="activeName1" type="border-card">
        <el-tab-pane label="明细信息" name="first">
          <div style="margin-bottom: 10px;">
            <el-button type="success" plain icon="el-icon-plus" @click="handleAddSysZb()" size="mini">增加一行</el-button>
            <el-button type="success" plain icon="el-icon-plus" @click="handleAddSysZb(zbIndex, 1)"
              size="mini">插入一行</el-button>
            <el-button type="success" plain icon="el-icon-plus" @click="handleCopyZbRow" size="mini">复制一行</el-button>
            <el-button type="success" plain icon="el-icon-arrow-up" @click="handleMoveRowUp(zbSelForm)"
              size="mini">上移</el-button>
            <el-button type="success" plain icon="el-icon-arrow-down" @click="handleMoveRowDown(zbSelForm)"
              size="mini">下移</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>
            <el-table-column type="selection" width="55" align="center" />
            <el-table-column align="center" label="序号" type="index" width="80" />
            <el-table-column align="center" label="物料代码" width="120">
              <template slot-scope="scope">
                <el-input v-model="scope.row.HMaterID" placeholder="请输入" @keyup.native.f7="openDataDialog(3, scope.row)"
                  @dblclick.native="openDataDialog(3, scope.row)" />
              </template>
            </el-table-column>
            <el-table-column align="center" label="物料名称" width="120">
              <template slot-scope="scope">
                <span>{{ scope.row.物料名称 }}</span>
              </template>
            </el-table-column>
            <el-table-column align="center" label="规格型号" width="120">
              <template slot-scope="scope">
                <span>{{ scope.row.规格型号 }}</span>
              </template>
            </el-table-column>
            <el-table-column align="center" label="计量单位" width="120">
              <template slot-scope="scope">
                <span>{{ scope.row.计量单位 }}</span>
              </template>
            </el-table-column>
            <el-table-column align="center" label="换算率" width="120">
              <template slot-scope="scope">
                <span>{{ scope.row.HSecUnitRate }}</span>
              </template>
            </el-table-column>
            <el-table-column align="center" label="辅助计量单位" width="120">
              <template slot-scope="scope">
                <span>{{ scope.row.辅助计量单位 }}</span>
              </template>
            </el-table-column>
            <el-table-column align="center" label="应收数量" width="120">
              <template slot-scope="scope">
                <span>{{ scope.row.HQtyMust }}</span>
              </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;"
                  controls-position="right"></el-input-number>
              </template>
            </el-table-column>
            <el-table-column align="center" label="单价" width="120">
              <template slot-scope="scope">
                <el-input v-model="scope.row.HPrice" placeholder="请输入" />
              </template>
            </el-table-column>
            <el-table-column align="center" label="金额" width="120">
              <template slot-scope="scope">
                <el-input v-model="scope.row.HMoney" placeholder="请输入" />
              </template>
            </el-table-column>
            <el-table-column align="center" label="调出单价" width="120">
              <template slot-scope="scope">
                <el-input v-model="scope.row.HOutPrice" placeholder="请输入" />
              </template>
            </el-table-column>
            <el-table-column align="center" label="调出金额" width="120">
              <template slot-scope="scope">
                <el-input v-model="scope.row.HOutMoney" placeholder="请输入" />
              </template>
            </el-table-column>
            <el-table-column align="center" label="调入仓库" width="120">
              <template slot-scope="scope">
                <el-input v-model="scope.row.调入仓库" placeholder="请输入" @keyup.native.f7="openDataDialog(2, scope.row ,eHWHType=3)"
                  @dblclick.native="openDataDialog(2, scope.row ,eHWHType=3)" />
              </template>
            </el-table-column>
            <el-table-column align="center" label="调出仓库" width="120">
              <template slot-scope="scope">
                <el-input v-model="scope.row.调出仓库" placeholder="请输入" @keyup.native.f7="openDataDialog(2, scope.row ,eHWHType=4)"
                  @dblclick.native="openDataDialog(2, scope.row ,eHWHType=4)" />
              </template>
            </el-table-column>
            <el-table-column align="center" label="基本计量单位" width="120">
              <template slot-scope="scope">
                <span>{{ scope.row.基本计量单位 }}</span>
              </template>
            </el-table-column>
            <el-table-column align="center" label="辅单位" width="120">
              <template slot-scope="scope">
                <span>{{ scope.row.辅单位 }}</span>
              </template>
            </el-table-column>
            <el-table-column align="center" label="备注" width="120">
              <template slot-scope="scope">
                <el-input v-model="scope.row.HRemark" placeholder="请输入备注" />
              </template>
            </el-table-column>
            <el-table-column align="center" label="操作" width="55" fixed="right">
              <template slot-scope="scope">
                <el-button type="danger" icon="el-icon-delete" size="mini" circle
                  @click="handleDeleteSysZb(scope.row)"></el-button>
              </template>
            </el-table-column>
          </el-table>
        </el-tab-pane>
      </el-tabs>
    </el-form>
    <!-- 弹窗 -->
    <el-dialog :title="dialogTitle" :visible.sync="openData" width="1280px" append-to-body>
      <Dept @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="deptShow" />
      <Warehouse @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="warehouseShow" />
      <GyEmployee @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyEmployeeShow" />
      <GySupplier @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gySupplierShow" />
      <Material @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="materialShow" />
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="deptClickSub">确 定</el-button>
        <el-button @click="deptClose">取 消</el-button>
      </div>
    </el-dialog>
    <el-dialog title="隐藏列设置" :visible.sync="openRowHide" width="816px" append-to-body>
      <RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="rowSetClose" v-if="rowHideShow" />
    </el-dialog>
  </div>
</template>
<script>
import axios from 'axios'
import RowSettings from '@/views/component/rowSettings'
import GyEmployee from '@/views/basic/gyEmployee/gyEmployee.vue'
import Dept from '@/views/basic/gy/gyDepartment'
import Warehouse from '@/views/basic/gyWarehouse/gyWarehouse.vue'
import GySupplier from '@/views/basic/gy/gySupplier.vue'
import Material from '@/views/gyMaterial/GyMaterial.vue'
import moment from 'moment';
export default {
  name: 'Kf_MoveStockRequestBillEdit',
  components: { Dept, Warehouse, RowSettings, GyEmployee,GySupplier,Material },
  props: {
    OperationType: { type: Number, },
    linterid: { type: Number, },
    HSouceBillType: { type: String, },
    propsData: { type: String, },
    copyType: { type: Number, },
  },
  data() {
    return {
      HModName: "Kf_MoveStockRequestBillEdit",
      formShow: false,
      temp: undefined,
      formLoading: true,
      rowHideShow: false,
      openRowHide: false,
      addBtnShow: false,
      zbIndex: null,
      zbSelForm: {},//子表选中数据
      dialogTypeNum: null,//部门弹窗1,仓库弹窗2
      deptShow: false,//部门数据组件
      warehouseShow: false,//仓库数据组件
      gyEmployeeShow: false,//销售员数据组件
      gySupplierShow: false,//供应商数据组件
      materialShow: false,//物料数据组件
      eHWHType:1,//仓库弹窗区分标志
      empType:1,//职员弹窗区分标志
      deptform: {},//弹窗选中数据
      openData: false,//数据弹窗
      dialogTitle: '',
      organizationList: [],//组织列表
      subDisabled: false,//编辑页面保存按钮是否禁用(true禁用,false可用)
      // OperationType: this.$route.query.OperationType,//保存类型(新增1修改2)
      HInterID: 0,
      baseURL: process.env.VUE_APP_BASE_API,
      checkedSysZb: [],
      editData: [],//子表
      editData1: [],//汇总子表
      editBtData: [],//子表表头
      allVal:[],
      activeName: 'first',
      activeName1:'first',
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 日期范围
      dateRange: [],
      // 查询参数
      queryParams: {
        HBillNo: '',
        HInitTimeCycle: 29,
        HProjectNumber: '',
        HCusID: null,
        HMaterNumber: '',
        HMaterName: '',
        ColName1: '',
        ColName2: '',
        ColName: '',
        Comparator1: '',
        Comparator2: '',
        Comparator: '',
        ColContent1: '',
        ColContent2: '',
        ColContent: '',
      },
      // 显示搜索条件
      showSearch: true,
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 遮罩层
      loading: true,
      btResList: [],
      // 表单参数
      form: {},
      // 表单校验
      rules: {
        HDate: [
          { required: true, message: "日期不能为空", trigger: "blur" }
        ],
        HSupName: [
          { required: true, message: "往来单位不能为空", trigger: "blur" }
        ],
        HEmpName: [
          { required: true, message: "业务员不能为空", trigger: "blur" }
        ],
        HMangerName: [
          { required: true, message: "主管不能为空", trigger: "blur" }
        ],
        HSecManagerName: [
          { required: true, message: "验收员不能为空", trigger: "blur" }
        ],
        HKeeperName: [
          { required: true, message: "保管员不能为空", trigger: "blur" }
        ],
        HWHName: [
          { required: true, message: "调入仓库不能为空", trigger: "blur" }
        ],
        HSCWHName: [
          { required: true, message: "调出仓库不能为空", trigger: "blur" }
        ],
        HDeptName: [
          { required: true, message: "部门不能为空", trigger: "blur" }
        ],
      }
    };
  },
  created() {
    this.fetchData()
    this.getdata()
  },
  methods: {
    fetchData() {
      axios.get(this.baseURL + "/Web/GetOrganizations", {
      }).then(response => {
        if (response.data.count == 1) {
          this.organizationList = response.data.data;//组织列表
        }
      }).catch(error => {
        this.$modal.msgError("接口请求失败!");
      });
    },
    getdata() {
      console.log(this.copyType, this.OperationType)
      this.formShow = false
      this.formLoading = true
      if ((this.OperationType == 1 && this.copyType != 1) || (!this.OperationType && !this.copyType)) {
        this.handleAdd()
      } else if (this.OperationType == 3 || this.copyType == 1) {
        this.handleUpdate()
      }
    },
    // 获取参数_传递的JSON格式参数
    getUrlVars_JSON() {
      var datajson;
      var str = this.propsData; //获取链接中传递的参数
      var arr = str.substring(str.lastIndexOf("=") + 1);
      datajson = JSON.parse(decodeURI(arr));
      return datajson;
    },
    handleRowHide() {
      this.rowHideShow = true
      this.openRowHide = true
    },
    rowSetClose(val) {
      this.rowHideShow = false
      this.openRowHide = val
    },
    HStockOrgChange(val) {
      console.log(549,val,this.zbIndex)
      console.log(this.organizationList)
      // let options=undefined
      //  this.form=this.organizationList.find(option => option.ID === val)?.Name || '';
    },
    //弹窗赋值
    dbEmitData(deptRow, num) {
      // num=1部门 num=2仓库
      console.log(deptRow)
      if (deptRow.HItemID || deptRow.hmainid) {
        if (num == 1) {
          this.form.HDeptName = deptRow.部门名称
          this.form.HDeptID = deptRow.HItemID
          this.deptShow = false
          this.openData = false
        } else if (num == 2) {
          if(this.eHWHType == 1){
            this.form.HWHName = deptRow.仓库名称
            this.form.HWHID = deptRow.HItemID
          }else if(this.eHWHType == 2){
            this.form.HSCWHName = deptRow.仓库名称
            this.form.HSCWHID = deptRow.HItemID
          }else if(this.eHWHType == 3){
            this.editData[this.zbIndex].HWHID = deptRow.HItemID
            this.editData[this.zbIndex].调入仓库 = deptRow.仓库名称
          }else if(this.eHWHType == 4){
            this.editData[this.zbIndex].HSCWHID = deptRow.HItemID
            this.editData[this.zbIndex].调出仓库 = deptRow.仓库名称
          }
          this.warehouseShow = false
          this.openData = false
        } else if (num == 3){
            this.editData[this.zbIndex].HMaterID = deptRow.HItemID
            this.editData[this.zbIndex].物料代码 = deptRow.物料代码
            this.editData[this.zbIndex].物料名称 = deptRow.物料名称
            this.editData[this.zbIndex].规格型号 = deptRow.规格型号
            this.materialShow = false
            this.openData = false
        } else if (num == 4) {
          if(this.empType == 1){
            this.form.HEmpName = deptRow.职员名称
            this.form.HEmpID = deptRow.HItemID
          }else if(this.empType == 2){
            this.form.HMangerName = deptRow.职员名称
            this.form.HMangerID = deptRow.HItemID
          }else if(this.empType == 3){
            this.form.HSecManagerName = deptRow.职员名称
            this.form.HSecManagerID = deptRow.HItemID
          }else if(this.empType == 4){
            this.form.HKeeperName = deptRow.职员名称
            this.form.HKeeperID = deptRow.HItemID
          }else
          this.gyEmployeeShow = false
          this.openData = false
        } else if (num == 6) {
          this.form.HSupName = deptRow.供应商名称
          this.form.HSupID = deptRow.HItemID
          this.gySupplierShow = false
          this.openData = false
        }
      } else {
        this.$modal.msgError("请选择单条数据!");
      }
    },
    emitData(deptRow, num) {
      this.dialogTypeNum = num
      this.deptform = deptRow
    },
    deptClickSub() {
      this.dbEmitData(this.deptform, this.dialogTypeNum)
      this.deptform = {}
    },
    deptClose() {
      this.deptform = {}
      this.openData = false
    },
    //表单初始化
    reset() {
      this.form = {
        HBillNo: '',
        HInterID: 0,
        HDate: new Date(),
        HSupTypeID:1,
        HSupName:'',
        HSupID:0,
        HDeptName: sessionStorage["HDept"] || '',
        HDeptID: sessionStorage["HDeptID"] || 0,
        HWHName:'',
        HWHID:0,
        HSCWHName:'',
        HSCWHID:0,
        HEmpName:'',
        HEmpID:'',
        HMangerName:'',
        HMangerID:'',
        HSecManagerName:'',
        HSecManagerID:'',
        HKeeperName:'',
        HKeeperID:'',
        HExplanation:'',
        HRemark:'',
        HMaker: '',
        HUpDater: '',
        HChecker: '',
        HMakeDate: new Date(),
        HUpDateDate: '',
        HCheckDate: '',
        HCloseMan: '',
        HDeleteMan: '',
        HCloseDate: '',
        HDeleteDate: '',
      }
      this.editData = []
      this.editData1 = []
      this.editBtData = []
      this.ids = []
      this.subDisabled = false
      this.addBtnShow = false
      // this.$refs.tableData.clearSelection()
      this.activeName = 'first'
      this.activeName1 = 'first'
      this.resetForm("form");
    },
    //退出
    close() {
      this.reset()
      console.log(this.$route.path)
      if (!this.OperationType && !this.copyType) {
        console.log(this.$route.path)
        const obj = { fullPath: this.$route.path, path: this.$route.path, name: this.$route.name, };
        this.$tab.closePage(obj).then(res => {
          const latestView = res.visitedViews.slice(-1)[0]
          if (latestView) {
            this.$router.push(latestView.fullPath)
          } else {
            if (obj.name === 'Dashboard') {
              this.$router.replace({ path: '/redirect' + obj.fullPath })
            } else {
              this.$router.push('/')
            }
          }
        });
      } else {
        this.formShow = false
        this.$emit('editClose', false)
      }
    },
    //根据用户获取对应职员、部门、销售主管
    getCzyglByUser() {
        if(this.form.HDeptID && this.form.HDeptID!=0){
            axios.get(this.baseURL + '/Gy_Department/list', {
                params: { "sWhere": "and HItemID = '" + this.form.HDeptID + "'", "user": sessionStorage["HUserName"], "Organization": sessionStorage["Organization"] }
            }).then(response => {
                let dataForm = response.data.data[0]
                this.form.HMangerID = dataForm.HEmpID
                this.form.HMangerName = dataForm.负责人
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
        }
    },
    /** 新增按钮操作 */
    handleAdd() {
      this.reset()
      //新增获取单据号
      this.getHBillNo()
      let date = new Date()
      this.form.HDate = moment(date).format('YYYY-MM-DDTHH:mm:ss')
      if (this.OperationType == 1) {
        this.handleAddSysZb()
      }
      this.$nextTick(() => {
        this.formShow = true
        this.formLoading = false
      })
    },
    getHBillNo() {
      axios.get(this.baseURL + "/Web/GetMAXNum", {
        params: {
          HBillType: '1243'
        }
      }).then(response => {
        this.form.HMaker = sessionStorage["HUserName"]
        this.form.HBillNo = response.data.data[0].HBillNo
        this.form.HInterID = response.data.data[0].HInterID
        this.getCzyglByUser()
      }).catch(error => {
        this.$modal.msgError("接口请求失败!");
      });
    },
    /** 修改按钮操作 */
    handleUpdate() {
      this.reset()
      let rowHmainid = this.linterid
      console.log(this.linterid)
      //主表
      axios.get(this.baseURL + "/Kf_MoveStockRequestBill/cx", {
        params: { 'HInterID': rowHmainid }
      }).then(response => {
        if (response.data.count == 1) {
          var result = response.data
          var data = response.data.data
          console.log(result,data)
          if (this.copyType == 1) {
            this.getHBillNo()
            let date = new Date()
            this.form.HDate = moment(date).format('YYYY-MM-DDTHH:mm:ss')
          } else {
            this.allVal = data[0]
            this.form = {
                "HBillNo": data[0].单据号
                , "HDate": data[0].日期
                , "HDeptName": data[0].部门
                , "HDeptID": data[0].HDeptID
                , "HSupID": data[0].HSupID
                , "HSupName": data[0].往来单位
                , "HEmpID": data[0].HEmpID
                , "HEmpName": data[0].业务员
                , "HMangerName": data[0].主管
                , "HMangerID": data[0].HMangerID
                , "HSecManagerName": data[0].验收员
                , "HSecManagerID": data[0].HSecManagerID
                , "HKeeperName": data[0].保管员
                , "HKeeperID": data[0].HKeeperID
                , "HWHID": data[0].主调入仓库ID
                , "HWHName": data[0].主调入仓库
                , "HSCWHID": data[0].主调出仓库ID
                , "HSCWHName": data[0].主调出仓库
                , "HInnerBillNo": data[0].辅助字段
                , "HRemark": data[0].表头备注
                , "HMaker": data[0].制单人
                , "HChecker": data[0].审核人
                , "HCloseMan": data[0].关闭人
                , "HMakeDate": data[0].制单日期
                , "HCheckDate": data[0].审核日期
                , "HCloseDate": data[0].关闭日期
                , "HUpDateDate": data[0].修改日期
                , "HDeleteDate": data[0].作废日期
            }
            //子表
            var rowdata = [];
            for (let i = 0; i < data.length; i++) {
              rowdata.push(
                  {
                    "HMaterID": data[i].HMaterID, "物料代码": data[i].物料代码, "物料名称": data[i].物料名称, "规格型号": data[i].规格型号,
                    "HUnitID": data[i].HUnitID, "计量单位": data[i].计量单位, "HSecUnitRate": data[i].换算率,
                    "HSecUnitID": data[i].HSecUnitID, "辅助计量单位": data[i].辅助计量单位
                    , "HQtyMust": data[i].应收数量, "HQty": data[i].实收数量, "HRemark": data[i].表体备注
                    , "HPrice": data[i].单价, "HMoney": data[i].金额, "HOutPrice": data[i].调出单价, "HOutMoney": data[i].调出金额
                    , "HWHID": data[i].HWHID, "调入仓库": data[i].调入仓库, "HSCWHID": data[i].HSCWHID, "调出仓库": data[i].调出仓库,
                    "HBASEUNITID": data[i].HBASEUNITID, "基本计量单位": data[i].基本计量单位,
                    "HEXTAUXUNITID": data[i].HEXTAUXUNITID, "辅单位": data[i].辅单位
                  }
              )
            }
            this.editData = rowdata
          }
          this.formShow = true
          this.formLoading = false
        }
      }).catch(error => {
        console.log(error)
        this.$modal.msgError("接口请求失败!");
      });
    },
    /** 子表明细序号 */
    rowSysZbIndex({ row, rowIndex }) {
      row.index = rowIndex + 1;
    },
    /** 编辑页子表添加按钮操作 */
    handleAddSysZb(index, num) {
      if (num == 1 && !index) {
        this.$modal.msgError("请选择一行数据编辑!");
      } else {
        let obj = {
            "HMaterID": 0, "物料代码": "", "物料名称": "", "规格型号": "", "HUnitID": 0, "计量单位": "", "HSecUnitRate": "0",
            "HSecUnitID": "0", "辅助计量单位": "", "HQtyMust": "0", "HQty": "0", "HPrice": "0", "HMoney": "0",
            "HOutPrice": "0", "HOutMoney": "0", "HWHID": "0", "调入仓库": "", "HSCWHID": "0", "调出仓库": "",
            "HBASEUNITID": "0", "基本计量单位": "", "HEXTAUXUNITID": "0", "辅单位": "","HRemark": ""}
        if (index) {
          this.editData.splice(index, 0, obj);
          this.$set(this.editData, index, obj)
        } else {
          this.editData.push(obj);
        }
      }
    },
    handleCopyZbRow() {
      if (!this.zbIndex) {
        this.$modal.msgError("请选择一行数据")
      } else {
        let copyRow = JSON.parse(JSON.stringify(this.zbSelForm))
        this.editData.push(copyRow);
      }
    },
    handleMoveRowUp(zbSelForm) {
      if (!this.zbIndex) {
        this.$modal.msgError("请选择一行数据")
      } else {
        if (zbSelForm.index == 1) {
          this.$modal.msgError("第一行数据无法上移");
        } else { // 确保不是第一行
          let num = zbSelForm.index - 1
          const record = this.editData.splice(num, 1)[0];
          this.editData.splice(num - 1, 0, record);
        }
      }
    },
    handleMoveRowDown(zbSelForm) {
      if (!this.zbIndex) {
        this.$modal.msgError("请选择一行数据")
      } else {
        if (zbSelForm.index == this.editData.length) {
          this.$modal.msgError("最后一行数据无法下移");
        } else { // 确保不是第一行
          let num = zbSelForm.index - 1
          const record = this.editData.splice(num, 1)[0];
          this.editData.splice(num + 1, 0, record);
        }
      }
    },
    /** 编辑页子表删除按钮操作 */
    handleDeleteSysZb(row) {
      this.checkedSysZb = []
      this.checkedSysZb.push(row.index)
      if (this.checkedSysZb.length == 0) {
        this.$modal.msgError("请先选择要删除的商品订单明细数据");
      } else {
        const editData = this.editData;
        const checkedSysZb = this.checkedSysZb;
        this.editData = editData.filter(function (item) {
          return checkedSysZb.indexOf(item.index) == -1
        });
      }
    },
    /** 编辑页子表复选框选中数据 */
    handleTableZbEdit(selection) {
      this.checkedSysZb = selection.map(item => item.index)
      this.zbSelForm = selection[0]
      this.zbIndex = this.checkedSysZb[0]
      if (selection.length > 1) {
        const del_row = selection.shift()
        this.$refs.zbTable.toggleRowSelection(del_row, false) //设置这一行取消选中
      }
    },
    // 编辑提交保存
    submitForm() {
      this.$refs["form"].validate(valid => {
        if (valid) {
          let fhck = false
          if(this.editData.length == 0){
              fhck = true
              this.$modal.msgError("没有物料明细记录!");
          }
          this.editData.map((item, index) => {
            if (!item.HMaterID) {
              fhck = true
              this.$modal.msgError("第" + (index + 1) + "行:器具未选择!");
            }else if(!item.HQty || item.HQty == 0){
              fhck = true
              this.$modal.msgError("第" + (index + 1) + "行:数量不能为0!");
            }
          })
          this.$nextTick(() => {
            if (!fhck) {
              var Operation = null
              if(!this.OperationType){
                Operation = 1
              }else{
                Operation = this.OperationType
                if(Operation == 3){
                  this.form.HInterID = this.linterid
                }
              }
              var sMainStr = JSON.stringify(this.form);
              var sSubStr = JSON.stringify(this.editData);
              var sAllStr = JSON.stringify(this.allVal);
              var sMainSub = sMainStr + ';' + sSubStr + ';' + Operation + ";" + sessionStorage["HUserName"] + ";" + sAllStr;
              axios({
                method: 'post',
                url: this.baseURL + "/Kf_MoveStockRequestBill/Kf_MoveStockRequestBillEdit",
                data: {
                  'sMainSub': sMainSub
                },
              }).then(response => {
                if (response.data.count == 1) {
                  this.subDisabled = true//设置保存按钮不可用
                  this.$modal.msgSuccess(response.data.Message);
                  this.addBtnShow = true
                  this.close()
                } else {
                  this.$modal.msgError(response.data.code + response.data.Message);
                }
              }).catch(error => {
                this.$modal.msgError("接口请求失败!");
              });
            }
          })
        }
      });
    },
    showReset() {
      this.deptShow = false
      this.warehouseShow = false
      this.gyEmployeeShow = false
      this.gySupplierShow = false
      this.materialShow = false
    },
    //  打开数据列表弹窗
    openDataDialog(num, row) {
      //num1部门,2出库仓库,3物料,4销售员
      if (row) {
        this.zbIndex = row.index - 1
      }
      this.showReset()
      if (num == 1) {
        this.dialogTitle = '部门列表'
        this.deptShow = true
        this.openData = true
      } else if (num == 2) {
        this.dialogTitle = '仓库列表'
        this.warehouseShow = true
        this.openData = true
      }  else if (num == 3) {
        this.dialogTitle = '物料列表'
        this.materialShow = true
        this.openData = true
      } else if (num == 4) {
        if(this.empType == 1){
          this.dialogTitle = '业务员列表'
        }else if(this.empType == 2){
          this.dialogTitle = '主管列表'
        }else if(this.empType == 3){
          this.dialogTitle = '验收员列表'
        }else if(this.empType == 4){
          this.dialogTitle = '保管员列表'
        }
        this.gyEmployeeShow = true
        this.openData = true
      } else if (num == 6) {
        this.dialogTitle = '供应商列表'
        this.gySupplierShow = true
        this.openData = true
      }
    },
  }
};
</script>
<style>
.xsckdBox .el-date-editor.el-input {
  width: 100%;
}
</style>