教培功能bug修复

dev
zhangyanli 2024-03-27 15:53:32 +08:00
parent 40a5fd2496
commit 3cb8221676
23 changed files with 198 additions and 39 deletions

View File

@ -31,6 +31,11 @@ const props = defineProps({
required: true,
default: false,
},
year: {
type: String,
required: false,
default: "",
},
title: {
type: String,
default: "导入",
@ -72,6 +77,7 @@ const fnSubmit = debounce(
const formData = new FormData();
formData.append("FFILE", data.form.file[0].raw);
formData.append("FFILEName", data.form.file[0].name);
formData.append("year", props.year);
emits("submit", formData);
},
{ atBegin: true }

View File

@ -25,7 +25,7 @@ export const setClassFinish = (params) => post("/class/finish", params); // 班
export const setClassManagementDelay = (params) =>
post("/class/postpone", params); // 班级管理延期
export const getPersonnelList = (params) =>
post("/trainedusersign/listByEnt", { loading: false, params }); // 班级管理添加人员
post("/trainedusersign/listByEnt", { loading: false, ...params }); // 班级管理添加人员
export const getClassManagementView = (params) => post("/class/goEdit", params); // 班级管理查看
export const setClassManagementAdd = (params) => post("/class/add", params); // 班级管理添加
export const setClassManagementEdit = (params) => post("/class/edit", params); // 班级管理修改

View File

@ -82,6 +82,7 @@
<layout-import-file
v-model:visible="data.importDialogVisible"
template-url="/TrafficFile/template/post.xls"
:year="year"
@submit="fnSubmitImport"
/>
</el-dialog>
@ -199,6 +200,8 @@ const fnImport = () => {
const fnSubmitImport = async (formData) => {
const resData = await setPostmanImport(formData);
ElMessage.success(resData.msg);
fnGetData();
fnImport();
};
const fnClose = () => {
emits("update:type", 0);

View File

@ -77,6 +77,11 @@ const props = defineProps({
required: true,
default: () => {},
},
curriculumId: {
type: String,
required: true,
default: "",
},
});
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
const { visible, form } = useVModels(props, emits);
@ -121,8 +126,13 @@ const fnSubmit = debounce(
Object.keys(props.outerLayerForm).forEach((key) => {
formData.append(key, props.outerLayerForm[key]);
});
console.log(props.outerLayerForm);
formData.append("REVIEW_USER", form.value.REVIEW_USER);
formData.append("DEPARTMENT", form.value.DEPARTMENT_NAME);
formData.append("DUTIES", form.value.DUTIES);
formData.append("CHECK_OPINION", form.value.CHECK_OPINION);
formData.append("SIGN_PATH", form.value.SIGN_PICTURE);
formData.append("CURRICULUM_ID", props.curriculumId);
form.value.ARCHIVES_REVIEW_RECORD_ID &&
formData.append(
"ARCHIVES_REVIEW_RECORD_ID",

View File

@ -139,4 +139,22 @@ const fnClose = () => {
}
}
}
:deep {
.el-radio-group {
width: 100%;
justify-content: space-between;
flex-wrap: wrap;
}
.el-radio-group .el-radio {
width: 25%;
margin-right: 0;
height: auto;
min-height: 30px;
}
.el-radio__input.is-disabled + span.el-radio__label {
white-space: break-spaces;
word-break: break-all;
line-height: 20px;
}
}
</style>

View File

@ -125,7 +125,8 @@
v-model:form="data.addDialog.form"
:type="data.addDialog.type"
:outer-layer-form="data.form"
@get-data="fnGetReviewRecordList"
:curriculum-id="curriculumId"
@get-data="fnGetData"
/>
</template>
@ -185,6 +186,7 @@ const data = reactive({
BOOK_NUM: "",
CORP_NAME: "",
CREATTIME: "",
CURRICULUM_ID: "",
enterpriseName: "",
REVIEW_PERSON: "",
REVIEW_TIME: "",
@ -237,6 +239,11 @@ const fnGetData = async () => {
data.form.CREATTIME = reviewInfo.pd.CREATTIME;
await fnGetReviewRecordList();
}
} else {
data.reviewInfo = {};
data.reviewRecordList = [];
data.form.REVIEW_OPINIONS =
data.form.REVIEW_OPINIONS || "此教材符合相关文件要求,同意使用。";
}
};
const fnGetReviewRecordList = async () => {

View File

@ -52,7 +52,6 @@
<el-table-column prop="NAME" label="班级名称" />
<el-table-column prop="START_TIME" label="培训开始时间" />
<el-table-column prop="END_TIME" label="培训结束时间" />
<el-table-column prop="STUDENT_NUM" label="学员人员数" />
<el-table-column label="班级状态">
<template #default="{ row }">
{{ translationStatus(row.STATE, statusList) }}
@ -100,7 +99,9 @@ const statusList = [
{ ID: "6", NAME: "培训结束" },
];
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getClassesList);
useListData(getClassesList, {
otherParams: { TRAINTYPE_ID: "c70bf859512241579a8a30fc5d1ae153" },
});
</script>
<style scoped></style>

View File

@ -97,7 +97,9 @@ import { useRouter } from "vue-router";
const router = useRouter();
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getClassForHealthList);
useListData(getClassForHealthList, {
otherParams: { TRAINTYPE_ID: "c70bf859512241579a8a30fc5d1ae153" },
});
</script>
<style scoped></style>

View File

@ -696,11 +696,13 @@
>分数:{{ data.paper.EXAMSCORE || 0 }}</span
>
<span style="line-height: 50px; margin-left: 200px"
>签字:<img
>签字:
<img
v-if="data.SIGNATURE_PATH"
:src="data.SIGNATURE_PATH"
style="height: 50px; width: 120px; vertical-align: top"
/><span v-else></span></span
/>
<span v-else></span></span
>
<span style="line-height: 50px; margin-left: 200px"
>考试时间:{{ data.paper.EXAMTIMEEND }}</span
@ -928,4 +930,22 @@ fnGetLearningRecord();
}
}
}
:deep {
.el-radio-group {
width: 100%;
justify-content: space-between;
flex-wrap: wrap;
}
.el-radio-group .el-radio {
width: 25%;
margin-right: 0;
height: auto;
min-height: 30px;
}
.el-radio__input.is-disabled + span.el-radio__label {
white-space: break-spaces;
word-break: break-all;
line-height: 20px;
}
}
</style>

View File

@ -195,7 +195,7 @@ const data = reactive({
const classFileExportDialogVisible = ref(false);
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
useListData(getUserClassesList, {
otherParams: { USER_ID },
otherParams: { USER_ID, TRAINTYPE_ID: "c70bf859512241579a8a30fc5d1ae153" },
});
const fnPersonnelRegistrationForm = (STUDENT_ID, USER_ID) => {
data.personnelRegistrationFormDialog.STUDENT_ID = STUDENT_ID;

View File

@ -93,7 +93,7 @@
<tr>
<td>岗位名称</td>
<td>
{{ info.POST_NAME }}
{{ info.TYPE_OF_WORK_NAME }}
</td>
<td>之前从事本岗位时间</td>
<td colspan="2">

View File

@ -103,7 +103,9 @@ import ClassFile from "./components/class_file.vue";
const router = useRouter();
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
useListData(getStudentsList);
useListData(getStudentsList, {
otherParams: { TRAINTYPE_ID: "c70bf859512241579a8a30fc5d1ae153" },
});
const classFileDialogVisible = ref(false);
const fnBatchDownload = debounce(
1000,

View File

@ -11,6 +11,7 @@
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column prop="USERNAME" label="姓名" />
<el-table-column prop="SIGNTYPENAME" label="签字人员类型" />
<el-table-column label="签字图片">
<template #default="{ row }">

View File

@ -233,4 +233,22 @@ watchEffect(() => {
}
}
}
:deep {
.el-radio-group {
width: 100%;
justify-content: space-between;
flex-wrap: wrap;
}
.el-radio-group .el-radio {
width: 25%;
margin-right: 0;
height: auto;
min-height: 30px;
}
.el-radio__input.is-disabled + span.el-radio__label {
white-space: break-spaces;
word-break: break-all;
line-height: 20px;
}
}
</style>

View File

@ -95,6 +95,12 @@
:label="item.USERNAME"
/>
</el-select>
<span
v-if="data.recordingPersonnelList.length === 0"
class="text-red"
>
*请到企业用户管理->签字人员管理菜单中配置
</span>
</el-form-item>
</el-col>
<el-col :span="12">
@ -111,6 +117,12 @@
:label="item.USERNAME"
/>
</el-select>
<span
v-if="data.recordingPersonnelList.length === 0"
class="text-red"
>
*请到企业用户管理->签字人员管理菜单中配置
</span>
</el-form-item>
</el-col>
<el-col :span="12">
@ -127,6 +139,12 @@
:label="item.USERNAME"
/>
</el-select>
<span
v-if="data.recordingPersonnelList.length === 0"
class="text-red"
>
*请到企业用户管理->签字人员管理菜单中配置
</span>
</el-form-item>
</el-col>
<el-col :span="12">

View File

@ -99,4 +99,23 @@ const fnExamDetails = async (STAGEEXAM_ID) => {
};
</script>
<style scoped lang="scss"></style>
<style scoped lang="scss">
:deep {
.el-radio-group {
width: 100%;
justify-content: space-between;
flex-wrap: wrap;
}
.el-radio-group .el-radio {
width: 25%;
margin-right: 0;
height: auto;
min-height: 30px;
}
.el-radio__input.is-disabled + span.el-radio__label {
white-space: break-spaces;
word-break: break-all;
line-height: 20px;
}
}
</style>

View File

@ -29,14 +29,6 @@
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="行业类型" prop="INDUSTRY_END_ID">
<layout-learning-train-type
v-model="searchForm.INDUSTRY_END_ID"
type="industryType"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="岗位类型" prop="POSTTYPE">
<layout-learning-train-type

View File

@ -217,8 +217,8 @@ const formRef = ref(null);
const data = reactive({
form: {
EXAMNAME: "",
EXAMSCORE: 0,
PASSSCORE: 0,
EXAMSCORE: 100,
PASSSCORE: 60,
fileList: [],
},
addOrEditDialog: {

View File

@ -294,4 +294,22 @@ const fnSubmit = debounce(
flex: 1;
}
}
:deep {
.el-radio-group {
width: 100%;
justify-content: space-between;
flex-wrap: wrap;
}
.el-radio-group .el-radio {
width: 25%;
margin-right: 0;
height: auto;
min-height: 30px;
}
.el-radio__input.is-disabled + span.el-radio__label {
white-space: break-spaces;
word-break: break-all;
line-height: 20px;
}
}
</style>

View File

@ -12,6 +12,11 @@
<el-input v-model="searchForm.STUDENT_NAME" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="身份证号" prop="USER_ID_CARD">
<el-input v-model="searchForm.USER_ID_CARD" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="班级编码" prop="CODE">
<el-input v-model="searchForm.CODE" />

View File

@ -25,6 +25,14 @@
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="行业类型" prop="INDUSTRY_END_ID">
<layout-learning-train-type
v-model="searchForm.INDUSTRY_END_ID"
type="industryType"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="培训类型" prop="TRAINTYPE">
<layout-learning-train-type
@ -37,14 +45,6 @@
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="行业类型" prop="INDUSTRY_END_ID">
<layout-learning-train-type
v-model="searchForm.INDUSTRY_END_ID"
type="industryType"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="岗位类型" prop="POSTTYPE">
<layout-learning-train-type
@ -92,13 +92,14 @@
show-overflow-tooltip
/>
<el-table-column label="上传时间" prop="CREATTIME" width="150" />
<el-table-column label="培训类型" prop="TRAININGTYPE_NAME" />
<el-table-column label="行业类型">
<template #default="{ row }">
{{ row.INDUSTRY_END_NAME || row.INDUSTRY_ALL_NAME }}
</template>
</el-table-column>
<el-table-column label="培训类型" prop="TRAININGTYPE_NAME" />
<el-table-column label="岗位类型" prop="POSTTYPE_NAME" />
<el-table-column label="培训级别" prop="TRAINLEVEL_NAME" />
<el-table-column label="课件数" prop="COURSEWARECOUNT" width="100" />
<el-table-column label="课件时长" width="100">
<template #default="{ row }">

View File

@ -89,4 +89,22 @@ defineProps({
}
}
}
:deep {
.el-radio-group {
width: 100%;
justify-content: space-between;
flex-wrap: wrap;
}
.el-radio-group .el-radio {
width: 25%;
margin-right: 0;
height: auto;
min-height: 30px;
}
.el-radio__input.is-disabled + span.el-radio__label {
white-space: break-spaces;
word-break: break-all;
line-height: 20px;
}
}
</style>

View File

@ -12,6 +12,14 @@
<el-input v-model="searchForm.KEYWORDS" />
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="行业类型" prop="INDUSTRY_END_ID">
<layout-learning-train-type
v-model="searchForm.INDUSTRY_END_ID"
type="industryType"
/>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="培训类型" prop="TRAINTYPE">
<layout-learning-train-type
@ -21,14 +29,6 @@
/>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="行业类型" prop="INDUSTRY_END_ID">
<layout-learning-train-type
v-model="searchForm.INDUSTRY_END_ID"
type="industryType"
/>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="岗位类型" prop="POSTTYPE">
<layout-learning-train-type
@ -66,8 +66,8 @@
show-overflow-tooltip
/>
<el-table-column label="上传时间" prop="CREATTIME" width="150" />
<el-table-column label="培训类型" prop="TRAININGTYPE_NAME" />
<el-table-column label="行业类型" prop="INDUSTRY_END_NAME" />
<el-table-column label="培训类型" prop="TRAININGTYPE_NAME" />
<el-table-column label="岗位类型" prop="POSTTYPE_NAME" />
<el-table-column label="培训教师" prop="TEACHERNAME" />
<el-table-column label="学时" prop="CLASSHOUR" width="100" />