forked from integrated_whb/integrated_whb_vue
parent
6f0b136a2f
commit
3fbef6ce57
|
@ -209,6 +209,97 @@ export const layoutFnGetDrivingType = async () => {
|
|||
});
|
||||
return ref(resData.list);
|
||||
};
|
||||
// 适用领域
|
||||
export const layoutFnGetApplicableFields = async () => {
|
||||
const resData = await getLevels({
|
||||
DICTIONARIES_ID: "ab52643da4714042be2ebfb880097330",
|
||||
});
|
||||
return ref(resData.list);
|
||||
};
|
||||
// 预案类别
|
||||
export const layoutFnGetPlanCategory = async () => {
|
||||
const resData = await getLevels({
|
||||
DICTIONARIES_ID: "b2759070db524cc4ae2d60ee4b263dc3",
|
||||
});
|
||||
return ref(resData.list);
|
||||
};
|
||||
// 预案备案状态
|
||||
export const layoutFnGetPlanFilingStatus = async () => {
|
||||
const resData = await getLevels({
|
||||
DICTIONARIES_ID: "8d07af03be10473ca17e1516a8e860d2",
|
||||
});
|
||||
return ref(resData.list);
|
||||
};
|
||||
// 预案级别
|
||||
export const layoutFnGetPlanLevel = async () => {
|
||||
const resData = await getLevels({
|
||||
DICTIONARIES_ID: "ab54d50f12ef4f578bc29c3b980b83e5",
|
||||
});
|
||||
return ref(resData.list);
|
||||
};
|
||||
// 装备类别
|
||||
export const layoutFnGetEquipmentCategory = async () => {
|
||||
const resData = await getLevels({
|
||||
DICTIONARIES_ID: "716f792cfc354fcf81bf3c0e904fb4f8",
|
||||
});
|
||||
return ref(resData.list);
|
||||
};
|
||||
// 救援专业
|
||||
export const layoutFnGetRescueSpecialty = async () => {
|
||||
const resData = await getLevels({
|
||||
DICTIONARIES_ID: "6a724d36c3ad416fad22049d932c329e",
|
||||
});
|
||||
return ref(resData.list);
|
||||
};
|
||||
// 队伍属性
|
||||
export const layoutFnGetTeamAttribute = async () => {
|
||||
const resData = await getLevels({
|
||||
DICTIONARIES_ID: "afde28dd39c841d984fb331116781ff3",
|
||||
});
|
||||
return ref(resData.list);
|
||||
};
|
||||
// 队伍类别
|
||||
export const layoutFnGetTeamCategory = async () => {
|
||||
const resData = await getLevels({
|
||||
DICTIONARIES_ID: "ef2f9a53723b4531968279fe4816be3d",
|
||||
});
|
||||
return ref(resData.list);
|
||||
};
|
||||
// 队伍等级
|
||||
export const layoutFnGetTeamGrade = async () => {
|
||||
const resData = await getLevels({
|
||||
DICTIONARIES_ID: "4dca6d39490d4845ba7b02df2ab68aa4",
|
||||
});
|
||||
return ref(resData.list);
|
||||
};
|
||||
// 队伍级别
|
||||
export const layoutFnGetTeamLevel = async () => {
|
||||
const resData = await getLevels({
|
||||
DICTIONARIES_ID: "bfd057e59c124b42ac93e13c6a30b85e",
|
||||
});
|
||||
return ref(resData.list);
|
||||
};
|
||||
// 特种设备类型
|
||||
export const layoutFnGetSpecialEquipmentType = async () => {
|
||||
const resData = await getLevels({
|
||||
DICTIONARIES_ID: "cffb3d28d48548328ddd78976610b05d",
|
||||
});
|
||||
return ref(resData.list);
|
||||
};
|
||||
// 特种设备状态
|
||||
export const layoutFnGetSpecialEquipmentState = async () => {
|
||||
const resData = await getLevels({
|
||||
DICTIONARIES_ID: "0feb448f975e422fafbf5db20c0b85c9",
|
||||
});
|
||||
return ref(resData.list);
|
||||
};
|
||||
// 巡检周期
|
||||
export const layoutFnGetInspectionCycle = async () => {
|
||||
const resData = await getLevels({
|
||||
DICTIONARIES_ID: "3017f7f6f6794f23bf15d026a1e55426",
|
||||
});
|
||||
return ref(resData.list);
|
||||
};
|
||||
// 部门树
|
||||
export const layoutFnGetDepartmentTree = async (params) => {
|
||||
const resData = await getDepartmentTree(params);
|
||||
|
|
|
@ -0,0 +1,152 @@
|
|||
import { post, upload } from "@/request/axios";
|
||||
|
||||
export const getEmergencyPlanManagementList = (params) =>
|
||||
post("/emergencyplan/list", params); // 应急预案管理列表
|
||||
export const getEmergencyPlanManagementView = (params) =>
|
||||
post("/emergencyplan/goEdit", params); // 应急预案管理查看
|
||||
export const setEmergencyPlanManagementDelete = (params) =>
|
||||
post("/emergencyplan/delete", params); // 应急预案管理删除
|
||||
export const setEmergencyPlanManagementDeleteMultiple = (params) =>
|
||||
post("/emergencyplan/deleteAll", params); // 应急预案管理删除多选
|
||||
export const setEmergencyPlanManagementEdit = (params) =>
|
||||
upload("/emergencyplan/edit", params); // 应急预案管理修改
|
||||
export const setEmergencyPlanManagementAdd = (params) =>
|
||||
upload("/emergencyplan/add", params); // 应急预案管理添加
|
||||
export const getEmergencyEquipmentManagementList = (params) =>
|
||||
upload("/emergencyequipment/list", params); // 应急装备管理列表
|
||||
export const getEmergencyEquipmentManagementView = (params) =>
|
||||
post("/emergencyequipment/goEdit", params); // 应急装备管理查看
|
||||
export const setEmergencyEquipmentManagementDelete = (params) =>
|
||||
post("/emergencyequipment/delete", params); // 应急装备管理删除
|
||||
export const setEmergencyEquipmentManagementDeleteMultiple = (params) =>
|
||||
post("/emergencyequipment/deleteAll", params); // 应急装备管理删除多选
|
||||
export const setEmergencyEquipmentManagementEdit = (params) =>
|
||||
post("/emergencyequipment/edit", params); // 应急装备管理修改
|
||||
export const setEmergencyEquipmentManagementAdd = (params) =>
|
||||
post("/emergencyequipment/add", params); // 应急装备管理添加
|
||||
|
||||
export const getEmergencyRescueTeamManagementList = (params) =>
|
||||
upload("/emergencyteam/list", params); // 应急救援队伍管理列表
|
||||
export const getEmergencyRescueTeamManagementView = (params) =>
|
||||
post("/emergencyteam/goEdit", params); // 应急救援队伍管理查看
|
||||
export const setEmergencyRescueTeamManagementDelete = (params) =>
|
||||
post("/emergencyteam/delete", params); // 应急救援队伍管理删除
|
||||
export const setEmergencyRescueTeamManagementDeleteMultiple = (params) =>
|
||||
post("/emergencyteam/deleteAll", params); // 应急救援队伍管理删除多选
|
||||
export const setEmergencyRescueTeamManagementEdit = (params) =>
|
||||
post("/emergencyteam/edit", params); // 应急救援队伍管理修改
|
||||
export const setEmergencyRescueTeamManagementAdd = (params) =>
|
||||
post("/emergencyteam/add", params); // 应急救援队伍管理添加
|
||||
|
||||
export const getEmergencyNewTeamManagementList = (params) =>
|
||||
upload("/emergencynewteam/list", params); // 应急队伍管理列表
|
||||
export const getEmergencyNewTeamManagementView = (params) =>
|
||||
post("/emergencynewteam/goEdit", params); // 应急队伍管理查看
|
||||
export const setEmergencyNewTeamManagementDelete = (params) =>
|
||||
post("/emergencynewteam/delete", params); // 应急队伍管理删除
|
||||
export const setEmergencyNewTeamManagementDeleteMultiple = (params) =>
|
||||
post("/emergencynewteam/deleteAll", params); // 应急队伍管理删除多选
|
||||
export const setEmergencyNewTeamManagementAdd = (params) =>
|
||||
post("/emergencynewteam/add", params); // 应急队伍管理添加
|
||||
export const setEmergencyNewTeamManagementGet = (params) =>
|
||||
post("/emergencynewteam/getById", params); // 应急队伍管理查询总指挥队伍
|
||||
export const setEmergencyNewTeamManagementGetE = (params) =>
|
||||
post("/emergencynewteam/getEById", params); // 应急队伍管理查询领导
|
||||
export const setEmergencyNewTeamManagementGetS = (params) =>
|
||||
post("/emergencynewteam/getSById", params); // 应急队伍管理查询组员
|
||||
export const setEmergencyNewTeamManagementAddE = (params) =>
|
||||
post("/emergencynewteam/addE", params); // 应急队伍管理新增领导
|
||||
export const setEmergencyNewTeamManagementAddS = (params) =>
|
||||
post("/emergencynewteam/addS", params); // 应急队伍管理新增组员
|
||||
export const setEmergencyNewTeamManagementDeleteItem = (params) =>
|
||||
post("/emergencynewteam/deleteItem", params); // 应急队伍管理删除
|
||||
export const setEmergencyNewTeamManagementDeleteItemMultiple = (params) =>
|
||||
post("/emergencynewteam/deleteItemAll", params); // 应急队伍管理删除多选
|
||||
export const setEmergencyTeamManagementEditS = (params) =>
|
||||
post("/emergencynewteam/editS", params); // 应急救援队伍管理修改
|
||||
export const setEmergencyTeamManagementEditE = (params) =>
|
||||
post("/emergencynewteam/editE", params); // 应急救援队伍管理修改
|
||||
export const setEmergencyTeamManagementEdit = (params) =>
|
||||
post("/emergencynewteam/edit", params); // 应急救援队伍管理修改
|
||||
|
||||
export const getEmergencyDrillManagementList = (params) =>
|
||||
upload("/emergencydrillbasic/list", params); // 应急演练管理列表
|
||||
export const setEmergencyDrillManagementDelete = (params) =>
|
||||
post("/emergencydrillbasic/delete", params); // 应急演练管理删除
|
||||
export const setEmergencyDrillManagementDeleteMultiple = (params) =>
|
||||
post("/emergencydrillbasic/deleteAll", params); // 应急演练管理删除多选
|
||||
export const getEmergencyDrillManagementViewInfo = (params) =>
|
||||
post("/emergencydrillbasic/goEdit", params); // 应急演练管理查看基本信息
|
||||
export const getEmergencyDrillManagementViewCommandingOrganization = (params) =>
|
||||
post("/emergencydrillorg/listByBaseId", params); // 应急演练管理查看应急指挥机构
|
||||
export const getEmergencyDrillManagementViewCommandingOrganizationPersonnel = (
|
||||
params
|
||||
) => post("/emergencydrillorgmember/listByBaseId", params); // 应急演练管理查看应急指挥机构人员
|
||||
export const getEmergencyDrillManagementViewDrillContent = (params) =>
|
||||
post("/emergencydrillcontent/listByBaseId", params); // 应急演练管理查看演练内容
|
||||
export const getEmergencyDrillManagementViewDrillScene = (params) =>
|
||||
post("/emergencydrillscene/listByBaseId", params); // 应急演练管理查看演练场景
|
||||
export const getEmergencyDrillManagementViewSummaryEvaluation = (params) =>
|
||||
post("/emergencydrillreport/goEditByBasicId", params); // 应急演练管理查看总结评估
|
||||
export const getEmergencyDrillManagementViewSchemeText = (params) =>
|
||||
post("/emergencydrillattachment/goEditByBasicId", params); // 应急演练管理查看应急演练方案文本
|
||||
export const setEmergencyDrillManagementInfoAdd = (params) =>
|
||||
post("/emergencydrillbasic/add", params); // 应急演练管理基本信息添加
|
||||
export const setEmergencyDrillManagementInfoEdit = (params) =>
|
||||
post("/emergencydrillbasic/edit", params); // 应急演练管理基本信息修改
|
||||
export const getEmergencyDrillManagementMechanismList = (params) =>
|
||||
post("/emergencydrillorg/list", params); // 应急演练管理应急指挥机构列表
|
||||
export const getEmergencyDrillManagementMechanismView = (params) =>
|
||||
post("/emergencydrillorg/goEdit", params); // 应急演练管理应急指挥机构查看
|
||||
export const setEmergencyDrillManagementMechanismDelete = (params) =>
|
||||
post("/emergencydrillorg/delete", params); // 应急演练管理应急指挥机构删除
|
||||
export const setEmergencyDrillManagementMechanismDeleteMultiple = (params) =>
|
||||
post("/emergencydrillorg/deleteAll", params); // 应急演练管理应急指挥机构删除多选
|
||||
export const setEmergencyDrillManagementMechanismAdd = (params) =>
|
||||
post("/emergencydrillorg/add", params); // 应急演练管理应急指挥机构添加
|
||||
export const setEmergencyDrillManagementMechanismEdit = (params) =>
|
||||
post("/emergencydrillorg/edit", params); // 应急演练管理应急指挥机构修改
|
||||
export const getEmergencyDrillManagementPersonnelList = (params) =>
|
||||
post("/emergencydrillorgmember/list", params); // 应急演练管理应急指挥机构人员列表
|
||||
export const getEmergencyDrillManagementPersonnelView = (params) =>
|
||||
post("/emergencydrillorgmember/goEdit", params); // 应急演练管理应急指挥机构人员查看
|
||||
export const setEmergencyDrillManagementPersonnelDelete = (params) =>
|
||||
post("/emergencydrillorgmember/delete", params); // 应急演练管理应急指挥机构人员删除
|
||||
export const setEmergencyDrillManagementPersonnelDeleteMultiple = (params) =>
|
||||
post("/emergencydrillorgmember/deleteAll", params); // 应急演练管理应急指挥机构人员删除多选
|
||||
export const setEmergencyDrillManagementPersonnelAdd = (params) =>
|
||||
post("/emergencydrillorgmember/add", params); // 应急演练管理应急指挥机构人员添加
|
||||
export const setEmergencyDrillManagementPersonnelEdit = (params) =>
|
||||
post("/emergencydrillorgmember/edit", params); // 应急演练管理应急指挥机构人员修改
|
||||
export const getEmergencyDrillManagementContentList = (params) =>
|
||||
post("/emergencydrillcontent/list", params); // 应急演练管理演练内容列表
|
||||
export const getEmergencyDrillManagementContentView = (params) =>
|
||||
post("/emergencydrillcontent/goEdit", params); // 应急演练管理演练内容查看
|
||||
export const setEmergencyDrillManagementContentDelete = (params) =>
|
||||
post("/emergencydrillcontent/delete", params); // 应急演练管理演练内容删除
|
||||
export const setEmergencyDrillManagementContentDeleteMultiple = (params) =>
|
||||
post("/emergencydrillcontent/deleteAll", params); // 应急演练管理演练内容删除多选
|
||||
export const setEmergencyDrillManagementContentAdd = (params) =>
|
||||
post("/emergencydrillcontent/add", params); // 应急演练管理演练内容添加
|
||||
export const setEmergencyDrillManagementContentEdit = (params) =>
|
||||
post("/emergencydrillcontent/edit", params); // 应急演练管理演练内容修改
|
||||
export const getEmergencyDrillManagementSceneList = (params) =>
|
||||
post("/emergencydrillscene/list", params); // 应急演练管理演练场景列表
|
||||
export const getEmergencyDrillManagementSceneView = (params) =>
|
||||
post("/emergencydrillscene/goEdit", params); // 应急演练管理演练场景查看
|
||||
export const setEmergencyDrillManagementSceneDelete = (params) =>
|
||||
post("/emergencydrillscene/delete", params); // 应急演练管理演练场景删除
|
||||
export const setEmergencyDrillManagementSceneDeleteMultiple = (params) =>
|
||||
post("/emergencydrillscene/deleteAll", params); // 应急演练管理演练场景删除多选
|
||||
export const setEmergencyDrillManagementSceneAdd = (params) =>
|
||||
post("/emergencydrillscene/add", params); // 应急演练管理演练场景添加
|
||||
export const setEmergencyDrillManagementSceneEdit = (params) =>
|
||||
post("/emergencydrillscene/edit", params); // 应急演练管理演练场景修改
|
||||
export const setEmergencyDrillManagementViewSummaryEvaluationAdd = (params) =>
|
||||
upload("/emergencydrillreport/add", params); // 应急演练管理总结评估添加
|
||||
export const setEmergencyDrillManagementViewSummaryEvaluationEdit = (params) =>
|
||||
upload("/emergencydrillreport/edit", params); // 应急演练管理总结评估修改
|
||||
export const setEmergencyDrillManagementViewSchemeTextAdd = (params) =>
|
||||
upload("/emergencydrillattachment/add", params); // 应急演练管理应急演练方案文本添加
|
||||
export const setEmergencyDrillManagementViewSchemeTextEdit = (params) =>
|
||||
upload("/emergencydrillattachment/edit", params); // 应急演练管理应急演练方案文本修改
|
|
@ -110,7 +110,6 @@ import { layoutFnGetDrivingType } from "@/assets/js/data_dictionary.js";
|
|||
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
|
||||
useListData(getSafetyDrivingTypeList);
|
||||
console.log(await getSafetyDrivingTypeList());
|
||||
const data = reactive({
|
||||
addOrEditDialog: {
|
||||
visible: false,
|
||||
|
|
|
@ -467,7 +467,6 @@ const fnGetData = async () => {
|
|||
data.form.CONFIRMINGPHONE = data.form.CONFIRM_PHONE;
|
||||
data.form.STARTADMINISTRATIVEAREA = data.form.DEPARTURE_ADDR;
|
||||
data.form.ENDDMINISTRATIVEAREA = data.form.GOAL_ADDR;
|
||||
console.log(data.form);
|
||||
};
|
||||
fnGetData();
|
||||
const fnClientChange = () => {
|
||||
|
@ -608,14 +607,14 @@ const fnLocation = async () => {
|
|||
StartOptionstMap.set(item.LOCATIONNAME, {
|
||||
LOCATIONNAME: item.LOCATIONNAME,
|
||||
LOCATIONNAME_ID: item.LOCATIONNAME_ID,
|
||||
LOCATION: []
|
||||
LOCATION: [],
|
||||
});
|
||||
}
|
||||
// 将联系人信息添加到CUSTOMERNAME对应的数组中。
|
||||
StartOptionstMap.get(item.LOCATIONNAME).LOCATION.push({
|
||||
ADDRESSDETAILS: item.ADDRESSDETAILS,
|
||||
ADDRESSDETAILS_ID: item.ADDRESSDETAILS_ID,
|
||||
ADMINISTRATIVEREGIONS: item.ADMINISTRATIVEREGIONS
|
||||
ADMINISTRATIVEREGIONS: item.ADMINISTRATIVEREGIONS,
|
||||
});
|
||||
});
|
||||
data.StartOptionsList = [...StartOptionstMap.values()];
|
||||
|
@ -626,14 +625,14 @@ const fnLocation = async () => {
|
|||
EndOptionsMap.set(item.LOCATIONNAME, {
|
||||
LOCATIONNAME: item.LOCATIONNAME,
|
||||
LOCATIONNAME_ID: item.LOCATIONNAME_ID,
|
||||
LOCATION: []
|
||||
LOCATION: [],
|
||||
});
|
||||
}
|
||||
// 将联系人信息添加到CUSTOMERNAME对应的数组中。
|
||||
EndOptionsMap.get(item.LOCATIONNAME).LOCATION.push({
|
||||
ADDRESSDETAILS: item.ADDRESSDETAILS,
|
||||
ADDRESSDETAILS_ID: item.ADDRESSDETAILS_ID,
|
||||
ADMINISTRATIVEREGIONS: item.ADMINISTRATIVEREGIONS
|
||||
ADMINISTRATIVEREGIONS: item.ADMINISTRATIVEREGIONS,
|
||||
});
|
||||
});
|
||||
data.EndOptionsList = [...EndOptionsMap.values()];
|
||||
|
@ -693,8 +692,6 @@ const fnSubmit = async () => {
|
|||
Object.keys(data.form).forEach((key) => {
|
||||
formData.append(key, data.form[key]);
|
||||
});
|
||||
console.log("委托方",data.form.ENTRUST_PERSON);
|
||||
console.log("确认方",data.form.CONFIRM_PERSON);
|
||||
await editSafetyWaybillreInfo(formData);
|
||||
ElMessage.success("修改成功");
|
||||
router.back();
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
<template>
|
||||
<layout-card>
|
||||
<el-tabs v-model="activeName" @tab-change="fnTabChange">
|
||||
<el-tab-pane
|
||||
v-for="item in tabsList"
|
||||
:key="item.name"
|
||||
:disabled="!EMERGENCYDRILLBASIC_ID"
|
||||
lazy
|
||||
:label="item.label"
|
||||
:name="item.name"
|
||||
>
|
||||
<component
|
||||
:is="item.component"
|
||||
:emergency-drill-basic-id="EMERGENCYDRILLBASIC_ID"
|
||||
:active-name="activeName"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useRoute, useRouter, onBeforeRouteUpdate } from "vue-router";
|
||||
import { ref, markRaw } from "vue";
|
||||
import EssentialInformation from "./components/essentialInformation.vue";
|
||||
import CommandingOrganization from "./components/commanding_organization/index.vue";
|
||||
import ExerciseContentAndScenario from "./components/exercise_content_scenario/index.vue";
|
||||
import SummaryEvaluation from "./components/summary_evaluation.vue";
|
||||
import SchemeText from "./components/scheme_text.vue";
|
||||
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const activeName = ref(route.query.activeName || "essentialInformation");
|
||||
const EMERGENCYDRILLBASIC_ID = ref(route.query.EMERGENCYDRILLBASIC_ID);
|
||||
const tabsList = ref([
|
||||
{
|
||||
label: "应急方案基本信息",
|
||||
name: "essentialInformation",
|
||||
component: markRaw(EssentialInformation),
|
||||
},
|
||||
{
|
||||
label: "应急指挥机构",
|
||||
name: "commandingOrganization",
|
||||
component: markRaw(CommandingOrganization),
|
||||
},
|
||||
{
|
||||
label: "演练内容及场景",
|
||||
name: "exerciseContentAndScenario",
|
||||
component: markRaw(ExerciseContentAndScenario),
|
||||
},
|
||||
{
|
||||
label: "总结评估",
|
||||
name: "summaryEvaluation",
|
||||
component: markRaw(SummaryEvaluation),
|
||||
},
|
||||
{
|
||||
label: "应急演练方案文本",
|
||||
name: "schemeText",
|
||||
component: markRaw(SchemeText),
|
||||
},
|
||||
]);
|
||||
const fnTabChange = (event) => {
|
||||
router.replace({
|
||||
path: route.path,
|
||||
query: {
|
||||
activeName: event,
|
||||
EMERGENCYDRILLBASIC_ID: EMERGENCYDRILLBASIC_ID.value,
|
||||
},
|
||||
});
|
||||
};
|
||||
onBeforeRouteUpdate((to) => {
|
||||
activeName.value = to.query.activeName;
|
||||
EMERGENCYDRILLBASIC_ID.value = to.query.EMERGENCYDRILLBASIC_ID;
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,57 @@
|
|||
<template>
|
||||
<el-row :gutter="24" class="pb-20">
|
||||
<el-col :span="12" style="border-right: 1px dashed var(--el-border-color)">
|
||||
<mechanism :emergency-drill-basic-id="emergencyDrillBasicId" />
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<personnel :emergency-drill-basic-id="emergencyDrillBasicId" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div class="tc pt-20" style="border-top: 1px dashed var(--el-border-color)">
|
||||
<el-button
|
||||
@click="
|
||||
router.replace({
|
||||
path: route.path,
|
||||
query: {
|
||||
activeName: 'essentialInformation',
|
||||
EMERGENCYDRILLBASIC_ID: emergencyDrillBasicId,
|
||||
},
|
||||
})
|
||||
"
|
||||
>
|
||||
上一步
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="
|
||||
router.replace({
|
||||
path: route.path,
|
||||
query: {
|
||||
activeName: 'exerciseContentAndScenario',
|
||||
EMERGENCYDRILLBASIC_ID: emergencyDrillBasicId,
|
||||
},
|
||||
})
|
||||
"
|
||||
>
|
||||
下一步
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import Mechanism from "./mechanism.vue";
|
||||
import Personnel from "./personnel.vue";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
defineProps({
|
||||
emergencyDrillBasicId: {
|
||||
type: String,
|
||||
default: "",
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,154 @@
|
|||
<template>
|
||||
<el-form
|
||||
:model="searchForm"
|
||||
label-width="80px"
|
||||
@submit.prevent="fnResetPagination"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="机构名称" prop="KEYWORDS">
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<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>
|
||||
<layout-table
|
||||
ref="tableRef"
|
||||
v-model:pagination="pagination"
|
||||
row-key="EMERGENCYDRILLORG_ID"
|
||||
:data="list"
|
||||
@get-data="fnGetData"
|
||||
>
|
||||
<el-table-column reserve-selection type="selection" width="55" />
|
||||
<el-table-column label="序号" width="60">
|
||||
<template #default="{ $index }">
|
||||
{{ serialNumber(pagination, $index) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="ORG_NAME" label="机构名称" />
|
||||
<el-table-column prop="ORG_UNIT_IDS" label="组成单位" />
|
||||
<el-table-column prop="ORG_DUTY" label="机构职责" />
|
||||
<el-table-column label="操作" width="120">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnAddOrEdit(row.EMERGENCYDRILLORG_ID, 'edit')"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnDelete(row.EMERGENCYDRILLORG_ID)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #button>
|
||||
<el-button type="primary" @click="fnAddOrEdit('', 'add')">
|
||||
新增
|
||||
</el-button>
|
||||
<el-button type="danger" @click="fnDeleteAll"> 批量删除 </el-button>
|
||||
</template>
|
||||
</layout-table>
|
||||
<add
|
||||
v-model:visible="data.addOrEditDialog.visible"
|
||||
v-model:form="data.addOrEditDialog.form"
|
||||
:type="data.addOrEditDialog.type"
|
||||
:emergency-drill-basic-id="emergencyDrillBasicId"
|
||||
@get-data="fnResetPagination"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { nextTick, reactive } from "vue";
|
||||
import {
|
||||
getEmergencyDrillManagementMechanismList,
|
||||
getEmergencyDrillManagementMechanismView,
|
||||
setEmergencyDrillManagementMechanismDelete,
|
||||
setEmergencyDrillManagementMechanismDeleteMultiple,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { serialNumber } from "@/assets/js/utils.js";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import Add from "./mechanism_add.vue";
|
||||
|
||||
const props = defineProps({
|
||||
emergencyDrillBasicId: {
|
||||
type: String,
|
||||
default: "",
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
const { list, searchForm, pagination, fnResetPagination, fnGetData, tableRef } =
|
||||
useListData(getEmergencyDrillManagementMechanismList, {
|
||||
otherParams: {
|
||||
EMERGENCYDRILLBASIC_ID: props.emergencyDrillBasicId,
|
||||
},
|
||||
});
|
||||
const data = reactive({
|
||||
addOrEditDialog: {
|
||||
visible: false,
|
||||
type: "",
|
||||
form: {
|
||||
ORG_NAME: "",
|
||||
ORG_UNIT_IDS: "",
|
||||
ORG_DUTY: "",
|
||||
},
|
||||
},
|
||||
});
|
||||
const fnDelete = debounce(
|
||||
1000,
|
||||
async (EMERGENCYDRILLORG_ID) => {
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyDrillManagementMechanismDelete({ EMERGENCYDRILLORG_ID });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
const fnDeleteAll = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
const selectionData = tableRef.value.getSelectionRows();
|
||||
if (selectionData.length === 0) {
|
||||
ElMessage.warning("请选中要删除的项");
|
||||
return;
|
||||
}
|
||||
const DATA_IDS = selectionData
|
||||
.map((item) => item.EMERGENCYDRILLORG_ID)
|
||||
.join(",");
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyDrillManagementMechanismDeleteMultiple({ DATA_IDS });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
const fnAddOrEdit = async (EMERGENCYDRILLORG_ID, type) => {
|
||||
data.addOrEditDialog.visible = true;
|
||||
await nextTick();
|
||||
data.addOrEditDialog.type = type;
|
||||
if (type === "edit") {
|
||||
const resData = await getEmergencyDrillManagementMechanismView({
|
||||
EMERGENCYDRILLORG_ID,
|
||||
});
|
||||
data.addOrEditDialog.form = resData.pd;
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,91 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
v-model="visible"
|
||||
:title="type === 'edit' ? '修改' : '新增'"
|
||||
@close="fnClose"
|
||||
>
|
||||
<el-form ref="formRef" :rules="rules" :model="form" label-width="150px">
|
||||
<el-form-item label="机构名称" prop="ORG_NAME">
|
||||
<el-input v-model="form.ORG_NAME" />
|
||||
</el-form-item>
|
||||
<el-form-item label="组成单位" prop="ORG_UNIT_IDS">
|
||||
<el-input v-model="form.ORG_UNIT_IDS" />
|
||||
</el-form-item>
|
||||
<el-form-item label="机构职责" prop="ORG_DUTY">
|
||||
<el-input v-model="form.ORG_DUTY" :rows="3" type="textarea" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="fnClose"> 取消 </el-button>
|
||||
<el-button type="primary" @click="fnSubmit"> 确定 </el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useVModels } from "@vueuse/core";
|
||||
import { ref } from "vue";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||
import {
|
||||
setEmergencyDrillManagementMechanismAdd,
|
||||
setEmergencyDrillManagementMechanismEdit,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { ElMessage } from "element-plus";
|
||||
|
||||
const props = defineProps({
|
||||
visible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
required: true,
|
||||
},
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => ({}),
|
||||
required: true,
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
default: "add",
|
||||
required: true,
|
||||
},
|
||||
emergencyDrillBasicId: {
|
||||
type: String,
|
||||
default: "",
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
||||
const { visible, form } = useVModels(props, emits);
|
||||
const rules = {
|
||||
ORG_NAME: [{ required: true, message: "机构名称不能为空", trigger: "blur" }],
|
||||
ORG_UNIT_IDS: [
|
||||
{ required: true, message: "组成单位不能为空", trigger: "blur" },
|
||||
],
|
||||
ORG_DUTY: [{ required: true, message: "机构职责不能为空", trigger: "blur" }],
|
||||
};
|
||||
const formRef = ref(null);
|
||||
const fnClose = () => {
|
||||
formRef.value.resetFields();
|
||||
visible.value = false;
|
||||
};
|
||||
const fnSubmit = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
await useFormValidate(formRef);
|
||||
const params = {
|
||||
...form.value,
|
||||
EMERGENCYDRILLBASIC_ID: props.emergencyDrillBasicId,
|
||||
};
|
||||
props.type === "add"
|
||||
? await setEmergencyDrillManagementMechanismAdd(params)
|
||||
: await setEmergencyDrillManagementMechanismEdit(params);
|
||||
ElMessage.success("操作成功");
|
||||
fnClose();
|
||||
emits("get-data");
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,179 @@
|
|||
<template>
|
||||
<el-form
|
||||
:model="searchForm"
|
||||
label-width="80px"
|
||||
@submit.prevent="fnResetPagination"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="人员姓名" prop="KEYWORDS">
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<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>
|
||||
<layout-table
|
||||
ref="tableRef"
|
||||
v-model:pagination="pagination"
|
||||
row-key="EMERGENCYDRILLORGMEMBER_ID"
|
||||
:data="list"
|
||||
@get-data="fnGetData"
|
||||
>
|
||||
<el-table-column reserve-selection type="selection" width="55" />
|
||||
<el-table-column label="序号" width="60">
|
||||
<template #default="{ $index }">
|
||||
{{ serialNumber(pagination, $index) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="EMERGENCYDRILLORG_NAME"
|
||||
label="应急指挥机构"
|
||||
width="110"
|
||||
/>
|
||||
<el-table-column prop="MEMBER_NAME" label="姓名" />
|
||||
<el-table-column prop="MEMBER_UNIT" label="单位" />
|
||||
<el-table-column prop="MEMBER_DUTY" label="职务" />
|
||||
<el-table-column prop="MEMBER_PHONE" label="联系电话" width="110" />
|
||||
<el-table-column
|
||||
prop="MEMBER_EMERGENCY_PHONE"
|
||||
label="紧急联系电话"
|
||||
width="110"
|
||||
/>
|
||||
<el-table-column label="操作" width="120">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnAddOrEdit(row.EMERGENCYDRILLORGMEMBER_ID, 'edit')"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnDelete(row.EMERGENCYDRILLORGMEMBER_ID)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #button>
|
||||
<el-button type="primary" @click="fnAddOrEdit('', 'add')">
|
||||
新增
|
||||
</el-button>
|
||||
<el-button type="danger" @click="fnDeleteAll"> 批量删除 </el-button>
|
||||
</template>
|
||||
</layout-table>
|
||||
<add
|
||||
v-model:visible="data.addOrEditDialog.visible"
|
||||
v-model:form="data.addOrEditDialog.form"
|
||||
:type="data.addOrEditDialog.type"
|
||||
:emergency-drill-basic-id="emergencyDrillBasicId"
|
||||
:commanding-organization-list="
|
||||
data.addOrEditDialog.commandingOrganizationList
|
||||
"
|
||||
@get-data="fnResetPagination"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { nextTick, reactive } from "vue";
|
||||
import {
|
||||
getEmergencyDrillManagementPersonnelList,
|
||||
getEmergencyDrillManagementPersonnelView,
|
||||
getEmergencyDrillManagementViewCommandingOrganization,
|
||||
setEmergencyDrillManagementPersonnelDelete,
|
||||
setEmergencyDrillManagementPersonnelDeleteMultiple,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { serialNumber } from "@/assets/js/utils.js";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import Add from "./personnel_add.vue";
|
||||
|
||||
const props = defineProps({
|
||||
emergencyDrillBasicId: {
|
||||
type: String,
|
||||
default: "",
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
const { list, searchForm, pagination, fnResetPagination, fnGetData, tableRef } =
|
||||
useListData(getEmergencyDrillManagementPersonnelList, {
|
||||
otherParams: {
|
||||
EMERGENCYDRILLBASIC_ID: props.emergencyDrillBasicId,
|
||||
},
|
||||
});
|
||||
const data = reactive({
|
||||
addOrEditDialog: {
|
||||
visible: false,
|
||||
type: "",
|
||||
commandingOrganizationList: [],
|
||||
form: {
|
||||
EMERGENCYDRILLORG_ID: "",
|
||||
MEMBER_NAME: "",
|
||||
MEMBER_UNIT: "",
|
||||
MEMBER_DUTY: "",
|
||||
MEMBER_PHONE: "",
|
||||
MEMBER_EMERGENCY_PHONE: "",
|
||||
},
|
||||
},
|
||||
});
|
||||
const fnDelete = debounce(
|
||||
1000,
|
||||
async (EMERGENCYDRILLORGMEMBER_ID) => {
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyDrillManagementPersonnelDelete({
|
||||
EMERGENCYDRILLORGMEMBER_ID,
|
||||
});
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
const fnDeleteAll = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
const selectionData = tableRef.value.getSelectionRows();
|
||||
if (selectionData.length === 0) {
|
||||
ElMessage.warning("请选中要删除的项");
|
||||
return;
|
||||
}
|
||||
const DATA_IDS = selectionData
|
||||
.map((item) => item.EMERGENCYDRILLORGMEMBER_ID)
|
||||
.join(",");
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyDrillManagementPersonnelDeleteMultiple({ DATA_IDS });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
const fnAddOrEdit = async (EMERGENCYDRILLORGMEMBER_ID, type) => {
|
||||
data.addOrEditDialog.visible = true;
|
||||
await nextTick();
|
||||
data.addOrEditDialog.type = type;
|
||||
const resData = await getEmergencyDrillManagementViewCommandingOrganization({
|
||||
EMERGENCYDRILLBASIC_ID: props.emergencyDrillBasicId,
|
||||
});
|
||||
data.addOrEditDialog.commandingOrganizationList = resData.list;
|
||||
if (type === "edit") {
|
||||
const resData = await getEmergencyDrillManagementPersonnelView({
|
||||
EMERGENCYDRILLORGMEMBER_ID,
|
||||
});
|
||||
data.addOrEditDialog.form = resData.pd;
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,135 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
v-model="visible"
|
||||
:title="type === 'edit' ? '修改' : '新增'"
|
||||
@close="fnClose"
|
||||
>
|
||||
<el-form ref="formRef" :rules="rules" :model="form" label-width="150px">
|
||||
<el-form-item label="应急指挥机构" prop="EMERGENCYDRILLORG_ID">
|
||||
<el-select v-model="form.EMERGENCYDRILLORG_ID">
|
||||
<el-option
|
||||
v-for="item in commandingOrganizationList"
|
||||
:key="item.EMERGENCYDRILLORG_ID"
|
||||
:label="item.ORG_NAME"
|
||||
:value="item.EMERGENCYDRILLORG_ID"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名" prop="MEMBER_NAME">
|
||||
<el-input v-model="form.MEMBER_NAME" />
|
||||
</el-form-item>
|
||||
<el-form-item label="单位" prop="MEMBER_UNIT">
|
||||
<el-input v-model="form.MEMBER_UNIT" />
|
||||
</el-form-item>
|
||||
<el-form-item label="职务" prop="MEMBER_DUTY">
|
||||
<el-input v-model="form.MEMBER_DUTY" />
|
||||
</el-form-item>
|
||||
<el-form-item label="联系电话" prop="MEMBER_PHONE">
|
||||
<el-input v-model="form.MEMBER_PHONE" />
|
||||
</el-form-item>
|
||||
<el-form-item label="紧急联系电话" prop="MEMBER_EMERGENCY_PHONE">
|
||||
<el-input v-model="form.MEMBER_EMERGENCY_PHONE" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="fnClose"> 取消 </el-button>
|
||||
<el-button type="primary" @click="fnSubmit"> 确定 </el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useVModels } from "@vueuse/core";
|
||||
import { ref } from "vue";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||
import {
|
||||
setEmergencyDrillManagementPersonnelAdd,
|
||||
setEmergencyDrillManagementPersonnelEdit,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { ElMessage } from "element-plus";
|
||||
|
||||
const props = defineProps({
|
||||
visible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
required: true,
|
||||
},
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => ({}),
|
||||
required: true,
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
default: "add",
|
||||
required: true,
|
||||
},
|
||||
emergencyDrillBasicId: {
|
||||
type: String,
|
||||
default: "",
|
||||
required: true,
|
||||
},
|
||||
commandingOrganizationList: {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
||||
const { visible, form } = useVModels(props, emits);
|
||||
const rules = {
|
||||
EMERGENCYDRILLORG_ID: [
|
||||
{
|
||||
required: true,
|
||||
message: "应急指挥机构不能为空",
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
MEMBER_NAME: [{ required: true, message: "姓名不能为空", trigger: "blur" }],
|
||||
MEMBER_UNIT: [{ required: true, message: "单位不能为空", trigger: "blur" }],
|
||||
MEMBER_DUTY: [{ required: true, message: "职务不能为空", trigger: "blur" }],
|
||||
MEMBER_PHONE: [
|
||||
{ required: true, message: "请输入手机号码", trigger: "blur" },
|
||||
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
|
||||
{
|
||||
pattern:
|
||||
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
|
||||
message: "请输入正确的手机号码",
|
||||
},
|
||||
],
|
||||
MEMBER_EMERGENCY_PHONE: [
|
||||
{ required: true, message: "请输入紧急联系电话", trigger: "blur" },
|
||||
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
|
||||
{
|
||||
pattern:
|
||||
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
|
||||
message: "请输入正确的手机号码",
|
||||
},
|
||||
],
|
||||
};
|
||||
const formRef = ref(null);
|
||||
const fnClose = () => {
|
||||
formRef.value.resetFields();
|
||||
visible.value = false;
|
||||
};
|
||||
const fnSubmit = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
await useFormValidate(formRef);
|
||||
const params = {
|
||||
...form.value,
|
||||
EMERGENCYDRILLBASIC_ID: props.emergencyDrillBasicId,
|
||||
};
|
||||
props.type === "add"
|
||||
? await setEmergencyDrillManagementPersonnelAdd(params)
|
||||
: await setEmergencyDrillManagementPersonnelEdit(params);
|
||||
ElMessage.success("操作成功");
|
||||
fnClose();
|
||||
emits("get-data");
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,138 @@
|
|||
<template>
|
||||
<el-form ref="formRef" :rules="rules" :model="form" label-width="140px">
|
||||
<el-form-item label="应急演练方案名称" prop="DRILL_NAME">
|
||||
<el-input v-model="form.DRILL_NAME" />
|
||||
</el-form-item>
|
||||
<el-form-item label="演练单位" prop="DRILL_UNIT">
|
||||
<el-input v-model="form.DRILL_UNIT" />
|
||||
</el-form-item>
|
||||
<el-form-item label="演练时间" prop="DRILL_DATE">
|
||||
<el-date-picker
|
||||
v-model="form.DRILL_DATE"
|
||||
value-format="YYYY-MM-DD"
|
||||
format="YYYY-MM-DD"
|
||||
type="date"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="演练目的" prop="DRILL_PURPOSE">
|
||||
<el-input
|
||||
v-model="form.DRILL_PURPOSE"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 3 }"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="演练特点" prop="DRILL_PROPERTY">
|
||||
<el-input
|
||||
v-model="form.DRILL_PROPERTY"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 3 }"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="应急演练地点" prop="DRILL_PLACE">
|
||||
<el-input v-model="form.DRILL_PLACE" />
|
||||
</el-form-item>
|
||||
<el-form-item label="参加人员" prop="DRILL_ATTENDERS">
|
||||
<el-input v-model="form.DRILL_ATTENDERS" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="tc mt-10">
|
||||
<el-button type="primary" @click="fnSubmit(0)">保存</el-button>
|
||||
<el-button type="success" @click="fnSubmit(1)">保存并下一步</el-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from "vue";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import { ElMessage } from "element-plus";
|
||||
import {
|
||||
getEmergencyDrillManagementViewInfo,
|
||||
setEmergencyDrillManagementInfoAdd,
|
||||
setEmergencyDrillManagementInfoEdit,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||
|
||||
const props = defineProps({
|
||||
emergencyDrillBasicId: {
|
||||
type: String,
|
||||
default: "",
|
||||
required: true,
|
||||
},
|
||||
activeName: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const rules = {
|
||||
DRILL_NAME: [
|
||||
{ required: true, message: "应急演练方案名称不能为空", trigger: "blur" },
|
||||
],
|
||||
DRILL_UNIT: [
|
||||
{ required: true, message: "演练单位不能为空", trigger: "blur" },
|
||||
],
|
||||
DRILL_DATE: [
|
||||
{ required: true, message: "演练时间不能为空", trigger: "change" },
|
||||
],
|
||||
DRILL_PURPOSE: [
|
||||
{ required: true, message: "演练目的不能为空", trigger: "blur" },
|
||||
],
|
||||
DRILL_PROPERTY: [
|
||||
{ required: true, message: "演练特点不能为空", trigger: "blur" },
|
||||
],
|
||||
DRILL_PLACE: [
|
||||
{ required: true, message: "应急演练地点不能为空", trigger: "blur" },
|
||||
],
|
||||
DRILL_ATTENDERS: [
|
||||
{ required: true, message: "参加人员不能为空", trigger: "blur" },
|
||||
],
|
||||
};
|
||||
const form = ref({
|
||||
DRILL_NAME: "",
|
||||
DRILL_UNIT: "",
|
||||
DRILL_DATE: "",
|
||||
DRILL_PURPOSE: "",
|
||||
DRILL_PROPERTY: "",
|
||||
DRILL_PLACE: "",
|
||||
DRILL_ATTENDERS: "",
|
||||
});
|
||||
const formRef = ref(null);
|
||||
const fnGetData = async () => {
|
||||
if (!props.emergencyDrillBasicId) return;
|
||||
const resData = await getEmergencyDrillManagementViewInfo({
|
||||
EMERGENCYDRILLBASIC_ID: props.emergencyDrillBasicId,
|
||||
});
|
||||
form.value = resData.pd;
|
||||
};
|
||||
fnGetData();
|
||||
const fnSubmit = debounce(
|
||||
1000,
|
||||
async (type) => {
|
||||
await useFormValidate(formRef);
|
||||
let EMERGENCYDRILLBASIC_ID = props.emergencyDrillBasicId;
|
||||
if (props.emergencyDrillBasicId)
|
||||
await setEmergencyDrillManagementInfoEdit({ ...form.value });
|
||||
else {
|
||||
const resData = await setEmergencyDrillManagementInfoAdd({
|
||||
...form.value,
|
||||
});
|
||||
EMERGENCYDRILLBASIC_ID = resData.pd.EMERGENCYDRILLBASIC_ID;
|
||||
}
|
||||
ElMessage.success("操作成功");
|
||||
let activeName = props.activeName;
|
||||
if (type === 1) activeName = "commandingOrganization";
|
||||
await router.replace({
|
||||
path: route.path,
|
||||
query: {
|
||||
activeName,
|
||||
EMERGENCYDRILLBASIC_ID,
|
||||
},
|
||||
});
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,151 @@
|
|||
<template>
|
||||
<el-form
|
||||
:model="searchForm"
|
||||
label-width="80px"
|
||||
@submit.prevent="fnResetPagination"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="演练内容" prop="KEYWORDS">
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<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>
|
||||
<layout-table
|
||||
ref="tableRef"
|
||||
v-model:pagination="pagination"
|
||||
row-key="EMERGENCYDRILLCONTENT_ID"
|
||||
:data="list"
|
||||
@get-data="fnGetData"
|
||||
>
|
||||
<el-table-column reserve-selection type="selection" width="55" />
|
||||
<el-table-column label="序号" width="60">
|
||||
<template #default="{ $index }">
|
||||
{{ serialNumber(pagination, $index) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="DRILL_CONTENT" label="演练内容" />
|
||||
<el-table-column label="操作" width="120">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnAddOrEdit(row.EMERGENCYDRILLCONTENT_ID, 'edit')"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnDelete(row.EMERGENCYDRILLCONTENT_ID)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #button>
|
||||
<el-button type="primary" @click="fnAddOrEdit('', 'add')">
|
||||
新增
|
||||
</el-button>
|
||||
<el-button type="danger" @click="fnDeleteAll"> 批量删除 </el-button>
|
||||
</template>
|
||||
</layout-table>
|
||||
<add
|
||||
v-model:visible="data.addOrEditDialog.visible"
|
||||
v-model:form="data.addOrEditDialog.form"
|
||||
:type="data.addOrEditDialog.type"
|
||||
:emergency-drill-basic-id="emergencyDrillBasicId"
|
||||
@get-data="fnResetPagination"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber } from "@/assets/js/utils.js";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import {
|
||||
getEmergencyDrillManagementContentList,
|
||||
getEmergencyDrillManagementContentView,
|
||||
setEmergencyDrillManagementContentDelete,
|
||||
setEmergencyDrillManagementContentDeleteMultiple,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { nextTick, reactive } from "vue";
|
||||
import Add from "./content_add.vue";
|
||||
|
||||
const props = defineProps({
|
||||
emergencyDrillBasicId: {
|
||||
type: String,
|
||||
default: "",
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
|
||||
useListData(getEmergencyDrillManagementContentList, {
|
||||
otherParams: { EMERGENCYDRILLBASIC_ID: props.emergencyDrillBasicId },
|
||||
});
|
||||
const data = reactive({
|
||||
addOrEditDialog: {
|
||||
visible: false,
|
||||
type: "",
|
||||
form: {
|
||||
DRILL_CONTENT: "",
|
||||
DRILL_CONTENT_NUM: "",
|
||||
},
|
||||
},
|
||||
});
|
||||
const fnDelete = debounce(
|
||||
1000,
|
||||
async (EMERGENCYDRILLCONTENT_ID) => {
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyDrillManagementContentDelete({
|
||||
EMERGENCYDRILLCONTENT_ID,
|
||||
});
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
const fnDeleteAll = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
const selectionData = tableRef.value.getSelectionRows();
|
||||
if (selectionData.length === 0) {
|
||||
ElMessage.warning("请选中要删除的项");
|
||||
return;
|
||||
}
|
||||
const DATA_IDS = selectionData
|
||||
.map((item) => item.EMERGENCYDRILLCONTENT_ID)
|
||||
.join(",");
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyDrillManagementContentDeleteMultiple({ DATA_IDS });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
const fnAddOrEdit = async (EMERGENCYDRILLCONTENT_ID, type) => {
|
||||
data.addOrEditDialog.visible = true;
|
||||
await nextTick();
|
||||
data.addOrEditDialog.type = type;
|
||||
if (type === "edit") {
|
||||
const resData = await getEmergencyDrillManagementContentView({
|
||||
EMERGENCYDRILLCONTENT_ID,
|
||||
});
|
||||
data.addOrEditDialog.form = resData.pd;
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,89 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
v-model="visible"
|
||||
:title="type === 'edit' ? '修改' : '新增'"
|
||||
@close="fnClose"
|
||||
>
|
||||
<el-form ref="formRef" :rules="rules" :model="form" label-width="150px">
|
||||
<el-form-item label="演练内容" prop="DRILL_CONTENT">
|
||||
<el-input v-model="form.DRILL_CONTENT" />
|
||||
</el-form-item>
|
||||
<el-form-item label="演练内容序号" prop="DRILL_CONTENT_NUM">
|
||||
<el-input v-model="form.DRILL_CONTENT_NUM" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="fnClose"> 取消 </el-button>
|
||||
<el-button type="primary" @click="fnSubmit"> 确定 </el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { debounce } from "throttle-debounce";
|
||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||
import {
|
||||
setEmergencyDrillManagementContentAdd,
|
||||
setEmergencyDrillManagementContentEdit,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { useVModels } from "@vueuse/core";
|
||||
import { ref } from "vue";
|
||||
|
||||
const props = defineProps({
|
||||
visible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
required: true,
|
||||
},
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => ({}),
|
||||
required: true,
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
default: "add",
|
||||
required: true,
|
||||
},
|
||||
emergencyDrillBasicId: {
|
||||
type: String,
|
||||
default: "",
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
||||
const { visible, form } = useVModels(props, emits);
|
||||
const rules = {
|
||||
DRILL_CONTENT: [
|
||||
{ required: true, message: "演练内容不能为空", trigger: "blur" },
|
||||
],
|
||||
DRILL_CONTENT_NUM: [
|
||||
{ required: true, message: "演练内容序号不能为空", trigger: "blur" },
|
||||
],
|
||||
};
|
||||
const formRef = ref(null);
|
||||
const fnClose = () => {
|
||||
formRef.value.resetFields();
|
||||
visible.value = false;
|
||||
};
|
||||
const fnSubmit = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
await useFormValidate(formRef);
|
||||
const params = {
|
||||
...form.value,
|
||||
EMERGENCYDRILLBASIC_ID: props.emergencyDrillBasicId,
|
||||
};
|
||||
props.type === "add"
|
||||
? await setEmergencyDrillManagementContentAdd(params)
|
||||
: await setEmergencyDrillManagementContentEdit(params);
|
||||
ElMessage.success("操作成功");
|
||||
fnClose();
|
||||
emits("get-data");
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,57 @@
|
|||
<template>
|
||||
<el-row :gutter="24" class="pb-20">
|
||||
<el-col :span="12" style="border-right: 1px dashed var(--el-border-color)">
|
||||
<content :emergency-drill-basic-id="emergencyDrillBasicId" />
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<scene :emergency-drill-basic-id="emergencyDrillBasicId" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div class="tc pt-20" style="border-top: 1px dashed var(--el-border-color)">
|
||||
<el-button
|
||||
@click="
|
||||
router.replace({
|
||||
path: route.path,
|
||||
query: {
|
||||
activeName: 'commandingOrganization',
|
||||
EMERGENCYDRILLBASIC_ID: emergencyDrillBasicId,
|
||||
},
|
||||
})
|
||||
"
|
||||
>
|
||||
上一步
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="
|
||||
router.replace({
|
||||
path: route.path,
|
||||
query: {
|
||||
activeName: 'summaryEvaluation',
|
||||
EMERGENCYDRILLBASIC_ID: emergencyDrillBasicId,
|
||||
},
|
||||
})
|
||||
"
|
||||
>
|
||||
下一步
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import Content from "./content.vue";
|
||||
import Scene from "./scene.vue";
|
||||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
defineProps({
|
||||
emergencyDrillBasicId: {
|
||||
type: String,
|
||||
default: "",
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,151 @@
|
|||
<template>
|
||||
<el-form
|
||||
:model="searchForm"
|
||||
label-width="80px"
|
||||
@submit.prevent="fnResetPagination"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="演练场景" prop="KEYWORDS">
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<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>
|
||||
<layout-table
|
||||
ref="tableRef"
|
||||
v-model:pagination="pagination"
|
||||
row-key="EMERGENCYDRILLSCENE_ID"
|
||||
:data="list"
|
||||
@get-data="fnGetData"
|
||||
>
|
||||
<el-table-column reserve-selection type="selection" width="55" />
|
||||
<el-table-column label="序号" width="60">
|
||||
<template #default="{ $index }">
|
||||
{{ serialNumber(pagination, $index) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="DRILL_SCENE" label="演练场景" />
|
||||
<el-table-column label="操作" width="120">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnAddOrEdit(row.EMERGENCYDRILLSCENE_ID, 'edit')"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnDelete(row.EMERGENCYDRILLSCENE_ID)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #button>
|
||||
<el-button type="primary" @click="fnAddOrEdit('', 'add')">
|
||||
新增
|
||||
</el-button>
|
||||
<el-button type="danger" @click="fnDeleteAll"> 批量删除</el-button>
|
||||
</template>
|
||||
</layout-table>
|
||||
<add
|
||||
v-model:visible="data.addOrEditDialog.visible"
|
||||
v-model:form="data.addOrEditDialog.form"
|
||||
:type="data.addOrEditDialog.type"
|
||||
:emergency-drill-basic-id="emergencyDrillBasicId"
|
||||
@get-data="fnResetPagination"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber } from "@/assets/js/utils.js";
|
||||
import {
|
||||
getEmergencyDrillManagementSceneList,
|
||||
getEmergencyDrillManagementSceneView,
|
||||
setEmergencyDrillManagementSceneDelete,
|
||||
setEmergencyDrillManagementSceneDeleteMultiple,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { nextTick, reactive } from "vue";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import Add from "./scene_add.vue";
|
||||
|
||||
const props = defineProps({
|
||||
emergencyDrillBasicId: {
|
||||
type: String,
|
||||
default: "",
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
|
||||
useListData(getEmergencyDrillManagementSceneList, {
|
||||
otherParams: { EMERGENCYDRILLBASIC_ID: props.emergencyDrillBasicId },
|
||||
});
|
||||
const data = reactive({
|
||||
addOrEditDialog: {
|
||||
visible: false,
|
||||
type: "",
|
||||
form: {
|
||||
DRILL_SCENE: "",
|
||||
DRILL_SCENE_NUM: "",
|
||||
},
|
||||
},
|
||||
});
|
||||
const fnDelete = debounce(
|
||||
1000,
|
||||
async (EMERGENCYDRILLSCENE_ID) => {
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyDrillManagementSceneDelete({
|
||||
EMERGENCYDRILLSCENE_ID,
|
||||
});
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
const fnDeleteAll = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
const selectionData = tableRef.value.getSelectionRows();
|
||||
if (selectionData.length === 0) {
|
||||
ElMessage.warning("请选中要删除的项");
|
||||
return;
|
||||
}
|
||||
const DATA_IDS = selectionData
|
||||
.map((item) => item.EMERGENCYDRILLSCENE_ID)
|
||||
.join(",");
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyDrillManagementSceneDeleteMultiple({ DATA_IDS });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
const fnAddOrEdit = async (EMERGENCYDRILLSCENE_ID, type) => {
|
||||
data.addOrEditDialog.visible = true;
|
||||
await nextTick();
|
||||
data.addOrEditDialog.type = type;
|
||||
if (type === "edit") {
|
||||
const resData = await getEmergencyDrillManagementSceneView({
|
||||
EMERGENCYDRILLSCENE_ID,
|
||||
});
|
||||
data.addOrEditDialog.form = resData.pd;
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,88 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
v-model="visible"
|
||||
:title="type === 'edit' ? '修改' : '新增'"
|
||||
@close="fnClose"
|
||||
>
|
||||
<el-form ref="formRef" :rules="rules" :model="form" label-width="150px">
|
||||
<el-form-item label="演练场景" prop="DRILL_SCENE">
|
||||
<el-input v-model="form.DRILL_SCENE" />
|
||||
</el-form-item>
|
||||
<el-form-item label="演练场景序号" prop="DRILL_SCENE_NUM">
|
||||
<el-input v-model="form.DRILL_SCENE_NUM" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="fnClose"> 取消</el-button>
|
||||
<el-button type="primary" @click="fnSubmit"> 确定 </el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { debounce } from "throttle-debounce";
|
||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||
import {
|
||||
setEmergencyDrillManagementSceneAdd,
|
||||
setEmergencyDrillManagementSceneEdit,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { useVModels } from "@vueuse/core";
|
||||
import { ref } from "vue";
|
||||
const props = defineProps({
|
||||
visible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
required: true,
|
||||
},
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => ({}),
|
||||
required: true,
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
default: "add",
|
||||
required: true,
|
||||
},
|
||||
emergencyDrillBasicId: {
|
||||
type: String,
|
||||
default: "",
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
||||
const { visible, form } = useVModels(props, emits);
|
||||
const rules = {
|
||||
DRILL_SCENE: [
|
||||
{ required: true, message: "演练场景不能为空", trigger: "blur" },
|
||||
],
|
||||
DRILL_SCENE_NUM: [
|
||||
{ required: true, message: "演练场景序号不能为空", trigger: "blur" },
|
||||
],
|
||||
};
|
||||
const formRef = ref(null);
|
||||
const fnClose = () => {
|
||||
formRef.value.resetFields();
|
||||
visible.value = false;
|
||||
};
|
||||
const fnSubmit = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
await useFormValidate(formRef);
|
||||
const params = {
|
||||
...form.value,
|
||||
EMERGENCYDRILLBASIC_ID: props.emergencyDrillBasicId,
|
||||
};
|
||||
props.type === "add"
|
||||
? await setEmergencyDrillManagementSceneAdd(params)
|
||||
: await setEmergencyDrillManagementSceneEdit(params);
|
||||
ElMessage.success("操作成功");
|
||||
fnClose();
|
||||
emits("get-data");
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,99 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-form ref="formRef" :rules="rules" :model="form" label-width="80px">
|
||||
<el-form-item label="附件" prop="file">
|
||||
<layout-upload v-model:file-list="form.file" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="tc mt-10">
|
||||
<el-button
|
||||
@click="
|
||||
router.replace({
|
||||
path: route.path,
|
||||
query: {
|
||||
activeName: 'summaryEvaluation',
|
||||
EMERGENCYDRILLBASIC_ID: emergencyDrillBasicId,
|
||||
},
|
||||
})
|
||||
"
|
||||
>
|
||||
上一步
|
||||
</el-button>
|
||||
<el-button type="primary" @click="fnSubmit">保存</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from "vue";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import {
|
||||
getEmergencyDrillManagementViewSchemeText,
|
||||
setEmergencyDrillManagementViewSchemeTextAdd,
|
||||
setEmergencyDrillManagementViewSchemeTextEdit,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import { ElMessage } from "element-plus";
|
||||
import LayoutUpload from "@/components/upload/index.vue";
|
||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||
|
||||
const props = defineProps({
|
||||
emergencyDrillBasicId: {
|
||||
type: String,
|
||||
default: "",
|
||||
required: true,
|
||||
},
|
||||
activeName: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
const FILE_URL = import.meta.env.VITE_FILE_URL;
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const rules = {
|
||||
file: [{ required: true, message: "附件不能为空", trigger: "blur" }],
|
||||
};
|
||||
const formRef = ref(null);
|
||||
const form = ref({
|
||||
file: [],
|
||||
});
|
||||
let requestType = "add";
|
||||
const fnGetData = async () => {
|
||||
const resData = await getEmergencyDrillManagementViewSchemeText({
|
||||
EMERGENCYDRILLBASIC_ID: props.emergencyDrillBasicId,
|
||||
});
|
||||
if (!resData.pd) return;
|
||||
form.value = resData.pd;
|
||||
form.value.file = [
|
||||
{
|
||||
url: FILE_URL + resData.pd.DRILL_ATTACHMENT_FILE_PATH,
|
||||
name: resData.pd.DRILL_ATTACHMENT_FILE_NAME,
|
||||
},
|
||||
];
|
||||
requestType = "edit";
|
||||
};
|
||||
fnGetData();
|
||||
const fnSubmit = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
await useFormValidate(formRef);
|
||||
const formData = new FormData();
|
||||
Object.keys(form.value).forEach((key) => {
|
||||
formData.append(key, form.value[key]);
|
||||
});
|
||||
formData.delete("file");
|
||||
formData.append("file", form.value.file[0].raw);
|
||||
formData.append("DRILL_REPORT_FILE_NAME", form.value.file[0].name);
|
||||
formData.append("EMERGENCYDRILLBASIC_ID", props.emergencyDrillBasicId);
|
||||
requestType === "add"
|
||||
? await setEmergencyDrillManagementViewSchemeTextAdd(formData)
|
||||
: await setEmergencyDrillManagementViewSchemeTextEdit(formData);
|
||||
ElMessage.success("操作成功");
|
||||
router.back();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,119 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-form ref="formRef" :rules="rules" :model="form" label-width="80px">
|
||||
<el-form-item label="总结评估" prop="DRILL_REPORT">
|
||||
<el-input
|
||||
v-model="form.DRILL_REPORT"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 3 }"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="file">
|
||||
<layout-upload v-model:file-list="form.file" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="tc mt-10">
|
||||
<el-button
|
||||
@click="
|
||||
router.replace({
|
||||
path: route.path,
|
||||
query: {
|
||||
activeName: 'exerciseContentAndScenario',
|
||||
EMERGENCYDRILLBASIC_ID: emergencyDrillBasicId,
|
||||
},
|
||||
})
|
||||
"
|
||||
>
|
||||
上一步
|
||||
</el-button>
|
||||
<el-button type="primary" @click="fnSubmit(0)">保存</el-button>
|
||||
<el-button type="success" @click="fnSubmit(1)">保存并下一步</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from "vue";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import {
|
||||
getEmergencyDrillManagementViewSummaryEvaluation,
|
||||
setEmergencyDrillManagementViewSummaryEvaluationAdd,
|
||||
setEmergencyDrillManagementViewSummaryEvaluationEdit,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import { ElMessage } from "element-plus";
|
||||
import LayoutUpload from "@/components/upload/index.vue";
|
||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||
|
||||
const props = defineProps({
|
||||
emergencyDrillBasicId: {
|
||||
type: String,
|
||||
default: "",
|
||||
required: true,
|
||||
},
|
||||
activeName: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
const FILE_URL = import.meta.env.VITE_FILE_URL;
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const rules = {
|
||||
DRILL_REPORT: [
|
||||
{ required: true, message: "总结评估不能为空", trigger: "blur" },
|
||||
],
|
||||
file: [{ required: true, message: "附件不能为空", trigger: "blur" }],
|
||||
};
|
||||
const formRef = ref(null);
|
||||
const form = ref({
|
||||
DRILL_REPORT: "",
|
||||
file: [],
|
||||
});
|
||||
let requestType = "add";
|
||||
const fnGetData = async () => {
|
||||
const resData = await getEmergencyDrillManagementViewSummaryEvaluation({
|
||||
EMERGENCYDRILLBASIC_ID: props.emergencyDrillBasicId,
|
||||
});
|
||||
if (!resData.pd) return;
|
||||
form.value = resData.pd;
|
||||
form.value.file = [
|
||||
{
|
||||
url: FILE_URL + resData.pd.DRILL_REPORT_FILE_PATH,
|
||||
name: resData.pd.DRILL_REPORT_FILE_NAME,
|
||||
},
|
||||
];
|
||||
requestType = "edit";
|
||||
};
|
||||
fnGetData();
|
||||
const fnSubmit = debounce(
|
||||
1000,
|
||||
async (type) => {
|
||||
await useFormValidate(formRef);
|
||||
const formData = new FormData();
|
||||
Object.keys(form.value).forEach((key) => {
|
||||
formData.append(key, form.value[key]);
|
||||
});
|
||||
formData.delete("file");
|
||||
formData.append("file", form.value.file[0].raw);
|
||||
formData.append("DRILL_REPORT_FILE_NAME", form.value.file[0].name);
|
||||
formData.append("EMERGENCYDRILLBASIC_ID", props.emergencyDrillBasicId);
|
||||
requestType === "add"
|
||||
? await setEmergencyDrillManagementViewSummaryEvaluationAdd(formData)
|
||||
: await setEmergencyDrillManagementViewSummaryEvaluationEdit(formData);
|
||||
ElMessage.success("操作成功");
|
||||
let activeName = props.activeName;
|
||||
if (type === 1) activeName = "schemeText";
|
||||
await router.replace({
|
||||
path: route.path,
|
||||
query: {
|
||||
activeName,
|
||||
EMERGENCYDRILLBASIC_ID: props.emergencyDrillBasicId,
|
||||
},
|
||||
});
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,192 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
<el-form
|
||||
:model="searchForm"
|
||||
label-width="80px"
|
||||
@submit.prevent="fnResetPaginationTransfer"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item
|
||||
label="应急演练方案名称"
|
||||
prop="KEYWORDS"
|
||||
label-width="140px"
|
||||
>
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="演练时间" prop="CATEGORY">
|
||||
<el-date-picker
|
||||
v-model="searchForm.dates"
|
||||
type="daterange"
|
||||
value-format="YYYY-MM-DD"
|
||||
format="YYYY-MM-DD"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label-width="10px">
|
||||
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||
<el-button native-type="reset" @click="fnResetPaginationTransfer">
|
||||
重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<layout-card>
|
||||
<layout-table
|
||||
ref="tableRef"
|
||||
v-model:pagination="pagination"
|
||||
row-key="EMERGENCYDRILLBASIC_ID"
|
||||
:data="list"
|
||||
@get-data="fnGetDataTransfer"
|
||||
>
|
||||
<el-table-column reserve-selection type="selection" width="55" />
|
||||
<el-table-column label="序号" width="60">
|
||||
<template #default="{ $index }">
|
||||
{{ serialNumber(pagination, $index) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="DRILL_NAME"
|
||||
label="应急演练方案名称"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column
|
||||
prop="DRILL_UNIT"
|
||||
label="演练单位"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column prop="DRILL_DATE" label="演练时间" width="130" />
|
||||
<el-table-column label="操作" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="
|
||||
router.push({
|
||||
path: '/emergency_resource_management/emergency_drill_management/view',
|
||||
query: { EMERGENCYDRILLBASIC_ID: row.EMERGENCYDRILLBASIC_ID },
|
||||
})
|
||||
"
|
||||
>
|
||||
查看
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.edit"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="
|
||||
router.push({
|
||||
path: '/emergency_resource_management/emergency_drill_management/edit',
|
||||
query: { EMERGENCYDRILLBASIC_ID: row.EMERGENCYDRILLBASIC_ID },
|
||||
})
|
||||
"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnDelete(row.EMERGENCYDRILLBASIC_ID)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.add"
|
||||
type="primary"
|
||||
@click="
|
||||
router.push({
|
||||
path: '/emergency_resource_management/emergency_drill_management/add',
|
||||
})
|
||||
"
|
||||
>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="danger"
|
||||
@click="fnDeleteAll"
|
||||
>
|
||||
批量删除
|
||||
</el-button>
|
||||
</template>
|
||||
</layout-table>
|
||||
</layout-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber } from "@/assets/js/utils";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import {
|
||||
getEmergencyDrillManagementList,
|
||||
setEmergencyDrillManagementDelete,
|
||||
setEmergencyDrillManagementDeleteMultiple,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import { useRouter } from "vue-router";
|
||||
|
||||
const router = useRouter();
|
||||
const { list, searchForm, pagination, fnGetData, fnResetPagination, tableRef } =
|
||||
useListData(getEmergencyDrillManagementList);
|
||||
const fnGetDataTransfer = () => {
|
||||
fnGetData({
|
||||
STARTTIME: searchForm.value.dates?.[0],
|
||||
ENDTIME: searchForm.value.dates?.[1],
|
||||
});
|
||||
};
|
||||
const fnResetPaginationTransfer = () => {
|
||||
fnResetPagination({
|
||||
STARTTIME: searchForm.value.dates?.[0],
|
||||
ENDTIME: searchForm.value.dates?.[1],
|
||||
});
|
||||
};
|
||||
const buttonJurisdiction = await useButtonJurisdiction("emergencydrillbasic");
|
||||
const fnDelete = debounce(
|
||||
1000,
|
||||
async (EMERGENCYDRILLBASIC_ID) => {
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyDrillManagementDelete({ EMERGENCYDRILLBASIC_ID });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPaginationTransfer();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
const fnDeleteAll = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
const selectionData = tableRef.value.getSelectionRows();
|
||||
if (selectionData.length === 0) {
|
||||
ElMessage.warning("请选中要删除的项");
|
||||
return;
|
||||
}
|
||||
const DATA_IDS = selectionData
|
||||
.map((item) => item.EMERGENCYDRILLBASIC_ID)
|
||||
.join(",");
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyDrillManagementDeleteMultiple({ DATA_IDS });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPaginationTransfer();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,203 @@
|
|||
<template>
|
||||
<layout-card>
|
||||
<el-divider content-position="left">应急方案基本信息</el-divider>
|
||||
<el-descriptions border :column="2">
|
||||
<el-descriptions-item label="应急演练方案名称" :span="2">
|
||||
{{ data.info.DRILL_NAME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="演练单位">
|
||||
{{ data.info.DRILL_UNIT }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="演练时间">
|
||||
{{ data.info.DRILL_DATE }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="演练目的">
|
||||
{{ data.info.DRILL_PURPOSE }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="演练特点">
|
||||
{{ data.info.DRILL_PROPERTY }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="应急演练地点">
|
||||
{{ data.info.DRILL_PLACE }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="参加人员">
|
||||
{{ data.info.DRILL_ATTENDERS }}
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<el-divider content-position="left">应急指挥机构</el-divider>
|
||||
<layout-table
|
||||
:data="data.commandingOrganizationList"
|
||||
:show-pagination="false"
|
||||
>
|
||||
<el-table-column type="index" label="序号" width="50" />
|
||||
<el-table-column prop="ORG_NAME" label="机构名称" />
|
||||
<el-table-column prop="ORG_UNIT_IDS" label="组成单位" />
|
||||
<el-table-column prop="ORG_DUTY" label="机构职责" />
|
||||
</layout-table>
|
||||
<el-divider content-position="left">应急指挥机构人员</el-divider>
|
||||
<layout-table
|
||||
:data="data.commandingOrganizationPersonnelList"
|
||||
:show-pagination="false"
|
||||
>
|
||||
<el-table-column type="index" label="序号" width="50" />
|
||||
<el-table-column
|
||||
prop="EMERGENCYDRILLORG_NAME"
|
||||
label="应急指挥机构"
|
||||
width="260"
|
||||
/>
|
||||
<el-table-column prop="MEMBER_NAME" label="姓名" width="110" />
|
||||
<el-table-column prop="MEMBER_DUTY" label="职务" width="110" />
|
||||
<el-table-column prop="MEMBER_PHONE" label="联系电话" width="200" />
|
||||
<el-table-column
|
||||
prop="MEMBER_EMERGENCY_PHONE"
|
||||
label="紧急联系电话"
|
||||
width="200"
|
||||
/>
|
||||
<el-table-column prop="MEMBER_UNIT" label="单位" />
|
||||
</layout-table>
|
||||
<el-divider content-position="left">演练内容</el-divider>
|
||||
<layout-table :data="data.drillContentList" :show-pagination="false">
|
||||
<el-table-column type="index" label="序号" width="50" />
|
||||
<el-table-column
|
||||
prop="DRILL_CONTENT_NUM"
|
||||
label="演练内容序号"
|
||||
width="120"
|
||||
/>
|
||||
<el-table-column prop="DRILL_CONTENT" label="演练内容" />
|
||||
</layout-table>
|
||||
<el-divider content-position="left">演练场景</el-divider>
|
||||
<layout-table :data="data.drillSceneList" :show-pagination="false">
|
||||
<el-table-column type="index" label="序号" width="50" />
|
||||
<el-table-column
|
||||
prop="DRILL_SCENE_NUM"
|
||||
label="演练场景序号"
|
||||
width="120"
|
||||
/>
|
||||
<el-table-column prop="DRILL_SCENE" label="演练场景" />
|
||||
</layout-table>
|
||||
<el-divider content-position="left">总结评估</el-divider>
|
||||
<el-descriptions border>
|
||||
<el-descriptions-item label="总结评估">
|
||||
{{ data.summaryEvaluationInfo.DRILL_REPORT }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item
|
||||
v-if="data.summaryEvaluationInfo.DRILL_REPORT_FILE_PATH"
|
||||
label="附件"
|
||||
>
|
||||
{{ data.summaryEvaluationInfo.DRILL_REPORT_FILE_NAME }}
|
||||
<el-button
|
||||
class="ml-10"
|
||||
type="primary"
|
||||
@click="
|
||||
useDownloadFile(
|
||||
data.summaryEvaluationInfo.DRILL_REPORT_FILE_PATH,
|
||||
data.summaryEvaluationInfo.DRILL_REPORT_FILE_NAME
|
||||
)
|
||||
"
|
||||
>
|
||||
下载
|
||||
</el-button>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<el-divider content-position="left">应急演练方案文本</el-divider>
|
||||
<el-descriptions border>
|
||||
<el-descriptions-item
|
||||
v-if="data.schemeTextInfo.DRILL_ATTACHMENT_FILE_PATH"
|
||||
label="附件"
|
||||
>
|
||||
{{ data.schemeTextInfo.DRILL_ATTACHMENT_FILE_NAME }}
|
||||
<el-button
|
||||
class="ml-10"
|
||||
type="primary"
|
||||
@click="
|
||||
useDownloadFile(
|
||||
data.schemeTextInfo.DRILL_ATTACHMENT_FILE_PATH,
|
||||
data.schemeTextInfo.DRILL_ATTACHMENT_FILE_NAME
|
||||
)
|
||||
"
|
||||
>
|
||||
下载
|
||||
</el-button>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useRoute } from "vue-router";
|
||||
import {
|
||||
getEmergencyDrillManagementViewCommandingOrganization,
|
||||
getEmergencyDrillManagementViewCommandingOrganizationPersonnel,
|
||||
getEmergencyDrillManagementViewDrillContent,
|
||||
getEmergencyDrillManagementViewDrillScene,
|
||||
getEmergencyDrillManagementViewInfo,
|
||||
getEmergencyDrillManagementViewSchemeText,
|
||||
getEmergencyDrillManagementViewSummaryEvaluation,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { reactive } from "vue";
|
||||
import useDownloadFile from "@/assets/js/useDownloadFile.js";
|
||||
|
||||
const route = useRoute();
|
||||
const { EMERGENCYDRILLBASIC_ID } = route.query;
|
||||
const data = reactive({
|
||||
info: {},
|
||||
commandingOrganizationList: [],
|
||||
commandingOrganizationPersonnelList: [],
|
||||
drillContentList: [],
|
||||
drillSceneList: [],
|
||||
summaryEvaluationInfo: {},
|
||||
schemeTextInfo: {},
|
||||
});
|
||||
const fnGetData = async () => {
|
||||
const resData = await getEmergencyDrillManagementViewInfo({
|
||||
EMERGENCYDRILLBASIC_ID,
|
||||
});
|
||||
data.info = resData.pd;
|
||||
};
|
||||
const fnGetDataCommandingOrganization = async () => {
|
||||
const resData = await getEmergencyDrillManagementViewCommandingOrganization({
|
||||
EMERGENCYDRILLBASIC_ID,
|
||||
});
|
||||
data.commandingOrganizationList = resData.list;
|
||||
};
|
||||
const fnGetDataCommandingOrganizationPersonnel = async () => {
|
||||
const resData =
|
||||
await getEmergencyDrillManagementViewCommandingOrganizationPersonnel({
|
||||
EMERGENCYDRILLBASIC_ID,
|
||||
});
|
||||
data.commandingOrganizationPersonnelList = resData.list;
|
||||
};
|
||||
const fnGetDataDrillContent = async () => {
|
||||
const resData = await getEmergencyDrillManagementViewDrillContent({
|
||||
EMERGENCYDRILLBASIC_ID,
|
||||
});
|
||||
data.drillContentList = resData.list;
|
||||
};
|
||||
const fnGetDataDrillScene = async () => {
|
||||
const resData = await getEmergencyDrillManagementViewDrillScene({
|
||||
EMERGENCYDRILLBASIC_ID,
|
||||
});
|
||||
data.drillSceneList = resData.list;
|
||||
};
|
||||
const fnGetDataSummaryEvaluation = async () => {
|
||||
const resData = await getEmergencyDrillManagementViewSummaryEvaluation({
|
||||
EMERGENCYDRILLBASIC_ID,
|
||||
});
|
||||
data.summaryEvaluationInfo = resData.pd;
|
||||
};
|
||||
const fnGetDataSchemeText = async () => {
|
||||
const resData = await getEmergencyDrillManagementViewSchemeText({
|
||||
EMERGENCYDRILLBASIC_ID,
|
||||
});
|
||||
data.schemeTextInfo = resData.pd;
|
||||
};
|
||||
fnGetData();
|
||||
fnGetDataCommandingOrganization();
|
||||
fnGetDataCommandingOrganizationPersonnel();
|
||||
fnGetDataDrillContent();
|
||||
fnGetDataDrillScene();
|
||||
fnGetDataSummaryEvaluation();
|
||||
fnGetDataSchemeText();
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,170 @@
|
|||
<template>
|
||||
<layout-card>
|
||||
<el-form ref="formRef" :rules="rules" :model="form" label-width="140px">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="装备名称" prop="EQUIP_NAME">
|
||||
<el-input v-model="form.EQUIP_NAME" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="装备类别" prop="CATEGORY">
|
||||
<el-select v-model="form.CATEGORY">
|
||||
<el-option
|
||||
v-for="item in equipmentCategoryList"
|
||||
:key="item.BIANMA"
|
||||
:label="item.NAME"
|
||||
:value="item.BIANMA"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="规格型号" prop="SPEC">
|
||||
<el-input v-model="form.SPEC" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="技术性能指标" prop="EQUIP_PERFORMANCE">
|
||||
<el-input v-model="form.EQUIP_PERFORMANCE" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="保养周期" prop="MAINTAIN_DATE">
|
||||
<el-input v-model="form.MAINTAIN_DATE" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="有效期" prop="VALIDATE_DATE">
|
||||
<el-date-picker
|
||||
v-model="form.VALIDATE_DATE"
|
||||
value-format="YYYY-MM-DD"
|
||||
format="YYYY-MM-DD"
|
||||
type="date"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="用途" prop="USE">
|
||||
<el-input v-model="form.USE" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="存放场所" prop="STORAGE_PLACE">
|
||||
<el-input v-model="form.STORAGE_PLACE" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="用途说明" prop="USE_DESC">
|
||||
<el-input
|
||||
v-model="form.USE_DESC"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 3 }"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="负责保管人姓名" prop="STORAGE_PERSON_NAME">
|
||||
<el-input v-model="form.STORAGE_PERSON_NAME" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="负责保管人电话" prop="STORAGE_PERSON_PHONE">
|
||||
<el-input v-model="form.STORAGE_PERSON_PHONE" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div class="mt-10 tc">
|
||||
<el-button type="primary" @click="fnSubmit">保存</el-button>
|
||||
</div>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from "vue";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||
import {
|
||||
getEmergencyEquipmentManagementView,
|
||||
setEmergencyEquipmentManagementAdd,
|
||||
setEmergencyEquipmentManagementEdit,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import { layoutFnGetEquipmentCategory } from "@/assets/js/data_dictionary.js";
|
||||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const { EMERGENCYEQUIPMENT_ID } = route.query;
|
||||
const rules = {
|
||||
EQUIP_NAME: [
|
||||
{ required: true, message: "装备名称不能为空", trigger: "blur" },
|
||||
],
|
||||
CATEGORY: [{ required: true, message: "请选择装备类别", trigger: "change" }],
|
||||
SPEC: [{ required: true, message: "规格型号不能为空", trigger: "blur" }],
|
||||
EQUIP_PERFORMANCE: [
|
||||
{ required: true, message: "技术性能指标不能为空", trigger: "blur" },
|
||||
],
|
||||
MAINTAIN_DATE: [
|
||||
{ required: true, message: "保养周期不能为空", trigger: "blur" },
|
||||
],
|
||||
VALIDATE_DATE: [
|
||||
{ required: true, message: "有效期不能为空", trigger: "change" },
|
||||
],
|
||||
USE: [{ required: true, message: "用途不能为空", trigger: "blur" }],
|
||||
USE_DESC: [{ required: true, message: "用途说明不能为空", trigger: "blur" }],
|
||||
STORAGE_PLACE: [
|
||||
{ required: true, message: "存放场所不能为空", trigger: "blur" },
|
||||
],
|
||||
STORAGE_PERSON_NAME: [
|
||||
{ required: true, message: "负责保管人姓名不能为空", trigger: "blur" },
|
||||
],
|
||||
STORAGE_PERSON_PHONE: [
|
||||
{ required: true, message: "请输入负责保管人电话", trigger: "blur" },
|
||||
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
|
||||
{
|
||||
pattern:
|
||||
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
|
||||
message: "请输入正确的手机号码",
|
||||
},
|
||||
],
|
||||
};
|
||||
const form = ref({
|
||||
EQUIP_NAME: "",
|
||||
CATEGORY: "",
|
||||
SPEC: "",
|
||||
EQUIP_PERFORMANCE: "",
|
||||
MAINTAIN_DATE: "",
|
||||
VALIDATE_DATE: "",
|
||||
USE: "",
|
||||
USE_DESC: "",
|
||||
STORAGE_PLACE: "",
|
||||
STORAGE_PERSON_NAME: "",
|
||||
STORAGE_PERSON_PHONE: "",
|
||||
});
|
||||
const formRef = ref(null);
|
||||
const fnGetData = async () => {
|
||||
if (!EMERGENCYEQUIPMENT_ID) return;
|
||||
const resData = await getEmergencyEquipmentManagementView({
|
||||
EMERGENCYEQUIPMENT_ID,
|
||||
});
|
||||
form.value = resData.pd;
|
||||
};
|
||||
fnGetData();
|
||||
const equipmentCategoryList = await layoutFnGetEquipmentCategory();
|
||||
const fnSubmit = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
await useFormValidate(formRef);
|
||||
!EMERGENCYEQUIPMENT_ID
|
||||
? await setEmergencyEquipmentManagementAdd({ ...form.value })
|
||||
: await setEmergencyEquipmentManagementEdit({ ...form.value });
|
||||
ElMessage.success("操作成功");
|
||||
router.back();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,183 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
<el-form
|
||||
:model="searchForm"
|
||||
label-width="80px"
|
||||
@submit.prevent="fnResetPagination"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="装备名称" prop="KEYWORDS">
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="装备类别" prop="CATEGORY">
|
||||
<el-select v-model="searchForm.CATEGORY">
|
||||
<el-option
|
||||
v-for="item in equipmentCategoryList"
|
||||
:key="item.BIANMA"
|
||||
:label="item.NAME"
|
||||
:value="item.BIANMA"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label-width="10px">
|
||||
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||
<el-button native-type="reset" @click="fnResetPagination">
|
||||
重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<layout-card>
|
||||
<layout-table
|
||||
ref="tableRef"
|
||||
v-model:pagination="pagination"
|
||||
row-key="EMERGENCYEQUIPMENT_ID"
|
||||
:data="list"
|
||||
@get-data="fnGetData"
|
||||
>
|
||||
<el-table-column reserve-selection type="selection" width="55" />
|
||||
<el-table-column label="序号" width="60">
|
||||
<template #default="{ $index }">
|
||||
{{ serialNumber(pagination, $index) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="装备名称" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<span
|
||||
:class="{
|
||||
'text-red':
|
||||
dayjs(row.VALIDATE_DATE).format('YYYY-MM-DD') <
|
||||
dayjs().format('YYYY-MM-DD'),
|
||||
}"
|
||||
>
|
||||
{{ row.EQUIP_NAME }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="CATEGORY_NAME" label="装备类别" />
|
||||
<el-table-column prop="SPEC" label="规格型号" />
|
||||
<el-table-column prop="USE" label="用途" />
|
||||
<el-table-column label="操作" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="
|
||||
router.push({
|
||||
path: '/emergency_resource_management/emergency_equipment_management/view',
|
||||
query: { EMERGENCYEQUIPMENT_ID: row.EMERGENCYEQUIPMENT_ID },
|
||||
})
|
||||
"
|
||||
>
|
||||
查看
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.edit"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="
|
||||
router.push({
|
||||
path: '/emergency_resource_management/emergency_equipment_management/edit',
|
||||
query: { EMERGENCYEQUIPMENT_ID: row.EMERGENCYEQUIPMENT_ID },
|
||||
})
|
||||
"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnDelete(row.EMERGENCYEQUIPMENT_ID)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.add"
|
||||
type="primary"
|
||||
@click="
|
||||
router.push({
|
||||
path: '/emergency_resource_management/emergency_equipment_management/add',
|
||||
})
|
||||
"
|
||||
>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="danger"
|
||||
@click="fnDeleteAll"
|
||||
>
|
||||
批量删除
|
||||
</el-button>
|
||||
</template>
|
||||
</layout-table>
|
||||
</layout-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import dayjs from "dayjs";
|
||||
import { serialNumber } from "@/assets/js/utils";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import {
|
||||
getEmergencyEquipmentManagementList,
|
||||
setEmergencyEquipmentManagementDelete,
|
||||
setEmergencyEquipmentManagementDeleteMultiple,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
|
||||
import { layoutFnGetEquipmentCategory } from "@/assets/js/data_dictionary.js";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import { useRouter } from "vue-router";
|
||||
|
||||
const router = useRouter();
|
||||
const { list, searchForm, pagination, fnResetPagination, fnGetData, tableRef } =
|
||||
useListData(getEmergencyEquipmentManagementList);
|
||||
const buttonJurisdiction = await useButtonJurisdiction("emergencyequipment");
|
||||
const equipmentCategoryList = await layoutFnGetEquipmentCategory();
|
||||
const fnDelete = debounce(
|
||||
1000,
|
||||
async (EMERGENCYEQUIPMENT_ID) => {
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyEquipmentManagementDelete({ EMERGENCYEQUIPMENT_ID });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
const fnDeleteAll = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
const selectionData = tableRef.value.getSelectionRows();
|
||||
if (selectionData.length === 0) {
|
||||
ElMessage.warning("请选中要删除的项");
|
||||
return;
|
||||
}
|
||||
const DATA_IDS = selectionData
|
||||
.map((item) => item.EMERGENCYEQUIPMENT_ID)
|
||||
.join(",");
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyEquipmentManagementDeleteMultiple({ DATA_IDS });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,58 @@
|
|||
<template>
|
||||
<layout-card>
|
||||
<el-descriptions border :column="2">
|
||||
<el-descriptions-item label="装备名称">
|
||||
{{ info.EQUIP_NAME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="装备类别">
|
||||
{{ info.CATEGORY_NAME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="规格型号">
|
||||
{{ info.SPEC }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="技术性能指标">
|
||||
{{ info.EQUIP_PERFORMANCE }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="保养周期">
|
||||
{{ info.MAINTAIN_DATE }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="有效期">
|
||||
{{ info.VALIDATE_DATE }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="用途">
|
||||
{{ info.USE }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="存放场所">
|
||||
{{ info.STORAGE_PLACE }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="用途说明" :span="2">
|
||||
{{ info.USE_DESC }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="负责保管人姓名">
|
||||
{{ info.STORAGE_PERSON_NAME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="负责保管人电话">
|
||||
{{ info.STORAGE_PERSON_PHONE }}
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useRoute } from "vue-router";
|
||||
import { getEmergencyEquipmentManagementView } from "@/request/emergency_resource_management.js";
|
||||
import { ref } from "vue";
|
||||
|
||||
const route = useRoute();
|
||||
const { EMERGENCYEQUIPMENT_ID } = route.query;
|
||||
const info = ref({});
|
||||
const fnGetData = async () => {
|
||||
const resData = await getEmergencyEquipmentManagementView({
|
||||
EMERGENCYEQUIPMENT_ID,
|
||||
});
|
||||
info.value = resData.pd;
|
||||
};
|
||||
fnGetData();
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,283 @@
|
|||
<template>
|
||||
<layout-card>
|
||||
<el-form ref="formRef" :rules="rules" :model="form" label-width="110px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="应急预案名称" prop="PLAN_NAME">
|
||||
<el-input v-model="form.PLAN_NAME" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="预案编号" prop="PLAN_NO">
|
||||
<el-input v-model="form.PLAN_NO" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="适用领域" prop="PLAN_USE_SCOPE">
|
||||
<el-select v-model="form.PLAN_USE_SCOPE">
|
||||
<el-option
|
||||
v-for="item in applicableFieldsList"
|
||||
:key="item.BIANMA"
|
||||
:label="item.NAME"
|
||||
:value="item.BIANMA"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="预案类别" prop="PLAN_CATEGORY">
|
||||
<el-select v-model="form.PLAN_CATEGORY">
|
||||
<el-option
|
||||
v-for="item in planCategoryList"
|
||||
:key="item.BIANMA"
|
||||
:label="item.NAME"
|
||||
:value="item.BIANMA"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="预案级别" prop="PLAN_LEVEL">
|
||||
<el-select v-model="form.PLAN_LEVEL">
|
||||
<el-option
|
||||
v-for="item in planLevelList"
|
||||
:key="item.BIANMA"
|
||||
:label="item.NAME"
|
||||
:value="item.BIANMA"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="编制单位" prop="ESTAB_UNIT">
|
||||
<el-input v-model="form.ESTAB_UNIT" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="编制人" prop="ESTAB_USER">
|
||||
<el-input v-model="form.ESTAB_USER" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="发布日期" prop="PUBLISH_DATE">
|
||||
<el-date-picker
|
||||
v-model="form.PUBLISH_DATE"
|
||||
value-format="YYYY-MM-DD"
|
||||
format="YYYY-MM-DD"
|
||||
type="date"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="发布文号" prop="PUBLISH_DOC_NO">
|
||||
<el-input v-model="form.PUBLISH_DOC_NO" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="发布单位" prop="PUBLISH_UNIT">
|
||||
<el-input v-model="form.PUBLISH_UNIT" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="签发人" prop="ISSUER">
|
||||
<el-input v-model="form.ISSUER" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="预案备案状态" prop="PLAN_RECORD_STATUS">
|
||||
<el-select v-model="form.PLAN_RECORD_STATUS">
|
||||
<el-option
|
||||
v-for="item in planFilingStatusList"
|
||||
:key="item.BIANMA"
|
||||
:label="item.NAME"
|
||||
:value="item.BIANMA"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item
|
||||
:rules="{
|
||||
required: form.PLAN_RECORD_STATUS === 'STATUS01',
|
||||
message: '预案备案时间不能为空',
|
||||
trigger: 'blur',
|
||||
}"
|
||||
label="预案备案时间"
|
||||
prop="PLAN_RECORD_DATE"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="form.PLAN_RECORD_DATE"
|
||||
value-format="YYYY-MM-DD"
|
||||
format="YYYY-MM-DD"
|
||||
type="date"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item
|
||||
:rules="{
|
||||
required: form.PLAN_RECORD_STATUS === 'STATUS01',
|
||||
message: '备案接收单位不能为空',
|
||||
trigger: 'blur',
|
||||
}"
|
||||
label="备案接收单位"
|
||||
prop="PLAN_RECORD_UNIT"
|
||||
>
|
||||
<el-input v-model="form.PLAN_RECORD_UNIT" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item
|
||||
:rules="{
|
||||
required: form.PLAN_RECORD_STATUS === 'STATUS01',
|
||||
message: '预案摘要不能为空',
|
||||
trigger: 'blur',
|
||||
}"
|
||||
label="预案摘要"
|
||||
prop="PLAN_SUMMARY"
|
||||
>
|
||||
<el-input
|
||||
v-model="form.PLAN_SUMMARY"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 3 }"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注" prop="PLAN_REMARK">
|
||||
<el-input
|
||||
v-model="form.PLAN_REMARK"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 3 }"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="相关附件" prop="file">
|
||||
<layout-upload v-model:file-list="form.file" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div class="mt-10 tc">
|
||||
<el-button type="primary" @click="fnSubmit">提交</el-button>
|
||||
</div>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import LayoutUpload from "@/components/upload/index.vue";
|
||||
import {
|
||||
layoutFnGetApplicableFields,
|
||||
layoutFnGetPlanCategory,
|
||||
layoutFnGetPlanFilingStatus,
|
||||
layoutFnGetPlanLevel,
|
||||
} from "@/assets/js/data_dictionary.js";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||
import {
|
||||
getEmergencyPlanManagementView,
|
||||
setEmergencyPlanManagementAdd,
|
||||
setEmergencyPlanManagementEdit,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { ref } from "vue";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const { EMERGENCYPLAN_ID } = route.query;
|
||||
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
|
||||
const rules = {
|
||||
PLAN_NAME: [
|
||||
{ required: true, message: "应急预案名称不能为空", trigger: "blur" },
|
||||
],
|
||||
PLAN_NO: [{ required: true, message: "预案编号不能为空", trigger: "blur" }],
|
||||
PLAN_USE_SCOPE: [
|
||||
{ required: true, message: "请选择适用领域", trigger: "change" },
|
||||
],
|
||||
PLAN_CATEGORY: [
|
||||
{ required: true, message: "请选择预案类别", trigger: "change" },
|
||||
],
|
||||
PLAN_LEVEL: [
|
||||
{ required: true, message: "请选择预案级别", trigger: "change" },
|
||||
],
|
||||
ESTAB_UNIT: [
|
||||
{ required: true, message: "编制单位不能为空", trigger: "blur" },
|
||||
],
|
||||
ESTAB_USER: [{ required: true, message: "编制人不能为空", trigger: "blur" }],
|
||||
PUBLISH_DATE: [
|
||||
{ required: true, message: "发布日期不能为空", trigger: "change" },
|
||||
],
|
||||
PUBLISH_DOC_NO: [
|
||||
{ required: true, message: "发布文号不能为空", trigger: "blur" },
|
||||
],
|
||||
PUBLISH_UNIT: [
|
||||
{ required: true, message: "发布单位不能为空", trigger: "blur" },
|
||||
],
|
||||
ISSUER: [{ required: true, message: "签发人不能为空", trigger: "blur" }],
|
||||
PLAN_RECORD_STATUS: [
|
||||
{ required: true, message: "请选择预案备案状态", trigger: "change" },
|
||||
],
|
||||
};
|
||||
const form = ref({
|
||||
PLAN_NAME: "",
|
||||
PLAN_NO: "",
|
||||
PLAN_USE_SCOPE: "",
|
||||
PLAN_CATEGORY: "",
|
||||
PLAN_LEVEL: "",
|
||||
ESTAB_UNIT: "",
|
||||
ESTAB_USER: "",
|
||||
PUBLISH_DATE: "",
|
||||
PUBLISH_DOC_NO: "",
|
||||
PUBLISH_UNIT: "",
|
||||
ISSUER: "",
|
||||
PLAN_RECORD_STATUS: "",
|
||||
PLAN_RECORD_DATE: "",
|
||||
PLAN_RECORD_UNIT: "",
|
||||
PLAN_SUMMARY: "",
|
||||
PLAN_REMARK: "",
|
||||
PLAN_ATTACH_NAME: "",
|
||||
file: [],
|
||||
});
|
||||
const formRef = ref(null);
|
||||
const fnGetData = async () => {
|
||||
if (!EMERGENCYPLAN_ID) return;
|
||||
const resData = await getEmergencyPlanManagementView({ EMERGENCYPLAN_ID });
|
||||
form.value = resData.pd;
|
||||
form.value.file = [
|
||||
{
|
||||
url: VITE_FILE_URL + resData.pd.PLAN_ATTACH_IDS,
|
||||
name: resData.pd.PLAN_ATTACH_NAME,
|
||||
},
|
||||
];
|
||||
};
|
||||
fnGetData();
|
||||
const applicableFieldsList = await layoutFnGetApplicableFields();
|
||||
const planCategoryList = await layoutFnGetPlanCategory();
|
||||
const planLevelList = await layoutFnGetPlanLevel();
|
||||
const planFilingStatusList = await layoutFnGetPlanFilingStatus();
|
||||
const fnSubmit = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
await useFormValidate(formRef);
|
||||
const formData = new FormData();
|
||||
Object.keys(form.value).forEach((key) => {
|
||||
formData.append(key, form.value[key]);
|
||||
});
|
||||
if (form.value.file.length > 0) {
|
||||
formData.delete("file");
|
||||
formData.append("PLAN_ATTACH_NAME", form.value.file[0].name);
|
||||
formData.append("file", form.value.file[0].raw);
|
||||
}
|
||||
!EMERGENCYPLAN_ID
|
||||
? await setEmergencyPlanManagementAdd(formData)
|
||||
: await setEmergencyPlanManagementEdit(formData);
|
||||
ElMessage.success("操作成功");
|
||||
router.back();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,178 @@
|
|||
<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="KEYWORDS">
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label-width="10px">
|
||||
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||
<el-button native-type="reset" @click="fnResetPagination">
|
||||
重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<layout-card>
|
||||
<layout-table
|
||||
ref="tableRef"
|
||||
v-model:pagination="pagination"
|
||||
row-key="EMERGENCYPLAN_ID"
|
||||
:data="list"
|
||||
@get-data="fnGetData"
|
||||
>
|
||||
<el-table-column reserve-selection type="selection" width="55" />
|
||||
<el-table-column label="序号" width="60">
|
||||
<template #default="{ $index }">
|
||||
{{ serialNumber(pagination, $index) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="PLAN_NAME"
|
||||
label="应急预案名称"
|
||||
width="300"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column
|
||||
prop="PLAN_CATEGORY_NAME"
|
||||
label="预案类别"
|
||||
width="150"
|
||||
/>
|
||||
<el-table-column prop="PLAN_LEVEL_NAME" label="预案级别" width="150" />
|
||||
<el-table-column
|
||||
prop="PLAN_RECORD_STATUS_NAME"
|
||||
label="备案状态"
|
||||
width="150"
|
||||
/>
|
||||
<el-table-column label="相关附件">
|
||||
<template #default="{ row }">
|
||||
{{ row.PLAN_ATTACH_NAME }}
|
||||
<layout-multiple-attachment-previews
|
||||
:file-path="row.PLAN_ATTACH_IDS"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="
|
||||
router.push({
|
||||
path: '/emergency_resource_management/emergency_plan_management/view',
|
||||
query: { EMERGENCYPLAN_ID: row.EMERGENCYPLAN_ID },
|
||||
})
|
||||
"
|
||||
>
|
||||
查看
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.edit"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="
|
||||
router.push({
|
||||
path: '/emergency_resource_management/emergency_plan_management/edit',
|
||||
query: { EMERGENCYPLAN_ID: row.EMERGENCYPLAN_ID },
|
||||
})
|
||||
"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnDelete(row.EMERGENCYPLAN_ID)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.add"
|
||||
type="primary"
|
||||
@click="
|
||||
router.push({
|
||||
path: '/emergency_resource_management/emergency_plan_management/add',
|
||||
})
|
||||
"
|
||||
>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="danger"
|
||||
@click="fnDeleteAll"
|
||||
>
|
||||
批量删除
|
||||
</el-button>
|
||||
</template>
|
||||
</layout-table>
|
||||
</layout-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber } from "@/assets/js/utils";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import {
|
||||
getEmergencyPlanManagementList,
|
||||
setEmergencyPlanManagementDelete,
|
||||
setEmergencyPlanManagementDeleteMultiple,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import LayoutMultipleAttachmentPreviews from "@/components/multiple_attachment_previews/index.vue";
|
||||
import { useRouter } from "vue-router";
|
||||
|
||||
const router = useRouter();
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
|
||||
useListData(getEmergencyPlanManagementList);
|
||||
const buttonJurisdiction = await useButtonJurisdiction("emergencyplan");
|
||||
const fnDelete = debounce(
|
||||
1000,
|
||||
async (EMERGENCYPLAN_ID) => {
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyPlanManagementDelete({ EMERGENCYPLAN_ID });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
const fnDeleteAll = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
const selectionData = tableRef.value.getSelectionRows();
|
||||
if (selectionData.length === 0) {
|
||||
ElMessage.warning("请选中要删除的项");
|
||||
return;
|
||||
}
|
||||
const DATA_IDS = selectionData
|
||||
.map((item) => item.EMERGENCYPLAN_ID)
|
||||
.join(",");
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyPlanManagementDeleteMultiple({ DATA_IDS });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,88 @@
|
|||
<template>
|
||||
<layout-card>
|
||||
<el-descriptions border :column="2">
|
||||
<el-descriptions-item label="应急预案名称" :span="2">
|
||||
{{ info.PLAN_NAME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="预案编号">
|
||||
{{ info.PLAN_NO }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="适用领域">
|
||||
{{ info.PLAN_USE_SCOPE_NAME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="预案类别">
|
||||
{{ info.PLAN_CATEGORY_NAME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="预案级别">
|
||||
{{ info.PLAN_LEVEL_NAME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="编制单位">
|
||||
{{ info.ESTAB_UNIT }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="编制人">
|
||||
{{ info.ESTAB_USER }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="发布日期">
|
||||
{{ info.PUBLISH_DATE }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="发布文号">
|
||||
{{ info.PUBLISH_DOC_NO }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="发布单位">
|
||||
{{ info.PUBLISH_UNIT }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="签发人">
|
||||
{{ info.ISSUER }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="预案备案状态">
|
||||
{{ info.PLAN_RECORD_STATUS_NAME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="预案备案时间">
|
||||
{{ info.PLAN_RECORD_DATE }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="备案接收单位" :span="2">
|
||||
{{ info.PLAN_RECORD_UNIT }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="预案摘要" :span="2">
|
||||
{{ info.PLAN_SUMMARY }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="备注" :span="2">
|
||||
{{ info.PLAN_REMARK }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item
|
||||
v-if="info.PLAN_ATTACH_IDS"
|
||||
label="相关附件"
|
||||
:span="2"
|
||||
>
|
||||
{{ info.PLAN_ATTACH_NAME }}
|
||||
<el-button
|
||||
class="ml-10"
|
||||
type="primary"
|
||||
@click="useDownloadFile(info.PLAN_ATTACH_IDS, info.PLAN_ATTACH_NAME)"
|
||||
>
|
||||
下载
|
||||
</el-button>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useRoute } from "vue-router";
|
||||
import { getEmergencyPlanManagementView } from "@/request/emergency_resource_management.js";
|
||||
import { ref } from "vue";
|
||||
import useDownloadFile from "@/assets/js/useDownloadFile.js";
|
||||
|
||||
const route = useRoute();
|
||||
const { EMERGENCYPLAN_ID } = route.query;
|
||||
const info = ref({});
|
||||
const fnGetData = async () => {
|
||||
const resData = await getEmergencyPlanManagementView({
|
||||
EMERGENCYPLAN_ID,
|
||||
});
|
||||
info.value = resData.pd;
|
||||
};
|
||||
fnGetData();
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,305 @@
|
|||
<template>
|
||||
<layout-card>
|
||||
<el-form ref="formRef" :rules="rules" :model="form" label-width="140px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="队伍名称" prop="TEAM_NAME">
|
||||
<el-input v-model="form.TEAM_NAME" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="队伍类别" prop="TEAM_CATEGORY">
|
||||
<el-select v-model="form.TEAM_CATEGORY">
|
||||
<el-option
|
||||
v-for="item in teamCategoryList"
|
||||
:key="item.BIANMA"
|
||||
:label="item.NAME"
|
||||
:value="item.BIANMA"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="队伍属性" prop="TEAM_PROPERTY">
|
||||
<el-select v-model="form.TEAM_PROPERTY">
|
||||
<el-option
|
||||
v-for="item in teamAttributeList"
|
||||
:key="item.BIANMA"
|
||||
:label="item.NAME"
|
||||
:value="item.BIANMA"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="队伍级别" prop="TEAM_LEVEL">
|
||||
<el-select v-model="form.TEAM_LEVEL">
|
||||
<el-option
|
||||
v-for="item in teamLevelList"
|
||||
:key="item.BIANMA"
|
||||
:label="item.NAME"
|
||||
:value="item.BIANMA"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="队伍等级" prop="TEAM_GRADE">
|
||||
<el-select v-model="form.TEAM_GRADE">
|
||||
<el-option
|
||||
v-for="item in teamGradeList"
|
||||
:key="item.BIANMA"
|
||||
:label="item.NAME"
|
||||
:value="item.BIANMA"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="成立日期" prop="TEAM_CREATE_TIME">
|
||||
<el-date-picker
|
||||
v-model="form.TEAM_CREATE_TIME"
|
||||
value-format="YYYY-MM-DD"
|
||||
format="YYYY-MM-DD"
|
||||
type="date"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="服务区域" prop="SERVICE_PLACE">
|
||||
<el-input v-model="form.SERVICE_PLACE" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="地址" prop="ADDRESS">
|
||||
<el-input v-model="form.ADDRESS" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="队伍负责人姓名" prop="TEAM_LEADER_NAME">
|
||||
<el-input v-model="form.TEAM_LEADER_NAME" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="队伍负责人电话" prop="TEAM_LEADER_PHONE">
|
||||
<el-input v-model="form.TEAM_LEADER_PHONE" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="应急值班电话" prop="DUTY_TELEPHONE">
|
||||
<el-input v-model="form.DUTY_TELEPHONE" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="救援专业" prop="SPECIAL_TYPE">
|
||||
<el-select v-model="form.SPECIAL_TYPE">
|
||||
<el-option
|
||||
v-for="item in rescueSpecialtyList"
|
||||
:key="item.BIANMA"
|
||||
:label="item.NAME"
|
||||
:value="item.BIANMA"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="总人数" prop="TOTLE_PERSON_NUM">
|
||||
<el-input v-model.number="form.TOTLE_PERSON_NUM" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="指战人数" prop="COMMANDER_NUM">
|
||||
<el-input v-model.number="form.COMMANDER_NUM" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="车辆数" prop="CAR_NUM">
|
||||
<el-input v-model.number="form.CAR_NUM" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="后勤人数" prop="LOGISTICS_PERSON_NUM">
|
||||
<el-input v-model.number="form.LOGISTICS_PERSON_NUM" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="队员信息" prop="TEAM_MEMBER_INFO">
|
||||
<el-input
|
||||
v-model="form.TEAM_MEMBER_INFO"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 3 }"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="专长描述" prop="SPECIAL_DESC">
|
||||
<el-input
|
||||
v-model="form.SPECIAL_DESC"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 3 }"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="队伍简介" prop="TEAM_DESC">
|
||||
<el-input
|
||||
v-model="form.TEAM_DESC"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 3 }"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div class="mt-10 tc">
|
||||
<el-button type="primary" @click="fnSubmit">保存</el-button>
|
||||
</div>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from "vue";
|
||||
import {
|
||||
layoutFnGetRescueSpecialty,
|
||||
layoutFnGetTeamAttribute,
|
||||
layoutFnGetTeamCategory,
|
||||
layoutFnGetTeamGrade,
|
||||
layoutFnGetTeamLevel,
|
||||
} from "@/assets/js/data_dictionary.js";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||
import {
|
||||
getEmergencyRescueTeamManagementView,
|
||||
setEmergencyRescueTeamManagementAdd,
|
||||
setEmergencyRescueTeamManagementEdit,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const { EMERGENCYTEAM_ID } = route.query;
|
||||
const rules = {
|
||||
TEAM_NAME: [{ required: true, message: "队伍名称不能为空", trigger: "blur" }],
|
||||
TEAM_CATEGORY: [
|
||||
{ required: true, message: "请选择队伍类别", trigger: "change" },
|
||||
],
|
||||
TEAM_PROPERTY: [
|
||||
{ required: true, message: "请选择队伍属性", trigger: "change" },
|
||||
],
|
||||
TEAM_LEVEL: [
|
||||
{ required: true, message: "请选择队伍级别", trigger: "change" },
|
||||
],
|
||||
TEAM_GRADE: [
|
||||
{ required: true, message: "请选择队伍等级", trigger: "change" },
|
||||
],
|
||||
TEAM_CREATE_TIME: [
|
||||
{ required: true, message: "成立日期不能为空", trigger: "change" },
|
||||
],
|
||||
ADDRESS: [{ required: true, message: "地址不能为空", trigger: "blur" }],
|
||||
SERVICE_PLACE: [
|
||||
{ required: true, message: "服务区域不能为空", trigger: "blur" },
|
||||
],
|
||||
TEAM_LEADER_NAME: [
|
||||
{ required: true, message: "队伍负责人姓名不能为空", trigger: "blur" },
|
||||
],
|
||||
TEAM_LEADER_PHONE: [
|
||||
{ required: true, message: "请输入队伍负责人电话", trigger: "blur" },
|
||||
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
|
||||
{
|
||||
pattern:
|
||||
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
|
||||
message: "请输入正确的手机号码",
|
||||
},
|
||||
],
|
||||
DUTY_TELEPHONE: [
|
||||
{ required: true, message: "请输入应急值班电话", trigger: "blur" },
|
||||
{
|
||||
min: 11,
|
||||
max: 13,
|
||||
message: "请输入正确的11位手机号码或座机号(例:010-12345678)",
|
||||
trigger: "blur",
|
||||
},
|
||||
{
|
||||
pattern:
|
||||
/^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$|^0\d{2,3}-?\d{7,8}$/,
|
||||
message: "请输入正确的11位手机号码或座机号(例:010-12345678)",
|
||||
},
|
||||
],
|
||||
TOTLE_PERSON_NUM: [
|
||||
{ required: true, message: "总人数不能为空", trigger: "change" },
|
||||
{ type: "number", message: "总人数必须为数字" },
|
||||
],
|
||||
COMMANDER_NUM: [
|
||||
{ required: true, message: "指战人数不能为空", trigger: "change" },
|
||||
{ type: "number", message: "指战人数必须为数字" },
|
||||
],
|
||||
CAR_NUM: [
|
||||
{ required: true, message: "车辆数不能为空", trigger: "change" },
|
||||
{ type: "number", message: "车辆数必须为数字" },
|
||||
],
|
||||
LOGISTICS_PERSON_NUM: [
|
||||
{ required: true, message: "后勤人数不能为空", trigger: "change" },
|
||||
{ type: "number", message: "后勤人数必须为数字" },
|
||||
],
|
||||
TEAM_MEMBER_INFO: [
|
||||
{ required: true, message: "队员信息不能为空", trigger: "blur" },
|
||||
],
|
||||
SPECIAL_TYPE: [
|
||||
{ required: true, message: "请选择救援专业", trigger: "change" },
|
||||
],
|
||||
SPECIAL_DESC: [
|
||||
{ required: true, message: "专长描述不能为空", trigger: "blur" },
|
||||
],
|
||||
TEAM_DESC: [{ required: true, message: "队伍简介不能为空", trigger: "blur" }],
|
||||
};
|
||||
const form = ref({
|
||||
TEAM_NAME: "",
|
||||
TEAM_CATEGORY: "",
|
||||
TEAM_PROPERTY: "",
|
||||
TEAM_LEVEL: "",
|
||||
TEAM_GRADE: "",
|
||||
TEAM_CREATE_TIME: "",
|
||||
ADDRESS: "",
|
||||
SERVICE_PLACE: "",
|
||||
TEAM_LEADER_NAME: "",
|
||||
TEAM_LEADER_PHONE: "",
|
||||
DUTY_TELEPHONE: "",
|
||||
TOTLE_PERSON_NUM: "",
|
||||
COMMANDER_NUM: "",
|
||||
CAR_NUM: "",
|
||||
LOGISTICS_PERSON_NUM: "",
|
||||
TEAM_MEMBER_INFO: "",
|
||||
SPECIAL_TYPE: "",
|
||||
SPECIAL_DESC: "",
|
||||
TEAM_DESC: "",
|
||||
});
|
||||
const formRef = ref(null);
|
||||
const fnGetData = async () => {
|
||||
if (!EMERGENCYTEAM_ID) return;
|
||||
const resData = await getEmergencyRescueTeamManagementView({
|
||||
EMERGENCYTEAM_ID,
|
||||
});
|
||||
form.value = resData.pd;
|
||||
};
|
||||
fnGetData();
|
||||
const teamCategoryList = await layoutFnGetTeamCategory();
|
||||
const teamAttributeList = await layoutFnGetTeamAttribute();
|
||||
const teamLevelList = await layoutFnGetTeamLevel();
|
||||
const teamGradeList = await layoutFnGetTeamGrade();
|
||||
const rescueSpecialtyList = await layoutFnGetRescueSpecialty();
|
||||
const fnSubmit = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
await useFormValidate(formRef);
|
||||
!EMERGENCYTEAM_ID
|
||||
? await setEmergencyRescueTeamManagementAdd({ ...form.value })
|
||||
: await setEmergencyRescueTeamManagementEdit({ ...form.value });
|
||||
ElMessage.success("操作成功");
|
||||
router.back();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,164 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
<el-form
|
||||
:model="searchForm"
|
||||
label-width="80px"
|
||||
@submit.prevent="fnResetPagination"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="队伍名称" prop="KEYWORDS">
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label-width="10px">
|
||||
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||
<el-button native-type="reset" @click="fnResetPagination">
|
||||
重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<layout-card>
|
||||
<layout-table
|
||||
ref="tableRef"
|
||||
v-model:pagination="pagination"
|
||||
row-key="EMERGENCYTEAM_ID"
|
||||
:data="list"
|
||||
@get-data="fnGetData"
|
||||
>
|
||||
<el-table-column reserve-selection type="selection" width="55" />
|
||||
<el-table-column label="序号" width="60">
|
||||
<template #default="{ $index }">
|
||||
{{ serialNumber(pagination, $index) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="TEAM_NAME"
|
||||
label="队伍名称"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column prop="TEAM_CATEGORY_NAME" label="队伍类别" />
|
||||
<el-table-column prop="TEAM_PROPERTY_NAME" label="队伍属性" />
|
||||
<el-table-column prop="TEAM_LEVEL_NAME" label="队伍级别" />
|
||||
<el-table-column prop="TEAM_GRADE_NAME" label="队伍等级" />
|
||||
<el-table-column prop="SPECIAL_TYPE_NAME" label="救援专业" />
|
||||
<el-table-column prop="TEAM_LEADER_NAME" label="队伍负责人姓名" />
|
||||
<el-table-column prop="TEAM_LEADER_PHONE" label="队伍负责人电话" />
|
||||
<el-table-column label="操作" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="
|
||||
router.push({
|
||||
path: '/emergency_resource_management/emergency_rescue_team_management/view',
|
||||
query: { EMERGENCYTEAM_ID: row.EMERGENCYTEAM_ID },
|
||||
})
|
||||
"
|
||||
>
|
||||
查看
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.edit"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="
|
||||
router.push({
|
||||
path: '/emergency_resource_management/emergency_rescue_team_management/edit',
|
||||
query: { EMERGENCYTEAM_ID: row.EMERGENCYTEAM_ID },
|
||||
})
|
||||
"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnDelete(row.EMERGENCYTEAM_ID)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.add"
|
||||
type="primary"
|
||||
@click="
|
||||
router.push({
|
||||
path: '/emergency_resource_management/emergency_rescue_team_management/add',
|
||||
})
|
||||
"
|
||||
>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="danger"
|
||||
@click="fnDeleteAll"
|
||||
>
|
||||
批量删除
|
||||
</el-button>
|
||||
</template>
|
||||
</layout-table>
|
||||
</layout-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber } from "@/assets/js/utils";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import {
|
||||
getEmergencyRescueTeamManagementList,
|
||||
setEmergencyRescueTeamManagementDelete,
|
||||
setEmergencyRescueTeamManagementDeleteMultiple,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import { useRouter } from "vue-router";
|
||||
|
||||
const router = useRouter();
|
||||
const { list, searchForm, pagination, fnGetData, fnResetPagination, tableRef } =
|
||||
useListData(getEmergencyRescueTeamManagementList);
|
||||
const buttonJurisdiction = await useButtonJurisdiction("emergencyteam");
|
||||
const fnDelete = debounce(
|
||||
1000,
|
||||
async (EMERGENCYTEAM_ID) => {
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyRescueTeamManagementDelete({ EMERGENCYTEAM_ID });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
const fnDeleteAll = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
const selectionData = tableRef.value.getSelectionRows();
|
||||
if (selectionData.length === 0) {
|
||||
ElMessage.warning("请选中要删除的项");
|
||||
return;
|
||||
}
|
||||
const DATA_IDS = selectionData
|
||||
.map((item) => item.EMERGENCYTEAM_ID)
|
||||
.join(",");
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyRescueTeamManagementDeleteMultiple({ DATA_IDS });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,82 @@
|
|||
<template>
|
||||
<layout-card>
|
||||
<el-descriptions border :column="2">
|
||||
<el-descriptions-item label="队伍名称">
|
||||
{{ info.TEAM_NAME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="队伍类别">
|
||||
{{ info.TEAM_CATEGORY_NAME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="队伍属性">
|
||||
{{ info.TEAM_PROPERTY_NAME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="队伍级别">
|
||||
{{ info.TEAM_LEVEL_NAME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="队伍等级">
|
||||
{{ info.TEAM_GRADE_NAME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="成立日期">
|
||||
{{ info.TEAM_CREATE_TIME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="地址">
|
||||
{{ info.ADDRESS }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="服务区域">
|
||||
{{ info.SERVICE_PLACE }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="应急值班电话">
|
||||
{{ info.DUTY_TELEPHONE }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="救援专业">
|
||||
{{ info.SPECIAL_TYPE_NAME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="队伍负责人姓名">
|
||||
{{ info.TEAM_LEADER_NAME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="队伍负责人电话">
|
||||
{{ info.TEAM_LEADER_PHONE }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="总人数">
|
||||
{{ info.TOTLE_PERSON_NUM }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="指战人数">
|
||||
{{ info.COMMANDER_NUM }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="车辆数">
|
||||
{{ info.CAR_NUM }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="后勤人数">
|
||||
{{ info.LOGISTICS_PERSON_NUM }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="队员信息" :span="2">
|
||||
{{ info.TEAM_MEMBER_INFO }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="专长描述" :span="2">
|
||||
{{ info.SPECIAL_DESC }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="队伍简介" :span="2">
|
||||
{{ info.TEAM_DESC }}
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useRoute } from "vue-router";
|
||||
import { getEmergencyRescueTeamManagementView } from "@/request/emergency_resource_management.js";
|
||||
import { ref } from "vue";
|
||||
|
||||
const route = useRoute();
|
||||
const { EMERGENCYTEAM_ID } = route.query;
|
||||
const info = ref({});
|
||||
const fnGetData = async () => {
|
||||
const resData = await getEmergencyRescueTeamManagementView({
|
||||
EMERGENCYTEAM_ID,
|
||||
});
|
||||
info.value = resData.pd;
|
||||
};
|
||||
fnGetData();
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,75 @@
|
|||
<template>
|
||||
<layout-card>
|
||||
<el-tabs v-model="activeName" @tab-change="fnTabChange">
|
||||
<el-tab-pane
|
||||
v-for="item in tabsList"
|
||||
:key="item.name"
|
||||
:disabled="!EMERGENCYNEWTEAM_ID"
|
||||
lazy
|
||||
:label="item.label"
|
||||
:name="item.name"
|
||||
>
|
||||
<component
|
||||
:is="item.component"
|
||||
:emergencynewteamid="EMERGENCYNEWTEAM_ID"
|
||||
:active-name="activeName"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useRoute, useRouter, onBeforeRouteUpdate } from "vue-router";
|
||||
import { ref, markRaw } from "vue";
|
||||
import Commander from "./component/commander.vue";
|
||||
import EmergencyLeaderTeam from "./component/emergencyLeaderTeam.vue";
|
||||
import EmergencyTeam from "./component/emergencyTeam.vue";
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const EMERGENCYNEWTEAM_ID = ref(route.query.EMERGENCYNEWTEAM_ID);
|
||||
const activeName = ref(route.query.activeName || "commander");
|
||||
|
||||
const tabsList = ref([
|
||||
{
|
||||
label: "总指挥",
|
||||
name: "commander",
|
||||
component: markRaw(Commander),
|
||||
},
|
||||
{
|
||||
label: "应急救援领导小组",
|
||||
name: "emergencyLeaderTeam",
|
||||
component: markRaw(EmergencyLeaderTeam),
|
||||
},
|
||||
{
|
||||
label: "应急救援小组",
|
||||
name: "emergencyTeam",
|
||||
component: markRaw(EmergencyTeam),
|
||||
},
|
||||
]);
|
||||
const fnTabChange = (event) => {
|
||||
router.replace({
|
||||
path: route.path,
|
||||
query: {
|
||||
activeName: event,
|
||||
EMERGENCYNEWTEAM_ID: EMERGENCYNEWTEAM_ID.value,
|
||||
},
|
||||
});
|
||||
};
|
||||
onBeforeRouteUpdate((to) => {
|
||||
activeName.value = to.query.activeName;
|
||||
EMERGENCYNEWTEAM_ID.value = to.query.EMERGENCYNEWTEAM_ID;
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.buttons {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: end;
|
||||
|
||||
.el-button {
|
||||
margin: 10px;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,120 @@
|
|||
<template>
|
||||
<el-form ref="formRef" :rules="rules" :model="form" label-width="auto">
|
||||
<el-form-item label="总指挥姓名" prop="COMMANDER_NAME">
|
||||
<el-input v-model="form.COMMANDER_NAME" />
|
||||
</el-form-item>
|
||||
<el-form-item label="总指挥职务" prop="COMMANDER_POSITION">
|
||||
<el-input v-model="form.COMMANDER_POSITION" />
|
||||
</el-form-item>
|
||||
<el-form-item label="总指挥电话" prop="COMMANDER_PHONE">
|
||||
<el-input v-model="form.COMMANDER_PHONE" />
|
||||
</el-form-item>
|
||||
<el-form-item label="应急救援小组值班电话" prop="EMERGENCY_DUTY_PHONE">
|
||||
<el-input v-model="form.EMERGENCY_DUTY_PHONE" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="tc mt-10">
|
||||
<el-button type="primary" @click="fnSubmit(0)">保存</el-button>
|
||||
<el-button type="success" @click="fnSubmit(1)">保存并下一步</el-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from "vue";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import { ElMessage } from "element-plus";
|
||||
import {
|
||||
setEmergencyNewTeamManagementGet,
|
||||
setEmergencyNewTeamManagementAdd,
|
||||
setEmergencyTeamManagementEdit,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||
|
||||
const props = defineProps({
|
||||
emergencynewteamid: {
|
||||
type: String,
|
||||
default: "",
|
||||
required: false,
|
||||
},
|
||||
activeName: {
|
||||
type: String,
|
||||
required: false,
|
||||
},
|
||||
});
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const rules = {
|
||||
COMMANDER_NAME: [
|
||||
{ required: true, message: "总指挥姓名不能为空", trigger: "blur" },
|
||||
],
|
||||
COMMANDER_POSITION: [
|
||||
{ required: true, message: "总指挥职务不能为空", trigger: "blur" },
|
||||
],
|
||||
COMMANDER_PHONE: [
|
||||
{ required: true, message: "请输入总指挥电话", trigger: "blur" },
|
||||
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
|
||||
{
|
||||
pattern:
|
||||
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
|
||||
message: "请输入正确的手机号码",
|
||||
},
|
||||
],
|
||||
EMERGENCY_DUTY_PHONE: [
|
||||
{ required: true, message: "请输入应急救援小组值班电话", trigger: "blur" },
|
||||
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
|
||||
{
|
||||
pattern:
|
||||
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
|
||||
message: "请输入正确的手机号码",
|
||||
},
|
||||
],
|
||||
};
|
||||
const EMERGENCYNEWTEAM_ID = ref(route.query.EMERGENCYNEWTEAM_ID);
|
||||
const form = ref({
|
||||
COMMANDER_NAME: "",
|
||||
COMMANDER_POSITION: "",
|
||||
COMMANDER_PHONE: "",
|
||||
EMERGENCY_DUTY_PHONE: "",
|
||||
});
|
||||
const formRef = ref(null);
|
||||
|
||||
const fnGetData = async () => {
|
||||
if (!EMERGENCYNEWTEAM_ID.value) return;
|
||||
const resData = await setEmergencyNewTeamManagementGet({
|
||||
EMERGENCYNEWTEAM_ID: EMERGENCYNEWTEAM_ID.value,
|
||||
});
|
||||
form.value = resData.item[0];
|
||||
};
|
||||
fnGetData();
|
||||
const fnSubmit = debounce(
|
||||
1000,
|
||||
async (type) => {
|
||||
await useFormValidate(formRef);
|
||||
|
||||
if (EMERGENCYNEWTEAM_ID.value) {
|
||||
form.value.EMERGENCYNEWTEAM_ID = EMERGENCYNEWTEAM_ID.value;
|
||||
await setEmergencyTeamManagementEdit({ ...form.value });
|
||||
} else {
|
||||
// 1、新增到领导 2、找到原来的总指挥然后覆盖内容
|
||||
const resData = await setEmergencyNewTeamManagementAdd({
|
||||
...form.value,
|
||||
});
|
||||
EMERGENCYNEWTEAM_ID.value = resData.EMERGENCYNEWTEAM_ID;
|
||||
}
|
||||
ElMessage.success("操作成功");
|
||||
let activeName = props.activeName;
|
||||
if (type === 1) activeName = "emergencyLeaderTeam";
|
||||
await router.replace({
|
||||
path: route.path,
|
||||
query: {
|
||||
activeName,
|
||||
EMERGENCYNEWTEAM_ID: EMERGENCYNEWTEAM_ID.value,
|
||||
},
|
||||
});
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,290 @@
|
|||
<template>
|
||||
<el-row :gutter="24" class="pb-20">
|
||||
<el-col :span="24" style="border-right: 1px dashed var(--el-border-color)">
|
||||
<el-form
|
||||
:model="searchForm"
|
||||
label-width="auto"
|
||||
@submit.prevent="fnResetPagination"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="姓名" prop="KEYWORDS">
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label-width="10px">
|
||||
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||
<el-button native-type="reset" @click="fnResetPagination">
|
||||
重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<layout-table
|
||||
ref="tableRef"
|
||||
v-model:pagination="pagination"
|
||||
row-key="EMERGENCYNEWTEAMITEM_ID"
|
||||
:data="list"
|
||||
@get-data="fnGetData"
|
||||
>
|
||||
<el-table-column reserve-selection type="selection" width="55" />
|
||||
<el-table-column label="序号" width="60">
|
||||
<template #default="{ $index }">
|
||||
{{ serialNumber(pagination, $index) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="TEAM_NAME" label="应急救援领导小组" />
|
||||
<el-table-column prop="PERSON_NAME" label="姓名" />
|
||||
<el-table-column prop="TEAM_POSITION" label="职务" />
|
||||
<el-table-column prop="PERSON_PHONE" label="电话" />
|
||||
<el-table-column label="操作" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="initFormDataForEdit(row, '查看')"
|
||||
>
|
||||
查看
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.edit"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="initFormDataForEdit(row, '编辑')"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnDelete(row.EMERGENCYNEWTEAMITEM_ID)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #button>
|
||||
<el-button type="primary" @click="initFormDataForEdit({}, '新增')">
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="danger"
|
||||
@click="fnDeleteAll"
|
||||
>
|
||||
批量删除
|
||||
</el-button>
|
||||
</template>
|
||||
</layout-table>
|
||||
<!-- 新增弹出框 -->
|
||||
<el-dialog v-model="dialogTableVisible" :title="dialogTitle">
|
||||
<el-form
|
||||
ref="formRef"
|
||||
:rules="rules"
|
||||
:model="form"
|
||||
label-width="auto"
|
||||
:disabled="dialogTitle === '查看'"
|
||||
>
|
||||
<el-form-item label="应急救援领导小组" prop="TEAM_NAME">
|
||||
<el-input v-model="form.TEAM_NAME" />
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名" prop="PERSON_NAME">
|
||||
<el-input v-model="form.PERSON_NAME" />
|
||||
</el-form-item>
|
||||
<el-form-item label="职务" prop="TEAM_POSITION">
|
||||
<el-input v-model="form.TEAM_POSITION" />
|
||||
</el-form-item>
|
||||
<el-form-item label="电话" prop="PERSON_PHONE">
|
||||
<el-input v-model="form.PERSON_PHONE" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="dialogTableVisible = false"> 取消 </el-button>
|
||||
<el-button
|
||||
v-if="dialogTitle !== '查看'"
|
||||
type="primary"
|
||||
@click="fnSubmit"
|
||||
>
|
||||
确定
|
||||
</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div class="tc pt-20" style="border-top: 1px dashed var(--el-border-color)">
|
||||
<el-button
|
||||
@click="
|
||||
router.replace({
|
||||
path: route.path,
|
||||
query: {
|
||||
activeName: 'commander',
|
||||
EMERGENCYNEWTEAM_ID: emergencynewteamid,
|
||||
},
|
||||
})
|
||||
"
|
||||
>
|
||||
上一步
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="
|
||||
router.replace({
|
||||
path: route.path,
|
||||
query: {
|
||||
activeName: 'emergencyTeam',
|
||||
EMERGENCYNEWTEAM_ID: emergencynewteamid,
|
||||
},
|
||||
})
|
||||
"
|
||||
>
|
||||
下一步
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber } from "@/assets/js/utils";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import {
|
||||
setEmergencyNewTeamManagementDeleteItem,
|
||||
setEmergencyNewTeamManagementDeleteItemMultiple,
|
||||
setEmergencyNewTeamManagementGetS,
|
||||
setEmergencyNewTeamManagementAddS,
|
||||
setEmergencyTeamManagementEditS,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { ref } from "vue";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const buttonJurisdiction = await useButtonJurisdiction("emergencynewteam");
|
||||
defineProps({
|
||||
emergencynewteamid: {
|
||||
type: String,
|
||||
default: "",
|
||||
required: true,
|
||||
},
|
||||
activeName: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
const EMERGENCYNEWTEAM_ID = ref(route.query.EMERGENCYNEWTEAM_ID);
|
||||
const { list, searchForm, pagination, fnGetData, fnResetPagination, tableRef } =
|
||||
useListData(setEmergencyNewTeamManagementGetS, {
|
||||
otherParams: { EMERGENCYNEWTEAM_ID: EMERGENCYNEWTEAM_ID.value },
|
||||
});
|
||||
|
||||
const fnDelete = debounce(
|
||||
1000,
|
||||
async (EMERGENCYNEWTEAMITEM_ID) => {
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyNewTeamManagementDeleteItem({ EMERGENCYNEWTEAMITEM_ID });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
|
||||
const fnDeleteAll = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
const selectionData = tableRef.value.getSelectionRows();
|
||||
if (selectionData.length === 0) {
|
||||
ElMessage.warning("请选中要删除的项");
|
||||
return;
|
||||
}
|
||||
const DATA_IDS = selectionData
|
||||
.map((item) => item.EMERGENCYNEWTEAMITEM_ID)
|
||||
.join(",");
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyNewTeamManagementDeleteItemMultiple({ DATA_IDS });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
// 新增相关参数
|
||||
const form = ref({
|
||||
TEAM_NAME: "",
|
||||
TEAM_POSITION: "",
|
||||
PERSON_NAME: "",
|
||||
PERSON_PHONE: "",
|
||||
EMERGENCYNEWTEAM_ID,
|
||||
});
|
||||
// 总指挥相关参数
|
||||
const rules = {
|
||||
TEAM_NAME: [
|
||||
{ required: true, message: "应急救援领导小组不能为空", trigger: "blur" },
|
||||
],
|
||||
PERSON_NAME: [{ required: true, message: "姓名不能为空", trigger: "blur" }],
|
||||
TEAM_POSITION: [{ required: true, message: "职务不能为空", trigger: "blur" }],
|
||||
PERSON_PHONE: [
|
||||
{ required: true, message: "请输入电话", trigger: "blur" },
|
||||
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
|
||||
{
|
||||
pattern:
|
||||
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
|
||||
message: "请输入正确的手机号码",
|
||||
},
|
||||
],
|
||||
};
|
||||
const dialogTableVisible = ref(false);
|
||||
const dialogTitle = ref("");
|
||||
const formRef = ref(null);
|
||||
const fnSubmit = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
await useFormValidate(formRef);
|
||||
|
||||
dialogTitle.value === "新增"
|
||||
? await setEmergencyNewTeamManagementAddS({ ...form.value })
|
||||
: await setEmergencyTeamManagementEditS({ ...form.value });
|
||||
|
||||
ElMessage.success("操作成功");
|
||||
formRef.value.resetFields();
|
||||
fnGetData();
|
||||
dialogTableVisible.value = false;
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
function initFormDataForEdit(rowData, title) {
|
||||
// 初始化
|
||||
form.value = {
|
||||
TEAM_NAME: "",
|
||||
TEAM_POSITION: "",
|
||||
PERSON_NAME: "",
|
||||
PERSON_PHONE: "",
|
||||
EMERGENCYNEWTEAM_ID,
|
||||
};
|
||||
|
||||
if (title !== "新增") {
|
||||
// 初始化表单数据,将rowData的所有字段赋值给formData
|
||||
form.value.CREATTIME = rowData.CREATTIME;
|
||||
form.value.EMERGENCYNEWTEAMITEM_ID = rowData.EMERGENCYNEWTEAMITEM_ID;
|
||||
form.value.EMERGENCYNEWTEAM_ID = rowData.EMERGENCYNEWTEAM_ID;
|
||||
form.value.OPERATTIME = rowData.OPERATTIME;
|
||||
form.value.PERSON_NAME = rowData.PERSON_NAME;
|
||||
form.value.PERSON_PHONE = rowData.PERSON_PHONE;
|
||||
form.value.PERSON_ROLE = rowData.PERSON_ROLE;
|
||||
form.value.TEAM_NAME = rowData.TEAM_NAME;
|
||||
form.value.TEAM_POSITION = rowData.TEAM_POSITION;
|
||||
form.value.PERSON_ROLE = rowData.PERSON_ROLE;
|
||||
form.value.PERSON_ROLE = rowData.PERSON_ROLE;
|
||||
}
|
||||
dialogTitle.value = title;
|
||||
|
||||
dialogTableVisible.value = true;
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,295 @@
|
|||
<template>
|
||||
<el-row :gutter="24" class="pb-20">
|
||||
<el-col :span="24" style="border-right: 1px dashed var(--el-border-color)">
|
||||
<el-form
|
||||
:model="searchForm"
|
||||
label-width="auto"
|
||||
@submit.prevent="fnResetPagination"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="姓名" prop="KEYWORDS">
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label-width="10px">
|
||||
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||
<el-button native-type="reset" @click="fnResetPagination">
|
||||
重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<layout-table
|
||||
ref="tableRef"
|
||||
v-model:pagination="pagination"
|
||||
row-key="EMERGENCYNEWTEAMITEM_ID"
|
||||
:data="list"
|
||||
@get-data="fnGetData"
|
||||
>
|
||||
<el-table-column reserve-selection type="selection" width="55" />
|
||||
<el-table-column label="序号" width="60">
|
||||
<template #default="{ $index }">
|
||||
{{ serialNumber(pagination, $index) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="TEAM_NAME" label="应急救援小组" />
|
||||
<el-table-column prop="PERSON_NAME" label="姓名" />
|
||||
<el-table-column prop="TEAM_POSITION" label="职务" />
|
||||
<el-table-column prop="PERSON_PHONE" label="电话" />
|
||||
<el-table-column prop="TEAM_DUTY" label="职责" />
|
||||
<el-table-column label="操作" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="initFormDataForEdit(row, '查看')"
|
||||
>
|
||||
查看
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.edit"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="initFormDataForEdit(row, '编辑')"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnDelete(row.EMERGENCYNEWTEAMITEM_ID)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #button>
|
||||
<el-button type="primary" @click="initFormDataForEdit({}, '新增')">
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="danger"
|
||||
@click="fnDeleteAll"
|
||||
>
|
||||
批量删除
|
||||
</el-button>
|
||||
</template>
|
||||
</layout-table>
|
||||
<!-- 新增弹出框 -->
|
||||
<el-dialog v-model="dialogTableVisible" :title="dialogTitle">
|
||||
<el-form
|
||||
ref="formRef"
|
||||
:rules="rules"
|
||||
:model="form"
|
||||
label-width="auto"
|
||||
:disabled="dialogTitle === '查看'"
|
||||
>
|
||||
<el-form-item label="应急救援小组" prop="TEAM_NAME">
|
||||
<el-input v-model="form.TEAM_NAME" />
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名" prop="PERSON_NAME">
|
||||
<el-input v-model="form.PERSON_NAME" />
|
||||
</el-form-item>
|
||||
<el-form-item label="职务" prop="TEAM_POSITION">
|
||||
<el-input v-model="form.TEAM_POSITION" />
|
||||
</el-form-item>
|
||||
<el-form-item label="电话" prop="PERSON_PHONE">
|
||||
<el-input v-model="form.PERSON_PHONE" />
|
||||
</el-form-item>
|
||||
<el-form-item label="职责" prop="TEAM_DUTY">
|
||||
<el-input v-model="form.TEAM_DUTY" :rows="3" type="textarea" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="dialogTableVisible = false"> 取消 </el-button>
|
||||
<el-button
|
||||
v-if="dialogTitle !== '查看'"
|
||||
type="primary"
|
||||
@click="fnSubmit"
|
||||
>
|
||||
确定
|
||||
</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div class="tc pt-20" style="border-top: 1px dashed var(--el-border-color)">
|
||||
<el-button
|
||||
@click="
|
||||
router.replace({
|
||||
path: route.path,
|
||||
query: {
|
||||
activeName: 'emergencyLeaderTeam',
|
||||
EMERGENCYNEWTEAM_ID: emergencynewteamid,
|
||||
},
|
||||
})
|
||||
"
|
||||
>
|
||||
上一步
|
||||
</el-button>
|
||||
<el-button type="primary" @click="finalSubmit">保存</el-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber } from "@/assets/js/utils";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import {
|
||||
setEmergencyNewTeamManagementDeleteItem,
|
||||
setEmergencyNewTeamManagementDeleteItemMultiple,
|
||||
setEmergencyNewTeamManagementGetE,
|
||||
setEmergencyNewTeamManagementAddE,
|
||||
setEmergencyTeamManagementEditE,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import { ref } from "vue";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const buttonJurisdiction = await useButtonJurisdiction("emergencynewteam");
|
||||
defineProps({
|
||||
emergencynewteamid: {
|
||||
type: String,
|
||||
default: "",
|
||||
required: true,
|
||||
},
|
||||
activeName: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
|
||||
const EMERGENCYNEWTEAM_ID = ref(route.query.EMERGENCYNEWTEAM_ID);
|
||||
const { list, searchForm, pagination, fnGetData, fnResetPagination, tableRef } =
|
||||
useListData(setEmergencyNewTeamManagementGetE, {
|
||||
otherParams: { EMERGENCYNEWTEAM_ID: EMERGENCYNEWTEAM_ID.value },
|
||||
});
|
||||
|
||||
const fnDelete = debounce(
|
||||
1000,
|
||||
async (EMERGENCYNEWTEAMITEM_ID) => {
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyNewTeamManagementDeleteItem({ EMERGENCYNEWTEAMITEM_ID });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
|
||||
const fnDeleteAll = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
const selectionData = tableRef.value.getSelectionRows();
|
||||
if (selectionData.length === 0) {
|
||||
ElMessage.warning("请选中要删除的项");
|
||||
return;
|
||||
}
|
||||
const DATA_IDS = selectionData
|
||||
.map((item) => item.EMERGENCYNEWTEAMITEM_ID)
|
||||
.join(",");
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyNewTeamManagementDeleteItemMultiple({ DATA_IDS });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
// 新增相关参数
|
||||
const form = ref({
|
||||
TEAM_NAME: "",
|
||||
TEAM_POSITION: "",
|
||||
PERSON_NAME: "",
|
||||
PERSON_PHONE: "",
|
||||
EMERGENCYNEWTEAM_ID,
|
||||
});
|
||||
// 总指挥相关参数
|
||||
const rules = {
|
||||
TEAM_NAME: [
|
||||
{ required: true, message: "应急救援小组不能为空", trigger: "blur" },
|
||||
],
|
||||
TEAM_POSITION: [{ required: true, message: "职务不能为空", trigger: "blur" }],
|
||||
PERSON_NAME: [{ required: true, message: "姓名不能为空", trigger: "blur" }],
|
||||
PERSON_PHONE: [
|
||||
{ required: true, message: "请输入电话", trigger: "blur" },
|
||||
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
|
||||
{
|
||||
pattern:
|
||||
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
|
||||
message: "请输入正确的手机号码",
|
||||
},
|
||||
],
|
||||
TEAM_DUTY: [
|
||||
{
|
||||
required: true,
|
||||
message: "职责不能为空",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
};
|
||||
const dialogTableVisible = ref(false);
|
||||
const dialogTitle = ref("");
|
||||
const formRef = ref(null);
|
||||
const fnSubmit = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
await useFormValidate(formRef);
|
||||
dialogTitle.value === "新增"
|
||||
? await setEmergencyNewTeamManagementAddE({ ...form.value })
|
||||
: await setEmergencyTeamManagementEditE({ ...form.value });
|
||||
|
||||
ElMessage.success("操作成功");
|
||||
formRef.value.resetFields();
|
||||
fnGetData();
|
||||
dialogTableVisible.value = false;
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
function initFormDataForEdit(rowData, title) {
|
||||
// 初始化
|
||||
form.value = {
|
||||
TEAM_NAME: "",
|
||||
TEAM_POSITION: "",
|
||||
PERSON_NAME: "",
|
||||
PERSON_PHONE: "",
|
||||
EMERGENCYNEWTEAM_ID,
|
||||
};
|
||||
if (title !== "新增") {
|
||||
// 初始化表单数据,将rowData的所有字段赋值给formData
|
||||
form.value.CREATTIME = rowData.CREATTIME;
|
||||
form.value.EMERGENCYNEWTEAMITEM_ID = rowData.EMERGENCYNEWTEAMITEM_ID;
|
||||
form.value.EMERGENCYNEWTEAM_ID = rowData.EMERGENCYNEWTEAM_ID;
|
||||
form.value.OPERATTIME = rowData.OPERATTIME;
|
||||
form.value.PERSON_NAME = rowData.PERSON_NAME;
|
||||
form.value.PERSON_PHONE = rowData.PERSON_PHONE;
|
||||
form.value.PERSON_ROLE = rowData.PERSON_ROLE;
|
||||
form.value.TEAM_NAME = rowData.TEAM_NAME;
|
||||
form.value.TEAM_POSITION = rowData.TEAM_POSITION;
|
||||
form.value.PERSON_ROLE = rowData.PERSON_ROLE;
|
||||
form.value.PERSON_ROLE = rowData.PERSON_ROLE;
|
||||
form.value.TEAM_DUTY = rowData.TEAM_DUTY;
|
||||
}
|
||||
dialogTitle.value = title;
|
||||
|
||||
dialogTableVisible.value = true;
|
||||
}
|
||||
const finalSubmit = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
router.back();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,157 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
<el-form
|
||||
:model="searchForm"
|
||||
label-width="90"
|
||||
@submit.prevent="fnResetPagination"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="总指挥姓名" prop="KEYWORDS">
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label-width="10px">
|
||||
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||
<el-button native-type="reset" @click="fnResetPagination">
|
||||
重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<layout-card>
|
||||
<layout-table
|
||||
ref="tableRef"
|
||||
v-model:pagination="pagination"
|
||||
row-key="EMERGENCYNEWTEAM_ID"
|
||||
:data="list"
|
||||
@get-data="fnGetData"
|
||||
>
|
||||
<el-table-column reserve-selection type="selection" width="55" />
|
||||
<el-table-column label="序号" width="60">
|
||||
<template #default="{ $index }">
|
||||
{{ serialNumber(pagination, $index) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="COMMANDER_NAME" label="总指挥姓名" />
|
||||
<el-table-column prop="COMMANDER_POSITION" label="总指挥职务" />
|
||||
<el-table-column prop="COMMANDER_PHONE" label="总指挥电话" />
|
||||
<el-table-column prop="EMERGENCY_DUTY_PHONE" label="应急值班电话" />
|
||||
<el-table-column label="操作" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="
|
||||
router.push({
|
||||
path: '/emergency_resource_management/emergency_team_management/view',
|
||||
query: { EMERGENCYNEWTEAM_ID: row.EMERGENCYNEWTEAM_ID },
|
||||
})
|
||||
"
|
||||
>
|
||||
查看
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.edit"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="
|
||||
router.push({
|
||||
path: '/emergency_resource_management/emergency_team_management/edit',
|
||||
query: { EMERGENCYNEWTEAM_ID: row.EMERGENCYNEWTEAM_ID },
|
||||
})
|
||||
"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnDelete(row.EMERGENCYNEWTEAM_ID)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.add"
|
||||
type="primary"
|
||||
@click="
|
||||
router.push({
|
||||
path: '/emergency_resource_management/emergency_team_management/add',
|
||||
})
|
||||
"
|
||||
>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="danger"
|
||||
@click="fnDeleteAll"
|
||||
>
|
||||
批量删除
|
||||
</el-button>
|
||||
</template>
|
||||
</layout-table>
|
||||
</layout-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber } from "@/assets/js/utils";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import {
|
||||
getEmergencyNewTeamManagementList,
|
||||
setEmergencyNewTeamManagementDelete,
|
||||
setEmergencyNewTeamManagementDeleteMultiple,
|
||||
} from "@/request/emergency_resource_management.js";
|
||||
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import { useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
const { list, searchForm, pagination, fnGetData, fnResetPagination, tableRef } =
|
||||
useListData(getEmergencyNewTeamManagementList);
|
||||
const buttonJurisdiction = await useButtonJurisdiction("emergencynewteam");
|
||||
|
||||
const fnDelete = debounce(
|
||||
1000,
|
||||
async (EMERGENCYNEWTEAM_ID) => {
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyNewTeamManagementDelete({ EMERGENCYNEWTEAM_ID });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
|
||||
const fnDeleteAll = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
const selectionData = tableRef.value.getSelectionRows();
|
||||
if (selectionData.length === 0) {
|
||||
ElMessage.warning("请选中要删除的项");
|
||||
return;
|
||||
}
|
||||
const DATA_IDS = selectionData
|
||||
.map((item) => item.EMERGENCYNEWTEAM_ID)
|
||||
.join(",");
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setEmergencyNewTeamManagementDeleteMultiple({ DATA_IDS });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,54 @@
|
|||
<template>
|
||||
<layout-card>
|
||||
<el-divider content-position="left">应急救援小组总指挥</el-divider>
|
||||
<layout-table :data="data.pd2List" :show-pagination="false">
|
||||
<el-table-column type="index" label="序号" width="50" />
|
||||
<el-table-column prop="COMMANDER_NAME" label="总指挥姓名" />
|
||||
<el-table-column prop="COMMANDER_POSITION" label="总指挥职务" />
|
||||
<el-table-column prop="COMMANDER_PHONE" label="总指挥电话" />
|
||||
<el-table-column prop="EMERGENCY_DUTY_PHONE" label="应急值班电话" />
|
||||
</layout-table>
|
||||
<el-divider content-position="left">应急救援领导小组</el-divider>
|
||||
<layout-table :data="data.pd1List" :show-pagination="false">
|
||||
<el-table-column type="index" label="序号" width="50" />
|
||||
<el-table-column prop="TEAM_NAME" label="应急救援小组" />
|
||||
<el-table-column prop="PERSON_NAME" label="姓名" />
|
||||
<el-table-column prop="TEAM_POSITION" label="职务" />
|
||||
<el-table-column prop="PERSON_PHONE" label="电话" />
|
||||
</layout-table>
|
||||
<el-divider content-position="left">应急救援小组</el-divider>
|
||||
<layout-table :data="data.pdList" :show-pagination="false">
|
||||
<el-table-column type="index" label="序号" width="50" />
|
||||
<el-table-column prop="TEAM_NAME" label="应急救援小组" />
|
||||
<el-table-column prop="PERSON_NAME" label="姓名" />
|
||||
<el-table-column prop="TEAM_POSITION" label="职务" />
|
||||
<el-table-column prop="TEAM_DUTY" label="职责" />
|
||||
<el-table-column prop="PERSON_PHONE" label="电话" />
|
||||
</layout-table>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useRoute } from "vue-router";
|
||||
import { getEmergencyNewTeamManagementView } from "@/request/emergency_resource_management.js";
|
||||
import { reactive } from "vue";
|
||||
|
||||
const route = useRoute();
|
||||
const { EMERGENCYNEWTEAM_ID } = route.query;
|
||||
const data = reactive({
|
||||
pdList: [],
|
||||
pd1List: [],
|
||||
pd2List: [],
|
||||
});
|
||||
const fnGetData = async () => {
|
||||
const resData = await getEmergencyNewTeamManagementView({
|
||||
EMERGENCYNEWTEAM_ID,
|
||||
});
|
||||
data.pdList = resData.pd;
|
||||
data.pd1List = resData.pd1;
|
||||
data.pd2List = resData.pd2;
|
||||
};
|
||||
fnGetData();
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -158,7 +158,6 @@ const info = ref({});
|
|||
const fnGetData = async () => {
|
||||
if (!OPERATING_ID) return;
|
||||
const resData = await findByIdOperatingVehicleInfo({ OPERATING_ID });
|
||||
console.log(resData);
|
||||
info.value = resData.pd;
|
||||
info.value.HEADSTOCK_PHOTO = addingPrefixToFile(resData.headstockphoto);
|
||||
info.value.DRIVINGLICENSE_PHOTO = addingPrefixToFile(
|
||||
|
|
|
@ -392,7 +392,15 @@
|
|||
<el-col :span="9">
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-form-item label="驾驶证" :prop="data.form.PERSONNEL_TYPE.join()!=='23e18d4618ea44fea78bfe7021d4b5f1'?'DRIVER_LICENSE':''">
|
||||
<el-form-item
|
||||
label="驾驶证"
|
||||
:prop="
|
||||
data.form.PERSONNEL_TYPE.join() !==
|
||||
'23e18d4618ea44fea78bfe7021d4b5f1'
|
||||
? 'DRIVER_LICENSE'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<layout-upload
|
||||
v-model:file-list="data.form.DRIVER_LICENSE"
|
||||
accept=".jpg,.jpeg,.png"
|
||||
|
@ -406,7 +414,15 @@
|
|||
<el-col :span="15">
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="证号" :prop="data.form.PERSONNEL_TYPE.join()!=='23e18d4618ea44fea78bfe7021d4b5f1'?'DRIVER_LICENSE_NO':''">
|
||||
<el-form-item
|
||||
label="证号"
|
||||
:prop="
|
||||
data.form.PERSONNEL_TYPE.join() !==
|
||||
'23e18d4618ea44fea78bfe7021d4b5f1'
|
||||
? 'DRIVER_LICENSE_NO'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<el-input
|
||||
v-model="data.form.DRIVER_LICENSE_NO"
|
||||
placeholder="请输入"
|
||||
|
@ -414,7 +430,15 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="准驾车型" :prop="data.form.PERSONNEL_TYPE.join()!=='23e18d4618ea44fea78bfe7021d4b5f1'?'DRIVING_MODEL_ARR':''">
|
||||
<el-form-item
|
||||
label="准驾车型"
|
||||
:prop="
|
||||
data.form.PERSONNEL_TYPE.join() !==
|
||||
'23e18d4618ea44fea78bfe7021d4b5f1'
|
||||
? 'DRIVING_MODEL_ARR'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<el-select v-model="data.form.DRIVING_MODEL_ARR" multiple>
|
||||
<el-option
|
||||
v-for="item in data.drivingModelList"
|
||||
|
@ -426,7 +450,15 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="国籍" :prop="data.form.PERSONNEL_TYPE.join()!=='23e18d4618ea44fea78bfe7021d4b5f1'?'DRIVING_NATIONALITY':''">
|
||||
<el-form-item
|
||||
label="国籍"
|
||||
:prop="
|
||||
data.form.PERSONNEL_TYPE.join() !==
|
||||
'23e18d4618ea44fea78bfe7021d4b5f1'
|
||||
? 'DRIVING_NATIONALITY'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<el-select v-model="data.form.DRIVING_NATIONALITY">
|
||||
<el-option
|
||||
v-for="item in data.nationalityList"
|
||||
|
@ -441,7 +473,12 @@
|
|||
<el-col :span="24">
|
||||
<el-form-item
|
||||
label="初次领证日期"
|
||||
:prop="data.form.PERSONNEL_TYPE.join()!=='23e18d4618ea44fea78bfe7021d4b5f1'?'DRIVER_LICENSE_ISSUE_DATE':''"
|
||||
:prop="
|
||||
data.form.PERSONNEL_TYPE.join() !==
|
||||
'23e18d4618ea44fea78bfe7021d4b5f1'
|
||||
? 'DRIVER_LICENSE_ISSUE_DATE'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="data.form.DRIVER_LICENSE_ISSUE_DATE"
|
||||
|
@ -453,7 +490,15 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="有效期限" :prop="data.form.PERSONNEL_TYPE.join()!=='23e18d4618ea44fea78bfe7021d4b5f1'?'DRIVER_LICENSE_VALIDITY':''">
|
||||
<el-form-item
|
||||
label="有效期限"
|
||||
:prop="
|
||||
data.form.PERSONNEL_TYPE.join() !==
|
||||
'23e18d4618ea44fea78bfe7021d4b5f1'
|
||||
? 'DRIVER_LICENSE_VALIDITY'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="data.form.DRIVER_LICENSE_VALIDITY"
|
||||
type="daterange"
|
||||
|
@ -464,7 +509,15 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="签发机关" :prop="data.form.PERSONNEL_TYPE.join()!=='23e18d4618ea44fea78bfe7021d4b5f1'?'DRIVER_LICENSE_ORGAN':''">
|
||||
<el-form-item
|
||||
label="签发机关"
|
||||
:prop="
|
||||
data.form.PERSONNEL_TYPE.join() !==
|
||||
'23e18d4618ea44fea78bfe7021d4b5f1'
|
||||
? 'DRIVER_LICENSE_ORGAN'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<el-input
|
||||
v-model="data.form.DRIVER_LICENSE_ORGAN"
|
||||
placeholder="请输入"
|
||||
|
@ -1228,7 +1281,7 @@ const fnSubmit = debounce(
|
|||
Object.keys(data.form).forEach((key) => {
|
||||
formData.append(key, data.form[key]);
|
||||
});
|
||||
formData.PERSONNEL_TYPE = data.form.PERSONNEL_TYPE.join(",")
|
||||
formData.PERSONNEL_TYPE = data.form.PERSONNEL_TYPE.join(",");
|
||||
formData.delete("ID_CARD_VALIDITY");
|
||||
formData.delete("DRIVING_MODEL_ARR");
|
||||
formData.delete("DRIVER_LICENSE_VALIDITY");
|
||||
|
|
|
@ -386,7 +386,15 @@
|
|||
<el-col :span="9">
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-form-item label="驾驶证" :prop="data.form.PERSONNEL_TYPE.join()!=='23e18d4618ea44fea78bfe7021d4b5f1'?'DRIVER_LICENSE':''">
|
||||
<el-form-item
|
||||
label="驾驶证"
|
||||
:prop="
|
||||
data.form.PERSONNEL_TYPE.join() !==
|
||||
'23e18d4618ea44fea78bfe7021d4b5f1'
|
||||
? 'DRIVER_LICENSE'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<layout-upload
|
||||
v-model:file-list="data.fileForm.DRIVER_LICENSE"
|
||||
accept=".jpg,.jpeg,.png"
|
||||
|
@ -400,7 +408,15 @@
|
|||
<el-col :span="15">
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="证号" :prop="data.form.PERSONNEL_TYPE.join()!=='23e18d4618ea44fea78bfe7021d4b5f1'?'DRIVER_LICENSE_NO':''">
|
||||
<el-form-item
|
||||
label="证号"
|
||||
:prop="
|
||||
data.form.PERSONNEL_TYPE.join() !==
|
||||
'23e18d4618ea44fea78bfe7021d4b5f1'
|
||||
? 'DRIVER_LICENSE_NO'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<el-input
|
||||
v-model="data.form.DRIVER_LICENSE_NO"
|
||||
placeholder="请输入"
|
||||
|
@ -408,7 +424,15 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="准驾车型" :prop="data.form.PERSONNEL_TYPE.join()!=='23e18d4618ea44fea78bfe7021d4b5f1'?'DRIVING_MODEL_ARR':''">
|
||||
<el-form-item
|
||||
label="准驾车型"
|
||||
:prop="
|
||||
data.form.PERSONNEL_TYPE.join() !==
|
||||
'23e18d4618ea44fea78bfe7021d4b5f1'
|
||||
? 'DRIVING_MODEL_ARR'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<el-select v-model="data.form.DRIVING_MODEL_ARR" multiple>
|
||||
<el-option
|
||||
v-for="item in data.drivingModelList"
|
||||
|
@ -420,7 +444,15 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="国籍" :prop="data.form.PERSONNEL_TYPE.join()!=='23e18d4618ea44fea78bfe7021d4b5f1'?'DRIVING_NATIONALITY':''">
|
||||
<el-form-item
|
||||
label="国籍"
|
||||
:prop="
|
||||
data.form.PERSONNEL_TYPE.join() !==
|
||||
'23e18d4618ea44fea78bfe7021d4b5f1'
|
||||
? 'DRIVING_NATIONALITY'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<el-select v-model="data.form.DRIVING_NATIONALITY">
|
||||
<el-option
|
||||
v-for="item in data.nationalityList"
|
||||
|
@ -435,7 +467,12 @@
|
|||
<el-col :span="24">
|
||||
<el-form-item
|
||||
label="初次领证日期"
|
||||
:prop="data.form.PERSONNEL_TYPE.join()!=='23e18d4618ea44fea78bfe7021d4b5f1'?'DRIVER_LICENSE_ISSUE_DATE':''"
|
||||
:prop="
|
||||
data.form.PERSONNEL_TYPE.join() !==
|
||||
'23e18d4618ea44fea78bfe7021d4b5f1'
|
||||
? 'DRIVER_LICENSE_ISSUE_DATE'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="data.form.DRIVER_LICENSE_ISSUE_DATE"
|
||||
|
@ -447,7 +484,15 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="有效期限" :prop="data.form.PERSONNEL_TYPE.join()!=='23e18d4618ea44fea78bfe7021d4b5f1'?'dates':''">
|
||||
<el-form-item
|
||||
label="有效期限"
|
||||
:prop="
|
||||
data.form.PERSONNEL_TYPE.join() !==
|
||||
'23e18d4618ea44fea78bfe7021d4b5f1'
|
||||
? 'dates'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="data.form.DRIVER_LICENSE_VALIDITY"
|
||||
type="daterange"
|
||||
|
@ -458,7 +503,15 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="签发机关" :prop="data.form.PERSONNEL_TYPE.join()!=='23e18d4618ea44fea78bfe7021d4b5f1'?'DRIVER_LICENSE_ORGAN':''">
|
||||
<el-form-item
|
||||
label="签发机关"
|
||||
:prop="
|
||||
data.form.PERSONNEL_TYPE.join() !==
|
||||
'23e18d4618ea44fea78bfe7021d4b5f1'
|
||||
? 'DRIVER_LICENSE_ORGAN'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<el-input
|
||||
v-model="data.form.DRIVER_LICENSE_ORGAN"
|
||||
placeholder="请输入"
|
||||
|
@ -917,7 +970,7 @@ const fnGetData = async () => {
|
|||
data.oldPostId = form.POST_ID;
|
||||
data.oldDepartId = form.DEPARTMENT_ID;
|
||||
form.userCerFile = addingPrefixToFile(resData.userCerList);
|
||||
form.PERSONNEL_TYPE = form.PERSONNEL_TYPE.split(",")
|
||||
form.PERSONNEL_TYPE = form.PERSONNEL_TYPE.split(",");
|
||||
resData.certificateList.forEach((item) => {
|
||||
if (item.CERTIFICATE_CATEGORY === "1") {
|
||||
data.fileForm.ID_CARD_FRONT = addingPrefixFile(item.ID_PHOTO_FRONT);
|
||||
|
@ -1153,7 +1206,7 @@ const fnSubmit = debounce(
|
|||
Object.keys(data.form).forEach((key) => {
|
||||
formData.append(key, data.form[key]);
|
||||
});
|
||||
formData.PERSONNEL_TYPE = data.form.PERSONNEL_TYPE.join(",")
|
||||
formData.PERSONNEL_TYPE = data.form.PERSONNEL_TYPE.join(",");
|
||||
formData.delete("ID_CARD_VALIDITY");
|
||||
formData.delete("DRIVING_MODEL_ARR");
|
||||
formData.delete("DRIVER_LICENSE_VALIDITY");
|
||||
|
|
|
@ -234,7 +234,7 @@ const reviewItem = async (row) => {
|
|||
|
||||
/* const fnWindow = async () => {
|
||||
window.open(
|
||||
"http://60.10.47.50:9001/#/middlePage?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwYXNzd2QiOiJMZmtmcUAxMjM0NTYiLCJleHAiOjE3MTI4OTc1NjcsInVzZXIiOiJsZnlqemhkcCIsInRhcmdldCI6Imh0dHA6Ly8xOTIuMTY4LjAuNjk6ODA4Mi8jL21pZGRsZVBhZ2UifQ.TUl_q6hcWaXMAVlVqOVQup77MjQWcxc-g8SNrhQRbzc"
|
||||
"https://yqag.lfjinantai.com:9001/#/middlePage?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwYXNzd2QiOiJMZmtmcUAxMjM0NTYiLCJleHAiOjE3MTQxMzQ4NjUsInVzZXIiOiJsZnlqemhkcCIsInRhcmdldCI6Imh0dHBzOi8veXFhZy5sZmppbmFudGFpLmNvbTo5MDAxLyMvbWlkZGxlUGFnZSJ9.Lj_8JAplLOQigNX5UzGXQY1X4YmQUu8rd8whZnQNOWU"
|
||||
);
|
||||
}; */
|
||||
// 页面下拉选项字典获取
|
||||
|
|
|
@ -431,7 +431,6 @@ const fnGetVehicleInfo = async () => {
|
|||
const OPERATING_ID = form.value.OPERATIONVEHICLELIST[i].OPERATING_ID;
|
||||
const resData = await findByIdOperatingVehicleInfo({ OPERATING_ID });
|
||||
info.value = resData.pd;
|
||||
console.log(resData);
|
||||
form.value.VEHICLE.PLATE_NUMBER = info.value.PLATE_NUMBER;
|
||||
form.value.VEHICLE.RAW_OWNERS = info.value.VEHICLEOWNER;
|
||||
form.value.VEHICLE.RAW_OWNERS_NUMBER = info.value.VEHICLEOWNER_NUMBER;
|
||||
|
|
|
@ -127,7 +127,6 @@ const getData = async () => {
|
|||
info.value.NOW_DRIVINGLICENSE_IMG = addingPrefixToFile(
|
||||
resData.nowDrivinglicenseImg
|
||||
);
|
||||
|
||||
};
|
||||
getData();
|
||||
</script>
|
||||
|
|
|
@ -127,12 +127,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column prop="REVERT" label="到期状态" width="80">
|
||||
<template #default="{ row }">
|
||||
<el-tag v-if="row.REVERT === '1'" type="success"
|
||||
>未到期</el-tag
|
||||
>
|
||||
<el-tag v-else-if="row.REVERT === '0'" type="error"
|
||||
>已到期</el-tag
|
||||
>
|
||||
<el-tag v-if="row.REVERT === '1'" type="success">未到期</el-tag>
|
||||
<el-tag v-else-if="row.REVERT === '0'" type="error">已到期</el-tag>
|
||||
<el-tag v-else-if="row.REVERT === '2'" type="warning"
|
||||
>即将到期</el-tag
|
||||
>
|
||||
|
|
|
@ -348,9 +348,9 @@ const getDueDate = () => {
|
|||
}
|
||||
}
|
||||
form.value.DUE_DATE = timeTransformation(form.value.PROCESSING_DATE, num);
|
||||
var dueDate = new Date(form.value.DUE_DATE);
|
||||
dueDate.setDate(dueDate.getDate() - 1)
|
||||
form.value.DUE_DATE = subtractDaysFromDate(dueDate,0)
|
||||
const dueDate = new Date(form.value.DUE_DATE);
|
||||
dueDate.setDate(dueDate.getDate() - 1);
|
||||
form.value.DUE_DATE = subtractDaysFromDate(dueDate, 0);
|
||||
if (form.value.REMINDER_DAYS) {
|
||||
form.value.REMINDER_DATE = subtractDaysFromDate(
|
||||
form.value.DUE_DATE,
|
||||
|
|
|
@ -148,12 +148,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column prop="REVERT" label="到期状态" width="95">
|
||||
<template #default="{ row }">
|
||||
<el-tag v-if="row.REVERT === '1'" type="success"
|
||||
>未到期
|
||||
</el-tag>
|
||||
<el-tag v-else-if="row.REVERT === '0'" type="error"
|
||||
>已到期
|
||||
</el-tag>
|
||||
<el-tag v-if="row.REVERT === '1'" type="success">未到期 </el-tag>
|
||||
<el-tag v-else-if="row.REVERT === '0'" type="error">已到期 </el-tag>
|
||||
<el-tag v-else-if="row.REVERT === '2'" type="warning"
|
||||
>即将到期
|
||||
</el-tag>
|
||||
|
@ -259,7 +255,6 @@ const data = reactive({
|
|||
});
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
|
||||
useListData(getInspectAnnuallyList);
|
||||
console.log(await getInspectAnnuallyList());
|
||||
const fnGetDataTransfer = () => {
|
||||
fnGetData({
|
||||
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
|
||||
|
|
|
@ -146,7 +146,6 @@ const fnGetData = async () => {
|
|||
if (!INSPECTANNUALLY_ID) return;
|
||||
const resData = await getInspectAnnuallyView(INSPECTANNUALLY_ID);
|
||||
info.value = resData.pd;
|
||||
console.log(info.value);
|
||||
fnBusChange(resData.pd.VEHICLE);
|
||||
info.value.INSPECTINFO = addingPrefixToFile(resData.inspectinfoImgs);
|
||||
};
|
||||
|
|
|
@ -424,9 +424,9 @@ const getBusInfo = (val) => {
|
|||
const getDueDate = (val) => {
|
||||
if (val) {
|
||||
form.value.DUE_DATE = timeTransformation(val, 12);
|
||||
var date = new Date(form.value.DUE_DATE);
|
||||
date.setDate(date.getDate() - 1)
|
||||
form.value.DUE_DATE = subtractDaysFromDate(date,0)
|
||||
const date = new Date(form.value.DUE_DATE);
|
||||
date.setDate(date.getDate() - 1);
|
||||
form.value.DUE_DATE = subtractDaysFromDate(date, 0);
|
||||
if (form.value.REMINDER_DAYS) {
|
||||
form.value.REMINDER_DATE = subtractDaysFromDate(
|
||||
form.value.DUE_DATE,
|
||||
|
|
|
@ -167,12 +167,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column prop="REVERT" label="到期状态" width="88">
|
||||
<template #default="{ row }">
|
||||
<el-tag v-if="row.REVERT === '1'" type="success"
|
||||
>未到期</el-tag
|
||||
>
|
||||
<el-tag v-else-if="row.REVERT === '0'" type="error"
|
||||
>已到期</el-tag
|
||||
>
|
||||
<el-tag v-if="row.REVERT === '1'" type="success">未到期</el-tag>
|
||||
<el-tag v-else-if="row.REVERT === '0'" type="error">已到期</el-tag>
|
||||
<el-tag v-else-if="row.REVERT === '2'" type="warning"
|
||||
>即将到期</el-tag
|
||||
>
|
||||
|
|
|
@ -341,8 +341,8 @@ const getDueDate = () => {
|
|||
form.value.MAINTENANCE_CYCLE,
|
||||
true
|
||||
);
|
||||
var date = new Date(form.value.DUE_DATE);
|
||||
date.setDate(date.getDate() - 1)
|
||||
const date = new Date(form.value.DUE_DATE);
|
||||
date.setDate(date.getDate() - 1);
|
||||
form.value.DUE_DATE = subtractDaysFromDate(date, 0);
|
||||
if (form.value.REMINDER_DAYS) {
|
||||
form.value.REMINDER_DATE = subtractDaysFromDate(
|
||||
|
|
|
@ -134,12 +134,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column prop="REVERT" label="到期状态" width="80">
|
||||
<template #default="{ row }">
|
||||
<el-tag v-if="row.REVERT === '1'" type="success"
|
||||
>未到期</el-tag
|
||||
>
|
||||
<el-tag v-else-if="row.REVERT === '0'" type="error"
|
||||
>已到期</el-tag
|
||||
>
|
||||
<el-tag v-if="row.REVERT === '1'" type="success">未到期</el-tag>
|
||||
<el-tag v-else-if="row.REVERT === '0'" type="error">已到期</el-tag>
|
||||
<el-tag v-else-if="row.REVERT === '2'" type="warning"
|
||||
>即将到期</el-tag
|
||||
>
|
||||
|
|
|
@ -318,9 +318,9 @@ const getDueDate = () => {
|
|||
}
|
||||
}
|
||||
form.value.DUE_DATE = timeTransformation(form.value.PROCESSING_DATE, num);
|
||||
var date = new Date(form.value.DUE_DATE);
|
||||
const date = new Date(form.value.DUE_DATE);
|
||||
date.setDate(date.getDate() - 1);
|
||||
form.value.DUE_DATE = subtractDaysFromDate(date,0);
|
||||
form.value.DUE_DATE = subtractDaysFromDate(date, 0);
|
||||
if (form.value.REMINDER_DAYS) {
|
||||
form.value.REMINDER_DATE = subtractDaysFromDate(
|
||||
form.value.DUE_DATE,
|
||||
|
@ -364,7 +364,6 @@ const getVehicle = async (event) => {
|
|||
data.busInfo.COMPANY_AREA = "";
|
||||
data.busInfo.DRIVING_LICENSE_IMG = addingPrefixToFile([]);
|
||||
data.busInfo.OPERATION_CERTIFICATE_IMG = addingPrefixToFile([]);
|
||||
|
||||
};
|
||||
const fnBusChange = async (event) => {
|
||||
if (!OPERATIONS_ID) {
|
||||
|
|
|
@ -136,12 +136,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column prop="REVERT" label="到期状态" width="88">
|
||||
<template #default="{ row }">
|
||||
<el-tag v-if="row.REVERT === '1'" type="success"
|
||||
>未到期
|
||||
</el-tag>
|
||||
<el-tag v-else-if="row.REVERT === '0'" type="error"
|
||||
>已到期
|
||||
</el-tag>
|
||||
<el-tag v-if="row.REVERT === '1'" type="success">未到期 </el-tag>
|
||||
<el-tag v-else-if="row.REVERT === '0'" type="error">已到期 </el-tag>
|
||||
<el-tag v-else-if="row.REVERT === '2'" type="warning"
|
||||
>即将到期
|
||||
</el-tag>
|
||||
|
|
|
@ -113,7 +113,7 @@ const data = reactive({
|
|||
CAR_OWNERS: "",
|
||||
CAR_OWNERS_TEL: "",
|
||||
INITIAL_REGISTRATION_DATE: "",
|
||||
OPERATION_CERTIFICATE_IMG: []
|
||||
OPERATION_CERTIFICATE_IMG: [],
|
||||
},
|
||||
});
|
||||
const fnBusChange = async (event) => {
|
||||
|
@ -129,9 +129,7 @@ const fnGetData = async () => {
|
|||
info.value = resData.pd;
|
||||
info.value.OPERATIONSINFO = [];
|
||||
fnBusChange(resData.pd.VEHICLE);
|
||||
info.value.OPERATIONSINFO = addingPrefixToFile(
|
||||
resData.operationsinfoImgs
|
||||
);
|
||||
info.value.OPERATIONSINFO = addingPrefixToFile(resData.operationsinfoImgs);
|
||||
};
|
||||
fnGetData();
|
||||
</script>
|
||||
|
|
|
@ -422,7 +422,6 @@ const isEditMode = ref(false);
|
|||
const ACCIDENTINVESTIGATION_ID = ref("");
|
||||
const formRef = ref(null);
|
||||
const rules = reactive({
|
||||
|
||||
GENDER: [{ required: true, message: "请选择人员性别", trigger: "change" }],
|
||||
AGE: [{ required: true, message: "请输入人员年龄", trigger: "change" }],
|
||||
EDUCATIONALLEVEL: [
|
||||
|
@ -572,7 +571,7 @@ const fnGetData = async () => {
|
|||
if (!ACCIDENTINVESTIGATION_ID) return;
|
||||
const resData = await infoAccidentInvestigation({ ACCIDENTINVESTIGATION_ID });
|
||||
data.form = resData.pd;
|
||||
data.form.USER_ID = resData.pd.CASUALTYNAME
|
||||
data.form.USER_ID = resData.pd.CASUALTYNAME;
|
||||
data.form.fileList = addingPrefixFile(resData.pd.ACCIDENTANALYSISRECORD);
|
||||
data.form.ACCIDENTANALYSISRECORD = addingPrefixFile(
|
||||
resData.pd.ACCIDENTREPORTRECORD
|
||||
|
|
|
@ -276,7 +276,7 @@ const form = ref({
|
|||
OPERATIONVEHICLELIST: [],
|
||||
FREIGHTVEHICLELIST: [],
|
||||
DRIVING_LICENSE_IMG: [],
|
||||
ID: ""
|
||||
ID: "",
|
||||
});
|
||||
const fnEditVehicleModel = async () => {
|
||||
form.value.SCRAP_VEHICLE = null;
|
||||
|
@ -293,13 +293,11 @@ const fnEditVehicleModel = async () => {
|
|||
const info = ref({});
|
||||
const fnGetVehicleInfo = async () => {
|
||||
if (form.value.SCRAP_VEHICLEMODEL === "运输车辆") {
|
||||
console.log(form.value.OPERATIONVEHICLELIST);
|
||||
for (let i = 0; i < form.value.OPERATIONVEHICLELIST.length; i++) {
|
||||
if (
|
||||
form.value.OPERATIONVEHICLELIST[i].OPERATING_ID ===
|
||||
form.value.SCRAP_VEHICLE
|
||||
) {
|
||||
console.log(form.value.OPERATIONVEHICLELIST[i]);
|
||||
const OPERATING_ID = form.value.OPERATIONVEHICLELIST[i].OPERATING_ID;
|
||||
await setOperationsScrapStatus({ OPERATING_ID });
|
||||
const resData = await getOperationVehicleInfo({ OPERATING_ID });
|
||||
|
|
|
@ -183,7 +183,7 @@ const fnGetSummaries = ({ columns, data }) => {
|
|||
sums[index] = "合计";
|
||||
return;
|
||||
}
|
||||
if(index === columns.length - 1){
|
||||
if (index === columns.length - 1) {
|
||||
sums[index] = data.at(-1)?.[column.property];
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue