优化内容+修复bug
This commit is contained in:
@@ -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",
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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(() => {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -482,8 +482,7 @@
|
|||||||
{
|
{
|
||||||
"path": "questionnaireDetail",
|
"path": "questionnaireDetail",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "",
|
"navigationBarTitleText": "问卷详情"
|
||||||
"navigationStyle": "custom"
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
"path": "contactProperty",
|
"path": "contactProperty",
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user