duhe
2025-11-19 a9ca5dafb781919fe8a24cd586258e9144966271
src/views/GyCustomer/index.vue
@@ -1,27 +1,15 @@
<template>
  <div style="padding: 10px">
  <div style="padding: 10px; position: relative;">
    <el-card style="margin-bottom: 10px;">
      <el-form :inline="true" :model="queryParams" ref="queryForm" class="mb8">
        <el-form-item label="客户代码" prop="HNumber">
          <el-input
            v-model="queryParams.HNumber"
            placeholder="请输入客户代码"
            style="width: 160px"
          />
          <el-input v-model="queryParams.HNumber" placeholder="请输入客户代码" style="width: 160px" />
        </el-form-item>
        <el-form-item label="客户名称" prop="HName">
          <el-input
            v-model="queryParams.HName"
            placeholder="请输入客户名称"
            style="width: 160px"
          />
          <el-input v-model="queryParams.HName" placeholder="请输入客户名称" style="width: 160px" />
        </el-form-item>
        <el-form-item label="重新同步">
          <el-input
            v-model="queryParams.HNumber2"
            placeholder="请输入客户代码"
            style="width: 160px"
          />
          <el-input v-model="queryParams.HNumber2" placeholder="请输入客户代码" style="width: 160px" />
          <el-button type="primary" @click="handleResCnz" style="margin-left: 10px">重新同步</el-button>
        </el-form-item>
        <el-form-item>
@@ -40,126 +28,66 @@
                <el-form-item label-width="0">
                  <el-row>
                    <el-col :span="7">
                      <el-select
                        v-model="queryParams.ColName"
                        placeholder="请选择"
                        style="width: 100%"
                      >
                      <el-select v-model="queryParams.ColName" placeholder="请选择" style="width: 100%">
                        <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-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-select v-model="queryParams.Comparator" placeholder="请选择" style="width: 100%">
                        <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-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"
                      />
                      <el-input v-model="queryParams.ColContent" placeholder="请输入" clearable
                        @keyup.enter.native="handleQuery" />
                    </el-col>
                  </el-row>
                </el-form-item>
                <el-form-item label-width="0">
                  <el-row>
                    <el-col :span="7">
                      <el-select
                        v-model="queryParams.ColName1"
                        placeholder="请选择"
                        style="width: 100%"
                      >
                      <el-select v-model="queryParams.ColName1" placeholder="请选择" style="width: 100%">
                        <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-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-select v-model="queryParams.Comparator1" placeholder="请选择" style="width: 100%">
                        <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-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"
                      />
                      <el-input v-model="queryParams.ColContent1" placeholder="请输入" clearable
                        @keyup.enter.native="handleQuery" />
                    </el-col>
                  </el-row>
                </el-form-item>
                <el-form-item label-width="0">
                  <el-row>
                    <el-col :span="7">
                      <el-select
                        v-model="queryParams.ColName2"
                        placeholder="请选择"
                        style="width: 100%"
                      >
                      <el-select v-model="queryParams.ColName2" placeholder="请选择" style="width: 100%">
                        <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-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-select v-model="queryParams.Comparator2" placeholder="请选择" style="width: 100%">
                        <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-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.ColContent2"
                        placeholder="请输入"
                        clearable
                        @keyup.enter.native="handleQuery"
                      />
                      <el-input v-model="queryParams.ColContent2" placeholder="请输入" clearable
                        @keyup.enter.native="handleQuery" />
                    </el-col>
                  </el-row>
                </el-form-item>
@@ -169,189 +97,73 @@
        </el-collapse>
      </el-form>
      <div style="text-align:center;font-size:15px;font-weight:bold;color:#fc9393;margin: 20px 0;">
        {{ currentFilterScheme }}
      </div>
    </el-card>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-upload2"
          size="mini"
          @click="handleImport"
          >导入</el-button
        >
        <el-button type="warning" plain icon="el-icon-upload2" size="mini" @click="handleImport">导入</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          >导出</el-button
        >
        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-document"
          size="mini"
          @click="handleNumAdd"
          >流水号新增</el-button
        >
        <el-button type="primary" plain icon="el-icon-document" size="mini" @click="handleNumAdd">流水号新增</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          >新增</el-button
        >
        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-document-copy"
          size="mini"
          :disabled="single"
          @click="handleCopy"
          >复制</el-button
        >
        <el-button type="success" plain icon="el-icon-document-copy" size="mini" :disabled="single"
          @click="handleCopy">复制</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleEdit"
          >编辑</el-button
        >
        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single"
          @click="handleEdit">编辑</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="danger"
          plain
          icon="el-icon-delete"
          size="mini"
          :disabled="single"
          @click="handleDelete"
          >删除</el-button
        >
        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="single"
          @click="handleDelete">删除</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-check"
          size="mini"
          :disabled="single"
          @click="handleAudit(0)"
          >审核</el-button
        >
        <el-button type="success" plain icon="el-icon-check" size="mini" :disabled="single"
          @click="handleAudit(0)">审核</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-close"
          size="mini"
          :disabled="single"
          @click="handleAudit(1)"
          >反审核</el-button
        >
        <el-button type="success" plain icon="el-icon-close" size="mini" :disabled="single"
          @click="handleAudit(1)">反审核</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-turn-off"
          size="mini"
          :disabled="single"
          @click="handleStop(0)"
          >禁用</el-button
        >
        <el-button type="warning" plain icon="el-icon-turn-off" size="mini" :disabled="single"
          @click="handleStop(0)">禁用</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-open"
          size="mini"
          :disabled="single"
          @click="handleStop(1)"
          >反禁用</el-button
        >
        <el-button type="warning" plain icon="el-icon-open" size="mini" :disabled="single"
          @click="handleStop(1)">反禁用</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="info"
          plain
          icon="el-icon-setting"
          size="mini"
          @click="handleColumnSetting"
          >列设置</el-button
        >
        <el-button type="info" plain icon="el-icon-setting" size="mini" @click="handleColumnSetting">列设置</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="info"
          plain
          icon="el-icon-s-operation"
          size="mini"
          @click="handleButtonSetting"
          >按钮设置</el-button
        >
        <el-button type="info" plain icon="el-icon-s-operation" size="mini"
          @click="handleButtonSetting">按钮设置</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-folder-checked"
          size="mini"
          @click="handleSaveScheme"
          >保存方案</el-button
        >
        <el-button type="primary" plain icon="el-icon-folder-checked" size="mini"
          @click="handleSaveScheme">保存方案</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-folder-opened"
          size="mini"
          @click="handleReadScheme"
          >读取方案</el-button
        >
        <el-button type="primary" plain icon="el-icon-folder-opened" size="mini"
          @click="handleReadScheme">读取方案</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="info"
          plain
          icon="el-icon-refresh"
          size="mini"
          @click="handleRefresh"
          >刷新</el-button
        >
        <el-button type="info" plain icon="el-icon-refresh" size="mini" @click="handleRefresh">刷新</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="info"
          plain
          icon="el-icon-close"
          size="mini"
          @click="handleExit"
          >退出</el-button
        >
        <el-button type="info" plain icon="el-icon-close" size="mini" @click="handleExit">退出</el-button>
      </el-col>
    </el-row>
@@ -361,15 +173,8 @@
          <div slot="header">
            <span>客户分类</span>
          </div>
          <el-tree
            :data="treeData"
            :props="treeProps"
            node-key="id"
            default-expand-all
            :expand-on-click-node="false"
            @node-click="handleTreeNodeClick"
            :highlight-current="true"
          >
          <el-tree :data="treeData" :props="treeProps" node-key="id" default-expand-all :expand-on-click-node="false"
            @node-click="handleTreeNodeClick" :highlight-current="true">
            <span class="custom-tree-node" slot-scope="{ node, data }">
              <span>{{ node.label }}</span>
            </span>
@@ -377,42 +182,20 @@
        </el-card>
      </el-col>
      <el-col :span="20">
        <div class="tableBox" v-loading="loading">
          <el-table
            :data="tableData"
            ref="tableData"
            height="600"
            @selection-change="handleSelectionChange"
            border
            @row-click="handleRowClick"
            :row-style="rowStyle"
            @cell-dblclick="handleDblclick"
            v-if="tableShow"
          >
          <el-table :data="tableData" ref="tableData" height="600" @selection-change="handleSelectionChange" border
            @row-click="handleRowClick" :row-style="rowStyle" @cell-dblclick="handleDblclick" v-if="tableShow">
            <el-table-column type="selection" width="55" align="center" fixed="left" />
            <el-table-column prop="hmainid" label="单据ID" v-if="false" />
            <el-table-column
              v-for="(item, index) in btList"
              :key="index"
              :align="item.align"
              :prop="item.field"
              :label="item.title"
              :width="item.width"
              v-if="!item.hide"
              :sortable="item.sort"
              show-overflow-tooltip
              :fixed="item.fixed"
            >
            <el-table-column v-for="(item, index) in btList" :key="index" :align="item.align" :prop="item.field"
              :label="item.title" :width="item.width" v-if="!item.hide" :sortable="item.sort" show-overflow-tooltip
              :fixed="item.fixed">
              <template slot-scope="{ row, column }">
                <div :style="item.style">
                  <el-button
                    type="text"
                    @click="handleCustomerCodeClick(row)"
                    v-if="column.property === '客户代码'"
                    >{{ row[column.property] }}</el-button
                  >
                  <el-button type="text" @click="handleCustomerCodeClick(row)" v-if="column.property === '客户代码'">{{
                    row[column.property] }}</el-button>
                  <span v-else-if="(column.property || '').includes('时间') || (column.property || '').includes('日期')">
                    {{ formatDate(row[column.property]) }}
                  </span>
@@ -421,37 +204,20 @@
              </template>
            </el-table-column>
          </el-table>
          <pagination
            v-show="total > 0"
            :total="total"
            :page.sync="page"
            :limit.sync="pageSize"
            :pageSizes="pageSizes"
            @pagination="getList"
          />
          <pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize" :pageSizes="pageSizes"
            @pagination="getList" />
        </div>
      </el-col>
    </el-row>
    <el-card v-if="selectedRow" style="margin-top: 20px">
      <div slot="header">
        <span>关联用户</span>
      </div>
      <el-table
        :data="relationUserData"
        height="300"
        border
        v-loading="relationLoading"
      >
        <el-table-column
          v-for="(item, index) in relationUserColumns"
          :key="index"
          :prop="item.field"
          :label="item.title"
          :width="item.width"
          :align="item.align"
        >
      <el-table :data="relationUserData" height="300" border v-loading="relationLoading">
        <el-table-column v-for="(item, index) in relationUserColumns" :key="index" :prop="item.field"
          :label="item.title" :width="item.width" :align="item.align">
          <template slot-scope="{ row, column }">
            <span v-if="column.property.includes('时间') || column.property.includes('日期')">
              {{ formatDate(row[column.property]) }}
@@ -462,80 +228,37 @@
      </el-table>
    </el-card>
    <el-dialog
      title="隐藏列设置"
      :visible.sync="openColumnSetting"
      width="816px"
      append-to-body
    >
      <RowSettings
        :colName="btResList"
        :HModName="HModName"
        @rowEditClose="columnSettingClose"
        v-if="columnSettingShow"
      />
    <el-dialog title="隐藏列设置" :visible.sync="openColumnSetting" width="816px" append-to-body>
      <RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="columnSettingClose"
        v-if="columnSettingShow" />
    </el-dialog>
    <el-dialog
      title="编辑客户"
      :visible.sync="openEdit"
      width="1480px"
      append-to-body
      class="customerBox"
      :before-close="closeEdit"
    >
    <CustomerEdit
      :OperationType="OperationType"
      :linterid="selectedRow ? selectedRow.HItemID : ''"
      :HSouceBillType="''"
      :HCusTypeID="currentCusTypeID"
      :HCusClsName="currentCusClsName"
      @editClose="editClose"
      v-if="editShow"
    />
    <el-dialog title="编辑客户" :visible.sync="openEdit" width="1480px" append-to-body class="customerBox"
      :before-close="closeEdit">
      <CustomerEdit :OperationType="OperationType" :linterid="selectedRow ? selectedRow.HItemID : ''"
        :HSouceBillType="''" :HCusTypeID="currentCusTypeID" :HCusClsName="currentCusClsName" @editClose="editClose"
        v-if="editShow" />
    </el-dialog>
    <el-dialog
      :title="upload.title"
      :visible.sync="upload.open"
      width="1500px"
      append-to-body
    >
    <el-dialog :title="upload.title" :visible.sync="upload.open" width="1500px" 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-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-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"
        border
        height="550"
      >
      <el-table :data="uploadData" v-loading="uploadTableLoading" 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="操作" align="center">
          <template slot-scope="scope">
            <el-button
              size="mini"
              type="text"
              icon="el-icon-delete"
              @click="uploadDataDelete(scope.$index)"
              >删除</el-button
            >
            <el-button size="mini" type="text" icon="el-icon-delete"
              @click="uploadDataDelete(scope.$index)">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -550,21 +273,21 @@
export default {
  name: "GyCustomer",
  components: { RowSettings ,CustomerEdit},
  components: { RowSettings, CustomerEdit },
  props: {
    openPage: { type: String },
  },
  data() {
    return {
      activeCollapse: [],
      activeCollapse: [],
      HModName: "Gy_Customer",
      HModuleName: "客户列表维护",
      HClassTag: "ForFilteringSchemes",
      treeData: [],
      treeProps: {
        children: 'children',
@@ -572,18 +295,18 @@
      },
      currentCusTypeID: 0,
      currentCusClsName: '',
      editShow: false,
      openEdit: false,
      OperationType: null,
      columnSettingShow: false,
      openColumnSetting: false,
      tableShow: true,
      loading: true,
      queryParams: {
        HNumber: null,
        HName: null,
@@ -598,10 +321,10 @@
        ColContent1: "",
        ColContent2: "",
      },
      currentFilterScheme: "",
      HInterID_Choose: 0,
      comparatorList: [
        { label: "=", value: "=" },
        { label: ">=", value: ">=" },
@@ -614,7 +337,7 @@
        { label: "右包含", value: "9" },
        { label: "不包含", value: "10" },
      ],
      sWhere: "",
      selectedRow: null,
      ids: [],
@@ -628,11 +351,11 @@
      page: 1,
      pageSize: 50,
      total: 0,
      relationUserData: [],
      relationUserColumns: [],
      relationLoading: false,
      upload: {
        open: false,
        title: "导入",
@@ -642,7 +365,7 @@
      },
      uploadData: [],
      uploadTableLoading: false,
      baseURL: process.env.VUE_APP_BASE_URL || "http://47.96.97.237/API/",
      user: "admin",
    };
@@ -672,7 +395,7 @@
          this.$modal.msgError("接口请求失败!");
        });
    },
    getTreeData() {
      axios
        .get(this.baseURL + "/Gy_BadReason/Gy_CusTypeTreeListByLevel")
@@ -685,7 +408,7 @@
          this.$modal.msgError("接口请求失败!");
        });
    },
    getList() {
      this.tableShow = false;
      this.loading = true;
@@ -724,7 +447,7 @@
          this.loading = false;
        });
    },
    setDefaultColumns() {
      this.btList = [
        { type: 'checkbox', fixed: 'left' },
@@ -740,13 +463,13 @@
        { field: '创建时间', title: '创建时间', align: 'center', width: 150 }
      ];
    },
    handleTreeNodeClick(data) {
      this.currentCusTypeID = data.id;
      this.currentCusClsName = data.title;
      if (data.id == "100") {
        this.sWhere = " and HCusTypeID= "+"0";
        this.sWhere = " and HCusTypeID= " + "0";
      } else if (data.id == "0") {
        this.sWhere = "";
      } else {
@@ -754,13 +477,13 @@
      }
      this.getList();
    },
    async handleQuery() {
      this.sWhere = "";
      this.processFilterConditions();
      if (this.queryParams.HNumber) {
        this.sWhere += " and 客户代码 like '%" + this.queryParams.HNumber + "%'";
@@ -771,7 +494,7 @@
      this.getList();
    },
    processFilterConditions() {
      const conditions = [
        { colName: this.queryParams.ColName, comparator: this.queryParams.Comparator, content: this.queryParams.ColContent },
@@ -803,8 +526,8 @@
        }
      });
    },
    resetQuery() {
      this.sWhere = "";
      this.queryParams = {
@@ -823,13 +546,13 @@
      };
      this.getList();
    },
    handleResCnz() {
      if (!this.queryParams.HNumber2) {
        this.$modal.msgWarning("请输入客户代码");
        return;
      }
      axios
        .get(this.baseURL + "/Gy_Customer/Gy_CustomerViewApi", {
          params: {
@@ -849,16 +572,16 @@
          this.$modal.msgError("接口请求失败!");
        });
    },
    handleImport() {
      this.uploadData = [];
      this.upload.isUploading = false;
      this.upload.title = "导入";
      this.upload.open = true;
    },
    handleExport() {
      axios
        .get(this.baseURL + "/LMES/getReportByModRightNameCheck", {
@@ -881,7 +604,7 @@
          this.$modal.msgError("接口请求失败!");
        });
    },
    handleNumAdd() {
      if ((this.currentCusTypeID == 0 || this.currentCusTypeID == null) && !this.judgeSkipTouchCusType()) {
        this.$modal.msgWarning("请选择具体客户分类!");
@@ -891,13 +614,13 @@
      this.openEdit = true;
      this.editShow = true;
    },
    handleAdd() {
      this.OperationType = 1;
      this.openEdit = true;
      this.editShow = true;
    },
    handleCopy() {
      if (this.single) {
        this.$modal.msgWarning("请选择一条数据");
@@ -907,7 +630,7 @@
      this.openEdit = true;
      this.editShow = true;
    },
    handleEdit() {
      if (this.single) {
        this.$modal.msgWarning("请选择一条数据");
@@ -917,7 +640,7 @@
      this.openEdit = true;
      this.editShow = true;
    },
    handleDelete() {
      if (this.single) {
        this.$modal.msgWarning("请选择一条数据");
@@ -952,9 +675,9 @@
              this.$modal.msgError("接口请求失败!");
            });
        })
        .catch(() => {});
        .catch(() => { });
    },
    handleAudit(isAudit) {
      if (this.single) {
        this.$modal.msgWarning("请选择一条数据");
@@ -981,7 +704,7 @@
          this.$modal.msgError("接口请求失败!");
        });
    },
    handleStop(isStop) {
      if (this.single) {
        this.$modal.msgWarning("请选择一条数据");
@@ -1007,45 +730,48 @@
          this.$modal.msgError("接口请求失败!");
        });
    },
    handleColumnSetting() {
      this.columnSettingShow = true;
      this.openColumnSetting = true;
    },
    handleButtonSetting() {
      this.$modal.msgInfo("按钮设置功能");
    },
    handleSaveScheme() {
      this.$modal.msgInfo("保存方案功能");
    },
    handleReadScheme() {
      this.$modal.msgInfo("读取方案功能");
    },
    handleRefresh() {
      this.getList();
    },
    handleExit() {
      this.$router.go(-1);
    },
    handleCustomerCodeClick(row) {
      this.selectedRow = row;
      this.OperationType = 3;
      this.openEdit = true;
      this.editShow = true;
    },
    handleRowClick(row, column, event) {
      this.$refs.tableData.toggleRowSelection(row);
      this.selectedRow = row;
      this.getRelationUserData(row.HItemID);
      if (this.openPage) {
        this.$emit('deptEmit', row, 7)
      }
    },
    getRelationUserData(HCusID) {
      this.relationLoading = true;
      axios
@@ -1064,8 +790,8 @@
          this.$modal.msgError("接口请求失败!");
        });
    },
    setRelationUserColumns(list) {
      this.relationUserColumns = [];
      for (let key in list) {
@@ -1079,49 +805,64 @@
        }
      }
    },
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.hmainid)) {
        return { background: "#ecf5ff" };
      }
    },
    handleDblclick(row, column, cell, event) {
      this.handleCustomerCodeClick(row);
    },
    handleSelectionChange(selection) {
      this.ids = selection.map((item) => item.hmainid);
      this.single = selection.length != 1;
      this.multiple = !selection.length;
      if (!this.single) {
        this.selectedRow = selection[0];
        this.getRelationUserData(this.selectedRow.HItemID);
      if (this.openPage) {
        this.$emit('deptEmitDb', row, 7)
      } else {
        this.handleCustomerCodeClick(row);
      }
    },
    handleSelectionChange(selection) {
      if (this.openPage) {
        //列表单选
        if (selection.length > 1) {
          const del_row = selection.shift()
          this.$refs.tableData.toggleRowSelection(del_row, false) //设置这一行取消选中
        }
        this.rowForm = {}
        this.ids = selection.map(item => item.HItemID)
        this.rowForm = selection[0]
      } else {
        this.ids = selection.map((item) => item.hmainid);
        this.single = selection.length != 1;
        this.multiple = !selection.length;
        if (!this.single) {
          this.selectedRow = selection[0];
          this.getRelationUserData(this.selectedRow.HItemID);
        }
      }
    },
    closeEdit() {
      this.openEdit = false;
      this.editShow = false;
    },
    editClose(val) {
      this.openEdit = false;
      this.editShow = false;
      this.getList();
    },
    columnSettingClose(val) {
      this.columnSettingShow = false;
      this.openColumnSetting = val;
      this.getList();
    },
    handleFileUploadProgress(event, file, fileList) {
      this.upload.isUploading = true;
      this.uploadTableLoading = true;
    },
    handleFileSuccess(response, file, fileList) {
      this.upload.isUploading = true;
      this.$refs.upload.clearFiles();
@@ -1131,20 +872,20 @@
      } else {
        this.$alert(
          "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
            response.Message +
            "</div>",
          response.Message +
          "</div>",
          "导入结果",
          { dangerouslyUseHTMLString: true }
        );
      }
    },
    handleImportSubmit() {
      if (this.uploadData.length === 0) {
        this.$modal.msgWarning("请先上传文件");
        return;
      }
      var sMainSub = JSON.stringify(this.uploadData) + "&和" + this.user;
      axios({
        method: "post",
@@ -1156,8 +897,8 @@
        .then((res) => {
          this.$alert(
            "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
              res.data.Message +
              "</div>",
            res.data.Message +
            "</div>",
            "导入结果",
            { dangerouslyUseHTMLString: true }
          );
@@ -1168,28 +909,28 @@
          this.$modal.msgError("接口请求失败!");
        });
    },
    uploadDataDelete(index) {
      this.uploadData.splice(index, 1);
    },
    formatDate(dateString) {
      if (!dateString) return '';
      const date = new Date(dateString);
      return date.toLocaleString('zh-CN');
    },
    judgeSkipTouchCusType() {
      if (this.treeData.length > 0 && this.treeData[0].children &&
          this.treeData[0].children.length == 1 &&
          this.treeData[0].children[0].children.length == 0) {
      if (this.treeData.length > 0 && this.treeData[0].children &&
        this.treeData[0].children.length == 1 &&
        this.treeData[0].children[0].children.length == 0) {
        return true;
      } else {
        return false;
      }
    },
    getDefaultFilterScheme() {
      this.currentFilterScheme = "当前过滤方案:默认方案";
    }