Commit e7e8d28a authored by p-wanping.song's avatar p-wanping.song

新增签到和固有风险模板

parent 3b09dd00
...@@ -26,7 +26,7 @@ import tabBar from "@/components/TabBar"; ...@@ -26,7 +26,7 @@ import tabBar from "@/components/TabBar";
export default { export default {
components: { components: {
tabBar tabBar,
}, },
data() { data() {
return { return {
...@@ -64,7 +64,11 @@ export default { ...@@ -64,7 +64,11 @@ export default {
"riskApprove", "riskApprove",
"taskList", "taskList",
"taskDetail", "taskDetail",
"modelResult" "modelResult",
"inherent-template-detail",
"inherent-template",
"my-sign",
"sign-recode",
], ],
// cachePage预先定义的缓存页面 // cachePage预先定义的缓存页面
otherCache: [], otherCache: [],
...@@ -80,8 +84,8 @@ export default { ...@@ -80,8 +84,8 @@ export default {
"my-delay", "my-delay",
"risk-account", "risk-account",
"risk-confirme", "risk-confirme",
"my-delay" "my-delay",
] ],
// 'report-return', 'risk-return', 风险和隐患的上报退回不需要缓存 // 'report-return', 'risk-return', 风险和隐患的上报退回不需要缓存
}; };
}, },
...@@ -104,26 +108,26 @@ export default { ...@@ -104,26 +108,26 @@ export default {
computed: { computed: {
showTab() { showTab() {
return !this.noTab.includes(this.$route.name); return !this.noTab.includes(this.$route.name);
} },
}, },
methods: { methods: {
// 处理缓存的方法 // 处理缓存的方法
handleCache(roterFromName, roterToName, markRoterName) { handleCache(roterFromName, roterToName, markRoterName) {
if (roterToName == markRoterName) { if (roterToName == markRoterName) {
// 从定义缓存列表中移除 // 从定义缓存列表中移除
if (this.cachePage.findIndex(item => item == roterFromName) != -1) { if (this.cachePage.findIndex((item) => item == roterFromName) != -1) {
this.cachePage.splice( this.cachePage.splice(
this.cachePage.findIndex(item => item == roterFromName), this.cachePage.findIndex((item) => item == roterFromName),
1 1
); );
} }
} else { } else {
// 判断有无路由 加入缓存 // 判断有无路由 加入缓存
if (this.cachePage.findIndex(item => item == roterFromName) == -1) { if (this.cachePage.findIndex((item) => item == roterFromName) == -1) {
this.cachePage.push(roterFromName); this.cachePage.push(roterFromName);
} }
} }
} },
}, },
watch: { watch: {
$route(to, from) { $route(to, from) {
...@@ -169,8 +173,8 @@ export default { ...@@ -169,8 +173,8 @@ export default {
} else { } else {
this.transitionName = ""; //同级无过渡效果 this.transitionName = ""; //同级无过渡效果
} }
} },
} },
}; };
</script> </script>
......
...@@ -12,9 +12,12 @@ ...@@ -12,9 +12,12 @@
<div> <div>
<van-sticky> <van-sticky>
<header class="header"> <header class="header">
<van-icon @click="to" name="arrow-left" class="iconColorLeft"/> <van-icon @click="to" name="arrow-left" class="iconColorLeft" />
<span>{{text}}</span> <span>{{ text }}</span>
<!-- <van-icon name="bars" class="iconColorRight"/> --> <!-- <van-icon name="bars" class="iconColorRight" /> -->
<div class="iconColorRight">
<slot name="right"></slot>
</div>
</header> </header>
</van-sticky> </van-sticky>
</div> </div>
...@@ -22,63 +25,59 @@ ...@@ -22,63 +25,59 @@
<script> <script>
export default { export default {
props:{ props: {
text:{ text: {
default:"未知", default: "未知",
type:String type: String,
}, },
customBack:{ customBack: {
type:Function, type: Function,
}
}, },
data() {
return {
}
}, },
mounted() { data() {
return {};
}, },
mounted() {},
methods: { methods: {
/* 左侧图标跳转方法 */ /* 左侧图标跳转方法 */
to(){ to() {
if(this.customBack){ if (this.customBack) {
this.customBack() this.customBack();
}else{ } else {
history.go(-1) history.go(-1);
}
}
} }
} },
},
};
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.header{ .header {
width:100%; width: 100%;
height:1.5rem; height: 1.5rem;
background:#2980F7; background: #2980f7;
text-align: center; text-align: center;
line-height: 1.5rem; line-height: 1.5rem;
} }
.iconColorLeft{ .iconColorLeft {
color: white; color: white;
transform: scale(2); transform: scale(2);
float: left; float: left;
position: relative; position: relative;
top: 40%; top: 40%;
left: 5%; left: 5%;
} }
.header span{ .header span {
color: white; color: white;
font-size: 16px; font-size: 16px;
margin: auto; margin: auto;
font-family: 'Microsoft YaHei'; font-family: "Microsoft YaHei";
} }
.header .iconColorRight{ .header .iconColorRight {
color: white; color: white;
float: right; float: right;
position: relative; position: relative;
top: 40%;
right: 5%; right: 5%;
transform: scale(2); font-size: 13px;
} vertical-align: middle;
}
</style> </style>
...@@ -35,6 +35,22 @@ const routes = [ ...@@ -35,6 +35,22 @@ const routes = [
}, },
component: () => import("@/views/my/resetPas"), component: () => import("@/views/my/resetPas"),
}, },
{
path: "/my-sign",
name: "my-sign",
meta: {
title: "我的签到",
},
component: () => import("@/views/my/sign"),
},
{
path: "/sign-recode",
name: "sign-recode",
meta: {
title: "我的签到",
},
component: () => import("@/views/my/signRecode"),
},
// 安全工作台页面 // 安全工作台页面
{ {
path: "/save-workbench", path: "/save-workbench",
...@@ -150,6 +166,18 @@ const routes = [ ...@@ -150,6 +166,18 @@ const routes = [
name: "riskInherent", name: "riskInherent",
component: () => import("../views/riskProject/add/inherentRisks.vue"), component: () => import("../views/riskProject/add/inherentRisks.vue"),
}, },
//固有风险模板详情
{
path: "/inherent/template/detail",
name: "inherent-template-detail",
component: () => import("../views/riskProject/add/inherentTemplate/detail.vue"),
},
//固有风险模板列表
{
path: "/inherent/template",
name: "inherent-template",
component: () => import("../views/riskProject/add/inherentTemplate/list.vue"),
},
//新增固有风险 //新增固有风险
{ {
path: "/addInherent", path: "/addInherent",
......
...@@ -35,4 +35,10 @@ export default { ...@@ -35,4 +35,10 @@ export default {
SET_ASSESS_RESULT(state, data) { SET_ASSESS_RESULT(state, data) {
state.assessModel.result = data; state.assessModel.result = data;
}, },
// 固有风险模板
SET_INHERENT_TEMPLATE(state, data) {
state.inherentTemplate.id = data;
}
}; };
...@@ -11,5 +11,9 @@ export default { ...@@ -11,5 +11,9 @@ export default {
level: "", level: "",
score: "", score: "",
}, },
// 固有风险模板
inherentTemplate: {
id: ''
}
}, },
}; };
...@@ -2,9 +2,7 @@ ...@@ -2,9 +2,7 @@
<div> <div>
<!-- 头部标签 --> <!-- 头部标签 -->
<van-sticky> <van-sticky>
<header class="header-wrap"> <header class="header-wrap">我的</header>
我的
</header>
</van-sticky> </van-sticky>
<!-- 内容 --> <!-- 内容 -->
...@@ -64,8 +62,6 @@ ...@@ -64,8 +62,6 @@
<span>{{ item["title"] }}</span> <span>{{ item["title"] }}</span>
</div> </div>
</van-cell-group> </van-cell-group>
</div> </div>
<!-- 退出系统 --> <!-- 退出系统 -->
<footer class="sign-out"> <footer class="sign-out">
...@@ -79,11 +75,15 @@ ...@@ -79,11 +75,15 @@
<script> <script>
import tabBar from "@/components/TabBar"; import tabBar from "@/components/TabBar";
import { removeToken } from '@/utils/auth' // get token from cookie import { removeToken } from "@/utils/auth"; // get token from cookie
import { getUserInfo,removeLocalUserInfo,removeUserInfo} from '@/utils/userInfo' import {
getUserInfo,
removeLocalUserInfo,
removeUserInfo,
} from "@/utils/userInfo";
export default { export default {
components: { components: {
tabBar tabBar,
}, },
data() { data() {
return { return {
...@@ -91,7 +91,7 @@ export default { ...@@ -91,7 +91,7 @@ export default {
// 菜单 // 菜单
{ {
title: "我的权限", title: "我的权限",
img:require("@/assets/myTerritory/role.png"), img: require("@/assets/myTerritory/role.png"),
name: "my-role", name: "my-role",
}, },
{ {
...@@ -99,25 +99,30 @@ export default { ...@@ -99,25 +99,30 @@ export default {
img: require("@/assets/myTerritory/set.png"), img: require("@/assets/myTerritory/set.png"),
name: "my-reset-pas", name: "my-reset-pas",
}, },
{
title: "签到",
img: require("@/assets/myTerritory/set.png"),
name: "my-sign",
},
], ],
userInfo: { userInfo: {
portrait: require("@/assets/myTerritory/touxiang.png"), portrait: require("@/assets/myTerritory/touxiang.png"),
name: getUserInfo()?getUserInfo().userName:"xxx", name: getUserInfo() ? getUserInfo().userName : "xxx",
position: getUserInfo()?getUserInfo().deptName:"xxx部", position: getUserInfo() ? getUserInfo().deptName : "xxx部",
} },
}; };
}, },
mounted() {}, mounted() {},
methods: { methods: {
logout() { logout() {
removeToken() removeToken();
// removeLocalUserInfo() // removeLocalUserInfo()
removeUserInfo() removeUserInfo();
sessionStorage.clear() sessionStorage.clear();
this.$router.push("/login"); this.$router.push("/login");
// location.reload(); // location.reload();
} },
} },
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
...@@ -136,7 +141,7 @@ export default { ...@@ -136,7 +141,7 @@ export default {
padding: 10px 0 50px 0; padding: 10px 0 50px 0;
background-color: #f0f1f5; background-color: #f0f1f5;
position: relative; position: relative;
.user-box{ .user-box {
display: flex; display: flex;
align-items: center; align-items: center;
} }
......
<template>
<div>
<LHeader :text="$route.meta.title">
<span slot="right" @click="() => this.$router.push('sign-recode')"
>签到记录</span
>
</LHeader>
<van-form
ref="signForm"
label-width="4em"
validate-trigger="onSubmit"
:colon="true"
>
<van-field
readonly
name="projectName"
:value="form.projectName"
label="用户名"
placeholder="请输入"
:rules="[{ required: true, message: '用户名不能为空' }]"
>
</van-field>
<van-field
required
name="remark"
:value="form.remark"
label="备注"
placeholder="请输入"
type="textarea"
:rules="[{ required: true, message: '备注不能为空' }]"
>
</van-field>
<van-field
readonly
required
name="photo"
label="照片"
:rules="[{ required: true, message: '照片不能为空' }]"
>
<template #input>
<van-uploader
v-model="form.photo"
:after-read="afterRead"
:max-count="1"
>
</van-uploader>
</template>
</van-field>
<div class="submit-btns">
<van-button round block type="info" @click="toSign(1)">签到</van-button>
<van-button round block type="info" @click="toSign(0)">签退</van-button>
</div>
</van-form>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
export default {
components: {
LHeader,
},
data() {
return {
form: {
photo: [],
},
};
},
methods: {
afterRead(file) {
this.form.photo = file.file;
},
toSign(type) {
this.$refs.signForm.validate();
},
},
};
</script>
<style lang="less" scoped>
.submit-btns {
display: flex;
padding: 20px 0 20px 20px;
> .van-button {
margin-right: 20px;
}
}
</style>
<template>
<div>
<LHeader text="签到记录"> </LHeader>
<div>
<van-cell title="签到" value="2023/08/30 ">
<template #label>
<div>备注:123</div>
<div>照片:<img src="" alt="" /></div>
</template>
</van-cell>
<van-cell title="签退" value="2023/08/30 " />
</div>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
export default { components: { LHeader } };
</script>
<style lang="scss" scoped></style>
<template> <template>
<div> <div>
<LHeader :text="text"></LHeader> <LHeader :text="text">
<span slot="right" @click="toImport">导入</span>
</LHeader>
<van-form <van-form
@submit="onSubmit" @submit="onSubmit"
:scroll-to-error="true" :scroll-to-error="true"
...@@ -9,12 +11,17 @@ ...@@ -9,12 +11,17 @@
ref="formEle" ref="formEle"
> >
<div <div
style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;" style="
height: 1rem;
font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';
font-weight: 700;
line-height: 1rem;
"
> >
<img <img
src="@/assets/accidentIcon/bookmark.svg" src="@/assets/accidentIcon/bookmark.svg"
alt="" alt=""
style="position: relative;top: 32%;transform: translateY(-50%);" style="position: relative; top: 32%; transform: translateY(-50%)"
/> />
固有风险信息 固有风险信息
</div> </div>
...@@ -43,7 +50,7 @@ ...@@ -43,7 +50,7 @@
placeholder="请输入 " placeholder="请输入 "
/> />
<div style="display: flex;"> <div style="display: flex">
<van-field <van-field
required required
clickable clickable
...@@ -55,16 +62,15 @@ ...@@ -55,16 +62,15 @@
:rules="[{ required: true, message: '所属楼层不能为空' }]" :rules="[{ required: true, message: '所属楼层不能为空' }]"
/> />
<van-button <van-button
style="color: #cccc;background-color: #f0f1f5;" style="color: #cccc; background-color: #f0f1f5"
icon="plus" icon="plus"
type="info" type="info"
native-type="button" native-type="button"
@click="isFloor=true" @click="isFloor = true"
/> />
</div> </div>
<div style="display: flex">
<div style="display: flex;">
<van-field <van-field
readonly readonly
required required
...@@ -76,7 +82,7 @@ ...@@ -76,7 +82,7 @@
:rules="[{ required: true, message: '所属房间不能为空' }]" :rules="[{ required: true, message: '所属房间不能为空' }]"
/> />
<van-button <van-button
style="color: #cccc;background-color: #f0f1f5;" style="color: #cccc; background-color: #f0f1f5"
icon="plus" icon="plus"
type="info" type="info"
native-type="button" native-type="button"
...@@ -111,13 +117,13 @@ ...@@ -111,13 +117,13 @@
v-show="form.pointType == '设备设施类'" v-show="form.pointType == '设备设施类'"
> >
<template #input> <template #input>
<span style="margin-right: 10px;color: red;"></span> <span style="margin-right: 10px; color: red"></span>
<van-switch <van-switch
name="specialEquipment" name="specialEquipment"
v-model="form.specialEquipment" v-model="form.specialEquipment"
size="20" size="20"
/> />
<span style="margin-left: 10px;color: green;"></span> <span style="margin-left: 10px; color: green"></span>
</template> </template>
</van-field> </van-field>
<!-- 多选 --> <!-- 多选 -->
...@@ -176,12 +182,17 @@ ...@@ -176,12 +182,17 @@
/> />
<div <div
style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;" style="
height: 1rem;
font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';
font-weight: 700;
line-height: 1rem;
"
> >
<img <img
src="@/assets/accidentIcon/bookmark.svg" src="@/assets/accidentIcon/bookmark.svg"
alt="" alt=""
style="position: relative;top: 32%;transform: translateY(-50%);" style="position: relative; top: 32%; transform: translateY(-50%)"
/> />
风险图片 风险图片
</div> </div>
...@@ -218,12 +229,17 @@ ...@@ -218,12 +229,17 @@
</template> </template>
</van-field> </van-field>
<div <div
style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;" style="
height: 1rem;
font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';
font-weight: 700;
line-height: 1rem;
"
> >
<img <img
src="@/assets/accidentIcon/bookmark.svg" src="@/assets/accidentIcon/bookmark.svg"
alt="" alt=""
style="position: relative;top: 32%;transform: translateY(-50%);" style="position: relative; top: 32%; transform: translateY(-50%)"
/> />
应采取的管控措施 应采取的管控措施
</div> </div>
...@@ -237,7 +253,7 @@ ...@@ -237,7 +253,7 @@
rows="3" rows="3"
autosize autosize
placeholder="请输入" placeholder="请输入"
style="padding-left: 0;padding-top: 0;" style="padding-left: 0; padding-top: 0"
/> />
</template> </template>
</van-field> </van-field>
...@@ -284,7 +300,7 @@ ...@@ -284,7 +300,7 @@
rows="3" rows="3"
autosize autosize
placeholder="请输入" placeholder="请输入"
style="padding-left: 0;padding-top: 0;" style="padding-left: 0; padding-top: 0"
/> />
</template> </template>
</van-field> </van-field>
...@@ -331,7 +347,7 @@ ...@@ -331,7 +347,7 @@
rows="3" rows="3"
autosize autosize
placeholder="请输入" placeholder="请输入"
style="padding-left: 0;padding-top: 0;" style="padding-left: 0; padding-top: 0"
/> />
</template> </template>
</van-field> </van-field>
...@@ -416,21 +432,26 @@ ...@@ -416,21 +432,26 @@
maxlength="11" maxlength="11"
/> />
<div <div
style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;" style="
height: 1rem;
font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';
font-weight: 700;
line-height: 1rem;
"
> >
<img <img
src="@/assets/accidentIcon/bookmark.svg" src="@/assets/accidentIcon/bookmark.svg"
alt="" alt=""
style="position: relative;top: 32%;transform: translateY(-50%);" style="position: relative; top: 32%; transform: translateY(-50%)"
/> />
重大危险源管理 重大危险源管理
</div> </div>
<van-field name="majorHazardSource" label="是否为重大危险源"> <van-field name="majorHazardSource" label="是否为重大危险源">
<template #input> <template #input>
<span style="margin-right: 10px;color: red;"></span> <span style="margin-right: 10px; color: red"></span>
<van-switch v-model="form.majorHazardSource" size="20" /> <van-switch v-model="form.majorHazardSource" size="20" />
<span style="margin-left: 10px;color: green;"></span> <span style="margin-left: 10px; color: green"></span>
</template> </template>
</van-field> </van-field>
<van-field <van-field
...@@ -471,7 +492,7 @@ ...@@ -471,7 +492,7 @@
? [{ required: true, message: '重大危险源描述不能为空' }] ? [{ required: true, message: '重大危险源描述不能为空' }]
: [] : []
" "
style="padding-left: 0;padding-top: 0;" style="padding-left: 0; padding-top: 0"
/> />
</template> </template>
</van-field> </van-field>
...@@ -553,7 +574,7 @@ ...@@ -553,7 +574,7 @@
</van-popover> </van-popover>
</van-collapse-item> </van-collapse-item>
</van-collapse> </van-collapse>
<van-row type="flex" justify="center" style="margin-top:10px"> <van-row type="flex" justify="center" style="margin-top: 10px">
<van-col span="6" <van-col span="6"
><van-button ><van-button
size="small" size="small"
...@@ -615,7 +636,8 @@ ...@@ -615,7 +636,8 @@
<!-- 房间弹出层 --> <!-- 房间弹出层 -->
<van-popup v-model="showSource" position="bottom"> <van-popup v-model="showSource" position="bottom">
<van-picker v-if="showSource" <van-picker
v-if="showSource"
show-toolbar show-toolbar
value-key="name" value-key="name"
:columns="columnsSource" :columns="columnsSource"
...@@ -631,7 +653,7 @@ ...@@ -631,7 +653,7 @@
> >
<div <div
class="van-picker__toolbar" class="van-picker__toolbar"
style="position: absolute;width: 100%;top: 0;" style="position: absolute; width: 100%; top: 0"
> >
<button <button
type="button" type="button"
...@@ -648,12 +670,12 @@ ...@@ -648,12 +670,12 @@
确认 确认
</button> </button>
</div> </div>
<div style="display:flex;margin-top: 44px;"> <div style="display: flex; margin-top: 44px">
<selectDept @changeDept="changeDept"></selectDept> <selectDept @changeDept="changeDept"></selectDept>
</div> </div>
</van-popup> </van-popup>
<div v-if="isFloor"> <div v-if="isFloor">
<addFloor @close="closeFloor" :buildingId="form.buildingId"/> <addFloor @close="closeFloor" :buildingId="form.buildingId" />
</div> </div>
<!-- 管控责任人 --> <!-- 管控责任人 -->
<van-popup v-model="showTrouble" position="bottom"> <van-popup v-model="showTrouble" position="bottom">
...@@ -673,7 +695,7 @@ ...@@ -673,7 +695,7 @@
round round
block block
type="info" type="info"
@click="onSubmit('save',$event)" @click="onSubmit('save', $event)"
>保存</van-button >保存</van-button
> >
</div> </div>
...@@ -702,7 +724,7 @@ import LHeader from "@/components/header.vue"; ...@@ -702,7 +724,7 @@ import LHeader from "@/components/header.vue";
import selectDept from "@/components/selectDept/index.vue"; import selectDept from "@/components/selectDept/index.vue";
import SelectList from "@/components/selectList.vue"; import SelectList from "@/components/selectList.vue";
import selectFloor from "@/components/selectFloor.vue"; import selectFloor from "@/components/selectFloor.vue";
import addFloor from './addFloor' import addFloor from "./addFloor";
import { getUserInfo, getLocalUserInfo } from "@/utils/userInfo"; import { getUserInfo, getLocalUserInfo } from "@/utils/userInfo";
import { getFun, postFun } from "@/service/table.js"; import { getFun, postFun } from "@/service/table.js";
...@@ -713,7 +735,7 @@ export default { ...@@ -713,7 +735,7 @@ export default {
selectDept, selectDept,
SelectList, SelectList,
selectFloor, selectFloor,
addFloor addFloor,
}, },
activated() { activated() {
...@@ -726,7 +748,7 @@ export default { ...@@ -726,7 +748,7 @@ export default {
} }
this.getList(); this.getList();
this.$bus.$on("riskLevelBus", res => { this.$bus.$on("riskLevelBus", (res) => {
this.showSetRank = false; // 再次关闭弹出层 以防万一 this.showSetRank = false; // 再次关闭弹出层 以防万一
console.log(Boolean(res)); console.log(Boolean(res));
if (res) { if (res) {
...@@ -753,7 +775,7 @@ export default { ...@@ -753,7 +775,7 @@ export default {
}, },
data() { data() {
return { return {
isFloor:false, isFloor: false,
loadingStatus: false, loadingStatus: false,
loadingText: "提交...", loadingText: "提交...",
measureNameList: [], measureNameList: [],
...@@ -782,7 +804,7 @@ export default { ...@@ -782,7 +804,7 @@ export default {
isTimely: 1, isTimely: 1,
active: 0, active: 0,
form: { form: {
specialEquipment: "" specialEquipment: "",
}, },
projectId: "", // 所属工程 projectId: "", // 所属工程
projectName: "", // 所属工程 projectName: "", // 所属工程
...@@ -839,7 +861,7 @@ export default { ...@@ -839,7 +861,7 @@ export default {
possibleValue: "", possibleValue: "",
possibleScore: 0, possibleScore: 0,
severityValue: "", severityValue: "",
severityScore: 0 severityScore: 0,
}; };
}, },
created() { created() {
...@@ -865,32 +887,35 @@ export default { ...@@ -865,32 +887,35 @@ export default {
}, },
methods: { methods: {
/* swp add */ toImport() {
toSave(e){ //保存 this.$router.push({ name: "inherent-template" });
},
toSave(e) {
//保存
e.preventDefault(); e.preventDefault();
var formDataJson = this.jsonToFormData(this.form); var formDataJson = this.jsonToFormData(this.form);
this.uploaderImg.forEach(item => { this.uploaderImg.forEach((item) => {
if (item.file) { if (item.file) {
formDataJson.append("pictureFile[]", item.file); formDataJson.append("pictureFile[]", item.file);
} else { } else {
formDataJson.append("pictureFile[]", item.fileId); formDataJson.append("pictureFile[]", item.fileId);
} }
}); });
this.measuresAdministrationFile.forEach(item => { this.measuresAdministrationFile.forEach((item) => {
if (item.file) { if (item.file) {
formDataJson.append("measuresProjectFile[]", item.file); formDataJson.append("measuresProjectFile[]", item.file);
} else { } else {
formDataJson.append("measuresProjectFile[]", item.fileId); formDataJson.append("measuresProjectFile[]", item.fileId);
} }
}); });
this.measuresEmergencyFile.forEach(item => { this.measuresEmergencyFile.forEach((item) => {
if (item.file) { if (item.file) {
formDataJson.append("measuresEmergencyFile[]", item.file); formDataJson.append("measuresEmergencyFile[]", item.file);
} else { } else {
formDataJson.append("measuresEmergencyFile[]", item.fileId); formDataJson.append("measuresEmergencyFile[]", item.fileId);
} }
}); });
this.measuresAdministrationFile.forEach(item => { this.measuresAdministrationFile.forEach((item) => {
if (item.file) { if (item.file) {
formDataJson.append("measuresAdministrationFile[]", item.file); formDataJson.append("measuresAdministrationFile[]", item.file);
} else { } else {
...@@ -898,24 +923,26 @@ export default { ...@@ -898,24 +923,26 @@ export default {
} }
}); });
}, },
closeFloor(data){ closeFloor(data) {
if(data){ if (data) {
this.getFloor().then(()=>{ this.getFloor().then(() => {
const floors=[].concat(this.floorSource.map(x=>x.children).flat()) const floors = [].concat(
const currentFloor = floors.find(x=>x.id===data) this.floorSource.map((x) => x.children).flat()
if(currentFloor){ );
const currentFloor = floors.find((x) => x.id === data);
if (currentFloor) {
this.saveSlectfloor(currentFloor); this.saveSlectfloor(currentFloor);
} }
}) });
} }
this.isFloor = false; this.isFloor = false;
}, },
measuresUserNameChange(e) { measuresUserNameChange(e) {
getFun( getFun(
`/risk/plan/inherent/getResponsibilityPersons?personName=${e}&projectId=${this.form.projectId}` `/risk/plan/inherent/getResponsibilityPersons?personName=${e}&projectId=${this.form.projectId}`
).then(res => { ).then((res) => {
this.measureNameList = res.data; this.measureNameList = res.data;
this.measureNameList.forEach(item => { this.measureNameList.forEach((item) => {
if (item.measuresUserName == e) if (item.measuresUserName == e)
this.form.measuresUserPhone = item.measuresUserPhone; this.form.measuresUserPhone = item.measuresUserPhone;
}); });
...@@ -925,11 +952,10 @@ export default { ...@@ -925,11 +952,10 @@ export default {
measuresDeptNameChange(e) { measuresDeptNameChange(e) {
getFun( getFun(
`/risk/plan/inherent/getResponsibilityUnits?unitName=${e}&projectId=${this.form.projectId}` `/risk/plan/inherent/getResponsibilityUnits?unitName=${e}&projectId=${this.form.projectId}`
).then(res => { ).then((res) => {
this.measureDeptList = res.data; this.measureDeptList = res.data;
}); });
}, },
/* swp add end */
// 项目负责人 // 项目负责人
onConTrouble(value) { onConTrouble(value) {
if (!value) { if (!value) {
...@@ -945,7 +971,7 @@ export default { ...@@ -945,7 +971,7 @@ export default {
if (!this.form.measuresDeptId) { if (!this.form.measuresDeptId) {
this.$toast({ this.$toast({
title: "提示", title: "提示",
message: "请选择管控责任单位!" message: "请选择管控责任单位!",
}); });
return false; return false;
} }
...@@ -953,9 +979,9 @@ export default { ...@@ -953,9 +979,9 @@ export default {
message: "加载中...", message: "加载中...",
forbidClick: true, forbidClick: true,
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0,
}); });
getFun(`/risk/plan/user/list/${this.form.measuresDeptId}`).then(res => { getFun(`/risk/plan/user/list/${this.form.measuresDeptId}`).then((res) => {
if (res.code == 200) { if (res.code == 200) {
this.columnsTrouble = res.data; this.columnsTrouble = res.data;
// 对数据进行赋值 // 对数据进行赋值
...@@ -978,7 +1004,7 @@ export default { ...@@ -978,7 +1004,7 @@ export default {
getFun( getFun(
`/risk/plan/dict/data/list?dictType=risk_plan_${dataName.toLowerCase()}` `/risk/plan/dict/data/list?dictType=risk_plan_${dataName.toLowerCase()}`
) )
.then(res => { .then((res) => {
if (isSinge) { if (isSinge) {
this.columnsData = res.data; this.columnsData = res.data;
this.showSelect = true; this.showSelect = true;
...@@ -1001,7 +1027,7 @@ export default { ...@@ -1001,7 +1027,7 @@ export default {
this.showCheckSelect = false; this.showCheckSelect = false;
}, },
renameKeyInTree(data, oldKey, newKey) { renameKeyInTree(data, oldKey, newKey) {
let arr = data.map(item => { let arr = data.map((item) => {
const newItem = { ...item }; const newItem = { ...item };
if (item.hasOwnProperty(oldKey)) { if (item.hasOwnProperty(oldKey)) {
...@@ -1023,7 +1049,7 @@ export default { ...@@ -1023,7 +1049,7 @@ export default {
}, },
getFloor() { getFloor() {
return getFun(`/risk/plan/floor/list/${this.form.buildingIds}`) return getFun(`/risk/plan/floor/list/${this.form.buildingIds}`)
.then(res => { .then((res) => {
// this.$toast.clear(); // this.$toast.clear();
// this.showSource = true; // this.showSource = true;
...@@ -1042,7 +1068,7 @@ export default { ...@@ -1042,7 +1068,7 @@ export default {
if (!this.form.floorId) { if (!this.form.floorId) {
this.$toast({ this.$toast({
title: "提示", title: "提示",
message: "请选择所属楼层!" message: "请选择所属楼层!",
}); });
return false; return false;
} }
...@@ -1050,11 +1076,11 @@ export default { ...@@ -1050,11 +1076,11 @@ export default {
message: "加载中...", message: "加载中...",
forbidClick: true, forbidClick: true,
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0,
}); });
this.userPrefix = name; this.userPrefix = name;
getFun(`/risk/plan/room/list/${this.form.floorId}`) getFun(`/risk/plan/room/list/${this.form.floorId}`)
.then(res => { .then((res) => {
this.$toast.clear(); this.$toast.clear();
this.showSource = true; this.showSource = true;
this.columnsSource = res.data; this.columnsSource = res.data;
...@@ -1073,14 +1099,14 @@ export default { ...@@ -1073,14 +1099,14 @@ export default {
//风险模型配置 //风险模型配置
getGradeList(type) { getGradeList(type) {
// possibility 可能性 severity 严重性 // possibility 可能性 severity 严重性
getFun(`/risk/plan/matrix/${type}/list`).then(res => { getFun(`/risk/plan/matrix/${type}/list`).then((res) => {
let arr = []; let arr = [];
res.data.forEach(item => { res.data.forEach((item) => {
arr.push({ arr.push({
text: item.title, text: item.title,
type: item.type, type: item.type,
sort: item.sort, sort: item.sort,
score: item.score score: item.score,
}); });
}); });
if (type === "possibility") { if (type === "possibility") {
...@@ -1100,8 +1126,8 @@ export default { ...@@ -1100,8 +1126,8 @@ export default {
this.ShowfloorList = false; this.ShowfloorList = false;
}, },
saveSlectfloor(data) { saveSlectfloor(data) {
if(this.form.floorId!=data.id){ if (this.form.floorId != data.id) {
this.form.roomName = '' this.form.roomName = "";
} }
this.form.floorId = data.id; this.form.floorId = data.id;
this.form.floorName = data.text; this.form.floorName = data.text;
...@@ -1122,9 +1148,9 @@ export default { ...@@ -1122,9 +1148,9 @@ export default {
name: "resultPage", name: "resultPage",
params: { params: {
score: this.severityScore * this.possibleScore, score: this.severityScore * this.possibleScore,
possibleValue:this.possibleValue, possibleValue: this.possibleValue,
severityValue:this.severityValue, severityValue: this.severityValue,
} },
}); });
}, },
performTasks() { performTasks() {
...@@ -1147,48 +1173,48 @@ export default { ...@@ -1147,48 +1173,48 @@ export default {
formdata.append("key", val["fileId"]); formdata.append("key", val["fileId"]);
this.$toast({ this.$toast({
title: "提示", title: "提示",
message: "删除成功!" message: "删除成功!",
}); });
} }
}, },
jsonToFormData(config) { jsonToFormData(config) {
const formData = new FormData(); const formData = new FormData();
//循环传入的值转换formData //循环传入的值转换formData
Object.keys(config).forEach(key => { Object.keys(config).forEach((key) => {
formData.append(key, config[key]); formData.append(key, config[key]);
}); });
return formData; return formData;
}, },
onSubmit(values,event) { onSubmit(values, event) {
if(values=='save'){ if (values == "save") {
event.preventDefault(); event.preventDefault();
} }
// console.log('%c [ values ]-592', 'font-size:13px; background:pink; color:#bf2c9f;', values) // console.log('%c [ values ]-592', 'font-size:13px; background:pink; color:#bf2c9f;', values)
var formDataJson = this.jsonToFormData(this.form); var formDataJson = this.jsonToFormData(this.form);
let url = "/risk/plan/inherent"; let url = "/risk/plan/inherent";
this.loadingStatus = true; this.loadingStatus = true;
this.uploaderImg.forEach(item => { this.uploaderImg.forEach((item) => {
if (item.file) { if (item.file) {
formDataJson.append("pictureFile[]", item.file); formDataJson.append("pictureFile[]", item.file);
} else { } else {
formDataJson.append("pictureFile[]", item.fileId); formDataJson.append("pictureFile[]", item.fileId);
} }
}); });
this.measuresAdministrationFile.forEach(item => { this.measuresAdministrationFile.forEach((item) => {
if (item.file) { if (item.file) {
formDataJson.append("measuresProjectFile[]", item.file); formDataJson.append("measuresProjectFile[]", item.file);
} else { } else {
formDataJson.append("measuresProjectFile[]", item.fileId); formDataJson.append("measuresProjectFile[]", item.fileId);
} }
}); });
this.measuresEmergencyFile.forEach(item => { this.measuresEmergencyFile.forEach((item) => {
if (item.file) { if (item.file) {
formDataJson.append("measuresEmergencyFile[]", item.file); formDataJson.append("measuresEmergencyFile[]", item.file);
} else { } else {
formDataJson.append("measuresEmergencyFile[]", item.fileId); formDataJson.append("measuresEmergencyFile[]", item.fileId);
} }
}); });
this.measuresAdministrationFile.forEach(item => { this.measuresAdministrationFile.forEach((item) => {
if (item.file) { if (item.file) {
formDataJson.append("measuresAdministrationFile[]", item.file); formDataJson.append("measuresAdministrationFile[]", item.file);
} else { } else {
...@@ -1225,11 +1251,11 @@ export default { ...@@ -1225,11 +1251,11 @@ export default {
// }); // });
postFun(url, formDataJson) postFun(url, formDataJson)
.then(res => { .then((res) => {
this.$toast.clear(); this.$toast.clear();
this.$toast.success({ this.$toast.success({
message: "提交成功", message: "提交成功",
duration: 2000 duration: 2000,
}); });
this.loadingStatus = false; this.loadingStatus = false;
history.go(-1); history.go(-1);
...@@ -1248,10 +1274,10 @@ export default { ...@@ -1248,10 +1274,10 @@ export default {
message: "加载中...", message: "加载中...",
forbidClick: true, forbidClick: true,
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0,
}); });
getFormList("/riskMain/add") getFormList("/riskMain/add")
.then(res => { .then((res) => {
this.$toast.clear(); this.$toast.clear();
this.columnsProjectName = res.data.projectInformations; this.columnsProjectName = res.data.projectInformations;
this.columnsFactor = res.data.riskInventories; this.columnsFactor = res.data.riskInventories;
...@@ -1269,10 +1295,10 @@ export default { ...@@ -1269,10 +1295,10 @@ export default {
message: "加载中...", message: "加载中...",
forbidClick: true, forbidClick: true,
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0,
}); });
postriskConiCause(`/riskMain/edit/${this.taskId}`) postriskConiCause(`/riskMain/edit/${this.taskId}`)
.then(res => { .then((res) => {
console.log( console.log(
"%c [ res ]-332", "%c [ res ]-332",
"font-size:13px; background:pink; color:#bf2c9f;", "font-size:13px; background:pink; color:#bf2c9f;",
...@@ -1306,7 +1332,7 @@ export default { ...@@ -1306,7 +1332,7 @@ export default {
this.trouble = ""; this.trouble = "";
// 请求风险源 // 请求风险源
postHdSource(`/riskMain/showSourceName?factorType=${this.factor}`).then( postHdSource(`/riskMain/showSourceName?factorType=${this.factor}`).then(
res => { (res) => {
this.columnsSource = res.data; this.columnsSource = res.data;
} }
); );
...@@ -1329,7 +1355,7 @@ export default { ...@@ -1329,7 +1355,7 @@ export default {
if (this.setRank == "矩阵式定级") { if (this.setRank == "矩阵式定级") {
this.showSetRank = false; this.showSetRank = false;
this.$router.push({ this.$router.push({
name: "matrix-grad" name: "matrix-grad",
}); });
} }
}, },
...@@ -1361,7 +1387,7 @@ export default { ...@@ -1361,7 +1387,7 @@ export default {
// 请求主责人员 // 请求主责人员
let formdata = new FormData(); let formdata = new FormData();
formdata.append("organizationId", this.mainDutyDeptId); formdata.append("organizationId", this.mainDutyDeptId);
postHdPeople(`/riskMain/getUserList`, formdata).then(res => { postHdPeople(`/riskMain/getUserList`, formdata).then((res) => {
this.columnsMainDutyPeopLe = res.data; this.columnsMainDutyPeopLe = res.data;
}); });
}, },
...@@ -1376,7 +1402,7 @@ export default { ...@@ -1376,7 +1402,7 @@ export default {
if (!this.form.floorId) { if (!this.form.floorId) {
this.$toast({ this.$toast({
title: "提示", title: "提示",
message: "请选择所属楼层!" message: "请选择所属楼层!",
}); });
return false; return false;
} }
...@@ -1384,8 +1410,8 @@ export default { ...@@ -1384,8 +1410,8 @@ export default {
name: "riskView", name: "riskView",
params: { params: {
floorId: this.form.floorId, floorId: this.form.floorId,
isView: false isView: false,
} },
}); });
}, },
...@@ -1405,7 +1431,7 @@ export default { ...@@ -1405,7 +1431,7 @@ export default {
this.projectDirector = e[0].loginName; this.projectDirector = e[0].loginName;
this.projectDirectorName = e[0].userName; this.projectDirectorName = e[0].userName;
this.show = false; this.show = false;
} },
}, },
watch: { watch: {
"form.pointType"(val, old) { "form.pointType"(val, old) {
...@@ -1414,8 +1440,8 @@ export default { ...@@ -1414,8 +1440,8 @@ export default {
} else { } else {
this.form.specialEquipment = ""; this.form.specialEquipment = "";
} }
} },
} },
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
......
<!-- 导入固有风险模板详情 -->
<template>
<div>
<LHeader text="固有风险信息"></LHeader>
<van-form>
<van-field
required
clickable
name="name"
v-model="form.name"
label="危险源名称"
placeholder="请输入"
:rules="[{ required: true, message: '危险源名称不能为空' }]"
/>
<!-- 单选 -->
<van-field
readonly
required
clickable
name="pointType"
v-model="form.pointType"
label="风险点类型"
placeholder="请选择"
:rules="[{ required: true, message: '风险点类型不能为空' }]"
/>
<van-field
required
label="是否为特种设备"
v-show="form.pointType == '设备设施类'"
>
<template #input>
<span style="margin-right: 10px; color: red"></span>
<van-switch
v-model="form.specialEquipment"
size="20"
name="specialEquipment"
/>
<span style="margin-left: 10px; color: green"></span>
</template>
</van-field>
<!-- 多选 -->
<van-field
v-model="form.safetyWarningSigns"
readonly
required
name="safetyWarningSigns"
label="安全警示标志"
placeholder="请选择"
:rules="[{ required: true, message: '安全警示标志不能为空' }]"
/>
<van-field
v-model="form.factor"
readonly
required
name="factor"
label="风险因素"
placeholder="请选择"
:rules="[{ required: true, message: '风险因素不能为空' }]"
/>
<van-field
readonly
v-model="form.type"
required
name="type"
label="准事故类型"
placeholder="请选择"
:rules="[{ required: true, message: '准事故类型不能为空' }]"
/>
<van-field
readonly
v-model="form.level"
required
name="level"
label="风险等级"
placeholder="请选择"
:rules="[{ required: true, message: '风险等级不能为空' }]"
/>
<van-field
required
name="presenceLocation"
v-model="form.presenceLocation"
label="存在部位"
placeholder="请输入"
:rules="[{ required: true, message: '存在部位不能为空' }]"
/>
<div
style="
height: 1rem;
font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';
font-weight: 700;
line-height: 1rem;
"
>
<img
src="@/assets/accidentIcon/bookmark.svg"
alt=""
style="position: relative; top: 32%; transform: translateY(-50%)"
/>
应采取的管控措施
</div>
<van-field label="技术措施">
<template #input>
<van-field
v-model="form.measuresProject"
name="measuresProject"
label=""
type="textarea"
rows="3"
autosize
placeholder="请输入"
style="padding-left: 0; padding-top: 0"
/>
</template>
</van-field>
<van-field label="管理措施">
<template #input>
<van-field
v-model="form.measuresAdministration"
name="measuresAdministration"
label=""
type="textarea"
rows="3"
autosize
placeholder="请输入"
style="padding-left: 0; padding-top: 0"
/>
</template>
</van-field>
<van-field label="应急措施">
<template #input>
<van-field
v-model="form.measuresEmergency"
name="measuresEmergency"
label=""
type="textarea"
rows="3"
autosize
placeholder="请输入"
style="padding-left: 0; padding-top: 0"
/>
</template>
</van-field>
<van-field
v-model="form.measuresDeptName"
name="measuresDeptName"
label="管控责任单位 "
type="input"
rows="1"
autosize
placeholder="请输入"
list="measure-deptname"
@input="measuresDeptNameChange"
/>
<van-field
v-model="form.measuresUserName"
name="measuresUserName"
label="管控责任人 "
type="input"
rows="1"
autosize
placeholder="请输入"
list="measure-name"
@input="measuresUserNameChange"
/>
<van-field
v-model="form.measuresUserPhone"
name="measuresUserPhone"
label="管控责任人联系方式"
type="input"
rows="1"
autosize
placeholder="请输入"
maxlength="11"
/>
<div
style="
height: 1rem;
font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';
font-weight: 700;
line-height: 1rem;
"
>
<img
src="@/assets/accidentIcon/bookmark.svg"
alt=""
style="position: relative; top: 32%; transform: translateY(-50%)"
/>
重大危险源管理
</div>
<van-field name="majorHazardSource" label="是否为重大危险源">
<template #input>
<span style="margin-right: 10px; color: red"></span>
<van-switch v-model="form.majorHazardSource" size="20" />
<span style="margin-left: 10px; color: green"></span>
</template>
</van-field>
<van-field
:disabled="!form.majorHazardSource"
v-model="form.hazardSourceName"
:required="form.majorHazardSource"
name="hazardSourceName"
label="危险源名称 "
type="textarea"
rows="1"
autosize
placeholder="请输入"
:key="form.majorHazardSource + '123'"
:rules="
form.majorHazardSource
? [{ required: true, message: '危险源名称不能为空' }]
: []
"
/>
<van-field
label="重大危险源描述"
:disabled="!form.majorHazardSource"
:required="form.majorHazardSource"
>
<template #input>
<van-field
:disabled="!form.majorHazardSource"
v-model="form.majorHazardSourceDescription"
name="majorHazardSourceDescription"
type="textarea"
rows="3"
autosize
placeholder="请输入"
:key="form.majorHazardSource + '456'"
:rules="
form.majorHazardSource
? [{ required: true, message: '重大危险源描述不能为空' }]
: []
"
style="padding-left: 0; padding-top: 0"
/>
</template>
</van-field>
<van-field
:disabled="!form.majorHazardSource"
:required="form.majorHazardSource"
readonly
clickable
name="referenceBasis"
:value="form.referenceBasis == 'null' ? '' : form.referenceBasis"
label="判断依据"
placeholder="请选择"
:key="form.majorHazardSource + '789'"
:rules="
form.majorHazardSource
? [{ required: true, message: '判断依据不能为空' }]
: []
"
/>
<van-button round block type="info" @click="toImport">导入</van-button>
</van-form>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
import { getFun, postFun } from "@/service/table.js";
export default {
components: { LHeader },
data() {
return {
form: {},
};
},
mounted() {
this.postReturnEcho();
},
methods: {
// 请求详情数据
postReturnEcho() {
getFun(`/risk/plan/inherent/details/135`)
.then((res) => {
this.form = res.data;
})
.catch(() => {
this.$toast.clear();
});
},
toImport() {
this.$router.go(-2);
},
},
};
</script>
<style lang="scss" scoped></style>
<!-- 导入固有风险模板列表 -->
<template>
<div class="inherent-template">
<LHeader text="固有风险模板"></LHeader>
<div class="con-list">
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@click="touchstart(index, item)"
>
<div style="font-size: 0.45rem; padding: 5px 0">
{{ item.name }}
</div>
<van-row gutter="">
<van-col span="17">
<van-row gutter="">
<van-col span="9">发起时间:</van-col>
<van-col span="15">{{
timestampToTimes(item.createTime)
}}</van-col>
</van-row>
<van-row gutter="">
<van-col span="9">楼层:</van-col>
<van-col span="15">{{ item.floorName }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="9">房间:</van-col>
<van-col span="15">{{ item.roomName }}</van-col>
</van-row>
</van-col>
<!-- <van-col span="7" :style="{ color: item.state == 1 ? '#0069e5' : '#03b615' }">
{{ "●待审批" }}
</van-col> -->
</van-row>
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop="showIndex = null">
<van-button round type="info" @click="toImport(item)"
>导入</van-button
>
<van-button round type="primary" @click="toDetail(item)"
>详情</van-button
>
</div>
</van-overlay>
</van-cell-group>
<div
style="
width: 100%;
text-align: center;
font-size: 0.48rem;
position: fixed;
top: 30%;
"
v-if="messageList['length'] == 0"
>
暂无数据
</div>
</div>
</div>
</template>
<script>
import { getFun, postFun } from "@/service/table.js";
import LHeader from "@/components/header.vue";
import { timestampToTime, generateId } from "@/utils/format";
export default {
components: { LHeader },
data() {
return {
messageList: [],
showIndex: null,
item: null,
};
},
mounted() {
this.getList();
},
methods: {
toDetail(item) {
this.$router.push({
path: "/inherent/template/detail",
query: {
id: item.id,
},
});
},
toImport() {
this.$router.go(-1);
},
touchstart(index, item) {
this.showIndex = index;
this.item = item;
},
getList() {
getFun(`/risk/plan/inherent/list/137/1`)
.then((res) => {
this.messageList = res.data;
})
.catch(() => {
this.$toast.fail("加载失败,请稍后再试");
});
},
timestampToTimes(time) {
return timestampToTime(new Date(time), "DT2", true);
},
},
};
</script>
<style lang="less" scoped>
.inherent-template {
.con-list {
padding: 0;
min-height: 10rem;
background-color: #f0f1f5;
.van-cell-group--inset {
margin: 0;
margin-bottom: 0.26667rem;
padding: 0.25rem;
font-size: 0.4rem;
position: relative;
border-radius: 4%;
box-shadow: 0px 0px 10px 2px #f3f3f3;
width: 90%;
margin: 0.4rem auto;
.van-row {
font-size: 0.4rem;
line-height: 0.8rem;
margin-bottom: 0;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
}
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment