qq_41295110
2025-11-19 5fa77e254003aea6060e3f70d64e5fd1bcdb4748
src/views/basic/gyEmployee/gyEmployee.vue
@@ -1,26 +1,52 @@
<template>
  <div style="padding: 10px;position: relative;">
    <el-form :model="queryParams" ref="queryForm" label-width="98px" :inline="true" class="searchBox">
  <div style="padding: 10px; position: relative">
    <el-form
      :model="queryParams"
      ref="queryForm"
      label-width="98px"
      :inline="true"
      class="searchBox"
    >
      <el-row>
        <el-form-item label="职员代码" prop="HNumber" style="padding-left: 100px">
          <el-input v-model="queryParams.HNumber" placeholder="请输入职员代码" @keyup.enter.native="handleQuery"
            class="ForFilteringSchemes" />
          <el-input
            v-model="queryParams.HNumber"
            placeholder="请输入职员代码"
            @keyup.enter.native="handleQuery"
            class="ForFilteringSchemes"
          />
        </el-form-item>
        <el-form-item label="职员名称" prop="HName">
          <el-input v-model="queryParams.HName" placeholder="请输入职员名称" @keyup.enter.native="handleQuery"
            class="ForFilteringSchemes" />
          <el-input
            v-model="queryParams.HName"
            placeholder="请输入职员名称"
            @keyup.enter.native="handleQuery"
            class="ForFilteringSchemes"
          />
        </el-form-item>
        <el-form-item label="组织">
          <el-select v-model="queryParams.HOrgID" placeholder="请选择" class="ForFilteringSchemes">
            <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name" :value="item.ID">
          <el-select
            v-model="queryParams.HOrgID"
            placeholder="请选择"
            class="ForFilteringSchemes"
          >
            <el-option
              v-for="(item, index) in organizationList"
              :key="index"
              :label="item.Name"
              :value="item.ID"
            >
            </el-option>
          </el-select>
        </el-form-item>
      </el-row>
      <el-form-item label-width="78px">
        <el-button type="primary" size="small" icon="el-icon-search" @click="handleQuery">
          搜 索</el-button>
        <el-button icon="el-icon-circle-close" size="small" @click="searchOpen = false">取 消</el-button>
          搜 索</el-button
        >
        <el-button icon="el-icon-circle-close" size="small" @click="searchOpen = false"
          >取 消</el-button
        >
      </el-form-item>
      <el-collapse v-model="activeSeach">
        <el-collapse-item title="更多" name="1">
@@ -30,69 +56,132 @@
              <el-form-item label-width="0">
                <el-row>
                  <el-col :span="7">
                    <el-select v-model="queryParams.ColName1" placeholder="请选择" @change="riqiChange"
                      class="ForFilteringSchemes">
                    <el-select
                      v-model="queryParams.ColName1"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                      <span v-for="(item, index) in btList" :key="index">
                        <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
                        <el-option
                          :label="item.field"
                          :value="item.field"
                          v-if="!item.hide"
                        ></el-option>
                      </span>
                    </el-select>
                  </el-col>
                  <el-col :span="6" style="padding: 0 10px">
                    <el-select v-model="queryParams.Comparator1" placeholder="请选择" @change="riqiChange"
                      class="ForFilteringSchemes">
                      <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                        :value="item.value"></el-option>
                    <el-select
                      v-model="queryParams.Comparator1"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                      <el-option
                        v-for="(item, index) in comparatorList"
                        :key="index"
                        :label="item.label"
                        :value="item.value"
                      ></el-option>
                    </el-select>
                  </el-col>
                  <el-col :span="11">
                    <el-input v-model="queryParams.ColContent1" placeholder="请输入" clearable
                      @keyup.enter.native="handleQuery" class="ForFilteringSchemes" />
                    <el-input
                      v-model="queryParams.ColContent1"
                      placeholder="请输入"
                      clearable
                      @keyup.enter.native="handleQuery"
                      class="ForFilteringSchemes"
                    />
                  </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="请选择" @change="riqiChange"
                      class="ForFilteringSchemes">
                    <el-select
                      v-model="queryParams.ColName2"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                      <span v-for="(item, index) in btList" :key="index">
                        <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
                        <el-option
                          :label="item.field"
                          :value="item.field"
                          v-if="!item.hide"
                        ></el-option>
                      </span>
                    </el-select>
                  </el-col>
                  <el-col :span="6" style="padding: 0 10px">
                    <el-select v-model="queryParams.Comparator2" placeholder="请选择" @change="riqiChange"
                      class="ForFilteringSchemes">
                    <el-select
                      v-model="queryParams.Comparator2"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                      <span v-for="(item, index) in btList" :key="index">
                        <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
                        <el-option
                          :label="item.field"
                          :value="item.field"
                          v-if="!item.hide"
                        ></el-option>
                      </span>
                    </el-select>
                  </el-col>
                  <el-col :span="11">
                    <el-input v-model="queryParams.ColContent2" placeholder="请输入" clearable
                      @keyup.enter.native="handleQuery" class="ForFilteringSchemes" />
                    <el-input
                      v-model="queryParams.ColContent2"
                      placeholder="请输入"
                      clearable
                      @keyup.enter.native="handleQuery"
                      class="ForFilteringSchemes"
                    />
                  </el-col>
                </el-row>
              </el-form-item>
              <el-form-item label-width="0">
                <el-row>
                  <el-col :span="7">
                    <el-select v-model="queryParams.ColName" placeholder="请选择" @change="riqiChange"
                      class="ForFilteringSchemes">
                      <el-option v-for="(item, index) in btList" :key="index" :label="item.field"
                        :value="item.field"></el-option>
                    <el-select
                      v-model="queryParams.ColName"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                      <el-option
                        v-for="(item, index) in btList"
                        :key="index"
                        :label="item.field"
                        :value="item.field"
                      ></el-option>
                    </el-select>
                  </el-col>
                  <el-col :span="6" style="padding: 0 10px">
                    <el-select v-model="queryParams.Comparator" placeholder="请选择" @change="riqiChange"
                      class="ForFilteringSchemes">
                      <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                        :value="item.value"></el-option>
                    <el-select
                      v-model="queryParams.Comparator"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                      <el-option
                        v-for="(item, index) in comparatorList"
                        :key="index"
                        :label="item.label"
                        :value="item.value"
                      ></el-option>
                    </el-select>
                  </el-col>
                  <el-col :span="11">
                    <el-input v-model="queryParams.ColContent" placeholder="请输入" clearable
                      @keyup.enter.native="handleQuery" class="ForFilteringSchemes" />
                    <el-input
                      v-model="queryParams.ColContent"
                      placeholder="请输入"
                      clearable
                      @keyup.enter.native="handleQuery"
                      class="ForFilteringSchemes"
                    />
                  </el-col>
                </el-row>
              </el-form-item>
