Browse Source

1. 修改首页,添加LOGO和通知。

2. 通知列表页
master
蟑螂恶霸 2 years ago
parent
commit
77c4f48fea
  1. BIN
      src/assets/images/icon_notice.png
  2. BIN
      src/assets/images/icon_notice2.png
  3. BIN
      src/assets/images/logo.png
  4. 27
      src/router/enforceHome.js
  5. 30
      src/views/Home.vue
  6. 395
      src/views/enforce/enforceNotice.vue
  7. 4
      src/views/enforce/historyCheck.vue
  8. 2
      src/views/enforce/scanQrCode.vue
  9. 74
      src/views/enforceHome.vue
  10. 2
      src/views/enterprise/enterpriseInspectionList.vue
  11. 2
      src/views/enterprise/registrationList.vue

BIN
src/assets/images/icon_notice.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
src/assets/images/icon_notice2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

BIN
src/assets/images/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

27
src/router/enforceHome.js

@ -30,14 +30,14 @@ const routes = [
},
},
//执法端扫码页面
{
path: "/enforce/scanPageTest",
name: "scanPageTest",
component: () => import("@/views/enforce/scanPageTest.vue"),
meta: {
isKeepAlive: false,
},
},
// {
// path: "/enforce/scanPageTest",
// name: "scanPageTest",
// component: () => import("@/views/enforce/scanPageTest.vue"),
// meta: {
// isKeepAlive: false,
// },
// },
//公布执法计划页面
{
path: "/enforce/enforcementPlan",
@ -56,7 +56,7 @@ const routes = [
isKeepAlive: false
},
},
//新增公布执法计划
//新增公布执法计划详情
{
path: "/enterprise/enterpriseInspectionDetail",
name: "enterpriseInspectionDetail",
@ -74,6 +74,15 @@ const routes = [
isKeepAlive: false
},
},
//通知公告页面
{
path: "/enforce/enforceNotice",
name: "enforceNotice",
component: () => import("@/views/enforce/enforceNotice.vue"),
meta: {
isKeepAlive: false
},
},
]
export {routes}

30
src/views/Home.vue

