ren
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<el-dialog v-model="dialogEmptyFromVisible" title="教职工信息导出" width="80%">
|
||||
<el-form style="margin-left: 7px" :inline="true">
|
||||
<el-form :inline="true" label-width="100px" style="margin-bottom: 20px;">
|
||||
<el-form-item>
|
||||
<el-tag>导出教职工人数,依据'职工信息'页面检索条件,如部门,职称等级等条件</el-tag>
|
||||
<el-tag type="warning">*请在'职工信息'页面点击搜索后,再点开当前导出页面</el-tag>
|
||||
<el-tag type="info">导出依据"职工信息"页面的检索条件</el-tag>
|
||||
<el-tag type="warning" style="margin-left: 10px;">请在搜索后再打开导出页面</el-tag>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否退休">
|
||||
<el-select
|
||||
@@ -11,7 +11,7 @@
|
||||
filterable
|
||||
reserve-keyword
|
||||
clearable
|
||||
>
|
||||
style="width: 200px;">
|
||||
<el-option
|
||||
v-for="item in YES_OR_NO"
|
||||
:key="item.value"
|
||||
@@ -25,52 +25,54 @@
|
||||
type="primary"
|
||||
@click="exportTeacherInfo"
|
||||
:loading="exportLoading"
|
||||
size="small">导出</el-button>
|
||||
:icon="Download">导出</el-button>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
||||
<!-- 基本信息 -->
|
||||
<div class="div_stuData" style="margin-bottom: 5px;margin-top: 5px;">基础信息
|
||||
<el-checkbox v-model="allCheckTeacherBaseInfo" style="margin-left:20px">全选</el-checkbox>
|
||||
</div>
|
||||
<el-tabs type="border-card" tab-position="left">
|
||||
<el-form ref="baseForm" label-width="120px">
|
||||
<el-row>
|
||||
<el-checkbox-group v-model="checkedTeacherBaseInfo">
|
||||
<el-checkbox v-for="(item,index) in teacherBasicCheckData" :label="item.value" :key="index">{{item.label}}</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-tabs>
|
||||
<!-- 基础信息 -->
|
||||
<el-card shadow="never" style="margin-bottom: 20px;">
|
||||
<template #header>
|
||||
<div style="display: flex; justify-content: space-between; align-items: center;">
|
||||
<span>基础信息</span>
|
||||
<el-checkbox v-model="allCheckTeacherBaseInfo">全选</el-checkbox>
|
||||
</div>
|
||||
</template>
|
||||
<el-checkbox-group v-model="checkedTeacherBaseInfo">
|
||||
<el-checkbox v-for="(item, index) in teacherBasicCheckData" :label="item.value" :key="index" style="margin-right: 20px; margin-bottom: 10px;">
|
||||
{{item.label}}
|
||||
</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-card>
|
||||
|
||||
<!-- 岗位信息 -->
|
||||
<div class="div_stuData" style="margin-bottom: 5px;margin-top: 5px;">岗位信息
|
||||
<el-checkbox v-model="allCheckStationInfo">全选</el-checkbox>
|
||||
</div>
|
||||
<el-tabs type="border-card" tab-position="left">
|
||||
<el-form ref="baseForm" label-width="120px">
|
||||
<el-row>
|
||||
<el-checkbox-group v-model="checkedTeacherStationInfo">
|
||||
<el-checkbox v-for="(item, index) in teacherStationData" :key="index" :label="item.value">{{item.label}}</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-tabs>
|
||||
<!-- 岗位信息 -->
|
||||
<el-card shadow="never" style="margin-bottom: 20px;">
|
||||
<template #header>
|
||||
<div style="display: flex; justify-content: space-between; align-items: center;">
|
||||
<span>岗位信息</span>
|
||||
<el-checkbox v-model="allCheckStationInfo">全选</el-checkbox>
|
||||
</div>
|
||||
</template>
|
||||
<el-checkbox-group v-model="checkedTeacherStationInfo">
|
||||
<el-checkbox v-for="(item, index) in teacherStationData" :key="index" :label="item.value" style="margin-right: 20px; margin-bottom: 10px;">
|
||||
{{item.label}}
|
||||
</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-card>
|
||||
|
||||
<!-- 其他 -->
|
||||
<div class="div_stuData" style="margin-bottom: 5px;margin-top: 5px;">其他
|
||||
<el-checkbox v-model="allCheckedother" style="margin-left: 20px">全选</el-checkbox>
|
||||
</div>
|
||||
<el-tabs type="border-card" tab-position="left">
|
||||
<el-form ref="baseForm" label-width="120px">
|
||||
<el-row>
|
||||
<el-checkbox-group v-model="checkedTeacherOtherInfo">
|
||||
<el-checkbox v-for="(item, index) in teacherOtherData" :key="index" :label="item.value">{{item.label}}</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-tabs>
|
||||
<!-- 其他 -->
|
||||
<el-card shadow="never">
|
||||
<template #header>
|
||||
<div style="display: flex; justify-content: space-between; align-items: center;">
|
||||
<span>其他</span>
|
||||
<el-checkbox v-model="allCheckedother">全选</el-checkbox>
|
||||
</div>
|
||||
</template>
|
||||
<el-checkbox-group v-model="checkedTeacherOtherInfo">
|
||||
<el-checkbox v-for="(item, index) in teacherOtherData" :key="index" :label="item.value" style="margin-right: 20px; margin-bottom: 10px;">
|
||||
{{item.label}}
|
||||
</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-card>
|
||||
|
||||
</el-dialog>
|
||||
|
||||
@@ -79,6 +81,7 @@
|
||||
<script setup lang="ts">
|
||||
import { ref, watch } from 'vue'
|
||||
import { ElNotification } from 'element-plus'
|
||||
import { Download } from '@element-plus/icons-vue'
|
||||
import global from '/@/components/tools/commondict.vue'
|
||||
import request from '/@/utils/request'
|
||||
|
||||
@@ -250,5 +253,4 @@
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
||||
@@ -1,39 +1,46 @@
|
||||
<template>
|
||||
<el-dialog v-model="visible" title="导入" width="80%" append-to-body>
|
||||
<el-row>
|
||||
<el-col>
|
||||
<a href="excel/dictlist.xlsx" rel="external nofollow" download="职工信息字典下载">
|
||||
<el-button style="margin-left: 20px" size="small" type="success">职工信息字典下载</el-button>
|
||||
</a>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-tag>导入时,部分字段需严格按照字典值填写</el-tag>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-dialog v-model="visible" title="导入职工信息" width="600" append-to-body>
|
||||
<el-alert
|
||||
type="warning"
|
||||
:closable="false"
|
||||
show-icon
|
||||
style="margin-bottom: 20px;">
|
||||
<template #title>
|
||||
<span>导入前请先下载字典文件,部分字段需严格按照字典值填写</span>
|
||||
</template>
|
||||
</el-alert>
|
||||
|
||||
<el-row>
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
action="/professional/file/importTeacherInfoSimple"
|
||||
:headers="headers"
|
||||
:accept="'.xls,.xlsx'"
|
||||
:on-success="handleUploadSuccess"
|
||||
:on-error="handleAvatarError"
|
||||
list-type="picture">
|
||||
<el-button size="small" type="primary">点击上传</el-button>
|
||||
<template #tip>
|
||||
<div class="el-upload__tip">只能上传后缀为xls,xlsx的文件</div>
|
||||
</template>
|
||||
</el-upload>
|
||||
</el-row>
|
||||
<div style="text-align: center; margin-bottom: 20px;">
|
||||
<a href="excel/dictlist.xlsx" rel="external nofollow" download="职工信息字典下载" style="text-decoration: none;">
|
||||
<el-button type="success" :icon="Download">下载字典文件</el-button>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
action="/professional/file/importTeacherInfoSimple"
|
||||
:headers="headers"
|
||||
:accept="'.xls,.xlsx'"
|
||||
:on-success="handleUploadSuccess"
|
||||
:on-error="handleAvatarError"
|
||||
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">
|
||||
只能上传 .xls 或 .xlsx 格式的 Excel 文件
|
||||
</div>
|
||||
</template>
|
||||
</el-upload>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, computed } from 'vue'
|
||||
import { ElNotification } from 'element-plus'
|
||||
import { Download, UploadFilled } from '@element-plus/icons-vue'
|
||||
import { Session } from '/@/utils/storage'
|
||||
|
||||
// 响应式数据
|
||||
@@ -77,6 +84,10 @@
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.upload-demo {
|
||||
:deep(.el-upload-dragger) {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1940,7 +1940,7 @@
|
||||
return [
|
||||
{
|
||||
command: 'export',
|
||||
label: '导出',
|
||||
label: '导出信息',
|
||||
icon: Download,
|
||||
visible: () => permissions.value.professional_teacherbase_export
|
||||
},
|
||||
|
||||
@@ -2,20 +2,15 @@
|
||||
<el-dialog v-model="dialogVisible" width="600" :title="waitShenheForm.title" append-to-body>
|
||||
<!--人员调动-->
|
||||
<el-form v-if="waitShenheForm.isPersonnelTransfer" ref="stationChangeFormRef" :model="waitShenheForm.form" :rules="stationChangeRules" label-width="120px">
|
||||
<el-form-item label="工号">
|
||||
<el-tag>{{waitShenheForm.form.teacherNo}}</el-tag>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="姓名">
|
||||
<el-tag>{{waitShenheForm.form.realName}}</el-tag>
|
||||
<el-form-item label="工号 / 姓名">
|
||||
<el-tag>{{waitShenheForm.form.teacherNo}} - {{waitShenheForm.form.realName}}</el-tag>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="原部门名称">
|
||||
<el-tag disabled>{{waitShenheForm.form.deptName}}</el-tag>
|
||||
<el-input v-model="waitShenheForm.form.deptName" disabled />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="现二级部门" prop="newDeptCode">
|
||||
<el-select v-model="newSecDeptCode" @change="getDeptListByParent" placeholder="请选择二级部门" style="width: 100%">
|
||||
<el-select v-model="newSecDeptCode" @change="getDeptListByParent" placeholder="请选择二级部门">
|
||||
<el-option v-for="item in secDeptList"
|
||||
:key="item.deptCode"
|
||||
:label="item.deptName"
|
||||
@@ -68,12 +63,8 @@
|
||||
</el-form>
|
||||
<!--党员调动-->
|
||||
<el-form v-if="waitShenheForm.isPartyTransfer" ref="partChangeFormRef" :model="waitShenheForm.form" :rules="partChangeRules" label-width="120px">
|
||||
<el-form-item label="工号">
|
||||
<el-tag>{{waitShenheForm.form.teacherNo}}</el-tag>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="用户名">
|
||||
<el-tag>{{waitShenheForm.form.realName}}</el-tag>
|
||||
<el-form-item label="工号 / 用户名">
|
||||
<el-tag>{{waitShenheForm.form.teacherNo}} - {{waitShenheForm.form.realName}}</el-tag>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="原支部名">
|
||||
@@ -113,7 +104,7 @@
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="备注" prop="remarks">
|
||||
<el-input v-model="waitShenheForm.form.remarks" placeholder="请输入备注" />
|
||||
<el-input v-model="waitShenheForm.form.remarks" type="textarea" :rows="3" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
@@ -127,7 +118,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive } from 'vue'
|
||||
import { ref, reactive, nextTick } from 'vue'
|
||||
import { useMessage, useMessageBox } from '/@/hooks/message'
|
||||
import { getAllInfoAboutList } from '/@/api/professional/professionaluser/teacherbase'
|
||||
import { getDeptListByLevelTwo, getDeptListByParent as getDeptListByParentApi } from '/@/api/basic/basicdept'
|
||||
@@ -177,15 +168,15 @@
|
||||
|
||||
// 人员调动验证规则
|
||||
const stationChangeRules = {
|
||||
newDeptCode: [{ required: true, message: '请选择要调入的二级部门', trigger: 'change' }],
|
||||
changeDate: [{ required: true, message: '请选择调令日期', trigger: 'change' }],
|
||||
pos: [{ required: true, message: '请选择岗位类型', trigger: 'change' }]
|
||||
newDeptCode: [{ required: true, message: '请选择要调入的二级部门', trigger: 'blur' }],
|
||||
changeDate: [{ required: true, message: '请选择调令日期', trigger: 'blur' }],
|
||||
pos: [{ required: true, message: '请选择岗位类型', trigger: 'blur' }]
|
||||
}
|
||||
|
||||
// 党员调动验证规则
|
||||
const partChangeRules = {
|
||||
branchName: [{ required: true, message: '请选择现支部', trigger: 'change' }],
|
||||
changeTime: [{ required: true, message: '请选择变动时间', trigger: 'change' }]
|
||||
branchName: [{ required: true, message: '请选择现支部', trigger: 'blur' }],
|
||||
changeTime: [{ required: true, message: '请选择变动时间', trigger: 'blur' }]
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -273,6 +264,7 @@
|
||||
waitShenheForm.title = "人员调动"
|
||||
waitShenheForm.isPersonnelTransfer = true
|
||||
waitShenheForm.form = { ...props.nowRow }
|
||||
waitShenheForm.form.id = ''
|
||||
waitShenheForm.form.newDeptCodeList = []
|
||||
waitShenheForm.form.deptCodeList = []
|
||||
newSecDeptCode.value = ''
|
||||
@@ -281,6 +273,10 @@
|
||||
getDeptListByLevelTwo().then((res: any) => {
|
||||
secDeptList.value = res.data || []
|
||||
dialogVisible.value = true
|
||||
// 弹窗打开后,清除表单验证状态,避免立即显示验证提示
|
||||
nextTick(() => {
|
||||
stationChangeFormRef.value?.clearValidate()
|
||||
})
|
||||
})
|
||||
} else if (val === FORM_TYPE.PARTY_TRANSFER) {
|
||||
// 党员调动:设置原支部
|
||||
@@ -291,6 +287,10 @@
|
||||
waitShenheForm.form.realName = waitShenheForm.form.userName || waitShenheForm.form.realName
|
||||
waitShenheForm.form.oldBranchName = waitShenheForm.form.oldBranchId
|
||||
dialogVisible.value = true
|
||||
// 弹窗打开后,清除表单验证状态,避免立即显示验证提示
|
||||
nextTick(() => {
|
||||
partChangeFormRef.value?.clearValidate()
|
||||
})
|
||||
}
|
||||
}
|
||||
/**
|
||||
@@ -312,12 +312,8 @@
|
||||
|
||||
const formRef = formRefMap[val]
|
||||
|
||||
// 人员调动:需要选择部门
|
||||
// 人员调动:在验证前同步数据
|
||||
if (val === FORM_TYPE.PERSONNEL_TRANSFER) {
|
||||
if (!newSecDeptCode.value) {
|
||||
message.info("请选择要调入的部门")
|
||||
return
|
||||
}
|
||||
waitShenheForm.form.newDeptCode = newSecDeptCode.value
|
||||
waitShenheForm.form.newSecDeptCode = newSecChildDeptCode.value || newSecDeptCode.value
|
||||
}
|
||||
@@ -331,8 +327,16 @@
|
||||
}
|
||||
}
|
||||
|
||||
// 先确认,用户取消时不执行后续操作
|
||||
try {
|
||||
await messageBox.confirm('确认提交?')
|
||||
} catch (err: any) {
|
||||
// 用户取消操作,直接返回,不显示错误提示
|
||||
return
|
||||
}
|
||||
|
||||
// 用户确认后,执行提交操作
|
||||
try {
|
||||
let res: any
|
||||
|
||||
if (val === FORM_TYPE.PERSONNEL_TRANSFER) {
|
||||
|
||||
Reference in New Issue
Block a user