Browse Source

上传证件

master
unknown 3 months ago
parent
commit
70331b9989
  1. 26
      components/oneBtn/oneBtn.vue
  2. 50
      components/privacyRadion/privacyRadion.vue
  3. 52
      components/searchRow/searchRow.vue
  4. 5
      config/api.js
  5. 13
      config/request.js
  6. 16
      config/site.config.js
  7. 218
      config/utils.js
  8. 2
      package.json
  9. 48
      pages/subPage/authentication/authentication.vue
  10. 11
      pages/subPage/authentication/selectAddress.vue
  11. 39
      pages/subPage/ballots/ballotsList/ballotsList.vue
  12. 9
      pages/subPage/ballots/vote/comp/topInfo.vue
  13. 6
      pages/subPage/ballots/vote/vote.vue
  14. 9
      pages/subPage/ballots/vote/voteReslut.vue
  15. 15
      pages/subPage/login/login.vue
  16. 18
      pages/subPage/notice/noticeDetail.vue
  17. 95
      pages/subPage/privacyAgreement/comp/yhxy.vue
  18. 82
      pages/subPage/privacyAgreement/comp/yszc.vue
  19. 61
      pages/subPage/privacyAgreement/privacyAgreement.vue
  20. 85
      pages/tabbar/index/comp/notice.vue
  21. 144
      pages/tabbar/index/index.vue
  22. 4
      pages/tabbar/mine/mine.vue
  23. BIN
      static/images/phoneH.png
  24. 7
      store/index.js
  25. 4
      unpackage/dist/dev/mp-weixin/common/assets.js
  26. 1
      unpackage/dist/dev/mp-weixin/common/vendor.js
  27. 34
      unpackage/dist/dev/mp-weixin/components/oneBtn/oneBtn.js
  28. 62
      unpackage/dist/dev/mp-weixin/components/privacyRadion/privacyRadion.js
  29. 78
      unpackage/dist/dev/mp-weixin/components/searchRow/searchRow.js
  30. 4
      unpackage/dist/dev/mp-weixin/config/api.js
  31. 7
      unpackage/dist/dev/mp-weixin/config/request.js
  32. 14
      unpackage/dist/dev/mp-weixin/config/site.config.js
  33. 49
      unpackage/dist/dev/mp-weixin/pages/subPage/authentication/authentication.js
  34. 2
      unpackage/dist/dev/mp-weixin/pages/subPage/authentication/authentication.wxml
  35. 14
      unpackage/dist/dev/mp-weixin/pages/subPage/authentication/authentication.wxss
  36. 40
      unpackage/dist/dev/mp-weixin/pages/subPage/ballots/ballotsList/ballotsList.js
  37. 2
      unpackage/dist/dev/mp-weixin/pages/subPage/ballots/ballotsList/ballotsList.wxml
  38. 16
      unpackage/dist/dev/mp-weixin/pages/subPage/ballots/vote/comp/topInfo.js
  39. 3
      unpackage/dist/dev/mp-weixin/pages/subPage/ballots/vote/comp/topInfo.json
  40. 2
      unpackage/dist/dev/mp-weixin/pages/subPage/ballots/vote/comp/topInfo.wxml
  41. 6
      unpackage/dist/dev/mp-weixin/pages/subPage/ballots/vote/vote.js
  42. 8
      unpackage/dist/dev/mp-weixin/pages/subPage/ballots/vote/voteReslut.js
  43. 2
      unpackage/dist/dev/mp-weixin/pages/subPage/ballots/vote/voteReslut.wxml
  44. 7
      unpackage/dist/dev/mp-weixin/pages/subPage/ballots/vote/voteReslut.wxss
  45. 11
      unpackage/dist/dev/mp-weixin/pages/subPage/login/login.js
  46. 2
      unpackage/dist/dev/mp-weixin/pages/subPage/login/login.wxml
  47. 16
      unpackage/dist/dev/mp-weixin/pages/subPage/notice/noticeDetail.js
  48. 2
      unpackage/dist/dev/mp-weixin/pages/subPage/notice/noticeDetail.wxml
  49. 7
      unpackage/dist/dev/mp-weixin/pages/subPage/notice/noticeDetail.wxss
  50. 8
      unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/comp/yhxy.js
  51. 4
      unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/comp/yhxy.json
  52. 1
      unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/comp/yhxy.wxml
  53. 26
      unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/comp/yhxy.wxss
  54. 8
      unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/comp/yszc.js
  55. 4
      unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/comp/yszc.json
  56. 1
      unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/comp/yszc.wxml
  57. 26
      unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/comp/yszc.wxss
  58. 58
      unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/privacyAgreement.js
  59. 5
      unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/privacyAgreement.json
  60. 2
      unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/privacyAgreement.wxml
  61. 209
      unpackage/dist/dev/mp-weixin/pages/tabbar/index/comp/notice.js
  62. 5
      unpackage/dist/dev/mp-weixin/pages/tabbar/index/comp/notice.json
  63. 2
      unpackage/dist/dev/mp-weixin/pages/tabbar/index/comp/notice.wxml
  64. 15
      unpackage/dist/dev/mp-weixin/pages/tabbar/index/comp/notice.wxss
  65. 72
      unpackage/dist/dev/mp-weixin/pages/tabbar/index/index.js
  66. 2
      unpackage/dist/dev/mp-weixin/pages/tabbar/index/index.wxml
  67. 6
      unpackage/dist/dev/mp-weixin/pages/tabbar/index/index.wxss
  68. 4
      unpackage/dist/dev/mp-weixin/pages/tabbar/mine/mine.js
  69. 5
      unpackage/dist/dev/mp-weixin/project.private.config.json
  70. BIN
      unpackage/dist/dev/mp-weixin/static/images/bigImg/homebanner.png
  71. BIN
      unpackage/dist/dev/mp-weixin/static/images/bigImg/homebanner2.png
  72. BIN
      unpackage/dist/dev/mp-weixin/static/images/bigImg/homebanner3.png
  73. BIN
      unpackage/dist/dev/mp-weixin/static/images/bigImg/minebg.png
  74. BIN
      unpackage/dist/dev/mp-weixin/static/images/phoneH.png
  75. 7
      unpackage/dist/dev/mp-weixin/store/index.js
  76. 40
      unpackage/dist/dev/mp-weixin/utils/utils.js
  77. 57
      utils/utils.js

26
components/oneBtn/oneBtn.vue

@ -1,15 +1,22 @@
<template>
<view class="oneBtn" :class="{hui: disabled}" @click="oneBtnClick">{{ text }}</view>
<view class="oneBtn" :class="{hui: disabled}" @click="oneBtnClick">{{ text }}</view>
</template>
<script>
export default {
props: ['text', 'disabled'],
methods: {
oneBtnClick() {
this.$emit('oneBtnClick')
}
<script setup>
defineProps({
text: {
type: String,
default: ''
},
disabled: {
type: Boolean,
default: false
}
})
let emit = defineEmits()
function oneBtnClick() {
emit('oneBtnClick')
}
</script>
@ -17,12 +24,13 @@
.oneBtn {
height: 80rpx;
background: #DE3A26;
box-shadow: 0px 3rpx 20rpx 0px rgba(222,58,38,0.53);
box-shadow: 0px 3rpx 20rpx 0px rgba(222, 58, 38, 0.53);
border-radius: 40rpx;
text-align: center;
line-height: 80rpx;
font-size: 28rpx;
color: #fff;
&.hui {
opacity: 0.4;
}

50
components/privacyRadion/privacyRadion.vue

@ -1,27 +1,33 @@
<template>
<view class="radioWrap">
<u-checkbox-group >
<u-checkbox :checked="isCheck" shape="circle" label="已阅读并同意" activeColor="#DE3A26" :labelSize="12" @change="changeRadio">已阅读并同意</u-checkbox>
<u-checkbox-group>
<u-checkbox :checked="isCheck" shape="circle" label="已阅读并同意" activeColor="#DE3A26" :labelSize="12"
@change="changeRadio">已阅读并同意</u-checkbox>
</u-checkbox-group>
<view class="privacyText">
<text @click="goPage(2)">用户协议</text> <text @click="goPage(1)">隐私协议</text>
</view>
</view>
</template>
<script>
export default {
props: ['isCheck'],
methods: {
changeRadio(val) {
console.log(val)
this.$emit('changeRadio', val)
},
async goPage(type) {
this.$goPage('/pages/subPage/privacyAgreement/privacyAgreement?type='+ type)
}
<script setup>
defineProps({
isCheck: {
type: Boolean,
default: false
}
})
let emit = defineEmits()
function changeRadio(val) {
console.log(val)
emit('changeRadio', val)
}
function goPage(type) {
uni.navigateTo({
url: '/pages/subPage/privacyAgreement/privacyAgreement?type=' + type
})
}
</script>
@ -29,12 +35,14 @@
.radioWrap {
display: flex;
align-items: center;
.privacyText {
font-size: 24rpx;
color: #888E94;
text {
color: $themC;
}
}
.privacyText {
font-size: 24rpx;
color: #888E94;
text {
color: $themC;
}
}
}
</style>

52
components/searchRow/searchRow.vue

@ -4,30 +4,38 @@
<view class="searchIcon">
<image src="@/static/images/searchIcon.png" mode=""></image>
</view>
<view class="inputBox">
<u-search :placeholder="placeholder" searchIcon=" " v-model="keyword" :color="'#333'" :disabled="disable" placeholderColor="#9C9C9C" :bgColor="'transparent'" @change="$u.debounce(searchFn, 1500)" :showAction="false" @search="$u.debounce(searchFn, 500)" @clear="clearSearchFn"></u-search>
<u-search :placeholder="placeholder" searchIcon=" " v-model="keyword" :color="'#333'"
:disabled="disable" placeholderColor="#9C9C9C" :bgColor="'transparent'"
@change="$u.debounce(searchFn, 1500)" :showAction="false" @search="$u.debounce(searchFn, 500)"
@clear="clearSearchFn"></u-search>
</view>
</view>
</view>
</template>
<script>
export default {
props: ['placeholder', 'disable'],
data() {
return {
keyword: ''
}
<script setup>
defineProps({
placeholder: {
type: String,
default: ''
},
methods: {
searchFn() {
this.$emit('searchFn', this.keyword)
},
clearSearchFn() {
this.keyword = ''
}
disable: {
type: Boolean,
default: false
}
})
import {ref} from 'vue'
let emit = defineEmits()
let keyword = ref('')
function searchFn() {
emit('searchFn', keyword.value)
}
function clearSearchFn() {
keyword.value = ''
}
</script>
@ -37,23 +45,23 @@
width: 100%;
height: 100%;
}
.searchBg {
background: #EFEFEF;
width: 100%;
height: 72rpx;
border-radius: 10rpx;
line-height: 72rpx;
.flex {
height: 100%;
padding: 0 28rpx;
.searchIcon {
width: 32rpx;
height: 32rpx;
}
.inputBox {
flex: 1;
color: #333;
@ -62,6 +70,4 @@
}
}
}
</style>
</style>

5
config/api.js

@ -20,7 +20,7 @@ export const logOut = (data={}) => http.post('member/auth/logout', data, {custom
// 文章列表
export const getNoticeList = (data) => http.post('article/simple_list', data, { custom: { noToken: true }})
// 首页文章详情
export const getNoticeDetail = (data) => http.post('article/article_detail?articleId='+data.articleId, { custom: { noToken: true }})
export const getNoticeDetail = (data) => http.post('article/article_detail?articleId='+data.articleId, {}, { custom: { noToken: true }})
// 我的房子信息
export const getHouses = (data) => http.post('mime/houses', data)
// 小区下拉选信息
@ -44,6 +44,9 @@ export const logOut = (data={}) => http.post('member/auth/logout', data, {custom
export const articleVote = (data) => http.post('article/vote', data)
// 投票结果
export const voteResult = (data) => http.post('article/vote_result', data)
// 小程序订阅消息
export const appletSubscribe = (data) => http.post('mime/applet/subscribe', data)

13
config/request.js

@ -2,8 +2,7 @@
import setObj from '@/config/site.config.js';
let { H5_API, WX_API,httpPrefix } = setObj
import { useUserStoreHook } from '@/store/index.js';
// console.log('不能用?')
// console.log(useUserStoreHook())
const counterStore = useUserStoreHook();
@ -57,8 +56,7 @@ let secretKey = '22d90e09d1374f0f9e4accd07d333e55'
// 响应拦截
uni.$u.http.interceptors.response.use(async (response) => { /* 对响应成功做点什么 可使用async await 做异步操作*/
const data = response.data
// console.log('请求结果')
// console.log(data)
if(data.code==406&&response.config.url!='member/auth/refresh-token'&&response.config.url!=='member/auth/logout') {
// await refreshToken()
let obj = response.config
@ -71,7 +69,12 @@ let secretKey = '22d90e09d1374f0f9e4accd07d333e55'
}
if(data.code==401) {
console.log('报401的接口')
console.log(response.config.url)
let url = response.config.url
console.log(url)
if(url=='mime/houses'||url == 'face/user_info') {
console.log('还是到这里面来了?')
return Promise.reject(data)
}
return counterStore.goLogin()
}

16
config/site.config.js

@ -4,18 +4,14 @@ const VUE_APP_PLATFORM = process.env.VUE_APP_PLATFORM || 'h5';
// localIp = false
let obj = {
H5_API: VUE_APP_PLATFORM === 'h5' ? '/api' : '',//h5代理
WX_API: VUE_APP_PLATFORM === 'h5' ? '/' : 'http://192.168.1.106:8518/',//非代理地址 不要忘记加/
WX_API: VUE_APP_PLATFORM === 'h5' ? '/' : 'https://www.jakjgs.com/',//非代理地址 不要忘记加/
website: 'http://192.168.1.37',
httpPrefix: 'app-api/',
imgUrl: 'http://47.96.82.242/htmls/',
// 支付测试地址
// preUrl: 'https://u8wbs.zyebank.cn/cem_ysb_u6/index.html',
// const preUrl = 'https://u8wbs.zyebank.cn/cem_ysb_u8/index.html'
// 生产地址
preUrl: 'https://zmcht.zybank.com.cn/cem_ysb/index.html',
// httpPrefix: 'app-api/',
httpPrefix: 'xjapplet-api/',
imgUrl: 'https://www.jakjgs.com/htmls/',
tmplIds: ['OH_1gceM-m3EXRKOtjl_Hb1ymyC5zw8_Ag6LaFXV4Do', 'AjD_oLafmKGO8X3YvDGl1qmITq_Q6bSFMDeygJNAIes'],//消息模板
};
export default obj
// http://192.168.1.106:8518/测试地址
// http://192.168.1.43:8318/本地地址
//http://www.lyjppt.com/正式地址
// https://www.jakjgs.com/ 正式地址

218
config/utils.js

@ -1,218 +0,0 @@
import { WX_API, H5_API, httpPrefix } from './site.config.js';
var _url = H5_API+ WX_API + httpPrefix
import store from '@/store/index.js'
export function checkToken(vm) {
let expiresTime = vm.$store.state.user.vuex_loginInfo.expiresTime
let nowTime = new Date() * 1
console.log('超时了')
console.log(expiresTime)
if (nowTime > expiresTime * 1) {
vm.$store.commit('goLogin')
// 如果小于20分钟就刷新一下token &&
} else if ((expiresTime * 1 - nowTime) / 60000 < 10) {
vm.$store.dispatch('refreshToken')
}
}
function dateRangeFn(dateRange) {
let tmp = []
let dateArr = []
dateRange.forEach((date) => {
let dateStr = date.toISOString().split('T')[0]
let dd = dateStr.split('-')[2]
const daysOfWeek = ['日', '一', '二', '三', '四', '五', '六'];
const dayOfWeek = date.getDay();
const weekName = daysOfWeek[dayOfWeek];
// console.log(dateStr)
// console.log(weekName)
if (tmp.length == 0) {
dateArr.push(tmp)
}
let obj = {
week: weekName,
num: dd,
date: dateStr
}
tmp.push(obj)
if (tmp.length == 5) {
tmp = []
}
});
console.log(dateArr)
return dateArr
}
// 获取两个时间段的所有日期
export function getDates(startDate, endDate) {
const dates = [];
let currentDate = new Date(startDate);
while (currentDate <= endDate) {
dates.push(new Date(currentDate));
currentDate.setDate(currentDate.getDate() + 1);
}
return dateRangeFn(dates)
}
// 获取两个时间段的所有月份
export function getMonthsBetweenDates(startDate, endDate) {
let months = [];
let currentDate = new Date(startDate);
while (currentDate <= endDate) {
const year = currentDate.getFullYear();
const month = currentDate.getMonth() + 1; // 月份从0开始,所以要加1
months.push(`${year}-${month.toString().padStart(2, '0')}`);
// 将当前日期设置为下一个月的第一天
currentDate.setMonth(currentDate.getMonth() + 1);
currentDate.setDate(1);
}
return months;
}
//选择图片
export function chooseImages(num=0) {
let imgNum = 3 - num
let tempArr = []
return new Promise((reslove, reject)=>{
uni.chooseImage({
count: imgNum, //允许选择的数量
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], //从相册选择
success: res => {
uni.showLoading({
title: '图片上传中...'
});
console.log(res)
res.tempFiles.forEach( async (item,index)=>{
let dataImg = await uploadImgApi(item.path, index)
if(dataImg) tempArr.push(dataImg)
if(index==res.tempFiles.length-1) {
reslove(tempArr)
}
})
}
})
})
}
export function uploadImgApi(filePath, imgName, imgLink='image') {
console.log(filePath)
let token = 'Bearer '+ store.state.user.vuex_loginInfo.accessToken
let timer = new Date() * 1
return new Promise((reslove, reject)=>{
// 上传图片到服务器
uni.uploadFile({
url: _url + 'infra/file/upload',//接口
filePath: filePath,//要上传的图片的本地路径
name: 'file',
// complain
formData: {
path: imgLink+'/'+ uni.$u.date(timer, 'yyyy-mm-dd')+'/'+timer + '-'+ imgName,
type: 1,
fileSuffix: "png"
},
header: {
Authorization: token,
// 'tenant-id': '1704459882232553474'
},
success(res) {
console.log('上传成功??')
console.log(res)
let res2 = JSON.parse(res.data)
reslove(res2.data)
},
fail() {
reject(0)
},
complete: (err)=> {
uni.hideLoading();
}
})
})
}
let apiOk =true
let refreshTokenFn = null
export function refreshToken() {
return new Promise(async(resolve, reject)=>{
if(!apiOk) {
return refreshTokenFn
}
apiOk = false
refreshTokenFn = null
const http = uni.$u.http
let config = { header: {'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'}, custom: { noToken: true } }
let refreshToken = store.state.user.vuex_loginInfo.refreshToken
refreshTokenFn = await http.post('member/auth/refresh-token',{refreshToken}, config)
if( refreshTokenFn.data|| refreshTokenFn.data.accessToken) {
apiOk = true
store.commit('update_vuex_loginInfo', refreshTokenFn.data)
uni.$u.http.setConfig((config) => {
config.header.Authorization = 'Bearer ' + refreshTokenFn.data.accessToken
return config
})
resolve(refreshTokenFn)
}else {
apiOk = true
store.commit('goLogin')
reject('刷新token失败了')
}
})
}
export function scanCodeFn(_this) {
uni.scanCode({
scanType: ['qrCode'],
success: function(res) {
console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result);
let obj = JSON.parse(res.result)
console.log(obj)
// 扫教练码去报名的
if(obj.QrType) {
let item = {
schoolName: obj.schoolName,
schoolId: obj.schoolId,
name: obj.coachName,
id: obj.coachId,
teachCarType: obj.teachCarType,
key: obj.key,
QrType: obj.QrType
}
_this.$store.commit('upDateSchoolClass', {})
if(obj.QrType==1) {
// 判断是扫教练码来的还是驾校码来的
if(item.id) {
_this.$store.commit('updateSchool', {})
console.log('扫码结果***********')
console.log(item)
_this.$store.commit('upDateSchoolCoach', item)
}else {
obj.schoolName = decodeURIComponent(obj.schoolName)
_this.$store.commit('upDateSchoolCoach', {})
_this.$store.commit('updateSchool', item)
}
_this.$u.utils.clickSignUp()
}else {
// 签到的
_this.$store.commit('upDateSchoolCoach', item)
_this.$goPage('/pages/indexEntry/signIn/signAndOut/signAndOut')
}
}else {
_this.$store.commit('updateWebVeiwUrl', res.result)
uni.navigateTo({
url: '/pages/indexEntry/webView/webView'
})
}
}
});
}

2
package.json

@ -1,5 +1,5 @@
{
"name": "questionbankvue3",
"name": "首府公馆事务通",
"version": "1.0.0",
"description": "",
"main": "main.js",

48
pages/subPage/authentication/authentication.vue

@ -29,8 +29,17 @@
<u-icon name="arrow-right" color="#CCCCCC"></u-icon>
</view>
</view>
<view class="ownership" @click="chooseImages">
<view class="photo">
<image :src="counterStore.chooseHouse.roomCertificateImg" mode="widthFix" v-if="counterStore.chooseHouse.roomCertificateImg"></image>
<image src="@/static/images/phoneH.png" mode="" v-else></image>
</view>
<view class="txt">房屋所有权证照片</view>
</view>
<view class="btnBox">
<oneBtn text="下一步" :disabled="!counterStore.chooseHouse.houseId" @oneBtnClick="nextStep(1)"></oneBtn>
<oneBtn text="下一步" :disabled="!counterStore.chooseHouse.houseId||!counterStore.chooseHouse.roomCertificateImg" @oneBtnClick="nextStep(1)"></oneBtn>
</view>
</view>
@ -55,6 +64,7 @@
</template>
<script setup>
import { uploadImgApi } from '@/utils/utils.js'
import { startEid } from '@/mp_ecard_sdk/main';
import { getFacetoken, getFaceResult, houseRoomBind } from '@/config/api.js'
@ -151,6 +161,25 @@
},
});
}
//
function chooseImages() {
uni.chooseImage({
count: 1, //
sizeType: ['original', 'compressed'], //
sourceType: ['album', 'camera'], //
success: async (res) => {
uni.showLoading({
title: '图片上传中...'
});
console.log(res)
console.log('图片信息')
const imgLink = await uploadImgApi(res.tempFilePaths[0], 'roomCertificateImg')
console.log(imgLink)
counterStore.upDateHouse('roomCertificateImg', imgLink)
}
})
}
</script>
<style lang="scss" scoped>
@ -183,7 +212,20 @@
margin-right: 6rpx;
}
}
.ownership {
padding: 30rpx 0 10rpx 0;
.photo {
width: 392rpx;
height: 252rpx;
margin: 0 auto;
}
.txt {
font-size: 28rpx;
color: #999;
text-align: center;
margin-top: 20rpx;
}
}
}
.step3 {
padding: 40rpx 0;
@ -253,4 +295,6 @@
}
}
}
</style>

11
pages/subPage/authentication/selectAddress.vue

@ -1,11 +0,0 @@
<template>
<view class="content">
adderss
</view>
</template>
<script>
</script>
<style>
</style>

39
pages/subPage/ballots/ballotsList/ballotsList.vue

@ -13,13 +13,13 @@
</view>
<view class="ul">
<view class="li" v-for="(item,index) in voteList" :key="index">
<view class="li" v-for="(item,index) in voteList" :key="index" @click="goVote(item)">
<view class="flex-b">
<view class="name towRowText">{{ item.title }}</view>
<view class="btn boder" v-if="currentTab==1||item.voted==1" @click="$goPage('/pages/subPage/ballots/vote/voteReslut?voteId='+item.voteId)">查看结果</view>
<view class="btn boder" v-if="currentTab==1||item.voted==1" >查看结果</view>
<view class="btn" v-else-if="item.voteStatus==0" style="opacity: 0.4;">未开始</view>
<view class="btn" @click="$goPage('/pages/subPage/ballots/vote/vote?voteId='+item.voteId)" v-else-if="item.voteStatus==1">我要投票</view>
<view class="btn" @click="$goPage('/pages/subPage/ballots/vote/voteReslut?voteId='+item.voteId)" v-else-if="item.voteStatus==2" style="opacity: 0.4;">已结束</view>
<view class="btn" v-else-if="item.voteStatus==1">我要投票</view>
<view class="btn" v-else-if="item.voteStatus==2" style="opacity: 0.4;">已结束</view>
</view>
<view class="text">
<text>发起人{{ item.makerName }}</text>
@ -38,7 +38,7 @@
import siteObj from '@/config/site.config.js'
const {imgUrl} = siteObj
import {
onLoad,
onShow,
onPullDownRefresh,
onReachBottom
} from '@dcloudio/uni-app'
@ -55,7 +55,11 @@
{ name: '进行中', id: 1 },
{ name: '已结束', id: 2 },
]);
let style = {
// p: 'font-size:32rpx',
// span: 'font-size: 30rpx',
img: 'max-width: 100%'
}
// tab
const currentTab = ref(0)
function tabClick(item) {
@ -70,11 +74,22 @@
params.value.voteState = item.id
initList()
}
//
function goVote(item) {
console.log(item)
let url = ''
if(currentTab.value==1||item.voted==1) {
url = '/pages/subPage/ballots/vote/voteReslut?voteId='+item.voteId
}else if(item.voteStatus==0) {
return false
}else if(item.voteStatus==1) {
url = '/pages/subPage/ballots/vote/vote?voteId='+item.voteId
}else if(item.voteStatus==2) {
url = '/pages/subPage/ballots/vote/voteReslut?voteId='+item.voteId
}
// console.log(url)
// console.log(item)
uni.navigateTo({
url: '/pages/subPage/ballots/vote/vote'
url
})
}
@ -101,7 +116,7 @@
if(voteList.value.length>=total.value) status.value = 'nomore'
console.log(voteList.value)
}
votePageFn()
async function initList() {
params.value.pageNo = 1
voteList.value = []
@ -113,7 +128,9 @@
await initList()
uni.stopPullDownRefresh()
})
onShow(()=>{
initList()
})
onReachBottom(()=>{
if(total.value > voteList.value.length) {
votePageFn()

9
pages/subPage/ballots/vote/comp/topInfo.vue

@ -17,10 +17,10 @@
</view>
</view>
<view class="detail padding">
{{detailInfo.detail}}
<u-parse :content="detailInfo.detail" :tagStyle="style"></u-parse>
</view>
<view class="padding">
<view class="row flex-b">
<view class="flex">
<view class="radionItem">{{ detailInfo.voteType==1?'单选': '多选'}}</view>
@ -41,6 +41,11 @@
default: {}
}
})
let style = {
// p: 'font-size:32rpx',
// span: 'font-size: 30rpx',
img: 'max-width: 100%'
}
</script>
<style lang="scss" scoped>

