feat:应急预案
This commit is contained in:
parent
ff7dc7d58b
commit
f147d124e8
|
|
@ -11,8 +11,8 @@ export default {
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: 'procession',
|
path: 'team',
|
||||||
name: 'processionindex',
|
name: 'team',
|
||||||
component: () => import('@/views/emergency/procession/index.vue'),
|
component: () => import('@/views/emergency/procession/index.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
icon: 'point',
|
icon: 'point',
|
||||||
|
|
@ -22,8 +22,8 @@ export default {
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: 'form_details',
|
path: 'team_detail',
|
||||||
name: 'form_details',
|
name: 'team_detail',
|
||||||
component: () => import('@/views/emergency/procession/form_details.vue'),
|
component: () => import('@/views/emergency/procession/form_details.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
auth: "emer.team.detail",
|
auth: "emer.team.detail",
|
||||||
|
|
@ -36,8 +36,8 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'matter',
|
path: 'resourse',
|
||||||
name: 'matterindex',
|
name: 'resourse',
|
||||||
component: () => import('@/views/emergency/matter/index.vue'),
|
component: () => import('@/views/emergency/matter/index.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
icon: 'point',
|
icon: 'point',
|
||||||
|
|
@ -52,7 +52,7 @@ export default {
|
||||||
component: () => import('@/views/emergency/shelter/index.vue'),
|
component: () => import('@/views/emergency/shelter/index.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
icon: 'point',
|
icon: 'point',
|
||||||
auth: "emer.resourse",
|
auth: "emer.shelter",
|
||||||
title: '避难场所',
|
title: '避难场所',
|
||||||
breadcrumb: true, //是否显示面包屑
|
breadcrumb: true, //是否显示面包屑
|
||||||
}
|
}
|
||||||
|
|
@ -63,10 +63,21 @@ export default {
|
||||||
component: () => import('@/views/emergency/duty-people/index.vue'),
|
component: () => import('@/views/emergency/duty-people/index.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
icon: 'point',
|
icon: 'point',
|
||||||
auth: "emer.resourse",
|
auth: "emer.duty",
|
||||||
title: '应急值守',
|
title: '应急值守',
|
||||||
breadcrumb: true, //是否显示面包屑
|
breadcrumb: true, //是否显示面包屑
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'plan',
|
||||||
|
name: 'plan',
|
||||||
|
component: () => import('@/views/emergency/plan/index.vue'),
|
||||||
|
meta: {
|
||||||
|
icon: 'point',
|
||||||
|
auth: "emer.plan",
|
||||||
|
title: '应急预案',
|
||||||
|
breadcrumb: true, //是否显示面包屑
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
<BaseDialog
|
<BaseDialog
|
||||||
:dialogVisible="props.visible"
|
:dialogVisible="props.visible"
|
||||||
@close="onclone"
|
@close="onclone"
|
||||||
:titleName="props.form.opInstructionId ? '编辑应急物资' : '新增应急物资'"
|
:titleName="props.form?.opInstructionId ? '编辑应急预案' : '新增应急预案'"
|
||||||
width="50%"
|
width="50%"
|
||||||
@onSubmit="handleSubmit"
|
@onSubmit="handleSubmit"
|
||||||
:footerclosed="true"
|
:footerclosed="true"
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
<el-input
|
<el-input
|
||||||
placeholder="请输入预案名称"
|
placeholder="请输入预案名称"
|
||||||
v-model="addPostFactorForm.planname"
|
v-model="addPostFactorForm.planname"
|
||||||
:readonly='props.readonly'
|
:readonly="props.readonly"
|
||||||
>
|
>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
<el-select
|
<el-select
|
||||||
placeholder="请选择任务类型"
|
placeholder="请选择任务类型"
|
||||||
v-model="addPostFactorForm.accidenttype"
|
v-model="addPostFactorForm.accidenttype"
|
||||||
:disabled='props.readonly'
|
:disabled="props.readonly"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="(item, index) in props.typeList"
|
v-for="(item, index) in props.typeList"
|
||||||
|
|
@ -40,27 +40,13 @@
|
||||||
></el-option>
|
></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="部门:" prop="sysunitid">
|
|
||||||
<el-select
|
|
||||||
placeholder="请选择部门"
|
|
||||||
v-model="addPostFactorForm.sysunitid"
|
|
||||||
:disabled='props.readonly'
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="(item, index) in unitList"
|
|
||||||
:value="item.sysunitid"
|
|
||||||
:label="item.unitname"
|
|
||||||
:key="index"
|
|
||||||
></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="预案简介:" style="width: 100%">
|
<el-form-item label="预案简介:" style="width: 100%">
|
||||||
<el-input
|
<el-input
|
||||||
type="textarea"
|
type="textarea"
|
||||||
:rows="3"
|
:rows="3"
|
||||||
placeholder="请输入预案简介"
|
placeholder="请输入预案简介"
|
||||||
v-model="addPostFactorForm.introduction"
|
v-model="addPostFactorForm.introduction"
|
||||||
:readonly='props.readonly'
|
:readonly="props.readonly"
|
||||||
>
|
>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
@ -73,19 +59,7 @@
|
||||||
:baseUrl="baseUrl"
|
:baseUrl="baseUrl"
|
||||||
:max="9"
|
:max="9"
|
||||||
@onUpdate="updateFile"
|
@onUpdate="updateFile"
|
||||||
:readonly='props.readonly'
|
:readonly="props.readonly"
|
||||||
></CustomUpload>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="一图一表" style="width: 100%" class="inline-block">
|
|
||||||
<CustomUpload
|
|
||||||
:listPic="chartFileList"
|
|
||||||
:OTCType="FileType.EmergencyImg"
|
|
||||||
:uuid="addPostFactorForm.othplanid || uuid"
|
|
||||||
:userId="userId"
|
|
||||||
:baseUrl="baseUrl"
|
|
||||||
:max="9"
|
|
||||||
@onUpdate="chartupdateFile"
|
|
||||||
:readonly='props.readonly'
|
|
||||||
></CustomUpload>
|
></CustomUpload>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
@ -98,7 +72,6 @@ import useUserStore from "@/store/modules/user";
|
||||||
import { ElMessage, FormInstance, FormRules } from "element-plus";
|
import { ElMessage, FormInstance, FormRules } from "element-plus";
|
||||||
import { getYears, getUUID, FileType } from "@/utils/common";
|
import { getYears, getUUID, FileType } from "@/utils/common";
|
||||||
import { saveOthplan } from "@/api/Othteam";
|
import { saveOthplan } from "@/api/Othteam";
|
||||||
import { getSysunitList } from "@/api/BookEntCheck";
|
|
||||||
import { uploadFile, getFile, delFile } from "@/api/file";
|
import { uploadFile, getFile, delFile } from "@/api/file";
|
||||||
|
|
||||||
const formRef = ref<FormInstance>();
|
const formRef = ref<FormInstance>();
|
||||||
|
|
@ -188,19 +161,6 @@ const getFiles = (FileType) => {
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
//获取部门
|
|
||||||
const SysunitList = () => {
|
|
||||||
let params = {
|
|
||||||
basesafeclassid: null,
|
|
||||||
isTree: 0, //0:列表 1:树形
|
|
||||||
safeclassname: null,
|
|
||||||
userId: userId.value,
|
|
||||||
};
|
|
||||||
getSysunitList(params).then((res: any) => {
|
|
||||||
unitList.value = res.data;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
//关闭弹窗
|
//关闭弹窗
|
||||||
const onclone = () => {
|
const onclone = () => {
|
||||||
emits("close");
|
emits("close");
|
||||||
|
|
@ -4,9 +4,12 @@
|
||||||
<div style="margin-bottom: 16px" class="h-layout space-between h-center">
|
<div style="margin-bottom: 16px" class="h-layout space-between h-center">
|
||||||
<div>
|
<div>
|
||||||
<div class="h-layout">
|
<div class="h-layout">
|
||||||
<div class="tool-item" @click="(dialogVisible = true), (form = {}),(readonly=false)">
|
<div
|
||||||
|
class="tool-item"
|
||||||
|
@click="(dialogVisible = true), (form = {}), (readonly = false)"
|
||||||
|
>
|
||||||
<svg-icon name="add" class="icon" />
|
<svg-icon name="add" class="icon" />
|
||||||
<span >新增</span>
|
<span>新增</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="tool-item" @click="getCompanyList">
|
<div class="tool-item" @click="getCompanyList">
|
||||||
<svg-icon name="refurbish" class="icon" />
|
<svg-icon name="refurbish" class="icon" />
|
||||||
|
|
@ -22,7 +25,7 @@
|
||||||
<div>
|
<div>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="search"
|
v-model="search"
|
||||||
@keydown.enter.native="getCompanyList"
|
@keydown.enter="getCompanyList"
|
||||||
placeholder="输入预案名称"
|
placeholder="输入预案名称"
|
||||||
class="search-input"
|
class="search-input"
|
||||||
>
|
>
|
||||||
|
|
@ -36,7 +39,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="display:flex;margin-bottom: 10px;">
|
<div style="display: flex; margin-bottom: 10px">
|
||||||
<div class="label-select filter-tab">
|
<div class="label-select filter-tab">
|
||||||
<label>预案类型</label>
|
<label>预案类型</label>
|
||||||
<el-select
|
<el-select
|
||||||
|
|
@ -63,17 +66,46 @@
|
||||||
@selection-change="handleSelectionChange"
|
@selection-change="handleSelectionChange"
|
||||||
border
|
border
|
||||||
>
|
>
|
||||||
<el-table-column type="index" align="center" label="序列" width="60"></el-table-column>
|
<el-table-column
|
||||||
<el-table-column prop="planname" :resizable="true" align="center" label="预案名称"></el-table-column>
|
type="index"
|
||||||
<el-table-column prop="othtypename" :resizable="true" align="center" label="预案类型"></el-table-column>
|
align="center"
|
||||||
<el-table-column prop="hasImg" :resizable="true" align="center" label="一图一表数量"></el-table-column>
|
label="序列"
|
||||||
<el-table-column :resizable="true" align="center" width="240" label="操作">
|
width="60"
|
||||||
|
></el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="planname"
|
||||||
|
:resizable="true"
|
||||||
|
align="center"
|
||||||
|
label="预案名称"
|
||||||
|
></el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="othtypename"
|
||||||
|
:resizable="true"
|
||||||
|
align="center"
|
||||||
|
label="预案类型"
|
||||||
|
></el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
:resizable="true"
|
||||||
|
align="center"
|
||||||
|
width="240"
|
||||||
|
label="操作"
|
||||||
|
>
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span class="operate" @click="(dialogVisible = true), (form = scope.row),(readonly=false)">
|
<span
|
||||||
|
class="operate"
|
||||||
|
@click="
|
||||||
|
(dialogVisible = true), (form = scope.row), (readonly = false)
|
||||||
|
"
|
||||||
|
>
|
||||||
<svg-icon name="edit" class="icon"></svg-icon>
|
<svg-icon name="edit" class="icon"></svg-icon>
|
||||||
<span class="edit">编辑</span>
|
<span class="edit">编辑</span>
|
||||||
</span>
|
</span>
|
||||||
<span class="operate" @click=" (dialogVisible = true), (form = scope.row),(readonly=true)">
|
<span
|
||||||
|
class="operate"
|
||||||
|
@click="
|
||||||
|
(dialogVisible = true), (form = scope.row), (readonly = true)
|
||||||
|
"
|
||||||
|
>
|
||||||
<svg-icon name="detail" class="icon"></svg-icon>
|
<svg-icon name="detail" class="icon"></svg-icon>
|
||||||
<span class="detail">详情</span>
|
<span class="detail">详情</span>
|
||||||
</span>
|
</span>
|
||||||
|
|
@ -94,24 +126,30 @@
|
||||||
>
|
>
|
||||||
</el-pagination>
|
</el-pagination>
|
||||||
<!-- 新增 -->
|
<!-- 新增 -->
|
||||||
<Adddetails :visible="dialogVisible" :typeList='option' :form="form" :readonly="readonly" @close="onclone" />
|
<Adddetails
|
||||||
|
:visible="dialogVisible"
|
||||||
|
:typeList="option"
|
||||||
|
:form="form"
|
||||||
|
:readonly="readonly"
|
||||||
|
@close="onclone"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang='ts' setup>
|
<script lang='ts' setup>
|
||||||
import { onMounted, reactive, ref } from "vue";
|
import { onMounted, reactive, ref } from "vue";
|
||||||
import { getOthplanPage,getOthtypeList } from "@/api/Othteam";
|
import { getOthplanPage, getOthtypeList } from "@/api/Othteam";
|
||||||
import Adddetails from "./details.vue";
|
import Adddetails from "./details.vue";
|
||||||
import useUserStore from "@/store/modules/user";
|
import useUserStore from "@/store/modules/user";
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const user = ref(JSON.parse(userStore.userInfo));
|
const user = ref(JSON.parse(userStore.userInfo));
|
||||||
const userId = ref(user.value.userId)
|
const userId = ref(user.value.userId);
|
||||||
const search = ref([]);
|
const search = ref([]);
|
||||||
const tableData = ref([]);
|
const tableData = ref([]);
|
||||||
const currentPage = ref(1);
|
const currentPage = ref(1);
|
||||||
const pageSize = ref(10);
|
const pageSize = ref(10);
|
||||||
const total = ref(0);
|
const total = ref(0);
|
||||||
const type = ref('');
|
const type = ref("");
|
||||||
const option = ref([]);
|
const option = ref([]);
|
||||||
|
|
||||||
const dialogVisible = ref(false);
|
const dialogVisible = ref(false);
|
||||||
|
|
@ -129,18 +167,18 @@ const getCompanyList = () => {
|
||||||
limit: pageSize.value,
|
limit: pageSize.value,
|
||||||
page: currentPage.value,
|
page: currentPage.value,
|
||||||
};
|
};
|
||||||
getOthplanPage(params).then((res:any) => {
|
getOthplanPage(params).then((res: any) => {
|
||||||
tableData.value = res.data.list;
|
tableData.value = res.data.list;
|
||||||
total.value = res.data.total;
|
total.value = res.data.total;
|
||||||
tableDataloading.value = false;
|
tableDataloading.value = false;
|
||||||
})
|
});
|
||||||
};
|
};
|
||||||
// 获取分类
|
// 获取分类
|
||||||
const OthtypeList = () => {
|
const OthtypeList = () => {
|
||||||
getOthtypeList().then((res:any) => {
|
getOthtypeList().then((res: any) => {
|
||||||
option.value = res.data;
|
option.value = res.data;
|
||||||
})
|
});
|
||||||
}
|
};
|
||||||
//关闭新增弹窗
|
//关闭新增弹窗
|
||||||
const onclone = () => {
|
const onclone = () => {
|
||||||
dialogVisible.value = false;
|
dialogVisible.value = false;
|
||||||
|
|
@ -150,7 +188,7 @@ const onclone = () => {
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getCompanyList();
|
getCompanyList();
|
||||||
OthtypeList();
|
OthtypeList();
|
||||||
})
|
});
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.content {
|
.content {
|
||||||
Loading…
Reference in New Issue
Block a user