chenhaozhe
2025-12-14 a5c586097b6fd8c90580f7e789f2b0d1ad320c7a
Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-VUEUI
1个文件已添加
22个文件已修改
1101 ■■■■■ 已修改文件
package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/App.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FbStepFoldOutBillList/fbStepFoldOutBillListEdit.vue 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FbStepFoldinBillList/EmployeeDialog.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FbStepFoldinBillList/SupplierDialog.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FbStepFoldinBillList/fbStepFoldinBillListEdit.vue 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/GyCustomer/CustomerEdit/index.vue 160 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/GyCustomer/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ICMO/ScICMOReportBill/ScICMOReportBillEdit.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/AreaDialog/index.vue 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/BarCodeDetail/index.vue 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/CurrencyDialog/index.vue 104 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/CustomerTypeDialog/index.vue 132 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/PackStockDetail/index.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/SettleStyleDialog/index.vue 116 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/printList/barcode.vue 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/printList/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/gyEmployee/edit/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/gyEmployee/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/gyMaterial/GyMaterialCorrection.vue 130 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/gyStockPlace/edit/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/gyWarehouse/edit/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json
@@ -39,6 +39,7 @@
    "jsencrypt": "3.0.0-rc.1",
    "moment": "^2.30.1",
    "nprogress": "0.2.0",
    "print-js": "^1.6.0",
    "quill": "2.0.2",
    "screenfull": "5.0.2",
    "sortablejs": "^1.10.2",
src/App.vue
@@ -7,6 +7,7 @@
<script>
import ThemePicker from "@/components/ThemePicker"
require("@/utils/grhtml5-6.8-min");
export default {
  name: "App",
src/router/index.js
@@ -523,7 +523,7 @@
          title: "采购退料单列表(已入库)",
          activeMenu: "purchase/postockInBack",
        },
      }
      },
    ],
  },
  //#endregion
@@ -812,7 +812,7 @@
      },
    ],
  },
  //#endregion
  //#endregion
  //#region 器具主档
  {
@@ -862,7 +862,7 @@
    ],
  },
  //#endregion
  //#endregion
  //#endregion
  //#region 器具仓存管理
  //#region 器具领用申请单列表
@@ -886,7 +886,7 @@
      },
    ],
  },
  //#endregion
  //#endregion
  //#region 器具领用申请单
  {
@@ -997,7 +997,7 @@
      },
    ],
  },
  //#endregion
  //#endregion
  //#region 器具领用退库单列表
  {
@@ -1132,7 +1132,7 @@
      },
    ],
  },
  //#endregion
  //#endregion
  //#endregion
  //#endregion
@@ -1199,7 +1199,7 @@
      },
    ],
  },
  //#endregion
  //#endregion
  //#endregion
  //#region OA基础资料
@@ -1432,7 +1432,8 @@
    children: [
      {
        path: "/basic/gy/gyCartypelist",
        component: () => import("@/views/basic/gyCartypelist/gyCartypelist.vue"),
        component: () =>
          import("@/views/basic/gyCartypelist/gyCartypelist.vue"),
        name: "GyCartype",
        meta: { title: "车型列表", activeMenu: "basic/gy" },
      },
@@ -1471,7 +1472,8 @@
  //#region 费用基础资料
  //#region 费用项目列表
  {//src\views\basic\gyItemMoney\gyItemMoney.vue
  {
    //src\views\basic\gyItemMoney\gyItemMoney.vue
    path: "/basic/gy/gyItemMoney",
    component: Layout,
    hidden: true,
@@ -1491,9 +1493,10 @@
  },
  //#endregion
  //#endregion
  //#region 辅助属性基础资料
   {//src\views\basic\gyItemMoney\gyItemMoney.vue
  {
    //src\views\basic\gyItemMoney\gyItemMoney.vue
    path: "/basic",
    component: Layout,
    hidden: true,
@@ -1530,6 +1533,12 @@
    component: () => import("@/views/component/printList/hBarPlanPrint"),
    hidden: true,
  },
  //#region 打印列表(网页)
  {
    path: "/hBarPlanPrintWeb",
    component: () => import("@/views/component/printList/barcode.vue"),
    hidden: true,
  },
  //#endregion
  //#endregion
  //#endregion
src/views/FbStepFoldOutBillList/fbStepFoldOutBillListEdit.vue
@@ -101,7 +101,7 @@
            <el-row :gutter="20">
              <el-col :span="8">
                <el-form-item label="验收">
                  <el-input v-model="form.HSecManagerName" placeholder="验收" style="width: calc(100% - 50px)" />
                  <el-input v-model="form.HSecManagerName" placeholder="验收" style="width: calc(100% - 50px)" />
                   <el-button type="primary" icon="el-icon-search" @click="showEmployeeDialog('inspector')">
                   </el-button>
                </el-form-item>
@@ -382,7 +382,7 @@
      :dialog-type="currentDialogType"
      :dialog-title="employeeDialogTitle"
      @select="handleEmployeeSelect"
    />
    />
  </div>
</template>
@@ -504,7 +504,7 @@
        }
      ],
      selectedRows: [],
      baseURL: process.env.VUE_APP_BASE_URL || 'http://47.96.97.237/API/'
      baseURL: process.env.VUE_APP_BASE_API || 'http://47.96.97.237/API/'
    }
  },
  computed: {
@@ -815,7 +815,7 @@
      }
      console.log(`选择的${type}:`, data)
    },
    handleSupplierSelect(data, type) {
      this.form.HSupID = data.HItemID
@@ -823,7 +823,7 @@
      console.log('选择的供应商:', data)
    },
    // 表格操作
    handleAddLine() {
      this.tableData.push({
@@ -898,11 +898,11 @@
    }
    // 确保表格数据中的仓库ID也有值
    const hasValidTableData = this.tableData.every(row =>
      row.HMaterID && row.HMaterID !== 0 &&
    const hasValidTableData = this.tableData.every(row =>
      row.HMaterID && row.HMaterID !== 0 &&
      row.HUnitID && row.HUnitID !== 0
    )
    if (!hasValidTableData) {
      // this.$message.error('请完善表格中的物料和单位信息')
      // return
@@ -919,14 +919,14 @@
      //     })
      //   }
        //const formData=JSON.stringify(this.form)+';'+JSON.stringify(this.tableData)+';'+this.operationType+';'+(sessionStorage['HUserName'] || 'admin');
       const submitData =
          JSON.stringify(this.form) + ';' +
          JSON.stringify(this.tableData) + ';' +
          this.operationType + ';' +
       const submitData =
          JSON.stringify(this.form) + ';' +
          JSON.stringify(this.tableData) + ';' +
          this.operationType + ';' +
          (sessionStorage['HUserName'] || 'admin') + ';' +
          JSON.stringify({ main: this.form, table: this.tableData })
          console.log('提交的完整数据:', submitData)
        const response = await axios.post(`${this.baseURL}/Kf_StepFoldOutBill/Kf_StepFoldOutBillEdit`, {
          sMainSub: submitData
        })
@@ -1004,4 +1004,4 @@
.el-input-number {
  width: 100%;
}
</style>
</style>
src/views/FbStepFoldinBillList/EmployeeDialog.vue
@@ -260,7 +260,7 @@
      selectedRows: [],
      currentFilterName: '',
      activeCollapse: ['more'],
      baseURL: process.env.VUE_APP_BASE_URL || "http://47.96.97.237/API/"
      baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API/"
    }
  },
  watch: {
@@ -318,11 +318,11 @@
        }
      console.log('请求参数:', requestParams)
        const response = await axios.get(`${this.baseURL}/Gy_Employee/list`, { params: requestParams })
        if (response.data.count === 1) {
          this.tableData = response.data.data || []
          this.total = response.data.count || 0
          if (response.data.list.length > 0) {
            this.setTableColumns(response.data.list)
          }
@@ -431,11 +431,11 @@
        return ` and ${col} ${com}`
      }
      if (q.ColName && q.Comparator && q.Comparator !== '0' && q.ColContent)
      if (q.ColName && q.Comparator && q.Comparator !== '0' && q.ColContent)
        sWhereParts.push(buildComparator(q.ColName, q.Comparator, q.ColContent))
      if (q.ColName1 && q.Comparator1 && q.Comparator1 !== '0' && q.ColContent1)
      if (q.ColName1 && q.Comparator1 && q.Comparator1 !== '0' && q.ColContent1)
        sWhereParts.push(buildComparator(q.ColName1, q.Comparator1, q.ColContent1))
      if (q.ColName2 && q.Comparator2 && q.Comparator2 !== '0' && q.ColContent2)
      if (q.ColName2 && q.Comparator2 && q.Comparator2 !== '0' && q.ColContent2)
        sWhereParts.push(buildComparator(q.ColName2, q.Comparator2, q.ColContent2))
      if (q.HNumber) sWhereParts.push(` and 职员代码 like '%${q.HNumber}%'`)
@@ -488,7 +488,7 @@
      this.getEmployeeList(this.buildWhereClause())
    },
    handleConfirm() {
      if (this.selectedRows.length === 0) {
        this.$message.warning('请选择职员')
@@ -500,7 +500,7 @@
      this.$emit('update:visible', false)
    },
    handleCancel() {
      this.$emit('update:visible', false)
    },
@@ -543,4 +543,4 @@
::v-deep .el-table .cell {
  padding: 8px 12px;
}
</style>
</style>
src/views/FbStepFoldinBillList/SupplierDialog.vue
@@ -252,12 +252,12 @@
    },
    dialogType: {
      type: String,
      default: 'supplier'
      default: 'supplier'
    }
  },
  data() {
    return {
      isVisible: this.visible,
      dialogTitle: '选择供应商',
      queryForm: {
@@ -290,7 +290,7 @@
      selectedRows: [],
      currentFilterName: '',
      activeCollapse: ['more'],
      baseURL: process.env.VUE_APP_BASE_URL || "http://47.96.97.237/API/"
      baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API/"
    }
  },
  watch: {
@@ -300,7 +300,7 @@
        this.initDialog()
      }
    },
    isVisible(val) {
      this.$emit('update:visible', val)
    }
