新闻接口对接、劳动尽责对接

This commit is contained in:
itgaojian163 2023-02-07 17:55:09 +08:00
parent 04963b179f
commit 593e13b89c
34 changed files with 6008 additions and 1385 deletions

13
App.vue
View File

@ -5,14 +5,23 @@
},
onShow: function() {
console.log('App Show');
uni.getStorage({
key: "token",
success: (res) => {
if (res.data) {
this.globalData.token = res.data;
}
}
});
this.$initPageTitle(); //
},
onHide: function() {
console.log('App Hide');
},
globalData: {
token: "",
userInfo:{}
token: "",
userInfo: {}
}
};
</script>

3
androidPrivacy.json Normal file
View File

@ -0,0 +1,3 @@
{
"prompt" : "none"
}

View File

@ -1,6 +1,6 @@
<template>
<view class="list" v-if="list.length > 0">
<navigator :url="'/pages/news/newsdetail?url='+baseurl+item.templateRecordUrl" class="item"
<navigator :url="'/pages/news/newsdetail?url='+item.templateRecordUrl" class="item"
v-for="(item, index) in list" :key="index" hover-class="none"
v-if="0 == item.newsConfigWebSwitch || 2 ==item.newsConfigWebSwitch">
<!-- 多张图片 -->
@ -9,8 +9,9 @@
<view class="title">{{ item.newsContentTitle }}</view>
</view>
<view class="imgs">
<view class="photo" v-for="(p, i) in item.newsContentCoverList" :key="i" item="p">
<image :src="imgUrl+p.contentCoverId" mode="aspectFill"></image>
<view class="photo">
<image :src="imgUrl + p.contentCoverId" mode="scaleToFill"
v-for="(p, i) in item.newsContentCoverList" :key="i" item="p"></image>
</view>
</view>
<view class="other">
@ -110,7 +111,7 @@
<view class="items">评论{{ item.newsContentCommentNumber }}</view>
</view>
<view class="btn">
<image src="../../static/images/nav/icon_user_hover.png" mode="aspectFill"></image>
<image src="/static/images/nav/icon_user_hover.png" mode="aspectFill"></image>
<view>播放</view>
</view>
</view>
@ -133,8 +134,8 @@
},
data() {
return {
baseurl: "https://www.xzszwhy.cn/",
imgUrl: "https://www.xzszwhy.cn/news/route/file/downloadfile/true/"
baseurl: "http://192.168.0.120:7019/qmywzs/",
imgUrl: "http://192.168.0.120:7019/qmywzs/route/file/download/true/"
};
},
};
@ -554,16 +555,24 @@
.imgs {
width: 100%;
display: table;
table-layout: fixed;
display: flex;
flex-direction: row;
justify-content: center;
align-items: flex-start;
width: 100%;
.photo {
display: table-cell;
display: flex;
padding: 10rpx;
flex-direction: row;
width: 100%;
align-items: center;
justify-content: flex-start;
image {
height: 170rpx;
width: 100%;
width: 31%;
margin: 5rpx;
border-radius: 10rpx;
}
}

View File

@ -1,18 +1,30 @@
let apiRoot = 'https://www.xzszwhy.cn/';
let clinetUser = 'usercenter/';
let clinetNews = 'news/';
let apiRoot = 'http://192.168.0.120:7019/';
let clinetUser = 'qmywzs/';
let clinetNews = 'qmywzs/';
let clinetDuty = 'qmywzs/';
let api = {
common: {
aboutUs: apiRoot + 'common/aboutUs.html',
verify: apiRoot + "common/verify.html",
imgUrl: apiRoot + clinetDuty + "route/file/download/true/",
baseUrl: apiRoot + clinetDuty,
getAppVersion: apiRoot + clinetDuty + "app/appversion/get-number/29605432-4eb4-4c19-a01c-89f05486fd9a",
appDownloadUrl: apiRoot + clinetDuty + "app/appversion/download/29605432-4eb4-4c19-a01c-89f05486fd9a",
},
news: {
getMainFun: apiRoot + clinetNews + "app/newsdirectories/listnewsdirectoriesrelease",
getNewsList: apiRoot + clinetNews +
"app/newscontent/listpagenewscontentrelease", //获取新闻列表 newsDirectoriesId
NEWS_MAIN_ID: "f497904b-7727-4832-891c-604c36ae4167",//新闻类型ID
NEWS_BANNER_ID: "eab0ca3c-d35d-4c02-9397-ace2bdd10fc1",
imgUrl: apiRoot + clinetNews + "route/file/downloadfile/true/"
NEWS_MAIN_ID: "cadef8e1-1baf-4aec-a1b4-f002bd5e99f5", //新闻类型ID
NEWS_BANNER_ID: "cb7cd502-ff00-4d58-83c1-c54c57add14c",
imgUrl: apiRoot + clinetNews + "route/file/download/true/",
},
duty: {
getActivityList: apiRoot + clinetDuty + "app/activity/release/listpage",
getActivityDetail: apiRoot + clinetDuty + "app/activity/release/get/",
doSignActivity: apiRoot + clinetDuty + "app/activity-join/save",
getMineActivity: apiRoot + clinetDuty + "app/activity-join/myActivity",
delMineActivity: apiRoot + clinetDuty + "app/activity-join/remove/",
getDutyExplain: apiRoot + clinetDuty + "app/activity-responsible/list",
},
article: {
index: apiRoot + 'article/index.html',
@ -31,7 +43,7 @@ let api = {
},
user: {
getVerifyCode: apiRoot + clinetUser + "api/sms/getverificationcode/", //get 获取验证码
doLogin: apiRoot + clinetUser + "app/sign/login", //post 登录
doLogin: apiRoot + clinetUser + "app/sign/default", //post 登录
doRegister: apiRoot + clinetUser + "app/register/saveregisteruser", //post 注册
doChangePhone: apiRoot + clinetUser + "app/user/updatephoneusername", //修改手机号 put
doChangePwd: apiRoot + clinetUser + "app/user/updateuserpassword", //put 修改密码

View File

@ -1,9 +1,9 @@
{
"name" : "tree_planting",
"appid" : "",
"appid" : "__UNI__BAFB016",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
"versionCode" : 1,
"transformPx" : false,
/* 5+App */
"app-plus" : {
@ -23,27 +23,33 @@
/* android */
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios */
"ios" : {},
/* SDK */
"sdkConfigs" : {}
"sdkConfigs" : {},
"splashscreen" : {
"androidStyle" : "common",
"useOriginalMsgbox" : false
}
}
},
/* */

View File

@ -107,6 +107,44 @@
"enablePullDownRefresh": false
}
}, {
"path": "pages/duty/activitydetail",
"style": {
"titleNView": false,
"navigationStyle": "custom",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "white",
"navigationBarTitleText": "活动详情",
"enablePullDownRefresh": false
}
}, {
"path": "pages/duty/activitysign",
"style": {
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "活动报名",
"enablePullDownRefresh": false
}
}, {
"path": "pages/duty/activityunsign",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}, {
"path": "pages/duty/dutyexplain",
"style": {
"titleNView": false,
"navigationStyle": "custom",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "尽责形式说明",
"enablePullDownRefresh": false
}
}
],
"globalStyle": {

View File

@ -0,0 +1,496 @@
<template>
<view class="page">
<view class="content">
<view class="title-box"></view>
<view class="state-bar">
<image src="../../static/images/ic_arrow_left.png" mode="aspectFill" @click="closePage()"></image>
</view>
<view class="box">
<view class="title">
<view class="title-status">{{bean.status}}</view>
<text>{{bean.name}}</text>
</view>
<rich-text class="title-content" :nodes="bean.introduce"></rich-text>
<view class="count-btn">
<view>参加人数:{{bean.joinedCount}}/{{bean.joinCount}}</view>
<view v-if="type==1" class="btn" @click="join()">立即参与</view>
<view v-if="type==2" class="btn" @click="joinOut()">取消报名</view>
</view>
<view class="notice">
<image src="../../static/images/ic_notice_gree_icon.png" mode="aspectFill"></image>
<view class="notice-content">本次活动名额有限抓紧时间参与哦</view>
</view>
<view class="options">
<view class="op-title">
<view class="point"></view>
<view class="op-content">活动时间</view>
</view>
<view>{{bean.startTime}}</view>
</view>
<view class="options">
<view class="op-title">
<view class="point"></view>
<view class="op-content">项目建设内容</view>
</view>
<rich-text :nodes="bean.constructionContent"></rich-text>
</view>
<view class="options-box">
<view class="options-title">()</view>
<view class="options-content">活动时间:{{bean.startTime}}</view>
</view>
<view class="options-box">
<view class="options-title">()</view>
<view class="options-content">活动地点:{{bean.address}}</view>
</view>
<view class="options-box">
<view class="options-title">()</view>
<view class="options-content">活动类型:{{bean.activityType}}</view>
</view>
<view class="options-box">
<view class="options-title">()</view>
<view class="options-content">活动主题:{{bean.theme}}</view>
</view>
<view class="options-box-c">
<view class="options-title-c">()要求</view>
<view class="options-content-c">{{bean.ask}}</view>
</view>
<view class="options-box-c">
<view>()活动声明</view>
<rich-text :nodes="bean.statement"></rich-text>
</view>
<view class="options-box-c">
<view>()宣传内容</view>
<view class="img-box">
<view v-if="bean.photo" v-for="(item,index) in bean.photoList" :key="index">
<image :src="imgUrl+item" mode="aspectFill"></image>
</view>
<view v-if="bean.videos" v-for="(item,index) in bean.videoList" :key="index">
<video :src="imgUrl+item"></video>
</view>
</view>
</view>
</view>
</view>
<pageLoading v-if="showPageLoading"></pageLoading>
</view>
</template>
<script>
import pageLoading from '@/components/loading/pageLoading.vue';
export default {
components: {
pageLoading
},
data() {
return {
activityId: "",
showPageLoading: true,
bean: {},
imgUrl: this.$api.common.imgUrl,
type: 1,
itemId: ""
}
},
onLoad(res) {
this.activityId = res.id
this.type = res.type
this.itemId = res.itemId
if (this.activityId == "") {
uni.navigateBack()
}
this.getActivityDetail()
},
methods: {
closePage() {
uni.navigateBack()
},
getActivityDetail() {
this.$app.request({
url: this.$api.duty.getActivityDetail + this.activityId,
method: 'GET',
dataType: 'json',
success: res => {
if (res != undefined) {
this.bean = res;
if (this.bean.photo.length > 0) {
this.bean.photoList = this.bean.photo.split(",")
} else {
this.bean.photoList = []
}
if (this.bean.videos.length > 0) {
this.bean.videoList = this.bean.videos.split(",")
} else {
this.bean.videoList = []
}
this.bean = this.bean
}
console.log(this.bean)
},
fail: res => {
this.showPageLoading = false
},
complete: res => {
this.showPageLoading = false
}
});
},
join() {
if (getApp().globalData.token == "") {
uni.setStorageSync("loginOriginUrl", "/pages/duty/activitydetail?id=" + this.activityId)
uni.navigateTo({
url: "/pages/user/login"
})
} else {
uni.navigateTo({
url: "/pages/duty/activitysign?id=" + this.activityId
})
}
},
joinOut() {
uni.showLoading({
title: "取消中..."
})
this.$app.request({
url: this.$api.duty.delMineActivity + this.itemId,
method: 'DELETE',
dataType: 'json',
success: res => {
if (res.status) {
uni.hideLoading()
uni.showToast({
icon: 'error',
title: "系统错误"
})
} else {
uni.hideLoading()
uni.showToast({
icon: 'success',
title: "取消成功"
})
uni.navigateBack()
}
},
fail: res => {},
complete: res => {
uni.hideLoading()
}
});
}
}
}
</script>
<style lang="scss">
page {
height: 100%;
}
.page {
display: flex;
flex: 1;
flex-direction: column;
overflow: auto;
height: 100%;
}
.content-scroller {
flex: 1;
width: 100%;
height: 100rpx;
}
.content {
width: 100%;
position: relative;
height: 100%;
}
.box {
display: flex;
flex-direction: column;
justify-content: flex-start;
height: 100%;
width: 100%;
position: absolute;
top: 300rpx;
background: #FFF;
left: 50%;
transform: translate(-50%, 0);
-webkit-transform: translate(-50%, 0);
box-shadow: 0rpx 7rpx 33rpx 16rpx rgba(188, 226, 204, 0.15);
border-radius: 30rpx;
.title-img {
width: 443rpx;
height: 203rpx;
align-self: center;
}
.title {
display: flex;
flex-direction: row;
font-size: 30rpx;
font-weight: 400;
align-items: center;
margin-top: 50rpx;
.title-status {
text-align: center;
margin-left: 20rpx;
width: 100rpx;
color: white;
background: #00821E;
border-radius: 10rpx;
}
}
.title-content {
margin: 20rpx;
}
.count-btn {
display: flex;
flex-direction: row;
justify-content: space-between;
padding: 20rpx;
.btn {
margin-right: 20rpx;
background: #00821E;
color: white;
padding: 5rpx 20rpx;
border-radius: 10rpx;
}
}
.notice {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
margin: 20rpx;
padding: 20rpx;
background-color: #F6F8FC;
image {
width: 30rpx;
height: 30rpx;
}
.notice-content {
margin-left: 20rpx;
}
}
.options-box {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
padding: 10rpx 20rpx;
font-size: 25rpx;
.options-title {}
.options-content {}
}
.options-box-c {
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
padding: 10rpx 20rpx;
font-size: 25rpx;
.options-title-c {}
.options-content-c {}
.img-box {
display: flex;
flex-direction: column;
width: 100%;
image {
width: 100%;
}
video {
width: 90%;
}
}
}
.options {
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: center;
padding: 20rpx;
.op-title {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
.point {
background: #FFF;
border-width: 5rpx;
border-color: #00821E;
border-style: solid;
width: 10rpx;
height: 10rpx;
border-radius: 50%;
}
.op-content {
margin-left: 15rpx;
font-size: 30rpx;
}
}
}
}
.tab-bar {
width: 100%;
display: flex;
flex-direction: row;
padding-top: 15rpx;
.tab-active {
text-align: center;
font-size: 40rpx;
font-weight: bold;
color: #00821E;
}
.tab-default {
text-align: center;
font-size: 40rpx;
font-weight: 200;
color: #00821E;
}
}
.title-box {
width: 100%;
height: 400rpx;
background-image: url('../../static/images/ic_activitydetail_bg.png');
background-size: 100% 100%;
background-repeat: no-repeat;
}
.state-bar {
position: absolute;
top: 0%;
left: 0%;
width: 100%;
margin: 45rpx 0rpx;
height: 100rpx;
display: flex;
flex-direction: row;
align-items: center;
image {
width: 50rpx;
height: 50rpx;
margin-left: 20rpx;
}
.tab {
display: flex;
flex-direction: row;
color: white;
justify-content: center;
font-size: 40rpx;
align-self: center;
text-align: center;
width: 100%;
margin-left: -70rpx;
:last-child {
margin-left: 40rpx;
}
.tab-1 {
border-bottom-width: 8rpx;
border-bottom-style: solid;
border-bottom-color: white;
}
}
}
.container-box {
display: flex;
flex-direction: column;
background-color: white;
justify-content: center;
align-items: flex-start;
margin: 20rpx;
padding: 30rpx 0rpx;
border-top-left-radius: 30rpx;
border-top-right-radius: 30rpx;
height: 100%;
.area-box {
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-start;
margin: 30rpx;
.area-title {
font-size: 30rpx;
color: #747474;
}
.area-picker {
background-color: #E8F6EE;
margin-left: 20rpx;
color: #b3b3b3;
padding: 10rpx 30rpx;
}
}
}
/*搜索*/
.search {
padding: 10rpx 24rpx 10rpx 24rpx;
display: flex;
justify-content: space-between;
align-items: center;
width: 90%;
align-self: center;
.search-content {
background: #f2f2f2;
border-radius: 15px;
padding: 10rpx 24rpx 10rpx 24rpx;
margin-right: 15rpx;
flex: 1;
display: flex;
align-items: center;
}
/deep/.input {
color: #8cc7b5;
}
.icon {
width: 30rpx;
height: 30rpx;
margin-right: 15rpx;
}
.btn {
color: #b3b3b3;
}
}
</style>

View File

@ -5,8 +5,8 @@
<view class="state-bar">
<image src="../../static/images/ic_arrow_left.png" mode="aspectFill" @click="closePage()"></image>
<view class="tab">
<view :class="currentIndex==1? 'tab-1':''">全部</view>
<view :class="currentIndex==2? 'tab-1':''">我参与的</view>
<view :class="currentIndex==1? 'tab-1':''" @click="tabChange(1)">全部</view>
<view :class="currentIndex==2? 'tab-1':''" @click="tabChange(2)">我参与的</view>
</view>
</view>
<view class="box">
@ -17,7 +17,7 @@
</view>
<view class="container-box">
<!-- 搜索框 -->
<view class="search">
<view class="search" v-if="currentIndex==1">
<view class="search-content">
<image src="../../static/images/ic_search.png" class="icon" mode="aspectFill"></image>
<input @input="onSearchInput" placeholder="请输入关键字搜索" />
@ -25,34 +25,60 @@
<view class="btn" @click="doSearch">搜索</view>
</view>
<!-- 地区选择 -->
<view class="area-box">
<!-- <view class="area-box">
<view class="area-title">当前地区:</view>
<view class="area-picker">全部地区</view>
<view class="area-picker">地区选择</view>
</view>
</view> -->
<!-- 列表 -->
<view class="content-scroller">
<scroller @init="initScroller" @down="refreshData" @up="getData" :up="optUp"
@scroll="navFloatShow(scroller)" :fixed="false">
<scroller v-if="currentIndex==1" @init="initScroller" @down="refreshData" @up="getData"
:up="optUp" @scroll="navFloatShow(scroller)" :fixed="false">
<!-- 列表 -->
<view class="list-box">
<view class="item" v-for="(item,index) in list" :key="index">
<view class="title">{{item.title}}</view>
<view class="item" v-for="(item,index) in list" :key="index"
@click="openDetail(item.activityId)">
<view class="title">{{item.name}}</view>
<view class="item-content">
<image src="../../static/images/ic_certify_title_bg.png" mode="aspectFill">
<image :src="imgUrl+item.img" mode="aspectFill">
</image>
<view class="item-box">
<view class="item-time">活动时间:{{item.startTime}}</view>
<view class="item-person">参与人数:90/100</view>
<view class="item-time">活动时间:{{item.startTime}}{{item.endTime}}</view>
<view class="item-person">参与人数:{{item.joinedCount}}/{{item.joinCount}}
</view>
<view class="item-bottom">
<view>全国</view>
<text class="status">状态</text>
<text class="item-status">{{item.status}}</text>
</view>
</view>
</view>
</view>
</view>
</scroller>
<!-- 我参加的 -->
<!-- 列表 -->
<view class="list-box" v-if="currentIndex==2">
<view v-if="list2.length<=0" class="empty-data">暂无数据~</view>
<view v-else class="item" v-for="(item,index) in list2" :key="index"
@click="openDetailType(item.activityDTO.activityId,item.activityJoinId)">
<view class="title">{{item.activityDTO.name}}</view>
<view class="item-content">
<image :src="imgUrl+item.img" mode="aspectFill">
</image>
<view class="item-box">
<view class="item-time">
活动时间:{{item.activityDTO.startTime}}{{item.activityDTO.endTime}}</view>
<view class="item-person">
参与人数:{{item.activityDTO.joinedCount}}/{{item.activityDTO.joinCount}}
</view>
<view class="item-bottom">
<view>全国</view>
<text class="item-status">{{item.activityDTO.status}}</text>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
@ -61,28 +87,23 @@
</template>
<script>
import {
mapState,
mapMutations
} from 'vuex';
import scroller from '@/components/scroller/scroller.vue';
export default {
components: {
scroller
},
data() {
return {
currentIndex: 1,
list: [{
title: "测试测试测试测试测试测试测试测试测试测试测试测试",
startTime: "2022年9月10日",
endTime: "2022年9月30日"
}, {
title: "测试测试测试测试测试测试测试测试测试测试测试测试",
startTime: "2022年9月10日",
endTime: "2022年9月30日"
}, {
title: "测试测试测试测试测试测试测试测试测试测试测试测试",
startTime: "2022年9月10日",
endTime: "2022年9月30日"
}],
list: [],
list2: [],
scroller: {},
scroller2: {},
optUp: {
auto: true,
onScroll: true,
@ -94,9 +115,33 @@
tip: '暂无数据~'
}
},
optUp2: {
auto: true,
onScroll: true,
page: {
num: 0, // 0,1; callback(page)1
size: 10 //,10
},
empty: {
tip: '暂无数据~'
}
},
token: "",
imgUrl: this.$api.common.imgUrl,
searchContent: ""
}
},
onLoad(res) {
},
onShow(res) {
this.token = getApp().globalData.token
if (this.token != "") {
this.getData2()
}
},
methods: {
...mapMutations(['login']),
tabChange(i) {
this.currentIndex = i;
if (i == 1) {
@ -104,16 +149,27 @@
} else {
this.bg = this.bg2
}
if (this.currentIndex == 2) {
if (this.token == "") {
uni.setStorageSync("loginOriginUrl", "/pages/duty/activitylist");
uni.navigateTo({
url: "/pages/user/login"
})
} else {
this.getData2()
}
}
},
closePage() {
uni.navigateBack()
},
onSearchInput(event) {
},
/*收搜*/
doSearch() {
uni.hideKeyboard()
if (this.searchContent == "") {
this.$alert("请输入关键字");
}
this.refreshData()
},
/*初始化滚动*/
initScroller(scroller) {
@ -128,7 +184,13 @@
});
this.scroller.resetUpScroll();
},
onSearchInput: function(event) {
this.searchContent = event.target.value
console.log(event.target.value)
if (event.target.value == "") {
this.refreshData()
}
},
/*加载数据*/
loadData() {
this.list = [];
@ -140,22 +202,95 @@
},
//
getData() {
this.list = [{
title: "测试测试测试测试测试测试测试测试测试测试测试测试",
startTime: "2022年9月10日",
endTime: "2022年9月30日"
}, {
title: "测试测试测试测试测试测试测试测试测试测试测试测试",
startTime: "2022年9月10日",
endTime: "2022年9月30日"
}, {
title: "测试",
startTime: "2022年9月10日",
endTime: "2022年9月30日"
}];
this.scroller.endBySize(0, 0);
this.scroller.endSuccess();
uni.hideLoading()
this.$app.request({
url: this.$api.duty.getActivityList,
method: 'GET',
data: {
'rows': '10',
'page': '1',
'keywords': this.searchContent
},
dataType: 'json',
success: res => {
console.log("加载完成")
if (res.rows != undefined) {
if (this.scroller.num == 1) {
this.list = [];
}
var tempList = []
tempList = res.rows
console.log(tempList[2].photo)
for (var i = 0; i < tempList.length; i++) {
if (tempList[i].photo) {
var index = tempList[i].photo.indexOf(",")
if (index != -1) {
tempList[i].img = tempList[i].photo.substring(0, index)
}
tempList[i].img = tempList[i].photo
}
}
this.list = this.list.concat(tempList);
console.log(this.list)
this.scroller.endBySize(res.rows.length, res.rows.total);
this.showPageLoading = false;
} else {
this.scroller.endSuccess();
this.$alert(res.msg);
}
},
fail: res => {
this.scroller.endErr();
},
complete: res => {
uni.stopPullDownRefresh();
uni.hideLoading();
}
});
},
//
getData2() {
this.$app.request({
url: this.$api.duty.getMineActivity,
method: 'GET',
dataType: 'json',
header: {
token: this.token
},
success: res => {
console.log(res)
if (res != undefined) {
for (var i = 0; i < res.length; i++) {
if (res[i].activityDTO.photo) {
var index = res[i].activityDTO.photo.indexOf(",")
if (index != -1) {
res[i].img = res[i].activityDTO.photo.substring(0, index)
}
res[i].img = res[i].activityDTO.photo
}
}
this.list2 = res
}
},
fail: res => {
uni.showToast({
icon: "error",
title: "加载失败"
})
},
complete: res => {}
});
},
openDetail(id) {
uni.navigateTo({
url: "/pages/duty/activitydetail?id=" + id + "&type=" + 1
})
},
openDetailType(id, ss) {
uni.navigateTo({
url: "/pages/duty/activitydetail?id=" + id + "&type=" + 2 + "&itemId=" + ss
})
}
}
}
@ -407,13 +542,13 @@
justify-content: space-between;
color: #747474;
.status {
.item-status {
color: #00821E;
border: 1rpx #8cc7b5 solid;
padding: 0rpx 20rpx;
margin: 0rpx;
font-size: 10rpx;
font-size: 20rpx;
text-align: center;
padding: 0rpx 10rpx;
align-self: center;
}
}
}
@ -436,4 +571,9 @@
}
}
.empty-data {
align-items: center;
align-self: center;
}
</style>

338
pages/duty/activitysign.vue Normal file
View File

@ -0,0 +1,338 @@
<template>
<view class="page">
<view class="content">
<view class="base-person">
<view class="item">
<view class="item-title">您的姓名</view>
<input @input="inputBaseName" :value="name" placeholder="请输入您的姓名" />
</view>
<view class="item">
<view class="item-title">身份证号码</view>
<input @input="inputBaseIdCard" :value="idcard" placeholder="请输入身份证号码" />
</view>
<view class="item">
<view class="item-title">人员类型</view>
<radio-group @change="baseChange"
style="margin-top: 20rpx;display: flex;flex-direction: column;justify-content: flex-start;align-items: flex-start;">
<radio value="适龄公民" style="transform: scale(0.8);" checked="true">适龄公民</radio>
<radio value="非适龄公民" style="transform: scale(0.8);margin-top: 10rpx;">非适龄公民</radio>
</radio-group>
<view>提示:依据<国务院关于开展全民义务植树运动的实施办法>适龄公民指男11岁至60岁,女11岁至55岁的中华人民共和国公民</view>
<view v-if="personList.length==0" class="add-person" @click="addPerson">添加人员</view>
</view>
<view class="item">
<view class="item-title">联系电话</view>
<input @input="inputBasePhone" :value="phone" placeholder="请输入常用手机号码" />
</view>
<view class="item">
<view class="item-title">备注留言</view>
<input @input="inputBaseRemark" :value="remark" placeholder="有什么想说的话可以在这里留言" />
</view>
</view>
<!-- 动态添加人员 -->
<view class="base-person" v-for="(item,index) in personList" :key="index">
<view class="item">
<view class="item-title-box">
<view class="item-title-name">您的姓名</view>
<view class="item-title-del" @click="delPerson(index)">删除该人员</view>
</view>
<input @input="addPersonInputName($event,index)" :value="item.name" placeholder="请输入您的姓名" />
</view>
<view class="item">
<view class="item-title">身份证号码</view>
<input @input="addPersonInputIdCard($event,index)" :value="item.idcard" placeholder="请输入身份证号码" />
</view>
<view class="item">
<view class="item-title">人员类型</view>
<radio-group @change="addChange($event,index)"
style="margin-top: 20rpx;display: flex;flex-direction: column;justify-content: flex-start;align-items: flex-start;">
<radio value="适龄公民" style="transform: scale(0.8);" checked="true">适龄公民</radio>
<radio value="非适龄公民" style="transform: scale(0.8);margin-top: 10rpx;">非适龄公民</radio>
</radio-group>
<view>提示:依据<国务院关于开展全民义务植树运动的实施办法>适龄公民指男11岁至60岁,女11岁至55岁的中华人民共和国公民</view>
<view v-if="index == personList.length-1" class="add-person" @click="addPerson">添加人员</view>
</view>
<view class="item">
<view class="item-title">联系电话</view>
<input @input="addPersonInputPhone($event,index)" :value="item.phone" placeholder="请输入常用手机号码" />
</view>
</view>
<view class="save-btn" @click="doSave">确认提交</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
activityId: "",
name: "",
idcard: "",
phone: "",
remark: "",
type: "适龄公民",
personList: [],
token: ""
}
},
onLoad(res) {
this.activityId = res.id;
this.token = getApp().globalData.token;
},
methods: {
baseChange(event) {
this.type = event.detail.value
},
inputBaseName(event) {
this.name = event.target.value
},
inputBaseIdCard(event) {
this.idcard = event.target.value
},
inputBasePhone(event) {
this.phone = event.target.value
},
inputBaseRemark(event) {
this.remark = event.target.value
},
addPerson() {
var item = {
name: "",
idcard: "",
phone: "",
remark: "",
type: "适龄公民",
remark: ""
}
this.personList.push(item)
},
delPerson(index) {
this.personList.splice(index, 1)
this.$forceUpdate()
},
addPersonInputPhone(event, index) {
this.personList[index].phone = event.target.value
},
addPersonInputIdCard(event, index) {
this.personList[index].idcard = event.target.value
},
addPersonInputName(event, index) {
this.personList[index].name = event.target.value
},
addChange(event, index) {
this.personList[index].type = event.target.value
},
doSave() {
if (this.name == "") {
uni.showToast({
icon: 'error',
title: "请输入姓名"
})
return;
}
if (this.idcard == "") {
uni.showToast({
icon: 'error',
title: "请输入身份证号"
})
return;
}
if (this.phone == "") {
uni.showToast({
icon: 'error',
title: "请输入电话"
})
return;
}
var itemPerson = []
if (this.personList.length > 0) {
for (var i = 0; i < this.personList.length; i++) {
if (this.personList[i].name == "") {
uni.showToast({
icon: 'error',
title: "请输入姓名"
})
return;
}
if (this.personList[i].idcard == "") {
uni.showToast({
icon: 'error',
title: "请输入身份证号"
})
return;
}
if (this.personList[i].phone == "") {
uni.showToast({
icon: 'error',
title: "请输入电话"
})
return;
}
}
for (var i = 0; i < this.personList.length; i++) {
var basePerson = {
name: this.personList[i].name,
phone: this.personList[i].phone,
userType: this.personList[i].type,
cardNum: this.personList[i].idcard,
orderNum: i,
}
itemPerson.push(basePerson);
}
}
var person = {
name: this.name,
phone: this.phone,
remake: this.remark,
userType: this.type,
activityId: this.activityId,
cardNum: this.idcard,
activityJoinVOList: itemPerson
}
console.log(person)
uni.showLoading({
title: "提交中..."
})
this.$app.request({
url: this.$api.duty.doSignActivity,
method: 'POST',
dataType: 'json',
header: {
token: this.token
},
data: person,
success: res => {
if (res.status) {
uni.hideLoading()
uni.showToast({
icon: 'error',
title: "系统错误"
})
} else {
uni.hideLoading()
uni.showToast({
icon: 'success',
title: "报名成功"
})
uni.navigateBack()
}
},
fail: res => {
},
complete: res => {
uni.hideLoading()
}
});
}
}
}
</script>
<style lang="scss">
page {
height: 100%;
}
.page {
display: flex;
flex: 1;
flex-direction: column;
overflow: auto;
height: 100%;
background: #f2f2f2;
}
.content {
flex: 1;
width: 100%;
height: 100rpx;
display: flex;
flex-direction: column;
}
.base-person {
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
font-size: 20rpx;
background: white;
margin-bottom: 20rpx;
width: 100%;
.item {
display: flex;
flex-direction: column;
margin: 20rpx;
justify-content: flex-start;
align-items: center;
width: 95%;
.item-title {
font-size: 25rpx;
width: 100%;
background: #e4f3f2;
padding: 10rpx;
}
.item-title-box {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
background: #f2f2f2;
padding: 10rpx;
width: 100%;
.item-title-name {
font-size: 20rpx;
}
.item-title-del {
color: darkgreen;
}
}
input {
margin-top: 20rpx;
padding: 10rpx;
width: 95%;
font-size: 25rpx;
border: 1rpx #d3d3d3 solid;
}
}
}
.add-person {
color: green;
border: 1rpx #c28127 solid;
border-radius: 10rpx;
text-align: center;
align-self: flex-start;
margin-top: 10rpx;
border-radius: 10rpx;
width: 25%;
padding: 10rpx;
}
.save-btn {
color: white;
background-color: green;
width: 95%;
border-radius: 10rpx;
text-align: center;
align-self: center;
margin-top: 5rpx;
border-radius: 10rpx;
padding: 10rpx;
}
</style>

