Merge branch 'developer' of http://code.cyweb.top/scj/zhxy/v3/cloud-ui into developer

This commit is contained in:
2026-01-15 01:15:15 +08:00
144 changed files with 17736 additions and 11469 deletions

View File

@@ -8,4 +8,4 @@ VITE_OPEN=true
ENV=development ENV=development
# ADMIN 服务地址 # ADMIN 服务地址
VITE_ADMIN_PROXY_PATH = http://scj-v3.zhxy.link/api VITE_ADMIN_PROXY_PATH = http://localhost:9999

View File

@@ -6,6 +6,7 @@
"license": "不对外分发 pig4cloud 版权所有,请购买商业版权", "license": "不对外分发 pig4cloud 版权所有,请购买商业版权",
"scripts": { "scripts": {
"dev": "vite --force", "dev": "vite --force",
"local": "vite --force",
"build": "cross-env NODE_OPTIONS=--max-old-space-size=8192 vite build", "build": "cross-env NODE_OPTIONS=--max-old-space-size=8192 vite build",
"build:docker": "cross-env NODE_OPTIONS=--max-old-space-size=8192 vite build --outDir ./docker/dist/", "build:docker": "cross-env NODE_OPTIONS=--max-old-space-size=8192 vite build --outDir ./docker/dist/",
"lint:eslint": "eslint --fix --ext .js,.ts,.vue ./src", "lint:eslint": "eslint --fix --ext .js,.ts,.vue ./src",
@@ -72,8 +73,7 @@
"vue-router": "4.1.6", "vue-router": "4.1.6",
"vue3-tree-org": "^4.2.2", "vue3-tree-org": "^4.2.2",
"vue3-video-play": "1.3.1-beta.6", "vue3-video-play": "1.3.1-beta.6",
"vuedraggable": "^4.1.0", "vuedraggable": "^4.1.0"
"xlsx": "^0.18.5"
}, },
"resolutions": { "resolutions": {
"@achrinza/node-ipc": "^11.0.0", "@achrinza/node-ipc": "^11.0.0",

View File

@@ -0,0 +1,71 @@
import request from '/@/utils/request';
/**
* 获取列表
* @param query
*/
export const fetchList = (query?: any) => {
return request({
url: '/recruit/newstucheckin/page',
method: 'get',
params: query,
});
};
/**
* 新增
* @param obj
*/
export const addObj = (obj: any) => {
return request({
url: '/recruit/newstucheckin',
method: 'post',
data: obj,
});
};
/**
* 获取详情
* @param id
*/
export const getObj = (id: string | number) => {
return request({
url: `/recruit/newstucheckin/${id}`,
method: 'get',
});
};
/**
* 删除
* @param id
*/
export const delObj = (id: string | number) => {
return request({
url: `/recruit/newstucheckin/${id}`,
method: 'delete',
});
};
/**
* 更新
* @param obj
*/
export const putObj = (obj: any) => {
return request({
url: '/recruit/newstucheckin',
method: 'put',
data: obj,
});
};
/**
* 新生报到统计
* @param query
*/
export const getDataStatistics = (query?: any) => {
return request({
url: '/recruit/newstucheckin/getDataStatistics',
method: 'get',
params: query,
});
};

View File

@@ -0,0 +1,117 @@
import request from '/@/utils/request';
/**
* 获取列表
* @param query
*/
export const fetchList = (query?: any) => {
return request({
url: '/recruit/recruitImitateAdjustBatch/page',
method: 'get',
params: query,
});
};
/**
* 获取模拟学生列表
* @param query
*/
export const getMNStuList = (query?: any) => {
return request({
url: '/recruit/recruitImitateAdjustBatch/getMNStuList',
method: 'get',
params: query,
});
};
/**
* 新增
* @param obj
*/
export const addObj = (obj: any) => {
return request({
url: '/recruit/recruitImitateAdjustBatch',
method: 'post',
data: obj,
});
};
/**
* 新增模拟对象
* @param obj
*/
export const addMNObj = (obj: any) => {
return request({
url: '/recruit/recruitImitateAdjustBatch/addMNObj',
method: 'post',
data: obj,
});
};
/**
* 获取详情
* @param id
*/
export const getObj = (id: string | number) => {
return request({
url: `/recruit/recruitImitateAdjustBatch/${id}`,
method: 'get',
});
};
/**
* 获取模拟对象
* @param id
*/
export const getMNObj = (id: string | number) => {
return request({
url: `/recruit/recruitImitateAdjustBatch/getMNObj/${id}`,
method: 'get',
});
};
/**
* 删除
* @param id
*/
export const delObj = (id: string | number) => {
return request({
url: `/recruit/recruitImitateAdjustBatch/${id}`,
method: 'delete',
});
};
/**
* 删除模拟对象
* @param id
*/
export const delMNObj = (id: string | number) => {
return request({
url: `/recruit/recruitImitateAdjustBatch/delMNObj/${id}`,
method: 'delete',
});
};
/**
* 更新
* @param obj
*/
export const putObj = (obj: any) => {
return request({
url: '/recruit/recruitImitateAdjustBatch',
method: 'put',
data: obj,
});
};
/**
* 更新模拟对象
* @param obj
*/
export const putMNObj = (obj: any) => {
return request({
url: '/recruit/recruitImitateAdjustBatch/putMNObj',
method: 'put',
data: obj,
});
};

View File

@@ -0,0 +1,59 @@
import request from '/@/utils/request';
/**
* 获取列表
* @param query
*/
export const fetchList = (query?: any) => {
return request({
url: '/recruit/recruitexampeople/page',
method: 'get',
params: query,
});
};
/**
* 新增
* @param obj
*/
export const addObj = (obj: any) => {
return request({
url: '/recruit/recruitexampeople',
method: 'post',
data: obj,
});
};
/**
* 获取详情
* @param id
*/
export const getObj = (id: string | number) => {
return request({
url: `/recruit/recruitexampeople/${id}`,
method: 'get',
});
};
/**
* 删除
* @param id
*/
export const delObj = (id: string | number) => {
return request({
url: `/recruit/recruitexampeople/${id}`,
method: 'delete',
});
};
/**
* 更新
* @param obj
*/
export const putObj = (obj: any) => {
return request({
url: '/recruit/recruitexampeople',
method: 'put',
data: obj,
});
};

View File

@@ -0,0 +1,95 @@
import request from '/@/utils/request';
/**
* 获取列表
* @param query
*/
export const fetchList = (query?: any) => {
return request({
url: '/recruit/recruitprestudent/page',
method: 'get',
params: query,
});
};
/**
* 获取统计列表
* @param query
*/
export const fetchListStatic = (query?: any) => {
return request({
url: '/recruit/recruitprestudent/static',
method: 'get',
params: query,
});
};
/**
* 新增
* @param obj
*/
export const addObj = (obj: any) => {
return request({
url: '/recruit/recruitprestudent',
method: 'post',
data: obj,
});
};
/**
* 新增学生数据
* @param obj
*/
export const addObjStu = (obj: any) => {
return request({
url: '/recruit/recruitprestudent/saveStuData',
method: 'post',
data: obj,
});
};
/**
* 获取详情
* @param id
*/
export const getObj = (id: string | number) => {
return request({
url: `/recruit/recruitprestudent/${id}`,
method: 'get',
});
};
/**
* 删除
* @param id
*/
export const delObj = (id: string | number) => {
return request({
url: `/recruit/recruitprestudent/${id}`,
method: 'delete',
});
};
/**
* 更新
* @param obj
*/
export const putObj = (obj: any) => {
return request({
url: '/recruit/recruitprestudent',
method: 'put',
data: obj,
});
};
/**
* 确认登记
* @param obj
*/
export const sureDJ = (obj: any) => {
return request({
url: '/recruit/recruitprestudent/sureDJ',
method: 'put',
data: obj,
});
};

View File

@@ -0,0 +1,59 @@
import request from '/@/utils/request';
/**
* 获取列表
* @param query
*/
export const fetchList = (query?: any) => {
return request({
url: '/recruit/recruitschoolcode/page',
method: 'get',
params: query,
});
};
/**
* 新增
* @param obj
*/
export const addObj = (obj: any) => {
return request({
url: '/recruit/recruitschoolcode',
method: 'post',
data: obj,
});
};
/**
* 获取详情
* @param id
*/
export const getObj = (id: string | number) => {
return request({
url: `/recruit/recruitschoolcode/${id}`,
method: 'get',
});
};
/**
* 删除
* @param id
*/
export const delObj = (id: string | number) => {
return request({
url: `/recruit/recruitschoolcode/${id}`,
method: 'delete',
});
};
/**
* 更新
* @param obj
*/
export const putObj = (obj: any) => {
return request({
url: '/recruit/recruitschoolcode',
method: 'put',
data: obj,
});
};

View File

@@ -0,0 +1,99 @@
import request from '/@/utils/request';
/**
* 获取列表
* @param query
*/
export const fetchList = (query?: any) => {
return request({
url: '/recruit/recruitstudentplan/page',
method: 'get',
params: query,
});
};
/**
* 新增
* @param obj
*/
export const addObj = (obj: any) => {
return request({
url: '/recruit/recruitstudentplan/add',
method: 'post',
data: obj,
});
};
/**
* 获取详情
* @param id
*/
export const getObj = (id: string | number) => {
return request({
url: `/recruit/recruitstudentplan/getById`,
method: 'get',
params: { id :id},
});
};
/**
* 删除
* @param id
*/
export const delObj = (id: string | number) => {
return request({
url: `/recruit/recruitstudentplan/deletById`,
method: 'post',
data: { id :id},
});
};
/**
* 更新
* @param obj
*/
export const putObj = (obj: any) => {
return request({
url: '/recruit/recruitstudentplan/edit',
method: 'post',
data: obj,
});
};
/**
* 按教育程度列表
* @param query
*/
export const listByEdu = (query?: any) => {
return request({
url: '/recruit/recruitstudentplan/listByEdu',
method: 'get',
params: query,
});
};
/**
* 按学历列表 初中
* @param query
*/
export const listcz = (query?: any) => {
return request({
url: '/recruit/recruitstudentplan/listcz',
method: 'get',
params: query,
});
};
/**
* 列表
* @param query
*/
export const listPlanByCondition = (query?: any) => {
return request({
url: '/recruit/recruitstudentplan/listPlanByCondition',
method: 'get',
params: query,
});
};

View File

@@ -0,0 +1,71 @@
import request from '/@/utils/request';
/**
* 获取列表
* @param query
*/
export const fetchList = (query?: any) => {
return request({
url: '/recruit/recruitstudentplancorrectscoreconfig/page',
method: 'get',
params: query,
});
};
/**
* 列表
* @param query
*/
export const list = (query?: any) => {
return request({
url: '/recruit/recruitstudentplancorrectscoreconfig/list',
method: 'get',
params: query,
});
};
/**
* 新增
* @param obj
*/
export const addObj = (obj: any) => {
return request({
url: '/recruit/recruitstudentplancorrectscoreconfig',
method: 'post',
data: obj,
});
};
/**
* 获取详情
* @param id
*/
export const getObj = (id: string | number) => {
return request({
url: `/recruit/recruitstudentplancorrectscoreconfig/${id}`,
method: 'get',
});
};
/**
* 删除
* @param id
*/
export const delObj = (id: string | number) => {
return request({
url: `/recruit/recruitstudentplancorrectscoreconfig/${id}`,
method: 'delete',
});
};
/**
* 更新
* @param obj
*/
export const putObj = (obj: any) => {
return request({
url: '/recruit/recruitstudentplancorrectscoreconfig',
method: 'put',
data: obj,
});
};

View File

@@ -0,0 +1,59 @@
import request from '/@/utils/request';
/**
* 获取列表
* @param query
*/
export const fetchList = (query?: any) => {
return request({
url: '/recruit/recruitstudentplandegreeofeducation/page',
method: 'get',
params: query,
});
};
/**
* 新增
* @param obj
*/
export const addObj = (obj: any) => {
return request({
url: '/recruit/recruitstudentplandegreeofeducation',
method: 'post',
data: obj,
});
};
/**
* 获取详情
* @param id
*/
export const getObj = (id: string | number) => {
return request({
url: `/recruit/recruitstudentplandegreeofeducation/${id}`,
method: 'get',
});
};
/**
* 删除
* @param id
*/
export const delObj = (id: string | number) => {
return request({
url: `/recruit/recruitstudentplandegreeofeducation/${id}`,
method: 'delete',
});
};
/**
* 更新
* @param obj
*/
export const putObj = (obj: any) => {
return request({
url: '/recruit/recruitstudentplandegreeofeducation',
method: 'put',
data: obj,
});
};

View File

@@ -0,0 +1,73 @@
import request from '/@/utils/request';
/**
* 获取列表
* @param query
*/
export const fetchList = (query?: any) => {
return request({
url: '/recruit/recruitstudentplangroup/page',
method: 'get',
params: query,
});
};
/**
* 列表
* @param query
*/
export const list = (query?: any) => {
return request({
url: '/recruit/recruitstudentplangroup/list',
method: 'get',
params: query,
});
};
/**
* 新增
* @param obj
*/
export const addObj = (obj: any) => {
return request({
url: '/recruit/recruitstudentplangroup/add',
method: 'post',
data: obj,
});
};
/**
* 获取详情
* @param id
*/
export const getObj = (id: string | number) => {
return request({
url: `/recruit/recruitstudentplangroup/getById`,
method: 'get',
params: { id: id },
});
};
/**
* 删除
* @param id
*/
export const delObj = (id: string | number) => {
return request({
url: `/recruit/recruitstudentplangroup/deleteById`,
method: 'post',
data: { id: id },
});
};
/**
* 更新
* @param obj
*/
export const putObj = (obj: any) => {
return request({
url: '/recruit/recruitstudentplangroup/edit',
method: 'post',
data: obj,
});
};

View File

@@ -0,0 +1,95 @@
import request from '/@/utils/request';
/**
* 获取列表
* @param query
*/
export const fetchList = (query?: any) => {
return request({
url: '/recruit/recruitstudentschool/page',
method: 'get',
params: query,
});
};
/**
* 列表按组ID
* @param query
*/
export const list = (query?: any) => {
return request({
url: '/recruit/recruitstudentschool/listByGroupId',
method: 'get',
params: query,
});
};
/**
* 区域列表
* @param query
*/
export const areaList = (query?: any) => {
return request({
url: '/recruit/recruitstudentschool/areaList',
method: 'get',
params: query,
});
};
/**
* 区域子列表
* @param query
*/
export const areaSonList = (query?: any) => {
return request({
url: '/recruit/recruitstudentschool/areaSonList',
method: 'get',
params: query,
});
};
/**
* 新增
* @param obj
*/
export const addObj = (obj: any) => {
return request({
url: '/recruit/recruitstudentschool',
method: 'post',
data: obj,
});
};
/**
* 获取详情
* @param id
*/
export const getObj = (id: string | number) => {
return request({
url: `/recruit/recruitstudentschool/${id}`,
method: 'get',
});
};
/**
* 删除
* @param id
*/
export const delObj = (id: string | number) => {
return request({
url: `/recruit/recruitstudentschool/${id}`,
method: 'delete',
});
};
/**
* 更新
* @param obj
*/
export const putObj = (obj: any) => {
return request({
url: '/recruit/recruitstudentschool',
method: 'put',
data: obj,
});
};

View File

@@ -0,0 +1,495 @@
import request from '/@/utils/request';
/**
* 获取列表
* @param query
*/
export const fetchList = (query?: any) => {
return request({
url: '/recruit/recruitstudentsignup/page',
method: 'get',
params: query,
});
};
/**
* 班级分页
* @param query
*/
export const classPage = (query?: any) => {
return request({
url: '/recruit/recruitstudentsignup/classPage',
method: 'get',
params: query,
});
};
/**
* 返校学生分页
* @param query
*/
export const backSchoolStuPage = (query?: any) => {
return request({
url: '/recruit/recruitstudentsignup/backSchoolStuPage',
method: 'get',
params: query,
});
};
/**
* 获取列表
* @param query
*/
export const getList = (query?: any) => {
return request({
url: '/recruit/recruitstudentsignup/getList',
method: 'get',
params: query,
});
};
/**
* 初中分数线统计
* @param query
*/
export const juniorlneStatic = (query?: any) => {
return request({
url: '/recruit/recruitstudentsignup/juniorlneStatic',
method: 'get',
params: query,
});
};
/**
* 在校成绩统计
* @param query
*/
export const inSchoolSocreStatic = (query?: any) => {
return request({
url: '/recruit/recruitstudentsignup/inSchoolSocreStatic',
method: 'get',
params: query,
});
};
/**
* 按用户统计获取联系信息
* @param query
*/
export const getContantByUserStatic = (query?: any) => {
return request({
url: '/recruit/recruitstudentsignup/getContantByUserStatic',
method: 'get',
params: query,
});
};
/**
* 区域统计
* @param query
*/
export const getAreaStatic = (query?: any) => {
return request({
url: '/recruit/recruitstudentsignup/getAreaStatic',
method: 'get',
params: query,
});
};
/**
* 学校统计
* @param query
*/
export const getSchoolStatic = (query?: any) => {
return request({
url: '/recruit/recruitstudentsignup/getSchoolStatic',
method: 'get',
params: query,
});
};
/**
* 学校区域统计
* @param query
*/
export const schoolAreaStatic = (query?: any) => {
return request({
url: '/recruit/recruitstudentsignup/schoolAreaStatic',
method: 'get',
params: query,
});
};
/**
* 按部门统计获取联系信息
* @param query
*/
export const getContantByDeptStatic = (query?: any) => {
return request({
url: '/recruit/recruitstudentsignup/getContantByDeptStatic',
method: 'get',
params: query,
});
};
/**
* 获取表格统计数据列表
* @param query
*/
export const getTabStaticDataList = (query?: any) => {
return request({
url: '/recruit/recruitstudentsignup/getTabStaticDataList',
method: 'get',
params: query,
});
};
/**
* 获取学生宿舍列表
* @param query
*/
export const fetchListStuDorm = (query?: any) => {
return request({
url: '/recruit/recruitstudentsignup/fetchListStuDorm',
method: 'get',
params: query,
});
};
/**
* 新增
* @param obj
*/
export const addObj = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup',
method: 'post',
data: obj,
});
};
/**
* 修改班级信息
* @param obj
*/
export const changeClassInfo = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/changeClassInfo',
method: 'post',
data: obj,
});
};
/**
* 获取专业班级
* @param obj
*/
export const getMajorClass = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/getMajorClass',
method: 'post',
data: obj,
});
};
/**
* 单个班级
* @param obj
*/
export const oneClass = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/oneClass',
method: 'post',
data: obj,
});
};
/**
* 单个学号
* @param obj
*/
export const oneStuNo = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/oneStuNo',
method: 'post',
data: obj,
});
};
/**
* 学生工作
* @param obj
*/
export const tbStuWork = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/tbStuWork',
method: 'post',
data: obj,
});
};
/**
* 发送图片
*/
export const sendImg = () => {
return request({
url: '/recruit/recruitplanmajor/setImg',
method: 'get',
});
};
/**
* 推送城市
* @param obj
*/
export const pushCity = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/pushCity',
method: 'post',
data: obj,
});
};
/**
* 获取详情
* @param id
*/
export const getObj = (id: string | number) => {
return request({
url: `/recruit/recruitstudentsignup/${id}`,
method: 'get',
});
};
/**
* 删除
* @param id
*/
export const delObj = (id: string | number) => {
return request({
url: `/recruit/recruitstudentsignup/${id}`,
method: 'delete',
});
};
/**
* 删除服务
* @param id
*/
export const delFw = (id: string | number) => {
return request({
url: `/recruit/recruitstudentsignup/delFw/${id}`,
method: 'delete',
});
};
/**
* 更新
* @param obj
*/
export const putObj = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup',
method: 'put',
data: obj,
});
};
/**
* 更新返校对象
* @param obj
*/
export const putBackObj = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/putBackObj',
method: 'put',
data: obj,
});
};
/**
* 导出压缩包
* @param data
*/
export const exportZip = (data?: any) => {
return request({
url: '/recruit/recruitstudentsignup/exportZip',
method: 'get',
responseType: 'blob',
headers: { 'Content-Type': 'application/json; application/octet-stream' },
params: data,
});
};
/**
* 离校
* @param obj
*/
export const leaveSchool = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/leaveSchool',
method: 'put',
data: obj,
});
};
/**
* 导出Word
* @param obj
*/
export const toWord = (obj: any) => {
return request({
url: `/recruit/recruitstudentsignup/exportRecruitStuPdf/${obj.id}`,
method: 'get',
});
};
/**
* 预交退
* @param obj
*/
export const yjOut = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/yjOut',
method: 'put',
data: obj,
});
};
/**
* 预交送
* @param obj
*/
export const yjSend = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/yjSend',
method: 'put',
data: obj,
});
};
/**
* 确认录取通知
* @param obj
*/
export const sureLQTZ = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/sureLQTZ',
method: 'put',
data: obj,
});
};
/**
* 设置服务
* @param obj
*/
export const setFw = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/setFw',
method: 'put',
data: obj,
});
};
/**
* 更新信息
* @param obj
*/
export const updateInfo = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/updateInfo',
method: 'put',
data: obj,
});
};
/**
* 转专业
* @param obj
*/
export const changeMajor = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/majorChange',
method: 'put',
data: obj,
});
};
/**
* 重新推送
* @param obj
*/
export const rePush = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/rePush',
method: 'put',
data: obj,
});
};
/**
* 退回推送
* @param obj
*/
export const backPush = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/backPush',
method: 'put',
data: obj,
});
};
/**
* 批量推送全部
* @param obj
*/
export const batchPushAll = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/backPushAll',
method: 'put',
data: obj,
});
};
/**
* 百度地图GL
* @param ak
*/
export const BMPGL = (ak: string) => {
return new Promise(function (resolve, reject) {
window.init = function () {
// eslint-disable-next-line
resolve(BMapGL);
};
const script = document.createElement('script');
script.type = 'text/javascript';
script.src = `https://api.map.baidu.com/api?v=1.0&type=webgl&ak=${ak}&callback=init`;
script.onerror = reject;
document.head.appendChild(script);
});
};
/**
* 宿舍申请分析
* @param obj
*/
export const dormApplyAnalysis = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/dormApplyAnalysis',
method: 'post',
data: obj,
});
};
/**
* 面试
* @param obj
*/
export const interview = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignup/interview',
method: 'post',
data: obj,
});
};

View File

@@ -0,0 +1,59 @@
import request from '/@/utils/request';
/**
* 获取列表
* @param query
*/
export const fetchList = (query?: any) => {
return request({
url: '/recruit/recruitstudentsignupturnover/page',
method: 'get',
params: query,
});
};
/**
* 新增
* @param obj
*/
export const addObj = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignupturnover',
method: 'post',
data: obj,
});
};
/**
* 获取详情
* @param id
*/
export const getObj = (id: string | number) => {
return request({
url: `/recruit/recruitstudentsignupturnover/${id}`,
method: 'get',
});
};
/**
* 删除
* @param id
*/
export const delObj = (id: string | number) => {
return request({
url: `/recruit/recruitstudentsignupturnover/${id}`,
method: 'delete',
});
};
/**
* 更新
* @param obj
*/
export const putObj = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignupturnover',
method: 'put',
data: obj,
});
};

View File

@@ -0,0 +1,59 @@
import request from '/@/utils/request';
/**
* 获取列表
* @param query
*/
export const fetchList = (query?: any) => {
return request({
url: '/recruit/recruitstudentsignupturnovermoneychange/page',
method: 'get',
params: query,
});
};
/**
* 新增
* @param obj
*/
export const addObj = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignupturnovermoneychange',
method: 'post',
data: obj,
});
};
/**
* 获取详情
* @param id
*/
export const getObj = (id: string | number) => {
return request({
url: `/recruit/recruitstudentsignupturnovermoneychange/${id}`,
method: 'get',
});
};
/**
* 删除
* @param id
*/
export const delObj = (id: string | number) => {
return request({
url: `/recruit/recruitstudentsignupturnovermoneychange/${id}`,
method: 'delete',
});
};
/**
* 更新
* @param obj
*/
export const putObj = (obj: any) => {
return request({
url: '/recruit/recruitstudentsignupturnovermoneychange',
method: 'put',
data: obj,
});
};

View File

@@ -1,81 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',ç
// prop: 'tenantId'
// },
{
label: '学历名称',
prop: 'qualificationName'
},
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks',
},
]
}

View File

@@ -1,204 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
const typeDic=[
{label:'驻校单位',value:'0'},
{label:'培训单位',value:'1'},
{label:'二期单位',value:'2'},
]
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '主键',
prop: 'id',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '创建人',
prop: 'createBy',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '创建时间',
prop: 'createTime',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '更新人',
prop: 'updateBy',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '更新时间',
prop: 'updateTime',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '删除标志位',
prop: 'delFlag',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '租户id',
prop: 'tenantId',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '排序',
prop: 'sort',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '类型',
prop: 'companyType',
span:24,
search: false,
dicData:typeDic,
display: false,
type:'select',
rules: [{
required: true,
trigger: 'blur',
message:"请输入类型"
}]
},
{
label: '单位名称',
prop: 'companyName',
span:24,
search: true,
rules: [{
required: true,
trigger: 'blur',
message:"请输入单位名称"
}]
},
{
label: '开始时段',
prop: 'allowStartTime',
type: 'date',
format: "yyyy-MM-dd",
valueFormat: "yyyy-MM-dd",
span:24,
},
{
label: '截止时段',
prop: 'allowEndTime',
type: 'date',
format: "yyyy-MM-dd",
valueFormat: "yyyy-MM-dd",
span:24,
},
// {
// label: '管理员',
// prop: 'userName',
// formslot: true,
// span:24,
// hide:true,
// },
// {
// label: '管理员',
// prop: 'realName',
// display:false,
// addDisplay:false,
// editDisabled:true,
// editDisplay:false,
// visdiplay:false
// },
{
label: '人数',
prop: 'nums',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '已上报人数',
prop: 'okNums',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '未上报人数',
prop: 'noOkNums',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '备注',
prop: 'remarks',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
]
}

View File

@@ -1,586 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
selection:true,
column: [
{
label: '主键',
prop: 'id',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '创建人',
prop: 'createBy',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '创建时间',
prop: 'createTime',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '更新人',
prop: 'updateBy',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '更新时间',
prop: 'updateTime',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '删除标志位',
prop: 'delFlag',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '租户id',
prop: 'tenantId',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '排序',
prop: 'sort',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '单位名称',
prop: 'companyId',
type: 'select',
filterable:true,
dicUrl:`/professional/outercompany/getList?companyType=0`,
props:{
label:'companyName',
value:'id',
},
search:true,
searchFilterable:true,
filter:true,
rules: [{
required: true,
trigger: 'blur',
message:"请选择单位"
}]
},
{
label: '单位名称',
prop: 'companyName',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '职员编号',
prop: 'employeeNo',
addDisplay:false,
editDisabled:true,
search:true,
},
{
label: '姓名',
prop: 'realName',
search:true,
rules: [{
required: true,
trigger: 'blur',
message:"请填写姓名"
}]
},
{
label: '身份证',
prop: 'idCard',
search:true,
hide:true,
rules: [{
required: true,
trigger: 'blur',
message:"请填写身份证号"
}]
},
{
label: '手机',
prop: 'mobile',
search:true,
hide:true,
rules: [{
required: true,
trigger: 'blur',
message:"请填写手机号"
}]
},
{
label: '职位',
prop: 'position',
hide:true
},
{
label: '家庭地址',
prop: 'address',
hide:true,
rules: [{
required: true,
trigger: 'blur',
message:"请填写家庭住址"
}]
},
{
label: '允许进出',
prop: 'inoutFlag',
type: 'select',
dicUrl: '/admin/dict/item/type/yes_no',
search: true,
rules: [{
required: true,
trigger: 'blur',
message:"请选择是否允许进出"
}]
},
{
width: 300,
label: '头像',
prop: 'imageUrl',
slot:true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
},
{
label: '备注',
prop: 'remarks',
type:'textarea',
hide: true,
},
]
}
export const tableSecondOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
selection:true,
column: [
{
label: '主键',
prop: 'id',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '创建人',
prop: 'createBy',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '创建时间',
prop: 'createTime',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '更新人',
prop: 'updateBy',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '更新时间',
prop: 'updateTime',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '删除标志位',
prop: 'delFlag',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '租户id',
prop: 'tenantId',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '排序',
prop: 'sort',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '单位名称',
prop: 'companyId',
type: 'select',
filterable:true,
dicUrl:`/professional/outercompany/getList?companyType=2`,
props:{
label:'companyName',
value:'id',
},
search:true,
searchFilterable:true,
filter:true,
rules: [{
required: true,
trigger: 'blur',
message:"请选择单位"
}]
},
{
label: '单位名称',
prop: 'companyName',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '职员编号',
prop: 'employeeNo',
addDisplay:false,
editDisabled:true,
search:true,
},
{
label: '姓名',
prop: 'realName',
search:true,
rules: [{
required: true,
trigger: 'blur',
message:"请填写姓名"
}]
},
{
label: '身份证',
prop: 'idCard',
search:true,
hide:true,
rules: [{
required: true,
trigger: 'blur',
message:"请填写身份证号"
}]
},
{
label: '手机',
prop: 'mobile',
search:true,
hide:true,
rules: [{
required: true,
trigger: 'blur',
message:"请填写手机号"
}]
},
{
label: '职位',
prop: 'position',
hide:true
},
{
label: '家庭地址',
prop: 'address',
hide:true,
rules: [{
required: true,
trigger: 'blur',
message:"请填写家庭住址"
}]
},
{
label: '允许进出',
prop: 'inoutFlag',
type: 'select',
dicUrl: '/admin/dict/item/type/yes_no',
search: true,
rules: [{
required: true,
trigger: 'blur',
message:"请选择是否允许进出"
}]
},
{
width: 300,
label: '头像',
prop: 'imageUrl',
slot:true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
},
{
label: '备注',
prop: 'remarks',
type:'textarea',
hide: true,
},
]
}
export const tableOptionTrain = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
selection:true,
column: [
{
label: '主键',
prop: 'id',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '创建人',
prop: 'createBy',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '创建时间',
prop: 'createTime',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '更新人',
prop: 'updateBy',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '更新时间',
prop: 'updateTime',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '删除标志位',
prop: 'delFlag',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '租户id',
prop: 'tenantId',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '排序',
prop: 'sort',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '班级名称',
prop: 'companyId',
type: 'select',
filterable:true,
dicUrl:`/professional/outercompany/getList?companyType=1`,
props:{
label:'companyName',
value:'id',
},
search:true,
searchFilterable:true,
filter:true
},
{
label: '班级名称',
prop: 'companyName',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '学员编号',
prop: 'employeeNo',
addDisplay:false,
editDisabled:true,
search:true,
},
{
label: '姓名',
prop: 'realName',
search:true,
},
{
label: '身份证',
prop: 'idCard',
search:true,
hide:true
},
{
label: '手机',
prop: 'mobile',
search:true,
hide:true
},
// {
// label: '职位',
// prop: 'position',
// hide:true
// },
// {
// label: '地址',
// prop: 'address',
// hide:true
// },
{
label: '允许进出',
prop: 'inoutFlag',
type: 'select',
dicUrl: '/admin/dict/item/type/yes_no',
search: true
},
{
width: 300,
label: '头像',
prop: 'imageUrl',
slot:true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
},
{
label: '备注',
prop: 'remarks',
type:'textarea',
hide: true,
},
]
}

View File

@@ -1,430 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
import {states} from "@/const/crud/asset/assetsinvalid/assetassetsinvalid";
export const companyType=[
{
label:'入驻',
value:'0'
},
{
label:'合作',
value:'1'
},
]
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
dialogHeight: 800,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '主键',
prop: 'id',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '学院',
prop: 'deptCode',
type:'select',
multiple:true,
labelWidth:120,
search:true,
filterable:true,
searchFilterable:true,
dicUrl: '/basic/basicdept/getDeptList?secondFlag=1',
props: {
label: 'deptName',
value: 'deptCode'
},
rules: [{
required: true,
trigger: 'blur',
message:"请选择学院"
}]
},
{
label: '入驻类型',
labelWidth:120,
prop: 'companyType',
type: 'select',
search:true,
dicData:companyType,
props:{
label:'label',
value:'value'
},
rules: [{
required: true,
trigger: 'blur',
message:"请选择是否入驻类型"
}]
},
{
label: '公司名称',
labelWidth:120,
prop: 'companyName',
search:true,
rules: [{
required: true,
trigger: 'blur',
message:"请填写公司名称"
},
{ max: 30, message: '长度在 30 个字符', trigger: 'blur' },
]
},
{
label: '统一社会编码',
labelWidth:120,
prop: 'companyCode',
search:true,
editDisabled:true,
editDisplay:true,
rules: [{
required: true,
trigger: 'blur',
message:"请填写统一社会编码"
},
{ max: 30, message: '长度在 30 个字符', trigger: 'blur' },
]
},
{
label: '联系人',
labelWidth:120,
prop: 'contactsName',
rules: [{
required: true,
trigger: 'blur',
message:"请填写联系人"
},
{ max: 30, message: '长度在 30 个字符', trigger: 'blur' },
]
},
{
label: '联系电话',
labelWidth:120,
prop: 'contactsPhone',
rules: [{
required: true,
trigger: 'blur',
message:"请填写联系电话"
},
{ max: 30, message: '长度在 30 个字符', trigger: 'blur' },
]
},
{
label: '高新技术企业',
labelWidth:120,
prop: 'isTechnology',
type: 'select',
search:true,
dicUrl: '/admin/dict/item/type/yes_no',
props:{
label:'label',
value:'value'
},
rules: [{
required: true,
trigger: 'blur',
message:"请选择是否高新技术企业"
}]
},
{
label: '员工数',
labelWidth:120,
type:'number',
prop: 'employeesNum',
},
{
label: '企业场景',
labelWidth:120,
prop: 'companyImg',
hide: true,
slot:true,
formslot:true
},
{
label: '年产值(万元)',
labelWidth:120,
type:'number',
prop: 'annualOutputValue'
},
{
label: '设备总值(万元)',
labelWidth:120,
prop: 'equipmentValue',
hide: true,
type:'number'
},
{
label: '厂房面积(m²)',
prop: 'plantArea',
hide: true,
type:'number',
labelWidth:120
},
{
label: '发明专利数',
prop: 'inventionPatent',
labelWidth:120,
hide: true,
type:'number'
},
{
label: '实用新型专利数',
labelWidth:120,
prop: 'utilityModel',
hide: true,
type:'number'
},
{
label: '企业规模',
labelWidth:120,
prop: 'enterpriseSize',
hide: true
},
{
label: '注册资本',
labelWidth:120,
prop: 'registeredCapital',
hide: true
},
{
label: '存续年限',
labelWidth:120,
prop: 'survivalPeriod',
hide: true
},
{
label: '所处行业',
labelWidth:120,
prop: 'industryCode',
type: 'select',
span:24,
search:true,
dicUrl: '/admin/dict/item/type/company_industry',
props:{
label:'label',
value:'value'
},
rules: [{
required: true,
trigger: 'blur',
message:"请选择是否高新技术企业"
}]
},
{
label: '目标房型1',
labelWidth:120,
prop: 'targetRoomOne',
span:8,
hide: true
},
{
label: '楼层要求1',
labelWidth:120,
span:8,
prop: 'floorRequirementsOne',
hide: true
},
{
label: '面积要求1',
labelWidth:120,
span:8,
prop: 'areaRequirementsOne',
hide: true
},
{
label: '目标房型2',
labelWidth:120,
span:8,
prop: 'targetRoomTwo',
hide: true
},
{
label: '楼层要求2',
labelWidth:120,
span:8,
prop: 'floorRequirementsTwo',
hide: true
},
{
label: '面积要求2',
labelWidth:120,
span:8,
prop: 'areaRequirementsTwo',
hide: true
},
{
label: '目标房型3',
labelWidth:120,
span:8,
prop: 'targetRoomThree',
hide: true
},
{
label: '楼层要求3',
labelWidth:120,
span:8,
prop: 'floorRequirementsThree',
hide: true
},
{
label: '面积要求3',
labelWidth:120,
span:8,
prop: 'areaRequirementsThree',
hide: true
},
{
label: '技术技能',
labelWidth:120,
prop: 'technicalSkills',
hide: true,
type:'textarea',
row:true,
span:24,
rules: [
{ max: 255, message: '长度在 255 个字符', trigger: 'blur' },
]
},
{
label: '主营业务',
labelWidth:120,
prop: 'mainBusiness',
type:'textarea',
row:true,
span:24,
rules: [
{
required: true,
trigger: 'blur',
message:"请填写主营业务"
},
{ max: 255, message: '长度在 255 个字符', trigger: 'blur' },
]
},
{
label: '主要产品',
labelWidth:120,
prop: 'mainProducts',
hide: true,
type:'textarea',
row:true,
span:24,
rules: [
{ max: 255, message: '长度在 255 个字符', trigger: 'blur' },
]
},
{
label: '近三年生产总值',
labelWidth:120,
prop: 'gross',
hide: true,
type:'textarea',
row:true,
span:24,
rules: [
{ max: 255, message: '长度在 255 个字符', trigger: 'blur' },
]
},
{
label: '发展前景',
labelWidth:120,
prop: 'developmentProspects',
hide: true,
type:'textarea',
row:true,
span:24,
rules: [
{ max: 255, message: '长度在 255 个字符', trigger: 'blur' },
]
},
{
label: '投入计划',
labelWidth:120,
prop: 'investmentPlan',
hide: true,
type:'textarea',
row:true,
span:24,
rules: [
{ max: 255, message: '长度在 255 个字符', trigger: 'blur' },
]
},
{
label: '经营范围',
labelWidth:120,
prop: 'businessScope',
hide: true,
type:'textarea',
row:true,
span:24,
rules: [
{ max: 255, message: '长度在 255 个字符', trigger: 'blur' },
]
},
{
label: '备注',
labelWidth:120,
prop: 'remarks',
type:'textarea',
row:true,
span:24,
rules: [
{ max: 255, message: '长度在 255 个字符', trigger: 'blur' },
]
},
{
label: '校企协议书',
labelWidth:120,
prop: 'agreement',
addDisplay: false,
editDisplay: false,
slot:true,
},
{
label: '校企协议书',
labelWidth:120,
prop: 'isAgreement',
type: 'select',
search:true,
dicUrl: '/admin/dict/item/type/yes_no',
props:{
label:'label',
value:'value'
},
addDisplay: false,
editDisplay: false,
hide:true
},
]
}

View File

@@ -1,165 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '企业名称',
labelWidth:200,
prop: 'companyId',
filterable:true,
searchFilterable:true,
search:true,
type:'select',
dicUrl: '/professional/phaseintentioncompany/list',
props: {
label: 'companyName',
value: 'id'
},
rules: [{
required: true,
message: '企业不能为空',
trigger: 'blur'
}
]
},
{
label: '开始时间',
prop: 'beginTime',
type:'date',
labelWidth:200,
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [{
required: true,
message: "请选择开始时间",
trigger: "blur"
}],
},
{
label: '结束时间',
prop: 'endTime',
type:'date',
labelWidth:200,
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [{
required: true,
message: "请选择结束时间",
trigger: "blur"
}],
},
{
label: '楼号',
prop: 'buildNo',
labelWidth:200,
rules: [{
required: true,
message: '楼号不能为空',
trigger: 'blur'
}
]
},
{
label: '楼层',
prop: 'levelVal',
labelWidth:200,
rules: [{
required: true,
message: '楼层不能为空',
trigger: 'blur'
}
]
},
{
label: '面积(平方)',
prop: 'areaVal',
labelWidth:200,
rules: [{
required: true,
message: '面积不能为空',
trigger: 'blur'
}
]
},
{
label: '租金(元/平方/年)',
prop: 'money',
labelWidth:200,
type:'number',
rules: [{
required: true,
message: '租金不能为空',
trigger: 'blur'
}
]
},
{
label: '租金总计',
prop: 'allMoney',
labelWidth:200,
type:'number',
rules: [{
required: true,
message: '租金不能为空',
trigger: 'blur'
}
]
},
{
label: '物业管理费',
prop: 'wyMoney',
labelWidth:200,
type:'number',
rules: [{
required: true,
message: '物业管理费为空',
trigger: 'blur'
}
]
},
{
label: '创建时间',
prop: 'createTime',
addDisplay:false,
addDisableed:false,
editDisabled:false,
editDisplay:false,
},
{
label: '备注',
labelWidth:200,
prop: 'remarks',
type: 'textarea',
span: 24,
minRows: 2,
maxlength: 250, //长度限制 0/n
addDisplay:true, //添加是否显示
editDisplay:true, //修改是否显示
},
]
}

View File

@@ -1,114 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '企业名称',
labelWidth:200,
prop: 'companyId',
filterable:true,
searchFilterable:true,
search:true,
type:'select',
dicUrl: '/professional/phaseintentioncompany/list',
props: {
label: 'companyName',
value: 'id'
},
rules: [{
required: true,
message: '企业不能为空',
trigger: 'blur'
}
]
},
{
label: '建设人',
labelWidth:200,
prop: 'checkPeople'
},
{
label: '建设地点',
labelWidth:200,
prop: 'checkAddress'
},
{
label: '检查或与实习基地建设情况',
labelWidth:200,
prop: 'checkBaseSituation'
},
{
label: '问题及处理情况',
labelWidth:200,
prop: 'feedback'
},
{
label: '监察人',
labelWidth:200,
prop: 'checkName'
},
{
label: '填写日期',
prop: 'inTime',
type:'date',
labelWidth:200,
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [{
required: true,
message: "请选择时间",
trigger: "blur"
}],
},
{
label: '建设记录上传',
labelWidth:200,
prop: 'filePath',
hide: true,
slot:true,
formslot:true
},
{
label: '建设记录下载',
labelWidth:120,
prop: 'filePathValue',
addDisplay: false,
editDisplay: false,
slot:true,
},
{
label: '备注',
type:'textarea',
labelWidth:200,
row:true,
span:24,
prop: 'remarks'
},
]
}

View File

@@ -1,114 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '企业名称',
labelWidth:200,
prop: 'companyId',
filterable:true,
searchFilterable:true,
search:true,
type:'select',
dicUrl: '/professional/phaseintentioncompany/list',
props: {
label: 'companyName',
value: 'id'
},
rules: [{
required: true,
message: '企业不能为空',
trigger: 'blur'
}
]
},
{
label: '建设人',
labelWidth:200,
prop: 'checkPeople'
},
{
label: '建设地点',
labelWidth:200,
prop: 'checkAddress'
},
{
label: '检查或与实习基地建设情况',
labelWidth:200,
prop: 'checkBaseSituation'
},
{
label: '问题及处理情况',
labelWidth:200,
prop: 'feedback'
},
{
label: '监察人',
labelWidth:200,
prop: 'checkName'
},
{
label: '填写日期',
prop: 'inTime',
type:'date',
labelWidth:200,
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [{
required: true,
message: "请选择时间",
trigger: "blur"
}],
},
{
label: '检查文件上传',
labelWidth:200,
prop: 'filePath',
hide: true,
slot:true,
formslot:true
},
{
label: '检查文件上传',
labelWidth:120,
prop: 'filePathValue',
addDisplay: false,
editDisplay: false,
slot:true,
},
{
label: '备注',
type:'textarea',
labelWidth:200,
row:true,
span:24,
prop: 'remarks'
},
]
}

View File

@@ -1,118 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '企业名称',
labelWidth:200,
prop: 'companyId',
filterable:true,
searchFilterable:true,
search:true,
type:'select',
dicUrl: '/professional/phaseintentioncompany/list',
props: {
label: 'companyName',
value: 'id'
},
rules: [{
required: true,
message: '企业不能为空',
trigger: 'blur'
}
]
},
{
label: '检查人',
labelWidth:200,
prop: 'checkPeople'
},
{
label: '检查地点',
labelWidth:200,
prop: 'checkAddress'
},
{
label: '检查或与实习基地联系情况',
labelWidth:200,
prop: 'checkBaseSituation'
},
{
label: '检查或与学生联系情况',
labelWidth:200,
prop: 'checkStuSituation'
},
{
label: '问题及处理情况',
labelWidth:200,
prop: 'feedback'
},
{
label: '监察人',
labelWidth:200,
prop: 'checkName'
},
{
label: '填写日期',
prop: 'inTime',
type:'date',
labelWidth:200,
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [{
required: true,
message: "请选择时间",
trigger: "blur"
}],
},
{
label: '检查文件上传',
labelWidth:200,
prop: 'filePath',
hide: true,
slot:true,
formslot:true
},
{
label: '检查文件上传',
labelWidth:120,
prop: 'filePathValue',
addDisplay: false,
editDisplay: false,
slot:true,
},
{
label: '备注',
type:'textarea',
labelWidth:200,
row:true,
span:24,
prop: 'remarks'
},
]
}

View File

@@ -1,124 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '企业名称',
prop: 'companyId',
filterable:true,
searchFilterable:true,
search:true,
type:'select',
dicUrl: '/professional/phaseintentioncompany/list',
props: {
label: 'companyName',
value: 'id'
},
rules: [{
required: true,
message: '企业不能为空',
trigger: 'blur'
}
]
},
{
label: '建设时间',
prop: 'openTime',
type:'date',
format:'yyyy-MM-dd HH:mm:ss',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [{
required: true,
message: '建设时间不能为空',
trigger: 'blur'
}
]
},
{
label: '班级名称',
prop: 'className',
rules: [{
required: true,
message: '班级名称不能为空',
trigger: 'blur'
}
]
},
{
label: '人数',
prop: 'peopleNumber',
type:'number',
rules: [{
required: true,
message: '人数不能为空',
trigger: 'blur'
}
]
},
{
label: '协议',
prop: 'isXy',
dicUrl: '/admin/dict/item/type/yes_no',
type: 'select',
props:{
label:'label',
value:'value'
},
rules: [{
required: true,
message: '协议不能为空',
trigger: 'blur'
}]
},
{
label: '报道',
prop: 'isBd',
dicUrl: '/admin/dict/item/type/yes_no',
type: 'select',
props:{
label:'label',
value:'value'
},
rules: [{
required: true,
message: '报道不能为空',
trigger: 'blur'
}]
},
{
label: '备注',
prop: 'remarks',
type: 'textarea',
span: 24,
minRows: 2,
maxlength: 250, //长度限制 0/n
addDisplay:true, //添加是否显示
editDisplay:true, //修改是否显示
},
]
}

View File

@@ -1,113 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
height: 800,
addBtn: false,
dic: [],
column: [
{
label: '企业名称',
prop: 'companyId',
filterable:true,
searchFilterable:true,
search:true,
type:'select',
dicUrl: '/professional/phaseintentioncompany/list',
props: {
label: 'companyName',
value: 'id'
},
rules: [{
required: true,
message: '企业不能为空',
trigger: 'blur'
}
]
},
{
label: '主题/模块/课程',
prop: 'titleName',
rules: [{
required: true,
message: '主题/模块/课程不能为空',
trigger: 'blur'
}]
},
{
label: '参与日期',
prop: 'partTime',
type:'date',
format:'yyyy-MM-dd HH:mm:ss',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [{
required: true,
message: '参与日期不能为空',
trigger: 'blur'
}
]
},
{
label: '地点',
prop: 'address'
},
{
label: '教学形式',
prop: 'teachingForm'
},
{
label: '企业主讲人(职务)',
prop: 'duties'
},
{
label: '面向对象',
prop: 'objectOriented'
},
{
label: '其他部门参与情况',
prop: 'otherDept'
},
{
label: '级别',
prop: 'levelVal'
},
{
label: '折算课时',
prop: 'calculateClass',
type:'number',
},
{
label: '备注',
prop: 'remarks',
type: 'textarea',
span: 24,
minRows: 2,
maxlength: 250, //长度限制 0/n
addDisplay:true, //添加是否显示
editDisplay:true, //修改是否显示
},
]
}

View File

@@ -1,159 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '企业名称',
prop: 'companyId',
filterable:true,
searchFilterable:true,
search:true,
type:'select',
dicUrl: '/professional/phaseintentioncompany/list',
props: {
label: 'companyName',
value: 'id'
},
rules: [{
required: true,
message: '企业不能为空',
trigger: 'blur'
}
]
},
{
label: '建设日期',
prop: 'postTime',
type:'date',
format:'yyyy-MM-dd HH:mm:ss',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [{
required: true,
message: '建设日期不能为空',
trigger: 'blur'
}
]
},
{
label: '基地名称',
prop: 'postName',
span: 24,
rules: [{
required: true,
message: '基地名称不能为空',
trigger: 'blur'
}]
},
{
label: '岗位数',
type:'number',
prop: 'postNumber',
rules: [{
required: true,
message: '岗位数不能为空',
trigger: 'blur'
}]
},
{
label: '工位数',
type:'number',
prop: 'workNumber',
rules: [{
required: true,
message: '工位数不能为空',
trigger: 'blur'
}]
},
{
label: '运行次数',
type:'number',
prop: 'runTimes',
rules: [{
required: true,
message: '运行次数不能为空',
trigger: 'blur'
}]
},
{
label: '协议',
prop: 'isXy',
dicUrl: '/admin/dict/item/type/yes_no',
type: 'select',
props:{
label:'label',
value:'value'
},
rules: [{
required: true,
message: '协议不能为空',
trigger: 'blur'
}]
},
{
label: '挂牌',
prop: 'isGp',
dicUrl: '/admin/dict/item/type/yes_no',
type: 'select',
props:{
label:'label',
value:'value'
},
rules: [{
required: true,
message: '挂牌不能为空',
trigger: 'blur'
}]
},
{
label: '报道',
prop: 'isBd',
dicUrl: '/admin/dict/item/type/yes_no',
type: 'select',
props:{
label:'label',
value:'value'
},
rules: [{
required: true,
message: '报道不能为空',
trigger: 'blur'
}]
},
{
label: '备注',
prop: 'remarks',
type: 'textarea',
span: 24,
minRows: 2,
maxlength: 250, //长度限制 0/n
addDisplay:true, //添加是否显示
editDisplay:true, //修改是否显示
},
]
}

View File

@@ -1,164 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '企业名称',
prop: 'companyId',
filterable:true,
searchFilterable:true,
search:true,
type:'select',
dicUrl: '/professional/phaseintentioncompany/list',
props: {
label: 'companyName',
value: 'id'
},
rules: [{
required: true,
message: '企业不能为空',
trigger: 'blur'
}
]
},
{
label: '开始时间',
prop: 'beginTime',
type:'date',
format:'yyyy-MM-dd HH:mm:ss',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [{
required: true,
message: '开始时间不能为空',
trigger: 'blur'
}
]
},
{
label: '结束时间',
prop: 'endTime',
type:'date',
format:'yyyy-MM-dd HH:mm:ss',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [{
required: true,
message: '结束时间不能为空',
trigger: 'blur'
}
]
},
{
label: '地点',
prop: 'practiceAddress',
rules: [{
required: true,
message: '地点不能为空',
trigger: 'blur'
}]
},
{
label: '实习内容',
prop: 'practiceName',
rules: [{
required: true,
message: '实习内容不能为空',
trigger: 'blur'
}]
},
{
label: '教学形式',
prop: 'teacherForm',
rules: [{
required: true,
message: '教学形式不能为空',
trigger: 'blur'
}]
},
{
label: '主讲人',
prop: 'companyPeople',
rules: [{
required: true,
message: '企业主讲人不能为空',
trigger: 'blur'
}]
},
{
label: '协议',
prop: 'isXy',
dicUrl: '/admin/dict/item/type/yes_no',
type: 'select',
props:{
label:'label',
value:'value'
},
rules: [{
required: true,
message: '协议不能为空',
trigger: 'blur'
}]
},
{
label: '报道',
prop: 'isBd',
dicUrl: '/admin/dict/item/type/yes_no',
type: 'select',
props:{
label:'label',
value:'value'
},
rules: [{
required: true,
message: '报道不能为空',
trigger: 'blur'
}]
},
{
label: '折算课时',
prop: 'classTime',
type:'number',
rules: [{
required: true,
message: '折算课时不能为空',
trigger: 'blur'
}]
},
{
label: '总结',
prop: 'remarks',
type: 'textarea',
span: 24,
minRows: 2,
maxlength: 250, //长度限制 0/n
addDisplay:true, //添加是否显示
editDisplay:true, //修改是否显示
},
]
}

View File

@@ -1,114 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '企业名称',
prop: 'companyId',
filterable:true,
labelWidth:200,
searchFilterable:true,
search:true,
type:'select',
dicUrl: '/professional/phaseintentioncompany/list',
props: {
label: 'companyName',
value: 'id'
},
rules: [{
required: true,
message: '企业不能为空',
trigger: 'blur'
}
]
},
{
label: '主持人',
labelWidth:200,
prop: 'checkPeople'
},
{
label: '记录人',
labelWidth:200,
prop: 'inPeople'
},
{
label: '参加人员',
labelWidth:200,
prop: 'participatePeople'
},
{
label: '建设地点',
labelWidth:200,
prop: 'checkAddress'
},
{
label: '主要内容',
labelWidth:200,
prop: 'mainTitle'
},
{
label: '填写日期',
prop: 'inTime',
type:'date',
labelWidth:200,
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [{
required: true,
message: "请选择时间",
trigger: "blur"
}],
},
{
label: '合作文件下载',
labelWidth:200,
prop: 'filePath',
hide: true,
slot:true,
formslot:true
},
{
label: '合作文件上传',
labelWidth:120,
prop: 'filePathValue',
addDisplay: false,
editDisplay: false,
slot:true,
},
{
label: '备注',
type:'textarea',
labelWidth:200,
row:true,
span:24,
prop: 'remarks'
},
]
}

View File

@@ -1,117 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const typeList=[
{value:"1",label:"横向课题"},
{value:"2",label:"实用性专利/发明专利"},
{value:"3",label:"企业技术改造"},
]
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '企业名称',
prop: 'companyId',
filterable:true,
searchFilterable:true,
search:true,
type:'select',
dicUrl: '/professional/phaseintentioncompany/list',
props: {
label: 'companyName',
value: 'id'
},
rules: [{
required: true,
message: '企业不能为空',
trigger: 'blur'
}
]
},
{
label: '名称',
prop: 'title',
rules: [{
required: true,
message: '名称不能为空',
trigger: 'blur'
}]
},
{
label: '时间',
prop: 'openTime',
type:'date',
format:'yyyy-MM-dd HH:mm:ss',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [{
required: true,
message: '时间不能为空',
trigger: 'blur'
}
]
},
{
label: '类型',
prop: 'type',
dicData:typeList,
type: 'select',
props:{
label:'label',
value:'value'
},
rules: [{
required: true,
message: '类型不能为空',
trigger: 'blur'
}]
},
{
label: '人员',
prop: 'peopleName',
},
{
label: '到账资金 ',
prop: 'techMoney',
type: 'number'
},
{
label: '应用',
prop: 'techValue',
span:24,
},
{
label: '备注',
prop: 'remarks',
type: 'textarea',
span: 24,
minRows: 2,
maxlength: 250, //长度限制 0/n
addDisplay:true, //添加是否显示
editDisplay:true, //修改是否显示
},
]
}

View File

@@ -1,120 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const typeList=[
{value:"1",label:"校企合作成果获省部级以上奖励或表彰"},
{value:"2",label:"校企合作项目经济效益超过 30 万"},
{value:"3",label:"校企合作成果被省级以上媒体省部级以上奖励或表彰"},
{value:"4",label:"校企合作案例、模式、方法被学校采纳并推广"},
]
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '企业名称',
prop: 'companyId',
filterable:true,
span: 24,
searchFilterable:true,
search:true,
type:'select',
dicUrl: '/professional/phaseintentioncompany/list',
props: {
label: 'companyName',
value: 'id'
},
rules: [{
required: true,
message: '企业不能为空',
trigger: 'blur'
}
]
},
{
label: '类型',
prop: 'type',
span: 24,
dicData:typeList,
type: 'select',
props:{
label:'label',
value:'value'
},
rules: [{
required: true,
message: '类型不能为空',
trigger: 'blur'
}]
},
{
label: '主持人',
prop: 'peopleName',
span: 24,
rules: [{
required: true,
message: '主持人不能为空',
trigger: 'blur'
}
]
},
{
label: '内容',
prop: 'title',
span: 24,
rules: [{
required: true,
message: '内容不能为空',
trigger: 'blur'
}
]
},
{
label: '证书/文件 经济效益/企业应用 媒体级别 文献或其他',
prop: 'otherName',
type: 'textarea',
minRows: 2,
maxlength: 250, //长度限制 0/n
span: 24,
rules: [{
required: true,
message: '主持人不能为空',
trigger: 'blur'
}
]
},
{
label: '备注',
prop: 'remarks',
type: 'textarea',
span: 24,
minRows: 2,
maxlength: 250, //长度限制 0/n
addDisplay:true, //添加是否显示
editDisplay:true, //修改是否显示
},
]
}

View File

@@ -1,81 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '学位名称',
prop: 'degreeName'
},
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks',
},
]
}

View File

@@ -1,81 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '类型名称',
prop: 'name'
},
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks',
},
]
}

View File

@@ -1,82 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '类型名称',
prop: 'atStationName'
},
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks',
},
]
}

View File

@@ -1,177 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
const statusDic=[
{label:"待提交",value:"0"},
{label:"待部门审核",value:"1"},
{label:"待教学研究中心审核",value:"2"},
{label:"通过",value:"100"},
{label:"驳回",value:"-1"},
]
export const tableOption = {
border: true,
index: false,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
menu:false,
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label:"审核人操作栏",
prop:"examCol",
minWidth: 200,
fixed:true,
slot:true,
display:false
},
{
label:"填报人操作栏",
prop:"editCol",
minWidth: 200,
fixed:true,
slot:true,
display:false
},
{
label: '审核状态 ',
prop: 'state',
search:true,
dicData: statusDic,
type:'select',
props:{
label:'label',
value:'value'
},
display:false
},
{
label: "驳回理由",
prop: "backReason",
display: false,
},
{
label: '部门',
prop: 'deptName',
minWidth: 150
},
{
label: '作者',
prop: 'author'
},
{
label: '课件名称',
prop: 'name',
search:true
},
{
label: '颁奖等级',
prop: 'level'
},
{
label: '颁奖单位',
prop: 'unit'
},
{
label: '获奖时间',
prop: 'awardTime',
type:'date',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd',
minWidth: 100
},
{
label: '获奖证书',
prop: 'awardImg',
formslot:true,
slot:true
},
{
label: '创建人',
prop: 'createName',
},
{
label: '创建时间',
prop: 'createTime',
minWidth: 150
},
{
label: '备注',
prop: 'remarks',
type:'textarea'
},
]
}
export const tableViewOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '部门',
prop: 'deptName'
},
{
label: '作者',
prop: 'author'
},
{
label: '课件名称',
prop: 'name'
},
{
label: '颁奖等级',
prop: 'level'
},
{
label: '颁奖单位',
prop: 'unit'
},
{
label: '获奖时间',
prop: 'awardTime',
type:'date',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd'
},
{
label: '创建人',
prop: 'createName',
},
{
label: '创建时间',
prop: 'createTime',
},
{
label: '备注',
prop: 'remarks',
type:'textarea'
},
]
}

View File

@@ -1,81 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '用工性质',
prop: 'employmentNatureName'
},
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks'
},
]
}

View File

@@ -1,81 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '职称职务',
prop: 'majorStationName'
},
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks',
},
]
}

View File

@@ -1,85 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户ID',
// prop: 'tenantId'
// },
{
label: '论文类型',
prop: 'typeName'
},
{
label: '排序',
prop: 'sort'
},
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks'
},
]
}

View File

@@ -1,47 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
column: [
{
label: '类别名字',
prop: 'name'
},
{
label: '备注信息',
prop: 'remarks'
},
{
label: '创建时间',
prop: 'createTime',
editDisabled: true
},
{
label: '排序',
prop: 'sort'
},
]
}

View File

@@ -1,71 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '工号',
prop: 'teacherNo',
search:true
},
{
label: '用户名',
prop: 'realName',
search:true
},
{
label: '原支部名称',
prop: 'oldBranchName'
},
{
label: '现支部名称',
prop: 'branchName'
},
// {
// label: '党费交至几月',
// prop: 'feeTime'
// },
{
label:'党费',
prop:"partyFee",
type:'number',
precision:2
},
{
label: '变动时间',
prop: 'changeTime'
},
{
label: '创建时间',
prop: 'createTime'
},
{
label: '备注',
prop: 'remarks'
},
]
}

View File

@@ -1,85 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
// {
// label: '排序',
// prop: 'sort'
// },
{
label: '政治面貌',
prop: 'politicsStatusId'
},
{
label: '加入时间',
prop: 'joinTime',
type:'datetime',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
},
{
label: '转正时间',
prop: 'correctionTime',
type:'datetime',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
},
]
}

View File

@@ -1,77 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
/*{
label: '主键',
prop: 'id'
},
{
label: '创建人',
prop: 'createBy'
},
{
label: '创建时间',
prop: 'createTime'
},
{
label: '更新人',
prop: 'updateBy'
},
{
label: '更新时间',
prop: 'updateTime'
},
{
label: '删除标志位',
prop: 'delFlag'
},*/
{
label: '等级名称',
prop: 'levelName'
},
/*{
label: '租户id',
prop: 'tenantId'
},*/
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks'
},
]
}

View File

@@ -1,208 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
/*{
label: '主键',
prop: 'id'
},*/
/* {
label: '创建人',
prop: 'createBy'
},
{
label: '创建时间',
prop: 'createTime'
},
{
label: '更新人',
prop: 'updateBy'
},
{
label: '更新时间',
prop: 'updateTime'
},
{
label: '删除标志位',
prop: 'delFlag'
},*/
/* {
label: '租户id',
prop: 'tenantId'
},*/
{
label: '审核状态',
prop: 'state',
search:true,
dicUrl:'/admin/dict/item/type/professional_state',
type:'select',
props:{
label:'label',
value:'value'
},
addDisplay:false,
editDisplay:false,
},
{
label: "驳回理由",
prop: "backReason",
},
{
label: '工号',
prop: 'teacherNo',
search:true
},
{
label: '姓名',
prop: 'realName',
search:true
},
{
label: '资格等级',
prop: 'qualificationConfigId',
type: 'select',
dicUrl: '/professional/professionalqualificationconfig/getLevelList',
props: {
label: 'levelName',
value: 'id'
}
},
{
label: '工种',
prop: 'worker',
type: 'select',
dicUrl: '/professional/professionalworktype/getWorkTypeList',
props: {
label: 'workName',
value: 'id'
}
},
{
label: '是否最高',
prop: 'isHighest',
addDisplay:false,
editDisplay:false,
hide:true
},
{
label: '证书编号',
prop: 'certificateNumber',
hide:true
},
{
label: '取证时间',
prop: 'certificateTime',
type:'datetime',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
addDisplay:false,
editDisplay:false,
hide:true
},
{
label: '证明材料1',
prop: 'evidenceA',
row:true,
formslot:true,
hide:true,
span:24,
},
{
label: '证明材料2',
prop: 'evidenceB',
row:true,
formslot:true,
hide:true,
span:24,
},
{
label: '证明材料3',
prop: 'evidenceC',
row:true,
formslot:true,
hide:true,
span:24,
},
{
label: '证明材料',
prop: 'evidence',
row:true,
display:false,
span:24,
slot:true
},
{
label: '备注',
prop: 'remarks',
type:"textarea",
span:24,
hide:true
},
{
label: '流程状态',
prop: 'procInsStatus',
addDisplay:false,
editDisplay:false,
hide:true
},
{
label: '更新时间',
prop: 'updateTime',
type:'datetime',
format:'yyyy-MM-dd',
addDisplay:false,
editDisplay:false
},
{
label: '原因',
prop: 'reason',
addDisplay:false,
editDisplay:false,
hide:true
},
/* {
label: '审核人',
prop: 'auditor'
},*/
/* {
label: '审核时间',
prop: 'auditTime'
},*/
// {
// label: '排序',
// prop: 'sort'
// },
]
}

View File

@@ -1,251 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
// {
// label: '排序',
// prop: 'sort'
// },
{
label: '工号',
prop: 'teacherNo'
},
{
label: '年份',
prop: 'pYear'
},
{
label: '月份',
prop: 'pMonth'
},
{
label: '身份证号',
prop: 'postSalary'
},
{
label: '培训兼课金',
prop: 'payWage'
},
{
label: '',
prop: 'studentPay'
},
{
label: '生活津贴',
prop: 'liveAllowance'
},
{
label: '',
prop: 'postAllowance'
},
{
label: '房补',
prop: 'houseSubsidies'
},
{
label: '',
prop: 'newHouseSubsidies'
},
{
label: '',
prop: 'huiSubsidies'
},
{
label: '',
prop: 'oldSubsidies'
},
{
label: '',
prop: 'ageAllowance'
},
{
label: '',
prop: 'specialSubsidies'
},
{
label: '',
prop: 'teacherAllowance'
},
{
label: '',
prop: 'temporarySubsidies'
},
{
label: '',
prop: 'keepAllowance'
},
{
label: '',
prop: 'sPostAllowance1'
},
{
label: '',
prop: 'sPostAllowance2'
},
{
label: '',
prop: 'other'
},
{
label: '',
prop: 'meritPay'
},
{
label: '',
prop: 'villageSubsidies'
},
{
label: '',
prop: 'trafficSubsidies'
},
{
label: '',
prop: 'retroactivePay'
},
{
label: '',
prop: 'houseFund'
},
{
label: '',
prop: 'medicalInsurance'
},
{
label: '',
prop: 'unemployInsurance'
},
{
label: '',
prop: 'endowInsurance'
},
{
label: '',
prop: 'unionFee'
},
{
label: '',
prop: 'childrenWhole'
},
{
label: '',
prop: 'personalTax'
},
{
label: '',
prop: 'otherDeduction'
},
{
label: '',
prop: 'sickDeduction'
},
{
label: '',
prop: 'medicalFund'
},
{
label: '',
prop: 'inductrialInjury'
},
{
label: '',
prop: 'personalPay'
},
{
label: '',
prop: 'childEdu'
},
{
label: '',
prop: 'conEdu'
},
{
label: '',
prop: 'sickMedical'
},
{
label: '',
prop: 'houseInterest'
},
{
label: '',
prop: 'house'
},
{
label: '',
prop: 'supportOld'
},
{
label: '',
prop: 'trainPool'
},
{
label: '',
prop: 'otherIncome1'
},
{
label: '',
prop: 'otherIncome2'
},
{
label: '',
prop: 'deductionCost'
},
]
}

View File

@@ -1,91 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '主键',
prop: 'id'
},
{
label: '创建人',
prop: 'createBy'
},
{
label: '创建时间',
prop: 'createTime'
},
{
label: '更新人',
prop: 'updateBy'
},
{
label: '更新时间',
prop: 'updateTime'
},
{
label: '删除标志位',
prop: 'delFlag'
},
{
label: '备注',
prop: 'remarks'
},
{
label: '租户id',
prop: 'tenantId'
},
{
label: '排序',
prop: 'sort'
},
{
label: '称谓',
prop: 'title'
},
{
label: '姓名',
prop: 'realName'
},
{
label: '出生年月',
prop: 'birthday'
},
{
label: '政治面貌',
prop: 'politicsStatusId'
},
{
label: '工作单位及职务',
prop: 'workStation'
},
{
label: '工号',
prop: 'teacherNo'
},
]
}

View File

@@ -1,81 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '职务级别名称',
prop: 'stationDutyLevelName'
},
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks'
},
]
}

View File

@@ -1,72 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '岗位级别名称',
prop: 'stationLevelName'
},
{
label: '排序',
prop: 'sort'
},
]
}

View File

@@ -1,82 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '级别名称',
prop: 'levelName'
},
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks'
},
]
}

View File

@@ -1,141 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
// {
// label: '排序',
// prop: 'sort'
// },
{
label: '工号',
prop: 'teacherNo'
},
{
label: '岗位类别',
prop: 'stationTypeId'
},
{
label: '职务级别',
prop: 'stationDutyLevelId'
},
{
label: '岗位级别',
prop: 'stationLevel'
},
{
label: '任现岗位职级时间',
prop: 'stationDate',
type:'datetime',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
},
{
label: '在职情况',
prop: 'atStation'
},
{
label: '职务',
prop: 'dutyDesc'
},
{
label: '退休年份',
prop: 'retireDate',
type:'datetime',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
},
{
label: '参加工作时间',
prop: 'workDate',
type:'datetime',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
},
{
label: '干部职务任职时间',
prop: 'dutyDate',
type:'datetime',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
},
{
label: '用工性质',
prop: 'employmentNature'
},
{
label: '进编时间',
prop: 'entryDutyDate',
type:'datetime',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
},
{
label: '进校时间',
prop: 'entrySchoolDate',
type:'datetime',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
},
{
label: '教师类型',
prop: 'teacherType'
},
]
}

View File

@@ -1,81 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '岗位类别名称',
prop: 'typeName'
},
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks'
},
]
}

View File

@@ -1,208 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
// {
// label: '排序',
// prop: 'sort'
// },
{
label: '审核状态',
prop: 'state',
search:true,
dicUrl:'/admin/dict/item/type/professional_state',
type:'select',
props:{
label:'label',
value:'value'
},
addDisplay:false,
editDisplay:false,
},
{
label: "驳回理由",
prop: "backReason",
},
{
label: '工号',
prop: 'teacherNo',
labelWidth:100,
search:true
},
{
label: '姓名',
prop: 'realName',
labelWidth:100,
search:true
},
{
label: '毕业时间',
prop: 'graduateTime',
labelWidth:100,
type:'datetime',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
},
{
label: '学位',
prop: 'degreeConfigId',
labelWidth:100,
type:'select',
dicUrl: '/professional/professionalacademicdegreeconfig/getDegreeList',
props: {
label: 'degreeName',
value: 'id'
}
},
{
label: '学历',
prop: 'qualificationConfigId',
labelWidth:100,
type:'select',
dicUrl: '/professional/academicqualificationsconfig/getQualificationList',
props: {
label: 'qualificationName',
value: 'id'
}
},
{
label: '教育类型',
prop: 'type',
type:'select',
props:{
label:'name',
value:'id'
},
dicUrl:'/professional/professionalacademiceducationtypeconfig/getAllTypeList',
addDisplay: false,
editDisabled: false,
},
{
label: '毕业学校',
prop: 'graduateSchool',
labelWidth:100,
hide:true
},
{
label: '所学专业',
prop: 'major',
labelWidth:100,
hide:true
},
{
label: '证书编号',
prop: 'certificateNumber',
row:true,
labelWidth:100,
span:24
},
{
label: '学历证书附件',
prop: 'qualificationImg',
labelWidth:200,
formslot:true,
slot:true
},
{
label: '学位证书附件',
prop: 'degreeImg',
labelWidth:200,
formslot:true,
slot:true
},
{
label: '创建时间',
prop: 'createTime',
type:'datetime',
format:'yyyy-MM-dd',
addDisplay:false,
editDisplay:false
},
{
label: '备注',
prop: 'remarks',
labelWidth:100,
type:"textarea",
span:24,
hide:true
},
// {
// label: '学位证书附件',
// prop: 'degreeImg',
// type: 'upload',
// labelWidth:100,
// loadText: '附件上传中,请稍等',
// span: 24,
// tip: '只能上传jpg/png文件且不超过500kb',
// action: '/professional/file/upload',
// propsHttp: {
// res: 'data',
// name:'fileName',
// },
// hide:true
// },
// {
// label: '',
// prop: 'educationId'
// },
]
}

View File

@@ -1,81 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '资格证名称',
prop: 'cretificateName'
},
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks'
},
]
}

View File

@@ -1,160 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
// {
// label: '排序',
// prop: 'sort'
// },
{
label: '审核状态 ',
prop: 'state',
search:true,
dicUrl:'/admin/dict/item/type/professional_state',
type:'select',
props:{
label:'label',
value:'value'
},
addDisplay:false,
editDisplay:false
},
{
label: "驳回理由",
prop: "backReason",
},
{
label: '工号',
prop: 'teacherNo',
search:true
},
{
label: '姓名',
prop: 'realName',
search:true
},
{
label: '关联资格证书',
prop: 'certificateConfId',
type: 'select',
dicUrl: '/professional/professionalteachercertificateconf/getTeacherCertificateList',
props: {
label: 'cretificateName',
value: 'id'
}
},
{
label: '证书编号',
prop: 'certificateNumber'
},
{
label: '证明材料',
prop: 'evidence',
span:24,
slot:true
},
{
label: '创建时间',
prop: 'createTime',
type:'datetime',
format:'yyyy-MM-dd',
addDisplay:false,
editDisplay:false
},
// {
// label: '证明材料',
// prop: 'evidenceB',
// row:true,
// formslot:true,
// hide:true,
// span:24,
// },
// {
// label: '证明材料2',
// prop: 'evidenceb'
// },
// {
// label: '流程状态',
// prop: 'procInsId'
// },
{
label: '备注',
prop: 'remarks',
type:"textarea",
span:24,
hide:true
},
// {
// label: '',
// prop: 'reason'
// },
// {
// label: '',
// prop: 'auditor'
// },
// {
// label: '',
// prop: 'auditTime'
// },
]
}

View File

@@ -1,80 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
delBtn: false,
editBtn: false,
addBtn: false,
column: [
{
label: '审核状态 ',
prop: 'state',
search:true,
dicUrl:'/admin/dict/item/type/professional_state',
type:'select',
props:{
label:'label',
value:'value'
},
addDisplay:false,
editDisplay:false
},
{
label: "驳回理由",
prop: "backReason",
},
{
label: '工号',
prop: 'teacherNo',
search:true,
formslot:true
},
{
label: '姓名',
prop: 'teacherName',
search:true
},
{
label: '荣誉',
prop: 'honor'
},
{
label: '表彰单位',
prop: 'honorCompany'
},
{
label: '年份',
prop: 'year',
type: 'year',
format:'yyyy',
valueFormat:'yyyy'
},
{
label: '证明材料',
prop: 'attachment',
slot:true,
formslot:true
},
]
}

View File

@@ -1,169 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
const statusDic=[
{label:"待提交",value:"0"},
{label:"待部门审核",value:"1"},
{label:"待教学研究中心审核",value:"2"},
{label:"通过",value:"100"},
{label:"驳回",value:"-1"},
]
export const tableOption = {
border: true,
index: false,
indexLabel: '序号',
menu:false,
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label:"审核人操作栏",
prop:"examCol",
minWidth: 200,
fixed:true,
slot:true,
display:false
},
{
label:"填报人操作栏",
prop:"editCol",
minWidth: 200,
fixed:true,
slot:true,
display:false
},
{
label: '审核状态 ',
prop: 'state',
search:true,
dicData: statusDic,
type:'select',
props:{
label:'label',
value:'value'
},
display:false
},
{
label: "驳回理由",
prop: "backReason",
display: false,
},
{
label: '部门',
prop: 'deptName',
minWidth: 150
},
{
label: '作者',
prop: 'author'
},
{
label: '教案名称',
prop: 'name',
search:true
},
{
label: '颁奖等级',
prop: 'level'
},
{
label: '颁奖单位',
prop: 'unit'
},
{
label: '获奖时间',
prop: 'awardTime',
type:'date',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd',
minWidth: 150
},
{
label: '创建人',
prop: 'createName',
},
{
label: '创建时间',
prop: 'createTime',
minWidth: 150
},
{
label: '备注',
prop: 'remarks'
},
]
}
export const tableViewOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '部门',
prop: 'deptName'
},
{
label: '作者',
prop: 'author'
},
{
label: '教案名称',
prop: 'name'
},
{
label: '颁奖等级',
prop: 'level'
},
{
label: '颁奖单位',
prop: 'unit'
},
{
label: '获奖时间',
prop: 'awardTime',
type:'date',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd'
},
{
label: '创建人',
prop: 'createName',
},
{
label: '创建时间',
prop: 'createTime',
},
{
label: '备注',
prop: 'remarks'
},
]
}

View File

@@ -1,215 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
const statusDic=[
{label:"待提交",value:"0"},
{label:"待部门审核",value:"1"},
{label:"待教学研究中心审核",value:"2"},
{label:"通过",value:"100"},
{label:"驳回",value:"-1"},
]
export const tableOption = {
border: true,
index: false,
indexLabel: '序号',
indexFixed: false,
stripe: true,
menuAlign: 'center',
menu:false,
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
height:500,
dialogHeight:700,
dialogWidth:"90%",
column: [
{
label:"审核人操作栏",
prop:"examCol",
minWidth: 200,
fixed:true,
slot:true,
display:false
},
{
label:"填报人操作栏",
prop:"editCol",
minWidth: 200,
fixed:true,
slot:true,
display:false
},
{
label: '审核状态 ',
prop: 'state',
search:true,
minWidth:150,
dicData: statusDic,
type:'select',
props:{
label:'label',
value:'value'
},
display:false
},
{
label: "驳回理由",
prop: "backReason",
display: false,
},
// {
// label:'证明材料',
// prop:"zmcl",
// slot:true,
// display:false,
// minWidth:150
// },
{
label: '工号',
prop: 'createBy',
display:false,
search:true
},
{
label: '姓名',
prop: 'realName',
display:false,
search:true
},
{
label: '作者',
prop: 'author',
rules: [{
required: true,
message: '请输入作者',
trigger: 'blur'
}]
},
{
label: '第二作者',
prop: 'secondAuthor'
},
{
label: '论文名称',
prop: 'title',
rules: [{
required: true,
message: '请输入论文名称',
trigger: 'blur'
}],
minWidth:150
},
{
label: '论文类型',
prop: 'paperConfigId',
type: 'select',
dicUrl: '/professional/professionalpaperconfig/getPaperConfigList',
props:{
label:'typeName',
value:'id'
},
rules: [{
required: true,
message: '请选择论文类型',
trigger: 'blur'
}]
},
{
label: '发表刊物名称',
prop: 'nameOfPublication',
rules: [{
required: true,
message: '请填写发表刊物名称',
trigger: 'blur'
}],
minWidth: 200
},
{
label: '发表时间',
prop: 'dateOfPublication',
type:'datetime',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [{
required: true,
message: '请填写发表时间',
trigger: 'blur'
}],
minWidth: 100
},
{
label: '刊物主办单位',
prop: 'publicationsCompetentUnit',
minWidth: 150
},
{
label: '刊物主管单位',
prop: 'publicationsManageUnit',
minWidth: 150
},
{
label: '颁奖单位',
prop: 'awardingUnit',
},
{
label: '获奖等级',
prop: 'rewardLevel',
},
{
label: '获奖时间',
prop: 'rewardTime',
type:'datetime',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
minWidth: 100
},
{
label: '备注',
prop: 'remarks',
},
{
label:'*知网截图',
prop:"knowdgeImg",
formslot:true,
hide:true,
},
{
label:'*刊物封面',
prop:"pubCover",
formslot:true,
hide:true
},
{
label:'*目录页',
prop:"cateImg",
formslot:true,
hide:true
},
{
label:'*内容页',
prop:"contentImg",
formslot:true,
hide:true
}
]
}

View File

@@ -1,79 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: 'id',
prop: 'id'
},
{
label: '开始时间',
prop: 'startDate'
},
{
label: '结束时间',
prop: 'endDate'
},
{
label: '事件',
prop: 'event'
},
{
label: '教师工号',
prop: 'teacherNo'
},
{
label: '',
prop: 'createBy'
},
{
label: '',
prop: 'createTime'
},
{
label: '',
prop: 'updateBy'
},
{
label: '',
prop: 'updateTime'
},
{
label: '',
prop: 'delFlag'
},
{
label: '',
prop: 'sort'
},
{
label: '租户id',
prop: 'tenantId'
},
]
}

View File

@@ -1,159 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
// {
// label: '排序',
// prop: 'sort'
// },
{
label: '工号',
prop: 'teacherNo',
search:true
},
{
label: '姓名',
prop: 'teacherName',
search:true
},
// {
// label: '原部门编码',
// prop: 'oldDeptCode'
// },
{
label: '原部门名称',
prop: 'oldDeptName',
},
// {
// label: '现部门编码',
// prop: 'newDeptCode'
// },
{
label: '现部门名称',
prop: 'newDeptName'
},
{
label: '调令日期',
prop: 'changeDate',
type:'date',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd'
},
],
group:[
{
column: [
{
label: '姓名',
prop: 'teacherName'
},
{
label: '工号',
prop: 'teacherNo'
},
{
label: '原部门名称',
prop: 'oldDeptCode',
type: 'tree',
dicUrl: '/basic/basicdept/tree',
props: {
label: 'deptName',
value: 'deptCode'
},
rules: [{
required: true,
message: '请选择部门名称',
trigger: 'blur'
}]
},
{
label: '现部门名称',
value:'newDeptCode',
// prop: 'newDeptCode',
type: 'tree',
dicUrl: '/basic/basicdept/tree',
props: {
label: 'deptName',
value: 'deptCode'
},
rules: [{
required: true,
message: '请选择部门名称',
trigger: 'blur'
}]
},
{
label: '调令日期',
prop: 'changeDate',
type:'date',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd'
},
{
label: '备注',
prop: 'remarks',
type:"textarea",
span:24,
},
]
}
],
}

View File

@@ -1,81 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '类型名称',
prop: 'typeName'
},
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks'
},
]
}

View File

@@ -1,217 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
import { checkTitle } from '@/api/professional/professionalteachingmaterial'
var validateMaterialName = (rule, value, callback) => {
checkTitle({"materialName":value}).then(response => {
let result = response.data.data
if (result) {
callback(new Error('教材名称已存在'))
} else {
callback()
}
});
};
const statusDic=[
{label:"待提交",value:"0"},
{label:"待部门审核",value:"1"},
{label:"待教学研究中心审核",value:"2"},
{label:"通过",value:"100"},
{label:"驳回",value:"-1"},
]
export const tableOption = {
border: true,
index: false,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
menu:false,
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dialogHeight:700,
dialogWidth: '90%',
dic: [],
column: [
{
label:"审核人操作栏",
prop:"examCol",
minWidth: 200,
fixed:true,
slot:true,
display:false
},
{
label:"填报人操作栏",
prop:"editCol",
minWidth: 200,
fixed:true,
slot:true,
display:false
},
{
label: '审核状态 ',
prop: 'state',
search:true,
dicData: statusDic,
type:'select',
props:{
label:'label',
value:'value'
},
display:false
},
{
label: "驳回理由",
prop: "backReason",
display: false
},
{
label:'证明材料',
prop:"zmcl",
slot:true,
display:false,
minWidth:150
},
{
label: '工号',
prop: 'createBy',
display:false,
search:true
},
{
label: '姓名',
prop: 'realName',
display:false,
search:true
},
{
label: '教材名称',
prop: 'materialName',
formslot: true,
rules: [{
required: true,
message: '请填写教材名称',
trigger: 'blur'
},
// {validator: validateMaterialName, trigger: 'blur'}
],
minWidth:150
},
{
label: '教材类别',
prop: 'materialConfigId',
type: 'select',
dicUrl: '/professional/professionalteachingmaterialconfig/getTeachingMaterialList',
props:{
label:'typeName',
value:'id'
},
rules: [{
required: true,
message: '请选择类别',
trigger: 'blur'
}]
},
{
label: '主编',
prop: 'editor',
rules: [{
required: true,
message: '请填写主编',
trigger: 'blur'
}]
},
{
label: '副主编',
prop: 'secondEditor',
minWidth: 200
},
{
label: '参编',
prop: 'joinEditor',
minWidth: 200
},
{
label: '编写字数(千字)',
prop: 'words',
type: "number",
rules: [{
required: true,
message: '请填写编写字数',
trigger: 'blur'
}]
},
{
label: '出版单位',
prop: 'publishCompany',
rules: [{
required: true,
message: '请填写出版单位',
trigger: 'blur'
},
],
minWidth: 200
},
{
label: '出版时间',
prop: 'publishTime',
type:'datetime',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
minWidth: 100
},
{
label: 'ISBN',
prop: 'isbn',
display:true,
search:true,
formslot: true
},
{
label: '版次日期',
prop: 'versionDate',
display:true,
search:true,
rules: [{
required: true,
message: '请填写版次日期',
trigger: 'blur'
},
]
},
{
label: '备注',
prop: 'remarks',
},
{
label:'*教材封面',
prop:"mateCover",
formslot:true,
hide:true,
},
{
label:'*出版页',
prop:"pubImg",
formslot:true,
hide:true
},
]
}

View File

@@ -1,82 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '类型名称',
prop: 'typeName'
},
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks'
},
]
}

View File

@@ -1,75 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '职称名称',
prop: 'professionalTitle'
},
{
label: '职称等级',
prop: 'professionalTitleLevelConfigId'
},
// {
// label: '排序',
// prop: 'sort'
// },
]
}

View File

@@ -1,82 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '职称等级名称',
prop: 'professionalTitle'
},
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks'
},
]
}

View File

@@ -1,176 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
// {
// label: '排序',
// prop: 'sort'
// },
{
label: '审核状态 ',
prop: 'state',
search:true,
dicUrl:'/admin/dict/item/type/professional_state',
type:'select',
props:{
label:'label',
value:'value'
},
addDisplay:false,
editDisplay:false
},
{
label: "驳回理由",
prop: "backReason",
},
{
label: '工号',
prop: 'teacherNo',
search:true
},
{
label: '姓名',
prop: 'realName',
search:true
},
{
label: '职称',
prop: 'professionalTitleConfigId',
type: 'select',
dicUrl: 'professional/professionaltitlelevelconfig/getProfessionalTitleList',
search:true,
props: {
label: 'professionalTitle',
value: 'id'
}
},
{
label: '专业技术职务 ',
prop: 'majorStation',
type: 'select',
dicUrl: '/professional/professionalmajorstation/getMajorStationList',
search:true,
filterable:true,
props: {
label: 'majorStationName',
value: 'id'
}
},
{
label: '变动时间',
prop: 'changedTime',
type:'datetime',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
},
{
label: '取证时间',
prop: 'certificateTime',
type:'datetime',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
addDisplay:false,
editDisplay:false,
hide:true
},
{
label: '证书编号',
prop: 'certificateNumber',
hide:true
},
// {
// label: '证明材料',
// prop: 'evidence',
// type: 'upload',
// loadText: '附件上传中,请稍等',
// span: 24,
// tip: '只能上传jpg/png文件且不超过500kb',
// action: '/professional/file/upload',
// propsHttp: {
// res: 'data',
// name:'fileName',
// },
// hide:true,
// },
{
label: '证明材料',
prop: 'evidence',
row:true,
formslot:true,
slot:true,
span:24,
},
{
label: '备注',
prop: 'remarks',
type:"textarea",
span:24,
hide:true
},
{
label: '创建时间',
prop: 'createTime',
type:'datetime',
format:'yyyy-MM-dd',
addDisplay:false,
editDisplay:false
},
]
}

View File

@@ -1,81 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '课题等级名称',
prop: 'levelName'
},
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks'
},
]
}

View File

@@ -1,186 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
const statusDic=[
{label:"待提交",value:"0"},
{label:"待部门审核",value:"1"},
{label:"待教学研究中心审核",value:"2"},
{label:"通过",value:"100"},
{label:"驳回",value:"-1"},
]
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
dialogHeight:700,
dialogWidth:"90%",
labelWidth:150,
column: [
{
label: '审核状态 ',
prop: 'state',
search:true,
dicData: statusDic,
type:'select',
props:{
label:'label',
value:'value'
},
display:false
},
{
label: "驳回理由",
prop: "backReason",
display: false
},
{
label:'证明材料',
prop:"zmcl",
slot:true,
display:false,
minWidth:150
},
{
label: '工号',
prop: 'createBy',
display:false,
search:true
},
{
label: '姓名',
prop: 'realName',
display:false,
search:true
},
{
label: '课题所属部门',
prop: 'deptName',
display: false
},
{
label: '课题名称',
prop: 'topicName',
rules: [{
required: true,
message: '请填写课题名称',
trigger: 'blur'
}],
minWidth:200
},
{
label: '课题负责人',
prop: 'topicLeader',
rules: [{
required: true,
message: '请填写课题负责人',
trigger: 'blur'
}]
},
{
label: '课题参与人',
prop: 'topicJoiner'
},
{
label: '课题来源',
prop: 'topicSourceConfigId',
type: 'select',
dicUrl: '/professional/professionaltopicsourceconfig/getTopicSourceList',
props: {
label:'sourceName',
value:'id'
},
rules: [{
required: true,
message: '请选择来源',
trigger: 'blur'
}]
},
{
label: '级别',
prop: 'topicLevelConfigId',
type: 'select',
dicUrl: '/professional/professionaltopiclevelconfig/getTopicLevelList',
props: {
label:'levelName',
value:'id'
},
rules: [{
required: true,
message: '请选择级别',
trigger: 'blur'
}]
},
{
label: '结题时间',
prop: 'finishTime',
type:'datetime',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [{
required: true,
message: '请选择结题时间',
trigger: 'blur'
}]
},
{
label: '颁奖单位',
prop: 'awardingUnit'
},
{
label: '获奖等级',
prop: 'awardingLevel'
},
{
label: '备注',
prop: 'remarks',
hide:true
},
{
label:'立项申报书',
prop:"projectApp",
formslot:true,
hide:true
},
{
label:'*结题证书',
prop:"conclusionBook",
formslot:true,
hide:true
},
{
label:'结题报告',
prop:"conclusionReport",
formslot:true,
hide:true
},
{
label:'其他材料',
prop:"otherImg",
formslot:true,
hide:true
},
]
}

View File

@@ -1,81 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '课题来源',
prop: 'sourceName'
},
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks'
},
]
}

View File

@@ -1,42 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '工种名称',
prop: 'workName'
},
{
label: '创建时间',
prop: 'createTime',
editDisabled:true,
addDisplay:false
},
]
}

View File

@@ -1,122 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
// {
// label: '排序',
// prop: 'sort'
// },
{
label: '工号',
prop: 'teacherNo'
},
{
label: '姓名',
prop: 'teacherName'
},
{
label: '身份证',
prop: 'teacherNo'
},
{
label: '年份',
prop: 'year',
type: 'year',
format:'yyyy',
valueFormat:'yyyy'
},
{
label: '13月工资',
prop: 'salary'
},
{
label: '重点考核目标',
prop: 'assessmentTarget'
},
{
label: '专项绩效1',
prop: 'specialPerformance1'
},
{
label: '专项绩效2',
prop: 'specialPerformance2'
},
{
label: '年终奖励性绩效',
prop: 'meritpay'
},
// {
// label: '',
// prop: 'other1'
// },
// {
// label: '',
// prop: 'other2'
// },
// {
// label: '',
// prop: 'other3'
// },
// {
// label: '',
// prop: 'other4'
// },
]
}

View File

@@ -1,49 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
import global from '@/components/tools/commondict'
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '导出时间',
prop: 'createTime'
},
{
label: '薪资年份',
prop: 'salaryYear'
},
{
label: '薪资月份',
prop: 'salaryMonth'
},
{
label: '劳务日期锁定',
prop: 'confirm',
type:"select",
dicData:global.YES_OR_NO
}
]
}

View File

@@ -1,90 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
const changeTypeDic=[
{label:"课题变更",value:"1"},
{label:"组员变更",value:"2"},
{label:"延期结题",value:"3"},
{label:"撤销课题",value:"4"},
]
const dealDic=[
{label:"待提交",value:"0"},
{label:"待部门审核",value:"1"},
{label:"待教学研究中心审核",value:"2"},
{label:"通过",value:"100"},
{label:"驳回",value:"-1"},
]
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '变更类型',
prop: 'type',
dicData:changeTypeDic,
type:'select',
props:{
label:'label',
value:'value',
}
},
{
label: '原始内容',
prop: 'originContent'
},
{
label: '变更后内容',
prop: 'newContent'
},
{
label: '创建时间',
prop: 'createTime'
},
{
label: '审核通过时间',
prop: 'passTime'
},
{
label: '签字单',
prop: 'sign',
slot:true
},
{
label: '申请原因',
prop: 'remarks',
},
{
label: '状态',
prop: 'dealState',
dicData: dealDic,
type:'select',
props:{
label:'label',
value:'value',
}
},
]
}

View File

@@ -1,139 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '',
prop: 'id'
},
{
label: '课题名称',
prop: 'title'
},
{
label: '1 指令性课题 2 其他课题',
prop: 'type'
},
{
label: '申报人工号',
prop: 'reportUser'
},
{
label: '部门名称',
prop: 'deptName'
},
{
label: '部门代码',
prop: 'deptCode'
},
{
label: '二级部门',
prop: 'commonDeptCode'
},
{
label: '二级部门名称',
prop: 'commonDeptName'
},
{
label: '联系电话',
prop: 'contractPhone'
},
{
label: '研究开始时间',
prop: 'startTime'
},
{
label: '研究完成时间',
prop: 'endTime'
},
{
label: '创建人',
prop: 'createBy'
},
{
label: '创建时间',
prop: 'createTime'
},
{
label: '更新人',
prop: 'updateBy'
},
{
label: '更新时间',
prop: 'updateTime'
},
{
label: '删除标志位',
prop: 'delFlag'
},
{
label: '租户id',
prop: 'tenantId'
},
{
label: '课题核心概念与界定',
prop: 'contantA'
},
{
label: '国内外统一研究领域现状与研究价值',
prop: 'contentB'
},
{
label: '研究的目标、内容(或子课题设计)与重点',
prop: 'contentC'
},
{
label: '研究的思路、过程与方法',
prop: 'contentD'
},
{
label: '主要观点与可能的创新之处',
prop: 'contentE'
},
{
label: '完成研究任务的可行性分析',
prop: 'contentF'
},
{
label: '部门意见',
prop: 'deptExam'
},
{
label: '校学术委员会意见',
prop: 'schoolExam'
},
{
label: '教学研究中心意见',
prop: 'eduExam'
},
{
label: '0 待提交 1 申请开题审核 2 申请通过 ',
prop: 'status'
},
]
}

View File

@@ -1,150 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '主键',
prop: 'id',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '创建人',
prop: 'createBy',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '创建时间',
prop: 'createTime',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '更新人',
prop: 'updateBy',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '更新时间',
prop: 'updateTime',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '删除标志位',
prop: 'delFlag',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '租户id',
prop: 'tenantId',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '排序',
prop: 'sort',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
{
label: '批次标题',
prop: 'title',
rules: [{
required: true,
message: '请填写批次标题',
trigger: 'blur'
}]
},
{
label: '开始日期',
prop: 'startDate',
type:'date',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd',
rules: [{
required: true,
message: '请填写开始日期',
trigger: 'blur'
}]
},
{
label: '截止日期',
prop: 'endDate',
type:'date',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd',
rules: [{
required: true,
message: '请填写截止日期',
trigger: 'blur'
}]
},
{
label: '备注',
prop: 'remarks',
hide: true,
addDisplay:false,
editDisabled:true,
editDisplay:false,
visdiplay:false
},
// {
// label: '启用禁用',
// prop: 'enabled'
// },
]
}

View File

@@ -1,75 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '主键',
prop: 'id'
},
{
label: '创建人',
prop: 'createBy'
},
{
label: '创建时间',
prop: 'createTime'
},
{
label: '更新人',
prop: 'updateBy'
},
{
label: '更新时间',
prop: 'updateTime'
},
{
label: '删除标志位',
prop: 'delFlag'
},
{
label: '租户id',
prop: 'tenantId'
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks'
},
{
label: '批次ID',
prop: 'batchId'
},
{
label: '密码',
prop: 'pwd'
},
]
}

View File

@@ -1,79 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '主键',
prop: 'id'
},
{
label: '创建人',
prop: 'createBy'
},
{
label: '创建时间',
prop: 'createTime'
},
{
label: '更新人',
prop: 'updateBy'
},
{
label: '更新时间',
prop: 'updateTime'
},
{
label: '删除标志位',
prop: 'delFlag'
},
{
label: '租户id',
prop: 'tenantId'
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks'
},
{
label: '批次ID',
prop: 'batchId'
},
{
label: '部门',
prop: 'deptName'
},
{
label: '姓名',
prop: 'realName'
},
]
}

View File

@@ -1,91 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '主键',
prop: 'id'
},
{
label: '创建人',
prop: 'createBy'
},
{
label: '创建时间',
prop: 'createTime'
},
{
label: '更新人',
prop: 'updateBy'
},
{
label: '更新时间',
prop: 'updateTime'
},
{
label: '删除标志位',
prop: 'delFlag'
},
{
label: '租户id',
prop: 'tenantId'
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks'
},
{
label: '批次ID',
prop: 'batchId'
},
{
label: '人员ID',
prop: 'memberId'
},
{
label: '部门',
prop: 'memberD'
},
{
label: '姓名',
prop: 'realName'
},
{
label: '使用的密码',
prop: 'pwd'
},
{
label: '评价结果',
prop: 'result'
},
]
}

View File

@@ -1,74 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '姓名',
prop: 'realName',
search:true
},
{
label: '工号',
prop: 'teacherNo',
search:true
},
{
label: '开始日期',
prop: 'startDate'
},
{
label: '结束日期',
prop: 'endDate'
},
{
label: '年份',
prop: 'year',
search:true,
type:'year',
format:'yyyy',
valueFormat:'yyyy'
},
{
label: '累计应纳税所得额',
prop: 'income'
},
{
label: '税率',
prop: 'taxRate'
},
{
label: '速算扣除',
prop: 'deductMoney'
},
{
label: '应补(退)税额',
prop: 'realMoney'
},
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,508 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
//学历
import global from "@/components/tools/commondict";
export const educationOptionForDialog={
labelWidth: 120,
column: [{
label:'毕业时间',
prop: 'graduateTime',
type:'date',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [
{
required: true,
message: '请输入毕业时间',
trigger: 'blur'
}
]
},
{
label: '教育类型',
prop: 'type',
props:{
label:'name',
value:'id'
},
type:"select",
dicUrl:'/professional/professionalacademiceducationtypeconfig/getAllTypeList',
rules: [
{
required: true,
message: '请选择教育类型',
trigger: 'blur'
}
]
},
{
label:'学历',
prop: 'qualificationConfigId',
type:'select',
dicUrl:'/professional/academicqualificationsconfig/getQualificationList',
props:{
label:'qualificationName',
value:'id',
}
},
{
label:'学位',
prop: 'degreeConfigId',
type:'select',
dicUrl:'/professional/professionalacademicdegreeconfig/getDegreeList',
props:{
label:'degreeName',
value:'id',
}
},
{
label:'毕业学校',
prop: 'graduateSchool',
rules: [
{
required: true,
message: '请输入毕业学校',
trigger: 'blur'
}
]
},
{
label:'所学专业',
prop: 'major',
rules: [
{
required: true,
message: '请输入所学专业',
trigger: 'blur'
}
]
},
{
label:'证书编码',
prop: 'certificateNumber',
row:true,
span:24,
rules: [
{
required: true,
message: '请输入证书编码',
trigger: 'blur'
}
]
},
{
label:'学历证书',
prop: 'materialA',
formslot:true
},
{
label:'学位证书',
prop: 'materialB',
formslot:true,
},
]
}
//职称
export const proOptionForDialog={
labelWidth: 120,
column: [
{
label:'职称等级',
prop: 'professionalTitleConfigId',
formslot:true,
rules: [
{
required: true,
message: '请选择职称等级',
trigger: 'blur'
}
]
},
{
label:'专业技术职务',
prop: 'majorStation',
formslot:true,
rules: [
{
required: true,
message: '请选择专业技术职务',
trigger: 'blur'
}
]
},
{
label:'取证时间',
prop: 'certificateTime',
type:'date',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [
{
required: true,
message: '请选择取证时间',
trigger: 'blur'
}
]
},
{
label:'职称任职时间',
prop: 'inOfficeDate',
type:'date',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss'
},
{
label:'证书编号',
prop: 'certificateNumber',
rules: [
{
required: true,
message: '请输入证书编号',
trigger: 'blur'
}
]
},
{
label:'证明材料',
prop: 'materialA',
formslot:true
},
]
}
//职业
export const workOptionForDialog={
labelWidth: 120,
column: [
{
label:'职业工种',
prop: 'worker',
formslot:true,
rules: [
{
required: true,
message: '请选择职业工种',
trigger: 'blur'
}
]
},
{
label:'等级',
prop: 'qualificationConfigId',
formslot:true,
rules: [
{
required: true,
message: '请选择等级',
trigger: 'blur'
}
]
},
{
label:'取证时间',
prop: 'certificateTime',
type:'date',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [
{
required: true,
message: '请选择取证时间',
trigger: 'blur'
}
]
},
{
label:'证书编号',
prop: 'certificateNumber',
rules: [
{
required: true,
message: '请输入证书编号',
trigger: 'blur'
}
]
},
{
label:'材料1',
prop: 'materialA',
formslot:true
},
// {
// label:'材料2',
// prop: 'materialB',
// formslot:true,
// },
// {
// label:'材料3',
// prop: 'materialC',
// formslot:true,
// },
]
}
//教师资格证
export const teacherCertificate ={
labelWidth: 120,
column: [
{
label:'类型',
prop: 'certificateConfId',
type:'select',
dicUrl:'/professional/professionalteachercertificateconf/getTeacherCertificateList',
props:{
label:'cretificateName',
value:'id',
},
rules: [
{
required: true,
message: '请选择学历',
trigger: 'blur'
}
]
},
{
label:'证书编号',
prop: 'certificateNumber',
rules: [
{
required: true,
message: '请输入证书编号',
trigger: 'blur'
}
]
},
{
label:'证明材料',
prop: 'materialA',
formslot:true
},
// {
// label:'证明材料2',
// prop: 'materialB',
// formslot:true
// },
]
}
//荣誉
export const honorForDialog = {
labelWidth: 120,
column: [
{
label: '荣誉',
prop: 'honor',
rules: [
{
required: true,
message: '请填写荣誉',
trigger: 'blur'
}
]
},
{
label: '表彰单位',
prop: 'honorCompany',
rules: [
{
required: true,
message: '请填写表彰单位',
trigger: 'blur'
}
]
},
{
label: '年份',
prop: 'year',
type: 'year',
format:'yyyy',
valueFormat:'yyyy',
rules: [
{
required: true,
message: '请输入年份',
trigger: 'blur'
}
]
},
{
label: '证明材料',
prop: 'materialA',
formslot:true
},
]
}
//人员调动
export const stationChangeDialog = {
labelWidth: 120,
column: [
{
label: '工号',
prop: 'teacherNo',
formslot:true,
},
{
label: '姓名',
prop: 'realName',
formslot:true
},
{
label: '原部门名称',
prop: 'deptCode',
row:true,
formslot:true,
},
{
label: '现二级部门*',
prop:'newDeptCode',
formslot:true,
},
{
label: '现子级部门',
prop:'newSecDeptCode',
formslot:true
},
{
label: '调令日期',
prop: 'changeDate',
type:'date',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd',
rules: [
{
required: true,
message: '请选择日期',
trigger: 'blur'
}
]
},
{
label: '岗位类型',
prop: 'pos',
type:'select',
dicData:global.STATION_TYPE,
props:{
label:'label',
value:'value'
},
rules: [
{
required: true,
message: '请选择岗位类型',
trigger: 'blur'
}
]
},
{
label: '备注',
prop: 'remarks',
type:"textarea",
span:24,
},
]
}
//党员调动
export const partChangeOption = {
column: [
{
label: '工号',
prop: 'teacherNo',
formslot:true
},
{
label: '用户名',
prop: 'realName',
formslot:true
},
{
label: '原支部名',
prop: 'oldBranchName',
formslot:true,
},
{
label: '现支部名',
prop: 'branchName',
formslot:true,
rules: [
{
required: true,
message: '请选择现支部',
trigger: 'blur'
}
]
},
// {
// label: '党费交至几月',
// prop: 'feeTime',
// type:'month',
// format:'yyyy-MM',
// valueFormat:'yyyy-MM-dd HH:mm:ss',
// rules: [
// {
// required: true,
// message: '请选择时间',
// trigger: 'blur'
// }
// ]
// },
{
label:'党费',
prop:"partyFee",
type:'number',
precision:2
},
{
label: '变动时间',
prop: 'changeTime',
type:'date',
format:'yyyy-MM-dd',
valueFormat:'yyyy-MM-dd HH:mm:ss',
rules: [
{
required: true,
message: '请选择变动时间',
trigger: 'blur'
}
]
},
{
label: '备注',
prop: 'remarks',
type:'text'
},
]
}

View File

