Merge branch 'master' of http://gitea.bugtc.com/zhouyanli/property-manager-side
This commit is contained in:
@@ -2,8 +2,8 @@
|
|||||||
"name" : "花开管家",
|
"name" : "花开管家",
|
||||||
"appid" : "__UNI__5F224F3",
|
"appid" : "__UNI__5F224F3",
|
||||||
"description" : "智慧社区管家端,专为小区物业管理人员打造,支持多小区灵活切换管理。集成账号密码、手机号密码双重登录模式,内置忘记密码找回功能,保障账号安全。涵盖消息通知、日常巡检、故障报修、一键开门、工单流转、投诉处理等核心办公功能,物业人员可在线完成巡检打卡、问题上报、工单派发跟进、投诉对接处理等日常工作,同时支持查看个人上报记录、巡检历史,便捷修改账号信息与登录密码。高效简化社区物业办公流程,提升小区服务与管理效率,打造便捷智能的社区管理服务平台。",
|
"description" : "智慧社区管家端,专为小区物业管理人员打造,支持多小区灵活切换管理。集成账号密码、手机号密码双重登录模式,内置忘记密码找回功能,保障账号安全。涵盖消息通知、日常巡检、故障报修、一键开门、工单流转、投诉处理等核心办公功能,物业人员可在线完成巡检打卡、问题上报、工单派发跟进、投诉对接处理等日常工作,同时支持查看个人上报记录、巡检历史,便捷修改账号信息与登录密码。高效简化社区物业办公流程,提升小区服务与管理效率,打造便捷智能的社区管理服务平台。",
|
||||||
"versionName" : "1.0.5",
|
"versionName" : "1.0.6",
|
||||||
"versionCode" : 105,
|
"versionCode" : 106,
|
||||||
"transformPx" : false,
|
"transformPx" : false,
|
||||||
"app-plus" : {
|
"app-plus" : {
|
||||||
"usingComponents" : true,
|
"usingComponents" : true,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<!-- 顶部导航栏 -->
|
<!-- 顶部导航栏 -->
|
||||||
<view class="page_padding">
|
<view class="page_padding">
|
||||||
<view class="inspection_record_box flex-1 flex flex-col">
|
<view class="inspection_record_box flex flex-col">
|
||||||
<navBar @clickLeft="navBack" title="巡检记录"></navBar>
|
<navBar @clickLeft="navBack" title="巡检记录"></navBar>
|
||||||
<TabsComponents
|
<TabsComponents
|
||||||
:activeValue="activeValue"
|
:activeValue="activeValue"
|
||||||
@@ -26,40 +26,39 @@
|
|||||||
</uni-datetime-picker>
|
</uni-datetime-picker>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view v-if="list.length > 0">
|
<scroll-view
|
||||||
<scroll-view
|
v-if="list.length > 0"
|
||||||
class="record_body record-list"
|
class="record_body record-list"
|
||||||
scroll-y
|
scroll-y
|
||||||
lower-threshold="160"
|
lower-threshold="160"
|
||||||
@scrolltolower="scrolltolower"
|
@scrolltolower="scrolltolower"
|
||||||
|
>
|
||||||
|
<view
|
||||||
|
class="record_list_item"
|
||||||
|
v-for="(ite, index) in list"
|
||||||
|
:key="index"
|
||||||
|
@tap="handleTap(ite)"
|
||||||
>
|
>
|
||||||
<view
|
<view class="title flex items-center">
|
||||||
class="record_list_item"
|
<view class="title_name"> {{ ite.taskName }} </view>
|
||||||
v-for="(ite, index) in list"
|
<view class="title_status" v-if="isComputed(ite.taskStatus)"> 已巡检 </view>
|
||||||
:key="index"
|
<view class="title_status noinspection" v-else> 未巡检 </view>
|
||||||
@tap="handleTap(ite)"
|
</view>
|
||||||
>
|
<view class="items" v-if="ite.points">
|
||||||
<view class="title flex items-center">
|
<view class="item" v-for="(itemname, itemindex) in ite.itemslist" :key="itemindex">
|
||||||
<view class="title_name"> {{ ite.taskName }} </view>
|
<text>{{ itemname }}</text>
|
||||||
<view class="title_status" v-if="isComputed(ite.taskStatus)"> 已巡检 </view>
|
|
||||||
<view class="title_status noinspection" v-else> 未巡检 </view>
|
|
||||||
</view>
|
|
||||||
<view class="items" v-if="ite.points">
|
|
||||||
<view class="item" v-for="(itemname, itemindex) in ite.itemslist" :key="itemindex">
|
|
||||||
<text>{{ itemname }}</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="time">
|
|
||||||
<text>巡检时间:</text>
|
|
||||||
<text>{{ ite.taskTime }}</text>
|
|
||||||
</view>
|
|
||||||
<view class="time user">
|
|
||||||
<text>巡检人:</text>
|
|
||||||
<text>{{ ite.inspectorName }}</text>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
<view class="time">
|
||||||
</view>
|
<text>巡检时间:</text>
|
||||||
|
<text>{{ ite.taskTime }}</text>
|
||||||
|
</view>
|
||||||
|
<view class="time user">
|
||||||
|
<text>巡检人:</text>
|
||||||
|
<text>{{ ite.inspectorName }}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
||||||
<view class="nodata" v-if="list.length <= 0">
|
<view class="nodata" v-if="list.length <= 0">
|
||||||
<text>暂无数据</text>
|
<text>暂无数据</text>
|
||||||
</view>
|
</view>
|
||||||
@@ -100,7 +99,7 @@ const activeValue = ref(2)
|
|||||||
// ---------------------------------------------------------------------
|
// ---------------------------------------------------------------------
|
||||||
const list = ref([])
|
const list = ref([])
|
||||||
const queryParmas = ref({
|
const queryParmas = ref({
|
||||||
date: '',
|
date: parseTime(new Date(), '{y}-{m}-{d}'),
|
||||||
status: 2,
|
status: 2,
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10
|
pageSize: 10
|
||||||
@@ -190,11 +189,6 @@ function handleChangeTabs(val: number) {
|
|||||||
}
|
}
|
||||||
// ---------------------------------------------------------------------
|
// ---------------------------------------------------------------------
|
||||||
|
|
||||||
function init() {
|
|
||||||
queryParmas.value.date = parseTime(new Date(), '{y}-{m}-{d}')
|
|
||||||
getlist()
|
|
||||||
}
|
|
||||||
|
|
||||||
onShow(() => {
|
onShow(() => {
|
||||||
hasMore.value = true
|
hasMore.value = true
|
||||||
resetList()
|
resetList()
|
||||||
@@ -203,9 +197,8 @@ function resetList() {
|
|||||||
list.value = []
|
list.value = []
|
||||||
queryParmas.value.status = 2
|
queryParmas.value.status = 2
|
||||||
queryParmas.value.pageSize = 10
|
queryParmas.value.pageSize = 10
|
||||||
queryParmas.value.pageSize = 10
|
|
||||||
hasMore.value = true
|
hasMore.value = true
|
||||||
init()
|
getlist()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 返回上一页
|
// 返回上一页
|
||||||
@@ -276,7 +269,6 @@ const navBack = () => {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|
||||||
.record_list_item {
|
.record_list_item {
|
||||||
margin-bottom: 20rpx;
|
margin-bottom: 20rpx;
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
|
|||||||
@@ -95,7 +95,7 @@
|
|||||||
<view class="submitbox" @tap="handleSubmit(ite)" v-if="!ite.complated">
|
<view class="submitbox" @tap="handleSubmit(ite)" v-if="!ite.complated">
|
||||||
<text>提交</text>
|
<text>提交</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="line" v-if="ind + 1 === baseFormData.length"> </view>
|
<view class="line" v-if="ind + 1 < item.points.length"> </view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
@@ -61,9 +61,7 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 内容 -->
|
<!-- 内容 -->
|
||||||
<view class="card-content">
|
<view class="card-content"> {{ record.problem }} </view>
|
||||||
{{ record.problem }}
|
|
||||||
</view>
|
|
||||||
<!-- 底部信息 -->
|
<!-- 底部信息 -->
|
||||||
<view class="card-footer">
|
<view class="card-footer">
|
||||||
<text class="create-time">{{ record.createTime }}</text>
|
<text class="create-time">{{ record.createTime }}</text>
|
||||||
@@ -82,7 +80,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, computed } from 'vue'
|
import { ref, computed } from 'vue'
|
||||||
import { onReady, onShow } from '@dcloudio/uni-app'
|
import { onReady, onShow, onLoad } from '@dcloudio/uni-app'
|
||||||
import TabsComponents from '@/components/tabs/tabs.vue'
|
import TabsComponents from '@/components/tabs/tabs.vue'
|
||||||
import NavBar from '@/components/navbar/navbar.vue'
|
import NavBar from '@/components/navbar/navbar.vue'
|
||||||
import { getUserTicketlist } from '@/api/ticket.js'
|
import { getUserTicketlist } from '@/api/ticket.js'
|
||||||
@@ -122,6 +120,17 @@ function scrolltolower() {
|
|||||||
queryParmas.value.pageNum += 1
|
queryParmas.value.pageNum += 1
|
||||||
getlist()
|
getlist()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onLoad(data => {
|
||||||
|
if (data.MyOrderNum === '0') {
|
||||||
|
activeStatus.value = 0
|
||||||
|
queryParmas.value.problemStatus = undefined
|
||||||
|
} else {
|
||||||
|
activeStatus.value = 1
|
||||||
|
queryParmas.value.problemStatus = 1
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
function getlist() {
|
function getlist() {
|
||||||
if (isLoading.value || !hasMore.value) return
|
if (isLoading.value || !hasMore.value) return
|
||||||
isLoading.value = true
|
isLoading.value = true
|
||||||
@@ -354,6 +363,9 @@ function handlePrivew(imgs) {
|
|||||||
font-size: 32rpx;
|
font-size: 32rpx;
|
||||||
color: #222222;
|
color: #222222;
|
||||||
line-height: 40rpx;
|
line-height: 40rpx;
|
||||||
|
max-width: 500rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 状态标签 */
|
/* 状态标签 */
|
||||||
@@ -385,6 +397,7 @@ function handlePrivew(imgs) {
|
|||||||
/* 类型标签组 */
|
/* 类型标签组 */
|
||||||
.tag-group {
|
.tag-group {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
margin-bottom: 20rpx;
|
margin-bottom: 20rpx;
|
||||||
}
|
}
|
||||||
.tag-group > .tag-item:not(:last-child) {
|
.tag-group > .tag-item:not(:last-child) {
|
||||||
@@ -392,7 +405,9 @@ function handlePrivew(imgs) {
|
|||||||
}
|
}
|
||||||
.tag-item {
|
.tag-item {
|
||||||
padding: 0 10rpx;
|
padding: 0 10rpx;
|
||||||
height: 42rpx;
|
margin: 5rpx;
|
||||||
|
min-height: 42rpx;
|
||||||
|
text-align: left;
|
||||||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||||||
border: 1rpx solid #999999;
|
border: 1rpx solid #999999;
|
||||||
|
|
||||||
@@ -400,7 +415,6 @@ function handlePrivew(imgs) {
|
|||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
color: #999999;
|
color: #999999;
|
||||||
line-height: 42rpx;
|
line-height: 42rpx;
|
||||||
text-align: center;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 内容 */
|
/* 内容 */
|
||||||
@@ -411,6 +425,7 @@ function handlePrivew(imgs) {
|
|||||||
color: #666666;
|
color: #666666;
|
||||||
line-height: 40rpx;
|
line-height: 40rpx;
|
||||||
letter-spacing: 2rpx;
|
letter-spacing: 2rpx;
|
||||||
|
word-wrap: break-word;
|
||||||
}
|
}
|
||||||
/* 图片 */
|
/* 图片 */
|
||||||
.card-image {
|
.card-image {
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ const goToTicketHall = () => {
|
|||||||
// 我的工单
|
// 我的工单
|
||||||
const goToMyTicket = () => {
|
const goToMyTicket = () => {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: '/pageSubPack/ticket/myticket'
|
url: '/pageSubPack/ticket/myticket?MyOrderNum=' + MyOrderNum.value
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// 跳转到 今日巡检
|
// 跳转到 今日巡检
|
||||||
@@ -373,10 +373,13 @@ function getbannarData(forceRefresh = false) {
|
|||||||
bannerList.value = newData
|
bannerList.value = newData
|
||||||
}
|
}
|
||||||
// 写入缓存
|
// 写入缓存
|
||||||
uni.setStorageSync(BANNER_CACHE_KEY, JSON.stringify({
|
uni.setStorageSync(
|
||||||
data: newData,
|
BANNER_CACHE_KEY,
|
||||||
time: Date.now()
|
JSON.stringify({
|
||||||
}))
|
data: newData,
|
||||||
|
time: Date.now()
|
||||||
|
})
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
bannerList.value = []
|
bannerList.value = []
|
||||||
}
|
}
|
||||||
@@ -414,9 +417,9 @@ onShow(() => {
|
|||||||
if (!hasInit.value) {
|
if (!hasInit.value) {
|
||||||
// 首次加载:onLoad 已触发过核心数据请求,这里只补 onLoad 没调的和需要每次都刷新的
|
// 首次加载:onLoad 已触发过核心数据请求,这里只补 onLoad 没调的和需要每次都刷新的
|
||||||
hasInit.value = true
|
hasInit.value = true
|
||||||
getbannarData() // onLoad 没调 banner
|
getbannarData() // onLoad 没调 banner
|
||||||
getMyOrderNum() // onLoad 没调工单数
|
getMyOrderNum() // onLoad 没调工单数
|
||||||
permStore.initPerm() // 刷新权限缓存
|
permStore.initPerm() // 刷新权限缓存
|
||||||
// currentVillageData 和 getInspectionData 已在 onLoad 中调用,不再重复
|
// currentVillageData 和 getInspectionData 已在 onLoad 中调用,不再重复
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user