View File

@ -0,0 +1,22 @@
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>

217
pages/duty/dutyexplain.vue Normal file
View File

@ -0,0 +1,217 @@
<template>
<view class="page">
<view class="content">
<view class="state-bar">
<image src="../../static/images/ic_arrow_left_black.png" mode="aspectFill" @click="closePage()"></image>
<text>尽责形式说明</text>
</view>
<view class="box">
<image class="title-img" src="../../static/images/ic_explan_title_bg.png" mode="aspectFill"></image>
<view class="container-box">
<view class="container-item" v-for="(item,index) in list" :key="index">
<view class="container-title">
<text>{{item.orderNum}}</text>
<rich-text :nodes="item.description"></rich-text>
</view>
<rich-text class="container-content" :nodes="item.content"></rich-text>
</view>
</view>
</view>
</view>
<pageLoading v-if="showPageLoading"></pageLoading>
</view>
</template>
<script>
import pageLoading from '@/components/loading/pageLoading.vue';
export default {
components: {
pageLoading
},
data() {
return {
list: [],
showPageLoading: true,
}
},
onLoad(res) {
this.getExplain()
},
methods: {
closePage() {
uni.navigateBack()
},
getExplain() {
this.$app.request({
url: this.$api.duty.getDutyExplain,
method: 'GET',
dataType: 'json',
success: res => {
console.log(res)
if (res.status) {
uni.showToast({
icon: 'error',
title: "系统错误"
})
} else {
uni.hideLoading()
this.list = res
}
},
fail: res => {
},
complete: res => {
this.showPageLoading = false
uni.hideLoading()
}
});
}
}
}
</script>
<style lang="scss">
page {
height: 100%;
}
.page {
display: flex;
flex: 1;
flex-direction: column;
overflow: auto;
height: 100%;
background-image: url('../../static/images/ic_explan_bg.png');
background-size: 100% 100%;
background-repeat: no-repeat;
}
.content {
width: 100%;
position: relative;
}
.box {
display: flex;
flex-direction: column;
justify-content: flex-start;
min-height: 700rpx;
height: auto;
width: 90%;
position: absolute;
top: 300rpx;
left: 50%;
transform: translate(-50%, 0);
-webkit-transform: translate(-50%, 0);
box-shadow: 0rpx 7rpx 33rpx 16rpx rgba(188, 226, 204, 0.15);
border-radius: 30rpx;
background: white;
.title-img {
align-items: center;
align-self: center;
width: 360rpx;
height: 100rpx;
margin-top: -12rpx;
}
}
.tab-bar {
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-around;
padding-top: 15rpx;
.tab-active {
text-align: center;
font-size: 40rpx;
font-weight: bold;
color: #00821E;
}
.tab-default {
text-align: center;
font-size: 40rpx;
font-weight: 200;
color: #00821E;
}
}
.title-box {
width: 100%;
height: 100%;
background-image: url('../../static/images/ic_explan_bg.png');
background-size: 100% 100%;
background-repeat: no-repeat;
}
.state-bar {
position: absolute;
top: 0%;
left: 0%;
width: 100%;
margin: 45rpx 0rpx;
height: 100rpx;
display: flex;
flex-direction: row;
align-items: center;
color: black;
image {
width: 50rpx;
height: 50rpx;
margin-left: 20rpx;
}
text {
font-size: 40rpx;
align-self: center;
text-align: center;
width: 100%;
margin-left: -70rpx;
}
}
.container-box {
display: flex;
flex-direction: column;
padding: 20rpx;
margin-top: 20rpx;
.container-item {
display: flex;
flex-direction: column;
.container-title {
display: flex;
flex-direction: row;
padding: 20rpx 10rpx;
background: #EDFCED;
text {
background: #00821E;
border-radius: 50%;
width: 45rpx;
height: 45rpx;
text-align: center;
color: white;
margin-right: 20rpx;
}
}
.container-content {
padding: 20rpx;
}
}
}
</style>

