feat(user): 新增员工档案管理视图组件
- 添加包含个人基本信息、工作经历、体检信息等多个详细信息模块
- 实现头像上传及展示功能,支持点击上传照片
- 打造多标签导航,支持快速切换查看不同信息内容
- 集成多表格展示,支持分页、排序及数据选择事件
- 支持导出员工档案为PDF功能
- 各表格列添加格式化显示与自定义事件处理
- 细化表单字段控件,包括输入框、选择器、日期选择器等
- 增强用户体验,表单根据权限动态禁用或启用编辑
- 配置环境变量支持生产环境基础API路径设置
| | |
| | | ENV = 'production' |
| | | |
| | | # base api |
| | | VUE_APP_BASE_API = 'http://120.24.23.155:8301/' |
| | | VUE_APP_BASE_API = '/api/' |
| | | |
| | |
| | | worker_processes auto; |
| | | |
| | | error_log /var/log/nginx/error.log; |
| | | pid /run/nginx.pid; |
| | | worker_processes 1; |
| | | |
| | | events { |
| | | worker_connections 1024; |
| | |
| | | http { |
| | | include mime.types; |
| | | default_type application/octet-stream; |
| | | |
| | | server_names_hash_bucket_size 512; |
| | | client_header_buffer_size 32k; |
| | | large_client_header_buffers 4 32k; |
| | | client_max_body_size 50m; |
| | | |
| | | sendfile on; |
| | | tcp_nopush on; |
| | | keepalive_timeout 65; |
| | | |
| | | keepalive_timeout 60; |
| | | tcp_nodelay on; |
| | | # 当后端连接数达到上限时,新请求将进入队列等待 |
| | | proxy_connect_timeout 5s; |
| | | # 限制每个后端 Worker 的队列长度 |
| | | limit_conn_zone $server_name zone=conn_zone:10m; |
| | | limit_conn conn_zone 10; |
| | | |
| | | fastcgi_connect_timeout 300; |
| | | fastcgi_send_timeout 300; |
| | | fastcgi_read_timeout 300; |
| | | fastcgi_buffer_size 64k; |
| | | fastcgi_buffers 4 64k; |
| | | fastcgi_busy_buffers_size 128k; |
| | | fastcgi_temp_file_write_size 256k; |
| | | fastcgi_intercept_errors on; |
| | | # ========== 你的域名配置(直接写在 http 内部)========== |
| | | |
| | | gzip on; |
| | | gzip_min_length 1k; |
| | | gzip_buffers 16 8k; |
| | | gzip_http_version 1.1; |
| | | gzip_comp_level 6; |
| | | gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml; |
| | | gzip_vary on; |
| | | gzip_proxied expired no-cache no-store private auth; |
| | | gzip_disable "MSIE [1-6]\."; |
| | | |
| | | limit_conn_zone $binary_remote_addr zone=perip:10m; |
| | | limit_conn_zone $server_name zone=perserver:10m; |
| | | |
| | | server_tokens off; |
| | | access_log off; |
| | | |
| | | |
| | | # HTTP 重定向 |
| | | server { |
| | | listen 80; |
| | | server_name localhost; |
| | | server_name zbyt.esunsail.com; |
| | | return 301 https://$server_name$request_uri; |
| | | } |
| | | |
| | | # HTTPS 配置 |
| | | server { |
| | | listen 443 ssl; |
| | | http2 on; |
| | | server_name zbyt.esunsail.com; |
| | | |
| | | ssl_certificate C:/inetpub/win-acme/certs/zbyt.esunsail.com/zbyt.esunsail.com.pem; |
| | | ssl_certificate_key C:/inetpub/win-acme/certs/zbyt.esunsail.com/zbyt.esunsail.com.key; |
| | | |
| | | ssl_protocols TLSv1.2 TLSv1.3; |
| | | # ssl_ciphers HIGH:!aNULL:!MD5; |
| | | ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:...'; # 使用较新的套件 |
| | | ssl_prefer_server_ciphers on; |
| | | ssl_session_cache shared:SSL:10m; # 10M共享内存,可存储约8万个会话 |
| | | ssl_session_timeout 10m; |
| | | ssl_session_tickets on; |
| | | |
| | | charset utf-8; |
| | | access_log logs/zbyt.esunsail.com.access.log; |
| | | error_log logs/zbyt.esunsail.com.error.log; |
| | | |
| | | location / { |
| | | root html; |
| | | index index.html index.htm; |
| | | proxy_pass http://127.0.0.1:8000; |
| | | proxy_set_header Host $host; |
| | | proxy_set_header X-Real-IP $remote_addr; |
| | | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
| | | proxy_set_header X-Forwarded-Proto $scheme; |
| | | proxy_connect_timeout 60s; |
| | | proxy_send_timeout 60s; |
| | | proxy_read_timeout 60s; |
| | | } |
| | | location = /50x.html { |
| | | root html; |
| | | |
| | | location /api/ { |
| | | proxy_pass http://127.0.0.1:8301/; |
| | | proxy_set_header Host $host; |
| | | proxy_set_header X-Real-IP $remote_addr; |
| | | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
| | | proxy_set_header X-Forwarded-Proto $scheme; |
| | | proxy_connect_timeout 30s; |
| | | proxy_send_timeout 30s; |
| | | proxy_read_timeout 30s; |
| | | proxy_no_cache 1; |
| | | proxy_cache_bypass 1; |
| | | add_header Cache-Control "no-cache, no-store, must-revalidate"; |
| | | |
| | | # 允许上传最大100MB的文件 |
| | | client_max_body_size 100m; |
| | | } |
| | | |
| | | location /health { |
| | | access_log off; |
| | | return 200 "OK\n"; |
| | | add_header Content-Type text/plain; |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | // 获取所有字典项 |
| | | export function getAllDicitemsAll() { |
| | | return request({ |
| | | url: 'system/dicItem/getAllDicitemsAll', |
| | | method: 'get' |
| | | }) |
| | | } |
| | |
| | | // 获取令牌时,请求头信息(Basic Base64.encode(client_id:client_secret)) |
| | | authorizationValue: 'Basic ZmViczoxMjM0NTY=', |
| | | // 社交登录后台地址 |
| | | socialLoginUrl: 'http://localhost:8301/auth/social/login', |
| | | socialLoginUrl: '/api/auth/social/login', |
| | | // 请替换为您的实际地址 |
| | | pages: { |
| | | // FEBS-Admin 控制台地址 |
| | | springBootAdminUrl: 'http://localhost:8401/login', |
| | | springBootAdminUrl: 'http://120.24.23.155:8401/login', |
| | | // kibana 控制台地址 |
| | | kibanaUrl: 'http://localhost:5601', |
| | | kibanaUrl: 'http://120.24.23.155:5601', |
| | | // nacos 控制台地址 |
| | | nacosUrl: 'http://localhost:8001/nacos', |
| | | nacosUrl: 'http://120.24.23.155:8001/nacos', |
| | | // skywalking地址 |
| | | skywalkingUrl: 'http://localhost:8080/', |
| | | skywalkingUrl: 'http://120.24.23.155:8080/', |
| | | // 文档中心 |
| | | docUrl: 'http://localhost:8301/doc.html', |
| | | docUrl: '/api/doc.html', |
| | | // Granfana控制台 |
| | | grafanaUrl: 'http://localhost:8404/', |
| | | grafanaUrl: 'http://120.24.23.155:8404/', |
| | | // tx-manager控制台 |
| | | txUrl: 'http://localhost:8501/admin/index.html#/login', |
| | | txUrl: 'http://120.24.23.155:8501/admin/index.html#/login', |
| | | // 文件上传地址 |
| | | filesUploadUrl: 'http://localhost:8301/hr/filesUpload', |
| | | filesUploadUrl: '/api/hr/filesUpload', |
| | | // 个人文件上传地址 |
| | | uploadSinglePath: 'http://localhost:8301/hr/empAccessory', |
| | | uploadSinglePath: '/api/hr/empAccessory', |
| | | // 个人文件上传地址 |
| | | getEmpBaseInfoImage: 'http://localhost:8301/hr/empBaseInfo/image/', |
| | | getEmpBaseInfoImage: '/api/hr/empBaseInfo/image/', |
| | | // 下载员工导入模版 |
| | | downloadEmpExcel: 'http://localhost:8000/员工信息.xls', |
| | | downloadEmpExcel: 'http://120.24.23.155:8000/员工信息.xls', |
| | | // 导入员工 |
| | | uploadEmpExcel: 'http://localhost:8301/hr/empBaseInfo/importEmp', |
| | | // 获取图片 |
| | | getFilesUploadImage: 'http://localhost:8301/hr/filesUpload/image/', |
| | | // 获取图片 |
| | | getAccessoryImage: 'http://localhost:8301/hr/empAccessory/image/' |
| | | uploadEmpExcel: '/api/hr/empBaseInfo/importEmp', |
| | | // 获取图片(使用相对路径通过API代理,避免Mixed Content问题) |
| | | getFilesUploadImage: '/api/hr/filesUpload/image/', |
| | | // 获取图片(使用相对路径通过API代理,避免Mixed Content问题) |
| | | getAccessoryImage: '/api/hr/empAccessory/image/' |
| | | } |
| | | } |
| | |
| | | // 获取令牌时,请求头信息(Basic Base64.encode(client_id:client_secret)) |
| | | authorizationValue: 'Basic ZmViczoxMjM0NTY=', |
| | | // 社交登录后台地址 |
| | | socialLoginUrl: 'http://120.24.23.155:8301/auth/social/login', |
| | | socialLoginUrl: 'http://localhost:8301/auth/social/login', |
| | | // 请替换为您的实际地址 |
| | | pages: { |
| | | // FEBS-Admin 控制台地址 |
| | | springBootAdminUrl: 'http://120.24.23.155:8401/login', |
| | | springBootAdminUrl: 'http://localhost:8401/login', |
| | | // kibana 控制台地址 |
| | | kibanaUrl: 'http://120.24.23.155:5601', |
| | | kibanaUrl: 'http://localhost:5601', |
| | | // nacos 控制台地址 |
| | | nacosUrl: 'http://120.24.23.155:8001/nacos', |
| | | nacosUrl: 'http://localhost:8001/nacos', |
| | | // skywalking地址 |
| | | skywalkingUrl: 'http://120.24.23.155:8080/', |
| | | skywalkingUrl: 'http://localhost:8080/', |
| | | // 文档中心 |
| | | docUrl: 'http://120.24.23.155:8301/doc.html', |
| | | docUrl: 'http://localhost:8301/doc.html', |
| | | // Granfana控制台 |
| | | grafanaUrl: 'http://120.24.23.155:8404/', |
| | | grafanaUrl: 'http://localhost:8404/', |
| | | // tx-manager控制台 |
| | | txUrl: 'http://120.24.23.155:8501/admin/index.html#/login', |
| | | txUrl: 'http://localhost:8501/admin/index.html#/login', |
| | | // 文件上传地址 |
| | | filesUploadUrl: 'http://120.24.23.155:8301/hr/filesUpload', |
| | | filesUploadUrl: 'http://localhost:8301/hr/filesUpload', |
| | | // 个人文件上传地址 |
| | | uploadSinglePath: 'http://120.24.23.155:8301/hr/empAccessory', |
| | | uploadSinglePath: 'http://localhost:8301/hr/empAccessory', |
| | | // 个人文件上传地址 |
| | | getEmpBaseInfoImage: 'http://120.24.23.155:8301/hr/empBaseInfo/image/', |
| | | getEmpBaseInfoImage: 'http://localhost:8301/hr/empBaseInfo/image/', |
| | | // 下载员工导入模版 |
| | | downloadEmpExcel: 'http://120.24.23.155:8000/员工信息.xls', |
| | | downloadEmpExcel: 'http://localhost:8000/员工信息.xls', |
| | | // 导入员工 |
| | | uploadEmpExcel: 'http://120.24.23.155:8301/hr/empBaseInfo/importEmp', |
| | | uploadEmpExcel: 'http://localhost:8301/hr/empBaseInfo/importEmp', |
| | | // 获取图片 |
| | | getFilesUploadImage: 'http://120.24.23.155:8301/hr/filesUpload/image/', |
| | | getFilesUploadImage: 'http://localhost:8301/hr/filesUpload/image/', |
| | | // 获取图片 |
| | | getAccessoryImage: 'http://120.24.23.155:8301/hr/empAccessory/image/' |
| | | getAccessoryImage: 'http://localhost:8301/hr/empAccessory/image/' |
| | | } |
| | | } |
| New file |
| | |
| | | module.exports = { |
| | | title: '中保亚太人力资源管理系统', |
| | | // 获取令牌时,请求头信息(Basic Base64.encode(client_id:client_secret)) |
| | | authorizationValue: 'Basic ZmViczoxMjM0NTY=', |
| | | // 社交登录后台地址 |
| | | socialLoginUrl: '/api/auth/social/login', |
| | | // 请替换为您的实际地址 |
| | | pages: { |
| | | // FEBS-Admin 控制台地址 |
| | | springBootAdminUrl: 'http://120.24.23.155:8401/login', |
| | | // kibana 控制台地址 |
| | | kibanaUrl: 'http://120.24.23.155:5601', |
| | | // nacos 控制台地址 |
| | | nacosUrl: 'http://120.24.23.155:8001/nacos', |
| | | // skywalking地址 |
| | | skywalkingUrl: 'http://120.24.23.155:8080/', |
| | | // 文档中心 |
| | | docUrl: '/api/doc.html', |
| | | // Granfana控制台 |
| | | grafanaUrl: 'http://120.24.23.155:8404/', |
| | | // tx-manager控制台 |
| | | txUrl: 'http://120.24.23.155:8501/admin/index.html#/login', |
| | | // 文件上传地址 |
| | | filesUploadUrl: '/api/hr/filesUpload', |
| | | // 个人文件上传地址 |
| | | uploadSinglePath: '/api/hr/empAccessory', |
| | | // 个人文件上传地址 |
| | | getEmpBaseInfoImage: '/api/hr/empBaseInfo/image/', |
| | | // 下载员工导入模版 |
| | | downloadEmpExcel: 'http://120.24.23.155:8000/员工信息.xls', |
| | | // 导入员工 |
| | | uploadEmpExcel: '/api/hr/empBaseInfo/importEmp', |
| | | // 获取图片 |
| | | getFilesUploadImage: '/api/hr/filesUpload/image/', |
| | | // 获取图片 |
| | | getAccessoryImage: '/api/hr/empAccessory/image/' |
| | | } |
| | | } |
| New file |
| | |
| | | import { getAllDicitemsAll } from '@/api/data' |
| | | import db from '@/utils/localstorage' |
| | | |
| | | const DICT_STORAGE_KEY = 'ALL_DICT_DATA' |
| | | |
| | | // 从 localStorage 恢复字典数据 |
| | | const restoreDictFromStorage = () => { |
| | | return db.get(DICT_STORAGE_KEY, []) |
| | | } |
| | | |
| | | const state = { |
| | | allDictData: restoreDictFromStorage(), |
| | | dictLoaded: restoreDictFromStorage().length > 0, |
| | | loading: false // 添加 loading 锁,防止并发请求 |
| | | } |
| | | |
| | | const mutations = { |
| | | SET_ALL_DICT_DATA(state, data) { |
| | | state.allDictData = data |
| | | state.dictLoaded = true |
| | | // 持久化到 localStorage |
| | | db.save(DICT_STORAGE_KEY, data) |
| | | }, |
| | | SET_LOADING(state, loading) { |
| | | state.loading = loading |
| | | } |
| | | } |
| | | |
| | | const actions = { |
| | | // 获取所有字典数据 |
| | | async LoadAllDicts({ commit, state }) { |
| | | // 已加载直接返回 |
| | | if (state.dictLoaded && state.allDictData.length > 0) { |
| | | return state.allDictData |
| | | } |
| | | // 如果正在加载中,等待加载完成 |
| | | if (state.loading) { |
| | | // 轮询等待加载完成 |
| | | return new Promise((resolve) => { |
| | | const checkLoaded = setInterval(() => { |
| | | if (!state.loading && state.dictLoaded) { |
| | | clearInterval(checkLoaded) |
| | | resolve(state.allDictData) |
| | | } |
| | | }, 100) |
| | | }) |
| | | } |
| | | // 开始加载 |
| | | commit('SET_LOADING', true) |
| | | try { |
| | | const response = await getAllDicitemsAll() |
| | | const data = response || [] |
| | | commit('SET_ALL_DICT_DATA', data) |
| | | return data |
| | | } catch (error) { |
| | | console.error('加载字典数据失败:', error) |
| | | return [] |
| | | } finally { |
| | | commit('SET_LOADING', false) |
| | | } |
| | | } |
| | | } |
| | | |
| | | const getters = { |
| | | // 根据类型获取字典 |
| | | getDictByType: (state) => (dictType) => { |
| | | // console.log('dicType=', dictType) |
| | | // console.log('data', state.allDictData) |
| | | return state.allDictData.filter(item => item.dicCode === dictType) |
| | | }, |
| | | // 获取所有字典数据 |
| | | allDictData: state => state.allDictData, |
| | | // 是否已加载 |
| | | dictLoaded: state => state.dictLoaded |
| | | } |
| | | |
| | | export default { |
| | | namespaced: true, |
| | | state, |
| | | mutations, |
| | | actions, |
| | | getters |
| | | } |
| New file |
| | |
| | | import { mapGetters } from 'vuex' |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | // 字典选项数据 |
| | | dictOptions: {} |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapGetters('dict', ['getDictByType', 'dictLoaded']) |
| | | }, |
| | | methods: { |
| | | // 初始化指定类型的字典 - 直接从 Vuex 获取,不再发起请求 |
| | | // 字典数据已在登录时预加载到 Vuex 和 localStorage |
| | | initDictTypes(dictTypes) { |
| | | dictTypes.forEach(type => { |
| | | this.$set(this.dictOptions, type, this.getDictByType(type)) |
| | | }) |
| | | }, |
| | | |
| | | // 获取指定类型的字典选项 |
| | | getDictOptions(dictType) { |
| | | return this.dictOptions[dictType] || [] |
| | | } |
| | | } |
| | | } |
| | |
| | | return tansParams(params) |
| | | }], |
| | | headers: { |
| | | 'Authorization': authorizationValue |
| | | 'Authorization': authorizationValue, |
| | | 'Content-Type': 'application/x-www-form-urlencoded' |
| | | } |
| | | }) |
| | | }, |
| | |
| | | <script> |
| | | // 引用翻页组件 |
| | | import Pagination from '@/components/Pagination' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | |
| | | export default { |
| | | components: { |
| | | Pagination |
| | | }, |
| | | mixins: [dictMixin], |
| | | props: { |
| | | dialogVisible: { |
| | | type: Boolean, |
| | |
| | | size: 15, |
| | | num: 1 |
| | | }, |
| | | contractStatusOptions: [], |
| | | |
| | | list: [], // 给table显示的数据 |
| | | defaultProps: { |
| | | children: 'children', |
| | |
| | | // 是否为到期合同(number=12) |
| | | isExpireContract() { |
| | | return this.queryParams.number === '12' || this.queryParams.number === 12 |
| | | } |
| | | }, |
| | | // 字典选项计算属性 |
| | | contractStatusOptions() { return this.getDictOptions('CONTRACTSTATUS') } |
| | | }, |
| | | mounted() { |
| | | setTimeout(() => { |
| | | this.getDicts('CONTRACTSTATUS').then(response => { |
| | | this.contractStatusOptions = response.data |
| | | }) |
| | | }, 1000) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['CONTRACTSTATUS']) |
| | | }, |
| | | methods: { |
| | | contractStatusFormat(row, column) { |
| | |
| | | <script> |
| | | // 引用翻页组件 |
| | | import Pagination from '@/components/Pagination' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | export default { |
| | | components: { |
| | | Pagination |
| | | }, |
| | | mixins: [dictMixin], |
| | | props: { |
| | | dialogVisible: { |
| | | type: Boolean, |
| | |
| | | default: false |
| | | } |
| | | }, |
| | | |
| | | data() { |
| | | return { |
| | | gzdStateList: { |
| | |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'label' |
| | | }, |
| | | educationOptions: [], |
| | | nativePlaceOptions: [], |
| | | sexOptions: [], |
| | | empTypeOptions: [], |
| | | nationOptions: [] |
| | | } |
| | | // educationOptions: [], |
| | | // nativePlaceOptions: [], |
| | | // sexOptions: [], |
| | | // empTypeOptions: [], |
| | | // nationOptions: [] |
| | | } |
| | | }, |
| | | computed: { |
| | |
| | | get() { |
| | | return this.dialogVisible |
| | | } |
| | | } |
| | | }, |
| | | // 字典选项计算属性 |
| | | sexOptions() { return this.getDictOptions('sex') }, |
| | | empStatusOptions() { return this.getDictOptions('empStatus') }, |
| | | empTypeOptions() { return this.getDictOptions('EMPTYPE') }, |
| | | educationOptions() { return this.getDictOptions('EDUCATION') }, |
| | | nativePlaceOptions() { return this.getDictOptions('NATIVEPLACE') }, |
| | | nationOptions() { return this.getDictOptions('NATION') } |
| | | }, |
| | | mounted() { |
| | | setTimeout(() => { |
| | | this.getDicts('EDUCATION').then(response => { |
| | | this.educationOptions = response.data |
| | | }) |
| | | this.getDicts('NATIVEPLACE').then(response => { |
| | | this.nativePlaceOptions = response.data |
| | | }) |
| | | this.getDicts('sex').then(response => { |
| | | this.sexOptions = response.data |
| | | }) |
| | | this.getDicts('empType').then(response => { |
| | | this.empTypeOptions = response.data |
| | | }) |
| | | this.getDicts('NATION').then(response => { |
| | | this.nationOptions = response.data |
| | | }) |
| | | }, 1000) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['sex', 'empStatus', 'EMPTYPE', 'EDUCATION', 'NATIVEPLACE', 'NATION']) |
| | | }, |
| | | methods: { |
| | | educationFormat(row, column) { |
| | |
| | | size: 15, |
| | | num: 1 |
| | | }, |
| | | hospitalizatioFlagOptions: [], |
| | | settleStatusOptions: [], |
| | | // hospitalizatioFlagOptions: [], |
| | | // settleStatusOptions: [], |
| | | list: [], // 给table显示的数据 |
| | | defaultProps: { |
| | | children: 'children', |
| | |
| | | get() { |
| | | return this.dialogVisible |
| | | } |
| | | } |
| | | }, |
| | | // 字典选项计算属性 |
| | | hospitalizatioFlagOptions() { return this.getDictOptions('hospitalizatioFlag') }, |
| | | settleStatusOptions() { return this.getDictOptions('settleStatus') } |
| | | }, |
| | | mounted() { |
| | | setTimeout(() => { |
| | | this.getDicts('hospitalizatioFlag').then(response => { |
| | | this.hospitalizatioFlagOptions = response.data |
| | | }) |
| | | this.getDicts('settleStatus').then(response => { |
| | | this.settleStatusOptions = response.data |
| | | }) |
| | | }, 1000) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['settleStatus', 'hospitalizatioFlag']) |
| | | }, |
| | | methods: { |
| | | hospitalizatioFlagFormat(row, column) { |
| | |
| | | <script> |
| | | // 引用翻页组件 |
| | | import Pagination from '@/components/Pagination' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | |
| | | export default { |
| | | components: { |
| | | Pagination |
| | | }, |
| | | mixins: [dictMixin], |
| | | props: { |
| | | dialogVisible: { |
| | | type: Boolean, |
| | |
| | | size: 15, |
| | | num: 1 |
| | | }, |
| | | probationStatusOptions: [], |
| | | |
| | | list: [], // 给table显示的数据 |
| | | defaultProps: { |
| | | children: 'children', |
| | |
| | | get() { |
| | | return this.dialogVisible |
| | | } |
| | | } |
| | | }, |
| | | // 字典选项计算属性 |
| | | probationStatusOptions() { return this.getDictOptions('PROBATIONSTATUS') } |
| | | }, |
| | | mounted() { |
| | | setTimeout(() => { |
| | | this.getDicts('PROBATIONSTATUS').then(response => { |
| | | this.probationStatusOptions = response.data |
| | | }) |
| | | }, 1000) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['PROBATIONSTATUS']) |
| | | }, |
| | | methods: { |
| | | probationStatusFormat(row, column) { |
| | |
| | | <script> |
| | | // 引用翻页组件 |
| | | import Pagination from '@/components/Pagination' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | export default { |
| | | components: { |
| | | Pagination |
| | | }, |
| | | mixins: [dictMixin], |
| | | props: { |
| | | dialogVisible: { |
| | | type: Boolean, |
| | |
| | | default: false |
| | | } |
| | | }, |
| | | |
| | | data() { |
| | | return { |
| | | show: false, |
| | |
| | | size: 15, |
| | | num: 1 |
| | | }, |
| | | archivesStatusOptions: [], |
| | | arbitrationTypeOptions: [], |
| | | // archivesStatusOptions: [], |
| | | // arbitrationTypeOptions: [], |
| | | list: [], // 给table显示的数据 |
| | | defaultProps: { |
| | | children: 'children', |
| | |
| | | get() { |
| | | return this.dialogVisible |
| | | } |
| | | } |
| | | }, |
| | | // 字典选项计算属性 |
| | | archivesStatusOptions() { return this.getDictOptions('archivesStatus') }, |
| | | arbitrationTypeOptions() { return this.getDictOptions('ZCTYPE') } |
| | | }, |
| | | mounted() { |
| | | setTimeout(() => { |
| | | this.getDicts('ZCTYPE').then(response => { |
| | | this.arbitrationTypeOptions = response.data |
| | | }) |
| | | this.getDicts('archivesStatus').then(response => { |
| | | this.archivesStatusOptions = response.data |
| | | }) |
| | | }, 1000) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['archivesStatus', 'ZCTYPE']) |
| | | }, |
| | | methods: { |
| | | arbitrationTypeFormat(row, column) { |
| | |
| | | <script> |
| | | // 引用翻页组件 |
| | | import Pagination from '@/components/Pagination' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | export default { |
| | | components: { |
| | | Pagination |
| | | }, |
| | | mixins: [dictMixin], |
| | | props: { |
| | | dialogVisible: { |
| | | type: Boolean, |
| | |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'label' |
| | | }, |
| | | educationOptions: [], |
| | | nativePlaceOptions: [], |
| | | insuranceOptions: [], |
| | | sexOptions: [], |
| | | empTypeOptions: [], |
| | | nationOptions: [] |
| | | } |
| | | // educationOptions: [], |
| | | // nativePlaceOptions: [], |
| | | // insuranceOptions: [], |
| | | // sexOptions: [], |
| | | // empTypeOptions: [], |
| | | // nationOptions: [] |
| | | } |
| | | }, |
| | | computed: { |
| | |
| | | get() { |
| | | return this.dialogVisible |
| | | } |
| | | } |
| | | }, |
| | | // 字典选项计算属性 |
| | | sexOptions() { return this.getDictOptions('sex') }, |
| | | // empStatusOptions() { return this.getDictOptions('empStatus') }, |
| | | empTypeOptions() { return this.getDictOptions('EMPTYPE') }, |
| | | educationOptions() { return this.getDictOptions('EDUCATION') }, |
| | | nativePlaceOptions() { return this.getDictOptions('NATIVEPLACE') }, |
| | | insuranceTypeOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | nationOptions() { return this.getDictOptions('NATION') } |
| | | }, |
| | | mounted() { |
| | | this.getDicts('EDUCATION').then(response => { |
| | | this.educationOptions = response.data |
| | | }) |
| | | this.getDicts('NATIVEPLACE').then(response => { |
| | | this.nativePlaceOptions = response.data |
| | | }) |
| | | this.getDicts('sex').then(response => { |
| | | this.sexOptions = response.data |
| | | }) |
| | | this.getDicts('empType').then(response => { |
| | | this.empTypeOptions = response.data |
| | | }) |
| | | this.getDicts('NATION').then(response => { |
| | | this.nationOptions = response.data |
| | | }) |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceTypeOptions = response.data |
| | | }) |
| | | this.initDictTypes([ |
| | | 'sex', 'NATION', 'EMPTYPE', |
| | | 'EDUCATION', 'NATIVEPLACE', |
| | | 'INSURANCETYPE' |
| | | ]) |
| | | // this.getDicts('EDUCATION').then(response => { |
| | | // this.educationOptions = response.data |
| | | // }) |
| | | // this.getDicts('NATIVEPLACE').then(response => { |
| | | // this.nativePlaceOptions = response.data |
| | | // }) |
| | | // this.getDicts('sex').then(response => { |
| | | // this.sexOptions = response.data |
| | | // }) |
| | | // this.getDicts('empType').then(response => { |
| | | // this.empTypeOptions = response.data |
| | | // }) |
| | | // this.getDicts('NATION').then(response => { |
| | | // this.nationOptions = response.data |
| | | // }) |
| | | // this.getDicts('INSURANCETYPE').then(response => { |
| | | // this.insuranceTypeOptions = response.data |
| | | // }) |
| | | }, |
| | | methods: { |
| | | educationFormat(row, column) { |
| | |
| | | <script> |
| | | // 引用翻页组件 |
| | | import Pagination from '@/components/Pagination' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | export default { |
| | | components: { |
| | | Pagination |
| | | }, |
| | | mixins: [dictMixin], |
| | | props: { |
| | | dialogVisible: { |
| | | type: Boolean, |
| | |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'label' |
| | | }, |
| | | leaveTypeOptions: [] |
| | | } |
| | | // leaveTypeOptions: [] |
| | | } |
| | | }, |
| | | computed: { |
| | |
| | | get() { |
| | | return this.dialogVisible |
| | | } |
| | | } |
| | | }, |
| | | // 字典选项计算属性 |
| | | leaveTypeOptions() { return this.getDictOptions('LEAVETYPE') } |
| | | // empStatusOptions() { return this.getDictOptions('empStatus') }, |
| | | // empTypeOptions() { return this.getDictOptions('EMPTYPE') }, |
| | | // educationOptions() { return this.getDictOptions('EDUCATION') }, |
| | | // nativePlaceOptions() { return this.getDictOptions('NATIVEPLACE') }, |
| | | // insuranceTypeOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | // nationOptions() { return this.getDictOptions('NATION') } |
| | | }, |
| | | mounted() { |
| | | setTimeout(() => { |
| | | this.getDicts('LEAVETYPE').then(response => { |
| | | this.leaveTypeOptions = response.data |
| | | }) |
| | | }, 1000) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['LEAVETYPE']) |
| | | }, |
| | | methods: { |
| | | leaveTypeFormat(row, column) { |
| | |
| | | <script> |
| | | // 引用翻页组件 |
| | | import Pagination from '@/components/Pagination' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | export default { |
| | | components: { |
| | | Pagination |
| | | }, |
| | | mixins: [dictMixin], |
| | | props: { |
| | | dialogVisible: { |
| | | type: Boolean, |
| | |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'label' |
| | | }, |
| | | insuranceGaersOptions: [], |
| | | applayStatusOptions: [], |
| | | reportStatusOptions: [] |
| | | } |
| | | // insuranceGaersOptions: [], |
| | | // applayStatusOptions: [], |
| | | // reportStatusOptions: [] |
| | | } |
| | | }, |
| | | computed: { |
| | |
| | | get() { |
| | | return this.dialogVisible |
| | | } |
| | | } |
| | | }, |
| | | // 字典选项计算属性 |
| | | insuranceGaersOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | applayStatusOptions() { return this.getDictOptions('applayStatus') }, |
| | | reportStatusOptions() { return this.getDictOptions('reportStatus') } |
| | | }, |
| | | mounted() { |
| | | setTimeout(() => { |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceGaersOptions = response.data |
| | | }) |
| | | this.getDicts('applayStatus').then(response => { |
| | | this.applayStatusOptions = response.data |
| | | }) |
| | | this.getDicts('reportStatus').then(response => { |
| | | this.reportStatusOptions = response.data |
| | | }) |
| | | }, 1000) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['INSURANCETYPE', 'applayStatus', 'reportStatus']) |
| | | }, |
| | | methods: { |
| | | insuranceGaersFormat(row, column) { |
| | |
| | | <script> |
| | | // 引用翻页组件 |
| | | import Pagination from '@/components/Pagination' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | export default { |
| | | components: { |
| | | Pagination |
| | | }, |
| | | mixins: [dictMixin], |
| | | props: { |
| | | dialogVisible: { |
| | | type: Boolean, |
| | |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'label' |
| | | }, |
| | | changeTypeOptions: [] |
| | | } |
| | | // changeTypeOptions: [] |
| | | } |
| | | }, |
| | | computed: { |
| | |
| | | get() { |
| | | return this.dialogVisible |
| | | } |
| | | } |
| | | }, |
| | | // 字典选项计算属性 |
| | | changeTypeOptions() { return this.getDictOptions('changeType') } |
| | | }, |
| | | mounted() { |
| | | setTimeout(() => { |
| | | this.getDicts('changeType').then(response => { |
| | | this.changeTypeOptions = response.data |
| | | }) |
| | | }, 1000) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['changeType']) |
| | | }, |
| | | methods: { |
| | | changeTypeFormat(row, column) { |
| | |
| | | <script> |
| | | // 引用翻页组件 |
| | | import Pagination from '@/components/Pagination' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | export default { |
| | | components: { |
| | | Pagination |
| | | }, |
| | | mixins: [dictMixin], |
| | | props: { |
| | | dialogVisible: { |
| | | type: Boolean, |
| | |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'label' |
| | | }, |
| | | ecgOptions: [], |
| | | physicalExamTypeOptions: [] |
| | | } |
| | | // ecgOptions: [], |
| | | // physicalExamTypeOptions: [] |
| | | } |
| | | }, |
| | | computed: { |
| | |
| | | get() { |
| | | return this.dialogVisible |
| | | } |
| | | } |
| | | }, |
| | | // 字典选项计算属性 |
| | | physicalExamTypeOptions() { return this.getDictOptions('PHYSICALEXAMTYPE') }, |
| | | ecgOptions() { return this.getDictOptions('ECG') } |
| | | }, |
| | | mounted() { |
| | | setTimeout(() => { |
| | | this.getDicts('PHYSICALEXAMTYPE').then(response => { |
| | | this.physicalExamTypeOptions = response.data |
| | | }) |
| | | this.getDicts('ECG').then(response => { |
| | | this.ecgOptions = response.data |
| | | }) |
| | | }, 1000) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['PHYSICALEXAMTYPE', 'ECG']) |
| | | }, |
| | | methods: { |
| | | typeFormat(row, column) { |
| | |
| | | <script> |
| | | // 引用翻页组件 |
| | | import Pagination from '@/components/Pagination' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | export default { |
| | | components: { |
| | | Pagination |
| | | }, |
| | | mixins: [dictMixin], |
| | | props: { |
| | | dialogVisible: { |
| | | type: Boolean, |
| | |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'label' |
| | | }, |
| | | educationOptions: [], |
| | | nativePlaceOptions: [], |
| | | sexOptions: [], |
| | | empTypeOptions: [], |
| | | nationOptions: [] |
| | | } |
| | | // educationOptions: [], |
| | | // nativePlaceOptions: [], |
| | | // sexOptions: [], |
| | | // empTypeOptions: [], |
| | | // nationOptions: [] |
| | | } |
| | | }, |
| | | computed: { |
| | |
| | | get() { |
| | | return this.dialogVisible |
| | | } |
| | | } |
| | | }, |
| | | // 字典选项计算属性 |
| | | sexOptions() { return this.getDictOptions('EDUCATION') }, |
| | | empStatusOptions() { return this.getDictOptions('NATIVEPLACE') }, |
| | | empTypeOptions() { return this.getDictOptions('sex') }, |
| | | educationOptions() { return this.getDictOptions('EMPTYPE') }, |
| | | nativePlaceOptions() { return this.getDictOptions('NATION') } |
| | | }, |
| | | mounted() { |
| | | setTimeout(() => { |
| | | this.getDicts('EDUCATION').then(response => { |
| | | this.educationOptions = response.data |
| | | }) |
| | | this.getDicts('NATIVEPLACE').then(response => { |
| | | this.nativePlaceOptions = response.data |
| | | }) |
| | | this.getDicts('sex').then(response => { |
| | | this.sexOptions = response.data |
| | | }) |
| | | this.getDicts('empType').then(response => { |
| | | this.empTypeOptions = response.data |
| | | }) |
| | | this.getDicts('NATION').then(response => { |
| | | this.nationOptions = response.data |
| | | }) |
| | | }, 1000) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['sex', 'NATION', 'EMPTYPE', 'EDUCATION', 'NATIVEPLACE']) |
| | | }, |
| | | methods: { |
| | | educationFormat(row, column) { |
| | |
| | | <script> |
| | | // 引用翻页组件 |
| | | import Pagination from '@/components/Pagination' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | export default { |
| | | components: { |
| | | Pagination |
| | | }, |
| | | mixins: [dictMixin], |
| | | props: { |
| | | dialogVisible: { |
| | | type: Boolean, |
| | |
| | | size: 15, |
| | | num: 1 |
| | | }, |
| | | hospitalizatioFlagOptions: [], |
| | | settleStatusOptions: [], |
| | | // hospitalizatioFlagOptions: [], |
| | | // settleStatusOptions: [], |
| | | list: [], // 给table显示的数据 |
| | | defaultProps: { |
| | | children: 'children', |
| | |
| | | get() { |
| | | return this.dialogVisible |
| | | } |
| | | } |
| | | }, |
| | | // 字典选项计算属性 |
| | | hospitalizatioFlagOptions() { return this.getDictOptions('hospitalizatioFlag') }, |
| | | settleStatusOptions() { return this.getDictOptions('settleStatus') } |
| | | }, |
| | | mounted() { |
| | | setTimeout(() => { |
| | | this.getDicts('hospitalizatioFlag').then(response => { |
| | | this.hospitalizatioFlagOptions = response.data |
| | | }) |
| | | this.getDicts('settleStatus').then(response => { |
| | | this.settleStatusOptions = response.data |
| | | }) |
| | | }, 1000) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['hospitalizatioFlag', 'settleStatus']) |
| | | }, |
| | | methods: { |
| | | hospitalizatioFlagFormat(row, column) { |
| | |
| | | <script> |
| | | // 引用翻页组件 |
| | | import Pagination from '@/components/Pagination' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | |
| | | export default { |
| | | components: { |
| | | Pagination |
| | | }, |
| | | mixins: [dictMixin], |
| | | props: { |
| | | dialogVisible: { |
| | | type: Boolean, |
| | |
| | | size: 15, |
| | | num: 1 |
| | | }, |
| | | probationStatusOptions: [], |
| | | |
| | | list: [], // 给table显示的数据 |
| | | defaultProps: { |
| | | children: 'children', |
| | |
| | | get() { |
| | | return this.dialogVisible |
| | | } |
| | | } |
| | | }, |
| | | // 字典选项计算属性 |
| | | probationStatusOptions() { return this.getDictOptions('PROBATIONSTATUS') } |
| | | }, |
| | | mounted() { |
| | | setTimeout(() => { |
| | | this.getDicts('PROBATIONSTATUS').then(response => { |
| | | this.probationStatusOptions = response.data |
| | | }) |
| | | }, 1000) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['PROBATIONSTATUS']) |
| | | }, |
| | | methods: { |
| | | probationStatusFormat(row, column) { |
| | |
| | | const expireTime = current.setTime(current.getTime() + 1000 * data.expires_in) |
| | | this.$store.commit('account/setExpireTime', expireTime) |
| | | }, |
| | | getUserDetailInfo() { |
| | | this.$get('auth/user').then((r) => { |
| | | async getUserDetailInfo() { |
| | | try { |
| | | const r = await this.$get('auth/user') |
| | | this.$store.commit('account/setUser', r.data.principal) |
| | | // 预加载字典数据到缓存 |
| | | await this.$store.dispatch('dict/LoadAllDicts') |
| | | this.$message({ |
| | | message: this.$t('tips.loginSuccess'), |
| | | type: 'success' |
| | | }) |
| | | this.loading = false |
| | | this.$router.push('/') |
| | | }).catch((error) => { |
| | | } catch (error) { |
| | | this.$message({ |
| | | message: this.$t('tips.loginFail'), |
| | | type: 'error' |
| | | }) |
| | | console.error(error) |
| | | this.loading = false |
| | | }) |
| | | } |
| | | }, |
| | | loginSuccessCallback() { |
| | | this.$get('system/user/success').catch((e) => { console.log(e) }) |
| | |
| | | import Pagination from '@/components/Pagination' |
| | | import '@riophae/vue-treeselect/dist/vue-treeselect.css' |
| | | import { dateDifference } from '@/utils/myUtil' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | |
| | | export default { |
| | | components: { |
| | | Pagination |
| | | }, |
| | | mixins: [dictMixin], |
| | | data() { |
| | | return { |
| | | dialog: { |
| | |
| | | version: '', |
| | | diffDay: 0 |
| | | }, |
| | | sexOptions: [], |
| | | contractStatusOptions: [], |
| | | |
| | | dialogShowContract: false, |
| | | contractRules: { |
| | | empName: [{ required: true, message: '请选择员工', trigger: 'change' }], |
| | |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | // 字典选项计算属性 |
| | | sexOptions() { return this.getDictOptions('sex') }, |
| | | contractStatusOptions() { return this.getDictOptions('CONTRACTSTATUS') } |
| | | }, |
| | | mounted() { |
| | | this.fetch() |
| | | this.getDicts('sex').then(response => { |
| | | this.sexOptions = response.data |
| | | }) |
| | | this.getDicts('CONTRACTSTATUS').then(response => { |
| | | this.contractStatusOptions = response.data |
| | | }) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['sex', 'CONTRACTSTATUS']) |
| | | }, |
| | | methods: { |
| | | search() { |
| | |
| | | import '@riophae/vue-treeselect/dist/vue-treeselect.css' |
| | | import { calculateSeniority, toCardGetUserInfo } from '@/utils/myUtil' |
| | | import ExportDialog from '@/components/ExportEmpBase.vue' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | | ExportDialog |
| | | }, |
| | | mixins: [dictMixin], |
| | | data() { |
| | | return { |
| | | dialog: { |
| | |
| | | fileName: '社保四险员工列表.xls' |
| | | }, |
| | | tableData: [], |
| | | sexOptions: [], |
| | | empStatusOptions: [], |
| | | insuranceTypeOptions: [], |
| | | // sexOptions: [], |
| | | // empStatusOptions: [], |
| | | // insuranceTypeOptions: [], |
| | | searchInsuranceOptions: [{ |
| | | 'dicItemName': '(非深户)四险一档', |
| | | 'dicItemCode': '7' |
| | |
| | | }] |
| | | } |
| | | }, |
| | | computed: { |
| | | // 字典选项计算属性 |
| | | sexOptions() { return this.getDictOptions('sex') }, |
| | | empStatusOptions() { return this.getDictOptions('empStatus') }, |
| | | empTypeOptions() { return this.getDictOptions('EMPTYPE') }, |
| | | educationOptions() { return this.getDictOptions('EDUCATION') }, |
| | | nativePlaceOptions() { return this.getDictOptions('NATIVEPLACE') }, |
| | | insuranceTypeOptions() { return this.getDictOptions('INSURANCETYPE') } |
| | | }, |
| | | mounted() { |
| | | this.fetch() |
| | | this.initDept() |
| | | this.getDicts('ageStr').then(response => { |
| | | this.ageStrOptions = response.data |
| | | }) |
| | | this.getDicts('PLITICAL').then(response => { |
| | | this.statusOptions = response.data |
| | | }) |
| | | this.getDicts('sex').then(response => { |
| | | this.sexOptions = response.data |
| | | }) |
| | | this.getDicts('empStatus').then(response => { |
| | | this.empStatusOptions = response.data |
| | | }) |
| | | this.getDicts('empType').then(response => { |
| | | this.empTypeOptions = response.data |
| | | }) |
| | | this.getDicts('NATION').then(response => { |
| | | this.nationOptions = response.data |
| | | }) |
| | | this.getDicts('MARRIAGE').then(response => { |
| | | this.marriageOptions = response.data |
| | | }) |
| | | this.getDicts('EDUCATION').then(response => { |
| | | this.educationOptions = response.data |
| | | }) |
| | | this.getDicts('NATIVEPLACE').then(response => { |
| | | this.nativePlaceOptions = response.data |
| | | }) |
| | | this.getDicts('archivesStatus').then(response => { |
| | | this.archivesStatusOptions = response.data |
| | | }) |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceTypeOptions = response.data |
| | | }) |
| | | this.getDicts('empCardStatus').then(response => { |
| | | this.empCardStatusOptions = response.data |
| | | }) |
| | | this.getDicts('handbookStatus').then(response => { |
| | | this.handbookStatusOptions = response.data |
| | | }) |
| | | this.getDicts('certificateList').then(response => { |
| | | this.certificateListOptions = response.data |
| | | }) |
| | | this.getDicts('PHYSICALEXAMTYPE').then(response => { |
| | | this.physicalExamTypeOptions = response.data |
| | | }) |
| | | this.getDicts('ECG').then(response => { |
| | | this.ecgOptions = response.data |
| | | }) |
| | | this.getDicts('CONTRACTSTATUS').then(response => { |
| | | this.contractStatusOptions = response.data |
| | | }) |
| | | this.getDicts('LEAVETYPE').then(response => { |
| | | this.leaveTypeOptions = response.data |
| | | }) |
| | | this.getDicts('applayStatus').then(response => { |
| | | this.applayStatusOptions = response.data |
| | | }) |
| | | this.getDicts('reportStatus').then(response => { |
| | | this.reportStatusOptions = response.data |
| | | }) |
| | | this.getDicts('hospitalizatioFlag').then(response => { |
| | | this.hospitalizatioFlagOptions = response.data |
| | | }) |
| | | this.getDicts('settleStatus').then(response => { |
| | | this.settleStatusOptions = response.data |
| | | }) |
| | | this.getDicts('ZCTYPE').then(response => { |
| | | this.arbitrationTypeOptions = response.data |
| | | }) |
| | | this.getDicts('changeType').then(response => { |
| | | this.changeTypeOptions = response.data |
| | | }) |
| | | this.getDicts('LZTYPE').then(response => { |
| | | this.dimissionTypeOptions = response.data |
| | | }) |
| | | this.initDictTypes([ |
| | | 'sex', 'empStatus', 'EMPTYPE', |
| | | 'EDUCATION', 'NATIVEPLACE', |
| | | 'INSURANCETYPE' |
| | | ]) |
| | | // this.initJob() |
| | | }, |
| | | methods: { |
| | |
| | | return this.selectDictLabel(this.physicalExamTypeOptions, row.physicalExamType) |
| | | }, |
| | | empTypeFormat(row, column) { |
| | | console.log(this.empTypeOptions) |
| | | return this.selectDictLabel(this.empTypeOptions, row.empType) |
| | | }, |
| | | sexFormat(row, column) { |
| | |
| | | import '@riophae/vue-treeselect/dist/vue-treeselect.css' |
| | | import { dateDifference } from '@/utils/myUtil' |
| | | import ExportDialog from '@/components/ExportEmpBase.vue' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | | ExportDialog |
| | | }, |
| | | mixins: [dictMixin], |
| | | data() { |
| | | return { |
| | | dialog: { |
| | |
| | | probationDate: '', |
| | | probationStatus: '' |
| | | }, |
| | | sexOptions: [], |
| | | contractStatusOptions: [], |
| | | |
| | | dialogTitle: '正常转正', |
| | | dynamicDateLabel: '转正日期', |
| | | dialogShowContract: false, |
| | |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | // 字典选项计算属性 |
| | | sexOptions() { return this.getDictOptions('sex') }, |
| | | contractStatusOptions() { return this.getDictOptions('CONTRACTSTATUS') } |
| | | }, |
| | | mounted() { |
| | | this.fetch() |
| | | this.getDicts('sex').then(response => { |
| | | this.sexOptions = response.data |
| | | }) |
| | | this.getDicts('CONTRACTSTATUS').then(response => { |
| | | this.contractStatusOptions = response.data |
| | | }) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['sex', 'CONTRACTSTATUS']) |
| | | }, |
| | | methods: { |
| | | search() { |
| | |
| | | import '@riophae/vue-treeselect/dist/vue-treeselect.css' |
| | | import { dateDifference } from '@/utils/myUtil' |
| | | import ExportDialog from '@/components/ExportEmpBase.vue' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | | ExportDialog |
| | | }, |
| | | mixins: [dictMixin], |
| | | data() { |
| | | return { |
| | | dialog: { |
| | |
| | | version: '', |
| | | diffDay: 0 |
| | | }, |
| | | sexOptions: [], |
| | | contractStatusOptions: [], |
| | | dialogShowContract: false, |
| | | contractRules: { |
| | | empName: [{ required: true, message: '请选择员工', trigger: 'change' }], |
| | |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | // 字典选项计算属性 |
| | | sexOptions() { return this.getDictOptions('sex') }, |
| | | contractStatusOptions() { return this.getDictOptions('CONTRACTSTATUS') } |
| | | }, |
| | | mounted() { |
| | | this.fetch() |
| | | this.getDicts('sex').then(response => { |
| | | this.sexOptions = response.data |
| | | }) |
| | | this.getDicts('CONTRACTSTATUS').then(response => { |
| | | this.contractStatusOptions = response.data |
| | | }) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['sex', 'CONTRACTSTATUS']) |
| | | }, |
| | | methods: { |
| | | search() { |
| | |
| | | empStatus: 0, |
| | | remark: '' |
| | | }, |
| | | statusOptions: [], |
| | | empTypeOptions: [], |
| | | nationOptions: [], |
| | | marriageOptions: [], |
| | | educationOptions: [], |
| | | nativePlaceOptions: [], |
| | | archivesStatusOptions: [], |
| | | insuranceTypeOptions: [], |
| | | empCardStatusOptions: [], |
| | | handbookStatusOptions: [], |
| | | ecgOptions: [], |
| | | certificateListOptions: [], |
| | | physicalExamTypeOptions: [], |
| | | contractStatusOptions: [], |
| | | leaveTypeOptions: [], |
| | | insuranceGaersOptions: [], |
| | | applayStatusOptions: [], |
| | | reportStatusOptions: [], |
| | | hospitalizatioFlagOptions: [], |
| | | settleStatusOptions: [], |
| | | arbitrationTypeOptions: [], |
| | | changeTypeOptions: [], |
| | | dimissionTypeOptions: [], |
| | | sexOptions: [], |
| | | permissions: {} |
| | | } |
| | | }, |
| | | computed: { |
| | | // 字典选项计算属性 |
| | | statusOptions() { return this.getDictOptions('PLITICAL') }, |
| | | empTypeOptions() { return this.getDictOptions('empType') }, |
| | | nationOptions() { return this.getDictOptions('NATION') }, |
| | | marriageOptions() { return this.getDictOptions('MARRIAGE') }, |
| | | educationOptions() { return this.getDictOptions('EDUCATION') }, |
| | | nativePlaceOptions() { return this.getDictOptions('NATIVEPLACE') }, |
| | | archivesStatusOptions() { return this.getDictOptions('archivesStatus') }, |
| | | insuranceTypeOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | empCardStatusOptions() { return this.getDictOptions('empCardStatus') }, |
| | | handbookStatusOptions() { return this.getDictOptions('handbookStatus') }, |
| | | ecgOptions() { return this.getDictOptions('ECG') }, |
| | | certificateListOptions() { return this.getDictOptions('certificateList') }, |
| | | physicalExamTypeOptions() { return this.getDictOptions('PHYSICALEXAMTYPE') }, |
| | | contractStatusOptions() { return this.getDictOptions('CONTRACTSTATUS') }, |
| | | leaveTypeOptions() { return this.getDictOptions('LEAVETYPE') }, |
| | | insuranceGaersOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | applayStatusOptions() { return this.getDictOptions('applayStatus') }, |
| | | reportStatusOptions() { return this.getDictOptions('reportStatus') }, |
| | | hospitalizatioFlagOptions() { return this.getDictOptions('hospitalizatioFlag') }, |
| | | settleStatusOptions() { return this.getDictOptions('settleStatus') }, |
| | | arbitrationTypeOptions() { return this.getDictOptions('ZCTYPE') }, |
| | | changeTypeOptions() { return this.getDictOptions('changeType') }, |
| | | dimissionTypeOptions() { return this.getDictOptions('LZTYPE') }, |
| | | sexOptions() { return this.getDictOptions('sex') } |
| | | }, |
| | | mounted() { |
| | | this.permissions = JSON.parse(localStorage.getItem('PERMISSIONS')) |
| | | this.getDicts('PLITICAL').then(response => { |
| | | this.statusOptions = response.data |
| | | }) |
| | | this.getDicts('sex').then(response => { |
| | | this.sexOptions = response.data |
| | | }) |
| | | this.getDicts('empType').then(response => { |
| | | this.empTypeOptions = response.data |
| | | }) |
| | | this.getDicts('NATION').then(response => { |
| | | this.nationOptions = response.data |
| | | }) |
| | | this.getDicts('MARRIAGE').then(response => { |
| | | this.marriageOptions = response.data |
| | | }) |
| | | this.getDicts('EDUCATION').then(response => { |
| | | this.educationOptions = response.data |
| | | }) |
| | | this.getDicts('NATIVEPLACE').then(response => { |
| | | this.nativePlaceOptions = response.data |
| | | }) |
| | | this.getDicts('archivesStatus').then(response => { |
| | | this.archivesStatusOptions = response.data |
| | | }) |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceTypeOptions = response.data |
| | | }) |
| | | this.getDicts('empCardStatus').then(response => { |
| | | this.empCardStatusOptions = response.data |
| | | }) |
| | | this.getDicts('handbookStatus').then(response => { |
| | | this.handbookStatusOptions = response.data |
| | | }) |
| | | this.getDicts('certificateList').then(response => { |
| | | this.certificateListOptions = response.data |
| | | }) |
| | | this.getDicts('PHYSICALEXAMTYPE').then(response => { |
| | | this.physicalExamTypeOptions = response.data |
| | | }) |
| | | this.getDicts('ECG').then(response => { |
| | | this.ecgOptions = response.data |
| | | }) |
| | | this.getDicts('CONTRACTSTATUS').then(response => { |
| | | this.contractStatusOptions = response.data |
| | | }) |
| | | this.getDicts('LEAVETYPE').then(response => { |
| | | this.leaveTypeOptions = response.data |
| | | }) |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceGaersOptions = response.data |
| | | }) |
| | | this.getDicts('applayStatus').then(response => { |
| | | this.applayStatusOptions = response.data |
| | | }) |
| | | this.getDicts('reportStatus').then(response => { |
| | | this.reportStatusOptions = response.data |
| | | }) |
| | | this.getDicts('hospitalizatioFlag').then(response => { |
| | | this.hospitalizatioFlagOptions = response.data |
| | | }) |
| | | this.getDicts('settleStatus').then(response => { |
| | | this.settleStatusOptions = response.data |
| | | }) |
| | | this.getDicts('ZCTYPE').then(response => { |
| | | this.arbitrationTypeOptions = response.data |
| | | }) |
| | | this.getDicts('changeType').then(response => { |
| | | this.changeTypeOptions = response.data |
| | | }) |
| | | this.getDicts('LZTYPE').then(response => { |
| | | this.dimissionTypeOptions = response.data |
| | | }) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['PLITICAL', 'sex', 'empType', 'NATION', 'MARRIAGE', 'EDUCATION', 'NATIVEPLACE', 'archivesStatus', 'INSURANCETYPE', 'empCardStatus', 'handbookStatus', 'certificateList', 'PHYSICALEXAMTYPE', 'ECG', 'CONTRACTSTATUS', 'LEAVETYPE', 'applayStatus', 'reportStatus', 'hospitalizatioFlag', 'settleStatus', 'ZCTYPE', 'changeType', 'LZTYPE']) |
| | | this.initDept() |
| | | this.thisShowIndex = 1 |
| | | this.isShow(false, 0) |
| | |
| | | import Pagination from '@/components/Pagination' |
| | | import { getToken } from '@/utils/auth' |
| | | import { pages } from '@/settings' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | |
| | | export default { |
| | | name: 'ArchivesEdit', |
| | | components: { Treeselect, Pagination }, |
| | | mixins: [dictMixin], |
| | | props: { |
| | | dialogVisible: { |
| | | type: Boolean, |
| | |
| | | { type: 'dic_credentials' }, |
| | | { type: 'password' }, |
| | | { type: 'implicit' } |
| | | ], |
| | | statusOptions: [], |
| | | empTypeOptions: [], |
| | | nationOptions: [], |
| | | marriageOptions: [], |
| | | educationOptions: [], |
| | | nativePlaceOptions: [], |
| | | archivesStatusOptions: [], |
| | | insuranceTypeOptions: [], |
| | | empCardStatusOptions: [], |
| | | handbookStatusOptions: [], |
| | | ecgOptions: [], |
| | | certificateListOptions: [], |
| | | physicalExamTypeOptions: [], |
| | | contractStatusOptions: [], |
| | | leaveTypeOptions: [], |
| | | insuranceGaersOptions: [], |
| | | applayStatusOptions: [], |
| | | reportStatusOptions: [], |
| | | hospitalizatioFlagOptions: [], |
| | | settleStatusOptions: [], |
| | | arbitrationTypeOptions: [], |
| | | changeTypeOptions: [], |
| | | dimissionTypeOptions: [], |
| | | sexOptions: [] |
| | | ] |
| | | } |
| | | }, |
| | | computed: { |
| | | // 字典选项计算属性 |
| | | statusOptions() { return this.getDictOptions('PLITICAL') }, |
| | | empTypeOptions() { return this.getDictOptions('empType') }, |
| | | nationOptions() { return this.getDictOptions('NATION') }, |
| | | marriageOptions() { return this.getDictOptions('MARRIAGE') }, |
| | | educationOptions() { return this.getDictOptions('EDUCATION') }, |
| | | nativePlaceOptions() { return this.getDictOptions('NATIVEPLACE') }, |
| | | archivesStatusOptions() { return this.getDictOptions('archivesStatus') }, |
| | | insuranceTypeOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | empCardStatusOptions() { return this.getDictOptions('empCardStatus') }, |
| | | handbookStatusOptions() { return this.getDictOptions('handbookStatus') }, |
| | | certificateListOptions() { return this.getDictOptions('certificateList') }, |
| | | physicalExamTypeOptions() { return this.getDictOptions('PHYSICALEXAMTYPE') }, |
| | | ecgOptions() { return this.getDictOptions('ECG') }, |
| | | contractStatusOptions() { return this.getDictOptions('CONTRACTSTATUS') }, |
| | | leaveTypeOptions() { return this.getDictOptions('LEAVETYPE') }, |
| | | insuranceGaersOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | applayStatusOptions() { return this.getDictOptions('applayStatus') }, |
| | | reportStatusOptions() { return this.getDictOptions('reportStatus') }, |
| | | hospitalizatioFlagOptions() { return this.getDictOptions('hospitalizatioFlag') }, |
| | | settleStatusOptions() { return this.getDictOptions('settleStatus') }, |
| | | arbitrationTypeOptions() { return this.getDictOptions('ZCTYPE') }, |
| | | changeTypeOptions() { return this.getDictOptions('changeType') }, |
| | | dimissionTypeOptions() { return this.getDictOptions('LZTYPE') }, |
| | | sexOptions() { return this.getDictOptions('sex') }, |
| | | isVisible: { |
| | | get() { |
| | | return this.dialogVisible |
| | |
| | | }, |
| | | mounted() { |
| | | this.initDept() |
| | | /* 政治面貌*/ |
| | | this.getDicts('PLITICAL').then(response => { |
| | | this.statusOptions = response.data |
| | | }) |
| | | this.getDicts('sex').then(response => { |
| | | this.sexOptions = response.data |
| | | }) |
| | | this.getDicts('empType').then(response => { |
| | | this.empTypeOptions = response.data |
| | | }) |
| | | this.getDicts('NATION').then(response => { |
| | | this.nationOptions = response.data |
| | | }) |
| | | this.getDicts('MARRIAGE').then(response => { |
| | | this.marriageOptions = response.data |
| | | }) |
| | | this.getDicts('EDUCATION').then(response => { |
| | | this.educationOptions = response.data |
| | | }) |
| | | this.getDicts('NATIVEPLACE').then(response => { |
| | | this.nativePlaceOptions = response.data |
| | | }) |
| | | this.getDicts('archivesStatus').then(response => { |
| | | this.archivesStatusOptions = response.data |
| | | }) |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceTypeOptions = response.data |
| | | }) |
| | | this.getDicts('empCardStatus').then(response => { |
| | | this.empCardStatusOptions = response.data |
| | | }) |
| | | this.getDicts('handbookStatus').then(response => { |
| | | this.handbookStatusOptions = response.data |
| | | }) |
| | | this.getDicts('certificateList').then(response => { |
| | | this.certificateListOptions = response.data |
| | | }) |
| | | this.getDicts('PHYSICALEXAMTYPE').then(response => { |
| | | this.physicalExamTypeOptions = response.data |
| | | }) |
| | | this.getDicts('ECG').then(response => { |
| | | this.ecgOptions = response.data |
| | | }) |
| | | this.getDicts('CONTRACTSTATUS').then(response => { |
| | | this.contractStatusOptions = response.data |
| | | }) |
| | | this.getDicts('LEAVETYPE').then(response => { |
| | | this.leaveTypeOptions = response.data |
| | | }) |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceGaersOptions = response.data |
| | | }) |
| | | this.getDicts('applayStatus').then(response => { |
| | | this.applayStatusOptions = response.data |
| | | }) |
| | | this.getDicts('reportStatus').then(response => { |
| | | this.reportStatusOptions = response.data |
| | | }) |
| | | this.getDicts('hospitalizatioFlag').then(response => { |
| | | this.hospitalizatioFlagOptions = response.data |
| | | }) |
| | | this.getDicts('settleStatus').then(response => { |
| | | this.settleStatusOptions = response.data |
| | | }) |
| | | this.getDicts('ZCTYPE').then(response => { |
| | | this.arbitrationTypeOptions = response.data |
| | | }) |
| | | this.getDicts('changeType').then(response => { |
| | | this.changeTypeOptions = response.data |
| | | }) |
| | | this.getDicts('LZTYPE').then(response => { |
| | | this.dimissionTypeOptions = response.data |
| | | }) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['PLITICAL', 'sex', 'empType', 'NATION', 'MARRIAGE', 'EDUCATION', 'NATIVEPLACE', 'archivesStatus', 'INSURANCETYPE', 'empCardStatus', 'handbookStatus', 'certificateList', 'PHYSICALEXAMTYPE', 'ECG', 'CONTRACTSTATUS', 'LEAVETYPE', 'applayStatus', 'reportStatus', 'hospitalizatioFlag', 'settleStatus', 'ZCTYPE', 'changeType', 'LZTYPE']) |
| | | }, |
| | | methods: { |
| | | typeFormat(row, column) { |
| | |
| | | this.physicalExamForm = { ...val } |
| | | this.workExperienceForm = { ...val } |
| | | this.badRecordForm = { ...val } |
| | | this.initlabel() |
| | | this.initphysicalExamData() |
| | | this.initList() // 工作经历 |
| | | this.initjobChangeData() // 调岗记录 |
| | | this.initdimissionLogData() // 入离职记录 |
| | | this.initcontractInfoData() // 合同信息 |
| | | this.initleaveInfoData() // 请假记录 |
| | | this.initresignData() // 辞职申请 |
| | | this.initunemploymentData() // 失业金领取 |
| | | this.initinsuranceData() // 社保申请 |
| | | this.initremarkInfoData() // 备注 |
| | | this.initlaborTroubleData() // 仲裁案件 |
| | | this.initoccupationalData() // 工伤案件 |
| | | this.initbadRecordData() // 不良记录 |
| | | this.initaccidentCasesData() // 意外险案件 |
| | | this.initdimissionAttendData() // 考勤情况 |
| | | // 分批加载数据,避免并发请求过多导致 503 错误 |
| | | this.loadDataInBatches() |
| | | }, |
| | | // 分批加载档案数据,控制并发请求数量 |
| | | async loadDataInBatches() { |
| | | // 第1批:首屏可见数据(4个请求) |
| | | await Promise.all([ |
| | | this.initlabel(), |
| | | this.initphysicalExamData(), |
| | | this.initList(), |
| | | this.initjobChangeData() |
| | | ]) |
| | | |
| | | // 延迟 200ms 后加载第2批 |
| | | await new Promise(resolve => setTimeout(resolve, 200)) |
| | | await Promise.all([ |
| | | this.initdimissionLogData(), |
| | | this.initcontractInfoData(), |
| | | this.initleaveInfoData(), |
| | | this.initresignData() |
| | | ]) |
| | | |
| | | // 延迟 200ms 后加载第3批 |
| | | await new Promise(resolve => setTimeout(resolve, 200)) |
| | | await Promise.all([ |
| | | this.initunemploymentData(), |
| | | this.initinsuranceData(), |
| | | this.initremarkInfoData(), |
| | | this.initlaborTroubleData() |
| | | ]) |
| | | |
| | | // 延迟 200ms 后加载第4批 |
| | | await new Promise(resolve => setTimeout(resolve, 200)) |
| | | await Promise.all([ |
| | | this.initoccupationalData(), |
| | | this.initbadRecordData(), |
| | | this.initaccidentCasesData(), |
| | | this.initdimissionAttendData() |
| | | ]) |
| | | }, |
| | | initphysicalExamData(params = {}) { |
| | | params.pageSize = this.pagination.size |
| | |
| | | import Pagination from '@/components/Pagination' |
| | | import { getToken } from '@/utils/auth' |
| | | import { pages } from '@/settings' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | |
| | | export default { |
| | | name: 'ArchivesEdit', |
| | | components: { Treeselect, Pagination }, |
| | | mixins: [dictMixin], |
| | | props: { |
| | | dialogVisible: { |
| | | type: Boolean, |
| | |
| | | { type: 'password' }, |
| | | { type: 'implicit' } |
| | | ], |
| | | statusOptions: [], |
| | | empTypeOptions: [], |
| | | nationOptions: [], |
| | | marriageOptions: [], |
| | | educationOptions: [], |
| | | nativePlaceOptions: [], |
| | | archivesStatusOptions: [], |
| | | insuranceTypeOptions: [], |
| | | empCardStatusOptions: [], |
| | | handbookStatusOptions: [], |
| | | ecgOptions: [], |
| | | certificateListOptions: [], |
| | | physicalExamTypeOptions: [], |
| | | contractStatusOptions: [], |
| | | leaveTypeOptions: [], |
| | | insuranceGaersOptions: [], |
| | | applayStatusOptions: [], |
| | | reportStatusOptions: [], |
| | | hospitalizatioFlagOptions: [], |
| | | settleStatusOptions: [], |
| | | arbitrationTypeOptions: [], |
| | | changeTypeOptions: [], |
| | | dimissionTypeOptions: [], |
| | | sexOptions: [], |
| | | srcList: [], |
| | | getImg: pages.getAccessoryImage |
| | | } |
| | |
| | | this.close() |
| | | this.reset() |
| | | } |
| | | } |
| | | }, |
| | | // 字典选项计算属性 |
| | | statusOptions() { return this.getDictOptions('PLITICAL') }, |
| | | empTypeOptions() { return this.getDictOptions('empType') }, |
| | | nationOptions() { return this.getDictOptions('NATION') }, |
| | | marriageOptions() { return this.getDictOptions('MARRIAGE') }, |
| | | educationOptions() { return this.getDictOptions('EDUCATION') }, |
| | | nativePlaceOptions() { return this.getDictOptions('NATIVEPLACE') }, |
| | | archivesStatusOptions() { return this.getDictOptions('archivesStatus') }, |
| | | insuranceTypeOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | empCardStatusOptions() { return this.getDictOptions('empCardStatus') }, |
| | | handbookStatusOptions() { return this.getDictOptions('handbookStatus') }, |
| | | certificateListOptions() { return this.getDictOptions('certificateList') }, |
| | | physicalExamTypeOptions() { return this.getDictOptions('PHYSICALEXAMTYPE') }, |
| | | ecgOptions() { return this.getDictOptions('ECG') }, |
| | | contractStatusOptions() { return this.getDictOptions('CONTRACTSTATUS') }, |
| | | leaveTypeOptions() { return this.getDictOptions('LEAVETYPE') }, |
| | | insuranceGaersOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | applayStatusOptions() { return this.getDictOptions('applayStatus') }, |
| | | reportStatusOptions() { return this.getDictOptions('reportStatus') }, |
| | | hospitalizatioFlagOptions() { return this.getDictOptions('hospitalizatioFlag') }, |
| | | settleStatusOptions() { return this.getDictOptions('settleStatus') }, |
| | | arbitrationTypeOptions() { return this.getDictOptions('ZCTYPE') }, |
| | | changeTypeOptions() { return this.getDictOptions('changeType') }, |
| | | dimissionTypeOptions() { return this.getDictOptions('LZTYPE') }, |
| | | sexOptions() { return this.getDictOptions('sex') } |
| | | }, |
| | | mounted() { |
| | | this.initDept() |
| | | /* 政治面貌*/ |
| | | this.getDicts('PLITICAL').then(response => { |
| | | this.statusOptions = response.data |
| | | }) |
| | | this.getDicts('sex').then(response => { |
| | | this.sexOptions = response.data |
| | | }) |
| | | this.getDicts('empType').then(response => { |
| | | this.empTypeOptions = response.data |
| | | }) |
| | | this.getDicts('NATION').then(response => { |
| | | this.nationOptions = response.data |
| | | }) |
| | | this.getDicts('MARRIAGE').then(response => { |
| | | this.marriageOptions = response.data |
| | | }) |
| | | this.getDicts('EDUCATION').then(response => { |
| | | this.educationOptions = response.data |
| | | }) |
| | | this.getDicts('NATIVEPLACE').then(response => { |
| | | this.nativePlaceOptions = response.data |
| | | }) |
| | | this.getDicts('archivesStatus').then(response => { |
| | | this.archivesStatusOptions = response.data |
| | | }) |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceTypeOptions = response.data |
| | | }) |
| | | this.getDicts('empCardStatus').then(response => { |
| | | this.empCardStatusOptions = response.data |
| | | }) |
| | | this.getDicts('handbookStatus').then(response => { |
| | | this.handbookStatusOptions = response.data |
| | | }) |
| | | this.getDicts('certificateList').then(response => { |
| | | this.certificateListOptions = response.data |
| | | }) |
| | | this.getDicts('PHYSICALEXAMTYPE').then(response => { |
| | | this.physicalExamTypeOptions = response.data |
| | | }) |
| | | this.getDicts('ECG').then(response => { |
| | | this.ecgOptions = response.data |
| | | }) |
| | | this.getDicts('CONTRACTSTATUS').then(response => { |
| | | this.contractStatusOptions = response.data |
| | | }) |
| | | this.getDicts('LEAVETYPE').then(response => { |
| | | this.leaveTypeOptions = response.data |
| | | }) |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceGaersOptions = response.data |
| | | }) |
| | | this.getDicts('applayStatus').then(response => { |
| | | this.applayStatusOptions = response.data |
| | | }) |
| | | this.getDicts('reportStatus').then(response => { |
| | | this.reportStatusOptions = response.data |
| | | }) |
| | | this.getDicts('hospitalizatioFlag').then(response => { |
| | | this.hospitalizatioFlagOptions = response.data |
| | | }) |
| | | this.getDicts('settleStatus').then(response => { |
| | | this.settleStatusOptions = response.data |
| | | }) |
| | | this.getDicts('ZCTYPE').then(response => { |
| | | this.arbitrationTypeOptions = response.data |
| | | }) |
| | | this.getDicts('changeType').then(response => { |
| | | this.changeTypeOptions = response.data |
| | | }) |
| | | this.getDicts('LZTYPE').then(response => { |
| | | this.dimissionTypeOptions = response.data |
| | | }) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['PLITICAL', 'sex', 'empType', 'NATION', 'MARRIAGE', 'EDUCATION', 'NATIVEPLACE', 'archivesStatus', 'INSURANCETYPE', 'empCardStatus', 'handbookStatus', 'certificateList', 'PHYSICALEXAMTYPE', 'ECG', 'CONTRACTSTATUS', 'LEAVETYPE', 'applayStatus', 'reportStatus', 'hospitalizatioFlag', 'settleStatus', 'ZCTYPE', 'changeType', 'LZTYPE']) |
| | | }, |
| | | methods: { |
| | | clickImg(node) { |
| | |
| | | import { calculateSeniority, toCardGetUserInfo, dateToString } from '@/utils/myUtil' |
| | | import ArchivesEdit from './archivesEdit' |
| | | import { pages } from '@/settings' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | |
| | | export default { |
| | | components: { |
| | | ArchivesEdit, |
| | | Pagination, Treeselect |
| | | }, |
| | | mixins: [dictMixin], |
| | | data() { |
| | | return { |
| | | dialog: { |
| | |
| | | checkedCities: [], |
| | | tableData: [], |
| | | selectDimissionType: 1, |
| | | statusOptions: [], |
| | | empTypeOptions: [], |
| | | inTypeOptions: [], |
| | | nationOptions: [], |
| | | marriageOptions: [], |
| | | educationOptions: [], |
| | | nativePlaceOptions: [], |
| | | archivesStatusOptions: [], |
| | | insuranceTypeOptions: [], |
| | | empCardStatusOptions: [], |
| | | handbookStatusOptions: [], |
| | | ecgOptions: [], |
| | | certificateListOptions: [], |
| | | physicalExamTypeOptions: [], |
| | | contractStatusOptions: [], |
| | | leaveTypeOptions: [], |
| | | insuranceGaersOptions: [], |
| | | applayStatusOptions: [], |
| | | reportStatusOptions: [], |
| | | hospitalizatioFlagOptions: [], |
| | | settleStatusOptions: [], |
| | | arbitrationTypeOptions: [], |
| | | changeTypeOptions: [], |
| | | dimissionTypeOptions: [], |
| | | ageStrOptions: [], |
| | | sexOptions: [], |
| | | openArchivesForm: {} |
| | | } |
| | | }, |
| | | computed: { |
| | | // 字典选项计算属性 |
| | | statusOptions() { return this.getDictOptions('PLITICAL') }, |
| | | empTypeOptions() { return this.getDictOptions('empType') }, |
| | | nationOptions() { return this.getDictOptions('NATION') }, |
| | | marriageOptions() { return this.getDictOptions('MARRIAGE') }, |
| | | educationOptions() { return this.getDictOptions('EDUCATION') }, |
| | | nativePlaceOptions() { return this.getDictOptions('NATIVEPLACE') }, |
| | | archivesStatusOptions() { return this.getDictOptions('archivesStatus') }, |
| | | insuranceTypeOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | empCardStatusOptions() { return this.getDictOptions('empCardStatus') }, |
| | | handbookStatusOptions() { return this.getDictOptions('handbookStatus') }, |
| | | certificateListOptions() { return this.getDictOptions('certificateList') }, |
| | | physicalExamTypeOptions() { return this.getDictOptions('PHYSICALEXAMTYPE') }, |
| | | ecgOptions() { return this.getDictOptions('ECG') }, |
| | | contractStatusOptions() { return this.getDictOptions('CONTRACTSTATUS') }, |
| | | leaveTypeOptions() { return this.getDictOptions('LEAVETYPE') }, |
| | | insuranceGaersOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | applayStatusOptions() { return this.getDictOptions('applayStatus') }, |
| | | reportStatusOptions() { return this.getDictOptions('reportStatus') }, |
| | | hospitalizatioFlagOptions() { return this.getDictOptions('hospitalizatioFlag') }, |
| | | settleStatusOptions() { return this.getDictOptions('settleStatus') }, |
| | | arbitrationTypeOptions() { return this.getDictOptions('ZCTYPE') }, |
| | | changeTypeOptions() { return this.getDictOptions('changeType') }, |
| | | dimissionTypeOptions() { return this.getDictOptions('LZTYPE') }, |
| | | ageStrOptions() { return this.getDictOptions('ageStr') }, |
| | | sexOptions() { return this.getDictOptions('sex') } |
| | | }, |
| | | mounted() { |
| | | this.fetch() |
| | | this.initDept() |
| | | this.getDicts('ageStr').then(response => { |
| | | this.ageStrOptions = response.data |
| | | }) |
| | | this.getDicts('PLITICAL').then(response => { |
| | | this.statusOptions = response.data |
| | | }) |
| | | this.getDicts('sex').then(response => { |
| | | this.sexOptions = response.data |
| | | }) |
| | | this.getDicts('empType').then(response => { |
| | | this.empTypeOptions = response.data |
| | | }) |
| | | this.getDicts('NATION').then(response => { |
| | | this.nationOptions = response.data |
| | | }) |
| | | this.getDicts('MARRIAGE').then(response => { |
| | | this.marriageOptions = response.data |
| | | }) |
| | | this.getDicts('EDUCATION').then(response => { |
| | | this.educationOptions = response.data |
| | | }) |
| | | this.getDicts('NATIVEPLACE').then(response => { |
| | | this.nativePlaceOptions = response.data |
| | | }) |
| | | this.getDicts('archivesStatus').then(response => { |
| | | this.archivesStatusOptions = response.data |
| | | }) |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceTypeOptions = response.data |
| | | }) |
| | | this.getDicts('empCardStatus').then(response => { |
| | | this.empCardStatusOptions = response.data |
| | | }) |
| | | this.getDicts('handbookStatus').then(response => { |
| | | this.handbookStatusOptions = response.data |
| | | }) |
| | | this.getDicts('certificateList').then(response => { |
| | | this.certificateListOptions = response.data |
| | | }) |
| | | this.getDicts('PHYSICALEXAMTYPE').then(response => { |
| | | this.physicalExamTypeOptions = response.data |
| | | }) |
| | | this.getDicts('ECG').then(response => { |
| | | this.ecgOptions = response.data |
| | | }) |
| | | this.getDicts('CONTRACTSTATUS').then(response => { |
| | | this.contractStatusOptions = response.data |
| | | }) |
| | | this.getDicts('LEAVETYPE').then(response => { |
| | | this.leaveTypeOptions = response.data |
| | | }) |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceGaersOptions = response.data |
| | | }) |
| | | this.getDicts('applayStatus').then(response => { |
| | | this.applayStatusOptions = response.data |
| | | }) |
| | | this.getDicts('reportStatus').then(response => { |
| | | this.reportStatusOptions = response.data |
| | | }) |
| | | this.getDicts('hospitalizatioFlag').then(response => { |
| | | this.hospitalizatioFlagOptions = response.data |
| | | }) |
| | | this.getDicts('settleStatus').then(response => { |
| | | this.settleStatusOptions = response.data |
| | | }) |
| | | this.getDicts('ZCTYPE').then(response => { |
| | | this.arbitrationTypeOptions = response.data |
| | | }) |
| | | this.getDicts('changeType').then(response => { |
| | | this.changeTypeOptions = response.data |
| | | }) |
| | | this.getDicts('LZTYPE').then(response => { |
| | | this.dimissionTypeOptions = response.data |
| | | }) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['ageStr', 'PLITICAL', 'sex', 'empType', 'NATION', 'MARRIAGE', 'EDUCATION', 'NATIVEPLACE', 'archivesStatus', 'INSURANCETYPE', 'empCardStatus', 'handbookStatus', 'certificateList', 'PHYSICALEXAMTYPE', 'ECG', 'CONTRACTSTATUS', 'LEAVETYPE', 'applayStatus', 'reportStatus', 'hospitalizatioFlag', 'settleStatus', 'ZCTYPE', 'changeType', 'LZTYPE']) |
| | | this.initJob() |
| | | }, |
| | | methods: { |
| | |
| | | import Pagination from '@/components/Pagination' |
| | | import ArchivesChange from './archivesChange' |
| | | import Treeselect from '@riophae/vue-treeselect' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | |
| | | export default { |
| | | components: { |
| | |
| | | ArchivesChange, |
| | | Pagination |
| | | }, |
| | | mixins: [dictMixin], |
| | | data() { |
| | | return { |
| | | dialog: { |
| | |
| | | baseicInformationForm: { |
| | | openDate: new Date() |
| | | }, |
| | | educationOptions: [], |
| | | statusOptions: [], |
| | | ageStrOptions: [], |
| | | insuranceTypeOptions: [], |
| | | archivesStatusOptions: [], |
| | | sexOptions: [], |
| | | empTypeOptions: [], |
| | | cityOptions: ['archivesNumb', 'allDeptName', 'jobName', 'empName', 'certificateNumb', 'certificateValidity', 'sexName', 'nationName', 'age', 'marriageName', 'stature', 'birthdate', 'politicsName', 'empTypeName', 'educationName', 'nativePlaceName', 'censusAddress', 'currentAddress', 'guardNumb', 'returnReceipt', 'archivesStatusName', 'bankName', 'bankNumb', 'telePhone', 'entryDate', 'insuranceTypeName', 'socialNumb', 'introducer', 'seniority', 'empCardStatusName', 'certificateListName', 'urgencyPhone', 'handbookStatusName', 'family', 'empStatusName', 'dimissionDate', 'entryTypeName', 'dimissionTypeName', 'empNumb', 'annualLeave'], |
| | | checkedCities: [] |
| | | } |
| | | }, |
| | | computed: { |
| | | // 字典选项计算属性 |
| | | educationOptions() { return this.getDictOptions('EDUCATION') }, |
| | | statusOptions() { return this.getDictOptions('PLITICAL') }, |
| | | ageStrOptions() { return this.getDictOptions('ageStr') }, |
| | | insuranceTypeOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | archivesStatusOptions() { return this.getDictOptions('archivesStatus') }, |
| | | sexOptions() { return this.getDictOptions('sex') }, |
| | | empTypeOptions() { return this.getDictOptions('EMPTYPE') }, |
| | | certificateListOptions() { return this.getDictOptions('certificateList') } |
| | | }, |
| | | mounted() { |
| | | this.fetch() |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceTypeOptions = response.data |
| | | }) |
| | | this.getDicts('archivesStatus').then(response => { |
| | | this.archivesStatusOptions = response.data |
| | | }) |
| | | this.getDicts('EDUCATION').then(response => { |
| | | this.educationOptions = response.data |
| | | }) |
| | | this.getDicts('sex').then(response => { |
| | | this.sexOptions = response.data |
| | | }) |
| | | this.getDicts('PLITICAL').then(response => { |
| | | this.statusOptions = response.data |
| | | }) |
| | | this.getDicts('ageStr').then(response => { |
| | | this.ageStrOptions = response.data |
| | | }) |
| | | this.getDicts('EMPTYPE').then(response => { |
| | | this.empTypeOptions = response.data |
| | | }) |
| | | this.getDicts('certificateList').then(response => { |
| | | this.certificateListOptions = response.data |
| | | }) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['INSURANCETYPE', 'archivesStatus', 'EDUCATION', 'sex', 'PLITICAL', 'ageStr', 'EMPTYPE', 'certificateList']) |
| | | this.initDept() |
| | | }, |
| | | methods: { |
| | |
| | | </template> |
| | | <script> |
| | | import Pagination from '@/components/Pagination' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | |
| | | export default { |
| | | components: { |
| | | Pagination |
| | | }, |
| | | mixins: [dictMixin], |
| | | data() { |
| | | return { |
| | | cityOptions: ['archivesNumb', 'allDeptName', 'jobName', 'empName', 'certificateNumb', 'certificateValidity', 'sexName', 'nationName', 'age', 'marriageName', 'stature', 'birthdate', 'politicsName', 'empTypeName', 'educationName', 'nativePlaceName', 'censusAddress', 'currentAddress', 'guardNumb', 'returnReceipt', 'archivesStatusName', 'bankName', 'bankNumb', 'telePhone', 'entryDate', 'InsuranceTypeName', 'socialNumb', 'introducer', 'seniority', 'empCardStatusName', 'certificateListName', 'urgencyPhone', 'handbookStatusName', 'family', 'empStatusName', 'dimissionDate', 'entryTypeName', 'dimissionTypeName', 'empNumb', 'annualLeave'], |
| | |
| | | } |
| | | ] |
| | | }, |
| | | statusOptions: [], |
| | | empTypeOptions: [], |
| | | nationOptions: [], |
| | | marriageOptions: [], |
| | | educationOptions: [], |
| | | nativePlaceOptions: [], |
| | | archivesStatusOptions: [], |
| | | insuranceTypeOptions: [], |
| | | empCardStatusOptions: [], |
| | | handbookStatusOptions: [], |
| | | ecgOptions: [], |
| | | certificateListOptions: [], |
| | | physicalExamTypeOptions: [], |
| | | contractStatusOptions: [], |
| | | leaveTypeOptions: [], |
| | | insuranceGaersOptions: [], |
| | | applayStatusOptions: [], |
| | | reportStatusOptions: [], |
| | | hospitalizatioFlagOptions: [], |
| | | settleStatusOptions: [], |
| | | arbitrationTypeOptions: [], |
| | | changeTypeOptions: [], |
| | | dimissionTypeOptions: [], |
| | | ageStrOptions: [], |
| | | attendYearOptions: [], |
| | | sexOptions: [], |
| | | |
| | | occupationalForm: { |
| | | occupationalId: '', |
| | | empId: '', |
| | |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | // 字典选项计算属性 |
| | | statusOptions() { return this.getDictOptions('PLITICAL') }, |
| | | empTypeOptions() { return this.getDictOptions('empType') }, |
| | | nationOptions() { return this.getDictOptions('NATION') }, |
| | | marriageOptions() { return this.getDictOptions('MARRIAGE') }, |
| | | educationOptions() { return this.getDictOptions('EDUCATION') }, |
| | | nativePlaceOptions() { return this.getDictOptions('NATIVEPLACE') }, |
| | | archivesStatusOptions() { return this.getDictOptions('archivesStatus') }, |
| | | insuranceTypeOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | empCardStatusOptions() { return this.getDictOptions('empCardStatus') }, |
| | | handbookStatusOptions() { return this.getDictOptions('handbookStatus') }, |
| | | certificateListOptions() { return this.getDictOptions('certificateList') }, |
| | | physicalExamTypeOptions() { return this.getDictOptions('PHYSICALEXAMTYPE') }, |
| | | ecgOptions() { return this.getDictOptions('ECG') }, |
| | | contractStatusOptions() { return this.getDictOptions('CONTRACTSTATUS') }, |
| | | leaveTypeOptions() { return this.getDictOptions('LEAVETYPE') }, |
| | | insuranceGaersOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | applayStatusOptions() { return this.getDictOptions('applayStatus') }, |
| | | reportStatusOptions() { return this.getDictOptions('reportStatus') }, |
| | | hospitalizatioFlagOptions() { return this.getDictOptions('hospitalizatioFlag') }, |
| | | settleStatusOptions() { return this.getDictOptions('settleStatus') }, |
| | | arbitrationTypeOptions() { return this.getDictOptions('ZCTYPE') }, |
| | | changeTypeOptions() { return this.getDictOptions('changeType') }, |
| | | dimissionTypeOptions() { return this.getDictOptions('LZTYPE') }, |
| | | ageStrOptions() { return this.getDictOptions('ageStr') }, |
| | | attendYearOptions() { return this.getDictOptions('attendYear') }, |
| | | sexOptions() { return this.getDictOptions('sex') } |
| | | }, |
| | | mounted() { |
| | | this.thisShowIndex = 1 |
| | | this.isShow(false, 0) |
| | | this.getDicts('ageStr').then(response => { |
| | | this.ageStrOptions = response.data |
| | | }) |
| | | this.getDicts('PLITICAL').then(response => { |
| | | this.statusOptions = response.data |
| | | }) |
| | | this.getDicts('attendYear').then(response => { |
| | | this.attendYearOptions = response.data |
| | | }) |
| | | this.getDicts('sex').then(response => { |
| | | this.sexOptions = response.data |
| | | }) |
| | | this.getDicts('empType').then(response => { |
| | | this.empTypeOptions = response.data |
| | | }) |
| | | this.getDicts('NATION').then(response => { |
| | | this.nationOptions = response.data |
| | | }) |
| | | this.getDicts('MARRIAGE').then(response => { |
| | | this.marriageOptions = response.data |
| | | }) |
| | | this.getDicts('EDUCATION').then(response => { |
| | | this.educationOptions = response.data |
| | | }) |
| | | this.getDicts('NATIVEPLACE').then(response => { |
| | | this.nativePlaceOptions = response.data |
| | | }) |
| | | this.getDicts('archivesStatus').then(response => { |
| | | this.archivesStatusOptions = response.data |
| | | }) |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceTypeOptions = response.data |
| | | }) |
| | | this.getDicts('empCardStatus').then(response => { |
| | | this.empCardStatusOptions = response.data |
| | | }) |
| | | this.getDicts('handbookStatus').then(response => { |
| | | this.handbookStatusOptions = response.data |
| | | }) |
| | | this.getDicts('certificateList').then(response => { |
| | | this.certificateListOptions = response.data |
| | | }) |
| | | this.getDicts('PHYSICALEXAMTYPE').then(response => { |
| | | this.physicalExamTypeOptions = response.data |
| | | }) |
| | | this.getDicts('ECG').then(response => { |
| | | this.ecgOptions = response.data |
| | | }) |
| | | this.getDicts('CONTRACTSTATUS').then(response => { |
| | | this.contractStatusOptions = response.data |
| | | }) |
| | | this.getDicts('LEAVETYPE').then(response => { |
| | | this.leaveTypeOptions = response.data |
| | | }) |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceGaersOptions = response.data |
| | | }) |
| | | this.getDicts('applayStatus').then(response => { |
| | | this.applayStatusOptions = response.data |
| | | }) |
| | | this.getDicts('reportStatus').then(response => { |
| | | this.reportStatusOptions = response.data |
| | | }) |
| | | this.getDicts('hospitalizatioFlag').then(response => { |
| | | this.hospitalizatioFlagOptions = response.data |
| | | }) |
| | | this.getDicts('settleStatus').then(response => { |
| | | this.settleStatusOptions = response.data |
| | | }) |
| | | this.getDicts('ZCTYPE').then(response => { |
| | | this.arbitrationTypeOptions = response.data |
| | | }) |
| | | this.getDicts('changeType').then(response => { |
| | | this.changeTypeOptions = response.data |
| | | }) |
| | | this.getDicts('LZTYPE').then(response => { |
| | | this.dimissionTypeOptions = response.data |
| | | }) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['ageStr', 'PLITICAL', 'attendYear', 'sex', 'empType', 'NATION', 'MARRIAGE', 'EDUCATION', 'NATIVEPLACE', 'archivesStatus', 'INSURANCETYPE', 'empCardStatus', 'handbookStatus', 'certificateList', 'PHYSICALEXAMTYPE', 'ECG', 'CONTRACTSTATUS', 'LEAVETYPE', 'applayStatus', 'reportStatus', 'hospitalizatioFlag', 'settleStatus', 'ZCTYPE', 'changeType', 'LZTYPE']) |
| | | }, |
| | | methods: { |
| | | typeFormat(row, column) { |
| | |
| | | <script> |
| | | import Pagination from '@/components/Pagination' |
| | | import { Loading } from 'element-ui' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | |
| | | export default { |
| | | components: { |
| | | Pagination |
| | | }, |
| | | mixins: [dictMixin], |
| | | data() { |
| | | return { |
| | | sort: {}, // 排序 |
| | |
| | | label: 'label' |
| | | }, |
| | | tableindex: 0, |
| | | rowitem: {}, |
| | | sexOptions: [], |
| | | insuranceTypeOptions: [], |
| | | educationOptions: [], |
| | | statusOptions: [], |
| | | ageStrOptions: [], |
| | | archivesStatusOptions: [], |
| | | empCardStatusOptions: [], |
| | | handbookStatusOptions: [], |
| | | empTypeOptions: [] |
| | | rowitem: {} |
| | | } |
| | | }, |
| | | computed: { |
| | | // 字典选项计算属性 |
| | | sexOptions() { return this.getDictOptions('sex') }, |
| | | insuranceTypeOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | educationOptions() { return this.getDictOptions('EDUCATION') }, |
| | | statusOptions() { return this.getDictOptions('PLITICAL') }, |
| | | ageStrOptions() { return this.getDictOptions('ageStr') }, |
| | | archivesStatusOptions() { return this.getDictOptions('archivesStatus') }, |
| | | empCardStatusOptions() { return this.getDictOptions('empCardStatus') }, |
| | | handbookStatusOptions() { return this.getDictOptions('handbookStatus') }, |
| | | empTypeOptions() { return this.getDictOptions('empType') }, |
| | | certificateListOptions() { return this.getDictOptions('certificateList') } |
| | | }, |
| | | mounted() { |
| | | this.initLabel() |
| | | this.fetch() |
| | | this.getDicts('empType').then(response => { |
| | | this.empTypeOptions = response.data |
| | | }) |
| | | this.getDicts('empCardStatus').then(response => { |
| | | this.empCardStatusOptions = response.data |
| | | }) |
| | | this.getDicts('handbookStatus').then(response => { |
| | | this.handbookStatusOptions = response.data |
| | | }) |
| | | this.getDicts('sex').then(response => { |
| | | this.sexOptions = response.data |
| | | }) |
| | | this.getDicts('EDUCATION').then(response => { |
| | | this.educationOptions = response.data |
| | | }) |
| | | this.getDicts('PLITICAL').then(response => { |
| | | this.statusOptions = response.data |
| | | }) |
| | | this.getDicts('ageStr').then(response => { |
| | | this.ageStrOptions = response.data |
| | | }) |
| | | this.getDicts('archivesStatus').then(response => { |
| | | this.archivesStatusOptions = response.data |
| | | }) |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceTypeOptions = response.data |
| | | }) |
| | | this.getDicts('certificateList').then(response => { |
| | | this.certificateListOptions = response.data |
| | | }) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['empType', 'empCardStatus', 'handbookStatus', 'sex', 'EDUCATION', 'PLITICAL', 'ageStr', 'archivesStatus', 'INSURANCETYPE', 'certificateList']) |
| | | }, |
| | | methods: { |
| | | changeSort(val) { |