chenhaozhe
2025-11-10 b4491142fb46659106553a583833175e0e861294
同步前提交
6个文件已添加
7个文件已修改
2960 ■■■■ 已修改文件
.env.development 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.production 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/employee/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/gyClassTimePrj/index.vue 235 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/gyDorm/index.vue 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/gyDuty/index.vue 270 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/gyGroup/index.vue 232 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/gyPost/index.vue 236 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/gyWorkType/index.vue 235 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/gyEmployee/edit/index.vue 1480 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/gyEmployee/index.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/gyStockPlace/edit/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/gyWarehouse/edit/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.development
@@ -1,17 +1,11 @@
# 页面标题
VUE_APP_TITLE = 管理系统
# 开发环境配置
ENV = 'development'
# 管理系统/开发环境
# VUE_APP_BASE_API = '/dev-api'
VUE_APP_BASE_API = '/API'
VUE_APP_BASE_URL = 'http://localhost:81/API/'
PORT = 81
VUE_APP_BASE_API = '/dev-api'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
.env.production
@@ -1,8 +1,8 @@
# 页面标题
VUE_APP_TITLE = 管理系统
# 生产环境配置
ENV = 'production'
# 管理系统/生产环境
VUE_APP_BASE_API = 'http://47.96.97.237/API/'
src/views/component/employee/index.vue
@@ -106,7 +106,7 @@
      let sWhere = "";
      this.loading = true;
      axios
        .get(process.env.VUE_APP_BASE_URL + "/Gy_Employee/list", {
        .get(process.env.VUE_APP_BASE_API + "/Gy_Employee/list", {
          params: { sWhere: sWhere, user: this.user, Organization: "浙江智云迈思" },
        })
        .then((response) => {
src/views/component/gyClassTimePrj/index.vue
New file
@@ -0,0 +1,235 @@
<template>
  <div style="padding: 10px">
    <el-table
      v-loading="loading"
      :data="tableData"
      ref="workTypeTable"
      max-height="550"
      @selection-change="handleSelectionChange"
      show-summary
      border
      @row-click="handleRowClick"
      :row-style="rowStyle"
      @cell-dblclick="handleDblclick"
    >
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column align="center" label="sorderid" type="index" sortable width="80" />
      <el-table-column
        align="center"
        v-for="(item, index) in btList"
        :key="index"
        :prop="item.ColmCols"
        :label="item.ColmCols"
        :width="flexWidth(item.ColmCols, tableData, item.ColmCols)"
        sortable
      >
        <template slot-scope="{ row, column }">
          <span>{{ row[column.label] }}</span>
        </template>
      </el-table-column>
    </el-table>
    <pagination
      v-show="total > 0"
      :total="total"
      :page.sync="page"
      :limit.sync="pageSize"
      @pagination="currentPage"
    />
  </div>
</template>
<script>
import axios from "axios";
export default {
  name: "Dept",
  components: {},
  data() {
    return {
      subDisabled: false, //编辑页面保存按钮是否禁用(true禁用,false可用)
      OperationType: null, //保存类型(新增1修改3)
      HInterID: null,
      baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API",
      user: "admin",
      currentRow: [],
      lastSelectedRowIndex: null, // 用于记录上次点击的行索引
      lastSelectedRow: null, // 上一次选中的行
      selectedRow: null, // 当前选中的行
      rowForm: {},
      checkedSysZb: [],
      editData: [],
      activeName: "first",
      searchOpen: false,
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 日期范围
      dateRange: [],
      // 查询参数
      queryParams: {
        单据号: undefined,
      },
      // 显示搜索条件
      showSearch: true,
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 遮罩层
      loading: true,
      tyResList: [],
      btList: [],
      tableData: [],
      page: 1,
      pageSize: 50,
      total: 0,
      scollHeight: document.body.clientHeight * (38.056 / 100),
      // 表单参数
      form: {},
      // 表单校验
      rules: {
        客户: [{ required: true, message: "客户不能为空", trigger: "blur" }],
        日期: [{ required: true, message: "日期不能为空", trigger: "blur" }],
        hl: [{ required: true, message: "汇率不能为空", trigger: "blur" }],
      },
    };
  },
  created() {
    this.getList();
  },
  props: {
    openType: {
      Type: Number,
      default: 1,
    },
  },
  methods: {
    // 工种
    getList() {
      let sWhere = "";
      if (this.openType == 2) {
        sWhere += `禁用标记='' and 审核人<>''`;
      }
      this.loading = true;
      axios
        .get(this.baseURL + "/Gy_ClassTimePrjController/GetGy_ClassTimePrjList_Json", {
          params: { sWhere: sWhere, HMaker: this.user, OperationType: 1 },
        })
        .then((response) => {
          if (response.data.count == 1) {
            this.btList = response.data.list;
            this.tyResList = response.data.data; //总数据
            this.tableData = this.getPage(this.page, this.tyResList); //数据分页
            this.total = response.data.data.length;
            this.loading = false;
          }
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        });
    },
    getPage(page, list) {
      let sindex = (parseInt(page) - 1) * this.pageSize;
      let eindex = parseInt(page) * this.pageSize;
      let newList = list.slice(sindex, eindex);
      return newList;
    },
    currentPage(val) {
      this.loading = true;
      this.page = val.page;
      setTimeout(() => {
        this.tableData = this.getPage(this.page, this.tyResList);
        this.loading = false;
      }, 100);
    },
    renderHeader(h, { column, $index }) {
      // 新建一个 span
      let span = document.createElement(span); // 设置表头名称
      span.innerText = column.label;
      //临时插入 document
      document.body.appendChild(span); // 重点:获取 span 最小宽度,设置当前列,注意这里加了 20,字段较多时column.minWidth=span.getBoundingClientRect().width + 50.//移除 document 中临时的 span
      document.body.removeChild(span);
      return h(span, column.label);
    },
    flexWidth(prop, tableData, title, num = 0) {
      if (tableData.length === 0) {
        //表格没数据不做处理
        return;
      }
      let flexWidth = 0; //初始化表格列宽
      let columnContent = ""; //占位最宽的内容
      if (prop.includes("日期")) {
        flexWidth = 110;
      } else {
        let canvas = document.createElement("canvas");
        let context = canvas.getContext("2d");
        context.font = "14px Microsoft YaHei";
        if (prop === "" && title) {
          //标题长内容少的,取标题的值,
          columnContent = title;
        } else {
          // 获取该列中占位最宽的内容
          let index = 0;
          for (let i = 0; i < tableData.length; i++) {
            const now_temp = tableData[i][prop] + "";
            const max_temp = tableData[index][prop] + "";
            const now_temp_w = context.measureText(now_temp).width;
            const max_temp_w = context.measureText(max_temp).width;
            if (now_temp_w > max_temp_w) {
              index = i;
            }
          }
          columnContent = tableData[index][prop];
          //比较占位最宽的值跟标题、标题为空的留出四个位置
          const column_w = context.measureText(columnContent).width;
          const title_w = context.measureText(title).width;
          if (column_w < title_w) {
            columnContent = title || "留四个字";
          }
        }
        // 计算最宽内容的列宽
        let width = context.measureText(columnContent);
        flexWidth = width.width + 50 + num;
      }
      return flexWidth + "px";
    },
    //点击行
    handleRowClick(row, column, event) {
      this.lastSelectedRow = this.selectedRow; // 记录上一次选中的行
      this.selectedRow = row; // 记录当前选中的行
      this.lastSelectedRowIndex = this.tableData.indexOf(row);
      this.$refs.deptTable.toggleRowSelection(row);
      this.$emit("deptEmit", row, 1);
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.HItemID)) {
        return { background: "#ecf5ff" };
      }
    },
    //双击行
    handleDblclick(row, column, cell, event) {
      this.$emit("deptEmitDb", row, "CTPrj");
      // this.handleUpdate(row)
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      //单选
      if (selection.length > 1) {
        const del_row = selection.shift();
        this.$refs.deptTable.toggleRowSelection(del_row, false); //设置这一行取消选中
      }
      this.rowForm = {};
      this.ids = selection.map((item) => item.HItemID);
      this.rowForm = selection[0];
    },
  },
};
</script>
<style>
.xsckdBox .el-date-editor.el-input {
  width: 100%;
}
</style>
src/views/component/gyDorm/index.vue
New file
@@ -0,0 +1,241 @@
<template>
  <div style="padding: 10px">
    <el-table
      v-loading="loading"
      :data="tableData"
      ref="workTypeTable"
      max-height="550"
      @selection-change="handleSelectionChange"
      show-summary
      border
      @row-click="handleRowClick"
      :row-style="rowStyle"
      @cell-dblclick="handleDblclick"
    >
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column align="center" label="sorderid" type="index" sortable width="80" />
      <el-table-column
        align="center"
        v-for="(item, index) in tableColumns"
        :key="index"
        :prop="item.ColmCols"
        :label="item.ColmColsLabel"
        :width="flexWidth(item.ColmCols, tableData, item.ColmCols)"
        sortable
      >
        <template slot-scope="{ row, column }">
          <span>{{ row[column.label] }}</span>
        </template>
      </el-table-column>
    </el-table>
    <pagination
      v-show="total > 0"
      :total="total"
      :page.sync="page"
      :limit.sync="pageSize"
      @pagination="currentPage"
    />
  </div>
</template>
<script>
import axios from "axios";
export default {
  name: "Dept",
  components: {},
  data() {
    return {
      subDisabled: false, //编辑页面保存按钮是否禁用(true禁用,false可用)
      OperationType: null, //保存类型(新增1修改3)
      HInterID: null,
      baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API",
      user: "admin",
      currentRow: [],
      lastSelectedRowIndex: null, // 用于记录上次点击的行索引
      lastSelectedRow: null, // 上一次选中的行
      selectedRow: null, // 当前选中的行
      rowForm: {},
      checkedSysZb: [],
      editData: [],
      activeName: "first",
      searchOpen: false,
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 日期范围
      dateRange: [],
      // 查询参数
      queryParams: {
        单据号: undefined,
      },
      // 显示搜索条件
      showSearch: true,
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 遮罩层
      loading: true,
      tyResList: [],
      btList: [],
      tableData: [],
      page: 1,
      pageSize: 50,
      total: 0,
      scollHeight: document.body.clientHeight * (38.056 / 100),
      // 表单参数
      form: {},
      // 表单校验
      rules: {
        客户: [{ required: true, message: "客户不能为空", trigger: "blur" }],
        日期: [{ required: true, message: "日期不能为空", trigger: "blur" }],
        hl: [{ required: true, message: "汇率不能为空", trigger: "blur" }],
      },
      tableColumns: [
        { ColmCols: "HItemID", ColmType: "INT32", ColmColsLabel: "宿舍ID" },
        { ColmCols: "HNumber", ColmType: "INT32", ColmColsLabel: "宿舍代码" },
        { ColmCols: "HName", ColmType: "INT32", ColmColsLabel: "宿舍名称" },
      ],
    };
  },
  created() {
    this.getList();
  },
  props: {
    openType: {
      Type: Number,
      default: 1,
    },
  },
  methods: {
    // 工种
    getList() {
      let sWhere = "";
      this.loading = true;
      let Value = "";
      axios
        .get(this.baseURL + "/Web/GetDormList_Json", {
          params: { Dorm: Value },
        })
        .then((response) => {
          if (response.data.count == 1) {
            this.btList = response.data.list;
            this.tyResList = response.data.data; //总数据
            this.tableData = this.getPage(this.page, this.tyResList); //数据分页
            this.total = response.data.data.length;
          }
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        })
        .finally(() => {
          this.loading = false;
        });
    },
    getPage(page, list) {
      let sindex = (parseInt(page) - 1) * this.pageSize;
      let eindex = parseInt(page) * this.pageSize;
      let newList = list.slice(sindex, eindex);
      return newList;
    },
    currentPage(val) {
      this.loading = true;
      this.page = val.page;
      setTimeout(() => {
        this.tableData = this.getPage(this.page, this.tyResList);
        this.loading = false;
      }, 100);
    },
    renderHeader(h, { column, $index }) {
      // 新建一个 span
      let span = document.createElement(span); // 设置表头名称
      span.innerText = column.label;
      //临时插入 document
      document.body.appendChild(span); // 重点:获取 span 最小宽度,设置当前列,注意这里加了 20,字段较多时column.minWidth=span.getBoundingClientRect().width + 50.//移除 document 中临时的 span
      document.body.removeChild(span);
      return h(span, column.label);
    },
    flexWidth(prop, tableData, title, num = 0) {
      if (tableData.length === 0) {
        //表格没数据不做处理
        return;
      }
      let flexWidth = 0; //初始化表格列宽
      let columnContent = ""; //占位最宽的内容
      if (prop.includes("日期")) {
        flexWidth = 110;
      } else {
        let canvas = document.createElement("canvas");
        let context = canvas.getContext("2d");
        context.font = "14px Microsoft YaHei";
        if (prop === "" && title) {
          //标题长内容少的,取标题的值,
          columnContent = title;
        } else {
          // 获取该列中占位最宽的内容
          let index = 0;
          for (let i = 0; i < tableData.length; i++) {
            const now_temp = tableData[i][prop] + "";
            const max_temp = tableData[index][prop] + "";
            const now_temp_w = context.measureText(now_temp).width;
            const max_temp_w = context.measureText(max_temp).width;
            if (now_temp_w > max_temp_w) {
              index = i;
            }
          }
          columnContent = tableData[index][prop];
          //比较占位最宽的值跟标题、标题为空的留出四个位置
          const column_w = context.measureText(columnContent).width;
          const title_w = context.measureText(title).width;
          if (column_w < title_w) {
            columnContent = title || "留四个字";
          }
        }
        // 计算最宽内容的列宽
        let width = context.measureText(columnContent);
        flexWidth = width.width + 50 + num;
      }
      return flexWidth + "px";
    },
    //点击行
    handleRowClick(row, column, event) {
      this.lastSelectedRow = this.selectedRow; // 记录上一次选中的行
      this.selectedRow = row; // 记录当前选中的行
      this.lastSelectedRowIndex = this.tableData.indexOf(row);
      this.$refs.deptTable.toggleRowSelection(row);
      this.$emit("deptEmit", row, 1);
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.HItemID)) {
        return { background: "#ecf5ff" };
      }
    },
    //双击行
    handleDblclick(row, column, cell, event) {
      this.$emit("deptEmitDb", row, "Dorm");
      // this.handleUpdate(row)
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      //单选
      if (selection.length > 1) {
        const del_row = selection.shift();
        this.$refs.deptTable.toggleRowSelection(del_row, false); //设置这一行取消选中
      }
      this.rowForm = {};
      this.ids = selection.map((item) => item.HItemID);
      this.rowForm = selection[0];
    },
  },
};
</script>
<style>
.xsckdBox .el-date-editor.el-input {
  width: 100%;
}
</style>
src/views/component/gyDuty/index.vue
New file
@@ -0,0 +1,270 @@
<template>
  <div style="padding: 10px">
    <el-table
      v-loading="loading"
      :data="tableData"
      ref="workTypeTable"
      max-height="550"
      @selection-change="handleSelectionChange"
      show-summary
      border
      @row-click="handleRowClick"
      :row-style="rowStyle"
      @cell-dblclick="handleDblclick"
    >
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column align="center" label="sorderid" type="index" sortable width="80" />
      <el-table-column
        align="center"
        v-for="(item, index) in tableColumns"
        :key="index"
        :prop="item.ColmCols"
        :label="item.ColmCols"
        :width="flexWidth(item.ColmCols, tableData, item.ColmCols)"
        sortable
      >
        <template slot-scope="{ row, column }">
          <span>{{ row[column.label] }}</span>
        </template>
      </el-table-column>
    </el-table>
    <pagination
      v-show="total > 0"
      :total="total"
      :page.sync="page"
      :limit.sync="pageSize"
      @pagination="currentPage"
    />
  </div>
</template>
<script>
import axios from "axios";
export default {
  name: "Dept",
  components: {},
  data() {
    return {
      subDisabled: false, //编辑页面保存按钮是否禁用(true禁用,false可用)
      OperationType: null, //保存类型(新增1修改3)
      HInterID: null,
      baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API",
      user: "admin",
      currentRow: [],
      lastSelectedRowIndex: null, // 用于记录上次点击的行索引
      lastSelectedRow: null, // 上一次选中的行
      selectedRow: null, // 当前选中的行
      rowForm: {},
      checkedSysZb: [],
      editData: [],
      activeName: "first",
      searchOpen: false,
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 日期范围
      dateRange: [],
      // 查询参数
      queryParams: {
        单据号: undefined,
      },
      // 显示搜索条件
      showSearch: true,
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 遮罩层
      loading: true,
      tyResList: [],
      btList: [],
      tableData: [],
      page: 1,
      pageSize: 50,
      total: 0,
      scollHeight: document.body.clientHeight * (38.056 / 100),
      // 表单参数
      form: {},
      // 表单校验
      rules: {
        客户: [{ required: true, message: "客户不能为空", trigger: "blur" }],
        日期: [{ required: true, message: "日期不能为空", trigger: "blur" }],
        hl: [{ required: true, message: "汇率不能为空", trigger: "blur" }],
      },
      tableColumns: [
        { ColmCols: "HItemID", ColmType: "INT32" },
        {
          ColmCols: "组织架构代码",
          ColmType: "VARCHAR",
        },
        {
          ColmCols: "职务",
          ColmType: "VARCHAR",
        },
        {
          ColmCols: "用户编码",
          ColmType: "VARCHAR",
        },
        {
          ColmCols: "用户名称",
          ColmType: "VARCHAR",
        },
        {
          ColmCols: "助记码",
          ColmType: "VARCHAR",
        },
        {
          ColmCols: "短代码",
          ColmType: "VARCHAR",
        },
        {
          ColmCols: "末级标志",
          ColmType: "VARCHAR",
        },
        {
          ColmCols: "禁用标志",
          ColmType: "VARCHAR",
        },
      ],
    };
  },
  created() {
    this.getList();
  },
  props: {
    openType: {
      Type: Number,
      default: 1,
    },
  },
  methods: {
    // 工种
    getList() {
      let sWhere = "";
      this.loading = true;
      axios
        .get(this.baseURL + "/Gy_DutyBill/Gy_DutyBillList", {
          params: { sWhere: sWhere, user: this.user },
        })
        .then((response) => {
          if (response.data.count == 1) {
            this.btList = response.data.list;
            this.tyResList = response.data.data; //总数据
            this.tableData = this.getPage(this.page, this.tyResList); //数据分页
            this.total = response.data.data.length;
          }
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        })
        .finally(() => {
          this.loading = false;
        });
    },
    getPage(page, list) {
      let sindex = (parseInt(page) - 1) * this.pageSize;
      let eindex = parseInt(page) * this.pageSize;
      let newList = list.slice(sindex, eindex);
      return newList;
    },
    currentPage(val) {
      this.loading = true;
      this.page = val.page;
      setTimeout(() => {
        this.tableData = this.getPage(this.page, this.tyResList);
        this.loading = false;
      }, 100);
    },
    renderHeader(h, { column, $index }) {
      // 新建一个 span
      let span = document.createElement(span); // 设置表头名称
      span.innerText = column.label;
      //临时插入 document
      document.body.appendChild(span); // 重点:获取 span 最小宽度,设置当前列,注意这里加了 20,字段较多时column.minWidth=span.getBoundingClientRect().width + 50.//移除 document 中临时的 span
      document.body.removeChild(span);
      return h(span, column.label);
    },
    flexWidth(prop, tableData, title, num = 0) {
      if (tableData.length === 0) {
        //表格没数据不做处理
        return;
      }
      let flexWidth = 0; //初始化表格列宽
      let columnContent = ""; //占位最宽的内容
      if (prop.includes("日期")) {
        flexWidth = 110;
      } else {
        let canvas = document.createElement("canvas");
        let context = canvas.getContext("2d");
        context.font = "14px Microsoft YaHei";
        if (prop === "" && title) {
          //标题长内容少的,取标题的值,
          columnContent = title;
        } else {
          // 获取该列中占位最宽的内容
          let index = 0;
          for (let i = 0; i < tableData.length; i++) {
            const now_temp = tableData[i][prop] + "";
            const max_temp = tableData[index][prop] + "";
            const now_temp_w = context.measureText(now_temp).width;
            const max_temp_w = context.measureText(max_temp).width;
            if (now_temp_w > max_temp_w) {
              index = i;
            }
          }
          columnContent = tableData[index][prop];
          //比较占位最宽的值跟标题、标题为空的留出四个位置
          const column_w = context.measureText(columnContent).width;
          const title_w = context.measureText(title).width;
          if (column_w < title_w) {
            columnContent = title || "留四个字";
          }
        }
        // 计算最宽内容的列宽
        let width = context.measureText(columnContent);
        flexWidth = width.width + 50 + num;
      }
      return flexWidth + "px";
    },
    //点击行
    handleRowClick(row, column, event) {
      this.lastSelectedRow = this.selectedRow; // 记录上一次选中的行
      this.selectedRow = row; // 记录当前选中的行
      this.lastSelectedRowIndex = this.tableData.indexOf(row);
      this.$refs.deptTable.toggleRowSelection(row);
      this.$emit("deptEmit", row, 1);
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.HItemID)) {
        return { background: "#ecf5ff" };
      }
    },
    //双击行
    handleDblclick(row, column, cell, event) {
      this.$emit("deptEmitDb", row, "Duty");
      // this.handleUpdate(row)
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      //单选
      if (selection.length > 1) {
        const del_row = selection.shift();
        this.$refs.deptTable.toggleRowSelection(del_row, false); //设置这一行取消选中
      }
      this.rowForm = {};
      this.ids = selection.map((item) => item.HItemID);
      this.rowForm = selection[0];
    },
  },
};
</script>
<style>
.xsckdBox .el-date-editor.el-input {
  width: 100%;
}
</style>
src/views/component/gyGroup/index.vue
New file
@@ -0,0 +1,232 @@
<template>
  <div style="padding: 10px">
    <el-table
      v-loading="loading"
      :data="tableData"
      ref="workTypeTable"
      max-height="550"
      @selection-change="handleSelectionChange"
      show-summary
      border
      @row-click="handleRowClick"
      :row-style="rowStyle"
      @cell-dblclick="handleDblclick"
    >
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column align="center" label="sorderid" type="index" sortable width="80" />
      <el-table-column
        align="center"
        v-for="(item, index) in btList"
        :key="index"
        :prop="item.ColmCols"
        :label="item.ColmCols"
        :width="flexWidth(item.ColmCols, tableData, item.ColmCols)"
        sortable
      >
        <template slot-scope="{ row, column }">
          <span>{{ row[column.label] }}</span>
        </template>
      </el-table-column>
    </el-table>
    <pagination
      v-show="total > 0"
      :total="total"
      :page.sync="page"
      :limit.sync="pageSize"
      @pagination="currentPage"
    />
  </div>
</template>
<script>
import axios from "axios";
export default {
  name: "Dept",
  components: {},
  data() {
    return {
      subDisabled: false, //编辑页面保存按钮是否禁用(true禁用,false可用)
      OperationType: null, //保存类型(新增1修改3)
      HInterID: null,
      baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API",
      user: "admin",
      currentRow: [],
      lastSelectedRowIndex: null, // 用于记录上次点击的行索引
      lastSelectedRow: null, // 上一次选中的行
      selectedRow: null, // 当前选中的行
      rowForm: {},
      checkedSysZb: [],
      editData: [],
      activeName: "first",
      searchOpen: false,
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 日期范围
      dateRange: [],
      // 查询参数
      queryParams: {
        单据号: undefined,
      },
      // 显示搜索条件
      showSearch: true,
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 遮罩层
      loading: true,
      tyResList: [],
      btList: [],
      tableData: [],
      page: 1,
      pageSize: 50,
      total: 0,
      scollHeight: document.body.clientHeight * (38.056 / 100),
      // 表单参数
      form: {},
      // 表单校验
      rules: {
        客户: [{ required: true, message: "客户不能为空", trigger: "blur" }],
        日期: [{ required: true, message: "日期不能为空", trigger: "blur" }],
        hl: [{ required: true, message: "汇率不能为空", trigger: "blur" }],
      },
    };
  },
  created() {
    this.getList();
  },
  props: {
    openType: {
      Type: Number,
      default: 1,
    },
  },
  methods: {
    // 工种
    getList() {
      let sWhere = "";
      this.loading = true;
      axios
        .get(this.baseURL + "/Gy_Group/list", {
          params: { sWhere: sWhere, user: this.user },
        })
        .then((response) => {
          if (response.data.count == 1) {
            this.btList = response.data.list;
            this.tyResList = response.data.data; //总数据
            this.tableData = this.getPage(this.page, this.tyResList); //数据分页
            this.total = response.data.data.length;
            this.loading = false;
          }
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        });
    },
    getPage(page, list) {
      let sindex = (parseInt(page) - 1) * this.pageSize;
      let eindex = parseInt(page) * this.pageSize;
      let newList = list.slice(sindex, eindex);
      return newList;
    },
    currentPage(val) {
      this.loading = true;
      this.page = val.page;
      setTimeout(() => {
        this.tableData = this.getPage(this.page, this.tyResList);
        this.loading = false;
      }, 100);
    },
    renderHeader(h, { column, $index }) {
      // 新建一个 span
      let span = document.createElement(span); // 设置表头名称
      span.innerText = column.label;
      //临时插入 document
      document.body.appendChild(span); // 重点:获取 span 最小宽度,设置当前列,注意这里加了 20,字段较多时column.minWidth=span.getBoundingClientRect().width + 50.//移除 document 中临时的 span
      document.body.removeChild(span);
      return h(span, column.label);
    },
    flexWidth(prop, tableData, title, num = 0) {
      if (tableData.length === 0) {
        //表格没数据不做处理
        return;
      }
      let flexWidth = 0; //初始化表格列宽
      let columnContent = ""; //占位最宽的内容
      if (prop.includes("日期")) {
        flexWidth = 110;
      } else {
        let canvas = document.createElement("canvas");
        let context = canvas.getContext("2d");
        context.font = "14px Microsoft YaHei";
        if (prop === "" && title) {
          //标题长内容少的,取标题的值,
          columnContent = title;
        } else {
          // 获取该列中占位最宽的内容
          let index = 0;
          for (let i = 0; i < tableData.length; i++) {
            const now_temp = tableData[i][prop] + "";
            const max_temp = tableData[index][prop] + "";
            const now_temp_w = context.measureText(now_temp).width;
            const max_temp_w = context.measureText(max_temp).width;
            if (now_temp_w > max_temp_w) {
              index = i;
            }
          }
          columnContent = tableData[index][prop];
          //比较占位最宽的值跟标题、标题为空的留出四个位置
          const column_w = context.measureText(columnContent).width;
          const title_w = context.measureText(title).width;
          if (column_w < title_w) {
            columnContent = title || "留四个字";
          }
        }
        // 计算最宽内容的列宽
        let width = context.measureText(columnContent);
        flexWidth = width.width + 50 + num;
      }
      return flexWidth + "px";
    },
    //点击行
    handleRowClick(row, column, event) {
      this.lastSelectedRow = this.selectedRow; // 记录上一次选中的行
      this.selectedRow = row; // 记录当前选中的行
      this.lastSelectedRowIndex = this.tableData.indexOf(row);
      this.$refs.deptTable.toggleRowSelection(row);
      this.$emit("deptEmit", row, 1);
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.HItemID)) {
        return { background: "#ecf5ff" };
      }
    },
    //双击行
    handleDblclick(row, column, cell, event) {
      this.$emit("deptEmitDb", row, "Group");
      // this.handleUpdate(row)
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      //单选
      if (selection.length > 1) {
        const del_row = selection.shift();
        this.$refs.deptTable.toggleRowSelection(del_row, false); //设置这一行取消选中
      }
      this.rowForm = {};
      this.ids = selection.map((item) => item.HItemID);
      this.rowForm = selection[0];
    },
  },
};
</script>
<style>
.xsckdBox .el-date-editor.el-input {
  width: 100%;
}
</style>
src/views/component/gyPost/index.vue
New file
@@ -0,0 +1,236 @@
<template>
  <div style="padding: 10px">
    <el-table
      v-loading="loading"
      :data="tableData"
      ref="workTypeTable"
      max-height="550"
      border
      @row-click="handleRowClick"
      :row-style="rowStyle"
      @cell-dblclick="handleDblclick"
    >
      <!--
      @selection-change="handleSelectionChange"
      show-summary -->
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column align="center" label="sorderid" type="index" sortable width="80" />
      <el-table-column
        align="center"
        v-for="(item, index) in btList"
        :key="index"
        :prop="item.ColmCols"
        :label="item.ColmCols"
        :width="flexWidth(item.ColmCols, tableData, item.ColmCols)"
        sortable
      >
        <template slot-scope="{ row, column }">
          <span>{{ row[column.label] }}</span>
        </template>
      </el-table-column>
    </el-table>
    <pagination
      v-show="total > 0"
      :total="total"
      :page.sync="page"
      :limit.sync="pageSize"
      @pagination="currentPage"
    />
  </div>
</template>
<script>
import axios from "axios";
export default {
  name: "Dept",
  components: {},
  data() {
    return {
      subDisabled: false, //编辑页面保存按钮是否禁用(true禁用,false可用)
      OperationType: null, //保存类型(新增1修改3)
      HInterID: null,
      baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API",
      user: "admin",
      currentRow: [],
      lastSelectedRowIndex: null, // 用于记录上次点击的行索引
      lastSelectedRow: null, // 上一次选中的行
      selectedRow: null, // 当前选中的行
      rowForm: {},
      checkedSysZb: [],
      editData: [],
      activeName: "first",
      searchOpen: false,
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 日期范围
      dateRange: [],
      // 查询参数
      queryParams: {
        单据号: undefined,
      },
      // 显示搜索条件
      showSearch: true,
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 遮罩层
      loading: true,
      tyResList: [],
      btList: [],
      tableData: [],
      page: 1,
      pageSize: 50,
      total: 0,
      scollHeight: document.body.clientHeight * (38.056 / 100),
      // 表单参数
      form: {},
      // 表单校验
      rules: {
        客户: [{ required: true, message: "客户不能为空", trigger: "blur" }],
        日期: [{ required: true, message: "日期不能为空", trigger: "blur" }],
        hl: [{ required: true, message: "汇率不能为空", trigger: "blur" }],
      },
    };
  },
  created() {
    this.getList();
  },
  props: {
    openType: {
      Type: Number,
      default: 1,
    },
  },
  methods: {
    // 工种
    getList() {
      let sWhere = "";
      if (this.openType == 2) {
        sWhere += `禁用标记='' and 审核人<>''`;
      }
      this.loading = true;
      axios
        .get(this.baseURL + "/Gy_BadReason/Gy_PostList", {
          params: { sWhere: sWhere, user: this.user },
        })
        .then((response) => {
          if (response.data.count == 1) {
            this.btList = response.data.list;
            this.tyResList = response.data.data; //总数据
            this.tableData = this.getPage(this.page, this.tyResList); //数据分页
            this.total = response.data.data.length;
            this.loading = false;
          }
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        });
    },
    getPage(page, list) {
      let sindex = (parseInt(page) - 1) * this.pageSize;
      let eindex = parseInt(page) * this.pageSize;
      let newList = list.slice(sindex, eindex);
      return newList;
    },
    currentPage(val) {
      this.loading = true;
      this.page = val.page;
      setTimeout(() => {
        this.tableData = this.getPage(this.page, this.tyResList);
        this.loading = false;
      }, 100);
    },
    renderHeader(h, { column, $index }) {
      // 新建一个 span
      let span = document.createElement(span); // 设置表头名称
      span.innerText = column.label;
      //临时插入 document
      document.body.appendChild(span); // 重点:获取 span 最小宽度,设置当前列,注意这里加了 20,字段较多时column.minWidth=span.getBoundingClientRect().width + 50.//移除 document 中临时的 span
      document.body.removeChild(span);
      return h(span, column.label);
    },
    flexWidth(prop, tableData, title, num = 0) {
      if (tableData.length === 0) {
        //表格没数据不做处理
        return;
      }
      let flexWidth = 0; //初始化表格列宽
      let columnContent = ""; //占位最宽的内容
      if (prop.includes("日期")) {
        flexWidth = 110;
      } else {
        let canvas = document.createElement("canvas");
        let context = canvas.getContext("2d");
        context.font = "14px Microsoft YaHei";
        if (prop === "" && title) {
          //标题长内容少的,取标题的值,
          columnContent = title;
        } else {
          // 获取该列中占位最宽的内容
          let index = 0;
          for (let i = 0; i < tableData.length; i++) {
            const now_temp = tableData[i][prop] + "";
            const max_temp = tableData[index][prop] + "";
            const now_temp_w = context.measureText(now_temp).width;
            const max_temp_w = context.measureText(max_temp).width;
            if (now_temp_w > max_temp_w) {
              index = i;
            }
          }
          columnContent = tableData[index][prop];
          //比较占位最宽的值跟标题、标题为空的留出四个位置
          const column_w = context.measureText(columnContent).width;
          const title_w = context.measureText(title).width;
          if (column_w < title_w) {
            columnContent = title || "留四个字";
          }
        }
        // 计算最宽内容的列宽
        let width = context.measureText(columnContent);
        flexWidth = width.width + 50 + num;
      }
      return flexWidth + "px";
    },
    //点击行
    handleRowClick(row, column, event) {
      this.lastSelectedRow = this.selectedRow; // 记录上一次选中的行
      this.selectedRow = row; // 记录当前选中的行
      this.lastSelectedRowIndex = this.tableData.indexOf(row);
      this.$refs.deptTable.toggleRowSelection(row);
      this.$emit("deptEmit", row, 1);
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.HItemID)) {
        return { background: "#ecf5ff" };
      }
    },
    //双击行
    handleDblclick(row, column, cell, event) {
      this.$emit("deptEmitDb", row, "post");
      // this.handleUpdate(row)
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      //单选
      if (selection.length > 1) {
        const del_row = selection.shift();
        this.$refs.deptTable.toggleRowSelection(del_row, false); //设置这一行取消选中
      }
      this.rowForm = {};
      this.ids = selection.map((item) => item.HItemID);
      this.rowForm = selection[0];
    },
  },
};
</script>
<style>
.xsckdBox .el-date-editor.el-input {
  width: 100%;
}
</style>
src/views/component/gyWorkType/index.vue
New file
@@ -0,0 +1,235 @@
<template>
  <div style="padding: 10px">
    <el-table
      v-loading="loading"
      :data="tableData"
      ref="workTypeTable"
      max-height="550"
      @selection-change="handleSelectionChange"
      show-summary
      border
      @row-click="handleRowClick"
      :row-style="rowStyle"
      @cell-dblclick="handleDblclick"
    >
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column align="center" label="sorderid" type="index" sortable width="80" />
      <el-table-column
        align="center"
        v-for="(item, index) in btList"
        :key="index"
        :prop="item.ColmCols"
        :label="item.ColmCols"
        :width="flexWidth(item.ColmCols, tableData, item.ColmCols)"
        sortable
      >
        <template slot-scope="{ row, column }">
          <span>{{ row[column.label] }}</span>
        </template>
      </el-table-column>
    </el-table>
    <pagination
      v-show="total > 0"
      :total="total"
      :page.sync="page"
      :limit.sync="pageSize"
      @pagination="currentPage"
    />
  </div>
</template>
<script>
import axios from "axios";
export default {
  name: "Dept",
  components: {},
  data() {
    return {
      subDisabled: false, //编辑页面保存按钮是否禁用(true禁用,false可用)
      OperationType: null, //保存类型(新增1修改3)
      HInterID: null,
      baseURL: process.env.VUE_APP_BASE_API || "http://47.96.97.237/API",
      user: "admin",
      currentRow: [],
      lastSelectedRowIndex: null, // 用于记录上次点击的行索引
      lastSelectedRow: null, // 上一次选中的行
      selectedRow: null, // 当前选中的行
      rowForm: {},
      checkedSysZb: [],
      editData: [],
      activeName: "first",
      searchOpen: false,
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 日期范围
      dateRange: [],
      // 查询参数
      queryParams: {
        单据号: undefined,
      },
      // 显示搜索条件
      showSearch: true,
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 遮罩层
      loading: true,
      tyResList: [],
      btList: [],
      tableData: [],
      page: 1,
      pageSize: 50,
      total: 0,
      scollHeight: document.body.clientHeight * (38.056 / 100),
      // 表单参数
      form: {},
      // 表单校验
      rules: {
        客户: [{ required: true, message: "客户不能为空", trigger: "blur" }],
        日期: [{ required: true, message: "日期不能为空", trigger: "blur" }],
        hl: [{ required: true, message: "汇率不能为空", trigger: "blur" }],
      },
    };
  },
  created() {
    this.getList();
  },
  props: {
    openType: {
      Type: Number,
      default: 1,
    },
  },
  methods: {
    // 工种
    getList() {
      let sWhere = "";
      if (this.openType == 2) {
        sWhere += `禁用标记='' and 审核人<>''`;
      }
      this.loading = true;
      axios
        .get(this.baseURL + "/Gy_WorkTypeController/GetGy_WorkTypeList_Json", {
          params: { sWhere: sWhere, HMaker: this.user, OperationType: 1 },
        })
        .then((response) => {
          if (response.data.count == 1) {
            this.btList = response.data.list;
            this.tyResList = response.data.data; //总数据
            this.tableData = this.getPage(this.page, this.tyResList); //数据分页
            this.total = response.data.data.length;
            this.loading = false;
          }
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        });
    },
    getPage(page, list) {
      let sindex = (parseInt(page) - 1) * this.pageSize;
      let eindex = parseInt(page) * this.pageSize;
      let newList = list.slice(sindex, eindex);
      return newList;
    },
    currentPage(val) {
      this.loading = true;
      this.page = val.page;
      setTimeout(() => {
        this.tableData = this.getPage(this.page, this.tyResList);
        this.loading = false;
      }, 100);
    },
    renderHeader(h, { column, $index }) {
      // 新建一个 span
      let span = document.createElement(span); // 设置表头名称
      span.innerText = column.label;
      //临时插入 document
      document.body.appendChild(span); // 重点:获取 span 最小宽度,设置当前列,注意这里加了 20,字段较多时column.minWidth=span.getBoundingClientRect().width + 50.//移除 document 中临时的 span
      document.body.removeChild(span);
      return h(span, column.label);
    },
    flexWidth(prop, tableData, title, num = 0) {
      if (tableData.length === 0) {
        //表格没数据不做处理
        return;
      }
      let flexWidth = 0; //初始化表格列宽
      let columnContent = ""; //占位最宽的内容
      if (prop.includes("日期")) {
        flexWidth = 110;
      } else {
        let canvas = document.createElement("canvas");
        let context = canvas.getContext("2d");
        context.font = "14px Microsoft YaHei";
        if (prop === "" && title) {
          //标题长内容少的,取标题的值,
          columnContent = title;
        } else {
          // 获取该列中占位最宽的内容
          let index = 0;
          for (let i = 0; i < tableData.length; i++) {
            const now_temp = tableData[i][prop] + "";
            const max_temp = tableData[index][prop] + "";
            const now_temp_w = context.measureText(now_temp).width;
            const max_temp_w = context.measureText(max_temp).width;
            if (now_temp_w > max_temp_w) {
              index = i;
            }
          }
          columnContent = tableData[index][prop];
          //比较占位最宽的值跟标题、标题为空的留出四个位置
          const column_w = context.measureText(columnContent).width;
          const title_w = context.measureText(title).width;
          if (column_w < title_w) {
            columnContent = title || "留四个字";
          }
        }
        // 计算最宽内容的列宽
        let width = context.measureText(columnContent);
        flexWidth = width.width + 50 + num;
      }
      return flexWidth + "px";
    },
    //点击行
    handleRowClick(row, column, event) {
      this.lastSelectedRow = this.selectedRow; // 记录上一次选中的行
      this.selectedRow = row; // 记录当前选中的行
      this.lastSelectedRowIndex = this.tableData.indexOf(row);
      this.$refs.deptTable.toggleRowSelection(row);
      this.$emit("deptEmit", row, 1);
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.HItemID)) {
        return { background: "#ecf5ff" };
      }
    },
    //双击行
    handleDblclick(row, column, cell, event) {
      this.$emit("deptEmitDb", row, "workType");
      // this.handleUpdate(row)
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      //单选
      if (selection.length > 1) {
        const del_row = selection.shift();
        this.$refs.deptTable.toggleRowSelection(del_row, false); //设置这一行取消选中
      }
      this.rowForm = {};
      this.ids = selection.map((item) => item.HItemID);
      this.rowForm = selection[0];
    },
  },
};
</script>
<style>
.xsckdBox .el-date-editor.el-input {
  width: 100%;
}
</style>
src/views/gyEmployee/edit/index.vue
@@ -23,7 +23,11 @@
            </el-col>
            <el-col :span="8">
              <el-form-item label="职员名称" prop="HName">
                <el-input v-model="form.HName" placeholder="请输入职员名称" />
                <el-input
                  v-model="form.HName"
                  @change="HNameChange"
                  placeholder="请输入职员名称"
                />
              </el-form-item>
            </el-col>
            <el-col :span="8">
@@ -32,7 +36,7 @@
                  <el-button
                    slot="append"
                    icon="el-icon-search"
                    @click="openDataDialog(4)"
                    @click="openDataDialog(1)"
                  ></el-button>
                </el-input>
              </el-form-item>
@@ -45,7 +49,7 @@
                  <el-button
                    slot="append"
                    icon="el-icon-search"
                    @click="openDataDialog(4)"
                    @click="openDataDialog(2)"
                  ></el-button>
                </el-input>
              </el-form-item>
@@ -56,7 +60,7 @@
                  <el-button
                    slot="append"
                    icon="el-icon-search"
                    @click="openDataDialog(4)"
                    @click="openDataDialog(3)"
                  ></el-button>
                </el-input>
              </el-form-item>
@@ -85,7 +89,7 @@
                  <el-button
                    slot="append"
                    icon="el-icon-search"
                    @click="openDataDialog(4)"
                    @click="openDataDialog(5)"
                  ></el-button>
                </el-input>
              </el-form-item>
@@ -96,7 +100,7 @@
                  <el-button
                    slot="append"
                    icon="el-icon-search"
                    @click="openDataDialog(4)"
                    @click="openDataDialog(6)"
                  ></el-button>
                </el-input>
              </el-form-item>
@@ -113,6 +117,68 @@
              </el-form-item>
            </el-col>
          </el-row>
          <el-tabs value="sub_first" type="card">
            <el-tab-pane label="岗位信息" name="sub_first">
              <el-row>
                <el-col :span="2">
                  <el-button type="primary" @click="AddALine">增加一行</el-button>
                </el-col>
                <el-col :span="2">
                  <el-button type="primary" @click="CopyALine">复制一行</el-button>
                </el-col>
              </el-row>
              <el-row>
                <el-table
                  :data="PostDataCache"
                  ref="HPostData"
                  max-height="750"
                  border
                  :row-style="rowStyle"
                  @row-click="handleRowClick"
                >
                  <el-table-column type="selection" width="55"> </el-table-column>
                  <el-table-column
                    label="职员名称"
                    prop="HEmpName"
                    align="left"
                    width="120"
                  />
                  <el-table-column
                    label="岗位名称"
                    prop="HPostName"
                    align="left"
                    width="120"
                  >
                    <template slot-scope="scope">
                      <el-input
                        v-model:value="scope.row.HPostName"
                        @keyup.native="HPostKeyUpHandler(scope.$index, $event)"
                      ></el-input>
                    </template>
                  </el-table-column>
                  <el-table-column label="备注" prop="HRemark" align="left" width="200">
                    <template slot-scope="scope">
                      <el-input
                        v-model:value="scope.row.HRemark"
                        @blur="tableHRemarkBlur(scope.$index, scope.row)"
                      ></el-input>
                    </template>
                  </el-table-column>
                  <el-table-column label="操作" prop="操作" align="left" width="120">
                    <template slot-scope="scope">
                      <el-button
                        size="mini"
                        type="text"
                        icon="el-icon-delete"
                        @click="uploadPostDelete(scope.row, scope.$index)"
                        >删除</el-button
                      >
                    </template>
                  </el-table-column>
                </el-table>
              </el-row>
            </el-tab-pane>
          </el-tabs>
        </el-tab-pane>
        <el-tab-pane label="人事信息" name="second">
          <el-row>