View File

@ -25,13 +25,13 @@
<image src="../../static/images/ic_labour_pious_icon.png" mode="aspectFill"></image>
<text>劳动尽责</text>
</view>
<view class="item">
<view class="item" @click="openCertificate">
<image src="../../static/images/ic_certify_search_icon.png" mode="aspectFill"></image>
<text>证书查询</text>
</view>
<view class="item">
<view class="item" @click="openExplain">
<image src="../../static/images/ic_duty_answer_icon.png" mode="aspectFill"></image>
<text>基础问答</text>
<text>尽责说明</text>
</view>
</view>
<image class="divider" src="../../static/images/ic_duty_divider.png" mode="aspectFill"></image>
@ -64,6 +64,16 @@
uni.navigateTo({
url: "/pages/duty/activitylist"
})
},
openExplain() {
uni.navigateTo({
url: "/pages/duty/dutyexplain"
})
},
openCertificate() {
uni.navigateTo({
url: "/pages/user/mine_certif_search"
})
}
}

View File

@ -7,7 +7,7 @@
@scroll="navFloatShow(scroller)" :fixed="false">
<view class="search">
<view class="search-content">
<image src="../../static/images/ic_search.png" class="icon" mode="aspectFill"></image>
<image src="../../static/images/ic_search.png" class="icon" mode="scaleToFill"></image>
<input @input="onSearchInput" placeholder="请输入关键字搜索" />
</view>
<view class="btn" @click="doSearch">搜索</view>
@ -17,8 +17,8 @@
<swiper-item v-for="(item, index) in slider" :key="index">
<navigator class="item" hover-class="none"
:url="'/pages/news/newsdetail?url='+baseurl+item.templateRecordUrl">
<image :lazy-load="true" :src="item.imageUrl" mode="aspectFill"></image>
<image :lazy-load="true" :src="item.imageUrl" mode="scaleToFill"></image>
</navigator>
</swiper-item>
</swiper>
@ -71,7 +71,8 @@
navBarHeight: '',
token: "",
searchContent: "",
baseurl: "https://www.xzszwhy.cn/",
baseurl: this.$api.common.baseUrl,
};
},
onShow() {
@ -105,19 +106,11 @@
};
},
onLoad(e) {
// #ifdef H5
if (e.category_id > 0) {
this.category_id = e.category_id;
}
if (e.category_index > 0) {
this.category_index = e.category_index;
}
// #ifdef APP-PLUS
// this.getAppVersion(plus.runtime.versionCode)
this.startDownloadApk()
// #endif
this.getBannerList();
// this.getData()
// let accessToken = uni.getStorageSync('accessToken');
// if()
},
onPullDownRefresh() {
uni.showLoading({
@ -150,6 +143,7 @@
title: '刷新中'
});
this.scroller.resetUpScroll();
this.getBannerList();
},
/*加载数据*/
@ -167,7 +161,7 @@
url: this.$api.news.getMainFun,
method: 'GET',
data: {
'directoriesParentId': this.$api.news.NEWS_MAIN_TAB
'newsDirectoriesId': this.$api.news.NEWS_MAIN_TAB
},
dataType: 'json',
success: res => {
@ -191,7 +185,7 @@
this.$app.request({
url: this.$api.news.getNewsList,
data: {
newsDirectoriesParentId: this.$api.news.NEWS_MAIN_ID,
newsDirectoriesId: this.$api.news.NEWS_MAIN_ID,
page: this.scroller.num,
rows: this.scroller.size,
keywords: this.searchContent
@ -314,6 +308,62 @@
}
})
},
getAppVersion(version) {
this.$app.request({
url: this.$api.common.getAppVersion,
method: "GET",
success: res => {
if (res) {
if (res.data > version) {
this.startDownloadApk()
}
}
},
complete: res => {
}
});
},
startDownloadApk() {
//Apk
console.log("开始下载Apk")
// #ifdef APP-PLUS
const dtask = plus.downloader.createDownload(this.$api.common.appDownloadUrl, {
force: true
}, function(d, status) {
console.log(status)
//
if (status == 200) {
var path = (d.filename); //
plus.runtime.install(path, {}, function() {
plus.nativeUI.closeWaiting(); //
if (name == 'wgt') {
console.log("安装wgt文件成功");
} else {
console.log("安装apk文件成功")
}
plus.nativeUI.alert("引用资源更新完成!", function() {
plus.runtime.restart();
})
}, function(e) {
plus.nativeUI.closeWaiting(); //
if (name == 'wgt') {
console.log("安装wgt文件失败[" + e.code + "]" + e.message);
plus.nativeUI.alert("安装wgt文件失败[" + e.code + "]" + e.message);
} else {
console.log("安装apk文件失败[" + e.code + "]" + e.message);
plus.nativeUI.alert("安装apk文件失败[" + e.code + "]" + e.message);
}
})
} else {
alert("Download failed" + status);
}
})
// #endif
},
doSearch() {
uni.hideKeyboard()
if (this.searchContent == "") {

View File

@ -96,6 +96,10 @@
/*更新登录状态,保存用户数据*/
this.hasLogin = true;
this.login(res.data);
uni.setStorage({
key: "token",
data: res.data
})
uni.setStorageSync('source', 'login');
getApp().globalData.token = res.data
/*登录后跳转*/

View File

@ -29,7 +29,7 @@
<view class="centent-box" v-if="currentIndex==2" style="margin-top: 120rpx;">
<view class="box-item">
<text>单位名称</text>
<input placeholder="请输入单位名称" :value="unitname" />
<input @input="" placeholder="请输入单位名称" :value="unitname" />
</view>
</view>
<view class="btn">查询</view>
@ -43,9 +43,9 @@
data() {
return {
currentIndex: 1,
bg1: "../../static/images/ic_certify_tab_1.png",
bg: "../../static/images/ic_certify_tab_1.png",
bg2: "../../static/images/ic_certify_tab_2.png",
bg1: "../../static/images/ic_certify_tab_2.png",
bg: "../../static/images/ic_certify_tab_2.png",
bg2: "../../static/images/ic_certify_tab_1.png",
name: "",
phone: "",
idcard: "",

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
static/images/ic_status_bg.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,3 @@
{
"prompt" : "none"
}

View File

@ -1,8 +1,8 @@
var isReady=false;var onReadyCallbacks=[];
var isServiceReady=false;var onServiceReadyCallbacks=[];
var __uniConfig = {"pages":["pages/news/index","pages/duty/index","pages/user/index","pages/user/login","pages/user/register","pages/news/newsdetail","pages/user/minejoin","pages/user/mine_honour_certif","pages/user/mine_duty_certif","pages/user/mine_certif_search","pages/duty/activitylist"],"window":{"navigationBarTextStyle":"white","navigationBarTitleText":"全民植树","navigationBarBackgroundColor":"#8cc7b5","backgroundColor":"#F8F8F8"},"tabBar":{"color":"#000000","selectedColor":"#000000","backgroundColor":"#FFFFFF","list":[{"pagePath":"pages/news/index","iconPath":"static/images/nav/icon_home.png","selectedIconPath":"static/images/nav/icon_home_hover.png","text":"新闻资讯"},{"pagePath":"pages/duty/index","iconPath":"static/images/nav/icon_favorite.png","selectedIconPath":"static/images/nav/icon_favorite_hover.png","text":"尽职尽责"},{"pagePath":"pages/user/index","iconPath":"static/images/nav/icon_user.png","selectedIconPath":"static/images/nav/icon_user_hover.png","text":"个人中心"}]},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"tree_planting","compilerVersion":"3.6.18","entryPagePath":"pages/news/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
var __uniRoutes = [{"path":"/pages/news/index","meta":{"isQuit":true,"isTabBar":true},"window":{"titleNView":false,"navigationStyle":"custom","enablePullDownRefresh":false,"disableScroll":true,"navigationBarTitleText":"全民植树","navigationBarTextStyle":"black","bounce":"none"}},{"path":"/pages/duty/index","meta":{"isQuit":true,"isTabBar":true},"window":{"titleNView":false,"navigationStyle":"custom","navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black","navigationBarTitleText":"尽职尽责","enablePullDownRefresh":false}},{"path":"/pages/user/index","meta":{"isQuit":true,"isTabBar":true},"window":{"titleNView":false,"navigationStyle":"custom","navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black","navigationBarTitleText":"个人中心","enablePullDownRefresh":false}},{"path":"/pages/user/login","meta":{},"window":{"navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black","navigationBarTitleText":"登录","enablePullDownRefresh":false}},{"path":"/pages/user/register","meta":{},"window":{"navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black","navigationBarTitleText":"注册","enablePullDownRefresh":false}},{"path":"/pages/news/newsdetail","meta":{},"window":{"navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black","navigationBarTitleText":"详情","enablePullDownRefresh":false}},{"path":"/pages/user/minejoin","meta":{},"window":{"navigationBarTitleText":"我的劳动参与","enablePullDownRefresh":false,"navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black"}},{"path":"/pages/user/mine_honour_certif","meta":{},"window":{"navigationBarTitleText":"国土绿化荣誉证书","enablePullDownRefresh":false,"navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black"}},{"path":"/pages/user/mine_duty_certif","meta":{},"window":{"navigationBarTitleText":"义务植树尽责证书","enablePullDownRefresh":false,"navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black"}},{"path":"/pages/user/mine_certif_search","meta":{},"window":{"titleNView":false,"navigationStyle":"custom","navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black","navigationBarTitleText":"证书查询","enablePullDownRefresh":false}},{"path":"/pages/duty/activitylist","meta":{},"window":{"titleNView":false,"navigationStyle":"custom","navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black","navigationBarTitleText":"劳动参与活动","enablePullDownRefresh":false}}];
var __uniConfig = {"pages":["pages/news/index","pages/duty/index","pages/user/index","pages/user/login","pages/user/register","pages/news/newsdetail","pages/user/minejoin","pages/user/mine_honour_certif","pages/user/mine_duty_certif","pages/user/mine_certif_search","pages/duty/activitylist","pages/duty/activitydetail","pages/duty/activitysign","pages/duty/activityunsign","pages/duty/dutyexplain"],"window":{"navigationBarTextStyle":"white","navigationBarTitleText":"全民植树","navigationBarBackgroundColor":"#8cc7b5","backgroundColor":"#F8F8F8"},"tabBar":{"color":"#000000","selectedColor":"#000000","backgroundColor":"#FFFFFF","list":[{"pagePath":"pages/news/index","iconPath":"static/images/nav/icon_home.png","selectedIconPath":"static/images/nav/icon_home_hover.png","text":"新闻资讯"},{"pagePath":"pages/duty/index","iconPath":"static/images/nav/icon_favorite.png","selectedIconPath":"static/images/nav/icon_favorite_hover.png","text":"尽职尽责"},{"pagePath":"pages/user/index","iconPath":"static/images/nav/icon_user.png","selectedIconPath":"static/images/nav/icon_user_hover.png","text":"个人中心"}]},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"tree_planting","compilerVersion":"3.6.18","entryPagePath":"pages/news/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
var __uniRoutes = [{"path":"/pages/news/index","meta":{"isQuit":true,"isTabBar":true},"window":{"titleNView":false,"navigationStyle":"custom","enablePullDownRefresh":false,"disableScroll":true,"navigationBarTitleText":"全民植树","navigationBarTextStyle":"black","bounce":"none"}},{"path":"/pages/duty/index","meta":{"isQuit":true,"isTabBar":true},"window":{"titleNView":false,"navigationStyle":"custom","navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black","navigationBarTitleText":"尽职尽责","enablePullDownRefresh":false}},{"path":"/pages/user/index","meta":{"isQuit":true,"isTabBar":true},"window":{"titleNView":false,"navigationStyle":"custom","navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black","navigationBarTitleText":"个人中心","enablePullDownRefresh":false}},{"path":"/pages/user/login","meta":{},"window":{"navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black","navigationBarTitleText":"登录","enablePullDownRefresh":false}},{"path":"/pages/user/register","meta":{},"window":{"navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black","navigationBarTitleText":"注册","enablePullDownRefresh":false}},{"path":"/pages/news/newsdetail","meta":{},"window":{"navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black","navigationBarTitleText":"详情","enablePullDownRefresh":false}},{"path":"/pages/user/minejoin","meta":{},"window":{"navigationBarTitleText":"我的劳动参与","enablePullDownRefresh":false,"navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black"}},{"path":"/pages/user/mine_honour_certif","meta":{},"window":{"navigationBarTitleText":"国土绿化荣誉证书","enablePullDownRefresh":false,"navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black"}},{"path":"/pages/user/mine_duty_certif","meta":{},"window":{"navigationBarTitleText":"义务植树尽责证书","enablePullDownRefresh":false,"navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black"}},{"path":"/pages/user/mine_certif_search","meta":{},"window":{"titleNView":false,"navigationStyle":"custom","navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black","navigationBarTitleText":"证书查询","enablePullDownRefresh":false}},{"path":"/pages/duty/activitylist","meta":{},"window":{"titleNView":false,"navigationStyle":"custom","navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black","navigationBarTitleText":"劳动参与活动","enablePullDownRefresh":false}},{"path":"/pages/duty/activitydetail","meta":{},"window":{"titleNView":false,"navigationStyle":"custom","navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"white","navigationBarTitleText":"活动详情","enablePullDownRefresh":false}},{"path":"/pages/duty/activitysign","meta":{},"window":{"navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black","navigationBarTitleText":"活动报名","enablePullDownRefresh":false}},{"path":"/pages/duty/activityunsign","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pages/duty/dutyexplain","meta":{},"window":{"titleNView":false,"navigationStyle":"custom","navigationBarBackgroundColor":"#FFFFFF","navigationBarTextStyle":"black","navigationBarTitleText":"尽责形式说明","enablePullDownRefresh":false}}];
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"","name":"tree_planting","version":{"name":"1.0.0","code":"100"},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#8cc7b5"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"google":{"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"]},"apple":{},"plugins":{"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"safearea":{"background":"#FFFFFF","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"3.6.18","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"color":"#000000","selectedColor":"#000000","backgroundColor":"#FFFFFF","list":[{"pagePath":"pages/news/index","iconPath":"static/images/nav/icon_home.png","selectedIconPath":"static/images/nav/icon_home_hover.png","text":"新闻资讯"},{"pagePath":"pages/duty/index","iconPath":"static/images/nav/icon_favorite.png","selectedIconPath":"static/images/nav/icon_favorite_hover.png","text":"尽职尽责"},{"pagePath":"pages/user/index","iconPath":"static/images/nav/icon_user.png","selectedIconPath":"static/images/nav/icon_user_hover.png","text":"个人中心"}],"borderStyle":"rgba(0,0,0,0.4)","height":"50px","child":["lauchwebview"],"selected":0},"launch_path":"__uniappview.html"}}
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__BAFB016","name":"tree_planting","version":{"name":"1.0.0","code":1},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#8cc7b5"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"splashscreen":{"androidStyle":"common","useOriginalMsgbox":false},"google":{"permissions":["<uses-feature android:name=\"android.hardware.camera\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"]},"apple":{},"plugins":{"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"safearea":{"background":"#FFFFFF","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"3.6.18","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"color":"#000000","selectedColor":"#000000","backgroundColor":"#FFFFFF","list":[{"pagePath":"pages/news/index","iconPath":"static/images/nav/icon_home.png","selectedIconPath":"static/images/nav/icon_home_hover.png","text":"新闻资讯"},{"pagePath":"pages/duty/index","iconPath":"static/images/nav/icon_favorite.png","selectedIconPath":"static/images/nav/icon_favorite_hover.png","text":"尽职尽责"},{"pagePath":"pages/user/index","iconPath":"static/images/nav/icon_user.png","selectedIconPath":"static/images/nav/icon_user_hover.png","text":"个人中心"}],"borderStyle":"rgba(0,0,0,0.4)","height":"50px","child":["lauchwebview"],"selected":0},"launch_path":"__uniappview.html"}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB