陈婷婷
2025-11-14 ad07784534869013cb499762f293474b85dd8e22
Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-VUEUI
1个文件已添加
8个文件已修改
1593 ■■■■■ 已修改文件
src/router/index.js 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/permission.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ICMO/ScICMOBillList.vue 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/purchase/cgPoInStockBill/cgPoInStockBill.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/purchase/cgPoOrderBill/cgPoOrderBill.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sell/XsSeOutStockBackBillList.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sell/XsSeOutStockBill.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sell/xsSeOrderBill/xsSeOrderBill.vue 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sell/xsSeOrderBill/xsSeOrderBillEdit.vue 1432 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js
@@ -234,25 +234,6 @@
      },
    ],
  },
  //部门列表
    {
    path: "/basic/gy/gyDepartment",
    component: Layout,
    hidden: true,
    redirect: "noredirect",
    meta: {
      breadcrumb: false, // 如果设置为false,则不会在breadcrumb面包屑中显示
      activeMenu: "/basic/gy/gyDepartment", // 当路由设置了该属性,则会高亮相对应的侧边栏。
    },
    children: [
      {
        path: "/basic/gy/gyDepartment",
        component: () => import("@/views/basic/gy/gyDepartment.vue"),
        name: "GyDepartment",
        meta: { title: "部门列表", activeMenu: "basic/gy" },
      },
    ],
  },
  // 销售订单
  {
    path: "/sales/seOrder/xsSeOrderBill",
@@ -272,7 +253,24 @@
      },
    ],
  },
  {
    path: "/sales/seOrder/xsSeOrderBillEdit",
    component: Layout,
    hidden: true,
    redirect: "noredirect",
    meta: {
      breadcrumb: false, // 如果设置为false,则不会在breadcrumb面包屑中显示
      activeMenu: "/sales/seOrder/xsSeOrderBillEdit", // 当路由设置了该属性,则会高亮相对应的侧边栏。
    },
    children: [
      {
        path: "/sales/seOrder/xsSeOrderBillEdit",
        component: () => import("@/views/sell/xsSeOrderBill/xsSeOrderBillEdit"),
        name: "XsSeOrderBillEdit",
        meta: { title: "销售订单编辑", activeMenu: "sales/seOrder" },
      },
    ],
  },
  // 采购订单
  {
    path: "/purchase/poOrder/cgPoOrderBill",
src/store/modules/permission.js
@@ -115,6 +115,19 @@
                    name: "XsSeOrderBill",
                    path: "xsSeOrderBill",
                  },
                  {
                    meta: {
                      icon: "build",
                      link: null,
                      noCache: false,
                      title: "销售订单",
                    },
                    component: () =>
                      import("@/views/sell/xsSeOrderBill/xsSeOrderBillEdit.vue"),
                    hidden: false,
                    name: "XsSeOrderBillEdit",
                    path: "xsSeOrderBillEdit",
                  },
                ],
              },
              {
src/views/ICMO/ScICMOBillList.vue
@@ -56,9 +56,9 @@
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="单据号" prop="HMaterNumber">
        <el-form-item label="单据号" prop="HBillNo">
          <el-input
            v-model="queryParams.HMaterNumber"
            v-model="queryParams.HBillNo"
            placeholder="请输入物料编码"
            @keyup.enter.native="handleQuery"
          />
@@ -597,7 +597,7 @@
      </el-dialog>
      <!-- 编辑 -->
      <el-dialog
        title="编辑职员"
        title="编辑生产订单"
        :visible.sync="openEdit"
        width="1480px"
        append-to-body
@@ -833,7 +833,14 @@
      btResList: [],
      tableData: [], //收料通知单列表(分页显示)
      dataList: [],
      titleData: ["HItemID", "Hprocid", "HUSEORGID", "HCREATEORGID", "HParentID"], //不需要显示的字段 可扩展
      titleData: [
        "HItemID",
        "hmainid",
        "Hprocid",
        "HUSEORGID",
        "HCREATEORGID",
        "HParentID",
      ], //不需要显示的字段 可扩展
      pageSizes: [50, 100, 500, 5000, 50000],
      page: 1,
      pageSize: 50,
@@ -1080,15 +1087,18 @@
      console.log(Organization);
      try {
        let res = await axios.get(this.baseURL + "/Xs_SeOutStockBill/list_byPage", {
          params: {
            sWhere: this.sWhere,
            user: this.user,
            Organization: Organization,
            page: this.page,
            size: this.pageSize,
          },
        });
        let res = await axios.get(
          this.baseURL + "/LEMS/MES_IF_ICMOBillList_Json_byPage",
          {
            params: {
              sWhere: this.sWhere,
              user: this.user,
              Organization: Organization,
              page: this.page,
              size: this.pageSize,
            },
          }
        );
        this.tyResList = [...JSON.parse(JSON.stringify(res.data.data))]; //总数据
        let data1 = res.data;
        let option = [];
@@ -1332,7 +1342,7 @@
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.HItemID)) {
      if (this.ids.includes(row.hmainid)) {
        return { background: "#ecf5ff" };
      }
    },
