Browse Source

添加页面

master
tianqian 2 years ago
parent
commit
6ca737ac8f
  1. 9
      miniprogram/app.json
  2. BIN
      miniprogram/images/main/home01.png
  3. BIN
      miniprogram/images/main/home02.png
  4. BIN
      miniprogram/images/main/home03.png
  5. BIN
      miniprogram/images/main/home04.png
  6. BIN
      miniprogram/images/main/home05.png
  7. BIN
      miniprogram/images/main/home06.png
  8. BIN
      miniprogram/images/main/home_top.png
  9. BIN
      miniprogram/images/main/icon01-a.png
  10. BIN
      miniprogram/images/main/icon01.png
  11. BIN
      miniprogram/images/main/icon02-a.png
  12. BIN
      miniprogram/images/main/icon02.png
  13. BIN
      miniprogram/images/main/icon03-a.png
  14. BIN
      miniprogram/images/main/icon03.png
  15. 66
      miniprogram/pages/CheckIn/CheckIn.js
  16. 3
      miniprogram/pages/CheckIn/CheckIn.json
  17. 2
      miniprogram/pages/CheckIn/CheckIn.wxml
  18. 1
      miniprogram/pages/CheckIn/CheckIn.wxss
  19. 66
      miniprogram/pages/Pioneer/Pioneer.js
  20. 3
      miniprogram/pages/Pioneer/Pioneer.json
  21. 2
      miniprogram/pages/Pioneer/Pioneer.wxml
  22. 1
      miniprogram/pages/Pioneer/Pioneer.wxss
  23. 30
      miniprogram/pages/home/components/banner/banner.js
  24. 3
      miniprogram/pages/home/components/banner/banner.json
  25. 28
      miniprogram/pages/home/components/banner/banner.wxml
  26. 77
      miniprogram/pages/home/components/banner/banner.wxss
  27. 13
      miniprogram/pages/home/components/newsList/newsList.js
  28. 3
      miniprogram/pages/home/components/newsList/newsList.json
  29. 24
      miniprogram/pages/home/components/newsList/newsList.wxml
  30. 69
      miniprogram/pages/home/components/newsList/newsList.wxss
  31. 17
      miniprogram/pages/home/components/notice/notice.js
  32. 3
      miniprogram/pages/home/components/notice/notice.json
  33. 16
      miniprogram/pages/home/components/notice/notice.wxml
  34. 49
      miniprogram/pages/home/components/notice/notice.wxss
  35. 23
      miniprogram/pages/home/components/project/project.js
  36. 3
      miniprogram/pages/home/components/project/project.json
  37. 41
      miniprogram/pages/home/components/project/project.wxml
  38. 142
      miniprogram/pages/home/components/project/project.wxss
  39. 280
      miniprogram/pages/home/components/sudoku/sudoku.js
  40. 3
      miniprogram/pages/home/components/sudoku/sudoku.json
  41. 24
      miniprogram/pages/home/components/sudoku/sudoku.wxml
  42. 87
      miniprogram/pages/home/components/sudoku/sudoku.wxss
  43. 594
      miniprogram/pages/home/home.js
  44. 18
      miniprogram/pages/home/home.json
  45. 61
      miniprogram/pages/home/home.wxml
  46. 149
      miniprogram/pages/home/home.wxss
  47. 66
      miniprogram/pages/knight/knight.js
  48. 3
      miniprogram/pages/knight/knight.json
  49. 2
      miniprogram/pages/knight/knight.wxml
  50. 1
      miniprogram/pages/knight/knight.wxss
  51. 66
      miniprogram/pages/message/message.js
  52. 3
      miniprogram/pages/message/message.json
  53. 2
      miniprogram/pages/message/message.wxml
  54. 1
      miniprogram/pages/message/message.wxss
  55. 66
      miniprogram/pages/my/my.js
  56. 3
      miniprogram/pages/my/my.json
  57. 2
      miniprogram/pages/my/my.wxml
  58. 1
      miniprogram/pages/my/my.wxss
  59. 66
      miniprogram/pages/redGrider/redGrider.js
  60. 3
      miniprogram/pages/redGrider/redGrider.json
  61. 2
      miniprogram/pages/redGrider/redGrider.wxml
  62. 1
      miniprogram/pages/redGrider/redGrider.wxss
  63. 66
      miniprogram/pages/redSail/redSail.js
  64. 3
      miniprogram/pages/redSail/redSail.json
  65. 2
      miniprogram/pages/redSail/redSail.wxml
  66. 1
      miniprogram/pages/redSail/redSail.wxss
  67. 66
      miniprogram/pages/volunteer/volunteer.js
  68. 3
      miniprogram/pages/volunteer/volunteer.json
  69. 2
      miniprogram/pages/volunteer/volunteer.wxml
  70. 1
      miniprogram/pages/volunteer/volunteer.wxss
  71. 2
      miniprogram/project.config.json
  72. 6
      miniprogram/project.private.config.json

9
miniprogram/app.json

