修改页面

This commit is contained in:
2026-03-10 17:02:40 +08:00
parent cd621f659c
commit 89204ca621
3 changed files with 431 additions and 383 deletions

View File

@@ -5,7 +5,7 @@
--> -->
<template> <template>
<!-- @scroll="handleScroll" @scrolltolower="scrollBottom" --> <!-- @scroll="handleScroll" @scrolltolower="scrollBottom" -->
<scroll-view :scroll-y="true" class="container" style="background-image: url('../../../packageRc/static/pageBgIndex.png');"> <scroll-view :scroll-y="true" class="container" style="background-image: url(../../../packageRc/static/pageBgIndex.png);">
<view style="padding: 40rpx 28rpx;"> <view style="padding: 40rpx 28rpx;">
<!-- #ifdef MP-WEIXIN --> <!-- #ifdef MP-WEIXIN -->
<view class="kinggang"> <view class="kinggang">
@@ -91,6 +91,7 @@
</view> </view>
<view class="bottom-line"> <view class="bottom-line">
<view><uni-icons color="#A2A2A2" type="info" size="12"></uni-icons>发布日期:{{item.createTime}}</view> <view><uni-icons color="#A2A2A2" type="info" size="12"></uni-icons>发布日期:{{item.createTime}}</view>
<view><uni-icons color="#A2A2A2" type="eye" size="12"></uni-icons>浏览量:{{item.viewNum || 0}}</view>
</view> </view>
</view> </view>
</template> </template>

View File

@@ -1,5 +1,5 @@
<template> <template>
<view class="page" style="background-image: url('../../../packageRc/static/pageBg.png');"> <view class="page" style="background-image: url(../../../packageRc/static/pageBg.png);">
<scroll-view :scroll-y="true" style="height: 100vh;position: relative;z-index: 1;"> <scroll-view :scroll-y="true" style="height: 100vh;position: relative;z-index: 1;">
<view class="input-outer-part" <view class="input-outer-part"
style="padding: 24rpx 32rpx 0;max-height: unset;"> style="padding: 24rpx 32rpx 0;max-height: unset;">
@@ -21,6 +21,7 @@
<view class="infos"> <view class="infos">
<view class="info">发文单位{{ policyDetail.sourceUnit }}</view> <view class="info">发文单位{{ policyDetail.sourceUnit }}</view>
<view class="info">发布时间{{ policyDetail.publishTime || '--' }}</view> <view class="info">发布时间{{ policyDetail.publishTime || '--' }}</view>
<view class="info">浏览量{{ policyDetail.viewNum || 0 }}</view>
</view> </view>
</view> </view>
<view class="main-ceontent-list"> <view class="main-ceontent-list">

View File

