Merge remote-tracking branch 'origin/dev' into dev

dev
WenShiJun 2024-03-30 17:42:42 +08:00
commit 287ca601e4
16 changed files with 237 additions and 71 deletions

View File

@ -4,7 +4,7 @@
<el-form
:model="searchForm"
label-width="80px"
@submit.prevent="fnResetPagination"
@submit.prevent="fnResetPaginationTransfer"
>
<el-row>
<el-col :span="4">
@ -25,11 +25,14 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="获取时间" prop="DATES">
<el-form-item label="获取时间" prop="dates">
<el-date-picker
v-model="searchForm.DATES"
v-model="searchForm.dates"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
@ -49,7 +52,7 @@
<el-col :span="6">
<el-form-item label-width="10px">
<el-button type="primary" native-type="submit"> 搜索 </el-button>
<el-button native-type="reset" @click="fnResetPagination">
<el-button native-type="reset" @click="fnResetPaginationTransfer">
重置
</el-button>
</el-form-item>
@ -61,7 +64,7 @@
<layout-table
v-model:pagination="pagination"
:data="list"
@get-data="fnGetData"
@get-data="fnGetDataTransfer"
>
<el-table-column label="序号" width="60">
<template #default="{ $index }">
@ -138,6 +141,18 @@ const statusList = [
];
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getPdffileList);
const fnGetDataTransfer = () => {
fnGetData({
STARTTIME: searchForm.value.dates?.[0],
ENDTIME: searchForm.value.dates?.[1],
});
};
const fnResetPaginationTransfer = () => {
fnResetPagination({
STARTTIME: searchForm.value.dates?.[0],
ENDTIME: searchForm.value.dates?.[1],
});
};
const fnHandleDownload = (filePath) => {
window.open(FILE_URL + filePath);
};

View File

@ -413,18 +413,18 @@
<td>{{ data.classInfo.USER_ID_CARD }}</td>
<td>学历</td>
<td>{{ data.classInfo.DEGREE_OF_EDUCATION_NAME }}</td>
<td>专业</td>
<td>{{ data.classInfo.MAJOR }}</td>
<td>毕业院校及专业</td>
<td>{{ data.classInfo.UNIVERSITY }}</td>
</tr>
<tr>
<td>职务/职称</td>
<td>{{ data.classInfo.DUTIES }}</td>
<td>{{ data.classInfo.DUTIES_NAME }}</td>
<td>部门</td>
<td>{{ data.classInfo.DEPARTMENT_NAME }}</td>
<td>工种</td>
<td>{{ data.classInfo.POST_NAME }}</td>
<td>行业类别</td>
<td>{{ data.classInfo.INDUSTRY_ALL_NAME }}</td>
<td>{{ data.classInfo.CORP_TYPE_NAME }}</td>
<td>联系电话</td>
<td>{{ data.classInfo.PHONE }}</td>
</tr>

View File

@ -36,8 +36,8 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="状态" prop="STATUS">
<el-select v-model="searchForm.STATUS">
<el-form-item label="状态" prop="STATE">
<el-select v-model="searchForm.STATE">
<el-option
v-for="item in statusList"
:key="item.ID"
@ -167,7 +167,7 @@ import {
} from "@/request/training_archive_management.js";
import { useRoute, useRouter } from "vue-router";
import ClassFileExport from "@/views/archives_management/user/components/class_file_export.vue";
import { ElMessage } from "element-plus";
import { ElMessage, ElMessageBox } from "element-plus";
const route = useRoute();
const router = useRouter();
@ -213,21 +213,20 @@ const fnExport = () => {
const fnSubmit = async (checkArchivesList) => {
const selectionData = tableRef.value.getSelectionRows();
let cnt = 0;
if (checkArchivesList.indexOf("人员登记表") !== -1) {
selectionData.forEach((item) => {
if (
!(
item.STATE === "6" ||
(item.EXAMINATION === "1" &&
parseInt(item.STAGEEXAMSCORE) > -1 &&
parseInt(item.STUDYSTATE) !== "5") ||
(item.EXAMINATION === 0 && parseInt(item.STUDYSTATE) > 1)
)
) {
cnt = cnt + 1;
}
});
}
selectionData.forEach((item) => {
if (
!(
item.STATE === "6" ||
(item.EXAMINATION === 1 &&
parseInt(item.STAGEEXAMSCORE) > -1 &&
parseInt(item.STUDYSTATE) !== 5) ||
(item.EXAMINATION === 0 && parseInt(item.STUDYSTATE) > 1)
)
) {
cnt = cnt + 1; //
}
});
if (cnt === selectionData.length) {
ElMessage.warning("所选中的内容不符合导出条件");
} else {
@ -245,6 +244,11 @@ const fnSubmit = async (checkArchivesList) => {
curriculum: JSON.stringify(curriculum),
checkArchivesList,
});
await ElMessageBox.confirm(
"导出后请前往档案下载中下载该档案!",
"温馨提示",
{ type: "info" }
);
}
};
</script>

View File

@ -58,18 +58,6 @@
</div>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="certificate">
<span>3是否下载培训证明</span>
<div class="ml-20">
<el-switch
v-model="form.certificate"
active-text="是"
inactive-text="否"
/>
</div>
</el-form-item>
</el-col>
</el-form>
<template #footer>
<el-button @click="fnClose"></el-button>
@ -131,9 +119,6 @@ const fnSubmit = async () => {
if (form.value.register) {
form.value.checkArchivesList.push({ sort: 50, label: "人员登记表" });
}
if (form.value.certificate) {
form.value.checkArchivesList.push({ sort: 60, label: "培训证明" });
}
if (form.value.checkArchivesList.length === 0) {
ElMessage.warning("请选择要导出的项");
return;

View File

@ -33,18 +33,18 @@
<td style="width: 200px">
{{ data.evaluationDialogForm.DEGREE_OF_EDUCATION }}
</td>
<td style="width: 60px">专业</td>
<td>{{ data.evaluationDialogForm.MAJOR }}</td>
<td style="width: 60px">毕业院校及专业</td>
<td>{{ data.evaluationDialogForm.UNIVERSITY }}</td>
</tr>
<tr>
<td>职务/职称</td>
<td>{{ data.evaluationDialogForm.DUTIES }}</td>
<td>{{ data.evaluationDialogForm.DUTIES_NAME }}</td>
<td>部门</td>
<td>{{ data.evaluationDialogForm.DEPARTMENT_NAME }}</td>
<td>工种</td>
<td>{{ data.evaluationDialogForm.POST_NAME }}</td>
<td>行业类别</td>
<td>{{ data.evaluationDialogForm.INDUSTRY_ALL_NAME }}</td>
<td>{{ data.evaluationDialogForm.CORP_TYPE_NAME }}</td>
<td>联系电话</td>
<td>{{ data.evaluationDialogForm.PHONE }}</td>
</tr>

View File

@ -8,7 +8,7 @@
>
<el-row>
<el-col :span="6">
<el-form-item label="姓名" prop="STUDENTNAME">
<el-form-item label="姓名" prop="NAME">
<el-input v-model="searchForm.NAME" placeholder="请输入姓名" />
</el-form-item>
</el-col>

View File

@ -213,10 +213,10 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="培训行业类型" prop="TRAINTYPE">
<layout-learning-train-type
v-model="data.form.TRAINTYPE"
type="trainingType"
<el-form-item label="培训行业类型" prop="INDUSTRY_TYPE">
<layout-industry-type
ref="industryTypeRef"
v-model="data.form.INDUSTRY_TYPE"
/>
</el-form-item>
</el-col>
@ -475,6 +475,7 @@ const router = useRouter();
const formRef = ref(null);
const territoryCascaderRef = ref(null);
const industryCascaderRef = ref(null);
const industryTypeRef = ref(null);
const economicTypeCascaderRef = ref(null);
const rules = {
CORP_NAME: [{ required: true, message: "企业名称不能为空", trigger: "blur" }],
@ -516,7 +517,7 @@ const rules = {
message: "请输入正确的手机号码",
},
],
TRAINTYPE: [
INDUSTRY_TYPE: [
{ required: true, message: "培训行业类型不能为空", trigger: "blur" },
],
bus_images: [
@ -582,7 +583,7 @@ const data = reactive({
SUBORDINATION: "",
SCALE: "",
SCALE_TYPE: "",
TRAINTYPE: "",
INDUSTRY_TYPE: "",
USERS_NUM: "",
FOURTYPE: "",
four_images: [],
@ -621,6 +622,7 @@ const fnGetData = async () => {
data.form.four_images = addingPrefixToFile(resData.fourImgs);
data.form.OLDFOURTYPE = resData.pd.FOURTYPE;
data.form.FOURTYPE = resData.pd.FOURTYPE || 1;
data.form.INDUSTRY_TYPE = resData.pd.INDUSTRY_TYPE.split(",").at(-1);
};
fnGetData();
const enterpriseStatus = await layoutFnGetEnterpriseStatus();
@ -652,6 +654,7 @@ const fnSubmit = debounce(
data.form.CORP_TYPE3 = data.form.INDUSTRYALL[2] || "";
data.form.CORP_TYPE4 = data.form.INDUSTRYALL[3] || "";
data.form.CORP_TYPE_NAME = industryCascaderRef.value.getCheckedNodes();
data.form.INDUSTRY_NAME = industryTypeRef.value.getCheckedNodes();
const formData = new FormData();
Object.keys(data.form).forEach((key) => {
formData.append(key, data.form[key]);

View File

@ -76,7 +76,7 @@
<template v-if="data.info.SCALE_TYPE === 1"></template>
</el-descriptions-item>
<el-descriptions-item label="培训行业类型">
{{ data.info.TRAINTYPE_NAME }}
{{ data.info.INDUSTRY_NAME }}
</el-descriptions-item>
<el-descriptions-item label="企业可新建用户数量">
{{ data.info.USERS_NUM }}

View File

@ -350,7 +350,7 @@
<el-col :span="9">
<el-row>
<el-col :span="24">
<el-form-item label="有效期限(身份证)" prop="dates">
<el-form-item label="有效期限(身份证)" prop="dates1">
<el-date-picker
v-model="data.form.ID_CARD_VALIDITY"
type="daterange"
@ -450,7 +450,7 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="有效期限" prop="dates">
<el-form-item label="有效期限" prop="dates2">
<el-date-picker
v-model="data.form.DRIVER_LICENSE_VALIDITY"
type="daterange"
@ -559,7 +559,7 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="有效期限" prop="dates">
<el-form-item label="有效期限" prop="dates3">
<el-date-picker
v-model="data.form.QUALIFICATION_CERTIFICATE_VALIDITY"
type="daterange"
@ -779,6 +779,146 @@ const rules = {
periodStr: [
{ required: true, message: "请选择完整的排班类型", trigger: "change" },
],
ID_CARD_FRONT: [
{
required: true,
message: "请上传身份证(正面)",
trigger: "blur",
},
],
ID_CARD_BACK: [
{
required: true,
message: "请上传身份证(反面)",
trigger: "blur",
},
],
dates1: [
{
required: true,
message: "请选择有效期限(身份证)",
trigger: "change",
},
],
ID_CARD_ADDRESS: [
{
required: true,
message: "住址不能为空",
trigger: "change",
},
],
ID_CARD_ORGAN: [
{
required: true,
message: "签发机关不能为空",
trigger: "change",
},
],
DRIVER_LICENSE: [
{
required: true,
message: "驾驶证不能为空",
trigger: "change",
},
],
DRIVER_LICENSE_NO: [
{
required: true,
message: "证号不能为空",
trigger: "change",
},
],
DRIVING_MODEL_ARR: [
{
required: true,
message: "准驾车型不能为空",
trigger: "change",
},
],
DRIVING_NATIONALITY: [
{
required: true,
message: "国籍不能为空",
trigger: "change",
},
],
DRIVER_LICENSE_ISSUE_DATE: [
{
required: true,
message: "初次领证日期不能为空",
trigger: "change",
},
],
dates2: [
{
required: true,
message: "请选择有效期限",
trigger: "change",
},
],
DRIVER_LICENSE_ORGAN: [
{
required: true,
message: "签发机关不能为空",
trigger: "blur",
},
],
QUALIFICATION_CERTIFICATE: [
{
required: true,
message: "从业资格证照片不能为空",
trigger: "change",
},
],
QUALIFICATION_CERTIFICATE_NATIONALITY: [
{
required: true,
message: "国籍不能为空",
trigger: "change",
},
],
QUALIFICATION_CERTIFICATE_NO: [
{
required: true,
message: "证号不能为空",
trigger: "change",
},
],
QUALIFICATION_CERTIFICATE_ARR: [
{
required: true,
message: "准驾车型不能为空",
trigger: "change",
},
],
QUALIFICATION_CERTIFICATE_ISSUE_DATE: [
{
required: true,
message: "初次领证日期不能为空",
trigger: "change",
},
],
dates3: [
{
required: true,
message: "请选择有效期限",
trigger: "change",
},
],
QUALIFICATION_CERTIFICATE_ORGAN: [
{
required: true,
message: "签发机关不能为空",
trigger: "blur",
},
],
faceFile: [
{
required: true,
message: "人员认证照片不能为空",
trigger: "blur",
},
],
};
const formRef = ref(null);
const data = reactive({

View File

@ -260,6 +260,7 @@ const form = ref({
ENGINE_NUMBER: "",
VEHICLE_MODEL: "",
TRANSACTION_DATE: "",
FREIGHTTRAILER_ID: "",
VEHICLE: {
VEHICLEOWNER: "",
VEHICLEOWNER_NUMBER: "",
@ -287,6 +288,7 @@ const fnEditVehicleModel = async () => {
} else if (form.value.SCRAP_VEHICLEMODEL === "货运挂车") {
form.value.ALLVEHICLE = getAllFrailerList.varList;
form.value.FREIGHTVEHICLELIST = form.value.ALLVEHICLE;
console.log();
}
};
const info = ref({});
@ -334,6 +336,8 @@ const fnGetVehicleInfo = async () => {
form.value.FREIGHTVEHICLELIST[i].PLATE_NUMBER ===
form.value.SCRAP_VEHICLE
) {
form.value.FREIGHTTRAILER_ID =
form.value.FREIGHTVEHICLELIST[i].FREIGHTTRAILER_ID
form.value.VEHICLE.VEHICLEOWNER =
form.value.FREIGHTVEHICLELIST[i].CAR_OWNERS;
form.value.VEHICLE.VEHICLEOWNER_NUMBER =
@ -389,6 +393,7 @@ const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
console.log("form.value",form.value);
await setScrapManageAdd({ ...form.value });
ElMessage.success("提交成功");
router.back();

View File

@ -29,7 +29,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="培训类型" prop="TRAINTYPE">
<layout-learning-train-type
<layout-
ref="trainingTypeRef"
v-model="data.form.TRAINTYPE"
type="trainingType"

View File

@ -379,4 +379,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

@ -69,7 +69,7 @@
prop="EXAMNAME"
show-overflow-tooltip
/>
<el-table-column label="上传时间" prop="CREATTIME" width="150" />
<el-table-column label="创建时间" prop="CREATTIME" width="150" />
<el-table-column label="满分" prop="EXAMSCORE" width="150" />
<el-table-column label="合格分数" prop="PASSSCORE" width="150" />
<el-table-column label="试卷类型" width="150">

View File

@ -60,7 +60,7 @@
<layout-learning-train-type
v-model="searchForm.TRAINLEVEL"
type="trainingLevel"
:search-value="searchForm.TRAINTYPE"
:search-value="searchForm.POSTTYPE"
/>
</el-form-item>
</el-col>
@ -91,7 +91,7 @@
prop="CURRICULUMNAME"
show-overflow-tooltip
/>
<el-table-column label="上传时间" prop="CREATTIME" width="150" />
<el-table-column label="创建时间" prop="CREATTIME" width="150" />
<el-table-column label="行业类型">
<template #default="{ row }">
{{ row.INDUSTRY_END_NAME || row.INDUSTRY_ALL_NAME }}

View File

@ -8,7 +8,7 @@
>
<el-row>
<el-col :span="5">
<el-form-item label="课名称" prop="KEYWORDS">
<el-form-item label="课名称" prop="KEYWORDS">
<el-input v-model="searchForm.KEYWORDS" />
</el-form-item>
</el-col>
@ -65,7 +65,7 @@
prop="COURSEWARENAME"
show-overflow-tooltip
/>
<el-table-column label="上传时间" prop="CREATTIME" width="150" />
<el-table-column label="创建时间" prop="CREATTIME" width="150" />
<el-table-column label="行业类型" prop="INDUSTRY_END_NAME" />
<el-table-column label="培训类型" prop="TRAININGTYPE_NAME" />
<el-table-column label="岗位类型" prop="POSTTYPE_NAME" />

View File

@ -6,7 +6,7 @@
{{ data.info.COURSEWARENAME }}
</el-descriptions-item>
<el-descriptions-item label="培训类型">
{{ data.info.TYPENAME }}
{{ data.info.TRAININGTYPE_NAME }}
</el-descriptions-item>
<el-descriptions-item label="讲师名称">
{{ data.info.SPEAKERNAME }}
@ -18,13 +18,9 @@
</el-button>
</el-descriptions-item>
<el-descriptions-item label="课件截图">
<img
v-viewer
:src="data.info.VIDEOCAPTURE"
alt=""
width="100"
height="100"
/>
<viewer v-if="data.info.VIDEOCAPTURE">
<img :src="data.info.VIDEOCAPTURE" alt="" width="100" height="100" />
</viewer>
</el-descriptions-item>
<el-descriptions-item label="课件描述">
{{ data.info.COURSEWAREINTRODUCE }}