@@ -1,382 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: false,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
selection:true,
column: [
{
label: '编号',
prop: 'numId'
},
{
label: '工号',
prop: 'teacherNo',
search:true
},
{
label: '姓名',
prop: 'realName',
search:true
},
{
label: '岗位工资',
prop: 'postSalary'
},
{
label: '年份',
prop: 'nf',
search:true,
type:'year',
format:'yyyy',
valueFormat:'yyyy'
},
{
label: '月份',
prop: 'yf',
search:true,
type:'month',
format:'M',
valueFormat:'M'
},
{
label: '岗位类别',
prop: 'stationTypeId',
hide:true,
},
{
label: '身份证号',
prop: 'idCard',
search:true
},
// {
// label: '培训兼课金',
// prop: 'trainPool',
// cell:true,
// width:140,
// type:'number',
// precision:2
// },
// {
// label: '其他收入(一)',
// prop: 'otherIncome1',
// cell:true,
// width:140,
// type:'number',
// precision:2
// },
// {
// label: '科研经',
// prop: 'scienceMoney',
// cell:true,
// type:'number',
// width:140,
// precision:2
// },
// {
// label: '其他收入(二)',
// prop: 'otherIncome2',
// type:'number',
// width:140,
// precision:2
// },
// {
// label: '其他扣款',
// prop: 'otherDeduction'
// },
// {
// label: '累计减除费用',
// prop: 'deductionCost'
// },
{
label: '应发工资',
prop: 'shouldPay'
},
{
label: '实发工资',
prop: 'realWage',
width:110,
precision:2
},
{
label: '职工查看',
prop: 'normalView',
type: 'select',
dicUrl:'/admin/dict/item/type/salary_search',
props:{
label:'label',
value:'value'
}
},
// {
// label: '薪级工资',
// prop: 'payWage'
// },
// {
// label: '见习期工资',
// prop: 'studentPay'
// },
// {
// label: '生活补贴',
// prop: 'liveAllowance'
// },
// {
// label: '岗位津贴',
// prop: 'postAllowance'
// },
// {
// label: '住房(租金)补贴',
// prop: 'houseSubsidies'
// },
// {
// label: '新职工住房补贴',
// prop: 'newHouseSubsidies'
// },
// {
// label: '回民补贴',
// prop: 'huiSubsidies'
// },
// {
// label: '养老保险补贴',
// prop: 'oldSubsidies'
// },
// {
// label: '教龄津贴',
// prop: 'ageAllowance'
// },
// {
// label: '特教补贴',
// prop: 'specialSubsidies'
// },
// {
// label: '特级教师津贴',
// prop: 'teacherAllowance'
// },
// {
// label: '特岗津贴(一)',
// prop: 'sPostAllowance1'
// },
// {
// label: '特岗津贴(二)',
// prop: 'sPostAllowance2'
// },
// {
// label: '其他',
// prop: 'other'
// },
// {
// label: '奖励性绩效工资',
// prop: 'meritPay'
// },
// {
// label: '乡镇工作补贴',
// prop: 'villageSubsidies'
// },
// {
// label: '临时性补贴',
// prop: 'temporarySubsidies'
// },
// {
// label: '上下班交通补贴',
// prop: 'trafficSubsidies'
// },
// {
// label: '保留津贴',
// prop: 'keepAllowance'
// },
// {
// label: '补发工资',
// prop: 'retroactivePay'
// },
// {
// label: '应发工资',
// prop: 'shouldPay'
// },
// {
// label: '住房公积金',
// prop: 'houseFund'
// },
// {
// label: '医疗保险金',
// prop: 'medicalInsurance'
// },
// {
// label: '失业保险金',
// prop: 'unemployInsurance'
// },
// {
// label: '养老保险金',
// prop: 'endowInsurance'
// },
// {
// label: '工会费',
// prop: 'unionFee'
// },
// {
// label: '儿童统筹',
// prop: 'childrenWhole'
// },
// {
// label: '个人所得税',
// prop: 'personalTax'
// },
//
// {
// label: '病事假扣款',
// prop: 'sickDeduction'
// },
// {
// label: '医疗救助基金',
// prop: 'medicalFund'
// },
// {
// label: '工伤',
// prop: 'inductrialInjury'
// },
// {
// label: '个人补缴',
// prop: 'personalPay'
// },
// {
// label: '代扣小计',
// prop: 'withhold'
// },
//
// {
// label: '工资收入',
// prop: 'wageIncome'
// },
//
//
// {
// label: '五险一金',
// prop: 'insurance'
// },
// {
// label: '其他扣款2',
// prop: 'otherDeduction2'
// },
//
// {
// label: '备注',
// prop: 'remark'
// },
// {
// label: '删除标记',
// prop: 'delFlag'
// },
// {
// label: '创建者',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createDate'
// },
// {
// label: '更新者',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateDate'
// },
//
// {
// label: '导入序号',
// prop: 'numId'
// },
// {
// label: '子女教育',
// prop: 'childEdu'
// },
// {
// label: '继续教育',
// prop: 'conEdu'
// },
// {
// label: '大病医疗',
// prop: 'sickMedical'
// },
// {
// label: '住房贷款利息或者住房租金',
// prop: 'house'
// },
// {
// label: '赡养老人',
// prop: 'supportOld'
// },
// {
// label: '累计住房贷款利息',
// prop: 'houseInterest'
// },
]
}
export const normalTableOption= JSON.parse(JSON.stringify(tableOption))
normalTableOption.cellBtn=false
//金额修正
export const moneyOption={
keyId:'id',
addBtn:false,
editBtn:false,
addRowBtn:false,
delRowBtn:false,
cellBtn:true,
column: [
{
label:'姓名',
prop: 'realName',
},
{
label:'身份证',
prop: 'idCard',
},
{
label:'金额',
prop: 'money',
cell: true,
rules: [
{
required: true,
message: '请输入金额',
trigger: 'blur'
}
]
},
{
label:'年份',
prop: 'year',
},
{
label:'月份',
prop: 'month',
},
]
}

View File

@@ -1,382 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: false,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
selection:true,
column: [
{
label: '编号',
prop: 'numId'
},
{
label: '工号',
prop: 'teacherNo',
search:true
},
{
label: '姓名',
prop: 'realName',
search:true
},
{
label: '岗位工资',
prop: 'postSalary'
},
{
label: '年份',
prop: 'nf',
search:true,
type:'year',
format:'yyyy',
valueFormat:'yyyy'
},
{
label: '月份',
prop: 'yf',
search:true,
type:'month',
format:'M',
valueFormat:'M'
},
{
label: '岗位类别',
prop: 'stationTypeId',
hide:true,
},
{
label: '身份证号',
prop: 'idCard',
search:true
},
// {
// label: '培训兼课金',
// prop: 'trainPool',
// cell:true,
// width:140,
// type:'number',
// precision:2
// },
// {
// label: '其他收入(一)',
// prop: 'otherIncome1',
// cell:true,
// width:140,
// type:'number',
// precision:2
// },
// {
// label: '科研经',
// prop: 'scienceMoney',
// cell:true,
// type:'number',
// width:140,
// precision:2
// },
// {
// label: '其他收入(二)',
// prop: 'otherIncome2',
// type:'number',
// width:140,
// precision:2
// },
// {
// label: '其他扣款',
// prop: 'otherDeduction'
// },
// {
// label: '累计减除费用',
// prop: 'deductionCost'
// },
{
label: '应发工资',
prop: 'shouldPay'
},
{
label: '实发工资',
prop: 'realWage',
width:110,
precision:2
},
{
label: '职工查看',
prop: 'normalView',
type: 'select',
dicUrl:'/admin/dict/item/type/salary_search',
props:{
label:'label',
value:'value'
}
},
// {
// label: '薪级工资',
// prop: 'payWage'
// },
// {
// label: '见习期工资',
// prop: 'studentPay'
// },
// {
// label: '生活补贴',
// prop: 'liveAllowance'
// },
// {
// label: '岗位津贴',
// prop: 'postAllowance'
// },
// {
// label: '住房(租金)补贴',
// prop: 'houseSubsidies'
// },
// {
// label: '新职工住房补贴',
// prop: 'newHouseSubsidies'
// },
// {
// label: '回民补贴',
// prop: 'huiSubsidies'
// },
// {
// label: '养老保险补贴',
// prop: 'oldSubsidies'
// },
// {
// label: '教龄津贴',
// prop: 'ageAllowance'
// },
// {
// label: '特教补贴',
// prop: 'specialSubsidies'
// },
// {
// label: '特级教师津贴',
// prop: 'teacherAllowance'
// },
// {
// label: '特岗津贴(一)',
// prop: 'sPostAllowance1'
// },
// {
// label: '特岗津贴(二)',
// prop: 'sPostAllowance2'
// },
// {
// label: '其他',
// prop: 'other'
// },
// {
// label: '奖励性绩效工资',
// prop: 'meritPay'
// },
// {
// label: '乡镇工作补贴',
// prop: 'villageSubsidies'
// },
// {
// label: '临时性补贴',
// prop: 'temporarySubsidies'
// },
// {
// label: '上下班交通补贴',
// prop: 'trafficSubsidies'
// },
// {
// label: '保留津贴',
// prop: 'keepAllowance'
// },
// {
// label: '补发工资',
// prop: 'retroactivePay'
// },
// {
// label: '应发工资',
// prop: 'shouldPay'
// },
// {
// label: '住房公积金',
// prop: 'houseFund'
// },
// {
// label: '医疗保险金',
// prop: 'medicalInsurance'
// },
// {
// label: '失业保险金',
// prop: 'unemployInsurance'
// },
// {
// label: '养老保险金',
// prop: 'endowInsurance'
// },
// {
// label: '工会费',
// prop: 'unionFee'
// },
// {
// label: '儿童统筹',
// prop: 'childrenWhole'
// },
// {
// label: '个人所得税',
// prop: 'personalTax'
// },
//
// {
// label: '病事假扣款',
// prop: 'sickDeduction'
// },
// {
// label: '医疗救助基金',
// prop: 'medicalFund'
// },
// {
// label: '工伤',
// prop: 'inductrialInjury'
// },
// {
// label: '个人补缴',
// prop: 'personalPay'
// },
// {
// label: '代扣小计',
// prop: 'withhold'
// },
//
// {
// label: '工资收入',
// prop: 'wageIncome'
// },
//
//
// {
// label: '五险一金',
// prop: 'insurance'
// },
// {
// label: '其他扣款2',
// prop: 'otherDeduction2'
// },
//
// {
// label: '备注',
// prop: 'remark'
// },
// {
// label: '删除标记',
// prop: 'delFlag'
// },
// {
// label: '创建者',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createDate'
// },
// {
// label: '更新者',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateDate'
// },
//
// {
// label: '导入序号',
// prop: 'numId'
// },
// {
// label: '子女教育',
// prop: 'childEdu'
// },
// {
// label: '继续教育',
// prop: 'conEdu'
// },
// {
// label: '大病医疗',
// prop: 'sickMedical'
// },
// {
// label: '住房贷款利息或者住房租金',
// prop: 'house'
// },
// {
// label: '赡养老人',
// prop: 'supportOld'
// },
// {
// label: '累计住房贷款利息',
// prop: 'houseInterest'
// },
]
}
export const normalTableOption= JSON.parse(JSON.stringify(tableOption))
normalTableOption.cellBtn=false
//金额修正
export const moneyOption={
keyId:'id',
addBtn:false,
editBtn:false,
addRowBtn:false,
delRowBtn:false,
cellBtn:true,
column: [
{
label:'姓名',
prop: 'realName',
},
{
label:'身份证',
prop: 'idCard',
},
{
label:'金额',
prop: 'money',
cell: true,
rules: [
{
required: true,
message: '请输入金额',
trigger: 'blur'
}
]
},
{
label:'年份',
prop: 'year',
},
{
label:'月份',
prop: 'month',
},
]
}

View File

@@ -1,135 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
{
label: '',
prop: 'id'
},
{
label: '',
prop: 'teacherNo'
},
{
label: '本期总收入',
prop: 'currentIncome'
},
{
label: '累计收入',
prop: 'totalIncome'
},
{
label: '累计减除费用',
prop: 'totalDeduction'
},
{
label: '累计专项扣除',
prop: 'totalSpecialDecution'
},
{
label: '累计子女教育',
prop: 'totalChildEdu'
},
{
label: '累计继续教育',
prop: 'totalConEdu'
},
{
label: '累计住房贷款利息',
prop: 'totalHouseinterest'
},
{
label: '累计住房租金',
prop: 'totalHouse'
},
{
label: '累计赡养老人',
prop: 'totalSupportOld'
},
{
label: '累计3岁以下婴幼儿照护',
prop: 'totalBabyMoney'
},
{
label: '累计应纳税所得额',
prop: 'totalTaxMoney'
},
{
label: '税率',
prop: 'taxRate'
},
{
label: '速算扣除数',
prop: 'quickDecution'
},
{
label: '累计应纳税额',
prop: 'totalTaxPay'
},
{
label: '累计应扣缴税额',
prop: 'totalRealTaxPay'
},
{
label: '累计已预缴税额',
prop: 'totalPrePayTax'
},
{
label: '累计应补(退)税额',
prop: 'totalRetrieveTax'
},
{
label: '年份',
prop: 'nf'
},
{
label: '月份',
prop: 'yf'
},
{
label: '创建时间',
prop: 'createTime'
},
{
label: '更新时间',
prop: 'updateTime'
},
{
label: '删除标记',
prop: 'delFlag'
},
{
label: '创建者',
prop: 'createBy'
},
{
label: '更新者',
prop: 'updateBy'
},
]
}

View File

@@ -1,424 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
const YES_OR_NO=[
{
label:'是',
value:'1'
},
{
label:'否',
value:'0'
}
]
const ROLE_TYPE=[
{
label:'教职工',
value:'1'
},
{
label:'学生',
value:'2'
},
{
label:'校外人员',
value:'3'
},
]
const NUCLE_TYPE=[
{
label:'待指定核酸类型',
value:'0'
},
{
label:'不需要',
value:'1'
},
{
label:'三天两检',
value:'2'
},
{
label:'七天五检',
value:'3'
},
]
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '姓名',
prop: 'teacherNo',
labelWidth:120,
addDisplay:false,
editDisplay:false,
hide:true,
type:'select',
filterable:true,
dicUrl:'/professional/teacherbase/TeacherBaseList',
props:{
label:'realName',
value:'teacherNo'
},
rules: [{
required: true,
trigger: 'blur',
message:"请选择姓名"
}]
},
{
label: '姓名',
prop: 'realName',
search:true,
// hide:true,
addDisplay:false,
editDisplay:false,
},
{
label: '归属部门',
prop: 'deptCode',
search:true,
addDisplay:false,
editDisplay:false,
slot: true,
type:'select',
dicUrl: '/basic/basicdept/getDeptList?deptLevel=2',
props: {
label: 'deptName',
value: 'deptCode'
},
},
{
label: '身份证号',
prop: 'idCard',
addDisplay:false,
editDisplay:false,
hide:true
},
{
label: '联系电话',
prop: 'telPhone',
editDisabled:true,
labelWidth:120,
rules: [{
required: true,
trigger: 'blur',
message:"请输入联系电话"
}]
},
{
label: '出行原因',
prop: 'travelReason',
labelWidth:120,
editDisabled:true,
rules: [{
required: true,
trigger: 'blur',
message:"请输入出行原因"
}]
},
{
label: '目的地',
prop: 'destination',
search:true,
labelWidth:120,
editDisabled:true,
rules: [{
required: true,
trigger: 'blur',
message:"请输入目的地"
}]
},
{
label: '出行交通工具',
prop: 'tripVehicle',
addDisplay:false,
editDisplay:false,
},
{
label: '返程交通工具',
prop: 'returnVehicle',
addDisplay:false,
editDisplay:false,
},
{
label: '出行交通工具',
prop: 'teacherTravelLeaveList',
labelWidth:120,
editDisabled:true,
hide:true,
formslot: true,
},
{
label: '返程交通工具',
prop: 'teacherTravelReturnList',
labelWidth:120,
addDisplay:false,
editDisabled:true,
hide:true,
formslot: true,
},
{
label: '是否外省',
prop: 'isProvince',
search:true,
labelWidth:120,
editDisabled:true,
type:'select',
dicData:YES_OR_NO,
props:{
label:'label',
value:'value'
},
rules: [{
required: true,
trigger: 'blur',
message:"请选择是否外省"
}]
},
// {
// label: '是否核酸检测',
// prop: 'isNat',
// search:true,
// type:'select',
// dicData:YES_OR_NO,
// props:{
// label:'label',
// value:'value'
// },
// rules: [{
// required: true,
// trigger: 'blur',
// message:"请选择是否核酸检测"
// }]
// },
// {
// label: '核酸检测情况',
// prop: 'natState',
// },
{
label: '开始时间',
prop: 'startTime',
labelWidth:120,
editDisabled:true,
type:'date',
format:'yyyy-MM-dd',
valueFormat: 'yyyy-MM-dd',
rules: [{
required: true,
trigger: 'blur',
message:"请输入开始时间"
}]
},
{
label: '结束时间',
prop: 'endTime',
editDisabled:true,
labelWidth:120,
type:'date',
format:'yyyy-MM-dd',
valueFormat: 'yyyy-MM-dd',
rules: [{
required: true,
trigger: 'blur',
message:"请输入结束时间"
}]
},
{
label: '开始时间',
prop: 'startTimeSearch',
search:true,
hide:true,
addDisplay:false,
editDisplay:false,
type:'date',
valueFormat: 'yyyy-MM-dd',
},
{
label: '结束时间',
prop: 'endTimeSearch',
search:true,
hide:true,
addDisplay:false,
editDisplay:false,
type:'date',
valueFormat: 'yyyy-MM-dd',
},
{
label: '核酸检测报告',
prop: 'attachment',
addDisplay:false,
slot: true,
formslot: true
},
{
label: '健康码',
prop: 'heathImg',
addDisplay:false,
slot: true,
formslot: true
},
{
label: '行程码',
prop: 'travelImg',
addDisplay:false,
slot: true,
formslot: true
},
{
label: '部门领导审批',
prop: 'deptApproval',
search:true,
addDisplay:false,
editDisplay:false,
type: 'select',
dicUrl: '/admin/dict/item/type/dept_approval',
props:{
label:'label',
value:'value'
}
},
{
label: '分管领导审批',
prop: 'leaderApproval',
search:true,
slot: true,
addDisplay:false,
editDisplay:false,
type: 'select',
dicUrl: '/admin/dict/item/type/dept_approval',
props:{
label:'label',
value:'value'
}
},
// {
// label: '审核状态',
// prop: 'auditStatus',
// addDisplay:false,
// editDisplay:false,
// hide:true,
// search:true,
// type: 'select',
// dicUrl: '/admin/dict/item/type/dept_approval',
// props:{
// label:'label',
// value:'value'
// }
// },
{
label: '驳回原因',
prop: 'remarks',
addDisplay:false,
editDisplay:false,
},
{
label: '部门领导审批(返程)',
prop: 'attachmentVerify',
search:true,
addDisplay:false,
editDisplay:false,
type: 'select',
dicUrl: '/admin/dict/item/type/dept_approval',
props:{
label:'label',
value:'value'
}
},
{
label: '分管领导审批(返程)',
prop: 'attachmentLeaderVerify',
search:true,
addDisplay:false,
editDisplay:false,
type: 'select',
dicUrl: '/admin/dict/item/type/dept_approval',
props:{
label:'label',
value:'value'
}
},
{
label: '销假核酸类型',
prop: 'nucleType',
search:true,
display:false,
type:'select',
dicData:NUCLE_TYPE,
props:{
label:'label',
value:'value'
},
},
{
label: '角色类型',
prop: 'roleType',
search:true,
addDisplay:false,
editDisplay:false,
type:'select',
dicData:ROLE_TYPE,
props:{
label:'label',
value:'value'
},
}
]
}

View File

@@ -1,81 +0,0 @@
/*
* Copyright (c) 2018-2025, cyweb All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
*/
export const tableOption = {
border: true,
index: true,
indexLabel: '序号',
stripe: true,
menuAlign: 'center',
align: 'center',
editBtn: false,
delBtn: false,
addBtn: false,
dic: [],
column: [
// {
// label: '主键',
// prop: 'id'
// },
// {
// label: '创建人',
// prop: 'createBy'
// },
// {
// label: '创建时间',
// prop: 'createTime'
// },
// {
// label: '更新人',
// prop: 'updateBy'
// },
// {
// label: '更新时间',
// prop: 'updateTime'
// },
// {
// label: '删除标志位',
// prop: 'delFlag'
// },
// {
// label: '备注',
// prop: 'remarks'
// },
// {
// label: '租户id',
// prop: 'tenantId'
// },
{
label: '工种名字',
prop: 'workTitle'
},
{
label: '更新时间',
prop: 'updateTime',
addDisplay:false,
editDisplay:false
},
{
label: '排序',
prop: 'sort'
},
{
label: '备注',
prop: 'remarks'
},
]
}

View File

@@ -71,8 +71,8 @@
</template> </template>
</el-dropdown> </el-dropdown>
<Search ref="searchRef" /> <Search ref="searchRef" />
<global-websocket uri="/admin/ws/info" v-if="websocketEnable" @rollback="rollback" /> <!-- <global-websocket uri="/admin/ws/info" v-if="websocketEnable" @rollback="rollback" />-->
<global-websocket uri="/jsonflow/ws/info" v-if="useFlowJob().jsonFlowEnable()" @rollback="rollback" /> <!-- <global-websocket uri="/jsonflow/ws/info" v-if="useFlowJob().jsonFlowEnable()" @rollback="rollback" />-->
<personal-drawer ref="personalDrawerRef"></personal-drawer> <personal-drawer ref="personalDrawerRef"></personal-drawer>
<change-role ref="ChangeRoleRef" /> <change-role ref="ChangeRoleRef" />

35
src/utils/dictLabel.ts Normal file
View File

@@ -0,0 +1,35 @@
// 通用:根据字典列表和 value 获取 label 文本
export function getLabelValue(
list: Array<{ label: string; value: string | number }>,
value: string | number | null | undefined,
): string {
if (!list || !Array.isArray(list)) return ''
const item = list.find((it: any) => String(it.value) === String(value))
return item ? item.label : ''
}
// 通用:根据指定 key/value 字段,从列表中取 label原 global.getLabelValueByPropes
export function getLabelValueByProps(
list: any[],
key: string | number | null | undefined,
props: { key: string; value: string },
): string {
if (!list || !Array.isArray(list)) return ''
const item = list.find((it: any) => String(it[props.key]) === String(key))
return item ? item[props.value] : ''
}
// 通用:根据 key 取“专业名称 || 学制年制”展示(原 global.getLabelValueByPropes2
export function getMajorLabelWithYears(
list: any[],
key: string | number | null | undefined,
props: { key: string; value: string },
): string {
if (!list || !Array.isArray(list)) return ''
const item = list.find((it: any) => String(it[props.key]) === String(key))
if (!item) return ''
const majorName = item[props.value] ?? ''
const years = item.xz != null ? `${item.xz} 年制` : ''
return years ? `${majorName} || ${years}` : majorName
}

View File

@@ -0,0 +1,57 @@
<!--
- Copyright (c) 2018-2025, cyweb All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- Neither the name of the pig4cloud.com developer nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-->
<template>
<div class="layout-padding">
<div class="layout-padding-auto layout-padding-view">
<el-tabs v-model="activeName" @tab-click="handleTabClick">
<el-tab-pane label="回校列表" name="tab">
<tab-index ref="tabIndexRef" />
</el-tab-pane>
<el-tab-pane label="回校统计" name="static">
<static-index ref="staticIndexRef" />
</el-tab-pane>
</el-tabs>
</div>
</div>
</template>
<script setup lang="ts" name="backSchool">
import { ref, nextTick, defineAsyncComponent } from 'vue'
const TabIndex = defineAsyncComponent(() => import('./tabIndex.vue'))
const StaticIndex = defineAsyncComponent(() => import('./staticIndex.vue'))
const activeName = ref('tab')
const tabIndexRef = ref()
const staticIndexRef = ref()
const handleTabClick = (tab: any) => {
if (tab.paneName == 'tab') {
nextTick(() => {
tabIndexRef.value?.init()
})
} else {
nextTick(() => {
staticIndexRef.value?.init()
})
}
}
</script>
<style lang="scss" scoped>
</style>

View File

@@ -0,0 +1,170 @@
<!--
- Copyright (c) 2018-2025, cyweb All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- Neither the name of the pig4cloud.com developer nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-->
<template>
<div class="layout-padding">
<div class="layout-padding-auto layout-padding-view">
<!-- 搜索表单 -->
<el-form :model="queryForm" inline class="mb-4" ref="searchFormRef">
<el-form-item label="招生计划" prop="groupId">
<el-select v-model="queryForm.groupId" filterable clearable placeholder="请选择招生计划" @change="getTabStaticDataList" style="width: 150px;">
<el-option
v-for="item in planList"
:key="item.id"
:label="item.groupName"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="getTabStaticDataList">查询</el-button>
<el-button type="primary" plain icon="Refresh" class="ml10" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- 表格 -->
<el-table
ref="tableRef"
:data="tableData"
v-loading="dataListLoading"
border
stripe
show-summary
:summary-method="getSummaries"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
<el-table-column prop="groupId" label="招生计划" align="center" show-overflow-tooltip>
<template #default="scope">
{{ getPlanName(scope.row.groupId) }}
</template>
</el-table-column>
<el-table-column prop="zymc" label="专业名称" align="center" show-overflow-tooltip />
<el-table-column prop="wlx" label="未联系" align="center" show-overflow-tooltip />
<el-table-column prop="yjbd" label="已经报到" align="center" show-overflow-tooltip />
<el-table-column prop="tcbd" label="推迟报到" align="center" show-overflow-tooltip />
<el-table-column prop="fqbd" label="放弃报到" align="center" show-overflow-tooltip />
<el-table-column prop="fwlx" label="无法联系" align="center" show-overflow-tooltip />
</el-table>
</div>
</div>
</template>
<script setup lang="ts" name="backSchoolCheckinStaticIndex">
import { ref, reactive, onMounted } from 'vue'
import { list } from '/@/api/recruit/recruitstudentplangroup'
import { getTabStaticDataList as getTabStaticDataListApi } from '/@/api/recruit/recruitstudentsignup'
// @ts-ignore
import global from '@/components/tools/commondict'
import { useTable } from '/@/hooks/table'
// 表格引用
const tableRef = ref()
const searchFormRef = ref()
// 数据
const planList = ref<any[]>([])
const tableData = ref<any[]>([])
const dataListLoading = ref(false)
// 查询表单
const queryForm = reactive({
groupId: ''
})
// 获取计划名称
const getPlanName = (groupId: string) => {
const item = planList.value.find(item => item.id === groupId)
return item ? item.groupName : ''
}
// 表格样式
const { tableStyle } = useTable({ queryForm: queryForm, pageList: async () => ({ data: { records: [], total: 0 } }), createdIsNeed: false })
// 获取汇总数据
const getSummaries = (param: any) => {
const { columns, data } = param
const sums: any[] = []
columns.forEach((column: any, index: number) => {
if (index === 0) {
sums[index] = '总计'
} else if (index != 1) {
const values = data.map((item: any) => Number(item[column.property]))
if (!values.every((value: any) => isNaN(value))) {
sums[index] = values.reduce((prev: number, curr: number) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
} else {
sums[index] = '--'
}
} else {
sums[index] = '--'
}
})
return sums
}
// 获取统计数据
const getTabStaticDataList = async () => {
try {
tableData.value = []
dataListLoading.value = true
const response = await getTabStaticDataListApi(queryForm)
tableData.value = response.data || []
} catch (error) {
console.error('获取统计数据失败', error)
} finally {
dataListLoading.value = false
}
}
// 重置查询
const resetQuery = () => {
searchFormRef.value?.resetFields()
queryForm.groupId = ''
if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id
}
getTabStaticDataList()
}
// 初始化
const init = async () => {
try {
const data = await list()
planList.value = data.data || []
if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id
getTabStaticDataList()
}
} catch (error) {
console.error('初始化失败', error)
}
}
onMounted(() => {
init()
})
</script>
<style lang="scss" scoped>
</style>

View File