@@ -190,142 +256,172 @@
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="宿舍" prop="HCheckTime">
                <el-date-picker
                  v-model="form.HCheckTime"
                  type="date"
                  placeholder="选择审核日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="宿舍" prop="HDormName">
                <el-input type="text" v-model="form.HDormName">
                  <el-button
                    slot="append"
                    icon="el-icon-search"
                    @click="openDataDialog(8)"
                  ></el-button>
                </el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="外语水平" prop="HMakeTime">
                <el-date-picker
                  v-model="form.HMakeTime"
                  type="date"
                  placeholder="选择创建日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="外语水平" prop="HEngLev">
                <el-select v-model="form.HEngLev">
                  <el-option
                    v-for="item in HEngLevList"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="计算机水平" prop="HStopTime">
                <el-date-picker
                  v-model="form.HStopTime"
                  type="date"
                  placeholder="选择禁用日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="计算机水平" prop="HCompLev">
                <el-select v-model="form.HCompLev">
                  <el-option
                    v-for="item in HCompLevList"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="专业" prop="HCheckTime">
                <el-date-picker
                  v-model="form.HCheckTime"
                  type="date"
                  placeholder="选择审核日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="专业" prop="HSpec">
                <el-input type="text" v-model="form.HSpec"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="15">
              <el-form-item label="现在地址" prop="HMakeTime">
                <el-input></el-input>
              <el-form-item label="现在地址" prop="HNowAdd">
                <el-input type="text" v-model="form.HNowAdd"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="电子邮箱" prop="HCheckTime">
                <el-input></el-input>
              <el-form-item label="电子邮箱" prop="HEmail">
                <el-input type="email" v-model="form.HEmail"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="15">
              <el-form-item label="家庭地址" prop="HMakeTime">
                <el-input></el-input>
              <el-form-item label="家庭地址" prop="HHomeAdd">
                <el-input type="text" v-model="form.HHomeAdd"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="邮政编码" prop="HCheckTime">
                <el-input></el-input>
              <el-form-item label="邮政编码" prop="HPostalCode">
                <el-input type="text" v-model="form.HPostalCode"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="15">
              <el-form-item label="原公司" prop="HMakeTime">
                <el-input></el-input>
              <el-form-item label="原公司" prop="HOldCompany">
                <el-input type="text" v-model="form.HOldCompany"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="联系电话" prop="HCheckTime">
                <el-input></el-input>
              <el-form-item label="联系电话" prop="HLinkPhone">
                <el-input type="text" v-model="form.HLinkPhone"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="手机号码" prop="HMakeTime">
                <el-date-picker
                  v-model="form.HMakeTime"
                  type="date"
                  placeholder="选择创建日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="手机号码" prop="HMobilePhone">
                <el-input type="text" v-model="form.HMobilePhone"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="用工类型" prop="HStopTime">
                <el-date-picker
                  v-model="form.HStopTime"
                  type="date"
                  placeholder="选择禁用日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="用工类型" prop="HWorkType">
                <el-select v-model="form.HWorkType">
                  <el-option
                    v-for="item in HWorkTypeList"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="进厂日期" prop="HMakeTime">
              <el-form-item label="进厂日期" prop="HInComDate">
                <el-date-picker
                  v-model="form.HMakeTime"
                  v-model="form.HInComDate"
                  type="date"
                  placeholder="选择创建日期"
                  disabled
                  placeholder="选择进厂日期"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="转正日期" prop="HStopTime">
              <el-form-item label="转正日期" prop="HRelDate">
                <el-date-picker
                  v-model="form.HStopTime"
                  v-model="form.HRelDate"
                  type="date"
                  placeholder="选择禁用日期"
                  disabled
                  placeholder="选择转正日期"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="保险证编号" prop="HCheckTime">
              <el-form-item label="保险证编号" prop="HInsuranceNo">
                <el-input type="text" v-model="form.HInsuranceNo"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="参保" prop="HInsuranceStatus">
                <el-select v-model="form.HInsuranceStatus">
                  <el-option
                    v-for="item in [
                      {
                        label: '是',
                        value: 'true',
                      },
                      {
                        label: '否',
                        value: 'false',
                      },
                    ]"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="参保日期" prop="HInsuranceDate">
                <el-date-picker
                  v-model="form.HInsuranceDate"
                  type="date"
                  placeholder="选择参保日期"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="合同到期日期" prop="HContractEDate">
                <el-date-picker
                  v-model="form.HCheckTime"
                  type="date"
                  placeholder="选择审核日期"
                  disabled
                  placeholder="选择合同到期日期"
                >
                </el-date-picker>
              </el-form-item>
@@ -333,34 +429,26 @@
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="参保" prop="HMakeTime">
              <el-form-item label="合同开始日期" prop="HContractBDate">
                <el-date-picker
                  v-model="form.HMakeTime"
                  v-model="form.HContractBDate"
                  type="date"
                  placeholder="选择创建日期"
                  disabled
                  placeholder="选择合同开始日期"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="参保日期" prop="HStopTime">
                <el-date-picker
                  v-model="form.HStopTime"
                  type="date"
                  placeholder="选择禁用日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="合同期限" prop="HContractYear">
                <el-input type="text" v-model="form.HContractYear"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="合同到期日期" prop="HCheckTime">
              <el-form-item label="离职日期" prop="HDimissionDate">
                <el-date-picker
                  v-model="form.HCheckTime"
                  v-model="form.HDimissionDate"
                  type="date"
                  placeholder="选择审核日期"
                  disabled
                  placeholder="选择离职日期"
                >
                </el-date-picker>
              </el-form-item>
@@ -368,47 +456,11 @@
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="合同开始日期" prop="HMakeTime">
              <el-form-item label="暂住证到期日" prop="HStayCardEDate">
                <el-date-picker
                  v-model="form.HMakeTime"
                  v-model="form.HStayCardEDate"
                  type="date"
                  placeholder="选择创建日期"
                  disabled
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="合同期限" prop="HStopTime">
                <el-date-picker
                  v-model="form.HStopTime"
                  type="date"
                  placeholder="选择禁用日期"
                  disabled
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="离职日期" prop="HCheckTime">
                <el-date-picker
                  v-model="form.HCheckTime"
                  type="date"
                  placeholder="选择审核日期"
                  disabled
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="暂住证到期日" prop="HMakeTime">
                <el-date-picker
                  v-model="form.HMakeTime"
                  type="date"
                  placeholder="选择创建日期"
                  disabled
                  placeholder="选择暂住证到期日期"
                >
                </el-date-picker>
              </el-form-item>
