gaoluyang
2025-11-24 ee0dd1393e5e1417b1c81cc6228a59ad108b108a
1.金鹰黄金-新增入职添加导入功能
已修改2个文件
101 ■■■■■ 文件已修改
src/views/personnelManagement/onboarding/components/formDia.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/onboarding/index.vue 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/onboarding/components/formDia.vue
@@ -36,8 +36,8 @@
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="岗位:" prop="postJob">
              <el-select v-model="form.postJob" filterable placeholder="请选择岗位" :loading="positionLoading" clearable>
            <el-form-item label="岗位:" prop="deptPositionId">
              <el-select v-model="form.deptPositionId" filterable placeholder="请选择岗位" :loading="positionLoading" clearable>
                <el-option v-for="p in positionOptions" :key="p.id" :label="p.name || p.label" :value="p.id" />
              </el-select>
            </el-form-item>
@@ -151,7 +151,7 @@
    staffName: "",
    sex: "",
    nativePlace: "",
    postJob: "",
    deptPositionId: "",
    adress: "",
    firstStudy: "",
    profession: "",
@@ -169,7 +169,7 @@
    staffName: [{required: true, message: "请输入", trigger: "blur"}],
    sex: [{required: true, message: "请输入", trigger: "blur"}],
    nativePlace: [{required: true, message: "请输入", trigger: "blur"}],
    postJob: [{required: true, message: "请输入", trigger: "blur"}],
    deptPositionId: [{required: true, message: "请输入", trigger: "blur"}],
    adress: [{required: true, message: "请输入", trigger: "blur"}],
    firstStudy: [{required: true, message: "请输入", trigger: "blur"}],
    profession: [{required: true, message: "请输入", trigger: "blur"}],
src/views/personnelManagement/onboarding/index.vue
@@ -33,6 +33,7 @@
      </div>
      <div>
        <el-button type="primary" @click="openForm('add')">新增入职</el-button>
        <el-button type="info" @click="handleImport">导入</el-button>
        <el-button @click="handleOut">导出</el-button>
        <el-button type="danger" plain @click="handleDelete">删除</el-button>
      </div>
@@ -51,17 +52,60 @@
      ></PIMTable>
    </div>
    <form-dia ref="formDia" @close="handleQuery"></form-dia>
    <!-- 人员入职导入对话框 -->
    <el-dialog
      :title="upload.title"
      v-model="upload.open"
      width="400px"
      append-to-body
    >
      <el-upload
        ref="uploadRef"
        :limit="1"
        accept=".xlsx, .xls"
        :headers="upload.headers"
        :action="upload.url + '?updateSupport=' + upload.updateSupport"
        :disabled="upload.isUploading"
        :on-progress="handleFileUploadProgress"
        :on-success="handleFileSuccess"
        :auto-upload="false"
        drag
      >
        <el-icon class="el-icon--upload"><upload-filled /></el-icon>
        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
        <template #tip>
          <div class="el-upload__tip text-center">
            <span>仅允许导入xls、xlsx格式文件。</span>
            <el-link
              type="primary"
              :underline="false"
              style="font-size: 12px; vertical-align: baseline"
              @click="importTemplate"
              >下载模板</el-link
            >
          </div>
        </template>
      </el-upload>
      <template #footer>
        <div class="dialog-footer">
          <el-button type="primary" @click="submitFileForm">确 定</el-button>
          <el-button @click="upload.open = false">取 消</el-button>
        </div>
      </template>
    </el-dialog>
  </div>
</template>
<script setup>
import { Search } from "@element-plus/icons-vue";
import { Search, UploadFilled } from "@element-plus/icons-vue";
import {onMounted, ref} from "vue";
import FormDia from "@/views/personnelManagement/onboarding/components/formDia.vue";
// import FormDia from "@/views/personnelManagement/onboarding/components/formDiaXJHT.vue"; // 新疆食品公司用的表单
import {staffJoinDel, staffJoinListPage} from "@/api/personnelManagement/onboarding.js";
import {ElMessageBox} from "element-plus";
import dayjs from "dayjs";
import { getToken } from "@/utils/auth.js";
const data = reactive({
  searchForm: {
@@ -111,7 +155,7 @@
  },
  {
    label: "岗位",
    prop: "postJob",
    prop: "deptPositionName",
  },
  {
    label: "现住址",
@@ -186,6 +230,21 @@
});
const formDia = ref()
const { proxy } = getCurrentInstance()
const upload = reactive({
  // 是否显示弹出层(人员入职导入)
  open: false,
  // 弹出层标题(人员入职导入)
  title: "",
  // 是否禁用上传
  isUploading: false,
  // 是否更新已经存在的用户数据
  updateSupport: 1,
  // 设置上传的请求头部
  headers: { Authorization: "Bearer " + getToken() },
  // 上传的地址
  url: import.meta.env.VITE_APP_BASE_API + "/staff/staffJoinLeaveRecord/import",
});
const handleDateChange = (value,type) => {
  searchForm.value.entryDateEnd = null
@@ -272,6 +331,36 @@
        proxy.$modal.msg("已取消");
      });
};
/** 导入按钮操作 */
function handleImport() {
  upload.title = "人员入职导入";
  upload.open = true;
}
/** 下载模板操作 */
function importTemplate() {
  proxy.download("/staff/staffJoinLeaveRecord/importTemplate", {}, "人员入职模板.xlsx");
}
/** 提交上传文件 */
function submitFileForm() {
  proxy.$refs["uploadRef"].submit();
}
/**文件上传中处理 */
const handleFileUploadProgress = (event, file, fileList) => {
  upload.isUploading = true;
};
/** 文件上传成功处理 */
const handleFileSuccess = (response, file, fileList) => {
  upload.open = false;
  upload.isUploading = false;
  proxy.$refs["uploadRef"].handleRemove(file);
  getList();
};
onMounted(() => {
  getList();
});