@@ -0,0 +1,275 @@
<!--
- Copyright (c) 2018-2025, cyweb All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- Neither the name of the pig4cloud.com developer nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-->
<template>
<div class="layout-padding">
<div class="layout-padding-auto layout-padding-view">
<el-form :model="queryForm" inline class="mb-4" ref="searchFormRef">
<el-form-item label="入学年份" prop="grade">
<el-select v-model="queryForm.grade" filterable clearable placeholder="请选择入学年份">
<el-option
v-for="item in gradeList"
:key="item.year"
:label="item.year"
:value="item.year"
/>
</el-select>
</el-form-item>
<el-form-item label="学院" prop="deptCode">
<el-select v-model="queryForm.deptCode" filterable clearable placeholder="请选择学院">
<el-option
v-for="item in deptList"
:key="item.deptCode"
:label="item.deptName"
:value="item.deptCode"
/>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="classCode">
<el-select v-model="queryForm.classCode" filterable clearable placeholder="请选择班级">
<el-option
v-for="item in classData"
:key="item.classCode"
:label="item.classNo"
:value="item.classCode"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="searchData">查询</el-button>
<el-button type="primary" plain icon="Refresh" class="ml10" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<div class="mb15">
<el-button
v-if="permissions.recruit_newstucheckin_statistics_output"
type="warning"
plain
icon="Download"
:loading="exportLoading"
@click="handleExportOut"
>
导出
</el-button>
</div>
<el-table
:data="tableData"
height="650"
show-summary
:summary-method="getSummaries"
stripe
border
v-loading="tableLoading"
:header-cell-style="{ 'text-align': 'center' }"
:cell-style="{ 'text-align': 'center' }"
class="el_table_job_fair_stu"
>
<el-table-column type="index" width="50" fixed label="序号" />
<el-table-column prop="deptName" label="学院" />
<el-table-column prop="classNo" label="班级" />
<el-table-column prop="classNum" label="预计报到人数" />
<el-table-column prop="checkInOk" label="已经报到" />
<el-table-column prop="postpone" label="推迟报到" />
<el-table-column prop="abandon" label="放弃报到" />
<el-table-column prop="missing" label="无法联系" />
<el-table-column prop="contact" label="未联系" />
<el-table-column prop="checkInRate" label="报到率" />
</el-table>
</div>
</div>
</template>
<script setup lang="ts" name="backSchoolCheckin-statistics">
import { ref, reactive, computed, onMounted } from 'vue'
import { storeToRefs } from 'pinia'
import { useUserInfo } from '/@/stores/userInfo'
import { useMessage } from '/@/hooks/message'
import { getDataStatistics } from '/@/api/recruit/newstucheckin'
import { list } from '/@/api/recruit/recruitstudentplangroup'
import { getDeptList } from '/@/api/basic/basicclass'
import { getClasslist } from '/@/api/stuwork/stupunlish'
import axios from 'axios'
// 使用 Pinia store
const userInfoStore = useUserInfo()
const { userInfos } = storeToRefs(userInfoStore)
// 创建权限对象
const permissions = computed(() => {
const perms: Record<string, boolean> = {}
userInfos.value.authBtnList.forEach((perm: string) => {
perms[perm] = true
})
return perms
})
// 消息提示 hooks
const message = useMessage()
// 引用
const searchFormRef = ref()
// 状态
const tableData = ref<any[]>([])
const tableLoading = ref(false)
const exportLoading = ref(false)
const gradeList = ref<any[]>([])
const deptList = ref<any[]>([])
const classData = ref<any[]>([])
// 查询表单
const queryForm = reactive({
grade: '',
deptCode: '',
classCode: ''
})
// 初始化
const init = async () => {
await Promise.all([
getGradeData(),
getDeptData(),
getClassData()
])
getList()
}
// 查看所有入学年份
const getGradeData = async () => {
try {
const data = await list()
gradeList.value = data.data || []
} catch (error) {
console.error('获取入学年份失败', error)
}
}
// 查找所有二级学院
const getDeptData = async () => {
try {
const data = await getDeptList()
deptList.value = data.data || []
} catch (error) {
console.error('获取学院列表失败', error)
}
}
// 查找所有班级
const getClassData = async () => {
try {
const data = await getClasslist()
classData.value = data.data || []
} catch (error) {
console.error('获取班级列表失败', error)
}
}
// 获取数据列表
const getList = async () => {
try {
tableLoading.value = true
const response = await getDataStatistics(queryForm)
tableData.value = response.data || []
} catch (error) {
console.error('获取数据失败', error)
} finally {
tableLoading.value = false
}
}
// 查询
const searchData = () => {
getList()
}
// 重置查询
const resetQuery = () => {
searchFormRef.value?.resetFields()
queryForm.grade = ''
queryForm.deptCode = ''
queryForm.classCode = ''
getList()
}
// 导出
const handleExportOut = async () => {
try {
exportLoading.value = true
const res = await axios({
method: 'post',
url: '/recruit/newstucheckin/exportDataStatistics',
data: queryForm,
responseType: 'blob',
headers: {
'Content-Type': 'application/json'
}
})
const blob = new Blob([res.data])
const fileName = '新生报到统计.xls'
const elink = document.createElement('a')
elink.download = fileName
elink.style.display = 'none'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href)
document.body.removeChild(elink)
} catch (error: any) {
message.error(error.msg || '导出失败')
} finally {
exportLoading.value = false
}
}
// 合计方法
const getSummaries = (param: any) => {
const { columns, data } = param
const sums: any[] = []
columns.forEach((column: any, index: number) => {
if (index === 0) {
sums[index] = '合计'
return
}
if (index === 1 || index === 2) {
sums[index] = ''
return
}
const values = data.map((item: any) => Number(item[column.property]))
if (!values.every((value: any) => isNaN(value))) {
sums[index] = values.reduce((prev: number, curr: any) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
}
})
return sums
}
onMounted(() => {
init()
})
</script>
<style lang="scss" scoped>
</style>

View File

@@ -0,0 +1,159 @@
<template>
<div>
<el-dialog v-model="newStuCheckInDialog" width="40%">
<el-form :model="form" :rules="rules" ref="formRef" label-width="120px" class="demo-ruleForm">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" disabled style="width: 80%" />
</el-form-item>
<el-form-item label="性别" prop="gender">
<el-select v-model="form.gender" placeholder="请选择性别" disabled style="width: 80%">
<el-option
v-for="item in genderData"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="身份证号" prop="idNumber">
<el-input v-model="form.idNumber" disabled style="width: 80%" />
</el-form-item>
<el-form-item label="报到状态" prop="backSchoolState">
<el-select v-model="form.backSchoolState" filterable placeholder="请选择报到状态" style="width: 80%">
<el-option
v-for="item in checkInStatusData"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="回校备注" prop="backSchoolRemark">
<el-input v-model="form.backSchoolRemark" :rows="2" style="width: 80%" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="checkIn" :loading="submitLoading">确定</el-button>
<el-button @click="newStuCheckInDialog = false">取消</el-button>
</el-form-item>
</el-form>
</el-dialog>
</div>
</template>
<script setup lang="ts" name="backSchoolCheckin-stu-check-in">
import { ref, reactive } from 'vue'
import { useMessage } from '/@/hooks/message'
import { useDict } from '/@/hooks/dict'
import { putBackObj } from '/@/api/recruit/recruitstudentsignup'
// 消息提示 hooks
const message = useMessage()
// 字典
const { getTypeValue } = useDict()
// 定义 emits
const emit = defineEmits(['reload'])
// 引用
const formRef = ref()
// 状态
const newStuCheckInDialog = ref(false)
const checkInStatusData = ref<any[]>([])
const submitLoading = ref(false)
const page = ref<any>({})
// 固定数据
const genderData = [
{ label: '女', value: '2' },
{ label: '男', value: '1' }
]
// 表单数据
const form = reactive({
id: '',
name: '',
backSchoolState: '',
gender: '',
idNumber: '',
backSchoolRemark: ''
})
// 表单验证规则
const rules = reactive({
name: [
{ required: true, message: '请输入姓名', trigger: ['blur', 'change'] }
],
gender: [
{ required: true, message: '请输入性别', trigger: ['blur', 'change'] }
],
idNumber: [
{ required: true, message: '请输入身份证号', trigger: ['blur', 'change'] }
],
backSchoolState: [
{ required: true, message: '请输入报到状态', trigger: ['blur', 'change'] }
]
})
// 初始化表单
const initForm = () => {
form.id = ''
form.name = ''
form.backSchoolState = ''
form.gender = ''
form.idNumber = ''
form.backSchoolRemark = ''
}
// 初始化
const init = async (formData: any, pageData: any) => {
initForm()
page.value = pageData
submitLoading.value = false
newStuCheckInDialog.value = true
checkInStatusData.value = []
try {
const data = await getTypeValue('check_in_status')
checkInStatusData.value = data.data || []
} catch (error) {
console.error('获取字典数据失败', error)
}
Object.assign(form, formData)
}
// 报到
const checkIn = async () => {
if (!formRef.value) return
try {
await formRef.value.validate()
submitLoading.value = true
await putBackObj(form)
message.success('报到成功')
emit('reload')
newStuCheckInDialog.value = false
} catch (error: any) {
if (error !== false) {
message.error(error.msg || '报到失败')
}
} finally {
submitLoading.value = false
}
}
// 暴露方法
defineExpose({
init
})
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,547 @@
<!--
- Copyright (c) 2018-2025, cyweb All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- Neither the name of the pig4cloud.com developer nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-->
<template>
<div class="layout-padding">
<div class="layout-padding-auto layout-padding-view">
<!-- 搜索表单 -->
<el-form :model="queryForm" inline class="mb-4" ref="searchFormRef">
<el-form-item label="招生计划" prop="groupId">
<el-select v-model="queryForm.groupId" filterable clearable placeholder="请选择招生计划" @change="chanMajor" style="width: 150px;">
<el-option
v-for="item in planList"
:key="item.id"
:label="item.groupName"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="学院" prop="xy">
<el-select v-model="queryForm.xy" filterable clearable placeholder="请选择学院" style="width: 130px;">
<el-option
v-for="item in deptList"
:key="item.deptCode"
:label="item.deptName"
:value="item.deptCode"
/>
</el-select>
</el-form-item>
<el-form-item label="录取专业" prop="confirmedMajor">
<el-select v-model="queryForm.confirmedMajor" filterable clearable placeholder="请选择录取专业">
<el-option
v-for="item in planMajorList"
:key="item.zydm"
:label="item.zymc + '(' + item.xz + '年制)'"
:value="item.zydm"
/>
</el-select>
</el-form-item>
<el-form-item label="唯一号/姓名/身份证号/学校名称" prop="search">
<el-input v-model="queryForm.search" clearable placeholder="唯一号/姓名/身份证号/学校名称" />
</el-form-item>
<el-form-item label="缴费状态" prop="paystatus">
<el-select v-model="queryForm.paystatus" filterable clearable placeholder="请选择缴费状态" style="width: 120px;">
<el-option
v-for="item in paystatusList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="推送状态" prop="pushed">
<el-select v-model="queryForm.pushed" filterable clearable placeholder="请选择推送状态" style="width: 120px;">
<el-option
v-for="item in pushedList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="报到状态" prop="backSchoolState">
<el-select v-model="queryForm.backSchoolState" filterable clearable placeholder="请选择报到状态" style="width: 120px;">
<el-option
v-for="item in backSchoolStateList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="getDataList">查询</el-button>
<el-button type="primary" plain icon="Refresh" class="ml10" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- 操作按钮 -->
<div class="mb15">
<el-button
type="warning"
plain
icon="Download"
@click="handleExport"
>
名单导出
</el-button>
<el-button
v-if="permissions.recruit_recruitstudentsignup_allCX"
type="success"
plain
icon="Search"
class="ml10"
@click="updateAllFS"
>
批量查询
</el-button>
</div>
<!-- 表格 -->
<el-table
ref="tableRef"
:data="state.dataList"
v-loading="state.loading"
border
stripe
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
<el-table-column type="index" label="序号" width="60" align="center" />
<el-table-column label="操作" width="200" align="center" fixed="left">
<template #default="scope">
<el-button
v-if="permissions.recruit_recruitstudentsignup_show && scope.row.pushed == '1' && scope.row.paiedOffline != '10' && (scope.row.clfPayCode != undefined && scope.row.clfPayCode != '')"
type="primary"
link
icon="QrCode"
@click="showPayCode(scope.row)"
>
支付二维码
</el-button>
<el-button
v-if="permissions.recruit_recruitstudentsignup_back"
type="success"
link
icon="CircleCheck"
@click="handleCheckIn(scope.row)"
>
报到
</el-button>
</template>
</el-table-column>
<el-table-column prop="serialNumber" label="唯一号" align="center" show-overflow-tooltip />
<el-table-column prop="xy" label="学院" align="center" show-overflow-tooltip>
<template #default="scope">
<span v-if="scope.row.auditStatus == 20">
{{ getDeptName(scope.row.xy) }}
</span>
</template>
</el-table-column>
<el-table-column prop="confirmedMajor" label="录取专业" align="center" show-overflow-tooltip>
<template #default="scope">
<span v-if="scope.row.auditStatus == 20">
{{ getMajorName(scope.row.confirmedMajor) }}
</span>
</template>
</el-table-column>
<el-table-column prop="name" label="姓名" align="center" show-overflow-tooltip />
<el-table-column prop="gender" label="性别" align="center" show-overflow-tooltip>
<template #default="scope">
{{ getGender(scope.row.gender) }}
</template>
</el-table-column>
<el-table-column prop="idNumber" label="身份证号" align="center" show-overflow-tooltip />
<el-table-column prop="parentTelOne" label="家长电话1" align="center" show-overflow-tooltip />
<el-table-column prop="parentTelTwo" label="家长电话2" align="center" show-overflow-tooltip />
<el-table-column prop="backSchoolState" label="报到状态" align="center" show-overflow-tooltip>
<template #default="scope">
{{ getBackSchoolStateLabel(scope.row.backSchoolState) }}
</template>
</el-table-column>
<el-table-column prop="backSchoolRemark" label="报到备注" align="center" show-overflow-tooltip />
<el-table-column prop="paiedOffline" label="缴费状态" align="center" show-overflow-tooltip>
<template #default="scope">
{{ getStatus(scope.row.paiedOffline) }}
</template>
</el-table-column>
<el-table-column prop="pushed" label="推送状态" align="center" show-overflow-tooltip>
<template #default="scope">
<span v-if="scope.row.pushed == 0" style="color: red">{{ getPushed(scope.row.pushed) }}</span>
<span v-if="scope.row.pushed == 1" style="color: green">{{ getPushed(scope.row.pushed) }}</span>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<pagination
v-bind="state.pagination"
@current-change="currentChangeHandle"
@size-change="sizeChangeHandle"
/>
<!-- 支付二维码弹窗 -->
<el-dialog v-model="dialogFormVisible" title="支付二维码" width="800px" @close="dialogFormVisible = false">
<el-table :data="tableData" border>
<el-table-column label="唯一号" prop="serialNumber" align="center" />
<el-table-column label="姓名" prop="name" align="center" />
<el-table-column label="家长手机号" prop="parentTelOne" align="center" />
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button type="danger" icon="Search" @click="updateFS">立即查询</el-button>
</template>
</el-table-column>
</el-table>
<div style="padding-top: 20px;">
<div id="payQrcode1" style="display: inline-block;">
{{ payQrcode1Msg }}
</div>
<!-- <vue-qr :text="payQrcode1" :size="200" v-if="showPrise1" style="display: inline-block"></vue-qr> -->
<div id="payQrcode2" style="display: inline-block">
{{ payQrcode2Msg }}
</div>
<!-- <vue-qr :text="payQrcode2" :size="200" v-if="showPrise2" style="display: inline-block"></vue-qr> -->
<div id="payQrcode3" style="display: inline-block">
{{ payQrcode3Msg }}
</div>
<!-- <vue-qr :text="payQrcode3" :size="200" v-if="showPrise3" style="display: inline-block"></vue-qr> -->
</div>
<span style="color: red;padding-top: 20px;">** 此界面为查询学生缴款二维码如有收不到微信推送或手机号填错的可直接在此扫码支付支付成功后请手动点击"立即查询"按钮查询该生的缴费情况;因财政收费系统有一定的滞后性如点击"立即查询"后任显示未交费请稍后再继续查询或重新点击"立即查询"按钮 **</span>
</el-dialog>
<stu-check-in ref="stuCheckInRef" @reload="refreshChange" />
</div>
</div>
</template>
<script setup lang="ts" name="backSchoolCheckinTabIndex">
import { ref, reactive, computed, onMounted, nextTick, defineAsyncComponent } from 'vue'
import { storeToRefs } from 'pinia'
import { useUserInfo } from '/@/stores/userInfo'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { list } from '/@/api/recruit/recruitstudentplangroup'
import { backPush, backSchoolStuPage, batchPushAll } from '/@/api/recruit/recruitstudentsignup'
import { getDeptList } from '/@/api/basic/basicclass'
import { listPlanByCondition as planMajor } from '/@/api/recruit/recruitstudentplan'
import { updateFs, updateAllFS } from '/@/api/finance/financenormalstu'
import { getTypeValue } from '/@/api/admin/dict'
// @ts-ignore
import global from '@/components/tools/commondict.vue'
const StuCheckIn = defineAsyncComponent(() => import('./stu-check-in.vue'))
// 使用 Pinia store
const userInfoStore = useUserInfo()
const { userInfos } = storeToRefs(userInfoStore)
// 创建权限对象
const permissions = computed(() => {
const perms: Record<string, boolean> = {}
userInfos.value.authBtnList.forEach((perm: string) => {
perms[perm] = true
})
return perms
})
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()
// 表格引用
const tableRef = ref()
const searchFormRef = ref()
const stuCheckInRef = ref()
// 数据
const planList = ref<any[]>([])
const planMajorList = ref<any[]>([])
const deptList = ref<any[]>([])
const backSchoolStateList = ref<any[]>([])
const paystatusList = ref([{ label: '已缴费', value: '10' }, { label: '未缴费', value: '0' }, { label: '部分缴费', value: '5' }])
const pushedList = ref([{ label: '未推送', value: '0' }, { label: '已推送', value: '1' }])
// 查询表单
const queryForm = reactive({
groupId: '',
xy: '',
confirmedMajor: '',
search: '',
paystatus: '',
pushed: '',
backSchoolState: '',
isOut: '1',
auditStatus: '20'
})
// 弹窗状态
const dialogFormVisible = ref(false)
const tableData = ref<any[]>([])
const payQrcode1 = ref('')
const showPrise1 = ref(false)
const payQrcode1Msg = ref('')
const payQrcode2 = ref('')
const payQrcode2Msg = ref('')
const showPrise2 = ref(false)
const payQrcode3 = ref('')
const payQrcode3Msg = ref('')
const showPrise3 = ref(false)
// 获取学院名称
const getDeptName = (deptCode: string) => {
const item = deptList.value.find(item => item.deptCode === deptCode)
return item ? item.deptName : ''
}
// 获取专业名称
const getMajorName = (majorCode: string) => {
const item = planMajorList.value.find(item => item.zydm === majorCode)
return item ? item.zymc : ''
}
// 获取性别
const getGender = (gender: string) => {
if (gender == '2') {
return '女'
}
if (gender == '1') {
return '男'
}
return ''
}
// 获取报到状态标签
const getBackSchoolStateLabel = (value: string) => {
const item = backSchoolStateList.value.find(item => item.value === value)
return item ? item.label : ''
}
// 获取缴费状态
const getStatus = (type: string) => {
if (type == '0') {
return '未缴费'
} else if (type == '5') {
return '部分缴费'
} else if (type == '10') {
return '已缴费'
}
return ''
}
// 获取推送状态
const getPushed = (type: string) => {
if (type == '0') {
return '未推送'
} else if (type == '1') {
return '已推送'
}
return ''
}
// 表格状态
const state: BasicTableProps = reactive<BasicTableProps>({
queryForm: queryForm,
pageList: async (params: any) => {
const response = await backSchoolStuPage(params)
return {
data: {
records: response.data.records,
total: response.data.total
}
}
},
createdIsNeed: false
})
// 使用 table hook
const { getDataList, currentChangeHandle, sizeChangeHandle, tableStyle, downBlobFile } = useTable(state)
// 招生计划改变
const chanMajor = async () => {
if (queryForm.groupId) {
await getMajorList(queryForm.groupId)
}
}
// 获取专业列表
const getMajorList = async (groupId: string) => {
try {
const data = await planMajor({ groupId })
planMajorList.value = data.data || []
} catch (error) {
console.error('获取专业列表失败', error)
}
}
// 初始化
const init = async () => {
try {
// 查询报到状态字典
const dictData = await getTypeValue('check_in_status')
backSchoolStateList.value = dictData.data || []
// 查询二级学院信息
const deptData = await getDeptList()
deptList.value = deptData.data || []
// 获取招生计划列表
const planData = await list()
planList.value = planData.data || []
if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id
await getMajorList(queryForm.groupId)
}
getDataList()
} catch (error) {
console.error('初始化失败', error)
}
}
// 打开报到窗口
const handleCheckIn = (row: any) => {
nextTick(() => {
stuCheckInRef.value?.init(row, state.pagination.current)
})
}
// 刷新回调
const refreshChange = () => {
getDataList()
}
// 批量查询
const updateAllFS = async () => {
if (!queryForm.groupId) {
message.warning('招生计划不能为空')
return
}
try {
const plan = planList.value.find(e => e.id === queryForm.groupId)
if (!plan) return
const data = await updateAllFS({ year: plan.year, stuSource: '1' })
if (data.data.code == '200') {
message.success('正在更新所有缴费单状态,请稍后查看更新结果')
}
} catch (error: any) {
message.error(error.msg || '操作失败')
}
}
// 导出
const handleExport = async () => {
if (!queryForm.groupId) {
message.warning('招生计划不能为空')
return
}
try {
await downBlobFile(
'/recruit/recruitstudentsignup/exportBackData',
queryForm,
'招生名单导出.xls'
)
} catch (error: any) {
message.error(error.msg || '导出失败')
}
}
// 立即查询
const updateFS = async () => {
if (tableData.value.length === 0) return
try {
const serialNumber = tableData.value[0].serialNumber.substring(1, tableData.value[0].serialNumber.length)
await updateFs({ serialNumber })
message.success('已提交查询请求请等待1分钟后重新查询')
dialogFormVisible.value = false
getDataList()
} catch (error: any) {
message.error(error.msg || '查询失败')
}
}
// 显示支付二维码
const showPayCode = (row: any) => {
showPrise1.value = false
showPrise2.value = false
showPrise3.value = false
payQrcode1.value = ''
payQrcode2.value = ''
payQrcode3.value = ''
if (row.clfPayCode && row.clfPayCode != '') {
payQrcode1Msg.value = '材料费、代办费'
showPrise1.value = true
payQrcode1.value = 'https://jscz.govpay.ccb.com/online/fsjf?PyF_BillNo=' + row.clfPayCode + '&Verf_CD=blank&Admn_Rgon_Cd=320400'
} else {
payQrcode1Msg.value = ''
showPrise1.value = false
}
if (row.xfPayCode && row.xfPayCode != '') {
payQrcode2Msg.value = '学费'
showPrise2.value = true
payQrcode2.value = 'https://jscz.govpay.ccb.com/online/fsjf?PyF_BillNo=' + row.xfPayCode + '&Verf_CD=blank&Admn_Rgon_Cd=320400'
} else {
payQrcode2Msg.value = ''
showPrise2.value = false
}
if (row.zdbPayCode && row.zdbPayCode != '') {
payQrcode3Msg.value = '中德班学费'
showPrise3.value = true
payQrcode3.value = 'https://jscz.govpay.ccb.com/online/fsjf?PyF_BillNo=' + row.zdbPayCode + '&Verf_CD=blank&Admn_Rgon_Cd=320400'
} else {
payQrcode3Msg.value = ''
showPrise3.value = false
}
tableData.value = [row]
dialogFormVisible.value = true
}
// 重置查询
const resetQuery = () => {
searchFormRef.value?.resetFields()
queryForm.groupId = ''
queryForm.xy = ''
queryForm.confirmedMajor = ''
queryForm.search = ''
queryForm.paystatus = ''
queryForm.pushed = ''
queryForm.backSchoolState = ''
queryForm.isOut = '1'
queryForm.auditStatus = '20'
if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id
}
getDataList()
}
onMounted(() => {
init()
})
</script>
<style lang="scss" scoped>
</style>

View File

@@ -0,0 +1,269 @@
<!--
- Copyright (c) 2018-2025, cyweb All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- Neither the name of the pig4cloud.com developer nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-->
<template>
<div class="layout-padding">
<div class="layout-padding-auto layout-padding-view">
<!-- 搜索表单 -->
<el-form :model="queryForm" inline class="mb-4">
<el-form-item label="">
<el-input
v-model="queryForm.searchTotal"
style="width: 300px"
clearable
placeholder="请输入姓名/身份证号/家庭联系人"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="getDataList">查询</el-button>
<el-button type="primary" plain icon="Refresh" class="ml10" @click="resetQuery">重置</el-button>
<el-button
v-if="permissions.recruit_newstucheckin_output"
type="warning"
plain
icon="Download"
class="ml10"
@click="handleExportOut"
:loading="exportLoading"
>
导出
</el-button>
</el-form-item>
</el-form>
<!-- 表格 -->
<el-table
ref="tableRef"
:data="state.dataList"
v-loading="state.loading"
border
stripe
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
<el-table-column type="index" label="序号" width="60" align="center" />
<el-table-column prop="xy" label="学院" align="center" show-overflow-tooltip />
<el-table-column prop="classCode" label="班级" align="center" width="80" show-overflow-tooltip />
<el-table-column prop="stuNo" label="学号" align="center" show-overflow-tooltip />
<el-table-column prop="name" label="姓名" align="center" width="80" show-overflow-tooltip />
<el-table-column prop="gender" label="性别" align="center" width="60">
<template #default="scope">
<span>{{ scope.row.gender === '1' ? '男' : scope.row.gender === '2' ? '女' : '' }}</span>
</template>
</el-table-column>
<el-table-column prop="idNumber" label="身份证号" align="center" show-overflow-tooltip />
<el-table-column prop="checkInStatus" label="报到状态" align="center" show-overflow-tooltip>
<template #default="scope">
<el-tag v-if="scope.row.checkInStatus">
{{ getCheckInStatusLabel(scope.row.checkInStatus) }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="isDormApply" label="住宿申请" align="center" width="100">
<template #default="scope">
<el-tag v-if="scope.row.isDormApply == '1'" type="success">通过</el-tag>
<el-tag v-else-if="scope.row.isDormApply == '0'" type="info">未通过</el-tag>
</template>
</el-table-column>
<el-table-column prop="isRoom" label="是否住宿" align="center" width="100">
<template #default="scope">
<span>{{ scope.row.isRoom === '1' ? '是' : scope.row.isRoom === '0' ? '否' : '' }}</span>
</template>
</el-table-column>
<el-table-column prop="roomNo" label="宿舍号" align="center" width="80" show-overflow-tooltip />
<el-table-column prop="bedNo" label="床位号" align="center" width="80" show-overflow-tooltip />
<el-table-column prop="degreeOfEducation" label="文化程度" align="center" show-overflow-tooltip />
<el-table-column prop="residenceDetail" label="居住地址" align="center" show-overflow-tooltip />
<el-table-column prop="parentName" label="家庭联系人" align="center" show-overflow-tooltip />
<el-table-column prop="parentTelOne" label="家长电话1" align="center" show-overflow-tooltip />
<el-table-column prop="parentTelTwo" label="家长电话2" align="center" show-overflow-tooltip />
<el-table-column prop="remarks" label="备注" align="center" show-overflow-tooltip />
<el-table-column label="操作" width="100" align="center" fixed="right">
<template #default="scope">
<el-button
v-if="permissions.recruit_newstucheckin_edit"
type="primary"
link
icon="CircleCheck"
@click="handleCheckIn(scope.row)"
>
报到
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<pagination
v-bind="state.pagination"
@current-change="currentChangeHandle"
@size-change="sizeChangeHandle"
/>
<!-- 报到弹窗组件 -->
<stu-check-in ref="stuCheckInRef" @reload="refreshChange"></stu-check-in>
</div>
</div>
</template>
<script setup lang="ts" name="newstucheckin">
import { ref, reactive, computed, onMounted, defineAsyncComponent } from 'vue'
import { storeToRefs } from 'pinia'
import { useUserInfo } from '/@/stores/userInfo'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { fetchList } from '/@/api/recruit/newstucheckin'
import { getTypeValue } from '/@/api/admin/dict'
import request from '/@/utils/request'
const StuCheckIn = defineAsyncComponent(() => import('./stu-check-in.vue'))
// 使用 Pinia store
const userInfoStore = useUserInfo()
const { userInfos } = storeToRefs(userInfoStore)
// 创建权限对象
const permissions = computed(() => {
const perms: Record<string, boolean> = {}
userInfos.value.authBtnList.forEach((perm: string) => {
perms[perm] = true
})
return perms
})
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()
// 表格引用
const tableRef = ref()
const stuCheckInRef = ref()
// 导出加载状态
const exportLoading = ref(false)
// 查询表单
const queryForm = reactive({
searchTotal: ''
})
// 报到状态字典数据
const checkInStatusData = ref<any[]>([])
// 表格状态
const state: BasicTableProps = reactive<BasicTableProps>({
queryForm: queryForm,
pageList: async (params: any) => {
const response = await fetchList({
...params,
searchTotal: queryForm.searchTotal
})
return {
data: {
records: response.data.records,
total: response.data.total
}
}
}
})
// 使用 table hook
const { getDataList, currentChangeHandle, sizeChangeHandle, tableStyle } = useTable(state)
// 获取报到状态标签
const getCheckInStatusLabel = (value: string) => {
const item = checkInStatusData.value.find(item => item.value === value)
return item ? item.label : value
}
// 重置查询
const resetQuery = () => {
queryForm.searchTotal = ''
getDataList()
}
// 刷新回调
const refreshChange = () => {
getDataList()
}
// 打开报到窗口
const handleCheckIn = (row: any) => {
if (stuCheckInRef.value) {
stuCheckInRef.value.init(row, {
currentPage: state.pagination?.current || 1,
pageSize: state.pagination?.size || 10,
total: state.pagination?.total || 0
})
}
}
// 导出
const handleExportOut = async () => {
exportLoading.value = true
try {
const res = await request({
method: 'post',
url: '/recruit/newstucheckin/exportData',
data: {
...queryForm,
current: state.pagination?.current || 1,
size: state.pagination?.size || 10
},
responseType: 'blob',
headers: {
'Content-Type': 'application/json'
}
})
const blob = new Blob([res.data])
const fileName = '新生报到导出表.xls'
const elink = document.createElement('a')
elink.download = fileName
elink.style.display = 'none'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href)
document.body.removeChild(elink)
message.success('导出成功')
} catch (error: any) {
message.error(error.msg || '导出失败')
} finally {
exportLoading.value = false
}
}
// 查询报到状态字典
const getCheckInStatusData = async () => {
try {
const data = await getTypeValue('check_in_status')
checkInStatusData.value = data.data || []
} catch (error) {
console.error('获取报到状态字典失败', error)
}
}
onMounted(() => {
getCheckInStatusData()
getDataList()
})
</script>
<style lang="scss" scoped>
</style>

