duhe
2025-12-02 d4849f9efd7ea5619671a87db6c3709114b119c7
Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-VUEUI
3个文件已删除
3个文件已添加
10个文件已修改
6092 ■■■■ 已修改文件
src/router/index.js 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/permission.js 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/GyCustomer/CustomerEdit/index.vue 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/GyCustomer/index.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ICMO/ScICMOReportBill/ScICMOReportBillEdit.vue 929 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ICMO/ScICMOReportBill/ScICMOReportBillList.vue 1649 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/printList/hBarPlanPrint copy.vue 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/printList/hBarPlanPrint.vue 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/printList/index copy.vue 211 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/gyMaterial/GyMaterial.vue 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/purchase/postockInBack/Kf_POStockInBackBill.vue 646 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/purchase/postockInBack/Kf_POStockInBackBillList.vue 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scMould/basicModeling/Gy_MaterialPackingRelationList.vue 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scMould/basicModeling/Gy_MaterialPackingRelation_Edit.vue 830 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/warehouse/barcodeMaster/Gy_BarCodeBill copy.vue 1088 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/warehouse/shipment/Kf_StockOutRequestBill.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js
@@ -1255,6 +1255,31 @@
      },
    ],
  },
  // 生产汇报单维护
  {
    path: "/icmo/scICMOReportBill/scICMOReportBillList",
    component: Layout,
    hidden: true,
    redirect: "noredirect",
    meta: {
      breadcrumb: false, // 如果设置为false,则不会在breadcrumb面包屑中显示
      activeMenu: "/icmo/scICMOReportBill", // 当路由设置了该属性,则会高亮相对应的侧边栏。
    },
    children: [
      {
        path: "/icmo/scICMOReportBill/scICMOReportBillList",
        component: () => import("@/views/ICMO/ScICMOReportBill/ScICMOReportBillList.vue"),
        name: "ScICMOBillList",
        meta: { title: "生产汇报单维护", activeMenu: "/icmo/scICMOReportBill" },
      },
      // {
      //   path: "/icmo/scIcmoBill/scIcmoBillEdit",
      //   component: () => import("@/views/ICMO/ScICMOBillEdit.vue"),
      //   name: "ScICMOBillEdit",
      //   meta: { title: "生产订单", activeMenu: "/icmo/scIcmoBill" },
      // },
    ],
  },
];
// 动态路由,基于用户权限动态去加载
src/store/modules/permission.js
@@ -895,6 +895,45 @@
                  },
                ],
              },
              {
                meta: {
                  icon: "build",
                  link: null,
                  noCache: false,
                  title: "生产汇报",
                },
                hidden: false,
                name: "ScICMOReportBill",
                path: "scICMOReportBill",
                redirect: "noRedirect",
                component: "Layout",
                children: [
                  {
                    meta: {
                      icon: "build",
                      link: null,
                      noCache: false,
                      title: "生产汇报列表",
                    },
                    component: () => import("@/views/ICMO/ScICMOReportBill/ScICMOReportBillList.vue"),
                    hidden: false,
                    name: "ScICMOReportBillList",
                    path: "scICMOReportBillList",
                  },
                  // {
                  //   meta: {
                  //     icon: "build",
                  //     link: null,
                  //     noCache: false,
                  //     title: "生产入库单",
                  //   },
                  //   component: () => import("@/views/ProductInBill/Kf_ProductInBillEdit.vue"),
                  //   hidden: false,
                  //   name: "ProductInBillEdit",
                  //   path: "ProductInBillEdit",
                  // },
                ],
              },
            ],
          },
          {
src/views/GyCustomer/CustomerEdit/index.vue
@@ -119,15 +119,15 @@
   
              <el-tab-pane label="其他信息" name="other">
                <el-form ref="formOther" :model="formData" label-width="100px">
                <el-form ref="formOther" :model="formData" :rules="rules" label-width="100px">
                  <el-row :gutter="20">
                    <el-col :span="12">
                      <el-form-item label="联系人">
                      <el-form-item label="联系人" prop="HLinkMan">
                        <el-input v-model="formData.HLinkMan" placeholder="请输入联系人"></el-input>
                      </el-form-item>
                    </el-col>
                    <el-col :span="12">
                      <el-form-item label="联系电话">
                      <el-form-item label="联系电话" prop="HLinkPhone">
                        <el-input v-model="formData.HLinkPhone" placeholder="请输入联系电话"></el-input>
                      </el-form-item>
                    </el-col>
@@ -148,7 +148,7 @@
                  <el-row :gutter="20">
                    <el-col :span="12">
                      <el-form-item label="地址">
                      <el-form-item label="地址" prop="HAddress">
                        <el-input v-model="formData.HAddress" placeholder="请输入地址"></el-input>
                      </el-form-item>
                    </el-col>
@@ -220,7 +220,7 @@
                      </el-form-item>
                    </el-col>
                    <el-col :span="12">
                      <el-form-item label="地区">
                      <el-form-item label="地区" prop="HAreaID">
                        <el-input 
                          v-model="formData.HAreaName" 
                          placeholder="请选择地区"
@@ -280,7 +280,7 @@
                  <el-row :gutter="20">
                    <el-col :span="12">
                      <el-form-item label="客户状态">
                      <el-form-item label="客户状态" prop="HCusStatus">
                        <el-select v-model="formData.HCusStatus" placeholder="请选择客户状态" style="width: 100%">
                          <el-option label="潜在" value="101"></el-option>
                          <el-option label="合格" value="102"></el-option>
@@ -548,6 +548,7 @@
    this.initData()
    this.loadOrganizations()
    this.handleOperationType()
    this.setConditionalRules()
  },
  methods: {
    initData() {
@@ -708,44 +709,95 @@
    },
    
    // 保存
    handleSave() {
      this.$refs.form.validate(valid => {
        if (valid) {
          if (!this.validateForm()) {
            return
          }
          const formData = { ...this.formData }
          formData.HStopflag = formData.HStopflag ? 'true' : 'false'
          let url = `${this.baseURL}/Gy_Customer/AddBill`
          let params = { oMain: JSON.stringify(formData) + ';' + this.user }
          if (this.operationType === 3) {
            // 编辑保存
            url = `${this.baseURL}/Gy_Customer/AddBill1`
            params = {
              oMain: JSON.stringify(formData) + ';' + this.linterid + ';' + this.user + ';Gy_Customer_Edit'
            }
          }
          axios.post(url, params)
            .then(response => {
              if (response.data.count === 1) {
                this.$modal.msgSuccess(response.data.Message)
                this.saveDisabled = true
                this.saveConfig()
                this.openEdit = false
                this.$emit('editClose', true)
              } else {
                this.$modal.msgError(response.data.Message)
              }
            })
            .catch(error => {
              this.$modal.msgError('保存失败!')
            })
        }
    async handleSave() {
      const validMain = await new Promise(resolve => {
        this.$refs.form.validate(valid => resolve(valid))
      })
      let validOther = true
      if (this.$refs.formOther) {
        validOther = await new Promise(resolve => {
          this.$refs.formOther.validate(valid => resolve(valid))
        })
      }
      if (validMain && validOther) {
        if (!this.validateForm()) {
          return
        }
        const formData = { ...this.formData }
        formData.HStopflag = formData.HStopflag ? 'true' : 'false'
        let url = `${this.baseURL}/Gy_Customer/AddBill`
        let params = { oMain: JSON.stringify(formData) + ';' + this.user }
        if (this.operationType === 3) {
          // 编辑保存
          url = `${this.baseURL}/Gy_Customer/AddBill1`
          params = {
            oMain: JSON.stringify(formData) + ';' + this.linterid + ';' + this.user + ';Gy_Customer_Edit'
          }
        }
        axios.post(url, params)
          .then(response => {
            if (response.data.count === 1) {
              this.$modal.msgSuccess(response.data.Message)
              this.saveDisabled = true
              this.saveConfig()
              this.openEdit = false
              this.$emit('editClose', true)
            } else {
              this.$modal.msgError(response.data.Message)
            }
          })
          .catch(error => {
            this.$modal.msgError('保存失败!')
          })
      }
    },
    setConditionalRules() {
      this.rules.HLinkMan = [
        { validator: this.validateRequiredIfAdd, trigger: 'blur', message: '请输入联系人' }
      ]
      this.rules.HLinkPhone = [
        { validator: this.validateRequiredIfAdd, trigger: 'blur', message: '请输入联系电话' }
      ]
      this.rules.HAddress = [
        { validator: this.validateRequiredIfAdd, trigger: 'blur', message: '请输入地址' }
      ]
      this.rules.HAreaID = [
        { validator: this.validateRequiredIfAdd, trigger: 'change', message: '请选择地区' }
      ]
      this.rules.HCusStatus = [
        { validator: this.validateRequiredIfAdd, trigger: 'change', message: '请选择客户状态' }
      ]
    },
    validateRequiredIfAdd(rule, value, callback) {
      if (this.operationType !== 1) {
        return callback()
      }
      if (value === null || value === undefined) {
        return callback(new Error(rule.message || '该项为必填'))
      }
      if (typeof value === 'string' && value.trim() === '') {
        return callback(new Error(rule.message || '该项为必填'))
      }
      if (value === '0') {
        return callback(new Error(rule.message || '该项为必填'))
      }
      return callback()
    },
    
    // 表单验证
src/views/GyCustomer/index.vue
@@ -29,14 +29,14 @@
                  <el-row>
                    <el-col :span="7">
                      <el-select v-model="queryParams.ColName" placeholder="请选择" style="width: 100%">
                        <el-option value="0" label=""></el-option>
                        <!-- <el-option value="0" label=""></el-option> -->
                        <el-option v-for="(item, index) in visibleColumns" :key="index" :label="item.title"
                          :value="item.field"></el-option>
                      </el-select>
                    </el-col>
                    <el-col :span="6" style="padding: 0 10px">
                      <el-select v-model="queryParams.Comparator" placeholder="请选择" style="width: 100%">
                        <el-option value="0" label=""></el-option>
                        <!-- <el-option value="0" label=""></el-option> -->
                        <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                          :value="item.value"></el-option>
                      </el-select>
@@ -51,14 +51,14 @@
                  <el-row>
                    <el-col :span="7">
                      <el-select v-model="queryParams.ColName1" placeholder="请选择" style="width: 100%">
                        <el-option value="0" label=""></el-option>
                        <!-- <el-option value="0" label=""></el-option> -->
                        <el-option v-for="(item, index) in visibleColumns" :key="index" :label="item.title"
                          :value="item.field"></el-option>
                      </el-select>
                    </el-col>
                    <el-col :span="6" style="padding: 0 10px">
                      <el-select v-model="queryParams.Comparator1" placeholder="请选择" style="width: 100%">
                        <el-option value="0" label=""></el-option>
                        <!-- <el-option value="0" label=""></el-option> -->
                        <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                          :value="item.value"></el-option>
                      </el-select>
@@ -73,14 +73,14 @@
                  <el-row>
                    <el-col :span="7">
                      <el-select v-model="queryParams.ColName2" placeholder="请选择" style="width: 100%">
                        <el-option value="0" label=""></el-option>
                        <!-- <el-option value="0" label=""></el-option> -->
                        <el-option v-for="(item, index) in visibleColumns" :key="index" :label="item.title"
                          :value="item.field"></el-option>
                      </el-select>
                    </el-col>
                    <el-col :span="6" style="padding: 0 10px">
                      <el-select v-model="queryParams.Comparator2" placeholder="请选择" style="width: 100%">
                        <el-option value="0" label=""></el-option>
                        <!-- <el-option value="0" label=""></el-option> -->
                        <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                          :value="item.value"></el-option>
                      </el-select>
@@ -301,12 +301,12 @@
        HNumber: null,
        HName: null,
        HNumber2: null,
        ColName: "0",
        ColName1: "0",
        ColName2: "0",
        Comparator: "0",
        Comparator1: "0",
        Comparator2: "0",
        ColName: "",
        ColName1: "",
        ColName2: "",
        Comparator: "",
        Comparator1: "",
        Comparator2: "",
        ColContent: "",
        ColContent1: "",
        ColContent2: "",
@@ -739,6 +739,13 @@
    },
    handleRefresh() {
      if (this.$refs.tableData && this.$refs.tableData.clearSelection) {
        this.$refs.tableData.clearSelection();
      }
      this.selectedRow = null;
      this.ids = [];
      this.single = true;
      this.multiple = true;
      this.getList();
    },
@@ -798,7 +805,7 @@
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.hmainid)) {
        return { background: "#ecf5ff" };
        return {  };
      }
    },
src/views/ICMO/ScICMOReportBill/ScICMOReportBillEdit.vue
New file
@@ -0,0 +1,929 @@
<template>
  <div v-loading="formLoading" style="padding: 20px">
    <div class="operation-buttons">
      <el-button-group>
        <el-button type="primary" @click="handleAdd">新增</el-button>
        <el-button type="primary" @click="handleCopyBill">复制</el-button>
        <el-button type="primary" @click="handleCheckBill">审核</el-button>
        <el-button type="primary" @click="handleAbandonCheck">反审核</el-button>
        <el-button type="primary" @click="handleDeleteBill">删除</el-button>
        <el-button type="primary" @click="handlePrint">打印</el-button>
        <el-button type="primary" @click="handleSave" :disabled="saveDisabled">保存</el-button>
        <el-button type="primary" @click="handleExit">退出</el-button>
      </el-button-group>
    </div>
    <div class="page-title">
      <h1>生产汇报单</h1>
    </div>
    <el-form ref="form" :model="form" :rules="rules" label-width="120px">
      <el-tabs v-model="activeTab">
        <el-tab-pane label="基本信息" name="basic">
          <el-row :gutter="20">
            <el-col :span="8">
              <el-form-item label="单据号" prop="HBillNo">
                <el-input v-model="form.HBillNo" readonly />
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="日期" prop="HDate">
                <el-date-picker v-model="form.HDate" type="date" placeholder="选择日期" value-format="yyyy-MM-dd" />
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="生产车间" prop="HDeptName">
                <el-input v-model="form.HDeptName" readonly>
                  <el-button slot="append" icon="el-icon-search" @click="openDeptDialog"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row :gutter="20">
            <el-col :span="8">
              <el-form-item label="班组" prop="HGroupName">
                <el-input v-model="form.HGroupName" readonly>
                  <el-button slot="append" icon="el-icon-search" @click="openGroupDialog"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="统计员" prop="HEmpName">
                <el-input v-model="form.HEmpName" readonly>
                  <el-button slot="append" icon="el-icon-search" @click="openEmpDialog"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="源单类型" prop="HMainSourceBillType">
                <el-select v-model="form.HMainSourceBillType" @change="handleSourceTypeChange">
                  <el-option label="生产任务单" value="2"></el-option>
                  <el-option label="手工录入" value="1"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row :gutter="20">
            <el-col :span="8">
              <el-form-item label="选单号" prop="HMainSourceBillNo">
                <el-input v-model="form.HMainSourceBillNo" :disabled="sourceBillDisabled" readonly>
                  <el-button slot="append" icon="el-icon-search" @click="openSourceBillDialog"
                    :disabled="sourceBillBtnDisabled"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="16">
              <el-form-item label="备注" prop="HRemark">
                <el-input v-model="form.HRemark" />
              </el-form-item>
            </el-col>
          </el-row>
        </el-tab-pane>
        <el-tab-pane label="制单信息" name="maker">
          <el-row :gutter="20">
            <el-col :span="8">
              <el-form-item label="制单人">
                <el-input v-model="form.HMaker" readonly />
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="审核人">
                <el-input v-model="form.HChecker" readonly />
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="关闭人">
                <el-input v-model="form.HCloseMan" readonly />
              </el-form-item>
            </el-col>
          </el-row>
        </el-tab-pane>
        <el-tab-pane label="附件信息" name="attachment">
          <el-upload class="upload-demo" action="/api/upload" :on-preview="handlePreview" :on-remove="handleRemove"
            :before-remove="beforeRemove" multiple :limit="3" :on-exceed="handleExceed" :file-list="fileList">
            <el-button size="small" type="primary">点击上传</el-button>
            <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
          </el-upload>
        </el-tab-pane>
      </el-tabs>
      <el-tabs v-model="detailTab">
        <el-tab-pane label="生产汇报单" name="main">
          <div class="table-toolbar">
            <el-button type="primary" size="small" @click="addTableRow">增加一行</el-button>
            <el-button type="primary" size="small" @click="copyTableRow">复制一行</el-button>
          </div>
          <el-table :data="tableData" border style="width: 100%" height="400" @selection-change="handleSelectionChange">
            <el-table-column type="selection" width="55"></el-table-column>
            <el-table-column type="index" label="序号" width="60"></el-table-column>
            <el-table-column prop="HMaterCode" label="物料代码" width="120">
              <template slot-scope="scope">
                <el-input v-model="scope.row.HMaterCode" @focus="openMaterialDialog(scope.row, scope.$index)" readonly>
                </el-input>
              </template>
            </el-table-column>
            <el-table-column prop="HMaterName" label="物料名称" width="150"></el-table-column>
            <el-table-column prop="HMaterSpec" label="规格型号" width="150"></el-table-column>
            <el-table-column prop="HUnitCode" label="单位代码" width="100">
              <template slot-scope="scope">
                <el-input v-model="scope.row.HUnitCode" @focus="openUnitDialog(scope.row, scope.$index)" readonly>
                </el-input>
              </template>
            </el-table-column>
            <el-table-column prop="HUnitName" label="单位名称" width="100"></el-table-column>
            <el-table-column prop="HSourceCode" label="资源代码" width="120">
              <template slot-scope="scope">
                <el-input v-model="scope.row.HSourceCode" @focus="openSourceDialog(scope.row, scope.$index)" readonly>
                </el-input>
              </template>
            </el-table-column>
            <el-table-column prop="HSourceName" label="资源名称" width="150"></el-table-column>
            <el-table-column prop="HWorkerCode" label="操作员代码" width="120">
              <template slot-scope="scope">
                <el-input v-model="scope.row.HWorkerCode" @focus="openWorkerDialog(scope.row, scope.$index)" readonly>
                </el-input>
              </template>
            </el-table-column>
            <el-table-column prop="HWorkerName" label="操作员名称" width="150"></el-table-column>
            <el-table-column prop="HQty" label="生产数量" width="100">
              <template slot-scope="scope">
                <el-input-number v-model="scope.row.HQty" :min="0" :precision="2" controls-position="right" size="mini">
                </el-input-number>
              </template>
            </el-table-column>
            <el-table-column prop="HBadQty" label="不良数量" width="100">
              <template slot-scope="scope">
                <el-input-number v-model="scope.row.HBadQty" :min="0" :precision="2" controls-position="right"
                  size="mini">
                </el-input-number>
              </template>
            </el-table-column>
            <el-table-column prop="HICMOBillNo" label="生产订单" width="120"></el-table-column>
            <el-table-column prop="HPRODUCEDATE" label="生产日期" width="120">
              <template slot-scope="scope">
                <el-date-picker v-model="scope.row.HPRODUCEDATE" type="date" placeholder="选择日期"
                  value-format="yyyy-MM-dd" size="mini">
                </el-date-picker>
              </template>
            </el-table-column>
            <el-table-column prop="HRemark" label="表体备注" width="150">
              <template slot-scope="scope">
                <el-input v-model="scope.row.HRemark" size="mini"></el-input>
              </template>
            </el-table-column>
            <el-table-column label="操作" width="80">
              <template slot-scope="scope">
                <el-button type="danger" size="mini" @click="deleteTableRow(scope.$index)">删除</el-button>
              </template>
            </el-table-column>
          </el-table>
        </el-tab-pane>
        <el-tab-pane label="产量汇报单明细" name="production">
          <el-table :data="productionData" border height="400">
          </el-table>
        </el-tab-pane>
      </el-tabs>
    </el-form>
    <el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="80%" append-to-body>
      <component :is="currentDialogComponent" @select="handleDialogSelect" @dbSelect="handleDialogDbSelect">
      </component>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取消</el-button>
        <el-button type="primary" @click="confirmDialogSelect">确定</el-button>
      </span>
    </el-dialog>
  </div>
</template>
<script>
import axios from 'axios'
import Dept from "@/views/component/dept";
export default {
  name: 'ProductionReport',
  components: {
    Dept,
  },
  props: {
    propOperationType: { type: Number, default: null },
    propLinterid: { type: [Number, String], default: null },
    propHSouceBillType: { type: String, default: '' },
    propCopyType: { type: Number, default: -1 }
  },
  data() {
    return {
      formLoading: false,
      saveDisabled: false,
      activeTab: 'basic',
      detailTab: 'main',
      dialogVisible: false,
      dialogTitle: '',
      currentDialogComponent: null,
      currentDialogType: '',
      currentRowIndex: null,
      currentRow: null,
      fileList: [],
      sourceBillDisabled: false,
      sourceBillBtnDisabled: true,
      form: {
        HBillNo: '',
        HDate: '',
        HDeptName: '',
        HDeptID: 0,
        HDeptNumber: '',
        HGroupName: '',
        HGroupID: 0,
        HEmpName: '',
        HEmpID: 0,
        HMainSourceBillType: '1',
        HMainSourceBillNo: '',
        HMainSourceInterID: 0,
        HMainSourceEntryID: 0,
        HRemark: '',
        HMaker: '',
        HChecker: '',
        HCloseMan: '',
        HMakeDate: '',
        HCheckDate: '',
        HCloseDate: '',
        HUpDater: '',
        HDeleteMan: '',
        HUpDateDate: '',
        HDeleteDate: ''
      },
      rules: {
        HDeptName: [{ required: true, message: '生产车间不能为空', trigger: 'blur' }],
        HGroupName: [{ required: true, message: '班组不能为空', trigger: 'blur' }],
        HEmpName: [{ required: true, message: '统计员不能为空', trigger: 'blur' }],
        HDate: [{ required: true, message: '日期不能为空', trigger: 'change' }]
      },
      tableData: [],
      productionData: [],
      OperationType: 1,
      linterid: 0,
      HSouceBillType: '',
      baseURL: process.env.VUE_APP_BASE_URL || 'http://47.96.97.237/API/'
    }
  },
  created() {
    this.initData()
  },
  watch: {
    form: {
      handler(newVal) {
        console.log('表单数据变化:', newVal)
      },
      deep: true,
      immediate: true
    },
    'form.HDeptName': function (newVal) {
      console.log('HDeptName变化:', newVal)
    },
    'form.HGroupName': function (newVal) {
      console.log('HGroupName变化:', newVal)
    },
    'form.HEmpName': function (newVal) {
      console.log('HEmpName变化:', newVal)
    }
  },
  methods: {
    async initData() {
      const params = this.$route ? this.$route.query : {}
      if (this.propOperationType !== null && this.propOperationType !== undefined) {
        this.OperationType = this.propOperationType
      } else {
        this.OperationType = params.OperationType || 1
      }
      if (this.propLinterid !== null && this.propLinterid !== undefined && this.propLinterid !== '') {
        this.linterid = Number(this.propLinterid)
      } else {
        this.linterid = params.linterid || 0
      }
      this.HSouceBillType = this.propHSouceBillType || params.HSouceBillType || ''
      console.log("操作参数:", {
        OperationType: this.OperationType,
        linterid: this.linterid,
        HSouceBillType: this.HSouceBillType
      })
      try {
        if (this.OperationType === 1) {
          await this.setAddFNew()
        } else if (this.OperationType === 2) {
          await this.setAddNew()
        } else if (this.OperationType === 3) {
          await this.setEditFromGrid()
        } else if (this.OperationType === 5) {
          await this.setCopyBill()
        }
        if (this.OperationType === 1 || this.OperationType === 2) {
          this.$set(this.form, 'HDeptID', sessionStorage.HDeptID || 0)
          this.$set(this.form, 'HDeptName', sessionStorage.HDept || '')
          this.$set(this.form, 'HGroupID', sessionStorage.HGroupID || 0)
          this.$set(this.form, 'HGroupName', sessionStorage.HGroup || '')
          this.$set(this.form, 'HEmpID', sessionStorage.HEmpID || 0)
          this.$set(this.form, 'HEmpName', sessionStorage.HEmpName || '')
        }
      } catch (error) {
        this.$message.error('初始化数据失败: ' + error.message)
      }
    },
    // 无源单新增
    async setAddFNew() {
      await this.getMaxBillNo()
      this.sourceBillDisabled = false
      this.sourceBillBtnDisabled = true
      this.tableData = [this.getEmptyRow()]
    },
    // 有源单新增
    async setAddNew() {
      await this.getMaxBillNo()
      if (this.linterid && this.HSouceBillType === '3724') {
        try {
          const response = await axios.get('/api/Sc_ICMOReportBill/GetProdReportBillList', {
            params: {
              HInterID: this.linterid,
              user: sessionStorage.HUserName
            }
          })
          if (response.data.code === 1) {
            const data = response.data.data.h_p_Sc_ICMOBillWorkQtyStatus_TmpList1
            this.tableData = data.map(item => ({
              HMaterID: item.物料ID,
              HMaterCode: item.物料代码,
              HMaterName: item.物料名称,
              HMaterSpec: item.规格型号,
              HUnitID: item.单位ID,
              HUnitCode: item.计量单位代码,
              HUnitName: item.计量单位,
              HSourceID: item.生产资源ID,
              HSourceCode: item.生产资源代码,
              HSourceName: item.生产资源名称,
              HWorkerid: item.操作员ID,
              HWorkerCode: item.操作员代码,
              HWorkerName: item.操作员名称,
              HQty: item.产量,
              HBadQty: item.不良数量 || 0,
              HICMOBillNo: item.生产订单号,
              HICMOInterID: item.HICMOInterID,
              HICMOEntryID: item.HICMOEntryID,
              HPRODUCEDATE: item.生产日期,
              HRemark: ''
            }))
          }
        } catch (error) {
          this.$message.error('获取源单数据失败')
        }
      } else {
        this.tableData = [this.getEmptyRow()]
      }
    },
    // 编辑
    async setEditFromGrid() {
      await this.setEditForm(this.linterid)
      await this.setEditGrid(this.linterid)
    },
    // 复制
    async setCopyBill() {
      await this.setEditFromGrid()
      await this.getMaxBillNo()
      this.form.HMaker = sessionStorage.HUserName
      this.form.HMakeDate = this.formatDate(new Date())
      this.form.HUpDater = ''
      this.form.HUpDateDate = ''
      this.form.HChecker = ''
      this.form.HCheckDate = ''
      this.form.HCloseMan = ''
      this.form.HCloseDate = ''
      this.form.HDeleteMan = ''
      this.form.HDeleteDate = ''
    },
    // 获取最大单据号
    async getMaxBillNo() {
      try {
        const response = await axios.get(`${this.baseURL}/Web/GetMAXNum`, {
          params: { HBillType: '3711' }
        })
        if (response.data && response.data.data && response.data.data.length > 0) {
          this.form.HBillNo = response.data.data[0].HBillNo
          this.form.HInterID = response.data.data[0].HInterID
          this.form.HDate = this.formatDate(new Date())
          this.form.HMakeDate = this.formatDate(new Date())
          this.form.HMaker = sessionStorage.HUserName
        }
      } catch (error) {
        console.error('获取单据号失败:', error)
        this.$message.error('获取单据号失败')
      }
    },
    // 编辑获取表头
    async setEditForm(linterid) {
      console.log("neima", linterid)
      try {       //'/api/Sc_ICMOReportBill/Sc_GetICMOReportBillListCheckDetai'
        const response = await axios.get(`${this.baseURL}/Sc_ICMOReportBill/Sc_GetICMOReportBillListCheckDetai`, {
          params: { HID: linterid }
        })
        if (response.data.code === 1) {
          const data = response.data.data.h_v_IF_ICMOReportBillList_Edit[0]
          this.form.HBillNo = data.单据号
          this.form.HDate = this.formatDate(data.日期)
          this.form.HDeptID = data.HDeptID
          this.form.HDeptName = data.部门
          this.form.HDeptNumber = data.部门代码
          this.form.HGroupID = data.HGroupID
          this.form.HGroupName = data.班组
          this.form.HEmpID = data.HEmpID
          this.form.HEmpName = data.统计员
          this.form.HMainSourceBillNo = data.HMainSourceBillNo
          this.form.HMainSourceInterID = data.HMainSourceInterID || 0
          this.form.HMainSourceEntryID = data.HMainSourceEntryID || 0
          this.form.HRemark = data.表头备注
          console.log("response", data.单据号, "---", data.部门, "----", data.统计员)
        }
      } catch (error) {
        this.$message.error('获取表单数据失败')
      }
    },
    // 编辑获取表体
    async setEditGrid(linterid) {
      this.form.HInterID = linterid
      try {//Sc_ICMOReportBill/Sc_ICMOReportBillListProjectDetai
        const response = await axios.get(`${this.baseURL}/Sc_ICMOReportBill/Sc_ICMOReportBillListProjectDetai`, {
          params: { sqlWhere: `and hmainid=${linterid}` }
        })
        if (response.data.count === 1) {
          this.tableData = response.data.data
        }
      } catch (error) {
        this.$message.error('获取表格数据失败')
      }
    },
    handleSourceTypeChange(value) {
      if (value === '1') {
        this.sourceBillDisabled = false
        this.sourceBillBtnDisabled = true
        this.OperationType = 1
      } else if (value === '2') {
        this.sourceBillDisabled = true
        this.sourceBillBtnDisabled = false
        this.OperationType = 2
      }
    },
    openDeptDialog() {
      this.dialogTitle = '部门列表'
      this.currentDialogComponent = 'Dept'
      this.currentDialogType = 'dept'
      this.dialogVisible = true
    },
    openGroupDialog() {
      this.dialogTitle = '班组列表'
      this.currentDialogComponent = 'Group'
      this.currentDialogType = 'group'
      this.dialogVisible = true
    },
    openEmpDialog() {
      this.dialogTitle = '职员列表'
      this.currentDialogComponent = 'Employee'
      this.currentDialogType = 'emp'
      this.dialogVisible = true
    },
    openSourceBillDialog() {
      this.dialogTitle = '生产任务单列表'
      this.currentDialogComponent = 'ProductionOrder'
      this.currentDialogType = 'sourceBill'
      this.dialogVisible = true
    },
    openMaterialDialog(row, index) {
      this.currentRow = row
      this.currentRowIndex = index
      this.dialogTitle = '物料列表'
      this.currentDialogComponent = 'Material'
      this.currentDialogType = 'material'
      this.dialogVisible = true
    },
    openUnitDialog(row, index) {
      this.currentRow = row
      this.currentRowIndex = index
      this.dialogTitle = '单位列表'
      this.currentDialogComponent = 'Unit'
      this.currentDialogType = 'unit'
      this.dialogVisible = true
    },
    openSourceDialog(row, index) {
      this.currentRow = row
      this.currentRowIndex = index
      this.dialogTitle = '资源列表'
      this.currentDialogComponent = 'Source'
      this.currentDialogType = 'source'
      this.dialogVisible = true
    },
    openWorkerDialog(row, index) {
      this.currentRow = row
      this.currentRowIndex = index
      this.dialogTitle = '职员列表'
      this.currentDialogComponent = 'Employee'
      this.currentDialogType = 'worker'
      this.dialogVisible = true
    },
    handleDialogSelect(data) {
      this.selectedData = data
    },
    handleDialogDbSelect(data) {
      this.applySelectedData(data)
      this.dialogVisible = false
    },
    confirmDialogSelect() {
      if (this.selectedData) {
        this.applySelectedData(this.selectedData)
        this.dialogVisible = false
      }
    },
    applySelectedData(data) {
      switch (this.currentDialogType) {
        case 'dept':
          this.form.HDeptName = data.部门名称
          this.form.HDeptID = data.HItemID
          this.form.HDeptNumber = data.部门代码
          break
        case 'group':
          this.form.HGroupName = data.班组名称
          this.form.HGroupID = data.HItemID
          break
        case 'emp':
          this.form.HEmpName = data.职员名称
          this.form.HEmpID = data.HItemID
          break
        case 'sourceBill':
          this.handleSourceBillSelect(data)
          break
        case 'material':
          if (this.currentRow) {
            this.currentRow.HMaterID = data.HItemID
            this.currentRow.HMaterCode = data.物料代码
            this.currentRow.HMaterName = data.物料名称
            this.currentRow.HMaterSpec = data.规格型号
            this.currentRow.HUnitID = data.HUnitID
            this.currentRow.HUnitCode = data.计量单位代码
            this.currentRow.HUnitName = data.计量单位名称
          }
          break
        case 'unit':
          if (this.currentRow) {
            this.currentRow.HUnitID = data.HItemID
            this.currentRow.HUnitCode = data.计量单位代码
            this.currentRow.HUnitName = data.计量单位名称
          }
          break
        case 'source':
          if (this.currentRow) {
            this.currentRow.HSourceID = data.HItemID
            this.currentRow.HSourceCode = data.生产资源代码
            this.currentRow.HSourceName = data.生产资源名称
          }
          break
        case 'worker':
          if (this.currentRow) {
            this.currentRow.HWorkerid = data.HItemID
            this.currentRow.HWorkerCode = data.职员代码
            this.currentRow.HWorkerName = data.职员名称
          }
          break
      }
    },
    handleSourceBillSelect(data) {
      if (!Array.isArray(data)) data = [data]
      const billNos = data.map(item => item.单据号)
      if (!this.isAllEqual(billNos)) {
        this.$message.error('请选择相同单号!')
        return
      }
      this.form.HMainSourceBillNo = data[0].单据号
      this.form.HMainSourceInterID = data[0].hmainid
      this.form.HMainSourceEntryID = data[0].HEntryID
      const newRows = data.map(item => ({
        HMaterID: item.HMaterID,
        HMaterCode: item.HMaterCode,
        HMaterName: item.HMaterName,
        HMaterSpec: item.HMaterSpec,
        HUnitID: item.HUnitID,
        HUnitCode: item.HUnitCode,
        HUnitName: item.HUnitName,
        HSourceID: 0,
        HSourceCode: '',
        HSourceName: '',
        HWorkerid: 0,
        HWorkerCode: '',
        HWorkerName: '',
        HQty: 0,
        HBadQty: 0,
        HICMOBillNo: item.单据号,
        HICMOInterID: item.hmainid,
        HICMOEntryID: item.HEntryID,
        HRemark: '',
        HSourceInterID: item.hmainid,
        HSourceEntryID: item.HEntryID,
        HSourceBillNo: item.单据号,
        HSourceBillType: 3710
      }))
      this.tableData = newRows
    },
    addTableRow() {
      this.tableData.push(this.getEmptyRow())
    },
    copyTableRow() {
      if (this.selectedRows && this.selectedRows.length === 1) {
        const copyRow = JSON.parse(JSON.stringify(this.selectedRows[0]))
        this.tableData.push(copyRow)
      } else {
        this.$message.warning('请选择一行数据进行复制')
      }
    },
    deleteTableRow(index) {
      if (this.tableData.length <= 1) {
        this.$message.warning('至少保留一行数据')
        return
      }
      this.tableData.splice(index, 1)
    },
    handleSelectionChange(selection) {
      this.selectedRows = selection
    },
    getEmptyRow() {
      return {
        HMaterID: 0,
        HMaterCode: '',
        HMaterName: '',
        HMaterSpec: '',
        HUnitID: 0,
        HUnitCode: '',
        HUnitName: '',
        HSourceID: 0,
        HSourceCode: '',
        HSourceName: '',
        HWorkerid: 0,
        HWorkerCode: '',
        HWorkerName: '',
        HQty: 0,
        HBadQty: 0,
        HICMOBillNo: '',
        HICMOInterID: '0',
        HICMOEntryID: '0',
        HRemark: '',
        HSourceInterID: 0,
        HSourceEntryID: 0,
        HSourceBillNo: '',
        HSourceBillType: 0,
        HICMOTempID: 0,
        HPRODUCEDATE: ''
      }
    },
    // 保存
    async handleSave() {
      try {
        await this.$refs.form.validate()
        if (!this.validateForm()) {
          return
        }
        const refSav = this.OperationType === 3 ? 'Update' : 'Add'
        const mainData = {
          ...this.form,
          HMaker: sessionStorage.HUserName
        }
        const rowData = this.tableData.filter(row =>
          row.HMaterCode && row.HMaterName
        ).map(row => ({
          ...row,
          HMaterName: row.HMaterName.replace(/"/g, '”').replace(/;/g, ';'),
          HMaterSpec: row.HMaterSpec.replace(/"/g, '”').replace(/;/g, ';')
        }))
        const submitData = {
          main: JSON.stringify(mainData),
          detail: JSON.stringify(rowData),
          operation: refSav,
          user: sessionStorage.HUserName
        }
        const response = await axios.post('/api/Sc_ICMOReportBill/SaveGetICMOReportBillList', submitData)
        if (response.data.count === 1) {
          this.$message.success(response.data.Message)
          this.saveDisabled = true
        } else {
          this.$message.error(response.data.Message)
        }
      } catch (error) {
        this.$message.error('保存失败')
      }
    },
    validateForm() {
      if (!this.form.HDeptID) {
        this.$message.error('车间不能为空!')
        return false
      }
      if (!this.form.HGroupID) {
        this.$message.error('班组不能为空!')
        return false
      }
      if (!this.form.HEmpID) {
        this.$message.error('统计员不能为空!')
        return false
      }
      if (this.tableData.length === 0) {
        this.$message.error('没有物料明细记录')
        return false
      }
      for (let i = 0; i < this.tableData.length; i++) {
        const row = this.tableData[i]
        if (!row.HMaterID) {
          this.$message.error(`明细记录第${i + 1}行,物料信息为空!`)
          return false
        }
        if (!row.HUnitID) {
          this.$message.error(`明细记录第${i + 1}行,单位信息为空!`)
          return false
        }
        if (!row.HQty || parseFloat(row.HQty) <= 0) {
          this.$message.error(`明细记录第${i + 1}行,生产数量不能为空或0或者小于0!`)
          return false
        }
      }
      return true
    },
    // 审核
    async handleCheckBill() {
      try {
        const response = await axios.get('/api/Sc_ICMOReportBill/AuditProcessReportList', {
          params: {
            HInterID: this.form.HInterID,
            IsAudit: 0,
            CurUserName: sessionStorage.HUserName
          }
        })
        if (response.data.count === 1) {
          this.$message.success(response.data.Message)
        } else {
          this.$message.error(response.data.Message)
        }
      } catch (error) {
        this.$message.error('审核失败')
      }
    },
    handleAdd() {
      this.$router.push({
        name: 'ProductionReport',
        query: { OperationType: 1 }
      })
    },
    handleCopyBill() {
      // 复制逻辑
    },
    handleAbandonCheck() {
      // 反审核逻辑
    },
    handleDeleteBill() {
      // 删除逻辑
    },
    handlePrint() {
      // 打印逻辑
    },
    handleExit() {
      this.$router.back()
    },
    formatDate(date) {
      if (!date) return ''
      const d = new Date(date)
      const month = '' + (d.getMonth() + 1)
      const day = '' + d.getDate()
      const year = d.getFullYear()
      return [year, month.padStart(2, '0'), day.padStart(2, '0')].join('-')
    },
    isAllEqual(array) {
      if (array.length > 0) {
        return !array.some((value, index) => value !== array[0])
      }
      return true
    },
    handleRemove(file, fileList) {
      console.log(file, fileList)
    },
    handlePreview(file) {
      console.log(file)
    },
    handleExceed(files, fileList) {
      this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`)
    },
    beforeRemove(file, fileList) {
      return this.$confirm(`确定移除 ${file.name}?`)
    }
  }
}
</script>
<style scoped>
.operation-buttons {
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 1px solid #eee;
}
.page-title {
  text-align: center;
  margin: 20px 0;
}
.page-title h1 {
  font-size: 24px;
  font-weight: bold;
}
.table-toolbar {
  margin-bottom: 10px;
}
.el-form-item {
  margin-bottom: 18px;
}
.el-table {
  margin-top: 10px;
}
</style>
src/views/ICMO/ScICMOReportBill/ScICMOReportBillList.vue
New file
@@ -0,0 +1,1649 @@
<template>
  <div style="padding: 10px">
    <el-form
      :model="queryParams"
      ref="queryForm"
      size="small"
      :inline="true"
      label-width="78px"
      class="searchBox"
    >
      <el-row>
        <el-form-item label="开始日期" style="margin-left: 100px">
          <el-date-picker
            v-model="sTime"
            type="date"
            placeholder="开始日期"
            style="width: 150px"
            :disabled="queryParams.HInitTimeCycle != -1"
            value-format="yyyy-MM-dd"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="结束日期">
          <el-date-picker
            v-model="eTime"
            type="date"
            placeholder="结束日期"
            style="width: 150px"
            :disabled="queryParams.HInitTimeCycle != -1"
            value-format="yyyy-MM-dd"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="日期间隔">
          <el-select
            v-model="queryParams.HInitTimeCycle"
            placeholder="请选择"
            @change="riqiChange"
          >
            <el-option
              v-for="(item, index) in rqsgList"
              :key="index"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="单据号" prop="HBillNo">
          <el-input
            v-model="queryParams.HBillNo"
            placeholder="请输入单据号"
            @keyup.enter.native="handleQuery"
          />
        </el-form-item>
        <el-form-item label="组织">
          <el-select
            v-model="queryParams.HOrgID"
            placeholder="请选择"
            class="ForFilteringSchemes"
          >
            <el-option
              v-for="(item, index) in organizationList"
              :key="index"
              :label="item.Name"
              :value="item.ID"
            >
            </el-option>
          </el-select>
        </el-form-item>
      </el-row>
      <el-form-item label-width="78px">
        <el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">
          搜 索</el-button
        >
        <el-button icon="el-icon-circle-close" size="small" @click="searchOpen = false"
          >取 消</el-button
        >
      </el-form-item>
      <el-collapse v-model="activeSeach">
        <el-collapse-item title="更多" name="1">
          <el-card class="box-card">
            <el-form :inline="true">
              <el-form-item label="业务员">
                <el-input></el-input>
              </el-form-item>
              <el-form-item label="物料代码">
                <el-input></el-input>
              </el-form-item>
              <el-form-item label="物料名称">
                <el-input></el-input>
              </el-form-item>
              <el-form-item label="供应商">
                <el-input></el-input>
              </el-form-item>
            </el-form>
            <div slot="header" class="clearfix"><span>过滤</span></div>
            <div>
              <el-row>
                <el-form-item label-width="0">
                  <el-col :span="7">
                    <el-select
                      v-model="queryParams.ColName1"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                      <span v-for="(item, index) in btList" :key="index">
                        <el-option
                          :label="item.field"
                          :value="item.field"
                          v-if="!item.hide"
                        ></el-option>
                      </span>
                    </el-select>
                  </el-col>
                  <el-col :span="6" style="padding: 0 10px">
                    <el-select
                      v-model="queryParams.Comparator1"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                      <el-option
                        v-for="(item, index) in comparatorList"
                        :key="index"
                        :label="item.label"
                        :value="item.value"
                      ></el-option>
                    </el-select>
                  </el-col>
                  <el-col :span="11">
                    <el-input
                      v-model="queryParams.ColContent1"
                      placeholder="请输入"
                      clearable
                      @keyup.enter.native="handleQuery"
                      class="ForFilteringSchemes"
                    />
                  </el-col>
                </el-form-item>
              </el-row>
              <el-row>
                <el-form-item label-width="0">
                  <el-col :span="7">
                    <el-select
                      v-model="queryParams.ColName2"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                      <span v-for="(item, index) in btList" :key="index">
                        <el-option
                          :label="item.field"
                          :value="item.field"
                          v-if="!item.hide"
                        ></el-option>
                      </span>
                    </el-select>
                  </el-col>
                  <el-col :span="6" style="padding: 0 10px">
                    <el-select
                      v-model="queryParams.Comparator2"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                      <span v-for="(item, index) in btList" :key="index">
                        <el-option
                          :label="item.field"
                          :value="item.field"
                          v-if="!item.hide"
                        ></el-option>
                      </span>
                    </el-select>
                  </el-col>
                  <el-col :span="11">
                    <el-input
                      v-model="queryParams.ColContent2"
                      placeholder="请输入"
                      clearable
                      @keyup.enter.native="handleQuery"
                      class="ForFilteringSchemes"
                    />
                  </el-col>
                </el-form-item>
              </el-row>
              <el-row>
                <el-form-item label-width="0">
                  <el-col :span="7">
                    <el-select
                      v-model="queryParams.ColName"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                      <el-option
                        v-for="(item, index) in btList"
                        :key="index"
                        :label="item.field"
                        :value="item.field"
                      ></el-option>
                    </el-select>
                  </el-col>
                  <el-col :span="6" style="padding: 0 10px">
                    <el-select
                      v-model="queryParams.Comparator"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                      <el-option
                        v-for="(item, index) in comparatorList"
                        :key="index"
                        :label="item.label"
                        :value="item.value"
                      ></el-option>
                    </el-select>
                  </el-col>
                  <el-col :span="11">
                    <el-input
                      v-model="queryParams.ColContent"
                      placeholder="请输入"
                      clearable
                      @keyup.enter.native="handleQuery"
                      class="ForFilteringSchemes"
                    />
                  </el-col>
                </el-form-item>
              </el-row>
            </div> </el-card
        ></el-collapse-item>
      </el-collapse>
    </el-form>
    <el-row :gutter="10" class="mb8">
      <!-- <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-download"
          size="mini"
          @click="handleImport"
          >导入</el-button
        >
      </el-col> -->
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-plus"
          size="mini"
          @click="handleAddEdit((OperationType = 1))"
          id="btn-Add"
          >新增</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleEdit((row = rowForm), (OperationType = 3), (copyType = -1))"
          >编辑</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleEdit((row = rowForm), (OperationType = 2), (copyType = 1))"
          >复制</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-delete"
          size="mini"
          :disabled="single"
          @click="handleDelete"
          >删除
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_CheckBill(0, (form = rowForm))"
          >审核</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_CheckBill(1, (form = rowForm))"
          >反审核</el-button
        >
      </el-col>
      <!-- <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_De_Stop(0, (form = rowForm))"
          >禁用</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_De_Stop(1, (form = rowForm))"
          >反禁用</el-button
        >
      </el-col> -->
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_CloseBill(1, (form = rowForm))"
          >关闭</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_CloseBill(2, (form = rowForm))"
          >反关闭</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_CloseRow(0, (form = rowForm))"
          >行关闭</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_CloseRow(1, (form = rowForm))"
          >行反关闭</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          >导出</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-download"
          size="mini"
          @click="handleRowHide"
          >隐藏列设置</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-help" size="mini" @click="handleSearch"
          >搜 索</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button type="" icon="el-icon-refresh" size="mini" @click="resetQuery"
          >重 置</el-button
        >
      </el-col>
      <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
    </el-row>
    <div class="tableBox" v-loading="loading">
      <el-table
        :data="tableData"
        ref="tableData"
        max-height="750"
        :summary-method="getSummaries"
        @selection-change="handleSelectionChange"
        show-summary
        border
        @row-click="handleRowClick"
        :row-style="rowStyle"
        @cell-dblclick="handleDblclick"
        v-if="tableShow"
      >
        <template v-for="(item, index) in btList">
          <el-table-column
            type="selection"
            width="55"
            align="center"
            :fixed="item.fixed"
            v-if="item.type == 'checkbox'"
            :key="index"
          />
          <el-table-column
            :align="item.align"
            :prop="item.field"
            :label="item.title"
            :width="item.width"
            :key="item.sorderid"
            v-else-if="!item.hide && item.type != 'checkbox'"
            :sortable="item.sort"
            show-overflow-tooltip
            :fixed="item.fixed"
          >
            <template slot-scope="{ row, column }">
              <el-checkbox v-model="checked" v-if="item.type == 'checkbox'"></el-checkbox>
              <div :style="item.style">
                <span v-if="column.property.includes('日期')">{{
                  parseTime(row[column.property], "{y}-{m}-{d}")
                }}</span>
                <el-button
                  type="text"
                  @click="handleEdit(row, (OperationType = 3), (copyType = 1))"
                  v-else-if="column.property == '单据号'"
                  >{{ row.单据号 }}</el-button
                >
                <span v-else>{{ row[column.label] }}</span>
              </div>
            </template>
          </el-table-column>
        </template>
      </el-table>
      <pagination
        v-show="total > 0"
        :total="total"
        :page.sync="page"
        :limit.sync="pageSize"
        :pageSizes="pageSizes"
        @pagination="getList"
      />
      <el-dialog
        title="隐藏列设置"
        :visible.sync="openRowHide"
        width="816px"
        append-to-body
      >
        <RowSettings
          :colName="btResList"
          :HModName="HModName"
          @rowEditClose="rowSetClose"
          v-if="rowHideShow"
        />
      </el-dialog>
      <!-- 编辑 -->
         <!-- 编辑弹窗 -->
      <el-dialog
        :title="editDialogTitle"
        :visible.sync="openEdit"
        width="90%"
        append-to-body
        class="production-report-dialog"
        :before-close="handleEditClose"
        fullscreen
      >
          <ProductionReportEdit
            v-if="openEdit"
            :propOperationType="currentOperationType"
            :propLinterid="currentLinterid"
            :propHSouceBillType="currentHSouceBillType"
            :propCopyType="currentCopyType"
            @editClose="handleEditClose"
            @saveSuccess="handleSaveSuccess"
          />
      </el-dialog>
      <el-dialog
        :title="upload.title"
        :visible.sync="upload.open"
        width="1500px"
        append-to-body
      >
        <div style="margin-top: -20px">
          <el-button type="primary" @click="set_AddNew">导入数据</el-button>
          <el-button type="primary" @click="upload.open = false">退 出</el-button>
          <el-upload
            ref="upload"
            :limit="1"
            accept=".xlsx, .xls"
            style="display: inline-block; margin-left: 10px"
            :action="upload.url + '?updateSupport=' + upload.updateSupport"
            :disabled="upload.isUploading"
            :on-progress="handleFileUploadProgress"
            :on-success="handleFileSuccess"
          >
            <el-button type="primary">文件上传</el-button>
          </el-upload>
        </div>
        <el-table
          :data="uploadData"
          v-loading="uploadTableLoading"
          :row-class-name="uploadDataIndex"
          border
          height="550"
        >
          <el-table-column type="index" label="序号" width="55" align="center" />
          <el-table-column label="组织代码" prop="组织代码" align="center" width="120" />
          <el-table-column label="组织名称" prop="组织名称" align="center" width="120" />
          <el-table-column
            label="生产资源名称"
            prop="生产资源名称"
            align="center"
            width="120"
          />
          <el-table-column
            label="生产资源代码"
            prop="生产资源代码"
            align="center"
            width="120"
          />
          <el-table-column label="部门代码" prop="部门代码" align="center" width="120" />
          <el-table-column label="部门名称" prop="部门名称" align="center" width="120" />
          <el-table-column
            label="负责人代码"
            prop="负责人代码"
            align="center"
            width="120"
          />
          <el-table-column label="负责人" prop="负责人" align="center" width="120" />
          <el-table-column
            label="工作中心代码"
            prop="工作中心代码"
            align="center"
            width="120"
          />
          <el-table-column
            label="工作中心名称"
            prop="工作中心名称"
            align="center"
            width="120"
          />
          <el-table-column label="单班工时" prop="单班工时" align="center" width="120" />
          <el-table-column label="操作" align="center">
            <template slot-scope="scope">
              <el-button
                size="mini"
                type="text"
                icon="el-icon-delete"
                @click="uploadDataDelete(scope.row)"
                >删除</el-button
              >
            </template>
          </el-table-column>
        </el-table>
        <pagination
          v-show="uploadTotal > 0"
          :total="uploadTotal"
          :page.sync="uploadPage"
          :limit.sync="uploadPageSize"
          :pageSizes="uploadPageSizes"
          @pagination="currentPage"
        />
      </el-dialog>
    </div>
  </div>
</template>
<script>
import axios from "axios";
import RowSettings from "@/views/component/rowSettings";
import gySource from "@/views/basic/gySource";
import dayjs from "dayjs";
import ProductionReportEdit from "./ScICMOReportBillEdit";
export default {
  name: "ProductionReportList",
  components: { RowSettings, gySource,ProductionReportEdit  },
  props: {
    openPage: { type: String },
  },
  data() {
    return {
       // 编辑弹窗相关数据
      openEdit: false,
      editDialogTitle: "生产汇报单",
      currentOperationType: 1,
      currentLinterid: 0,
      currentHSouceBillType: "",
      currentCopyType: -1,
      iframeUrl: "",
      activeSeach: "",
      dateRange: [],
      HModName: "cgPoInStockBill",
      editShow: false,
      totalNameList: [],
      tableShow: true,
      openPrintList: false,
      printListShow: false,
      HClassTag: "ForFilteringSchemes", //过滤条件的class类
      HBillType: "1103",
      openBtnHide: false,
      btnHideShow: false,
      rowHideShow: false,
      openRowHide: false,
      copyType: 0,
      comparatorList: [
        { label: "=", value: "=" },
        { label: ">=", value: ">=" },
        { label: ">", value: ">" },
        { label: "<=", value: "<=" },
        { label: "<", value: "<" },
        { label: "<>", value: "<>" },
        { label: "包含", value: "7" },
        { label: "左包含", value: "8" },
        { label: "右包含", value: "9" },
        { label: "不包含", value: "10" },
      ],
      sWhere: "",
      sTime: "",
      eTime: "",
      rqsgList: [
        { label: "今天", value: 0 },
        { label: "近两天", value: 1 },
        { label: "近三天", value: 2 },
        { label: "近四天", value: 3 },
        { label: "近五天", value: 4 },
        { label: "近六天", value: 5 },
        { label: "近七天", value: 6 },
        { label: "近30天", value: 29 },
        { label: "近半年", value: 180 },
        { label: "近一年", value: 365 },
        { label: "任意间隔", value: -1 },
      ],
      hPriceTypeList: ["成本价", "结算价"],
      addBtnShow: false,
      zbIndex: null,
      zbSelForm: {}, //子表选中数据
      dialogTypeNum: null, //部门弹窗1,仓库弹窗2
      deptShow: false, //部门数据组件
      warehouseShow: false, //仓库数据组件
      materialShow: false, //物料数据组件
      deptform: {}, //弹窗选中数据
      openData: false, //数据弹窗
      organizationList: JSON.parse(sessionStorage.getItem("organizationList")), //组织列表
      dialogTitle: "",
      zuzhiId: "",
      subDisabled: false, //编辑页面保存按钮是否禁用(true禁用,false可用)
      OperationType: null, //保存类型(新增1修改3)
      HInterID: null,
      baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API/",
      currentRow: [],
      lastSelectedRowIndex: null, // 用于记录上次点击的行索引
      lastSelectedRow: null, // 上一次选中的行
      selectedRow: null, // 当前选中的行
      rowForm: {},
      checkedSysZb: [],
      editData: [], //生产资料子表
      editBtData: [], //子表表头
      activeName: "first",
      searchOpen: false,
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 日期范围
      dateRange: [],
      // 查询参数
      queryParams: {
        HOrgID: null,
        HName: null,
        HNumber: null,
        Comparator1: "",
        Comparator2: "",
        Comparator: "",
        ColContent1: "",
        ColContent2: "",
        ColContent: "",
        HInitTimeCycle: 29,
        HBeginDate: dayjs(new Date()).subtract(29, "d").format("YYYY-MM-DDTHH:mm:ss"),
        HEndDate: dayjs(new Date()).format("YYYY-MM-DDTHH:mm:ss"),
      },
      // 显示搜索条件
      showSearch: true,
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 遮罩层
      loading: true,
      // 禁用日期选择
      disableDataPicker: true,
      tyResList: [], //收料通知单列表(接口数据)
      btList: [], //收料通知单列表显示
      btResList: [],
      tableData: [], //收料通知单列表(分页显示)
      dataList: [],
      titleData: [
        "HItemID",
        "hmainid",
        "Hprocid",
        "HUSEORGID",
        "HCREATEORGID",
        "HParentID",
      ], //不需要显示的字段 可扩展
      pageSizes: [50, 100, 500, 5000, 50000],
      page: 1,
      pageSize: 50,
      total: 0,
      scollHeight: document.body.clientHeight * (38.056 / 100),
      // 表单参数
      form: {},
      // 表单校验
      rules: {
        HSupName: [{ required: true, message: "客户不能为空", trigger: "blur" }],
        HDate: [{ required: true, message: "日期不能为空", trigger: "blur" }],
        HExRate: [{ required: true, message: "汇率不能为空", trigger: "blur" }],
      },
      upload: {
        // 是否显示弹出层
        open: false,
        // 弹出层标题
        title: "",
        // 是否禁用上传
        isUploading: false,
        // 是否更新已经存在的数据
        updateSupport: 0,
        // 设置上传的请求头部
        // headers: { Authorization: "Bearer " + getToken() },
        // 上传的地址
        url: "http://47.96.97.237/API/Gy_Source/Gy_Source_Excel",
      },
      uploadData: [],
      alluploadList: [],
      uploadTableLoading: false,
      uploadPageSizes: [50, 100, 500, 5000, 50000],
      uploadPage: 1,
      uploadPageSize: 50,
      uploadTotal: 0,
    };
  },
  mounted() {
    this.queryParams.HOrgID = sessionStorage["Organization"];
    window.editGyClose = () => {
      this.editGyClose(); // 组件内的方法绑定到windows
    };
  },
  created() {
    this.riqiChange();
    // this.getList();
    this.handleQuery();
  },
  beforeDestroy() {
    // 组件销毁时清理全局方法,避免内存泄漏
    delete window.editGyClose;
  },
  methods: {
    onDateScanOptionChangerHandler(e) {
      this.queryParams.timeSpan = e;
      if (e == -1) {
        this.disableDataPicker = true;
        return;
      }
      this.disableDataPicker = false;
    },
    getSummaries(param) {
      const { columns, data } = param;
      const sums = [];
      columns.forEach((column, index) => {
        if (index === 0) {
          sums[index] = "合计";
          return;
        }
        const values = data.map((item) => Number(item[column.property]));
        if (this.totalNameList[index].totalRow) {
          if (!values.every((value) => isNaN(value))) {
            sums[index] = values.reduce((prev, curr) => {
              const value = Number(curr);
              if (!isNaN(value)) {
                return prev + curr;
              } else {
                return prev;
              }
            }, 0);
          } else {
            sums[index] = "";
          }
        }
      }, 1000);
      return sums;
    },
    //#region 获取公司名,根据公司进行定制化开发
    defaintOperationByCompanyName() {
      var result = false;
      axios
        .get(this.baseURL + "/Xt_getInfo/getCompanyName")
        .then((res) => {
          var data1 = res.data;
          if (data1.count == 1) {
            if (data1.data == "水务") {
              result = true;
            }
          }
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        });
      return result;
    },
    handleSellOpen() {
      this.$router.push("/sellBill");
    },
    handleSellOutOpen() {
      this.$router.push("/sellOutBill");
    },
    handleBtnHide() {
      this.btnHideShow = true;
      this.openBtnHide = true;
    },
    handleRowHide() {
      this.rowHideShow = true;
      this.openRowHide = true;
    },
    rowSetClose(val) {
      this.rowHideShow = false;
      this.tableShow = true;
      this.openRowHide = val;
      this.getList();
    },
    riqiChange() {
      if (this.queryParams.HInitTimeCycle == -1) {
        return;
      }
      const end = new Date();
      const start = new Date();
      start.setTime(start.getTime() - 3600 * 1000 * 24 * this.queryParams.HInitTimeCycle);
      const yyyyS = start.getFullYear();
      const mmS = String(start.getMonth() + 1).padStart(2, "0"); // 月份是从0开始的
      const ddS = String(start.getDate()).padStart(2, "0");
      const yyyyE = end.getFullYear();
      const mmE = String(end.getMonth() + 1).padStart(2, "0"); // 月份是从0开始的
      const ddE = String(end.getDate()).padStart(2, "0");
      this.sTime = yyyyS + "-" + mmS + "-" + ddS;
      this.eTime = yyyyE + "-" + mmE + "-" + ddE;
    },
    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 = {};
    },
    async getList() {
      this.tableShow = false;
      this.loading = true;
      if (this.pageSize == 0) {
        this.pageSize = 50;
      }
      if (this.sTime && this.eTime) {
        this.sWhere += " and CONVERT(varchar(100),日期, 23) >= '" + this.sTime + "'";
        this.sWhere += " and CONVERT(varchar(100),日期, 23) <= '" + this.eTime + "'";
      }
      try {
        let res = await axios.get(this.baseURL + "Sc_ICMOReportBill/list", {
          params: {
            sWhere: this.sWhere,
            user: sessionStorage["HUserName"],
          },
        });
        this.tyResList = [...JSON.parse(JSON.stringify(res.data.data))]; //总数据
        let data1 = res.data;
        let option = [];
        if (data1.code == 1) {
          this.btResList = data1.list; //生产资料接口表头数据
          this.total = data1.count;
          var data = []; //列字段数据
          var col = [];
          var totalArray = [];
          //给空的数组赋值
          for (var key in data1.list) {
            //循序遍历数组
            data.push({
              id: data1.list[key].ColmCols,
              name: data1.list[key].ColmCols,
              Type: data1.list[key].ColmType,
            }); //从每个对象中提取数据
          }
          //在列表左边添加勾选框
          col.push({ type: "checkbox", fixed: "left", totalRowText: "合计" });
          for (var i = 0; i < data.length; i++) {
            //遍历data数组重的数据
            if (this.titleData.indexOf(data[i].name) > -1) {
              //检查data【i】.name是否在数组中  //计算列
              col.push({
                field: data[i].id,
                title: data[i].name,
                align: "center",
                hide: true,
              }); //隐藏id列
            } else if (
              totalArray.indexOf(data[i].name) > -1 ||
              data[i].Type == "Decimal" ||
              data[i].Type == "Int32"
            ) {
              //计算列
              col.push({
                field: data[i].id,
                title: data[i].name,
                align: "center",
                sort: true,
                totalRow: true,
                width: 120,
              });
            } else {
              col.push({
                field: data[i].id,
                title: data[i].name,
                align: "center",
                sort: true,
                width: 200,
              });
            }
          }
          option.cols = [col];
          this.dataList = option;
          option.data = data1.data;
          var result = data1.data;
          var temp = "";
          for (var i = 0; i < result.length; i++) {
            if (temp != result[i]["hmainid"]) {
              temp = result[i]["hmainid"];
            } else {
              result[i].日期 = null;
              result[i].单据号 = "";
              /*result[i].状态 = "";*/
              result[i].红蓝单标记 = "";
              result[i].hsupid = "";
              result[i].客户 = "";
              result[i].HEmpID = "";
              result[i].业务员 = "";
              result[i].hmanagerid = "";
              result[i].主管 = "";
              result[i].hsecmanagerid = "";
              result[i].发货人 = "";
              result[i].hkeeperid = "";
              result[i].保管员 = "";
              result[i].HDeptID = "";
              result[i].部门 = "";
              result[i].销售方式 = "";
            }
          }
          option.data = result;
          this.DisPlay_HideColumn(
            this.HModName,
            sessionStorage["HUserName"],
            option,
            this.dataList
          );
        }
      } catch (err) {
        this.$modal.msgError(`获取收料通知单错误: ${err}`);
      }
    },
    DisPlay_HideColumn(HModName, user, option, dataOption) {
      this.totalNameList = [];
      axios
        .get(this.baseURL + "/Xt_grdAlignment_WMES/grdAlignmentWMESList", {
          params: {
            HModName: HModName,
            user: user,
          },
        })
        .then((res) => {
          let data1 = res.data;
          if (data1.data.length != 0) {
            var dataCol = []; //数据库查询出的列数据
            var newCols = [[]]; //对应数据库列顺序col
            newCols[0].push(option.cols[0][0]); //放入第一个checkbox
            dataCol = data1.data[0].HGridString.split(",");
            //列设置列数与页面列数是否一致
            if (dataCol.length == option.cols[0].length - 1) {
              //遍历寻找列设置对应列按顺序插入
              for (var j = 0; j < option.cols[0].length - 1; j++) {
                for (var i = 0; i < option.cols[0].length - 1; i++) {
                  var dataCols = dataCol[j].split("|");
                  //选择与datacols相应列进行修改
                  if (option.cols[0][i + 1]["field"] == dataCols[5]) {
                    //隐藏列
                    if (dataCols[1] == 1) {
                      option.cols[0][i + 1]["hide"] = true;
                    }
                    //设置列宽
                    if (dataCols[3] > 0) {
                      option.cols[0][i + 1]["width"] = dataCols[3];
                    }
                    //设置内容字体大小
                    if (data1.data[0].HFontSize != 0) {
                      option.cols[0][i + 1]["style"] =
                        "font-size:" + data1.data[0].HFontSize + "px;";
                    } else {
                      option.cols[0][i + 1]["style"] = "font-size:100%";
                    }
                    //显示列
                    if (
                      dataCols[1] == 0 &&
                      this.titleData.indexOf(option.cols[0][i + 1]["title"]) == -1
                    ) {
                      option.cols[0][i + 1]["hide"] = false;
                    }
                    //统计列
                    if (dataCols[6] == 1) {
                      option.cols[0][i + 1]["totalRow"] = true;
                    } else {
                      option.cols[0][i + 1]["totalRow"] = false;
                    }
                    //字体所在位置(左 居中 右)
                    switch (dataCols[2]) {
                      case "L":
                        option.cols[0][i + 1]["align"] = "left";
                        break;
                      case "M":
                        option.cols[0][i + 1]["align"] = "center";
                        break;
                      case "R":
                        option.cols[0][i + 1]["align"] = "right";
                        break;
                    }
                    //设置表格title属性显示别名
                    if (dataCols[4] != null && dataCols[4] != "") {
                      option.cols[0][i + 1]["title"] = dataCols[4];
                    }
                    newCols[0].push(option.cols[0][i + 1]);
                    break;
                  }
                }
              }
              //遍历循环后判断对应列数是否一致
              if (dataCol.length == newCols[0].length - 1) {
                option.cols = newCols;
                //取消冻结列
                for (var i = 1; i < option.cols[0].length - 1; i++) {
                  if (option.cols[0][i + 1]["fixed"] != null) {
                    option.cols[0][i + 1]["fixed"] = null;
                  } else {
                    break;
                  }
                }
                //冻结列
                if (data1.data[0].HFixCols != 0) {
                  for (var i = 0; i < data1.data[0].HFixCols; i++) {
                    if (
                      dataOption.cols[0].indexOf(option.cols[0][i + 1]["title"]) != -1
                    ) {
                      data1.data[0].HFixCols += 1;
                    }
                    option.cols[0][i + 1]["fixed"] = "left";
                  }
                }
                //设置列排序
                for (var i = 1; i < option.cols[0].length; i++) {
                  if (data1.data[0].HSortFlag == "是") {
                    option.cols[0][i]["sort"] = true;
                  } else {
                    option.cols[0][i]["sort"] = false;
                  }
                }
              }
            }
            this.btList = option.cols[0];
            this.btList.map((item) => {
              if (!item.hide) {
                this.totalNameList.push(item);
              }
            });
            if (data1.data[0].HPageSize == 0) {
              this.pageSize = 50;
            } else {
              this.pageSize = data1.data[0].HPageSize;
            }
            this.tableData = option.data;
            this.tableShow = true;
            this.loading = false;
          } else {
            this.btList = dataOption.cols[0];
            this.btList.map((item) => {
              if (!item.hide) {
                this.totalNameList.push(item);
              }
            });
            this.tableData = dataOption.data;
            this.tableShow = true;
            this.loading = false;
          }
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        });
    },
    renderHeader(h, { column, $index }) {
      // 新建一个 span
      let span = document.createElement(span); // 设置表头名称
      span.innerText = column.label;
      //临时插入 document
      document.body.appendChild(span); // 重点:获取 span 最小宽度,设置当前列,注意这里加了 20,字段较多时column.minWidth=span.getBoundingClientRect().width + 50.//移除 document 中临时的 span
      document.body.removeChild(span);
      return h(span, column.label);
    },
    //点击行
    handleRowClick(row, column, event) {
      this.lastSelectedRow = this.selectedRow; // 记录上一次选中的行
      this.selectedRow = row; // 记录当前选中的行
      this.lastSelectedRowIndex = this.tableData.indexOf(row);
      this.$refs.tableData.toggleRowSelection(row);
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.hmainid)) {
        return { background: "#ecf5ff" };
      }
    },
    //双击行
    handleDblclick(row, column, cell, event) {
      this.currentOperationType = 3;
      this.handleEdit(row, 3, -1);
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      // this.rowForm = {}
      this.ids = selection.map((item) => item.hmainid);
      this.single = selection.length != 1;
      this.multiple = !selection.length;
      if (!this.single) {
        this.rowForm = selection[0];
      }
    },
    //打开侧边搜索弹窗
    handleSearch() {
      this.searchOpen = true;
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.sWhere = "";
      if (this.queryParams.ColName && this.queryParams.Comparator) {
        var com = "";
        switch (this.queryParams.Comparator) {
          case "7":
            com = "like'%" + this.queryParams.ColContent + "%'";
            break;
          case "8":
            com = "like'%" + this.queryParams.ColContent + "'";
            break;
          case "9":
            com = "like'" + this.queryParams.ColContent + "%'";
            break;
          case "10":
            com = "not like'%" + this.queryParams.ColContent + "%'";
            break;
          default:
            com =
              "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'";
            break;
        }
        this.sWhere += " and " + this.queryParams.ColName + " " + com;
      }
      if (this.queryParams.ColName1 && this.queryParams.Comparator1) {
        var com1 = "";
        switch (this.queryParams.Comparator1) {
          case "7":
            com1 = "like'%" + this.queryParams.ColContent1 + "%'";
            break;
          case "8":
            com1 = "like'%" + this.queryParams.ColContent1 + "'";
            break;
          case "9":
            com1 = "like'" + this.queryParams.ColContent1 + "%'";
            break;
          case "10":
            com1 = "not like'%" + this.queryParams.ColContent1 + "%'";
            break;
          default:
            com1 =
              "" +
              this.queryParams.Comparator1 +
              "'" +
              this.queryParams.ColContent1 +
              "'";
            break;
        }
        this.sWhere += " and " + this.queryParams.ColName1 + " " + com1;
      }
      if (this.queryParams.ColName2 && this.queryParams.Comparator2) {
        var com2 = "";
        switch (this.queryParams.Comparator2) {
          case "7":
            com2 = "like'%" + this.queryParams.ColContent2 + "%'";
            break;
          case "8":
            com2 = "like'%" + this.queryParams.ColContent2 + "'";
            break;
          case "9":
            com2 = "like'" + this.queryParams.ColContent2 + "%'";
            break;
          case "10":
            com2 = "not like'%" + this.queryParams.ColContent2 + "%'";
            break;
          default:
            com2 =
              "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'";
            break;
        }
        this.sWhere += " and " + this.queryParams.ColName2 + " " + com2;
      }
      if (this.queryParams.HBillNo) {
        this.sWhere += " and 单据号 like '%" + this.queryParams.HBillNo + "%'";
      }
      // if (this.queryParams.HOrgID) {
      //   this.sWhere += " and HOrgID = '" + this.queryParams.HOrgID + "'";
      // }
      this.sWhere += this.addSWhereByOpenType();
      // this.sWhere += this.getOrgIDByUser();
      this.searchOpen = false;
      this.getList();
    },
    // 判断是直接打开页面还是其它页面通过选择按钮打开,并显示相应数据
    addSWhereByOpenType() {
      //获取参数
      var sWhere = "";
      //this.openPage判断是否有值,有代表其它页面通过选择按钮打开
      if (this.openPage) {
        sWhere += " and 禁用标记 != 'Y' and ISNULL(审核人,'')  != ''";
        return sWhere;
      }
      return sWhere;
    },
    //根据用户获取用户关联组织的过滤条件
    getOrgIDByUser() {
      var res = "";
      axios
        .get(this.baseURL + "/Xt_User/getOrgIDListByUser", {
          params: {
            HModName: this.HModName,
            user: sessionStorage["HUserName"],
            HOrgID: this.zuzhiId,
          },
        })
        .then((res) => {
          let result = res.data;
          if (result.count == 1) {
            if (result.data[0].sWhere == "1") {
              res = " and HUSEORGID = '" + this.zuzhiId + "'";
            } else {
              res = result.data[0].sWhere;
            }
          }
        })
        .catch((error) => {
          res = " and 1 = 0";
          this.$modal.msgError("接口请求失败!");
        });
      return res;
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.dateRange = [];
      this.sWhere = "";
      Object.assign(this.Parameters, {
        HBillNo: "",
        HInitTimeCycle: 29,
        HProjectNumber: "",
        HCusID: null,
        HMaterNumber: "",
        HMaterName: "",
        ColName1: "",
        ColName2: "",
        ColName: "",
        Comparator1: "",
        Comparator2: "",
        Comparator: "",
        ColContent1: "",
        ColContent2: "",
        ColContent: "",
      });
      this.riqiChange();
      this.resetForm("queryForm");
      this.getList();
    },
    //退出
    close() {
      this.tableShow = true;
      this.openEdit = false;
      this.getList();
    },
    //打开新增组件弹窗
    handleAddEdit() {
      this.currentOperationType = 1; // 无源单新增
      this.currentLinterid = 0;
      this.currentHSouceBillType = "";
      this.currentCopyType = -1;
      this.editDialogTitle = "新增生产汇报单";
      this.openEdit = true;
    },
    //打开修改组件弹窗
    handleEdit(row, currentOperationType, copyType) {
      if (!row || !row.hmainid) {
        this.$message.warning("请选择要操作的数据");
        return;
      }
      this.currentOperationType = currentOperationType;
      this.currentLinterid = row.hmainid;
      this.currentHSouceBillType = row.HSourceBillType || "";
      this.currentCopyType = copyType;
      if (currentOperationType === 3) {
        this.editDialogTitle = "编辑生产汇报单";
      } else if (currentOperationType === 5) {
        this.editDialogTitle = "复制生产汇报单";
      } else if (currentOperationType === 2) {
        this.editDialogTitle = "有源单新增生产汇报单";
      }
      this.openEdit = true;
    },
    // 关闭编辑弹窗
    handleEditClose() {
      this.openEdit = false;
      this.currentOperationType = 1;
      this.currentLinterid = 0;
      this.currentHSouceBillType = "";
      this.currentCopyType = -1;
    },
     // 保存成功回调
    handleSaveSuccess() {
      this.handleEditClose();
      this.getList(); // 刷新列表
      this.$message.success("操作成功");
    },
    /** 删除按钮操作 */
    handleDelete() {
      this.$modal
        .confirm("确认要删除吗,删除后不能恢复")
        .then(() => {
          if (!this.rowForm.审核人) {
            axios
              .get(this.baseURL + "Sc_ICMOReportBill/DeltetICMOReportBill", {
                params: {
                  HInter: this.rowForm.hmainid.toString(),
                  user: sessionStorage["HUserName"],
                },
              })
              .then((res) => {
                if (res.data.count == 1) {
                  this.handleQuery();
                  this.$modal.msgSuccess("删除成功");
                } else {
                  this.$modal.msgError("错误:" + result.code + result.Message);
                }
              })
              .catch((error) => {
                this.$modal.msgError("接口请求失败!");
              });
          } else {
            this.$modal.msgError("此条数据不是创建状态,无法删除!");
          }
        })
        .catch(() => {});
    },
    // 反审核/审核数据
    set_CheckBill(num, form) {
      var InterID = form.HItemID || form.HInterID || form.hmainid;
      //逻辑审核方法
      axios
        .get(this.baseURL + "/Sc_ICMOReportBill/AuditProcessReportList", {
          params: {
            HInterID: InterID,
            IsAudit: num,
            CurUserName: sessionStorage["HUserName"],
          },
        })
        .then((res) => {
          let result = res.data;
          if (result.code == 1) {
            this.$modal.msgSuccess("操作成功");
            this.getList();
          } else {
            this.$modal.msgError("错误:" + result.code + result.Message);
          }
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        });
    },
    // 关闭/反关闭数据
    async set_CloseBill(num, form) {
      let HInterID = form.HItemID || form.HInterID || form.hmainid;
      try {
        let res = await axios.get(
          `${this.baseURL}/Sc_ICMOReportBill/CloseSc_ICMOReportBill`,
          {
            params: {
              HInterID: HInterID,
              Type: num,
              user: sessionStorage["HUserName"],
            },
          }
        );
        let { data, Message, count } = res.data;
        if (count == 1) {
          this.handleQuery();
        } else {
          this.$modal.msgError(`${Message}`);
        }
      } catch (err) {
        this.$modal.msgError(`接口请求失败: ${err}`);
      }
    },
    // 行关闭/行反关闭数据
    async set_CloseRow(num, form) {
      let HInterID = form.HItemID || form.HInterID || form.hmainid;
      let HEntryID = form.HEntryID || form.hsubid;
      try {
        let res = await axios.get(
          `${this.baseURL}/Cg_POInStockBill/CloseRowCg_POInStockBill`,
          {
            params: {
              HInterID: HInterID,
              HEntryID: HEntryID,
              ISAudit: num,
              CurUserName: sessionStorage["HUserName"],
            },
          }
        );
        let { data, Message, count } = res.data;
        if (count == 1) {
          this.handleQuery();
        } else {
          this.$modal.msgError(`${Message}`);
        }
      } catch (err) {
        this.$modal.msgError(`接口请求失败: ${err}`);
      }
    },
    // 反禁用/禁用数据
    set_De_Stop(num, form) {
      var InterID = form.HItemID || form.HInterID;
      //逻辑审核方法
      axios
        .get(this.baseURL + "/Gy_Employee/StopGy_Employee", {
          params: {
            HInterID: InterID,
            IsStop: num,
            CurUserName: sessionStorage["HUserName"],
          },
        })
        .then((res) => {
          let result = res.data;
          if (result.code == 1) {
            this.$modal.msgSuccess("操作成功");
            this.getList();
          } else {
            this.$modal.msgError("错误:" + result.code + result.Message);
          }
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        });
    },
    //导出
    handleExport() {
      const ws = this.$XLSX.utils.json_to_sheet(this.tyResList); // 将数据转换为工作表
      const wb = this.$XLSX.utils.book_new(); // 创建一个新的工作簿
      this.$XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); // 将工作表添加到工作簿中,并命名为"Sheet1"
      this.$XLSX.writeFile(wb, `gySource_${new Date().getTime()}.xlsx`); // 导出文件
    },
    handleImport() {
      this.uploadData = [];
      this.upload.isUploading = false;
      this.upload.title = "导入";
      this.upload.open = true;
    },
    // 文件上传中处理
    handleFileUploadProgress(event, file, fileList) {
      this.upload.isUploading = true;
      this.uploadTableLoading = true;
    },
    // 文件上传成功处理
    handleFileSuccess(res, file, fileList) {
      // this.upload.open = false;
      this.upload.isUploading = true;
      this.$refs.upload.clearFiles();
      if (res.code == 1) {
        this.alluploadList = res.data;
        this.uploadData = this.getPage(this.uploadPage, this.alluploadList);
        this.uploadTotal = this.alluploadList.length;
        this.uploadTableLoading = false;
        // this.set_AddNew(res.data)
      } else {
        this.$alert(
          "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
            res.Message +
            "</div>",
          "导入结果",
          { dangerouslyUseHTMLString: true }
        );
      }
    },
    // 提交上传文件
    submitFileForm() {
      this.$refs.upload.submit();
    },
    set_AddNew() {
      var num = [];
      for (var i = 0; i < this.uploadData.length; i++) {
        if (this.uploadData[i] != "") {
          num.push(this.uploadData[i]);
        }
      }
      var sSubStr = JSON.stringify(num);
      var sMainSub = sSubStr + "&和" + sessionStorage["HUserName"];
      axios({
        method: "post",
        url: this.baseURL + "/Gy_Source/Gy_Source_btnSave",
        data: {
          sMainSub: sMainSub,
        },
      })
        .then((res) => {
          this.$alert(
            "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
              res.data.Message +
              "</div>",
            "导入结果",
            { dangerouslyUseHTMLString: true }
          );
          this.upload.open = false;
          this.getList();
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        });
    },
    uploadDataIndex({ row, rowIndex }) {
      row.index = rowIndex + 1;
    },
    uploadDataDelete(row) {
      this.$modal
        .confirm("确认要删除吗,删除后不能恢复")
        .then(() => {
          const deleteList = [row.index];
          const data = this.uploadData;
          this.uploadData = data.filter((item) => {
            return deleteList.indexOf(item.index) == -1;
          });
        })
        .catch(() => {});
    },
    getPage(page, list) {
      let sindex = (parseInt(page) - 1) * this.uploadPageSize;
      let eindex = parseInt(page) * this.uploadPageSize;
      let newList = list.slice(sindex, eindex);
      console.log(newList);
      return newList;
    },
    currentPage(val) {
      this.uploadPage = val.page;
      setTimeout(() => {
        this.uploadData = this.getPage(this.uploadPage, this.alluploadList);
      }, 100);
    },
  },
};
</script>
<style>
.xsckdBox .el-date-editor.el-input {
  width: 100%;
}
.form-item-inline > .el-form-item__content {
  display: flex;
  flex-direction: row;
  width: 60%;
}
</style>
src/views/component/printList/hBarPlanPrint copy.vue
File was deleted
src/views/component/printList/hBarPlanPrint.vue
@@ -38,58 +38,39 @@
        },
        ws_both_from_object() {
            let OpenTmp = decodeURIComponent(this.$route.query.OpenTmp)
            let apIUrl = ''
            let sql = ''
            if (this.$route.query.Type == 'Kf_SellOutBillList') {
                apIUrl = '/Kf_SellOutBill/cx'
                axios.get(this.baseURL + apIUrl, {
                    params: {
                        "HInterID": this.handleMessage.linterid
                        // , "HSubID": data[i].hsubid
                    },
                }).then(response => {
                    let result = response.data
                    this.json_data.recordset = result.data
                    //参数具体说明请参考帮助文档中的“WEB报表(B/S报表)->WEB报表客户端->启动参数说明”部分
                    var args = {
                        type: "preview", //设置不同的属性可以执行不同的任务,如:preview print pdf xls csv txt rtf img grd
                        // report: this.json_report, //report: JSON.stringify(json_report),
                        report: urlAddRandomNo('./static/grf/' + OpenTmp + '.grf'),
                        data: this.json_data //data: JSON.stringify(json_data)
                    };
                    webapp_ws_ajax_run(args);
                    // var reportViewer = rubylong.grhtml5.insertReportViewer("report_holder", "./static/grf/销售出库单.grf", this.json_data);
                    // reportViewer.start();
                }).catch(error => {
                    this.$modal.msgError("接口请求失败!");
                });
                sql = "exec h_p_Kf_SellOutBillList_PrintSellOutBill " + this.handleMessage.linterid.toString()
            } else if (this.$route.query.Type == 'HGy_BarCodeBill') {
                apIUrl = '/CommonModel/searchMethod'
                axios.get(this.baseURL + apIUrl, {
                    params: {
                        "sql": "select * from h_v_IF_BarCodeBillList where hmainid in(" + this.handleMessage.linterid.toString() + ") order by hmainid desc",
                        "user": sessionStorage["HUserName"],
                        "ModRightNameCheck": ''
                        // , "HSubID": data[i].hsubid
                    },
                }).then(response => {
                    let result = response.data
                    this.json_data.recordset = result.data
                    //参数具体说明请参考帮助文档中的“WEB报表(B/S报表)->WEB报表客户端->启动参数说明”部分
                    var args = {
                        type: "preview", //设置不同的属性可以执行不同的任务,如:preview print pdf xls csv txt rtf img grd
                        // report: this.json_report, //report: JSON.stringify(json_report),
                        report: urlAddRandomNo('./static/grf/' + OpenTmp + '.grf'),
                        data: this.json_data //data: JSON.stringify(json_data)
                    };
                    console.log(args,this.json_data)
                    webapp_ws_ajax_run(args);
                    // var reportViewer = rubylong.grhtml5.insertReportViewer("report_holder", "./static/grf/销售出库单.grf", this.json_data);
                    // reportViewer.start();
                }).catch(error => {
                    console.log(22222, error)
                    this.$modal.msgError("接口请求失败!");
                });
                sql = "select * from h_v_IF_BarCodeBillList where hmainid in(" + this.handleMessage.linterid.toString() + ") order by hmainid desc"
            }else if (this.$route.query.Type == 'HPOInStockBill') {
                sql = "select * from h_v_Sc_PrintMouldProdOutBillList where hmainid=" + this.handleMessage.linterid.toString()+ " order by hmainid"
            }
            axios.get(this.baseURL + '/CommonModel/searchMethod', {
                params: {
                    "sql": sql,
                    "user": sessionStorage["HUserName"],
                    "ModRightNameCheck": ''
                    // , "HSubID": data[i].hsubid
                },
            }).then(response => {
                let result = response.data
                this.json_data.recordset = result.data
                //参数具体说明请参考帮助文档中的“WEB报表(B/S报表)->WEB报表客户端->启动参数说明”部分
                var args = {
                    type: "preview", //设置不同的属性可以执行不同的任务,如:preview print pdf xls csv txt rtf img grd
                    // report: this.json_report, //report: JSON.stringify(json_report),
                    report: urlAddRandomNo('./static/grf/' + OpenTmp + '.grf'),
                    data: this.json_data //data: JSON.stringify(json_data)
                };
                console.log(args, this.json_data)
                webapp_ws_ajax_run(args);
                // var reportViewer = rubylong.grhtml5.insertReportViewer("report_holder", "./static/grf/销售出库单.grf", this.json_data);
                // reportViewer.start();
            }).catch(error => {
                console.log(22222, error)
                this.$modal.msgError("接口请求失败!");
            });
        }
    },
src/views/component/printList/index copy.vue
File was deleted
src/views/gyMaterial/GyMaterial.vue
@@ -50,11 +50,11 @@
            placeholder="请输入物料代码"
            style="width: 160px"
          />
          <el-button type="primary" @click="handleResCnz" style="margin-left: 10px">重新同步</el-button>
          <el-button type="primary" size="mini" @click="handleResCnz" style="margin-left: 10px">重新同步</el-button>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
          <el-button @click="resetQuery">重置</el-button>
          <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
          <el-button size="mini" @click="resetQuery">重置</el-button>
        </el-form-item>
      </el-form>
      <el-form :model="queryParams" ref="filterForm">
@@ -78,7 +78,7 @@
                        placeholder="请选择"
                        style="width: 100%"
                      >
                        <el-option value="0" label=""></el-option>
                        <!-- <el-option value="" label=""></el-option> -->
                        <el-option
                          v-for="(item, index) in visibleColumns"
                          :key="index"
@@ -93,7 +93,7 @@
                        placeholder="请选择"
                        style="width: 100%"
                      >
                        <el-option value="0" label=""></el-option>
                        <!-- <el-option value="0" label=""></el-option> -->
                        <el-option
                          v-for="(item, index) in comparatorList"
                          :key="index"
@@ -120,7 +120,7 @@
                        placeholder="请选择"
                        style="width: 100%"
                      >
                        <el-option value="0" label=""></el-option>
                        <!-- <el-option value="0" label=""></el-option> -->
                        <el-option
                          v-for="(item, index) in visibleColumns"
                          :key="index"
@@ -135,7 +135,7 @@
                        placeholder="请选择"
                        style="width: 100%"
                      >
                        <el-option value="0" label=""></el-option>
                        <!-- <el-option value="0" label=""></el-option> -->
                        <el-option
                          v-for="(item, index) in comparatorList"
                          :key="index"
@@ -162,7 +162,7 @@
                        placeholder="请选择"
                        style="width: 100%"
                      >
                        <el-option value="0" label=""></el-option>
                        <!-- <el-option value="0" label=""></el-option> -->
                        <el-option
                          v-for="(item, index) in visibleColumns"
                          :key="index"
@@ -177,7 +177,7 @@
                        placeholder="请选择"
                        style="width: 100%"
                      >
                        <el-option value="0" label=""></el-option>
                        <!-- <el-option value="0" label=""></el-option> -->
                        <el-option
                          v-for="(item, index) in comparatorList"
                          :key="index"
@@ -208,9 +208,8 @@
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="warning"
          type="primary"
          plain
          icon="el-icon-upload2"
          size="mini"
          @click="handleImport"
          >导入</el-button
@@ -218,9 +217,8 @@
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          type="primary"
          plain
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          >导出</el-button
@@ -229,8 +227,6 @@
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-document"
          size="mini"
          @click="handleNumAdd"
          >流水号新增</el-button
@@ -239,8 +235,6 @@
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          >新增</el-button
@@ -248,9 +242,6 @@
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-document-copy"
          size="mini"
          :disabled="single"
          @click="handleCopy"
@@ -259,9 +250,6 @@
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleEdit"
@@ -271,8 +259,6 @@
      <el-col :span="1.5">
        <el-button
          type="danger"
          plain
          icon="el-icon-delete"
          size="mini"
          :disabled="single"
          @click="handleDelete"
@@ -281,9 +267,6 @@
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-check"
          size="mini"
          :disabled="single"
          @click="handleAudit(0)"
@@ -292,9 +275,6 @@
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-close"
          size="mini"
          :disabled="single"
          @click="handleAudit(1)"
@@ -303,9 +283,6 @@
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-turn-off"
          size="mini"
          :disabled="single"
          @click="handleStop(0)"
@@ -314,9 +291,6 @@
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-open"
          size="mini"
          :disabled="single"
          @click="handleStop(1)"
@@ -325,9 +299,6 @@
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="info"
          plain
          icon="el-icon-setting"
          size="mini"
          @click="handleColumnSetting"
          >列设置</el-button
@@ -335,9 +306,6 @@
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="info"
          plain
          icon="el-icon-s-operation"
          size="mini"
          @click="handleButtonSetting"
          >按钮设置</el-button
@@ -346,8 +314,6 @@
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-folder-checked"
          size="mini"
          @click="handleSaveScheme"
          >保存方案</el-button
@@ -356,8 +322,6 @@
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-folder-opened"
          size="mini"
          @click="handleReadScheme"
          >读取方案</el-button
@@ -365,9 +329,6 @@
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="info"
          plain
          icon="el-icon-refresh"
          size="mini"
          @click="handleRefresh"
          >刷新</el-button
@@ -375,9 +336,6 @@
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="info"
          plain
          icon="el-icon-close"
          size="mini"
          @click="handleExit"
          >退出</el-button
@@ -386,8 +344,6 @@
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-edit"
          size="mini"
          @click="handleCorrect"
          >批改</el-button
@@ -396,8 +352,6 @@
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-edit"
          size="mini"
          @click="handleCorrect2"
          >批改(方案2)</el-button
@@ -583,8 +537,8 @@
      append-to-body
    >
      <div style="margin-top: -20px">
        <el-button type="primary" @click="handleImportSubmit">导入数据</el-button>
        <el-button type="primary" @click="upload.open = false">退 出</el-button>
        <el-button type="primary" size="mini" @click="handleImportSubmit">导入数据</el-button>
        <el-button type="primary" size="mini" @click="upload.open = false">退 出</el-button>
        <el-upload
          ref="upload"
          :limit="1"
@@ -595,7 +549,7 @@
          :on-progress="handleFileUploadProgress"
          :on-success="handleFileSuccess"
        >
          <el-button type="primary">文件上传</el-button>
          <el-button type="primary" size="mini">文件上传</el-button>
        </el-upload>
      </div>
      <el-table
@@ -688,12 +642,12 @@
        HModel: null,
        HOrgID: null,
        HProject: null,
        ColName: "0",
        ColName1: "0",
        ColName2: "0",
        Comparator: "0",
        Comparator1: "0",
        Comparator2: "0",
        ColName: "",
        ColName1: "",
        ColName2: "",
        Comparator: "",
        Comparator1: "",
        Comparator2: "",
        ColContent: "",
        ColContent1: "",
        ColContent2: "",
@@ -759,11 +713,13 @@
        .then((response) => {
          let data = response.data.data[0];
          this.user = data.Czymc;
          this.getOrganizations();
          this.queryParams.HOrgID = data.HUSEORGID;
          this.getTreeData();
          this.getProjectOptions();
          this.getList();
          this.getDefaultFilterScheme();
          //this.getDefaultFilterScheme();
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
@@ -776,9 +732,9 @@
        .then((response) => {
          if (response.data.count == 1) {
            this.organizationOptions = response.data.data;
            if (this.organizationOptions.length > 0) {
              this.queryParams.HOrgID = this.organizationOptions[0].ID;
            }
            // if (this.organizationOptions.length > 0) {
            //   this.queryParams.HOrgID = this.organizationOptions[0].ID;
            // }
          }
        })
        .catch((error) => {
@@ -1174,6 +1130,14 @@
    },
    
    handleRefresh() {
      // 刷新时清除表格选择并重置相关状态,保证复制/编辑/删除/审核等按钮被禁用
      if (this.$refs.tableData && this.$refs.tableData.clearSelection) {
        this.$refs.tableData.clearSelection();
      }
      this.selectedRow = null;
      this.ids = [];
      this.single = true;
      this.multiple = true;
      this.getList();
    },
    
@@ -1201,6 +1165,9 @@
    
    handleRowClick(row, column, event) {
        if(this.openPage){
        this.$emit('deptEmit', row, 3)
      }
      if (this.checkIsIframe()) {
        // 将当前选中的数据暴露到window中
        window.selectedRow = row;
@@ -1267,12 +1234,16 @@
    // 行样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.hmainid)) {
        return { background: "#ecf5ff" };
        return {  };
        // background: "#ecf5ff"
      }
    },
    
    // 双击行
    handleDblclick(row, column, cell, event) {
      if(this.openPage){
        this.$emit('deptEmitDb', row, 3)
      }
      if (this.checkIsIframe()) {
        // IFrame 双击 返回当前双击的数据
        window.parent.iFrameMaterialCallback(row);
@@ -1288,6 +1259,9 @@
      if (!this.single) {
        this.selectedRow = selection[0];
      }
      //   if(this.openPage){
      //   this.$emit('deptEmit', this.selectedRow, 3)
      // }
    },
      // 编辑关闭回调
  handleEditClose() {
src/views/purchase/postockInBack/Kf_POStockInBackBill.vue
@@ -2,11 +2,12 @@
    <div v-loading="formLoading" v-if="formShow">
        <div style=" margin-bottom: 10px; border-bottom: 1px solid #f6f6f6;">
            <el-button type="primary" @click="submitForm" :disabled="subDisabled">保 存</el-button>
            <el-button type="primary" @click="set_CheckBill(0)" :disabled="checkDisabled">审 核</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-form ref="form" :model="form" :rules="rules" label-width="100px">
            <el-tabs v-model="activeName" type="card">
                <el-tab-pane label="基本信息" name="first">
                    <el-row>
@@ -23,8 +24,8 @@
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="辅助字段" prop="HInnerBillNo">
                                <el-input v-model="form.HInnerBillNo" placeholder="请输入辅助字段" />
                            <el-form-item label="内部单据号" prop="HInnerBillNo">
                                <el-input v-model="form.HInnerBillNo" placeholder="请输入内部单据号" />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
@@ -32,40 +33,6 @@
                                <el-input v-model="form.HEmpName" placeholder="请输入业务员" disabled>
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(4, zhiyuanType = 'yewuyuan')"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <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, zhiyuanType = 'baoguanyuan')"></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, zhiyuanType = 'zhuguan')"></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, zhiyuanType = 'yanshou')"></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="请输入仓库" disabled>
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(2, ckType = 'form')"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
@@ -80,11 +47,69 @@
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="往来单位" prop="HSupName">
                            <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-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, ckType = 'form')"></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, zhiyuanType = 'tuiliaoyuan')"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <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, zhiyuanType = 'baoguanyuan')"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="负责人" prop="HManagerName">
                                <el-input v-model="form.HManagerName" placeholder="请输入负责人" disabled>
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(4, zhiyuanType = 'zhuguan')"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="源单类型" prop="HSourceBillType">
                                <el-select v-model="form.HSourceBillType" placeholder="请选择" style="width: 100%">
                                    <!-- <el-option v-for="(item, index) in HSourceBillTypeList" :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="HSourceBillNo">
                                <el-input v-model="form.HSourceBillNo" placeholder="请输入选单号" disabled>
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(openNum)"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="12">
                            <el-form-item label="摘要" prop="HExplanation">
                                <el-input v-model="form.HExplanation" placeholder="请输入摘要" />
                            </el-form-item>
                        </el-col>
                        <el-col :span="12">
@@ -195,55 +220,18 @@
                </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('单位页面还没有', scope.row, dwType = 'jldw')"
                            @dblclick.native="openDataDialog('单位页面还没有', scope.row, dwType = 'jldw')" />
                        <span>{{ scope.row.计量单位 }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="仓库" width="120">
                <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, ckType = 'zb')"
                            @dblclick.native="openDataDialog(2, scope.row, ckType = 'zb')" />
                    </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(9, scope.row)"
                            @dblclick.native="openDataDialog(9, scope.row)" />
                    </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('单位页面还没有', scope.row, dwType = 'kcfdw')"
                            @dblclick.native="openDataDialog('单位页面还没有', scope.row, dwType = 'kcfdw')" />
                    </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('单位页面还没有', scope.row, dwType = 'jbdw')"
                            @dblclick.native="openDataDialog('单位页面还没有', scope.row, dwType = 'jbdw')" />
                    </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('单位页面还没有', scope.row, dwType = 'fdw')"
                            @dblclick.native="openDataDialog('单位页面还没有', scope.row, dwType = 'fdw')" />
                    </template>
                </el-table-column>
                <el-table-column align="center" label="应收数量" width="120">
                    <template slot-scope="scope">
                        <el-input-number v-model="scope.row.HQtyMust" :min="1" style="width: 90px;"
                        <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">
                <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;"
                        <el-input-number v-model="scope.row.HQtyMust" :min="1" style="width: 90px;"
                            controls-position="right"></el-input-number>
                    </template>
                </el-table-column>
@@ -256,6 +244,35 @@
                <el-table-column align="center" label="金额" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HMoney }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="采购金额" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HOrderPrice }}</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, ckType = 'zb')"
                            @dblclick.native="openDataDialog(2, scope.row, ckType = 'zb')" />
                    </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(9, scope.row)"
                            @dblclick.native="openDataDialog(9, scope.row)" />
                    </template>
                </el-table-column>
                <el-table-column align="center" label="批次" width="120">
                    <template slot-scope="scope">
                        <el-input v-model="scope.row.HBatchNo" />
                    </template>
                </el-table-column>
                <el-table-column align="center" label="备注" width="120">
                    <template slot-scope="scope">
                        <el-input v-model="scope.row.HRemark" />
                    </template>
                </el-table-column>
                <el-table-column align="center" label="操作" width="55" fixed="right">
@@ -297,7 +314,7 @@
import moment from 'moment';
export default {
    name: 'Kf_StockOutRequestBill',
    name: 'Kf_POStockInBackBill',
    components: { Dept, Warehouse, Material, RowSettings, GyEmployee, GySupplier, GyStockPlace },
    props: {
        OperationType: { type: Number, },
@@ -308,7 +325,8 @@
    },
    data() {
        return {
            HModName: "Kf_StockOutRequestBill",
            HModName: "Kf_POStockInBackBill",
            checkDisabled: true,
            allVal: undefined,
            zhiyuanType: '',
            ckType: '',
@@ -332,7 +350,7 @@
            deptform: {},//弹窗选中数据
            openData: false,//数据弹窗
            dialogTitle: '',
            organizationList: [],//组织列表
            organizationList: JSON.parse(sessionStorage.getItem('organizationList')),//组织列表
            subDisabled: false,//编辑页面保存按钮是否禁用(true禁用,false可用)
            // OperationType: this.$route.query.OperationType,//保存类型(新增1修改3)
            HInterID: null,
@@ -380,40 +398,204 @@
            form: {},
            // 表单校验
            rules: {
                HDate: [
                    { required: true, message: "日期不能为空", trigger: "blur" }
                HEmpName: [
                    { required: true, message: "请选择业务员!", trigger: "blur" }
                ],
                HExRate: [
                    { required: true, message: "汇率不能为空", trigger: "blur" }
                HDeptName: [
                    { required: true, message: "请选择部门", trigger: "blur" }
                ],
                HSupName: [
                    { required: true, message: "请选择供应商!", trigger: "blur" }
                ],
                HWHName: [
                    { required: true, message: "请选择仓库!", trigger: "blur" }
                ],
                HSecManagerName: [
                    { required: true, message: "请选择退料员!", trigger: "blur" }
                ]
            }
        };
    },
    created() {
        this.fetchData()
        this.getHSourceBillType()
        this.getdata()
    },
    methods: {
        fetchData() {
            axios.get(this.baseURL + "/Web/GetOrganizations", {
        getHSourceBillType() {
            axios.get(this.baseURL + "/Web/GetHSourceBillType", {
                "HName": '采购退料单', "Num": 2
            }).then(response => {
                console.log(response)
                var HSourceBillTypes = "";
                if (response.data.count == 1) {
                    this.organizationList = response.data.data;//组织列表
                    let data = response.data.data
                    for (var i = 0; i < data.length; i++) {
                        HSourceBillTypes += data[i].HSourceBillType + data[i].HSourceBillTypeName;
                    }
                    console.log(111, HSourceBillTypes)
                }
            }).catch(error => {
                console.log(error)
                this.$modal.msgError("接口请求失败!");
            });
        },
        getdata() {
            this.formShow = false
            this.formLoading = true
            if ((this.OperationType == 1 && this.copyType != 1) || (!this.OperationType && !this.copyType)) {
            if (this.OperationType == 4) {
                this.reset()
                //新增获取单据号
                this.getHBillNo()
                if (this.HSouceBillType == "1105") {
                    this.setInit_PushBill_ByPOInStockBackBill();
                } else if (this.HSouceBillType == "1201") {
                    this.setInit_PushBill_ByPOStockInBillInit();
                }
            } else if ((this.OperationType == 1 && this.copyType != 1) || (!this.OperationType && !this.copyType)) {
                this.handleAdd()
            } else if (this.OperationType == 3 || this.copyType == 1) {
                this.handleUpdate()
            }
        },
        //#region 下推页面初始化-退料通知单
        setInit_PushBill_ByPOInStockBackBill() {
            //获取
            var data = getUrlVars_JSON().data;
            var dataArray = [];
            for (var i = 0; i < data.length; i++) {
                var temp = this.getPushSource_POInStockBackInit(data[i].hmainid, data[i].hsubid);
                if (temp != "none") {
                    dataArray.push(temp);
                } else {
                    return;
                }
            }
            this.form.HMainSourceInterID = 0
            this.form.HMainSourceEntryID = 0
            this.form.HMainSourceBillNo = ""
            this.form.HMainSourceBillType = this.HSouceBillType
            this.form.HDeptID = dataArray[0].HDeptID
            this.form.HDeptName = dataArray[0].部门
            this.form.HManagerID = dataArray[0].HManagerID
            this.form.HManagerName = dataArray[0].主管
            this.form.HWHID = dataArray[0].主表仓库ID == null ? 0 : dataArray[0].主表仓库ID
            this.form.HWHName = dataArray[0].主表仓库
            this.form.HEmpID = dataArray[0].HEmpID
            this.form.HEmpName = dataArray[0].业务员
            this.form.HSupID = dataArray[0].HSupID
            this.form.HSupName = dataArray[0].供应商
            this.form.HCurID = dataArray[0].HCurID
            this.form.HCurName = dataArray[0].币别
            this.form.HExRate = dataArray[0].汇率
            this.form.HAddress = data.交货地点
            this.form.HRemark = data.表头备注
            this.form.HInnerBillNo = data.内部单据号
            //子表  赋值
            this.editData = [];
            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].计量单位
                        , "HWHID": dataArray[i].HWHID
                        , "发料仓库": dataArray[i].收料仓库
                        , "HSPID": dataArray[i].HSPID
                        , "仓位名称": dataArray[i].仓位名称
                        , "HSecUnitID": dataArray[i].HSecUnitID
                        , "辅助单位": dataArray[i].辅助单位
                        , "HQty": dataArray[i].数量.toFixed(6)
                        , "HQtyMust": dataArray[i].数量.toFixed(6)
                        , "HPrice": dataArray[i].单价.toFixed(4)
                        , 'HDiscountRate': dataArray[i].折扣率                                                    //
                        , 'HRelTaxPrice': "0"
                        , "HTaxRate": dataArray[i].税率
                        , 'HTaxMoney': dataArray[i].税额                                                     //
                        , "HMoney": dataArray[i].金额.toFixed(2)
                        , "HRemark": dataArray[i].表体备注
                        , "HSourceInterID": dataArray[i].hmainid
                        , "HSourceEntryID": dataArray[i].hsubid
                        , "HSourceBillNo": dataArray[i].单据号
                        , "HSourceBillType": dataArray[i].HBillType
                        , "HRelationQty": "0"
                        , "HRelationMoney": "0"
                        , 'HPOOrderInterID': "0"
                        , 'HPOOrderEntryID': "0"
                        , 'HPOOrderBillNo': ""
                        , 'HSeOrderTaxPrice': dataArray[i].含税单价.toFixed(4)
                        , "HSeOrderInterID": dataArray[i].hmainid
                        , "HSeOrderEntryID": dataArray[i].hsubid
                        , "HSeOrderBillNo": dataArray[i].单据号
                    }
                );
            }
        },
        //#endregion
        //#region 下推页面初始化-采购入库单
        setInit_PushBill_ByPOStockInBillInit() {
            //获取
            var data = getUrlVars_JSON().data;
            var dataArray = [];
            for (var i = 0; i < data.length; i++) {
                var temp = getPushSource_POStockInBillInit(data[i].hmainid, data[i].hsubid);
                if (temp != "none") {
                    dataArray.push(temp);
                } else {
                    return;
                }
            }
            this.form.HInnerBillNo = dataArray[0].内部单据号
            this.form.HSupID = dataArray[0].HSupID
            this.form.HSupName = dataArray[0].供应商
            this.form.HEmpID = dataArray[0].HEmpID
            this.form.HEmpName = dataArray[0].业务员
            this.form.HWHID = dataArray[0].主表仓库ID
            this.form.HWHName = dataArray[0].主表仓库
            this.form.HKeeperID = dataArray[0].HKeeperID
            this.form.HKeeperName = dataArray[0].保管员
            this.form.HDeptName = dataArray[0].部门
            this.form.HDeptID = dataArray[0].HDeptID
            this.form.HManagerID = dataArray[0].HManagerID
            this.form.HManagerName = dataArray[0].负责人
            this.form.HExRate = dataArray[0].汇率
            this.form.HSourceBillType = this.HSouceBillType
            //子表  赋值
            this.editData = [];
            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].计量单位
                        , "HWHID": dataArray[i].HWHID
                        , "发料仓库": dataArray[i].收料仓库
                        , "HSPID": dataArray[i].HSPID
                        , "仓位名称": dataArray[i].仓位名称
                        , "HQty": dataArray[i].实收数量.toFixed(6) - dataArray[i].关联数量.toFixed(6)
                        , "HQtyMust": dataArray[i].实收数量.toFixed(6) - dataArray[i].关联数量.toFixed(6)
                        , "HPrice": dataArray[i].单价.toFixed(4)
                        , "HMoney": dataArray[i].金额.toFixed(2)
                        , "HOrderPrice": dataArray[i].采购金额
                        , "HRemark": dataArray[i].表体备注
                        , "HBatchNo": dataArray[i].批次
                        , "HSourceInterID": dataArray[i].hmainid
                        , "HSourceEntryID": dataArray[i].hsubid
                        , "HSourceBillNo": dataArray[i].单据号
                        , "HSourceBillType": dataArray[i].HBillType
                        , "HRelationQty": "0"
                        , "HRelationMoney": "0"
                    }
                );
            }
        },
        //#endregion
        // 获取参数_传递的JSON格式参数
        getUrlVars_JSON() {
            var datajson;
@@ -422,9 +604,10 @@
            datajson = JSON.parse(decodeURI(arr));
            return datajson;
        },
        //根据主内码与子内码获取源单销售订单数据
        getPushSourceBillInit(HSourceInterID, HSourceEntryID) {
            axios.get(this.baseURL + '/Xs_SeOrderBill/loadXs_SeOrderBill_Push', {
        //根据主内码与子内码获取源单退料通知单数据
        getPushSource_POInStockBackInit(HSourceInterID, HSourceEntryID) {
            var res = "none";
            axios.get(this.baseURL + '/Cg_POInStockBackBill/loadCg_POInStockBackBill_Push', {
                params: {
                    "HInterID": HSourceInterID
                    , "HSubID": HSourceEntryID
@@ -432,13 +615,36 @@
            }).then(response => {
                let result = response.data
                if (result.code == 1) { // 说明验证成功了,
                    this.temp = result.data[0];
                    res = result.data[0];
                } else {
                    this.temp = result.data;
                    res = result.data;
                }
            }).catch(error => {
                res = "none";
                this.$modal.msgError("接口请求失败!");
            });
            return res;
        },
        // 根据主内码与子内码获取源单采购入库单数据
        getPushSource_POStockInBillInit(HSourceInterID, HSourceEntryID) {
            var res = "none";
            axios.get(this.baseURL + '/Kf_POStockInBill/loadKf_POStockInBillEdit_Push', {
                params: {
                    "HInterID": HSourceInterID
                    , "HSubID": HSourceEntryID
                },
            }).then(response => {
                let result = response.data
                if (result.code == 1) { // 说明验证成功了,
                    res = result.data[0];
                } else {
                    res = result.data;
                }
            }).catch(error => {
                res = "none";
                this.$modal.msgError("接口请求失败!");
            });
            return res;
        },
        handleRowHide() {
            this.rowHideShow = true
@@ -468,19 +674,19 @@
                        this.form.HWHName = deptRow.仓库名称;
                    } else if (this.ckType == 'zb') {
                        this.editData[this.zbIndex].HWHID = deptRow.HItemID;
                        this.editData[this.zbIndex].仓库 = deptRow.仓库名称;
                        this.editData[this.zbIndex].发料仓库 = deptRow.仓库名称;
                    }
                    this.warehouseShow = false
                    this.openData = false
                } else if (num == 3) {
                    console.log(deptRow)
                    console.log(deptRow.计量单位名称)
                    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].HUnitID = deptRow.HUnitID;
                    this.editData[this.zbIndex].计量单位 = deptRow.计量单位名称
                    this.editData[this.zbIndex].HTaxPrice = deptRow.含税成本价
                    this.editData[this.zbIndex].HTaxRate = deptRow.默认税率
                    this.materialShow = false
                    this.openData = false
                } else if (num == 4) {
@@ -491,9 +697,9 @@
                        this.form.HKeeperName = deptRow.职员名称
                        this.form.HKeeperID = deptRow.HItemID
                    } else if (this.zhiyuanType == 'zhuguan') {
                        this.form.HMangerName = deptRow.职员名称
                        this.form.HMangerID = deptRow.HItemID
                    } else if (this.zhiyuanType == 'yanshou') {
                        this.form.HManagerName = deptRow.职员名称
                        this.form.HManagerID = deptRow.HItemID
                    } else if (this.zhiyuanType == 'tuiliaoyuan') {
                        this.form.HSecManagerName = deptRow.职员名称
                        this.form.HSecManagerID = deptRow.HItemID
                    }
@@ -506,7 +712,7 @@
                    this.openData = false
                } else if (num == 9) {
                    this.editData[this.zbIndex].HSPID = deptRow.HMainID;
                    this.editData[this.zbIndex].仓位 = deptRow.仓位名称;
                    this.editData[this.zbIndex].仓位名称 = deptRow.仓位名称;
                    this.gyStockPlaceShow = false
                    this.openData = false
                }
@@ -531,37 +737,39 @@
        //销售出库单新增编辑表单初始化
        reset() {
            this.form = {
                HBillNo:'',
                HInterID: 0,
                HBillNo: '',
                HDate: moment(new Date()).format('YYYY-MM-DD'),
                HSSDate:moment(new Date()).format('YYYY-MM-DD'),
                HAddress:'',
                HDeptName:'',
                HDeptID:0,
                HSupID:0,
                HSupName:'',
                HEmpID:0,
                HEmpName:'',
                HCurID:0,
                HCurName:'',
                HExRate:'',
                HManagerName:'',
                HManagerID:0,
                HPSStyleID:0,
                HPSStyleName:'',
                HSSID:0,
                HSSName:'',
                HLinkMan:'',
                HLinkPhone:'',
                HInnerBillNo:'',
                HRemark:'',
                HMaker:sessionStorage["HSupName"],
                HChecker:'',
                HCloseMan:'',
                HMakeDate:'',
                HCheckDate:'',
                HCloseDate:'',
                HUpDateDate:'',
                HDeleteDate:'',
                HReceiveDate: moment(new Date()).format('YYYY-MM-DD'),
                HAddress: '',
                HInnerBillNo: '',
                HEmpID: 0,
                HEmpName: '',
                HDeptName: '',
                HDeptID: 0,
                HSupID: 0,
                HSupName: '',
                HWHName: '',
                HWHID: 0,
                HSecManagerName: '',
                HSecManagerID: 0,
                HKeeperName: '',
                HKeeperID: 0,
                HManagerName: '',
                HManagerID: 0,
                HSourceBillType: '',
                HExplanation: '',
                HRemark: '',
                HMaker: sessionStorage["HSupName"],
                HChecker: '',
                HCloseMan: '',
                HUpDater: '',
                HDeleteMan: '',
                HMakeDate: moment(new Date()).format('YYYY-MM-DD'),
                HCheckDate: '',
                HCloseDate: '',
                HUpDateDate: '',
                HDeleteDate: '',
            }
            this.editData = []
@@ -626,16 +834,13 @@
            })
        },
        getHBillNo() {
            axios.get(this.baseURL + "/Web/GetMAXNum", {
            axios.get(this.baseURL + "/WEBSController/GetMaxBillNoAndID_Json", {
                params: {
                    HBillType: '1242'
                    HBillType: '1239'
                }
            }).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("接口请求失败!");
            });
@@ -646,74 +851,55 @@
        handleUpdate() {
            this.reset()
            let rowHmainid = this.linterid
            axios.get(this.baseURL + "/Kf_StockOutRequestBill/cx", {
            axios.get(this.baseURL + "/Kf_POStockInBackBill/cx", {
                params: { 'HInterID': rowHmainid }
            }).then(response => {
                if (response.data.count == 1) {
                    var result = response.data
                    var data = response.data.data[0]
                    this.allVal = data
                    this.form.BillType = data.HSourceBillType
                    if (this.copyType == 1) {
                        this.getHBillNo()
                        let date = new Date()
                        this.form.HDate = moment(date).format('YYYY-MM-DD')
                    } else {
                        this.form.HBillNo = data.单据号
                        // this.form.HInterID = data.HInterID
                        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.HAddress = data.交货地点
                    this.form.HDeptName = data.部门
                    this.form.HDeptID = data.HDeptID
                    this.form.HBillNo = data.单据号
                    this.form.HDate = moment(data.日期).format('YYYY-MM-DD')
                    this.form.HInnerBillNo = data.内部单据号
                    this.form.HSupID = data.HSupID
                    this.form.HSupName = data.供应商
                    this.form.HEmpID = data.HEmpID
                    this.form.HEmpName = data.业务员
                    this.form.HCurID = data.HCurID
                    this.form.HCurName = data.币别
                    this.form.HExRate = data.汇率
                    this.form.HManagerName = data.主管
                    this.form.HWHID = data.主表仓库ID
                    this.form.HWHName = data.主表仓库
                    this.form.HSecManagerID = data.HSecManagerID
                    this.form.HSecManagerName = data.验收员
                    this.form.HKeeperID = data.HKeeperID
                    this.form.HKeeperName = data.保管员
                    this.form.HDeptName = data.部门
                    this.form.HDeptID = data.HDeptID
                    this.form.HSourceBillType = data.源单类型
                    this.form.HManagerID = data.HManagerID
                    this.form.HPSStyleID = data.HPSStyleID
                    this.form.HPSStyleName = data.采购方式
                    this.form.HSSID = data.HSSID
                    this.form.HSSName = data.结算方式
                    this.form.HLinkMan = data.联系人
                    this.form.HLinkPhone = data.联系电话
                    this.form.HInnerBillNo = data.辅助字段
                    this.form.HManagerName = data.负责人
                    this.form.HExRate = data.汇率
                    this.form.HExplanation = data.摘要
                    this.form.HRemark = data.表头备注
                    this.form.HMaker = data.制单人
                    this.form.HChecker = data.审核人
                    this.form.HCloseMan = data.关闭人
                    this.form.HUpDater = data.修改人
                    this.form.HDeleteDate = data.作废人
                    this.form.HMakeDate = data.制单日期 == null ? "" : moment(data.制单日期).format('YYYY-MM-DD hh:mm:ss')
                    this.form.HCheckDate = data.审核日期 == null ? "" : moment(data.审核日期).format('YYYY-MM-DD hh:mm:ss')
                    this.form.HCloseDate = data.关闭日期 == null ? "" : moment(data.关闭日期).format('YYYY-MM-DD hh:mm:ss')
                    this.form.HUpDateDate = data.修改日期 == null ? "" : moment(data.修改日期).format('YYYY-MM-DD hh:mm:ss')
                    this.form.HDeleteDate = data.作废日期 == null ? "" : moment(data.作废日期).format('YYYY-MM-DD hh:mm:ss')
                    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].计量单位,
                                "HQty": result.data[i].数量,
                                "HRemark": result.data[i].表体备注,
                                "HPrice": result.data[i].单价,
                                "HMoney": result.data[i].金额,
                                "HTaxRate": result.data[i].税率,
                                "HTaxMoney": result.data[i].金额 * result.data[i].税率,
                                "HlineTotal": result.data[i].金额 + result.data[i].税额,
                                "HlineTotalBB": (result.data[i].金额 + result.data[i].税额) * result.data[i].汇率,
                                "HTaxPrice": result.data[i].含税单价,
                                "HDiscountRate": result.data[i].折扣率,
                                "HRelTaxPrice": data.实际含税单价,
                                "HDate": moment(result.data[i].交货日期).format('YYYY-MM-DD')
                                "HMaterID": result.data[i].HMaterID, "物料代码": result.data[i].物料代码, "物料名称": result.data[i].物料名称, "规格型号": result.data[i].规格型号, "HUnitID": result.data[i].HUnitID, "计量单位": result.data[i].计量单位,
                                "HQty": result.data[i].实收数量, "HQtyMust": result.data[i].应收数量, "HRemark": result.data[i].表体备注, "HPrice": result.data[i].单价, "HMoney": result.data[i].金额, "HOrderPrice": result.data[i].采购金额, "HWHID": result.data[i].HWHID, "发料仓库": result.data[i].收料仓库, "HSPID": result.data[i].HSPID, "仓位名称": result.data[i].仓位名称,
                                "HBatchNo": result.data[i].批次,
                                "HSourceBillNo": result.data[i].源单单号,    //源单号
                                "HSourceBillType": result.data[i].源单类型,   //源单类型
                                "HSourceInterID": result.data[i].源单主内码,   //源单主内码
                                "HSourceEntryID": result.data[i].源单子内码     //源单子内码
                            }
                        );
                    }
@@ -734,9 +920,11 @@
                this.$modal.msgError("请选择一行数据编辑!");
            } else {
                let obj = {
                    "HMaterID": 0, "物料代码": "", "物料名称": "", "规格型号": "", "HUnitID": 1, "计量单位": "", "HWHID": "0", "仓库": "",
                    "HSPID": "0", "仓位": "", "HSecUnitID": "1", "库存辅单位": "", "HBASEUNITID": "1", "基本单位": "",
                    "HEXTAUXUNITID": "1", "辅单位": "", "HQtyMust": "0", "HQty": "0", "HPrice": "0", "HMoney": "0", "HRemark": ""
                    "HMaterID": 0, "物料代码": "", "物料名称": "", "规格型号": "", "HUnitID": 0, "计量单位": "", "HQty": "", "HRemark": "",
                    "HPrice": "0", "HMoney": "0", "HOrderPrice": "0", "HWHID": 0, "发料仓库": "",
                    "HSPID": 0, "仓位名称": "", "HBatchNo": "", "HPOOrderInterID": 0, "HPOOrderEntryID": 0,
                    "HPOOrderBillNo": "", "HSeOrderInterID": 0, "HSeOrderEntryID": 0, "HSeOrderBillNo": "",
                    "HSourceBillNo": 0, "HSourceBillType": 0, "HSourceInterID": 0, "HSourceEntryID": 0,
                }
                if (index) {
                    this.editData.splice(index, 0, obj);
@@ -805,15 +993,60 @@
            }
        },
        // 编辑提交保存
        //#region 保存按钮
        submitForm() {
            //#region 判断源单状态
            if (this.OperationType == 1 || this.OperationType == 4) {
                if (this.form.HSourceBillType == "1105") {
                    for (var i = 0; i < this.editData.length; i++) {
                        var HSourceBillData = "";
                        var HSourceBillData = this.getPushSource_POInStockBackInit(this.editData[i].HSourceInterID, this.editData[i].HSourceEntryID);            //获取源单数据
                        if (HSourceBillData != "none") {
                            if (HSourceBillData == null) {
                                this.$modal.msgError("保存失败!第" + (i + 1) + "行:未查询到源单单据!");
                                return;
                            } else if (HSourceBillData.状态 != "已审核") {
                                var err = "保存失败!原因:第" + (i + 1) + "行-源单单据状态为“" + HSourceBillData.状态 + "”,不允许保存!";
                                this.$modal.msgError(err);
                                return;
                            } else if (HSourceBillData.行状态 == "已关闭") {
                                this.$modal.msgError("保存失败!第" + (i + 1) + "行:该行记录行状态为'已关闭'状态!");
                                return;
                            }
                        } else {
                            return;
                        }
                    }
                } else if (this.form.HSourceBillType == "1201") {
                    for (var i = 0; i < this.editData.length; i++) {
                        var HSourceBillData = "";
                        var HSourceBillData = this.getPushSource_POStockInBillInit(this.editData[i].HSourceInterID, this.editData[i].HSourceEntryID);            //获取源单数据
                        if (HSourceBillData != "none") {
                            if (HSourceBillData == null) {
                                this.$modal.msgError("保存失败!第" + (i + 1) + "行:未查询到源单单据!");
                                return;
                            }
                        } else {
                            return;
                        }
                    }
                }
                else {
                    this.$modal.msgError('当前不支持该源单!!')
                    return
                }
            }
            this.set_SaveBill();
        },
        // 编辑提交保存
        set_SaveBill() {
            this.$refs["form"].validate(valid => {
                if (valid) {
                    let fhck = false
                    this.editData.map((item, index) => {
                        if (!item.仓库) {
                        if (!item.物料代码) {
                            fhck = true
                            this.$modal.msgError("第" + (index + 1) + "行:仓库未选择!");
                            this.$modal.msgError("第" + (index + 1) + "行:物料代码不能为空!");
                        }
                    })
                    this.$nextTick(() => {
@@ -824,15 +1057,16 @@
                            var sMainSub = sMainStr + ';' + sSubStr + ';' + this.OperationType + ";" + sessionStorage["HUserName"] + ';' + sAllStr;
                            axios({
                                method: 'post',
                                url: this.baseURL + "/Kf_StockOutRequestBill/StockOutRequestBillEdit",
                                url: this.baseURL + "/Kf_POStockInBackBill/POStockInBackBillEdit",
                                data: {
                                    'sMainSub': sMainSub
                                },
                            }).then(response => {
                                if (response.data.count == 1) {
                                    this.subDisabled = true//设置保存按钮不可用
                                    this.subDisabled = true//设置保存按钮不可用
                                    this.checkDisabled = false
                                    this.$modal.msgSuccess(response.data.Message);
                                    this.close()
                                    // this.close()
                                } else {
                                    this.$modal.msgError(response.data.Message);
                                }
@@ -845,15 +1079,15 @@
            });
        },
        // 反审核/审核数据
        set_CheckBill(num, form) {
            var InterID = form.hmainid || form.HInterID
        set_CheckBill(num) {
            //逻辑审核方法
            axios.get(this.baseURL + "/Kf_SellOutBill/AuditKf_SellOutBill", {
            axios.get(this.baseURL + "/Kf_POStockInBackBill/AuditProcessReportList", {
                params: { "HInterID": InterID, "IsAudit": num, "CurUserName": sessionStorage["HUserName"] }
            }).then(response => {
                let result = response.data
                if (result.code == 1) {
                    this.$modal.msgSuccess('操作成功');
                    this.close()
                }
                else {
                    this.$modal.msgError("错误:" + result.code + result.Message,);
src/views/purchase/postockInBack/Kf_POStockInBackBillList.vue
@@ -148,10 +148,10 @@
            </el-collapse>
        </el-form>
        <el-row :gutter="10" class="mb8" style="margin-top: 10px">
            <el-col :span="1.5">
              <!-- <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddEdit((OperationType = 1))"
                    id="btn-Add">新增</el-button>
            </el-col>
            </el-col> -->
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
                    @click="handleEdit((row = rowForm), (OperationType = 3))">编辑</el-button>
@@ -161,7 +161,44 @@
                </el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single"
                    @click="set_CheckBill(0)">审核
                </el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single"
                    @click="set_CheckBill(1)">反审核
                </el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single"
                    @click="set_CloseBill(0)">关闭
                </el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single"
                    @click="set_CloseBill(1)">反关闭
                </el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single"
                    @click="set_DropBill(0)">作废
                </el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single"
                    @click="set_DropBill(1)">反作废
                </el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-date" size="mini" @click="handleRowHide">隐藏列设置</el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-printer" size="mini" @click="get_PrintReport">打印</el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-printer" size="mini" :disabled="single"
                    @click="get_BarCodeDetail">条码明细</el-button>
            </el-col>
        </el-row>
        <div class="tableBox" v-loading="loading">
@@ -179,7 +216,7 @@
                            <div :style="item.style">
                                <span v-if="column.property.includes('日期')">{{
                                    parseTime(row[column.property], "{y}-{m}-{d}")
                                    }}</span>
                                }}</span>
                                <el-button type="text" @click="handleEdit(row, (OperationType = 3))"
                                    v-else-if="column.property == '单据号'">{{ row.单据号 }}</el-button>
                                <span v-else>{{ row[column.label] }}</span>
@@ -197,9 +234,12 @@
            <el-dialog title="编辑" :visible.sync="openEdit" width="1480px" append-to-body class="xsckdBox"
                @close="close">
                <edit :OperationType="OperationType" :linterid="this.rowForm.hmainid"
                    :HSouceBillType="this.rowForm.HSourceBillType" :copyType="copyType" @editClose="editClose"
                    HSouceBillType="0" :copyType="copyType" @editClose="editClose"
                    v-if="editShow" />
            </el-dialog>
            <PrintList :linterid="this.rowForm.hmainid" :MyMsg="this.rowForm.hmainid" Type="HPOInStockBill"
                HModName="HPOInStockBill" @rowEditClose="rowSetClose" v-if="printListShow" />
            <BarCodeDetail :visible.sync="barCodeDetailShow" ref="barcodeDetail" />
        </div>
    </div>
</template>
@@ -207,7 +247,7 @@
<script>
import axios from "axios";
import RowSettings from "@/views/component/rowSettings";
import Edit from "@/views/warehouse/shipment/Kf_StockOutRequestBill.vue";
import Edit from "@/views/purchase/postockInBack/Kf_POStockInBackBill.vue";
import PrintList from "@/views/component/printList";
import BarCodeDetail from '@/views/component/BarCodeDetail'               //条码明细组件
import moment from "moment";
@@ -410,7 +450,7 @@
                        this.total = data1.count;
                        var data = []; //列字段数据
                        var col = [];
                        var totalArray = ["金额","采购金额","应退数量","实退数量"];
                        var totalArray = ["金额", "采购金额", "应退数量", "实退数量"];
                        //给空的数组赋值
                        for (var key in data1.list) {
                            //循序遍历数组
@@ -857,6 +897,97 @@
                });
            }).catch(() => { });
        },
        set_CheckBill(num) {
            //逻辑审核方法
            axios.get(this.baseURL + "/Kf_POStockInBackBill/AuditProcessReportList", {
                params: { "HInterID": this.rowForm.hmainid, "IsAudit": num, "CurUserName": sessionStorage["HUserName"] }
            }).then(response => {
                let result = response.data
                if (result.code == 1) {
                    this.checkDisabled = true
                    this.abandoncheckDisabled = false
                    this.$modal.msgSuccess('操作成功');
                }
                else {
                    this.$modal.msgError("错误:" + result.code + result.Message,);
                }
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
        },
        set_CloseBill(num) {
            //逻辑关闭方法
            axios.get(this.baseURL + "/Kf_POStockInBackBill/CloseKf_POStockInBackBill", {
                params: { "HInterID": this.rowForm.hmainid, "Type": num, "CurUserName": sessionStorage["HUserName"] }
            }).then(response => {
                let result = response.data
                if (result.code == 1) {
                    this.checkDisabled = true
                    this.abandoncheckDisabled = false
                    this.$modal.msgSuccess('操作成功');
                }
                else {
                    this.$modal.msgError("错误:" + result.code + result.Message,);
                }
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
        },
        set_DropBill(num) {
            //逻辑作废方法
            axios.get(this.baseURL + "/Kf_POStockInBackBill/DropKf_POStockInBackBill", {
                params: { "HInterID": this.rowForm.hmainid, "Type": num, "CurUserName": sessionStorage["HUserName"] }
            }).then(response => {
                let result = response.data
                if (result.code == 1) {
                    this.checkDisabled = true
                    this.abandoncheckDisabled = false
                    this.$modal.msgSuccess('操作成功');
                }
                else {
                    this.$modal.msgError("错误:" + result.code + result.Message,);
                }
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
        },
        //打印
        get_PrintReport() {
            if (this.ids.length != 1) {
                this.$modal.msgError("请选择一行数据");
            } else {
                 this.printListShow = true;
                            this.openPrintList = true;
                // axios.get(this.baseURL + "/Kf_SellOutBill/CheckSellOutBill_IsExist", {
                //         params: { HInterID: this.rowForm.hmainid },
                //     })
                //     .then((response) => {
                //         var result = response.data;
                //         if (result.count == 1) {
                //             this.printListShow = true;
                //             this.openPrintList = true;
                //             // this.$router.push({ path:'/printList', query: { linterid: this.rowForm.hmainid,MyMsg:this.rowForm.hmainid,Type:'Kf_SellOutBillList' }})
                //         } else {
                //             this.$modal.msgError(result.code + result.Message);
                //         }
                //     })
                //     .catch((error) => {
                //         this.$modal.msgError("接口请求失败!");
                //     });
            }
            //  var content= ['../../BaseSet/SRM_OpenTmpList.html?linterid=' + data[0].hmainid.toString() + '&MyMsg=' + data[0].hmainid.toString() + '&Type=Kf_SellOutBillList', 'yes']
        },
        //#region 条码明细
        get_BarCodeDetail() {
            // if (this.selectedRow.length !== 1) {
            //   this.$message.warning('请选择一行数据查看条码明细!')
            //   return
            // }
            this.barCodeDetailShow = true
            this.$nextTick(() => {
                this.$refs.barcodeDetail.open(this.rowForm)
            })
        },
    },
};
</script>
src/views/scMould/basicModeling/Gy_MaterialPackingRelationList.vue
@@ -131,6 +131,36 @@
                </el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single"
                    @click="set_CheckBill(0)">审核
                </el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single"
                    @click="set_CheckBill(1)">反审核
                </el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single"
                    @click="set_CloseBill(0)">关闭
                </el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single"
                    @click="set_CloseBill(1)">反关闭
                </el-button>
            </el-col>
    <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single"
                    @click="set_DropBill(0)">作废
                </el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single"
                    @click="set_DropBill(1)">反作废
                </el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-date" size="mini" @click="handleRowHide">隐藏列设置</el-button>
            </el-col>
        </el-row>
@@ -149,7 +179,7 @@
                            <div :style="item.style">
                                <span v-if="column.property.includes('日期')">{{
                                    parseTime(row[column.property], "{y}-{m}-{d}")
                                }}</span>
                                    }}</span>
                                <el-button type="text" @click="handleEdit(row, (OperationType = 3))"
                                    v-else-if="column.property == '单据号'">{{ row.单据号 }}</el-button>
                                <span v-else>{{ row[column.label] }}</span>
@@ -177,7 +207,7 @@
<script>
import axios from "axios";
import RowSettings from "@/views/component/rowSettings";
import Edit from "@/views/warehouse/shipment/Kf_StockOutRequestBill.vue";
import Edit from "@/views/scMould/basicModeling/Gy_MaterialPackingRelation_Edit.vue";
import PrintList from "@/views/component/printList";
import BarCodeDetail from '@/views/component/BarCodeDetail'               //条码明细组件
import moment from "moment";
@@ -825,6 +855,60 @@
                });
            }).catch(() => { });
        },
        set_CheckBill(num) {
            //逻辑审核方法
            axios.get(this.baseURL + "/Sc_MouldinventoryBill/CheckGy_MaterialMouldBillMain", {
                params: { "HInterID": this.rowForm.hmainid, "IsAudit": num, "CurUserName": sessionStorage["HUserName"] }
            }).then(response => {
                let result = response.data
                if (result.code == 1) {
                    this.checkDisabled = true
                    this.abandoncheckDisabled = false
                    this.$modal.msgSuccess('操作成功');
                }
                else {
                    this.$modal.msgError("错误:" + result.code + result.Message,);
                }
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
        },
        set_CloseBill(num) {
            //逻辑关闭方法
            axios.get(this.baseURL + "/Gy_MaterialPackingRelation/CloseGy_MaterialPackingRelation", {
                params: { "HInterID": this.rowForm.hmainid, "IsAudit": num, "CurUserName": sessionStorage["HUserName"] }
            }).then(response => {
                let result = response.data
                if (result.code == 1) {
                    this.checkDisabled = true
                    this.abandoncheckDisabled = false
                    this.$modal.msgSuccess('操作成功');
                }
                else {
                    this.$modal.msgError("错误:" + result.code + result.Message,);
                }
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
        },
        set_DropBill(num) {
            //逻辑作废方法
            axios.get(this.baseURL + "/Gy_MaterialPackingRelation/DeleteGy_MaterialPackingRelation", {
                params: { "HInterID": this.rowForm.hmainid, "IsAudit": num, "CurUserName": sessionStorage["HUserName"] }
            }).then(response => {
                let result = response.data
                if (result.code == 1) {
                    this.checkDisabled = true
                    this.abandoncheckDisabled = false
                    this.$modal.msgSuccess('操作成功');
                }
                else {
                    this.$modal.msgError("错误:" + result.code + result.Message,);
                }
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
        },
    },
};
</script>
src/views/scMould/basicModeling/Gy_MaterialPackingRelation_Edit.vue
New file
@@ -0,0 +1,830 @@
<template>
    <div v-loading="formLoading" v-if="formShow">
        <div style=" margin-bottom: 10px; border-bottom: 1px solid #f6f6f6;">
            <el-button type="primary" @click="submitForm" :disabled="subDisabled">保 存</el-button>
            <el-button type="primary" @click="close">退 出</el-button>
            <el-button type="primary" @click="set_CheckBill(0)" :disabled="checkDisabled">审 核</el-button>
            <el-button type="primary" @click="set_CheckBill(1)" :disabled="abandoncheckDisabled">反审核</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="请输入单据号" disabled />
                            </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="HProjectName">
                                <el-input v-model="form.HProjectName" placeholder="请输入项目名称" />
                            </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"
                                        @click="openDataDialog(7)"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="物料代码" prop="HMaterNumber">
                                <el-input v-model="form.HMaterNumber" placeholder="请输入物料代码" disabled>
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(3)"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="物料名称" prop="HMaterName">
                                <el-input v-model="form.HMaterName" placeholder="请输入物料名称" disabled />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="规格型号" prop="HMaterModel">
                                <el-input v-model="form.HMaterModel" placeholder="请输入规格型号" disabled />
                            </el-form-item>
                        </el-col>
                        <el-col :span="12">
                            <el-form-item label="备注" prop="HRemark">
                                <el-input v-model="form.HRemark" placeholder="请输入备注" />
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="组织" prop="HOrgID" label-width="128px">
                                <el-select v-model="form.HOrgID" placeholder="请选择" disabled>
                                    <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name"
                                        :value="item.ID">
                                    </el-option>
                                </el-select>
                            </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.HMouldNumber" placeholder="请输入包装容器代码"
                            @keyup.native.f7="openDataDialog(8, scope.row)"
                            @dblclick.native="openDataDialog(8, scope.row)" />
                    </template>
                </el-table-column>
                <el-table-column align="center" label="包装容器名称" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HMouldName }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="包装容器分类" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HMouldType }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="包装容器用途" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HMouldPurpose }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="包装容器长度" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HMouldLength }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="包装容器高度" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HMouldHeight }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="折叠高度" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HMouldFoldHeight }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="容器包装产品数量" width="130">
                    <template slot-scope="scope">
                        <el-input-number v-model="scope.row.HSNP" :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">
                        <el-select v-model="scope.row.HTransPackFlag" placeholder="请选择" style="width: 100%">
                            <el-option label="否" :value='0' />
                            <el-option label="是" :value='1' />
                        </el-select>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="发货容器标记" width="120">
                    <template slot-scope="scope">
                        <el-select v-model="scope.row.HSendPackFlag" placeholder="请选择" style="width: 100%">
                            <el-option label="否" :value='0' />
                            <el-option label="是" :value='1' />
                        </el-select>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="默认周转容器标记" width="130">
                    <template slot-scope="scope">
                        <el-select v-model="scope.row.HDefaultTransPackFlag" placeholder="请选择" style="width: 100%">
                            <el-option label="否" :value='0' />
                            <el-option label="是" :value='1' />
                        </el-select>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="默认发货容器标记" width="130">
                    <template slot-scope="scope">
                        <el-select v-model="scope.row.HDefaultSendPackFlag" placeholder="请选择" style="width: 100%">
                            <el-option label="否" :value='0' />
                            <el-option label="是" :value='1' />
                        </el-select>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="启用标记" width="120">
                    <template slot-scope="scope">
                        <el-select v-model="scope.row.HUseFlag" placeholder="请选择" style="width: 100%">
                            <el-option label="否" :value='0' />
                            <el-option label="是" :value='1' />
                        </el-select>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="备注" width="120">
                    <template slot-scope="scope">
                        <el-input v-model="scope.row.HRemark" />
                    </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" :openPage="HModName" v-if="deptShow" />
            <Warehouse @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="warehouseShow" />
            <Material @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="materialShow" />
            <GyEmployee @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyEmployeeShow" />
            <GySupplier @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gySupplierShow" />
            <GyStockPlace @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyStockPlaceShow" />
            <GyCustomer @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyCustomerShow" />
            <GyMould @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyMouldShow" />
            <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 Dept from '@/views/basic/gy/gyDepartment.vue'
import Warehouse from '@/views/basic/gyWarehouse/gyWarehouse.vue'
import Material from '@/views/gyMaterial/GyMaterial.vue'
import GyEmployee from '@/views/basic/gyEmployee/gyEmployee.vue'
import GySupplier from '@/views/basic/gy/gySupplier.vue'
import GyStockPlace from '@/views/basic/gyStockPlace/gyStockPlace.vue'
import GyCustomer from '@/views/GyCustomer'
import GyMould from '@/views/scMould/basicModeling/Gy_MouldFileList.vue'
import moment from 'moment';
export default {
    name: 'Kf_StockOutRequestBill',
    components: { Dept, Warehouse, Material, RowSettings, GyEmployee, GySupplier, GyStockPlace, GyCustomer, GyMould },
    props: {
        OperationType: { type: Number, },
        linterid: { type: Number, },
        HSouceBillType: { type: String, },
        propsData: { type: String, },
        copyType: { type: Number, },
    },
    data() {
        return {
            HModName: "Kf_StockOutRequestBill",
            checkDisabled: true,
            abandoncheckDisabled: true,
            allVal: undefined,
            zhiyuanType: '',
            ckType: '',
            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,//物料数据组件
            gyEmployeeShow: false,//销售员数据组件
            gySupplierShow: false,
            gyStockPlaceShow: false,
            gyCustomerShow: false,
            gyMouldShow: false,
            deptform: {},//弹窗选中数据
            openData: false,//数据弹窗
            dialogTitle: '',
            organizationList: JSON.parse(sessionStorage.getItem('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: {
                HCusName: [
                    { required: true, message: "客户不能为空", trigger: "blur" }
                ],
                HMaterNumber: [
                    { required: true, message: "物料信息不能为空", trigger: "blur" }
                ]
            }
        };
    },
    created() {
        this.getdata()
    },
    methods: {
        getdata() {
            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;
        },
        //根据主内码与子内码获取源单销售订单数据
        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
        },
        organizationChange(val) {
            // let options=undefined
            //  this.form=this.organizationList.find(option => option.ID === val)?.Name || '';
        },
        //部门弹窗赋值
        dbEmitData(deptRow, num) {
            // num=1部门 num=2出库仓库
            if (deptRow.HItemID||deptRow.hmainid) {
                if (num == 3) {
                    this.form.HMaterID = deptRow.HItemID;
                    this.form.HMaterNumber = deptRow.物料代码;
                    this.form.HMaterName = deptRow.物料名称;
                    this.form.HMaterModel = deptRow.规格型号
                    this.materialShow = false
                    this.openData = false
                } else if (num == 7) {
                    this.form.HCusName = deptRow.客户名称
                    this.form.HCusID = deptRow.HItemID
                    this.gyCustomerShow = false
                    this.openData = false
                } else if (num == 8) {
                    this.editData[this.zbIndex].HMouldID = deptRow.hmainid;
                    this.editData[this.zbIndex].HMouldNumber = deptRow.模具编号;
                    this.editData[this.zbIndex].HMouldName = deptRow.模具名称;
                    this.gyMouldShow = 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 = {
                HInterID: 0,
                HBillNo: '',
                HDate: moment(new Date()).format('YYYY-MM-DD'),
                HProjectName: '',
                HCusName: '',
                HCusID: 0,
                HMaterNumber: '',
                HMaterID: 0,
                HMaterName: '',
                HMaterModel: '',
                HOrgID: sessionStorage["OrganizationID"] - 0,
                HRemark: '',
                HMaker: sessionStorage["HSupName"],
                HChecker: '',
                HDeleteMan: '',
                HUpDater: '',
                HCloseMan: '',
                HMakerDate: moment(new Date()).format('YYYY-MM-DD'),
                HCheckDate: '',
                HCloseDate: '',
                HUpDateDate: '',
                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) {
                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() {
            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()
            this.form.HDate = moment(new 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: '3339'
                }
            }).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("接口请求失败!");
            });
        },
        /** 修改按钮操作 */
        handleUpdate() {
            this.reset()
            let rowHmainid = this.linterid.toString()
            axios.get(this.baseURL + "/Gy_MaterialPackingRelation/Gy_MaterialPackingRelationEditList", {
                params: { 'HInterID': rowHmainid, "user": sessionStorage["HUserName"] }
            }).then(response => {
                if (response.data.count == 1) {
                    var result = response.data
                    var data = response.data.data[0]
                    this.allVal = data
                    this.form.BillType = data.HSourceBillType
                    if (this.copyType == 1) {
                        this.getHBillNo()
                    } else {
                        this.form.HInterID = data.HInterID
                        this.form.HBillNo = data.单据号
                        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.checkDisabled = false
                        this.abandoncheckDisabled = false
                    }
                    this.form.HCusID = data.HCusID
                    this.form.HCusName = data.客户
                    this.form.HProjectName = data.项目名称
                    this.form.HMaterID = data.HMaterID
                    this.form.HMaterNumber = data.物料代码
                    this.form.HMaterName = data.物料名称
                    this.form.HMaterModel = data.物料型号
                    this.form.HRemark = data.备注
                    this.form.HOrgID = data.HOrgID
                    this.editData = result.data
                }
                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 = {
                    "HMouldID": 0,
                    "HMouldNumber": "",
                    "HMouldName": "",
                    "HMouldType": "",
                    "HMouldPurpose": "",
                    "HMouldLength": 0,
                    "HMouldWidth": 0,
                    "HMouldHeight": 0,
                    "HMouldFoldHeight": 0,
                    "HSNP": 0,
                    "HTransPackFlag": 0,
                    "HSendPackFlag": 0,
                    "HDefaultTransPackFlag": 0,
                    "HDefaultSendPackFlag": 0,
                    "HUseFlag": 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
                    this.editData.map((item, index) => {
                        if (!item.HMouldID) {
                            fhck = true
                            this.$modal.msgError("第" + (index + 1) + "行:包装容器不能为空!");
                        }
                    })
                    var refSav = "";
                    if (this.OperationType == 1 || this.OperationType == 2) {
                        refSav = "Add";
                    }
                    if (this.OperationType == 3) {
                        refSav = "Update";
                        this.form.HUpdater = sessionStorage["HUserName"];
                        this.form.HUpdaterDate = moment(new Date()).format('YYYY-MM-DD')
                    }
                    this.$nextTick(() => {
                        if (!fhck) {
                            var sMainStr = JSON.stringify(this.form);
                            var sSubStr = JSON.stringify(this.editData);
                            var sMainSub = sMainStr + ';' + sSubStr + ';' + refSav + ";" + sessionStorage["HUserName"];
                            axios({
                                method: 'post',
                                url: this.baseURL + "/Gy_MaterialPackingRelation/SaveGy_MaterialPackingRelation",
                                data: {
                                    'sMainSub': sMainSub
                                },
                            }).then(response => {
                                if (response.data.count == 1) {
                                    this.subDisabled = true//设置保存按钮不可用
                                    this.checkDisabled = false
                                    this.$modal.msgSuccess(response.data.Message);
                                    // this.close()
                                } else {
                                    this.$modal.msgError(response.data.Message);
                                }
                            }).catch(error => {
                                this.$modal.msgError("接口请求失败!");
                            });
                        }
                    })
                }
            });
        },
        // 反审核/审核数据
        set_CheckBill(num) {
            //逻辑审核方法
            axios.get(this.baseURL + "/Sc_MouldinventoryBill/CheckGy_MaterialMouldBillMain", {
                params: { "HInterID": this.form.HInterID, "IsAudit": num, "CurUserName": sessionStorage["HUserName"] }
            }).then(response => {
                let result = response.data
                if (result.code == 1) {
                    this.checkDisabled = true
                    this.abandoncheckDisabled = false
                    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
            this.gyEmployeeShow = false
            this.gySupplierShow = false
            this.gyStockPlaceShow = false
            this.gyCustomerShow = false
            this.gyMouldShow = false
        },
        //  打开数据列表弹窗
        openDataDialog(num, row) {
            //num1部门,2出库仓库,3物料,4销售员
            if (row) {
                this.zbIndex = row.index - 1
            }
            this.showReset()
            if (num == 3) {
                this.dialogTitle = '物料列表'
                this.materialShow = true
                this.openData = true
            } else if (num == 7) {
                this.dialogTitle = '客户列表'
                this.gyCustomerShow = true
                this.openData = true
            } else if (num == 8) {
                this.dialogTitle = '器具列表'
                this.gyMouldShow = true
                this.openData = true
            }
        },
    }
};
</script>
<style>
.xsckdBox .el-date-editor.el-input {
    width: 100%;
}
</style>
src/views/warehouse/barcodeMaster/Gy_BarCodeBill copy.vue
File was deleted
src/views/warehouse/shipment/Kf_StockOutRequestBill.vue
@@ -733,9 +733,9 @@
                this.$modal.msgError("请选择一行数据编辑!");
            } else {
                let obj = {
                    "HMaterID": 0, "物料代码": "", "物料名称": "", "规格型号": "", "HUnitID": 1, "计量单位": "", "HWHID": "0", "仓库": "",
                    "HSPID": "0", "仓位": "", "HSecUnitID": "1", "库存辅单位": "", "HBASEUNITID": "1", "基本单位": "",
                    "HEXTAUXUNITID": "1", "辅单位": "", "HQtyMust": "0", "HQty": "0", "HPrice": "0", "HMoney": "0", "HRemark": ""
                    "HMaterID": 0, "物料代码": "", "物料名称": "", "规格型号": "", "HUnitID": 0, "计量单位": "", "HWHID": 0, "仓库": "",
                    "HSPID": 0, "仓位": "", "HSecUnitID": 0, "库存辅单位": "", "HBASEUNITID": 0, "基本单位": "",
                    "HEXTAUXUNITID": 0, "辅单位": "", "HQtyMust": 0, "HQty": 0, "HPrice": 0, "HMoney": 0, "HRemark": ""
                }
                if (index) {
                    this.editData.splice(index, 0, obj);