Commit 09980722 authored by 王李辉's avatar 王李辉

隐患模块前端样式

parent 3400f5dc
......@@ -15,12 +15,12 @@ import store from './store'
import './permission'
import Cookies from 'js-cookie'
import { prefix } from '@/common/js/utils'
import { Divider, Popup, Overlay, Loading, Dialog, ContactCard, Form, AddressEdit, AddressList, Field, CellGroup, Cell, SwipeCell, Icon, Stepper, Card, Checkbox, CheckboxGroup, Button, Swipe, SwipeItem, PullRefresh, List, Tab, Tabs, GoodsAction, GoodsActionIcon, GoodsActionButton, SubmitBar, Toast ,Search,Picker,Uploader,Notify ,ContactList,Calendar,Radio,RadioGroup,Tag,Tabbar,TabbarItem,Sticky, Grid, GridItem,Skeleton,Col,Row, Image as VanImage, Badge,NoticeBar } from 'vant'
import { Divider, Popup, Overlay, Loading, Dialog, ContactCard, Form, AddressEdit, AddressList, Field, CellGroup, Cell, SwipeCell, Icon, Stepper, Card, Checkbox, CheckboxGroup, Button, Swipe, SwipeItem, PullRefresh, List, Tab, Tabs, GoodsAction, GoodsActionIcon, GoodsActionButton, SubmitBar, Toast ,Search,Picker,Uploader,Notify ,ContactList,Calendar,Radio,RadioGroup,Tag,Tabbar,TabbarItem,Sticky, Grid, GridItem,Skeleton,Col,Row, Image as VanImage, Badge,NoticeBar,DatetimePicker } from 'vant'
import 'lib-flexible/flexible'
Vue.use(Divider).use(Popup).use(Overlay).use(Loading).use(Dialog).use(Toast).use(ContactCard).use(Form).use(AddressEdit).use(AddressList).use(Field).use(CellGroup).use(Cell).use(SwipeCell).use(Icon).use(Stepper).use(Card).use(Button).use(Swipe).use(SwipeItem).use(PullRefresh).use(List).use(Tab).use(Tabs).use(GoodsAction).use(GoodsActionIcon).use(GoodsActionButton).use(SubmitBar).use(Checkbox).use(CheckboxGroup).use(Search).use(Picker).use(Uploader).use(Notify)
.use(ContactList).use(Calendar).use(Radio).use(RadioGroup).use(Tag).use(Tabbar).use(TabbarItem).use(Sticky)
.use(Grid).use(GridItem).use(Skeleton).use(Col).use(Row).use(VanImage).use(Badge).use(NoticeBar)
.use(Grid).use(GridItem).use(Skeleton).use(Col).use(Row).use(VanImage).use(Badge).use(NoticeBar).use(DatetimePicker)
Vue.config.productionTip = false
new Vue({
router,
......
......@@ -253,7 +253,6 @@ const routes = [
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/my'),
},
// 我的地盘页面
{
path: '/danger',
name: 'danger',
......@@ -261,9 +260,73 @@ const routes = [
title:'隐患上报',
index: 1
},
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/danger'),
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/danger/addDanger'),
},
{
path: '/add-danger',
name: 'add-danger',
meta: {
title:'新增隐患',
index: 1
},
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/danger/addDanger/addDanger'),
},
{
path: '/confirm-danger',
name: 'confirm-danger',
meta: {
title:'隐患确认',
index: 1
},
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/danger/confirmDanger'),
},
{
path: '/affirm-danger',
name: 'affirm-danger',
meta: {
title:'隐患确认表单',
index: 1
},
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/danger/confirmDanger/confirmDanger'),
},
{
path: '/change-danger',
name: 'change-danger',
meta: {
title:'隐患整改',
index: 1
},
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/danger/changeDanger'),
},
{
path: '/change-info',
name: 'change-info',
meta: {
title:'隐患整改表单',
index: 1
},
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/danger/changeDanger/changeInfo'),
},
{
path: '/review-danger',
name: 'review-danger',
meta: {
title:'隐患复查',
index: 1
},
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/danger/reviewDanger'),
},
{
path: '/review-add',
name: 'review-add',
meta: {
title:'隐患复查新增',
index: 1
},
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/danger/reviewDanger/reviewAdd'),
},
]
const router = new VueRouter({
......
<template>
<div>
<LHeader :text="text"></LHeader>
<van-form
@submit="onSubmit"
:show-error-message="false"
:scroll-to-error="true"
>
<van-field
v-model="gongcheng"
name="所属工程名称"
label="所属工程名称"
placeholder="请选择"
:rules="[{ required: true, message: '所属工程名称不能为空' }]"
/>
<van-field
v-model="fanwei"
name="适用范围"
label="适用范围"
placeholder="请选择"
:rules="[{ required: true, message: '使用范围不能为空' }]"
/>
<van-field
v-model="yinhuanleixing"
name="隐患类型"
label="隐患类型"
placeholder="请选择"
:rules="[{ required: true, message: '隐患类型不能为空' }]"
/>
<van-field
v-model="yinhuanxiangmu"
name="隐患项目名称"
label="隐患项目名称"
placeholder="请选择"
:rules="[{ required: true, message: '隐患项目名称不能为空' }]"
/>
<van-field
v-model="yinhuanbianhao"
name="隐患项目编号"
label="隐患项目编号"
placeholder="请选择"
:rules="[{ required: true, message: '隐患项目编号不能为空' }]"
/>
<van-field
v-model="yinhuanjibie"
name="隐患级别"
label="隐患级别"
placeholder="请选择"
:rules="[{ required: true, message: '隐患级别不能为空' }]"
/>
<van-field
readonly
clickable
name="隐患发现时间"
:value="timeval"
label="隐患发现时间"
placeholder="点击选择日期"
@click="showCalendar = true"
:rules="[{ required: true, message: '隐患发现时间不能为空' }]"
/>
<van-popup v-model="showCalendar" position="bottom">
<van-datetime-picker
type="datetime"
@confirm="onConfirmrili"
@cancel="showCalendar = false"
/>
</van-popup>
<van-field
readonly
clickable
name="风险源"
:value="fengxiangval"
label="风险源"
placeholder="请选择"
@click="showPicker = true"
:rules="[{ required: true, message: '风险源不能为空' }]"
/>
<van-popup v-model="showPicker" position="bottom">
<van-picker
show-toolbar
:columns="columns"
@confirm="onConfirmfengxian"
@cancel="showPicker = false"
/>
</van-popup>
<van-field
v-model="fenxianmiaosu"
rows="1"
autosize
label=" "
type="textarea"
placeholder="请输入"
/>
<van-field
v-model="jianchabuwei"
name="检查部位"
label="检查部位"
placeholder="请输入"
:rules="[{ required: true, message: '检查部位不能为空' }]"
/>
<van-field
v-model="yinhuanmiaosu"
rows="3"
label="隐患描述"
name="隐患描述"
type="textarea"
placeholder="请输入"
:rules="[{ required: true, message: '隐患描述不能为空' }]"
/>
<van-field
name="uploader"
label="隐患照片"
:rules="[{ required: true, message: '请上传图像' }]"
>
<template #input>
<van-uploader v-model="uploaderImg" />
</template>
</van-field>
<van-field name="uploader2" label="隐患视频">
<template #input>
<van-uploader v-model="uploaderVideo" />
</template>
</van-field>
<van-field
readonly
clickable
name="隐患到期时间"
:value="daoqitimeval"
label="隐患到期时间"
placeholder="点击选择日期"
@click="daoqishowCalendar = true"
/>
<van-popup v-model="daoqishowCalendar" position="bottom">
<van-datetime-picker
type="datetime"
@confirm="onConfirmdaoqi"
@cancel="daoqishowCalendar = false"
/>
</van-popup>
<van-field
readonly
clickable
name="隐患整改人"
:value="zhenggairen"
label="隐患整改人"
placeholder="请选择"
@click="showPickerzhenggai = true"
/>
<van-popup v-model="showPickerzhenggai" position="bottom">
<van-picker
show-toolbar
:columns="columnszhenggai"
@confirm="onConfirmzhegngai"
@cancel="showPickerzhenggai = false"
/>
</van-popup>
<div style="margin: 16px 16px 0">
<van-button round block type="info" native-type="submit"
>保存</van-button
>
</div>
</van-form>
<div style="margin:10px 16px 0px;padding-bottom:16px">
<van-button round block type="warning" @click.native="cancel"
>取消</van-button
>
</div>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
export default {
components: {
LHeader
},
data() {
return {
text: "新增隐患",
gongcheng: "",
fanwei: "",
yinhuanleixing: "",
yinhuanxiangmu: "",
yinhuanbianhao: "",
yinhuanjibie: "",
yinhuanfaxiantime: "",
timeval: "",
showCalendar: false,
fengxiangval: "",
columns: ["人的因素", "物的因素", "环境因素", "管理因素"],
showPicker: false,
fenxianmiaosu: "",
jianchabuwei: "",
yinhuanmiaosu: "",
uploaderImg: [], //图像上传
uploaderVideo: [], //视频上传
daoqitimeval: "",
daoqishowCalendar: false,
zhenggairen: "",
showPickerzhenggai: false,
columnszhenggai: ["张三", "李四", "王五"]
};
},
mounted() {},
methods: {
onSubmit(values) {
console.log("submit", values);
},
onConfirmrili(date) {
this.timeval = this.format(date)
this.showCalendar = false;
},
onConfirmdaoqi(date) {
this.daoqitimeval = this.format(date)
// this.daoqitimeval = `${date.getMonth() + 1}/${date.getDate()}`;
this.daoqishowCalendar = false;
},
onConfirmfengxian(value) {
this.fengxiangval = value;
this.showPicker = false;
},
onConfirmzhegngai(value) {
this.zhenggairen = value;
this.showPickerzhenggai = false;
},
cancel() {
this.$router.go(-1);
},
format(value){
let myDate
if (value.getMinutes() <= 9) {
myDate = value.getFullYear() + '-' + (value.getMonth() + 1) + '-' + value.getDate() + ' ' + value.getHours() + ':' + '0' + value.getMinutes();
} else {
myDate = value.getFullYear() + '-' + (value.getMonth() + 1) + '-' + value.getDate() + ' ' + value.getHours() + ':' + value.getMinutes();
};
return myDate
}
}
};
</script>
<style scoped>
/* @import url(); 引入css类 */
</style>
<template>
<div>
<LHeader :text="text"></LHeader>
<van-search v-model="searchValue" placeholder="搜索" @search="onSearch" />
<van-tabs
v-model="active"
color="#247df7"
title-inactive-colo="#d0d1d1"
title-active-color="#000000"
>
<van-tab title="待提交">
<wait-submit></wait-submit>
</van-tab>
<van-tab title="已提交">已提交</van-tab>
<van-tab title="已退回">已退回</van-tab>
</van-tabs>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
import WaitSubmit from "./waitSubmit.vue";
export default {
components: {
LHeader: LHeader,
WaitSubmit
},
data() {
return {
text: "隐患上报",
active: "1",
searchValue: ""
};
},
mounted() {},
methods: {
onSearch(val) {
console.log(val);
}
}
};
</script>
<style scoped>
/* @import url(); 引入css类 */
</style>
<template>
<div>
<!-- 内容列表 -->
<div class="con-list">
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@click="read(item)"
@touchstart="touchstart(index, item)"
@touchend.prevent="touchend(index)"
>
<div class="messgae-title">{{ item.noticeTitle }}</div>
<div class="message-content">
{{ item.upcomingUserName }},您好!您有一条来自{{
item.createUserName
}}{{ item.noticeTitle }}相关的待处理任务...
</div>
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop>
<van-button round type="primary" @touchstart="goDetail(item)"
>详情</van-button
>
<van-button round type="info" @touchstart="goDelete(item)"
>修改</van-button
>
</div>
</van-overlay>
</van-cell-group>
</div>
<!-- 加号 -->
<div class="add" @click="goAdd">+</div>
</div>
</template>
<script>
export default {
data() {
return {
messageList: [
{
noticeTitle: "隐患上报消息",
upcomingUserName: "张某某",
createUserName: "李某某",
noticeTitle: "重要任务"
}
],
Loop: "", // 定时器
showIndex: null // 是否显示遮罩层
};
},
mounted() {},
methods: {
goAdd(){
this.$router.push('/add-danger');
},
read(){},
touchstart(index, item) {
clearTimeout(this.Loop); //再次清空延时器,防止重复注册定时器
if(this.showIndex != null){
this.showIndex = null;
return
}
this.Loop = setTimeout(() => {
this.showIndex = index
},300); // 这里的1000是指需要长按的时间,单位为ms
},
touchend(index) {
// 这个方法主要是用来将每次手指移出之后将计时器清零
clearInterval(this.Loop);
},
// 详情
goDetail(data){
console.log(data);
this.showIndex = null
},
// 删除
goDelete(data){
console.log(data);
this.showIndex = null
},
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
// 内容
.con-list {
padding: 10px 10px 0;
background-color: #f0f1f5;
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.message-content {
margin-top: 10px;
}
.van-overlay{
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
}
.add{
width: 1.333333rem;
height: 1.333333rem;
color: white;
font-weight: bold;
font-size: 1.48rem;
background-color: #02a7f0;
text-align: center;
line-height: 1.333333rem;
border-radius: 50%;
position: fixed;
right: .533333rem;
bottom: 1.866667rem;
}
</style>
<template>
<div>
<!-- 内容列表 -->
<div class="con-list">
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@click="read(item)"
@touchstart="touchstart(index, item)"
@touchend.prevent="touchend(index)"
>
<div class="messgae-title">{{ item.noticeTitle }}</div>
<div class="message-content">
{{ item.upcomingUserName }},您好!您有一条来自{{
item.createUserName
}}{{ item.noticeTitle }}相关的待处理任务...
</div>
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop>
<van-button round type="primary" @touchstart="goDetail(item)"
>详情</van-button
>
<van-button round type="info" @touchstart="goConfirm(item)"
>整改</van-button
>
</div>
</van-overlay>
</van-cell-group>
</div>
</div>
</template>
<script>
export default {
data() {
return {
messageList: [
{
noticeTitle: "隐患上报消息",
upcomingUserName: "张某某",
createUserName: "李某某",
noticeTitle: "重要任务"
}
],
Loop: "", // 定时器
showIndex: null // 是否显示遮罩层
};
},
mounted() {},
methods: {
read() {},
touchstart(index, item) {
clearTimeout(this.Loop); //再次清空延时器,防止重复注册定时器
if(this.showIndex != null){
this.showIndex = null;
return
}
this.Loop = setTimeout(() => {
this.showIndex = index;
}, 300); // 这里的1000是指需要长按的时间,单位为ms
},
touchend(index) {
// 这个方法主要是用来将每次手指移出之后将计时器清零
clearInterval(this.Loop);
},
// 详情
goDetail(data) {
console.log(data);
this.showIndex = null;
},
// 确认
goConfirm(data) {
console.log(data);
this.$router.push("/change-info");
this.showIndex = null;
}
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.con-list {
padding: 10px 10px 0;
background-color: #f0f1f5;
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.message-content {
margin-top: 10px;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
}
</style>
<template>
<div>
<LHeader :text="text"></LHeader>
<van-form
@submit="onSubmit"
:show-error-message="false"
:scroll-to-error="true"
>
<van-field
v-model="value"
label="隐患整改描述"
name="隐患整改描述"
rows="3"
type="textarea"
placeholder="请输入"
:rules="[{ required: true, message: '隐患整改详情描述不能为空' }]"
/>
<van-field
name="uploader"
label="整改照片"
:rules="[{ required: true, message: '请上传图像' }]"
>
<template #input>
<van-uploader v-model="uploaderImg" />
</template>
</van-field>
<van-field name="uploader2" label="整改视频">
<template #input>
<van-uploader v-model="uploaderVideo" />
</template>
</van-field>
<div style="margin: 16px;">
<van-button round block type="info" native-type="submit"
>保存</van-button
>
</div>
</van-form>
<div style="margin:10px 16px 0px;padding-bottom:16px">
<van-button round block type="warning" @click.native="cancel"
>取消</van-button
>
</div>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
export default {
components: {
LHeader
},
data() {
return {
text: "隐患确认",
value: "",
uploaderImg: [], //图像上传
uploaderVideo: [] //视频上传
};
},
mounted() {},
methods: {
onSubmit(values) {
console.log("submit", values);
},
cancel() {
this.$router.go(-1);
}
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
</style>
<template>
<div>
<LHeader :text="text"></LHeader>
<van-search v-model="searchValue" placeholder="搜索" @search="onSearch" />
<van-tabs
v-model="active"
color="#247df7"
title-inactive-colo="#d0d1d1"
title-active-color="#000000"
>
<van-tab title="隐患整改">
<change-danger></change-danger>
</van-tab>
</van-tabs>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
import changeDanger from "./changeDanger.vue";
export default {
components: {
LHeader,
changeDanger
},
data() {
return {
text: "隐患整改",
active: "1",
searchValue: ""
};
},
mounted() {},
methods: {
onSearch(val) {
console.log(val);
}
}
};
</script>
<style scoped>
/* @import url(); 引入css类 */
</style>
<template>
<div>
<LHeader :text="text"></LHeader>
<van-form
@submit="onSubmit"
:show-error-message="false"
:scroll-to-error="true"
>
<van-field name="radio" label="隐患确认信息">
<template #input>
<van-radio-group
v-model="radio"
direction="horizontal"
@change="selectResult"
>
<van-radio name="1">同意</van-radio>
<van-radio name="2">退回</van-radio>
</van-radio-group>
</template>
</van-field>
<!-- 同意时的选项 -->
<div class="agree" v-if="radio == 1">
<van-field
readonly
clickable
name="整改截止时间"
:value="value"
label="整改截止时间"
placeholder="点击选择日期"
@click="showCalendar = true"
:rules="[{ required: true, message: '请选择日期' }]"
/>
<van-popup v-model="showCalendar" position="bottom">
<van-datetime-picker
type="datetime"
@confirm="onConfirm"
@cancel="showCalendar = false"
/>
</van-popup>
<van-field
readonly
clickable
name="隐患整改人"
:value="valueZhenggai"
label="隐患整改人"
placeholder="请选择"
@click="showPickerZhenggai = true"
:rules="[{ required: true, message: '请选择隐患整改人' }]"
/>
<van-popup v-model="showPickerZhenggai" position="bottom">
<van-picker
show-toolbar
:columns="columnsZhenggai"
@confirm="onConfirmZhenggai"
@cancel="showPickerZhenggai = false"
/>
</van-popup>
<van-field
readonly
clickable
name="隐患复查人"
:value="valueFucha"
label="隐患复查人"
placeholder="请选择"
@click="showPickerFucha = true"
:rules="[{ required: true, message: '请选择隐患复查人' }]"
/>
<van-popup v-model="showPickerFucha" position="bottom">
<van-picker
show-toolbar
:columns="columnsFucha"
@confirm="onConfirmFucha"
@cancel="showPickerFucha = false"
/>
</van-popup>
<van-field
readonly
clickable
name="意见"
:value="valueIdea"
label="意见"
placeholder="请选择"
@click="showPickerIdea = true"
:rules="[{ required: true, message: '请选择意见' }]"
/>
<van-popup v-model="showPickerIdea" position="bottom">
<van-picker
show-toolbar
:columns="columnsIdea"
@confirm="onConfirmIdea"
@cancel="showPickerIdea = false"
/>
</van-popup>
</div>
<!-- 退回是的选项 -->
<div class="disagree" v-else>
<van-field
v-model="returnReason"
label="退回原因"
name ="退回原因"
rows="3"
type="textarea"
placeholder="请输入"
:rules="[{ required: true, message: '退回原因不能为空' }]"
/>
</div>
<div style="margin: 16px;">
<van-button round block type="info" native-type="submit"
>保存</van-button
>
</div>
</van-form>
<div style="margin:10px 16px 0px;padding-bottom:16px">
<van-button round block type="warning" @click.native="cancel"
>取消</van-button
>
</div>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
export default {
components: {
LHeader
},
data() {
return {
radio: "1",
text: "隐患确认",
value: "",
showCalendar: false,
valueZhenggai: "",
columnsZhenggai: ["张三", "李四", "王五"],
showPickerZhenggai: false,
valueFucha: "",
columnsFucha: ["张三1", "李四2", "王五3"],
showPickerFucha: false,
valueIdea: "",
columnsIdea: ["同意,立即整改", "退回,重新上报"],
showPickerIdea: false,
returnReason: ""
};
},
mounted() {},
methods: {
selectResult(val) {
this.radio = val;
},
onConfirm(date) {
this.value = this.format(date);
this.showCalendar = false;
},
onConfirmZhenggai(value) {
this.valueZhenggai = value;
this.showPickerZhenggai = false;
},
onConfirmFucha(value) {
this.valueFucha = value;
this.showPickerFucha = false;
},
onConfirmIdea(value) {
this.valueIdea = value;
this.showPickerIdea = false;
},
onSubmit(values) {
console.log("submit", values);
},
cancel() {
this.$router.go(-1);
},
format(value){
let myDate
if (value.getMinutes() <= 9) {
myDate = value.getFullYear() + '-' + (value.getMonth() + 1) + '-' + value.getDate() + ' ' + value.getHours() + ':' + '0' + value.getMinutes();
} else {
myDate = value.getFullYear() + '-' + (value.getMonth() + 1) + '-' + value.getDate() + ' ' + value.getHours() + ':' + value.getMinutes();
};
return myDate
}
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
</style>
<template>
<div>
<LHeader :text="text"></LHeader>
<van-search v-model="searchValue" placeholder="搜索" @search="onSearch" />
<van-tabs
v-model="active"
color="#247df7"
title-inactive-colo="#d0d1d1"
title-active-color="#000000"
>
<van-tab title="待确认">
<wait-con-list></wait-con-list>
</van-tab>
<van-tab title="已确定">已确定</van-tab>
<van-tab title="已退回">已退回</van-tab>
</van-tabs>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
import waitConList from "./waitConList.vue";
export default {
components: {
LHeader,
waitConList
},
data() {
return {
text: "隐患确认",
active: "1",
searchValue: ""
};
},
mounted() {},
methods: {
onSearch(val) {
console.log(val);
}
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
</style>
<template>
<div>
<!-- 内容列表 -->
<div class="con-list">
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@click="read(item)"
@touchstart="touchstart(index, item)"
@touchend.prevent="touchend(index)"
>
<div class="messgae-title">{{ item.noticeTitle }}</div>
<div class="message-content">
{{ item.upcomingUserName }},您好!您有一条来自{{
item.createUserName
}}{{ item.noticeTitle }}相关的待处理任务...
</div>
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop>
<van-button round type="primary" @touchstart="goDetail(item)"
>详情</van-button
>
<van-button round type="info" @touchstart="goConfirm(item)"
>确认</van-button
>
</div>
</van-overlay>
</van-cell-group>
</div>
</div>
</template>
<script>
export default {
data() {
return {
messageList: [
{
noticeTitle: "隐患上报消息",
upcomingUserName: "张某某",
createUserName: "李某某",
noticeTitle: "重要任务"
}
],
Loop: "", // 定时器
showIndex: null // 是否显示遮罩层
};
},
mounted() {},
methods: {
read() {},
touchstart(index, item) {
clearTimeout(this.Loop); //再次清空延时器,防止重复注册定时器
if(this.showIndex != null){
this.showIndex = null;
return
}
this.Loop = setTimeout(() => {
this.showIndex = index;
}, 300); // 这里的1000是指需要长按的时间,单位为ms
},
touchend(index) {
// 这个方法主要是用来将每次手指移出之后将计时器清零
clearInterval(this.Loop);
},
// 详情
goDetail(data) {
console.log(data);
this.showIndex = null;
},
// 确认
goConfirm(data) {
console.log(data);
this.$router.push("/affirm-danger");
this.showIndex = null;
}
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.con-list {
padding: 10px 10px 0;
background-color: #f0f1f5;
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.message-content {
margin-top: 10px;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
}
</style>
<template>
<div>
隐含上报
</div>
</template>
<script>
export default {
data() {
return {
}
},
mounted() {
},
methods:{
}
}
</script>
<style scoped>
/* @import url(); 引入css类 */
</style>
\ No newline at end of file
<template>
<div>
<LHeader :text="text"></LHeader>
<van-search v-model="searchValue" placeholder="搜索" @search="onSearch" />
<van-tabs
v-model="active"
color="#247df7"
title-inactive-colo="#d0d1d1"
title-active-color="#000000"
>
<van-tab title="待复查">
<wait-review></wait-review>
</van-tab>
<van-tab title="已办结">已办结</van-tab>
<van-tab title="已退回">已退回</van-tab>
</van-tabs>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
import waitReview from "./waitReview.vue";
export default {
components: {
LHeader,
waitReview,
},
data() {
return {
text: "隐患复查",
active: "1",
searchValue: ""
};
},
mounted() {},
methods: {
onSearch(val) {
console.log(val);
}
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
</style>
<template>
<div>
<LHeader :text="text"></LHeader>
<van-form
@submit="onSubmit"
:show-error-message="false"
:scroll-to-error="true"
>
<van-field name="radio" label="隐患复查结果">
<template #input>
<van-radio-group
v-model="radio"
direction="horizontal"
@change="selectResult"
>
<van-radio name="1">合格</van-radio>
<van-radio name="2">退回</van-radio>
</van-radio-group>
</template>
</van-field>
<!-- 同意时的选项 -->
<div class="agree" v-if="radio == 1">
<van-field
v-model="detail"
label="详情描述"
name="详情描述"
rows="3"
type="textarea"
placeholder="请输入"
:rules="[{ required: true, message: '详情描述不能为空' }]"
/>
<van-field
name="uploader"
label="隐患复查照片"
:rules="[{ required: true, message: '请上传图像' }]"
>
<template #input>
<van-uploader v-model="uploaderImg" />
</template>
</van-field>
</div>
<!-- 退回是的选项 -->
<div class="disagree" v-else>
<van-field
v-model="returnReason"
label="退回原因"
name="退回原因"
rows="3"
type="textarea"
placeholder="请输入"
:rules="[{ required: true, message: '退回原因不能为空' }]"
/>
</div>
<div style="margin: 16px;">
<van-button round block type="info" native-type="submit"
>保存</van-button
>
</div>
</van-form>
<div style="margin:10px 16px 0px;padding-bottom:16px">
<van-button round block type="warning" @click.native="cancel"
>取消</van-button
>
</div>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
export default {
components: {
LHeader
},
data() {
return {
radio: "1",
text: "隐患复查",
detail: "",
uploaderImg: [],
returnReason: ""
};
},
mounted() {},
methods: {
selectResult(val) {
this.radio = val;
},
onSubmit(values) {
console.log("submit", values);
},
cancel() {
this.$router.go(-1);
}
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
</style>
<template>
<div>
<!-- 内容列表 -->
<div class="con-list">
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@click="read(item)"
@touchstart="touchstart(index, item)"
@touchend.prevent="touchend(index)"
>
<div class="messgae-title">{{ item.noticeTitle }}</div>
<div class="message-content">
{{ item.upcomingUserName }},您好!您有一条来自{{
item.createUserName
}}{{ item.noticeTitle }}相关的待处理任务...
</div>
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop>
<van-button round type="primary" @touchstart="goDetail(item)"
>详情</van-button
>
<van-button round type="info" @touchstart="goConfirm(item)"
>复查</van-button
>
</div>
</van-overlay>
</van-cell-group>
</div>
</div>
</template>
<script>
export default {
data() {
return {
messageList: [
{
noticeTitle: "隐患上报消息",
upcomingUserName: "张某某",
createUserName: "李某某",
noticeTitle: "重要任务"
}
],
Loop: "", // 定时器
showIndex: null // 是否显示遮罩层
};
},
mounted() {},
methods: {
read() {},
touchstart(index, item) {
clearTimeout(this.Loop); //再次清空延时器,防止重复注册定时器
if(this.showIndex != null){
this.showIndex = null;
return
}
this.Loop = setTimeout(() => {
this.showIndex = index;
}, 300); // 这里的1000是指需要长按的时间,单位为ms
},
touchend(index) {
// 这个方法主要是用来将每次手指移出之后将计时器清零
clearInterval(this.Loop);
},
// 详情
goDetail(data) {
console.log(data);
this.showIndex = null;
},
// 确认
goConfirm(data) {
console.log(data);
this.$router.push("/review-add");
this.showIndex = null;
}
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.con-list {
padding: 10px 10px 0;
background-color: #f0f1f5;
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.message-content {
margin-top: 10px;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
}
</style>
......@@ -46,10 +46,15 @@
</div>
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop='closeModal' >
<van-button round type="info" @click="goDetail(item)">详情</van-button>
<van-button round type="danger" @click="goDelete(item)">删除</van-button>
<van-overlay :show="showIndex == index" >
<div class="wrapper" @click.stop >
<van-button round type="info" @touchstart="goDetail(item)"
>详情</van-button
>
<van-button round type="danger" @touchstart="goDelete(item)"
>删除</van-button
>
</div>
</van-overlay>
</van-cell-group>
......@@ -62,7 +67,6 @@
</template>
<script>
document.oncontextmenu=function(e){return false;}
import { postMessgaelist, noticeRemove } from "@/service/message";
export default {
data() {
......@@ -96,6 +100,7 @@ export default {
created() {
this.getMessageList();
this.unRead();
},
methods: {
// 点击类别
......@@ -125,12 +130,9 @@ export default {
// 点击消息条目时的点击事件 变成已读
read(data) {
console.log('触发了点击事件');
console.log("触发了点击事件");
// 判断showIndex是否等于null 如果不等于则先将showIndex改为null
if(this.showIndex !== null) {
this.showIndex = null
return
}
this.showIndex = null;
if (data.status == "未读") {
let formData = new FormData();
formData.append("ids", data.pid);
......@@ -196,33 +198,30 @@ export default {
// }
touchstart(index, item) {
clearInterval(this.Loop); //再次清空定时器,防止重复注册定时器
this.Loop = setTimeout(
function() {
this.showIndex = index
}.bind(this),
300
); // 这里的1000是指需要长按的时间,单位为ms
clearTimeout(this.Loop); //再次清空延时器,防止重复注册定时器
if(this.showIndex != null){
this.showIndex = null;
return
}
this.Loop = setTimeout(function() {
this.showIndex = index;
}.bind(this), 300); // 这里的1000是指需要长按的时间,单位为ms
},
touchend(index) {
// 这个方法主要是用来将每次手指移出之后将计时器清零
clearInterval(this.Loop);
},
// 关闭遮罩层
closeModal(){
this.showIndex = null
clearTimeout(this.Loop);
},
// 详情
goDetail(data){
goDetail(data) {
console.log(data);
this.showIndex = null
this.showIndex = null;
},
// 删除
goDelete(data){
console.log(data);
this.showIndex = null
},
goDelete(data) {
console.log(123);
this.showIndex = null;
}
}
};
</script>
......@@ -263,35 +262,25 @@ export default {
}
// 内容
.con-list {
-webkit-touch-callout:none; /*系统默认菜单被禁用*/
-webkit-user-select:none; /*webkit浏览器*/
-khtml-user-select:none; /*早期浏览器*/
-moz-user-select:none;/*火狐*/
-ms-user-select:none; /*IE10*/
user-select:none;
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.messgae-title {
}
.message-content {
margin-top: 10px;
}
.van-overlay{
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
}
}
......
......@@ -148,17 +148,20 @@ export default {
text: "隐患上报"
},
{
key: "2",
key: "2",
path: "/confirm-danger",
imgUrl: require("@/assets/workbench/danger-confirm.png"),
text: "隐患确认"
},
{
key: "3",
path: "/change-danger",
imgUrl: require("@/assets/workbench/danger-rectification.png"),
text: "隐患整改"
},
{
key: "4",
path: "/review-danger",
imgUrl: require("@/assets/workbench/danger-acceptance.png"),
text: "隐患复查"
},
......
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