View File

@@ -0,0 +1,275 @@
<!--
- Copyright (c) 2018-2025, cyweb All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- Neither the name of the pig4cloud.com developer nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-->
<template>
<div class="layout-padding">
<div class="layout-padding-auto layout-padding-view">
<el-form :model="queryForm" inline class="mb-4" ref="searchFormRef">
<el-form-item label="入学年份" prop="grade">
<el-select v-model="queryForm.grade" filterable clearable placeholder="请选择入学年份">
<el-option
v-for="item in gradeList"
:key="item.year"
:label="item.year"
:value="item.year"
/>
</el-select>
</el-form-item>
<el-form-item label="学院" prop="deptCode">
<el-select v-model="queryForm.deptCode" filterable clearable placeholder="请选择学院">
<el-option
v-for="item in deptList"
:key="item.deptCode"
:label="item.deptName"
:value="item.deptCode"
/>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="classCode">
<el-select v-model="queryForm.classCode" filterable clearable placeholder="请选择班级">
<el-option
v-for="item in classData"
:key="item.classCode"
:label="item.classNo"
:value="item.classCode"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="searchData">查询</el-button>
<el-button type="primary" plain icon="Refresh" class="ml10" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<div class="mb15">
<el-button
v-if="permissions.recruit_newstucheckin_statistics_output"
type="warning"
plain
icon="Download"
:loading="exportLoading"
@click="handleExportOut"
>
导出
</el-button>
</div>
<el-table
:data="tableData"
height="650"
show-summary
:summary-method="getSummaries"
stripe
border
v-loading="tableLoading"
:header-cell-style="{ 'text-align': 'center' }"
:cell-style="{ 'text-align': 'center' }"
class="el_table_job_fair_stu"
>
<el-table-column type="index" width="50" fixed label="序号" />
<el-table-column prop="deptName" label="学院" />
<el-table-column prop="classNo" label="班级" />
<el-table-column prop="classNum" label="预计报到人数" />
<el-table-column prop="checkInOk" label="已经报到" />
<el-table-column prop="postpone" label="推迟报到" />
<el-table-column prop="abandon" label="放弃报到" />
<el-table-column prop="missing" label="无法联系" />
<el-table-column prop="contact" label="未联系" />
<el-table-column prop="checkInRate" label="报到率" />
</el-table>
</div>
</div>
</template>
<script setup lang="ts" name="newstucheckin-statistics">
import { ref, reactive, computed, onMounted } from 'vue'
import { storeToRefs } from 'pinia'
import { useUserInfo } from '/@/stores/userInfo'
import { useMessage } from '/@/hooks/message'
import { getDataStatistics } from '/@/api/recruit/newstucheckin'
import { list } from '/@/api/recruit/recruitstudentplangroup'
import { getDeptList } from '/@/api/basic/basicclass'
import { getClasslist } from '/@/api/stuwork/stupunlish'
import axios from 'axios'
// 使用 Pinia store
const userInfoStore = useUserInfo()
const { userInfos } = storeToRefs(userInfoStore)
// 创建权限对象
const permissions = computed(() => {
const perms: Record<string, boolean> = {}
userInfos.value.authBtnList.forEach((perm: string) => {
perms[perm] = true
})
return perms
})
// 消息提示 hooks
const message = useMessage()
// 引用
const searchFormRef = ref()
// 状态
const tableData = ref<any[]>([])
const tableLoading = ref(false)
const exportLoading = ref(false)
const gradeList = ref<any[]>([])
const deptList = ref<any[]>([])
const classData = ref<any[]>([])
// 查询表单
const queryForm = reactive({
grade: '',
deptCode: '',
classCode: ''
})
// 初始化
const init = async () => {
await Promise.all([
getGradeData(),
getDeptData(),
getClassData()
])
getList()
}
// 查看所有入学年份
const getGradeData = async () => {
try {
const data = await list()
gradeList.value = data.data || []
} catch (error) {
console.error('获取入学年份失败', error)
}
}
// 查找所有二级学院
const getDeptData = async () => {
try {
const data = await getDeptList()
deptList.value = data.data || []
} catch (error) {
console.error('获取学院列表失败', error)
}
}
// 查找所有班级
const getClassData = async () => {
try {
const data = await getClasslist()
classData.value = data.data || []
} catch (error) {
console.error('获取班级列表失败', error)
}
}
// 获取数据列表
const getList = async () => {
try {
tableLoading.value = true
const response = await getDataStatistics(queryForm)
tableData.value = response.data || []
} catch (error) {
console.error('获取数据失败', error)
} finally {
tableLoading.value = false
}
}
// 查询
const searchData = () => {
getList()
}
// 重置查询
const resetQuery = () => {
searchFormRef.value?.resetFields()
queryForm.grade = ''
queryForm.deptCode = ''
queryForm.classCode = ''
getList()
}
// 导出
const handleExportOut = async () => {
try {
exportLoading.value = true
const res = await axios({
method: 'post',
url: '/recruit/newstucheckin/exportDataStatistics',
data: queryForm,
responseType: 'blob',
headers: {
'Content-Type': 'application/json'
}
})
const blob = new Blob([res.data])
const fileName = '新生报到统计.xls'
const elink = document.createElement('a')
elink.download = fileName
elink.style.display = 'none'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href)
document.body.removeChild(elink)
} catch (error: any) {
message.error(error.msg || '导出失败')
} finally {
exportLoading.value = false
}
}
// 合计方法
const getSummaries = (param: any) => {
const { columns, data } = param
const sums: any[] = []
columns.forEach((column: any, index: number) => {
if (index === 0) {
sums[index] = '合计'
return
}
if (index === 1 || index === 2) {
sums[index] = ''
return
}
const values = data.map((item: any) => Number(item[column.property]))
if (!values.every((value: any) => isNaN(value))) {
sums[index] = values.reduce((prev: number, curr: any) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
}
})
return sums
}
onMounted(() => {
init()
})
</script>
<style lang="scss" scoped>
</style>

View File

@@ -0,0 +1,298 @@
<template>
<div>
<el-dialog v-model="newStuCheckInDialog" width="40%">
<el-form :model="form" :rules="rules" ref="formRef" label-width="120px"
class="demo-ruleForm">
<el-form-item label="姓名" prop="realName">
<el-input v-model="form.name" style=" width: 80%"></el-input>
</el-form-item>
<el-form-item label="性别" prop="gender">
<el-select v-model="form.gender" placeholder="请选择性别" style=" width: 80%">
<el-option
v-for="item in genderData"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idNumber" style=" width: 80%"></el-input>
</el-form-item>
<el-form-item label="报到状态" prop="checkInStatus">
<el-select v-model="form.checkInStatus" filterable placeholder="请选择报到状态" style=" width: 80% ">
<el-option
v-for="item in checkInStatusData"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="是否住宿" prop="isRoom" v-if="isRoomTab">
<el-select v-model="form.isRoom" filterable placeholder="是否住宿" style=" width: 80% ">
<el-option
v-for="item in yesOrNoData"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="宿舍号" prop="roomNo" v-if="isRoomTab && form.isRoom=='1'">
<el-select
v-model="form.roomNo"
filterable
remote
placeholder="请选择宿舍号"
:remote-method="remoteMethod"
@change="handleRoomNoChange"
:loading="loading"
style=" width: 80% "
>
<el-option
v-for="item in roomNoList"
:key="item.id"
:label="item.roomNo"
:value="item.roomNo">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="床号" prop="bedNo" v-if="isRoomTab && form.isRoom=='1'">
<el-select v-model="form.bedNo" filterable placeholder="请选择床号" style=" width: 80% " :key="bedNoKey">
<el-option
v-for="item in bedNoData"
:key="item.bedNo"
:label="item.bedNo"
:value="item.bedNo"
:disabled="isRoomDisable(item.notBedNo)">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" :rows="2" style=" width: 80%"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="checkIn" v-loading="submitLoading">确定</el-button>
<el-button @click="newStuCheckInDialog = false">取消</el-button>
</el-form-item>
</el-form>
</el-dialog>
</div>
</template>
<script setup lang="ts">
import { ref, reactive, watch } from 'vue'
import { useMessage } from '/@/hooks/message'
import { getDataByRoomNo } from "/@/api/stuwork/dormroom"
import { fearchRoomStuNum } from "/@/api/stuwork/dormroomstudent"
import { getDictByType } from "/@/api/contract/contract"
import { putObj } from '@/api/recruit/newstucheckin'
// Emits
const emit = defineEmits<{
(e: 'reload', page: any): void
}>()
// 消息提示
const message = useMessage()
// 表单引用
const formRef = ref()
// 响应式数据
const page = ref<any>({})
const newStuCheckInDialog = ref(false)
const bedNoData = ref<any[]>([])
const roomNoList = ref<any[]>([])
const checkInStatusData = ref<any[]>([])
const loading = ref(false)
const isRoomTab = ref(false)
const bedNoKey = ref(0) // 用于强制更新床号选择器
const yesOrNoData = [
{ label: '否', value: '0' },
{ label: '是', value: '1' }
]
const genderData = [
{ label: '女', value: '2' },
{ label: '男', value: '1' }
]
const submitLoading = ref(false)
const form = reactive({
name: "",
checkInStatus: "",
gender: "",
idNumber: "",
isRoom: "",
roomNo: "",
bedNo: "",
remarks: "",
residenceDetail: "",
parentName: "",
parentTelOne: "",
parentTelTwo: ""
})
const rules = {
name: [
{ required: true, message: '请输入姓名', trigger: ["blur", "change"] }
],
gender: [
{ required: true, message: '请输入性别', trigger: ["blur", "change"] }
],
idNumber: [
{ required: true, message: '请输入身份证号', trigger: ["blur", "change"] }
],
checkInStatus: [
{ required: true, message: '请输入报到状态', trigger: ["blur", "change"] }
],
isRoom: [
{ required: true, message: '请选择是否住宿', trigger: ["blur", "change"] }
],
roomNo: [
{ required: true, message: '请选择宿舍号', trigger: ["blur", "change"] }
],
bedNo: [
{ required: true, message: '请选择床位号', trigger: ["blur", "change"] }
],
}
// 监听报到状态变化
watch(() => form.checkInStatus, (newVal) => {
if (newVal === '1') {
isRoomTab.value = true
} else {
isRoomTab.value = false
}
})
// 监听宿舍号变化
watch(() => form.roomNo, (newVal) => {
console.log(newVal)
if (newVal) {
fearchRoomStuNums(newVal)
}
})
// 监听是否住宿变化
watch(() => form.isRoom, (newVal) => {
if (newVal === '0') {
form.roomNo = ''
form.bedNo = ''
}
})
// 初始化表单
const initForm = () => {
form.name = ""
form.checkInStatus = ""
form.gender = ""
form.idNumber = ""
form.isRoom = ""
form.roomNo = ""
form.bedNo = ""
form.remarks = ""
form.residenceDetail = ""
form.parentName = ""
form.parentTelOne = ""
form.parentTelTwo = ""
}
// 初始化方法
const init = (formData: any, pageData: any) => {
initForm()
page.value = pageData
submitLoading.value = false
newStuCheckInDialog.value = true
Object.assign(form, formData)
if (formData.roomNo) {
remoteMethod(formData.roomNo)
fearchRoomStuNums(formData.bedNo)
}
getDictByType('check_in_status').then(data => {
checkInStatusData.value = data.data
})
console.log("OKKK")
}
// 报到提交
const checkIn = () => {
submitLoading.value = true
formRef.value?.validate((valid: boolean) => {
if (valid) {
putObj(form).then(() => {
message.success('报到成功')
emit('reload', page.value)
newStuCheckInDialog.value = false
submitLoading.value = false
}).catch(() => {
submitLoading.value = false
})
} else {
submitLoading.value = false
return false
}
})
}
// 实时检索宿舍号
const remoteMethod = (query: string) => {
if (query != '' && query.length >= 3) {
const data = { 'roomNo': query }
loading.value = true
getDataByRoomNo(data).then(data => {
roomNoList.value = data.data
console.log("this.roomNoList")
console.log(roomNoList.value)
loading.value = false
}).catch(() => {
loading.value = false
})
}
}
// 查询此房间为几人间
const fearchRoomStuNums = (roomNo: string) => {
const data = { "roomNo": roomNo }
fearchRoomStuNum(data).then(data => {
bedNoData.value = data.data
})
}
// 判断床位是否禁用
const isRoomDisable = (notBedNo: any) => {
if (undefined != notBedNo && "" != notBedNo) {
return true
} else {
return false
}
}
// 宿舍号变化时清空床号
const handleRoomNoChange = () => {
form.bedNo = ''
bedNoKey.value++ // 强制更新床号选择器
}
// 暴露方法给父组件
defineExpose({
init
})
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,295 @@
<template>
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
v-model="visible"
append-to-body
>
<el-form :model="dataForm" :rules="dataRule" ref="dataFormRef" @keyup.enter="dataFormSubmit" label-width="140px">
<el-form-item label="模拟学生" prop="serialNumber">
<el-select
v-model="dataForm.serialNumber"
@change="changeStu"
filterable
remote
clearable
reserve-keyword
:disabled="!!dataForm.id" placeholder="请选择唯一号" size="small" style="width: 100%"
:remote-method="remoteTeacherByQuery"
>
<el-option
v-for="item in serialNumberList"
:key="item.serialNumber"
:label="item.name+'('+item.serialNumber+')'"
:value="item.serialNumber">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="来源" prop="isOut">
<el-select v-model="dataForm.isOut" filterable disabled placeholder="请选择来源" size="small" style="width: 100%" >
<el-option
v-for="item in isOutList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="拟报专业1" prop="wishMajorOne">
<el-select v-model="dataForm.wishMajorOne" filterable placeholder="请选择拟报专业1" size="small" style="width: 100%">
<el-option
v-for="item in planMajorList"
:key="item.zydm"
:label="item.zymc+' | '+item.xz+'年 | '+item.zydm"
:value="item.zydm"
:disabled="isDisable(item.zydm)"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="拟报专业2" prop="wishMajorTwo">
<el-select v-model="dataForm.wishMajorTwo" filterable placeholder="请选择拟报专业2" size="small" style="width: 100%">
<el-option
v-for="item in planMajorList"
:key="item.zydm"
:label="item.zymc+' | '+item.xz+'年 | '+item.zydm"
:value="item.zydm"
:disabled="isDisable(item.zydm)"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="拟报专业3" prop="wishMajorThree">
<el-select v-model="dataForm.wishMajorThree" filterable placeholder="请选择拟报专业3" size="small" style="width: 100%">
<el-option
v-for="item in planMajorList"
:key="item.zydm"
:label="item.zymc+' | '+item.xz+'年 | '+item.zydm"
:value="item.zydm"
:disabled="isDisable(item.zydm)"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="录取专业" prop="confirmedMajor">
<el-select v-model="dataForm.confirmedMajor" filterable placeholder="请选择录取专业" size="small" style="width: 100%">
<el-option
v-for="item in planMajorEduList"
:key="item.zydm"
:label="item.zymc+' | '+item.xz+'年 | '+item.zydm"
:value="item.zydm">
</el-option>
</el-select>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit" v-if="canSubmit">确定</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup lang="ts">
import { ref, reactive, nextTick } from 'vue'
import { ElNotification } from 'element-plus'
import { addMNObj, getMNObj, putMNObj } from '@/api/recruit/recruitImitateAdjustBatch'
import { getList } from "@/api/recruit/recruitstudentsignup"
import { listPlanByCondition as planMajor, listByEdu } from "@/api/recruit/recruitstudentplan"
// Emits
const emit = defineEmits<{
(e: 'refreshDataList'): void
}>()
// 表单引用
const dataFormRef = ref()
// 响应式数据
const visible = ref(false)
const canSubmit = ref(false)
const disabled = ref(false)
const serialNumberList = ref<any[]>([])
const planMajorEduList = ref<any[]>([])
const planMajorList = ref<any[]>([])
const isOutList = [
{ label: "学校", value: "0" },
{ label: "市平台", value: "1" }
]
const dataForm = reactive({
id: "",
serialNumber: "",
groupId: "",
batchNo: "",
wishMajorOne: '',
wishMajorTwo: '',
wishMajorThree: '',
confirmedMajor: '',
isOut: '',
degreeOfEducation: "",
name: "",
gender: "",
idNumber: "",
oldConfirmedMajor: ""
})
const dataRule = {
serialNumber: [
{ required: true, message: '模拟学生不能为空', trigger: 'blur' },
],
confirmedMajor: [
{ required: true, message: '录取专业不能为空', trigger: 'blur' },
],
}
/**
* 判断拟报专业是否已经占用,占用不可选
*/
const isDisable = (zydm: string) => {
if (zydm == dataForm.wishMajorOne
|| zydm == dataForm.wishMajorTwo
|| zydm == dataForm.wishMajorThree
) {
return true
} else {
return false
}
}
// 初始化数据
const initData = () => {
planMajorList.value = []
serialNumberList.value = []
planMajor({ groupId: dataForm.groupId }).then((data: any) => {
planMajorList.value = data.data
})
}
// 远程搜索学生
const remoteTeacherByQuery = (query: string) => {
serialNumberList.value = []
if (query !== '') {
setTimeout(() => {
getList({ groupId: dataForm.groupId, name: query }).then((response: any) => {
serialNumberList.value = response.data
})
}, 200)
}
}
// 学生选择变化
const changeStu = () => {
planMajorEduList.value = []
dataForm.wishMajorOne = ''
dataForm.wishMajorTwo = ''
dataForm.wishMajorThree = ''
dataForm.degreeOfEducation = ""
dataForm.oldConfirmedMajor = ""
dataForm.name = ""
dataForm.idNumber = ""
dataForm.confirmedMajor = ""
dataForm.gender = ""
dataForm.isOut = ""
serialNumberList.value.forEach(e => {
if (e.serialNumber == dataForm.serialNumber) {
dataForm.wishMajorOne = e.wishMajorOne
dataForm.wishMajorTwo = e.wishMajorTwo
dataForm.wishMajorThree = e.wishMajorThree
dataForm.degreeOfEducation = e.degreeOfEducation
dataForm.name = e.name
dataForm.idNumber = e.idNumber
dataForm.gender = e.gender
dataForm.isOut = e.isOut
dataForm.confirmedMajor = e.confirmedMajor
dataForm.oldConfirmedMajor = e.confirmedMajor
getMajorListByEdu()
}
})
}
// 根据学历获取专业列表
const getMajorListByEdu = () => {
planMajorEduList.value = []
listByEdu({ groupId: dataForm.groupId, degreeOfEducation: dataForm.degreeOfEducation }).then((res: any) => {
planMajorEduList.value = res.data
})
}
// 表单提交
const dataFormSubmit = () => {
dataFormRef.value?.validate((valid: boolean) => {
if (valid) {
if (dataForm.oldConfirmedMajor == dataForm.confirmedMajor) {
ElNotification.error({
title: '错误',
message: '模拟调整的专业不能和原录取专业相同,请检查'
})
return
}
canSubmit.value = false
if (dataForm.id) {
putMNObj(dataForm).then(() => {
ElNotification.success({
title: '成功',
message: '修改成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => {
canSubmit.value = true
})
} else {
addMNObj(dataForm).then(() => {
ElNotification.success({
title: '成功',
message: '添加成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => {
canSubmit.value = true
})
}
}
})
}
// 初始化方法
const init = (id: string | null, groupId: string, batchNo: string) => {
dataForm.id = id || ""
dataForm.batchNo = batchNo
dataForm.groupId = groupId
visible.value = true
canSubmit.value = true
planMajorEduList.value = []
initData()
nextTick(() => {
dataFormRef.value?.resetFields()
if (dataForm.id) {
getMNObj(dataForm.id).then((response: any) => {
Object.assign(dataForm, response.data)
getMajorListByEdu()
})
} else {
disabled.value = true
}
})
}
// 暴露方法给父组件
defineExpose({
init
})
</script>
<style scoped>
.dialog-footer {
text-align: right;
}
</style>

View File

@@ -0,0 +1,139 @@
<template>
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
width="600px"
v-model="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataFormRef" @keyup.enter="dataFormSubmit" label-width="120px">
<el-form-item label="招生计划" prop="groupId">
<el-select v-model="dataForm.groupId" filterable :disabled="!!dataForm.id" placeholder="请选择招生计划">
<el-option
v-for="item in planList"
:key="item.id"
:label="item.groupName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="批次名称" prop="batchName">
<el-input v-model="dataForm.batchName" placeholder="批次名称"></el-input>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit" v-if="canSubmit">确定</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup lang="ts">
import { ref, reactive, nextTick } from 'vue'
import { ElNotification } from 'element-plus'
import { addObj, getObj, putObj } from '/@/api/recruit/recruitImitateAdjustBatch'
import { list } from '/@/api/recruit/recruitstudentplangroup'
// Emits
const emit = defineEmits<{
(e: 'refreshDataList'): void
}>()
// 表单引用
const dataFormRef = ref()
// 响应式数据
const visible = ref(false)
const canSubmit = ref(false)
const disabled = ref(false)
const planList = ref<any[]>([])
const dataForm = reactive({
id: "",
batchName: "",
groupId: "",
})
const dataRule = {
groupId: [
{ required: true, message: '招生计划不能为空', trigger: 'blur' },
],
batchName: [
{ required: true, message: '批次名称不能为空', trigger: 'blur' },
{ min: 1, max: 20, message: '批次名称长度不大于20个字符', trigger: 'blur' }
],
}
// 初始化数据
const initData = () => {
list().then((data: any) => {
planList.value = data.data
if (!dataForm.id) {
dataForm.groupId = planList.value[0].id
}
})
}
// 表单提交
const dataFormSubmit = () => {
dataFormRef.value?.validate((valid: boolean) => {
if (valid) {
canSubmit.value = false
if (dataForm.id) {
putObj(dataForm).then(() => {
ElNotification.success({
title: '成功',
message: '修改成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => {
canSubmit.value = true
})
} else {
addObj(dataForm).then(() => {
ElNotification.success({
title: '成功',
message: '添加成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => {
canSubmit.value = true
})
}
}
})
}
// 初始化方法
const init = (id: string | null) => {
dataForm.id = id || ""
visible.value = true
canSubmit.value = true
initData()
nextTick(() => {
dataFormRef.value?.resetFields()
if (dataForm.id) {
getObj(dataForm.id).then((response: any) => {
Object.assign(dataForm, response.data)
})
} else {
disabled.value = true
}
})
}
// 暴露方法给父组件
defineExpose({
init
})
</script>
<style scoped>
.dialog-footer {
text-align: right;
}
</style>

View File

@@ -0,0 +1,267 @@
<!--
- Copyright (c) 2018-2025, cyweb All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- Neither the name of the pig4cloud.com developer nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-->
<template>
<div class="layout-padding">
<div class="layout-padding-auto layout-padding-view">
<!-- 搜索表单 -->
<el-form :model="queryForm" inline ref="searchFormRef">
<el-form-item label="招生计划" prop="groupId">
<el-select v-model="queryForm.groupId" filterable clearable placeholder="请选择招生计划">
<el-option
v-for="item in planList"
:key="item.id"
:label="item.groupName"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="批次名称" prop="batchName">
<el-input v-model="queryForm.batchName" clearable placeholder="批次名称" />
</el-form-item>
<el-form-item label="批次代码" prop="batchCode">
<el-input v-model="queryForm.batchCode" clearable placeholder="批次代码" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="getDataList">查询</el-button>
<el-button plain icon="Refresh" class="ml10" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- 操作按钮 -->
<div class="mb15">
<el-button
v-if="permissions.recruit_recruitImitateAdjustBatch_add"
type="primary"
icon="FolderAdd"
@click="addOrUpdateHandle"
>
</el-button>
</div>
<!-- 表格 -->
<el-table
ref="tableRef"
:data="state.dataList"
v-loading="state.loading"
border
stripe
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
<el-table-column type="index" label="序号" width="60" align="center" />
<el-table-column prop="batchName" label="批次名称" align="center" show-overflow-tooltip />
<el-table-column prop="batchCode" label="批次代码" align="center" show-overflow-tooltip />
<el-table-column prop="peopleNumber" label="人数" align="center" show-overflow-tooltip />
<el-table-column label="操作" width="300" align="center" fixed="right">
<template #default="scope">
<el-button
v-if="permissions.recruit_recruitImitateAdjustBatch_show"
type="primary"
link
icon="Document"
@click="showTable(scope.row.batchCode, scope.row.groupId)"
>
模拟列表
</el-button>
<el-button
v-if="permissions.recruit_recruitImitateAdjustBatch_show"
type="warning"
link
icon="Download"
@click="handleExport(scope.row.batchCode, scope.row.groupId)"
>
导出模拟结果
</el-button>
<el-button
v-if="permissions.recruit_recruitImitateAdjustBatch_edit"
type="primary"
link
icon="EditPen"
@click="addOrUpdateHandle(scope.row.id)"
>
修改
</el-button>
<el-button
v-if="permissions.recruit_recruitImitateAdjustBatch_del"
type="danger"
link
icon="Delete"
@click="deleteHandle(scope.row.id)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<pagination
v-bind="state.pagination"
@current-change="currentChangeHandle"
@size-change="sizeChangeHandle"
/>
<!-- 弹窗, 新增 / 修改 -->
<table-form ref="addOrUpdateRef" @refreshDataList="getDataList" />
<mn-table ref="mnTableRef" @refreshDataList="getDataList" />
</div>
</div>
</template>
<script setup lang="ts" name="recruitImitateAdjustBatch">
import { ref, reactive, computed, onMounted, nextTick, defineAsyncComponent } from 'vue'
import { storeToRefs } from 'pinia'
import { useUserInfo } from '/@/stores/userInfo'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { list } from '/@/api/recruit/recruitstudentplangroup'
import { delObj, fetchList } from '/@/api/recruit/recruitImitateAdjustBatch'
const TableForm = defineAsyncComponent(() => import('./detaiform.vue'))
const MnTable = defineAsyncComponent(() => import('./mnTable.vue'))
// 使用 Pinia store
const userInfoStore = useUserInfo()
const { userInfos } = storeToRefs(userInfoStore)
// 创建权限对象
const permissions = computed(() => {
const perms: Record<string, boolean> = {}
userInfos.value.authBtnList.forEach((perm: string) => {
perms[perm] = true
})
return perms
})
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()
// 表格引用
const tableRef = ref()
const searchFormRef = ref()
const addOrUpdateRef = ref()
const mnTableRef = ref()
// 弹窗状态
const addOrUpdateVisible = ref(false)
const mnTableVisible = ref(false)
// 数据
const planList = ref<any[]>([])
// 查询表单
const queryForm = reactive({
groupId: '',
batchName: '',
batchCode: ''
})
// 表格状态
const state: BasicTableProps = reactive<BasicTableProps>({
queryForm: queryForm,
pageList: async (params: any) => {
const response = await fetchList(params)
return {
data: {
records: response.data.records,
total: response.data.total
}
}
},
createdIsNeed: false
})
// 使用 table hook
const { getDataList, currentChangeHandle, sizeChangeHandle, tableStyle, downBlobFile } = useTable(state)
// 初始化
const init = async () => {
try {
const data = await list()
planList.value = data.data || []
if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id
}
getDataList()
} catch (error) {
// 初始化失败
}
}
// 新增 / 修改
const addOrUpdateHandle = (payload?: string | MouseEvent) => {
// 新增按钮未传参时会传入 MouseEvent这里统一转换为 id 或 null
const id = typeof payload === 'string' ? payload : null
nextTick(() => {
addOrUpdateRef.value?.init(id)
})
}
// 显示模拟列表
const showTable = (batchNo: string, groupId: string) => {
nextTick(() => {
mnTableRef.value?.init(batchNo, groupId)
})
}
// 导出模拟结果
const handleExport = async (code: string, gid: string) => {
try {
await downBlobFile(
'/recruit/recruitImitateAdjustBatch/exportExcel',
{ batchNo: code, groupId: gid },
'招生模拟统计.xls'
)
} catch (error: any) {
message.error(error.msg || '导出失败')
}
}
// 删除
const deleteHandle = async (id: string) => {
try {
await messageBox.confirm('是否确认删除本条数据?请谨慎操作')
await delObj(id)
message.success('删除成功')
getDataList()
} catch {
// 用户取消
}
}
// 重置查询
const resetQuery = () => {
searchFormRef.value?.resetFields()
queryForm.groupId = ''
queryForm.batchName = ''
queryForm.batchCode = ''
if (planList.value.length > 0) {
queryForm.groupId = planList.value[0].id
}
getDataList()
}
onMounted(() => {
init()
})
</script>
<style lang="scss" scoped>
</style>

View File

@@ -0,0 +1,246 @@
<template>
<el-dialog
title="模拟列表"
:close-on-click-modal="false"
v-model="visible"
width="80%"
>
<el-form :inline="true">
<el-form-item>
<el-button v-if="permissions.recruit_recruitImitateAdjustBatch_add" :icon="Plus" size="small" type="primary" @click="addOrUpdateHandle()">新增</el-button>
</el-form-item>
</el-form>
<div class="avue-crud">
<el-table
:data="dataList"
border
stripe
v-loading="dataListLoading">
<el-table-column
prop="serialNumber"
header-align="center"
align="center"
label="唯一号">
</el-table-column>
<el-table-column
prop="name"
header-align="center"
align="center"
label="姓名">
</el-table-column>
<el-table-column
prop="gender"
header-align="center"
align="center"
label="性别">
<template #default="scope">
<span v-if="scope.row.gender==1"></span>
<span v-if="scope.row.gender==2"></span>
</template>
</el-table-column>
<el-table-column
prop="degreeOfEducation"
header-align="center"
align="center"
label="学历">
<template #default="scope">
{{global.getLabelValueByPropes(eduList,scope.row.degreeOfEducation,{'key':'value','value':'label'})}}
</template>
</el-table-column>
<el-table-column
prop="wishMajorOne"
header-align="center"
width="100px"
align="center"
label="拟报专业1">
<template #default="scope">
{{global.getLabelValueByPropes2(planMajorList,scope.row.wishMajorOne,{'key':'zydm','value':'zymc'})}}
</template>
</el-table-column>
<el-table-column
prop="wishMajorTwo"
header-align="center"
align="center"
width="100px"
label="拟报专业2">
<template #default="scope">
{{global.getLabelValueByPropes2(planMajorList,scope.row.wishMajorTwo,{'key':'zydm','value':'zymc'})}}
</template>
</el-table-column>
<el-table-column
prop="wishMajorThree"
header-align="center"
align="center"
width="100px"
label="拟报专业3">
<template #default="scope">
{{global.getLabelValueByPropes2(planMajorList,scope.row.wishMajorThree,{'key':'zydm','value':'zymc'})}}
</template>
</el-table-column>
<el-table-column
prop="oldConfirmedMajor"
header-align="center"
align="center"
label="原录取专业">
<template #default="scope">
{{global.getLabelValueByPropes2(planMajorList,scope.row.oldConfirmedMajor,{'key':'zydm','value':'zymc'})}}
</template>
</el-table-column>
<el-table-column
prop="confirmedMajor"
header-align="center"
align="center"
label="模拟录取专业">
<template #default="scope">
{{global.getLabelValueByPropes2(planMajorList,scope.row.confirmedMajor,{'key':'zydm','value':'zymc'})}}
</template>
</el-table-column>
<el-table-column
prop="isOut"
header-align="center"
align="center"
width="120"
label="来源">
<template #default="scope">
<span v-if="scope.row.isOut==0">学校</span>
<span v-if="scope.row.isOut==1">市平台</span>
</template>
</el-table-column>
<el-table-column
header-align="center"
align="center"
label="操作">
<template #default="scope">
<el-button v-if="permissions.recruit_recruitImitateAdjustBatch_edit" type="text" size="small" :icon="Edit" @click="addOrUpdateHandle(scope.row.id)">修改</el-button>
<el-button v-if="permissions.recruit_recruitImitateAdjustBatch_del" type="text" size="small" :icon="Delete" @click="deleteHandle(scope.row.id)">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
<add-m-n-stu v-if="addMnStuVisible" ref="addMnStuRef" @refreshDataList="getDataList"></add-m-n-stu>
</el-dialog>
</template>
<script setup lang="ts">
import { ref, reactive, computed, nextTick, defineAsyncComponent } from 'vue'
import { storeToRefs } from 'pinia'
import { useUserInfo } from '/@/stores/userInfo'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { Plus, Edit, Delete } from '@element-plus/icons-vue'
import { getMNStuList, delMNObj } from '@/api/recruit/recruitImitateAdjustBatch'
import { listPlanByCondition as planMajor } from "@/api/recruit/recruitstudentplan"
import { getTypeValue } from "@/api/admin/dict"
// @ts-ignore
import global from '@/components/tools/commondict'
const AddMNStu = defineAsyncComponent(() => import('./addMNStu.vue'))
// Emits
const emit = defineEmits<{
(e: 'refreshDataList'): void
}>()
// 使用 Pinia store
const userInfoStore = useUserInfo()
const { userInfos } = storeToRefs(userInfoStore)
// 创建权限对象
const permissions = computed(() => {
const perms: Record<string, boolean> = {}
userInfos.value.authBtnList.forEach((perm: string) => {
perms[perm] = true
})
return perms
})
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()
// 组件引用
const addMnStuRef = ref()
// 响应式数据
const visible = ref(false)
const canSubmit = ref(false)
const dataListLoading = ref(false)
const addMnStuVisible = ref(false)
const dataForm = reactive({
batchNo: "",
groupId: ""
})
const dataList = ref<any[]>([])
const eduList = ref<any[]>([])
const planMajorList = ref<any[]>([])
// 初始化方法
const init = (batchNo: string, groupId: string) => {
dataForm.batchNo = batchNo
dataForm.groupId = groupId
visible.value = true
canSubmit.value = true
initData()
}
// 新增 / 修改
const addOrUpdateHandle = (id?: string) => {
addMnStuVisible.value = true
nextTick(() => {
addMnStuRef.value?.init(id || null, dataForm.groupId, dataForm.batchNo)
})
}
// 删除
const deleteHandle = async (id: string) => {
try {
await messageBox.confirm('是否确认删除本条数据?请谨慎操作')
await delMNObj(id)
message.success('删除成功')
getDataList()
} catch {
// 用户取消
}
}
// 获取数据列表
const getDataList = () => {
dataList.value = []
dataListLoading.value = true
emit('refreshDataList')
getMNStuList(dataForm).then((response: any) => {
dataList.value = response.data
dataListLoading.value = false
}).catch(() => {
dataListLoading.value = false
})
}
// 初始化数据
const initData = () => {
eduList.value = []
getTypeValue('finance_student_source').then((res: any) => {
eduList.value = res.data
})
planMajorList.value = []
planMajor({ groupId: dataForm.groupId }).then((data: any) => {
planMajorList.value = data.data
getDataList()
})
}
// 暴露方法给父组件
defineExpose({
init
})
</script>
<style scoped>
.avue-crud {
margin-top: 20px;
}
</style>

View File

@@ -0,0 +1,129 @@
<!--
- Copyright (c) 2018-2025, cyweb All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- Neither the name of the pig4cloud.com developer nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-->
<template>
<el-dialog v-model="dialogVisible" title="保存审核人员" width="600px" append-to-body @close="handleClose">
<el-form :model="{ belongTeacherNos }" label-width="100px">
<el-form-item label="选择教师:">
<el-select
v-model="belongTeacherNos"
filterable
remote
clearable
reserve-keyword
placeholder="请选择或输入教师姓名"
:remote-method="remoteTeacherByQuery"
style="width: 100%"
>
<el-option
v-for="item in teacherList"
:key="item.teacherNo"
:label="item.realName"
:value="item.realName"
/>
</el-select>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="handleClose">取消</el-button>
<el-button type="primary" @click="handleSave">保存</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup lang="ts" name="AddExamPeopleForm">
import { ref, watch } from 'vue'
import { queryTeacherBaseByNoByAssets } from '/@/api/professional/professionaluser/teacherbase'
// Props
const props = defineProps<{
visible: boolean
timeRange: string[]
}>()
// Emits
const emit = defineEmits<{
(e: 'update:visible', value: boolean): void
(e: 'save', data: { teacherNo: string; startTime: string; endTime: string }): void
}>()
// 弹窗显示状态
const dialogVisible = ref(false)
const belongTeacherNos = ref('')
const teacherList = ref<any[]>([])
// 监听 visible 变化
watch(() => props.visible, (newVal) => {
dialogVisible.value = newVal
if (newVal) {
belongTeacherNos.value = ''
teacherList.value = []
}
})
// 监听 dialogVisible 变化,同步到父组件
watch(dialogVisible, (newVal) => {
emit('update:visible', newVal)
})
// 检索教师
const remoteTeacherByQuery = (query: string) => {
teacherList.value = []
if (query !== '') {
setTimeout(() => {
queryTeacherBaseByNoByAssets(query).then(response => {
teacherList.value = response.data
})
}, 200)
}
}
// 关闭窗口
const handleClose = () => {
belongTeacherNos.value = ''
dialogVisible.value = false
}
// 保存
const handleSave = () => {
if (props.timeRange.length === 0) {
emit('save', {
teacherNo: belongTeacherNos.value,
startTime: '',
endTime: ''
})
return
}
emit('save', {
teacherNo: belongTeacherNos.value,
startTime: props.timeRange[0],
endTime: props.timeRange[1]
})
handleClose()
}
</script>
<style lang="scss" scoped>
.dialog-footer {
display: flex;
justify-content: flex-end;
gap: 10px;
}
</style>

View File

@@ -0,0 +1,239 @@
<!--
- Copyright (c) 2018-2025, cyweb All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- Neither the name of the pig4cloud.com developer nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-->
<template>
<el-dialog
title="招生审核人员管理"
:close-on-click-modal="false"
v-model="visible"
width="800"
:append-to-body="true"
destroy-on-close
>
<div class="dialog-content">
<!-- 时间选择器和操作按钮 -->
<el-form :inline="true" :model="queryForm">
<el-form-item label="审核时间范围:" label-width="110px">
<el-time-picker
is-range
v-model="form.time1"
format="HH:mm:ss"
value-format="HH:mm:ss"
range-separator=""
start-placeholder="开始时间"
end-placeholder="结束时间"
placeholder="选择时间范围"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="getDataList">查询</el-button>
<el-button type="primary" plain icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<div class="mb15" v-if="permissions.recruit_recruitexampeople_add">
<el-button
type="primary"
icon="FolderAdd"
@click="handleAdd"
>
</el-button>
</div>
<!-- 表格 -->
<div class="table-wrapper">
<el-table
ref="tableRef"
:data="state.dataList || []"
v-loading="state.loading"
border
stripe
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
empty-text="暂无数据"
>
<el-table-column type="index" label="序号" width="60" align="center" />
<el-table-column label="工号" align="center" prop="teacherNo" show-overflow-tooltip>
</el-table-column>
<el-table-column label="姓名" align="center" prop="teacherName" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" width="120" align="center" fixed="right">
<template #default="scope">
<el-button
v-if="permissions.recruit_recruitexampeople_del"
type="primary"
link
icon="Delete"
@click="handleDel(scope.row)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<!-- 分页 -->
<div class="pagination-wrapper">
<pagination
v-bind="state.pagination"
@current-change="currentChangeHandle"
@size-change="sizeChangeHandle"
/>
</div>
</div>
<!-- 保存审核人员弹窗 -->
<add-form
v-model:visible="setTeachNoFormVisible"
:time-range="form.time1"
@save="handleSave"
/>
</el-dialog>
</template>
<script setup lang="ts" name="recruitexampeople">
import { ref, reactive, computed, nextTick, defineAsyncComponent } from 'vue'
import { storeToRefs } from 'pinia'
import { useUserInfo } from '/@/stores/userInfo'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { addObj, delObj, fetchList } from '/@/api/recruit/recruitexampeople'
const AddForm = defineAsyncComponent(() => import('./add-form.vue'))
// 使用 Pinia store
const userInfoStore = useUserInfo()
const { userInfos } = storeToRefs(userInfoStore)
// 创建权限对象
const permissions = computed(() => {
const perms: Record<string, boolean> = {}
userInfos.value.authBtnList.forEach((perm: string) => {
perms[perm] = true
})
return perms
})
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()
// 表格引用
const tableRef = ref()
// 弹窗状态
const visible = ref(false)
const setTeachNoFormVisible = ref(false)
// 表单数据
const form = reactive({
time1: [] as string[]
})
// 查询表单
const queryForm = reactive<Record<string, any>>({})
// 表格状态
const state: BasicTableProps = reactive<BasicTableProps>({
queryForm: queryForm,
pageList: async (params: any) => {
const response = await fetchList(params)
return {
data: {
records: response.data.records || [],
total: response.data.total || 0
}
}
},
createdIsNeed: false, // 弹窗组件,不在挂载时自动加载数据
dataList: [], // 确保 dataList 初始化为空数组
loading: false, // 确保 loading 初始化为 false
onLoaded: async (state: any) => {
// 如果有数据,设置时间范围
if (state.dataList && state.dataList.length > 0) {
form.time1 = [state.dataList[0].startTime, state.dataList[0].endTime]
}
}
})
// 使用 table hook
// 注意useTable 会直接修改传入的 state 对象,所以不需要从返回值中获取 state
const { getDataList, currentChangeHandle, sizeChangeHandle, tableStyle } = useTable(state)
// 初始化
const init = () => {
visible.value = true
form.time1 = []
// 等待弹窗显示后再加载数据
nextTick(() => {
getDataList()
})
}
// 新增
const handleAdd = () => {
setTeachNoFormVisible.value = true
}
// 保存审核人员
const handleSave = async (data: { teacherNo: string; startTime: string; endTime: string }) => {
if (form.time1.length === 0) {
message.error('审核时间不能为空')
return
}
try {
await addObj({
teacherNo: data.teacherNo,
startTime: data.startTime,
endTime: data.endTime
})
message.success('添加成功')
getDataList()
} catch (error: any) {
message.error(error.msg || '添加失败')
}
}
// 删除
const handleDel = async (row: any) => {
try {
await messageBox.confirm(`是否确认删除ID为${row.id}的记录?`)
await delObj(row.id)
message.success('删除成功')
getDataList()
} catch {
// 用户取消
}
}
// 重置查询
const resetQuery = () => {
Object.keys(queryForm).forEach(key => {
queryForm[key] = ''
})
getDataList()
}
// 暴露方法
defineExpose({
init
})
</script>
<style lang="scss" scoped>
</style>

View File

@@ -0,0 +1,318 @@
<template>
<el-dialog
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
v-model="visible"
width="600px"
destroy-on-close
>
<el-form :model="dataForm" :rules="dataRule" ref="dataFormRef" @keyup.enter="dataFormSubmit"
label-width="120px">
<el-form-item label="招生计划" prop="groupId">
<el-select v-model="dataForm.groupId" filterable placeholder="请选择招生计划">
<el-option
v-for="item in planList"
:key="item.id"
:label="item.groupName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="专业代码" prop="zydm">
<el-input v-model="dataForm.zydm" placeholder="专业代码"></el-input>
</el-form-item>
<el-form-item label="专业名称" prop="zymc">
<el-input v-model="dataForm.zymc" placeholder="专业名称"></el-input>
</el-form-item>
<el-form-item label="专业规范名称" prop="zygfmc">
<el-input v-model="dataForm.zygfmc" placeholder="专业规范名称"></el-input>
</el-form-item>
<el-form-item label="所属学院" prop="deptCode">
<el-select v-model="dataForm.deptCode" filterable placeholder="请选择">
<el-option
v-for="item in deptList"
:key="item.deptCode"
:label="item.deptName"
:value="item.deptCode">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学制" prop="xz">
<el-select v-model="dataForm.xz" filterable placeholder="请选择学制">
<el-option
v-for="item in majorYears"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="层次" prop="cc">
<el-select v-model="dataForm.cc" filterable placeholder="请选择层次">
<el-option
v-for="item in ccList"
:key="item.label"
:label="item.label"
:value="item.label">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="中德班" prop="isZd">
<el-radio-group v-model="dataForm.isZd">
<el-radio v-for="item in yes_no_type" :key="item.value" :label="item.value">{{ item.label }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="订单班" prop="isOrder">
<el-radio-group v-model="dataForm.isOrder">
<el-radio v-for="item in yes_no_type" :key="item.value" :label="item.value">{{ item.label }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="联院班" prop="isUnion">
<el-radio-group v-model="dataForm.isUnion">
<el-radio v-for="item in yes_no_type" :key="item.value" :label="item.value">{{ item.label }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="正式专业代码" prop="offcialZydm">
<el-select v-model="dataForm.offcialZydm" filterable placeholder="请选择正式专业代码">
<el-option
v-for="item in offcialZydmList"
:key="item.majorCode"
:label="item.majorCodeAndName"
:value="item.majorCode">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="市平台代码" prop="cityPlanId">
<el-select v-model="dataForm.cityPlanId" filterable placeholder="请选择市平台代码">
<el-option
v-for="item in cityPlanIdList"
:key="item.id"
:label="item.schoolMajorName+' | '+item.educational"
:value="item.id"
:disabled="isCityDisable(item.id)"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input-number :min="0" :max="999" v-model="dataForm.sort" placeholder="排序"
style="width: 100%"></el-input-number>
</el-form-item>
<el-form-item label="备注" prop="remarks">
<el-input type="textarea" :rows="3" placeholder="请输入备注信息" v-model="dataForm.remarks"
style="width: 100%;margin-top: 10px"></el-input>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit" v-if="canSubmit">确定</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup lang="ts">
import { ref, reactive, nextTick } from 'vue'
import { ElNotification } from 'element-plus'
import { addObj, getObj, putObj } from '/@/api/recruit/recruitstudentplan'
import { getDeptList } from '/@/api/basic/basicclass'
import { list } from '/@/api/recruit/recruitstudentplangroup'
import { getMajorNameList } from '/@/api/basic/major'
import { getDicts } from '/@/api/admin/dict'
import { useDict } from '/@/hooks/dict'
// Emits
const emit = defineEmits<{
(e: 'refreshDataList'): void
}>()
// 字典数据
const { yes_no_type } = useDict('yes_no_type')
// 表单引用
const dataFormRef = ref()
// 响应式数据
const visible = ref(false)
const canSubmit = ref(false)
const cityPlanIdList = ref<any[]>([])
const offcialZydmList = ref<any[]>([])
const planList = ref<any[]>([])
const deptList = ref<any[]>([])
const ccList = ref<any[]>([])
const majorYears = ref<any[]>([])
const dataForm = reactive({
id: "",
groupId: "",
zydm: "",
zymc: "",
zygfmc: "",
deptCode: "",
xz: "",
cc: "",
isZd: "0",
isOrder: "0",
remarks: "",
offcialZydm: "",
isUnion: "0",
tuitionFee: 0,
cityPlanId: null as string | null,
cityPlanIds: [] as string[],
cityPlanName: "",
cityPlanYear: "",
sort: 0
})
const dataRule = {
zydm: [
{ required: true, message: '专业代码不能为空', trigger: 'blur' },
{ min: 1, max: 6, message: '专业代码长度不大于6个字符', trigger: 'blur' }
],
tuitionFee: [
{ required: true, message: '学费不能为空', trigger: 'blur' }
],
zymc: [
{ required: true, message: '专业名称不能为空', trigger: 'blur' },
{ min: 1, max: 200, message: '专业名称长度不大于200个字符', trigger: 'blur' }
],
zygfmc: [
{ required: true, message: '专业规范名称不能为空', trigger: 'blur' },
{ min: 1, max: 200, message: '专业规范名称长度不大于200个字符', trigger: 'blur' }
],
groupId: [
{ required: true, message: '招生计划不能为空', trigger: 'blur' }
],
xz: [
{ required: true, message: '学制不能为空', trigger: 'blur' }
],
deptCode: [
{ required: true, message: '学院不能为空', trigger: 'blur' }
],
cc: [
{ required: true, message: '层次不能为空', trigger: 'blur' }
],
isOrder: [
{ required: true, message: '订单班不能为空', trigger: 'blur' }
],
isZd: [
{ required: true, message: '订单班不能为空', trigger: 'blur' }
],
isUnion: [
{ required: true, message: '联院班不能为空', trigger: 'blur' }
],
remarks: [
{ min: 1, max: 100, message: '备注长度不大于100个字符', trigger: 'blur' }
],
}
/**
* 判断市平台招生专业是否占用,占用不可选
*/
const isCityDisable = (id: string) => {
if (!dataForm.cityPlanIds || !Array.isArray(dataForm.cityPlanIds)) {
return false
}
return dataForm.cityPlanIds.some(e => e == id)
}
// 初始化数据
const initData = () => {
// 查询二级学院信息
getDeptList().then((data: any) => {
deptList.value = data.data
})
list().then((data: any) => {
planList.value = data.data
if (!dataForm.id) {
dataForm.groupId = planList.value[0]?.id || ""
}
})
getMajorNameList().then((data: any) => {
offcialZydmList.value = data.data
})
// 获取数据字典
getDicts('basic_major_years').then((res: any) => {
majorYears.value = res.data || []
})
getDicts('basic_major_level').then((res: any) => {
ccList.value = res.data || []
})
}
// 表单提交
const dataFormSubmit = () => {
if (dataForm.cityPlanId != null) {
cityPlanIdList.value.forEach(e => {
if (e.id == dataForm.cityPlanId) {
dataForm.cityPlanName = e.schoolMajorName
dataForm.cityPlanYear = e.educational
}
})
}
dataFormRef.value?.validate((valid: boolean) => {
if (valid) {
canSubmit.value = false
if (dataForm.id) {
putObj(dataForm).then(() => {
ElNotification.success({
title: '成功',
message: '修改成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => {
canSubmit.value = true
})
} else {
addObj(dataForm).then(() => {
ElNotification.success({
title: '成功',
message: '添加成功'
})
visible.value = false
emit('refreshDataList')
}).catch(() => {
canSubmit.value = true
})
}
}
})
}
// 初始化方法
const init = (id: string | null) => {
dataForm.id = id || ""
visible.value = true
canSubmit.value = true
initData()
nextTick(() => {
dataFormRef.value?.resetFields()
if (dataForm.id) {
getObj(dataForm.id).then((response: any) => {
Object.assign(dataForm, response.data)
// 获取市平台对应年份下的招生计划
// getCityPlan({ id: dataForm.id }).then((data: any) => {
// cityPlanIdList.value = data.data
// })
})
}
})
}
// 暴露方法给父组件
defineExpose({
init
})
</script>
<style scoped>
.dialog-footer {
text-align: right;
}
</style>

Some files were not shown because too many files have changed in this diff Show More