forked from integrated_whb/integrated_whb_vue
✨ 教育培训-档案管理-一期一档/一企一档-剩余档案编辑
parent
382f6fa062
commit
faeb08ff24
|
@ -274,6 +274,30 @@ export default [
|
|||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: "/archives/semester",
|
||||
meta: { title: "一期一档", isSubMenu: false },
|
||||
component: "children",
|
||||
children: [
|
||||
{
|
||||
path: "",
|
||||
component: "archives/semester/index",
|
||||
},
|
||||
{
|
||||
path: "/archives/semester/catalogue",
|
||||
meta: {
|
||||
title: "档案目录",
|
||||
activeMenu: "/archives/semester",
|
||||
},
|
||||
component: "archives/corp/catalogue",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: "/archives/corp",
|
||||
meta: { title: "一企一档", isSubMenu: false },
|
||||
component: "archives/corp/index",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
|
|
|
@ -4,7 +4,8 @@ export const getUserList = (params) => post("/user/list", params); // 档案管
|
|||
|
||||
export const getUserInfo = (params) => post("/user/goEditUser", params); // 档案管理-一人一档-获取人员详情
|
||||
|
||||
export const getTaskList = (params) => post("/studytask/userlist", params); // 档案管理-一人一档-获取任务详情列表
|
||||
export const getTaskListByUser = (params) =>
|
||||
post("/studytask/userlist", params); // 档案管理-一人一档-获取任务详情列表
|
||||
|
||||
export const getStudyTaskInfo = (params) => post("/studytask/goEdit", params); // 档案管理-一人一档-档案详情-获取任务信息
|
||||
|
||||
|
@ -19,3 +20,5 @@ export const getSignByStudyTask = (params) =>
|
|||
|
||||
export const getUserExamScoreByStudyTaskId = (params) =>
|
||||
post("/stageexam/getUserExamScoreByStudystaskId", params); // 档案管理-一人一档-档案详情-???
|
||||
|
||||
export const getTaskList = (params) => post("/studytask/list", params); // 档案管理-一期一档-获取任务列表
|
||||
|
|
|
@ -0,0 +1,79 @@
|
|||
<template>
|
||||
<div>
|
||||
<layout-table :data="catalogueList" :show-pagination="false">
|
||||
<el-table-column show-overflow-tooltip prop="NAME" label="目录" />
|
||||
<el-table-column label="操作">
|
||||
<template v-slot>
|
||||
<el-button type="primary" text link> 编辑 </el-button>
|
||||
<!-- todo -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</layout-table>
|
||||
<edit v-model:visible="data.editVisible" />
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import LayoutTable from "@/components/table/index.vue";
|
||||
import edit from "./components/edit.vue";
|
||||
import { computed, reactive } from "vue";
|
||||
import { useVModels } from "@vueuse/core";
|
||||
import { useRoute } from "vue-router";
|
||||
|
||||
const props = defineProps({
|
||||
source: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: "", // 来源: corp=一企一档, semester=一期一档 如果不传会从路由中获取一次
|
||||
},
|
||||
year: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: "",
|
||||
},
|
||||
});
|
||||
const { source } = useVModels(props);
|
||||
|
||||
const route = useRoute();
|
||||
const { source: sourceByRoute } = route.query;
|
||||
|
||||
const data = reactive({
|
||||
editVisible: false,
|
||||
semesterList: [
|
||||
{ NAME: "安全培训教材会审表", TYPE: 5 },
|
||||
{ NAME: "培训日程安排通知/也可称为培训计划", TYPE: 101 },
|
||||
{ NAME: "安全培训教材或课程讲义", TYPE: 106 },
|
||||
{ NAME: "安全培训教育记录及签字表", TYPE: 102 },
|
||||
{ NAME: "培训影像资料", TYPE: 7 },
|
||||
{ NAME: "培训考核试卷", TYPE: 103 },
|
||||
{ NAME: "学员考核成绩统计表", TYPE: 104 },
|
||||
{ NAME: "本期综合考评报告", TYPE: 105 },
|
||||
{ NAME: "与培训机构签订的服务合同或者协议复印件", TYPE: 6 },
|
||||
],
|
||||
corpList: [
|
||||
{ NAME: "安全培训教育制度", TYPE: 1 },
|
||||
{ NAME: "关于任命安全教育主管部门和人员的文件", TYPE: 2 },
|
||||
{ NAME: "三岗人员管理台账", TYPE: 101 },
|
||||
{ NAME: "培训需求调查表", TYPE: 3 },
|
||||
{ NAME: "本单位师资管理台账", TYPE: 102 },
|
||||
{ NAME: "年度安全培训教育计划", TYPE: 103 },
|
||||
{ NAME: "年度安全培训教育管理台账", TYPE: 104 },
|
||||
{ NAME: "年度培训资金提取和使用情况管理台账", TYPE: 105 },
|
||||
{ NAME: "培训条件证明材料", TYPE: 4 },
|
||||
],
|
||||
});
|
||||
|
||||
const catalogueList = computed(() => {
|
||||
let sourceTemp = "";
|
||||
if (!source.value || source.value.length < 1) {
|
||||
sourceTemp = sourceByRoute;
|
||||
} else {
|
||||
sourceTemp = source.value;
|
||||
}
|
||||
if (sourceTemp === "corp") {
|
||||
return data.corpList;
|
||||
} else if (sourceTemp === "semester") {
|
||||
return data.semesterList;
|
||||
}
|
||||
return [];
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,3 @@
|
|||
<template>
|
||||
<div>todo</div>
|
||||
</template>
|
|
@ -0,0 +1,40 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-form :model="data.form" label-width="80px">
|
||||
<el-row>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="企业名称:" prop="KEYWORDS">
|
||||
<span style="color: white">{{ CORP_NAME }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="年份:" prop="YEAR">
|
||||
<el-date-picker
|
||||
v-model="data.form.year"
|
||||
value-format="YYYY"
|
||||
format="YYYY"
|
||||
type="year"
|
||||
clearable
|
||||
placeholder="请选择年份"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<catalogue source="corp" />
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { reactive } from "vue";
|
||||
import { useUserStore } from "@/pinia/user.js";
|
||||
import Catalogue from "@/views/archives/corp/catalogue.vue";
|
||||
|
||||
const userStore = useUserStore();
|
||||
const CORP_NAME = userStore.getUserInfo.CORP_NAME;
|
||||
|
||||
const data = reactive({
|
||||
form: {
|
||||
year: String(new Date().getFullYear()),
|
||||
},
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,154 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
<el-form
|
||||
:model="searchForm"
|
||||
label-width="100px"
|
||||
@submit.prevent="fnResetPagination"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="课程名称" prop="KEYWORDS">
|
||||
<el-input
|
||||
v-model="searchForm.KEYWORDS"
|
||||
placeholder="请输入课程名称"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="开始时间" prop="STARTTIME">
|
||||
<el-date-picker
|
||||
v-model="searchForm.STARTTIME"
|
||||
value-format="YYYY-MM-DD"
|
||||
format="YYYY-MM-DD"
|
||||
type="date"
|
||||
clearable
|
||||
placeholder="请选择开始时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="结束时间" prop="ENDTIME">
|
||||
<el-date-picker
|
||||
v-model="searchForm.ENDTIME"
|
||||
value-format="YYYY-MM-DD"
|
||||
format="YYYY-MM-DD"
|
||||
type="date"
|
||||
clearable
|
||||
placeholder="请选择结束时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="状态" prop="STATUS">
|
||||
<el-select
|
||||
v-model="searchForm.STATUS"
|
||||
clearable
|
||||
placeholder="请选择状态"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in data.statusList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label-width="10px">
|
||||
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||
<el-button native-type="reset" @click="fnResetPagination">
|
||||
重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<layout-card>
|
||||
<layout-table
|
||||
:data="list"
|
||||
@get-data="fnGetData"
|
||||
v-model:pagination="pagination"
|
||||
>
|
||||
<el-table-column label="序号" width="60">
|
||||
<template #default="{ $index }">
|
||||
{{ serialNumber(pagination, $index) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
prop="STUDY_NAME"
|
||||
label="课程名称"
|
||||
/>
|
||||
<el-table-column prop="PEIXUE_START_TIME" label="开始时间" />
|
||||
<el-table-column prop="PEIXUE_END_TIME" label="结束时间" />
|
||||
<el-table-column prop="CURRICULUMUSERS" label="状态">
|
||||
<template v-slot="{ row }">
|
||||
{{ fnCompareDate(row) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" width="140">
|
||||
<template v-slot>
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="
|
||||
router.push({
|
||||
path: '/archives/semester/catalogue',
|
||||
query: {
|
||||
source: 'semester',
|
||||
},
|
||||
})
|
||||
"
|
||||
>
|
||||
档案目录
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</layout-table>
|
||||
</layout-card>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { reactive } from "vue";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import { getTaskList } from "@/request/archives.js";
|
||||
import LayoutCard from "@/components/card/index.vue";
|
||||
import LayoutTable from "@/components/table/index.vue";
|
||||
import { serialNumber } from "@/assets/js/utils.js";
|
||||
import { useRouter } from "vue-router";
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
|
||||
useListData(getTaskList);
|
||||
|
||||
const data = reactive({
|
||||
statusList: [
|
||||
{ value: 1, label: "未开始" },
|
||||
{ value: 2, label: "进行中" },
|
||||
{ value: 3, label: "已结束" },
|
||||
],
|
||||
});
|
||||
|
||||
const fnCompareDate = (row) => {
|
||||
const currentDatetime = new Date();
|
||||
const year = currentDatetime.getFullYear();
|
||||
const month = String(currentDatetime.getMonth() + 1).padStart(2, "0");
|
||||
const day = String(currentDatetime.getDate()).padStart(2, "0");
|
||||
const dateNow = new Date(`${year}-${month}-${day}`).getTime();
|
||||
if (new Date(row.PEIXUE_START_TIME).getTime() > dateNow) {
|
||||
return "未开始";
|
||||
} else if (
|
||||
new Date(row.PEIXUE_START_TIME).getTime() <= dateNow &&
|
||||
new Date(row.PEIXUE_END_TIME).getTime() >= dateNow
|
||||
) {
|
||||
return "进行中";
|
||||
} else if (new Date(row.PEIXUE_END_TIME).getTime() <= dateNow) {
|
||||
return "已结束";
|
||||
}
|
||||
};
|
||||
</script>
|
|
@ -9,7 +9,10 @@
|
|||
<el-row>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="任务名称" prop="KEYWORDS">
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
<el-input
|
||||
v-model="searchForm.KEYWORDS"
|
||||
placeholder="请输入任务名称"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
|
@ -20,6 +23,7 @@
|
|||
format="YYYY-MM-DD"
|
||||
type="date"
|
||||
clearable
|
||||
placeholder="请选择开始时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
@ -31,12 +35,17 @@
|
|||
format="YYYY-MM-DD"
|
||||
type="date"
|
||||
clearable
|
||||
placeholder="请选择结束时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="状态" prop="STATUS">
|
||||
<el-select v-model="searchForm.STATUS" clearable>
|
||||
<el-select
|
||||
v-model="searchForm.STATUS"
|
||||
clearable
|
||||
placeholder="请选择状态"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in data.statusList"
|
||||
:key="item.value"
|
||||
|
@ -145,7 +154,7 @@
|
|||
<script setup>
|
||||
import LayoutTable from "@/components/table/index.vue";
|
||||
import LayoutCard from "@/components/card/index.vue";
|
||||
import { getTaskList } from "@/request/archives.js";
|
||||
import { getTaskListByUser } from "@/request/archives.js";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import { reactive } from "vue";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
|
@ -157,7 +166,7 @@ const route = useRoute();
|
|||
const { USER_ID } = route.query;
|
||||
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
|
||||
useListData(getTaskList, {
|
||||
useListData(getTaskListByUser, {
|
||||
otherParams: {
|
||||
STUDY_USER_ID: USER_ID,
|
||||
},
|
||||
|
|
|
@ -9,7 +9,10 @@
|
|||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="课程名称" prop="KEYWORDS">
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
<el-input
|
||||
v-model="searchForm.KEYWORDS"
|
||||
placeholder="请输入课程名称"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
|
@ -17,12 +20,13 @@
|
|||
<layout-learning-train-type
|
||||
v-model="searchForm.POSTTYPE"
|
||||
type="post"
|
||||
placeholder="请选择岗位培训类型"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="课件状态" prop="STATE">
|
||||
<el-select v-model="searchForm.STATE">
|
||||
<el-select v-model="searchForm.STATE" placeholder="请选择状态">
|
||||
<el-option
|
||||
v-for="item in data.courseStates"
|
||||
:key="item.value"
|
||||
|
|
|
@ -9,7 +9,10 @@
|
|||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="课程名称" prop="KEYWORDS">
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
<el-input
|
||||
v-model="searchForm.KEYWORDS"
|
||||
placeholder="请输入课程名称"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
|
@ -17,12 +20,13 @@
|
|||
<layout-learning-train-type
|
||||
v-model="searchForm.POSTTYPE"
|
||||
type="post"
|
||||
placeholder="请选择岗位培训类型"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="课件状态" prop="STATE">
|
||||
<el-select v-model="searchForm.STATE">
|
||||
<el-select v-model="searchForm.STATE" placeholder="请选择状态">
|
||||
<el-option
|
||||
v-for="item in data.courseStates"
|
||||
:key="item.value"
|
||||
|
|
|
@ -9,7 +9,10 @@
|
|||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="课程名称" prop="KEYWORDS">
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
<el-input
|
||||
v-model="searchForm.KEYWORDS"
|
||||
placeholder="请输入课程名称"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
|
@ -17,6 +20,7 @@
|
|||
<layout-learning-train-type
|
||||
v-model="searchForm.POSTTYPE"
|
||||
type="post"
|
||||
placeholder="请选择岗位培训类型"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
|
@ -9,7 +9,10 @@
|
|||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="试卷名称" prop="KEYWORDS">
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
<el-input
|
||||
v-model="searchForm.KEYWORDS"
|
||||
placeholder="请输入试卷名称"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
|
@ -17,6 +20,7 @@
|
|||
<layout-learning-train-type
|
||||
v-model="searchForm.POSTTYPE"
|
||||
type="post"
|
||||
placeholder="请选择岗位培训类型"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
Loading…
Reference in New Issue