6
pages/subPage/ballots/vote/vote.vue

@ -59,13 +59,13 @@
function chooseItem(item) {
//
if(detailInfo.value.voteType==1) {
voteItemId.value = [{voteItemId: item.itemId, voteId: voteId*1}]
voteItemId.value = [{voteItemId: item.itemId, voteId: voteId}]
return
}
//
let index = voteItemId.value.findIndex((val)=>val.voteItemId==item.itemId)
if(index==-1) {
voteItemId.value.push({voteItemId: item.itemId, voteId: voteId*1})
voteItemId.value.push({voteItemId: item.itemId, voteId: voteId})
}else {
voteItemId.value.splice(index, 1)
}
@ -77,7 +77,7 @@
if(res) uni.$u.toast('投票成功')
setTimeout(()=>{
uni.navigateTo({
url: '/pages/subPage/ballots/vote/voteReslut'
url: '/pages/subPage/ballots/vote/voteReslut?voteId='+voteId
})
}, 1500)
}

9
pages/subPage/ballots/vote/voteReslut.vue

@ -12,7 +12,7 @@
<view class="rightTxt">{{ item.itemVoteNum }} <text>( {{item.itemVoteProportion}} )</text></view>
</view>
</view>
<view class="novote" v-if="!detailInfo.voteResults?.length">暂无人员参与投票~</view>
</view>
</view>
@ -52,6 +52,13 @@
</script>
<style lang="scss" scoped>
.novote {
font-size: 28rpx;
color: #9C9C9C;
width: 100%;
text-align: center;
line-height: 60rpx;
}
.content {
width: 100%;
.bg {

15
pages/subPage/login/login.vue

@ -9,11 +9,11 @@
</view>
<view class="oneBtnBox" v-if="!isCheck">
<oneBtn text="微信一键登录" @oneBtnClick="handleBtnClick"></oneBtn>
<oneBtn text="手机号快捷登录" @oneBtnClick="handleBtnClick"></oneBtn>
</view>
<view class="oneBtnBox" v-else>
<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber" class="cotactzz">微信一键登录</button>
<oneBtn text="微信一键登录"></oneBtn>
<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber" class="cotactzz">手机号快捷登录</button>
<oneBtn text="手机号快捷登录"></oneBtn>
</view>
<view style="padding-top: 30rpx;">
@ -70,6 +70,7 @@
fail: err => {
reject(null)
console.error('微信登录失败', err);
uni.hideLoading()
}
});
})
@ -79,7 +80,9 @@
async function getPhoneNumber(e) {
if (!isCheck.value) return toast('请勾选产品协议与隐私政策');
let phoneCode = e.detail.code
uni.showLoading({
title: '正在加载...'
})
console.log(e.detail.errMsg) //
console.log(e.detail) //
const loginCode = await loginFn()
@ -96,14 +99,14 @@
const counterStore = userStore();
await counterStore.upDateToken(res.accessToken)
await counterStore.upDateLoginInfo(res)
// this.$goPage('/pages/userCenter/login/face')
uni.hideLoading()
uni.$u.toast('登录成功')
setTimeout(()=>{
uni.switchTab({
url: '/pages/tabbar/index/index'
})
},2000)
},1500)
}
</script>

18
pages/subPage/notice/noticeDetail.vue

@ -1,17 +1,16 @@
<template>
<view class="content padding">
<view class="tit">{{ info.title }}</view>
<u-parse :content="info.content" :tagStyle="style"></u-parse>
<view class="timeDesc" v-if="info.timeDesc">创建时间 {{ info.timeDesc }}</view>
</view>
</template>
<script setup>
import { ref } from 'vue'
let style = {
// p: 'font-size:32rpx',
// span: 'font-size: 30rpx',
img: 'max-width: 100%'
}
import {
onLoad,
onPullDownRefresh,
@ -41,5 +40,14 @@
font-size: 32rpx;
font-weight: 700;
padding: 20rpx 0;
text-align: center;
}
.timeDesc {
text-align: right;
font-size: 28rpx;
color: #999;
padding: 30px 0;
}
</style>

95
pages/subPage/privacyAgreement/comp/yhxy.vue

@ -0,0 +1,95 @@
<template>
<view class="box">
<view class="h3">用户协议</view>
<view class="h2">总则</view>
<view class="p">欢迎您使用首府公馆事务通小程序以下简称本小程序本小程序由杭州钧安科技有限公司以下简称我们本公司开发和运营</view>
<view class="p">本用户协议以下简称协议构成您与我们之间关于使用本小程序的具有法律约束力的协议在使用本小程序之前请您仔细阅读本协议如果您不同意本协议的任何条款请勿使用本小程序</view>
<view class="p">我们有权根据法律法规政策以及业务运营的需要不时修订本协议修订后的协议将在本小程序上公布您继续使用本小程序即视为您同意接受修订后的协议</view>
<view class="h2">服务内容</view>
<view class="p">本小程序为您提供与首府公馆相关的事务处理服务包括但不限于信息查询业务办理通知推送等</view>
<view class="p">我们将尽力维护本小程序的正常运行但不保证本小程序的服务不会中断不会出现错误或缺陷也不保证本小程序提供的信息的准确性完整性和及时性</view>
<view class="h2">用户注册与账户</view>
<view class="p">您在使用本小程序的某些功能时可能需要注册一个账户在注册过程中您需要提供真实准确完整的个人信息</view>
<view class="p">您应妥善保管您的账户信息并对通过您的账户进行的所有活动负责如果您发现您的账户存在任何安全问题请立即通知我们</view>
<view class="h2">用户行为规范</view>
<view class="p">您在使用本小程序时应遵守法律法规社会公德和本协议的规定不得从事以下行为</view>
<view class="txt"> 1.发布传播违法违规有害淫秽暴力恐怖侵犯他人合法权益或违背公序良俗的信息</view>
<view class="txt"> 2.干扰破坏本小程序的正常运行或者对本小程序的系统数据进行非法访问修改删除等操作</view>
<view class="txt"> 3.利用本小程序从事欺诈虚假宣传传销等违法活动</view>
<view class="txt"> 4.以任何方式侵犯我们或第三方的知识产权商业秘密等合法权益</view>
<view class="txt"> 如果您违反本协议的规定我们有权采取包括但不限于暂停或终止您的账户删除您发布的信息限制您使用本小程序的部分或全部功能等措施并保留追究您法律责任的权利</view>
<view class="h2">知识产权</view>
<view class="p">本小程序的所有内容包括但不限于文字图片音频视频软件等均受知识产权法律法规的保护未经我们的书面许可您不得擅自复制传播修改改编翻译出租出售或以其他方式使用本小程序的内容</view>
<view class="p">您在本小程序上发布的内容您应保证其拥有合法的知识产权并且您授予我们在全球范围内免费非独家可再许可的权利以使用复制传播修改改编翻译展示您发布的内容</view>
<view class="h2">隐私政策</view>
<view class="p">我们重视您的隐私并制定了专门的隐私政策详细说明了我们如何收集使用存储和保护您的个人信息请您仔细阅读我们的隐私政策</view>
<view class="h2">免责声明</view>
<view class="p">对于因不可抗力系统故障网络中断黑客攻击等不可预见不可避免不可克服的原因导致的服务中断数据丢失等情况我们不承担任何责任</view>
<view class="p">对于您因使用本小程序而产生的任何直接间接偶然特殊或后果性的损失包括但不限于利润损失业务中断数据丢失等我们不承担任何责任除非法律法规另有明确规定</view>
<view class="h2">协议的终止</view>
<view class="p">您有权随时终止使用本小程序 </view>
<view class="p">我们有权在以下情况下终止本协议并暂停或终止您对本小程序的使用</view>
<view class="txt"> 1.您违反本协议的任何规定</view>
<view class="txt">2.我们认为您的行为可能对我们其他用户或第三方造成损害</view>
<view class="txt">3.法律法规要求我们终止本协议</view>
<view class="h2">法律适用与争议解决</view>
<view class="p">本协议受中华人民共和国法律的管辖</view>
<view class="p">如双方就本协议的内容或履行发生争议应首先通过友好协商解决协商不成的任何一方均有权向本公司所在地有管辖权的人民法院提起诉讼</view>
</view>
</template>
<script>
</script>
<style>
.box {
padding-bottom: 40rpx;
}
.h3 {
font-size: 40rpx;
padding-top: 30rpx;
width: 100%;
text-align: center;
font-weight: 700;
}
.h2 {
font-size: 30rpx;
margin: 40rpx 0 8rpx 0;
font-weight: 700;
}
.p {
font-size: 28rpx;
margin-left: 12px;
}
.txt {
margin-left: 32rpx;
font-size: 26rpx;
margin-bottom: 10rpx;
}
</style>

