Compare commits

...

4 Commits

Author SHA1 Message Date
zhangyanli 861cef7aa5 交通类型档案生成 2024-05-15 09:03:59 +08:00
zhangyanli b4fa582fdc Merge remote-tracking branch 'origin/dev' into dev 2024-05-15 09:03:13 +08:00
zhangyanli 98ea81ede4 Merge remote-tracking branch 'origin/dev' into dev
# Conflicts:
#	src/views/enterprise_management/information/edit.vue
2024-05-13 08:58:36 +08:00
zhangyanli d7dd618c8a 档案管理和效果评估bug 2024-04-01 08:32:32 +08:00
11 changed files with 727 additions and 8 deletions

View File

@ -57,6 +57,10 @@ export const getCoursewares = (params) =>
post("/archives/getCoursewares", params); // 一期一档安全培训教材或课程讲义
export const getTrainingSchedule = (params) =>
post("/archives/trainingscheduleGoEdit", params); // 一期一档培训日程安排通知/也可称为培训计划
export const getAllCourseware = (params) =>
post("/archives/getTraining", params); // 一期一档教育培训记录 --交通运输类型
export const editTraining = (params) =>
post("/archivesReviewRecord/editTraining", params); // 一期一档教育培训记录保存 --交通运输类型
export const downloadArchiveDirectory = (params) =>
post("/archives/archiveDirectory", params); // 一期一档:档案目录批量导出
@ -70,6 +74,8 @@ export const downloadHsAll = (params) => post("/archives/hsAll", params); // 一
export const downloadHs = (params) => post("/archives/hs", params); // 一期一档:会审表导出
export const downloadStudentsumtable = (params) =>
post("/archives/studentsumtable", params); // 一期一档:学员统计总表导出
export const downloadStudentsumtableAsTraffic = (params) =>
post("/archives/studentsumtableAsTraffic", params); // 一期一档:学员统计总表导出
export const downloadEvaluationreport = (params) =>
post("/archives/evaluationreport", params); // 一期一档:综合考评报告导出
export const downloadExaminationpaper = (params) =>
@ -79,6 +85,10 @@ export const downloadImagedata = (params) =>
export const downloadTeachingMaterial = (params) =>
post("/archives/teachingMaterial", params); // 一期一档:安全培训教材或课程讲义导出
export const downloadSign = (params) => post("/archives/sign", params); // 一期一档:安全培训教育记录及签字表批量导出
export const downloadSignAsTraffic = (params) =>
post("/archives/signAsTraffic", params); // 一期一档:安全知识培训签到表 --交通运输类型
export const downloadTrainingAsTraffic = (params) =>
post("/archives/trainingAsTraffic", params); // 一期一档:教育培训记录 --交通运输类型
export const downloadAllwordzip = (params) =>
post("/archivesallcorpword/allwordzip", params); // 一企一档:档案目录

View File

@ -6,7 +6,11 @@
<layout-table
ref="tableRef"
row-key="TYPE"
:data="data.list"
:data="
TRAINTYPE === 'bd2a3b7767db49968e26cfccc3c2b4a4'
? data.listTraffic
: data.list
"
:show-pagination="false"
>
<el-table-column reserve-selection type="selection" width="55" />
@ -34,10 +38,13 @@
<script setup>
import TrainingSchedule from "./components/training_schedule.vue";
import Training from "./components/training.vue";
import Image from "./components/image.vue";
import Report from "./components/report.vue";
import Results from "./components/results.vue";
import Achievement from "./components/achievement.vue";
import SignatureForm from "./components/signature_form.vue";
import SignatureFormTraffic from "./components/signature_form_traffic.vue";
import { markRaw, reactive, ref } from "vue";
import { useRoute, useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
@ -49,7 +56,7 @@ import Setting from "./components/setting.vue";
const router = useRouter();
const route = useRoute();
const { CLASS_ID, CORP_NAME, CLASS_NAME, CORPINFO_ID } = route.query;
const { CLASS_ID, CORP_NAME, CLASS_NAME, CORPINFO_ID, TRAINTYPE } = route.query;
const tableRef = ref(null);
const data = reactive({
list: [
@ -85,6 +92,26 @@ const data = reactive({
{ NAME: "学员考核成绩统计表", TYPE: 104, component: markRaw(Results) },
{ NAME: "本期综合考评报告", TYPE: 105, component: markRaw(Report) },
],
listTraffic: [
{
NAME: "教育培训记录",
TYPE: 110,
component: markRaw(Training),
},
{
NAME: "安全培训教材或课程讲义",
TYPE: 106,
component: "",
url: "/archives_management/semester/archives/handout_list",
},
{
NAME: "安全知识培训签到表",
TYPE: 112,
component: markRaw(SignatureFormTraffic),
},
{ NAME: "培训影像资料", TYPE: 107, component: markRaw(Image) },
{ NAME: "安全知识培训成绩表", TYPE: 113, component: markRaw(Achievement) },
],
type: 0,
title: "",
component: "",

View File

@ -0,0 +1,204 @@
<template>
<el-dialog
:title="title"
:model-value="type === 113"
width="1100px"
@close="fnClose"
>
<div class="tr mb">
<el-button type="primary" @click="fnExport"></el-button>
</div>
<div id="printContent" class="newform">
<div class="tc">安全知识培训成绩表</div>
<table class="mt print_table">
<tr>
<td class="title" style="width: 5%">序号</td>
<td class="title" style="width: 15%">姓名</td>
<td class="title" style="width: 10%">成绩</td>
<td class="title" style="width: 5%">序号</td>
<td class="title" style="width: 15%">姓名</td>
<td class="title" style="width: 10%">成绩</td>
<td class="title" style="width: 5%">序号</td>
<td class="title" style="width: 15%">姓名</td>
<td class="title" style="width: 10%">成绩</td>
</tr>
<template v-for="(item, index) in data.students">
<tr v-if="index % 3 === 0" :key="index">
<td class="title">{{ index + 1 }}</td>
<td class="title">{{ item.NAME }}</td>
<td v-if="data.clazz.EXAMINATION === 0" class="title">
{{ item.STAGEEXAMSCORE > -1 ? item.STAGEEXAMSCORE : "不考试" }}
</td>
<template v-if="data.clazz.EXAMINATION === 1">
<td v-if="item.examnum > '0'" class="title">
{{ item.STAGEEXAMSCORE > -1 ? item.STAGEEXAMSCORE : "0分" }}
</td>
<td v-else class="title">
{{ item.STAGEEXAMSCORE > -1 ? item.STAGEEXAMSCORE : "未参加" }}
</td>
</template>
<td class="title">
{{ data.students[index + 1] ? index + 2 : "" }}
</td>
<td class="title">
{{
data.students[index + 1] ? data.students[index + 1].NAME : ""
}}
</td>
<td v-if="data.clazz.EXAMINATION === 0" class="title">
{{
data.students[index + 1]
? data.students[index + 1].STAGEEXAMSCORE > -1
? data.students[index + 1].STAGEEXAMSCORE
: "不考试"
: ""
}}
</td>
<template v-if="data.clazz.EXAMINATION === 1">
<td
v-if="
data.students[index + 1] &&
data.students[index + 1].examnum > '0'
"
class="title"
>
{{
data.students[index + 1]
? data.students[index + 1].STAGEEXAMSCORE > -1
? data.students[index + 1].STAGEEXAMSCORE
: "0分"
: ""
}}
</td>
<td v-else class="title">
{{
data.students[index + 1]
? data.students[index + 1].STAGEEXAMSCORE > -1
? data.students[index + 1].STAGEEXAMSCORE
: "未参加"
: ""
}}
</td>
</template>
<td class="title">
{{ data.students[index + 2] ? index + 3 : "" }}
</td>
<td class="title">
{{
data.students[index + 2] ? data.students[index + 2].NAME : ""
}}
</td>
<td v-if="data.clazz.EXAMINATION === 0" class="title">
{{
data.students[index + 2]
? data.students[index + 2].STAGEEXAMSCORE > -1
? data.students[index + 2].STAGEEXAMSCORE
: "不考试"
: ""
}}
</td>
<template v-if="data.clazz.EXAMINATION === 1">
<td
v-if="
data.students[index + 2] &&
data.students[index + 2].examnum > '0'
"
class="title"
>
{{
data.students[index + 2]
? data.students[index + 2].STAGEEXAMSCORE > -1
? data.students[index + 2].STAGEEXAMSCORE
: "0分"
: ""
}}
</td>
<td v-else class="title">
{{
data.students[index + 2]
? data.students[index + 2].STAGEEXAMSCORE > -1
? data.students[index + 2].STAGEEXAMSCORE
: "未参加"
: ""
}}
</td>
</template>
</tr>
</template>
</table>
</div>
<template #footer>
<el-button @click="fnClose"></el-button>
</template>
</el-dialog>
</template>
<script setup>
import { reactive, watchEffect } from "vue";
import { ElMessageBox } from "element-plus";
import {
getStudentSigns,
downloadStudentsumtableAsTraffic,
} from "@/request/training_archive_management.js";
const props = defineProps({
type: {
type: Number,
required: true,
},
title: {
type: String,
required: true,
},
clazzId: {
type: String,
required: true,
},
corpInfoId: {
type: String,
required: true,
},
});
const data = reactive({
clazz: {},
pd: {},
students: [],
});
const emits = defineEmits(["update:type"]);
const fnGetData = async () => {
const resData = await getStudentSigns({
CORPINFO_ID: props.corpInfoId,
CLASS_ID: props.clazzId,
});
data.clazz = Object.assign({}, resData.clazz);
data.pd = Object.assign({}, resData.rpd);
data.students = resData.studentList;
};
const fnExport = async () => {
await ElMessageBox.confirm("确定要导出吗?", { type: "warning" });
await downloadStudentsumtableAsTraffic({
CLASS_ID: props.clazzId,
CORPINFO_ID: props.corpInfoId,
});
await ElMessageBox.confirm("导出后请前往档案下载中下载该档案!", "温馨提示", {
type: "info",
});
};
watchEffect(() => {
if (props.type === 113) fnGetData();
});
const fnClose = () => {
emits("update:type", 0);
};
</script>
<style scoped lang="scss">
.flex {
display: flex;
align-items: center;
justify-content: space-between;
}
</style>

View File

@ -0,0 +1,187 @@
<template>
<el-dialog
:title="title"
:model-value="type === 112"
width="1100px"
@close="fnClose"
>
<div class="tr mb">
<el-button type="primary" @click="fnExport"></el-button>
</div>
<div id="printContent" class="newform">
<h2 class="tc">安全知识培训签到表</h2>
<table class="mt print_table">
<tr>
<td class="title" colspan="2">培训主题</td>
<td class="title" colspan="7">{{ data.info.CURRICULUMNAMES }}</td>
</tr>
<tr>
<td class="title" colspan="2">培训时间</td>
<td class="title" colspan="3">
{{ dayjs(data.clazz.START_TIME).format("YYYY年MM月DD日") }}
</td>
<td class="title" colspan="1"> </td>
<td class="title" colspan="3">{{ data.clazz.CORP_NAME }}</td>
</tr>
<tr>
<td class="title" style="width: 11%">序号</td>
<td class="title" style="width: 11%">姓名</td>
<td class="title" style="width: 11%">签字</td>
<td class="title" style="width: 11%">序号</td>
<td class="title" style="width: 11%">姓名</td>
<td class="title" style="width: 11%">签字</td>
<td class="title" style="width: 11%">序号</td>
<td class="title" style="width: 11%">姓名</td>
<td class="title" style="width: 11%">签字</td>
</tr>
<template v-for="(item, index) in data.students">
<tr v-if="index % 3 === 0" :key="index">
<td class="title">{{ index + 1 }}</td>
<td class="title">{{ item.NAME }}</td>
<td class="title">
<viewer v-if="item.SIGNATURE_PATH">
<img
:src="FILE_URL.fileUrl + item.SIGNATURE_PATH"
alt=""
width="80"
height="50"
/>
</viewer>
</td>
<td class="title">
{{ data.students[index + 1] ? index + 2 : "" }}
</td>
<td class="title">
{{
data.students[index + 1] ? data.students[index + 1].NAME : ""
}}
</td>
<td class="title">
<viewer
v-if="
data.students[index + 1] &&
data.students[index + 1].SIGNATURE_PATH
"
>
<img
:src="
FILE_URL.fileUrl + data.students[index + 1].SIGNATURE_PATH
"
alt=""
width="80"
height="50"
style="background-color: #ffffff"
/>
</viewer>
</td>
<td class="title">
{{ data.students[index + 2] ? index + 3 : "" }}
</td>
<td class="title">
{{
data.students[index + 2] ? data.students[index + 2].NAME : ""
}}
</td>
<td class="title">
<viewer
v-if="
data.students[index + 2] &&
data.students[index + 2].SIGNATURE_PATH
"
>
<img
:src="
FILE_URL.fileUrl + data.students[index + 2].SIGNATURE_PATH
"
alt=""
width="80"
height="50"
style="background-color: #ffffff"
/>
</viewer>
</td>
</tr>
</template>
</table>
</div>
<template #footer>
<el-button @click="fnClose"></el-button>
</template>
</el-dialog>
</template>
<script setup>
import { reactive, watchEffect } from "vue";
import { ElMessageBox } from "element-plus";
import dayjs from "dayjs";
import {
getStudentSigns,
downloadSignAsTraffic,
} from "@/request/training_archive_management.js";
const props = defineProps({
type: {
type: Number,
required: true,
},
title: {
type: String,
required: true,
},
clazzId: {
type: String,
required: true,
},
corpInfoId: {
type: String,
required: true,
},
postName: {
type: String,
default() {
return "";
},
},
enterpriseId: {
type: String,
default() {
return "";
},
},
});
const FILE_URL = import.meta.env.VITE_FILE_URL;
const data = reactive({
clazz: {},
checkList: [],
info: {},
students: [],
POST_NAME: props.postName,
});
const emits = defineEmits(["update:type"]);
const fnGetData = async () => {
const resData = await getStudentSigns({
CORPINFO_ID: props.corpInfoId,
CLASS_ID: props.clazzId,
});
data.info = resData.rpd;
data.students = resData.studentList;
data.clazz = resData.clazz;
};
watchEffect(() => {
if (props.type === 112) fnGetData();
});
const fnExport = async () => {
await ElMessageBox.confirm("确定要导出吗?", { type: "warning" });
await downloadSignAsTraffic({
CLASS_ID: props.clazzId,
CORPINFO_ID: props.corpInfoId,
});
await ElMessageBox.confirm("导出后请前往档案下载中下载该档案!", "温馨提示", {
type: "info",
});
};
const fnClose = () => {
emits("update:type", 0);
};
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,245 @@
<template>
<el-dialog
:title="title"
:model-value="type === 110"
width="1100px"
@close="fnClose"
>
<div class="tr mb">
<el-button type="primary" @click="fnExport"></el-button>
</div>
<div id="printContent" class="newform">
<div class="h1" />
<table class="archive_print_table">
<tr>
<td class="title" width="20%">培训时间</td>
<td width="20%">{{ data.info.START_TIME }}</td>
<td class="title" width="20%">培训地点</td>
<td width="20%">{{ data.info.CORP_NAME }}</td>
<td class="title" width="20%">培训对象</td>
<td width="20%">{{ data.info.POST_NAME }}</td>
</tr>
<tr>
<td class="title" width="20%"> </td>
<td width="20%">{{ data.info.TEACHERNAME }}</td>
<td class="title" width="20%">培训课时</td>
<td width="20%">{{ data.info.CLASSHOUR }}</td>
<td class="title" width="20%">组织部门</td>
<td width="20%">{{ data.info.PLAN_DEPARTMENT }}</td>
</tr>
<tr>
<td class="title" width="20%">应到人数</td>
<td width="20%">{{ data.info.stuYDNum }}</td>
<td class="title" width="20%">实到人数</td>
<td width="20%">{{ data.info.stuSDNum }}</td>
<td class="title" width="20%">线上培训人数</td>
<td width="20%">{{ data.info.stuSDNum }}</td>
</tr>
<tr>
<td colspan="2" class="title" width="20%">培训主题</td>
<td colspan="4" width="20%">{{ data.info.COURSEWARENAME }}</td>
</tr>
<tr>
<td colspan="6" width="20%" style="height: 300px">
<b>培训内容</b><br />
<dl
v-for="(item, index) in data.curList"
:key="index"
class="standard-dl"
>
<div v-for="(cha, i) in item.chapterList" :key="i" class="item">
<div v-if="item.CATALOGUELEVEL === '1'">
<dt>{{ i + 1 }}.{{ cha.CHAPTER_NAME }}</dt>
<dd>课件描述 {{ cha.COURSEWAREINTRODUCE }}</dd>
</div>
<div v-else-if="item.CATALOGUELEVEL === '2'">
<dt>{{ i + 1 }}.{{ cha.CHAPTER_NAME }}</dt>
<div
v-for="(video, j) in cha.nodes"
:key="j"
class="item-nodes"
>
<dd>{{ j + 1 }}.{{ video.CHAPTER_NAME }}</dd>
<dd>课件描述 {{ video.COURSEWAREINTRODUCE }}</dd>
</div>
</div>
</div>
</dl>
</td>
</tr>
<tr>
<td rowspan="2" class="title" width="20%">培训效果评估</td>
<td colspan="5" width="20%">
<p>
培训内容编制是否符合行业要求 &nbsp;&nbsp;&nbsp;<el-radio
v-model="data.form.IS_SELECT1"
label="是"
/><el-radio v-model="data.form.IS_SELECT1" label="否" />
</p>
<p>
员工是否能够理解培训内容
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<el-radio
v-model="data.form.IS_SELECT2"
label="是"
/><el-radio v-model="data.form.IS_SELECT2" label="否" />
</p>
<p>
是否结合公司实际情况或行业案例
<el-radio v-model="data.form.IS_SELECT3" label="是" /><el-radio
v-model="data.form.IS_SELECT3"
label="否"
/>
</p>
<p>
是否完成规定课时达到培训目标
<el-radio v-model="data.form.IS_SELECT4" label="是" /><el-radio
v-model="data.form.IS_SELECT4"
label="否"
/>
</p>
</td>
</tr>
<tr>
<td colspan="5" width="20%">
<p style="line-height: 30px">
是否需要制定整改措施
<el-radio v-model="data.form.IS_SELECT5" label="是" /><el-radio
v-model="data.form.IS_SELECT5"
label="否"
/>
<span>
<viewer
v-if="data.info.SAFETYDEPTOR_URL"
style="float: right; margin-right: 50%"
>
评估人<img
:src="FILE_URL + data.info.SAFETYDEPTOR_URL"
style="vertical-align: middle"
alt=""
width="70"
height="30"
/>
</viewer>
</span>
</p>
</td>
</tr>
<tr>
<td class="title" width="20%">培训不足整改措施</td>
<td colspan="5" width="20%">
<el-input v-model="data.form.MEASURE" style="width: 100%" />
<br />
<span>
<viewer
v-if="data.info.SAFETYDEPTOR_URL"
style="float: right; margin-right: 50%"
>
制定人<img
:src="FILE_URL + data.info.SAFETYDEPTOR_URL"
style="vertical-align: middle"
alt=""
width="70"
height="30"
/>
</viewer>
</span>
</td>
</tr>
</table>
</div>
<template #footer>
<el-button type="primary" @click="fnSubmit"></el-button>
<el-button @click="fnClose"></el-button>
</template>
</el-dialog>
</template>
<script setup>
import { reactive, watchEffect } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
import {
getAllCourseware,
downloadTrainingAsTraffic,
editTraining,
} from "@/request/training_archive_management.js";
import { debounce } from "throttle-debounce";
const props = defineProps({
type: {
type: Number,
required: true,
},
title: {
type: String,
required: true,
},
clazzId: {
type: String,
required: true,
},
corpinfoId: {
type: String,
required: true,
},
});
const FILE_URL = import.meta.env.VITE_FILE_URL;
const data = reactive({
info: {},
curList: [],
form: {},
});
const emits = defineEmits(["update:type"]);
const fnGetData = async () => {
const resData = await getAllCourseware({
CLASS_ID: props.clazzId,
});
data.info = resData.data;
data.curList = resData.curList;
data.form = resData.trainingData;
};
watchEffect(() => {
if (props.type === 110) fnGetData();
});
const fnSubmit = debounce(
1000,
async () => {
data.form.CLASS_ID = props.clazzId;
await editTraining({ ...data.form });
ElMessage.success("保存成功");
fnClose();
},
{ atBegin: true }
);
const fnExport = async () => {
await downloadTrainingAsTraffic({
CLASS_ID: props.clazzId,
CORPINFO_ID: props.corpinfoId,
});
await ElMessageBox.confirm("导出后请前往档案下载中下载该档案!", "温馨提示", {
type: "info",
});
};
const fnClose = () => {
emits("update:type", 0);
};
</script>
<style scoped lang="scss">
.flex {
width: 80%;
display: flex;
justify-content: space-between;
}
.item {
padding: 15px 0;
/*border-bottom: 1px solid #ddd;*/
.item-nodes {
padding: 5px 0;
/*border-bottom: 1px solid #ccc;*/
/*&:last-child{*/
/* border-bottom: none;*/
/*}*/
}
}
</style>

View File

@ -72,6 +72,7 @@
CORP_NAME: row.CORP_NAME,
CLASS_NAME: row.NAME,
CORPINFO_ID: row.CORPINFO_ID,
TRAINTYPE: row.TRAINTYPE,
},
})
"

View File

@ -394,6 +394,32 @@
>
生产经营单位从业人员年度安全再培训考核记录
</template>
<!-- 培训类型是交通运输 start-->
<!-- 岗位类型三级教育-->
<template
v-else-if="
data.classInfo.POSTTYPE === 'd476966c4ddd485d9cd55fd9af56fda2'
"
>
{{ data.classInfo.TRAINLEVEL_NAME }}安全培训考核记录
</template>
<!-- 岗位类型年度再培训-->
<template
v-else-if="
data.classInfo.POSTTYPE === '316179c2538946af97675c92e0b16f5c'
"
>
生产经营单位从业人员年度安全再培训考核记录
</template>
<!-- 岗位类型调岗和重新上岗培训-->
<template
v-else-if="
data.classInfo.POSTTYPE === 'bb5170f52dcd4183aa67a2053163ae29'
"
>
生产经营单位从业人员{{ classInfo.POSTTYPE_NAME }}考核记录
</template>
<!-- 培训类型是交通运输 end-->
</h2>
<div class="flex mb">
<span>
@ -424,7 +450,7 @@
<td>工种</td>
<td>{{ data.classInfo.POST_NAME }}</td>
<td>行业类别</td>
<td>{{ data.classInfo.CORP_TYPE_NAME }}</td>
<td>{{ data.classInfo.INDUSTRY_TYPE_NAME }}</td>
<td>联系电话</td>
<td>{{ data.classInfo.PHONE }}</td>
</tr>
@ -501,8 +527,15 @@
</td>
<td>{{ CORP_NAME }}</td>
<td>{{ item.COURSEWARENAME }}</td>
<!--<td>{{ item.CLASSHOUR }}学时</td>-->
<td>1学时</td>
<td
v-if="
data.classInfo.TRAINTYPE ===
'bd2a3b7767db49968e26cfccc3c2b4a4'
"
>
{{ item.CLASSHOUR }}学时
</td>
<td v-else>1</td>
<td>{{ item.TEACHERNAME }}</td>
<td v-if="index === 0" :rowspan="data.videoList.length + 1">
<template v-if="data.classInfo.EXAMINATION === 0" />

View File

@ -44,7 +44,7 @@
<td>工种</td>
<td>{{ data.evaluationDialogForm.POST_NAME }}</td>
<td>行业类别</td>
<td>{{ data.evaluationDialogForm.CORP_TYPE_NAME }}</td>
<td>{{ data.evaluationDialogForm.INDUSTRY_TYPE_NAME }}</td>
<td>联系电话</td>
<td>{{ data.evaluationDialogForm.PHONE }}</td>
</tr>

View File

@ -230,6 +230,14 @@
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="组织部门" prop="PLAN_DEPARTMENT">
<el-input
v-model="data.form.PLAN_DEPARTMENT"
placeholder="请输入内容"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="四色图类型">
<el-radio v-model="data.form.FOURTYPE" :label="1">
@ -586,6 +594,7 @@ const data = reactive({
SCALE_TYPE: "",
INDUSTRY_TYPE: "",
USERS_NUM: "",
PLAN_DEPARTMENT: "",
FOURTYPE: "",
four_images: [],
bus_images: [],

View File

@ -76,11 +76,14 @@
<template v-if="data.info.SCALE_TYPE === 1"></template>
</el-descriptions-item>
<el-descriptions-item label="培训行业类型">
{{ data.info.INDUSTRY_NAME }}
{{ data.info.INDUSTRY_TYPE_NAME }}
</el-descriptions-item>
<el-descriptions-item label="企业可新建用户数量">
{{ data.info.USERS_NUM }}
</el-descriptions-item>
<el-descriptions-item label="组织部门">
{{ data.info.PLAN_DEPARTMENT }}
</el-descriptions-item>
<el-descriptions-item
v-if="data.info.FOURTYPE === 1"
label="四色图"

View File

@ -175,7 +175,7 @@ const fnComplete = debounce(
1000,
async () => {
await ElMessageBox.confirm(
"完成之后将开班,只能新增学员,不能再进行其它更改,确认继续吗?",
"完成之后将开班,不能再进行其它更改,确认继续吗?",
{
type: "warning",
}