Browse Source

修改BUG

dev
沈明 1 year ago
parent
commit
e57a0efbf1
  1. 5
      src/api/user.ts
  2. 17
      src/pages/electionList/index.vue
  3. 15
      src/pages/login/login.vue
  4. 25
      src/pages/mine/index.vue
  5. 2
      src/pages/myElection/index.vue
  6. 21
      src/pages/votingElection/index.vue
  7. 3
      src/store/user.ts
  8. 13
      src/utils/common.ts

5
src/api/user.ts

@ -14,13 +14,14 @@ export interface dateListtype extends listType {
id: number id: number
} }
export function infoForOpenid(data: { openid: string }) { export function infoForOpenid(data: { openid: string; mobile: string }) {
return request.http({ return request.http({
url: '/api/member', url: '/api/member_mobile',
method: 'GET', method: 'GET',
data data
}) })
} }
export function list(data: { name: string }) { export function list(data: { name: string }) {
return request.http({ return request.http({
url: '/api/member_name', url: '/api/member_name',

17
src/pages/electionList/index.vue

@ -9,19 +9,6 @@ const doSearch = (formData: { page: number; limit: number }, onSuccess: Function
onSuccess({ data }) onSuccess({ data })
}) })
} }
const setInerval = ref<any>()
onShow(() => {
setInerval.value = setInterval(() => {
reListRef.value.refreshFn()
}, 5000)
})
onHide(() => {
clearInterval(setInerval.value)
setInerval.value = null
})
</script> </script>
<template> <template>
@ -60,8 +47,8 @@ onHide(() => {
</view> </view>
<view class="progress"> <view class="progress">
<u-line-progress :percentage="v.ageree_percent" height="8rpx" active-color="#2563EB" :show-text="false" /> <u-line-progress :percentage="v.agree_percent" height="8rpx" active-color="#2563EB" :show-text="false" />
<view class="progress-text">{{ v.ageree_percent }}%</view> <view class="progress-text">{{ v.agree_percent }}%</view>
</view> </view>
</view> </view>

15
src/pages/login/login.vue

@ -39,12 +39,19 @@ const onGetPhoneNumber = debounce(async (e: phoneEvent) => {
await userStore.getopenid({ code: loginCode.value }) await userStore.getopenid({ code: loginCode.value })
} }
const { data: phone } = (await getMobile({ openid: userStore.openId, code: e.detail.code })) as { data: string } getMobile({ openid: userStore.openId, code: e.detail.code })
userStore.mobile = phone .then((res) => {
const { data: phone } = res as { data: string }
userStore.getUserInfo() userStore.mobile = phone
onLoginSuccess() userStore.getUserInfo()
onLoginSuccess()
})
.catch(() => {
uni.showToast({ title: '登录失败!', icon: 'none' })
})
} catch (error) { } catch (error) {
uni.showToast({ title: '登录失败', icon: 'none' }) uni.showToast({ title: '登录失败', icon: 'none' })
} }

25
src/pages/mine/index.vue

@ -71,8 +71,8 @@ const save = () => {
uni.showLoading({ mask: true, title: '保存中...' }) uni.showLoading({ mask: true, title: '保存中...' })
updateApi({ [popFrom.key]: popFrom.value }, userStore.openId).then(() => { updateApi({ [popFrom.key]: popFrom.value }, userStore.openId).then(() => {
userStore.userInfo[popFrom.key] = popFrom.value
uni.hideLoading() uni.hideLoading()
userStore.userInfo[popFrom.key] = popFrom.value
showEdit.value = false showEdit.value = false
}) })
} }
@ -84,6 +84,8 @@ onShow(() => {
amdinPhone.value = data || '' amdinPhone.value = data || ''
}) })
}) })
onPullDownRefresh(() => userStore.getUserInfo())
</script> </script>
<template> <template>
<view class="userview"> <view class="userview">
@ -187,7 +189,14 @@ onShow(() => {
<u-popup :show="showEdit" mode="center" @close="showEdit = false" :round="10"> <u-popup :show="showEdit" mode="center" @close="showEdit = false" :round="10">
<view class="popupView"> <view class="popupView">
<view class="title">修改{{ popFrom.label }}</view> <view class="title">修改{{ popFrom.label }}</view>
<u-input :placeholder="`请输入${popFrom.label}`" input-align="right" v-model="popFrom.value"> <view v-if="popFrom.key === 'sex'" class="flex-center-between sexview">
<text>性别</text>
<u-radio-group v-model="popFrom.value" placement="row">
<u-radio shape="circle" label="男" :name="1" />
<u-radio shape="circle" label="女" :name="2" />
</u-radio-group>
</view>
<u-input v-else :placeholder="`请输入${popFrom.label}`" input-align="right" v-model="popFrom.value">
<template v-slot:prefix> <template v-slot:prefix>
<text style="color: #909399">{{ popFrom.label }}</text> <text style="color: #909399">{{ popFrom.label }}</text>
</template> </template>
@ -209,7 +218,7 @@ onShow(() => {
.popupView { .popupView {
width: 90vw; width: 90vw;
padding: 20rpx 40rpx 0; padding: 20rpx 40rpx;
.title { .title {
font-size: 36rpx; font-size: 36rpx;
@ -217,9 +226,19 @@ onShow(() => {
margin-bottom: 40rpx; margin-bottom: 40rpx;
} }
:deep(.u-input) {
border-width: 2rpx !important;
}
.bts { .bts {
margin-top: 40rpx; margin-top: 40rpx;
} }
.sexview {
:deep(.u-radio-group) {
justify-content: flex-end !important;
}
}
} }
.box { .box {

2
src/pages/myElection/index.vue

@ -15,7 +15,7 @@
: 'background: #F3F4F6;color: #4B5563' : 'background: #F3F4F6;color: #4B5563'
" "
> >
{{ item.vote_title == 1 ? '未开始' : item.vote_title == 2 ? '进行中' : '已结束' }} {{ item.status == 1 ? '未开始' : item.status == 2 ? '进行中' : '已结束' }}
</view> </view>
</view> </view>
</view> </view>

21
src/pages/votingElection/index.vue

@ -1,10 +1,14 @@
<script setup lang="ts"> <script setup lang="ts">
import { getVoteprogress, voteMember } from '../../api/votingElection' import { getVoteprogress, voteMember } from '../../api/votingElection'
import useUserStore from '@/store/user' import useUserStore from '@/store/user'
import { isEmptyObject } from '@/utils/common'
const userStore = useUserStore() const userStore = useUserStore()
const showDialogRef = ref() const showDialogRef = ref()
const reListRef = ref()
const xjList = ref<any>({}) const xjList = ref<any>({})
const doSearch = (_formData: { page: number; limit: number }, onSuccess: Function) => { const doSearch = (_formData: { page: number; limit: number }, onSuccess: Function) => {
@ -100,12 +104,6 @@ const submit = () => {
} }
} }
const isEmptyObject = (obj: any) => {
if (obj == null) return true
if (typeof obj !== 'object' || Array.isArray(obj)) return true
return Reflect.ownKeys(obj).length === 0
}
const onConfirm = () => uni.reLaunch({ url: '/pages/mine/index' }) const onConfirm = () => uni.reLaunch({ url: '/pages/mine/index' })
onShow(() => { onShow(() => {
@ -116,6 +114,15 @@ onShow(() => {
}) })
} else if (isEmptyObject(userStore.userInfo)) { } else if (isEmptyObject(userStore.userInfo)) {
showDialogRef.value.show = true showDialogRef.value.show = true
} else {
uni.showToast({
title: '签到成功,等待投票!',
icon: 'success',
duration: 1000,
complete: () => {
setTimeout(() => reListRef.value.refreshFn(), 1100)
}
})
} }
}) })
}) })
@ -129,7 +136,7 @@ onShow(() => {
<view class="time">投票开始时间{{ xjList.start_time }}</view> <view class="time">投票开始时间{{ xjList.start_time }}</view>
<view class="time">投票截止时间{{ xjList.end_time }}</view> <view class="time">投票截止时间{{ xjList.end_time }}</view>
</view> </view>
<ex-list ref="reListRef" custom-list-type="custom" :on-form-search="doSearch"> <ex-list ref="reListRef" custom-list-type="custom" :on-form-search="doSearch" :is-perform-search="false">
<template v-slot="{ data }"> <template v-slot="{ data }">
<view class="tppart"> <view class="tppart">
<view class="tpone" v-for="(row, index) of data" :key="'tpone' + index"> <view class="tpone" v-for="(row, index) of data" :key="'tpone' + index">

3
src/store/user.ts

@ -32,12 +32,11 @@ export default defineStore(
function getUserInfo() { function getUserInfo() {
return new Promise<any>((resolve, reject) => { return new Promise<any>((resolve, reject) => {
infoForOpenid({ openid: openId.value }) infoForOpenid({ openid: openId.value, mobile: mobile.value })
.then((res) => { .then((res) => {
const { data } = res as { data: userInfoStoreInt } const { data } = res as { data: userInfoStoreInt }
userInfo.value = data || {} userInfo.value = data || {}
resolve({ code: 1, data, message: 'SUCCESS' }) resolve({ code: 1, data, message: 'SUCCESS' })
}) })
.catch((err) => { .catch((err) => {

13
src/utils/common.ts

@ -43,3 +43,16 @@ export const fileUrl = (fileName: string, filePath: string = 'images'): string =
return `http://cdn-pos.lingji.vip/static/${filePath}/${fileName}` return `http://cdn-pos.lingji.vip/static/${filePath}/${fileName}`
} }
} }
/**
*
* @author shenname <shenname@163.com>
* @license MIT
* @param any
* @returns {boolean}
*/
export const isEmptyObject = (obj: any): boolean => {
if (obj == null) return true
if (typeof obj !== 'object' || Array.isArray(obj)) return true
return Reflect.ownKeys(obj).length === 0
}

Loading…
Cancel
Save