@@ -1,388 +1,434 @@
<template> <template>
<view class="page" style="background-image: url('../../../packageRc/static/pageBg.png');"> <view
<view class="input-outer-part" class="page"
style="padding: 24rpx 32rpx 0;max-height: unset;"> style="
<view class="search-line"> background-image: url(../../../packageRc/static/pageBg.png);
<input style="width: 100%;" placeholder="请输入政策名称进行搜索" v-model="queryParams.searchValue" border="none" /> "
<img src="https://rc.jinan.gov.cn/qcwjyH5/static/images/person/search.png" class="search-icon" @click="search()" /> >
</view> <view
<view v-if="total" style="position: relative;padding: 32rpx 0;color: #000;"> class="input-outer-part"
<!-- <view v-if="total" style="position: relative;padding-bottom: 16px;color: #000;"> --> style="padding: 24rpx 32rpx 0; max-height: unset"
<text> {{ total }} </text> >
</view> <view class="search-line">
<!-- <scroll-view :scroll-y="true" style="height: calc(100vh - 342rpx);position: relative;z-index: 1;" --> <input
<scroll-view :scroll-y="true" style="height: calc(100vh - 232rpx);position: relative;z-index: 1;" style="width: 100%"
@scrolltolower="getBottomList"> placeholder="请输入政策名称进行搜索"
<view style="margin-bottom: 24rpx;border-radius: 16rpx;" class="policy-list" v-for="(item, index) in tableData" :key="index" @click="goPolicyDetail(item)"> v-model="queryParams.searchValue"
border="none"
/>
<img
src="https://rc.jinan.gov.cn/qcwjyH5/static/images/person/search.png"
class="search-icon"
@click="search()"
/>
</view>
<view
v-if="total"
style="position: relative; padding: 32rpx 0; color: #000"
>
<!-- <view v-if="total" style="position: relative;padding-bottom: 16px;color: #000;"> -->
<text> {{ total }} </text>
</view>
<!-- <scroll-view :scroll-y="true" style="height: calc(100vh - 342rpx);position: relative;z-index: 1;" -->
<scroll-view
:scroll-y="true"
style="height: calc(100vh - 232rpx); position: relative; z-index: 1"
@scrolltolower="getBottomList"
>
<view
style="margin-bottom: 24rpx; border-radius: 16rpx"
class="policy-list"
v-for="(item, index) in tableData"
:key="index"
@click="goPolicyDetail(item)"
>
<view class="title"> <view class="title">
<image src="../../../packageRc/static/zcLeft.png"/> <image src="../../../packageRc/static/zcLeft.png" />
{{item.zcmc}}</view> {{ item.zcmc }}</view
>
<view class="infos"> <view class="infos">
<view v-if="item.zcLevel">{{item.zcLevel}}</view> <view v-if="item.zcLevel">{{ item.zcLevel }}</view>
<view v-if="item.sourceUnit">{{item.sourceUnit}}</view> <view v-if="item.sourceUnit">{{ item.sourceUnit }}</view>
</view> </view>
<view class="bottom-line"> <view class="bottom-line">
<view><uni-icons color="#A2A2A2" type="info" size="12"></uni-icons>发文日期{{item.publishTime}}</view> <view
><uni-icons color="#A2A2A2" type="info" size="12"></uni-icons
>发文日期{{ item.publishTime }}</view
>
<view
><uni-icons color="#A2A2A2" type="eye" size="12"></uni-icons
>浏览量{{ item.viewNum || 0 }}</view
>
</view> </view>
</view> </view>
<view style="padding-bottom: 24rpx;"> <view style="padding-bottom: 24rpx">
<img v-if="!total&&!loading" src="https://rc.jinan.gov.cn/qcwjyH5/static/images/person/empty.png" <img
style="width: 100%;display: block;margin: 0 auto;" /> v-if="!total && !loading"
<view v-if="loading"><u-loading-icon></u-loading-icon> src="https://rc.jinan.gov.cn/qcwjyH5/static/images/person/empty.png"
<view style="text-align: center;color: #8E8E8E;font-size: 24rpx;">加载中~</view> style="width: 100%; display: block; margin: 0 auto"
</view> />
<view v-else-if="showMorePage" style="text-align: center;color: #1A62CE;font-size: 24rpx;">加载更多 <view v-if="loading"
</view> ><u-loading-icon></u-loading-icon>
<view style="text-align: center;color: #8E8E8E;font-size: 24rpx;" v-else>没有更多数据了~</view> <view style="text-align: center; color: #8e8e8e; font-size: 24rpx"
</view>   >加载中~</view
</scroll-view> >
</view> </view>
</view> <view
v-else-if="showMorePage"
style="text-align: center; color: #1a62ce; font-size: 24rpx"
>加载更多
</view>
<view
style="text-align: center; color: #8e8e8e; font-size: 24rpx"
v-else
>没有更多数据了~</view
> </view
>  
</scroll-view>
</view>
</view>
</template> </template>
<script> <script>
import PopupList from "/packageRc/components/PopupLists.vue"; import PopupList from "/packageRc/components/PopupLists.vue";
import { getPolicyList } from "@/packageRc/apiRc/policy"; import { getPolicyList } from "@/packageRc/apiRc/policy";
export default { export default {
components: { components: {
PopupList, PopupList,
}, },
data() { data() {
return { return {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
}, },
total: 0, total: 0,
showMorePage: true, showMorePage: true,
tableData: [], tableData: [],
loading: false, loading: false,
} };
}, },
onLoad(options) { onLoad(options) {
this.queryParams.zclx = options.zclx this.queryParams.zclx = options.zclx;
}, },
onShow() { onShow() {
this.search(); this.search();
}, },
methods: { methods: {
goPolicyDetail(item) { goPolicyDetail(item) {
uni.navigateTo({ uni.navigateTo({
url: `/packageRc/pages/policy/policyDetail?id=${item.id}` url: `/packageRc/pages/policy/policyDetail?id=${item.id}`,
}) });
}, },
search() { search() {
this.showMorePage = true; this.showMorePage = true;
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1;
this.queryParams.pageSize = 20; this.queryParams.pageSize = 20;
this.tableData = []; this.tableData = [];
this.total = 0; this.total = 0;
this.getList(); this.getList();
}, },
// 触底加载 // 触底加载
getBottomList() { getBottomList() {
if ( if (this.queryParams.pageNum * this.queryParams.pageSize >= this.total) {
this.queryParams.pageNum * this.queryParams.pageSize >= this.showMorePage = false;
this.total } else if (
) { this.queryParams.pageNum * this.queryParams.pageSize <
this.showMorePage = false; this.total
} else if ( ) {
this.queryParams.pageNum * this.queryParams.pageSize < this.queryParams.pageNum++;
this.total this.getList();
) { if (
this.queryParams.pageNum++; this.queryParams.pageNum * this.queryParams.pageSize >=
this.getList(); this.total
if ( ) {
this.queryParams.pageNum * this.queryParams.pageSize >= this.showMorePage = false;
this.total }
) { }
this.showMorePage = false; },
} // 获取列表
} async getList() {
}, this.loading = true;
// 获取列表 getPolicyList(this.queryParams).then((res) => {
async getList() { this.gettedData(res);
this.loading = true; });
getPolicyList(this.queryParams).then((res) => { },
this.gettedData(res) gettedData(res) {
if (res.code == 200) {
if (res.rows.length < 10) {
this.showMorePage = false;
}
this.loading = false;
this.tableData = this.tableData.concat(res.rows);
this.total = res.total;
} else {
this.loading = false;
uni.showToast({
title: res.msg,
icon: "none",
}); });
}, }
gettedData(res) { },
if (res.code == 200) { },
if (res.rows.length < 10) { };
this.showMorePage = false;
}
this.loading = false;
this.tableData = this.tableData.concat(res.rows);
this.total = res.total;
} else {
this.loading = false;
uni.showToast({
title: res.msg,
icon: "none",
});
}
},
}
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.page { .page {
background-color: #f4f4f4 !important; background-color: #f4f4f4 !important;
height: 100vh; height: 100vh;
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% auto; background-size: 100% auto;
}
.search-line {
border-radius: 32px;
background: #FFFFFF;
box-sizing: border-box;
border: 1px solid #107AFD;
height: 64rpx;
border-radius: 32rpx;
padding: 0 32rpx;
display: flex;
align-items: center;
position: relative;
z-index: 1;
margin-top: 24rpx;
.search-icon {
width: 40rpx;
height: 40rpx;
}
}
.job-item {
position: relative;
margin-bottom: 24rpx;
background: #fff;
border-radius: 16rpx;
.item_btn{
height: 100rpx;
border-top: 1px solid #e3e8ee;
}
.line{
position: absolute;
right: 50%;
bottom: 20rpx;
width: 1px;
height: 60rpx;
background-color: #e3e8ee;
}
.status-card {
position: absolute;
right: 0;
top: 0;
border-radius: 0 16rpx 0 16rpx;
width: 160rpx;
line-height: 40rpx;
text-align: center;
color: #fff;
background: #B2C0D1;
border: 1px solid #9BA9B9;
font-size: 24rpx;
&.in {
background: #29D297;
border: 1px solid #1BBA83;
}
&.out {
background: #ECB83D;
border: 1px solid #D7892B;
}
&.far {
background: #EC7737;
border: 1px solid #C24F1A;
}
}
.top-container {
padding: 32rpx;
// margin-bottom: 24rpx;
.title-line {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 32rpx;
font-weight: bold;
margin-bottom: 16rpx;
.type-tag {
line-height: 40rpx;
width: 128rpx;
font-size: 24rpx;
color: #fff;
text-align: center;
&.qz {
background: #28CB5E;
}
&.yz {
background: #DD6728;
}
&.cy {
background: #23B5C5;
}
&.px {
background: #DDA728;
}
&.qt {
background: #2870DD;
}
}
.title {
color: #3D3D3D;
width: calc(100% - 137rpx);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
line-height: 40rpx;
}
.salary {
width: 33%;
color: #FA6553;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
text-align: right
}
}
.info {
color: #3D3D3D;
margin-bottom: 7rpx;
font-size: 28rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text {
color: #8E8E8E;
}
.not {
color: #EC7737;
font-weight: bold;
}
.ing {
color: #ECB83D;
font-weight: bold;
}
.finish {
color: #21C88D;
font-weight: bold;
}
}
}
.function-btn {
color: #BF5818;
border-top: 1px solid #E2E8EF;
padding-bottom: 6rpx;
line-height: 90rpx;
text-align: center;
}
}
.self-form {
padding: 32rpx;
.bordered {
border: 1rpx solid #dadbde;
padding: 9px;
border-radius: 4px;
}
}
.button-area {
padding: 24rpx 32rpx 68rpx;
background: #fff;
display: flex;
box-sizing: border-box;
border-radius: 16px 16px 0px 0px;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
.btn {
line-height: 72rpx;
width: 176rpx;
margin-right: 16rpx;
font-size: 28rpx;
border: 1px solid #B8C5D4;
color: #282828;
text-align: center;
border-radius: 8rpx;
}
.reset {
background: #DCE2E9;
}
.save {
background: linear-gradient(103deg, #1D64CF 0%, #1590D4 99%);
color: #fff;
border: 0;
flex-grow: 1;
}
}
.noValue {
color: rgb(192, 196, 204);
}
.addNeeds {
position: fixed;
right: 0;
bottom: 150rpx;
width: 150rpx;
overflow: hidden;
z-index: 10;
border-radius: 44rpx;
border-radius: 75rpx;
img {
display: block;
width: 100%;
}
}
.df_flex{
display: flex;
view{
flex-grow: 1;
text-align: center;
color: #4c6efb;
}
} }
.df_flex_1{
flex: 1; .search-line {
border-radius: 32px;
background: #ffffff;
box-sizing: border-box;
border: 1px solid #107afd;
height: 64rpx;
border-radius: 32rpx;
padding: 0 32rpx;
display: flex;
align-items: center;
position: relative;
z-index: 1;
margin-top: 24rpx;
.search-icon {
width: 40rpx;
height: 40rpx;
}
}
.job-item {
position: relative;
margin-bottom: 24rpx;
background: #fff;
border-radius: 16rpx;
.item_btn {
height: 100rpx;
border-top: 1px solid #e3e8ee;
}
.line {
position: absolute;
right: 50%;
bottom: 20rpx;
width: 1px;
height: 60rpx;
background-color: #e3e8ee;
}
.status-card {
position: absolute;
right: 0;
top: 0;
border-radius: 0 16rpx 0 16rpx;
width: 160rpx;
line-height: 40rpx;
text-align: center;
color: #fff;
background: #b2c0d1;
border: 1px solid #9ba9b9;
font-size: 24rpx;
&.in {
background: #29d297;
border: 1px solid #1bba83;
}
&.out {
background: #ecb83d;
border: 1px solid #d7892b;
}
&.far {
background: #ec7737;
border: 1px solid #c24f1a;
}
}
.top-container {
padding: 32rpx;
// margin-bottom: 24rpx;
.title-line {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 32rpx;
font-weight: bold;
margin-bottom: 16rpx;
.type-tag {
line-height: 40rpx;
width: 128rpx;
font-size: 24rpx;
color: #fff;
text-align: center;
&.qz {
background: #28cb5e;
}
&.yz {
background: #dd6728;
}
&.cy {
background: #23b5c5;
}
&.px {
background: #dda728;
}
&.qt {
background: #2870dd;
}
}
.title {
color: #3d3d3d;
width: calc(100% - 137rpx);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
line-height: 40rpx;
}
.salary {
width: 33%;
color: #fa6553;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
text-align: right;
}
}
.info {
color: #3d3d3d;
margin-bottom: 7rpx;
font-size: 28rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text {
color: #8e8e8e;
}
.not {
color: #ec7737;
font-weight: bold;
}
.ing {
color: #ecb83d;
font-weight: bold;
}
.finish {
color: #21c88d;
font-weight: bold;
}
}
}
.function-btn {
color: #bf5818;
border-top: 1px solid #e2e8ef;
padding-bottom: 6rpx;
line-height: 90rpx;
text-align: center;
}
}
.self-form {
padding: 32rpx;
.bordered {
border: 1rpx solid #dadbde;
padding: 9px;
border-radius: 4px;
}
}
.button-area {
padding: 24rpx 32rpx 68rpx;
background: #fff;
display: flex;
box-sizing: border-box;
border-radius: 16px 16px 0px 0px;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
.btn {
line-height: 72rpx;
width: 176rpx;
margin-right: 16rpx;
font-size: 28rpx;
border: 1px solid #b8c5d4;
color: #282828;
text-align: center;
border-radius: 8rpx;
}
.reset {
background: #dce2e9;
}
.save {
background: linear-gradient(103deg, #1d64cf 0%, #1590d4 99%);
color: #fff;
border: 0;
flex-grow: 1;
}
}
.noValue {
color: rgb(192, 196, 204);
}
.addNeeds {
position: fixed;
right: 0;
bottom: 150rpx;
width: 150rpx;
overflow: hidden;
z-index: 10;
border-radius: 44rpx;
border-radius: 75rpx;
img {
display: block;
width: 100%;
}
}
.df_flex {
display: flex;
view {
flex-grow: 1;
text-align: center;
color: #4c6efb;
}
}
.df_flex_1 {
flex: 1;
} }
.df__direction_column { .df__direction_column {
flex-direction: column; flex-direction: column;
} }
.df_align_center{ .df_align_center {
align-items: center; align-items: center;
} }
.df_justify_center{ .df_justify_center {
justify-content: center; justify-content: center;
} }
.df_content_between{ .df_content_between {
justify-content: space-between; justify-content: space-between;
} }
.df_shrink_0{ .df_shrink_0 {
flex-shrink: 0; flex-shrink: 0;
} }
/* 日期选择器样式 */ /* 日期选择器样式 */
@@ -405,72 +451,72 @@ import { getPolicyList } from "@/packageRc/apiRc/policy";
.date-value { .date-value {
color: #333; color: #333;
width: 100% width: 100%;
} }
.policy-list{ .policy-list {
width: 100%; width: 100%;
margin: 0 auto; margin: 0 auto;
color: #333333; color: #333333;
border-radius: 24rpx; border-radius: 24rpx;
background: #FFFFFF; background: #ffffff;
padding: 32rpx; padding: 32rpx;
margin-bottom: 24rpx; margin-bottom: 24rpx;
box-sizing: border-box; box-sizing: border-box;
position: relative; position: relative;
.sign{ .sign {
position: absolute; position: absolute;
font-size: 24rpx; font-size: 24rpx;
right: 0; right: 0;
top: 0; top: 0;
padding: 4rpx 14rpx; padding: 4rpx 14rpx;
border: 1rpx solid #EC4827; border: 1rpx solid #ec4827;
background: rgba(227, 79, 49, 0.09); background: rgba(227, 79, 49, 0.09);
border-top-right-radius: 24rpx; border-top-right-radius: 24rpx;
border-bottom-left-radius: 24rpx; border-bottom-left-radius: 24rpx;
color: #EC4827; color: #ec4827;
} }
.top-line{ .top-line {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
font-size: 24rpx; font-size: 24rpx;
color: #A2A2A2; color: #a2a2a2;
margin-bottom: 16rpx; margin-bottom: 16rpx;
.salary{ .salary {
font-size: 32rpx; font-size: 32rpx;
color: #4C6EFB; color: #4c6efb;
font-weight: bold; font-weight: bold;
} }
} }
.title{ .title {
font-size: 32rpx; font-size: 32rpx;
font-weight: bold; font-weight: bold;
color: #282828; color: #282828;
margin-bottom: 16rpx; margin-bottom: 16rpx;
display: flex; display: flex;
image{ image {
width: 46rpx; width: 46rpx;
height: 46rpx; height: 46rpx;
margin-right: 11rpx; margin-right: 11rpx;
} }
} }
.infos{ .infos {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
font-size: 24rpx; font-size: 24rpx;
margin-bottom: 16rpx; margin-bottom: 16rpx;
line-height: 42rpx; line-height: 42rpx;
view{ view {
padding: 0 16rpx; padding: 0 16rpx;
margin-right: 10rpx; margin-right: 10rpx;
background: #F2F2F2; background: #f2f2f2;
} }
} }
.bottom-line{ .bottom-line {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
font-size: 24rpx; font-size: 24rpx;
color: #A2A2A2; color: #a2a2a2;
margin-top: 12rpx; margin-top: 12rpx;
} }
} }