@@ -113,120 +202,293 @@
        >
      </el-col> -->
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddEdit((OperationType = 1))"
          id="btn-Add">新增</el-button>
        <el-button
          type="primary"
          icon="el-icon-plus"
          size="mini"
          @click="handleAddEdit((OperationType = 1))"
          id="btn-Add"
          >新增</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="handleEdit((row = rowForm), (OperationType = 3))">编辑</el-button>
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleEdit((row = rowForm), (OperationType = 3))"
          >编辑</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="handleEdit((row = rowForm), (OperationType = 2))">复制</el-button>
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleEdit((row = rowForm), (OperationType = 2))"
          >复制</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete">删除
        <el-button
          type="primary"
          icon="el-icon-delete"
          size="mini"
          :disabled="single"
          @click="handleDelete"
          >删除
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="set_CheckBill(0, (form = rowForm))">审核</el-button>
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_CheckBill(0, (form = rowForm))"
          >审核</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="set_CheckBill(1, (form = rowForm))">返审核</el-button>
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_CheckBill(1, (form = rowForm))"
          >返审核</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="set_De_Stop(0, (form = rowForm))">禁用</el-button>
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_De_Stop(0, (form = rowForm))"
          >禁用</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="set_De_Stop(1, (form = rowForm))">反禁用</el-button>
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_De_Stop(1, (form = rowForm))"
          >反禁用</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
        <el-button
          type="primary"
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          >导出</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-download" size="mini" @click="handleRowHide">隐藏列设置</el-button>
        <el-button
          type="primary"
          icon="el-icon-download"
          size="mini"
          @click="handleRowHide"
          >隐藏列设置</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-help" size="mini" @click="handleSearch">搜 索</el-button>
      <el-col :span="1.5" class="zy-hidden">
        <el-button type="primary" icon="el-icon-help" size="mini" @click="handleSearch"
          >搜 索</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重 置</el-button>
      <el-col :span="1.5" class="zy-hidden">
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
          >重 置</el-button
        >
      </el-col>
      <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
    </el-row>
    <div class="tableBox" v-loading="loading">
      <el-table :data="tableData" ref="tableData" max-height="750" :summary-method="getSummaries"
        @selection-change="handleSelectionChange" show-summary border @row-click="handleRowClick" :row-style="rowStyle"
        @cell-dblclick="handleDblclick" v-if="tableShow">
      <el-table
        :data="tableData"
        ref="tableData"
        max-height="750"
        :summary-method="getSummaries"
        @selection-change="handleSelectionChange"
        show-summary
        border
        @row-click="handleRowClick"
        :row-style="rowStyle"
        @cell-dblclick="handleDblclick"
        v-if="tableShow"
      >
        <template v-for="(item, index) in btList">
          <el-table-column type="selection" width="55" align="center" :fixed="item.fixed" v-if="item.type == 'checkbox'"
            :key="index" />
          <el-table-column :align="item.align" :prop="item.field" :label="item.title" :width="item.width"
            :key="item.sorderid" v-else-if="!item.hide && item.type != 'checkbox'" :sortable="item.sort"
            show-overflow-tooltip :fixed="item.fixed">
          <el-table-column
            type="selection"
            width="55"
            align="center"
            :fixed="item.fixed"
            v-if="item.type == 'checkbox'"
            :key="index"
          />
          <el-table-column
            :align="item.align"
            :prop="item.field"
            :label="item.title"
            :width="item.width"
            :key="item.sorderid"
            v-else-if="!item.hide && item.type != 'checkbox'"
            :sortable="item.sort"
            show-overflow-tooltip
            :fixed="item.fixed"
          >
            <template slot-scope="{ row, column }">
              <el-checkbox v-model="checked" v-if="item.type == 'checkbox'"></el-checkbox>
              <div :style="item.style">
                <span v-if="column.property.includes('日期')">{{
                  parseTime(row[column.property], "{y}-{m}-{d}")
                }}</span>
                <el-button type="text" @click="handleEdit(row, (OperationType = 3))"
                  v-else-if="column.property == '单据号'">{{ row.单据号 }}</el-button>
                <el-button
                  type="text"
                  @click="handleEdit(row, (OperationType = 3))"
                  v-else-if="column.property == '职员代码'"
                  >{{ row.职员代码 }}</el-button
                >
                <span v-else>{{ row[column.label] }}</span>
              </div>
            </template>
          </el-table-column>
        </template>
      </el-table>
      <pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize" :pageSizes="pageSizes"
        @pagination="getList" />
      <el-dialog title="隐藏列设置" :visible.sync="openRowHide" width="816px" append-to-body>
        <RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="rowSetClose" v-if="rowHideShow" />
      <pagination
        v-show="total > 0"
        :total="total"
        :page.sync="page"
        :limit.sync="pageSize"
        :pageSizes="pageSizes"
        @pagination="getList"
      />
      <el-dialog
        title="隐藏列设置"
        :visible.sync="openRowHide"
        width="816px"
        append-to-body
      >
        <RowSettings
          :colName="btResList"
          :HModName="HModName"
          @rowEditClose="rowSetClose"
          v-if="rowHideShow"
        />
      </el-dialog>
      <!-- 编辑 -->
      <el-dialog title="编辑职员" :visible.sync="openEdit" width="1480px" append-to-body class="xsckdBox"
        :before-close="close">
        <edit :OperationType="OperationType" :linterid="this.rowForm.HItemID"
          :HSouceBillType="this.rowForm.HSourceBillType" :HOrgID="this.queryParams.HOrgID" :copyType="copyType"
          @editCloseGy="editGyClose" v-if="editShow" />
      <el-dialog
        title="编辑职员"
        :visible.sync="openEdit"
        width="1480px"
        append-to-body
        class="xsckdBox"
        :before-close="close"
      >
        <edit
          :OperationType="OperationType"
          :linterid="this.rowForm.HItemID"
          :HSouceBillType="this.rowForm.HSourceBillType"
          :HOrgID="this.queryParams.HOrgID"
          :copyType="copyType"
          @editCloseGy="editGyClose"
          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="set_AddNew">导入数据</el-button>
          <el-button type="primary" @click="upload.open = false">退 出</el-button>
          <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" style="display: inline-block; margin-left: 10px"
            :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
            :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess">
          <el-upload
            ref="upload"
            :limit="1"
            accept=".xlsx, .xls"
            style="display: inline-block; margin-left: 10px"
            :action="upload.url + '?updateSupport=' + upload.updateSupport"
            :disabled="upload.isUploading"
            :on-progress="handleFileUploadProgress"
            :on-success="handleFileSuccess"
          >
            <el-button type="primary">文件上传</el-button>
          </el-upload>
        </div>
        <el-table :data="uploadData" v-loading="uploadTableLoading" :row-class-name="uploadDataIndex" border
          height="550">
        <el-table
          :data="uploadData"
          v-loading="uploadTableLoading"
          :row-class-name="uploadDataIndex"
          border
          height="550"
        >
          <el-table-column type="index" label="序号" width="55" align="center" />
          <el-table-column label="组织代码" prop="组织代码" align="center" width="120" />
          <el-table-column label="组织名称" prop="组织名称" align="center" width="120" />
          <el-table-column label="生产资源名称" prop="生产资源名称" align="center" width="120" />
          <el-table-column label="生产资源代码" prop="生产资源代码" align="center" width="120" />
          <el-table-column
            label="生产资源名称"
            prop="生产资源名称"
            align="center"
            width="120"
          />
          <el-table-column
            label="生产资源代码"
            prop="生产资源代码"
            align="center"
            width="120"
          />
          <el-table-column label="部门代码" prop="部门代码" align="center" width="120" />
          <el-table-column label="部门名称" prop="部门名称" align="center" width="120" />
          <el-table-column label="负责人代码" prop="负责人代码" align="center" width="120" />
          <el-table-column
            label="负责人代码"
            prop="负责人代码"
            align="center"
            width="120"
          />
          <el-table-column label="负责人" prop="负责人" align="center" width="120" />
          <el-table-column label="工作中心代码" prop="工作中心代码" align="center" width="120" />
          <el-table-column label="工作中心名称" prop="工作中心名称" align="center" width="120" />
          <el-table-column
            label="工作中心代码"
            prop="工作中心代码"
            align="center"
            width="120"
          />
          <el-table-column
            label="工作中心名称"
            prop="工作中心名称"
            align="center"
            width="120"
          />
          <el-table-column label="单班工时" prop="单班工时" align="center" width="120" />
          <el-table-column label="操作" align="center">
            <template slot-scope="scope">
              <el-button size="mini" type="text" icon="el-icon-delete"
                @click="uploadDataDelete(scope.row)">删除</el-button>
              <el-button
                size="mini"
                type="text"
                icon="el-icon-delete"
                @click="uploadDataDelete(scope.row)"
                >删除</el-button
              >
            </template>
          </el-table-column>
        </el-table>
        <pagination v-show="uploadTotal > 0" :total="uploadTotal" :page.sync="uploadPage" :limit.sync="uploadPageSize"
          :pageSizes="uploadPageSizes" @pagination="currentPage" />
        <pagination
          v-show="uploadTotal > 0"
          :total="uploadTotal"
          :page.sync="uploadPage"
          :limit.sync="uploadPageSize"
          :pageSizes="uploadPageSizes"
          @pagination="currentPage"
        />
      </el-dialog>
    </div>
  </div>
@@ -246,7 +508,7 @@
  },
  data() {
    return {
      activeSeach: '',
      activeSeach: "",
      HModName: "Gy_Employee",
      editShow: false,
      openEdit: false,
@@ -554,7 +816,7 @@
          },
        })
        .then((response) => {
          console.log(response.data.data)
          console.log(response.data.data);
          this.tyResList = response.data.data; //总数据
          let data1 = response.data;
          let option = [];
@@ -797,7 +1059,7 @@
      this.lastSelectedRowIndex = this.tableData.indexOf(row);
      this.$refs.tableData.toggleRowSelection(row);
      if (this.openPage) {
        this.$emit('deptEmit', row, 4)
        this.$emit("deptEmit", row, 4);
      }
    },
    //选中行高亮样式
@@ -810,7 +1072,7 @@
    handleDblclick(row, column, cell, event) {
      this.OperationType = 3;
      if (this.openPage) {
        this.$emit('deptEmitDb', row, 4)
        this.$emit("deptEmitDb", row, 4);
      } else {
        this.handleEdit();
      }
@@ -821,12 +1083,12 @@
      if (this.openPage) {
        //列表单选
        if (selection.length > 1) {
          const del_row = selection.shift()
          this.$refs.tableData.toggleRowSelection(del_row, false) //设置这一行取消选中
          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]
        this.rowForm = {};
        this.ids = selection.map((item) => item.HItemID);
        this.rowForm = selection[0];
      } else {
        //多选
        this.ids = selection.map((item) => item.HItemID);
@@ -1044,7 +1306,7 @@
            this.$modal.msgError("此条数据不是创建状态,无法删除!");
          }
        })
        .catch(() => { });
        .catch(() => {});
    },
    // 反审核/审核数据
    set_CheckBill(num, form) {
@@ -1120,8 +1382,8 @@
      } 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 }
        );
@@ -1150,8 +1412,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 }
          );
@@ -1175,7 +1437,7 @@
            return deleteList.indexOf(item.index) == -1;
          });
        })
        .catch(() => { });
        .catch(() => {});
    },
    getPage(page, list) {
      let sindex = (parseInt(page) - 1) * this.uploadPageSize;
@@ -1197,4 +1459,7 @@
.xsckdBox .el-date-editor.el-input {
  width: 100%;
}
.zy-hidden {
  display: none;
}
</style>