@ -2,11 +2,12 @@
<div class="home app_content">
<!-- 导航栏 -->
<div class="header_body">
<header-nav :leftArrow="false" titelText="首页"></header-nav>
<header-nav :leftArrow="false" titelText="执法监督码"></header-nav>
</div>
<!-- 中间 -->
<div class="warp_body">
<div class="logobox"></div>
<!-- <refresh-list v-model:freshMap="freshMap" @refresh="onRefresh" @onLoad="onLoad"> -->
<div class="carousel_box" @onLoad="onLoad">
<carousel-card v-if="carouselList.length" v-model:carouselList="carouselList"></carousel-card>
@ -22,7 +23,7 @@
<div class="boutique_body">
<!-- <goodsCard :goodsList="boutique" :cardAttr="boutiqueAttr"></goodsCard> -->
<div class="box-info" @click="toRegistrationListView">
<span class="box-info-text" >执法记录查询</span>
<span class="box-info-text" >行政检查信息</span>
</div>
<div class="box-complaint" @click="toComplaintView">
<span class="box-complaint-text">执法投诉</span>
@ -141,9 +142,10 @@ onMounted(() => {
background-color: #f4f4f4;
.warp_body {
position: relative;
background: url("../assets/images/bg_c.jpg");
background-size: cover;
position: relative;
overflow-x: hidden;
.carousel_box {
height: 150px;
width: 100%;
@ -156,7 +158,7 @@ onMounted(() => {
.boutique_box {
position: absolute;
width: 100%;
bottom: 3%;
bottom: 1%;
.boutique_body {
padding: 0px 0px 10px 0px;
display: flex;
@ -171,8 +173,7 @@ onMounted(() => {
background: url("../assets/images/item_code.png");
background-size: cover;
.box-qr-code-text{
margin-right: 3%;
margin-top: 2%;
margin: 0.35rem 0.5rem 0 0;
display: block;
font-size: 17px
}
@ -187,8 +188,7 @@ onMounted(() => {
background-size: cover;
.box-info-text{
margin-right: 3%;
margin-top: 2%;
margin: 0.35rem 0.5rem 0 0;
display: block;
font-size: 17px
}
@ -203,8 +203,7 @@ onMounted(() => {
background: url("../assets/images/item_complain.png");
background-size: cover;
.box-complaint-text{
margin-right: 5%;
margin-top: 3%;
margin:0.35rem 0.5rem 0 0;
display: block;
font-size: 17px
}
@ -217,4 +216,15 @@ onMounted(() => {
}
}
}
.logobox {
position: relative;
top: 4%;
left: 5%;
z-index: 99;
width: 82%;
height: 10vh;
background: url("../assets/images/logo.png") no-repeat;
background-size: 100% auto;
}
</style>

395
src/views/enforce/enforceNotice.vue

@ -0,0 +1,395 @@
<template>
<div class="shop app_content">
<!-- 导航栏 -->
<div class="header_body">
<header-nav
:leftArrow="false"
:titelText="`通知公告`"
>
</header-nav>
</div>
<van-search
v-model="searchParam.searchText"
show-action
placeholder="请输入关键字查询"
@search="onSearch"
>
<template #action>
<div @click="onClickButton">搜索</div>
</template>
</van-search>
<!-- 中间 -->
<div class="shop-center">
<lodding-card :isLodding="isLodding">
<div class="noticebox">
<div class="notice-item"><i></i>
<div class="item-cont">
<span class="item-title">宝安区司法局</span>
<span class="item-time">2024-02-15</span>
<div class="item-text">2024年度宝安区新安街道年度行政执法检查计划</div>
</div>
</div>
<div class="notice-item"><i></i>
<div class="item-cont">
<span class="item-title">龙华区司法局</span>
<span class="item-time">2024-02-15</span>
<div class="item-text">2024年度龙华区民治街道年度行政执法检查计划</div>
</div>
</div>
</div>
</lodding-card>
</div>
<!-- 底部 -->
<div class="shop_footer_body">
<footer-enforcement-nav></footer-enforcement-nav>
</div>
</div>
</template>
<script setup name="enforcementInspectionProgram">
import {queryEnforcementInspectionProgramList} from "@/api/enforce";
import { setGoodsNum } from "@/util/util";
const { useCommon, useShopCard } = $globalStore;
const router = useRouter();
let allchecked = ref(false); //
let refreshLoad = ref(false); //
let searchParam = reactive({
//
searchText: ref(''),
//
searchDate: ref('')
});
const data = reactive({
cartList: [],
dataList: [],
dateSearch: ref(),
showDatePicker:false,
currentDate:ref(['2024', '01']),
minDate: new Date(2020, 0, 1),
maxDate: new Date(2125, 5, 1),
columnsType :['year', 'month'],
});
//
onMounted(() => {
console.log(useCommon.enterpriseNumber);
// getCard();
searchParam.enterpriseNumber = useCommon.enterpriseNumber;
console.log(useCommon.enterpriseNumber)
queryList();
data.dateSearch = nowDate(new Date());
});
const queryList = () =>{
queryEnforcementInspectionProgramList(searchParam,success =>{
console.log(success)
data.dataList = success.data;
freshMap.refreshLoad = false;
freshMap.listLoading = false;
freshMap.listFinished = true;
isLodding.value = false;
},error =>{
})
}
const onSearch = (val) => {
queryEnforcementInspectionProgramList(
{
"searchText": searchParam.searchText
}
,success =>{
console.log(success)
data.dataList = success.data;
},error =>{
})
};
const onClickButton = () =>{
console.log(searchParam.searchText)
queryList();
}
const toPdfView = (url) =>{
console.log(url)
router.push(
{
path: "/pdfView",
query: {
url: url
}
});
}
onActivated(() => {
});
onDeactivated(() => {
});
//
const goBack = () => {
router.go(-1);
};
let resetScroll = ref(0); //
let isLodding = ref(true); //
let freshMap = reactive({
refreshLoad: false, //
listLoading: false, //
listFinished: false, //
});
//
const onRefresh = () => {
freshMap.listFinished = false;
freshMap.listLoading = true;
// getGoodslist();
queryList();
};
//
const onLoad = () => {
freshMap.listFinished = true;
freshMap.loading = false;
};
//
const getGoodslist = async (onLoad) => {
// const res = await useClassify.classifyGoods();
// if (res?.code === 20000) {
// goodsList = onLoad ? goodsList.concat(res?.data) : res?.data;
// freshMap.refreshLoad = false;
// freshMap.listLoading = false;
// freshMap.listFinished = res?.listFinished;
// if (goodsList.length > 50) {
// freshMap.listFinished = true;
// }
// }
freshMap.refreshLoad = false;
freshMap.listLoading = false;
freshMap.listFinished = true;
isLodding.value = false;
};
onMounted(async () => {
// let res = await getClassify();
// if (res && res?.length) {
// classifyId = res?.[0]?.id;
// classifyId && getGoodslist();
// } else {
// isLodding.value = false;
// }
queryList();
isLodding.value = false;
});
const selectDate = () =>{
data.showDatePicker = true;
console.log(data.showDatePicker)
}
const onDateConfirm = (value)=> {
console.log(value);
value.selectedValues.forEach((item,index) => {
console.log(item);
});
data.dateSearch = value.selectedValues[0] + "/" + value.selectedValues[1]
data.showDatePicker = false;
searchParam.dateSearch = value.selectedValues[0] + "-" + value.selectedValues[1];
queryList();
}
const nowDate = (time) => {
var year = time.getFullYear(); //
var month = (time.getMonth() + 1).toString().padStart(2, '0'); //
var date = time.getDate().toString().padStart(2, '0'); //
var hour = time.getHours().toString().padStart(2, '0'); //
var minute = time.getMinutes().toString().padStart(2, '0'); //
var second = time.getSeconds().toString().padStart(2, '0'); //
return (
year + "/" + month
)
}
const searchDateType = (val) =>{
searchParam.dateType = val;
searchParam.isComplaint = null;
queryList();
}
const searchComplaint = (val) =>{
searchParam.isComplaint = val;
searchParam.dateType = null;
queryList();
}
</script>
<style lang="less" scoped>
.shop {
height: 100%;
display: flex;
flex-direction: column;
overflow: hidden;
background-color: #f4f4f4;
.header_body {
height: 50px;
}
.shop-center {
flex: 1;
overflow-y: scroll;
position: relative;
.goods_box {
display: flex;
background-color: #fff;
margin: 6px;
border-radius: 10px;
.swipe_cell {
width: 100%;
}
.card_box {
display: flex;
width: 100%;
padding: 10px,0px;
flex-direction: column;
.card_body {
background-color: #fff;
border-radius: 10px;
flex: 1;
}
.card_box_span{
font-size: 13px;
padding-left: 5%;
height: 35px;
align-items: center;
display: flex;
align-items: center;
}
.card_box_action{
position: absolute;
right: 4%;
}
}
}
}
.shop_footer_body {
height: 101px;
position: relative;
.footer-one-btn {
height: 50px;
bottom: 51px;
}
}
}
.search-button-list{
height: 3%;
display: flex;
flex-direction: row;
padding-left: 10px;
margin-top: 6px;
align-items: end;
.search-button{
width: 15%;
height: 80%;
}
}
.search-button-date{
height: 3%;
display: flex;
flex-direction: row;
padding-left: 10px;
margin-top: 15px;
align-items: end;
position: relative;
.date-select{
font-size: 20px;
margin-left: 2%;
}
.search-button{
width: 15%;
height: 80%;
position: absolute;
top: 1%;
right: 1%;
}
}
.noticebox {
width: 100%;
height: 100%;
background-color: #fff;
border-radius: 0.2rem;
}
.notice-item {
display: flex;
position: relative;
margin: 3% 0.26rem;
height: 10vh;
align-items: center;
}
.notice-item > i {
display: inline-block;
margin: 5% 0.25rem;
height: 90%;
width: 1.75rem;
background: url("../../assets/images/icon_notice2.png") no-repeat left center;
background-size: auto 80%;
}
.item-cont {
display: inline-block;
width: calc(100% - 2.25rem);
}
.item-time {
float: right;
margin-right: 2%;
color: #c1bfbf;
font-size: 0.3rem;
height: 0.75rem;
line-height: 1rem;
}
.item-title, .item-text {
float: left;
width: calc(100% - 2.0rem);
height: 0.75rem;
font-size: 0.4rem;
font-weight: 600;
line-height: 1rem;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.item-text {
width: 100%;
color: #999;
font-size: 0.4rem;
font-weight: normal;
}
</style>

4
src/views/enforce/historyCheck.vue

@ -3,7 +3,7 @@
<div class="shop app_content">
<!-- 导航栏 -->
<div class="header_body">
<header-nav :slefBack="true" @goBack="goBack" :titelText="`历史检查信息`"/>
<header-nav :slefBack="true" @goBack="goBack" :titelText="`行政检查信息查询`"/>
</div>
<van-search v-model="searchParam.searchValue" show-action placeholder="执法事项/部门/人员" @search="onSearch">
<template #action>
@ -19,7 +19,7 @@
<div class="search-button-date">
<span class="date-select" @click="selectDate">{{ data.dateSearch }}</span>
<div style="border-color: black;" class="van-hairline--bottom"></div>
<van-button class="search-button" type="primary" size="mini">统计分析</van-button>
<!-- <van-button class="search-button" type="primary" size="mini">统计分析</van-button>-->
<van-popup v-model:show="data.showDatePicker" position="bottom">
<van-date-picker
title="选择日期"

2
src/views/enforce/scanQrCode.vue

@ -257,7 +257,7 @@ const goBack = () => {
width: 92%;
height: 96%;
background-color: #fff;
border-radius: 0.25rem;
border-radius: 0.25remnpm;
}
.nocode {

74
src/views/enforceHome.vue

@ -2,11 +2,13 @@
<div class="home app_content">
<!-- 导航栏 -->
<div class="header_body">
<header-nav :leftArrow="false" titelText="首页"></header-nav>
<header-nav :leftArrow="false" titelText="执法监督码"></header-nav>
</div>
<!-- 中间 -->
<div class="warp_body">
<div class="logobox"></div>
<div class="noticbox" @click="toNoticeView"><i></i><span class="new"></span>通知</div>
<!-- <refresh-list v-model:freshMap="freshMap" @refresh="onRefresh" @onLoad="onLoad"> -->
<div class="carousel_box" @onLoad="onLoad">
<carousel-card v-if="carouselList.length" v-model:carouselList="carouselList"></carousel-card>
@ -22,7 +24,7 @@
<div class="boutique_body">
<!-- <goodsCard :goodsList="boutique" :cardAttr="boutiqueAttr"></goodsCard> -->
<div class="box-info" @click="toRegistrationListView">
<span class="box-info-text" >历史检查信息</span>
<span class="box-info-text">行政检查信息</span>
</div>
<div class="box-complaint" @click="toAnalyseView">
<span class="box-complaint-text">统计分析</span>
@ -100,6 +102,11 @@ const toAnalyseView = async() =>{
path: "/analyse",
});
}
const toNoticeView = async() =>{
router.push({
path: "/enforce/enforceNotice",
});
}
//
const onRefresh = () => {
@ -135,9 +142,10 @@ onMounted(() => {
background-color: #f4f4f4;
.warp_body {
position: relative;
background: url("../assets/images/bg_el.jpg");
background-size: cover;
position: relative;
overflow-x: hidden;
.carousel_box {
height: 150px;
width: 100%;
@ -150,7 +158,7 @@ onMounted(() => {
.boutique_box {
position: absolute;
width: 100%;
bottom: 3%;
bottom: 1%;
.boutique_body {
padding: 0px 0px 10px 0px;
display: flex;
@ -165,8 +173,7 @@ onMounted(() => {
background: url("../assets/images/item_scan.png");
background-size: cover;
.box-qr-code-text{
margin-right: 3%;
margin-top: 2%;
margin: 0.35rem 0.5rem 0 0;
display: block;
font-size: 17px
}
@ -181,8 +188,7 @@ onMounted(() => {
background-size: cover;
.box-info-text{
margin-right: 3%;
margin-top: 2%;
margin: 0.35rem 0.5rem 0 0;
display: block;
font-size: 17px
}
@ -197,8 +203,7 @@ onMounted(() => {
background: url("../assets/images/item_count.png");
background-size: cover;
.box-complaint-text{
margin-right: 5%;
margin-top: 3%;
margin: 0.35rem 0.5rem 0 0;
display: block;
font-size: 17px
}
@ -211,4 +216,53 @@ onMounted(() => {
}
}
}
.noticbox {
position: absolute;
top: 20%;
right: 0;
z-index: 999;
padding: 0 0.25rem;
min-width: 1rem;
min-height: 1rem;
background-color: rgba(249, 238, 219, .7);
border-radius: 0.5rem 0 0 0.5rem;
color: #ab6a05;
font-size: 0.45rem;
line-height: 1.0rem;
white-space: nowrap;
}
.noticbox > i {
display: inline-block;
position: relative;
top: 0.12rem;
margin: 0 0.3rem 0 0;
width: 0.6rem;
height: 0.6rem;
background: url("../assets/images/icon_notice.png") no-repeat;
background-size: auto 100%;
}
.noticbox span.new {
display: block;
position: absolute;
top: 0.1rem;
left: 0.85rem;
width: 0.2rem;
height: 0.2rem;
background: #ff1414;
border-radius: 50%;
}
.logobox {
position: relative;
top: 4%;
left: 5%;
z-index: 99;
width: 82%;
height: 10vh;
background: url("../assets/images/logo.png") no-repeat;
background-size: 100% auto;
}
</style>

2
src/views/enterprise/enterpriseInspectionList.vue

@ -38,7 +38,7 @@
<div class="search-button-date">
<span class="date-select" @click="selectDate">{{ data.dateSearch }}</span>
<div style="border-color: black;" class="van-hairline--bottom"></div>
<van-button class="search-button" type="primary" size="mini">统计分析</van-button>
<!-- <van-button class="search-button" type="primary" size="mini">统计分析</van-button>-->
<van-popup v-model:show="data.showDatePicker" position="bottom">
<van-date-picker
title="选择日期"

2
src/views/enterprise/registrationList.vue

@ -6,7 +6,7 @@
<header-nav
:slefBack="true"
@goBack="goBack"
:titelText="`执法记录查询`"
:titelText="`行政检查信息查询`"
>
</header-nav>
</div>

Loading…
Cancel
Save