@@ -416,425 +468,323 @@
          </el-row>
          <el-row>
            <el-col :span="14">
              <el-form-item label="离职原因" prop="HMakeTime">
                <el-date-picker
                  v-model="form.HMakeTime"
                  type="date"
                  placeholder="选择创建日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="离职原因" prop="HDimissionReason">
                <el-input type="text" v-model="form.HDimissionReason"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="传真号码" prop="HMakeTime">
                <el-date-picker
                  v-model="form.HMakeTime"
                  type="date"
                  placeholder="选择创建日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="传真号码" prop="HFax">
                <el-input type="text" v-model="form.HFax"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="签约" prop="HStopTime">
                <el-date-picker
                  v-model="form.HStopTime"
                  type="date"
                  placeholder="选择禁用日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="签约" prop="HSignStatus">
                <el-select v-model="form.HSignStatus" placeholder="是否签约">
                  <el-option
                    v-for="item in [
                      {
                        label: '是',
                        value: 'true',
                      },
                      {
                        label: '否',
                        value: 'false',
                      },
                    ]"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="性别" prop="HMakeTime">
              <el-form-item label="性别" prop="HSex">
                <el-select v-model="form.HSex" placeholder="请选择性别">
                  <el-option
                    v-for="item in [
                      {
                        label: '男',
                        value: '男',
                      },
                      {
                        label: '女',
                        value: '女',
                      },
                    ]"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="出生年月" prop="HBirthDay">
                <el-date-picker
                  v-model="form.HMakeTime"
                  type="date"
                  placeholder="选择创建日期"
                  disabled
                  v-model="form.HBirthDay"
                  type="month"
                  placeholder="选择出生年月"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="出生年月" prop="HStopTime">
                <el-date-picker
                  v-model="form.HStopTime"
                  type="date"
                  placeholder="选择禁用日期"
                  disabled
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="年龄" prop="HCheckTime">
                <el-date-picker
                  v-model="form.HCheckTime"
                  type="date"
                  placeholder="选择审核日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="年龄" prop="HAge">
                <el-input type="number" v-model="form.HAge"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="籍贯" prop="HMakeTime">
                <el-date-picker
                  v-model="form.HMakeTime"
                  type="date"
                  placeholder="选择创建日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="籍贯" prop="HBlighty">
                <el-input type="number" v-model="form.HBlighty"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="民族" prop="HStopTime">
                <el-date-picker
                  v-model="form.HStopTime"
                  type="date"
                  placeholder="选择禁用日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="民族" prop="HNation">
                <el-input type="text" v-model="form.HNation"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="户籍类别" prop="HCheckTime">
                <el-date-picker
                  v-model="form.HCheckTime"
                  type="date"
                  placeholder="选择审核日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="户籍类别" prop="HBlightyType">
                <el-select v-model="form.HBlightyType" placeholder="请选择户籍类型">
                  <el-option
                    v-for="item in [
                      {
                        value: '本地',
                        label: '本地',
                      },
                      {
                        value: '外地',
                        label: '外地',
                      },
                    ]"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
          </el-row>
        </el-tab-pane>
        <el-tab-pane label="其他信息" name="third">
          <div class="maintitle">其他资料</div>
          <el-row>
            <el-col :span="16">
              <el-form-item label="身份证" prop="HMakeTime">
                <el-date-picker
                  v-model="form.HMakeTime"
                  type="date"
                  placeholder="选择创建日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="身份证" prop="HIDCard">
                <el-input type="text" v-model="form.HIDCard"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="不打卡" prop="HMakeTime">
                <el-date-picker
                  v-model="form.HMakeTime"
                  type="date"
                  placeholder="选择创建日期"
                  disabled
                >
                </el-date-picker>
                <el-checkbox v-model="form.HNoBrushFlag">是否打卡</el-checkbox>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="禁用标志" prop="HStopTime">
                <el-date-picker
                  v-model="form.HStopTime"
                  type="date"
                  placeholder="选择禁用日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="禁用标志" prop="HStopflag">
                <el-checkbox v-model="form.HStopflag">禁用标志</el-checkbox>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="调休标志" prop="HCheckTime">
                <el-date-picker
                  v-model="form.HCheckTime"
                  type="date"
                  placeholder="选择审核日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="调休标志" prop="HOverType">
                <el-checkbox v-model="form.HOverType">是否调休</el-checkbox>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="工资类型" prop="HMakeTime">
                <el-date-picker
                  v-model="form.HMakeTime"
                  type="date"
                  placeholder="选择创建日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="工资类型" prop="HEmpType">
                <el-select v-model="form.HEmpType" placeholder="请选择工资类型">
                  <el-option
                    v-for="item in HEmpTypeList"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="轮休调休标志" prop="HStopTime">
                <el-date-picker
                  v-model="form.HStopTime"
                  type="date"
                  placeholder="选择禁用日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="轮休调休标志" prop="checkboxHShiftFlag">
                <el-checkbox v-model="form.checkboxHShiftFlag">是否轮休调休</el-checkbox>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="停发工资" prop="HCheckTime">
                <el-date-picker
                  v-model="form.HCheckTime"
                  type="date"
                  placeholder="选择审核日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="停发工资" prop="checkboxHStopwagesFlag">
                <el-checkbox v-model="form.checkboxHStopwagesFlag">是否停发</el-checkbox>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="12">
              <el-form-item label="银行账户" prop="HBankAccount">
                <el-input type="text" v-model="form.HBankAccount"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="保险补贴" prop="HInsuranceSubsidy">
                <el-input type="text" v-model="form.HInsuranceSubsidy"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="12">
              <el-form-item label="基本工资" prop="HMakeTime">
                <el-date-picker
                  v-model="form.HMakeTime"
                  type="date"
                  placeholder="选择创建日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="其他扣款3" prop="HOtherDeduct3">
                <el-input type="text" v-model="form.HOtherDeduct3"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="职务考核工资" prop="HStopTime">
                <el-date-picker
                  v-model="form.HStopTime"
                  type="date"
                  placeholder="选择禁用日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="医疗保险" prop="HMedicare">
                <el-input type="text" v-model="form.HMedicare"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="12">
              <el-form-item label="带班系数" prop="HMakeTime">
                <el-date-picker
                  v-model="form.HMakeTime"
                  type="date"
                  placeholder="选择创建日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="养老保险" prop="HInsurance">
                <el-input type="text" v-model="form.HInsurance"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="支付类型" prop="HStopTime">
                <el-date-picker
                  v-model="form.HStopTime"
                  type="date"
                  placeholder="选择禁用日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="失业保险" prop="HDrydock">
                <el-input type="text" v-model="form.HDrydock"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <div class="maintitle">其他资料</div>
          <el-row>
            <el-col :span="12">
              <el-form-item label="基本工资" prop="HBasePay">
                <el-input type="text" v-model="form.HBasePay"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="职务考核工资" prop="HExamLevPostMoney">
                <el-input type="text" v-model="form.HExamLevPostMoney"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="12">
              <el-form-item label="最高工资" prop="HMakeTime">
                <el-date-picker
                  v-model="form.HMakeTime"
                  type="date"
                  placeholder="选择创建日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="带班系数" prop="HExamRate">
                <el-input type="text" v-model="form.HExamRate"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="超额比率" prop="HStopTime">
                <el-date-picker
                  v-model="form.HStopTime"
                  type="date"
                  placeholder="选择禁用日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="支付类型" prop="HPayType">
                <el-select v-model="form.HPayType" placeholder="请选择支付类型">
                  <el-option
                    v-for="item in [
                      {
                        label: '现金',
                        value: '现金',
                      },
                      {
                        label: '银行卡',
                        value: '银行卡',
                      },
                    ]"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="12">
              <el-form-item label="剩余工资" prop="HMakeTime">
                <el-date-picker
                  v-model="form.HMakeTime"
                  type="date"
                  placeholder="选择创建日期"
                  disabled
                >
                </el-date-picker>
              <el-form-item label="最高工资" prop="HHighestPay">
                <el-input type="text" v-model="form.HHighestPay"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="超额比率" prop="HOverPayRate">
                <el-input type="text" v-model="form.HOverPayRate"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="12">
              <el-form-item label="剩余工资" prop="HLeftMoneyRate">
                <el-input type="text" v-model="form.HLeftMoneyRate"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
        </el-tab-pane>
        <el-tab-pane label="附件信息" name="forth">
          <el-row>
            <el-col :span="8">
              <el-form-item label="单班工时" prop="HWorkTimes">
                <el-input-number
                  v-model="form.HWorkTimes"
                  controls-position="right"
                  :min="0"
                ></el-input-number>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="类型" prop="HType">
                <el-select
                  v-model="form.HType"
                  placeholder="请选择类型"
                  :disabled="zzSelDis"
                >
                  <el-option value="生产线">生产线</el-option>
                  <el-option value="人">人</el-option>
                  <el-option value="设备">设备</el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="关联ID" prop="HRelationID">
                <el-input-number
                  v-model="form.HRelationID"
                  controls-position="right"
                  :min="0"
                ></el-input-number>
              </el-form-item>
            </el-col>
            <el-upload
              class="upload-employee"
              ref="upload"
              action=""
              :on-preview="handlePreview"
              :on-remove="handleRemove"
              :file-list="fileList"
              :auto-upload="false"
              :show-file-list="false"
              style="display: inline-block; margin-left: 10px"
              :on-change="fileChangeHandler"
            >
              <el-button
                slot="trigger"
                size="small"
                type="primary"
                @click.capture="handleBeforeUpload"
                >上传文件</el-button
              >
            </el-upload>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="单班最大工时" prop="HMaxWorkTimes">
                <el-input-number
                  v-model="form.HMaxWorkTimes"
                  controls-position="right"
                  :min="0"
                ></el-input-number>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="最小进阶" prop="HMinAdd">
                <el-input-number
                  v-model="form.HMinAdd"
                  controls-position="right"
                  :min="0"
                ></el-input-number>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="每日班次" prop="HClassCount">
                <el-input-number
                  v-model="form.HClassCount"
                  controls-position="right"
                  :min="0"
                ></el-input-number>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="加班工时" prop="HOverTimes">
                <el-input-number
                  v-model="form.HOverTimes"
                  controls-position="right"
                  :min="0"
                ></el-input-number>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="部门" prop="HDeptName">
                <el-input v-model="form.HDeptName" placeholder="请选择部门" disabled>
            <el-table :data="fileListPreUpload" ref="tableData" max-height="750" border>
              <el-table-column type="index" label="序号" width="55" align="left" />
              <el-table-column label="文件名" prop="fileName" align="left" width="120" />
              <el-table-column label="图片" prop="url" align="left" width="120">
                <template slot-scope="scope">
                  <el-image
                    :src="scope.row.url || ''"
                    fit="cover"
                    style="width: 100px; height: 80px"
                    :preview-src-list="[scope.row.url] || []"
                    fallback="图片加载失败"
                  ></el-image>
                </template>
              </el-table-column>
              <el-table-column label="大小" prop="size" align="left" width="120" />
              <el-table-column label="状态" prop="fileStatus" align="left" width="120" />
              <el-table-column label="操作" prop="操作" align="left" width="120">
                <template slot-scope="scope">
                  <el-button
                    slot="append"
                    icon="el-icon-search"
                    @click="openDataDialog(1)"
                  ></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="工序" prop="HProcName">
                <el-input v-model="form.HProcName" placeholder="请选择部门" disabled>
                    size="mini"
                    type="text"
                    icon="el-icon-upload"
                    @click="uploadDataUpload(scope.row, scope.$index)"
                    >上传</el-button
                  >
                  <el-button
                    slot="append"
                    icon="el-icon-search"
                    @click="openDataDialog(1)"
                  ></el-button>
                </el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="默认生产班组" prop="HGroup">
                <el-input v-model="form.HGroup" placeholder="请选择默认生产班组" disabled>
                  <el-button
                    slot="append"
                    icon="el-icon-search"
                    @click="openDataDialog(1)"
                  ></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="主资源" prop="HPrimarySourceName">
                <el-input
                  v-model="form.HPrimarySourceName"
                  placeholder="请选择主资源"
                  disabled
                >
                  <el-button
                    slot="append"
                    icon="el-icon-search"
                    @click="openDataDialog(1)"
                  ></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="工位数量" prop="HCubicleQty">
                <el-input-number
                  v-model="form.HCubicleQty"
                  controls-position="right"
                  :min="1"
                ></el-input-number>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="产线人数" prop="HProdLinePeopleNum">
                <el-input-number
                  v-model="form.HProdLinePeopleNum"
                  controls-position="right"
                  :min="0"
                ></el-input-number>
              </el-form-item>
            </el-col>
                    size="mini"
                    type="text"
                    icon="el-icon-delete"
                    @click="uploadDataDelete(scope.row, scope.$index)"
                    >删除</el-button
                  >
                </template>
              </el-table-column>
            </el-table>
          </el-row>
        </el-tab-pane>
      </el-tabs>
@@ -847,9 +797,23 @@
      append-to-body
    >
      <Dept @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="deptShow" />
      <Warehouse @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="warehouseShow" />
      <Material @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="materialShow" />
      <GyWorkCenter @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="workCenterShow" />
      <GyWorkType
        @deptEmitDb="dbEmitData"
        @deptEmit="emitData"
        v-if="workTypeShow"
        :openType="2"
      />
      <GyClassTimePrj
        @deptEmitDb="dbEmitData"
        @deptEmit="emitData"
        v-if="classTimePrjShow"
        :openType="2"
      />
      <GyPost @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="postShow" />
      <GyDuty @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="dutyShow" />
      <GyGroup @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="groupShow" />
      <GyPost @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="post2Show" />
      <GyDorm @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="dormShow" />
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="deptClickSub">确 定</el-button>
        <el-button @click="deptClose">取 消</el-button>
@@ -866,15 +830,35 @@
import RowSettings from "@/views/component/rowSettings";
import GyWorkCenter from "@/views/component/gyWorkCenter";
import moment from "moment";
import GyWorkType from "@/views/component/gyWorkType";
import GyClassTimePrj from "@/views/component/gyClassTimePrj";
import GyPost from "@/views/component/gyPost";
import GyDuty from "@/views/component/gyDuty";
import GyGroup from "@/views/component/gyGroup";
import GyDorm from "@/views/component/gyDorm";
import dayjs from "dayjs";
export default {
  name: "SellOutBill",
  components: { Dept, Warehouse, Material, RowSettings, GyWorkCenter },
  components: {
    Dept,
    Warehouse,
    Material,
    RowSettings,
    GyWorkCenter,
    GyWorkType,
    GyClassTimePrj,
    GyPost,
    GyDuty,
    GyGroup,
    GyDorm,
  },
  props: {
    OperationType: { type: Number },
    linterid: { type: Number },
    HSouceBillType: { type: String },
    copyType: { type: Number },
    HOrgID: { type: Number },
  },
  data() {
    return {
@@ -885,6 +869,14 @@
      rowHideShow: false,
      openRowHide: false,
      workCenterShow: false,
      workTypeShow: false,
      classTimePrjShow: false,
      postShow: false,
      post2Show: false,
      postIndex: 0,
      postMode: 1, // 1 表示 主表更新,2表示子表更新
      dutyShow: false,
      groupShow: false,
      sWhere: "",
      sTime: "",
      eTime: "",
@@ -893,6 +885,7 @@
      deptShow: false, //部门数据组件
      warehouseShow: false, //仓库数据组件
      materialShow: false, //物料数据组件
      dormShow: false, // 宿舍基础资料
      deptform: {}, //弹窗选中数据
      openData: false, //数据弹窗
      dialogTitle: "",
@@ -902,7 +895,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, // 用于记录上次点击的行索引
@@ -922,14 +915,17 @@
      showSearch: true,
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 表单参数
      form: {},
      // 表单校验
      rules: {
        HNumber: [{ required: true, message: "生产资源代码不能为空", trigger: "blur" }],
        HName: [{ required: true, message: "生产资源名称不能为空", trigger: "blur" }],
        HCenter: [{ required: true, message: "工作中心不能为空", trigger: "blur" }],
        HNumber: [{ required: true, message: "职员代码不能为空", trigger: "blur" }],
        HName: [{ required: true, message: "职员名称不能为空", trigger: "blur" }],
        HDeptName: [{ required: true, message: "部门不能为空", trigger: "blur" }],
      },
      HGovStatusList: [
@@ -956,6 +952,42 @@
        { label: "未婚", value: "未婚" },
        { label: "离异", value: "离异" },
      ],
      HEngLevList: [
        { label: "无", value: "无" },
        { label: "一般", value: "一般" },
        { label: "熟悉", value: "熟悉" },
        { label: "精通", value: "精通" },
      ],
      HCompLevList: [
        { label: "无", value: "无" },
        { label: "一般", value: "一般" },
        { label: "熟悉", value: "熟悉" },
        { label: "精通", value: "精通" },
      ],
      HWorkTypeList: [
        { label: "临时工", value: "临时工" },
        { label: "合同工", value: "合同工" },
        { label: "顶岗工", value: "顶岗工" },
        { label: "其他", value: "其他" },
      ],
      HEmpTypeList: [
        { label: "固定工资", value: "固定工资" },
        { label: "浮动工资", value: "浮动工资" },
        { label: "系数工资", value: "系数工资" },
        { label: "月度工资", value: "月度工资" },
      ],
      // 上传文件列表
      fileList: [],
      // 上传文件 展示列表
      fileListPreUpload: [],
      // 岗位信息缓存
      PostDataCache: [],
    };
  },
  created() {
@@ -966,7 +998,73 @@
    this.reset();
    this.fetchData();
  },
  mounted() {
    console.log(this.row);
    console.log(this.OperationType);
    console.log(this.HOrgID);
  },
  methods: {
    handleBeforeUpload(e) {
      if (!this.form.HNumber) {
        // 1. 阻止默认行为(阻止打开文件选择窗口)
        e.preventDefault();
        // 2. 阻止事件传播(防止触发其他可能的事件处理器)
        e.stopPropagation();
        this.$modal.msgError("职员代码未填写,不可上传文件");
      }
    },
    tableHRemarkBlur(rowindex, content) {
      console.log(content);
      // this.PostDataCache[rowindex].HRemark = content.HRemark;
    },
    HPostKeyUpHandler(rowindex, e) {
      this.showReset();
      if (e.key == "F7") {
        this.dialogTitle = "岗位";
        this.post2Show = true;
        this.openData = true;
        this.postIndex = rowindex;
        this.postMode = 2;
      }
    },
    uploadPostDelete(row, index) {
      console.log(row, index);
      if (this.PostDataCache.length == 1) {
        this.$modal.msgError("首行无法删除!");
        return;
      }
      this.PostDataCache.splice(index, 1);
    },
    handleRemove() {},
    handlePreview() {},
    fileChangeHandler(file, fileList) {
      this.fileList = fileList;
      const rawFile = file.raw;
      // 仅处理图片文件
      if (rawFile && rawFile.type.startsWith("image/")) {
        const reader = new FileReader(); // 初始化 FileReader
        // 读取完成后生成预览 URL
        reader.onload = (e) => {
          this.fileListPreUpload.push({
            fileName: file.name,
            size: `${(file.size / 1024).toFixed(2)}KB`,
            url: e.target.result,
            fileStatus: "未上传",
          });
          console.log(this.fileListPreUpload);
        };
        // 以 DataURL 格式读取文件
        reader.readAsDataURL(rawFile);
      }
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      console.log(selection);
    },
    fetchData() {
      //登录用户信息
      axios
@@ -993,13 +1091,63 @@
          this.$modal.msgError("接口请求失败!");
        });
    },
    AddALine() {
      this.PostDataCache.push({
        HEmpID: this.form.HInterID,
        HEmpName: this.form.HName,
        HPostID: 0,
        HPostName: "",
        HRemark: "",
      });
    },
    CopyALine(e) {
      if (this.selectedRow) {
        this.PostDataCache.push({
          HEmpID: this.selectedRow.HEmpID || 0,
          HEmpName: this.selectedRow.HEmpName || "",
          HPostID: this.selectedRow.PostID || 0,
          HPostName: this.selectedRow.HPostName || "",
          HRemark: this.selectedRow.HRemark || "",
        });
      }
    },
    HNameChange() {
      for (const key in this.PostDataCache) {
        console.log(key);
        this.PostDataCache[key].HEmpName = this.form.HName;
      }
    },
    getSubData() {
      axios
        .get(this.baseURL + "/Gy_Employee/listSub", {
          params: {
            sWhere: ` and HEmpID = ${this.form.HItemID}`,
            user: this.user,
          },
        })
        .then((response) => {
          console.log(response);
          let result = response.data;
          if (result.code == 1) {
            // 说明验证成功了
            this.PostDataCache = result.data;
          }
          this.$nextTick(() => {
            this.formShow = true;
            this.formLoading = false;
          });
        })
        .catch((error) => {
          this.$modal.msgError("接口请求失败!");
        });
    },
    getdata() {
      this.reset();
      console.log(this.OperationType);
      if (this.OperationType != 1) {
        this.zzSelDis = true;
        axios
          .get(this.baseURL + "GetGy_SourceDetail", {
          .get(this.baseURL + "/GetGy_EmployeeDetail", {
            params: {
              HID: this.linterid,
            },
@@ -1009,51 +1157,98 @@
            let result = response.data;
            if (result.code == 1) {
              // 说明验证成功了,
              var data = result.data.h_v_Edit_IF_SourceList[0];
              this.form.HNumber = data.生产资源代码;
              this.form.HItemID = this.OperationType == 2 ? 0 : data.HItemID;
              this.form.HName = data.生产资源名称;
              this.form.HHelpCode = data.助记代码;
              this.form.HWorkTimes = data.单班工时;
              this.form.HMaxWorkTimes = data.单班最大工时;
              this.form.HRelationID = data.关联ID;
              this.form.HMinAdd = data.最小进阶;
              this.form.HClassCount = data.每日班次;
              this.form.HOverTimes = data.加班工时;
              this.form.HCenter = data.工作中心;
              this.form.HCenterID = data.工作中心ID;
              this.form.HGroup = data.班组名称;
              this.form.HGroupID = data.班组ID;
              this.form.HDeptName = data.部门名称;
              this.form.HDeptID = data.部门ID;
              this.form.HProcName = data.工序;
              this.form.HProcID = data.工序ID;
              this.form.HProcNumber = data.工序代码;
              this.form.HStopflag = data.禁用标记;
              this.form.HType = data.类型;
              this.form.HRemark = data.备注;
              this.form.HUseFlag = data.HUseFlag;
              this.form.HUSEORGID = data.HUSEORGID;
              this.form.HCREATEORGID = data.HCREATEORGID;
              this.form.HMacAddr = data.mac地址;
              this.form.HEmpID = data.HEmpID;
              this.form.HEmpName = data.负责人;
              this.form.HMakeEmp = data.创建人;
              this.form.HMakeTime = data.创建日期;
              this.form.HStopEmp = data.禁用人;
              this.form.HStopTime = data.禁用日期;
              this.form.HCheckEmp = data.审核人;
              this.form.HCheckTime = data.审核日期;
              this.form.HPrimarySourceID = data.HParentID;
              this.form.HPrimarySourceName = data.主资源名称;
              this.form.HParentID = data.HParentID;
              this.form.HCubicleQty = data.占用工位数;
              this.form.HProdLinePeopleNum = data.产线人数;
              if (!data.HCheckEmp) {
                this.CheckBillDisabled = false;
              }
              var data = result.data.h_v_Edit_IF_EmployeeList[0];
              Object.assign(this.form, {
                HNumber: data.职员代码,
                HItemID: this.OperationType == 2 ? 0 : data.HItemID,
                HName: data.职员名称,
                HHelpCode: data.助记代码,
                HGroupID: data.HGroupID,
                HGroupName: data.班组名称,
                HGroupNumber: data.班组代码,
                HEndFlag: data.明细标记,
                HNoBrushFlag: data.是否打卡,
                HOverType: data.是否调休,
                HShiftFlag: data.是否轮班调休,
                HStopwagesFlag: data.是否停发,
                HInsuranceStatus: data.是否参保,
                HDeptID: data.部门ID,
                HDeptName: data.部门名称,
                HDutyID: data.职务ID,
                HDutyName: data.职务名称,
                HDutyNumber: data.职务代码,
                HDormID: data.宿舍ID,
                HDormName: data.宿舍名称,
                HDormNumber: data.宿舍代码,
                HWorkTypeID: data.工种ID,
                HWorkTypeName: data.工种名称,
                HWorkTypeNumber: data.工种代码,
                HCTPrjID: data.核算方式ID,
                HCTPrjName: data.核算方式名称,
                HCTPrjNumber: data.核算方式代码,
                HPostID: data.岗位ID,
                HPostName: data.岗位名称,
                HPostNumber: data.岗位代码,
                HSex: data.性别,
                HBirthDay: dayjs(data.出生年月).format("YYYY-MM-DD"),
                HAge: data.年龄,
                HBlighty: data.籍贯,
                HNation: data.民族,
                HBlightyType: data.户籍类别,
                HGovStatus: data.政治面貌,
                HKnowLev: data.学历,
                HMarr: data.婚姻状况,
                HArchivesNo: data.档案编号,
                HProTitleID: data.职称,
                HSalaryLev: data.薪资等级,
                HGradSchool: data.毕业学校,
                HGradDate: dayjs(data.毕业时间).format("YYYY-MM-DD"),
                HEngLev: data.外语水平,
                HCompLev: data.计算机水平,
                HSpec: data.专业,
                HNowAdd: data.现住地址,
                HEmail: data.电子邮箱,
                HHomeAdd: data.家庭地址,
                HPostalCode: data.邮政编码,
                HOldCompany: data.原公司,
                HLinkPhone: data.联系电话,
                HMobilePhone: data.手机号,
                HWorkType: data.用工类型,
                HInComDate: dayjs(data.进厂日期).format("YYYY-MM-DD"),
                HRelDate: dayjs(data.转正日期).format("YYYY-MM-DD"),
                HInsuranceNo: data.保险证编号,
                HContractBDate: dayjs(data.合同开始日期).format("YYYY-MM-DD"),
                HContractEDate: dayjs(data.合同到期日期).format("YYYY-MM-DD"),
                HContractYear: data.合同期限,
                HInsuranceDate: dayjs(data.参保日期).format("YYYY-MM-DD"),
                HDimissionDate: dayjs(data.离职日期).format("YYYY-MM-DD"),
                HStayCardEDate: dayjs(data.暂住证到期日).format("YYYY-MM-DD"),
                HEmpRate: data.职员系数,
                HBSTDeptID: data.贝士达部门,
                HRemark: data.备注,
                HDimissionReason: data.离职原因,
                linteridCard: data.身份证,
                HEmpType: data.工资类型,
                HBankAccount: data.银行账户,
                HInsuranceSubsidy: data.保险补贴,
                HOtherDeduct3: data.其他扣款3,
                HMedicare: data.医疗保险,
                HInsurance: data.养老保险,
                HDrydock: data.失业保险,
                HBasePay: data.基本工资,
                HExamLevPostMoney: data.职务考核工资,
                HExamRate: data.考核系数,
                HPayType: data.支付类型,
                HLeftMoneyRate: data.剩余工资,
                HHighestPay: data.最高工资,
                HOverPayRate: data.超额比率,
                HStopflag: data.禁用标记,
                HRemark: data.备注,
              });
            }
            this.$nextTick(() => {
              this.getSubData();
              this.formShow = true;
              this.formLoading = false;
            });
@@ -1064,6 +1259,13 @@
      } else if (this.OperationType == 1) {
        let date = new Date();
        this.form.HMakeTime = moment(date).format("YYYY-MM-DDTHH:mm:ss");
        this.PostDataCache.push({
          HEmpID: 0,
          HEmpName: "",
          HPostID: 0,
          HPostName: "",
          HRemark: "",
        });
        this.$nextTick(() => {
          this.formShow = true;
          this.formLoading = false;
@@ -1085,29 +1287,63 @@
    //部门弹窗赋值
    dbEmitData(deptRow, num) {
      // num=1部门 num=2出库仓库
      console.log(num, deptRow);
      if (num == 1) {
        this.form.HDeptName = deptRow.部门名称;
        this.form.HDeptID = deptRow.HItemID;
        this.form.HEmpID = deptRow.HEmpID;
        this.form.HManagerName = deptRow.负责人;
        this.openData = false;
      } else if (num == 2) {
        this.editData[this.zbIndex].HWHID = deptRow.HItemID;
        this.editData[this.zbIndex].发货仓库 = deptRow.仓库名称;
      } else if (num == "post" && this.postMode == 1) {
        this.form.HPostID = deptRow.HItemID;
        this.form.HPostName = deptRow.岗位名称;
        this.form.HPostNumber = deptRow.岗位代码;
        this.openData = false;
      } else if (num == 3) {
        this.editData[this.zbIndex].HMaterID = deptRow.HItemID;
        this.editData[this.zbIndex].物料代码 = deptRow.物料代码;
        this.editData[this.zbIndex].物料名称 = deptRow.物料名称;
        this.editData[this.zbIndex].HUnitID = deptRow.HUnitID;
        this.editData[this.zbIndex].规格型号 = deptRow.规格型号;
        this.editData[this.zbIndex].计量单位 = deptRow.计量单位名称;
        this.editData[this.zbIndex].HTaxPrice = deptRow.含税成本价;
        this.editData[this.zbIndex].HTaxRate = deptRow.默认税率;
      } else if (num == "post" && this.postMode == 2) {
        Object.assign(this.PostDataCache[this.postIndex], {
          HPostID: deptRow.HItemID,
          HPostName: deptRow.岗位名称,
          HPostNumber: deptRow.岗位代码,
        });
        this.openData = false;
      } else if (num == 4) {
        this.form.HCenterID = deptRow.HItemID;
        this.form.HCenter = deptRow.工作中心名称;
        this.postMode = 0;
        this.postIndex = 0;
      } else if (num == "workType") {
        Object.assign(this.form, {
          HWorkTypeID: deptRow.HItemID,
          HWorkTypeName: deptRow.工种名称,
          HWorkTypeNumber: deptRow.工种代码,
        });
        this.openData = false;
      } else if (num == "CTPrj") {
        // 核算方式
        Object.assign(this.form, {
          HCTPrjID: deptRow.HItemID,
          HCTPrjName: deptRow.核算方式名称,
          HCTPrjNumber: deptRow.核算方式代码,
        });
        this.openData = false;
      } else if (num == "Duty") {
        // 核算方式
        Object.assign(this.form, {
          HDutyID: deptRow.hitemid,
          HDutyName: deptRow.职务,
          HDutyNumber: deptRow.组织架构代码,
        });
        this.openData = false;
      } else if (num == "Group") {
        // 班组
        Object.assign(this.form, {
          HGroupItem: deptRow.HItemID,
          HGroupName: deptRow.班组名称,
          HGroupNumber: deptRow.班组代码,
        });
        this.openData = false;
      } else if (num == "Dorm") {
        // 宿舍
        Object.assign(this.form, {
          HDormID: deptRow.HItemID,
          HDormName: deptRow.HName,
          HDormNumber: deptRow.HNumber,
        });
        this.openData = false;
      }
    },
@@ -1124,48 +1360,114 @@
      this.openData = false;
    },
    //点击行
    handleRowClick(row, column, event) {
      console.log(row);
      this.lastSelectedRow = this.selectedRow; // 记录上一次选中的行
      this.selectedRow = row; // 记录当前选中的行
      this.lastSelectedRowIndex = this.PostDataCache.indexOf(row);
      this.$refs.HPostData.toggleRowSelection(this.lastSelectedRow);
      this.$refs.HPostData.toggleRowSelection(row);
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.HItemID)) {
        return { background: "#ecf5ff" };
      }
    },
    //新增编辑表单初始化
    reset() {
      this.form = {
        HNumber: null,
        HItemID: 0,
        HName: null,
        HHelpCode: null,
        HWorkTimes: "0",
        HMaxWorkTimes: "0",
        HRelationID: "0",
        HMinAdd: "0",
        HClassCount: "0",
        HOverTimes: "0",
        HCenter: null,
        HCenterID: null,
        HGroup: null,
        HGroupID: 0,
        HDeptName: null,
        HDeptID: 0,
        HProcName: null,
        HProcID: 0,
        HProcNumber: null,
        HNumber: "",
        HItemID: "0",
        HName: "",
        HDeptName: "",
        HDeptID: "0",
        HDepNumber: "",
        HWorkTypeName: "",
        HWorkTypeID: "0",
        HWorkTypeNumber: "",
        HCTPrjName: "",
        HCTPrjID: "0",
        HEmpRate: "0",
        HPostName: "",
        HPostID: "0",
        HPostNumber: "",
        HDutyName: "",
        HDutyID: "0",
        HDutyNumber: "",
        HGroupName: "",
        HGroupID: "0",
        HGroupNumber: "",
        HRemark: "",
        HGovStatus: "群众",
        HKnowLev: "小学",
        HMarr: "未婚",
        HArchivesNo: "",
        HProTitleID: "",
        HSalaryLev: "",
        HGradSchool: "",
        HGradDate: "",
        HDormName: "",
        HDormID: "0",
        HDormNumber: "",
        HEngLev: "无",
        HCompLev: "无",
        HSpec: "",
        HNowAdd: "",
        HEmail: "",
        HHomeAdd: "",
        HPostalCode: "",
        HOldCompany: "",
        HLinkPhone: "",
        HMobilePhone: "",
        HWorkType: "临时工",
        HInComDate: "",
        HRelDate: "",
        HInsuranceNo: "",
        HInsuranceStatus: "true",
        HInsuranceDate: "",
        HContractEDate: "",
        HContractBDate: "",
        HContractYear: "0",
        HDimissionDate: "",
        HStayCardEDate: "",
        HDimissionReason: "",
        HFax: "",
        HSignStatus: "true",
        HSex: "男",
        HBirthDay: "",
        HAge: "0",
        HBlighty: "",
        HNation: "",
        HBlightyType: "本地",
        HIDCard: "",
        checkboxHNoBrushFlag: false,
        HNoBrushFlag: false,
        checkboxHStopflag: false,
        HStopflag: false,
        HType: null,
        HRemark: null,
        HUseFlag: "未检测",
        HUSEORGID: this.zuzhiId,
        HCREATEORGID: this.zuzhiId,
        HMacAddr: null,
        HEmpID: 0,
        HEmpName: null,
        HMakeEmp: this.user,
        HMakeTime: null,
        HStopEmp: null,
        HStopTime: null,
        HCheckEmp: null,
        HCheckTime: null,
        HPrimarySourceID: 0,
        HPrimarySourceName: null,
        HParentID: 0,
        HCubicleQty: "1",
        HProdLinePeopleNum: "0",
        checkboxHOverType: false,
        HOverType: false,
        HEmpType: "固定工资",
        checkboxHShiftFlag: false,
        HShiftFlag: false,
        checkboxHStopwagesFlag: false,
        HStopwagesFlag: false,
        HBankAccount: "",
        HInsuranceSubsidy: "0",
        HOtherDeduct3: "0",
        HMedicare: "0",
        HInsurance: "0",
        HDrydock: "0",
        HBasePay: "0",
        HExamLevPostMoney: "0",
        HExamRate: "0",
        HPayType: "现金",
        HHighestPay: "0",
        HOverPayRate: "0",
        HLeftMoneyRate: "0",
        file: "",
      };
      this.editData = [];
      this.editBtData = [];
@@ -1192,14 +1494,16 @@
          this.$nextTick(() => {
            if (!fhck) {
              console.log(4);
              this.form.HUSEORGID = this.form.HCREATEORGID = this.HOrgID;
              var sMainStr = JSON.stringify(this.form);
              var sSubStr = JSON.stringify(this.PostDataCache);
              // var sSubStr = JSON.stringify(this.editData);
              var sMainSub = sMainStr + ";" + this.user;
              var sMainSub = sMainStr + ";" + this.user + ";" + sSubStr;
              axios({
                method: "post",
                url: this.baseURL + "SaveGy_SourceList",
                url: this.baseURL + "/Gy_Employee/ModifyByID",
                data: {
                  msg: sMainSub,
                  oMain: sMainSub,
                },
              })
                .then((response) => {
@@ -1275,6 +1579,12 @@
      this.warehouseShow = false;
      this.materialShow = false;
      this.workCenterShow = false;
      this.workTypeShow = false;
      this.postShow = false;
      this.post2Show = false;
      this.classTimePrjShow = false;
      this.dutyShow = false;
      this.groupShow = false;
    },
    //  打开数据列表弹窗
    openDataDialog(num, row) {
@@ -1287,18 +1597,43 @@
        this.deptShow = true;
        this.openData = true;
      } else if (num == 2) {
        this.dialogTitle = "出库仓库列表";
        this.warehouseShow = true;
        this.dialogTitle = "工种列表";
        this.workTypeShow = true;
        this.openData = true;
      } else if (num == 3) {
        this.dialogTitle = "物料列表";
        this.materialShow = true;
        this.dialogTitle = "核算方式列表";
        this.classTimePrjShow = true;
        this.openData = true;
      } else if (num == 4) {
        this.dialogTitle = "工作中心";
        this.workCenterShow = true;
        this.dialogTitle = "岗位";
        this.postShow = true;
        this.openData = true;
        this.postMode = 1;
      } else if (num == 5) {
        this.dialogTitle = "职务";
        this.dutyShow = true;
        this.openData = true;
      } else if (num == 6) {
        this.dialogTitle = "班组";
        this.groupShow = true;
        this.openData = true;
      } else if (num == 7) {
        this.dialogTitle = "岗位";
        this.post2Show = true;
        this.openData = true;
      } else if (num == 8) {
        this.dialogTitle = "宿舍";
        this.dormShow = true;
        this.openData = true;
      }
    },
    uploadDataDelete(row, index) {
      console.log(row, index);
      this.fileList.splice(index, 1);
      this.fileListPreUpload.splice(index, 1);
    },
    uploadDataUpload(row, index) {
      console.log(row, index);
    },
  },
};
@@ -1307,4 +1642,11 @@
.xsckdBox .el-date-editor.el-input {
  width: 100%;
}
.maintitle {
  font-size: 16px;
  box-sizing: border-box;
  padding-left: 1em;
  padding-bottom: 0.5em;
}
</style>
src/views/gyEmployee/index.vue
@@ -406,6 +406,7 @@
          :OperationType="OperationType"
          :linterid="this.rowForm.HItemID"
          :HSouceBillType="this.rowForm.HSourceBillType"
          :HOrgID="this.queryParams.HOrgID"
          :copyType="copyType"
          @editCloseGy="editGyClose"
          v-if="editShow"
@@ -574,7 +575,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, // 用于记录上次点击的行索引
@@ -1220,7 +1221,7 @@
    resetQuery() {
      this.dateRange = [];
      this.sWhere = "";
      this.queryParams = {
      Object.assign(this.Parameters, {
        HBillNo: "",
        HInitTimeCycle: 29,
        HProjectNumber: "",
@@ -1236,7 +1237,7 @@
        ColContent1: "",
        ColContent2: "",
        ColContent: "",
      };
      });
      this.riqiChange();
      this.resetForm("queryForm");
      this.getList();
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, // 用于记录上次点击的行索引