@ -1,5 +1,14 @@
{
"pages": [
"pages/home/home",
"pages/redSail/redSail",
"pages/knight/knight",
"pages/redGrider/redGrider",
"pages/Pioneer/Pioneer",
"pages/CheckIn/CheckIn",
"pages/volunteer/volunteer",
"pages/message/message",
"pages/my/my",
"pages/index/index",
"pages/toRegister/toRegister",
"pages/heart/heart",

BIN
miniprogram/images/main/home01.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
miniprogram/images/main/home02.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
miniprogram/images/main/home03.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
miniprogram/images/main/home04.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
miniprogram/images/main/home05.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
miniprogram/images/main/home06.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
miniprogram/images/main/home_top.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 KiB

BIN
miniprogram/images/main/icon01-a.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
miniprogram/images/main/icon01.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
miniprogram/images/main/icon02-a.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

BIN
miniprogram/images/main/icon02.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
miniprogram/images/main/icon03-a.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

BIN
miniprogram/images/main/icon03.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1005 B

66
miniprogram/pages/CheckIn/CheckIn.js

@ -0,0 +1,66 @@
// pages/CheckIn/CheckIn.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

3
miniprogram/pages/CheckIn/CheckIn.json

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

2
miniprogram/pages/CheckIn/CheckIn.wxml

@ -0,0 +1,2 @@
<!--pages/CheckIn/CheckIn.wxml-->
<text>pages/CheckIn/CheckIn.wxml</text>

1
miniprogram/pages/CheckIn/CheckIn.wxss

@ -0,0 +1 @@
/* pages/CheckIn/CheckIn.wxss */

66
miniprogram/pages/Pioneer/Pioneer.js

@ -0,0 +1,66 @@
// pages/Pioneer/Pioneer.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

3
miniprogram/pages/Pioneer/Pioneer.json

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

2
miniprogram/pages/Pioneer/Pioneer.wxml

@ -0,0 +1,2 @@
<!--pages/Pioneer/Pioneer.wxml-->
<text>pages/Pioneer/Pioneer.wxml</text>

1
miniprogram/pages/Pioneer/Pioneer.wxss

@ -0,0 +1 @@
/* pages/Pioneer/Pioneer.wxss */

30
miniprogram/pages/home/components/banner/banner.js

@ -0,0 +1,30 @@
Component({
data: {
currentIndex: 0
},
properties: {
bannerList: {
type: Array,
value: []
}
},
lifetimes: {
},
pageLifetimes: {
},
methods: {
swiperChange (e) {
if (e.detail.source === 'touch') {
this.setData({
currentIndex: e.detail.current
})
}
},
navigatetoBannerDetail (e) {
const { id, url, newsflag } = e.currentTarget.dataset
this.triggerEvent('navigatetoBannerDetail', {id, url, newsFlag: newsflag} )
}
}
})

3
miniprogram/pages/home/components/banner/banner.json

@ -0,0 +1,3 @@
{
"component": true
}

28
miniprogram/pages/home/components/banner/banner.wxml

@ -0,0 +1,28 @@
<view class="banner">
<swiper circular="{{true}}" autoplay="{{true}}" interval="{{3000}}" current="{{currentIndex}}" bindchange="swiperChange">
<swiper-item
wx:for="{{bannerList}}"
wx:key="index"
wx:for-index="index"
wx:for-item="item">
<view
class="banner-item"
data-id="{{item.id}}"
data-url="{{item.url}}"
data-newsflag="{{item.newsFlag}}"
bindtap="navigatetoBannerDetail">
<image mode="aspectFill" class="banner-img" src="{{item.imgUrl}}" />
<view class="banner-content">
<view class="title">
<view class="title-text">{{item.title}}</view>
</view>
<view class="indication">
<block wx:for="{{bannerList}}" wx:key="index">
<view class="spot{{index == currentIndex? ' active' : ''}}"></view>
</block>
</view>
</view>
</view>
</swiper-item>
</swiper>
</view>

77
miniprogram/pages/home/components/banner/banner.wxss

@ -0,0 +1,77 @@
.banner {
width: 100%;
height: 320rpx;
}
.banner swiper {
width: 100%;
height: 320rpx;
}
.banner-item {
width: 100%;
height: 320rpx;
position: relative;
}
.banner-item .banner-img {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
}
.banner-item .banner-content {
position: relative;
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: 100;
display: flex;
align-items: flex-end;
}
.banner-item .banner-content .title {
width: 100%;
height: 50rpx;
background: rgba(0,0,0, 0.4);
box-sizing: border-box;
padding: 0 20rpx;
display: flex;
align-items: center;
justify-content: space-between;
}
.banner-item .banner-content .title .title-text {
width: 75%;
height: 50rpx;
color: #fff;
font-size: 26rpx;
line-height: 50rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* 自定义轮播指示点样式 */
.indication {
height: 50rpx;
display:flex;
position: absolute;
bottom: -2rpx;
right: 20rpx;
flex-direction:row;
align-items:center;
justify-content:center;
}
/* 未选中指示点样式 */
.spot{
width: 15rpx;
height: 15rpx;
border-radius: 50%;
margin-right: 10rpx;
background-color: #c6c6c8;
}
/*选中指示样式 */
.spot.active{
width: 15rpx;
height: 15rpx;
border-radius: 50%;
background-color: #fff;
}

13
miniprogram/pages/home/components/newsList/newsList.js

@ -0,0 +1,13 @@
Component({
properties: {
newsList: {
type: Array,
value: []
}
},
methods: {
navigatetoNewsDetail (e) {
this.triggerEvent('navigatetoNewsDetail', {newsId: e.currentTarget.dataset.newsid})
}
}
})

3
miniprogram/pages/home/components/newsList/newsList.json

@ -0,0 +1,3 @@
{
"component": true
}

24
miniprogram/pages/home/components/newsList/newsList.wxml

@ -0,0 +1,24 @@
<wxs src="../../../../utils/filter.wxs" module="filters"></wxs>
<view class="news-list">
<view
hover-stay-time="150"
hover-class="hover-sudoku"
class="list-item"
data-newsid="{{item.id}}"
bindtap="navigatetoNewsDetail"
wx:for="{{newsList}}"
wx:for-item="item"
wx:for-index="index"
wx:key="index">
<view class="left">
<view class="title">{{item.newsTitle}}</view>
<view class="bottom">
<view class="category">{{item.deptName}}-{{item.newsCategoryName}}</view>
<view class="time">{{filters.formatTimestamp(item.newsStartTime)}}</view>
</view>
</view>
<view class="right">
<image src="{{item.newsImageUrl}}" />
</view>
</view>
</view>

69
miniprogram/pages/home/components/newsList/newsList.wxss

@ -0,0 +1,69 @@
.news-list {
width: 100%;
background: #fff;
box-sizing: border-box;
padding: 0 35rpx;
margin-top: 10rpx;
}
.news-list .list-item {
width: 100%;
height: 205rpx;
box-sizing: border-box;
padding: 30rpx 0;
display: flex;
align-items: center;
justify-content: space-between;
}
.news-list .list-item .left {
width: calc(100% - 50rpx - 220rpx);
height: 146rpx;
}
.news-list .list-item .left .title {
color: #3f3f3f;
font-size: 30rpx;
line-height: 45rpx;
display: -webkit-box;
overflow: hidden;
text-overflow: ellipsis;
word-wrap: break-word;
white-space: normal !important;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.news-list .list-item .left .bottom {
display: flex;
align-items: center;
justify-content: space-between;
}
.news-list .list-item .left .bottom .category {
color: #aaa;
font-size: 22rpx;
line-height: 48rpx;
width: calc(100% - 150rpx);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.news-list .list-item .left .bottom .time {
color: #aaa;
font-size: 22rpx;
line-height: 48rpx;
width: 150rpx;
text-align: right;
}
.news-list .list-item .right {
width: 220rpx;
height: 146rpx;
border-radius: 12rpx;
overflow: hidden;
}
.news-list .list-item .right image {
width: 100%;
height:100%;
}
.news-list .list-item + .list-item {
border-top: 1rpx solid #ece9ec;
}
.news-list .hover-sudoku {
background: rgba(0,0,0,0.1);
}

17
miniprogram/pages/home/components/notice/notice.js

@ -0,0 +1,17 @@
Component({
properties: {
infoList: {
type: Array,
value: []
},
unreadnum: {
type: Number,
value: 0
}
},
methods: {
navigateToInfoList () {
this.triggerEvent('navigateToInfoList')
}
}
})

3
miniprogram/pages/home/components/notice/notice.json

@ -0,0 +1,3 @@
{
"component": true
}

16
miniprogram/pages/home/components/notice/notice.wxml

@ -0,0 +1,16 @@
<view class="notice" bindtap="navigateToInfoList">
<view class="border-content">
<image class="notice-logo" src="../../../../images/home/notice-logo.png" />
<image class="info-note" src="../../../../images/home/info-note.png" />
<swiper circular="{{true}}" autoplay="{{true}}" interval="{{3000}}" vertical="{{true}}">
<swiper-item
wx:for="{{infoList}}"
wx:for-index="index"
wx:for-item="item"
wx:key="index">
<view class="content">{{item.title}}</view>
</swiper-item>
</swiper>
<view class="num">{{unreadnum}}</view>
</view>
</view>

49
miniprogram/pages/home/components/notice/notice.wxss

@ -0,0 +1,49 @@
.notice {
width: 100%;
background: #fff;
height: 76rpx;
box-sizing: border-box;
padding: 0 40rpx;
}
.notice .border-content {
width: 100%;
background: #fff;
height: 76rpx;
display: flex;
align-items: center;
justify-content: center;
border-top: 1rpx solid #ece9ec;
}
.notice .notice-logo {
width: 32rpx;
height: 32rpx;
}
.notice .info-note {
width: 94rpx;
height: 24rpx;
margin: 0 20rpx 0 10rpx;
}
.notice swiper {
height: 76rpx;
width: calc(100% - 32rpx - 94rpx - 40rpx - 20rpx);
}
.notice swiper .content {
height: 76rpx;
line-height: 76rpx;
color: #aaa;
font-size: 24rpx;
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.notice .num {
font-size: 18rpx;
height: 28rpx;
text-align: center;
line-height: 28rpx;
color: #fff;
background: #fdb500;
border-radius: 8rpx 8rpx 8rpx 0;
width: 40rpx;
}

23
miniprogram/pages/home/components/project/project.js

@ -0,0 +1,23 @@
Component({
data: {
currentIndex: 0
},
properties: {
projectList: {
type: Array,
value: []
}
},
methods: {
// 手动滑动swiper
swiperChange (e) {
this.setData({
currentIndex: e.detail.current
})
},
// 跳转到项目详情
navigatetoItemDetail (e) {
this.triggerEvent('navigatetoItemDetail', { itemId: e.currentTarget.dataset.id})
}
}
})

3
miniprogram/pages/home/components/project/project.json

@ -0,0 +1,3 @@
{
"component": true
}

41
miniprogram/pages/home/components/project/project.wxml

@ -0,0 +1,41 @@
<wxs src="../../../../utils/filter.wxs" module="filters"></wxs>
<view class="project" wx:if="{{projectList.length > 0}}">
<swiper circular="{{true}}" autoplay="{{false}}" current="{{currentIndex}}" bindchange="swiperChange">
<swiper-item wx:for="{{projectList}}" wx:for-index="index" wx:for-item="item" wx:key="index">
<view class="content" data-id="{{item.id}}" bindtap="navigatetoItemDetail">
<view class="top">
<image mode="aspectFill" wx:if="{{item.images.length > 0}}" class="top-bg" src="{{item.images[0]}}" />
<image wx:else class="top-bg" src="https://epdc-shibei.elinkservice.cn/epdcFile/M00/02/89/rBAAM16O4_OAB6d6AALSjaFpI9M647.png" />
<view class="top-content">
<view>
<image class="project-status" src="{{filters.formatState(item.stateName)}}" />
</view>
<view class="progress">
<view class="image-logo">
<image class="progress-logo" src="../../../../images/home/new-progress.png"/>
</view>
<view class="progress-content">最新进展:{{item.latestProgress.progressName}}</view>
</view>
</view>
</view>
<view class="bottom">
<view class="title">{{item.itemContent}}</view>
<view class="info">
<view class="left">
<image class="avatar" src="{{item.avatar}}" />
<view class="name">{{item.nickname}}</view>
</view>
<view class="right">表达态度 {{item.statementNum}}次</view>
</view>
</view>
</view>
</swiper-item>
</swiper>
<view class="indication">
<block wx:for="{{projectList}}" wx:key="index">
<view class="spot{{index == currentIndex? ' active' : ''}}"></view>
</block>
</view>
</view>

142
miniprogram/pages/home/components/project/project.wxss

@ -0,0 +1,142 @@
.project {
width: 100%;
height: 450rpx;
box-sizing: border-box;
padding-top: 20rpx;
}
.project swiper {
width: 100%;
height: 380rpx;
}
.project swiper swiper-item {
box-sizing: border-box;
padding: 0 40rpx;
width:100%;
height: 380rpx;
}
.project .content {
width: 100%;
height: 380rpx;
background: #fff;
border-radius: 0 16rpx 16rpx 16rpx;
overflow: hidden;
}
.project .content .top {
width:100%;
height: 260rpx;
position: relative;
}
.project .content .top .top-bg {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
z-index: 10;
}
.project .content .top .top-content {
width: 100%;
height: 260rpx;
position: relative;
z-index: 100;
display: flex;
justify-content: space-between;
flex-direction: column;
}
.project .content .top .top-content .project-status {
width: 110rpx;
height: 42rpx;
}
.project .content .top .top-content .progress {
height: 36rpx;
width: 36%;
margin-left: 20rpx;
background: rgba(0,0,0, 0.4);
border-radius: 17rpx;
margin-bottom: 10rpx;
display: flex;
align-items: center;
}
.project .content .top .top-content .progress .image-logo {
width: 36rpx;
height:36rpx;
}
.project .content .top .top-content .progress .progress-logo {
width: 36rpx;
height: 36rpx;
position: relative;
top: -2rpx;
}
.project .content .top .top-content .progress .progress-content {
color: #fff;
font-size: 22rpx;
line-height: 36rpx;
margin-left: 5rpx;
}
.project .content .bottom {
width: 100%;
height: 120rpx;
box-sizing: border-box;
padding: 0 20rpx;
}
.project .content .bottom .title {
color: #333;
font-size: 30rpx;
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
line-height: 62rpx;
}
.project .content .bottom .info {
width:100%;
height: 30rpx;
display: flex;
align-items: center;
justify-content: space-between;
}
.project .content .bottom .info .left {
display: flex;
align-items: center;
}
.project .content .bottom .info .left .avatar {
width: 30rpx;
height: 30rpx;
border-radius: 50%;
margin-right: 10rpx;
position: relative;
top: 2rpx;
}
.project .content .bottom .info .left .name {
font-size: 22rpx;
color:#aaa;
}
.project .content .bottom .info .right {
color: #aaa;
font-size: 20rpx;
}
/* 自定义轮播指示点样式 */
.indication {
height: 45rpx;
width: 100%;
display:flex;
flex-direction: row;
align-items:center;
justify-content:center;
}
/* 未选中指示点样式 */
.spot{
width: 22rpx;
height: 8rpx;
border-radius: 3rpx;
margin-right: 10rpx;
background-color: #dcdbe0;
}
/*选中指示样式 */
.spot.active{
width: 22rpx;
height: 8rpx;
border-radius: 53rpx;
background-color: #cb090b;
}

280
miniprogram/pages/home/components/sudoku/sudoku.js

@ -0,0 +1,280 @@
Component({
properties: {
sudokuState: {
type: Object,
value: {
consultAvailable: "0",
appraiseAvailable: "0",
talkAndNeedAndPartyAvaliable: "0"
},
},
userInfo: {
type: Object,
},
},
observers: {
sudokuState: function (value) {
this.updateList()
}
},
data: {
isShowAll: false, // 是否显示全部菜单 默认最多显示8个(2行)
consultAvailableList: [
{
title: "网格专员",
icon: "../../../../images/home/consult.png",
triggerEvent: "navigatetoConsultion",
sort: 7
}
],
appraiseAvailableList: [
{
title: "清廉市北",
icon: "../../../../images/home/appramise.png",
triggerEvent: "navigatetoAppraise",
sort: 9
}
],
talkAndNeedAndPartyAvaliableList: [
// {
// title: "随时讲",
// icon: "../../../../images/home/suishijiang.png",
// triggerEvent: "navigateToAnytimeSay",
// sort: 1
// },
{
title: "需求清单",
icon: "../../../../images/home/xuqiuqingdan.png",
triggerEvent: "navigateToDemand",
sort: 3
},
{
title: "党群服务中心",
icon: "../../../../images/home/party-masses.png",
triggerEvent: "navigateToPartyMasses",
sort: 8
},
{
title: "问卷调查",
icon: "../../../../images/home/wenjuandiaocha.png",
triggerEvent: "navigateToQuestionnaire",
sort: 6
},
{
title: "办事指南",
icon: "../../../../images/home/banshizhinan.png",
triggerEvent: "navigateToServiceGuide",
sort: 4
}
],
commonList: [
// {
// title: "有奖举报",
// icon: "../../../../images/home/chuangC.png",
// triggerEvent: "navigateToAnytimeSay_cc",
// sort: 1
// },
// {
// title: "随时报",
// icon: "../../../../images/home/suishibao.png",
// triggerEvent: "navigateToAddIssue",
// sort: 2
// },
{
title: "通知公告",
icon: "../../../../images/home/notice.png",
triggerEvent: "navigateToNotice",
sort: 5
},
{
title: "人才赋能",
icon: "../../../../images/home/talents.png",
triggerEvent: "navigatetoTalents",
sort: 10
},
{
title: "党员风采",
icon: "../../../../images/home/partyElegant.png",
triggerEvent: "navigatetoPartyElegant",
sort: 11
},
{
title: "联建活动",
icon: "../../../../images/home/dyfc.png",
triggerEvent: "navigatetoUnionBuild",
sort: 11
},
// { **********************************暂时屏蔽这期功能不上线2022/3/31********************************************
// title: "行程上报",
// icon: "../../../../images/home/xingchengshangbao.png",
// triggerEvent: "navigateToTripReport",
// sort: 11
// },
], // 通用的菜单
menuList: []
},
lifetimes:{
attached () {
this.updateList()
}
},
methods: {
updateList () {
let list1 = []
let list2 = []
let list3 = []
if (this.data.sudokuState.consultAvailable && this.data.sudokuState.consultAvailable == "1") {
list1 = this.data.consultAvailableList
}
if (this.data.sudokuState.appraiseAvailable && this.data.sudokuState.appraiseAvailable == "1") {
list2 = this.data.appraiseAvailableList
}
if (this.data.sudokuState.talkAndNeedAndPartyAvaliable && this.data.sudokuState.talkAndNeedAndPartyAvaliable == "1") {
list3 = this.data.talkAndNeedAndPartyAvaliableList
}
const menuList = [ ...this.data.commonList, ...list1, ...list2, ...list3 ]
menuList.sort((a, b) => a.sort - b.sort)
this.setData({
menuList
})
// console.log(this.data.sudokuState, this.data.menuList)
},
navigateTo (e) {
let to = e.currentTarget.dataset.to
if (to == "navigateToTripReport") { // 行程上报
// wx.navigateTo({
// url: "/subpages/extend/pages/tripReport/tripReport"
// })
this.triggerEvent("navigateToTripReport")
} else if (to == "navigateToPartyMasses") { // 党群服务中心
this.triggerEvent("navigateToPartyMasses")
// wx.navigateTo({
// url: "/subpages/partyMassesServiceCenter/pages/partyMassesMap/partyMassesMap"
// })
} else if (to == "navigateToQuestionnaire") { // 问卷调查
this.triggerEvent("navigateToQuestionnaire")
// wx.navigateTo({
// url: "/subpages/questionnaire/pages/index/index"
// })
} else if (to == "navigateToServiceGuide") { // 办事指南
this.triggerEvent("navigateToServiceGuide")
// wx.navigateTo({
// url: "/subpages/workguide/pages/index/index"
// })
} else if (to == "navigatetoPartyElegant") { // 党员风采
this.triggerEvent("navigatetoPartyElegant")
// wx.navigateTo({
// url: "/subpages/workguide/pages/index/index"
// })
}else if (to == "navigatetoUnionBuild") { // 联建活动
this.triggerEvent("navigatetoUnionBuild")
} else if (to == "navigatetoTalents") { // 人才赋能
this.navigatetoTalents()
} else {
this.triggerEvent(to)
}
},
changeMenu () {
this.data.isShowAll = !this.data.isShowAll
this.setData({
isShowAll: this.data.isShowAll
})
},
// 跳转到需求清单
navigateToDemand () {
this.triggerEvent("navigateToDemand")
},
// 跳转到随时讲
navigateToAnytimeSay() {
this.triggerEvent("navigateToAnytimeSay")
},
// 跳转到随时讲
navigateToAnytimeSay_cc() {
this.triggerEvent("navigateToAnytimeSay_cc")
},
// 跳转到我要报事
navigateToAddIssue() {
this.triggerEvent("navigateToAddIssue")
},
// 跳转到网格专员
navigatetoConsultion() {
this.triggerEvent("navigatetoConsultion")
},
// 跳转到通知公告
navigateToNotice() {
this.triggerEvent("navigateToNotice")
},
// 跳转到请您监督
navigatetoAppraise() {
this.triggerEvent("navigatetoAppraise")
},
// 工商联
navigatetoAssociatio() {
wx.navigateToMiniProgram({
appId: "wx2e9510d76f23fff6",
path: "",
envVersion: "release", // 打开正式版ß
// envVersion: "develop",// 打开正式版ß
success() {
// 打开成功
console.log("点击允许")
},
fail: function (err) {
console.log(err)
},
})
},
// 人才赋能
navigatetoTalents() {
let { faceImg, mobile, nickname } = this.data.userInfo
console.log("", this.data.userInfo)
wx.navigateToMiniProgram({
appId: "wx8f4ebf5537cf4962",
path: "",
envVersion: "release", // 打开正式版ß
// envVersion: "develop",
success() {
// 打开成功
console.log("点击允许")
},
extraData: {
nickname,
mobile,
faceImg,
},
fail: function (err) {
console.log(err)
},
})
},
// 党史学习
navigateToPartyHistory() {
wx.navigateToMiniProgram({
appId: "wx2aed548e27e28de9",
path: "/pages/detail/detail?qid=606fc907e17b4a1a960591ca",
envVersion: "release", // 打开正式版ß
success() {
// 打开成功
console.log("点击允许")
},
fail: function (err) {
console.log(err)
},
})
},
// APP跳转
navigatetoApp() {
// console.log("111", wx.getLaunchOptionsSync())
wx.navigateTo({
url: "/pages/navigatetoApp/navigatetoApp",
})
},
launchAppError(e) {
console.log(e.detail.errMsg)
},
handleContact(e) {
console.log(e.detail.path)
console.log(e.detail.query)
},
},
})

3
miniprogram/pages/home/components/sudoku/sudoku.json

@ -0,0 +1,3 @@
{
"component": true
}

24
miniprogram/pages/home/components/sudoku/sudoku.wxml

@ -0,0 +1,24 @@
<view class="sudoku">
<view class="content" style="height:{{menuList.length > 8 && !isShowAll ? '400rpx' : 'auto'}};">
<view class="item" hover-stay-time="150" hover-class="hover-sudoku" data-to="{{item.triggerEvent}}" bindtap="navigateTo" wx:for="{{menuList}}" wx:for-item="item" wx:for-index="index" wx:key="index">
<image src="{{item.icon}}" />
<view class="name">{{item.title}}</view>
</view>
<!-- <view class="item" hover-stay-time="150" hover-class="hover-sudoku" bindtap="navigatetoAssociatio">
<image src="../../../../images/home/Associatio.png" />
<view class="name">工商联</view>
</view> -->
<!-- <button open-type="launchApp" app-parameter="wechat" binderror="launchAppError" class="item button-item" bind:tap="navigatetoApp">
<image src="../../../../images/home/app-icon.png" />
<view>初心互助</view>
</button> -->
<!-- <button open-type="launchApp" app-parameter="wechat" binderror="launchAppError" class="item button-item" bind:tap="navigateToPartyHistory">
<image src="../../../../images/home/partyhistory.png" />
<view>党史学习</view>
</button> -->
<!-- <button class='modal-btn' open-type='contact' bindcontact="handleContact">进入【护血糖APP】</button> -->
</view>
<view class="show-all" bindtap="changeMenu" wx:if="{{menuList.length > 8}}">
<image src="../../../../images/home/{{isShowAll?'up':'down'}}.png" />
</view>
</view>

87
miniprogram/pages/home/components/sudoku/sudoku.wxss

@ -0,0 +1,87 @@
.sudoku {
background: #fff;
padding: 0 20rpx;
position: relative;
}
.show-all {
height: 60rpx;
text-align: right;
padding: 0 20rpx;
display: flex;
align-items: center;
justify-content: center;
}
.show-all image {
height: 40rpx;
width: 40rpx;
}
.content {
width: 100%;
/* height: 215rpx; */
display: inline-block;
box-sizing: border-box;
overflow: hidden;
}
.item {
display: inline-flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 25%;
margin-top: 25rpx;
}
.item image {
width: 126rpx;
height: 126rpx;
}
.item .name {
font-size: 28rpx;
color: #3f3f3f;
font-weight: bold;
}
.sudoku .hover-sudoku {
background: rgba(0, 0, 0, 0.1);
}
button::after {
content: " ";
width: 200%;
height: 200%;
position: absolute;
top: 0;
left: 0;
border: none !important;
-webkit-transform: scale(.5);
transform: scale(.5);
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
box-sizing: border-box;
border-radius: 10px;
}
button {
position: relative;
display: block;
margin-left: auto;
margin-right: auto;
padding-left: 14px;
padding-right: 14px;
box-sizing: border-box;
font-size: 28rpx;
font-weight: bold;
text-align: center;
text-decoration: none;
line-height: 40rpx !important;
border-radius: 5px;
-webkit-tap-highlight-color: transparent;
overflow: hidden;
color: #3f3f3f;
background-color: #fff;
}

594
miniprogram/pages/home/home.js

@ -0,0 +1,594 @@
const app = getApp()
const api = require("../../utils/api")
const homeApi = require("../../utils/home")
const global = require("../../utils/config")
import { getTimestamp } from "../../utils/common"
import checkoutVersion from "../../utils/checkVersion"
// import regeneratorRuntime from "../../utils/runtime.js"
Page({
data: {
statusHeight: 0, // 自定义头部状态栏高度
navigationHeight: 0, // 自定义头部导航栏高度
bannerList: [], // banner列表
newsList: [], // 新闻列表
projectList: [], // 项目列表
infoList: [], // 消息列表
unReadNum: 0, // 未读数量
loadMoreType: "none",
loadMoreVisible: false,
pageNo: 1, // 新闻列表-分页页码
pageSize: 10, // 新闻列表-分页页长
timestamp: "", // 时间戳
sudokuState: { // 九宫格显隐状态
consultAvailable: "0", // 网格专员
appraiseAvailable: "0", // 请您监督,
talkAndNeedAndPartyAvaliable: "0" // 随时讲、需求清单、党群服务中心
},
completeInfoDialogVisible: false, // 完善信息弹框显隐
gridId: "", // 网格id
departmentName: "", // 所在网格
departmentId: "",//1191534416067149825所在网格id
street: "",//所在街道
isCarryLoad: false,
userId: "",
userInfo: {
nickname: "",
mobile: "",
faceImg: ""
},
visible: false,
signMsg: "",
signCode: 0,
isSignUp: 0,
communityId: "" // 社区id
},
async onLoad(options) {
wx.showLoading({
title: "加载中,请稍后",
mask: true
})
if (options.shareType) {
const para = {
shareType: options.shareType,
detailId: options.detailId,
infoCompleted: options.infoCompleted ? options.infoCompleted : "",
type: options.detailType ? options.detailType : "",
showClassify: options.showClassify ? options.showClassify : "",
nowGridId: options.nowGridId ? options.nowGridId : ""
}
wx.setStorageSync("shareObj", JSON.stringify(para))
}
if (options.scene) {
this.setData({
statusHeight: app.globalData.deviceInfo.statusHeight,
navigationHeight: app.globalData.deviceInfo.navigationHeight,
gridId: options.scene,
})
} else {
this.setData({
statusHeight: app.globalData.deviceInfo.statusHeight,
navigationHeight: app.globalData.deviceInfo.navigationHeight,
})
}
// 切换网格的时候,更换网格id
if (options.departmentId) {
this.setData({
departmentId: options.departmentId
})
}
await this.getUserState()
this.data.isCarryLoad = true
},
onTabItemTap() {
this.getUserState()
},
onShow() {
// 检查版本更新
checkoutVersion()
this.getFirstInfo()
},
onReachBottom() {
this.setData({
loadMoreVisible: true
})
if (this.data.loadMoreType === "loading") {
this.data.pageNo += 1
this.getNewsList()
}
},
// 根据微信code查询用户当前状态
getUserState() {
let that = this
wx.login({
success(res) {
if (res.code) {
let code = res.code
api.getToken(code).then(res => {
wx.hideLoading()
const state = res.data.userState
app.globalData.infoCompleted = state
wx.setStorageSync("topGridName", res.data.grid)
wx.setStorageSync("gridId", res.data.gridId) //当前网格id,新闻、议题、项目分享时用
wx.setStorageSync("token", res.data.token)
that.setData({
departmentName: res.data.grid,
departmentId: res.data.gridId,
userId: res.data.userId
})
that.getComplete()
that.getUserLoginlog()
// 扫码进入
if (that.data.gridId !== "") {
// 扫的是网格长码
if (that.data.gridId == "gridLeader") {
wx.redirectTo({
url: "/pages/gridLeaderRegister/gridLeaderRegister"
})
// 扫的是网格码
} else {
wx.redirectTo({
url: `/pages/formid/formid?gid=${that.data.gridId}`
})
}
} else {
if (state == "4") {
// 非扫码进入,通过搜索小程序直接进入的情况
if (wx.getStorageSync("shareObj")) {
const para = JSON.parse(wx.getStorageSync("shareObj"))
wx.redirectTo({
url: "/pages/formid/formid?gid=" + para.nowGridId
})
} else {
wx.redirectTo({
url: "/pages/toRegister/toRegister"
})
}
} else {
if (wx.getStorageSync("shareObj")) {
const para = JSON.parse(wx.getStorageSync("shareObj"))
if (para.shareType === "newsDetail") {
wx.navigateTo({
url: `/subpages/home/pages/newsDetail/newsDetail?id=${para.detailId}`
})
} else if (para.shareType === "discussionDetail") {
wx.navigateTo({
url: `/subpages/discussion/pages/discussionDetail/discussionDetail?detailId=${para.detailId}&type=${para.type}&showClassify=${para.showClassify}`
})
}
wx.removeStorageSync("shareObj")
}
that.initLoad()
}
}
})
} else {
console.log("登录失败" + res.errMsg)
}
}
})
},
// 获取小程序用户登录日志
async getUserLoginlog() {
let data = {
userId: this.data.userId
}
await api.userLoginlog(data)
},
// 获取banner列表
getBannerList() {
api.bannerList("0").then(res => {
console.log("首页banner列表", res)
this.setData({
bannerList: res.data
})
}).catch(() => {
console.log("获取banner列表失败")
this.setData({
bannerList: []
})
})
},
// 获取新闻列表
getNewsList() {
let para = {
pageIndex: this.data.pageNo,
pageSize: this.data.pageSize,
timestamp: this.data.timestamp
}
api.newsList(para).then((res) => {
console.log("首页新闻列表", res)
this.setData({
loadMoreType: res.data.length === this.data.pageSize ? "loading" : "none",
newsList: this.data.newsList.concat(res.data)
})
}).catch(() => {
console.log("首页新闻列表获取失败")
this.setData({
loadMoreType: "none",
newsList: []
})
})
},
// 获取项目列表
getProjectList() {
const para = {
pageIndex: 1,
pageSize: 10,
timestamp: this.data.timestamp,
searchContent: "",
firstCategoryCode: ""
}
api.getProjectList(para).then(res => {
console.log("项目列表", res)
this.setData({
projectList: res.data,
})
}).catch((err) => {
console.log("获取项目列表失败", err)
this.setData({
projectList: []
})
})
},
// 获取最新一条消息-主要获取消息未读数
getUnreadNum() {
api.getFirstInfo().then(res => {
console.log("获取消息未读数", res)
this.setData({
unReadNum: res.data.amount
})
}).catch(() => {
console.log("获取消息未读数失败")
})
},
// 获取消息列表
getInfoList() {
let para = {
pageIndex: 1,
pageSize: 10,
timestamp: this.data.timestamp
}
homeApi.getInfoList(para).then(res => {
console.log("消息列表", res)
this.setData({
infoList: res.data
})
}).catch(() => {
console.log("获取消息列表失败")
})
},
// 九宫格检查状态
getIndexSudokuState() {
api.getIndexSudokuState().then(res => {
console.log("九宫格状态", res)
let consultAvailable = "0"
let appraiseAvailable = "0"
if (res.data.length > 0) {
res.data.forEach(item => {
if (item.name === "咨询" && item.availableFlag === "1") {
consultAvailable = "1"
} else if (item.name === "干部评价" && item.availableFlag === "1") {
appraiseAvailable = "1"
}
})
}
this.setData({
sudokuState: {
consultAvailable,
appraiseAvailable
}
})
}).catch(() => {
console.log("获取九宫格状态失败")
this.setData({
sudokuState: {
consultAvailable: "0",
appraiseAvailable: "0"
}
})
})
},
// 跳转到需求清单
navigateToDemand () {
if (app.globalData.infoCompleted == 0) {
this.setData({
completeInfoDialogVisible: !this.data.completeInfoDialogVisible
})
return false
}
wx.navigateTo({
url: "/subpages/demand/pages/demandList/demandList"
})
},
// 行程上报
navigateToTripReport () {
if (app.globalData.infoCompleted == 0) {
this.setData({
completeInfoDialogVisible: !this.data.completeInfoDialogVisible
})
return false
}
wx.navigateTo({
url: "/subpages/extend/pages/tripReport/tripReport"
})
},
// 党群服务中心
navigateToPartyMasses () {
if (app.globalData.infoCompleted == 0) {
this.setData({
completeInfoDialogVisible: !this.data.completeInfoDialogVisible
})
return false
}
wx.navigateTo({
url: "/subpages/partyMassesServiceCenter/pages/partyMassesMap/partyMassesMap"
})
},
// 问卷调查
navigateToQuestionnaire () {
if (app.globalData.infoCompleted == 0) {
this.setData({
completeInfoDialogVisible: !this.data.completeInfoDialogVisible
})
return false
}
wx.navigateTo({
url: "/subpages/questionnaire/pages/index/index"
})
},
// 办事指南
navigateToServiceGuide () {
if (app.globalData.infoCompleted == 0) {
this.setData({
completeInfoDialogVisible: !this.data.completeInfoDialogVisible
})
return false
}
wx.navigateTo({
url: "/subpages/workguide/pages/index/index"
})
},
// 党员风采
navigatetoPartyElegant () {
if (app.globalData.infoCompleted == 0) {
this.setData({
completeInfoDialogVisible: !this.data.completeInfoDialogVisible
})
return false
}
wx.navigateTo({
url: `/subpages/partyElegant/pages/partyElegant/partyElegant?communityId=${this.data.communityId}`
})
},
// 联建活动
navigatetoUnionBuild () {
if (app.globalData.infoCompleted == 0) {
this.setData({
completeInfoDialogVisible: !this.data.completeInfoDialogVisible
})
return false
}
wx.navigateTo({
url: `/subpages/unionBuild/pages/list/list?communityId=${this.data.communityId}`
})
},
// 跳转到随时讲
navigateToAnytimeSay() {
if (app.globalData.infoCompleted == 0) {
this.setData({
completeInfoDialogVisible: !this.data.completeInfoDialogVisible
})
return false
}
wx.navigateTo({
url: "/subpages/discussion/pages/anytimeSay/anytimeSay"
})
},
// 跳转到有奖举报
navigateToAnytimeSay_cc() {
if (app.globalData.infoCompleted == 0) {
this.setData({
completeInfoDialogVisible: !this.data.completeInfoDialogVisible
})
return false
}
wx.navigateTo({
url: "/subpages/discussion/pages/anytimeSay/anytimeSay?isCreateCity=1"
})
},
// 跳转到我要报事
navigateToAddIssue() {
if (app.globalData.infoCompleted == 0) {
this.setData({
completeInfoDialogVisible: !this.data.completeInfoDialogVisible
})
return false
}
wx.navigateTo({
url: "/subpages/discussion/pages/addIssue/addIssue"
})
},
// 跳转到网格专员
navigatetoConsultion() {
if (app.globalData.infoCompleted == 0) {
this.setData({
completeInfoDialogVisible: !this.data.completeInfoDialogVisible
})
return false
}
wx.navigateTo({
url: "/subpages/home/pages/consultation/consultation"
})
},
// 跳转到通知公告
navigateToNotice() {
wx.navigateTo({
url: "/subpages/home/pages/notice/notice"
})
},
// 获取完整机构
getComplete() {
api.getComplete(this.data.departmentId).then((res) => {
this.setData({
street: res.data.street,
departmentId: res.data.gridId,
communityId: res.data.communityId
})
}).catch((err) => {
console.log(err)
})
},
// 跳转到请您监督
navigatetoAppraise() {
if (app.globalData.infoCompleted == 0) {
this.setData({
completeInfoDialogVisible: !this.data.completeInfoDialogVisible
})
return false
}
const token = wx.getStorageSync("token")
// https://lyljdgs.qingdaoshibei.cn/app/mobileapp/mszj/index.aspx?deptName=延安路街道&gridId=123467521122
wx.navigateTo({
url: `/subpages/home/pages/webview/webview?url=${global.WEBROOT()}&token=${token}&deptName=${this.data.street}&gridId=${this.data.departmentId}`
})
},
// 初始化加载
initLoad() {
this.setData({
pageNo: 1,
pageSize: 10,
timestamp: getTimestamp(),
newsList: [],
loadMoreType: "loading",
loadMoreVisible: false
})
this.getBannerList()
this.getIndexSudokuState()
this.getProjectList()
this.getInfoList()
this.getUnreadNum()
this.getNewsList()
this.getUserInfo()
this.getAppMenu()
},
// onShow() {
// this.getUnreadNum()
// },
// 切换网格,跳转到网格列表
changeGrid() {
wx.navigateTo({ url: "/subpages/changegrid/pages/changeGrid/changeGrid" })
},
// 跳转到新闻详情
navigatetoNewsDetail(e) {
wx.navigateTo({ url: `/subpages/home/pages/newsDetail/newsDetail?id=${e.detail.newsId}` })
},
// 跳转到 项目详情
navigatetoItemDetail(e) {
wx.navigateTo({
url: `/subpages/discussion/pages/discussionDetail/discussionDetail?type=project&detailId=${e.detail.itemId}&showClassify=show`
})
},
// 跳转到消息列表
navigateToInfoList() {
wx.navigateTo({ url: "/subpages/home/pages/info/info" })
},
// 跳转到banner详情
navigatetoBannerDetail(e) {
const { id, url, newsFlag } = e.detail
if (newsFlag == "0") {
wx.navigateTo({
url: `/subpages/home/pages/webview/webview?url=${url}`
})
} else if (newsFlag == "1") {
wx.navigateTo({
url: `/subpages/home/pages/newsDetail/newsDetail?id=${id}`
})
}
},
getFirstInfo() {
api.getFirstInfo().then((res) => {
console.log("infoObj", res.data)
})
},
//下拉刷新
async onPullDownRefresh() {
await this.initLoad()
wx.stopPullDownRefresh();
},
// 获取用户信息
getUserInfo() {
api.getUserInfo().then(res => {
console.log("用户信息", res)
const userInfo = {}
for (const key in this.data.userInfo) {
userInfo[key] = res.data[key]
}
this.setData({
userInfo,
isSignUp: res.data.isSignUp ? res.data.isSignUp : 0
})
}).catch(err => {
this.setData({
userInfo: {
faceImg: "",
nickname: "",
partyFlag: "0",
isSignUp: 0
}
})
console.log(err)
})
},
//签到 2020.07.31
toSignIn () {
console.log(app.globalData.infoCompleted, this.data.isSignUp)
if (app.globalData.infoCompleted == 0) {
this.setData({
completeInfoDialogVisible: !this.data.completeInfoDialogVisible
})
return false
}
if (this.data.isSignUp == 1) {
return
}
api.userInfoSignUp().then(res => {
console.log(res.data)
if (res.code === 0) {
// 显示提醒
this.setData({
signCode: res.code,
signMsg: res.data,
visible: true
});
} else {
this.setData({
signCode: res.code,
signMsg: res.msg,
visible: true
});
}
})
},
// 关闭签到提醒
onClose() {
this.getUserInfo()
this.setData({
visible: false
});
},
// 获取小程序菜单权限
getAppMenu () {
const params = {
deptId: wx.getStorageSync("gridId")
}
api.getAppMenu(params).then(res => {
console.log("获取首页菜单权限", res)
this.setData({
"sudokuState.talkAndNeedAndPartyAvaliable": res.data || "0"
})
})
}
})

18
miniprogram/pages/home/home.json

@ -0,0 +1,18 @@
{
"navigationBarTitleText": "党群e家",
"navigationStyle": "custom",
"navigationBarTextStyle": "white",
"usingComponents": {
"banner": "./components/banner/banner",
"sudoku": "./components/sudoku/sudoku",
"notice": "./components/notice/notice",
"project": "./components/project/project",
"news-list":"./components/newsList/newsList",
"load-more": "../../components/loadMore/loadMore",
"complete-info-dialog": "../../components/completeInfoDialog/completeInfoDialog",
"wux-popup": "../../dist/popup/index"
},
"enablePullDownRefresh": true,
"backgroundColor": "#f8f8f8",
"backgroundTextStyle": "dark"
}

61
miniprogram/pages/home/home.wxml

@ -0,0 +1,61 @@
<view class="header" style="height: {{statusHeight + navigationHeight}}px;">
<image class="header-bg" src="../../images/main/home_top.png" mode="widthFix" />
<view class="navigation" style="height: {{navigationHeight}}px; top: {{statusHeight}}px;">
首页
</view>
</view>
<view class="bgw">
<view class="gridouter">
<view class="grid">
<image src="../../images/main/home01.png" />
<view>红帆支队</view>
</view>
<view class="grid">
<image src="../../images/main/home02.png" />
<view>骑士驿站</view>
</view>
<view class="grid">
<image src="../../images/main/home03.png" />
<view>红色网格员</view>
</view>
<view class="grid">
<image src="../../images/main/home04.png" />
<view>西海岸先锋</view>
</view>
</view>
</view>
<view class="home" style="margin-top: {{statusHeight + navigationHeight}}px">
<!-- <view class="belong-grid">
<image class="belong-grid-bg" src="../../images/home/home-grid-bg.png" />
<view class="newbelong-grid">
<view class="grid" bindtap="changeGrid">
<image class="party-logo" src="../../images/home/dang_logo.png" />
<view class="grid-name">{{departmentName}}</view>
<image class="more-grid" src="../../images/home/right-sword.png" />
</view>
<view class="signin-btn" bindtap="toSignIn">
<image src="../../images/home/signin.png" wx:if="{{isSignUp == 0}}" />
<image src="../../images/home/signined.png" wx:else />
</view>
</view>
</view> -->
<!-- banner列表 -->
<!-- <banner bind:navigatetoBannerDetail="navigatetoBannerDetail" bannerList="{{bannerList}}"></banner> -->
<!-- sudoku九宫格 -->
<!-- <sudoku sudokuState="{{sudokuState}}" userInfo="{{userInfo}}" bind:navigateToDemand="navigateToDemand" bind:navigateToTripReport="navigateToTripReport" bind:navigateToPartyMasses="navigateToPartyMasses" bind:navigateToQuestionnaire="navigateToQuestionnaire" bind:navigateToServiceGuide="navigateToServiceGuide" bind:navigatetoPartyElegant="navigatetoPartyElegant" bind:navigatetoUnionBuild="navigatetoUnionBuild" bind:navigateToAnytimeSay="navigateToAnytimeSay" bind:navigateToAnytimeSay_cc="navigateToAnytimeSay_cc" bind:navigateToAddIssue="navigateToAddIssue" bind:navigatetoConsultion="navigatetoConsultion" bind:navigateToNotice="navigateToNotice" bind:navigatetoAppraise="navigatetoAppraise"></sudoku> -->
<!-- 消息列表 -->
<notice bind:navigateToInfoList="navigateToInfoList" infoList="{{infoList}}" unreadnum="{{unReadNum}}"></notice>
<!-- 项目列表 -->
<project bind:navigatetoItemDetail="navigatetoItemDetail" projectList="{{projectList}}"></project>
<!-- 新闻列表 -->
<news-list newsList="{{newsList}}" bind:navigatetoNewsDetail="navigatetoNewsDetail"></news-list>
<!-- 加载更多提示 -->
<load-more loadMoreType="{{loadMoreType}}" loadMoreVisible="{{loadMoreVisible}}"></load-more>
<!-- 完善过信息提示框 -->
<complete-info-dialog completeInfoDialogVisible="{{completeInfoDialogVisible}}"></complete-info-dialog>
</view>
<!-- 签到后提醒 -->
<wux-popup visible="{{visible}}" title="{{signCode === 0 ? '签到成功' : '签到失败'}}" content="{{signMsg}}" bind:close="onClose">
<view slot="footer" class="popup__button" bindtap="onClose">确定</view>
</wux-popup>

149
miniprogram/pages/home/home.wxss

@ -0,0 +1,149 @@
page {
width: 100%;
height: auto;
overflow-y: auto;
background: #f7f7f7;
}
.header {
position: fixed;
width: 100%;
top: 0;
left: 0;
z-index: 1000;
}
.header .header-bg {
width: 100%;
height: 100%;
position: absolute;
z-index: 10;
left: 0;
top: 0;
}
.header .navigation {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
color: rgba(255, 255, 255, 0.9);
font-size: 32rpx;
position: relative;
z-index: 100;
}
.home {
width: 100%;
}
.belong-grid {
width: 100%;
height: 100rpx;
position: relative;
}
.belong-grid .belong-grid-bg {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 10;
}
.belong-grid .grid {
width: 100%;
height: 100%;
position: relative;
z-index: 100;
display: flex;
align-items: center;
}
.belong-grid .grid .party-logo {
width: 32rpx;
height: 32rpx;
margin: 0 10rpx 0 23rpx;
}
.belong-grid .grid .grid-name {
font-size: 32rpx;
color: #fff;
}
.belong-grid .grid .more-grid {
width: 18rpx;
height: 26rpx;
margin-left: 10rpx;
}
.belong-grid .newbelong-grid {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
width: 100%;
height: 100rpx;
}
.belong-grid .newbelong-grid .signin-btn {
width: 140rpx;
height: 44rpx;
position: absolute;
z-index: 99;
right: 30rpx;
}
.belong-grid .newbelong-grid .signin-btn image {
width: 100%;
height: 100%;
}
.belong-grid .newbelong-grid .grid {
/* width: 90%; */
width: calc(100% - 170rpx);
height: 34rpx;
position: relative;
z-index: 100;
display: flex;
align-items: center;
}
.belong-grid .newbelong-grid .grid .party-logo {
width: 24rpx;
height: 30rpx;
margin: 0 14rpx 0 22rpx;
}
.belong-grid .newbelong-grid .grid .grid-name {
font-size: 32rpx;
color: #fff;
}
.belong-grid .newbelong-grid .grid .more-grid {
width: 16rpx;
height: 22rpx;
margin-left: 10rpx;
margin-top: 5rpx;
}
.popup__button {
width: 100%;
text-align: center;
font-size: 36rpx;
color: #04BCA0;
}
.gridouter{
display: flex;
}
.grid {
width: 25%;
}
.grid image {
width: 80rpx;
height: 80rpx;
}

66
miniprogram/pages/knight/knight.js

@ -0,0 +1,66 @@
// pages/knight/knight.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

3
miniprogram/pages/knight/knight.json

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

2
miniprogram/pages/knight/knight.wxml

@ -0,0 +1,2 @@
<!--pages/knight/knight.wxml-->
<text>pages/knight/knight.wxml</text>

1
miniprogram/pages/knight/knight.wxss

@ -0,0 +1 @@
/* pages/knight/knight.wxss */

66
miniprogram/pages/message/message.js

@ -0,0 +1,66 @@
// pages/message/message.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

3
miniprogram/pages/message/message.json

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

2
miniprogram/pages/message/message.wxml

@ -0,0 +1,2 @@
<!--pages/message/message.wxml-->
<text>pages/message/message.wxml</text>

1
miniprogram/pages/message/message.wxss

@ -0,0 +1 @@
/* pages/message/message.wxss */

66
miniprogram/pages/my/my.js

@ -0,0 +1,66 @@
// pages/my/my.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

3
miniprogram/pages/my/my.json

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

2
miniprogram/pages/my/my.wxml

@ -0,0 +1,2 @@
<!--pages/my/my.wxml-->
<text>pages/my/my.wxml</text>

1
miniprogram/pages/my/my.wxss

@ -0,0 +1 @@
/* pages/my/my.wxss */

66
miniprogram/pages/redGrider/redGrider.js

@ -0,0 +1,66 @@
// pages/redGrider/redGrider.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

3
miniprogram/pages/redGrider/redGrider.json

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

2
miniprogram/pages/redGrider/redGrider.wxml

@ -0,0 +1,2 @@
<!--pages/redGrider/redGrider.wxml-->
<text>pages/redGrider/redGrider.wxml</text>

1
miniprogram/pages/redGrider/redGrider.wxss

@ -0,0 +1 @@
/* pages/redGrider/redGrider.wxss */

66
miniprogram/pages/redSail/redSail.js

@ -0,0 +1,66 @@
// pages/redSail/redSail.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

3
miniprogram/pages/redSail/redSail.json

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

2
miniprogram/pages/redSail/redSail.wxml

@ -0,0 +1,2 @@
<!--pages/redSail/redSail.wxml-->
<text>pages/redSail/redSail.wxml</text>

1
miniprogram/pages/redSail/redSail.wxss

@ -0,0 +1 @@
/* pages/redSail/redSail.wxss */

66
miniprogram/pages/volunteer/volunteer.js

@ -0,0 +1,66 @@
// pages/volunteer/volunteer.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

3
miniprogram/pages/volunteer/volunteer.json

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

2
miniprogram/pages/volunteer/volunteer.wxml

@ -0,0 +1,2 @@
<!--pages/volunteer/volunteer.wxml-->
<text>pages/volunteer/volunteer.wxml</text>

1
miniprogram/pages/volunteer/volunteer.wxss

@ -0,0 +1 @@
/* pages/volunteer/volunteer.wxss */

2
miniprogram/project.config.json

@ -44,7 +44,7 @@
},
"compileType": "miniprogram",
"libVersion": "2.10.4",
"appid": "wxfa4afaa2b5f9c876",
"appid": "wx8d2c0ec0d6d73f6c",
"projectname": "%E5%85%9A%E7%BE%A4e%E5%AE%B6-%E7%BA%BF%E4%B8%8A%E7%89%88",
"simulatorType": "wechat",
"simulatorPluginLibVersion": {},

6
miniprogram/project.private.config.json

@ -1,5 +1,5 @@
{
"projectname": "%252525E5%25252585%2525259A%252525E7%252525BE%252525A4e%252525E5%252525AE%252525B6-%252525E7%252525BA%252525BF%252525E4%252525B8%2525258A%252525E7%25252589%25252588",
"projectname": "miniprogram",
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"condition": {
"miniprogram": {
@ -82,5 +82,7 @@
}
},
"libVersion": "2.31.1",
"setting": {}
"setting": {
"compileHotReLoad": true
}
}
Loading…
Cancel
Save