82
pages/subPage/privacyAgreement/comp/yszc.vue

@ -0,0 +1,82 @@
<template>
<view class="box">
<view class="h3">隐私政策</view>
<view class="h2"> 引言</view>
<view class="p">杭州钧安科技有限公司以下简称我们非常重视用户的隐私和个人信息保护本隐私政策旨在向您说明我们在您使用首府公馆事务通小程序以下简称本小程序时如何收集使用存储和保护您的个人信息</view>
<view class="h2"> 个人信息的定义</view>
<view class="p">个人信息是指以电子或者其他方式记录的能够单独或者与其他信息结合识别特定自然人身份或者反映特定自然人活动情况的各种信息</view>
<view class="h2">个人信息的收集</view>
<view class="p"> 我们可能会在以下情况下收集您的个人信息</view>
<view class="txt">1. 您注册或登录本小程序时我们可能会收集您的手机号码用户名密码等信息</view>
<view class="txt">2. 您使用本小程序的服务时我们可能会收集您的操作记录浏览记录交易记录等信息</view>
<view class="txt">3. 您与我们进行沟通或反馈时我们可能会收集您的姓名联系方式反馈内容等信息</view>
<view class="p"> 我们可能会通过以下方式收集您的个人信息</view>
<view class="txt">1. 您直接向我们提供的信息</view>
<view class="txt">2. 我们在您使用本小程序时自动收集的信息</view>
<view class="txt">3. 我们从第三方获取的信息</view>
<view class="h2">个人信息的使用</view>
<view class="p"> 我们会将收集到的您的个人信息用于以下目的</view>
<view class="txt">1. 为您提供本小程序的服务</view>
<view class="txt">2. 改善本小程序的服务质量和用户体验</view>
<view class="txt">3. 进行数据分析和统计</view>
<view class="txt">4. 与您进行沟通和联系</view>
<view class="txt">5. 遵守法律法规和政策的要求</view>
<view class="txt">6. 我们不会将您的个人信息用于其他未经您同意的目的</view>
<view class="h2">个人信息的存储</view>
<view class="p"> 我们会将您的个人信息存储在安全的服务器上并采取合理的安全措施来保护您的个人信息</view>
<view class="p"> 我们会根据法律法规的要求和业务运营的需要确定个人信息的存储期限在存储期限届满后我们会对您的个人信息进行删除或匿名化处理</view>
<view class="h2">个人信息的共享转让和公开披露</view>
<view class="p"> 我们不会将您的个人信息共享转让给任何第三方除非经过您的明确同意或法律法规另有规定</view>
<view class="p"> 我们不会公开披露您的个人信息除非经过您的明确同意或法律法规另有规定</view>
<view class="h2">用户权利</view>
<view class="p"> 您有权访问更正删除您的个人信息</view>
<view class="p"> 您有权撤回您对个人信息处理的同意</view>
<view class="p"> 您有权要求我们限制对您个人信息的处理</view>
<view class="p"> 您有权要求我们提供您的个人信息副本</view>
<view class="h2">未成年人的个人信息保护</view>
<view class="p">我们非常重视未成年人的个人信息保护如果您是未满 18 周岁的未成年人请在您的监护人的陪同下阅读本隐私政策并在您的监护人同意的情况下使用本小程序</view>
<view class="h2">隐私政策的变更</view>
<view class="p">我们可能会不时修订本隐私政策修订后的隐私政策将在本小程序上公布您继续使用本小程序即视为您同意接受修订后的隐私政策</view>
<view class="h2">联系我们</view>
<view class="p">如果您对本隐私政策有任何疑问意见或建议请通过以下方式联系我们</view>
<view class="p">联系电话0571--56606030</view>
</view>
</template>
<script>
</script>
<style>
.box {
padding-bottom: 40rpx;
}
.h3 {
font-size: 40rpx;
padding-top: 30rpx;
width: 100%;
text-align: center;
font-weight: 700;
}
.h2 {
font-size: 30rpx;
margin: 40rpx 0 8rpx 0;
font-weight: 700;
}
.p {
font-size: 28rpx;
margin-left: 12px;
}
.txt {
margin-left: 32rpx;
font-size: 26rpx;
margin-bottom: 10rpx;
}
</style>

61
pages/subPage/privacyAgreement/privacyAgreement.vue

@ -1,40 +1,37 @@
<template>
<view class="main">
<web-view :src="url"></web-view>
<view class="main padding">
<!-- <web-view :src="url"></web-view> -->
<yszc v-if="type == 1"></yszc>
<yhxy v-else></yhxy>
</view>
</template>
<script>
export default {
data() {
return {
type: 1,
url: ''
}
},
onLoad(options) {
this.type = options.type
if(this.type==1) {
uni.setNavigationBarTitle({
title: '隐私政策'
})
}else {
uni.setNavigationBarTitle({
title: '用户使用协议'
})
}
this.getAgreementFn()
},
methods: {
async getAgreementFn() {
if(this.type==1) {
this.url = 'http://www.jakjgs.com/htmls/yszc.html'
}else {
this.url = 'http://www.jakjgs.com/htmls/yhxy.html'
}
}
<script setup>
import yhxy from './comp/yhxy.vue'
import yszc from './comp/yszc.vue'
import {
ref
} from 'vue'
import {
onLoad,
} from '@dcloudio/uni-app'
let type = ref(1)
let url = ref('')
onLoad((options) => {
type.value = options.type
if (type.value == 1) {
uni.setNavigationBarTitle({
title: '隐私政策'
})
url.value = 'https://www.jakjgs.com/htmls/yszc.html'
} else {
uni.setNavigationBarTitle({
title: '用户使用协议'
})
url.value = 'https://www.jakjgs.com/htmls/yhxy.html'
}
}
})
</script>
<style>

85
pages/tabbar/index/comp/notice.vue

@ -1,22 +1,78 @@
<template>
<view class="ul">
<view class="li flex-b" v-for="(item,index) in list" :key="index" @click="$goPage('pages/subPage/notice/noticeDetail?id='+item.id)">
<view class="li flex-b" v-for="(item,index) in list" :key="index" @click="goDetail(item)">
<view class="leftTxt">
<view class="tit towRowText">
{{ item.title }}
</view>
<view class="date">2024.06.28 18:42</view>
<view class="date">{{item.timeDesc }}</view>
</view>
<view class="cover">
<image :src="item.picture" mode=""></image>
</view>
</view>
<up-popup :show="showPop" @close="showPop=false" mode="center" :round="10" :customStyle="{width: '90%'}" closeable>
<view class="popCon">
<view class="hello">你好</view>
<view class="p">
欢迎来到 <text>新疆首府公馆</text>为了更好的为您提供服务请您选择房屋信息进行业主身份认证
</view>
<oneBtn text="点击认证业主" @oneBtnClick="oneBtnClickFn"></oneBtn>
</view>
</up-popup>
</view>
</template>
<script >
export default {
props: ['list']
<script setup>
import { ref } from 'vue'
import {
userStore
} from '@/store/index.js';
const counterStore = userStore();
import {
getHouses,
} from '@/config/api.js'
defineProps({
list: {
type: Array,
default: []
}
})
const showPop = ref(false)
function goDetail(item) {
if(!counterStore.userInfo.myHouse) {
getHousesFn()
}
uni.navigateTo({
url: '/pages/subPage/notice/noticeDetail?id='+item.id
})
}
function oneBtnClickFn () {
showPop.value = false
uni.navigateTo({
url: '/pages/subPage/authentication/authentication'
})
}
//
async function getHousesFn() {
if (!counterStore.token) {
uni.navigateTo({
url: '/pages/subPage/login/login'
})
return
}
const {
data: res
} = await getHouses()
if(!res.length) {
return showPop.value = true
}
counterStore.upDateUseInfo('myHouse', res)
}
</script>
@ -61,4 +117,23 @@
}
}
}
.popCon {
padding: 60rpx 40rpx;
color: #333;
.hello {
font-size: 36rpx;
font-weight: 700;
}
.p {
font-size: 28rpx;
padding: 30rpx 0 60rpx 0;
text {
color: $themC;
}
}
}
</style>

144
pages/tabbar/index/index.vue

