新增指挥体系等模块
This commit is contained in:
parent
9ad7a9e201
commit
eb93ce4810
|
|
@ -234,6 +234,17 @@ export function getListperformTree() {
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 岗位下用户分页
|
||||
*/
|
||||
export function performUserPage(params) {
|
||||
return request({
|
||||
url: `/admin/Sys/performUserPage`,
|
||||
method: "GET",
|
||||
params:params
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 岗位列表
|
||||
*/
|
||||
|
|
@ -316,4 +327,15 @@ export function saveUser(data) {
|
|||
params:params
|
||||
});
|
||||
}
|
||||
/**
|
||||
*消息管理-通知公告新增或者修改
|
||||
*/
|
||||
export function noticeAdd(params) {
|
||||
return request({
|
||||
url: `/admin/notice/noticeAdd`,
|
||||
method: "POST",
|
||||
data:params
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -19,3 +19,134 @@ export function deleteEquip(data) {
|
|||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*应急避难场所分页
|
||||
*/
|
||||
export function refugePage(params) {
|
||||
return request({
|
||||
url: `/admin/Othteam/refugePage`,
|
||||
method: "GET",
|
||||
params: params
|
||||
});
|
||||
}
|
||||
/**
|
||||
*应急避难场所新增或者修改
|
||||
*/
|
||||
export function refugeAdd(params) {
|
||||
return request({
|
||||
url: `/admin/Othteam/refugeAdd`,
|
||||
method: "POST",
|
||||
data: params
|
||||
});
|
||||
}
|
||||
/**
|
||||
*应急避难场所新增或者修改
|
||||
*/
|
||||
export function refugeDel(params) {
|
||||
return request({
|
||||
url: `/admin/Othteam/refugeDel/${params.othrefugeid}`,
|
||||
method: "POST",
|
||||
});
|
||||
}
|
||||
/**
|
||||
*应急值守列表
|
||||
*/
|
||||
export function dutyList(params) {
|
||||
return request({
|
||||
url: `/admin/Othteam/dutyList`,
|
||||
method: "GET",
|
||||
params:params
|
||||
});
|
||||
}
|
||||
/**
|
||||
*应急值守新增或修改
|
||||
*/
|
||||
export function dutyAdd(params) {
|
||||
return request({
|
||||
url: `/admin/Othteam/dutyAdd`,
|
||||
method: "POST",
|
||||
data:params
|
||||
});
|
||||
}
|
||||
/**
|
||||
*应急预案分页
|
||||
*/
|
||||
export function getOthplanPage(params) {
|
||||
return request({
|
||||
url: `/admin/Othplan/getOthplanPage`,
|
||||
method: "GET",
|
||||
params:params
|
||||
});
|
||||
}
|
||||
/**
|
||||
*应急预案类型列表
|
||||
*/
|
||||
export function getOthtypeList() {
|
||||
return request({
|
||||
url: `/admin/Othplan/getOthtypeList`,
|
||||
method: "GET",
|
||||
});
|
||||
}
|
||||
/**
|
||||
*应急预案新增-修改
|
||||
*/
|
||||
export function saveOthplan(params) {
|
||||
return request({
|
||||
url: `/admin/Othplan/saveOthplan`,
|
||||
method: "POST",
|
||||
data:params,
|
||||
});
|
||||
}
|
||||
/**
|
||||
*应急预案删除
|
||||
*/
|
||||
export function delOthplan(params) {
|
||||
return request({
|
||||
url: `/admin/Othplan/delOthplan`,
|
||||
method: "POST",
|
||||
data:params,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*风险列表分页
|
||||
*/
|
||||
export function riskPoolPage(params) {
|
||||
return request({
|
||||
url: `/admin/risk/riskPoolPage`,
|
||||
method: "GET",
|
||||
params:params,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*风险列表分页
|
||||
*/
|
||||
export function riskTypeList() {
|
||||
return request({
|
||||
url: `/admin/risk/riskTypeList`,
|
||||
method: "GET",
|
||||
});
|
||||
}
|
||||
/**
|
||||
*风险新增或者修改
|
||||
*/
|
||||
export function riskPoolAdd(params) {
|
||||
return request({
|
||||
url: `/admin/risk/riskPoolAdd`,
|
||||
method: "POST",
|
||||
data:params,
|
||||
});
|
||||
}
|
||||
/**
|
||||
*删除风险
|
||||
*/
|
||||
export function riskPoolDel(params) {
|
||||
return request({
|
||||
url: `/admin/risk/riskPoolDel/${params.poolId}`,
|
||||
method: "POST",
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -292,18 +292,18 @@ const getFileType = (fileName) => {
|
|||
const setFiles = () => {
|
||||
fileList.value = [];
|
||||
props.listPic.forEach((item: any) => {
|
||||
item.url = item.filepath;
|
||||
item.url = baseUrl.value + item.filepath;
|
||||
item.fileType = getFileType(item.url);
|
||||
fileList.value.push(item);
|
||||
});
|
||||
};
|
||||
|
||||
// watch(
|
||||
// () => props.listPic,
|
||||
// () => {
|
||||
// setFiles();
|
||||
// }
|
||||
// );
|
||||
watch(
|
||||
() => props.listPic,
|
||||
() => {
|
||||
setFiles();
|
||||
}
|
||||
);
|
||||
|
||||
onMounted(() => {
|
||||
setFiles();
|
||||
|
|
|
|||
|
|
@ -100,7 +100,18 @@ export default {
|
|||
meta: {
|
||||
icon: 'point',
|
||||
auth: "emer.plan",
|
||||
title: '隐患点位',
|
||||
title: '风险点',
|
||||
breadcrumb: true, //是否显示面包屑
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'command',
|
||||
name: 'command',
|
||||
component: () => import('@/views/emergency/command-system/index.vue'),
|
||||
meta: {
|
||||
icon: 'point',
|
||||
auth: "emer.command",
|
||||
title: '指挥体系',
|
||||
breadcrumb: true, //是否显示面包屑
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -89,10 +89,12 @@
|
|||
<svg-icon name="edit" class="icon"></svg-icon>
|
||||
<span class="edit">编辑</span>
|
||||
</span>
|
||||
<span class="operate" @click="del(scope.row, '删除')">
|
||||
<!-- <span class="operate" @click="del(scope.row, '删除')">
|
||||
<svg-icon name="delete" class="icon"></svg-icon>
|
||||
<span class="func">删除</span>
|
||||
</span>
|
||||
|
||||
</span> -->
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
|
|
|||
255
src/views/emergency/command-system/details.vue
Normal file
255
src/views/emergency/command-system/details.vue
Normal file
|
|
@ -0,0 +1,255 @@
|
|||
|
||||
<template>
|
||||
<BaseDialog
|
||||
:dialogVisible="props.visible"
|
||||
@close="onclone"
|
||||
:titleName="props.form.othplanid ? '编辑应急预案' : '新增应急预案'"
|
||||
width="50%"
|
||||
@onSubmit="handleSubmit"
|
||||
:footerclosed="true"
|
||||
:diafooter="true"
|
||||
:footerkeepnaem="props.readonly ? false : true"
|
||||
>
|
||||
<div class="detailForm-content">
|
||||
<el-form
|
||||
ref="formRef"
|
||||
label-position="right"
|
||||
label-width="120px"
|
||||
:rules="ruleForm"
|
||||
:model="addPostFactorForm"
|
||||
>
|
||||
<el-form-item label="预案名称:" prop="planname">
|
||||
<el-input
|
||||
placeholder="请输入预案名称"
|
||||
v-model="addPostFactorForm.planname"
|
||||
:readonly="props.readonly"
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="预案类型:" prop="othtypeid">
|
||||
<el-select
|
||||
placeholder="请选择预案类型:"
|
||||
v-model="addPostFactorForm.othtypeid"
|
||||
:disabled="props.readonly"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in option"
|
||||
:key="item.othtypeid"
|
||||
:label="item.othtypename"
|
||||
:value="item.othtypeid"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item prop="areaCode" label="所属区域">
|
||||
<el-cascader
|
||||
ref="cascader"
|
||||
v-model="addPostFactorForm.areaCode"
|
||||
placeholder="请选择地区"
|
||||
:options="orgList"
|
||||
:props="{
|
||||
checkStrictly: true,
|
||||
label: 'orgname',
|
||||
value: 'orgcode',
|
||||
}"
|
||||
clearable
|
||||
></el-cascader>
|
||||
</el-form-item>
|
||||
<el-form-item label="预案简介:" style="width: 100%;">
|
||||
<el-input
|
||||
type="textarea"
|
||||
:rows="3"
|
||||
placeholder="请输入预案简介"
|
||||
v-model="addPostFactorForm.introduction"
|
||||
:readonly="props.readonly"
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="文件" style="width: 100%;" class="inline-block">
|
||||
<CustomUpload
|
||||
:listPic="fileList"
|
||||
:OTCType="FileType.EmergencyFile"
|
||||
:uuid="addPostFactorForm.othplanid || uuid"
|
||||
:userId="userId"
|
||||
:baseUrl="baseUrl"
|
||||
:max="9"
|
||||
@onUpdate="updateFile"
|
||||
:readonly="props.readonly"
|
||||
></CustomUpload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</BaseDialog>
|
||||
</template>
|
||||
<script setup lang="ts" >
|
||||
import { reactive, ref, onMounted, watch } from "vue";
|
||||
import useUserStore from "@/store/modules/user";
|
||||
import { ElMessage, FormInstance, FormRules } from "element-plus";
|
||||
import { getYears, getUUID, FileType } from "@/utils/common";
|
||||
import { areaTree } from "@/api/account";
|
||||
import { saveOthplan, getOthtypeList } from "@/api/emergency";
|
||||
import { uploadFile, getFile, delFile } from "@/api/file";
|
||||
|
||||
const formRef = ref<FormInstance>();
|
||||
const userStore = useUserStore();
|
||||
const user = ref(JSON.parse(userStore.userInfo));
|
||||
const userId = ref(user.value.userId);
|
||||
const uuid = ref("");
|
||||
const baseUrl = ref(import.meta.env.VITE_UPLOAD_URL);
|
||||
const unitList = ref([]);
|
||||
const fileList = ref([]);
|
||||
const chartFileList = ref([]);
|
||||
const chartFile = ref([]);
|
||||
const ruleForm = reactive<FormRules>({
|
||||
planname: [{ required: true, message: "请输入预案名称", trigger: "blur" }],
|
||||
othtypeid: [{ required: true, message: "请选择预案类型", trigger: "blur" }],
|
||||
areaCode: [{ required: true, message: "请选择所属地区", trigger: "blur" }],
|
||||
});
|
||||
const props = defineProps({
|
||||
visible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
form: Object,
|
||||
readonly: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
id: String,
|
||||
});
|
||||
const listperformid = ref(props.id);
|
||||
const addPostFactorForm = ref(<any>{});
|
||||
const emits = defineEmits(["close", "onSubmit"]);
|
||||
//保存并退出
|
||||
const handleSubmit = () => {
|
||||
formRef.value?.validate((valid) => {
|
||||
if (valid) {
|
||||
let params = {
|
||||
...addPostFactorForm.value,
|
||||
areaCode: "",
|
||||
userId: addPostFactorForm.value.userId || userId.value,
|
||||
othplanid: addPostFactorForm.value.othplanid || uuid.value,
|
||||
};
|
||||
if (addPostFactorForm.value.areaCode instanceof Array) {
|
||||
params.areaCode =
|
||||
addPostFactorForm.value.areaCode[addPostFactorForm.value.areaCode.length - 1];
|
||||
} else {
|
||||
params.areaCode = addPostFactorForm.value.areaCode;
|
||||
};
|
||||
saveOthplan(params).then((res: any) => {
|
||||
if (res.code == 1) {
|
||||
ElMessage.success({
|
||||
message: "保存成功",
|
||||
// type: "success",
|
||||
});
|
||||
onclone();
|
||||
} else {
|
||||
ElMessage.error({
|
||||
message: res.message,
|
||||
type: "error",
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
return false;
|
||||
});
|
||||
};
|
||||
|
||||
const option = ref([]);
|
||||
// 获取预案类型
|
||||
const OthtypeList = () => {
|
||||
getOthtypeList().then((res: any) => {
|
||||
option.value = res.data;
|
||||
});
|
||||
};
|
||||
//获取地区
|
||||
const orgList = ref([]);
|
||||
const getareaTree = () => {
|
||||
areaTree(userId.value).then((res: any) => {
|
||||
orgList.value = res.data;
|
||||
});
|
||||
};
|
||||
/**
|
||||
* 文件列表更新
|
||||
*/
|
||||
const updateFile = (files: any) => {
|
||||
fileList.value = files;
|
||||
};
|
||||
const chartupdateFile = (files: any) => {
|
||||
chartFileList.value = files;
|
||||
};
|
||||
|
||||
// 上传附件前
|
||||
const upload = ref();
|
||||
const beforeAvatarUpload = () => {
|
||||
upload.value.submit();
|
||||
return true;
|
||||
};
|
||||
//图片查询
|
||||
const getFiles = (FileType) => {
|
||||
getFile(addPostFactorForm.value.othplanid || uuid.value, FileType).then(
|
||||
(res: any) => {
|
||||
if (FileType == "Files") {
|
||||
//文件
|
||||
fileList.value = res.data;
|
||||
} else {
|
||||
//一图一表
|
||||
chartFileList.value = res.data;
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
//关闭弹窗
|
||||
const onclone = () => {
|
||||
emits("close");
|
||||
fileList.value = [];
|
||||
chartFileList.value = [];
|
||||
};
|
||||
onMounted(() => {
|
||||
OthtypeList();
|
||||
getareaTree();
|
||||
});
|
||||
watch(
|
||||
() => props.form,
|
||||
(val) => {
|
||||
uuid.value = getUUID();
|
||||
if (val) {
|
||||
if (!props.visible) return;
|
||||
addPostFactorForm.value = val;
|
||||
getFiles(FileType.EmergencyFile);
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
// watch(
|
||||
// () => props.form.othplanid,
|
||||
// (val) => {
|
||||
// uuid.value = getUUID();
|
||||
// if (val) {
|
||||
// addPostFactorForm.value = props.form;
|
||||
// getFiles(FileType.EmergencyFile);
|
||||
// }
|
||||
|
||||
// // if (val) {
|
||||
// // if (!props.visible) return;
|
||||
// // addPostFactorForm.value = val;
|
||||
// // getFiles(FileType.EmergencyFile);
|
||||
// // }
|
||||
// }
|
||||
// );
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.detailForm-content {
|
||||
margin-right: 30px;
|
||||
}
|
||||
:deep(.el-form) {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
// justify-content: space-around;
|
||||
justify-content: space-between;
|
||||
}
|
||||
:deep(.el-form-item) {
|
||||
width: 47%;
|
||||
}
|
||||
</style>
|
||||
271
src/views/emergency/command-system/index.vue
Normal file
271
src/views/emergency/command-system/index.vue
Normal file
|
|
@ -0,0 +1,271 @@
|
|||
<template>
|
||||
<div class="percentage-content">
|
||||
<div class="content">
|
||||
<!-- <div style="margin-bottom: 16px;" class="h-layout space-between h-center">
|
||||
<div>
|
||||
<div class="h-layout">
|
||||
<div
|
||||
class="tool-item"
|
||||
@click="(dialogVisible = true), (form = {}), (readonly = false)"
|
||||
>
|
||||
<svg-icon name="add" class="icon" />
|
||||
<span>新增</span>
|
||||
</div>
|
||||
<div class="tool-item" @click="getCompanyList">
|
||||
<svg-icon name="refurbish" class="icon" />
|
||||
<span>刷新</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 30%;">
|
||||
<div>
|
||||
<el-input
|
||||
v-model="search"
|
||||
@keydown.enter.native="getCompanyList"
|
||||
placeholder="输入仓库名称"
|
||||
class="search-input"
|
||||
>
|
||||
<template #append>
|
||||
<span @click="getCompanyList" class="search-bottom">
|
||||
<svg-icon name="search" class="icon_class" />
|
||||
<span>搜索</span>
|
||||
</span>
|
||||
</template>
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="table_div">
|
||||
<div>
|
||||
<el-tree
|
||||
:data="treeData"
|
||||
:props="defaultProps"
|
||||
accordion
|
||||
@node-click="handleNodeClick"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<el-table
|
||||
ref="loading"
|
||||
v-loading="tableDataloading"
|
||||
:data="tableData"
|
||||
header-row-class-name="el-one-header"
|
||||
border
|
||||
>
|
||||
<!-- @selection-change="handleSelectionChange" -->
|
||||
<!-- <el-table-column
|
||||
type="selection"
|
||||
align="center"
|
||||
width="55"
|
||||
></el-table-column> -->
|
||||
<el-table-column
|
||||
type="index"
|
||||
align="center"
|
||||
label="序列"
|
||||
width="60"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="chinaname"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="姓名"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="mobiletel"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="联系方式"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="unitName"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="部门名称"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="performName"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="职务名"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="roleName"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="角色名称"
|
||||
></el-table-column>
|
||||
<!-- <el-table-column
|
||||
:resizable="true"
|
||||
align="center"
|
||||
width="180"
|
||||
label="操作"
|
||||
>
|
||||
<template #default="scope">
|
||||
<span
|
||||
class="operate"
|
||||
@click="
|
||||
(dialogVisible = true), (form = scope.row), (readonly = false)
|
||||
"
|
||||
>
|
||||
<svg-icon name="edit" class="icon"></svg-icon>
|
||||
<span class="edit">编辑</span>
|
||||
</span>
|
||||
<span
|
||||
class="operate"
|
||||
@click="
|
||||
(dialogVisible = true), (form = scope.row), (readonly = true)
|
||||
"
|
||||
>
|
||||
<svg-icon name="detail" class="icon"></svg-icon>
|
||||
<span class="detail">详情</span>
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
</el-table>
|
||||
<!-- 分页 -->
|
||||
<el-pagination
|
||||
class="pagination"
|
||||
@size-change="getCompanyList"
|
||||
@current-change="getCompanyList"
|
||||
v-model:current-page.sync="currentPage"
|
||||
:page-sizes="[10, 15, 20, 30]"
|
||||
v-model:page-size.sync="pageSize"
|
||||
layout="->, total, sizes, prev, pager, next, jumper"
|
||||
:total="total"
|
||||
background
|
||||
>
|
||||
</el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 新增 -->
|
||||
<!-- <Adddetails
|
||||
:visible="dialogVisible"
|
||||
:form="form"
|
||||
:readonly="readonly"
|
||||
@close="onclone"
|
||||
/> -->
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script lang='ts' setup>
|
||||
import { onMounted, reactive, ref } from "vue";
|
||||
import { getListperformTree, performUserPage } from "@/api/Sys";
|
||||
// import Adddetails from "./details.vue";
|
||||
import useUserStore from "@/store/modules/user";
|
||||
const userStore = useUserStore();
|
||||
const user = ref(JSON.parse(userStore.userInfo));
|
||||
const userId = ref(user.value.userId);
|
||||
const search = ref([]);
|
||||
const tableData = ref([]);
|
||||
const currentPage = ref(1);
|
||||
const pageSize = ref(10);
|
||||
const total = ref(0);
|
||||
|
||||
const dialogVisible = ref(false);
|
||||
const form = ref({});
|
||||
const readonly = ref(false);
|
||||
//岗位id
|
||||
const post = ref("");
|
||||
//列表选中
|
||||
// const tableCheckBoxs = ref([]);
|
||||
// const handleSelectionChange = (val: any) => {
|
||||
// tableCheckBoxs.value = [];
|
||||
// for (let index = 0; index < val.length; index++) {
|
||||
// const element = val[index];
|
||||
// tableCheckBoxs.value.push(element.houseId);
|
||||
// }
|
||||
// };
|
||||
//获取列表
|
||||
const tableDataloading = ref(false);
|
||||
const getCompanyList = () => {
|
||||
tableDataloading.value = true;
|
||||
let params = {
|
||||
userId: userId.value,
|
||||
limit: pageSize.value,
|
||||
page: currentPage.value,
|
||||
listperformid: post.value,
|
||||
};
|
||||
performUserPage(params).then((res: any) => {
|
||||
tableData.value = res.data.list;
|
||||
total.value = res.data.total;
|
||||
tableDataloading.value = false;
|
||||
});
|
||||
};
|
||||
//关闭新增弹窗
|
||||
const onclone = () => {
|
||||
dialogVisible.value = false;
|
||||
form.value = {};
|
||||
getCompanyList();
|
||||
};
|
||||
//获取岗位树
|
||||
interface Tree {
|
||||
listperformid: string;
|
||||
label: string;
|
||||
children?: Tree[];
|
||||
}
|
||||
const handleNodeClick = (data: Tree) => {
|
||||
currentPage.value = 1;
|
||||
pageSize.value = 10;
|
||||
post.value = data.listperformid;
|
||||
getCompanyList();
|
||||
};
|
||||
const treeData = ref([]);
|
||||
const defaultProps = {
|
||||
children: "children",
|
||||
label: "performclassname",
|
||||
id: "listperformid",
|
||||
};
|
||||
const listperformTree = () => {
|
||||
getListperformTree().then((res: any) => {
|
||||
treeData.value = res.data;
|
||||
});
|
||||
};
|
||||
onMounted(() => {
|
||||
listperformTree();
|
||||
setTimeout(() => {
|
||||
post.value = treeData.value[0].listperformid;
|
||||
getCompanyList();
|
||||
}, 1000);
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
width: 100%;
|
||||
// flex: auto;
|
||||
background: #fff;
|
||||
border-radius: 0.26042vw;
|
||||
box-shadow: 0 0 0.41667vw 0 rgb(8 33 85 / 10%);
|
||||
height: 100%;
|
||||
padding: 0.83333vw;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden !important;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-moz-box-sizing: border-box;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-webkit-box-sizing: border-box;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-o-box-sizing: border-box;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.table_div {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
> div:nth-child(1) {
|
||||
width: 30%;
|
||||
height: 100%;
|
||||
margin: 0 auto;
|
||||
border: 1px solid #ccc;
|
||||
overflow: hidden;
|
||||
}
|
||||
> div:nth-child(2) {
|
||||
width: 80%;
|
||||
}
|
||||
}
|
||||
.el-table {
|
||||
margin-left: 10px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
<BaseDialog
|
||||
:dialogVisible="props.visible"
|
||||
@close="onclone"
|
||||
:titleName="titleName + '隐患点'"
|
||||
:titleName="titleName + '风险点'"
|
||||
width="50%"
|
||||
@onSubmit="handleSubmit"
|
||||
:footerclosed="true"
|
||||
|
|
@ -16,38 +16,61 @@
|
|||
:model="formData"
|
||||
class="center-form"
|
||||
>
|
||||
<el-form-item label="点位名称" prop="name">
|
||||
<el-input placeholder="请输入" type="input" v-model="formData.name" />
|
||||
<el-form-item label="风险名" prop="name">
|
||||
<el-input
|
||||
placeholder="请输入风险名"
|
||||
type="input"
|
||||
v-model="formData.name"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="点位类型" prop="type">
|
||||
<el-form-item label="风险类型" prop="typeId">
|
||||
<el-select
|
||||
v-model="type"
|
||||
@change="getList"
|
||||
v-model="formData.typeId"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
placeholder="请选择风险类型"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in types"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
:key="item.typeId"
|
||||
:label="item.typeName"
|
||||
:value="item.typeId"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="详细地址" prop="address" style="width: 94%">
|
||||
<el-form-item label="详细地址" prop="address">
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
type="input"
|
||||
v-model="formData.address"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="简介/备注" prop="remarks" style="width: 94%">
|
||||
<el-form-item prop="areaCode" label="所属区域">
|
||||
<el-cascader
|
||||
ref="cascader"
|
||||
v-model="formData.areaCode"
|
||||
placeholder="请选择地区"
|
||||
:options="orgList"
|
||||
:props="{
|
||||
checkStrictly: true,
|
||||
label: 'orgname',
|
||||
value: 'orgcode',
|
||||
}"
|
||||
clearable
|
||||
></el-cascader>
|
||||
</el-form-item>
|
||||
<el-form-item label="经度" prop="lon">
|
||||
<el-input placeholder="请输入" type="input" v-model="formData.lon" />
|
||||
</el-form-item>
|
||||
<el-form-item label="纬度" prop="lat">
|
||||
<el-input placeholder="请输入" type="input" v-model="formData.lat" />
|
||||
</el-form-item>
|
||||
<el-form-item label="风险描述" prop="poolDesc" style="width: 94%;">
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
placeholder="请输入风险描述"
|
||||
:rows="4"
|
||||
type="textarea"
|
||||
v-model="formData.remarks"
|
||||
v-model="formData.poolDesc"
|
||||
/></el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
|
@ -56,11 +79,12 @@
|
|||
<script setup lang='ts'>
|
||||
import { reactive, ref, onMounted, watch } from "vue";
|
||||
import { ElMessage, FormInstance, FormRules } from "element-plus";
|
||||
import { getUUID } from "@/utils/common";
|
||||
const uuid = ref(getUUID());
|
||||
|
||||
import { inListAdd } from "@/api/industry";
|
||||
|
||||
import { riskTypeList, riskPoolAdd } from "@/api/emergency";
|
||||
import { areaTree } from "@/api/account";
|
||||
import useUserStore from "@/store/modules/user";
|
||||
const userStore = useUserStore();
|
||||
const user = ref(JSON.parse(userStore.userInfo));
|
||||
const userId = ref(user.value.userId);
|
||||
const props = defineProps({
|
||||
visible: {
|
||||
type: Boolean,
|
||||
|
|
@ -74,38 +98,42 @@ const titleName = ref("新增");
|
|||
// 表单
|
||||
const formRef = ref<FormInstance>();
|
||||
const ruleForm = reactive<FormRules>({
|
||||
name: [{ required: true, message: "请输入名字", trigger: "blur" }],
|
||||
type: [{ required: true, message: "请选择类型", trigger: "blur" }],
|
||||
address: [{ required: true, message: "请输入地址", trigger: "blur" }],
|
||||
remarks: [{ required: true, message: "请输入简介/备注", trigger: "blur" }],
|
||||
name: [{ required: true, message: "请输入风险名", trigger: "blur" }],
|
||||
typeId: [{ required: true, message: "请选择风险类型", trigger: "blur" }],
|
||||
address: [{ required: true, message: "请输入详细地址", trigger: "blur" }],
|
||||
poolDesc: [{ required: true, message: "请输入风险描述", trigger: "blur" }],
|
||||
areaCode: [{ required: true, message: "请选择所属地区", trigger: "blur" }],
|
||||
lon: [{ required: true, message: "请输入经度", trigger: "blur" }],
|
||||
lat: [{ required: true, message: "请输入纬度", trigger: "blur" }],
|
||||
});
|
||||
const formData = ref<any>({});
|
||||
|
||||
const types = ref([
|
||||
{ label: "防汛", value: 1 },
|
||||
{ label: "火灾", value: 2 },
|
||||
{ label: "治安", value: 3 },
|
||||
{ label: "安全生产", value: 4 },
|
||||
]);
|
||||
const types = ref([]);
|
||||
|
||||
//保存并退出
|
||||
const handleSubmit = () => {
|
||||
formRef.value?.validate((valid) => {
|
||||
if (valid) {
|
||||
formData.value.sortId = formData.value.sortId || 1;
|
||||
formData.value.industryId = props.id;
|
||||
formData.value.delState = formData.value.delState || 1;
|
||||
inListAdd(formData.value).then((res: any) => {
|
||||
let params = {
|
||||
...formData.value,
|
||||
areaCode: "",
|
||||
poolId:formData.value.poolId?formData.value.poolId:'',
|
||||
};
|
||||
if (formData.value.areaCode instanceof Array) {
|
||||
params.areaCode =
|
||||
formData.value.areaCode[formData.value.areaCode.length - 1];
|
||||
} else {
|
||||
params.areaCode = formData.value.areaCode;
|
||||
};
|
||||
riskPoolAdd(params).then((res: any) => {
|
||||
if (res.code == 1) {
|
||||
ElMessage.success({
|
||||
message: "操作成功",
|
||||
type: "success",
|
||||
});
|
||||
onclone();
|
||||
} else {
|
||||
ElMessage.error({
|
||||
message: res.message,
|
||||
type: "error",
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
@ -120,14 +148,31 @@ const onclone = () => {
|
|||
formData.value = {};
|
||||
emits("close");
|
||||
};
|
||||
onMounted(() => {});
|
||||
//点位类型
|
||||
const getRiskTypeList = () => {
|
||||
riskTypeList().then((res: any) => {
|
||||
types.value = res.data;
|
||||
});
|
||||
};
|
||||
//获取地区
|
||||
const orgList = ref([]);
|
||||
const getareaTree = () => {
|
||||
areaTree(userId.value).then((res: any) => {
|
||||
orgList.value = res.data;
|
||||
});
|
||||
};
|
||||
onMounted(() => {
|
||||
getRiskTypeList();
|
||||
getareaTree();
|
||||
});
|
||||
|
||||
watch(
|
||||
() => props.form,
|
||||
(val: any) => {
|
||||
titleName.value = val.id ? "编辑" : "新增";
|
||||
titleName.value = val.poolId ? "编辑" : "新增";
|
||||
formData.value = JSON.parse(JSON.stringify(val));
|
||||
}
|
||||
);
|
||||
</script>
|
||||
<style scoped></style>
|
||||
<style scoped lang="scss">
|
||||
</style>
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
<!-- 应急值守 -->
|
||||
<!-- 风险点 -->
|
||||
<template>
|
||||
<div class="percentage-content">
|
||||
<div class="content">
|
||||
<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 class="h-layout h-center">
|
||||
<div
|
||||
|
|
@ -26,16 +26,16 @@
|
|||
>
|
||||
<el-option
|
||||
v-for="item in types"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
:key="item.typeId"
|
||||
:label="item.typeName"
|
||||
:value="item.typeId"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 30%">
|
||||
<div style="width: 30%;">
|
||||
<div>
|
||||
<el-input
|
||||
v-model="search"
|
||||
|
|
@ -74,18 +74,17 @@
|
|||
label="点位名称"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="address"
|
||||
prop="typeName"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="点位类型"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="phone"
|
||||
prop="address"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="详细地址"
|
||||
></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
:resizable="true"
|
||||
align="center"
|
||||
|
|
@ -102,7 +101,7 @@
|
|||
<svg-icon name="edit" class="icon"></svg-icon>
|
||||
<span class="edit">编辑</span>
|
||||
</span>
|
||||
<span
|
||||
<!-- <span
|
||||
class="operate"
|
||||
@click="
|
||||
(dialogVisible = true), (form = scope.row), (readonly = true)
|
||||
|
|
@ -110,8 +109,8 @@
|
|||
>
|
||||
<svg-icon name="detail" class="icon"></svg-icon>
|
||||
<span class="detail">详情</span>
|
||||
</span>
|
||||
<span class="operate" @click="deletelist(scope.row.othequipmentid)">
|
||||
</span> -->
|
||||
<span class="operate" @click="deletelist(scope.row.poolId)">
|
||||
<svg-icon name="delete" class="icon"></svg-icon>
|
||||
<span class="func">删除</span>
|
||||
</span>
|
||||
|
|
@ -140,7 +139,7 @@
|
|||
<script lang='ts' setup>
|
||||
import { onMounted, reactive, ref } from "vue";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { getOthequipmentPage, delOthequipment } from "@/api/Othteam";
|
||||
import { riskPoolPage, riskTypeList, riskPoolDel } from "@/api/emergency";
|
||||
import AddEdit from "./dialog/add-edit.vue";
|
||||
|
||||
import useUserStore from "@/store/modules/user";
|
||||
|
|
@ -148,15 +147,10 @@ const userStore = useUserStore();
|
|||
const user = ref(JSON.parse(userStore.userInfo));
|
||||
const userId = ref(user.value.userId);
|
||||
|
||||
const types = ref([
|
||||
{ label: "防汛", value: 1 },
|
||||
{ label: "火灾", value: 2 },
|
||||
{ label: "治安", value: 3 },
|
||||
{ label: "安全生产", value: 4 },
|
||||
]);
|
||||
const type = ref();
|
||||
const types = ref([]);
|
||||
const type = ref("");
|
||||
|
||||
const search = ref([]);
|
||||
const search = ref("");
|
||||
const tableData = ref([]);
|
||||
const currentPage = ref(1);
|
||||
const pageSize = ref(10);
|
||||
|
|
@ -172,13 +166,13 @@ const tableDataloading = ref(false);
|
|||
const getList = () => {
|
||||
tableDataloading.value = true;
|
||||
let params = {
|
||||
equname: search.value,
|
||||
equtype: null,
|
||||
houseId: null,
|
||||
condition: search.value,
|
||||
typeId: type.value,
|
||||
userId: userId.value,
|
||||
limit: pageSize.value,
|
||||
page: currentPage.value,
|
||||
};
|
||||
getOthequipmentPage(params).then((res: any) => {
|
||||
riskPoolPage(params).then((res: any) => {
|
||||
tableData.value = res.data.list;
|
||||
total.value = res.data.total;
|
||||
tableDataloading.value = false;
|
||||
|
|
@ -191,46 +185,59 @@ const deletelist = (id) => {
|
|||
cancelButtonText: "否",
|
||||
type: "warning",
|
||||
}).then(() => {
|
||||
delOthequipment(id, userId.value).then((res: any) => {
|
||||
let params = {
|
||||
poolId: id,
|
||||
};
|
||||
riskPoolDel(params).then((res: any) => {
|
||||
if (res.code == 1) {
|
||||
ElMessage.success({
|
||||
message: "删除成功",
|
||||
type: "success",
|
||||
});
|
||||
} else {
|
||||
ElMessage.error({
|
||||
message: res.message,
|
||||
type: "error",
|
||||
});
|
||||
}
|
||||
getList();
|
||||
});
|
||||
});
|
||||
};
|
||||
//点位类型
|
||||
const getRiskTypeList = () => {
|
||||
riskTypeList().then((res: any) => {
|
||||
types.value = res.data;
|
||||
});
|
||||
};
|
||||
//关闭新增弹窗
|
||||
const onclone = () => {
|
||||
dialogVisible.value = false;
|
||||
form.value = {};
|
||||
getList();
|
||||
};
|
||||
onMounted(() => {
|
||||
getList();
|
||||
getRiskTypeList();
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
border-radius: 0.26042vw;
|
||||
box-shadow: 0 0 0.41667vw 0 rgba(8, 33, 85, 0.1);
|
||||
height: 100%;
|
||||
padding: 0.83333vw;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden !important;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
-o-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
border-radius: 0.26042vw;
|
||||
box-shadow: 0 0 0.41667vw 0 rgb(8 33 85 / 10%);
|
||||
height: 100%;
|
||||
padding: 0.83333vw;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden !important;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-moz-box-sizing: border-box;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-webkit-box-sizing: border-box;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-o-box-sizing: border-box;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -16,24 +16,44 @@
|
|||
:model="formData"
|
||||
class="center-form"
|
||||
>
|
||||
<el-form-item label="名字" prop="name">
|
||||
<el-input placeholder="请输入" type="input" v-model="formData.name" />
|
||||
<el-form-item label="值守员姓名" prop="name">
|
||||
<el-input placeholder="请输入值守员姓名" type="input" v-model="formData.name" />
|
||||
</el-form-item>
|
||||
<el-form-item label="联系电话" prop="phone">
|
||||
<el-form-item label="值守员联系电话" prop="mobile">
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
placeholder="值守员联系电话"
|
||||
type="input"
|
||||
v-model="formData.phone"
|
||||
v-model="formData.mobile"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="值班时间" prop="time">
|
||||
<el-date-picker placeholder="请选择" v-model="formData.time" />
|
||||
<el-form-item prop="areaCode" label="所属区域">
|
||||
<el-cascader
|
||||
ref="cascader"
|
||||
v-model="formData.areaCode"
|
||||
placeholder="请选择地区"
|
||||
:options="orgList"
|
||||
:props="{
|
||||
checkStrictly: true,
|
||||
label: 'orgname',
|
||||
value: 'orgcode',
|
||||
}"
|
||||
clearable
|
||||
></el-cascader>
|
||||
</el-form-item>
|
||||
<el-form-item label="值班地点" prop="address">
|
||||
<el-form-item label="岗位名" prop="postName">
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
placeholder="请输入岗位名"
|
||||
type="input"
|
||||
v-model="formData.address"
|
||||
v-model="formData.postName"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="值班时间" prop="dutyTime">
|
||||
<el-date-picker
|
||||
v-model="formData.dutyTime"
|
||||
type="date"
|
||||
placeholder="请选择时间"
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
|
@ -44,9 +64,14 @@
|
|||
import { reactive, ref, onMounted, watch } from "vue";
|
||||
import { ElMessage, FormInstance, FormRules } from "element-plus";
|
||||
import { getUUID } from "@/utils/common";
|
||||
import { areaTree } from "@/api/account";
|
||||
import { dutyAdd } from "@/api/emergency";
|
||||
import useUserStore from "@/store/modules/user";
|
||||
const userStore = useUserStore();
|
||||
const user = ref(JSON.parse(userStore.userInfo));
|
||||
const userId = ref(user.value.userId);
|
||||
const uuid = ref(getUUID());
|
||||
|
||||
import { inListAdd } from "@/api/industry";
|
||||
|
||||
const props = defineProps({
|
||||
visible: {
|
||||
|
|
@ -65,29 +90,23 @@ const ruleForm = reactive<FormRules>({
|
|||
});
|
||||
const formData = ref<any>({});
|
||||
|
||||
const tags = ref([
|
||||
{ label: "流动人口", value: 1 },
|
||||
{ label: "常住人口", value: 2 },
|
||||
]);
|
||||
const types = ref([
|
||||
{ label: "新生儿", value: 1 },
|
||||
{ label: "在校生", value: 2 },
|
||||
{ label: "残疾人", value: 3 },
|
||||
{ label: "低保户", value: 4 },
|
||||
{ label: "五保户", value: 5 },
|
||||
{ label: "党员", value: 6 },
|
||||
{ label: "村组干部", value: 7 },
|
||||
{ label: "其他", value: 8 },
|
||||
]);
|
||||
|
||||
//保存并退出
|
||||
const handleSubmit = () => {
|
||||
formRef.value?.validate((valid) => {
|
||||
if (valid) {
|
||||
formData.value.sortId = formData.value.sortId || 1;
|
||||
formData.value.industryId = props.id;
|
||||
formData.value.delState = formData.value.delState || 1;
|
||||
inListAdd(formData.value).then((res: any) => {
|
||||
let params = {
|
||||
...formData.value,
|
||||
areaCode: "",
|
||||
};
|
||||
if (formData.value.areaCode instanceof Array) {
|
||||
params.areaCode =
|
||||
formData.value.areaCode[formData.value.areaCode.length - 1];
|
||||
} else {
|
||||
params.areaCode = formData.value.areaCode;
|
||||
}
|
||||
console.log(params, "params===>");
|
||||
|
||||
dutyAdd(params).then((res: any) => {
|
||||
if (res.code == 1) {
|
||||
ElMessage.success({
|
||||
message: "操作成功",
|
||||
|
|
@ -105,6 +124,13 @@ const handleSubmit = () => {
|
|||
return false;
|
||||
});
|
||||
};
|
||||
//获取地区
|
||||
const orgList = ref([]);
|
||||
const getareaTree = () => {
|
||||
areaTree(userId.value).then((res: any) => {
|
||||
orgList.value = res.data;
|
||||
});
|
||||
};
|
||||
|
||||
//关闭弹窗
|
||||
const onclone = () => {
|
||||
|
|
@ -112,7 +138,9 @@ const onclone = () => {
|
|||
formData.value = {};
|
||||
emits("close");
|
||||
};
|
||||
onMounted(() => {});
|
||||
onMounted(() => {
|
||||
getareaTree();
|
||||
});
|
||||
|
||||
watch(
|
||||
() => props.form,
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<template>
|
||||
<div class="percentage-content">
|
||||
<div class="content">
|
||||
<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 class="h-layout">
|
||||
<div
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 30%">
|
||||
<div style="width: 30%;">
|
||||
<div>
|
||||
<el-input
|
||||
v-model="search"
|
||||
|
|
@ -36,99 +36,162 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-table
|
||||
ref="loading"
|
||||
v-loading="tableDataloading"
|
||||
:data="tableData"
|
||||
header-row-class-name="el-one-header"
|
||||
@selection-change="handleSelectionChange"
|
||||
border
|
||||
>
|
||||
<el-table-column
|
||||
type="index"
|
||||
align="center"
|
||||
label="序列"
|
||||
width="60"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="姓名"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="phone"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="联系电话"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="time"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="值班时间"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="address"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="值班地点"
|
||||
></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
:resizable="true"
|
||||
align="center"
|
||||
width="260"
|
||||
label="操作"
|
||||
<div class="table_div">
|
||||
<div id="calendar">
|
||||
<!-- 年份 月份 -->
|
||||
<div class="month">
|
||||
<ul>
|
||||
<li class="arrow" @click="pickPre(currentYear, currentMonth)">
|
||||
❮
|
||||
</li>
|
||||
<li class="year-month">
|
||||
<span class="choose-month"
|
||||
>{{ currentYear }}年{{ currentMonth }}月</span
|
||||
>
|
||||
</li>
|
||||
<li class="arrow" @click="pickNext(currentYear, currentMonth)">
|
||||
❯
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- 星期 -->
|
||||
<ul class="weekdays">
|
||||
<li>一</li>
|
||||
<li>二</li>
|
||||
<li>三</li>
|
||||
<li>四</li>
|
||||
<li>五</li>
|
||||
<li>六</li>
|
||||
<li>日</li>
|
||||
</ul>
|
||||
<!-- 日期 -->
|
||||
<ul class="days">
|
||||
<li v-for="(dayobject, index) in days" :key="index">
|
||||
<span
|
||||
v-if="dayobject.day.getMonth() + 1 != currentMonth"
|
||||
class="other-month"
|
||||
>
|
||||
{{ dayobject.day.getDate() }}
|
||||
</span>
|
||||
<span v-else>
|
||||
<!-- <span
|
||||
v-if="
|
||||
dayobject.day.getFullYear() == new Date().getFullYear() &&
|
||||
dayobject.day.getMonth() == new Date().getMonth() &&
|
||||
dayobject.day.getDate() == new Date().getDate()
|
||||
"
|
||||
class="active"
|
||||
>{{ dayobject.day.getDate() }}</span
|
||||
> -->
|
||||
<!-- v-else -->
|
||||
<span
|
||||
@click="selectedDate(dayobject.day.getDate())"
|
||||
:class="dateTime == dayobject.day.getDate() ? 'active' : ''"
|
||||
>{{ dayobject.day.getDate() }}</span
|
||||
>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<el-table
|
||||
ref="loading"
|
||||
v-loading="tableDataloading"
|
||||
:data="tableData"
|
||||
header-row-class-name="el-one-header"
|
||||
@selection-change="handleSelectionChange"
|
||||
border
|
||||
>
|
||||
<template #default="scope">
|
||||
<span
|
||||
class="operate"
|
||||
@click="
|
||||
(dialogVisible = true), (form = scope.row), (readonly = false)
|
||||
"
|
||||
>
|
||||
<svg-icon name="edit" class="icon"></svg-icon>
|
||||
<span class="edit">编辑</span>
|
||||
</span>
|
||||
<span
|
||||
class="operate"
|
||||
@click="
|
||||
(dialogVisible = true), (form = scope.row), (readonly = true)
|
||||
"
|
||||
>
|
||||
<svg-icon name="detail" class="icon"></svg-icon>
|
||||
<span class="detail">详情</span>
|
||||
</span>
|
||||
<span class="operate" @click="deletelist(scope.row.othequipmentid)">
|
||||
<svg-icon name="delete" class="icon"></svg-icon>
|
||||
<span class="func">删除</span>
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-table-column
|
||||
type="index"
|
||||
align="center"
|
||||
label="序列"
|
||||
width="60"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="areaName"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="值班地点"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="值班人员"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="mobile"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="联系电话"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="dutyTime"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="值班时间"
|
||||
></el-table-column>
|
||||
|
||||
|
||||
<el-table-column
|
||||
:resizable="true"
|
||||
align="center"
|
||||
width="150"
|
||||
label="操作"
|
||||
>
|
||||
<template #default="scope">
|
||||
<span
|
||||
class="operate"
|
||||
@click="
|
||||
(dialogVisible = true), (form = scope.row), (readonly = false)
|
||||
"
|
||||
>
|
||||
<svg-icon name="edit" class="icon"></svg-icon>
|
||||
<span class="edit">编辑</span>
|
||||
</span>
|
||||
<!-- <span
|
||||
class="operate"
|
||||
@click="
|
||||
(dialogVisible = true), (form = scope.row), (readonly = true)
|
||||
"
|
||||
>
|
||||
<svg-icon name="detail" class="icon"></svg-icon>
|
||||
<span class="detail">详情</span>
|
||||
</span> -->
|
||||
<!-- <span
|
||||
class="operate"
|
||||
@click="deletelist(scope.row.othequipmentid)"
|
||||
>
|
||||
<svg-icon name="delete" class="icon"></svg-icon>
|
||||
<span class="func">删除</span>
|
||||
</span> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
|
||||
<!-- 分页 -->
|
||||
<el-pagination
|
||||
<!-- <el-pagination
|
||||
class="pagination"
|
||||
@size-change="getList"
|
||||
@current-change="getList"
|
||||
v-model:current-page.sync="currentPage"
|
||||
:page-sizes="[10, 15, 20, 30]"
|
||||
v-model:page-size.sync="pageSize"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
layout="->, total, sizes, prev, pager, next, jumper"
|
||||
:total="total"
|
||||
background
|
||||
>
|
||||
</el-pagination>
|
||||
</el-pagination> -->
|
||||
<!-- 新增 -->
|
||||
<AddEdit :visible="dialogVisible" :form="form" @close="onclone" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script lang='ts' setup>
|
||||
import { onMounted, reactive, ref } from "vue";
|
||||
import { computed, onMounted, reactive, ref, toRaw, toRefs } from "vue";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { getOthequipmentPage, delOthequipment } from "@/api/Othteam";
|
||||
import { dutyList } from "@/api/emergency";
|
||||
import AddEdit from "./dialog/add-edit.vue";
|
||||
|
||||
import useUserStore from "@/store/modules/user";
|
||||
|
|
@ -152,14 +215,20 @@ const tableDataloading = ref(false);
|
|||
const getList = () => {
|
||||
tableDataloading.value = true;
|
||||
let params = {
|
||||
equname: search.value,
|
||||
equtype: null,
|
||||
houseId: null,
|
||||
limit: pageSize.value,
|
||||
page: currentPage.value,
|
||||
dutyTime: '',
|
||||
userId:userId.value,
|
||||
};
|
||||
getOthequipmentPage(params).then((res: any) => {
|
||||
tableData.value = res.data.list;
|
||||
if (currentMonth.value.toString().length == 1) {
|
||||
params.dutyTime = currentYear.value + '-' + 0 + currentMonth.value + '-' + dateTime.value
|
||||
}
|
||||
console.log(currentMonth.value.toString().length);
|
||||
|
||||
console.log(params,'params===>');
|
||||
|
||||
dutyList(params).then((res: any) => {
|
||||
console.log(res,'res===>');
|
||||
|
||||
tableData.value = res.data;
|
||||
total.value = res.data.total;
|
||||
tableDataloading.value = false;
|
||||
});
|
||||
|
|
@ -171,46 +240,209 @@ const deletelist = (id) => {
|
|||
cancelButtonText: "否",
|
||||
type: "warning",
|
||||
}).then(() => {
|
||||
delOthequipment(id, userId.value).then((res: any) => {
|
||||
if (res.code == 1) {
|
||||
ElMessage.success({
|
||||
message: "删除成功",
|
||||
type: "success",
|
||||
});
|
||||
} else {
|
||||
ElMessage.error({
|
||||
message: res.message,
|
||||
type: "error",
|
||||
});
|
||||
}
|
||||
getList();
|
||||
});
|
||||
// delOthequipment(id, userId.value).then((res: any) => {
|
||||
// if (res.code == 1) {
|
||||
// ElMessage.success({
|
||||
// message: "删除成功",
|
||||
// type: "success",
|
||||
// });
|
||||
// } else {
|
||||
// ElMessage.error({
|
||||
// message: res.message,
|
||||
// type: "error",
|
||||
// });
|
||||
// }
|
||||
// getList();
|
||||
// });
|
||||
});
|
||||
};
|
||||
//关闭新增弹窗
|
||||
const onclone = () => {
|
||||
dialogVisible.value = false;
|
||||
form.value = {};
|
||||
getList()
|
||||
};
|
||||
// 日历
|
||||
const currentDay = ref(1);
|
||||
const currentMonth = ref(1);
|
||||
const currentYear = ref(1970);
|
||||
const currentWeek = ref(1);
|
||||
const days = ref([]);
|
||||
const dateTime = ref(1);
|
||||
const initData = (cur) => {
|
||||
let date;
|
||||
if (cur) {
|
||||
date = new Date(cur);
|
||||
} else {
|
||||
let now = new Date();
|
||||
date = new Date(formatDate(now.getFullYear(), now.getMonth() + 1, 1));
|
||||
}
|
||||
currentDay.value = date.getDate();
|
||||
currentYear.value = date.getFullYear();
|
||||
currentMonth.value = date.getMonth() + 1;
|
||||
currentWeek.value = date.getDay();
|
||||
let str = formatDate(currentYear.value, currentMonth.value, currentDay.value);
|
||||
days.value.length = 0;
|
||||
for (let i = currentWeek.value - 1; i >= 0; i--) {
|
||||
let d = new Date(str);
|
||||
d.setDate(d.getDate() - i);
|
||||
let dayobject = {};
|
||||
dayobject.day = d;
|
||||
days.value.push(dayobject);
|
||||
}
|
||||
//其他周
|
||||
for (let i = 1; i <= 35 - currentWeek.value; i++) {
|
||||
let d = new Date(str);
|
||||
d.setDate(d.getDate() + i);
|
||||
let dayobject = {};
|
||||
dayobject.day = d;
|
||||
days.value.push(dayobject);
|
||||
}
|
||||
};
|
||||
// 上一月
|
||||
const pickPre = (year, month) => {
|
||||
let d = new Date(year, month - 1, 0);
|
||||
initData(formatDate(d.getFullYear(), d.getMonth() + 1, 1));
|
||||
dateTime.value = 0;
|
||||
// console.log(currentYear.value, currentMonth.value);
|
||||
};
|
||||
// 下一月
|
||||
const pickNext = (year, month) => {
|
||||
let d = new Date(year, month + 1, 0);
|
||||
initData(formatDate(d.getFullYear(), d.getMonth() + 1, 1));
|
||||
dateTime.value = 0;
|
||||
// console.log(currentYear.value, currentMonth.value);
|
||||
};
|
||||
// 选中天数
|
||||
const selectedDate = (day) => {
|
||||
dateTime.value = day;
|
||||
// console.log(dateTime.value, "选中天数dateTime==>");
|
||||
getList();
|
||||
};
|
||||
const formatDate = (year, month, day) => {
|
||||
let y = year;
|
||||
let m = month;
|
||||
let d = day;
|
||||
if (m < 10) m = "0" + m;
|
||||
if (d < 10) d = "0" + d;
|
||||
return `${y}-${m}-${d}`;
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
initData(null);
|
||||
dateTime.value = new Date().getDate();
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
border-radius: 0.26042vw;
|
||||
box-shadow: 0 0 0.41667vw 0 rgba(8, 33, 85, 0.1);
|
||||
height: 100%;
|
||||
padding: 0.83333vw;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden !important;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
-o-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
border-radius: 0.26042vw;
|
||||
box-shadow: 0 0 0.41667vw 0 rgb(8 33 85 / 10%);
|
||||
height: 100%;
|
||||
padding: 0.83333vw;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden !important;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-moz-box-sizing: border-box;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-webkit-box-sizing: border-box;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-o-box-sizing: border-box;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
// 日历
|
||||
ul {
|
||||
list-style-type: none;
|
||||
}
|
||||
#calendar {
|
||||
width: 30%;
|
||||
margin: 0 auto;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 15px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.month {
|
||||
width: 100%;
|
||||
}
|
||||
.month ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.year-month {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
}
|
||||
.choose-month {
|
||||
text-align: center;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
.arrow {
|
||||
padding: 30px;
|
||||
}
|
||||
.arrow:hover {
|
||||
background: rgb(242 242 242);
|
||||
}
|
||||
.month ul li {
|
||||
font-size: 20px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 3px;
|
||||
}
|
||||
.weekdays {
|
||||
margin: 0;
|
||||
padding: 10px 0;
|
||||
background-color: rgb(242 242 242);
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-around;
|
||||
}
|
||||
.weekdays li {
|
||||
display: inline-block;
|
||||
width: 13.6%;
|
||||
text-align: center;
|
||||
}
|
||||
.days {
|
||||
padding: 0;
|
||||
background: #fff;
|
||||
margin: 0;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-around;
|
||||
}
|
||||
.days li {
|
||||
list-style-type: none;
|
||||
display: inline-block;
|
||||
width: 14.2%;
|
||||
text-align: center;
|
||||
padding: 15px 0;
|
||||
font-size: 1rem;
|
||||
color: #000;
|
||||
}
|
||||
.days li .active {
|
||||
padding: 6px 10px;
|
||||
border: 2px solid #00b8ec;
|
||||
}
|
||||
.days li .other-month {
|
||||
padding: 5px;
|
||||
color: gainsboro;
|
||||
}
|
||||
.days li span span:hover {
|
||||
padding: 6px 10px;
|
||||
border: 1px solid #00b8ec;
|
||||
}
|
||||
.table_div {
|
||||
display: flex;
|
||||
}
|
||||
.el-table {
|
||||
margin-left: 10px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -25,11 +25,11 @@
|
|||
v-model="addPostFactorForm.houseName"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="管理员:" prop="name">
|
||||
<el-form-item label="管理员:" prop="nameId">
|
||||
<el-input
|
||||
:readonly="props.readonly"
|
||||
placeholder="请输入管理员"
|
||||
v-model="addPostFactorForm.name"
|
||||
v-model="addPostFactorForm.nameId"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="联系方式:" prop="telephone">
|
||||
|
|
@ -39,9 +39,9 @@
|
|||
v-model="addPostFactorForm.telephone"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属地区:" prop="orgCode">
|
||||
<el-form-item label="所属地区:" prop="areaCode">
|
||||
<el-cascader
|
||||
v-model="addPostFactorForm.orgCode"
|
||||
v-model="addPostFactorForm.areaCode"
|
||||
placeholder="请选择所属地区"
|
||||
@change="handleAreaChange"
|
||||
:options="orgList"
|
||||
|
|
@ -67,7 +67,7 @@
|
|||
v-model="addPostFactorForm.lat"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属单位:" prop="possession" style="width: 100%">
|
||||
<el-form-item label="所属单位:" prop="possession" style="width: 100%;">
|
||||
<el-input
|
||||
:readonly="props.readonly"
|
||||
placeholder="请输入所属单位"
|
||||
|
|
@ -75,7 +75,7 @@
|
|||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="地址:" prop="address" style="width: 100%">
|
||||
<el-form-item label="地址:" prop="address" style="width: 100%;">
|
||||
<el-input
|
||||
:readonly="props.readonly"
|
||||
placeholder="请输入详细地址"
|
||||
|
|
@ -111,7 +111,7 @@ const ruleForm = reactive<FormRules>({
|
|||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
orgCode: [
|
||||
areaCode: [
|
||||
{ required: true, message: "请选择仓库所属地区", trigger: "change" },
|
||||
],
|
||||
possession: [
|
||||
|
|
@ -149,7 +149,18 @@ const handleSubmit = () => {
|
|||
addPostFactorForm.value.houseId =
|
||||
addPostFactorForm.value.houseId || uuid.value;
|
||||
addPostFactorForm.value.userId = userId.value;
|
||||
saveOtheWareHouse(addPostFactorForm.value).then((res: any) => {
|
||||
let params = {
|
||||
...addPostFactorForm.value,
|
||||
areaCode:"",
|
||||
}
|
||||
if (addPostFactorForm.value.areaCode instanceof Array) {
|
||||
params.areaCode = addPostFactorForm.value.areaCode[addPostFactorForm.value.areaCode.length - 1];
|
||||
}else{
|
||||
params.areaCode = addPostFactorForm.value.areaCode;
|
||||
};
|
||||
console.log(params,'params===>');
|
||||
|
||||
saveOtheWareHouse(params).then((res: any) => {
|
||||
if (res.code == 1) {
|
||||
ElMessage.success({
|
||||
message: "保存成功",
|
||||
|
|
@ -180,10 +191,10 @@ const getareaTree = () => {
|
|||
});
|
||||
};
|
||||
const handleAreaChange = (val) => {
|
||||
addPostFactorForm.value.orgCode =
|
||||
addPostFactorForm.value.orgCode[addPostFactorForm.value.orgCode.length - 1];
|
||||
addPostFactorForm.value.streetCode = val[1] || "";
|
||||
addPostFactorForm.value.communityCode = val[2] || "";
|
||||
// addPostFactorForm.value.areaCode =
|
||||
// addPostFactorForm.value.areaCode[addPostFactorForm.value.areaCode.length - 1];
|
||||
// addPostFactorForm.value.streetCode = val[1] || "";
|
||||
// addPostFactorForm.value.communityCode = val[2] || "";
|
||||
};
|
||||
|
||||
//选择管理员数据处理
|
||||
|
|
@ -219,15 +230,15 @@ watch(
|
|||
|
||||
<style lang="scss" scoped>
|
||||
.detailForm-content {
|
||||
margin-right: 30px;
|
||||
margin-right: 30px;
|
||||
}
|
||||
:deep(.el-form) {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
// justify-content: space-around;
|
||||
justify-content: space-between;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
// justify-content: space-around;
|
||||
justify-content: space-between;
|
||||
}
|
||||
:deep(.el-form-item) {
|
||||
width: 47%;
|
||||
width: 47%;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -60,13 +60,14 @@
|
|||
label="仓库名称"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="nameText"
|
||||
prop="nameId"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="管理员"
|
||||
width="150"
|
||||
>
|
||||
<template #default="scope">
|
||||
{{ scope.row.nameText || "-" }}
|
||||
{{ scope.row.nameId || "-" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
|
|
@ -74,6 +75,13 @@
|
|||
:resizable="true"
|
||||
align="center"
|
||||
label="联系方式"
|
||||
width="180"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="areaName"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="所属地区"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="address"
|
||||
|
|
@ -81,7 +89,7 @@
|
|||
align="center"
|
||||
label="地址"
|
||||
></el-table-column>
|
||||
<el-table-column align="center" label="操作">
|
||||
<el-table-column align="center" label="操作" width="300">
|
||||
<template #default="scope">
|
||||
<span
|
||||
class="operate"
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<BaseDialog
|
||||
:dialogVisible="props.visible"
|
||||
@close="onclone"
|
||||
:titleName="props.form?.opInstructionId ? '编辑应急预案' : '新增应急预案'"
|
||||
:titleName="props.form.othplanid ? '编辑应急预案' : '新增应急预案'"
|
||||
width="50%"
|
||||
@onSubmit="handleSubmit"
|
||||
:footerclosed="true"
|
||||
|
|
@ -26,21 +26,35 @@
|
|||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="预案类型:" prop="accidenttype">
|
||||
<el-form-item label="预案类型:" prop="othtypeid">
|
||||
<el-select
|
||||
placeholder="请选择任务类型"
|
||||
v-model="addPostFactorForm.accidenttype"
|
||||
placeholder="请选择预案类型:"
|
||||
v-model="addPostFactorForm.othtypeid"
|
||||
:disabled="props.readonly"
|
||||
>
|
||||
<el-option
|
||||
v-for="(item, index) in props.typeList"
|
||||
:value="item.othtypeid"
|
||||
v-for="item in option"
|
||||
:key="item.othtypeid"
|
||||
:label="item.othtypename"
|
||||
:key="index"
|
||||
:value="item.othtypeid"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="预案简介:" style="width: 100%">
|
||||
<el-form-item prop="areaCode" label="所属区域">
|
||||
<el-cascader
|
||||
ref="cascader"
|
||||
v-model="addPostFactorForm.areaCode"
|
||||
placeholder="请选择地区"
|
||||
:options="orgList"
|
||||
:props="{
|
||||
checkStrictly: true,
|
||||
label: 'orgname',
|
||||
value: 'orgcode',
|
||||
}"
|
||||
clearable
|
||||
></el-cascader>
|
||||
</el-form-item>
|
||||
<el-form-item label="预案简介:" style="width: 100%;">
|
||||
<el-input
|
||||
type="textarea"
|
||||
:rows="3"
|
||||
|
|
@ -50,7 +64,7 @@
|
|||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="文件" style="width: 100%" class="inline-block">
|
||||
<el-form-item label="文件" style="width: 100%;" class="inline-block">
|
||||
<CustomUpload
|
||||
:listPic="fileList"
|
||||
:OTCType="FileType.EmergencyFile"
|
||||
|
|
@ -71,7 +85,8 @@ import { reactive, ref, onMounted, watch } from "vue";
|
|||
import useUserStore from "@/store/modules/user";
|
||||
import { ElMessage, FormInstance, FormRules } from "element-plus";
|
||||
import { getYears, getUUID, FileType } from "@/utils/common";
|
||||
import { saveOthplan } from "@/api/Othteam";
|
||||
import { areaTree } from "@/api/account";
|
||||
import { saveOthplan, getOthtypeList } from "@/api/emergency";
|
||||
import { uploadFile, getFile, delFile } from "@/api/file";
|
||||
|
||||
const formRef = ref<FormInstance>();
|
||||
|
|
@ -79,17 +94,15 @@ const userStore = useUserStore();
|
|||
const user = ref(JSON.parse(userStore.userInfo));
|
||||
const userId = ref(user.value.userId);
|
||||
const uuid = ref("");
|
||||
const baseUrl = ref(import.meta.env.VITE_UPLOAD_IMG_URL);
|
||||
const baseUrl = ref(import.meta.env.VITE_UPLOAD_URL);
|
||||
const unitList = ref([]);
|
||||
const fileList = ref([]);
|
||||
const chartFileList = ref([]);
|
||||
const chartFile = ref([]);
|
||||
const ruleForm = reactive<FormRules>({
|
||||
planname: [{ required: true, message: "请输入预案名称", trigger: "blur" }],
|
||||
accidenttype: [
|
||||
{ required: true, message: "请选择预案类型", trigger: "blur" },
|
||||
],
|
||||
sysunitid: [{ required: true, message: "请选择部门", trigger: "blur" }],
|
||||
othtypeid: [{ required: true, message: "请选择预案类型", trigger: "blur" }],
|
||||
areaCode: [{ required: true, message: "请选择所属地区", trigger: "blur" }],
|
||||
});
|
||||
const props = defineProps({
|
||||
visible: {
|
||||
|
|
@ -102,10 +115,6 @@ const props = defineProps({
|
|||
default: false,
|
||||
},
|
||||
id: String,
|
||||
typeList: {
|
||||
type: Array,
|
||||
default: false,
|
||||
},
|
||||
});
|
||||
const listperformid = ref(props.id);
|
||||
const addPostFactorForm = ref(<any>{});
|
||||
|
|
@ -114,22 +123,51 @@ const emits = defineEmits(["close", "onSubmit"]);
|
|||
const handleSubmit = () => {
|
||||
formRef.value?.validate((valid) => {
|
||||
if (valid) {
|
||||
addPostFactorForm.value.othplanid =
|
||||
addPostFactorForm.value.othplanid || uuid.value;
|
||||
addPostFactorForm.value.userId = userId.value;
|
||||
saveOthplan(addPostFactorForm.value).then((res: any) => {
|
||||
let params = {
|
||||
...addPostFactorForm.value,
|
||||
areaCode: "",
|
||||
userId: addPostFactorForm.value.userId || userId.value,
|
||||
othplanid: addPostFactorForm.value.othplanid || uuid.value,
|
||||
};
|
||||
if (addPostFactorForm.value.areaCode instanceof Array) {
|
||||
params.areaCode =
|
||||
addPostFactorForm.value.areaCode[addPostFactorForm.value.areaCode.length - 1];
|
||||
} else {
|
||||
params.areaCode = addPostFactorForm.value.areaCode;
|
||||
};
|
||||
saveOthplan(params).then((res: any) => {
|
||||
if (res.code == 1) {
|
||||
ElMessage.success({
|
||||
message: "保存成功",
|
||||
type: "success",
|
||||
// type: "success",
|
||||
});
|
||||
onclone();
|
||||
} else {
|
||||
ElMessage.error({
|
||||
message: res.message,
|
||||
type: "error",
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
return false;
|
||||
});
|
||||
};
|
||||
|
||||
const option = ref([]);
|
||||
// 获取预案类型
|
||||
const OthtypeList = () => {
|
||||
getOthtypeList().then((res: any) => {
|
||||
option.value = res.data;
|
||||
});
|
||||
};
|
||||
//获取地区
|
||||
const orgList = ref([]);
|
||||
const getareaTree = () => {
|
||||
areaTree(userId.value).then((res: any) => {
|
||||
orgList.value = res.data;
|
||||
});
|
||||
};
|
||||
/**
|
||||
* 文件列表更新
|
||||
*/
|
||||
|
|
@ -165,9 +203,11 @@ const getFiles = (FileType) => {
|
|||
const onclone = () => {
|
||||
emits("close");
|
||||
fileList.value = [];
|
||||
chartFileList.value = [];
|
||||
};
|
||||
onMounted(() => {
|
||||
// SysunitList();
|
||||
OthtypeList();
|
||||
getareaTree();
|
||||
});
|
||||
watch(
|
||||
() => props.form,
|
||||
|
|
@ -177,23 +217,39 @@ watch(
|
|||
if (!props.visible) return;
|
||||
addPostFactorForm.value = val;
|
||||
getFiles(FileType.EmergencyFile);
|
||||
getFiles(FileType.EmergencyImg);
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
// watch(
|
||||
// () => props.form.othplanid,
|
||||
// (val) => {
|
||||
// uuid.value = getUUID();
|
||||
// if (val) {
|
||||
// addPostFactorForm.value = props.form;
|
||||
// getFiles(FileType.EmergencyFile);
|
||||
// }
|
||||
|
||||
// // if (val) {
|
||||
// // if (!props.visible) return;
|
||||
// // addPostFactorForm.value = val;
|
||||
// // getFiles(FileType.EmergencyFile);
|
||||
// // }
|
||||
// }
|
||||
// );
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.detailForm-content {
|
||||
margin-right: 30px;
|
||||
margin-right: 30px;
|
||||
}
|
||||
:deep(.el-form) {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
// justify-content: space-around;
|
||||
justify-content: space-between;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
// justify-content: space-around;
|
||||
justify-content: space-between;
|
||||
}
|
||||
:deep(.el-form-item) {
|
||||
width: 47%;
|
||||
width: 47%;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div class="percentage-content">
|
||||
<div class="content">
|
||||
<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 class="h-layout h-center">
|
||||
<div
|
||||
|
|
@ -15,10 +15,10 @@
|
|||
<svg-icon name="refurbish" class="icon" />
|
||||
<span>刷新</span>
|
||||
</div>
|
||||
<div class="tool-item" @click="getList">
|
||||
<!-- <div class="tool-item" @click="getList">
|
||||
<svg-icon name="export" class="icon" />
|
||||
<span>导出</span>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div class="label-select filter-tab">
|
||||
<label>预案类型</label>
|
||||
|
|
@ -39,7 +39,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 30%">
|
||||
<div style="width: 30%;">
|
||||
<div>
|
||||
<el-input
|
||||
v-model="search"
|
||||
|
|
@ -99,7 +99,7 @@
|
|||
<svg-icon name="edit" class="icon"></svg-icon>
|
||||
<span class="edit">编辑</span>
|
||||
</span>
|
||||
<span
|
||||
<!-- <span
|
||||
class="operate"
|
||||
@click="
|
||||
(dialogVisible = true), (form = scope.row), (readonly = true)
|
||||
|
|
@ -107,7 +107,14 @@
|
|||
>
|
||||
<svg-icon name="detail" class="icon"></svg-icon>
|
||||
<span class="detail">详情</span>
|
||||
</span>
|
||||
</span> -->
|
||||
<span
|
||||
class="operate"
|
||||
@click="del(scope.row.othplanid)"
|
||||
>
|
||||
<svg-icon name="delete" class="icon"></svg-icon>
|
||||
<span class="func">删除</span>
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
|
@ -137,8 +144,9 @@
|
|||
</template>
|
||||
<script lang='ts' setup>
|
||||
import { onMounted, reactive, ref } from "vue";
|
||||
import { getOthplanPage, getOthtypeList } from "@/api/Othteam";
|
||||
import { getOthplanPage, getOthtypeList, delOthplan } from "@/api/emergency";
|
||||
import Adddetails from "./details.vue";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import useUserStore from "@/store/modules/user";
|
||||
const userStore = useUserStore();
|
||||
const user = ref(JSON.parse(userStore.userInfo));
|
||||
|
|
@ -172,7 +180,7 @@ const getList = () => {
|
|||
tableDataloading.value = false;
|
||||
});
|
||||
};
|
||||
// 获取分类
|
||||
// 获取预案类型
|
||||
const OthtypeList = () => {
|
||||
getOthtypeList().then((res: any) => {
|
||||
option.value = res.data;
|
||||
|
|
@ -184,6 +192,33 @@ const onclone = () => {
|
|||
form.value = {};
|
||||
getList();
|
||||
};
|
||||
//删除列表
|
||||
const del = (id) => {
|
||||
ElMessageBox.confirm("是否确认删除?", "提示", {
|
||||
confirmButtonText: "是",
|
||||
cancelButtonText: "否",
|
||||
type: "warning",
|
||||
}).then(() => {
|
||||
let params = {
|
||||
userId:userId.value,
|
||||
othplanid:id
|
||||
}
|
||||
delOthplan(params).then((res: any) => {
|
||||
if (res.code == 1) {
|
||||
ElMessage.success({
|
||||
message: "删除成功",
|
||||
type: "success",
|
||||
});
|
||||
} else {
|
||||
ElMessage.error({
|
||||
message: res.message,
|
||||
type: "error",
|
||||
});
|
||||
}
|
||||
getList();
|
||||
});
|
||||
});
|
||||
};
|
||||
onMounted(() => {
|
||||
getList();
|
||||
OthtypeList();
|
||||
|
|
@ -191,19 +226,15 @@ onMounted(() => {
|
|||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
width: 100%;
|
||||
// flex: auto;
|
||||
background: #fff;
|
||||
border-radius: 0.26042vw;
|
||||
box-shadow: 0 0 0.41667vw 0 rgba(8, 33, 85, 0.1);
|
||||
height: 100%;
|
||||
padding: 0.83333vw;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden !important;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
-o-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
// flex: auto;
|
||||
background: #fff;
|
||||
border-radius: 0.26042vw;
|
||||
box-shadow: 0 0 0.41667vw 0 rgb(8 33 85 / 10%);
|
||||
height: 100%;
|
||||
padding: 0.83333vw;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden !important;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -17,17 +17,21 @@
|
|||
class="center-form"
|
||||
>
|
||||
<el-form-item label="场所名称" prop="name">
|
||||
<el-input placeholder="请输入" type="input" v-model="formData.name" />
|
||||
<el-input placeholder="请输入场所名称" type="input" v-model="formData.name" />
|
||||
</el-form-item>
|
||||
<el-form-item label="占地面积" prop="area">
|
||||
<el-input placeholder="请输入" type="input" v-model="formData.area" />
|
||||
</el-form-item>
|
||||
<el-form-item label="容纳人数" prop="number">
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
type="input"
|
||||
v-model="formData.number"
|
||||
/>
|
||||
<el-form-item prop="areaCode" label="所属区域">
|
||||
<el-cascader
|
||||
ref="cascader"
|
||||
v-model="formData.areaCode"
|
||||
placeholder="请选择地区"
|
||||
:options="orgList"
|
||||
:props="{
|
||||
checkStrictly: true,
|
||||
label: 'orgname',
|
||||
value: 'orgcode',
|
||||
}"
|
||||
clearable
|
||||
></el-cascader>
|
||||
</el-form-item>
|
||||
<el-form-item label="详细地址" prop="address">
|
||||
<el-input
|
||||
|
|
@ -36,6 +40,32 @@
|
|||
v-model="formData.address"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="面积" prop="space">
|
||||
<el-input-number
|
||||
v-model="formData.space"
|
||||
:min="1"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="维护单位" prop="maintainunit">
|
||||
<el-input placeholder="请输入维护单位" type="input" v-model="formData.maintainunit" />
|
||||
</el-form-item>
|
||||
<el-form-item label="产权单位" prop="propertyunit">
|
||||
<el-input placeholder="请输入产权单位" type="input" v-model="formData.propertyunit" />
|
||||
</el-form-item>
|
||||
<el-form-item label="建设单位" prop="buildunit">
|
||||
<el-input placeholder="请输入建设单位" type="input" v-model="formData.buildunit" />
|
||||
</el-form-item>
|
||||
<el-form-item label="建成时间" prop="buildtime">
|
||||
<el-date-picker
|
||||
v-model="formData.buildtime"
|
||||
type="date"
|
||||
placeholder="请输入建成时间"
|
||||
size="default"
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</BaseDialog>
|
||||
|
|
@ -44,7 +74,13 @@
|
|||
import { reactive, ref, onMounted, watch } from "vue";
|
||||
import { ElMessage, FormInstance, FormRules } from "element-plus";
|
||||
import { getUUID } from "@/utils/common";
|
||||
import { refugeAdd } from "@/api/emergency";
|
||||
import { areaTree } from "@/api/account";
|
||||
import useUserStore from "@/store/modules/user";
|
||||
const uuid = ref(getUUID());
|
||||
const userStore = useUserStore();
|
||||
const user = ref(JSON.parse(userStore.userInfo));
|
||||
const userId = ref(user.value.userId);
|
||||
|
||||
import { inListAdd } from "@/api/industry";
|
||||
|
||||
|
|
@ -61,33 +97,35 @@ const titleName = ref("新增");
|
|||
// 表单
|
||||
const formRef = ref<FormInstance>();
|
||||
const ruleForm = reactive<FormRules>({
|
||||
itemTitle: [{ required: true, message: "请输入内容", trigger: "blur" }],
|
||||
name: [{ required: true, message: "请输入场所名字", trigger: "blur" }],
|
||||
address: [{ required: true, message: "请输入详细地址", trigger: "blur" }],
|
||||
areaCode: [{ required: true, message: "请选择地区", trigger: "blur" }],
|
||||
});
|
||||
const formData = ref<any>({});
|
||||
|
||||
const tags = ref([
|
||||
{ label: "流动人口", value: 1 },
|
||||
{ label: "常住人口", value: 2 },
|
||||
]);
|
||||
const types = ref([
|
||||
{ label: "新生儿", value: 1 },
|
||||
{ label: "在校生", value: 2 },
|
||||
{ label: "残疾人", value: 3 },
|
||||
{ label: "低保户", value: 4 },
|
||||
{ label: "五保户", value: 5 },
|
||||
{ label: "党员", value: 6 },
|
||||
{ label: "村组干部", value: 7 },
|
||||
{ label: "其他", value: 8 },
|
||||
]);
|
||||
|
||||
//保存并退出
|
||||
const handleSubmit = () => {
|
||||
formRef.value?.validate((valid) => {
|
||||
if (valid) {
|
||||
formData.value.sortId = formData.value.sortId || 1;
|
||||
formData.value.industryId = props.id;
|
||||
formData.value.delState = formData.value.delState || 1;
|
||||
inListAdd(formData.value).then((res: any) => {
|
||||
let params = {
|
||||
address:formData.value.address,
|
||||
areaCode:'',
|
||||
buildtime:formData.value.buildtime,
|
||||
buildunit:formData.value.buildunit,
|
||||
maintainunit:formData.value.maintainunit,
|
||||
name:formData.value.name,
|
||||
othrefugeid:formData.value.othrefugeid?formData.value.othrefugeid:null,
|
||||
propertyunit:formData.value.propertyunit,
|
||||
space:formData.value.space,
|
||||
};
|
||||
if (formData.value.areaCode instanceof Array) {
|
||||
params.areaCode = formData.value.areaCode[formData.value.areaCode.length - 1];
|
||||
}else{
|
||||
params.areaCode = formData.value.areaCode;
|
||||
};
|
||||
refugeAdd(params).then((res: any) => {
|
||||
console.log(res,'res===>');
|
||||
|
||||
if (res.code == 1) {
|
||||
ElMessage.success({
|
||||
message: "操作成功",
|
||||
|
|
@ -112,8 +150,16 @@ const onclone = () => {
|
|||
formData.value = {};
|
||||
emits("close");
|
||||
};
|
||||
onMounted(() => {});
|
||||
|
||||
//获取地区
|
||||
const orgList = ref([]);
|
||||
const getareaTree = () => {
|
||||
areaTree(userId.value).then((res: any) => {
|
||||
orgList.value = res.data;
|
||||
});
|
||||
};
|
||||
onMounted(() => {
|
||||
getareaTree();
|
||||
});
|
||||
watch(
|
||||
() => props.form,
|
||||
(val: any) => {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<template>
|
||||
<div class="percentage-content">
|
||||
<div class="content">
|
||||
<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 class="h-layout">
|
||||
<div
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 30%">
|
||||
<div style="width: 30%;">
|
||||
<div>
|
||||
<el-input
|
||||
v-model="search"
|
||||
|
|
@ -61,16 +61,16 @@
|
|||
label="场所名称"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="area"
|
||||
prop="space"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="占地面积"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="number"
|
||||
prop="areaName"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="容纳人数"
|
||||
label="所属地区"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="address"
|
||||
|
|
@ -82,7 +82,7 @@
|
|||
<el-table-column
|
||||
:resizable="true"
|
||||
align="center"
|
||||
width="260"
|
||||
width="300"
|
||||
label="操作"
|
||||
>
|
||||
<template #default="scope">
|
||||
|
|
@ -104,7 +104,7 @@
|
|||
<svg-icon name="detail" class="icon"></svg-icon>
|
||||
<span class="detail">详情</span>
|
||||
</span>
|
||||
<span class="operate" @click="deletelist(scope.row.othequipmentid)">
|
||||
<span class="operate" @click="deletelist(scope.row.othrefugeid)">
|
||||
<svg-icon name="delete" class="icon"></svg-icon>
|
||||
<span class="func">删除</span>
|
||||
</span>
|
||||
|
|
@ -132,7 +132,7 @@
|
|||
<script lang='ts' setup>
|
||||
import { onMounted, reactive, ref } from "vue";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { getOthequipmentPage, delOthequipment } from "@/api/Othteam";
|
||||
import { refugePage, refugeDel } from "@/api/emergency";
|
||||
import AddEdit from "./dialog/add-edit-dialog.vue";
|
||||
|
||||
import useUserStore from "@/store/modules/user";
|
||||
|
|
@ -140,7 +140,7 @@ const userStore = useUserStore();
|
|||
const user = ref(JSON.parse(userStore.userInfo));
|
||||
const userId = ref(user.value.userId);
|
||||
|
||||
const search = ref([]);
|
||||
const search = ref("");
|
||||
const tableData = ref([]);
|
||||
const currentPage = ref(1);
|
||||
const pageSize = ref(10);
|
||||
|
|
@ -156,13 +156,13 @@ const tableDataloading = ref(false);
|
|||
const getList = () => {
|
||||
tableDataloading.value = true;
|
||||
let params = {
|
||||
equname: search.value,
|
||||
equtype: null,
|
||||
houseId: null,
|
||||
limit: pageSize.value,
|
||||
page: currentPage.value,
|
||||
condition:search.value
|
||||
};
|
||||
getOthequipmentPage(params).then((res: any) => {
|
||||
refugePage(params).then((res: any) => {
|
||||
console.log(res,'res====>');
|
||||
|
||||
tableData.value = res.data.list;
|
||||
total.value = res.data.total;
|
||||
tableDataloading.value = false;
|
||||
|
|
@ -175,7 +175,10 @@ const deletelist = (id) => {
|
|||
cancelButtonText: "否",
|
||||
type: "warning",
|
||||
}).then(() => {
|
||||
delOthequipment(id, userId.value).then((res: any) => {
|
||||
let params = {
|
||||
othrefugeid:id
|
||||
}
|
||||
refugeDel(params).then((res: any) => {
|
||||
if (res.code == 1) {
|
||||
ElMessage.success({
|
||||
message: "删除成功",
|
||||
|
|
@ -195,6 +198,7 @@ const deletelist = (id) => {
|
|||
const onclone = () => {
|
||||
dialogVisible.value = false;
|
||||
form.value = {};
|
||||
getList();
|
||||
};
|
||||
onMounted(() => {
|
||||
getList();
|
||||
|
|
@ -203,18 +207,22 @@ onMounted(() => {
|
|||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
border-radius: 0.26042vw;
|
||||
box-shadow: 0 0 0.41667vw 0 rgba(8, 33, 85, 0.1);
|
||||
height: 100%;
|
||||
padding: 0.83333vw;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden !important;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
-o-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
border-radius: 0.26042vw;
|
||||
box-shadow: 0 0 0.41667vw 0 rgb(8 33 85 / 10%);
|
||||
height: 100%;
|
||||
padding: 0.83333vw;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden !important;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-moz-box-sizing: border-box;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-webkit-box-sizing: border-box;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-o-box-sizing: border-box;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -33,23 +33,23 @@
|
|||
class="qedit"
|
||||
:value="addMessageForm.content"
|
||||
@updateValue="getMsg"
|
||||
:id="uuid"
|
||||
:id="addMessageForm.govNoticeId || uuid"
|
||||
:userId="userId"
|
||||
:FileType="FileType.message"
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="封面:" prop="content" style="width: 100%;">
|
||||
<CustomUpload
|
||||
:listPic="fileList"
|
||||
:OTCType="FileType.messageCover"
|
||||
:uuid="uuid"
|
||||
:userId="userId"
|
||||
:baseUrl="baseUrl"
|
||||
:max="9"
|
||||
@onUpdate="updateFile"
|
||||
></CustomUpload>
|
||||
<!-- :readonly="readonly" -->
|
||||
<el-form-item label="封面:" prop="coverImg" style="width: 100%;">
|
||||
<CustomUpload
|
||||
:listPic="fileList"
|
||||
:OTCType="FileType.messageCover"
|
||||
:uuid="addMessageForm.govNoticeId || uuid"
|
||||
:userId="userId"
|
||||
:baseUrl="baseUrl"
|
||||
:max="1"
|
||||
@onUpdate="updateFile"
|
||||
:readonly="props.readonly"
|
||||
></CustomUpload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
|
@ -62,6 +62,7 @@ import useUserStore from "@/store/modules/user";
|
|||
import { getYears, getUUID, FileType } from "@/utils/common";
|
||||
import { ElMessage, FormInstance, FormRules } from "element-plus";
|
||||
import { uploadFile, getFile, delFile } from "@/api/file";
|
||||
import { noticeAdd } from "@/api/Sys";
|
||||
const formRef = ref<FormInstance>();
|
||||
|
||||
const userStore = useUserStore();
|
||||
|
|
@ -95,18 +96,20 @@ const getMsg = (val) => {
|
|||
const handleSubmit = () => {
|
||||
formRef.value?.validate((valid) => {
|
||||
if (valid) {
|
||||
console.log(addMessageForm.value);
|
||||
|
||||
// const params = JSON.parse(JSON.stringify(addMessageForm.value));
|
||||
// performAdd(params).then((res: any) => {
|
||||
// if (res.code == 1) {
|
||||
// ElMessage.success({
|
||||
// message: "保存成功",
|
||||
// type: "success",
|
||||
// });
|
||||
// onclone();
|
||||
// }
|
||||
// });
|
||||
let params = {
|
||||
...addMessageForm.value,
|
||||
coverImg:fileList.value[0].filepath,
|
||||
}
|
||||
console.log(params,'params===>');
|
||||
noticeAdd(params).then((res: any) => {
|
||||
if (res.code == 1) {
|
||||
ElMessage.success({
|
||||
message: "保存成功",
|
||||
type: "success",
|
||||
});
|
||||
onclone();
|
||||
}
|
||||
});
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
|
@ -114,27 +117,26 @@ const handleSubmit = () => {
|
|||
|
||||
//上传封面
|
||||
const fileList = ref([]);
|
||||
//查询文件
|
||||
const baseUrl = ref(import.meta.env.VITE_UPLOAD_URL);
|
||||
const getFiles = () => {
|
||||
let otcid = props.govNoticeId;
|
||||
let otctype = FileType.messageCover;
|
||||
getFile(otcid, otctype).then((res: any) => {
|
||||
|
||||
|
||||
fileList.value = res.data;
|
||||
console.log( fileList.value,'res==>');
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 文件列表更新
|
||||
*/
|
||||
const updateFile = (files: any) => {
|
||||
const updateFile = (files: any) => {
|
||||
fileList.value = files;
|
||||
};
|
||||
//图片查询
|
||||
const getFiles = (FileType) => {
|
||||
console.log(FileType,'FileType==>');
|
||||
console.log(addMessageForm.value.govNoticeId,'addMessageForm.value.govNoticeId===>');
|
||||
|
||||
getFile(addMessageForm.value.govNoticeId || uuid.value, FileType).then(
|
||||
(res: any) => {
|
||||
console.log(res,'图片查询res==>');
|
||||
|
||||
fileList.value = res.data;
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
//关闭弹窗
|
||||
const onclone = () => {
|
||||
|
|
@ -145,7 +147,10 @@ watch(
|
|||
() => props.visible,
|
||||
() => {
|
||||
uuid.value = getUUID();
|
||||
getFiles();
|
||||
addMessageForm.value = props.form;
|
||||
console.log(addMessageForm.value,'addMessageForm===>');
|
||||
|
||||
getFiles(FileType.messageCover);
|
||||
}
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -127,20 +127,15 @@
|
|||
|
||||
<script lang='ts' setup>
|
||||
import { onMounted, reactive, ref } from "vue";
|
||||
import { useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
|
||||
import { noticePage } from "@/api/Sys";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import AddModifyMessage from "./add-modify-message.vue";
|
||||
|
||||
import useUserStore from "@/store/modules/user";
|
||||
const userStore = useUserStore();
|
||||
|
||||
const user = ref(JSON.parse(userStore.userInfo));
|
||||
const userId = ref(user.value.userId);
|
||||
|
||||
const search = ref([]);
|
||||
const search = ref('');
|
||||
const tableData = ref([]);
|
||||
const currentPage = ref(1);
|
||||
const pageSize = ref(10);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user