@@ -1344,7 +1354,7 @@
    // 多选框选中数据
    handleSelectionChange(selection) {
      // this.rowForm = {}
      this.ids = selection.map((item) => item.HItemID);
      this.ids = selection.map((item) => item.hmainid);
      this.single = selection.length != 1;
      this.multiple = !selection.length;
      if (!this.single) {
src/views/purchase/cgPoInStockBill/cgPoInStockBill.vue
@@ -713,7 +713,14 @@
      btResList: [],
      tableData: [], //收料通知单列表(分页显示)
      dataList: [],
      titleData: ["HItemID", "Hprocid", "HUSEORGID", "HCREATEORGID", "HParentID"], //不需要显示的字段 可扩展
      titleData: [
        "HItemID",
        "hmainid",
        "Hprocid",
        "HUSEORGID",
        "HCREATEORGID",
        "HParentID",
      ], //不需要显示的字段 可扩展
      pageSizes: [50, 100, 500, 5000, 50000],
      page: 1,
      pageSize: 50,
@@ -1148,7 +1155,7 @@
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.HItemID)) {
      if (this.ids.includes(row.hmainid)) {
        return { background: "#ecf5ff" };
      }
    },
@@ -1160,7 +1167,7 @@
    // 多选框选中数据
    handleSelectionChange(selection) {
      // this.rowForm = {}
      this.ids = selection.map((item) => item.HItemID);
      this.ids = selection.map((item) => item.hmainid);
      this.single = selection.length != 1;
      this.multiple = !selection.length;
      if (!this.single) {
src/views/purchase/cgPoOrderBill/cgPoOrderBill.vue
@@ -726,7 +726,14 @@
      btResList: [],
      tableData: [], //销售出库列表(分页显示)
      dataList: [],
      titleData: ["HItemID", "Hprocid", "HUSEORGID", "HCREATEORGID", "HParentID"], //不需要显示的字段 可扩展
      titleData: [
        "HItemID",
        "hmainid",
        "Hprocid",
        "HUSEORGID",
        "HCREATEORGID",
        "HParentID",
      ], //不需要显示的字段 可扩展
      pageSizes: [50, 100, 500, 5000, 50000],
      page: 1,
      pageSize: 50,
@@ -1163,7 +1170,7 @@
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.HItemID)) {
      if (this.ids.includes(row.hmainid)) {
        return { background: "#ecf5ff" };
      }
    },
@@ -1175,7 +1182,7 @@
    // 多选框选中数据
    handleSelectionChange(selection) {
      // this.rowForm = {}
      this.ids = selection.map((item) => item.HItemID);
      this.ids = selection.map((item) => item.hmainid);
      this.single = selection.length != 1;
      this.multiple = !selection.length;
      if (!this.single) {
src/views/sell/XsSeOutStockBackBillList.vue
@@ -729,7 +729,14 @@
      btResList: [],
      tableData: [], //收料通知单列表(分页显示)
      dataList: [],
      titleData: ["HItemID", "Hprocid", "HUSEORGID", "HCREATEORGID", "HParentID"], //不需要显示的字段 可扩展
      titleData: [
        "HItemID",
        "hmainid",
        "Hprocid",
        "HUSEORGID",
        "HCREATEORGID",
        "HParentID",
      ], //不需要显示的字段 可扩展
      pageSizes: [50, 100, 500, 5000, 50000],
      page: 1,
      pageSize: 50,
src/views/sell/XsSeOutStockBill.vue
@@ -736,7 +736,14 @@
      btResList: [],
      tableData: [], //收料通知单列表(分页显示)
      dataList: [],
      titleData: ["HItemID", "Hprocid", "HUSEORGID", "HCREATEORGID", "HParentID"], //不需要显示的字段 可扩展
      titleData: [
        "HItemID",
        "hmainid",
        "Hprocid",
        "HUSEORGID",
        "HCREATEORGID",
        "HParentID",
      ], //不需要显示的字段 可扩展
      pageSizes: [50, 100, 500, 5000, 50000],
      page: 1,
      pageSize: 50,
src/views/sell/xsSeOrderBill/xsSeOrderBill.vue
@@ -497,15 +497,15 @@
        class="xsckdBox"
        :before-close="close"
      >
        <edit
        <!-- <edit
          :OperationType="OperationType"
          :linterid="this.rowForm.HItemID"
          :linterid="this.rowForm.hmainid"
          :HSouceBillType="this.rowForm.HSourceBillType"
          :HOrgID="this.queryParams.HOrgID"
          :copyType="copyType"
          @editCloseGy="editGyClose"
          v-if="editShow"
        />
        /> -->
      </el-dialog>
      <el-dialog
        :title="upload.title"
@@ -720,7 +720,14 @@
      btResList: [],
      tableData: [], //收料通知单列表(分页显示)
      dataList: [],
      titleData: ["HItemID", "Hprocid", "HUSEORGID", "HCREATEORGID", "HParentID"], //不需要显示的字段 可扩展
      titleData: [
        "HItemID",
        "hmainid",
        "Hprocid",
        "HUSEORGID",
        "HCREATEORGID",
        "HParentID",
      ], //不需要显示的字段 可扩展
      pageSizes: [50, 100, 500, 5000, 50000],
      page: 1,
      pageSize: 50,
@@ -930,15 +937,16 @@
      // 收料通知单列表
      if (this.dateRange.length > 0) {
        this.sWhere +=
          " and CONVERT(varchar(100),日期, 23) >= '" + this.dateRange[0] + "'";
          " and CONVERT(varchar(100),日期, 23) >= ''" + this.dateRange[0] + "''";
        this.sWhere +=
          " and CONVERT(varchar(100),日期, 23) <= '" + this.dateRange[1] + "'";
          " and CONVERT(varchar(100),日期, 23) <= ''" + this.dateRange[1] + "''";
      }
      try {
        let res = await axios.get(this.baseURL + "Cg_POInStockBill/page", {
        let res = await axios.get(this.baseURL + "Xs_SeOrderBill/list_ByPage", {
          params: {
            sWhere: this.sWhere,
            user: this.user,
            Organization: sessionStorage["Organization"],
            page: this.page,
            size: this.pageSize,
          },
@@ -1186,7 +1194,7 @@
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.HItemID)) {
      if (this.ids.includes(row.hmainid)) {
        return { background: "#ecf5ff" };
      }
    },
@@ -1198,7 +1206,7 @@
    // 多选框选中数据
    handleSelectionChange(selection) {
      // this.rowForm = {}
      this.ids = selection.map((item) => item.HItemID);
      this.ids = selection.map((item) => item.hmainid);
      this.single = selection.length != 1;
      this.multiple = !selection.length;
      if (!this.single) {
src/views/sell/xsSeOrderBill/xsSeOrderBillEdit.vue
New file
@@ -0,0 +1,1432 @@
<template>
  <div v-loading="formLoading" v-if="formShow" style="padding: 20px">
    <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(0, 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="80px">
      <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="HMainSourceBillNo">
                <el-input
                  v-model="form.HMainSourceBillNo"
                  placeholder="请输入源单号"
                  disabled
                >
                  <el-button slot="append" icon="el-icon-search"></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"></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="HCusName">
                <el-input v-model="form.HCusName" placeholder="请输入客户" disabled>
                  <el-button slot="append" icon="el-icon-search"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="销售币别" prop="HCurName">
                <el-input v-model="form.HCurName" placeholder="请输入销售币别" disabled />
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="汇率" prop="HExRate">
                <el-input v-model="form.HExRate" placeholder="请输入汇率" disabled />
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="定金比例%" prop="HEarnestRate" :label-width="100">
                <el-select v-model="form.HEarnestRate" placeholder="请选择定金比例">
                  <el-option
                    v-for="(item, index) in [
                      {
                        label: '50%',
                        value: 50,
                      },
                      {
                        label: '100%',
                        value: 100,
                      },
                    ]"
                    :key="index"
                    :label="item.label"
                    :value="item.value"
                  ></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="销售订单类型" prop="HBillSubType" :label-width="120">
                <el-select v-model="form.HBillSubType" placeholder="请选择销售订单类型">
                  <el-option
                    v-for="(item, index) in [
                      {
                        label: '普通单据',
                        value: 0,
                      },
                      {
                        label: '返修单据',
                        value: 1,
                      },
                    ]"
                    :key="index"
                    :label="item.label"
                    :value="item.value"
                  ></el-option>
                </el-select>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="产品类型" prop="HProductType">
                <el-select v-model="form.HProductType" placeholder="请选择产品类型">
                  <el-option
                    v-for="(item, index) in [
                      {
                        label: '非样品',
                        value: '非样品',
                      },
                      {
                        label: '样品',
                        value: '样品',
                      },
                    ]"
                    :key="index"
                    :label="item.label"
                    :value="item.value"
                  ></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="结算方式" prop="HSSName">
                <el-input v-model="form.HSSName" placeholder="请选择结算方式">
                  <el-button slot="apppend" icon="el-icon-search"></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="请输入联系人">
                  <el-button slot="append" icon="el-icon-search"></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="请输入联系电话">
                  <el-button slot="append" icon="el-icon-search"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-form-item label="备注" prop="HRemark">
            <el-input v-model="form.HRemark" placeholder="请输入备注" />
          </el-form-item>
          <el-row>
            <el-col :span="6">
              <el-form-item label="客户余额" prop="HProjectNumber">
                <el-input
                  v-model="form.HProjectNumber"
                  placeholder="请输入项目代码"
                  disabled
                >
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="信用额度" prop="HProjectName">
                <el-input
                  v-model="form.HProjectName"
                  placeholder="请输入项目名称"
                  disabled
                />
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="可用额度" prop="HGroupName">
                <el-input v-model="form.HGroupName" placeholder="请输入班组" disabled>
                  <el-button slot="append" icon="el-icon-search"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="需求金额" prop="HWHName">
                <el-input v-model="form.HWHName" placeholder="请输入出库仓库">
                  <el-button slot="append" icon="el-icon-search"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="组织" prop="HWHName">
                <el-input v-model="form.HWHName" placeholder="请输入出库仓库">
                  <el-button slot="append" icon="el-icon-search"></el-button>
                </el-input>
              </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>
      <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.物料代码"
              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">
            <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-number
              v-model="scope.row.HPrice"
              :min="0"
              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">
            <span>{{ scope.row.HTaxPrice }}</span>
          </template>
        </el-table-column>
        <el-table-column align="center" label="税率" width="120">
          <template slot-scope="scope">
            <span>{{ scope.row.HTaxRate }}</span>
          </template>
        </el-table-column>
        <el-table-column align="center" label="金额" width="120">
          <template slot-scope="scope">
            <span>{{ scope.row.HPrice * scope.row.HQty }}</span>
          </template>
        </el-table-column>
        <el-table-column align="center" label="价税合计" width="120">
          <template slot-scope="scope">
            <span>{{ scope.row.HTaxPrice * scope.row.HQty }}</span>
          </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)"
              @dblclick.native="openDataDialog(2, scope.row)"
            />
          </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="120">
          <template slot-scope="scope">
            <span>{{ scope.row.HReqBuyQty }}</span>
          </template>
        </el-table-column>
        <el-table-column align="center" label="申请出库数量" width="120">
          <template slot-scope="scope">
            <span>{{ scope.row.HReqOutQty }}</span>
          </template>
        </el-table-column>
        <el-table-column align="center" label="当前库存" width="120">
          <template slot-scope="scope">
            <span>{{ scope.row.HCurrentInventory }}</span>
          </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-form>
    <!-- 部门弹窗 -->
    <el-dialog
      :title="dialogTitle"
      :visible.sync="openData"
      width="1280px"
      append-to-body
    >
      <Dept @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="deptShow" />
      <Warehouse @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="warehouseShow" />
      <Material @deptEmitDb="dbEmitData" @deptEmit="emitData" 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="Kf_SellOutBillList"
        @rowEditClose="rowSetClose"
        v-if="rowHideShow"
      />
    </el-dialog>
  </div>
</template>
<script>
import axios from "axios";
import Dept from "@/views/component/dept";
import Warehouse from "@/views/component/warehouse";
import Material from "@/views/component/material";
import RowSettings from "@/views/component/rowSettings";
import moment from "moment";
export default {
  name: "SellOutBill",
  components: { Dept, Warehouse, Material, RowSettings },
  props: {
    OperationType: { type: Number },
    linterid: { type: Number },
    HSouceBillType: { type: String },
    propsData: { type: String },
    copyType: { type: Number },
  },
  data() {
    return {
      formShow: false,
      temp: undefined,
      formLoading: true,
      zzSelDis: false,
      rowHideShow: false,
      openRowHide: false,
      hPriceTypeList: ["成本价", "结算价"],
      addBtnShow: false,
      zbIndex: null,
      zbSelForm: {}, //子表选中数据
      dialogTypeNum: null, //部门弹窗1,仓库弹窗2
      deptShow: false, //部门数据组件
      warehouseShow: false, //仓库数据组件
      materialShow: false, //物料数据组件
      deptform: {}, //弹窗选中数据
      openData: false, //数据弹窗
      dialogTitle: "",
      organizationList: [], //组织列表
      subDisabled: false, //编辑页面保存按钮是否禁用(true禁用,false可用)
      // OperationType: this.$route.query.OperationType,//保存类型(新增1修改3)
      HInterID: null,
      baseURL: process.env.VUE_APP_BASE_API,
      checkedSysZb: [],
      editData: [], //销售出库单子表
      editBtData: [], //子表表头
      activeName: "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: {
        HSupName: [{ required: true, message: "客户不能为空", trigger: "blur" }],
        HDate: [{ required: true, message: "日期不能为空", trigger: "blur" }],
        HExRate: [{ required: true, message: "汇率不能为空", trigger: "blur" }],
      },
    };
  },
  created() {
    this.fetchData();
    this.getdata();
  },
  beforeDestroy() {
    this.$destroy();
  },
  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 == 4) {
        this.zzSelDis = true;
        this.handleAdd();
        var data = this.getUrlVars_JSON();
        var dataArray = [];
        for (var i = 0; i < data.length; i++) {
          // this.getPushSourceBillInit(data[i].hmainid, data[i].hsubid);
          axios
            .get(this.baseURL + "/Xs_SeOrderBill/loadXs_SeOrderBill_Push", {
              params: {
                HInterID: data[i].hmainid,
                HSubID: data[i].hsubid,
              },
            })
            .then((response) => {
              let result = response.data;
              if (result.code == 1) {
                // 说明验证成功了,
                this.temp = result.data[0];
              } else {
                this.temp = result.data;
              }
              if (this.temp) {
                dataArray.push(this.temp);
                this.form.HDeptID = dataArray[0].HDeptID;
                this.form.HDeptName = dataArray[0].部门;
                this.form.HEmpID = dataArray[0].HEmpID;
                this.form.HEmpName = dataArray[0].业务员;
                this.form.HManagerID = dataArray[0].HManagerID;
                this.form.HManagerName = dataArray[0].主管;
                this.form.HMainSourceInterID = "0";
                this.form.HMainSourceEntryID = "0";
                this.form.HMainSourceBillNo = "";
                this.form.HMainSourceBillType = dataArray[0].HBillType;
                this.form.HSupID = dataArray[0].HCusID;
                this.form.HSupName = dataArray[0].客户;
                this.form.HLinkMan = dataArray[0].联系人;
                this.form.HLinkPhone = dataArray[0].联系电话;
                this.form.HSellSID = dataArray[0].HSellSID;
                this.form.HSellSName = dataArray[0].销售方式;
                this.form.HCurID = dataArray[0].HCurID;
                this.form.HCurName = dataArray[0].币别;
                this.form.HExRate = dataArray[0].汇率;
                for (var i = 0; i < dataArray.length; i++) {
                  this.editData.push({
                    HMaterID: dataArray[i].HMaterID,
                    物料代码: dataArray[i].物料代码,
                    物料名称: dataArray[i].物料名称,
                    规格型号: dataArray[i].规格型号,
                    HUnitID: dataArray[i].HUnitID,
                    计量单位: dataArray[i].计量单位,
                    HQtyMust: dataArray[i].数量.toFixed(6),
                    HQty: dataArray[i].数量.toFixed(6),
                    HPieceQty: "0",
                    HPrice: dataArray[i].单价.toFixed(4),
                    HTaxPrice: dataArray[i].实际含税单价.toFixed(4),
                    HTaxRate: dataArray[i].税率,
                    HMoney: dataArray[i].金额.toFixed(2),
                    HTaxMoney: dataArray[i].价税合计.toFixed(2),
                    HWHID: dataArray[i].HWHID,
                    发货仓库: dataArray[i].HWHName,
                    HRemark: "",
                    HQty_Full: "0",
                    HQty_Empty: "0",
                    HQty_Back: "0",
                    HCostPrice: "0",
                    HCostMoney: "0",
                    HSalePrice: "0",
                    HSeOrderInterID: dataArray[i].hmainid,
                    HSeOrderEntryID: dataArray[i].hsubid,
                    HSeOrderBillNo: dataArray[i].单据号,
                    HSourceInterID: dataArray[i].hmainid,
                    HSourceEntryID: dataArray[i].hsubid,
                    HSourceBillNo: dataArray[i].单据号,
                    HSourceBillType: dataArray[i].HBillType,
                    HRelationQty: "0",
                    HRelationMoney: "0",
                    HSPID: "0",
                    HSPName: "",
                    HSPGroupID: "0",
                    HSPGroupName: "",
                    HSCWHID: "0",
                    HSCWHName: "",
                    HSCSPID: "0",
                    HSCSPName: "",
                    HBatchNo: "",
                    HPOOrderInterID: "0",
                    HPOOrderEntryID: "0",
                    HPOOrderBillNo: "",
                    HPropertyID: "0",
                    HPropertyName: "",
                    HSecUnitID: "0",
                    HSecUnitName: "",
                    HSecUnitRate: "0",
                    HEngineNum: "",
                    HUnderPanNum: "",
                    HLeaveFactCard: "",
                    HReqBuyQty: "0",
                    HReqOutQty: "0",
                    HCurrentInventory: "0",
                  });
                }
              }
              this.$nextTick(() => {
                this.formShow = true;
                this.formLoading = false;
              });
            })
            .catch((error) => {
              this.$modal.msgError("接口请求失败!");
            });
        }
      } else 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;
    },
    //根据主内码与子内码获取源单销售订单数据
    getPushSourceBillInit(HSourceInterID, HSourceEntryID) {
      axios
        .get(this.baseURL + "/Xs_SeOrderBill/loadXs_SeOrderBill_Push", {
          params: {
            HInterID: HSourceInterID,
            HSubID: HSourceEntryID,
          },
        })
        .then((response) => {
          let result = response.data;
          if (result.code == 1) {
            // 说明验证成功了,
            this.temp = result.data[0];
          } else {
            this.temp = result.data;
          }
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        });
    },
    handleRowHide() {
      this.rowHideShow = true;
      this.openRowHide = true;
    },
    rowSetClose(val) {
      this.rowHideShow = false;
      this.openRowHide = val;
      this.$destroy();
    },
    organizationChange(val) {
      // let options=undefined
      //  this.form=this.organizationList.find(option => option.ID === val)?.Name || '';
    },
    //部门弹窗赋值
    dbEmitData(deptRow, num) {
      // num=1部门 num=2出库仓库
      if (num == 1) {
        this.form.HDeptName = deptRow.部门名称;
        this.form.HDeptID = deptRow.HItemID;
        this.form.HEmpID = deptRow.HEmpID;
        this.form.HManagerName = deptRow.负责人;
        this.openData = false;
      } else if (num == 2) {
        this.editData[this.zbIndex].HWHID = deptRow.HItemID;
        this.editData[this.zbIndex].发货仓库 = deptRow.仓库名称;
        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].HUnitID = deptRow.HUnitID;
        this.editData[this.zbIndex].规格型号 = deptRow.规格型号;
        this.editData[this.zbIndex].计量单位 = deptRow.计量单位名称;
        this.editData[this.zbIndex].HTaxPrice = deptRow.含税成本价;
        this.editData[this.zbIndex].HTaxRate = deptRow.默认税率;
        this.openData = false;
      }
    },
    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 = {
        BillType: "1401",
        HBillNo: "",
        HInterID: "",
        HBillSubType: "0",
        HDate: new Date(),
        HMainSourceInterID: 0,
        HMainSourceEntryID: 0,
        HMainSourceBillType: "",
        HMainSourceBillNo: "",
        HEmpName: "",
        HEmpID: 0,
        HDeptName: "",
        HDeptID: 0,
        HManagerName: "",
        HManagerID: 0,
        HSupName: sessionStorage["HSupName"],
        HSupID: sessionStorage["HSupID"],
        HLinkMan: "",
        HLinkPhone: "",
        HSecManagerName: "",
        HSecManagerID: 0,
        HKeeperName: "",
        HKeeperID: 0,
        HRemark: "",
        HProjectNumber: "",
        HProjectID: 0,
        HProjectName: "",
        HGroupName: "",
        HGroupID: 0,
        HWHName: "",
        HWHID: 0,
        HConveyCompName: "",
        HConveyCompID: 0,
        HConveyTypeName: "",
        HConveyTypeID: 0,
        HConveyMoney: "0",
        HCarriage: "0",
        HSTOCKORGID: sessionStorage["OrganizationID"] - 0, //组织id
        HOWNERID: sessionStorage["OrganizationID"] - 0,
        HSCWHName: "",
        HSCWHID: 0,
        HCheckStatusMan: "",
        HExplanation: "",
        HInnerBillNo: "",
        HCurName: "人民币",
        HCurID: 1,
        HExRate: "1",
        HSellSName: "",
        HSellSID: 0,
        HCusBalance: "0",
        HCreditRating_Now: "0",
        HAvailableBalance: "0",
        HPriceType: "成本价",
        HOrgID: sessionStorage["OrganizationID"] - 0,
        HMaker: "",
        HUpDater: "",
        HChecker: "",
        HMakeDate: new Date(),
        HUpDateDate: "",
        HCheckDate: "",
        HCloseMan: "",
        HDeleteMan: "",
        HCloseDate: "",
        HDeleteDate: "",
      };
      this.editData = [];
      this.editBtData = [];
      this.ids = [];
      this.subDisabled = false;
      this.addBtnShow = false;
      // this.$refs.tableData.clearSelection()
      this.activeName = "first";
      this.resetForm("form");
    },
    //退出
    close() {
      this.reset();
      if (!this.OperationType && !this.copyType) {
        // this.$router.back()
        window.close();
      } else {
        this.formShow = false;
        this.$emit("editClose", false);
      }
    },
    //根据用户获取对应职员、部门、销售主管
    getCzyglByUser() {
      axios
        .get(this.baseURL + "/Xs_SeOrderBill/getCzyglByUser", {
          params: { CurUserName: sessionStorage["HUserName"] },
        })
        .then((response) => {
          let dataForm = response.data.data[0];
          this.form.HDeptID = dataForm.HDeptID;
          this.form.HDeptName = dataForm.HDeptName;
          this.form.HEmpID = dataForm.HEmpID;
          this.form.HEmpName = dataForm.HEmpName;
          this.form.HManagerID = dataForm.HManagerID;
          this.form.HManagerName = dataForm.HManagerName;
        })
        .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 + "/WEBSController/GetMaxBillNoAndID_Json", {
          params: {
            HBillType: "1401",
          },
        })
        .then((response) => {
          this.form.HMaker = sessionStorage["HUserName"];
          this.form.HBillNo = response.data.data[0].HBillNo;
          this.form.HInterID = response.data.data[0].HInterID;
          // this.copyType = 0
          // this.getCzyglByUser()
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        });
    },
    //获取销售出库单对应的条码明细
    getBarCodeNoteBySellOutBill(rowHmainid) {
      axios
        .get(this.baseURL + "/Kf_SellOutBill/BarCodeNote", {
          params: { HInterID: rowHmainid },
        })
        .then((response) => {
          if (response.data.count == 1) {
            if (response.data.data[2].length > 0) {
              this.$modal.msgError("当前单据由扫码生成,不可以编辑!");
              this.subDisabled = true;
            }
          } else {
          }
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        });
    },
    //#region 根据客户获取客户余额
    getCustomerBalance(HCusID) {
      axios
        .get(this.baseURL + "/Xs_CusRatingChangeBill/getCustomerBalance", {
          params: { HCusID: HCusID, CurUserName: sessionStorage["HUserName"] },
        })
        .then((response) => {
          var data = response.data.data[0];
          this.form.HCusBalance = data.HCusBalance;
          this.form.HCreditRating_Now = data.HCreditRating_Now;
          this.form.HAvailableBalance = data.HAvailableBalance;
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        });
    },
    /** 修改按钮操作 */
    handleUpdate() {
      this.reset();
      let rowHmainid = this.linterid;
      console.log(this.linterid);
      axios
        .get(this.baseURL + "/Kf_SellOutBill/cx", {
          params: { HInterID: rowHmainid },
        })
        .then((response) => {
          if (response.data.count == 1) {
            var result = response.data;
            var data = response.data.data[0];
            this.form.BillType = data.HSourceBillType;
            if (this.copyType == 1) {
              this.getHBillNo();
              let date = new Date();
              this.form.HDate = moment(date).format("YYYY-MM-DDTHH:mm:ss");
            } else {
              this.form.HBillNo = data.单据号;
              this.form.HInterID = data.hmainid;
              this.form.HDate = data.日期;
              this.form.HMaker = data.制单人;
              this.form.HUpDater = data.修改人;
              this.form.HChecker = data.审核人;
              this.form.HMakeDate = data.制单日期;
              this.form.HUpDateDate = data.修改日期;
              this.form.HCheckDate = data.审核日期;
              this.form.HCloseMan = data.关闭人;
              this.form.HDeleteMan = data.作废人;
              this.form.HCloseDate = data.关闭日期;
              this.form.HDeleteDate = data.作废日期;
            }
            this.form.HBillSubType = data.HBillSubType;
            this.form.HMainSourceInterID = data.HMainSourceInterID;
            this.form.HMainSourceEntryID = data.HMainSourceEntryID;
            this.form.HMainSourceBillType = data.HMainSourceBillType;
            this.form.HMainSourceBillNo = data.HMainSourceBillNo;
            this.form.HEmpName = data.业务员;
            this.form.HEmpID = data.HEmpID;
            this.form.HDeptName = data.部门;
            this.form.HDeptID = data.HDeptID;
            this.form.HManagerName = data.主管;
            this.form.HManagerID = data.HManagerID;
            this.form.HSupName = data.客户;
            this.form.HSupID = data.HSupID;
            this.form.HLinkMan = data.联系人;
            this.form.HLinkPhone = data.联系电话;
            this.form.HSecManagerName = data.发货人;
            this.form.HSecManagerID = data.HSecManagerID;
            this.form.HKeeperName = data.保管员;
            this.form.HKeeperID = data.HKeeperID;
            this.form.HRemark = data.表头备注;
            this.form.HProjectNumber = data.项目编码;
            this.form.HProjectID = data.HProjectID;
            this.form.HProjectName = data.项目名称;
            this.form.HGroupName = data.班组;
            this.form.HGroupID = data.HGroupID;
            this.form.HWHName = data.主表仓库;
            this.form.HWHID = data.HWHID_Main;
            this.form.HConveyCompName = data.运输公司;
            this.form.HConveyCompID = data.HConveyCompID;
            this.form.HConveyTypeName = data.运输方式;
            this.form.HConveyTypeID = data.HConveyTypeID;
            this.form.HConveyMoney = data.HConveyMoney;
            this.form.HCarriage = data.运费;
            this.form.HSTOCKORGID = data.HSTOCKORGID;
            this.form.HOWNERID = data.HOWNERID;
            this.form.HSCWHName = data.主表调出仓库;
            this.form.HSCWHID = data.HSCWHID;
            this.form.HCheckStatusMan = data.核销人;
            this.form.HExplanation = data.摘要;
            this.form.HInnerBillNo = data.内部单据号;
            this.form.HCurName = data.币别;
            this.form.HCurID = data.HCurID;
            this.form.HExRate = data.汇率;
            this.form.HSellSName = data.销售方式;
            this.form.HSellSID = data.HSellSID;
            //  this.form.HCusBalance=data
            //  this.form.HCreditRating_Now=HConveyMoney
            //  this.form.HAvailableBalance=data
            this.form.HPriceType = data.单价类型;
            this.form.HOrgID = data.HOrgID;
            this.getCustomerByCusID(response.data.data[0].HSupID); //根据客户获取联系人,联系人电话
            this.getBarCodeNoteBySellOutBill(rowHmainid); //获取销售出库单对应的条码明细是否可编辑
            for (var i = 0; i < result.data.length; i++) {
              this.editData.push({
                HMaterID: result.data[i].HMaterID,
                物料代码: result.data[i].物料代码,
                物料名称: result.data[i].物料名称,
                规格型号: result.data[i].规格型号,
                HUnitID: result.data[i].HUnitID,
                计量单位: result.data[i].计量单位,
                HQtyMust: result.data[i].应发数量.toFixed(6),
                HQty: result.data[i].数量.toFixed(6),
                HPieceQty: result.data[i].件数.toFixed(0),
                HPrice: result.data[i].单价.toFixed(4),
                HTaxPrice: result.data[i].含税单价.toFixed(4),
                HTaxRate: result.data[i].税率,
                HMoney: (result.data[i].数量 * result.data[i].单价).toFixed(2),
                HTaxMoney: (result.data[i].数量 * result.data[i].含税单价, 2).toFixed(2),
                HWHID: result.data[i].hwhid,
                发货仓库: result.data[i].发货仓库,
                HRemark: result.data[i].表体备注,
                HQty_Full: result.data[i].满车重量,
                HQty_Empty: result.data[i].空车重量,
                HQty_Back: result.data[i].回车重量,
                HCostPrice: result.data[i].成本单价,
                HCostMoney: result.data[i].成本金额,
                HSalePrice: result.data[i].销售单价,
                HSeOrderInterID: result.data[i].HSeOrderInterID,
                HSeOrderEntryID: result.data[i].HSeOrderEntryID,
                HSeOrderBillNo: result.data[i].销售订单号,
                HSourceInterID: result.data[i].HSourceInterID,
                HSourceEntryID: result.data[i].HSourceEntryID,
                HSourceBillNo: result.data[i].源单单号,
                HSourceBillType: result.data[i].HSourceBillType,
                HRelationQty: result.data[i].关联数量,
                HRelationMoney: result.data[i].关联金额,
                HSPID: result.data[i].HSPID,
                HSPName: result.data[i].仓位,
                HSPGroupID: result.data[i].HSPGroupID,
                HSPGroupName: result.data[i].仓位组,
                HSCWHID: result.data[i].HSCWHID,
                HSCWHName: result.data[i].调出仓库,
                HSCSPID: result.data[i].HSCSPID,
                HSCSPName: result.data[i].调出仓位,
                HBatchNo: result.data[i].批次,
                HPOOrderInterID: result.data[i].采购订单内码,
                HPOOrderEntryID: result.data[i].采购订单子内码,
                HPOOrderBillNo: result.data[i].采购订单号,
                HPropertyID: result.data[i].HPropertyID,
                HPropertyName: result.data[i].辅助属性,
                HSecUnitID: result.data[i].HSecUnitID,
                HSecUnitName: result.data[i].辅助计量单位,
                HSecUnitRate: result.data[i].换算率,
                HEngineNum: result.data[i].发动机号,
                HUnderPanNum: result.data[i].地盘号,
                HLeaveFactCard: result.data[i].出厂证,
                HReqBuyQty: result.data[i].申请采购数量,
                HReqOutQty: result.data[i].申请出库数量,
                HCurrentInventory: result.data[i].当前库存,
              });
            }
            if (data.状态 != "创建" && this.copyType != 1) {
              this.$modal.msgError("此条数据不是创建状态,不能修改");
              this.subDisabled = true;
            }
            this.formShow = true;
            this.formLoading = false;
          }
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        });
    },
    //根据客户带出联系人、联系电话
    getCustomerByCusID(HCusID) {
      axios
        .get(this.baseURL + "/Xs_SeOrderBill/getCustomerByCusID", {
          params: {
            HCusID: HCusID,
          },
        })
        .then((response) => {
          this.form.联系人 = response.data.data[0].HLinkMan;
          this.form.联系电话 = response.data.data[0].HLinkPhone;
          // this.form = response.data.data[0]
        })
        .catch((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,
          计量单位: "",
          HQtyMust: 1,
          HQty: 1,
          HPieceQty: 0,
          HPrice: 0,
          HTaxPrice: 0,
          HTaxRate: 0,
          HMoney: 0,
          HTaxMoney: 0,
          HWHID: 0,
          发货仓库: "",
          HRemark: "",
          HQty_Full: 0,
          HQty_Empty: 0,
          HQty_Back: 0,
          HCostPrice: 0,
          HCostMoney: 0,
          HSalePrice: 0,
          HSeOrderInterID: 741,
          HSeOrderEntryID: 18,
          HSeOrderBillNo: "XSFH00000747",
          HSourceInterID: 741,
          HSourceEntryID: 18,
          HSourceBillNo: "XSFH00000747",
          HSourceBillType: 1402,
          HRelationQty: 0,
          HRelationMoney: 0,
          HSPID: 0,
          HSPName: "",
          HSPGroupID: 0,
          HSPGroupName: "",
          HSCWHID: 0,
          HSCWHName: "",
          HSCSPID: 0,
          HSCSPName: "",
          HBatchNo: "",
          HPOOrderInterID: 0,
          HPOOrderEntryID: 0,
          HPOOrderBillNo: "",
          HPropertyID: 0,
          HPropertyName: "",
          HSecUnitID: 0,
          HSecUnitName: "",
          HSecUnitRate: 0,
          HEngineNum: "",
          HUnderPanNum: "",
          HLeaveFactCard: "",
          HReqBuyQty: 0,
          HReqOutQty: 0,
          HCurrentInventory: 0,
        };
        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); //设置这一行取消选中
      }
    },
    //获取最大单据号_任务类(Type为0时只获取不新增流水号,为1时新增且获取流水号)
    get_MAXNum_Task(Type) {
      var sql = `exec h_p_Xt_GetMaxBillNo_SubType '1205','${this.form.HDate}',0,0,0,'${Type}','${this.form.HDeptID}'`;
      axios({
        method: "get",
        url: this.baseURL + "/CommonModel/searchMethod",
        params: { sql: sql, user: sessionStorage["HUserName"], ModRightNameCheck: "" },
      })
        .then((response) => {
          if (response.data.count == 1) {
            this.form.HBillNo = response.data.data[0].HBillNo;
          } else {
            this.$modal.msgError(response.data.code + response.data.Message);
          }
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        });
    },
    // 编辑提交保存
    submitForm() {
      this.$refs["form"].validate((valid) => {
        if (valid) {
          let fhck = false;
          this.editData.map((item, index) => {
            if (!item.发货仓库) {
              fhck = true;
              this.$modal.msgError("第" + (index + 1) + "行:发货仓库未选择!");
            }
          });
          this.$nextTick(() => {
            if (!fhck) {
              var sMainStr = JSON.stringify(this.form);
              var sSubStr = JSON.stringify(this.editData);
              var sMainSub =
                sMainStr +
                ";" +
                sSubStr +
                ";" +
                sessionStorage["HUserName"] +
                ";" +
                this.OperationType;
              axios({
                method: "post",
                url: this.baseURL + "/Kf_SellOutBill/SaveSellOutBillList",
                data: {
                  msg: sMainSub,
                },
              })
                .then((response) => {
                  if (response.data.count == 1) {
                    this.subDisabled = true; //设置保存按钮不可用
                    this.$modal.msgSuccess(response.data.Message);
                    this.get_MAXNum_Task(1); //设置流水号增加
                    if (response.data.Verify == "Y") {
                      //自动审核
                      this.set_CheckBill(0, this.form); //审核
                    }
                    this.addBtnShow = true;
                  }
                })
                .catch((error) => {
                  this.$modal.msgError("接口请求失败!");
                });
            }
          });
        }
      });
    },
    // 反审核/审核数据
    set_CheckBill(num, form) {
      var InterID = form.hmainid || form.HInterID;
      //逻辑审核方法
      axios
        .get(this.baseURL + "/Kf_SellOutBill/AuditKf_SellOutBill", {
          params: {
            HInterID: InterID,
            IsAudit: num,
            CurUserName: sessionStorage["HUserName"],
          },
        })
        .then((response) => {
          let result = response.data;
          if (result.code == 1) {
            this.$modal.msgSuccess("操作成功");
          } else {
            this.$modal.msgError("错误:" + result.code + result.Message);
          }
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        });
    },
    showReset() {
      this.deptShow = false;
      this.warehouseShow = false;
      this.materialShow = false;
    },
    //  打开数据列表弹窗
    openDataDialog(num, row) {
      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;
      }
    },
  },
};
</script>
<style>
.xsckdBox .el-date-editor.el-input {
  width: 100%;
}
</style>