Commit 73570bae authored by p-wanping.song's avatar p-wanping.song

8月29日工作清单

parent e7e8d28a
......@@ -12,7 +12,9 @@
<div>
<van-sticky>
<header class="header">
<van-icon @click="to" name="arrow-left" class="iconColorLeft" />
<div class="iconColorLeft">
<van-icon @click="to" name="arrow-left" />
</div>
<span>{{ text }}</span>
<!-- <van-icon name="bars" class="iconColorRight" /> -->
<div class="iconColorRight">
......@@ -60,11 +62,13 @@ export default {
}
.iconColorLeft {
color: white;
transform: scale(2);
float: left;
position: relative;
top: 40%;
position: absolute;
top: 0%;
left: 5%;
.van-icon {
transform: scale(2);
vertical-align: middle;
}
}
.header span {
color: white;
......@@ -74,10 +78,10 @@ export default {
}
.header .iconColorRight {
color: white;
float: right;
position: relative;
position: absolute;
right: 5%;
font-size: 13px;
top: 0;
font-size: 12px;
vertical-align: middle;
}
</style>
......@@ -9,11 +9,12 @@ export function getFun(url, params) {
});
}
/* post请求 */
export function postFun(url, data) {
export function postFun(url, data, rest) {
return request({
url: url,
method: "post",
data
data,
...rest
});
}
/* delete请求 */
......
......@@ -12,6 +12,7 @@ export default new Vuex.Store({
actions,
modules: {},
getters: {
present: state => key => state.present[key]
present: state => key => state.present[key],
inherentTemp: state => state.inherentTemplate,
}
});
......@@ -36,9 +36,8 @@ export default {
state.assessModel.result = data;
},
// 固有风险模板
SET_INHERENT_TEMPLATE(state, data) {
state.inherentTemplate.id = data;
state.inherentTemplate = data;
}
};
......@@ -11,9 +11,8 @@ export default {
level: "",
score: "",
},
},
// 固有风险模板
inherentTemplate: {
id: ''
}
},
};
......@@ -3,7 +3,7 @@ import router from '../router'
import { Toast } from 'vant';
import { Notify } from 'vant';
import { Dialog } from 'vant';
import { getToken ,removeToken} from '@/utils/auth' // get token from cookie
import { getToken, removeToken } from '@/utils/auth' // get token from cookie
const service = axios.create({
// baseURL: '/aqpt/app-api', //前缀路径
baseURL: '/app-api', //前缀路径
......@@ -19,16 +19,16 @@ service.interceptors.request.use(config => {
config.headers['Authorization'] = getToken()
}
return config
},error => {
}, error => {
return Promise.reject(error)
})
service.interceptors.response.use(response => {
Toast.clear(); // 关闭之前的弹出信息
const code = response.status//获取请求响应码
const res = response.data//获取请求返回数据
if(code == 200) {//请求响应码200 代表已经请求到接口
if (res.code !== 0 && res.code !== 200 && res.code !== 402 && res.code !== 403&&res.code !== undefined) {
if(res.code === 500 && res.msg == "运行时异常:token已过期,请重新登录"){
if (code == 200) {//请求响应码200 代表已经请求到接口
if (res.code !== 0 && res.code !== 200 && res.code !== 402 && res.code !== 403 && res.code !== undefined) {
if (res.code === 500 && res.msg == "运行时异常:token已过期,请重新登录") {
Dialog.alert({
title: '提示',
message: res.msg,
......@@ -37,7 +37,7 @@ service.interceptors.response.use(response => {
removeToken()
location.reload()
});
} else if(res.code === 401 && res.errorMessage == "图片类型错误"){
} else if (res.code === 401 && res.errorMessage == "图片类型错误") {
Dialog.alert({
title: '提示',
message: res.errorMessage,
......@@ -45,37 +45,36 @@ service.interceptors.response.use(response => {
}).then(() => {
router.go(-1);
});
}else if(res.code === 401){
} else if (res.code === 401) {
Dialog.alert({
title: '提示',
message: '登录过期,请重新登录!',
theme: 'round-button',
}).then(() => {
removeToken()
location.href="/login"
location.href = "/login"
});
} else{
} else {
Toast.fail({
title: '提示',
forbidClick: true,
message: res.msg ||'数据异常请稍后再试',
message: res.msg || '数据异常请稍后再试',
})
}
return Promise.reject(res);
} else {
return res;
}
}else{
} else {
Toast.fail({
title: '提示',
forbidClick: true,
message: '接口请求失败',
})
}
},err=>{
}, err => {
Toast.fail('接口请求失败');
return Promise.reject(err)
})
export default service
})
export default service
This diff is collapsed.
......@@ -7,23 +7,34 @@
</LHeader>
<van-form
ref="signForm"
label-width="4em"
label-width="4.5em"
validate-trigger="onSubmit"
:colon="true"
>
<van-field
readonly
name="projectName"
:value="form.projectName"
name="userName"
:value="userName"
label="用户名"
placeholder="请输入"
:rules="[{ required: true, message: '用户名不能为空' }]"
/>
<van-field
readonly
name="userName"
label="签定时间"
placeholder="请输入"
key="nowTime"
:value="form.signTime"
>
<!-- <template #input>
<div>{{ form.signTime }}</div>
</template> -->
</van-field>
<van-field
required
name="remark"
:value="form.remark"
v-model="form.remark"
label="备注"
placeholder="请输入"
type="textarea"
......@@ -33,22 +44,22 @@
<van-field
readonly
required
name="photo"
name="file"
label="照片"
:rules="[{ required: true, message: '照片不能为空' }]"
>
<template #input>
<van-uploader
v-model="form.photo"
:after-read="afterRead"
:max-count="1"
>
<van-uploader v-model="form.file" :after-read="afterRead">
</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>
<van-button round block type="info" @click="toSign(true)"
>签到</van-button
>
<van-button round block type="warning" @click="toSign(false)"
>签退</van-button
>
</div>
</van-form>
</div>
......@@ -56,23 +67,91 @@
<script>
import LHeader from "@/components/header.vue";
import { getUserInfo } from "@/utils/userInfo";
import { getFun, postFun } from "@/service/table.js";
export default {
components: {
LHeader,
},
data() {
return {
timer: "",
userName: "用户名",
form: {
photo: [],
signTime: this.getTime(),
file: [],
remark: "",
userId: "",
},
};
},
mounted() {
this.getRealTime();
this.toGetUserInfo();
},
beforeDestroy() {
clearInterval(this.timer);
},
methods: {
afterRead(file) {
this.form.photo = file.file;
toGetUserInfo() {
this.userName = getUserInfo().userName;
this.form.userId = getUserInfo().userId;
},
// 获取当前时间
getTime() {
let date = new Date();
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate();
let hours = date.getHours();
let minutes = date.getMinutes();
let seconds = date.getSeconds();
let time =
year +
"-" +
this.formatTime(month) +
"-" +
this.formatTime(day) +
" " +
this.formatTime(hours) +
":" +
this.formatTime(minutes) +
":" +
this.formatTime(seconds);
return time;
},
// 时间小于10添加0
formatTime(time) {
if (time < 10) {
return "0" + time;
}
return time;
},
// 获取实时时间并更新
getRealTime() {
this.timer = setInterval(() => {
this.form.signTime = this.getTime();
}, 1000);
},
toSign(type) {
this.$refs.signForm.validate();
this.$refs.signForm.validate().then(() => {
const formData = new FormData();
this.form.file.forEach((item) => {
formData.append("file[]", item.file);
});
formData.append("userId", this.form.userId);
formData.append("type", type);
formData.append("remark", this.form.remark);
postFun("/risk/plan/sign", formData).then((res) => {
if (res.code == 200) {
this.$message({
message: "签到成功",
type: "success",
});
}
});
});
},
},
};
......
......@@ -2,20 +2,44 @@
<div>
<LHeader text="签到记录"> </LHeader>
<div>
<van-cell title="签到" value="2023/08/30 ">
<van-cell
v-for="item in list"
:key="item.id"
:title="item.type ? '签到' : '签退'"
:value="item.createTime"
>
<template #label>
<div>备注:123</div>
<div>备注:{{ item.remark }}</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 } };
import { getFun } from "@/service/table.js";
export default {
components: { LHeader },
data() {
return {
list: [],
};
},
mounted() {
this.getList();
},
methods: {
getList() {
getFun("/risk/plan/sign/list").then((res) => {
if (res.code == 200) {
this.list = res.rows;
}
});
},
},
};
</script>
<style lang="scss" scoped></style>
This diff is collapsed.
......@@ -767,8 +767,11 @@ export default {
}
next();
},
destroyed() {
this.$store.commit("SET_INHERENT_TEMPLATE", {});
},
beforeRouteLeave(to, from, next) {
if (to.name != "riskInherent") {
if (to.name == "resultPage") {
sessionStorage.setItem("inherenForm", JSON.stringify(this.form));
}
next();
......@@ -882,7 +885,10 @@ export default {
if (sessionStorage.getItem("inherenForm") != "") {
this.form = JSON.parse(sessionStorage.getItem("inherenForm"));
this.form.level = sessionStorage.getItem("level");
} else if (this.$store.state.inherentTemplate) {
this.form = { ...this.form, ...this.$store.state.inherentTemplate };
}
this.getFloor();
},
......
......@@ -4,7 +4,7 @@
<van-sticky offset-top="0">
<LHeader :text="text"></LHeader>
</van-sticky>
<div style="margin-bottom: 1.5rem;">
<div style="margin-bottom: 1.5rem">
<van-tabs v-model="active" @change="tabList" color="#2980f7" animated>
<van-tab :title="buildingName">
<van-dropdown-menu z-index="1000">
......@@ -34,7 +34,7 @@
:key="index"
@click="touchstart(index, item)"
>
<div style="font-size: 0.45rem;padding: 5px 0;">
<div style="font-size: 0.45rem; padding: 5px 0">
{{ item.name }}
</div>
<van-row gutter="">
......@@ -90,7 +90,8 @@
</van-tabs>
</div>
<div
style="display: flex;
style="
display: flex;
justify-content: space-around;
background-color: #fff;
border-top: 1px solid #e3e3e3;
......@@ -98,27 +99,28 @@
width: 100%;
text-align: center;
position: fixed;
bottom: 0;"
bottom: 0;
"
>
<div
@click="copyFloor"
style="color: #4bced0;font-size: 14px;font-weight: 600;"
style="color: #4bced0; font-size: 14px; font-weight: 600"
>
<div style="font-size: 22px;"><van-icon name="coupon-o" /></div>
<div style="font-size: 22px"><van-icon name="coupon-o" /></div>
<div>复制楼层</div>
</div>
<div
@click="performTasks"
style="color: #4bced0;font-size: 14px;font-weight: 600;"
style="color: #4bced0; font-size: 14px; font-weight: 600"
>
<div style="font-size: 22px;"><van-icon name="plus" /></div>
<div style="font-size: 22px"><van-icon name="plus" /></div>
<div>新增固有风险</div>
</div>
<div
@click="endTasks"
style="color: #D9001B;font-size: 14px;font-weight: 600;"
style="color: #d9001b; font-size: 14px; font-weight: 600"
>
<div style="font-size: 22px;"><van-icon name="cross" /></div>
<div style="font-size: 22px"><van-icon name="cross" /></div>
<div>任务执行结束</div>
</div>
</div>
......@@ -133,7 +135,7 @@ import { timestampToTime, generateId } from "@/utils/format";
export default {
name: "risk-confirme",
components: {
LHeader
LHeader,
},
data() {
return {
......@@ -156,7 +158,7 @@ export default {
active: 1,
form: {},
tabs: [],
floorListData: []
floorListData: [],
};
},
created() {
......@@ -172,11 +174,11 @@ export default {
delInherent(item) {
Dialog.confirm({
title: "删除固有风险",
message: "是否确认删除?"
message: "是否确认删除?",
})
.then(() => {
// on confirm
getFun(`/risk/plan/inherent/delete/${item.id}`).then(res => {
getFun(`/risk/plan/inherent/delete/${item.id}`).then((res) => {
this.$toast.success(res.msg);
this.riskList(
this.planId,
......@@ -199,10 +201,10 @@ export default {
},
changeData(arr) {
var arrList = [];
arr.forEach(item => {
arr.forEach((item) => {
arrList.push({
text: item.name,
value: item.id || item.name
value: item.id || item.name,
});
});
return arrList;
......@@ -219,30 +221,30 @@ export default {
id: this.active,
planId: this.planId,
buildingId: this.buildingId,
buildingName: this.buildingName
}
buildingName: this.buildingName,
},
});
},
// 复制楼层
copyFloor(){
copyFloor() {
this.$router.push({
name:'copyFloor',
query:{
planId:this.planId,
buildingId:this.buildingId
}
})
name: "copyFloor",
query: {
planId: this.planId,
buildingId: this.buildingId,
},
});
},
//任务执行结束
endTasks() {
//toDo
Dialog.confirm({
title: "任务执行结束",
message: "是否任务执行结束"
message: "是否任务执行结束",
})
.then(() => {
postFun(`/risk/plan/submit/${this.planId}/${this.buildingId}`).then(
res => {
(res) => {
// Dialog.alert({
// title: '任务执行结束',
// message: res.msg,
......@@ -250,7 +252,7 @@ export default {
// resolve(res.data);
this.$toast.success(res.msg);
this.$router.push({
name: "riskAssess"
name: "riskAssess",
});
// });
}
......@@ -264,16 +266,15 @@ export default {
this.$router.push({
name: "riskAdd",
params: {
title: "新增"
}
title: "新增",
},
});
},
floorList(id) {
return new Promise((resolve, reject) => {
getFun(`/risk/plan/floor/list/${id}`)
.then(res => {
console.log(res.data);
.then((res) => {
res.data = [{ name: "全部" }, ...res.data];
this.floorListData = res.data;
this.changeBuild(res.data[0].name);
......@@ -289,7 +290,7 @@ export default {
roomList(id) {
return new Promise((resolve, reject) => {
getFun(`/risk/plan/room/list/${id}`)
.then(res => {
.then((res) => {
if (!res.data) res.data = [];
res.data = [{ id: "-1", name: "全部" }, ...res.data];
this.option2 = this.changeData(res.data);
......@@ -313,13 +314,13 @@ export default {
if (floorId || roomId) {
paramsJson = {
floorId: floorId == -1 ? null : floorId,
roomId: roomId == -1 ? null : roomId
roomId: roomId == -1 ? null : roomId,
};
} else {
paramsJson = {};
}
getFun(`/risk/plan/inherent/list/${planId}/${buildingId}`, paramsJson)
.then(res => {
.then((res) => {
this.messageList = res.data;
resolve(res.data);
})
......@@ -333,7 +334,7 @@ export default {
message: "加载中...",
forbidClick: true,
loadingType: "spinner",
duration: 0
duration: 0,
});
let floor = this.floorList(this.buildingId);
let risk = this.riskList(
......@@ -350,8 +351,9 @@ export default {
},
changeBuild() {
if (this.value0) {
let arr = this.floorListData.filter(item => item.name == this.value0)[0]
.children;
let arr = this.floorListData.filter(
(item) => item.name == this.value0
)[0].children;
console.log(arr);
if (!arr) arr = [];
arr = [{ id: "-1", name: "全部" }, ...arr];
......@@ -399,8 +401,8 @@ export default {
inherentId: data.businessId || data.id,
planId: this.planId,
buildingId: this.buildingId,
buildingName: this.buildingName
}
buildingName: this.buildingName,
},
});
this.showIndex = null;
},
......@@ -409,12 +411,12 @@ export default {
this.$router.push({
name: "risk-affirm",
params: {
data: data
}
data: data,
},
});
this.showIndex = null;
}
}
},
},
};
</script>
<style lang="less" scoped>
......
......@@ -4,8 +4,24 @@
<div>
<LHeader text="固有风险信息"></LHeader>
<van-form>
<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
required
readonly
clickable
name="name"
v-model="form.name"
......@@ -32,6 +48,7 @@
<template #input>
<span style="margin-right: 10px; color: red"></span>
<van-switch
disabled
v-model="form.specialEquipment"
size="20"
name="specialEquipment"
......@@ -68,24 +85,6 @@
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;
......@@ -104,6 +103,7 @@
<van-field label="技术措施">
<template #input>
<van-field
readonly
v-model="form.measuresProject"
name="measuresProject"
label=""
......@@ -118,6 +118,7 @@
<van-field label="管理措施">
<template #input>
<van-field
readonly
v-model="form.measuresAdministration"
name="measuresAdministration"
label=""
......@@ -132,6 +133,7 @@
<van-field label="应急措施">
<template #input>
<van-field
readonly
v-model="form.measuresEmergency"
name="measuresEmergency"
label=""
......@@ -143,38 +145,6 @@
/>
</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="
......@@ -195,16 +165,16 @@
<van-field name="majorHazardSource" label="是否为重大危险源">
<template #input>
<span style="margin-right: 10px; color: red"></span>
<van-switch v-model="form.majorHazardSource" size="20" />
<van-switch disabled 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="危险源名称 "
readonly
type="textarea"
rows="1"
autosize
......@@ -216,14 +186,10 @@
: []
"
/>
<van-field
label="重大危险源描述"
:disabled="!form.majorHazardSource"
:required="form.majorHazardSource"
>
<van-field label="重大危险源描述" :required="form.majorHazardSource">
<template #input>
<van-field
:disabled="!form.majorHazardSource"
readonly
v-model="form.majorHazardSourceDescription"
name="majorHazardSourceDescription"
type="textarea"
......@@ -241,7 +207,6 @@
</template>
</van-field>
<van-field
:disabled="!form.majorHazardSource"
:required="form.majorHazardSource"
readonly
clickable
......@@ -256,7 +221,9 @@
: []
"
/>
<div class="import-btn">
<van-button round block type="info" @click="toImport">导入</van-button>
</div>
</van-form>
</div>
</template>
......@@ -272,7 +239,7 @@ export default {
};
},
mounted() {
this.postReturnEcho();
this.form = this.$store.state.inherentTemplate;
},
methods: {
// 请求详情数据
......@@ -292,4 +259,8 @@ export default {
};
</script>
<style lang="scss" scoped></style>
<style lang="less" scoped>
.import-btn {
padding: 20px;
}
</style>
......@@ -2,7 +2,14 @@
<template>
<div class="inherent-template">
<LHeader text="固有风险模板"></LHeader>
<div class="con-list">
<van-pull-refresh v-model="list.refreshing" @refresh="onRefresh">
<van-list
v-model="list.loading"
:finished="list.finished"
finished-text="没有更多了"
@load="getList"
class="con-list"
>
<van-cell-group
inset
v-for="(item, index) in messageList"
......@@ -15,23 +22,14 @@
<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-col span="10">风险点类型:</van-col>
<van-col span="14">{{ item.pointType }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="9">房间</van-col>
<van-col span="15">{{ item.roomName }}</van-col>
<van-col span="9">风险因素</van-col>
<van-col span="15">{{ item.factor }}</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">
......@@ -56,7 +54,8 @@
>
暂无数据
</div>
</div>
</van-list>
</van-pull-refresh>
</div>
</template>
......@@ -71,13 +70,21 @@ export default {
messageList: [],
showIndex: null,
item: null,
};
list: {
refreshing: false,
loading: false,
finished: false,
},
page: {
pageNum: 0,
total: 0,
},
mounted() {
this.getList();
};
},
mounted() {},
methods: {
toDetail(item) {
this.$store.commit("SET_INHERENT_TEMPLATE", item);
this.$router.push({
path: "/inherent/template/detail",
query: {
......@@ -85,22 +92,46 @@ export default {
},
});
},
toImport() {
toImport(item) {
this.$store.commit("SET_INHERENT_TEMPLATE", item);
this.$router.go(-1);
},
touchstart(index, item) {
this.showIndex = index;
this.item = item;
},
getList() {
getFun(`/risk/plan/inherent/list/137/1`)
getList(isFresh = false) {
if (isFresh) {
this.page.pageNum = 0;
this.page.total = 0;
this.messageList = [];
}
this.page.pageNum++;
getFun(`/risk/plan/inherent/template/list`, {
pageNum: this.page.pageNum,
pageSize: 10,
})
.then((res) => {
this.messageList = res.data;
setTimeout(() => {
this.list.loading = false;
this.list.refreshing = false;
this.messageList = this.messageList.concat(res.rows);
if (this.page.total == 0) {
this.page.total = res.total;
}
if (this.page.total && this.messageList >= this.page.total) {
this.list.finished = true;
return;
}
}, 300);
})
.catch(() => {
this.$toast.fail("加载失败,请稍后再试");
});
},
onRefresh() {
this.getList(true);
},
timestampToTimes(time) {
return timestampToTime(new Date(time), "DT2", true);
},
......
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