@@ -320,7 +320,7 @@
        if (response.data.count === 1) {
          this.organizations = response.data.data
          // 设置默认组织
          const defaultOrg = sessionStorage.getItem('Organization') ||
          const defaultOrg = sessionStorage.getItem('Organization') ||
                           sessionStorage.getItem('OrganizationID')
          if (defaultOrg) {
            this.queryForm.HUSEORGID = defaultOrg
@@ -357,11 +357,11 @@
        }
        console.log('请求参数:', params)
        const response = await axios.get(`${this.baseURL}/Gy_Supplier/page`, { params })
        if (response.data.code == 1) {
          this.tableData = response.data.data || []
          this.total = response.data.count || 0
          if ( response.data.list.length > 0) {
            this.setTableColumns(response.data.list)
          }
@@ -451,11 +451,11 @@
      }
      // 添加过滤条件
      if (q.ColName && q.Comparator && q.Comparator !== '0' && q.ColContent)
      if (q.ColName && q.Comparator && q.Comparator !== '0' && q.ColContent)
        sWhereParts.push(buildComparator(q.ColName, q.Comparator, q.ColContent))
      if (q.ColName1 && q.Comparator1 && q.Comparator1 !== '0' && q.ColContent1)
      if (q.ColName1 && q.Comparator1 && q.Comparator1 !== '0' && q.ColContent1)
        sWhereParts.push(buildComparator(q.ColName1, q.Comparator1, q.ColContent1))
      if (q.ColName2 && q.Comparator2 && q.Comparator2 !== '0' && q.ColContent2)
      if (q.ColName2 && q.Comparator2 && q.Comparator2 !== '0' && q.ColContent2)
        sWhereParts.push(buildComparator(q.ColName2, q.Comparator2, q.ColContent2))
      // 添加基本查询条件
@@ -591,4 +591,4 @@
.dialog-footer {
  text-align: right;
}
</style>
</style>
src/views/FbStepFoldinBillList/fbStepFoldinBillListEdit.vue
@@ -101,7 +101,7 @@
            <el-row :gutter="20">
              <el-col :span="8">
                <el-form-item label="验收">
                  <el-input v-model="form.HSecManagerName" placeholder="验收" style="width: calc(100% - 50px)" />
                  <el-input v-model="form.HSecManagerName" placeholder="验收" style="width: calc(100% - 50px)" />
                   <el-button type="primary" icon="el-icon-search" @click="showEmployeeDialog('inspector')">
                   </el-button>
                </el-form-item>
@@ -382,7 +382,7 @@
      :dialog-type="currentDialogType"
      :dialog-title="employeeDialogTitle"
      @select="handleEmployeeSelect"
    />
    />
  </div>
</template>
@@ -504,7 +504,7 @@
        }
      ],
      selectedRows: [],
      baseURL: process.env.VUE_APP_BASE_URL || 'http://47.96.97.237/API/'
      baseURL: process.env.VUE_APP_BASE_API || 'http://47.96.97.237/API/'
    }
  },
  computed: {
@@ -815,7 +815,7 @@
      }
      console.log(`选择的${type}:`, data)
    },
    handleSupplierSelect(data, type) {
      this.form.HSupID = data.HItemID
@@ -823,7 +823,7 @@
      console.log('选择的供应商:', data)
    },
    // 表格操作
    handleAddLine() {
      this.tableData.push({
@@ -898,11 +898,11 @@
    }
    // 确保表格数据中的仓库ID也有值
    const hasValidTableData = this.tableData.every(row =>
      row.HMaterID && row.HMaterID !== 0 &&
    const hasValidTableData = this.tableData.every(row =>
      row.HMaterID && row.HMaterID !== 0 &&
      row.HUnitID && row.HUnitID !== 0
    )
    if (!hasValidTableData) {
      // this.$message.error('请完善表格中的物料和单位信息')
      // return
@@ -919,14 +919,14 @@
      //     })
      //   }
        //const formData=JSON.stringify(this.form)+';'+JSON.stringify(this.tableData)+';'+this.operationType+';'+(sessionStorage['HUserName'] || 'admin');
       const submitData =
          JSON.stringify(this.form) + ';' +
          JSON.stringify(this.tableData) + ';' +
          this.operationType + ';' +
       const submitData =
          JSON.stringify(this.form) + ';' +
          JSON.stringify(this.tableData) + ';' +
          this.operationType + ';' +
          (sessionStorage['HUserName'] || 'admin') + ';' +
          JSON.stringify({ main: this.form, table: this.tableData })
          console.log('提交的完整数据:', submitData)
        const response = await axios.post(`${this.baseURL}/Kf_StepFoldInBill/Kf_StepFoldInBillEdit`, {
          sMainSub: submitData
        })
@@ -1004,4 +1004,4 @@
.el-input-number {
  width: 100%;
}
</style>
</style>
src/views/GyCustomer/CustomerEdit/index.vue
@@ -23,15 +23,15 @@
        <el-card>
          <div class="card-body">
            <h1 style="text-align:center;margin-bottom:20px;"><b>客户资料</b></h1>
            <el-tabs v-model="activeTab" type="card">
              <el-tab-pane label="基本信息" name="basic">
                <el-form ref="form" :model="formData" label-width="100px" :rules="rules">
                  <el-row :gutter="20">
                    <el-col :span="12">
                      <el-form-item label="客户代码" prop="HNumber">
                        <el-input
                          v-model="formData.HNumber"
                        <el-input
                          v-model="formData.HNumber"
                          placeholder="请输入客户代码"
                          :readonly="operationType === 3"
                        ></el-input>
@@ -78,8 +78,8 @@
                    </el-col>
                    <el-col :span="12">
                      <el-form-item label="创建组织" prop="HCreateOrgID">
                        <el-select
                          v-model="formData.HCreateOrgID"
                        <el-select
                          v-model="formData.HCreateOrgID"
                          placeholder="请选择创建组织"
                          :disabled="operationType !== 1"
                          style="width: 100%"
@@ -98,8 +98,8 @@
                  <el-row :gutter="20">
                    <el-col :span="12">
                      <el-form-item label="使用组织" prop="HUSEORGID">
                        <el-select
                          v-model="formData.HUSEORGID"
                        <el-select
                          v-model="formData.HUSEORGID"
                          placeholder="请选择使用组织"
                          :disabled="operationType !== 1"
                          style="width: 100%"
@@ -117,7 +117,7 @@
                </el-form>
              </el-tab-pane>
              <el-tab-pane label="其他信息" name="other">
                <el-form ref="formOther" :model="formData" :rules="rules" label-width="100px">
                  <el-row :gutter="20">
@@ -221,16 +221,16 @@
                    </el-col>
                    <el-col :span="12">
                      <el-form-item label="地区" prop="HAreaID">
                        <el-input
                          v-model="formData.HAreaName"
                        <el-input
                          v-model="formData.HAreaName"
                          placeholder="请选择地区"
                          readonly
                          style="width: calc(100% - 50px)"
                        >
                        </el-input>
                        <el-button
                          type="primary"
                          icon="el-icon-search"
                        <el-button
                          type="primary"
                          icon="el-icon-search"
                          style="margin-left: 10px;"
                          @click="openAreaDialog"
                        ></el-button>
@@ -242,16 +242,16 @@
                  <el-row :gutter="20">
                    <el-col :span="12">
                      <el-form-item label="默认货币">
                        <el-input
                          v-model="formData.HCurName"
                        <el-input
                          v-model="formData.HCurName"
                          placeholder="请选择默认货币"
                          readonly
                          style="width: calc(100% - 50px)"
                        >
                        </el-input>
                        <el-button
                          type="primary"
                          icon="el-icon-search"
                        <el-button
                          type="primary"
                          icon="el-icon-search"
                          style="margin-left: 10px;"
                          @click="openCurrencyDialog"
                        ></el-button>
@@ -260,16 +260,16 @@
                    </el-col>
                    <el-col :span="12">
                      <el-form-item label="结算方式">
                        <el-input
                          v-model="formData.HSSName"
                        <el-input
                          v-model="formData.HSSName"
                          placeholder="请选择结算方式"
                          readonly
                          style="width: calc(100% - 50px)"
                        >
                        </el-input>
                        <el-button
                          type="primary"
                          icon="el-icon-search"
                        <el-button
                          type="primary"
                          icon="el-icon-search"
                          style="margin-left: 10px;"
                          @click="openSettleStyleDialog"
                        ></el-button>
@@ -292,16 +292,16 @@
                    </el-col>
                    <el-col :span="12">
                      <el-form-item label="客户分类">
                        <el-input
                          v-model="formData.HCusTypeName"
                        <el-input
                          v-model="formData.HCusTypeName"
                          placeholder="请选择客户分类"
                          readonly
                          style="width: calc(100% - 50px)"
                        >
                        </el-input>
                        <el-button
                          type="primary"
                          icon="el-icon-search"
                        <el-button
                          type="primary"
                          icon="el-icon-search"
                          style="margin-left: 10px;"
                          @click="openCustomerTypeDialog"
                        ></el-button>
@@ -372,28 +372,28 @@
        </el-card>
      </div>
    <!-- 地区tanchuang -->
    <AreaDialog
    <AreaDialog
      :visible.sync="areaDialogVisible"
      @selected="handleAreaSelected"
    />
    <!-- 货币tanchuang -->
    <CurrencyDialog
    <CurrencyDialog
      :visible.sync="currencyDialogVisible"
      @selected="handleCurrencySelected"
    />
    <!-- 结算方式tanchuang -->
    <SettleStyleDialog
    <SettleStyleDialog
      :visible.sync="settleStyleDialogVisible"
      @selected="handleSettleStyleSelected"
    />
      <!-- 客户分类tanchuang -->
    <CustomerTypeDialog
    <CustomerTypeDialog
      :visible.sync="customerTypeDialogVisible"
      @selected="handleCustomerTypeSelected"
    />
@@ -442,7 +442,7 @@
    return {
      openEdit: true,
      activeTab: 'basic',
      // 表单数据
      formData: {
        HNumber: '',
@@ -454,7 +454,7 @@
        HMateOutEmp: '',
        HCreateOrgID: '',
        HUSEORGID: '',
        // 其他信息
        HLinkMan: '',
        HLinkPhone: '',
@@ -480,7 +480,7 @@
        HCusStatus: '',
        HCusTypeName: '',
        HCusTypeID: '0',
        // 系统信息
        HCreator: '',
        HCreateDate: '',
@@ -491,7 +491,7 @@
        HDeleteMan: '',
        HDeleteDate: ''
      },
      // 验证
      rules: {
        HNumber: [
@@ -507,19 +507,19 @@
          { required: true, message: '请选择使用组织', trigger: 'change' }
        ]
      },
      organizationList: [],
      areaDialogVisible: false,
      currencyDialogVisible: false,
      settleStyleDialogVisible: false,
      customerTypeDialogVisible: false,
      saveDisabled: false,
      auditDisabled: false,
      baseURL: process.env.VUE_APP_BASE_URL || 'http://47.96.97.237/API/',
      baseURL: process.env.VUE_APP_BASE_API || 'http://47.96.97.237/API/',
      user: 'admin'
    }
  },
@@ -555,7 +555,7 @@
      this.formData.HCreator = this.user
      this.formData.HCreateDate = new Date().toLocaleString()
    },
    loadOrganizations() {
      axios.get(`${this.baseURL}/Web/GetOrganizations`)
        .then(response => {
@@ -572,7 +572,7 @@
          this.$modal.msgError('加载组织数据失败!')
        })
    },
    handleOperationType() {
      switch (this.operationType) {
        case 1: // 新增
@@ -589,13 +589,13 @@
          break
      }
    },
    handleAddNew() {
      this.auditDisabled = true
      this.getMaxBillID()
    },
    handleSerialAdd() {
      this.formData.HCusTypeName = this.HCusClsName
@@ -603,19 +603,19 @@
      this.setHNumber(this.HCusTypeID)
      this.auditDisabled = true
    },
    handleEdit() {
      this.loadEditData(this.linterid)
    },
    handleCopy() {
      this.loadEditData(this.linterid)
      this.auditDisabled = true
    },
    getMaxBillID() {
      axios.get(`${this.baseURL}/Gy_Customer/GetMAXBillID`)
        .then(response => {
@@ -625,7 +625,7 @@
          console.error('获取最大单据ID失败:', error)
        })
    },
    // 设置流水号
    setHNumber(typeID) {
      axios.get(`${this.baseURL}/Gy_Customer/getMaxNum`, {
@@ -644,7 +644,7 @@
          this.$modal.msgError('获取流水号失败!')
        })
    },
    loadEditData(interId) {
      axios.get(`${this.baseURL}/Gy_Customer/xg_extendCheckEmp`, {
        params: { HInterID: interId }
@@ -653,7 +653,7 @@
          if (response.data.data && response.data.data.length > 0) {
            const data = response.data.data[0]
            this.populateFormData(data)
            if (data.审核人 && data.审核人 !== '') {
              this.saveDisabled = true
              this.auditDisabled = true
@@ -664,8 +664,8 @@
          this.$modal.msgError('加载客户数据失败!')
        })
    },
    populateFormData(data) {
      this.formData = {
        ...this.formData,
@@ -703,11 +703,11 @@
        HChecker: data.审核人 || '',
        HCheckDate: data.审核日期 || ''
      }
      this.formData.HUpDater = this.user
      this.formData.HUpDateDate = new Date().toLocaleString()
    },
    // 保存
    async handleSave() {
      const validMain = await new Promise(resolve => {
@@ -735,7 +735,7 @@
        if (this.operationType === 3) {
          // 编辑保存
          url = `${this.baseURL}/Gy_Customer/AddBill1`
          params = {
          params = {
            oMain: JSON.stringify(formData) + ';' + this.linterid + ';' + this.user + ';Gy_Customer_Edit'
          }
        }
@@ -799,19 +799,19 @@
      return callback()
    },
    // 表单验证
    validateForm() {
      if (!this.formData.HNumber) {
        this.$modal.msgWarning('请输入客户代码!')
        return false
      }
      if (!this.formData.HName) {
        this.$modal.msgWarning('请输入客户名称!')
        return false
      }
      // 增值税率验证
      const taxRate = this.formData.HTaxRate
      // if (taxRate && taxRate.substring(taxRate.length - 1) === '.') {
@@ -823,10 +823,10 @@
        this.$modal.msgWarning('增值税率请输入正确数字!')
        return false
      }
      return true
    },
    // 审核
    handleAudit() {
      axios.get(`${this.baseURL}/Gy_Customer/AuditGy_Customer`, {
@@ -849,13 +849,13 @@
          this.$modal.msgError('审核失败!')
        })
    },
    // 退出
    handleExit() {
      this.openEdit = false
      this.$emit('editClose', false)
    },
    // 关闭对话框
    handleClose(done) {
      this.$confirm('确认关闭?')
@@ -865,7 +865,7 @@
        })
        .catch(_ => {})
    },
    // 保存配置
    saveConfig() {
      const config = {
@@ -876,40 +876,40 @@
      }
      localStorage.setItem('Gy_Customer_Edit', JSON.stringify(config))
    },
    // 打开对话框方法
    openAreaDialog() {
      this.areaDialogVisible = true
    },
    openCurrencyDialog() {
      this.currencyDialogVisible = true
    },
    openSettleStyleDialog() {
      this.settleStyleDialogVisible = true
    },
    openCustomerTypeDialog() {
      this.customerTypeDialogVisible = true
    },
    // 对话框选择回调
    handleAreaSelected(data) {
      this.formData.HAreaName = data.地区名称
      this.formData.HAreaID = data.HItemID
    },
    handleCurrencySelected(data) {
      this.formData.HCurName = data.货币名称
      this.formData.HCurID = data.HItemID
    },
    handleSettleStyleSelected(data) {
      this.formData.HSSName = data.结算方式名称
      this.formData.HSSID = data.HItemID
    },
    handleCustomerTypeSelected(data) {
      this.formData.HCusTypeName = data.客户分类名称
      this.formData.HCusTypeID = data.HItemID
@@ -947,4 +947,4 @@
.el-button-group {
  margin-bottom: 10px;
}
</style>
</style>
src/views/GyCustomer/index.vue
@@ -356,7 +356,7 @@
      uploadData: [],
      uploadTableLoading: false,
      baseURL: process.env.VUE_APP_BASE_URL || "http://47.96.97.237/API/",
      baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API/",
      user: "admin",
    };
  },
@@ -376,7 +376,7 @@
          this.getTreeData();
          this.getList();
          this.getDefaultFilterScheme();
    },
    getTreeData() {
@@ -945,4 +945,4 @@
.filter-collapse {
  margin-top: 10px;
}
</style>
</style>
src/views/ICMO/ScICMOReportBill/ScICMOReportBillEdit.vue
@@ -269,7 +269,7 @@
      linterid: 0,
      HSouceBillType: '',
      baseURL: process.env.VUE_APP_BASE_URL || 'http://47.96.97.237/API/'
      baseURL: process.env.VUE_APP_BASE_API || 'http://47.96.97.237/API/'
    }
  },
@@ -296,7 +296,7 @@
  },
  methods: {
    async initData() {
      const params = this.$route ? this.$route.query : {}
      if (this.propOperationType !== null && this.propOperationType !== undefined) {
        this.OperationType = this.propOperationType
@@ -335,7 +335,7 @@
          this.$set(this.form, 'HGroupName', sessionStorage.HGroup || '')
          this.$set(this.form, 'HEmpID', sessionStorage.HEmpID || 0)
          this.$set(this.form, 'HEmpName', sessionStorage.HEmpName || '')
        }
        }
      } catch (error) {
@@ -878,7 +878,7 @@
      return true
    },
    handleRemove(file, fileList) {
      console.log(file, fileList)
    },
@@ -926,4 +926,4 @@
.el-table {
  margin-top: 10px;
}
</style>
</style>
src/views/component/AreaDialog/index.vue
@@ -10,21 +10,21 @@
      <el-card class="search-card">
        <div slot="header" class="clearfix">
          <span>查询条件</span>
          <el-button
            style="float: right; padding: 3px 0"
          <el-button
            style="float: right; padding: 3px 0"
            type="text"
            @click="toggleCollapse"
          >
            {{ collapse ? '展开' : '收起' }}
          </el-button>
        </div>
        <el-form :model="queryParams" ref="queryForm" :inline="true">
          <el-row :gutter="20">
            <el-col :span="8">
              <el-form-item label="地区代码">
                <el-input
                  v-model="queryParams.HNumber"
                <el-input
                  v-model="queryParams.HNumber"
                  placeholder="请输入地区代码"
                  clearable
                />
@@ -32,8 +32,8 @@
            </el-col>
            <el-col :span="8">
              <el-form-item label="地区名称">
                <el-input
                  v-model="queryParams.HName"
                <el-input
                  v-model="queryParams.HName"
                  placeholder="请输入地区名称"
                  clearable
                />
@@ -82,8 +82,8 @@
                </el-col>
                <el-col :span="8">
                  <el-form-item label="内容">
                    <el-input
                      v-model="queryParams.ColContent"
                    <el-input
                      v-model="queryParams.ColContent"
                      placeholder="请输入内容"
                      clearable
                    />
@@ -117,7 +117,7 @@
          @selection-change="handleSelectionChange"
        >
          <el-table-column type="selection" width="55" align="center" />
          <el-table-column
          <el-table-column
            v-for="column in tableColumns"
            :key="column.field"
            :prop="column.field"
@@ -136,7 +136,7 @@
          </el-table-column>
        </el-table>
        <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
@@ -168,7 +168,7 @@
      dialogVisible: false,
      collapse: false,
      loading: false,
      // 查询参数
      queryParams: {
        HNumber: '',
@@ -177,24 +177,24 @@
        Comparator: '0',
        ColContent: ''
      },
      // 表格数据
      tableData: [],
      tableColumns: [],
      selectedRow: null,
      multipleSelection: [],
      // 分页
      pagination: {
        page: 1,
        size: 50,
        total: 0
      },
      // 隐藏字段
      hiddenFields: ["HItemID", "短代码", "父级ID", "等级", "末级标志", "助记码", "创建组织", "英文名称"],
      baseURL: process.env.VUE_APP_BASE_URL || 'http://47.96.97.237/API/',
      baseURL: process.env.VUE_APP_BASE_API || 'http://47.96.97.237/API/',
      user: 'admin',
      HModName: 'Gy_AreaSet'
    }