@ -8,14 +8,14 @@
</up-navbar>
<view class="padding">
<view class="banner1">
<image :src="imgUrl + 'homebanner.png'" mode=""></image>
<image :src="imgUrl + 'homebanner.png'" mode="widthFix"></image>
</view>
<view class="myhome">
<view class="flex-b">
<view class="h2">我的房屋</view>
<view class="btn" @click="goHome('/pages/subPage/authentication/authentication')">关联房屋</view>
</view>
<view class="borderCard" @click="$goPage('/pages/subPage/login/login')" v-if="!counterStore.token">
<view class="flex">
<view class="text2">立即登录</view>
@ -23,31 +23,31 @@
</view>
<view class="text3">登录成功即可关联房屋~</view>
<view class="banner3">
<image :src="imgUrl + 'homebanner3.png'" mode=""></image>
<image :src="imgUrl + 'homebanner3.png'" mode="widthFix"></image>
<!-- <image src="@/static/images/homebanner3.png" mode=""></image> -->
</view>
</view>
<view class="borderCard" v-if="myHouse.length">
<view class="borderCard" v-if="myHouse.length">
<view class="" v-for="(item, index) in myHouse" :key="index">
<view class="text">房屋地址{{ item.roomAddress}}</view>
<view class="text">房屋面积{{ item.roomSize }}</view>
</view>
<view class="banner3">
<!-- <image src="@/static/images/homebanner3.png" mode=""></image> -->
<image :src="imgUrl + 'homebanner3.png'" mode=""></image>
<image :src="imgUrl + 'homebanner3.png'" mode="widthFix"></image>
</view>
</view>
</view>
<view class="severCon">
<view class="h1pad">
<view class="h1">服务</view>
<view class="h1" >服务</view>
</view>
<view class="banner2" @click="goHome('/pages/subPage/ballots/ballotsList/ballotsList')">
<view class="banner2" @click="goSever('/pages/subPage/ballots/ballotsList/ballotsList')">
<!-- <image src="@/static/images/homebanner2.png" mode=""></image> -->
<image :src="imgUrl + 'homebanner2.png'" mode=""></image>
<image :src="imgUrl + 'homebanner2.png'" mode="widthFix"></image>
</view>
</view>
@ -61,16 +61,16 @@
</view>
</view>
</view>
<notice :list="noticeList"/>
<notice :list="noticeList" />
</view>
</view>
<up-popup :show="show" @close="show=false" mode="center" :round="10" :customStyle="{width: '90%'}" closeable>
<view class="popCon">
<view class="hello">你好</view>
<view class="p">
欢迎来到 <text>新疆首公馆</text>为了更好的为您提供服务请您选择房屋信息进行业主身份认证
欢迎来到 <text>新疆首公馆</text>为了更好的为您提供服务请您选择房屋信息进行业主身份认证
</view>
<oneBtn text="点击认证业主" @click.native="authentication"></oneBtn>
<oneBtn text="点击认证业主" @oneBtnClick="goHome('/pages/subPage/authentication/authentication')"></oneBtn>
</view>
</up-popup>
</view>
@ -78,23 +78,32 @@
<script setup>
import siteObj from '@/config/site.config.js'
const {imgUrl} = siteObj
const {
imgUrl,
tmplIds
} = siteObj
import {
ref
} from 'vue'
import notice from './comp/notice.vue'
import { userStore } from '@/store/index.js';
import {
userStore
} from '@/store/index.js';
const counterStore = userStore();
import { getNoticeList, getHouses } from '@/config/api.js'
import {
onLoad,
onShow,
onPullDownRefresh,
onReachBottom
} from '@dcloudio/uni-app'
getNoticeList,
getHouses,
appletSubscribe
} from '@/config/api.js'
import {
onLoad,
onShow,
onPullDownRefresh,
onReachBottom
} from '@dcloudio/uni-app'
console.log(counterStore.token)
const show = ref(false)
@ -112,46 +121,79 @@
})
let noticeList = ref([])
async function getNoticeListFn() {
const {data: res} = await getNoticeList(params)
const {
data: res
} = await getNoticeList(params)
noticeList.value = res.list
}
//
const myHouse = ref([])
async function getHousesFn() {
if(!counterStore.token) return true
const {data: res} = await getHouses()
if (!counterStore.token) return true
const {
data: res
} = await getHouses()
if(!res.length) {
show.value = true
return
}
myHouse.value = res
counterStore.upDateUseInfo('name', res.userName)
counterStore.upDateUseInfo('myHouse', res)
}
function goHome(url) {
uni.requestSubscribeMessage({
tmplIds: ['OH_1gceM-m3EXRKOtjl_Hb1ymyC5zw8_Ag6LaFXV4Do', 'AjD_oLafmKGO8X3YvDGl1qmITq_Q6bSFMDeygJNAIes'],
success (res) { console.log('订阅成功: ', res) },
fail(err) {console.log('订阅失败:', err)}
})
//
function goSever() {
if(!myHouse.value) return
goHome()
}
async function goHome(url) {
if(show.value) show.value = false
let token = counterStore.token;
if(token) {
uni.$u.route({
url
if (token) {
const openId = counterStore.loginInfo.openId
uni.requestSubscribeMessage({
tmplIds,
async success(res) {
let acceptArr = []
tmplIds.forEach((item) => {
if (res[item] == 'accept') {
acceptArr.push(item)
}
})
console.log('订阅成功: ', acceptArr)
if(!acceptArr.length) return
await appletSubscribe({openId, templateIds: acceptArr})
},
fail(err) {
console.log('订阅失败:', err)
},
complete() {
uni.$u.route({
url
})
}
})
}else {
} else {
uni.$u.route({
url: '/pages/subPage/login/login'
})
}
}
onPullDownRefresh(async ()=>{
onPullDownRefresh(async () => {
await getNoticeListFn()
await getHousesFn()
uni.stopPullDownRefresh()
})
onShow(()=>{
getNoticeListFn()
getHousesFn()
onShow(() => {
getNoticeListFn()
getHousesFn()
})
</script>
@ -191,7 +233,7 @@
.banner1 {
width: 100%;
height: 260rpx;
// height: 260rpx;
}
.myhome {
@ -201,7 +243,7 @@
box-shadow: 0px 0px 14rpx 0px rgba(0, 0, 0, 0.06);
border-radius: 20rpx;
padding: 0 30rpx 0rpx 30rpx;
overflow: auto;
.flex-b {
width: 100%;
height: 94rpx;
@ -230,8 +272,8 @@
border-radius: 20rpx;
border: 2rpx solid #EFEFEF;
padding: 40rpx 20rpx 0rpx 30rpx;
margin-top: 30rpx;
margin-top: 15rpx;
margin-bottom: 30rpx;
.text {
font-size: 28rpx;
margin-bottom: 24rpx;
@ -259,7 +301,7 @@
.severCon {
.banner2 {
width: 100%;
height: 180rpx;
// height: 180rpx;
}
}

4
pages/tabbar/mine/mine.vue

@ -47,8 +47,8 @@ import { onShow } from '@dcloudio/uni-app'
import { ref, } from 'vue'
const configList = ref([
{text: '用户协议', url: '/pages/subPage/privacyAgreement/privacyAgreement?type=1'},
{text: '隐私政策', url: '/pages/subPage/privacyAgreement/privacyAgreement?type=2'},
{text: '用户协议', url: '/pages/subPage/privacyAgreement/privacyAgreement?type=2'},
{text: '隐私政策', url: '/pages/subPage/privacyAgreement/privacyAgreement?type=1'},
])
function logOutFn() {

BIN
static/images/phoneH.png

After

Width: 392  |  Height: 252  |  Size: 82 KiB

7
store/index.js

@ -10,7 +10,8 @@ export const userStore = defineStore({
loginInfo: uni.getStorageSync('loginInfo')?uni.getStorageSync('loginInfo'):{},
userInfo: {
idCard: '',
name: ''
name: '',
myHouse: null
},
chooseHouse: {
"roomNum": "",
@ -44,13 +45,13 @@ export const userStore = defineStore({
console.log(this.userInfo)
},
goLogin() {
this.openid = ''
this.token = ''
this.loginInfo = {}
for (let key in this.loginInfo) {
this.chooseHouse[key] = ''
}
uni.setStorageSync('token', '')
uni.setStorageSync('loginInfo', '')
uni.clearStorage();
const pages = getCurrentPages();
const page = pages[pages.length - 1].$page.fullPath; //完整路由地址
let url = '/pages/subPage/login/login'

4
unpackage/dist/dev/mp-weixin/common/assets.js

@ -1,7 +1,8 @@
"use strict";
const _imports_0$4 = "/static/images/arrRight.png";
const _imports_0$3 = "/static/images/logo.png";
const _imports_0$2 = "/static/images/okIcon.png";
const _imports_0$2 = "/static/images/phoneH.png";
const _imports_1 = "/static/images/okIcon.png";
const _imports_0$1 = "/static/images/nodata.png";
const _imports_0 = "/static/images/searchIcon.png";
exports._imports_0 = _imports_0$4;
@ -9,3 +10,4 @@ exports._imports_0$1 = _imports_0$3;
exports._imports_0$2 = _imports_0$2;
exports._imports_0$3 = _imports_0$1;
exports._imports_0$4 = _imports_0;
exports._imports_1 = _imports_1;

1
unpackage/dist/dev/mp-weixin/common/vendor.js

@ -8091,6 +8091,7 @@ exports.defineStore = defineStore;
exports.e = e;
exports.f = f;
exports.index = index;
exports.isRef = isRef;
exports.md5 = md5;
exports.n = n;
exports.nextTick$1 = nextTick$1;

34
unpackage/dist/dev/mp-weixin/components/oneBtn/oneBtn.js

@ -1,19 +1,29 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const _sfc_main = {
props: ["text", "disabled"],
methods: {
oneBtnClick() {
this.$emit("oneBtnClick");
__name: "oneBtn",
props: {
text: {
type: String,
default: ""
},
disabled: {
type: Boolean,
default: false
}
},
setup(__props, { emit }) {
function oneBtnClick() {
emit("oneBtnClick");
}
return (_ctx, _cache) => {
return {
a: common_vendor.t(__props.text),
b: __props.disabled ? 1 : "",
c: common_vendor.o(oneBtnClick)
};
};
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.t($props.text),
b: $props.disabled ? 1 : "",
c: common_vendor.o((...args) => $options.oneBtnClick && $options.oneBtnClick(...args))
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-4b7d20a4"], ["__file", "D:/work/xinjiangMiniProgram/components/oneBtn/oneBtn.vue"]]);
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-4b7d20a4"], ["__file", "D:/work/xinjiangMiniProgram/components/oneBtn/oneBtn.vue"]]);
wx.createComponent(Component);

62
unpackage/dist/dev/mp-weixin/components/privacyRadion/privacyRadion.js

@ -1,17 +1,5 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const _sfc_main = {
props: ["isCheck"],
methods: {
changeRadio(val) {
console.log(val);
this.$emit("changeRadio", val);
},
async goPage(type) {
this.$goPage("/pages/subPage/privacyAgreement/privacyAgreement?type=" + type);
}
}
};
if (!Array) {
const _easycom_u_checkbox2 = common_vendor.resolveComponent("u-checkbox");
const _easycom_u_checkbox_group2 = common_vendor.resolveComponent("u-checkbox-group");
@ -22,19 +10,39 @@ const _easycom_u_checkbox_group = () => "../../uni_modules/uview-plus/components
if (!Math) {
(_easycom_u_checkbox + _easycom_u_checkbox_group)();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.o($options.changeRadio),
b: common_vendor.p({
checked: $props.isCheck,
shape: "circle",
label: "已阅读并同意",
activeColor: "#DE3A26",
labelSize: 12
}),
c: common_vendor.o(($event) => $options.goPage(2)),
d: common_vendor.o(($event) => $options.goPage(1))
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-64dff09c"], ["__file", "D:/work/xinjiangMiniProgram/components/privacyRadion/privacyRadion.vue"]]);
const _sfc_main = {
__name: "privacyRadion",
props: {
isCheck: {
type: Boolean,
default: false
}
},
setup(__props, { emit }) {
function changeRadio(val) {
console.log(val);
emit("changeRadio", val);
}
function goPage(type) {
common_vendor.index.navigateTo({
url: "/pages/subPage/privacyAgreement/privacyAgreement?type=" + type
});
}
return (_ctx, _cache) => {
return {
a: common_vendor.o(changeRadio),
b: common_vendor.p({
checked: __props.isCheck,
shape: "circle",
label: "已阅读并同意",
activeColor: "#DE3A26",
labelSize: 12
}),
c: common_vendor.o(($event) => goPage(2)),
d: common_vendor.o(($event) => goPage(1))
};
};
}
};
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-64dff09c"], ["__file", "D:/work/xinjiangMiniProgram/components/privacyRadion/privacyRadion.vue"]]);
wx.createComponent(Component);

78
unpackage/dist/dev/mp-weixin/components/searchRow/searchRow.js

@ -1,22 +1,6 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
props: ["placeholder", "disable"],
data() {
return {
keyword: ""
};
},
methods: {
searchFn() {
this.$emit("searchFn", this.keyword);
},
clearSearchFn() {
this.keyword = "";
}
}
};
if (!Array) {
const _easycom_u_search2 = common_vendor.resolveComponent("u-search");
_easycom_u_search2();
@ -25,24 +9,46 @@ const _easycom_u_search = () => "../../uni_modules/uview-plus/components/u-searc
if (!Math) {
_easycom_u_search();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_assets._imports_0$4,
b: common_vendor.o(($event) => _ctx.$u.debounce($options.searchFn, 1500)),
c: common_vendor.o(($event) => _ctx.$u.debounce($options.searchFn, 500)),
d: common_vendor.o($options.clearSearchFn),
e: common_vendor.o(($event) => $data.keyword = $event),
f: common_vendor.p({
placeholder: $props.placeholder,
searchIcon: " ",
color: "#333",
disabled: $props.disable,
placeholderColor: "#9C9C9C",
bgColor: "transparent",
showAction: false,
modelValue: $data.keyword
})
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-612eacee"], ["__file", "D:/work/xinjiangMiniProgram/components/searchRow/searchRow.vue"]]);
const _sfc_main = {
__name: "searchRow",
props: {
placeholder: {
type: String,
default: ""
},
disable: {
type: Boolean,
default: false
}
},
setup(__props, { emit }) {
let keyword = common_vendor.ref("");
function searchFn() {
emit("searchFn", keyword.value);
}
function clearSearchFn() {
keyword.value = "";
}
return (_ctx, _cache) => {
return {
a: common_assets._imports_0$4,
b: common_vendor.o(($event) => _ctx.$u.debounce(searchFn, 1500)),
c: common_vendor.o(($event) => _ctx.$u.debounce(searchFn, 500)),
d: common_vendor.o(clearSearchFn),
e: common_vendor.o(($event) => common_vendor.isRef(keyword) ? keyword.value = $event : keyword = $event),
f: common_vendor.p({
placeholder: __props.placeholder,
searchIcon: " ",
color: "#333",
disabled: __props.disable,
placeholderColor: "#9C9C9C",
bgColor: "transparent",
showAction: false,
modelValue: common_vendor.unref(keyword)
})
};
};
}
};
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-612eacee"], ["__file", "D:/work/xinjiangMiniProgram/components/searchRow/searchRow.vue"]]);
wx.createComponent(Component);

4
unpackage/dist/dev/mp-weixin/config/api.js

@ -4,7 +4,7 @@ const weixinLogin = (data) => uni_modules_uviewPlus_index.http.post("member/auth
const getUserInfo = (data) => uni_modules_uviewPlus_index.http.post("face/user_info");
const logOut = (data = {}) => uni_modules_uviewPlus_index.http.post("member/auth/logout", data, { custom: { catch: true, toast: false } });
const getNoticeList = (data) => uni_modules_uviewPlus_index.http.post("article/simple_list", data, { custom: { noToken: true } });
const getNoticeDetail = (data) => uni_modules_uviewPlus_index.http.post("article/article_detail?articleId=" + data.articleId, { custom: { noToken: true } });
const getNoticeDetail = (data) => uni_modules_uviewPlus_index.http.post("article/article_detail?articleId=" + data.articleId, {}, { custom: { noToken: true } });
const getHouses = (data) => uni_modules_uviewPlus_index.http.post("mime/houses", data);
const houseTree = (data) => uni_modules_uviewPlus_index.http.post("house/tree", data);
const houseRoom = (data) => uni_modules_uviewPlus_index.http.post("house/room_search", data);
@ -16,6 +16,8 @@ const voteDetail = (data) => uni_modules_uviewPlus_index.http.post("article/vote
const mineVotePage = (data) => uni_modules_uviewPlus_index.http.post("article/mine_vote_page", data);
const articleVote = (data) => uni_modules_uviewPlus_index.http.post("article/vote", data);
const voteResult = (data) => uni_modules_uviewPlus_index.http.post("article/vote_result", data);
const appletSubscribe = (data) => uni_modules_uviewPlus_index.http.post("mime/applet/subscribe", data);
exports.appletSubscribe = appletSubscribe;
exports.articleVote = articleVote;
exports.getFaceResult = getFaceResult;
exports.getFacetoken = getFacetoken;

7
unpackage/dist/dev/mp-weixin/config/request.js

@ -48,7 +48,12 @@ const request = (vm) => {
}
if (data.code == 401) {
console.log("报401的接口");
console.log(response.config.url);
let url = response.config.url;
console.log(url);
if (url == "mime/houses" || url == "face/user_info") {
console.log("还是到这里面来了?");
return Promise.reject(data);
}
return counterStore.goLogin();
}
const custom = (_a = response.config) == null ? void 0 : _a.custom;

14
unpackage/dist/dev/mp-weixin/config/site.config.js

@ -2,15 +2,13 @@
let obj = {
H5_API: "",
//h5代理
WX_API: "http://192.168.1.106:8518/",
WX_API: "https://www.jakjgs.com/",
//非代理地址 不要忘记加/
website: "http://192.168.1.37",
httpPrefix: "app-api/",
imgUrl: "http://47.96.82.242/htmls/",
// 支付测试地址
// preUrl: 'https://u8wbs.zyebank.cn/cem_ysb_u6/index.html',
// const preUrl = 'https://u8wbs.zyebank.cn/cem_ysb_u8/index.html'
// 生产地址
preUrl: "https://zmcht.zybank.com.cn/cem_ysb/index.html"
// httpPrefix: 'app-api/',
httpPrefix: "xjapplet-api/",
imgUrl: "https://www.jakjgs.com/htmls/",
tmplIds: ["OH_1gceM-m3EXRKOtjl_Hb1ymyC5zw8_Ag6LaFXV4Do", "AjD_oLafmKGO8X3YvDGl1qmITq_Q6bSFMDeygJNAIes"]
//消息模板
};
exports.obj = obj;

49
unpackage/dist/dev/mp-weixin/pages/subPage/authentication/authentication.js

@ -1,9 +1,11 @@
"use strict";
const common_vendor = require("../../../common/vendor.js");
const common_assets = require("../../../common/assets.js");
const utils_utils = require("../../../utils/utils.js");
const mp_ecard_sdk_main = require("../../../mp_ecard_sdk/main.js");
const config_api = require("../../../config/api.js");
const store_index = require("../../../store/index.js");
require("../../../config/site.config.js");
require("../../../mp_ecard_sdk/utils/validate.js");
require("../../../mp_ecard_sdk/constants/log.js");
require("../../../mp_ecard_sdk/globalConfig.js");
@ -218,6 +220,26 @@ const _sfc_main = {
}
});
}
function chooseImages() {
common_vendor.index.chooseImage({
count: 1,
//允许选择的数量
sizeType: ["original", "compressed"],
//可以指定是原图还是压缩图,默认二者都有
sourceType: ["album", "camera"],
//从相册选择
success: async (res) => {
common_vendor.index.showLoading({
title: "图片上传中..."
});
console.log(res);
console.log("图片信息");
const imgLink = await utils_utils.uploadImgApi(res.tempFilePaths[0], "roomCertificateImg");
console.log(imgLink);
counterStore.upDateHouse("roomCertificateImg", imgLink);
}
});
}
return (_ctx, _cache) => {
return common_vendor.e({
a: common_vendor.unref(proressWith),
@ -234,24 +256,31 @@ const _sfc_main = {
color: "#CCCCCC"
}),
h: common_vendor.o(($event) => _ctx.$goPage("/pages/subPage/authentication/comp/select1")),
i: common_vendor.o(($event) => nextStep(1)),
j: common_vendor.p({
i: common_vendor.unref(counterStore).chooseHouse.roomCertificateImg
}, common_vendor.unref(counterStore).chooseHouse.roomCertificateImg ? {
j: common_vendor.unref(counterStore).chooseHouse.roomCertificateImg
} : {
k: common_assets._imports_0$2
}, {
l: common_vendor.o(chooseImages),
m: common_vendor.o(($event) => nextStep(1)),
n: common_vendor.p({
text: "下一步",
disabled: !common_vendor.unref(counterStore).chooseHouse.houseId
disabled: !common_vendor.unref(counterStore).chooseHouse.houseId || !common_vendor.unref(counterStore).chooseHouse.roomCertificateImg
})
}) : {}, {
k: currentStep.value == 1
o: currentStep.value == 1
}, currentStep.value == 1 ? {
l: common_vendor.o(($event) => nextStep(2)),
m: common_vendor.p({
p: common_vendor.o(($event) => nextStep(2)),
q: common_vendor.p({
text: "点击开始实名认证"
})
} : {}, {
n: currentStep.value == 2
r: currentStep.value == 2
}, currentStep.value == 2 ? {
o: common_assets._imports_0$2,
p: common_vendor.o(($event) => nextStep(3)),
q: common_vendor.p({
s: common_assets._imports_1,
t: common_vendor.o(($event) => nextStep(3)),
v: common_vendor.p({
text: "返回首页"
})
} : {});

2
unpackage/dist/dev/mp-weixin/pages/subPage/authentication/authentication.wxml

@ -1 +1 @@
<view class="content data-v-0ab17929"><view class="stepTop data-v-0ab17929"><view class="steps flex-b data-v-0ab17929"><view class="proress data-v-0ab17929" style="{{'width:' + a}}"></view><view class="step data-v-0ab17929"><view class="num active data-v-0ab17929">01<view class="text data-v-0ab17929">房屋信息1</view></view></view><view class="step data-v-0ab17929"><view class="{{['num', 'data-v-0ab17929', b && 'active']}}">02<view class="text data-v-0ab17929">个人资料</view></view></view><view class="step data-v-0ab17929"><view class="{{['num', 'data-v-0ab17929', c && 'active']}}">03<view class="text data-v-0ab17929">认证成功</view></view></view></view></view><view class="line data-v-0ab17929"></view><view class="padding data-v-0ab17929"><view wx:if="{{d}}" class="step1 data-v-0ab17929"><view class="h1 data-v-0ab17929">请选择您的房屋地址</view><view class="lab data-v-0ab17929">房屋信息</view><view class="row flex-b data-v-0ab17929"><view class="lable data-v-0ab17929">详细地址</view><view class="flex data-v-0ab17929" bindtap="{{h}}"><view wx:if="{{e}}" class="adrs data-v-0ab17929">{{f}}</view><view wx:else class="adrs data-v-0ab17929">请选择</view><u-icon wx:if="{{g}}" class="data-v-0ab17929" u-i="0ab17929-0" bind:__l="__l" u-p="{{g}}"></u-icon></view></view><view class="btnBox data-v-0ab17929"><one-btn wx:if="{{j}}" class="data-v-0ab17929" bindoneBtnClick="{{i}}" u-i="0ab17929-1" bind:__l="__l" u-p="{{j}}"></one-btn></view></view><view wx:if="{{k}}" class="step2 data-v-0ab17929"><view class="btnBox data-v-0ab17929"><one-btn wx:if="{{m}}" class="data-v-0ab17929" bindoneBtnClick="{{l}}" u-i="0ab17929-2" bind:__l="__l" u-p="{{m}}"></one-btn></view></view><view wx:if="{{n}}" class="step3 data-v-0ab17929"><view class="okIcon data-v-0ab17929"><image class="data-v-0ab17929" src="{{o}}" mode=""></image></view><view class="oktext data-v-0ab17929">认证成功</view><view class="btnBox data-v-0ab17929"><one-btn wx:if="{{q}}" class="data-v-0ab17929" bindoneBtnClick="{{p}}" u-i="0ab17929-3" bind:__l="__l" u-p="{{q}}"></one-btn></view></view></view></view>
<view class="content data-v-0ab17929"><view class="stepTop data-v-0ab17929"><view class="steps flex-b data-v-0ab17929"><view class="proress data-v-0ab17929" style="{{'width:' + a}}"></view><view class="step data-v-0ab17929"><view class="num active data-v-0ab17929">01<view class="text data-v-0ab17929">房屋信息1</view></view></view><view class="step data-v-0ab17929"><view class="{{['num', 'data-v-0ab17929', b && 'active']}}">02<view class="text data-v-0ab17929">个人资料</view></view></view><view class="step data-v-0ab17929"><view class="{{['num', 'data-v-0ab17929', c && 'active']}}">03<view class="text data-v-0ab17929">认证成功</view></view></view></view></view><view class="line data-v-0ab17929"></view><view class="padding data-v-0ab17929"><view wx:if="{{d}}" class="step1 data-v-0ab17929"><view class="h1 data-v-0ab17929">请选择您的房屋地址</view><view class="lab data-v-0ab17929">房屋信息</view><view class="row flex-b data-v-0ab17929"><view class="lable data-v-0ab17929">详细地址</view><view class="flex data-v-0ab17929" bindtap="{{h}}"><view wx:if="{{e}}" class="adrs data-v-0ab17929">{{f}}</view><view wx:else class="adrs data-v-0ab17929">请选择</view><u-icon wx:if="{{g}}" class="data-v-0ab17929" u-i="0ab17929-0" bind:__l="__l" u-p="{{g}}"></u-icon></view></view><view class="ownership data-v-0ab17929" bindtap="{{l}}"><view class="photo data-v-0ab17929"><image wx:if="{{i}}" class="data-v-0ab17929" src="{{j}}" mode="widthFix"></image><image wx:else class="data-v-0ab17929" src="{{k}}" mode=""></image></view><view class="txt data-v-0ab17929">房屋所有权证照片</view></view><view class="btnBox data-v-0ab17929"><one-btn wx:if="{{n}}" class="data-v-0ab17929" bindoneBtnClick="{{m}}" u-i="0ab17929-1" bind:__l="__l" u-p="{{n}}"></one-btn></view></view><view wx:if="{{o}}" class="step2 data-v-0ab17929"><view class="btnBox data-v-0ab17929"><one-btn wx:if="{{q}}" class="data-v-0ab17929" bindoneBtnClick="{{p}}" u-i="0ab17929-2" bind:__l="__l" u-p="{{q}}"></one-btn></view></view><view wx:if="{{r}}" class="step3 data-v-0ab17929"><view class="okIcon data-v-0ab17929"><image class="data-v-0ab17929" src="{{s}}" mode=""></image></view><view class="oktext data-v-0ab17929">认证成功</view><view class="btnBox data-v-0ab17929"><one-btn wx:if="{{v}}" class="data-v-0ab17929" bindoneBtnClick="{{t}}" u-i="0ab17929-3" bind:__l="__l" u-p="{{v}}"></one-btn></view></view></view></view>

14
unpackage/dist/dev/mp-weixin/pages/subPage/authentication/authentication.wxss

@ -52,6 +52,20 @@ image.data-v-0ab17929 {
color: #DE3A26;
margin-right: 6rpx;
}
.content .step1 .ownership.data-v-0ab17929 {
padding: 30rpx 0 10rpx 0;
}
.content .step1 .ownership .photo.data-v-0ab17929 {
width: 392rpx;
height: 252rpx;
margin: 0 auto;
}
.content .step1 .ownership .txt.data-v-0ab17929 {
font-size: 28rpx;
color: #999;
text-align: center;
margin-top: 20rpx;
}
.content .step3.data-v-0ab17929 {
padding: 40rpx 0;
display: flex;

40
unpackage/dist/dev/mp-weixin/pages/subPage/ballots/ballotsList/ballotsList.js

@ -159,6 +159,21 @@ const _sfc_main = {
params.value.voteState = item.id;
initList();
}
function goVote(item) {
let url = "";
if (currentTab.value == 1 || item.voted == 1) {
url = "/pages/subPage/ballots/vote/voteReslut?voteId=" + item.voteId;
} else if (item.voteStatus == 0) {
return false;
} else if (item.voteStatus == 1) {
url = "/pages/subPage/ballots/vote/vote?voteId=" + item.voteId;
} else if (item.voteStatus == 2) {
url = "/pages/subPage/ballots/vote/voteReslut?voteId=" + item.voteId;
}
common_vendor.index.navigateTo({
url
});
}
let voteList = common_vendor.ref([]);
let total = common_vendor.ref(0);
let params = common_vendor.ref({
@ -184,7 +199,6 @@ const _sfc_main = {
status.value = "nomore";
console.log(voteList.value);
}
votePageFn();
async function initList() {
params.value.pageNo = 1;
voteList.value = [];
@ -195,6 +209,9 @@ const _sfc_main = {
await initList();
common_vendor.index.stopPullDownRefresh();
});
common_vendor.onShow(() => {
initList();
});
common_vendor.onReachBottom(() => {
if (total.value > voteList.value.length) {
votePageFn();
@ -221,19 +238,14 @@ const _sfc_main = {
return common_vendor.e({
a: common_vendor.t(item.title),
b: currentTab.value == 1 || item.voted == 1
}, currentTab.value == 1 || item.voted == 1 ? {
c: common_vendor.o(($event) => _ctx.$goPage("/pages/subPage/ballots/vote/voteReslut?voteId=" + item.voteId), index)
} : item.voteStatus == 0 ? {} : item.voteStatus == 1 ? {
f: common_vendor.o(($event) => _ctx.$goPage("/pages/subPage/ballots/vote/vote?voteId=" + item.voteId), index)
} : item.voteStatus == 2 ? {
h: common_vendor.o(($event) => _ctx.$goPage("/pages/subPage/ballots/vote/voteReslut?voteId=" + item.voteId), index)
} : {}, {
d: item.voteStatus == 0,
e: item.voteStatus == 1,
g: item.voteStatus == 2,
i: common_vendor.t(item.makerName),
j: common_vendor.t(item.endTime),
k: index
}, currentTab.value == 1 || item.voted == 1 ? {} : item.voteStatus == 0 ? {} : item.voteStatus == 1 ? {} : item.voteStatus == 2 ? {} : {}, {
c: item.voteStatus == 0,
d: item.voteStatus == 1,
e: item.voteStatus == 2,
f: common_vendor.t(item.makerName),
g: common_vendor.t(item.endTime),
h: index,
i: common_vendor.o(($event) => goVote(item), index)
});
}),
f: common_vendor.unref(voteList).length > 30

2
unpackage/dist/dev/mp-weixin/pages/subPage/ballots/ballotsList/ballotsList.wxml

@ -1 +1 @@
<view class="content padding data-v-747012e4"><view class="banner data-v-747012e4"><image class="data-v-747012e4" src="{{a}}" mode=""></image></view><view class="tabs data-v-747012e4"><up-tabs wx:if="{{c}}" class="data-v-747012e4" bindclick="{{b}}" u-i="747012e4-0" bind:__l="__l" u-p="{{c}}"></up-tabs></view><view class="tags data-v-747012e4"><view wx:for="{{d}}" wx:for-item="item" wx:key="b" class="{{['tag', 'data-v-747012e4', item.c && 'active']}}" bindtap="{{item.d}}">{{item.a}}</view></view><view class="ul data-v-747012e4"><view wx:for="{{e}}" wx:for-item="item" wx:key="k" class="li data-v-747012e4"><view class="flex-b data-v-747012e4"><view class="name towRowText data-v-747012e4">{{item.a}}</view><view wx:if="{{item.b}}" class="btn boder data-v-747012e4" bindtap="{{item.c}}">查看结果</view><view wx:elif="{{item.d}}" class="btn data-v-747012e4" style="opacity:0.4">未开始</view><view wx:elif="{{item.e}}" class="btn data-v-747012e4" bindtap="{{item.f}}">我要投票</view><view wx:elif="{{item.g}}" class="btn data-v-747012e4" bindtap="{{item.h}}" style="opacity:0.4">已结束</view></view><view class="text data-v-747012e4"><text class="data-v-747012e4">发起人:{{item.i}}</text><text class="data-v-747012e4">截止时间:{{item.j}}</text></view></view></view><view wx:if="{{f}}" class="data-v-747012e4" style="padding-bottom:20rpx"><u-loadmore wx:if="{{g}}" class="data-v-747012e4" u-i="747012e4-1" bind:__l="__l" u-p="{{g}}"/></view><nodata wx:if="{{h}}" class="data-v-747012e4" u-s="{{['d']}}" u-i="747012e4-2" bind:__l="__l">暂无投票信息~</nodata></view>
<view class="content padding data-v-747012e4"><view class="banner data-v-747012e4"><image class="data-v-747012e4" src="{{a}}" mode=""></image></view><view class="tabs data-v-747012e4"><up-tabs wx:if="{{c}}" class="data-v-747012e4" bindclick="{{b}}" u-i="747012e4-0" bind:__l="__l" u-p="{{c}}"></up-tabs></view><view class="tags data-v-747012e4"><view wx:for="{{d}}" wx:for-item="item" wx:key="b" class="{{['tag', 'data-v-747012e4', item.c && 'active']}}" bindtap="{{item.d}}">{{item.a}}</view></view><view class="ul data-v-747012e4"><view wx:for="{{e}}" wx:for-item="item" wx:key="h" class="li data-v-747012e4" bindtap="{{item.i}}"><view class="flex-b data-v-747012e4"><view class="name towRowText data-v-747012e4">{{item.a}}</view><view wx:if="{{item.b}}" class="btn boder data-v-747012e4">查看结果</view><view wx:elif="{{item.c}}" class="btn data-v-747012e4" style="opacity:0.4">未开始</view><view wx:elif="{{item.d}}" class="btn data-v-747012e4">我要投票</view><view wx:elif="{{item.e}}" class="btn data-v-747012e4" style="opacity:0.4">已结束</view></view><view class="text data-v-747012e4"><text class="data-v-747012e4">发起人:{{item.f}}</text><text class="data-v-747012e4">截止时间:{{item.g}}</text></view></view></view><view wx:if="{{f}}" class="data-v-747012e4" style="padding-bottom:20rpx"><u-loadmore wx:if="{{g}}" class="data-v-747012e4" u-i="747012e4-1" bind:__l="__l" u-p="{{g}}"/></view><nodata wx:if="{{h}}" class="data-v-747012e4" u-s="{{['d']}}" u-i="747012e4-2" bind:__l="__l">暂无投票信息~</nodata></view>

16
unpackage/dist/dev/mp-weixin/pages/subPage/ballots/vote/comp/topInfo.js

@ -2,11 +2,13 @@
const common_vendor = require("../../../../../common/vendor.js");
if (!Array) {
const _easycom_up_navbar2 = common_vendor.resolveComponent("up-navbar");
_easycom_up_navbar2();
const _easycom_u_parse2 = common_vendor.resolveComponent("u-parse");
(_easycom_up_navbar2 + _easycom_u_parse2)();
}
const _easycom_up_navbar = () => "../../../../../uni_modules/uview-plus/components/u-navbar/u-navbar.js";
const _easycom_u_parse = () => "../../../../../uni_modules/uview-plus/components/u-parse/u-parse.js";
if (!Math) {
_easycom_up_navbar();
(_easycom_up_navbar + _easycom_u_parse)();
}
const _sfc_main = {
__name: "topInfo",
@ -17,6 +19,11 @@ const _sfc_main = {
}
},
setup(__props) {
let style = {
// p: 'font-size:32rpx',
// span: 'font-size: 30rpx',
img: "max-width: 100%"
};
return (_ctx, _cache) => {
return common_vendor.e({
a: common_vendor.p({
@ -35,7 +42,10 @@ const _sfc_main = {
}, __props.detailInfo.voteStatus == 1 ? {} : {}, {
h: __props.detailInfo.voteStatus == 2
}, __props.detailInfo.voteStatus == 2 ? {} : {}, {
i: common_vendor.t(__props.detailInfo.detail),
i: common_vendor.p({
content: __props.detailInfo.detail,
tagStyle: common_vendor.unref(style)
}),
j: common_vendor.t(__props.detailInfo.voteType == 1 ? "单选" : "多选"),
k: common_vendor.t(__props.detailInfo.userHiddenType ? "实名" : "匿名")
});

3
unpackage/dist/dev/mp-weixin/pages/subPage/ballots/vote/comp/topInfo.json

@ -1,6 +1,7 @@
{
"component": true,
"usingComponents": {
"up-navbar": "../../../../../uni_modules/uview-plus/components/u-navbar/u-navbar"
"up-navbar": "../../../../../uni_modules/uview-plus/components/u-navbar/u-navbar",
"u-parse": "../../../../../uni_modules/uview-plus/components/u-parse/u-parse"
}
}

2
unpackage/dist/dev/mp-weixin/pages/subPage/ballots/vote/comp/topInfo.wxml

@ -1 +1 @@
<view class="topInfo data-v-248fb919"><view class="bg padding data-v-248fb919"><view class="status_bar data-v-248fb919"></view><up-navbar wx:if="{{a}}" class="data-v-248fb919" u-i="248fb919-0" bind:__l="__l" u-p="{{a}}"></up-navbar><view class="tit data-v-248fb919">{{b}}</view><view class="textCon data-v-248fb919"><view class="p data-v-248fb919"><view class="txt data-v-248fb919">发起人:{{c}}</view><view class="txt data-v-248fb919">创建时间:{{d}}</view><view class="txt data-v-248fb919">截止时间:{{e}}</view></view><view wx:if="{{f}}" class="status data-v-248fb919" style="opacity:0.4">未开始</view><view wx:if="{{g}}" class="status data-v-248fb919">我要投票</view><view wx:if="{{h}}" class="status data-v-248fb919" style="opacity:0.4">已结束</view></view></view><view class="detail padding data-v-248fb919">{{i}}</view><view class="padding data-v-248fb919"><view class="row flex-b data-v-248fb919"><view class="flex data-v-248fb919"><view class="radionItem data-v-248fb919">{{j}}</view></view><view class="checkboxs data-v-248fb919"><text class="data-v-248fb919">{{k}}</text></view></view></view></view>
<view class="topInfo data-v-248fb919"><view class="bg padding data-v-248fb919"><view class="status_bar data-v-248fb919"></view><up-navbar wx:if="{{a}}" class="data-v-248fb919" u-i="248fb919-0" bind:__l="__l" u-p="{{a}}"></up-navbar><view class="tit data-v-248fb919">{{b}}</view><view class="textCon data-v-248fb919"><view class="p data-v-248fb919"><view class="txt data-v-248fb919">发起人:{{c}}</view><view class="txt data-v-248fb919">创建时间:{{d}}</view><view class="txt data-v-248fb919">截止时间:{{e}}</view></view><view wx:if="{{f}}" class="status data-v-248fb919" style="opacity:0.4">未开始</view><view wx:if="{{g}}" class="status data-v-248fb919">我要投票</view><view wx:if="{{h}}" class="status data-v-248fb919" style="opacity:0.4">已结束</view></view></view><view class="detail padding data-v-248fb919"><u-parse wx:if="{{i}}" class="data-v-248fb919" u-i="248fb919-1" bind:__l="__l" u-p="{{i}}"></u-parse></view><view class="padding data-v-248fb919"><view class="row flex-b data-v-248fb919"><view class="flex data-v-248fb919"><view class="radionItem data-v-248fb919">{{j}}</view></view><view class="checkboxs data-v-248fb919"><text class="data-v-248fb919">{{k}}</text></view></view></view></view>

6
unpackage/dist/dev/mp-weixin/pages/subPage/ballots/vote/vote.js

@ -141,12 +141,12 @@ const _sfc_main = {
const voteItemId = common_vendor.ref([]);
function chooseItem(item) {
if (detailInfo.value.voteType == 1) {
voteItemId.value = [{ voteItemId: item.itemId, voteId: voteId * 1 }];
voteItemId.value = [{ voteItemId: item.itemId, voteId }];
return;
}
let index = voteItemId.value.findIndex((val) => val.voteItemId == item.itemId);
if (index == -1) {
voteItemId.value.push({ voteItemId: item.itemId, voteId: voteId * 1 });
voteItemId.value.push({ voteItemId: item.itemId, voteId });
} else {
voteItemId.value.splice(index, 1);
}
@ -160,7 +160,7 @@ const _sfc_main = {
common_vendor.index.$u.toast("投票成功");
setTimeout(() => {
common_vendor.index.navigateTo({
url: "/pages/subPage/ballots/vote/voteReslut"
url: "/pages/subPage/ballots/vote/voteReslut?voteId=" + voteId
});
}, 1500);
}

8
unpackage/dist/dev/mp-weixin/pages/subPage/ballots/vote/voteReslut.js

@ -147,7 +147,8 @@ const _sfc_main = {
common_vendor.index.stopPullDownRefresh();
});
return (_ctx, _cache) => {
return {
var _a, _b;
return common_vendor.e({
a: common_vendor.p({
detailInfo: detailInfo.value
}),
@ -169,8 +170,9 @@ const _sfc_main = {
h: index,
i: item.voted ? 1 : ""
});
})
};
}),
c: !((_a = detailInfo.value.voteResults) == null ? void 0 : _a.length)
}, !((_b = detailInfo.value.voteResults) == null ? void 0 : _b.length) ? {} : {});
};
}
};

2
unpackage/dist/dev/mp-weixin/pages/subPage/ballots/vote/voteReslut.wxml

@ -1 +1 @@
<view class="content data-v-9c438604"><top-info wx:if="{{a}}" class="data-v-9c438604" u-i="9c438604-0" bind:__l="__l" u-p="{{a}}"/><view class="padding data-v-9c438604"><view class="ul data-v-9c438604"><view wx:for="{{b}}" wx:for-item="item" wx:key="h" class="{{['li2', 'flex-b', 'data-v-9c438604', item.i && 'active']}}"><view class="proccess data-v-9c438604" style="{{'width:' + item.a}}"></view><view class="leftTxt flex data-v-9c438604"><u-icon wx:if="{{item.b}}" class="data-v-9c438604" u-i="{{item.c}}" bind:__l="__l" u-p="{{item.d}}"></u-icon><view class="name data-v-9c438604">{{item.e}}</view></view><view class="rightTxt data-v-9c438604">{{item.f}} <text class="data-v-9c438604">( {{item.g}} )</text></view></view></view></view></view>
<view class="content data-v-9c438604"><top-info wx:if="{{a}}" class="data-v-9c438604" u-i="9c438604-0" bind:__l="__l" u-p="{{a}}"/><view class="padding data-v-9c438604"><view class="ul data-v-9c438604"><view wx:for="{{b}}" wx:for-item="item" wx:key="h" class="{{['li2', 'flex-b', 'data-v-9c438604', item.i && 'active']}}"><view class="proccess data-v-9c438604" style="{{'width:' + item.a}}"></view><view class="leftTxt flex data-v-9c438604"><u-icon wx:if="{{item.b}}" class="data-v-9c438604" u-i="{{item.c}}" bind:__l="__l" u-p="{{item.d}}"></u-icon><view class="name data-v-9c438604">{{item.e}}</view></view><view class="rightTxt data-v-9c438604">{{item.f}} <text class="data-v-9c438604">( {{item.g}} )</text></view></view></view><view wx:if="{{c}}" class="novote data-v-9c438604">暂无人员参与投票~</view></view></view>

7
unpackage/dist/dev/mp-weixin/pages/subPage/ballots/vote/voteReslut.wxss

@ -23,6 +23,13 @@
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.novote.data-v-9c438604 {
font-size: 28rpx;
color: #9C9C9C;
width: 100%;
text-align: center;
line-height: 60rpx;
}
.content.data-v-9c438604 {
width: 100%;
}

11
unpackage/dist/dev/mp-weixin/pages/subPage/login/login.js

@ -160,6 +160,7 @@ const _sfc_main = {
fail: (err) => {
reject(null);
console.error("微信登录失败", err);
common_vendor.index.hideLoading();
}
});
});
@ -168,6 +169,9 @@ const _sfc_main = {
if (!isCheck.value)
return uni_modules_uviewPlus_libs_function_index.toast("请勾选产品协议与隐私政策");
let phoneCode = e.detail.code;
common_vendor.index.showLoading({
title: "正在加载..."
});
console.log(e.detail.errMsg);
console.log(e.detail);
const loginCode = await loginFn();
@ -183,12 +187,13 @@ const _sfc_main = {
const counterStore = store_index.userStore();
await counterStore.upDateToken(res.accessToken);
await counterStore.upDateLoginInfo(res);
common_vendor.index.hideLoading();
common_vendor.index.$u.toast("登录成功");
setTimeout(() => {
common_vendor.index.switchTab({
url: "/pages/tabbar/index/index"
});
}, 2e3);
}, 1500);
}
return (_ctx, _cache) => {
return common_vendor.e({
@ -197,12 +202,12 @@ const _sfc_main = {
}, !common_vendor.unref(isCheck) ? {
c: common_vendor.o(handleBtnClick),
d: common_vendor.p({
text: "微信一键登录"
text: "手机号快捷登录"
})
} : {
e: common_vendor.o(getPhoneNumber),
f: common_vendor.p({
text: "微信一键登录"
text: "手机号快捷登录"
})
}, {
g: common_vendor.o(changeRadio),

2
unpackage/dist/dev/mp-weixin/pages/subPage/login/login.wxml

@ -1 +1 @@
<view class="content data-v-f8b2b374"><view class="padding data-v-f8b2b374"><view class="logoCon data-v-f8b2b374"><view class="logo data-v-f8b2b374"><image class="data-v-f8b2b374" src="{{a}}" mode=""></image></view><view class="name data-v-f8b2b374">事务通</view></view><view wx:if="{{b}}" class="oneBtnBox data-v-f8b2b374"><one-btn wx:if="{{d}}" class="data-v-f8b2b374" bindoneBtnClick="{{c}}" u-i="f8b2b374-0" bind:__l="__l" u-p="{{d}}"></one-btn></view><view wx:else class="oneBtnBox data-v-f8b2b374"><button open-type="getPhoneNumber" bindgetphonenumber="{{e}}" class="cotactzz data-v-f8b2b374">微信一键登录</button><one-btn wx:if="{{f}}" class="data-v-f8b2b374" u-i="f8b2b374-1" bind:__l="__l" u-p="{{f}}"></one-btn></view><view class="data-v-f8b2b374" style="padding-top:30rpx"><privacy-radion wx:if="{{h}}" class="data-v-f8b2b374" style="margin-top:40rpx" bindchangeRadio="{{g}}" u-i="f8b2b374-2" bind:__l="__l" u-p="{{h}}"/></view></view></view>
<view class="content data-v-f8b2b374"><view class="padding data-v-f8b2b374"><view class="logoCon data-v-f8b2b374"><view class="logo data-v-f8b2b374"><image class="data-v-f8b2b374" src="{{a}}" mode=""></image></view><view class="name data-v-f8b2b374">事务通</view></view><view wx:if="{{b}}" class="oneBtnBox data-v-f8b2b374"><one-btn wx:if="{{d}}" class="data-v-f8b2b374" bindoneBtnClick="{{c}}" u-i="f8b2b374-0" bind:__l="__l" u-p="{{d}}"></one-btn></view><view wx:else class="oneBtnBox data-v-f8b2b374"><button open-type="getPhoneNumber" bindgetphonenumber="{{e}}" class="cotactzz data-v-f8b2b374">手机号快捷登录</button><one-btn wx:if="{{f}}" class="data-v-f8b2b374" u-i="f8b2b374-1" bind:__l="__l" u-p="{{f}}"></one-btn></view><view class="data-v-f8b2b374" style="padding-top:30rpx"><privacy-radion wx:if="{{h}}" class="data-v-f8b2b374" style="margin-top:40rpx" bindchangeRadio="{{g}}" u-i="f8b2b374-2" bind:__l="__l" u-p="{{h}}"/></view></view></view>

16
unpackage/dist/dev/mp-weixin/pages/subPage/notice/noticeDetail.js

@ -129,11 +129,6 @@ if (!Math) {
const _sfc_main = {
__name: "noticeDetail",
setup(__props) {
let style = {
// p: 'font-size:32rpx',
// span: 'font-size: 30rpx',
img: "max-width: 100%"
};
let articleId = "";
const info = common_vendor.ref("");
async function getNoticeDetailFn() {
@ -149,13 +144,16 @@ const _sfc_main = {
common_vendor.index.stopPullDownRefresh();
});
return (_ctx, _cache) => {
return {
return common_vendor.e({
a: common_vendor.t(info.value.title),
b: common_vendor.p({
content: info.value.content,
tagStyle: common_vendor.unref(style)
})
};
tagStyle: _ctx.style
}),
c: info.value.timeDesc
}, info.value.timeDesc ? {
d: common_vendor.t(info.value.timeDesc)
} : {});
};
}
};

2
unpackage/dist/dev/mp-weixin/pages/subPage/notice/noticeDetail.wxml

@ -1 +1 @@
<view class="content padding data-v-ae16cb0d"><view class="tit data-v-ae16cb0d">{{a}}</view><u-parse wx:if="{{b}}" class="data-v-ae16cb0d" u-i="ae16cb0d-0" bind:__l="__l" u-p="{{b}}"></u-parse></view>
<view class="content padding data-v-ae16cb0d"><view class="tit data-v-ae16cb0d">{{a}}</view><u-parse wx:if="{{b}}" class="data-v-ae16cb0d" u-i="ae16cb0d-0" bind:__l="__l" u-p="{{b}}"></u-parse><view wx:if="{{c}}" class="timeDesc data-v-ae16cb0d">创建时间: {{d}}</view></view>

7
unpackage/dist/dev/mp-weixin/pages/subPage/notice/noticeDetail.wxss

@ -27,4 +27,11 @@
font-size: 32rpx;
font-weight: 700;
padding: 20rpx 0;
text-align: center;
}
.timeDesc.data-v-ae16cb0d {
text-align: right;
font-size: 28rpx;
color: #999;
padding: 30px 0;
}

8
unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/comp/yhxy.js

@ -0,0 +1,8 @@
"use strict";
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {};
function _sfc_render(_ctx, _cache) {
return {};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "D:/work/xinjiangMiniProgram/pages/subPage/privacyAgreement/comp/yhxy.vue"]]);
wx.createComponent(Component);

4
unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/comp/yhxy.json

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

1
unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/comp/yhxy.wxml
File diff suppressed because it is too large
View File

26
unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/comp/yhxy.wxss

@ -0,0 +1,26 @@
.box {
padding-bottom: 40rpx;
}
.h3 {
font-size: 40rpx;
padding-top: 30rpx;
width: 100%;
text-align: center;
font-weight: 700;
}
.h2 {
font-size: 30rpx;
margin: 40rpx 0 8rpx 0;
font-weight: 700;
}
.p {
font-size: 28rpx;
margin-left: 12px;
}
.txt {
margin-left: 32rpx;
font-size: 26rpx;
margin-bottom: 10rpx;
}

8
unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/comp/yszc.js

@ -0,0 +1,8 @@
"use strict";
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {};
function _sfc_render(_ctx, _cache) {
return {};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "D:/work/xinjiangMiniProgram/pages/subPage/privacyAgreement/comp/yszc.vue"]]);
wx.createComponent(Component);

4
unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/comp/yszc.json

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

1
unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/comp/yszc.wxml

@ -0,0 +1 @@
<view class="box"><view class="h3">《隐私政策》</view><view class="h2">一、 引言</view><view class="p">杭州钧安科技有限公司(以下简称“我们”)非常重视用户的隐私和个人信息保护。本隐私政策旨在向您说明我们在您使用首府公馆事务通小程序(以下简称“本小程序”)时如何收集、使用、存储和保护您的个人信息。</view><view class="h2">二、 个人信息的定义</view><view class="p">个人信息是指以电子或者其他方式记录的能够单独或者与其他信息结合识别特定自然人身份或者反映特定自然人活动情况的各种信息。</view><view class="h2">三、个人信息的收集</view><view class="p">(一) 我们可能会在以下情况下收集您的个人信息:</view><view class="txt">1. 您注册或登录本小程序时,我们可能会收集您的手机号码、用户名、密码等信息;</view><view class="txt">2. 您使用本小程序的服务时,我们可能会收集您的操作记录、浏览记录、交易记录等信息;</view><view class="txt">3. 您与我们进行沟通或反馈时,我们可能会收集您的姓名、联系方式、反馈内容等信息。</view><view class="p">(一) 我们可能会通过以下方式收集您的个人信息:</view><view class="txt">1. 您直接向我们提供的信息;</view><view class="txt">2. 我们在您使用本小程序时自动收集的信息;</view><view class="txt">3. 我们从第三方获取的信息</view><view class="h2">四、个人信息的使用</view><view class="p">(一) 我们会将收集到的您的个人信息用于以下目的:</view><view class="txt">1. 为您提供本小程序的服务;</view><view class="txt">2. 改善本小程序的服务质量和用户体验;</view><view class="txt">3. 进行数据分析和统计;</view><view class="txt">4. 与您进行沟通和联系;</view><view class="txt">5. 遵守法律法规和政策的要求。</view><view class="txt">6. 我们不会将您的个人信息用于其他未经您同意的目的。</view><view class="h2">五、个人信息的存储</view><view class="p">(一) 我们会将您的个人信息存储在安全的服务器上,并采取合理的安全措施来保护您的个人信息。</view><view class="p">(二) 我们会根据法律法规的要求和业务运营的需要,确定个人信息的存储期限。在存储期限届满后,我们会对您的个人信息进行删除或匿名化处理。</view><view class="h2">六、个人信息的共享、转让和公开披露</view><view class="p">(一) 我们不会将您的个人信息共享、转让给任何第三方,除非经过您的明确同意或法律法规另有规定。</view><view class="p">(二) 我们不会公开披露您的个人信息,除非经过您的明确同意或法律法规另有规定。</view><view class="h2">七、用户权利</view><view class="p">(一) 您有权访问、更正、删除您的个人信息。</view><view class="p">(二) 您有权撤回您对个人信息处理的同意。</view><view class="p">(三) 您有权要求我们限制对您个人信息的处理。</view><view class="p">(四) 您有权要求我们提供您的个人信息副本。</view><view class="h2">八、未成年人的个人信息保护</view><view class="p">我们非常重视未成年人的个人信息保护。如果您是未满 18 周岁的未成年人,请在您的监护人的陪同下阅读本隐私政策,并在您的监护人同意的情况下使用本小程序。</view><view class="h2">九、隐私政策的变更</view><view class="p">我们可能会不时修订本隐私政策。修订后的隐私政策将在本小程序上公布,您继续使用本小程序即视为您同意接受修订后的隐私政策。</view><view class="h2">十、联系我们</view><view class="p">如果您对本隐私政策有任何疑问、意见或建议,请通过以下方式联系我们</view><view class="p">联系电话:0571--56606030</view></view>

26
unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/comp/yszc.wxss

@ -0,0 +1,26 @@
.box {
padding-bottom: 40rpx;
}
.h3 {
font-size: 40rpx;
padding-top: 30rpx;
width: 100%;
text-align: center;
font-weight: 700;
}
.h2 {
font-size: 30rpx;
margin: 40rpx 0 8rpx 0;
font-weight: 700;
}
.p {
font-size: 28rpx;
margin-left: 12px;
}
.txt {
margin-left: 32rpx;
font-size: 26rpx;
margin-bottom: 10rpx;
}

58
unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/privacyAgreement.js

@ -1,39 +1,35 @@
"use strict";
const common_vendor = require("../../../common/vendor.js");
if (!Math) {
(yszc + yhxy)();
}
const yhxy = () => "./comp/yhxy.js";
const yszc = () => "./comp/yszc.js";
const _sfc_main = {
data() {
return {
type: 1,
url: ""
};
},
onLoad(options) {
this.type = options.type;
if (this.type == 1) {
common_vendor.index.setNavigationBarTitle({
title: "隐私政策"
});
} else {
common_vendor.index.setNavigationBarTitle({
title: "用户使用协议"
});
}
this.getAgreementFn();
},
methods: {
async getAgreementFn() {
if (this.type == 1) {
this.url = "http://www.jakjgs.com/htmls/yszc.html";
__name: "privacyAgreement",
setup(__props) {
let type = common_vendor.ref(1);
let url = common_vendor.ref("");
common_vendor.onLoad((options) => {
type.value = options.type;
if (type.value == 1) {
common_vendor.index.setNavigationBarTitle({
title: "隐私政策"
});
url.value = "https://www.jakjgs.com/htmls/yszc.html";
} else {
this.url = "http://www.jakjgs.com/htmls/yhxy.html";
common_vendor.index.setNavigationBarTitle({
title: "用户使用协议"
});
url.value = "https://www.jakjgs.com/htmls/yhxy.html";
}
}
});
return (_ctx, _cache) => {
return common_vendor.e({
a: common_vendor.unref(type) == 1
}, common_vendor.unref(type) == 1 ? {} : {});
};
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: $data.url
};
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "D:/work/xinjiangMiniProgram/pages/subPage/privacyAgreement/privacyAgreement.vue"]]);
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "D:/work/xinjiangMiniProgram/pages/subPage/privacyAgreement/privacyAgreement.vue"]]);
wx.createPage(MiniProgramPage);

5
unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/privacyAgreement.json

@ -2,5 +2,8 @@
"navigationBarTitleText": "用户协议",
"enablePullDownRefresh": false,
"backgroundTextStyle": "dark",
"usingComponents": {}
"usingComponents": {
"yhxy": "./comp/yhxy",
"yszc": "./comp/yszc"
}
}

2
unpackage/dist/dev/mp-weixin/pages/subPage/privacyAgreement/privacyAgreement.wxml

@ -1 +1 @@
<view class="main"><web-view src="{{a}}"></web-view></view>
<view class="main padding"><yszc wx:if="{{a}}" u-i="e79a5dbe-0" bind:__l="__l"></yszc><yhxy wx:else u-i="e79a5dbe-1" bind:__l="__l"></yhxy></view>

209
unpackage/dist/dev/mp-weixin/pages/tabbar/index/comp/notice.js

@ -1,19 +1,202 @@
"use strict";
const common_vendor = require("../../../../common/vendor.js");
const store_index = require("../../../../store/index.js");
const config_api = require("../../../../config/api.js");
require("../../../../uni_modules/uview-plus/index.js");
require("../../../../uni_modules/uview-plus/libs/mixin/mixin.js");
require("../../../../uni_modules/uview-plus/libs/vue.js");
require("../../../../uni_modules/uview-plus/libs/function/index.js");
require("../../../../uni_modules/uview-plus/libs/function/test.js");
require("../../../../uni_modules/uview-plus/libs/function/digit.js");
require("../../../../uni_modules/uview-plus/libs/config/config.js");
require("../../../../uni_modules/uview-plus/libs/util/route.js");
require("../../../../uni_modules/uview-plus/libs/mixin/mpMixin.js");
require("../../../../uni_modules/uview-plus/libs/luch-request/core/Request.js");
require("../../../../uni_modules/uview-plus/libs/luch-request/core/dispatchRequest.js");
require("../../../../uni_modules/uview-plus/libs/luch-request/adapters/index.js");
require("../../../../uni_modules/uview-plus/libs/luch-request/helpers/buildURL.js");
require("../../../../uni_modules/uview-plus/libs/luch-request/utils.js");
require("../../../../uni_modules/uview-plus/libs/luch-request/core/buildFullPath.js");
require("../../../../uni_modules/uview-plus/libs/luch-request/helpers/isAbsoluteURL.js");
require("../../../../uni_modules/uview-plus/libs/luch-request/helpers/combineURLs.js");
require("../../../../uni_modules/uview-plus/libs/luch-request/core/settle.js");
require("../../../../uni_modules/uview-plus/libs/luch-request/core/InterceptorManager.js");
require("../../../../uni_modules/uview-plus/libs/luch-request/core/mergeConfig.js");
require("../../../../uni_modules/uview-plus/libs/luch-request/core/defaults.js");
require("../../../../uni_modules/uview-plus/libs/luch-request/utils/clone.js");
require("../../../../uni_modules/uview-plus/libs/function/colorGradient.js");
require("../../../../uni_modules/uview-plus/libs/function/debounce.js");
require("../../../../uni_modules/uview-plus/libs/function/throttle.js");
require("../../../../uni_modules/uview-plus/libs/config/props.js");
require("../../../../uni_modules/uview-plus/libs/config/props/actionSheet.js");
require("../../../../uni_modules/uview-plus/libs/config/props/album.js");
require("../../../../uni_modules/uview-plus/libs/config/props/alert.js");
require("../../../../uni_modules/uview-plus/libs/config/props/avatar.js");
require("../../../../uni_modules/uview-plus/libs/config/props/avatarGroup.js");
require("../../../../uni_modules/uview-plus/libs/config/props/backtop.js");
require("../../../../uni_modules/uview-plus/libs/config/props/badge.js");
require("../../../../uni_modules/uview-plus/libs/config/props/button.js");
require("../../../../uni_modules/uview-plus/libs/config/props/calendar.js");
require("../../../../uni_modules/uview-plus/libs/config/props/carKeyboard.js");
require("../../../../uni_modules/uview-plus/libs/config/props/cell.js");
require("../../../../uni_modules/uview-plus/libs/config/props/cellGroup.js");
require("../../../../uni_modules/uview-plus/libs/config/props/checkbox.js");
require("../../../../uni_modules/uview-plus/libs/config/props/checkboxGroup.js");
require("../../../../uni_modules/uview-plus/libs/config/props/circleProgress.js");
require("../../../../uni_modules/uview-plus/libs/config/props/code.js");
require("../../../../uni_modules/uview-plus/libs/config/props/codeInput.js");
require("../../../../uni_modules/uview-plus/libs/config/props/col.js");
require("../../../../uni_modules/uview-plus/libs/config/props/collapse.js");
require("../../../../uni_modules/uview-plus/libs/config/props/collapseItem.js");
require("../../../../uni_modules/uview-plus/libs/config/props/columnNotice.js");
require("../../../../uni_modules/uview-plus/libs/config/props/countDown.js");
require("../../../../uni_modules/uview-plus/libs/config/props/countTo.js");
require("../../../../uni_modules/uview-plus/libs/config/props/datetimePicker.js");
require("../../../../uni_modules/uview-plus/libs/config/props/divider.js");
require("../../../../uni_modules/uview-plus/libs/config/props/empty.js");
require("../../../../uni_modules/uview-plus/libs/config/props/form.js");
require("../../../../uni_modules/uview-plus/libs/config/props/formItem.js");
require("../../../../uni_modules/uview-plus/libs/config/props/gap.js");
require("../../../../uni_modules/uview-plus/libs/config/props/grid.js");
require("../../../../uni_modules/uview-plus/libs/config/props/gridItem.js");
require("../../../../uni_modules/uview-plus/libs/config/props/icon.js");
require("../../../../uni_modules/uview-plus/libs/config/props/image.js");
require("../../../../uni_modules/uview-plus/libs/config/props/indexAnchor.js");
require("../../../../uni_modules/uview-plus/libs/config/props/indexList.js");
require("../../../../uni_modules/uview-plus/libs/config/props/input.js");
require("../../../../uni_modules/uview-plus/libs/config/props/keyboard.js");
require("../../../../uni_modules/uview-plus/libs/config/props/line.js");
require("../../../../uni_modules/uview-plus/libs/config/props/lineProgress.js");
require("../../../../uni_modules/uview-plus/libs/config/props/link.js");
require("../../../../uni_modules/uview-plus/libs/config/props/list.js");
require("../../../../uni_modules/uview-plus/libs/config/props/listItem.js");
require("../../../../uni_modules/uview-plus/libs/config/props/loadingIcon.js");
require("../../../../uni_modules/uview-plus/libs/config/props/loadingPage.js");
require("../../../../uni_modules/uview-plus/libs/config/props/loadmore.js");
require("../../../../uni_modules/uview-plus/libs/config/props/modal.js");
require("../../../../uni_modules/uview-plus/libs/config/props/navbar.js");
require("../../../../uni_modules/uview-plus/libs/config/color.js");
require("../../../../uni_modules/uview-plus/libs/config/props/noNetwork.js");
require("../../../../uni_modules/uview-plus/libs/config/props/noticeBar.js");
require("../../../../uni_modules/uview-plus/libs/config/props/notify.js");
require("../../../../uni_modules/uview-plus/libs/config/props/numberBox.js");
require("../../../../uni_modules/uview-plus/libs/config/props/numberKeyboard.js");
require("../../../../uni_modules/uview-plus/libs/config/props/overlay.js");
require("../../../../uni_modules/uview-plus/libs/config/props/parse.js");
require("../../../../uni_modules/uview-plus/libs/config/props/picker.js");
require("../../../../uni_modules/uview-plus/libs/config/props/popup.js");
require("../../../../uni_modules/uview-plus/libs/config/props/radio.js");
require("../../../../uni_modules/uview-plus/libs/config/props/radioGroup.js");
require("../../../../uni_modules/uview-plus/libs/config/props/rate.js");
require("../../../../uni_modules/uview-plus/libs/config/props/readMore.js");
require("../../../../uni_modules/uview-plus/libs/config/props/row.js");
require("../../../../uni_modules/uview-plus/libs/config/props/rowNotice.js");
require("../../../../uni_modules/uview-plus/libs/config/props/scrollList.js");
require("../../../../uni_modules/uview-plus/libs/config/props/search.js");
require("../../../../uni_modules/uview-plus/libs/config/props/section.js");
require("../../../../uni_modules/uview-plus/libs/config/props/skeleton.js");
require("../../../../uni_modules/uview-plus/libs/config/props/slider.js");
require("../../../../uni_modules/uview-plus/libs/config/props/statusBar.js");
require("../../../../uni_modules/uview-plus/libs/config/props/steps.js");
require("../../../../uni_modules/uview-plus/libs/config/props/stepsItem.js");
require("../../../../uni_modules/uview-plus/libs/config/props/sticky.js");
require("../../../../uni_modules/uview-plus/libs/config/props/subsection.js");
require("../../../../uni_modules/uview-plus/libs/config/props/swipeAction.js");
require("../../../../uni_modules/uview-plus/libs/config/props/swipeActionItem.js");
require("../../../../uni_modules/uview-plus/libs/config/props/swiper.js");
require("../../../../uni_modules/uview-plus/libs/config/props/swipterIndicator.js");
require("../../../../uni_modules/uview-plus/libs/config/props/switch.js");
require("../../../../uni_modules/uview-plus/libs/config/props/tabbar.js");
require("../../../../uni_modules/uview-plus/libs/config/props/tabbarItem.js");
require("../../../../uni_modules/uview-plus/libs/config/props/tabs.js");
require("../../../../uni_modules/uview-plus/libs/config/props/tag.js");
require("../../../../uni_modules/uview-plus/libs/config/props/text.js");
require("../../../../uni_modules/uview-plus/libs/config/props/textarea.js");
require("../../../../uni_modules/uview-plus/libs/config/props/toast.js");
require("../../../../uni_modules/uview-plus/libs/config/props/toolbar.js");
require("../../../../uni_modules/uview-plus/libs/config/props/tooltip.js");
require("../../../../uni_modules/uview-plus/libs/config/props/transition.js");
require("../../../../uni_modules/uview-plus/libs/config/props/upload.js");
require("../../../../uni_modules/uview-plus/libs/config/zIndex.js");
require("../../../../uni_modules/uview-plus/libs/function/platform.js");
if (!Array) {
const _easycom_oneBtn2 = common_vendor.resolveComponent("oneBtn");
const _easycom_up_popup2 = common_vendor.resolveComponent("up-popup");
(_easycom_oneBtn2 + _easycom_up_popup2)();
}
const _easycom_oneBtn = () => "../../../../components/oneBtn/oneBtn.js";
const _easycom_up_popup = () => "../../../../uni_modules/uview-plus/components/u-popup/u-popup.js";
if (!Math) {
(_easycom_oneBtn + _easycom_up_popup)();
}
const _sfc_main = {
props: ["list"]
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.f($props.list, (item, index, i0) => {
__name: "notice",
props: {
list: {
type: Array,
default: []
}
},
setup(__props) {
const counterStore = store_index.userStore();
const showPop = common_vendor.ref(false);
function goDetail(item) {
if (!counterStore.userInfo.myHouse) {
getHousesFn();
}
common_vendor.index.navigateTo({
url: "/pages/subPage/notice/noticeDetail?id=" + item.id
});
}
function oneBtnClickFn() {
showPop.value = false;
common_vendor.index.navigateTo({
url: "/pages/subPage/authentication/authentication"
});
}
async function getHousesFn() {
if (!counterStore.token) {
common_vendor.index.navigateTo({
url: "/pages/subPage/login/login"
});
return;
}
const {
data: res
} = await config_api.getHouses();
if (!res.length) {
return showPop.value = true;
}
counterStore.upDateUseInfo("myHouse", res);
}
return (_ctx, _cache) => {
return {
a: common_vendor.t(item.title),
b: item.picture,
c: index,
d: common_vendor.o(($event) => _ctx.$goPage("pages/subPage/notice/noticeDetail?id=" + item.id), index)
a: common_vendor.f(__props.list, (item, index, i0) => {
return {
a: common_vendor.t(item.title),
b: common_vendor.t(item.timeDesc),
c: item.picture,
d: index,
e: common_vendor.o(($event) => goDetail(item), index)
};
}),
b: common_vendor.o(oneBtnClickFn),
c: common_vendor.p({
text: "点击认证业主"
}),
d: common_vendor.o(($event) => showPop.value = false),
e: common_vendor.p({
show: showPop.value,
mode: "center",
round: 10,
customStyle: {
width: "90%"
},
closeable: true
})
};
})
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-95913b5f"], ["__file", "D:/work/xinjiangMiniProgram/pages/tabbar/index/comp/notice.vue"]]);
};
}
};
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-95913b5f"], ["__file", "D:/work/xinjiangMiniProgram/pages/tabbar/index/comp/notice.vue"]]);
wx.createComponent(Component);

5
unpackage/dist/dev/mp-weixin/pages/tabbar/index/comp/notice.json

@ -1,4 +1,7 @@
{
"component": true,
"usingComponents": {}
"usingComponents": {
"one-btn": "../../../../components/oneBtn/oneBtn",
"up-popup": "../../../../uni_modules/uview-plus/components/u-popup/u-popup"
}
}

2
unpackage/dist/dev/mp-weixin/pages/tabbar/index/comp/notice.wxml

@ -1 +1 @@
<view class="ul data-v-95913b5f"><view wx:for="{{a}}" wx:for-item="item" wx:key="c" class="li flex-b data-v-95913b5f" bindtap="{{item.d}}"><view class="leftTxt data-v-95913b5f"><view class="tit towRowText data-v-95913b5f">{{item.a}}</view><view class="date data-v-95913b5f">2024.06.28 18:42</view></view><view class="cover data-v-95913b5f"><image class="data-v-95913b5f" src="{{item.b}}" mode=""></image></view></view></view>
<view class="ul data-v-95913b5f"><view wx:for="{{a}}" wx:for-item="item" wx:key="d" class="li flex-b data-v-95913b5f" bindtap="{{item.e}}"><view class="leftTxt data-v-95913b5f"><view class="tit towRowText data-v-95913b5f">{{item.a}}</view><view class="date data-v-95913b5f">{{item.b}}</view></view><view class="cover data-v-95913b5f"><image class="data-v-95913b5f" src="{{item.c}}" mode=""></image></view></view><up-popup wx:if="{{e}}" class="data-v-95913b5f" u-s="{{['d']}}" bindclose="{{d}}" u-i="95913b5f-0" bind:__l="__l" u-p="{{e}}"><view class="popCon data-v-95913b5f"><view class="hello data-v-95913b5f">你好:</view><view class="p data-v-95913b5f"> 欢迎来到 <text class="data-v-95913b5f">“新疆首府公馆”</text>,为了更好的为您提供服务,请您选择房屋信息,进行业主身份认证。 </view><one-btn wx:if="{{c}}" class="data-v-95913b5f" bindoneBtnClick="{{b}}" u-i="95913b5f-1,95913b5f-0" bind:__l="__l" u-p="{{c}}"></one-btn></view></up-popup></view>

15
unpackage/dist/dev/mp-weixin/pages/tabbar/index/comp/notice.wxss

@ -60,4 +60,19 @@
display: block;
width: 100%;
height: 100%;
}
.popCon.data-v-95913b5f {
padding: 60rpx 40rpx;
color: #333;
}
.popCon .hello.data-v-95913b5f {
font-size: 36rpx;
font-weight: 700;
}
.popCon .p.data-v-95913b5f {
font-size: 28rpx;
padding: 30rpx 0 60rpx 0;
}
.popCon .p text.data-v-95913b5f {
color: #DE3A26;
}

72
unpackage/dist/dev/mp-weixin/pages/tabbar/index/index.js

@ -139,47 +139,71 @@ const notice = () => "./comp/notice.js";
const _sfc_main = {
__name: "index",
setup(__props) {
const { imgUrl } = config_site_config.obj;
const {
imgUrl,
tmplIds
} = config_site_config.obj;
const counterStore = store_index.userStore();
console.log(counterStore.token);
const show = common_vendor.ref(false);
function authentication() {
show.value = false;
common_vendor.index.$u.route({
url: "/pages/subPage/authentication/authentication"
});
}
let params = common_vendor.ref({
pageNo: 1,
pageSize: 20
});
let noticeList = common_vendor.ref([]);
async function getNoticeListFn() {
const { data: res } = await config_api.getNoticeList(params);
const {
data: res
} = await config_api.getNoticeList(params);
noticeList.value = res.list;
}
const myHouse = common_vendor.ref([]);
async function getHousesFn() {
if (!counterStore.token)
return true;
const { data: res } = await config_api.getHouses();
const {
data: res
} = await config_api.getHouses();
if (!res.length) {
show.value = true;
return;
}
myHouse.value = res;
counterStore.upDateUseInfo("name", res.userName);
counterStore.upDateUseInfo("myHouse", res);
}
function goHome(url) {
common_vendor.index.requestSubscribeMessage({
tmplIds: ["OH_1gceM-m3EXRKOtjl_Hb1ymyC5zw8_Ag6LaFXV4Do", "AjD_oLafmKGO8X3YvDGl1qmITq_Q6bSFMDeygJNAIes"],
success(res) {
console.log("订阅成功: ", res);
},
fail(err) {
console.log("订阅失败:", err);
}
});
function goSever() {
if (!myHouse.value)
return;
goHome();
}
async function goHome(url) {
if (show.value)
show.value = false;
let token = counterStore.token;
if (token) {
common_vendor.index.$u.route({
url
const openId = counterStore.loginInfo.openId;
common_vendor.index.requestSubscribeMessage({
tmplIds,
async success(res) {
let acceptArr = [];
tmplIds.forEach((item) => {
if (res[item] == "accept") {
acceptArr.push(item);
}
});
console.log("订阅成功: ", acceptArr);
if (!acceptArr.length)
return;
await config_api.appletSubscribe({ openId, templateIds: acceptArr });
},
fail(err) {
console.log("订阅失败:", err);
},
complete() {
common_vendor.index.$u.route({
url
});
}
});
} else {
common_vendor.index.$u.route({
@ -227,13 +251,13 @@ const _sfc_main = {
j: common_vendor.unref(imgUrl) + "homebanner3.png"
} : {}, {
k: common_vendor.unref(imgUrl) + "homebanner2.png",
l: common_vendor.o(($event) => goHome("/pages/subPage/ballots/ballotsList/ballotsList")),
l: common_vendor.o(($event) => goSever()),
m: common_assets._imports_0,
n: common_vendor.o(($event) => _ctx.$goPage("/pages/subPage/notice/notice")),
o: common_vendor.p({
list: common_vendor.unref(noticeList)
}),
p: common_vendor.o(authentication),
p: common_vendor.o(($event) => goHome("/pages/subPage/authentication/authentication")),
q: common_vendor.p({
text: "点击认证业主"
}),

2
unpackage/dist/dev/mp-weixin/pages/tabbar/index/index.wxml

@ -1 +1 @@
<view class="content data-v-184b8d5d"><view class="status_bar data-v-184b8d5d"></view><up-navbar wx:if="{{a}}" class="data-v-184b8d5d" u-s="{{['left']}}" u-i="184b8d5d-0" bind:__l="__l" u-p="{{a}}"><view class=" data-v-184b8d5d" slot="left"></view></up-navbar><view class="padding data-v-184b8d5d"><view class="banner1 data-v-184b8d5d"><image class="data-v-184b8d5d" src="{{b}}" mode=""></image></view><view class="myhome data-v-184b8d5d"><view class="flex-b data-v-184b8d5d"><view class="h2 data-v-184b8d5d">我的房屋</view><view class="btn data-v-184b8d5d" bindtap="{{c}}">关联房屋</view></view><view wx:if="{{d}}" class="borderCard data-v-184b8d5d" bindtap="{{g}}"><view class="flex data-v-184b8d5d"><view class="text2 data-v-184b8d5d">立即登录</view><u-icon wx:if="{{e}}" class="data-v-184b8d5d" u-i="184b8d5d-1" bind:__l="__l" u-p="{{e}}"></u-icon></view><view class="text3 data-v-184b8d5d">登录成功即可关联房屋~</view><view class="banner3 data-v-184b8d5d"><image class="data-v-184b8d5d" src="{{f}}" mode=""></image></view></view><view wx:if="{{h}}" class="borderCard data-v-184b8d5d"><view wx:for="{{i}}" wx:for-item="item" wx:key="c" class=" data-v-184b8d5d"><view class="text data-v-184b8d5d">房屋地址:{{item.a}}</view><view class="text data-v-184b8d5d">房屋面积:{{item.b}}</view></view><view class="banner3 data-v-184b8d5d"><image class="data-v-184b8d5d" src="{{j}}" mode=""></image></view></view></view><view class="severCon data-v-184b8d5d"><view class="h1pad data-v-184b8d5d"><view class="h1 data-v-184b8d5d">服务</view></view><view class="banner2 data-v-184b8d5d" bindtap="{{l}}"><image class="data-v-184b8d5d" src="{{k}}" mode=""></image></view></view><view class="noticeCon data-v-184b8d5d"><view class="h1pad flex-b data-v-184b8d5d"><view class="h1 data-v-184b8d5d">公示公告</view><view class="more data-v-184b8d5d" bindtap="{{n}}"><view class="txt data-v-184b8d5d">更多</view><view class="icon data-v-184b8d5d"><image class="data-v-184b8d5d" src="{{m}}" mode=""></image></view></view></view><notice wx:if="{{o}}" class="data-v-184b8d5d" u-i="184b8d5d-2" bind:__l="__l" u-p="{{o}}"/></view></view><up-popup wx:if="{{s}}" class="data-v-184b8d5d" u-s="{{['d']}}" bindclose="{{r}}" u-i="184b8d5d-3" bind:__l="__l" u-p="{{s}}"><view class="popCon data-v-184b8d5d"><view class="hello data-v-184b8d5d">你好:</view><view class="p data-v-184b8d5d"> 欢迎来到 <text class="data-v-184b8d5d">“新疆首公馆”</text>,为了更好的为您提供服务,请您选择房屋信息,进行业主身份认证。 </view><one-btn wx:if="{{q}}" class="data-v-184b8d5d" bindclick="{{p}}" u-i="184b8d5d-4,184b8d5d-3" bind:__l="__l" u-p="{{q}}"></one-btn></view></up-popup></view>
<view class="content data-v-184b8d5d"><view class="status_bar data-v-184b8d5d"></view><up-navbar wx:if="{{a}}" class="data-v-184b8d5d" u-s="{{['left']}}" u-i="184b8d5d-0" bind:__l="__l" u-p="{{a}}"><view class=" data-v-184b8d5d" slot="left"></view></up-navbar><view class="padding data-v-184b8d5d"><view class="banner1 data-v-184b8d5d"><image class="data-v-184b8d5d" src="{{b}}" mode="widthFix"></image></view><view class="myhome data-v-184b8d5d"><view class="flex-b data-v-184b8d5d"><view class="h2 data-v-184b8d5d">我的房屋</view><view class="btn data-v-184b8d5d" bindtap="{{c}}">关联房屋</view></view><view wx:if="{{d}}" class="borderCard data-v-184b8d5d" bindtap="{{g}}"><view class="flex data-v-184b8d5d"><view class="text2 data-v-184b8d5d">立即登录</view><u-icon wx:if="{{e}}" class="data-v-184b8d5d" u-i="184b8d5d-1" bind:__l="__l" u-p="{{e}}"></u-icon></view><view class="text3 data-v-184b8d5d">登录成功即可关联房屋~</view><view class="banner3 data-v-184b8d5d"><image class="data-v-184b8d5d" src="{{f}}" mode="widthFix"></image></view></view><view wx:if="{{h}}" class="borderCard data-v-184b8d5d"><view wx:for="{{i}}" wx:for-item="item" wx:key="c" class=" data-v-184b8d5d"><view class="text data-v-184b8d5d">房屋地址:{{item.a}}</view><view class="text data-v-184b8d5d">房屋面积:{{item.b}}</view></view><view class="banner3 data-v-184b8d5d"><image class="data-v-184b8d5d" src="{{j}}" mode="widthFix"></image></view></view></view><view class="severCon data-v-184b8d5d"><view class="h1pad data-v-184b8d5d"><view class="h1 data-v-184b8d5d">服务</view></view><view class="banner2 data-v-184b8d5d" bindtap="{{l}}"><image class="data-v-184b8d5d" src="{{k}}" mode="widthFix"></image></view></view><view class="noticeCon data-v-184b8d5d"><view class="h1pad flex-b data-v-184b8d5d"><view class="h1 data-v-184b8d5d">公示公告</view><view class="more data-v-184b8d5d" bindtap="{{n}}"><view class="txt data-v-184b8d5d">更多</view><view class="icon data-v-184b8d5d"><image class="data-v-184b8d5d" src="{{m}}" mode=""></image></view></view></view><notice wx:if="{{o}}" class="data-v-184b8d5d" u-i="184b8d5d-2" bind:__l="__l" u-p="{{o}}"/></view></view><up-popup wx:if="{{s}}" class="data-v-184b8d5d" u-s="{{['d']}}" bindclose="{{r}}" u-i="184b8d5d-3" bind:__l="__l" u-p="{{s}}"><view class="popCon data-v-184b8d5d"><view class="hello data-v-184b8d5d">你好:</view><view class="p data-v-184b8d5d"> 欢迎来到 <text class="data-v-184b8d5d">“新疆首公馆”</text>,为了更好的为您提供服务,请您选择房屋信息,进行业主身份认证。 </view><one-btn wx:if="{{q}}" class="data-v-184b8d5d" bindoneBtnClick="{{p}}" u-i="184b8d5d-4,184b8d5d-3" bind:__l="__l" u-p="{{q}}"></one-btn></view></up-popup></view>

6
unpackage/dist/dev/mp-weixin/pages/tabbar/index/index.wxss

@ -52,7 +52,6 @@ image.data-v-184b8d5d {
}
.content .banner1.data-v-184b8d5d {
width: 100%;
height: 260rpx;
}
.content .myhome.data-v-184b8d5d {
width: 100%;
@ -61,6 +60,7 @@ image.data-v-184b8d5d {
box-shadow: 0px 0px 14rpx 0px rgba(0, 0, 0, 0.06);
border-radius: 20rpx;
padding: 0 30rpx 0rpx 30rpx;
overflow: auto;
}
.content .myhome .flex-b.data-v-184b8d5d {
width: 100%;
@ -86,7 +86,8 @@ image.data-v-184b8d5d {
border-radius: 20rpx;
border: 2rpx solid #EFEFEF;
padding: 40rpx 20rpx 0rpx 30rpx;
margin-top: 30rpx;
margin-top: 15rpx;
margin-bottom: 30rpx;
}
.content .myhome .borderCard .text.data-v-184b8d5d {
font-size: 28rpx;
@ -107,7 +108,6 @@ image.data-v-184b8d5d {
}
.content .severCon .banner2.data-v-184b8d5d {
width: 100%;
height: 180rpx;
}
.content .noticeCon .h1pad .more.data-v-184b8d5d {
display: flex;

4
unpackage/dist/dev/mp-weixin/pages/tabbar/mine/mine.js

@ -136,8 +136,8 @@ const _sfc_main = {
const topBgUrl = imgUrl + "minebg.png";
const counterStore = store_index.userStore();
const configList = common_vendor.ref([
{ text: "用户协议", url: "/pages/subPage/privacyAgreement/privacyAgreement?type=1" },
{ text: "隐私政策", url: "/pages/subPage/privacyAgreement/privacyAgreement?type=2" }
{ text: "用户协议", url: "/pages/subPage/privacyAgreement/privacyAgreement?type=2" },
{ text: "隐私政策", url: "/pages/subPage/privacyAgreement/privacyAgreement?type=1" }
]);
function logOutFn() {
common_vendor.index.showModal({

5
unpackage/dist/dev/mp-weixin/project.private.config.json

@ -2,7 +2,8 @@
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"projectname": "questionbankvue3",
"setting": {
"compileHotReLoad": true
"compileHotReLoad": true,
"urlCheck": true
},
"libVersion": "3.5.0"
"libVersion": "3.5.1"
}

BIN
unpackage/dist/dev/mp-weixin/static/images/bigImg/homebanner.png

Before

Width: 1420  |  Height: 520  |  Size: 632 KiB

BIN
unpackage/dist/dev/mp-weixin/static/images/bigImg/homebanner2.png

Before

Width: 1420  |  Height: 360  |  Size: 300 KiB

BIN
unpackage/dist/dev/mp-weixin/static/images/bigImg/homebanner3.png

Before

Width: 510  |  Height: 284  |  Size: 104 KiB

BIN
unpackage/dist/dev/mp-weixin/static/images/bigImg/minebg.png

Before

Width: 1512  |  Height: 1104  |  Size: 218 KiB

BIN
unpackage/dist/dev/mp-weixin/static/images/phoneH.png

After

Width: 392  |  Height: 252  |  Size: 82 KiB

7
unpackage/dist/dev/mp-weixin/store/index.js

@ -8,7 +8,8 @@ const userStore = common_vendor.defineStore({
loginInfo: common_vendor.index.getStorageSync("loginInfo") ? common_vendor.index.getStorageSync("loginInfo") : {},
userInfo: {
idCard: "",
name: ""
name: "",
myHouse: null
},
chooseHouse: {
"roomNum": "",
@ -42,13 +43,13 @@ const userStore = common_vendor.defineStore({
console.log(this.userInfo);
},
goLogin() {
this.openid = "";
this.token = "";
this.loginInfo = {};
for (let key in this.loginInfo) {
this.chooseHouse[key] = "";
}
common_vendor.index.setStorageSync("token", "");
common_vendor.index.setStorageSync("loginInfo", "");
common_vendor.index.clearStorage();
const pages = getCurrentPages();
const page = pages[pages.length - 1].$page.fullPath;
let url = "/pages/subPage/login/login";

40
unpackage/dist/dev/mp-weixin/utils/utils.js

@ -1,5 +1,6 @@
"use strict";
const common_vendor = require("../common/vendor.js");
const config_site_config = require("../config/site.config.js");
let goPage = (url, params = {}, type = "navigateTo") => {
common_vendor.index.$u.route({
url,
@ -7,4 +8,43 @@ let goPage = (url, params = {}, type = "navigateTo") => {
type
});
};
let { H5_API, WX_API, httpPrefix } = config_site_config.obj;
var _url = H5_API + WX_API + httpPrefix;
function uploadImgApi(filePath, imgName, imgLink = "image") {
console.log(filePath);
let token = "Bearer " + common_vendor.index.getStorageSync("token");
let timer = new Date() * 1;
return new Promise((reslove, reject) => {
common_vendor.index.uploadFile({
url: _url + "infra/file/upload",
//接口
filePath,
//要上传的图片的本地路径
name: "file",
// complain
formData: {
path: imgLink + "/" + common_vendor.index.$u.date(timer, "yyyy-mm-dd") + "/" + timer + "-" + imgName,
type: 1,
fileSuffix: "png"
},
header: {
Authorization: token
// 'tenant-id': '1704459882232553474'
},
success(res) {
console.log("上传成功??");
console.log(res);
let res2 = JSON.parse(res.data);
reslove(res2.data);
},
fail(error) {
return Promise.reject(error);
},
complete: (err) => {
common_vendor.index.hideLoading();
}
});
});
}
exports.goPage = goPage;
exports.uploadImgApi = uploadImgApi;

57
utils/utils.js

@ -1,8 +1,53 @@
export let goPage = (url, params = {}, type = 'navigateTo') => {
uni.$u.route({
url,
params,
type
})
}
export let goPage = (url, params={}, type='navigateTo')=> {
uni.$u.route({
url,
params,
type
import setObj from '@/config/site.config.js';
let { H5_API, WX_API,httpPrefix } = setObj
var _url = H5_API+ WX_API + httpPrefix
export function uploadImgApi(filePath, imgName, imgLink='image') {
console.log(filePath)
let token = 'Bearer '+ uni.getStorageSync('token')
let timer = new Date() * 1
return new Promise((reslove, reject)=>{
// 上传图片到服务器
uni.uploadFile({
url: _url + 'infra/file/upload',//接口
filePath: filePath,//要上传的图片的本地路径
name: 'file',
// complain
formData: {
path: imgLink+'/'+ uni.$u.date(timer, 'yyyy-mm-dd')+'/'+timer + '-'+ imgName,
type: 1,
fileSuffix: "png"
},
header: {
Authorization: token,
// 'tenant-id': '1704459882232553474'
},
success(res) {
console.log('上传成功??')
console.log(res)
let res2 = JSON.parse(res.data)
reslove(res2.data)
},
fail(error) {
return Promise.reject(error)
},
complete: (err)=> {
uni.hideLoading();
}
})
})
}
}
Loading…
Cancel
Save