提交
This commit is contained in:
1 parent
4815b4b3cd
commit
6ca85a1b15
12 files changed
+128
-161
No files matched your search
@@ -202,6 +202,7 @@ import {
|
||||
updateApplication,
|
||||
getApplicationDetail,
|
||||
} from '@/api/workStudy.js';
|
||||
import { getDict } from '@/common/dict.js';
|
||||
|
||||
export default {
|
||||
name: 'WorkStudyApply',
|
||||
@@ -231,20 +232,14 @@ export default {
|
||||
remark: '',
|
||||
},
|
||||
|
||||
// 家庭经济情况选项(与web端保持一致)
|
||||
familyStatusOptions: [
|
||||
{ value: '特困', label: '特困' },
|
||||
{ value: '贫困', label: '贫困' },
|
||||
{ value: '一般', label: '一般' },
|
||||
{ value: '良好', label: '良好' },
|
||||
],
|
||||
// 家庭经济情况选项(字典:jcbt_family_economy_status)
|
||||
familyStatusOptions: [],
|
||||
|
||||
// 家庭经济情况选择器相关
|
||||
showFamilyStatusPicker: false,
|
||||
familyStatusIndex: [0],
|
||||
// uview-ui 2.x 单列选择器:使用纯字符串数组(二维)最稳定
|
||||
// 格式:[[字符串1, 字符串2, ...]] - 外层数组表示列,内层数组表示选项
|
||||
familyStatusColumns: [['特困', '贫困', '一般', '良好']],
|
||||
// uview-ui 2.x 单列选择器:使用纯字符串数组(二维)
|
||||
familyStatusColumns: [[]],
|
||||
|
||||
// 加载状态
|
||||
loading: false,
|
||||
@@ -277,6 +272,17 @@ export default {
|
||||
},
|
||||
|
||||
methods: {
|
||||
async loadFamilyDict() {
|
||||
try {
|
||||
const dictData = await getDict('jcbt_family_economy_status');
|
||||
this.familyStatusOptions = Array.isArray(dictData) ? dictData : [];
|
||||
this.familyStatusColumns = [this.familyStatusOptions.map(item => item.label)];
|
||||
} catch (e) {
|
||||
const fallback = ['特困', '贫困', '一般', '良好'];
|
||||
this.familyStatusOptions = fallback.map(v => ({ value: v, label: v }));
|
||||
this.familyStatusColumns = [fallback];
|
||||
}
|
||||
},
|
||||
// 返回上一页
|
||||
goBack() {
|
||||
uni.navigateBack();
|
||||
@@ -292,13 +298,12 @@ export default {
|
||||
console.log('e.value:', e.value); // 例如:['贫困']
|
||||
console.log('e.indexs:', e.indexs); // 例如:[1]
|
||||
|
||||
// 单列选择器,取第一列的值
|
||||
// 单列选择器,取第一列的值,并根据label反查字典的value
|
||||
if (e && e.value && Array.isArray(e.value) && e.value.length > 0) {
|
||||
const selectedValue = e.value[0]; // 直接获取字符串,如 "贫困"
|
||||
console.log('选中的值:', selectedValue);
|
||||
|
||||
// 直接赋值
|
||||
this.formData.familyFinancialStatus = selectedValue;
|
||||
const match = this.familyStatusOptions.find(opt => opt.label === selectedValue);
|
||||
// 若找到匹配,用字典value,否则用label兜底
|
||||
this.formData.familyFinancialStatus = match ? (match.value || match.label) : selectedValue;
|
||||
|
||||
// 更新索引用于回显
|
||||
if (e.indexs && Array.isArray(e.indexs)) {
|
||||
@@ -324,7 +329,7 @@ export default {
|
||||
|
||||
try {
|
||||
// 并行加载数据
|
||||
const promises = [this.loadPositionData(), this.loadStudentInfo()];
|
||||
const promises = [this.loadPositionData(), this.loadStudentInfo(), this.loadFamilyDict()];
|
||||
|
||||
await Promise.all(promises);
|
||||
|
||||
|
||||
@@ -297,6 +297,7 @@ import {
|
||||
getCurrentStudentInfo,
|
||||
getStudentApplicationStatusList,
|
||||
} from '@/api/workStudy.js';
|
||||
import { getDict } from '@/common/dict.js';
|
||||
|
||||
export default {
|
||||
name: 'WorkStudyIndex',
|
||||
@@ -316,22 +317,9 @@ export default {
|
||||
scopeText: '',
|
||||
statusText: '',
|
||||
|
||||
// 选择器选项
|
||||
scopeOptions: [
|
||||
[
|
||||
{ label: '全部', value: '' },
|
||||
{ label: '本学院', value: 'COLLEGE' },
|
||||
{ label: '全校', value: 'UNIVERSITY' },
|
||||
],
|
||||
],
|
||||
statusOptions: [
|
||||
[
|
||||
{ label: '全部', value: '' },
|
||||
{ label: '已发布', value: 'PUBLISHED' },
|
||||
{ label: '招录中', value: 'RECRUITING' },
|
||||
{ label: '已暂停', value: 'SUSPENDED' },
|
||||
],
|
||||
],
|
||||
// 选择器选项(字典)
|
||||
scopeOptions: [[]],
|
||||
statusOptions: [[]],
|
||||
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
@@ -412,6 +400,8 @@ export default {
|
||||
await this.loadStudentInfo();
|
||||
// 获取学生申请状态列表
|
||||
await this.loadStudentApplications();
|
||||
// 加载筛选字典
|
||||
await this.loadFilterDicts();
|
||||
// 加载岗位列表
|
||||
await this.loadPositionList(true);
|
||||
} catch (error) {
|
||||
@@ -422,6 +412,33 @@ export default {
|
||||
});
|
||||
}
|
||||
},
|
||||
// 加载筛选字典
|
||||
async loadFilterDicts() {
|
||||
try {
|
||||
const [scopeDict, statusDict] = await Promise.all([
|
||||
getDict('jcbt_position_scope'),
|
||||
getDict('jcbt_position_status'),
|
||||
]);
|
||||
const scope = Array.isArray(scopeDict) ? scopeDict : [];
|
||||
const status = Array.isArray(statusDict) ? statusDict : [];
|
||||
// 转换为u-picker二维数组格式
|
||||
this.scopeOptions = [[{ label: '全部', value: '' }, ...scope]];
|
||||
this.statusOptions = [[{ label: '全部', value: '' }, ...status]];
|
||||
} catch (e) {
|
||||
// 保底:维持现状但不报错
|
||||
this.scopeOptions = [[
|
||||
{ label: '全部', value: '' },
|
||||
{ label: '本学院', value: 'COLLEGE' },
|
||||
{ label: '全校', value: 'UNIVERSITY' },
|
||||
]];
|
||||
this.statusOptions = [[
|
||||
{ label: '全部', value: '' },
|
||||
{ label: '已发布', value: 'PUBLISHED' },
|
||||
{ label: '招录中', value: 'RECRUITING' },
|
||||
{ label: '已暂停', value: 'SUSPENDED' },
|
||||
]];
|
||||
}
|
||||
},
|
||||
|
||||
// 获取学生信息
|
||||
async loadStudentInfo() {
|
||||
|
||||
@@ -177,9 +177,7 @@
|
||||
placeholder="请选择"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option label="产出指标" value="产出指标" />
|
||||
<el-option label="效益指标" value="效益指标" />
|
||||
<el-option label="满意度指标" value="满意度指标" />
|
||||
<el-option v-for="dict in cw_indicator_type" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -192,19 +190,13 @@
|
||||
style="width: 100%"
|
||||
>
|
||||
<template v-if="scope.row.level1Indicator === '产出指标'">
|
||||
<el-option label="数量指标" value="数量指标" />
|
||||
<el-option label="质量指标" value="质量指标" />
|
||||
<el-option label="时效指标" value="时效指标" />
|
||||
<el-option label="成本指标" value="成本指标" />
|
||||
<el-option v-for="dict in cw_output_indicator_type" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</template>
|
||||
<template v-else-if="scope.row.level1Indicator === '效益指标'">
|
||||
<el-option label="经济效益指标" value="经济效益指标" />
|
||||
<el-option label="社会效益指标" value="社会效益指标" />
|
||||
<el-option label="生态效益指标" value="生态效益指标" />
|
||||
<el-option label="可持续性指标" value="可持续性指标" />
|
||||
<el-option v-for="dict in cw_benefit_indicator_type" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</template>
|
||||
<template v-else-if="scope.row.level1Indicator === '满意度指标'">
|
||||
<el-option label="服务对象满意度指标" value="服务对象满意度指标" />
|
||||
<el-option v-for="dict in cw_satisfaction_indicator_type" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</template>
|
||||
</el-select>
|
||||
</template>
|
||||
@@ -294,12 +286,16 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts" name="MonitoringDialog">
|
||||
import { ref, reactive, computed, getCurrentInstance, ComponentInternalInstance } from 'vue'
|
||||
import { ref, reactive, computed, getCurrentInstance, ComponentInternalInstance, toRefs } from 'vue'
|
||||
import type { FormInstance, FormRules } from 'element-plus'
|
||||
import { getEvaluation, listPerformanceMonitoring, getPerformanceMonitoring, addPerformanceMonitoring, updatePerformanceMonitoring, delPerformanceMonitoring } from '@/api/cw/performanceEvaluation'
|
||||
import type { PerformanceMonitoringForm } from '@/api/cw/performanceEvaluation'
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance
|
||||
// 字典
|
||||
const { cw_indicator_type, cw_output_indicator_type, cw_benefit_indicator_type, cw_satisfaction_indicator_type } = toRefs<any>(
|
||||
proxy?.useDict('cw_indicator_type', 'cw_output_indicator_type', 'cw_benefit_indicator_type', 'cw_satisfaction_indicator_type') || {}
|
||||
)
|
||||
|
||||
// ========== 对话框状态 ==========
|
||||
const dialogVisible = ref(false)
|
||||
|
||||
@@ -19,19 +19,14 @@
|
||||
<el-col :span="6">
|
||||
<el-form-item label="自评状态" prop="evaluationStatus">
|
||||
<el-select v-model="queryParams.evaluationStatus" placeholder="请选择自评状态" clearable style="width: 100%">
|
||||
<el-option label="草稿" value="draft" />
|
||||
<el-option label="已提交" value="submitted" />
|
||||
<el-option label="已审核" value="approved" />
|
||||
<el-option v-for="dict in cw_evaluation_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="自评等级" prop="selfEvaluationLevel">
|
||||
<el-select v-model="queryParams.selfEvaluationLevel" placeholder="请选择自评等级" clearable style="width: 100%">
|
||||
<el-option label="优秀" value="优秀" />
|
||||
<el-option label="良好" value="良好" />
|
||||
<el-option label="合格" value="合格" />
|
||||
<el-option label="不合格" value="不合格" />
|
||||
<el-option v-for="dict in cw_evaluation_level" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -228,7 +223,9 @@ import MonitoringDialog from './components/MonitoringDialog.vue'
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance
|
||||
|
||||
// 加载字典数据
|
||||
const { cw_evaluation_status } = toRefs<any>(proxy?.useDict('cw_evaluation_status') || {})
|
||||
const { cw_evaluation_status, cw_evaluation_level } = toRefs<any>(
|
||||
proxy?.useDict('cw_evaluation_status', 'cw_evaluation_level') || {}
|
||||
)
|
||||
|
||||
const evaluationList = ref<CwProjectPerformanceSelfEvaluationVO[]>([])
|
||||
const loading = ref(true)
|
||||
|
||||
@@ -24,9 +24,7 @@
|
||||
<el-col :span="6">
|
||||
<el-form-item label="自评状态" prop="evaluationStatus">
|
||||
<el-select v-model="queryParams.evaluationStatus" placeholder="请选择自评状态" clearable style="width: 100%">
|
||||
<el-option label="草稿" value="draft" />
|
||||
<el-option label="已提交" value="submitted" />
|
||||
<el-option label="已审核" value="approved" />
|
||||
<el-option v-for="dict in cw_evaluation_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -35,18 +33,14 @@
|
||||
<el-col :span="6">
|
||||
<el-form-item label="自评等级" prop="selfEvaluationLevel">
|
||||
<el-select v-model="queryParams.selfEvaluationLevel" placeholder="请选择自评等级" clearable style="width: 100%">
|
||||
<el-option label="优秀" value="优秀" />
|
||||
<el-option label="良好" value="良好" />
|
||||
<el-option label="合格" value="合格" />
|
||||
<el-option label="不合格" value="不合格" />
|
||||
<el-option v-for="dict in cw_evaluation_level" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="锁定状态" prop="isLocked">
|
||||
<el-select v-model="queryParams.isLocked" placeholder="请选择锁定状态" clearable style="width: 100%">
|
||||
<el-option label="未锁定" :value="0" />
|
||||
<el-option label="已锁定" :value="1" />
|
||||
<el-option v-for="dict in cw_lock_status" :key="dict.value" :label="dict.label" :value="Number(dict.value)" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -227,7 +221,9 @@ import TableForm from '../evaluation/table-form.vue'
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance
|
||||
|
||||
// 加载字典数据
|
||||
const { cw_evaluation_status } = toRefs<any>(proxy?.useDict('cw_evaluation_status') || {})
|
||||
const { cw_evaluation_status, cw_evaluation_level, cw_lock_status } = toRefs<any>(
|
||||
proxy?.useDict('cw_evaluation_status', 'cw_evaluation_level', 'cw_lock_status') || {}
|
||||
)
|
||||
|
||||
const evaluationList = ref<CwProjectPerformanceSelfEvaluationVO[]>([])
|
||||
const loading = ref(true)
|
||||
|
||||
@@ -99,21 +99,14 @@
|
||||
<el-col :span="6">
|
||||
<el-form-item label="学年" prop="academicYear">
|
||||
<el-select v-model="queryParams.academicYear" placeholder="请选择学年" clearable style="width: 100%">
|
||||
<el-option label="2024-2025" value="2024-2025" />
|
||||
<el-option label="2023-2024" value="2023-2024" />
|
||||
<el-option label="2022-2023" value="2022-2023" />
|
||||
<el-option v-for="dict in jcbt_academic_year" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="申请状态" prop="status">
|
||||
<el-select v-model="queryParams.status" placeholder="请选择申请状态" clearable style="width: 100%">
|
||||
<el-option label="草稿" value="DRAFT" />
|
||||
<el-option label="已提交" value="SUBMITTED" />
|
||||
<el-option label="审核中" value="REVIEWING" />
|
||||
<el-option label="已通过" value="APPROVED" />
|
||||
<el-option label="已拒绝" value="REJECTED" />
|
||||
<el-option label="已撤回" value="WITHDRAWN" />
|
||||
<el-option v-for="dict in jcbt_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -138,8 +131,7 @@
|
||||
<el-col :span="6">
|
||||
<el-form-item label="申请资助类型" prop="assistanceTypeIds">
|
||||
<el-select v-model="queryParams.assistanceTypeIds" placeholder="请选择申请资助类型" clearable style="width: 100%">
|
||||
<el-option label="浙江省学生资助" value="1" />
|
||||
<el-option label="杭州第一技师学院学生资助" value="2" />
|
||||
<el-option v-for="dict in jcbt_assistance_type" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -295,9 +287,7 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item label="学年" prop="academicYear">
|
||||
<el-select v-model="form.academicYear" placeholder="请选择学年" style="width: 100%">
|
||||
<el-option label="2024-2025" value="2024-2025" />
|
||||
<el-option label="2023-2024" value="2023-2024" />
|
||||
<el-option label="2022-2023" value="2022-2023" />
|
||||
<el-option v-for="dict in jcbt_academic_year" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -379,8 +369,7 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item label="申请资助类型" prop="assistanceTypeIds">
|
||||
<el-select v-model="form.assistanceTypeIds" placeholder="请选择申请资助类型" style="width: 100%" @change="handleAssistanceTypeChange">
|
||||
<el-option label="浙江省学生资助" value="1" />
|
||||
<el-option label="杭州第一技师学院学生资助" value="2" />
|
||||
<el-option v-for="dict in jcbt_assistance_type" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -390,9 +379,7 @@
|
||||
</el-row>
|
||||
<el-form-item label="家庭经济情况" prop="familyEconomyStatus">
|
||||
<el-select v-model="form.familyEconomyStatus" placeholder="请选择家庭经济情况" style="width: 100%">
|
||||
<el-option label="特别困难" value="特别困难" />
|
||||
<el-option label="困难" value="困难" />
|
||||
<el-option label="一般困难" value="一般困难" />
|
||||
<el-option v-for="dict in jcbt_family_economy_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="家庭情况摘要" prop="familyEconomySummary">
|
||||
@@ -575,6 +562,11 @@ import { ElMessageBox, ElMessage } from 'element-plus';
|
||||
// 数据定义
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
// 字典:资助类型、家庭经济情况
|
||||
const { jcbt_assistance_type, jcbt_family_economy_status, jcbt_academic_year, jcbt_status } = toRefs<any>(
|
||||
proxy?.useDict('jcbt_assistance_type', 'jcbt_family_economy_status', 'jcbt_academic_year', 'jcbt_status') || {}
|
||||
);
|
||||
|
||||
// 表单 ref
|
||||
const applicationFormRef = ref();
|
||||
const queryFormRef = ref();
|
||||
@@ -813,13 +805,8 @@ function handleRecognitionTypeChange(value) {
|
||||
|
||||
/** 处理申请资助类型选择变化 */
|
||||
function handleAssistanceTypeChange(value) {
|
||||
if (value === '1') {
|
||||
form.value.assistanceTypeNames = '浙江省学生资助';
|
||||
} else if (value === '2') {
|
||||
form.value.assistanceTypeNames = '杭州第一技师学院学生资助';
|
||||
} else {
|
||||
form.value.assistanceTypeNames = null;
|
||||
}
|
||||
const selected = (jcbt_assistance_type?.value || []).find((item: any) => item.value === value);
|
||||
form.value.assistanceTypeNames = selected ? selected.label : null;
|
||||
}
|
||||
|
||||
/** 表单重置 */
|
||||
|
||||
@@ -578,8 +578,7 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item label="性别" prop="gender">
|
||||
<el-select v-model="applicationForm.gender" placeholder="请选择性别" style="width: 100%">
|
||||
<el-option label="男" value="0" />
|
||||
<el-option label="女" value="1" />
|
||||
<el-option v-for="dict in sys_user_sex" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -602,19 +601,7 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item label="政治面貌" prop="politicalStatus">
|
||||
<el-select v-model="applicationForm.politicalStatus" placeholder="请选择政治面貌" style="width: 100%">
|
||||
<el-option label="中共党员" value="1" />
|
||||
<el-option label="中共预备党员" value="2" />
|
||||
<el-option label="共青团员" value="3" />
|
||||
<el-option label="民革党员" value="4" />
|
||||
<el-option label="民盟盟员" value="5" />
|
||||
<el-option label="民建会员" value="6" />
|
||||
<el-option label="民进会员" value="7" />
|
||||
<el-option label="农工党党员" value="8" />
|
||||
<el-option label="致公党党员" value="9" />
|
||||
<el-option label="九三学社社员" value="10" />
|
||||
<el-option label="台盟盟员" value="11" />
|
||||
<el-option label="无党派人士" value="12" />
|
||||
<el-option label="群众" value="13" />
|
||||
<el-option v-for="dict in xg_political_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -1416,6 +1403,11 @@ import { cancelProcessApply } from '@/api/workflow/instance';
|
||||
const { proxy } = getCurrentInstance() as any;
|
||||
const userStore = useUserStore();
|
||||
|
||||
// 字典:性别、政治面貌
|
||||
const { sys_user_sex, xg_political_status } = toRefs<any>(
|
||||
proxy?.useDict('sys_user_sex', 'xg_political_status') || {}
|
||||
);
|
||||
|
||||
// 表单引用
|
||||
const applicationFormRef = ref<any>(null);
|
||||
const applicationQueryForm = ref<any>(null);
|
||||
|
||||
@@ -149,8 +149,7 @@
|
||||
<el-col :span="6">
|
||||
<el-form-item label="审批状态" prop="status">
|
||||
<el-select v-model="recordQueryParams.status" placeholder="请选择审批状态" clearable style="width: 100%">
|
||||
<el-option label="已通过" value="1" />
|
||||
<el-option label="已拒绝" value="2" />
|
||||
<el-option v-for="dict in rs_approval_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -293,7 +292,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts" name="ItineraryChangeApproval">
|
||||
import { ref, reactive, toRefs, onMounted } from 'vue';
|
||||
import { ref, reactive, toRefs, onMounted, getCurrentInstance } from 'vue';
|
||||
import { ElMessage, ElMessageBox } from 'element-plus';
|
||||
import { useRouter } from 'vue-router';
|
||||
import animate from '@/animate';
|
||||
@@ -311,6 +310,10 @@ import SignaturePad from '@/components/SignaturePad/index.vue';
|
||||
|
||||
// ==================== 响应式数据 ====================
|
||||
|
||||
const { proxy } = getCurrentInstance() as any;
|
||||
// 字典:审批状态
|
||||
const { rs_approval_status } = toRefs<any>(proxy?.useDict('rs_approval_status') || {});
|
||||
|
||||
const router = useRouter();
|
||||
const pendingQueryFormRef = ref();
|
||||
const recordQueryFormRef = ref();
|
||||
|
||||
@@ -123,8 +123,7 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item label="性别" prop="gender">
|
||||
<el-select v-model="applicationForm.gender" placeholder="请选择性别" style="width: 100%">
|
||||
<el-option label="男" value="0" />
|
||||
<el-option label="女" value="1" />
|
||||
<el-option v-for="dict in sys_user_sex" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -147,19 +146,7 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item label="政治面貌" prop="politicalStatus">
|
||||
<el-select v-model="applicationForm.politicalStatus" placeholder="请选择政治面貌" style="width: 100%">
|
||||
<el-option label="中共党员" value="1" />
|
||||
<el-option label="中共预备党员" value="2" />
|
||||
<el-option label="共青团员" value="3" />
|
||||
<el-option label="民革党员" value="4" />
|
||||
<el-option label="民盟盟员" value="5" />
|
||||
<el-option label="民建会员" value="6" />
|
||||
<el-option label="民进会员" value="7" />
|
||||
<el-option label="农工党党员" value="8" />
|
||||
<el-option label="致公党党员" value="9" />
|
||||
<el-option label="九三学社社员" value="10" />
|
||||
<el-option label="台盟盟员" value="11" />
|
||||
<el-option label="无党派人士" value="12" />
|
||||
<el-option label="群众" value="13" />
|
||||
<el-option v-for="dict in xg_political_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -217,11 +204,7 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item label="人员类别" prop="personnelCategory">
|
||||
<el-select v-model="applicationForm.personnelCategory" placeholder="请选择人员类别" style="width: 100%">
|
||||
<el-option label="教学人员" value="教学人员" />
|
||||
<el-option label="管理人员" value="管理人员" />
|
||||
<el-option label="教辅人员" value="教辅人员" />
|
||||
<el-option label="工勤人员" value="工勤人员" />
|
||||
<el-option label="其他人员" value="其他" />
|
||||
<el-option v-for="dict in rs_personnel_category" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -419,6 +402,10 @@ const { proxy } = getCurrentInstance();
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
|
||||
// 字典:性别、政治面貌、人员类别
|
||||
const { sys_user_sex, xg_political_status, rs_personnel_category } = toRefs<any>(
|
||||
proxy?.useDict('sys_user_sex', 'xg_political_status', 'rs_personnel_category') || {}
|
||||
);
|
||||
// 响应式数据
|
||||
const loading = ref(false);
|
||||
const formLoading = ref(false);
|
||||
|
||||
@@ -310,7 +310,7 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="课程类别" prop="category">
|
||||
<el-select v-model="courseForm.category" placeholder="请选择课程类别" style="width: 100%">
|
||||
<el-option v-for="dict in categoryOptions" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
<el-option v-for="dict in rs_training_category" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="开始时间" prop="startTime">
|
||||
@@ -1090,15 +1090,10 @@ const trainingSubTab = ref('application'); // 默认显示培训申请选项卡
|
||||
const isInitialized = ref(false);
|
||||
const isDataLoaded = ref(false);
|
||||
|
||||
// 课程类别选项
|
||||
const categoryOptions = ref([
|
||||
{ value: 'skill', label: '技能培训' },
|
||||
{ value: 'management', label: '管理培训' },
|
||||
{ value: 'tech', label: '技术培训' },
|
||||
{ value: 'safety', label: '安全培训' },
|
||||
{ value: 'law', label: '法规培训' },
|
||||
{ value: 'other', label: '其他培训' }
|
||||
]);
|
||||
// 课程类别选项改为字典
|
||||
const { rs_training_category, rs_training_application_status } = toRefs<any>(
|
||||
proxy?.useDict('rs_training_category', 'rs_training_application_status') || {}
|
||||
);
|
||||
|
||||
// 课程状态选项(计算型)
|
||||
const getCourseStatusType = (row: CourseVO): string => {
|
||||
@@ -1214,14 +1209,8 @@ const applicationQueryParams = reactive({
|
||||
params: {}
|
||||
});
|
||||
|
||||
// 申请状态选项
|
||||
const applicationStatusOptions = [
|
||||
{ value: '0', label: '待审核', type: 'warning' },
|
||||
{ value: '1', label: '已通过', type: 'success' },
|
||||
{ value: '2', label: '已拒绝', type: 'danger' },
|
||||
{ value: '3', label: '已取消', type: 'info' },
|
||||
{ value: '4', label: '已完成', type: 'success' }
|
||||
];
|
||||
// 申请状态选项改为字典
|
||||
const applicationStatusOptions = rs_training_application_status;
|
||||
|
||||
// 教师列表数据
|
||||
const teacherList = ref<
|
||||
|
||||
@@ -18,8 +18,7 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="status">
|
||||
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable>
|
||||
<el-option label="有效" value="valid" />
|
||||
<el-option label="失效" value="invalid" />
|
||||
<el-option v-for="dict in xg_holiday_stay_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="学号" prop="studentNo">
|
||||
@@ -802,7 +801,9 @@ import {
|
||||
} from '@/api/xg/xgss/holidayStay/holidayStay/types-sg';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { xg_holiday_type, xg_stay_reason_type, sys_yesno } = toRefs<any>(proxy?.useDict('xg_holiday_type', 'xg_stay_reason_type', 'sys_yesno'));
|
||||
const { xg_holiday_type, xg_stay_reason_type, sys_yesno, xg_holiday_stay_status } = toRefs<any>(
|
||||
proxy?.useDict('xg_holiday_type', 'xg_stay_reason_type', 'sys_yesno', 'xg_holiday_stay_status')
|
||||
);
|
||||
|
||||
// 用户store - 用于获取当前登录用户信息,实现权限控制
|
||||
const userStore = useUserStore();
|
||||
|
||||
@@ -23,12 +23,10 @@
|
||||
<el-col :span="24">
|
||||
<div class="form-section-title">新实习信息</div>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="实习状态" prop="internshipStatus">
|
||||
<el-select v-model="form.internshipStatus" placeholder="请选择实习状态" style="width: 100%">
|
||||
<el-option label="进行中" value="1" />
|
||||
<el-option label="已完成" value="2" />
|
||||
<el-option label="中断" value="3" />
|
||||
<el-option v-for="dict in zsjy_internship_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -65,11 +63,7 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item label="单位规模" prop="companyScale">
|
||||
<el-select v-model="form.companyScale" placeholder="请选择单位规模" clearable style="width: 100%">
|
||||
<el-option label="20人以下" value="1" />
|
||||
<el-option label="20-99人" value="2" />
|
||||
<el-option label="100-499人" value="3" />
|
||||
<el-option label="500-999人" value="4" />
|
||||
<el-option label="1000人以上" value="5" />
|
||||
<el-option v-for="dict in zsjy_company_scale" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -150,9 +144,7 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item label="住宿类型" prop="accommodationType">
|
||||
<el-select v-model="form.accommodationType" placeholder="请选择住宿类型" clearable style="width: 100%">
|
||||
<el-option label="公司提供" value="1" />
|
||||
<el-option label="自行租房" value="2" />
|
||||
<el-option label="其他" value="3" />
|
||||
<el-option v-for="dict in zsjy_accommodation_type" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -195,7 +187,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts" name="ChangeDialog">
|
||||
import { ref, watch, reactive } from 'vue';
|
||||
import { ref, watch, reactive, getCurrentInstance, toRefs } from 'vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
import { changeInternshipInfo, getInternshipInfo } from '@/api/zsjy/internship';
|
||||
import type { InternshipInfoChangeBO, InternshipInfoVO } from '@/api/zsjy/types';
|
||||
@@ -215,6 +207,11 @@ const emit = defineEmits(['update:modelValue', 'success']);
|
||||
const visible = ref(false);
|
||||
const submitLoading = ref(false);
|
||||
const formRef = ref<FormInstance>();
|
||||
// 字典
|
||||
const { proxy } = getCurrentInstance() as any;
|
||||
const { zsjy_internship_status, zsjy_company_scale, zsjy_accommodation_type } = toRefs<any>(
|
||||
proxy?.useDict('zsjy_internship_status', 'zsjy_company_scale', 'zsjy_accommodation_type') || {}
|
||||
);
|
||||
|
||||
// 表单数据
|
||||
const form = reactive<InternshipInfoChangeBO>({
|
||||
|
||||
Reference in new issue
Block a user