优化内容+修复bug

This commit is contained in:
zhouyanli
2026-08-19 10:21:58 +08:00
parent 1710cba509
commit 325813c67e
13 changed files with 110 additions and 79 deletions

View File

@@ -2,8 +2,8 @@
"name" : "花开物业", "name" : "花开物业",
"appid" : "__UNI__29C3D60", "appid" : "__UNI__29C3D60",
"description" : "智慧社区居民端面向小区业主使用,支持注册、验证码、账号密码多种登录方式,提供密码找回功能,账号使用安全便捷。支持多小区切换,首页设有轮播 banner、社区公告集成远程开门、生活缴费、在线报修、访客邀请、社区活动常用服务。全服务板块统一涵盖门禁开门、线上缴费、报修申报、访客预约、投诉反馈、问卷调研、活动报名、社区公示、一键联系物业功能。个人中心可管理房屋、住户、车位、车辆信息支持更换手机号、修改密码、消息通知设置、版本更新及账号退出一站式满足业主居家生活、社区服务、房产车辆管理需求实现社区生活数字化、便捷化。", "description" : "智慧社区居民端面向小区业主使用,支持注册、验证码、账号密码多种登录方式,提供密码找回功能,账号使用安全便捷。支持多小区切换,首页设有轮播 banner、社区公告集成远程开门、生活缴费、在线报修、访客邀请、社区活动常用服务。全服务板块统一涵盖门禁开门、线上缴费、报修申报、访客预约、投诉反馈、问卷调研、活动报名、社区公示、一键联系物业功能。个人中心可管理房屋、住户、车位、车辆信息支持更换手机号、修改密码、消息通知设置、版本更新及账号退出一站式满足业主居家生活、社区服务、房产车辆管理需求实现社区生活数字化、便捷化。",
"versionName" : "1.1.5", "versionName" : "1.1.7",
"versionCode" : 128, "versionCode" : 130,
"transformPx" : false, "transformPx" : false,
"uniCloud" : { "uniCloud" : {
"provider" : "aliyun", "provider" : "aliyun",

View File

@@ -188,6 +188,7 @@
<view class="modal-body"> <view class="modal-body">
<view>{{navTitle}}</view> <view>{{navTitle}}</view>
<view class="modal-tip">报名后请按时参加活动</view> <view class="modal-tip">报名后请按时参加活动</view>
<view class="modal-tip-second"> 报名成功后在活动时间内不能取消报名</view>
</view> </view>
<view class="modal-footer"> <view class="modal-footer">
<view class="modal-btn cancel" @tap="hideSignupModal">取消</view> <view class="modal-btn cancel" @tap="hideSignupModal">取消</view>
@@ -202,7 +203,7 @@
<view class="modal-header">取消报名</view> <view class="modal-header">取消报名</view>
<view class="modal-body"> <view class="modal-body">
<view>{{navTitle}}</view> <view>{{navTitle}}</view>
<view class="modal-tip">取消后如需参加重新报名</view> <view class="modal-tip">取消后如需参加请在规定时间内重新报名</view>
</view> </view>
<view class="modal-footer"> <view class="modal-footer">
<view class="modal-btn cancel" @tap="hideCancelModal">再想想</view> <view class="modal-btn cancel" @tap="hideCancelModal">再想想</view>
@@ -858,6 +859,11 @@ const showToastMessage = (message) => {
color: #999; color: #999;
margin-top: 20rpx; margin-top: 20rpx;
} }
.modal-tip-second{
font-size: 24rpx;
color: #999;
margin-top: 10rpx;
}
.modal-footer { .modal-footer {
display: flex; display: flex;

View File

@@ -1,6 +1,6 @@
// 服务器地址(与 request.js 保持一致) // 服务器地址(与 request.js 保持一致)
// const baseUrl = 'https://wuyeapi.ckdzkj.com'; const baseUrl = 'https://wuyeapi.ckdzkj.com';
const baseUrl = "http://192.168.1.222:8080" // const baseUrl = "http://192.168.1.222:8080"
/** /**
* 图片上传 Hook * 图片上传 Hook

View File

@@ -1,29 +1,22 @@
<template> <template>
<view class="forget-page"> <view class="forget-page">
<view class="status_bar"></view>
<!-- <view class="nav-bar">
<uni-icons type="left" size="28" color="#333" @click="goBack"></uni-icons>
<view class="nav-title">忘记密码</view>
</view> -->
<!-- 手机号输入框 --> <!-- 手机号输入框 -->
<view class="input-item"> <view class="input-item">
<view class="input-icon"> <view class="input-icon">
<image src="http://47.104.199.163:9090/images/login/phone.png" mode="" style="height: 100%;width: 100%;"></image> <image src="http://47.104.199.163:9090/images/login/phone.png" mode="" style="height: 100%;width: 100%;"></image>
</view> </view>
<uni-easyinput class="input-content" type="number" v-model="phoneNumber" @input="phoneNumber = phoneNumber.replace(/\D/g, '')" trim="all" <input class="input-content native-input" :type="inputType" v-model="phoneNumber"
placeholder="请输入手机号" :inputBorder="false" maxlength="11" :placeholderStyle="placeholderStyle"> placeholder="请输入手机号" placeholder-style="font-size:24rpx" maxlength="11"/>
</uni-easyinput> </view>
</view>
<!-- 验证码输入 + 获取验证码按钮 --> <!-- 验证码输入 + 获取验证码按钮 -->
<view class="input-item verify-item"> <view class="input-item verify-item">
<view class="input-icon"> <view class="input-icon">
<image src="http://47.104.199.163:9090/images/login/code.png" mode="" style="height: 100%;width: 100%;"></image> <image src="http://47.104.199.163:9090/images/login/code.png" mode="" style="height: 100%;width: 100%;"></image>
<!-- <uni-icons type="locked" size="24" color="#999"></uni-icons> --> <!-- <uni-icons type="locked" size="24" color="#999"></uni-icons> -->
</view> </view>
<uni-easyinput class="input-content verify-input" type="number" v-model="verifyCode" @input="verifyCode = verifyCode.replace(/\D/g, '')" trim="all" <input class="input-content verify-input native-input" :type="inputType" v-model="verifyCode"
placeholder="请输入验证码" :inputBorder="false" maxlength="6" :placeholderStyle="placeholderStyle"> placeholder="请输入验证码" maxlength="6" placeholder-style="font-size:24rpx"/>
</uni-easyinput> <button
<button
class="get-verify-btn" class="get-verify-btn"
:disabled="!canGetVerify || countDown > 0" :disabled="!canGetVerify || countDown > 0"
@click="getVerifyCode" @click="getVerifyCode"
@@ -43,9 +36,12 @@
</view> </view>
</template> </template>
<script setup> <script setup>
import { ref, computed, onUnmounted } from 'vue'; import { ref, computed, onUnmounted } from 'vue';
import {getSendCode} from '../api/api.js' import {getSendCode} from '../api/api.js'
// 输入框类型:统一用 text避免 number 在真机上把 -/. 过滤掉导致手机号被误判合法;非法手机号由 canGetVerify 禁用获取验证码按钮
const inputType = 'text'
// ====响应式数据====== // ====响应式数据======
const phoneNumber = ref('') const phoneNumber = ref('')
const verifyCode = ref('') const verifyCode = ref('')
@@ -136,26 +132,6 @@ const goBack = () => {
box-sizing: border-box; box-sizing: border-box;
background: repeating-linear-gradient(180deg, #E2F0FF, #F6FAFF ); background: repeating-linear-gradient(180deg, #E2F0FF, #F6FAFF );
} }
.status_bar{
width: 100%;
height: 46px;
}
/* 顶部导航栏 */
.nav-bar {
display: flex;
align-items: center;
/* height: 88rpx; */
margin-bottom: 70rpx;
}
.nav-title {
flex: 1;
text-align: center;
font-size: 36rpx;
font-weight: 500;
color: #333;
margin-right: 100rpx;
}
/* 输入框通用样式 */ /* 输入框通用样式 */
.input-item { .input-item {
display: flex; display: flex;
@@ -190,6 +166,11 @@ const goBack = () => {
height: 100%; height: 100%;
} }
/* 原生 input 垂直居中 */
.native-input {
line-height: 88rpx;
}
/* 深度覆盖 uni-easyinput 内部默认样式,解决高度偏移 */ /* 深度覆盖 uni-easyinput 内部默认样式,解决高度偏移 */
.input-content :deep(.uni-easyinput__content) { .input-content :deep(.uni-easyinput__content) {
height: 100% !important; height: 100% !important;

View File

@@ -12,10 +12,8 @@
<view class="input-icon"> <view class="input-icon">
<image src="https://wuyeadmin.bugtc.com/images/login/phone.png" mode="" style="height: 100%;width: 100%;"></image> <image src="https://wuyeadmin.bugtc.com/images/login/phone.png" mode="" style="height: 100%;width: 100%;"></image>
</view> </view>
<uni-easyinput class="input-content" type="number" v-model="phoneNumber" <input class="input-content native-input" :type="inputType" v-model="phoneNumber"
@input="phoneNumber = phoneNumber.replace(/\D/g, '')" placeholder="请输入手机号" placeholder-style="font-size:24rpx" maxlength="11" />
placeholder="请输入手机号" :inputBorder="false" maxlength="11" :placeholderStyle="placeholderStyle">
</uni-easyinput>
</view> </view>
<!-- 验证码输入框 + 获取验证码按钮 --> <!-- 验证码输入框 + 获取验证码按钮 -->
@@ -23,10 +21,8 @@
<view class="input-icon"> <view class="input-icon">
<image src="https://wuyeadmin.bugtc.com/images/login/code.png" mode="" style="height: 100%;width: 100%;"></image> <image src="https://wuyeadmin.bugtc.com/images/login/code.png" mode="" style="height: 100%;width: 100%;"></image>
</view> </view>
<uni-easyinput class="input-content verify-input" type="number" v-model="verifyCode" <input class="input-content verify-input native-input" :type="inputType" v-model="verifyCode"
@input="verifyCode = verifyCode.replace(/\D/g, '')" placeholder="请输入验证码" maxlength="6" placeholder-style="font-size:24rpx"/>
placeholder="请输入验证码" :inputBorder="false" maxlength="6" :placeholderStyle="placeholderStyle">
</uni-easyinput>
<button class="get-verify-btn" :disabled="!canGetVerify || countDown > 0" @click="getVerifyCode"> <button class="get-verify-btn" :disabled="!canGetVerify || countDown > 0" @click="getVerifyCode">
{{ countDown > 0 ? `${countDown}s后重新获取` : '获取验证码' }} {{ countDown > 0 ? `${countDown}s后重新获取` : '获取验证码' }}
</button> </button>
@@ -92,6 +88,9 @@ import { getLoginBySms, getLoginPassword, getSendCode } from '../api/api.js'
import PrivacyPopup from '@/components/privacy-popup/privacy-popup.vue' import PrivacyPopup from '@/components/privacy-popup/privacy-popup.vue'
import { resetLoginLock } from '@/common/checkLogin.js' import { resetLoginLock } from '@/common/checkLogin.js'
// 输入框类型:统一用 text避免 number 在真机上把 -/. 过滤掉导致手机号被误判合法;非法手机号由 canGetVerify 禁用获取验证码按钮
const inputType = 'text'
// ========== 模式切换 ========== // ========== 模式切换 ==========
// 'sms' = 手机验证码登录, 'pwd' = 账号密码登录 // 'sms' = 手机验证码登录, 'pwd' = 账号密码登录
const loginMode = ref('pwd') const loginMode = ref('pwd')
@@ -343,6 +342,11 @@ onUnmounted(() => {
height: 100%; height: 100%;
} }
/* 原生 input 垂直居中 */
.native-input {
line-height: 88rpx;
}
/* 深度覆盖 uni-easyinput 内部默认样式 */ /* 深度覆盖 uni-easyinput 内部默认样式 */
.input-content :deep(.uni-easyinput__content) { .input-content :deep(.uni-easyinput__content) {

View File

@@ -11,8 +11,8 @@
<image src="https://wuyeadmin.bugtc.com/images/login/phone.png" mode="" <image src="https://wuyeadmin.bugtc.com/images/login/phone.png" mode=""
style="height: 100%;width: 100%;"></image> style="height: 100%;width: 100%;"></image>
</view> </view>
<uni-easyinput class="input-content" type="number" v-model="phoneNumber" @input="phoneNumber = phoneNumber.replace(/\D/g, '')" placeholder="请输入手机号" <input class="input-content native-input" :type="inputType" v-model="phoneNumber" placeholder="请输入手机号"
:inputBorder="false" maxlength="11" :placeholderStyle="placeholderStyle" /> placeholder-style="font-size:24rpx" maxlength="11"/>
</view> </view>
<!-- 验证码输入 + 获取验证码按钮 --> <!-- 验证码输入 + 获取验证码按钮 -->
@@ -21,8 +21,8 @@
<image src="https://wuyeadmin.bugtc.com/images/login/code.png" mode="" style="height: 100%;width: 100%;"> <image src="https://wuyeadmin.bugtc.com/images/login/code.png" mode="" style="height: 100%;width: 100%;">
</image> </image>
</view> </view>
<uni-easyinput class="input-content verify-input" type="number" v-model="verifyCode" @input="verifyCode = verifyCode.replace(/\D/g, '')" placeholder="请输入验证码" <input class="input-content verify-input native-input" :type="inputType" v-model="verifyCode" placeholder="请输入验证码"
:inputBorder="false" maxlength="6" :placeholderStyle="placeholderStyle" /> maxlength="6" placeholder-style="font-size:24rpx"/>
<button class="get-verify-btn" :disabled="!canGetVerify || countDown > 0" @click="getVerifyCode"> <button class="get-verify-btn" :disabled="!canGetVerify || countDown > 0" @click="getVerifyCode">
{{ countDown > 0 ? `${countDown}s后重新获取` : '获取验证码' }} {{ countDown > 0 ? `${countDown}s后重新获取` : '获取验证码' }}
@@ -95,6 +95,9 @@
} from '../api/api.js' } from '../api/api.js'
import PrivacyPopup from '@/components/privacy-popup/privacy-popup.vue' import PrivacyPopup from '@/components/privacy-popup/privacy-popup.vue'
// 输入框类型:统一用 text避免 number 在真机上把 -/. 过滤掉导致手机号被误判合法;非法手机号由 canGetVerify 禁用获取验证码按钮
const inputType = 'text'
// ========== 响应式数据 ========== // ========== 响应式数据 ==========
const phoneNumber = ref(''); const phoneNumber = ref('');
const verifyCode = ref(''); const verifyCode = ref('');
@@ -434,6 +437,11 @@
height: 100%; height: 100%;
} }
/* 原生 input 垂直居中 */
.native-input {
line-height: 88rpx;
}
/* 深度覆盖 uni-easyinput 内部默认样式 */ /* 深度覆盖 uni-easyinput 内部默认样式 */
.input-content :deep(.uni-easyinput__content) { .input-content :deep(.uni-easyinput__content) {
height: 100% !important; height: 100% !important;

View File

@@ -78,11 +78,11 @@
<text class="item-arrow"></text> <text class="item-arrow"></text>
</view> </view>
<view class="form-item switch-item" v-if="!houseId"> <!-- <view class="form-item switch-item" v-if="!houseId">
<text class="item-label" style="width: 100px;">设为默认房屋</text> <text class="item-label" style="width: 100px;">设为默认房屋</text>
<switch class="no-cross-switch" :checked="formData.isDefault" color="#1677ff" <switch class="no-cross-switch" :checked="formData.isDefault" color="#1677ff"
@change="onSwitchChange" /> @change="onSwitchChange" />
</view> </view> -->
</view> </view>
<!-- 第二步 --> <!-- 第二步 -->
<view v-if="currentStep==1"> <view v-if="currentStep==1">
@@ -901,10 +901,10 @@
} }
// 开关切换 // 开关切换
const onSwitchChange = (e) => { /* const onSwitchChange = (e) => {
formData.isDefault = e.detail.value formData.isDefault = e.detail.value
uni.setStorageSync('houseIsDefault', e.detail.value) uni.setStorageSync('houseIsDefault', e.detail.value)
} } */
// ========== 生命周期 ========== // ========== 生命周期 ==========
// 页面卸载时清除定时器 // 页面卸载时清除定时器
onUnmounted(() => { onUnmounted(() => {

View File

@@ -2,7 +2,9 @@
<view class="form-container"> <view class="form-container">
<!-- 报修房屋 --> <!-- 报修房屋 -->
<view class="form-item"> <view class="form-item">
<text class="label">报修房屋</text> <view class="label">
<text class="required">*</text>报修房屋
</view>
<view class="value" @click="goToSelectHouse"> <view class="value" @click="goToSelectHouse">
{{ houseName || '请选择房屋' }} {{ houseName || '请选择房屋' }}
<!-- <text class="switch" v-if="houseName">切换</text> --> <!-- <text class="switch" v-if="houseName">切换</text> -->
@@ -12,7 +14,9 @@
<!-- 维修项目 --> <!-- 维修项目 -->
<view class="form-item"> <view class="form-item">
<text class="label">维修项目</text> <view class="label">
<text class="required">*</text>维修项目
</view>
<view class="value" @click="goToSelectProject"> <view class="value" @click="goToSelectProject">
{{ projectName || '请选择维修项目' }} {{ projectName || '请选择维修项目' }}
<uni-icons type="arrowright" size="16"></uni-icons> <uni-icons type="arrowright" size="16"></uni-icons>
@@ -21,7 +25,9 @@
<!-- 标题 --> <!-- 标题 -->
<view class="form-item"> <view class="form-item">
<text class="label">标题</text> <view class="label">
<text class="required">*</text>标题
</view>
<uni-easyinput v-model="form.title" placeholder="请输入内容最多30个字符" :inputBorder="false" maxlength="30"></uni-easyinput> <uni-easyinput v-model="form.title" placeholder="请输入内容最多30个字符" :inputBorder="false" maxlength="30"></uni-easyinput>
</view> </view>
@@ -37,13 +43,17 @@
<!-- 手机号 --> <!-- 手机号 -->
<view class="form-item"> <view class="form-item">
<text class="label">手机号</text> <view class="label">
<text class="required">*</text>手机号
</view>
<uni-easyinput type="number" v-model="form.phone" placeholder="请输入手机号" :inputBorder="false" maxlength="11"></uni-easyinput> <uni-easyinput type="number" v-model="form.phone" placeholder="请输入手机号" :inputBorder="false" maxlength="11"></uni-easyinput>
</view> </view>
<!-- 预约时间 --> <!-- 预约时间 -->
<view class="form-item time-item" @click="openTimePopup"> <view class="form-item time-item" @click="openTimePopup">
<text class="label">预约时间</text> <view class="label">
<text class="required">*</text>预约时间
</view>
<text class="value time-value">{{ showTimeText || '请选择预约时间' }}</text> <text class="value time-value">{{ showTimeText || '请选择预约时间' }}</text>
</view> </view>
@@ -57,7 +67,7 @@
<image src="https://wuyeadmin.bugtc.com/images/imgs/delete.png" class="upload-delete" @click="deleteImage(index)"></image> <image src="https://wuyeadmin.bugtc.com/images/imgs/delete.png" class="upload-delete" @click="deleteImage(index)"></image>
</view> </view>
<!-- 上传按钮 --> <!-- 上传按钮 -->
<view class="upload-btn" @click="chooseImage" v-if="form.images.length < 3"> <view class="upload-btn" @click="chooseImage" v-if="form.images.length < 9">
<uni-icons type="plusempty" size="24"></uni-icons> <uni-icons type="plusempty" size="24"></uni-icons>
<!-- <text>上传照片</text> --> <!-- <text>上传照片</text> -->
</view> </view>
@@ -337,10 +347,10 @@ const goToSelectProject = () => {
// 选择图片 // 选择图片
const chooseImage = () => { const chooseImage = () => {
// 计算还能选几张 // 计算还能选几张
const remainCount = 3 - form.value.images.length; const remainCount = 9 - form.value.images.length;
if (remainCount <= 0) { if (remainCount <= 0) {
uni.showToast({ uni.showToast({
title: '最多只能上传3张图片', title: '最多只能上传9张图片',
icon: 'none' icon: 'none'
}) })
return; return;
@@ -458,11 +468,15 @@ const submitForm = async () => {
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
} }
.label { .label {
width: 140rpx; width: 180rpx;
font-size: 28rpx; font-size: 28rpx;
color: #333; color: #333;
line-height: 80rpx; line-height: 80rpx;
} }
.required {
color: red;
margin-right: 4rpx;
}
.value { .value {
flex: 1; flex: 1;

View File

@@ -2,7 +2,10 @@
<view class="form-container"> <view class="form-container">
<!-- 维修项目展示 --> <!-- 维修项目展示 -->
<view class="form-item"> <view class="form-item">
<text class="label">维修项目</text> <!-- <text class="label">维修项目</text> -->
<view class="label">
<text class="required">*</text>维修项目
</view>
<view class="value" @click="goBackSelect"> <view class="value" @click="goBackSelect">
<view> <view>
<text v-if="!repairProject">请选择项目</text> <text v-if="!repairProject">请选择项目</text>
@@ -14,7 +17,9 @@
<!-- 标题输入 --> <!-- 标题输入 -->
<view class="form-item"> <view class="form-item">
<text class="label">标题</text> <view class="label">
<text class="required">*</text>标题
</view>
<uni-easyinput v-model="form.title" placeholder="请输入内容最多30个字符" :inputBorder="false" maxlength="30"></uni-easyinput> <uni-easyinput v-model="form.title" placeholder="请输入内容最多30个字符" :inputBorder="false" maxlength="30"></uni-easyinput>
</view> </view>
@@ -29,7 +34,9 @@
<!-- 手机号 --> <!-- 手机号 -->
<view class="form-item"> <view class="form-item">
<text class="label">手机号</text> <view class="label">
<text class="required">*</text>手机号
</view>
<uni-easyinput type="number" v-model="form.phone" placeholder="请输入手机号" :inputBorder="false"></uni-easyinput> <uni-easyinput type="number" v-model="form.phone" placeholder="请输入手机号" :inputBorder="false"></uni-easyinput>
</view> </view>
@@ -44,7 +51,7 @@
<!-- <uni-icons type="close" size="16" @click="deleteImage(index)"></uni-icons> --> <!-- <uni-icons type="close" size="16" @click="deleteImage(index)"></uni-icons> -->
</view> </view>
<!-- 上传按钮 --> <!-- 上传按钮 -->
<view class="upload-btn" @click="chooseImage" v-if="form.images.length < 3"> <view class="upload-btn" @click="chooseImage" v-if="form.images.length < 9">
<uni-icons type="plusempty" size="24"></uni-icons> <uni-icons type="plusempty" size="24"></uni-icons>
<!-- <text>上传照片</text> --> <!-- <text>上传照片</text> -->
</view> </view>
@@ -122,10 +129,10 @@ const goBackSelect = () => {
// 选择图片 // 选择图片
const chooseImage = () => { const chooseImage = () => {
// 计算还能选几张 // 计算还能选几张
const remainCount = 3 - form.value.images.length; const remainCount = 9 - form.value.images.length;
if (remainCount <= 0) { if (remainCount <= 0) {
uni.showToast({ uni.showToast({
title: '最多只能上传3张图片', title: '最多只能上传9张图片',
icon: 'none' icon: 'none'
}) })
return; return;
@@ -256,11 +263,15 @@ const submitForm = async () => {
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
} }
.label { .label {
width: 140rpx; width: 180rpx;
font-size: 28rpx; font-size: 28rpx;
color: #333; color: #333;
line-height: 80rpx; line-height: 80rpx;
} }
.required {
color: red;
margin-right: 4rpx;
}
.value { .value {
flex: 1; flex: 1;

View File

@@ -58,6 +58,10 @@
</view> </view>
</view> </view>
</view> </view>
<view class="info-item">
<view class="info-label">预约时间</view>
<view class="info-value">{{repairInfo.orderDate}}</view>
</view>
</view> </view>
<!-- 联系物业按钮 --> <!-- 联系物业按钮 -->
@@ -81,6 +85,7 @@ const repairInfo = ref({
title: '', title: '',
description: '', description: '',
phone: '', phone: '',
orderDate:'',
time: '', time: '',
images: [] images: []
}) })
@@ -111,6 +116,7 @@ const mapData = (data) => {
title: data.item || '', title: data.item || '',
description: (data.problem || '').replace(/\\n/g, '\n'), description: (data.problem || '').replace(/\\n/g, '\n'),
phone: data.phone || '', phone: data.phone || '',
orderDate: data.orderDate || '',
time: data.createTime || '', time: data.createTime || '',
images images
} }

View File

@@ -1,9 +1,5 @@
<template> <template>
<view class="contentStyle"> <view class="contentStyle">
<view class="status-bar"></view>
<uni-nav-bar title="问卷调查" backgroundColor="transparent" :border="false" left-icon="left" @clickLeft="goBack">
</uni-nav-bar>
<scroll-view class="page" scroll-y="true"> <scroll-view class="page" scroll-y="true">
<view class="survey-title">{{ detailItem.title || '' }}</view> <view class="survey-title">{{ detailItem.title || '' }}</view>
<view class="survey-desc">{{ detailItem.description || '' }}</view> <view class="survey-desc">{{ detailItem.description || '' }}</view>
@@ -127,12 +123,13 @@ page {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100vh; height: 100vh;
background-color: #F9F9F9;
} }
.page { .page {
flex: 1; flex: 1;
overflow-y: auto; overflow-y: auto;
padding: 0px 40rpx; padding: 20px 40rpx;
box-sizing: border-box; box-sizing: border-box;
margin-bottom: 48rpx; margin-bottom: 48rpx;
} }
@@ -151,6 +148,8 @@ page {
line-height: 1.6; line-height: 1.6;
margin-bottom: 20rpx; margin-bottom: 20rpx;
text-align: justify; text-align: justify;
word-break: break-all;
word-wrap: break-word;
} }
.empty-tip { .empty-tip {
@@ -182,6 +181,8 @@ page {
color: #333; color: #333;
line-height: 1.5; line-height: 1.5;
padding-left: 30rpx; padding-left: 30rpx;
word-break: break-all;
word-wrap: break-word;
} }
.option-list { .option-list {

View File

@@ -482,8 +482,7 @@
{ {
"path": "questionnaireDetail", "path": "questionnaireDetail",
"style": { "style": {
"navigationBarTitleText": "", "navigationBarTitleText": "问卷详情"
"navigationStyle": "custom"
} }
}, { }, {
"path": "contactProperty", "path": "contactProperty",

View File

@@ -329,6 +329,8 @@
} }
const refreshAllData = async () => { const refreshAllData = async () => {
// 立即展示页面骨架,避免首屏长时间停留在渐变加载页;数据在后台逐步填充
pageReady.value = true
const token = uni.getStorageSync('token') || '' const token = uni.getStorageSync('token') || ''
dataLoaded.value = true dataLoaded.value = true
const needReload = uni.getStorageSync('needReloadUserInfo') const needReload = uni.getStorageSync('needReloadUserInfo')
@@ -352,7 +354,6 @@
getNoticeData() getNoticeData()
getNewActivityList() getNewActivityList()
getbannarData() getbannarData()
pageReady.value = true
refreshing.value = false refreshing.value = false
} }