@@ -2,6 +2,7 @@ | |||||
<html> | <html> | ||||
<head> | <head> | ||||
<meta charset="UTF-8" /> | <meta charset="UTF-8" /> | ||||
<meta http-equiv="refresh" content="720000"> | |||||
<script> | <script> | ||||
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || | var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || | ||||
CSS.supports('top: constant(a)')) | CSS.supports('top: constant(a)')) | ||||
@@ -14,6 +14,20 @@ | |||||
// console.log('微信全局配置:', __wxConfig); | // console.log('微信全局配置:', __wxConfig); | ||||
} | } | ||||
let params = { | |||||
"version": "1.0.10" | |||||
} | |||||
// 路由中判断 version 是否是最新版本 | |||||
let oldV = localStorage.getItem('version'); | |||||
if (oldV != params.version) { | |||||
//如果有更新,保存最新版本 | |||||
localStorage.setItem('version',params.version) | |||||
//帮用户刷新页面 | |||||
window.location.reload(); | |||||
} | |||||
// 微信API支持Promise风格 | // 微信API支持Promise风格 | ||||
promisifyAll(); | promisifyAll(); | ||||
export default { | export default { | ||||
@@ -1,6 +1,5 @@ | |||||
<template> | <template> | ||||
<view> | <view> | ||||
<custom-nav-bar position="fixed" color="black" left-text="" left-arrow /> | |||||
<view class="dateil"> | <view class="dateil"> | ||||
<view class="title multi-line">{{detailObj.activityTitle}}</view> | <view class="title multi-line">{{detailObj.activityTitle}}</view> | ||||
@@ -8,9 +7,10 @@ | |||||
<view class="nickName">发布人:{{detailObj.userName}}</view> | <view class="nickName">发布人:{{detailObj.userName}}</view> | ||||
<view class="time">{{getDateTime(detailObj.createTime,1)}}</view> | <view class="time">{{getDateTime(detailObj.createTime,1)}}</view> | ||||
</view> | </view> | ||||
<view class="line"></view> | |||||
<mp-html class="rich-text" :content="detailObj.activityContent" /> | |||||
</view> | |||||
<view style="height: 100rpx;"></view> | |||||
<view style="padding: 60rpx 20rpx;"> | |||||
<mp-html class="rich-text" :content="detailObj.activityContent" /> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -50,7 +50,11 @@ | |||||
<style lang="less" scoped> | <style lang="less" scoped> | ||||
.dateil { | .dateil { | ||||
position: fixed; | |||||
top: 88rpx; | |||||
width: 100%; | |||||
padding: 10rpx 40rpx; | padding: 10rpx 40rpx; | ||||
background-color: #fff; | |||||
.title { | .title { | ||||
font-size: 34rpx; | font-size: 34rpx; | ||||
@@ -5,7 +5,7 @@ | |||||
<view class="search"> | <view class="search"> | ||||
<view class="flex flex-between search-input"> | <view class="flex flex-between search-input"> | ||||
<input class="input" :value="searchValue" type="text" confirm-type="search" | <input class="input" :value="searchValue" type="text" confirm-type="search" | ||||
placeholder-class="placeholder-style" placeholder="请输入搜索商户名称" @input="onSearch" @confirm="onChange" /> | |||||
placeholder-class="placeholder-style" placeholder="请输入搜索活动标题" @input="onSearch" @confirm="onChange" /> | |||||
<view class="search-icon flex flex-center" @click="onSearch"> | <view class="search-icon flex flex-center" @click="onSearch"> | ||||
<image class="imgage" src="/static/images/search.png"></image> | <image class="imgage" src="/static/images/search.png"></image> | ||||
</view> | </view> | ||||
@@ -91,7 +91,7 @@ | |||||
pageSize: 10, | pageSize: 10, | ||||
}; | }; | ||||
if (this.searchValue) { | if (this.searchValue) { | ||||
param.key = this.searchValue; | |||||
param.activityTitle = this.searchValue; | |||||
} | } | ||||
const res = await peopleApi.activityPageApi(param); | const res = await peopleApi.activityPageApi(param); | ||||
if (res.data) { | if (res.data) { | ||||
@@ -75,6 +75,7 @@ | |||||
<script> | <script> | ||||
import * as peopleApi from '@/api/peopleApi'; | import * as peopleApi from '@/api/peopleApi'; | ||||
import * as publicApi from '@/api/publicApi'; | import * as publicApi from '@/api/publicApi'; | ||||
import * as myApi from '@/api/myApi'; // 我的 | |||||
import utils from '@/utils/util.map' | import utils from '@/utils/util.map' | ||||
export default { | export default { | ||||
data() { | data() { | ||||
@@ -101,12 +102,15 @@ | |||||
}, | }, | ||||
onLoad(option) { | onLoad(option) { | ||||
this.option = option | this.option = option | ||||
this.userRoles = uni.getStorageSync('userRoles') | |||||
this.userRoles = uni.getStorageSync('userRoles') || uni.getStorageSync('roles')[0] | |||||
this.getTypeApi('people_volunteer_project_serviceStatus', 'statusList'); | this.getTypeApi('people_volunteer_project_serviceStatus', 'statusList'); | ||||
this.recursionApi(); | this.recursionApi(); | ||||
this.volunteerProject(); | this.volunteerProject(); | ||||
this.newsPageApi(false) | this.newsPageApi(false) | ||||
}, | }, | ||||
onShow() { | |||||
this.getUserInfo(); | |||||
}, | |||||
methods: { | methods: { | ||||
headerUserRoles(item, key) { | headerUserRoles(item, key) { | ||||
if (item.remark !== '') { | if (item.remark !== '') { | ||||
@@ -124,6 +128,15 @@ | |||||
getStatusText(list, key) { | getStatusText(list, key) { | ||||
return utils.getStatusText(list, key) | return utils.getStatusText(list, key) | ||||
}, | }, | ||||
// 获取我的信息 | |||||
async getUserInfo() { | |||||
const res = await myApi.getProfileUserInfoApi(); | |||||
if (res.data) { | |||||
this.userInfo = res.data | |||||
this.userInfo.userId = res.data.id | |||||
uni.setStorageSync("userInfoData", this.userInfo); | |||||
} | |||||
}, | |||||
// 获取群众点单字典 | // 获取群众点单字典 | ||||
async getTypeApi(dictType, list) { | async getTypeApi(dictType, list) { | ||||
const res = await publicApi.getDictDataApi({ | const res = await publicApi.getDictDataApi({ | ||||
@@ -140,6 +153,8 @@ | |||||
const res = await peopleApi.volunteerProjectApi({ | const res = await peopleApi.volunteerProjectApi({ | ||||
pageNo: this.voluntPageNo, | pageNo: this.voluntPageNo, | ||||
pageSize: 10, | pageSize: 10, | ||||
communityId:uni.getStorageSync('userInfoData').communityId, | |||||
// villageId:uni.getStorageSync('userInfoData').villageId | |||||
}); | }); | ||||
if (res.data) { | if (res.data) { | ||||
this.volunteerProjectList = res.data.list | this.volunteerProjectList = res.data.list | ||||
@@ -186,6 +201,8 @@ | |||||
const param = { | const param = { | ||||
pageNo: 1, | pageNo: 1, | ||||
pageSize: 10, | pageSize: 10, | ||||
communityId:uni.getStorageSync('userInfoData').communityId, | |||||
// villageId:uni.getStorageSync('userInfoData').villageId | |||||
}; | }; | ||||
if (this.searchValue) { | if (this.searchValue) { | ||||
param.title = this.searchValue; | param.title = this.searchValue; | ||||
@@ -3,6 +3,33 @@ | |||||
<custom-nav-bar position="fixed" color="black" left-text="志愿服务发布" left-arrow /> | <custom-nav-bar position="fixed" color="black" left-text="志愿服务发布" left-arrow /> | ||||
<view class="form-list"> | <view class="form-list"> | ||||
<view class="form-body form-col"> | |||||
<view class="label"> | |||||
<text>常住地社区</text> | |||||
<text class="red">*</text> | |||||
</view> | |||||
<view class="label-value picker flex flex-v-center flex-between"> | |||||
<view :class="form.communityId ? 'picker-line' : 'picker-text'" data-name="常住地社区" @tap="onOpenVisible"> | |||||
{{ form.communityName }} | |||||
</view> | |||||
<image class="ic-xia" src="/static/packages/people/images/ic-xia.png" @tap="onOpenVisible"></image> | |||||
</view> | |||||
</view> | |||||
<view class="form-body form-col"> | |||||
<view class="label"> | |||||
<text>服务地点</text> | |||||
<!-- <text class="red">*</text> --> | |||||
</view> | |||||
<view class="label-value picker flex flex-v-center flex-between"> | |||||
<input class="flex1 textarea-class" @input="headleInput" :value="form.servicePoint" type="text" data-name="servicePoint" | |||||
placeholder="请输入服务地点" /> | |||||
<!-- <view :class="form.villageId ? 'picker-line' : 'picker-text'" @tap="onOpenVisible">{{ form.villageName }} | |||||
</view> | |||||
<image class="ic-xia" src="/static/packages/people/images/ic-xia.png" @tap="onOpenVisible"></image> --> | |||||
</view> | |||||
</view> | |||||
<view class="form-body"> | <view class="form-body"> | ||||
<view class="flex flex-v-center flex-between"> | <view class="flex flex-v-center flex-between"> | ||||
<view class="label"> | <view class="label"> | ||||
@@ -102,6 +129,11 @@ | |||||
<van-button v-if="checked" @click="handSubmit" block color="#FE3B53">发布信息</van-button> | <van-button v-if="checked" @click="handSubmit" block color="#FE3B53">发布信息</van-button> | ||||
<van-button v-else disabled block color="#C1C1C1">发布信息</van-button> | <van-button v-else disabled block color="#C1C1C1">发布信息</van-button> | ||||
</view> | </view> | ||||
<van-popup v-model:show="isVisible" round position="bottom"> | |||||
<van-cascader v-model="currentValue" :title="cascaderTitle" :options="optionData" :field-names="defaultFieldNames" | |||||
@finish="onCloseVisible" @close="onCloseVisible" @change="onChangeVisible" /> | |||||
</van-popup> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -130,17 +162,42 @@ | |||||
effectDate: '', | effectDate: '', | ||||
serviceStatus: '', | serviceStatus: '', | ||||
serviceStatusName: '', | serviceStatusName: '', | ||||
communityId: '', | |||||
communityName: '请选择', | |||||
villageId: '', | |||||
villageName: '请选择', | |||||
}, | }, | ||||
checked: false, | checked: false, | ||||
minDate: new Date(2020, 0, 1), | minDate: new Date(2020, 0, 1), | ||||
maxDate: new Date(2025, 5, 1), | maxDate: new Date(2025, 5, 1), | ||||
// 级连选择器数据 start | |||||
cascaderTitle: '', | |||||
isVisible: false, | |||||
FiledVisible: true, | |||||
optionData: [], | |||||
currentTile: '请选择', | |||||
// 选择后的名称 | |||||
currentValue: null, | |||||
// 选择后的id | |||||
// 级联选择默认显示字段 | |||||
// 级连选择器数据 end | |||||
defaultFieldNames: { | |||||
text: 'name', | |||||
value: 'id', | |||||
children: 'children' | |||||
}, | |||||
} | } | ||||
}, | }, | ||||
onLoad(options) { | onLoad(options) { | ||||
this.options = options | this.options = options | ||||
this.getTypeApi('people_volunteer_project_type', 'projectTypeList'); | this.getTypeApi('people_volunteer_project_type', 'projectTypeList'); | ||||
this.getTypeApi('people_volunteer_project_serviceStatus', 'serviceStatusList'); | this.getTypeApi('people_volunteer_project_serviceStatus', 'serviceStatusList'); | ||||
this.deptTreeApi(); | |||||
}, | }, | ||||
methods: { | methods: { | ||||
// 获取群众点单字典 | // 获取群众点单字典 | ||||
@@ -154,6 +211,13 @@ | |||||
this[list] = res.data.list | this[list] = res.data.list | ||||
} | } | ||||
}, | }, | ||||
async deptTreeApi() { | |||||
// 获取所在村/社区 | |||||
const res = await publicApi.deptTreeApi(); | |||||
if (res.data && res.data.length) { | |||||
this.optionData = res.data | |||||
} | |||||
}, | |||||
bindPickerChange(e) { | bindPickerChange(e) { | ||||
const { | const { | ||||
name, | name, | ||||
@@ -192,6 +256,7 @@ | |||||
this.appealEnclosure.push(res.data); | this.appealEnclosure.push(res.data); | ||||
}, | }, | ||||
beforeDelete(file, dateil) { | beforeDelete(file, dateil) { | ||||
this.fileList.splice(dateil.index, 1); | |||||
this.appealEnclosure.splice(dateil.index, 1); | this.appealEnclosure.splice(dateil.index, 1); | ||||
}, | }, | ||||
handSubmit() { | handSubmit() { | ||||
@@ -244,6 +309,24 @@ | |||||
}); | }); | ||||
} | } | ||||
}, | }, | ||||
onOpenVisible(e) { | |||||
this.isVisible = true | |||||
this.cascaderTitle = e.currentTarget.dataset.name | |||||
}, | |||||
onCloseVisible() { | |||||
this.isVisible = false | |||||
}, | |||||
onChangeVisible(e) { | |||||
if (this.cascaderTitle === '常住地社区') { | |||||
this.form.communityName = e.selectedOptions[e.tabIndex].name | |||||
this.form.communityId = e.value | |||||
} else { | |||||
this.form.villageName = e.selectedOptions[e.tabIndex].name | |||||
this.form.villageId = e.value | |||||
} | |||||
} | |||||
} | } | ||||
} | } | ||||
</script> | </script> | ||||
@@ -260,7 +260,12 @@ | |||||
{ | { | ||||
"path": "pages/activity-mien/detail", | "path": "pages/activity-mien/detail", | ||||
"name": "people", | "name": "people", | ||||
"style": {} | |||||
"style": { | |||||
"navigationBarTitleText": "", | |||||
"navigationStyle": "default", | |||||
"navigationBarBackgroundColor": "#ffffff", | |||||
"navigationBarTextStyle": "black" | |||||
} | |||||
}, | }, | ||||
{ | { | ||||
"path": "pages/volunteering/index", | "path": "pages/volunteering/index", | ||||
@@ -0,0 +1,3 @@ | |||||
{ | |||||
"version":"1.0" | |||||
} |