hz-zhhq-app/pages/epidemic/epidemic-index.vue

243 lines
6.7 KiB
Vue
Raw Normal View History

2025-01-22 10:53:47 +08:00
<template>
<view class="hzIndex">
<hzHeader title="疫情防控"></hzHeader>
<!-- <view class="tab-banner">
<image class="image" src="/static/imgs//yqfk-bg.png" ></image>
<image class="image2" src="/static/imgs//yqfk-header.png" ></image>
</view> -->
<view class="hzContent" style="padding-top: 200upx;">
<!-- <view style="height: 300upx;"></view> -->
<view style="padding: 20upx;">
<view class="box box-wrap" style="width: 100%;padding: 20upx 20upx;border-radius: 10upx;background-color: white;">
<view :style="permissions.length==5?'width: 25%;':'width: 25%;'" style=" margin-bottom: 30upx;" @click="navTo(item.pageUrl,item.code,item.children)" class="box box-column box-align-center" v-for="(item, index) in permissions" :key="index" v-if="item.isOpen == 0">
<image class="box" style="width: 90upx; height: 90upx;" :src="item.iconUrl"></image>
<view style="font-size: 26upx;color: grey;">{{item.name}}</view>
</view>
<!-- <view style="width: 25%;" @click="navTo('/pages/epidemic/vaccine-static')" class="box box-column box-align-center" >
<image class="box" style="width: 80upx; height: 80upx;" src="/static/images/epidemic/cxsp.png"></image>
<view style="font-size: 24upx;color: grey;">疫苗接种</view>
</view> -->
<!-- <view style="width: 25%;" @click="navTo('/pages/epidemic/travel-report-exam')" class="box box-column box-align-center" >
<image class="box" style="width: 80upx; height: 80upx;" src="/static/images/epidemic/cxsp.png"></image>
<view style="font-size: 24upx;color: grey;">出行审批</view>
</view>
<view style="width: 25%;" @click="navTo('/pages/epidemic/epidemic-supplies')" class="box box-column box-align-center" >
<image class="box" style="width: 80upx; height: 80upx;" src="/static/images/epidemic//wzsq.png"></image>
<view style="font-size: 24upx;color: grey;">物资申请</view>
</view>
<view style="width: 25%;" @click="navTo('/pages/epidemic/epidemic-supplies-exam')" class="box box-column box-align-center" >
<image class="box" style="width: 80upx; height: 80upx;" src="/static/images/epidemic/cxsp.png"></image>
<view style="font-size: 24upx;color: grey;">物资审批</view>
</view> -->
</view>
</view>
<view style="font-size: 30upx;padding: 0upx 20upx;font-weight: 600;">
防疫政策
</view>
<view style="padding: 20upx;">
<view v-if="travelPolicy.length>0" style="background-color: white;border-radius: 10upx;">
<view v-for="(item, index) in travelPolicy" :key="index"
class="list-cell "
@tap="detail(item)"
:style="index==0?'border-bottom:1px solid #e7e7e7;border-radius:10upx 10upx 0upx 0px;':index==travelPolicy.length-1?'border-radius:0upx 0upx 10upx 10upx;':'border-bottom:1px solid #e7e7e7;'"
>
<view class="box box-between" >
<view>
<view class="cell-title-box" >
<view class="cell-title" :class="[item.img == 0 ? 'pdr0' : '']">{{ item.title }}</view>
</view>
<view class="sub-title">
<text class="tag" >{{formatDate(item.create_time)}}</text>
</view>
</view>
<view class="box box-align-center">
<image style="width: 20upx;height: 30upx;" src="/static/imgs/select.png"></image>
</view>
</view>
</view>
</view>
<view v-else style="padding:20upx;text-align: center;color: #666;font-size: 30upx;background-color: white;border-radius: 10upx;">
暂无数据
</view>
</view>
</view>
</view>
</template>
<script>
import {getUserPermission3,travelPolicyList} from '@/common/api.js';
import {callbackRequest,formatDate,getStorage,callbackRequestNoLoading } from '@/common/util.js';
export default {
data() {
return {
formatDate:formatDate,
permissions:[],
travelPolicy:[]
}
},
onLoad(option) {
let code = option.code||"";
this.permissions = JSON.parse(option.permissions) ||[];
// this.getUserPermissions(code);
this.travelPolicyList();
},
methods: {
getUserPermissions(code) {
let that = this;
// if (!that.userId) {
// return;
// }
let userId= getStorage('userInfo').userId;
callbackRequestNoLoading({ method: getUserPermission3, data: { userId: userId,parentCode:code } }).then(res => {
if (res.data.returnCode == 1) {
that.permissions = res.data.returnData;
} else {
console.log('获取权限失败');
}
});
},
travelPolicyList() {
let that = this;
// if (!that.userId) {
// return;
// }
callbackRequestNoLoading({ method: travelPolicyList, data: {} }).then(res => {
if (res.data.returnCode == 1) {
that.travelPolicy = res.data.returnData;
} else {
console.log('获取权限失败');
}
});
},
detail(item){
let url = "/pages/epidemic/travel-policy?id="+item.id
uni.navigateTo({
url
});
},
navTo(url,code,child) {
if(!url){
alertTip('敬请期待');
}
// console.log(url)
// console.log(child)
for(let i = 0;i<child.length;i++){
if(child[i].type==1){
if(url.indexOf('?')!=-1){
url = url+'&'+child[i].pageUrl;
}else{
url = url+'?'+child[i].pageUrl;
}
}
}
if (url && url.startsWith('/')) {
if (url.indexOf('?') != -1) {
url = url + '&code=' + code;
} else {
url = url + '?code=' + code;
}
if (child.length > 0) {
url = url + '&permissions=' + JSON.stringify(child);
}
// console.log(url)
uni.navigateTo({
url
});
}
},
}
}
</script>
<style lang="scss">
uni-page-body {
background-color:#F5F5F5!important;
min-height: 100% !important;
height: auto !important;
}
.box {
display: flex;
display: -webkit-flex;
}
.box-row-reverse {
flex-direction: row;
}
.box-column {
flex-direction: column;
}
.box-left {
justify-content: flex-start;
}
.box-right {
justify-content: flex-end;
}
.box-center {
justify-content: center;
}
.box-between {
justify-content: space-between;
}
.box-around {
justify-content: space-around;
}
.box-align-center {
align-items: center;
}
.box-wrap {
flex-wrap: wrap;
}
.tab-banner{
width: 100%;
position: relative;
.image{
width: 100%;
height: 200upx;
position: absolute;
top: 0upx;
}
.image2{
position: absolute;
top: 40upx;
width: 100%;
padding: 0px 20upx;
height: 240upx;
}
}
.list-cell {
padding: 20upx 20upx;
box-sizing: border-box;
background: #fff;
margin-bottom: 10upx;
}
.cell-title {
font-size: 28upx;
/* line-height: 56upx; */
word-break: break-all;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
}
.sub-title {
padding-top: 10upx;
font-size: 28upx;
color: #bcbcbc;
}
</style>