@@ -227,12 +227,12 @@
    initData() {
      this.loadTableData()
    },
    async loadTableData() {
      this.loading = true
      try {
        const sWhere = this.buildQueryCondition()
        const response = await axios.get(`${this.baseURL}/Gy_BadReason/Gy_AreaSetList`, {
          params: {
            sWhere: sWhere,
@@ -241,7 +241,7 @@
            size: this.pagination.size
          }
        })
        if (response.data.count === 1) {
          this.tableData = response.data.data
          this.pagination.total = response.data.total || response.data.data.length
@@ -256,11 +256,11 @@
        this.loading = false
      }
    },
    buildQueryCondition() {
      let sWhere = ""
      if (this.queryParams.HNumber) {
        sWhere += ` and 地区代码 like '%${this.queryParams.HNumber}%'`
@@ -269,7 +269,7 @@
        sWhere += ` and 地区名称 like '%${this.queryParams.HName}%'`
      }
      if (this.queryParams.ColName && this.queryParams.ColName !== "0" &&
      if (this.queryParams.ColName && this.queryParams.ColName !== "0" &&
          this.queryParams.Comparator && this.queryParams.Comparator !== "0") {
        let com = ""
        switch (this.queryParams.Comparator) {
@@ -291,26 +291,26 @@
        }
        sWhere += ` and ${this.queryParams.ColName} ${com}`
      }
      sWhere += this.addSWhereByOpenType()
      return sWhere
    },
    addSWhereByOpenType() {
      return " and 禁用标志 = '否' and 审核人 != ''"
    },
    generateTableColumns(columnList) {
      this.tableColumns = []
      this.tableColumns.push({ type: 'selection', fixed: 'left' })
      if (columnList && columnList.length > 0) {
        columnList.forEach(item => {
@@ -322,12 +322,12 @@
              sortable: true,
              width: 200
            }
            if (item.ColmType === 'DateTime') {
              column.formatter = this.formatDate
            }
            this.tableColumns.push(column)
          }
        })
@@ -346,13 +346,13 @@
        this.tableColumns = [...this.tableColumns, ...defaultColumns]
      }
    },
    // 查询
    handleQuery() {
      this.pagination.page = 1
      this.loadTableData()
    },
    // 重置查询
    handleReset() {
      this.queryParams = {
@@ -365,29 +365,29 @@
      this.pagination.page = 1
      this.loadTableData()
    },
    // 刷新
    handleRefresh() {
      this.loadTableData()
    },
    // 切换折叠状态
    toggleCollapse() {
      this.collapse = !this.collapse
    },
    // 行双击事件
    handleRowDblClick(row) {
      this.selectedRow = row
      this.confirmSelection()
    },
    // 行点击事件
    handleRowClick(row) {
      this.$refs.table.toggleRowSelection(row)
      this.selectedRow = row
    },
    // 选择变化
    handleSelectionChange(selection) {
      this.multipleSelection = selection
@@ -395,7 +395,7 @@
        this.selectedRow = selection[0]
      }
    },
    // 确认选择
    confirmSelection() {
      if (this.selectedRow) {
@@ -408,12 +408,12 @@
        this.$message.warning('请选择一条数据')
      }
    },
    // 退出
    handleExit() {
      this.dialogVisible = false
    },
    // 关闭对话框
    handleClose(done) {
      this.$confirm('确认关闭?')
@@ -422,20 +422,20 @@
        })
        .catch(_ => {})
    },
    // 分页大小改变
    handleSizeChange(size) {
      this.pagination.size = size
      this.pagination.page = 1
      this.loadTableData()
    },
    // 当前页改变
    handleCurrentChange(page) {
      this.pagination.page = page
      this.loadTableData()
    },
    // 格式化日期
    formatDate(dateString) {
      if (!dateString) return ''
src/views/component/BarCodeDetail/index.vue
@@ -125,7 +125,7 @@
      allColumns: [],
      selectedColumns: [],
      selectedRows: [],
      baseURL: process.env.VUE_APP_BASE_URL || "http://47.96.97.237/API/"
      baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API/"
    }
  },
  methods: {
@@ -138,8 +138,8 @@
      const hmainid = record.hmainid || record.HInterID
      const billNo = record.单据号 || record.HBillNo
      let billTypeDesc = ''
      switch (record.单据类型 || '') {
        case '1201': billTypeDesc = '外购入库单'; break
@@ -170,10 +170,10 @@
      this.loading = true
      try {
        const sWhere = `${HInterID},'${HBillType}','${HBillNo}'`
        const url = `${this.baseURL}/Kf_ICStockInOutBill/Kf_BarCodeDetailQuery`
        const params = { sWhere }
        const response = await axios.get(url, { params })
        const data = response.data
@@ -196,7 +196,7 @@
      const columns = []
      const allColumns = []
      columns.push({
        type: 'selection',
        width: 55,
@@ -213,7 +213,7 @@
          sortable: true
        }
        switch (colName) {
          case 'HItemID':
            columnConfig.hide = true
@@ -246,7 +246,7 @@
    handleCellEdit(row, field, value) {
      const ref = /^\d+(\.\d+)?$/
      const ref = /^\d+(\.\d+)?$/
      switch (field) {
        case 'HMaterialJQty':
@@ -327,12 +327,12 @@
    validateData() {
      const ref = /^\d+(\.\d+)?$/
      const ref = /^\d+(\.\d+)?$/
      for (let i = 0; i < this.tableData.length; i++) {
        const row = this.tableData[i]
        const weight = row.HMaterialJQty + ''
        if (!ref.test(weight)) {
          this.$message.warning(`第${i + 1}行:重量维护请输入不小于0的数字!`)
@@ -365,12 +365,12 @@
    applyColumnSettings() {
      this.tableColumns = [
        this.tableColumns[0],
        this.tableColumns[0],
        ...this.allColumns.filter(col => this.selectedColumns.includes(col.field))
      ]
      this.columnDialogVisible = false
      this.saveColumnSettings()
    },
@@ -380,20 +380,20 @@
    saveColumnSettings() {
    },
    // 合计行计算
    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 (!values.every(value => isNaN(value))) {
          sums[index] = values.reduce((prev, curr) => {
@@ -452,4 +452,4 @@
:deep(.el-card__body) {
  padding: 12px;
}
</style>
</style>
src/views/component/CurrencyDialog/index.vue
@@ -10,21 +10,21 @@
      <el-card class="search-card">
        <div slot="header" class="clearfix">
          <span>查询条件</span>
          <el-button
            style="float: right; padding: 3px 0"
          <el-button
            style="float: right; padding: 3px 0"
            type="text"
            @click="toggleCollapse"
          >
            {{ collapse ? '展开' : '收起' }}
          </el-button>
        </div>
        <el-form :model="queryParams" ref="queryForm" :inline="true">
          <el-row :gutter="20">
            <el-col :span="8">
              <el-form-item label="货币代码">
                <el-input
                  v-model="queryParams.HNumber"
                <el-input
                  v-model="queryParams.HNumber"
                  placeholder="请输入货币代码"
                  clearable
                  @keyup.enter.native="handleQuery"
@@ -33,8 +33,8 @@
            </el-col>
            <el-col :span="8">
              <el-form-item label="货币名称">
                <el-input
                  v-model="queryParams.HName"
                <el-input
                  v-model="queryParams.HName"
                  placeholder="请输入货币名称"
                  clearable
                  @keyup.enter.native="handleQuery"
@@ -84,8 +84,8 @@
                </el-col>
                <el-col :span="8">
                  <el-form-item label="内容">
                    <el-input
                      v-model="queryParams.ColContent"
                    <el-input
                      v-model="queryParams.ColContent"
                      placeholder="请输入内容"
                      clearable
                      @keyup.enter.native="handleQuery"
@@ -124,7 +124,7 @@
          @selection-change="handleSelectionChange"
        >
          <el-table-column type="selection" width="55" align="center" />
          <el-table-column
          <el-table-column
            v-for="column in tableColumns"
            :key="column.field"
            :prop="column.field"
@@ -192,24 +192,24 @@
        Comparator: '0',
        ColContent: ''
      },
      tableData: [],
      tableColumns: [],
      selectedRow: null,
      multipleSelection: [],
      pagination: {
        page: 1,
        size: 50,
        total: 0
      },
      currentFilterScheme: '',
      HInterID_Choose: 0,
      hiddenFields: ["HItemID"],
      baseURL: process.env.VUE_APP_BASE_URL || 'http://47.96.97.237/API/',
      baseURL: process.env.VUE_APP_BASE_API || 'http://47.96.97.237/API/',
      user: 'admin',
      HModName: 'Gy_Currency',
      HModuleName: '货币列表维护'
@@ -245,12 +245,12 @@
      this.loadTableData()
      this.getDefaultFilterScheme()
    },
    async loadTableData() {
      this.loading = true
      try {
        const sWhere = this.buildQueryCondition()
        const response = await axios.get(`${this.baseURL}/Gy_Currency/list1`, {
          params: {
            sWhere: sWhere,
@@ -259,7 +259,7 @@
            size: this.pagination.size
          }
        })
        if (response.data.count === 1) {
          this.tableData = response.data.data
          this.pagination.total = response.data.total || response.data.data.length
@@ -274,18 +274,18 @@
        this.loading = false
      }
    },
    buildQueryCondition() {
      let sWhere = ""
      if (this.queryParams.HNumber) {
        sWhere += ` and 货币代码 like '%${this.queryParams.HNumber}%'`
      }
      if (this.queryParams.HName) {
        sWhere += ` and 货币名称 like '%${this.queryParams.HName}%'`
      }
      if (this.queryParams.ColName && this.queryParams.ColName !== "0" &&
      if (this.queryParams.ColName && this.queryParams.ColName !== "0" &&
          this.queryParams.Comparator && this.queryParams.Comparator !== "0") {
        let com = ""
        switch (this.queryParams.Comparator) {
@@ -307,24 +307,24 @@
        }
        sWhere += ` and ${this.queryParams.ColName} ${com}`
      }
      sWhere += this.addSWhereByOpenType()
      return sWhere
    },
    addSWhereByOpenType() {
      return " and 禁用标记 = '' and 审核人 != ''"
    },
    // 生成表格列
    generateTableColumns(columnList) {
      this.tableColumns = []
      // 添加选择列
      this.tableColumns.push({ type: 'selection', fixed: 'left' })
      // 动态生成列
      if (columnList && columnList.length > 0) {
        columnList.forEach(item => {
@@ -336,11 +336,11 @@
              sortable: true,
              width: 200
            }
            if (item.ColmType === 'DateTime') {
              column.formatter = this.formatDate
            }
            this.tableColumns.push(column)
          }
        })
@@ -361,13 +361,13 @@
        this.tableColumns = [...this.tableColumns, ...defaultColumns]
      }
    },
    // 查询
    handleQuery() {
      this.pagination.page = 1
      this.loadTableData()
    },
    // 重置查询
    handleReset() {
      this.queryParams = {
@@ -380,35 +380,35 @@
      this.pagination.page = 1
      this.loadTableData()
    },
    // 刷新
    handleRefresh() {
      this.loadTableData()
    },
    // 切换折叠状态
    toggleCollapse() {
      this.collapse = !this.collapse
    },
    // 行双击事件
    handleRowDblClick(row) {
      this.selectedRow = row
      this.confirmSelection()
    },
    // 行点击事件
    handleRowClick(row) {
      this.$refs.table.toggleRowSelection(row)
      this.selectedRow = row
    },
    handleCurrencyCodeClick(row) {
      console.log('点击货币代码:', row)
      this.selectedRow = row
      this.confirmSelection()
    },
    // 选择变化
    handleSelectionChange(selection) {
      this.multipleSelection = selection
@@ -416,7 +416,7 @@
        this.selectedRow = selection[0]
      }
    },
    // 确认选择
    confirmSelection() {
      if (this.selectedRow) {
@@ -430,12 +430,12 @@
        this.$message.warning('请选择一条数据')
      }
    },
    // 退出
    handleExit() {
      this.dialogVisible = false
    },
    // 关闭对话框
    handleClose(done) {
      this.$confirm('确认关闭?')
@@ -444,20 +444,20 @@
        })
        .catch(_ => {})
    },
    // 分页大小改变
    handleSizeChange(size) {
      this.pagination.size = size
      this.pagination.page = 1
      this.loadTableData()
    },
    // 当前页改变
    handleCurrentChange(page) {
      this.pagination.page = page
      this.loadTableData()
    },
    // 格式化日期
    formatDate(dateString) {
      if (!dateString) return ''
@@ -468,7 +468,7 @@
        return dateString
      }
    },
    // 获取默认过滤方案
    async getDefaultFilterScheme() {
      try {
@@ -480,12 +480,12 @@
            Type: "Default"
          }
        })
        if (response.data.count === 1) {
          const data = response.data.data[0]
          this.HInterID_Choose = data.hmainid
          this.currentFilterScheme = `当前过滤方案:${data.方案名称} (${data.备注})`
          // 应用过滤条件
          this.applyFilterConditions(response.data.data)
        }
@@ -493,7 +493,7 @@
        console.error('获取过滤方案失败:', error)
      }
    },
    // 应用过滤条件
    applyFilterConditions(filterData) {
      filterData.forEach(item => {
@@ -502,13 +502,13 @@
        }
      })
    },
    // 保存过滤方案
    handleSaveScheme() {
      // 实现保存过滤方案的逻辑
      this.$message.info('保存方案功能')
    },
    // 读取过滤方案
    handleReadScheme() {
      // 实现读取过滤方案的逻辑
@@ -565,4 +565,4 @@
  color: #fc9393;
  margin: 10px 0;
}
</style>
</style>
src/views/component/CustomerTypeDialog/index.vue
@@ -10,21 +10,21 @@
      <el-card class="search-card">
        <div slot="header" class="clearfix">
          <span>查询条件</span>
          <el-button
            style="float: right; padding: 3px 0"
          <el-button
            style="float: right; padding: 3px 0"
            type="text"
            @click="toggleCollapse"
          >
            {{ collapse ? '展开' : '收起' }}
          </el-button>
        </div>
        <el-form :model="queryParams" ref="queryForm" :inline="true">
          <el-row :gutter="20">
            <el-col :span="8">
              <el-form-item label="客户分类代码">
                <el-input
                  v-model="queryParams.HNumber"
                <el-input
                  v-model="queryParams.HNumber"
                  placeholder="请输入客户分类代码"
                  clearable
                  @keyup.enter.native="handleQuery"
@@ -33,8 +33,8 @@
            </el-col>
            <el-col :span="8">
              <el-form-item label="客户分类名称">
                <el-input
                  v-model="queryParams.HName"
                <el-input
                  v-model="queryParams.HName"
                  placeholder="请输入客户分类名称"
                  clearable
                  @keyup.enter.native="handleQuery"
@@ -84,8 +84,8 @@
                </el-col>
                <el-col :span="8">
                  <el-form-item label="内容">
                    <el-input
                      v-model="queryParams.ColContent"
                    <el-input
                      v-model="queryParams.ColContent"
                      placeholder="请输入内容"
                      clearable
                    />
@@ -127,8 +127,8 @@
                </el-col>
                <el-col :span="8">
                  <el-form-item label="内容">
                    <el-input
                      v-model="queryParams.ColContent1"
                    <el-input
                      v-model="queryParams.ColContent1"
                      placeholder="请输入内容"
                      clearable
                    />
@@ -169,8 +169,8 @@
                </el-col>
                <el-col :span="8">
                  <el-form-item label="内容">
                    <el-input
                      v-model="queryParams.ColContent2"
                    <el-input
                      v-model="queryParams.ColContent2"
                      placeholder="请输入内容"
                      clearable
                    />
@@ -230,7 +230,7 @@
            @selection-change="handleSelectionChange"
          >
            <el-table-column type="selection" width="55" align="center" />
            <el-table-column
            <el-table-column
              v-for="column in tableColumns"
              :key="column.field"
              :prop="column.field"
@@ -292,7 +292,7 @@
      collapse: false,
      loading: false,
      treeLoading: false,
      // 查询参数
      queryParams: {
        HNumber: '',
@@ -307,35 +307,35 @@
        Comparator2: '0',
        ColContent2: ''
      },
      // 树形数据
      treeData: [],
      treeProps: {
        children: 'children',
        label: 'title'
      },
      // 表格数据
      tableData: [],
      tableColumns: [],
      selectedRow: null,
      multipleSelection: [],
      // 分页
      pagination: {
        page: 1,
        size: 50,
        total: 0
      },
      // 过滤方案
      currentFilterScheme: '',
      HInterID_Choose: 0,
      // 隐藏字段
      hiddenFields: ["HItemID"],
      baseURL: process.env.VUE_APP_BASE_URL || 'http://47.96.97.237/API/',
      baseURL: process.env.VUE_APP_BASE_API || 'http://47.96.97.237/API/',
      user: 'admin',
      HModName: 'Gy_CusType',
      HModuleName: '客户分类列表维护'
@@ -372,13 +372,13 @@
      this.loadTableData()
      this.getDefaultFilterScheme()
    },
    // 加载树形数据
    async loadTreeData() {
      this.treeLoading = true
      try {
        const response = await axios.get(`${this.baseURL}/Gy_BadReason/Gy_CusTypeTreeListByLevel`)
        if (response.data.count === 1) {
          this.treeData = JSON.parse(response.data.data)
        } else {
@@ -391,13 +391,13 @@
        this.treeLoading = false
      }
    },
    // 加载表格数据
    async loadTableData() {
      this.loading = true
      try {
        const sWhere = this.buildQueryCondition()
        const response = await axios.get(`${this.baseURL}/Gy_BadReason/Gy_CusTypeList`, {
          params: {
            sWhere: sWhere,
@@ -406,7 +406,7 @@
            size: this.pagination.size
          }
        })
        if (response.data.count === 1) {
          this.tableData = response.data.data
          this.pagination.total = response.data.total || response.data.data.length
@@ -421,11 +421,11 @@
        this.loading = false
      }
    },
    // 构建查询条件
    buildQueryCondition() {
      let sWhere = ""
      // 基本查询条件
      if (this.queryParams.HNumber) {
        sWhere += ` and 客户分类代码 like '%${this.queryParams.HNumber}%'`
@@ -433,16 +433,16 @@
      if (this.queryParams.HName) {
        sWhere += ` and 客户分类名称 like '%${this.queryParams.HName}%'`
      }
      // 处理三组过滤条件
      const filterGroups = [
        { colName: this.queryParams.ColName, comparator: this.queryParams.Comparator, content: this.queryParams.ColContent },
        { colName: this.queryParams.ColName1, comparator: this.queryParams.Comparator1, content: this.queryParams.ColContent1 },
        { colName: this.queryParams.ColName2, comparator: this.queryParams.Comparator2, content: this.queryParams.ColContent2 }
      ]
      filterGroups.forEach(filter => {
        if (filter.colName && filter.colName !== "0" &&
        if (filter.colName && filter.colName !== "0" &&
            filter.comparator && filter.comparator !== "0") {
          let com = ""
          switch (filter.comparator) {
@@ -465,26 +465,26 @@
          sWhere += ` and ${filter.colName} ${com}`
        }
      })
      // 添加打开类型的过滤条件
      sWhere += this.addSWhereByOpenType()
      return sWhere
    },
    // 根据打开类型添加条件
    addSWhereByOpenType() {
      // 这里可以根据需要添加特定的过滤条件
      return " and 禁用标志 = '否' and 审核人 != ''"
    },
    // 生成表格列
    generateTableColumns(columnList) {
      this.tableColumns = []
      // 添加选择列
      this.tableColumns.push({ type: 'selection', fixed: 'left' })
      // 动态生成列
      if (columnList && columnList.length > 0) {
        columnList.forEach(item => {
@@ -496,12 +496,12 @@
              sortable: true,
              width: 200
            }
            // 根据字段类型设置不同的模板
            if (item.ColmType === 'DateTime') {
              column.formatter = this.formatDate
            }
            this.tableColumns.push(column)
          }
        })
@@ -519,7 +519,7 @@
        this.tableColumns = [...this.tableColumns, ...defaultColumns]
      }
    },
    handleTreeNodeClick(data) {
      let sWhere = ""
      if (data.id !== '0') {
@@ -527,7 +527,7 @@
      }
      this.loadTableDataWithCondition(sWhere)
    },
    async loadTableDataWithCondition(sWhere) {
      this.loading = true
      try {
@@ -537,7 +537,7 @@
            user: this.user
          }
        })
        if (response.data.count === 1) {
          this.tableData = response.data.data
          this.pagination.total = response.data.total || response.data.data.length
@@ -548,12 +548,12 @@
        this.loading = false
      }
    },
    handleQuery() {
      this.pagination.page = 1
      this.loadTableData()
    },
    handleReset() {
      this.queryParams = {
        HNumber: '',
@@ -571,44 +571,44 @@
      this.pagination.page = 1
      this.loadTableData()
    },
    // 刷新
    handleRefresh() {
      this.loadTreeData()
      this.loadTableData()
    },
    toggleCollapse() {
      this.collapse = !this.collapse
    },
    // 行双击事件
    handleRowDblClick(row) {
      this.selectedRow = row
      this.confirmSelection()
    },
    // 行点击事件
    handleRowClick(row) {
      this.$refs.table.toggleRowSelection(row)
      this.selectedRow = row
    },
    handleCustomerTypeCodeClick(row) {
      console.log('点击客户分类代码:', row)
      this.selectedRow = row
      this.confirmSelection()
    },
    handleSelectionChange(selection) {
      this.multipleSelection = selection
      if (selection.length === 1) {
        this.selectedRow = selection[0]
      }
    },
    confirmSelection() {
      if (this.selectedRow) {
@@ -621,12 +621,12 @@
        this.$message.warning('请选择一条数据')
      }
    },
    // 退出
    handleExit() {
      this.dialogVisible = false
    },
    // 关闭对话框
    handleClose(done) {
      this.$confirm('确认关闭?')
@@ -635,20 +635,20 @@
        })
        .catch(_ => {})
    },
    // 分页大小改变
    handleSizeChange(size) {
      this.pagination.size = size
      this.pagination.page = 1
      this.loadTableData()
    },
    // 当前页改变
    handleCurrentChange(page) {
      this.pagination.page = page
      this.loadTableData()
    },
    // 格式化日期
    formatDate(dateString) {
      if (!dateString) return ''
@@ -659,7 +659,7 @@
        return dateString
      }
    },
    // 获取默认过滤方案
    async getDefaultFilterScheme() {
      try {
@@ -671,12 +671,12 @@
            Type: "Default"
          }
        })
        if (response.data.count === 1) {
          const data = response.data.data[0]
          this.HInterID_Choose = data.hmainid
          this.currentFilterScheme = `当前过滤方案:${data.方案名称} (${data.备注})`
          // 应用过滤条件
          this.applyFilterConditions(response.data.data)
        }
@@ -684,7 +684,7 @@
        console.error('获取过滤方案失败:', error)
      }
    },
    // 应用过滤条件
    applyFilterConditions(filterData) {
      filterData.forEach(item => {
@@ -693,17 +693,17 @@
        }
      })
    },
    // 保存过滤方案
    handleSaveScheme() {
      this.$message.info('保存方案功能')
    },
    // 读取过滤方案
    handleReadScheme() {
      this.$message.info('读取方案功能')
    },
    // 列设置
    handleColumnSetting() {
      this.$message.info('列设置功能')
@@ -791,4 +791,4 @@
.el-tree >>> .el-tree-node.is-current > .el-tree-node__content {
  background-color: #aef0f7;
}
</style>
</style>
src/views/component/PackStockDetail/index.vue
@@ -110,13 +110,13 @@
      loading: false,                               //页面加载动画显示标记
      dialogVisible: false,                         //包装容器出入库明细数据显示标记
      columnDialogVisible: false,                   //列设置按钮显示标记
      tableData: [],                                //表格数据
      tableColumns: [],                             //表格列数据
      allColumns: [],
      allColumns: [],
      selectedColumns: [],
      selectedRows: [],
      baseURL: process.env.VUE_APP_BASE_URL || "http://47.96.97.237/API/"
      baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API/"
    }
  },
  methods: {
@@ -129,8 +129,8 @@
      const hmainid = record.hmainid || record.HInterID
      const billNo = record.单据号 || record.HBillNo
      let billTypeDesc = ''
      switch (record.单据类型 || '') {
        case '1201': billTypeDesc = '外购入库单'; break
@@ -163,10 +163,10 @@
      this.loading = true
      try {
        const sWhere = " and hmainid = " +  `${HInterID}` ;
        const url = `${this.baseURL}/Kf_ICStockInOutBill/Kf_PackStockDetailQuery`
        const params = { sWhere }
        const response = await axios.get(url, { params })
        const data = response.data
@@ -191,7 +191,7 @@
      const columns = []
      const allColumns = []
      columns.push({
        type: 'selection',
        width: 55,
@@ -208,7 +208,7 @@
          sortable: true
        }
        switch (colName) {
          case 'HItemID':
            columnConfig.hide = true
@@ -241,12 +241,12 @@
    applyColumnSettings() {
      this.tableColumns = [
        this.tableColumns[0],
        this.tableColumns[0],
        ...this.allColumns.filter(col => this.selectedColumns.includes(col.field))
      ]
      this.columnDialogVisible = false
      this.saveColumnSettings()
    },
@@ -256,7 +256,7 @@
    saveColumnSettings() {
    },
    //#endregion
@@ -265,13 +265,13 @@
    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 (!values.every(value => isNaN(value))) {
          sums[index] = values.reduce((prev, curr) => {
src/views/component/SettleStyleDialog/index.vue
@@ -11,21 +11,21 @@
      <el-card class="search-card">
        <div slot="header" class="clearfix">
          <span>查询条件</span>
          <el-button
            style="float: right; padding: 3px 0"
          <el-button
            style="float: right; padding: 3px 0"
            type="text"
            @click="toggleCollapse"
          >
            {{ collapse ? '展开' : '收起' }}
          </el-button>
        </div>
        <el-form :model="queryParams" ref="queryForm" :inline="true">
          <el-row :gutter="20">
            <el-col :span="6">
              <el-form-item label="代码">
                <el-input
                  v-model="queryParams.HNumber"
                <el-input
                  v-model="queryParams.HNumber"
                  placeholder="请输入代码"
                  clearable
                  @keyup.enter.native="handleQuery"
@@ -34,8 +34,8 @@
            </el-col>
            <el-col :span="6">
              <el-form-item label="名称">
                <el-input
                  v-model="queryParams.HName"
                <el-input
                  v-model="queryParams.HName"
                  placeholder="请输入名称"
                  clearable
                  @keyup.enter.native="handleQuery"
@@ -44,8 +44,8 @@
            </el-col>
            <el-col :span="6">
              <el-form-item label="结算方式代码">
                <el-input
                  v-model="queryParams.HNumber2"
                <el-input
                  v-model="queryParams.HNumber2"
                  placeholder="请输入结算方式代码"
                  clearable
                  style="width: 190px"
@@ -97,8 +97,8 @@
                </el-col>
                <el-col :span="8">
                  <el-form-item label="内容">
                    <el-input
                      v-model="queryParams.ColContent"
                    <el-input
                      v-model="queryParams.ColContent"
                      placeholder="请输入内容"
                      clearable
                      @keyup.enter.native="handleQuery"
@@ -138,7 +138,7 @@
          @selection-change="handleSelectionChange"
        >
          <el-table-column type="selection" width="55" align="center" />
          <el-table-column
          <el-table-column
            v-for="column in tableColumns"
            :key="column.field"
            :prop="column.field"
@@ -189,7 +189,7 @@
      dialogVisible: false,
      collapse: false,
      loading: false,
      // 查询参数
      queryParams: {
        HNumber: '',
@@ -199,28 +199,28 @@
        Comparator: '0',
        ColContent: ''
      },
      // 表格数据
      tableData: [],
      tableColumns: [],
      selectedRow: null,
      multipleSelection: [],
      // 分页
      pagination: {
        page: 1,
        size: 50,
        total: 0
      },
      // 过滤方案
      currentFilterScheme: '',
      HInterID_Choose: 0,
      // 隐藏字段
      hiddenFields: ["HItemID", "HUSEORGID", "HCREATEORGID", "父级ID"],
      baseURL: process.env.VUE_APP_BASE_URL || 'http://47.96.97.237/API/',
      baseURL: process.env.VUE_APP_BASE_API || 'http://47.96.97.237/API/',
      user: 'admin',
      HModName: 'Gy_SettleStyle',
      HModuleName: '结算方式维护',
@@ -257,13 +257,13 @@
      this.loadTableData()
      this.getDefaultFilterScheme()
    },
    // 加载表格数据
    async loadTableData() {
      this.loading = true
      try {
        const sWhere = this.buildQueryCondition()
        const response = await axios.get(`${this.baseURL}/Gy_SettleStyle/SettleStyleList`, {
          params: {
            sWhere: sWhere,
@@ -271,7 +271,7 @@
            Organization: this.Organization
          }
        })
        if (response.data.count === 1) {
          this.tableData = response.data.data
          console.log('结算方式数据:', this.tableData)
@@ -287,11 +287,11 @@
        this.loading = false
      }
    },
    // 构建查询条件
    buildQueryCondition() {
      let sWhere = ""
      // 基本查询条件
      if (this.queryParams.HNumber) {
        sWhere += ` and 结算方式代码 like '%${this.queryParams.HNumber}%'`
@@ -299,9 +299,9 @@
      if (this.queryParams.HName) {
        sWhere += ` and 结算方式名称 like '%${this.queryParams.HName}%'`
      }
      // 高级过滤条件
      if (this.queryParams.ColName && this.queryParams.ColName !== "0" &&
      if (this.queryParams.ColName && this.queryParams.ColName !== "0" &&
          this.queryParams.Comparator && this.queryParams.Comparator !== "0") {
        let com = ""
        switch (this.queryParams.Comparator) {
@@ -323,26 +323,26 @@
        }
        sWhere += ` and ${this.queryParams.ColName} ${com}`
      }
      // 添加打开类型的过滤条件
      sWhere += this.addSWhereByOpenType()
      return sWhere
    },
    // 根据打开类型添加条件
    addSWhereByOpenType() {
      // 这里可以根据需要添加特定的过滤条件
      return " and 禁用标记 = ''"
    },
    // 生成表格列
    generateTableColumns(columnList) {
      this.tableColumns = []
      // 添加选择列
      this.tableColumns.push({ type: 'selection', fixed: 'left' })
      // 动态生成列
      if (columnList && columnList.length > 0) {
        columnList.forEach(item => {
@@ -354,12 +354,12 @@
              sortable: true,
              width: 200
            }
            // 根据字段类型设置不同的模板
            if (item.ColmType === 'DateTime') {
              column.formatter = this.formatDate
            }
            this.tableColumns.push(column)
          }
        })
@@ -378,13 +378,13 @@
        this.tableColumns = [...this.tableColumns, ...defaultColumns]
      }
    },
    // 查询
    handleQuery() {
      this.pagination.page = 1
      this.loadTableData()
    },
    // 重置查询
    handleReset() {
      this.queryParams = {
@@ -398,14 +398,14 @@
      this.pagination.page = 1
      this.loadTableData()
    },
    // 重新同步
    async handleResCnz() {
      if (!this.queryParams.HNumber2) {
        this.$message.warning('请输入结算方式代码')
        return
      }
      try {
        const response = await axios.get(`${this.baseURL}/Gy_SettleStyle/Gy_SettleStyleViewApi`, {
          params: {
@@ -413,7 +413,7 @@
            Type: 'JSFS'
          }
        })
        if (response.data.count === 1) {
          this.$message.success(response.data.Message)
          this.loadTableData() // 重新加载数据
@@ -425,29 +425,29 @@
        this.$message.error('重新同步失败')
      }
    },
    // 刷新
    handleRefresh() {
      this.loadTableData()
    },
    // 切换折叠状态
    toggleCollapse() {
      this.collapse = !this.collapse
    },
    // 行双击事件
    handleRowDblClick(row) {
      this.selectedRow = row
      this.confirmSelection()
    },
    // 行点击事件
    handleRowClick(row) {
      this.$refs.table.toggleRowSelection(row)
      this.selectedRow = row
    },
    // 选择变化
    handleSelectionChange(selection) {
      this.multipleSelection = selection
@@ -455,7 +455,7 @@
        this.selectedRow = selection[0]
      }
    },
    // 确认选择
    confirmSelection() {
      if (this.selectedRow) {
@@ -468,12 +468,12 @@
        this.$message.warning('请选择一条数据')
      }
    },
    // 退出
    handleExit() {
      this.dialogVisible = false
    },
    // 关闭对话框
    handleClose(done) {
      this.$confirm('确认关闭?')
@@ -482,20 +482,20 @@
        })
        .catch(_ => {})
    },
    // 分页大小改变
    handleSizeChange(size) {
      this.pagination.size = size
      this.pagination.page = 1
      this.loadTableData()
    },
    // 当前页改变
    handleCurrentChange(page) {
      this.pagination.page = page
      this.loadTableData()
    },
    // 格式化日期
    formatDate(dateString) {
      if (!dateString) return ''
@@ -506,7 +506,7 @@
        return dateString
      }
    },
    // 获取默认过滤方案
    async getDefaultFilterScheme() {
      try {
@@ -518,12 +518,12 @@
            Type: "Default"
          }
        })
        if (response.data.count === 1) {
          const data = response.data.data[0]
          this.HInterID_Choose = data.hmainid
          this.currentFilterScheme = `当前过滤方案:${data.方案名称} (${data.备注})`
          // 应用过滤条件
          this.applyFilterConditions(response.data.data)
        }
@@ -531,7 +531,7 @@
        console.error('获取过滤方案失败:', error)
      }
    },
    // 应用过滤条件
    applyFilterConditions(filterData) {
      filterData.forEach(item => {
@@ -540,17 +540,17 @@
        }
      })
    },
    // 保存过滤方案
    handleSaveScheme() {
      this.$message.info('保存方案功能')
    },
    // 读取过滤方案
    handleReadScheme() {
      this.$message.info('读取方案功能')
    },
    // 列设置
    handleColumnSetting() {
      this.$message.info('列设置功能')
@@ -606,4 +606,4 @@
  color: #fc9393;
  margin: 10px 0;
}
</style>
</style>
src/views/component/printList/barcode.vue
New file
@@ -0,0 +1,143 @@
<template>
  <div>
    <button @click="getTemp">打印</button>
    <div id="report_holder"> </div>
  </div>
</template>
<script>
import PrintJS from 'print-js'
import axios from "axios";
export default {
  name: "HBarPlanPrintWeb",
  data() {
    return {
      styleList: [],
      handleMessage: this.$route.query,
      pageSize: {
        width: 0,
        height: 0
      },
      reportViewer: null,
      baseUrl: process.env.VUE_APP_BASE_API,
      json_data: {
        recordset: [],
      },
      grfPath: "",
    }
  },
  async mounted() {
    // 获取 打印的数据
    await this.getPrintData()
    rubylong.grhtml5.barcodeURL = this.baseUrl + "/Utility/Barcode.ashx";
    this.reportViewer = rubylong.grhtml5.insertReportViewer("report_holder", this.grfPath,  this.json_data.recordset,
    );
    this.reportViewer.start();
  },
  methods: {
    getUrlVars_JSON() {
      var datajson;
      var str = this.propsData; //获取链接中传递的参数
      var arr = str.substring(str.lastIndexOf("=") + 1);
      datajson = JSON.parse(decodeURI(arr));
      return datajson;
    },
    async getPrintData() {
      let OpenTmp = decodeURIComponent(this.$route.query.OpenTmp);
      let sql = "";
      if (this.$route.query.Type == "Kf_SellOutBillList") {
        sql =
          "exec h_p_Kf_SellOutBillList_PrintSellOutBill " +
          this.handleMessage.linterid.toString();
      } else if (this.$route.query.Type == "HGy_BarCodeBill") {
        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";
      } else if (this.$route.query.Type == "HGyStockPlaceBarCode") {
        let condition = decodeURI(this.handleMessage.linterid.toString());
        sql = `SELECT
                CEILING(CAST(t.row_num AS FLOAT) / 2) AS orderid,
                MAX(CASE WHEN t.row_num % 2 = 1 THEN t.条码编号 END) AS 条码编号1,
                MAX(CASE WHEN t.row_num % 2 = 1 THEN t.仓位名称 END) AS 仓位名称1,
                MAX(CASE WHEN t.row_num % 2 = 0 THEN t.条码编号 END) AS 条码编号2,
                MAX(CASE WHEN t.row_num % 2 = 0 THEN t.仓位名称 END) AS 仓位名称2
              FROM (
                SELECT
                  条码编号, 仓位名称,
                  ROW_NUMBER() OVER (ORDER BY t1.HItemID) AS row_num
                FROM h_v_IF_StockPlaceList t1 where 条码编号 in (${condition})
              ) AS t
              GROUP BY CEILING(CAST(t.row_num AS FLOAT) / 2)
              ORDER BY orderid;`;
      }
      try{
        let res =  await axios.get(this.baseURL + "/CommonModel/searchMethod", {
          params: {
            sql: sql,
            user: sessionStorage["HUserName"],
            ModRightNameCheck: "",
            // , "HSubID": data[i].hsubid
          },
        })
        // 将 渲染数据 和 模板加载到本地
        let result = res.data;
          this.json_data.recordset = result.data;
          this.grfPath = "./static/grf/" + OpenTmp + ".grf"
          console.log(this.json_data);
      }catch(err) {
        this.$modal.msgError("接口请求失败!" + err);
      }
    },
    getTemp() {
      // 对每个要打印的对象添加分页
      let docs = document.querySelectorAll('[_grrecno]')
      this.pageSize.width = docs[0].offsetWidth
      this.pageSize.height = docs[0].offsetHeight
      docs.forEach((elem, index) => {
        elem.classList.add('printable')
      })
      let styles = document.querySelectorAll('[id^="_gridcss"]')
      this.styleList.push(...styles)
      this.execPrint()
    },
    execPrint() {
      PrintJS({
        printable: 'report_holder',
        scanStyles: false,
        type: 'html',
        style: this.styleList[0].innerText + ` @media print {
            .printable {
              page-break-inside: avoid;
              page-break-after: always;
            }
            @page {
              size: ${this.pageSize.width + 1}px ${this.pageSize.height + 1}px;
              margin: 0;
              padding: 0;
            }
            * {
              margin: 0;
              padding: 0;
            }
        `,
      })
    }
  }
}
</script>
<style></style>
src/views/component/printList/index.vue
@@ -3,6 +3,7 @@
        <el-form ref="formData" :model="formData" label-width="100px">
            <div style="padding: 10px; ">
                <el-button type="primary" size="small" @click="printClick">报表打印</el-button>
                <el-button type="primary" size="small" @click="printClickWeb">报表打印(网页)</el-button>
            </div>
            <el-table v-loading="loading" :data="printdata" ref="printTable" max-height="540"
                @selection-change="handleSelectionChange" :row-class-name="rowSysIndex" border>
@@ -66,6 +67,10 @@
        handlePrint() {
            this.openPrint = true
        },
        printClickWeb() {
          const routeUrl = this.$router.resolve({ path: '/hBarPlanPrintWeb',query:{linterid:this.linterid.toString(),Type:this.Type.toString(),OpenTmp: encodeURIComponent(this.rowForm.模板名称)} });
          window.open(routeUrl.href, '_blank');
        },
        printClick() {
            const routeUrl = this.$router.resolve({ path: '/hBarPlanPrint',query:{linterid:this.linterid.toString(),Type:this.Type.toString(),OpenTmp: encodeURIComponent(this.rowForm.模板名称)} });
            window.open(routeUrl.href, '_blank');
src/views/gyEmployee/edit/index.vue
@@ -902,7 +902,7 @@
      CheckBillDisabled: true,
      // OperationType: this.$route.query.OperationType,//保存类型(新增1修改3)
      HInterID: null,
      baseURL: process.env.VUE_APP_BASE_URL || "http://47.96.97.237/API/",
      baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API/",
      user: "admin",
      currentRow: [],
      lastSelectedRowIndex: null, // 用于记录上次点击的行索引
src/views/gyEmployee/index.vue
@@ -572,7 +572,7 @@
      subDisabled: false, //编辑页面保存按钮是否禁用(true禁用,false可用)
      OperationType: null, //保存类型(新增1修改3)
      HInterID: null,
      baseURL: process.env.VUE_APP_BASE_URL || "http://47.96.97.237/API/",
      baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API/",
      user: "admin",
      currentRow: [],
      lastSelectedRowIndex: null, // 用于记录上次点击的行索引
src/views/gyMaterial/GyMaterialCorrection.vue
@@ -15,15 +15,15 @@
        <el-card class="search-card">
          <div slot="header" class="clearfix">
            <span>查询条件</span>
            <el-button
              style="float: right; padding: 3px 0"
            <el-button
              style="float: right; padding: 3px 0"
              type="text"
              @click="toggleSearchMore"
            >
              {{ searchMore ? '收起' : '更多' }}
            </el-button>
          </div>
          <el-form :model="queryParams" ref="queryForm" label-width="80px">
            <el-row :gutter="20">
              <el-col :span="6">
@@ -126,7 +126,7 @@
                    </el-col>
                  </el-row>
                </div>
                <el-button
                  type="primary"
                  icon="el-icon-plus"
@@ -175,7 +175,7 @@
                </el-button>
              </div>
            </div>
            <div class="table-container">
              <el-table
                ref="mainTable"
@@ -204,7 +204,7 @@
                  </template>
                </el-table-column>
              </el-table>
              <!-- 分页 -->
              <div class="pagination-container">
                <el-pagination
@@ -245,7 +245,7 @@
                </el-button>
              </div>
            </div>
            <div class="table-container">
              <el-table
                ref="tempTable"
@@ -270,7 +270,7 @@
                      size="mini"
                      @change="handleCellEdit(row, column.field, $index)"
                    />
                    <!-- 下拉选择框 - 物料属性 -->
                    <el-select
                      v-else-if="column.field === '物料属性'"
@@ -283,7 +283,7 @@
                      <el-option value="自制" label="自制"></el-option>
                      <el-option value="委外" label="委外"></el-option>
                    </el-select>
                    <!-- 下拉选择框 - 事业部 -->
                    <el-select
                      v-else-if="column.field === '事业部'"
@@ -296,7 +296,7 @@
                      <el-option value="软磁事业部" label="软磁事业部"></el-option>
                      <el-option value="其他事业部" label="其他事业部"></el-option>
                    </el-select>
                    <!-- 不可编辑字段 -->
                    <span v-else>{{ row[column.field] }}</span>
                  </template>
@@ -347,34 +347,34 @@
      loading: false,
      tempLoading: false,
      columnSettingVisible: false,
      // 查询参数
      queryParams: {
        HNumber: '',
        HName: '',
        HOrgID: ''
      },
      // 过滤条件
      filterConditions: [
        { colName: '0', comparator: '0', colContent: '' }
      ],
      // 组织选项
      organizationOptions: [],
      // 表格数据
      tableData: [],
      tempTableData: [],
      selectedRows: [],
      // 分页
      pagination: {
        page: 1,
        size: 50,
        total: 0
      },
      // 列配置
      allColumns: [],
      mainTableColumns: [],
@@ -384,8 +384,8 @@
      openColumnSetting: false,
      // 模块名称
      HModName: 'Gy_Material_Correction',
      baseURL: process.env.VUE_APP_BASE_URL || 'http://47.96.97.237/API/',
      baseURL: process.env.VUE_APP_BASE_API || 'http://47.96.97.237/API/',
      user: 'admin'
    }
  },
@@ -414,7 +414,7 @@
      await this.getOrganizations()
      await this.getTableData()
    },
    // 获取组织列表
    async getOrganizations() {
      try {
@@ -429,9 +429,9 @@
        this.$modal.msgError('获取组织列表失败!')
      }
    },
    // 设置默认列
    setDefaultColumns() {
      this.allColumns = [
@@ -459,20 +459,20 @@
        { field: '创建人', title: '创建人', width: 100 },
        { field: '创建时间', title: '创建时间', width: 150 }
      ]
      this.mainTableColumns = this.allColumns.filter(col => !col.hide)
      this.tempTableColumns = this.mainTableColumns.map(col => ({
        ...col,
        editable: this.isEditableColumn(col.field)
      }))
    },
    // 获取表格数据
    async getTableData() {
      this.loading = true
      try {
        const sWhere = this.buildWhereCondition()
        const response = await axios.get(`${this.baseURL}/Gy_Material/page`, {
          params: {
            sWhere: sWhere,
@@ -482,7 +482,7 @@
            Organization: ''
          }
        })
        if (response.data.code === 1) {
          this.tableData = response.data.data
          this.pagination.total = response.data.count
@@ -495,11 +495,11 @@
        this.loading = false
      }
    },
    // 构建查询条件
    buildWhereCondition() {
      let sWhere = ''
      // 基本查询条件
      if (this.queryParams.HNumber) {
        sWhere += ` and 物料代码 like '%${this.queryParams.HNumber}%'`
@@ -510,7 +510,7 @@
      if (this.queryParams.HOrgID) {
        sWhere += ` and HUSEORGID = '${this.queryParams.HOrgID}'`
      }
      // 过滤条件
      this.filterConditions.forEach(filter => {
        if (filter.colName && filter.colName !== '0' && filter.comparator && filter.comparator !== '0') {
@@ -534,16 +534,16 @@
          sWhere += ` and ${filter.colName} ${condition}`
        }
      })
      return sWhere
    },
    // 查询
    handleSearch() {
      this.pagination.page = 1
      this.getTableData()
    },
    handleColumnSetting() {
      this.columnSettingShow = true;
      this.openColumnSetting = true;
@@ -568,7 +568,7 @@
      this.pagination.page = 1
      this.getTableData()
    },
    // 添加过滤条件
    addFilter() {
      this.filterConditions.push({
@@ -577,50 +577,50 @@
        colContent: ''
      })
    },
    // 删除过滤条件
    removeFilter(index) {
      this.filterConditions.splice(index, 1)
    },
    // 切换更多搜索条件
    toggleSearchMore() {
      this.searchMore = !this.searchMore
    },
    // 选择行变化
    handleSelectionChange(selection) {
      this.selectedRows = selection
    },
    // 数据确认 - 将选中的数据复制到临时表格
    handleDataConfirm() {
      if (this.selectedRows.length === 0) {
        this.$modal.msgWarning('请先选择要批改的数据!')
        return
      }
      // 深拷贝选中的数据到临时表格
      this.tempTableData = JSON.parse(JSON.stringify(this.selectedRows))
      // 锁定主表格中已选中的行(通过CSS类名)
      this.$nextTick(() => {
        this.$refs.mainTable.clearSelection()
      })
      this.$modal.msgSuccess(`已确认 ${this.selectedRows.length} 条数据,请在右侧表格中进行批改`)
    },
    // 保存批改数据
    async handleSave() {
      if (this.tempTableData.length === 0) {
        this.$modal.msgWarning('没有需要保存的数据!')
        return
      }
      try {
        this.tempLoading = true
        // 转换数据格式
        const saveData = this.tempTableData.map(item => ({
          HOnceRightRate: item['一次合格率标准值'],
@@ -643,7 +643,7 @@
          // 其他需要保存的字段...
          HItemID: item.HItemID
        }))
        // 数据验证
        for (const item of saveData) {
          if (!item.HNumber) {
@@ -654,12 +654,12 @@
          }
          // 其他验证规则...
        }
        const dataStr = JSON.stringify(saveData)
        const response = await axios.post(`${this.baseURL}/Gy_Material/SaveGy_MaterialList_Batch`, {
          msg: dataStr + ';' + this.user + ';' + this.queryParams.HOrgID
        })
        if (response.data.count === 1) {
          this.$modal.msgSuccess('保存成功!')
          this.tempTableData = []
@@ -673,14 +673,14 @@
        this.tempLoading = false
      }
    },
    // 删除数据
    async handleDelete() {
      if (this.selectedRows.length === 0) {
        this.$modal.msgWarning('请选择要删除的数据!')
        return
      }
      try {
        await this.$confirm('确认要删除选中的数据吗?', '提示', {
          type: 'warning'
@@ -693,7 +693,7 @@
            }
          })
        }
        this.$modal.msgSuccess('删除成功!')
        this.getTableData()
        this.selectedRows = []
@@ -703,13 +703,13 @@
        }
      }
    },
    // 单元格编辑
    handleCellEdit(row, field, index) {
      // 可以在这里添加编辑验证逻辑
      console.log(`编辑第${index + 1}行,字段: ${field}, 值: ${row[field]}`)
    },
    // 下拉选择变化
    handleSelectChange(field) {
      // 批量更新相同字段的值
@@ -717,12 +717,12 @@
        // 这里可以根据业务需求决定是否同步更新所有行的相同字段
      })
    },
    // 列设置
    handleColumnSetting() {
      this.columnSettingVisible = true
    },
    // 保存列设置
    handleColumnSave(columns) {
      this.allColumns = columns
@@ -735,7 +735,7 @@
    },
    // 退出
    handleExit() {
      if (this.tempTableData.length > 0) {
@@ -748,26 +748,26 @@
        this.handleClose()
      }
    },
    // 关闭对话框
    handleClose() {
      this.openCorrect = false
      this.$emit('close')
    },
    // 分页大小变化
    handleSizeChange(size) {
      this.pagination.size = size
      this.pagination.page = 1
      this.getTableData()
    },
    // 当前页变化
    handleCurrentChange(page) {
      this.pagination.page = page
      this.getTableData()
    },
    // 工具方法
    isEditableColumn(field) {
      const nonEditableFields = [
@@ -775,25 +775,25 @@
      ]
      return !nonEditableFields.includes(field)
    },
    isSelectColumn(field) {
      return ['物料属性', '事业部'].includes(field)
    },
    isDateColumn(field) {
      return field.includes('时间') || field.includes('日期')
    },
    formatDate(dateString) {
      if (!dateString) return ''
      const date = new Date(dateString)
      return date.toLocaleString('zh-CN')
    },
    getRowClassName({ row }) {
      return this.selectedRows.some(selected => selected.HItemID === row.HItemID) ? 'locked-row' : ''
    },
    divisionJudgment(divisionStr) {
      switch (divisionStr) {
        case '注塑事业部': return 3
@@ -801,7 +801,7 @@
        default: return 0
      }
    },
    materClsJudgment(materClsStr) {
      switch (materClsStr) {
        case '外购': return '1'
@@ -910,4 +910,4 @@
::v-deep .temp-table .el-select {
  width: 100%;
}
</style>
</style>
src/views/gyStockPlace/edit/index.vue
@@ -139,7 +139,7 @@
      CheckBillDisabled: true,
      // OperationType: this.$route.query.OperationType,//保存类型(新增1修改3)
      HInterID: null,
      baseURL: process.env.VUE_APP_BASE_URL || "http://47.96.97.237/API/",
      baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API/",
      user: "admin",
      currentRow: [],
      lastSelectedRowIndex: null, // 用于记录上次点击的行索引
src/views/gyWarehouse/edit/index.vue
@@ -243,7 +243,7 @@
      CheckBillDisabled: true,
      // OperationType: this.$route.query.OperationType,//保存类型(新增1修改3)
      HInterID: null,
      baseURL: process.env.VUE_APP_BASE_URL || "http://47.96.97.237/API/",
      baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API/",
      user: "admin",
      currentRow: [],
      lastSelectedRowIndex: null, // 用于记录上次点击的行索引