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

# Conflicts:
#	src/views/mechanical_files/production_accident/add.vue
dev
xiepeng 2024-03-27 18:17:57 +08:00
commit 5f167d98da
41 changed files with 379 additions and 113 deletions

View File

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

View File

@ -25,7 +25,7 @@ export const setClassFinish = (params) => post("/class/finish", params); // 班
export const setClassManagementDelay = (params) => export const setClassManagementDelay = (params) =>
post("/class/postpone", params); // 班级管理延期 post("/class/postpone", params); // 班级管理延期
export const getPersonnelList = (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 getClassManagementView = (params) => post("/class/goEdit", params); // 班级管理查看
export const setClassManagementAdd = (params) => post("/class/add", params); // 班级管理添加 export const setClassManagementAdd = (params) => post("/class/add", params); // 班级管理添加
export const setClassManagementEdit = (params) => post("/class/edit", params); // 班级管理修改 export const setClassManagementEdit = (params) => post("/class/edit", params); // 班级管理修改

View File

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

View File

@ -77,6 +77,11 @@ const props = defineProps({
required: true, required: true,
default: () => {}, default: () => {},
}, },
curriculumId: {
type: String,
required: true,
default: "",
},
}); });
const emits = defineEmits(["update:visible", "update:form", "get-data"]); const emits = defineEmits(["update:visible", "update:form", "get-data"]);
const { visible, form } = useVModels(props, emits); const { visible, form } = useVModels(props, emits);
@ -121,8 +126,13 @@ const fnSubmit = debounce(
Object.keys(props.outerLayerForm).forEach((key) => { Object.keys(props.outerLayerForm).forEach((key) => {
formData.append(key, props.outerLayerForm[key]); formData.append(key, props.outerLayerForm[key]);
}); });
console.log(props.outerLayerForm);
formData.append("REVIEW_USER", form.value.REVIEW_USER); 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("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 && form.value.ARCHIVES_REVIEW_RECORD_ID &&
formData.append( formData.append(
"ARCHIVES_REVIEW_RECORD_ID", "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> </style>

View File

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

View File

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

View File

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

View File

@ -696,11 +696,13 @@
>分数:{{ data.paper.EXAMSCORE || 0 }}</span >分数:{{ data.paper.EXAMSCORE || 0 }}</span
> >
<span style="line-height: 50px; margin-left: 200px" <span style="line-height: 50px; margin-left: 200px"
>签字:<img >签字:
<img
v-if="data.SIGNATURE_PATH" v-if="data.SIGNATURE_PATH"
:src="data.SIGNATURE_PATH" :src="data.SIGNATURE_PATH"
style="height: 50px; width: 120px; vertical-align: top" 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" <span style="line-height: 50px; margin-left: 200px"
>考试时间:{{ data.paper.EXAMTIMEEND }}</span >考试时间:{{ 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> </style>

View File

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

View File

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

View File

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

View File

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

View File

@ -125,6 +125,11 @@
</template> </template>
</layout-table> </layout-table>
</layout-card> </layout-card>
<layout-import-file
v-model:visible="data.importDialogVisible"
template-url="/template/truckExcelTemplate.xls"
@submit="fnSubmitImport"
/>
</div> </div>
</template> </template>
@ -139,7 +144,13 @@ import {
} from "@/request/enterprise_management.js"; } from "@/request/enterprise_management.js";
import { debounce } from "throttle-debounce"; import { debounce } from "throttle-debounce";
import { ElMessageBox, ElMessage } from "element-plus"; import { ElMessageBox, ElMessage } from "element-plus";
import { setRiskPointImport } from "@/request/risk_control.js";
import LayoutImportFile from "@/components/import_file/index.vue";
import { reactive } from "vue";
const router = useRouter(); const router = useRouter();
const data = reactive({
importDialogVisible: false,
});
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } = const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
useListData(getFreightTrailerList); useListData(getFreightTrailerList);
const fnGetDataTransfer = () => { const fnGetDataTransfer = () => {
@ -158,6 +169,21 @@ const fnResetPaginationTransfer = () => {
DEPARTMENT_NAME: searchForm.value.DEPARTMENT_NAME, DEPARTMENT_NAME: searchForm.value.DEPARTMENT_NAME,
}); });
}; };
const fnImportDialogChangeShow = () => {
data.importDialogVisible = !data.importDialogVisible;
};
const fnSubmitImport = async (formData) => {
const resData = await setRiskPointImport(formData);
if (resData.resultStr) {
ElMessage({
dangerouslyUseHTMLString: true,
message: resData.resultStr,
type: resData.resultType,
});
}
fnImportDialogChangeShow();
fnResetPaginationTransfer();
};
const fnExport = async () => { const fnExport = async () => {
const selectionData = tableRef.value.getSelectionRows(); const selectionData = tableRef.value.getSelectionRows();
if (selectionData.length === 0) { if (selectionData.length === 0) {
@ -165,7 +191,9 @@ const fnExport = async () => {
return; return;
} }
await ElMessageBox.confirm("确定要导出到excel吗", { type: "warning" }); await ElMessageBox.confirm("确定要导出到excel吗", { type: "warning" });
const DATA_IDS = selectionData.map((item) => item.RISKUNIT_ID).join(","); const DATA_IDS = selectionData
.map((item) => item.FREIGHTTRAILER_ID)
.join(",");
window.location.href = window.location.href =
import.meta.env[import.meta.env.DEV ? "VITE_PROXY" : "VITE_BASE_URL"] + import.meta.env[import.meta.env.DEV ? "VITE_PROXY" : "VITE_BASE_URL"] +
"/freightTrailer/excel?" + "/freightTrailer/excel?" +

View File

@ -33,13 +33,9 @@
<el-descriptions-item label-class-name="width_200" label="车主电话"> <el-descriptions-item label-class-name="width_200" label="车主电话">
{{ info.CAR_OWNERS_TEL }} {{ info.CAR_OWNERS_TEL }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="联系人"> <el-descriptions-item label-class-name="width_200" label="联系人">
{{ info.CONTACTS }} {{ info.CONTACTS }}
</el-descriptions-item> </el-descriptions-item>
<!-- <el-descriptions-item label-class-name="width_200" label="车主电话">-->
<!-- {{ info.CAR_OWNERS_TEL }}-->
<!-- </el-descriptions-item>-->
<el-descriptions-item label-class-name="width_200" label="联系电话"> <el-descriptions-item label-class-name="width_200" label="联系电话">
{{ info.CONTACT_PHONE }} {{ info.CONTACT_PHONE }}
</el-descriptions-item> </el-descriptions-item>

View File

@ -148,12 +148,6 @@
width="140" width="140"
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column
prop="OPERATTIME"
label="修改时间"
width="140"
show-overflow-tooltip
/>
<el-table-column label="操作" width="150"> <el-table-column label="操作" width="150">
<template #default="{ row }"> <template #default="{ row }">
<el-button <el-button

View File

@ -304,11 +304,21 @@ const rules = {
}; };
const getRemiderDate = (val) => { const getRemiderDate = (val) => {
if (val) { if (val) {
if (form.value.DUE_DATE && form.value.REMINDER_DAYS) { if (form.value.DUE_DATE) {
form.value.REMINDER_DATE = subtractDaysFromDate( //
form.value.DUE_DATE, const reminderDateStr = subtractDaysFromDate(form.value.DUE_DATE, val);
form.value.REMINDER_DAYS const reminderDate = new Date(reminderDateStr);
); const today = new Date();
//
if (reminderDate < today) {
//
ElMessage.error("输入的提醒天数错误,提醒日期不能早于当前日期。");
form.value.REMINDER_DATE = ""; //
} else {
//
form.value.REMINDER_DATE = reminderDateStr;
}
} }
} else { } else {
form.value.REMINDER_DATE = ""; form.value.REMINDER_DATE = "";

View File

@ -112,6 +112,15 @@
<el-tag v-else-if="row.DUE_DATE_TYPE === 2">即将到期</el-tag> <el-tag v-else-if="row.DUE_DATE_TYPE === 2">即将到期</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="NEW_ARCHIVES_TYPE" label="车辆状态" width="150">
<template #default="{ row }">
<el-tag v-if="row.NEW_ARCHIVES_TYPE === '1'"></el-tag>
<el-tag v-else-if="row.NEW_ARCHIVES_TYPE === '0'">正常</el-tag>
<el-tag v-else-if="row.NEW_ARCHIVES_TYPE === '2'">过户</el-tag>
</template>
</el-table-column>
<el-table-column prop="CREATTIME" label="创建时间" width="150" />
<el-table-column prop="OPERATTIME" label="修改时间" width="150" />
<el-table-column label="操作" width="250"> <el-table-column label="操作" width="250">
<template #default="{ row }"> <template #default="{ row }">
<el-button <el-button

View File

@ -17,12 +17,6 @@
<el-descriptions-item label-class-name="width_200" label="车辆类型"> <el-descriptions-item label-class-name="width_200" label="车辆类型">
{{ data.busInfo.TRAILER_TYPE }} {{ data.busInfo.TRAILER_TYPE }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车辆型号">
{{ data.busInfo.VEHICLE_MODEL }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车辆品牌">
{{ data.busInfo.VEHICLE_BRAND }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车主业户"> <el-descriptions-item label-class-name="width_200" label="车主业户">
{{ data.busInfo.CAR_OWNERS }} {{ data.busInfo.CAR_OWNERS }}
</el-descriptions-item> </el-descriptions-item>

View File

@ -352,12 +352,26 @@ const getDueDate = () => {
const getRemiderDate = (val) => { const getRemiderDate = (val) => {
if (val) { if (val) {
if (form.value.DUE_DATE) { if (form.value.DUE_DATE) {
form.value.REMINDER_DATE = subtractDaysFromDate(form.value.DUE_DATE, val); //
const reminderDateStr = subtractDaysFromDate(form.value.DUE_DATE, val);
const reminderDate = new Date(reminderDateStr);
const today = new Date();
//
if (reminderDate < today) {
//
ElMessage.error("输入的提醒天数错误,提醒日期不能早于当前日期。");
form.value.REMINDER_DATE = ""; //
} else {
//
form.value.REMINDER_DATE = reminderDateStr;
}
} }
} else { } else {
form.value.REMINDER_DATE = ""; form.value.REMINDER_DATE = "";
} }
}; };
const getVehicle = async (event) => { const getVehicle = async (event) => {
const resData = await getTrailerList({ TRAFFIC_TYPE: event }); const resData = await getTrailerList({ TRAFFIC_TYPE: event });
data.vehicleList = resData.list; data.vehicleList = resData.list;

View File

@ -410,7 +410,20 @@ const getDueDate = (val) => {
const getRemiderDate = (val) => { const getRemiderDate = (val) => {
if (val) { if (val) {
if (form.value.DUE_DATE) { if (form.value.DUE_DATE) {
form.value.REMINDER_DATE = subtractDaysFromDate(form.value.DUE_DATE, val); //
const reminderDateStr = subtractDaysFromDate(form.value.DUE_DATE, val);
const reminderDate = new Date(reminderDateStr);
const today = new Date();
//
if (reminderDate < today) {
//
ElMessage.error("输入的提醒天数错误,提醒日期不能早于当前日期。");
form.value.REMINDER_DATE = ""; //
} else {
//
form.value.REMINDER_DATE = reminderDateStr;
}
} }
} else { } else {
form.value.REMINDER_DATE = ""; form.value.REMINDER_DATE = "";

View File

@ -116,7 +116,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="维保周期" prop="MAINTENANCE_CYCLE"> <el-form-item label="维保周期(天)" prop="MAINTENANCE_CYCLE">
<el-input <el-input
v-model.number="form.MAINTENANCE_CYCLE" v-model.number="form.MAINTENANCE_CYCLE"
type="number" type="number"
@ -338,12 +338,26 @@ const getDueDate = () => {
const getRemiderDate = (val) => { const getRemiderDate = (val) => {
if (val) { if (val) {
if (form.value.DUE_DATE) { if (form.value.DUE_DATE) {
form.value.REMINDER_DATE = subtractDaysFromDate(form.value.DUE_DATE, val); //
const reminderDateStr = subtractDaysFromDate(form.value.DUE_DATE, val);
const reminderDate = new Date(reminderDateStr);
const today = new Date();
//
if (reminderDate < today) {
//
ElMessage.error("输入的提醒天数错误,提醒日期不能早于当前日期。");
form.value.REMINDER_DATE = ""; //
} else {
//
form.value.REMINDER_DATE = reminderDateStr;
}
} }
} else { } else {
form.value.REMINDER_DATE = ""; form.value.REMINDER_DATE = "";
} }
}; };
const getVehicle = async (event) => { const getVehicle = async (event) => {
const resData = await getTrailerList({ TRAFFIC_TYPE: event }); const resData = await getTrailerList({ TRAFFIC_TYPE: event });
data.vehicleList = resData.list; data.vehicleList = resData.list;

View File

@ -98,11 +98,11 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="PROCESSING_DATE" label="办理日期" width="150" /> <el-table-column prop="PROCESSING_DATE" label="办理日期" width="150" />
<el-table-column <el-table-column prop="MAINTENANCE_CYCLE" label="维保周期" width="150">
prop="MAINTENANCE_CYCLE" <template #default="{ row }">
label="维保周期" {{ row.MAINTENANCE_CYCLE + "天" }}
width="150" </template>
/> </el-table-column>
<el-table-column prop="DUE_DATE" label="到期日期" width="150" /> <el-table-column prop="DUE_DATE" label="到期日期" width="150" />
<el-table-column prop="REGISTRANT" label="登记人" width="150" /> <el-table-column prop="REGISTRANT" label="登记人" width="150" />
<!--<el-table-column prop="CONTACTS" label="经营企业" width="150"/>--> <!--<el-table-column prop="CONTACTS" label="经营企业" width="150"/>-->
@ -119,7 +119,13 @@
<el-tag v-else-if="row.DUE_DATE_TYPE === 2">即将到期</el-tag> <el-tag v-else-if="row.DUE_DATE_TYPE === 2">即将到期</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="ARCHIVES_TYPE" label="档案状态" width="150" /> <el-table-column prop="NEW_ARCHIVES_TYPE" label="车辆状态" width="150">
<template #default="{ row }">
<el-tag v-if="row.NEW_ARCHIVES_TYPE === '1'"></el-tag>
<el-tag v-else-if="row.NEW_ARCHIVES_TYPE === '0'">正常</el-tag>
<el-tag v-else-if="row.NEW_ARCHIVES_TYPE === '2'">过户</el-tag>
</template>
</el-table-column>
<el-table-column prop="CREATTIME" label="创建时间" width="150" /> <el-table-column prop="CREATTIME" label="创建时间" width="150" />
<el-table-column prop="OPERATTIME" label="修改时间" width="150" /> <el-table-column prop="OPERATTIME" label="修改时间" width="150" />
<el-table-column label="操作" width="250"> <el-table-column label="操作" width="250">

View File

@ -17,12 +17,12 @@
<el-descriptions-item label-class-name="width_200" label="车辆类型"> <el-descriptions-item label-class-name="width_200" label="车辆类型">
{{ data.busInfo.TRAILER_TYPE }} {{ data.busInfo.TRAILER_TYPE }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车辆型号"> <!-- <el-descriptions-item label-class-name="width_200" label="车辆型号">-->
{{ data.busInfo.VEHICLE_MODEL }} <!-- {{ data.busInfo.VEHICLE_MODEL }}-->
</el-descriptions-item> <!-- </el-descriptions-item>-->
<el-descriptions-item label-class-name="width_200" label="车辆品牌"> <!-- <el-descriptions-item label-class-name="width_200" label="车辆品牌">-->
{{ data.busInfo.VEHICLE_BRAND }} <!-- {{ data.busInfo.VEHICLE_BRAND }}-->
</el-descriptions-item> <!-- </el-descriptions-item>-->
<el-descriptions-item label-class-name="width_200" label="车主业户"> <el-descriptions-item label-class-name="width_200" label="车主业户">
{{ data.busInfo.CAR_OWNERS }} {{ data.busInfo.CAR_OWNERS }}
</el-descriptions-item> </el-descriptions-item>
@ -53,7 +53,7 @@
{{ info.KILOMETERS }} {{ info.KILOMETERS }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="维保周期"> <el-descriptions-item label-class-name="width_200" label="维保周期">
{{ info.MAINTENANCE_CYCLE }} {{ info.MAINTENANCE_CYCLE + "天" }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="办理日期"> <el-descriptions-item label-class-name="width_200" label="办理日期">
{{ info.PROCESSING_DATE }} {{ info.PROCESSING_DATE }}

View File

@ -319,7 +319,15 @@ const getDueDate = () => {
const getRemiderDate = (val) => { const getRemiderDate = (val) => {
if (val) { if (val) {
if (form.value.DUE_DATE) { if (form.value.DUE_DATE) {
form.value.REMINDER_DATE = subtractDaysFromDate(form.value.DUE_DATE, val); const reminderDateStr = subtractDaysFromDate(form.value.DUE_DATE, val);
const reminderDate = new Date(reminderDateStr);
const today = new Date();
if (reminderDate < today) {
ElMessage.error("输入的提醒天数错误,提醒日期不能早于当前日期。");
form.value.REMINDER_DAYS = "";
} else {
form.value.REMINDER_DATE = reminderDateStr;
}
} }
} else { } else {
form.value.REMINDER_DATE = ""; form.value.REMINDER_DATE = "";

View File

@ -98,7 +98,7 @@
{{ serialNumber(pagination, $index) }} {{ serialNumber(pagination, $index) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="OPERATIONS_ID" label="编号" width="150" /> <!-- <el-table-column prop="OPERATIONS_ID" label="编号" width="150" />-->
<el-table-column prop="VEHICLE_MODEL" label="运营车型" width="150"> <el-table-column prop="VEHICLE_MODEL" label="运营车型" width="150">
<template #default="{ row }"> <template #default="{ row }">
{{ {{
@ -133,7 +133,13 @@
<span v-else-if="row.DUE_DATE_TYPE === 2">即将到期</span> <span v-else-if="row.DUE_DATE_TYPE === 2">即将到期</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="ARCHIVES_TYPE" label="档案状态" width="150" /> <el-table-column prop="NEW_ARCHIVES_TYPE" label="车辆状态" width="150">
<template #default="{ row }">
<el-tag v-if="row.NEW_ARCHIVES_TYPE === '1'"></el-tag>
<el-tag v-else-if="row.NEW_ARCHIVES_TYPE === '0'">正常</el-tag>
<el-tag v-else-if="row.NEW_ARCHIVES_TYPE === '2'">过户</el-tag>
</template>
</el-table-column>
<el-table-column prop="CREATTIME" label="创建时间" width="150" /> <el-table-column prop="CREATTIME" label="创建时间" width="150" />
<el-table-column prop="OPERATTIME" label="修改时间" width="150" /> <el-table-column prop="OPERATTIME" label="修改时间" width="150" />
<el-table-column label="操作" width="250"> <el-table-column label="操作" width="250">

View File

@ -17,12 +17,12 @@
<el-descriptions-item label-class-name="width_200" label="车辆类型"> <el-descriptions-item label-class-name="width_200" label="车辆类型">
{{ data.busInfo.TRAILER_TYPE }} {{ data.busInfo.TRAILER_TYPE }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车辆型号"> <!-- <el-descriptions-item label-class-name="width_200" label="车辆型号">-->
{{ data.busInfo.VEHICLE_MODEL }} <!-- {{ data.busInfo.VEHICLE_MODEL }}-->
</el-descriptions-item> <!-- </el-descriptions-item>-->
<el-descriptions-item label-class-name="width_200" label="车辆品牌"> <!-- <el-descriptions-item label-class-name="width_200" label="车辆品牌">-->
{{ data.busInfo.VEHICLE_BRAND }} <!-- {{ data.busInfo.VEHICLE_BRAND }}-->
</el-descriptions-item> <!-- </el-descriptions-item>-->
<el-descriptions-item label-class-name="width_200" label="车主业户"> <el-descriptions-item label-class-name="width_200" label="车主业户">
{{ data.busInfo.CAR_OWNERS }} {{ data.busInfo.CAR_OWNERS }}
</el-descriptions-item> </el-descriptions-item>

View File

@ -402,7 +402,7 @@
<script setup> <script setup>
import { getUserListAll } from "@/request/safety_production_related.js"; import { getUserListAll } from "@/request/safety_production_related.js";
import { onMounted, reactive, ref, toRaw } from "vue"; import { reactive, ref, toRaw } from "vue";
import { ACCIDENTNATUREMENU, EDUCATIONALMENU } from "@/assets/js/constant.js"; import { ACCIDENTNATUREMENU, EDUCATIONALMENU } from "@/assets/js/constant.js";
import LayoutUpload from "@/components/upload/index.vue"; import LayoutUpload from "@/components/upload/index.vue";
import useFormValidate from "@/assets/js/useFormValidate.js"; import useFormValidate from "@/assets/js/useFormValidate.js";
@ -412,6 +412,7 @@ import {
addAccidentInvestigationView, addAccidentInvestigationView,
editAccidentInvestigation, editAccidentInvestigation,
infoAccidentInvestigation infoAccidentInvestigation
infoAccidentInvestigation,
} from "@/request/production_accident.js"; } from "@/request/production_accident.js";
// //
@ -579,6 +580,23 @@ const data = reactive({
}, },
}); });
const fnGetData = async () => {
isEditMode.value = route.query.mode === "edit";
ACCIDENTINVESTIGATION_ID.value = route.query.ACCIDENTINVESTIGATION_ID || "";
if (ACCIDENTINVESTIGATION_ID.value) {
const resData = await infoAccidentInvestigation({
ACCIDENTINVESTIGATION_ID: ACCIDENTINVESTIGATION_ID.value,
});
if (resData && resData.pd) {
Object.keys(resData.pd).forEach((key) => {
if (Object.prototype.hasOwnProperty.call(data.form, key)) {
data.form[key] = resData.pd[key];
}
});
}
}
};
fnGetData();
const fnSubmit = async () => { const fnSubmit = async () => {
await useFormValidate(formRef); await useFormValidate(formRef);
@ -589,13 +607,17 @@ const fnSubmit = async () => {
formData.append(key, value); formData.append(key, value);
}); });
data.form.fileList.forEach((file) => { if (Array.isArray(data.form.fileList)) {
if (file.raw) formData.append("FFILEONE", file.raw); data.form.fileList.forEach((file) => {
}); if (file.raw) formData.append("FFILEONE", file.raw);
});
}
data.form.ACCIDENTANALYSISRECORD.forEach((file) => { if (Array.isArray(data.form.ACCIDENTANALYSISRECORD)) {
if (file.raw) formData.append("FFILETWO", file.raw); data.form.ACCIDENTANALYSISRECORD.forEach((file) => {
}); if (file.raw) formData.append("FFILETWO", file.raw);
});
}
if (isEditMode.value && ACCIDENTINVESTIGATION_ID.value) { if (isEditMode.value && ACCIDENTINVESTIGATION_ID.value) {
formData.append("ACCIDENTINVESTIGATION_ID", ACCIDENTINVESTIGATION_ID.value); formData.append("ACCIDENTINVESTIGATION_ID", ACCIDENTINVESTIGATION_ID.value);

View File

@ -52,7 +52,7 @@
{{ serialNumber(pagination, $index) }} {{ serialNumber(pagination, $index) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="INCIDENTNUMBER" label="事故编号" width="250" /> <!-- <el-table-column prop="INCIDENTNUMBER" label="事故编号" width="250" />-->
<el-table-column prop="NAME" label="事故人员" /> <el-table-column prop="NAME" label="事故人员" />
<el-table-column prop="CORP_NAME" label="工作部门" /> <el-table-column prop="CORP_NAME" label="工作部门" />
<el-table-column prop="JOBTYPE" label="人员工种" /> <el-table-column prop="JOBTYPE" label="人员工种" />
@ -66,7 +66,7 @@
prop="WORKINJURYIDENTIFICATIONLEVEL" prop="WORKINJURYIDENTIFICATIONLEVEL"
label="工伤等级" label="工伤等级"
/> />
<el-table-column prop="CERTIFICATIONNUMBER" label="认定书编号" /> <!-- <el-table-column prop="CERTIFICATIONNUMBER" label="认定书编号" />-->
<el-table-column prop="ACCIDENTRECORDPERSON" label="事故登记人" /> <el-table-column prop="ACCIDENTRECORDPERSON" label="事故登记人" />
<el-table-column prop="ACCIDENTDATE" label="事故日期" /> <el-table-column prop="ACCIDENTDATE" label="事故日期" />
<el-table-column prop="REGISTRATIONDATE" label="登记日期" /> <el-table-column prop="REGISTRATIONDATE" label="登记日期" />

View File

@ -101,12 +101,6 @@
width="140" width="140"
show-overflow-tooltip show-overflow-tooltip
/> />
<el-table-column
prop="OPERATTIME"
label="修改时间"
width="140"
show-overflow-tooltip
/>
<el-table-column label="操作" width="150"> <el-table-column label="操作" width="150">
<template #default="{ row }"> <template #default="{ row }">
<el-button <el-button

View File

@ -49,12 +49,8 @@
placeholder="请选择到期状态" placeholder="请选择到期状态"
clearable clearable
> >
<el-option <el-option label="未到期" value="1"></el-option>
v-for="item in EXPIRE_STATUS" <el-option label="已到期" value="0"></el-option>
:key="item.NAME"
:label="item.NAME"
:value="item.NAME"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -119,14 +115,15 @@
</el-table-column> </el-table-column>
<el-table-column prop="EXPIRE_STATUS" label="到期状态"> <el-table-column prop="EXPIRE_STATUS" label="到期状态">
<template #default="{ row }"> <template #default="{ row }">
<el-tag v-if="row.EXPIRE_STATUS === '已到期'"></el-tag> <el-tag v-if="row.EXPIRE_STATUS === '0'"></el-tag>
<el-tag v-else-if="row.EXPIRE_STATUS === ''">未到期</el-tag> <el-tag v-else-if="row.EXPIRE_STATUS === '1'">未到期</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="RECORD_STATUS" label="档案状态" > <el-table-column prop="NEW_ARCHIVES_TYPE" label="车辆状态" width="150">
<template #default="{ row }"> <template #default="{ row }">
<el-tag v-if="row.RECORD_STATUS === ''"></el-tag> <el-tag v-if="row.NEW_ARCHIVES_TYPE === '1'"></el-tag>
<el-tag v-else></el-tag> <el-tag v-else-if="row.NEW_ARCHIVES_TYPE === '0'">正常</el-tag>
<el-tag v-else-if="row.NEW_ARCHIVES_TYPE === '2'">过户</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="150"> <el-table-column label="操作" width="150">
@ -188,6 +185,8 @@
<script setup> <script setup>
import { serialNumber } from "@/assets/js/utils.js"; import { serialNumber } from "@/assets/js/utils.js";
import useListData from "@/assets/js/useListData.js"; import useListData from "@/assets/js/useListData.js";
import { layoutFnGetRemindStatus } from "@/assets/js/taxation_manage.js";
import {
import { import {
getTaxationManageList, getTaxationManageList,
setTaxatonManageDelete, setTaxatonManageDelete,

View File

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

View File

@ -99,4 +99,23 @@ const fnExamDetails = async (STAGEEXAM_ID) => {
}; };
</script> </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-form-item>
</el-col> </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-col :span="6">
<el-form-item label="岗位类型" prop="POSTTYPE"> <el-form-item label="岗位类型" prop="POSTTYPE">
<layout-learning-train-type <layout-learning-train-type

View File

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

View File

@ -294,4 +294,22 @@ const fnSubmit = debounce(
flex: 1; 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> </style>

View File

@ -12,6 +12,11 @@
<el-input v-model="searchForm.STUDENT_NAME" /> <el-input v-model="searchForm.STUDENT_NAME" />
</el-form-item> </el-form-item>
</el-col> </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-col :span="6">
<el-form-item label="班级编码" prop="CODE"> <el-form-item label="班级编码" prop="CODE">
<el-input v-model="searchForm.CODE" /> <el-input v-model="searchForm.CODE" />

View File

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

View File

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