forked from integrated_whb/integrated_whb_vue
安全例会->新增列表、新增、详情页面
parent
f025e90a0a
commit
83cc22ebf8
|
@ -1,18 +1,35 @@
|
||||||
import { post,upload } from "@/request/axios.js";
|
import { post, upload } from "@/request/axios.js";
|
||||||
import {getLevelsByParentId} from "@/request/data_dictionary.js";
|
import { getLevelsByParentId } from "@/request/data_dictionary.js";
|
||||||
import {ref} from "vue";
|
import { ref } from "vue";
|
||||||
|
|
||||||
export const getSecurityNoticeList = (params) => post("/securitynotice/listForSecurityNotice", params); // 安全通知列表
|
export const getSecurityNoticeList = (params) =>
|
||||||
export const getSecurityNotice = (params) => post("/securitynotice/getAllReadDetail", params); // 阅读详情
|
post("/securitynotice/listForSecurityNotice", params); // 安全通知列表
|
||||||
export const dateteSecurityNotice = (params) => post("/securitynotice/delete", params); // 安全通知删除
|
export const getSecurityNotice = (params) =>
|
||||||
export const getSecurityNoticeInfo = (params) => post("/securitynotice/goEdit", params); // 安全通知详情
|
post("/securitynotice/getAllReadDetail", params); // 阅读详情
|
||||||
export const addSecurityNotice = (params) => upload("/securitynotice/add", params); // 添加安全通知
|
export const dateteSecurityNotice = (params) =>
|
||||||
|
post("/securitynotice/delete", params); // 安全通知删除
|
||||||
|
export const getSecurityNoticeInfo = (params) =>
|
||||||
|
post("/securitynotice/goEdit", params); // 安全通知详情
|
||||||
|
export const addSecurityNotice = (params) =>
|
||||||
|
upload("/securitynotice/add", params); // 添加安全通知
|
||||||
export const getUserListAll = (params) => post("/user/listUserByCorp", params);
|
export const getUserListAll = (params) => post("/user/listUserByCorp", params);
|
||||||
|
|
||||||
export const layoutFnGetNotificationsClassification = async () => {
|
export const layoutFnGetNotificationsClassification = async () => {
|
||||||
const resData = await getLevelsByParentId({
|
const resData = await getLevelsByParentId({
|
||||||
parentId: "aaecb47d95524b84904809671e48a777",
|
parentId: "aaecb47d95524b84904809671e48a777",
|
||||||
});
|
});
|
||||||
return ref(resData);
|
return ref(resData);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const layoutFnGetSIGNEDSTATUSClassification = async () => {
|
||||||
|
const resData = await getLevelsByParentId({
|
||||||
|
parentId: "bbecb47d95524b84904809671e48a777",
|
||||||
|
});
|
||||||
|
return ref(resData);
|
||||||
|
};
|
||||||
|
export const layoutFnGetMEETINGTYPEClassification = async () => {
|
||||||
|
const resData = await getLevelsByParentId({
|
||||||
|
parentId: "eeeec1cbabe7406083994447d00d0d4a",
|
||||||
|
});
|
||||||
|
return ref(resData);
|
||||||
|
};
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
import { post } from "@/request/axios.js";
|
||||||
|
export const getSafetyDrivingLogList = (params) =>
|
||||||
|
post("/drivinglog/listForSafetyDrivingLog", params); // 行车日志列表
|
||||||
|
|
||||||
|
export const setDrivingLogDelete = (params) =>
|
||||||
|
post("/drivinglog/delete", params); // 行车日志删除
|
||||||
|
|
||||||
|
export const getSafetyDrivingLogView = (params) =>
|
||||||
|
post("/drivinglog/goEdit", params); // 安全例会详情
|
|
@ -0,0 +1,14 @@
|
||||||
|
import { post, upload } from "@/request/axios.js";
|
||||||
|
export const getSafetyMeetingList = (params) =>
|
||||||
|
post("/safetymeeting/listForSafetyMeeting", params); // 安全例会列表
|
||||||
|
|
||||||
|
export const setSafetyMeetingDelete = (params) =>
|
||||||
|
post("/safetymeeting/delete", params); // 安全例会删除
|
||||||
|
|
||||||
|
export const getSafetyMeetingView = (params) =>
|
||||||
|
post("/safetymeeting/goEdit", params); // 安全例会详情
|
||||||
|
|
||||||
|
export const addSafetyMeetingView = (params) =>
|
||||||
|
upload("/safetymeeting/add", params); // 添加安全通知
|
||||||
|
export const getSafetyMeetingRecipient = (params) =>
|
||||||
|
post("/safetymeeting/getAllRecipient", params); // 参会人员
|
|
@ -0,0 +1,229 @@
|
||||||
|
<template>
|
||||||
|
<layout-card>
|
||||||
|
<el-form
|
||||||
|
ref="formRef"
|
||||||
|
:model="data.form"
|
||||||
|
:rules="rules"
|
||||||
|
label-width="175px"
|
||||||
|
>
|
||||||
|
<el-divider content-position="left">添加</el-divider>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="会议标题" prop="MEETING_TITLE">
|
||||||
|
<el-input
|
||||||
|
v-model="data.form.MEETING_TITLE"
|
||||||
|
placeholder="请输入会议标题"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="会议类型" prop="MEETING_TYPE">
|
||||||
|
<el-select
|
||||||
|
v-model="data.form.MEETING_TYPE"
|
||||||
|
placeholder="请选择会议类型"
|
||||||
|
@change="handleMeetingTypeChange"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in relatedClassificationList"
|
||||||
|
:key="item.BIANMA"
|
||||||
|
:label="item.NAME"
|
||||||
|
:value="item.BIANMA"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="运输企业" prop="TRANSPORTATIONCOMPANY">
|
||||||
|
<el-input
|
||||||
|
v-model="data.form.TRANSPORTATIONCOMPANY"
|
||||||
|
placeholder="请输入运输企业"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="会议地点" prop="MEETING_ADDRESS">
|
||||||
|
<el-input
|
||||||
|
v-model="data.form.MEETING_ADDRESS"
|
||||||
|
placeholder="请输入会议地点"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="10">
|
||||||
|
<el-form-item prop="MEETING_DATE" label="会议时间">
|
||||||
|
<el-date-picker
|
||||||
|
type="daterange"
|
||||||
|
v-model="data.form.MEETING_DATE"
|
||||||
|
format="YYYY-MM-DD"
|
||||||
|
value-format="YYYY-MM-DD"
|
||||||
|
start-placeholder="开始时间"
|
||||||
|
end-placeholder="结束时间"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="主持人" prop="HOST_PERSON">
|
||||||
|
<el-input
|
||||||
|
v-model="data.form.HOST_PERSON"
|
||||||
|
placeholder="请输入主持人"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="记录人" prop="RECORDER">
|
||||||
|
<el-input v-model="data.form.RECORDER" placeholder="请输入记录人" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="从业身份" prop="PRACTITIONER_TYPE">
|
||||||
|
<el-checkbox-group
|
||||||
|
v-model="data.form.PRACTITIONER_TYPE"
|
||||||
|
@change="handleCheckedCitiesChange"
|
||||||
|
>
|
||||||
|
<el-checkbox v-for="city in cities" :key="city" :label="city">{{
|
||||||
|
city
|
||||||
|
}}</el-checkbox>
|
||||||
|
</el-checkbox-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="会议附件" prop="fileList">
|
||||||
|
<layout-upload
|
||||||
|
v-model:file-list="data.form.fileList"
|
||||||
|
accept=".pdf,.mp4"
|
||||||
|
delete-to-server
|
||||||
|
:limit="9"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="50">
|
||||||
|
<el-form-item label="会议记要" prop="MEETING_CONTENT">
|
||||||
|
<layout-editor
|
||||||
|
v-model="data.form.MEETING_CONTENT"
|
||||||
|
placeholder="请输入内容"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<div class="tc mt-10">
|
||||||
|
<el-button type="primary" @click="fnSubmit"> 确定 </el-button>
|
||||||
|
</div>
|
||||||
|
</layout-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
layoutFnGetMEETINGTYPEClassification,
|
||||||
|
getUserListAll,
|
||||||
|
} from "@/request/safety_production_related.js";
|
||||||
|
import { addSafetyMeetingView } from "@/request/traffic_safety_meeting.js";
|
||||||
|
import { reactive, ref } from "vue";
|
||||||
|
import LayoutUpload from "@/components/upload/index.vue";
|
||||||
|
import LayoutEditor from "@/components/editor/index.vue";
|
||||||
|
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
const formRef = ref(null);
|
||||||
|
const cities = [
|
||||||
|
"驾驶员",
|
||||||
|
"押运员",
|
||||||
|
"安全管理员",
|
||||||
|
"装卸员",
|
||||||
|
"安全负责人",
|
||||||
|
"其他",
|
||||||
|
"监控员",
|
||||||
|
];
|
||||||
|
const handleCheckedCitiesChange = () => {};
|
||||||
|
const rules = {
|
||||||
|
MEETING_TITLE: [
|
||||||
|
{ required: true, message: "请输入会议标题", trigger: "blur" },
|
||||||
|
],
|
||||||
|
MEETING_TYPE: [
|
||||||
|
{ required: true, message: "请选择会议类型", trigger: "change" },
|
||||||
|
],
|
||||||
|
TRANSPORTATIONCOMPANY: [
|
||||||
|
{ required: true, message: "请输入运输企业", trigger: "blur" },
|
||||||
|
],
|
||||||
|
MEETING_ADDRESS: [
|
||||||
|
{ required: true, message: "请输入会议地点", trigger: "blur" },
|
||||||
|
],
|
||||||
|
MEETING_DATE: [
|
||||||
|
{ required: true, message: "请选择会议时间", trigger: "change" },
|
||||||
|
],
|
||||||
|
HOST_PERSON: [{ required: true, message: "请输入主持人", trigger: "blur" }],
|
||||||
|
RECORDER: [{ required: true, message: "请输入记录人", trigger: "blur" }],
|
||||||
|
MEETING_CONTENT: [
|
||||||
|
{ required: true, message: "请输入会议记要", trigger: "blur" },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
const fnGetUnitsList = async () => {
|
||||||
|
const resData = await getUserListAll({});
|
||||||
|
data.unitsList = resData.varList;
|
||||||
|
};
|
||||||
|
fnGetUnitsList();
|
||||||
|
const relatedClassificationTempList =
|
||||||
|
await layoutFnGetMEETINGTYPEClassification();
|
||||||
|
const relatedClassificationList = [];
|
||||||
|
JSON.parse(relatedClassificationTempList.value.zTreeNodes).forEach((e) => {
|
||||||
|
relatedClassificationList.push({ name: e.id, BIANMA: e.name });
|
||||||
|
});
|
||||||
|
|
||||||
|
const data = reactive({
|
||||||
|
form: {
|
||||||
|
MEETING_TITLE: "",
|
||||||
|
MEETING_TYPE: "",
|
||||||
|
TRANSPORTATIONCOMPANY: "",
|
||||||
|
MEETING_ADDRESS: "",
|
||||||
|
MEETING_DATE: "",
|
||||||
|
HOST_PERSON: "",
|
||||||
|
RECORDER: "",
|
||||||
|
fileList: [],
|
||||||
|
PRACTITIONER_TYPE: [],
|
||||||
|
NOTIFICATIONCONTENT: "",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const handleMeetingTypeChange = (value) => {
|
||||||
|
data.form.MEETING_TYPE = value;
|
||||||
|
};
|
||||||
|
const fnSubmit = async () => {
|
||||||
|
await useFormValidate(formRef);
|
||||||
|
const formData = new FormData();
|
||||||
|
|
||||||
|
Object.keys(data.form).forEach((key) => {
|
||||||
|
formData.append(key, data.form[key]);
|
||||||
|
});
|
||||||
|
|
||||||
|
formData.delete("fileList");
|
||||||
|
|
||||||
|
for (let i = 0; i < data.form.fileList.length; i++) {
|
||||||
|
if (data.form.fileList[i].raw)
|
||||||
|
formData.append("FFILE", data.form.fileList[i].raw);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
await addSafetyMeetingView(formData);
|
||||||
|
ElMessage.success("添加成功");
|
||||||
|
Object.keys(data.form).forEach((key) => {
|
||||||
|
if (Array.isArray(data.form[key])) {
|
||||||
|
data.form[key] = [];
|
||||||
|
} else {
|
||||||
|
data.form[key] = "";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
ElMessage.error("添加失败");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.flexBox {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-end;
|
||||||
|
|
||||||
|
.addBtn {
|
||||||
|
margin-left: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,340 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<layout-card>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-descriptions :column="2" border>
|
||||||
|
<el-descriptions-item label="会议标题">
|
||||||
|
{{ detailItems.WAYBILLNUMBER }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="运输企业">
|
||||||
|
{{ detailItems.TRANSPORTATIONCOMPANY }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="运输任务">
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="运输车辆">
|
||||||
|
{{ detailItems.TRANSPORTVEHICLE }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="运输性能">
|
||||||
|
{{ detailItems.TRANSPORTNATURE }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="发车时间">
|
||||||
|
{{ detailItems.DEPARTURETIME }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="发车地点">
|
||||||
|
{{ detailItems.DEPARTUREPLACE }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="车架号">
|
||||||
|
{{ detailItems.FRAMENUMBER }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="从业人员">
|
||||||
|
{{ detailItems.EMPLOYEES }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="收车时间">
|
||||||
|
{{ detailItems.ARRIVALTIME }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="收车地点">
|
||||||
|
{{ detailItems.ARRIVALPLACE }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="天气情况">
|
||||||
|
{{ detailItems.WEATHERCONDITION }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="联系电话">
|
||||||
|
{{ detailItems.CONTACTPHONE }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="额定载荷">
|
||||||
|
{{ detailItems.RATEDLOAD }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="实际载荷">
|
||||||
|
{{ detailItems.ACTUALLOAD }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="行车安全问询">
|
||||||
|
{{ detailItems.DRIVINGSAFETYINQUIRY }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="出车前检查">
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="检查人">
|
||||||
|
{{ detailItems.PREDEPARTUREINSPECTOR }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="检查时间">
|
||||||
|
{{ detailItems.PREDEPARTUREINSPECTIONTIME }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="故障处理">
|
||||||
|
{{ detailItems.PREDEPARTUREFAULTTREATMENT }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="出车结论">
|
||||||
|
{{ detailItems.DEPARTURECONCLUSION }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="出车前照片">
|
||||||
|
{{ detailItems.PREDEPARTUREPHOTO }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="出车前签字">
|
||||||
|
{{ detailItems.PREDEPARTURESIGNATURE }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="行车中检查">
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="检查人">
|
||||||
|
{{ detailItems.INDRIVINGINSPECTOR }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="检查时间">
|
||||||
|
{{ detailItems.INSPECTIONTIMEWHILEDRIVING }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="故障处理">
|
||||||
|
{{ detailItems.INDRIVINGFAULTTREATMENT }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="行车中照片">
|
||||||
|
{{ detailItems.PHOTOSWHILEDRIVING }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="行车中签字">
|
||||||
|
{{ detailItems.SIGNINGWHILEDRIVING }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="收车后检查">
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="检查人">
|
||||||
|
{{ detailItems.POSTARRIVALINSPECTOR }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="检查时间">
|
||||||
|
{{ detailItems.POSTARRIVALINSPECTIONTIME }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="故障处理">
|
||||||
|
{{ detailItems.POSTARRIVALFAULTTREATMENT }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="收车后照片">
|
||||||
|
{{ detailItems.CHECKPHOTOS }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="收车后签字">
|
||||||
|
{{ detailItems.CHECKSIGNATURE }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="交接班记录">
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="驾驶时长">
|
||||||
|
{{ detailItems.DRIVINGDURATION }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="时间区间">
|
||||||
|
{{ detailItems.TIMEINTERVAL }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="交接地点">
|
||||||
|
{{ detailItems.HANDOVERPLACE }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="交接班人">
|
||||||
|
{{ detailItems.HANDOVERPERSON }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="接班图片">
|
||||||
|
{{ detailItems.RELIEFPICTURE }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="安全负责人">
|
||||||
|
{{ detailItems.SAFETYOFFICER }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</layout-card>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { onMounted, reactive } from "vue";
|
||||||
|
import { getSafetyDrivingLogView } from "@/request/traffic_driving_log.js";
|
||||||
|
import { useRoute } from "vue-router";
|
||||||
|
const route = useRoute();
|
||||||
|
const { DRIVING_LOG_ID } = route.query;
|
||||||
|
const detailItems = reactive({
|
||||||
|
WAYBILLNUMBER: "",
|
||||||
|
TRANSPORTATIONCOMPANY: "",
|
||||||
|
TRANSPORTVEHICLE: "",
|
||||||
|
TRANSPORTNATURE: "",
|
||||||
|
DEPARTURETIME: "",
|
||||||
|
DEPARTUREPLACE: "",
|
||||||
|
FRAMENUMBER: "",
|
||||||
|
EMPLOYEES: "",
|
||||||
|
ARRIVALTIME: "",
|
||||||
|
ARRIVALPLACE: "",
|
||||||
|
WEATHERCONDITION: "",
|
||||||
|
CONTACTPHONE: "",
|
||||||
|
ACTUALLOAD: "",
|
||||||
|
DRIVINGSAFETYINQUIRY: "",
|
||||||
|
DEPARTURECONCLUSION: "",
|
||||||
|
PREDEPARTUREINSPECTOR: "",
|
||||||
|
PREDEPARTUREINSPECTIONTIME: "",
|
||||||
|
PREDEPARTUREFAULTTREATMENT: "",
|
||||||
|
INDRIVINGINSPECTOR: "",
|
||||||
|
INSPECTIONTIMEWHILEDRIVING: "",
|
||||||
|
INDRIVINGFAULTTREATMENT: "",
|
||||||
|
POSTARRIVALINSPECTOR: "",
|
||||||
|
POSTARRIVALINSPECTIONTIME: "",
|
||||||
|
POSTARRIVALFAULTTREATMENT: "",
|
||||||
|
DRIVINGDURATION: "",
|
||||||
|
TIMEINTERVAL: "",
|
||||||
|
HANDOVERPLACE: "",
|
||||||
|
HANDOVERPERSON: "",
|
||||||
|
RELIEFPICTURE: "",
|
||||||
|
SAFETYOFFICER: "",
|
||||||
|
PREDEPARTUREPHOTO: "",
|
||||||
|
PREDEPARTURESIGNATURE: "",
|
||||||
|
PHOTOSWHILEDRIVING: "",
|
||||||
|
SIGNINGWHILEDRIVING: "",
|
||||||
|
CHECKPHOTOS: "",
|
||||||
|
CHECKSIGNATURE: "",
|
||||||
|
});
|
||||||
|
|
||||||
|
onMounted(async () => {
|
||||||
|
const response = await getSafetyDrivingLogView({ DRIVING_LOG_ID });
|
||||||
|
Object.assign(detailItems, response.pd);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped></style>
|
|
@ -0,0 +1,137 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-card>
|
||||||
|
<el-form
|
||||||
|
:model="searchForm"
|
||||||
|
label-width="100px"
|
||||||
|
@submit.prevent="fnResetPagination"
|
||||||
|
>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="运输企业" prop="TRANSPORTCOMPANY">
|
||||||
|
<el-input v-model="searchForm.TRANSPORTCOMPANY" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="运输车辆" prop="TRANSPORTVEHICLE">
|
||||||
|
<el-input v-model="searchForm.TRANSPORTVEHICLE" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<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>
|
||||||
|
</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
|
||||||
|
prop="REGISTRATIONNUMBER"
|
||||||
|
label="登记编号"
|
||||||
|
width="130"
|
||||||
|
/>
|
||||||
|
<el-table-column prop="DEPARTURESTATUS" label="出车状态" width="130" />
|
||||||
|
<el-table-column prop="DRIVINGCONDITION" label="行车状态" width="130" />
|
||||||
|
<el-table-column prop="TRANSPORTVEHICLE" label="运输车辆" width="130" />
|
||||||
|
<el-table-column prop="EMPLOYEES" label="从业人员" width="130" />
|
||||||
|
<el-table-column prop="CONTACTPHONE" label="联系电话" width="130" />
|
||||||
|
<el-table-column prop="WEATHERCONDITION" label="天气预报" width="130" />
|
||||||
|
<el-table-column prop="TRANSPORTNATURE" label="运输性质" width="130" />
|
||||||
|
<el-table-column prop="DEPARTURETIME" label="发车时间" />
|
||||||
|
<el-table-column prop="ARRIVALTIME" label="收车时间" />
|
||||||
|
<el-table-column prop="TRANSPORTCOMPANY" label="运输企业" />
|
||||||
|
<el-table-column label="操作" width="180">
|
||||||
|
<template v-slot:default="{ row }">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
text
|
||||||
|
link
|
||||||
|
@click="
|
||||||
|
router.push({
|
||||||
|
path: '/safety_production_related/driving_log/drivingLog_info',
|
||||||
|
query: {
|
||||||
|
DRIVING_LOG_ID: row.DRIVING_LOG_ID,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
"
|
||||||
|
>
|
||||||
|
查看
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
text
|
||||||
|
link
|
||||||
|
@click="
|
||||||
|
router.push({
|
||||||
|
path: '/safety_production_related/safety_meeting/add',
|
||||||
|
})
|
||||||
|
"
|
||||||
|
>
|
||||||
|
添加
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="danger"
|
||||||
|
text
|
||||||
|
link
|
||||||
|
@click="deleteItem(row.DRIVING_LOG_ID)"
|
||||||
|
>
|
||||||
|
删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</layout-table>
|
||||||
|
</layout-card>
|
||||||
|
<edit
|
||||||
|
v-model:visible="data.analysisDialog.visible"
|
||||||
|
:info="data.analysisDialog.info"
|
||||||
|
@get-data="fnResetPagination"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { serialNumber } from "@/assets/js/utils";
|
||||||
|
import useListData from "@/assets/js/useListData.js";
|
||||||
|
import { reactive } from "vue";
|
||||||
|
import {
|
||||||
|
getSafetyDrivingLogList,
|
||||||
|
setDrivingLogDelete,
|
||||||
|
} from "@/request/traffic_driving_log.js";
|
||||||
|
import router from "@/router/index.js";
|
||||||
|
import { ElMessage, ElMessageBox } from "element-plus";
|
||||||
|
|
||||||
|
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
|
||||||
|
useListData(getSafetyDrivingLogList);
|
||||||
|
const data = reactive({
|
||||||
|
analysisDialog: {
|
||||||
|
visible: false,
|
||||||
|
info: {},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
// 删除事件
|
||||||
|
const deleteItem = async (value) => {
|
||||||
|
await ElMessageBox.confirm(`确定要删除吗?`, {
|
||||||
|
type: "warning",
|
||||||
|
});
|
||||||
|
console.log("Sent to backend:", { DRIVING_LOG_ID: value });
|
||||||
|
await setDrivingLogDelete({ DRIVING_LOG_ID: value });
|
||||||
|
ElMessage.success("删除成功");
|
||||||
|
fnGetData();
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped></style>
|
|
@ -0,0 +1,229 @@
|
||||||
|
<template>
|
||||||
|
<layout-card>
|
||||||
|
<el-form
|
||||||
|
ref="formRef"
|
||||||
|
:model="data.form"
|
||||||
|
:rules="rules"
|
||||||
|
label-width="175px"
|
||||||
|
>
|
||||||
|
<el-divider content-position="left">添加</el-divider>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="会议标题" prop="MEETING_TITLE">
|
||||||
|
<el-input
|
||||||
|
v-model="data.form.MEETING_TITLE"
|
||||||
|
placeholder="请输入会议标题"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="会议类型" prop="MEETING_TYPE">
|
||||||
|
<el-select
|
||||||
|
v-model="data.form.MEETING_TYPE"
|
||||||
|
placeholder="请选择会议类型"
|
||||||
|
@change="handleMeetingTypeChange"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in relatedClassificationList"
|
||||||
|
:key="item.BIANMA"
|
||||||
|
:label="item.NAME"
|
||||||
|
:value="item.BIANMA"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="运输企业" prop="TRANSPORTATIONCOMPANY">
|
||||||
|
<el-input
|
||||||
|
v-model="data.form.TRANSPORTATIONCOMPANY"
|
||||||
|
placeholder="请输入运输企业"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="会议地点" prop="MEETING_ADDRESS">
|
||||||
|
<el-input
|
||||||
|
v-model="data.form.MEETING_ADDRESS"
|
||||||
|
placeholder="请输入会议地点"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="10">
|
||||||
|
<el-form-item prop="MEETING_DATE" label="会议时间">
|
||||||
|
<el-date-picker
|
||||||
|
type="daterange"
|
||||||
|
v-model="data.form.MEETING_DATE"
|
||||||
|
format="YYYY-MM-DD"
|
||||||
|
value-format="YYYY-MM-DD"
|
||||||
|
start-placeholder="开始时间"
|
||||||
|
end-placeholder="结束时间"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="主持人" prop="HOST_PERSON">
|
||||||
|
<el-input
|
||||||
|
v-model="data.form.HOST_PERSON"
|
||||||
|
placeholder="请输入主持人"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="记录人" prop="RECORDER">
|
||||||
|
<el-input v-model="data.form.RECORDER" placeholder="请输入记录人" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="从业身份" prop="PRACTITIONER_TYPE">
|
||||||
|
<el-checkbox-group
|
||||||
|
v-model="data.form.PRACTITIONER_TYPE"
|
||||||
|
@change="handleCheckedCitiesChange"
|
||||||
|
>
|
||||||
|
<el-checkbox v-for="city in cities" :key="city" :label="city">{{
|
||||||
|
city
|
||||||
|
}}</el-checkbox>
|
||||||
|
</el-checkbox-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="会议附件" prop="fileList">
|
||||||
|
<layout-upload
|
||||||
|
v-model:file-list="data.form.fileList"
|
||||||
|
accept=".pdf,.mp4"
|
||||||
|
delete-to-server
|
||||||
|
:limit="9"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="50">
|
||||||
|
<el-form-item label="会议记要" prop="MEETING_CONTENT">
|
||||||
|
<layout-editor
|
||||||
|
v-model="data.form.MEETING_CONTENT"
|
||||||
|
placeholder="请输入内容"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<div class="tc mt-10">
|
||||||
|
<el-button type="primary" @click="fnSubmit"> 确定 </el-button>
|
||||||
|
</div>
|
||||||
|
</layout-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
layoutFnGetMEETINGTYPEClassification,
|
||||||
|
getUserListAll,
|
||||||
|
} from "@/request/safety_production_related.js";
|
||||||
|
import { addSafetyMeetingView } from "@/request/traffic_safety_meeting.js";
|
||||||
|
import { reactive, ref } from "vue";
|
||||||
|
import LayoutUpload from "@/components/upload/index.vue";
|
||||||
|
import LayoutEditor from "@/components/editor/index.vue";
|
||||||
|
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
const formRef = ref(null);
|
||||||
|
const cities = [
|
||||||
|
"驾驶员",
|
||||||
|
"押运员",
|
||||||
|
"安全管理员",
|
||||||
|
"装卸员",
|
||||||
|
"安全负责人",
|
||||||
|
"其他",
|
||||||
|
"监控员",
|
||||||
|
];
|
||||||
|
const handleCheckedCitiesChange = () => {};
|
||||||
|
const rules = {
|
||||||
|
MEETING_TITLE: [
|
||||||
|
{ required: true, message: "请输入会议标题", trigger: "blur" },
|
||||||
|
],
|
||||||
|
MEETING_TYPE: [
|
||||||
|
{ required: true, message: "请选择会议类型", trigger: "change" },
|
||||||
|
],
|
||||||
|
TRANSPORTATIONCOMPANY: [
|
||||||
|
{ required: true, message: "请输入运输企业", trigger: "blur" },
|
||||||
|
],
|
||||||
|
MEETING_ADDRESS: [
|
||||||
|
{ required: true, message: "请输入会议地点", trigger: "blur" },
|
||||||
|
],
|
||||||
|
MEETING_DATE: [
|
||||||
|
{ required: true, message: "请选择会议时间", trigger: "change" },
|
||||||
|
],
|
||||||
|
HOST_PERSON: [{ required: true, message: "请输入主持人", trigger: "blur" }],
|
||||||
|
RECORDER: [{ required: true, message: "请输入记录人", trigger: "blur" }],
|
||||||
|
MEETING_CONTENT: [
|
||||||
|
{ required: true, message: "请输入会议记要", trigger: "blur" },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
const fnGetUnitsList = async () => {
|
||||||
|
const resData = await getUserListAll({});
|
||||||
|
data.unitsList = resData.varList;
|
||||||
|
};
|
||||||
|
fnGetUnitsList();
|
||||||
|
const relatedClassificationTempList =
|
||||||
|
await layoutFnGetMEETINGTYPEClassification();
|
||||||
|
const relatedClassificationList = [];
|
||||||
|
JSON.parse(relatedClassificationTempList.value.zTreeNodes).forEach((e) => {
|
||||||
|
relatedClassificationList.push({ name: e.id, BIANMA: e.name });
|
||||||
|
});
|
||||||
|
|
||||||
|
const data = reactive({
|
||||||
|
form: {
|
||||||
|
MEETING_TITLE: "",
|
||||||
|
MEETING_TYPE: "",
|
||||||
|
TRANSPORTATIONCOMPANY: "",
|
||||||
|
MEETING_ADDRESS: "",
|
||||||
|
MEETING_DATE: "",
|
||||||
|
HOST_PERSON: "",
|
||||||
|
RECORDER: "",
|
||||||
|
fileList: [],
|
||||||
|
PRACTITIONER_TYPE: [],
|
||||||
|
NOTIFICATIONCONTENT: "",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const handleMeetingTypeChange = (value) => {
|
||||||
|
data.form.MEETING_TYPE = value;
|
||||||
|
};
|
||||||
|
const fnSubmit = async () => {
|
||||||
|
await useFormValidate(formRef);
|
||||||
|
const formData = new FormData();
|
||||||
|
|
||||||
|
Object.keys(data.form).forEach((key) => {
|
||||||
|
formData.append(key, data.form[key]);
|
||||||
|
});
|
||||||
|
|
||||||
|
formData.delete("fileList");
|
||||||
|
|
||||||
|
for (let i = 0; i < data.form.fileList.length; i++) {
|
||||||
|
if (data.form.fileList[i].raw)
|
||||||
|
formData.append("FFILE", data.form.fileList[i].raw);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
await addSafetyMeetingView(formData);
|
||||||
|
ElMessage.success("添加成功");
|
||||||
|
Object.keys(data.form).forEach((key) => {
|
||||||
|
if (Array.isArray(data.form[key])) {
|
||||||
|
data.form[key] = [];
|
||||||
|
} else {
|
||||||
|
data.form[key] = "";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
ElMessage.error("添加失败");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.flexBox {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-end;
|
||||||
|
|
||||||
|
.addBtn {
|
||||||
|
margin-left: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,140 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-card>
|
||||||
|
<el-form
|
||||||
|
:model="searchForm"
|
||||||
|
label-width="100px"
|
||||||
|
@submit.prevent="searchNotifications"
|
||||||
|
>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="从业人员" prop="PRACTITIONER">
|
||||||
|
<el-input v-model="searchForm.PRACTITIONER" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="从业类型" prop="PRACTITIONER_TYPE">
|
||||||
|
<el-select v-model="searchForm.PRACTITIONER_TYPE">
|
||||||
|
<el-option
|
||||||
|
v-for="item in relatedClassificationList"
|
||||||
|
:key="item.BIANMA"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.BIANMA"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="联系电话" prop="CONTACT_PHONE">
|
||||||
|
<el-input v-model="searchForm.CONTACT_PHONE" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="参会状态" prop="ATTENDANCE_STATUS">
|
||||||
|
<el-select v-model="searchForm.ATTENDANCE_STATUS">
|
||||||
|
<el-option label="已参会" :value="1" />
|
||||||
|
<!-- 1代表已签收 -->
|
||||||
|
<el-option label="未参会" :value="0" />
|
||||||
|
<!-- 0代表未签收 -->
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="身份证号" prop="IDENTITY_NUMBER">
|
||||||
|
<el-input v-model="searchForm.IDENTITY_NUMBER" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||||
|
<el-button native-type="reset" @click="resetSearchForm"
|
||||||
|
>重置</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"
|
||||||
|
stripe
|
||||||
|
border
|
||||||
|
show-header
|
||||||
|
>
|
||||||
|
<el-table-column label="序号" width="60">
|
||||||
|
<template #default="{ $index }">
|
||||||
|
{{ serialNumber(pagination, $index) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="从业人员" prop="PRACTITIONER" />
|
||||||
|
<el-table-column label="从业类型" prop="PRACTITIONER_TYPE" />
|
||||||
|
<el-table-column label="身份证号" prop="IDENTITY_NUMBER" />
|
||||||
|
<el-table-column label="联系电话" prop="CONTACT_PHONE" />
|
||||||
|
<el-table-column label="参会状态" prop="ATTENDANCE_STATUS">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-tag v-if="row.ATTENDANCE_STATUS === '1'">{{ "已参会" }}</el-tag>
|
||||||
|
<el-tag v-else>未参会</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</layout-table>
|
||||||
|
</layout-card>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { reactive, onMounted, ref } from "vue";
|
||||||
|
import { useRoute } from "vue-router";
|
||||||
|
import { layoutFnGetSIGNEDSTATUSClassification } from "@/request/safety_production_related.js";
|
||||||
|
import { getSafetyMeetingRecipient } from "@/request/traffic_safety_meeting.js";
|
||||||
|
import { serialNumber } from "@/assets/js/utils";
|
||||||
|
import useListData from "@/assets/js/useListData";
|
||||||
|
|
||||||
|
const route = useRoute();
|
||||||
|
const SAFETY_MEETING_ID = route.query.SAFETY_MEETING_ID;
|
||||||
|
|
||||||
|
const searchForm = reactive({
|
||||||
|
PERSON: "",
|
||||||
|
PRACTITIONERTYPE: "",
|
||||||
|
SIGNEDSTATUS: null,
|
||||||
|
REPLYSTATUS: null,
|
||||||
|
});
|
||||||
|
|
||||||
|
const { list, pagination, fnGetData, fnResetPagination } = useListData(
|
||||||
|
getSafetyMeetingRecipient,
|
||||||
|
{
|
||||||
|
searchForm,
|
||||||
|
otherParams: { SAFETY_MEETING_ID },
|
||||||
|
usePagination: true,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
async function searchNotifications() {
|
||||||
|
const params = Object.keys(searchForm).reduce((acc, key) => {
|
||||||
|
acc[key] = searchForm[key];
|
||||||
|
return acc;
|
||||||
|
}, {});
|
||||||
|
|
||||||
|
params.SAFETY_MEETING_ID = SAFETY_MEETING_ID;
|
||||||
|
await fnGetData(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重置表单时,也确保重置为初始值
|
||||||
|
function resetSearchForm() {
|
||||||
|
Object.keys(searchForm).forEach((key) => {
|
||||||
|
searchForm[key] = "";
|
||||||
|
});
|
||||||
|
fnResetPagination({ SAFETY_MEETING_ID });
|
||||||
|
}
|
||||||
|
|
||||||
|
const relatedClassificationList = ref(null);
|
||||||
|
|
||||||
|
onMounted(async () => {
|
||||||
|
const data = await layoutFnGetSIGNEDSTATUSClassification();
|
||||||
|
relatedClassificationList.value = JSON.parse(data.value.zTreeNodes);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped></style>
|
|
@ -0,0 +1,168 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-card>
|
||||||
|
<el-form
|
||||||
|
:model="searchForm"
|
||||||
|
label-width="100px"
|
||||||
|
@submit.prevent="fnResetPagination"
|
||||||
|
>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="会议标题" prop="MEETING_TITLE">
|
||||||
|
<el-input v-model="searchForm.MEETING_TITLE" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="会议类型" prop="MEETING_TYPE">
|
||||||
|
<el-select v-model="searchForm.MEETING_TYPE">
|
||||||
|
<el-option
|
||||||
|
v-for="item in relatedClassificationList"
|
||||||
|
:key="item.BIANMA"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.name"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<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>
|
||||||
|
</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 prop="MEETING_TITLE" label="会议标题" width="250" />
|
||||||
|
<el-table-column prop="MEETING_TYPE" label="会议类型" width="250" />
|
||||||
|
<el-table-column label="会议状态" prop="SIGNEDDATE">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-tag v-if="row.MEETING_STATUS === 1">{{ "进行中" }}</el-tag>
|
||||||
|
<el-tag v-else>未开始</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="MEETING_DATE" label="会议时间" />
|
||||||
|
<el-table-column label="参会人数" width="100">
|
||||||
|
<template #default="{ row }">
|
||||||
|
{{ row.MEETING_PERSONS + "/" + row.TOTALPERSONNUM }}人
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="HOST_PERSON" label="主持人" />
|
||||||
|
<el-table-column prop="MEETING_ADDRESS" label="会议地点" />
|
||||||
|
<el-table-column prop="TRANSPORTATIONCOMPANY" label="运输企业" />
|
||||||
|
<el-table-column label="操作" width="180">
|
||||||
|
<template v-slot:default="{ row }">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
text
|
||||||
|
link
|
||||||
|
@click="
|
||||||
|
router.push({
|
||||||
|
path: '/safety_production_related/safety_meeting/meeting_info',
|
||||||
|
query: {
|
||||||
|
SAFETY_MEETING_ID: row.SAFETY_MEETING_ID,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
"
|
||||||
|
>
|
||||||
|
查看
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
text
|
||||||
|
link
|
||||||
|
@click="
|
||||||
|
router.push({
|
||||||
|
path: '/safety_production_related/safety_meeting/add',
|
||||||
|
})
|
||||||
|
"
|
||||||
|
>
|
||||||
|
添加
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="danger"
|
||||||
|
text
|
||||||
|
link
|
||||||
|
@click="deleteItem(row.SAFETY_MEETING_ID)"
|
||||||
|
>
|
||||||
|
删除
|
||||||
|
</el-button>
|
||||||
|
<!-- 阅读详情按钮 -->
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
text
|
||||||
|
link
|
||||||
|
@click="
|
||||||
|
router.push({
|
||||||
|
path: '/safety_production_related/safety_meeting/details',
|
||||||
|
query: {
|
||||||
|
SAFETY_MEETING_ID: row.SAFETY_MEETING_ID,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
"
|
||||||
|
>
|
||||||
|
参会人员
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</layout-table>
|
||||||
|
</layout-card>
|
||||||
|
<edit
|
||||||
|
v-model:visible="data.analysisDialog.visible"
|
||||||
|
:info="data.analysisDialog.info"
|
||||||
|
@get-data="fnResetPagination"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { serialNumber } from "@/assets/js/utils";
|
||||||
|
import useListData from "@/assets/js/useListData.js";
|
||||||
|
import { onMounted, reactive, ref } from "vue";
|
||||||
|
import {
|
||||||
|
getSafetyMeetingList,
|
||||||
|
setSafetyMeetingDelete,
|
||||||
|
} from "@/request/traffic_safety_meeting.js";
|
||||||
|
import router from "@/router/index.js";
|
||||||
|
import { layoutFnGetMEETINGTYPEClassification } from "@/request/safety_production_related.js";
|
||||||
|
import { ElMessage, ElMessageBox } from "element-plus";
|
||||||
|
|
||||||
|
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
|
||||||
|
useListData(getSafetyMeetingList);
|
||||||
|
const data = reactive({
|
||||||
|
analysisDialog: {
|
||||||
|
visible: false,
|
||||||
|
info: {},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
// 删除事件
|
||||||
|
const deleteItem = async (value) => {
|
||||||
|
await ElMessageBox.confirm(`确定要删除吗?`, {
|
||||||
|
type: "warning",
|
||||||
|
});
|
||||||
|
await setSafetyMeetingDelete({ SAFETY_MEETING_ID: value });
|
||||||
|
ElMessage.success("删除成功");
|
||||||
|
fnGetData();
|
||||||
|
};
|
||||||
|
const relatedClassificationList = ref(null);
|
||||||
|
|
||||||
|
onMounted(async () => {
|
||||||
|
const data = await layoutFnGetMEETINGTYPEClassification();
|
||||||
|
relatedClassificationList.value = JSON.parse(data.value.zTreeNodes);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped></style>
|
|
@ -0,0 +1,91 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<layout-card>
|
||||||
|
<el-descriptions :column="1" border>
|
||||||
|
<el-descriptions-item label="会议标题">
|
||||||
|
{{ detailItems.MEETING_TITLE }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="运输企业">
|
||||||
|
{{ detailItems.TRANSPORTATIONCOMPANY }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="主持人">
|
||||||
|
{{ detailItems.HOST_PERSON }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="记录人">
|
||||||
|
{{ detailItems.RECORDER }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="会议时间">
|
||||||
|
{{ detailItems.MEETING_DATE_START }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="截止时间">
|
||||||
|
{{ detailItems.MEETING_DATE_END }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="会议类型">
|
||||||
|
{{ detailItems.MEETING_TYPE }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="会议内容">
|
||||||
|
{{ detailItems.MEETING_CONTENT }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="备注">
|
||||||
|
{{ detailItems.NOTES }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="远程参会人员">
|
||||||
|
应参会{{ detailItems.totalPersonNum }}/人,实参人数{{
|
||||||
|
detailItems.realPersonNum
|
||||||
|
}}/人
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
<el-table
|
||||||
|
:border="true"
|
||||||
|
:data="detailItems.recipientsList"
|
||||||
|
:show-header="false"
|
||||||
|
>
|
||||||
|
<el-table-column label="NAME1" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<img :src="row.AVATAR" alt="Avatar" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="NAME2" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
{{ row.PRACTITIONER }}<br />
|
||||||
|
{{ row.CONTACT_PHONE }}<br />
|
||||||
|
{{ row.HOME_ADDRESS }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="NAME3" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<img :src="row.SIGNATUREPICTURE" alt="Signature" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</layout-card>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { onMounted, reactive } from "vue";
|
||||||
|
import { getSafetyMeetingView } from "@/request/traffic_safety_meeting.js";
|
||||||
|
import { useRoute } from "vue-router";
|
||||||
|
const route = useRoute();
|
||||||
|
const { SAFETY_MEETING_ID } = route.query;
|
||||||
|
const detailItems = reactive({
|
||||||
|
MEETING_TITLE: "",
|
||||||
|
TRANSPORTATIONCOMPANY: "",
|
||||||
|
HOST_PERSON: "",
|
||||||
|
RECORDER: "",
|
||||||
|
MEETING_DATE_START: "",
|
||||||
|
MEETING_DATE_END: "",
|
||||||
|
MEETING_TYPE: "",
|
||||||
|
MEETING_CONTENT: "",
|
||||||
|
recipientsInfo: "",
|
||||||
|
totalPersonNum: "",
|
||||||
|
realPersonNum: "",
|
||||||
|
});
|
||||||
|
|
||||||
|
onMounted(async () => {
|
||||||
|
const response = await getSafetyMeetingView({ SAFETY_MEETING_ID });
|
||||||
|
Object.assign(detailItems, response.pd);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped></style>
|
|
@ -81,7 +81,6 @@
|
||||||
<div class="tc mt-10">
|
<div class="tc mt-10">
|
||||||
<el-button type="primary" @click="fnSubmit"> 确定 </el-button>
|
<el-button type="primary" @click="fnSubmit"> 确定 </el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<select-risk
|
<select-risk
|
||||||
v-model:visible="data.selectRiskDialogVisible"
|
v-model:visible="data.selectRiskDialogVisible"
|
||||||
:list-data="data.listAll"
|
:list-data="data.listAll"
|
||||||
|
@ -138,14 +137,18 @@ const data = reactive({
|
||||||
const fnSubmit = async () => {
|
const fnSubmit = async () => {
|
||||||
await useFormValidate(formRef);
|
await useFormValidate(formRef);
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
|
|
||||||
Object.keys(data.form).forEach((key) => {
|
Object.keys(data.form).forEach((key) => {
|
||||||
formData.append(key, data.form[key]);
|
formData.append(key, data.form[key]);
|
||||||
});
|
});
|
||||||
|
|
||||||
formData.delete("fileList");
|
formData.delete("fileList");
|
||||||
|
|
||||||
for (let i = 0; i < data.form.fileList.length; i++) {
|
for (let i = 0; i < data.form.fileList.length; i++) {
|
||||||
if (data.form.fileList[i].raw)
|
if (data.form.fileList[i].raw)
|
||||||
formData.append("FFILE", data.form.fileList[i].raw);
|
formData.append("FFILE", data.form.fileList[i].raw);
|
||||||
}
|
}
|
||||||
|
|
||||||
await addSecurityNotice(formData);
|
await addSecurityNotice(formData);
|
||||||
};
|
};
|
||||||
const fnSelectRiskSubmit = (list) => {
|
const fnSelectRiskSubmit = (list) => {
|
||||||
|
|
|
@ -14,7 +14,14 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="从业类型" prop="PRACTITIONERTYPE">
|
<el-form-item label="从业类型" prop="PRACTITIONERTYPE">
|
||||||
<el-input v-model="searchForm.PRACTITIONERTYPE" />
|
<el-select v-model="searchForm.PRACTITIONERTYPE">
|
||||||
|
<el-option
|
||||||
|
v-for="item in relatedClassificationList"
|
||||||
|
:key="item.BIANMA"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.BIANMA"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
|
@ -51,9 +58,8 @@
|
||||||
<layout-card>
|
<layout-card>
|
||||||
<layout-table
|
<layout-table
|
||||||
:data="list"
|
:data="list"
|
||||||
:pagination="pagination"
|
|
||||||
@get-data="fnGetData"
|
@get-data="fnGetData"
|
||||||
@update:pagination="updatePagination"
|
v-model:pagination="pagination"
|
||||||
stripe
|
stripe
|
||||||
border
|
border
|
||||||
show-header
|
show-header
|
||||||
|
@ -89,9 +95,12 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { reactive, onMounted } from "vue";
|
import { reactive, onMounted, ref } from "vue";
|
||||||
import { useRoute } from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
import { getSecurityNotice } from "@/request/safety_production_related.js";
|
import {
|
||||||
|
getSecurityNotice,
|
||||||
|
layoutFnGetSIGNEDSTATUSClassification,
|
||||||
|
} from "@/request/safety_production_related.js";
|
||||||
import { serialNumber } from "@/assets/js/utils";
|
import { serialNumber } from "@/assets/js/utils";
|
||||||
import useListData from "@/assets/js/useListData";
|
import useListData from "@/assets/js/useListData";
|
||||||
|
|
||||||
|
@ -132,9 +141,15 @@ function resetSearchForm() {
|
||||||
fnResetPagination({ NOTIFICATION_ID });
|
fnResetPagination({ NOTIFICATION_ID });
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
const relatedClassificationList = ref(null);
|
||||||
fnGetData({ NOTIFICATION_ID });
|
|
||||||
|
onMounted(async () => {
|
||||||
|
const data = await layoutFnGetSIGNEDSTATUSClassification();
|
||||||
|
relatedClassificationList.value = JSON.parse(data.value.zTreeNodes);
|
||||||
});
|
});
|
||||||
|
// onMounted(() => {
|
||||||
|
// fnGetData({ NOTIFICATION_ID });
|
||||||
|
// });
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped></style>
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in relatedClassificationList"
|
v-for="item in relatedClassificationList"
|
||||||
:key="item.BIANMA"
|
:key="item.BIANMA"
|
||||||
:label="item.NAME"
|
:label="item.name"
|
||||||
:value="item.BIANMA"
|
:value="item.BIANMA"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
@ -140,7 +140,7 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import { serialNumber } from "@/assets/js/utils";
|
import { serialNumber } from "@/assets/js/utils";
|
||||||
import useListData from "@/assets/js/useListData.js";
|
import useListData from "@/assets/js/useListData.js";
|
||||||
import { reactive } from "vue";
|
import { onMounted, reactive, ref } from "vue";
|
||||||
import {
|
import {
|
||||||
getSecurityNoticeList,
|
getSecurityNoticeList,
|
||||||
layoutFnGetNotificationsClassification,
|
layoutFnGetNotificationsClassification,
|
||||||
|
@ -166,8 +166,12 @@ const deleteItem = async (value) => {
|
||||||
ElMessage.success("删除成功");
|
ElMessage.success("删除成功");
|
||||||
fnGetData();
|
fnGetData();
|
||||||
};
|
};
|
||||||
const relatedClassificationList =
|
const relatedClassificationList = ref(null);
|
||||||
await layoutFnGetNotificationsClassification();
|
|
||||||
|
onMounted(async () => {
|
||||||
|
const data = await layoutFnGetNotificationsClassification();
|
||||||
|
relatedClassificationList.value = JSON.parse(data.value.zTreeNodes);
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped></style>
|
||||||
|
|
Loading…
Reference in New Issue