Commit d623b5f5 authored by 秦威威's avatar 秦威威

9/29

parent db0395ab
...@@ -6,7 +6,6 @@ import config from "config" ...@@ -6,7 +6,6 @@ import config from "config"
* @param {Object} params * @param {Object} params
*/ */
function request(params) { function request(params) {
//console.log(params)
const token = uni.getStorageSync('token') const token = uni.getStorageSync('token')
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
try { try {
...@@ -18,6 +17,12 @@ function request(params) { ...@@ -18,6 +17,12 @@ function request(params) {
title: params.loadingTip title: params.loadingTip
}) })
} }
let header = {
"authorization": token || '',
};
if (params.contentType == 1) {
header["Content-Type"] = "application/x-www-form-urlencoded";
}
uni.request({ uni.request({
...params, ...params,
header: { header: {
......
<template> <template>
<view> <view>
<view class="mt-32 flex-between-center"> <view class="flex-between-center">
<view @click="onOpenStartTime" class="select-time"> <view @click="onOpenStartTime" class="select-time">
<text v-if="!startTimeValue">选择开始时间</text> <text v-if="!startTimeValue">选择开始时间</text>
<text v-else>{{ startTimeValue }}</text> <text v-else style="color: black;">{{ startTimeValue }}</text>
</view> </view>
<text class="fs-30" style="color: #999999;">-</text> <text class="fs-30" style="color: #999999;">-</text>
<view @click="onOpenEndTime" class="select-time"> <view @click="onOpenEndTime" class="select-time">
<text v-if="!endTimeValue">选择结束时间</text> <text v-if="!endTimeValue">选择结束时间</text>
<text v-else>{{ endTimeValue }}</text> <text v-else style="color: black;">{{ endTimeValue }}</text>
</view> </view>
</view> </view>
<!-- 选择开始时间 --> <!-- 选择开始时间 -->
<u-datetime-picker :show="startTimeShow" v-model="startTime" title="开始时间" mode="datetime" :formatter="formatter" <u-datetime-picker :show="startTimeShow" v-model="startTime" title="开始时间" mode="date" :formatter="formatter"
:closeOnClickOverlay="true" @confirm="onConfirmStartTime" :closeOnClickOverlay="true" @confirm="onConfirmStartTime" @close="startTimeShow = false"
@close="startTimeShow = false"></u-datetime-picker> @cancel="startTimeShow = false"></u-datetime-picker>
<!-- 选择结束时间 --> <!-- 选择结束时间 -->
<u-datetime-picker :show="endTimeShow" v-model="endTime" title="结束时间" mode="datetime" :formatter="formatter" <u-datetime-picker :show="endTimeShow" v-model="endTime" title="结束时间" mode="date" :formatter="formatter"
:closeOnClickOverlay="true" @confirm="onConfirmEndTime" @close="endTimeShow = false"></u-datetime-picker> :closeOnClickOverlay="true" @confirm="onConfirmEndTime" @close="endTimeShow = false"
@cancel="endTimeShow = false"></u-datetime-picker>
</view> </view>
</template> </template>
...@@ -31,7 +32,9 @@ ...@@ -31,7 +32,9 @@
startTime: new Date().getTime(), startTime: new Date().getTime(),
endTimeShow: false, endTimeShow: false,
endTime: new Date().getTime(), endTime: new Date().getTime(),
endTimeValue: '' endTimeValue: '',
startTimeNumber: 0,
endTimeNumber: 0,
} }
}, },
methods: { methods: {
...@@ -57,17 +60,28 @@ ...@@ -57,17 +60,28 @@
this.startTimeShow = true this.startTimeShow = true
}, },
onOpenEndTime() { onOpenEndTime() {
if (this.startTimeValue == '') {
this.$wskj.toast('请先选择开始时间')
return
}
this.endTimeShow = true this.endTimeShow = true
}, },
onConfirmStartTime(e) { onConfirmStartTime(e) {
// console.log(e) console.log(e)
this.startTimeNumber = e.value
this.startTimeShow = false this.startTimeShow = false
this.startTimeValue = this.$wskj.timeFormat(e.value, 'yyyy-mm-dd hh:MM:ss') this.startTimeValue = this.$wskj.timeFormat(e.value, 'yyyy-mm-dd')
this.$emit('onConfirmStartTime', this.startTimeValue) this.$emit('onConfirmStartTime', this.startTimeValue)
}, },
onConfirmEndTime(e) { onConfirmEndTime(e) {
console.log(e)
this.endTimeNumber = e.value
if (this.startTimeNumber > this.endTimeNumber) {
this.$wskj.toast('结束时间必须大于开始时间')
return
}
this.endTimeShow = false this.endTimeShow = false
this.endTimeValue = this.$wskj.timeFormat(e.value, 'yyyy-mm-dd hh:MM:ss') this.endTimeValue = this.$wskj.timeFormat(e.value, 'yyyy-mm-dd')
this.$emit('onConfirmEndTime', this.endTimeValue) this.$emit('onConfirmEndTime', this.endTimeValue)
}, },
} }
...@@ -76,11 +90,10 @@ ...@@ -76,11 +90,10 @@
<style scoped> <style scoped>
.select-time { .select-time {
width: 322rpx; width: 300rpx;
height: 84rpx; height: 84rpx;
text-align: center; text-align: center;
line-height: 84rpx; line-height: 84rpx;
background: #f7f7f7;
border-radius: 5px; border-radius: 5px;
font-size: 30rpx; font-size: 30rpx;
color: #999999; color: #999999;
......
export default { export default {
domain: 'http://192.168.0.160:8086', // 项目域名 //domain: 'http://192.168.0.162:8086', // 项目域名
domain: 'https://admin.llwygl.com/prod-api', // 项目域名
cdnUrl: '', // 云储蓄静态资源图片域名 cdnUrl: '', // 云储蓄静态资源图片域名
amapKey: '', // 高德web服务key amapKey: '', // 高德web服务key
socketUrl: '' // websocket地址 socketUrl: '' // websocket地址
......
{ {
"name": "basis-template", "name": "物业",
"appid": "__UNI__7B80478", "appid": "__UNI__7B80478",
"description": "", "description": "",
"versionName": "1.0.0", "versionName": "1.0.0",
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<image class="w-240 h-240" src="@/static/icon_logo.png"></image> <image class="w-240 h-240" src="@/static/icon_logo.png"></image>
</view> </view>
<view class="mb-100 mlr-50" style="margin-top: 300rpx;"> <view class="mb-100 mlr-50" style="margin-top: 300rpx;">
<button v-if="agreement" class="fullscreen-btn" style="border-radius: 100rpx;" <button v-if="agreement" class="fullscreen-btn" style="border-radius: 100rpx;"
open-type="getPhoneNumber" @getphonenumber="onGetphonenumber"> open-type="getPhoneNumber" @getphonenumber="onGetphonenumber">
...@@ -24,7 +25,7 @@ ...@@ -24,7 +25,7 @@
@click="onGetXieyi(2)" style="color: #4083F0;">《隐私政策》</text></text> @click="onGetXieyi(2)" style="color: #4083F0;">《隐私政策》</text></text>
</view> </view>
</view> </view>
<text v-if="ishide" class="mt-100" style="color: #4083F0;">仅限内部员工可使用</text>
</view> </view>
</template> </template>
...@@ -35,6 +36,7 @@ ...@@ -35,6 +36,7 @@
return { return {
agreement: false, agreement: false,
code: '', code: '',
ishide: false,
}; };
}, },
onLoad(options) { onLoad(options) {
...@@ -45,7 +47,11 @@ ...@@ -45,7 +47,11 @@
}, },
onShow() { onShow() {
// 获取当前时间的时间戳
let currentTime = new Date().getTime();
//monthIndex 是从 0 开始计数的
let time = new Date(2025, 7, 19, 23, 59, 59, 999).getTime();
this.ishide = currentTime < time ? true : false
}, },
methods: { methods: {
onGetphonenumber(e) { onGetphonenumber(e) {
......
...@@ -26,10 +26,42 @@ ...@@ -26,10 +26,42 @@
</view> </view>
<view class="flex-column"> <view class="flex-column">
<image @click="onClick(0)" class="item" src="/static/icon_bmfw_1.png"></image> <view class="banner">
<image @click="onClick(1)" class="item" src="/static/icon_bmfw_2.png"></image> <u-swiper :list="bannerList1" radius="6" indicator indicatorMode="line" height="120"
<image @click="onClick(2)" class="item" src="/static/icon_bmfw_3.png"></image> keyName="image"></u-swiper>
<image @click="onClick(3)" class="item" src="/static/icon_bmfw_4.png"></image> <view class="banner_text">
<text class="t1">洗衣服务</text>
<text class="t2">{{bannerList1[0].title}}</text>
<text class="t3">预约热线:{{bannerList1[0].bookPhone}}</text>
</view>
</view>
<view class="banner">
<u-swiper :list="bannerList2" radius="6" indicator indicatorMode="line" height="120"
keyName="image"></u-swiper>
<view class="banner_text">
<text class="t1">清洁服务</text>
<text class="t2">{{bannerList2[0].title}}</text>
<text class="t3">预约热线:4{{bannerList2[0].bookPhone}}</text>
</view>
</view>
<view class="banner">
<u-swiper :list="bannerList3" radius="6" indicator indicatorMode="line" height="120"
keyName="image"></u-swiper>
<view class="banner_text">
<text class="t1">超市服务</text>
<text class="t2">{{bannerList3[0].title}}</text>
<text class="t3">预约热线:{{bannerList3[0].bookPhone}}</text>
</view>
</view>
<view class="banner">
<u-swiper :list="bannerList4" radius="6" indicator indicatorMode="line" height="120"
keyName="image"></u-swiper>
<view class="banner_text">
<text class="t1">送水服务</text>
<text class="t2">{{bannerList4[0].title}}</text>
<text class="t3">预约热线:{{bannerList4[0].bookPhone}}</text>
</view>
</view>
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
...@@ -67,15 +99,76 @@ ...@@ -67,15 +99,76 @@
selectIndex: -1, selectIndex: -1,
listXq: [], listXq: [],
communityId: '', //小区ID communityId: '', //小区ID
bannerList1: [],
bannerList2: [],
bannerList3: [],
bannerList4: [],
}; };
}, },
onLoad(options) { onLoad(options) {
this.getUserInfo() this.getBannerList();
this.getXqList() this.getUserInfo();
this.getHouseList() this.getXqList();
this.getHouseList();
}, },
methods: { methods: {
//轮播图列表
getBannerList() {
const than = this;
const params = {
url: '/api/converienceService/list',
method: 'GET',
data: {}
}
this.$request(params).then(res => {
than.bannerList = [];
res.rows.forEach(function(item, index) {
if (item.serviceType == 1) {
let images = item.serviceBanner.split(',');
for (var i = 0; i < images.length; i++) {
let data = {
image: images[i],
title: item.description,
bookPhone: item.bookPhone,
}
than.bannerList1.push(data)
}
} else if (item.serviceType == 2) {
let images = item.serviceBanner.split(',');
for (var i = 0; i < images.length; i++) {
let data = {
image: images[i],
title: item.description,
bookPhone: item.bookPhone,
}
than.bannerList2.push(data)
}
} else if (item.serviceType == 3) {
let images = item.serviceBanner.split(',');
for (var i = 0; i < images.length; i++) {
let data = {
image: images[i],
title: item.description,
bookPhone: item.bookPhone,
}
than.bannerList3.push(data)
}
} else if (item.serviceType == 4) {
let images = item.serviceBanner.split(',');
for (var i = 0; i < images.length; i++) {
let data = {
image: images[i],
title: item.description,
bookPhone: item.bookPhone,
}
than.bannerList4.push(data)
}
}
});
})
},
onXz() { onXz() {
console.log(this.userInfo.userPermission) console.log(this.userInfo.userPermission)
//非业主 弹出选择小区框 //非业主 弹出选择小区框
...@@ -196,4 +289,33 @@ ...@@ -196,4 +289,33 @@
height: 200rpx; height: 200rpx;
margin-top: 20rpx; margin-top: 20rpx;
} }
.banner {
position: relative;
margin-top: 20rpx;
}
.banner_text {
position: absolute;
top: 20rpx;
left: 20rpx;
right: 200rpx;
bottom: 0;
display: flex;
flex-direction: column;
color: white;
text-align: left;
font-size: 26rpx;
}
.t1 {
font-size: 30rpx;
font-weight: 700;
}
.t2 {
margin: 10rpx 0;
}
.t3 {}
</style> </style>
\ No newline at end of file
...@@ -97,16 +97,27 @@ ...@@ -97,16 +97,27 @@
}) })
}, },
yg_login() {
const params = {
url: '/api/login/accountLogin',
method: 'GET',
}
this.$request(params).then(res => {
//uni.setStorageSync('userInfo_yg', res.data)
this.$wskj.to("/pagesMine/pages/ygzy")
})
},
onClick(index) { onClick(index) {
if (index == 3 && parseInt(this.userInfo.userPermission) > 1) { if (index == 3 && parseInt(this.userInfo.userPermission) > 1) {
return return
} }
if (index == 2) { //员工入口 if (index == 2) { //员工入口
this.$wskj.to("/pagesMine/pages/yg_login") this.yg_login()
// if (this.$wskj.isNull(uni.getStorageSync('userInfo_yg'))) { //维修人员类型(1保洁 2保安 3维修人员)
// this.$wskj.to("/pagesMine/pages/yg_login") // if (this.userInfo.accountType != null) {
// } else {
// this.$wskj.to("/pagesMine/pages/ygzy") // this.$wskj.to("/pagesMine/pages/ygzy")
// } else {
// this.$wskj.showModal('提示', '只有物业员工可使用该功能', false, null);
// } // }
return return
} }
......
...@@ -46,9 +46,9 @@ ...@@ -46,9 +46,9 @@
<view class="flex vh-center h-60 mt-20 fs-24"> <view class="flex vh-center h-60 mt-20 fs-24">
<text style="flex: 1;color: #000;">{{item.repairsTime}}</text> <text style="flex: 1;color: #000;">{{item.repairsTime}}</text>
<text @tap.stop="onCz('关闭报修',index)" v-if="item.state==1" <text @tap.stop="onCz('关闭报修',index)" v-if="item.state==1"
style="color: #23BBEE;">关闭报修</text> style="color: #23BBEE;">{{item.type==1?'关闭报修':'关闭报事'}}</text>
<text @tap.stop="onCz('去支付',index)" v-if="item.state==2" style="color: #EEA616;">去支付</text> <text @tap.stop="onCz('去支付',index)" v-if="item.state==2" style="color: #EEA616;">去支付</text>
<text style="color: #27CC81;margin-left: 30rpx;">报修详情</text> <text style="color: #27CC81;margin-left: 30rpx;">{{item.type==1?'报修详情':'报事详情'}}</text>
</view> </view>
</view> </view>
</view> </view>
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
</view> </view>
<view class="flex-column-center fs-32 fw-700 mt-30"> <view class="flex-column-center fs-32 fw-700 mt-30">
<image class="w-10 h-40 mr-15" style="background-color: #1FCA7C;"></image> <image class="w-10 h-40 mr-15" style="background-color: #1FCA7C;"></image>
<text>报修信息</text> <text>{{type==1?'报修信息':'报事信息'}}</text>
</view> </view>
<view class="flex-column br-12 fs-28 mt-30 pad-30" <view class="flex-column br-12 fs-28 mt-30 pad-30"
style="box-shadow: 0px 0px 15px 1px rgba(142,142,142,0.16);"> style="box-shadow: 0px 0px 15px 1px rgba(142,142,142,0.16);">
......
<template> <template>
<view class='center'> <view class='center'>
<view style="background: linear-gradient( 180deg, #1FCA7C 0%, #F2F2F2 100%);"> <view style="background: linear-gradient( 180deg, #1FCA7C 0%, #F2F2F2 100%);">
<u-navbar :autoBack="true" title="报修详情" placeholder="true" bgColor="transparent" leftIconColor="#FFF" <u-navbar :autoBack="true" :title="data.type==1?'报修详情':'报事详情'" placeholder="true" bgColor="transparent"
:title-style="{color: '#FFF'}"> leftIconColor="#FFF" :title-style="{color: '#FFF'}">
</u-navbar> </u-navbar>
<view class="h-300 flex flex-row-between v-center ml-60 mr-35"> <view class="h-300 flex flex-row-between v-center ml-60 mr-35">
<view class="flex-column" style="color: #1BB871;"> <view class="flex-column" style="color: #1BB871;">
<text class="fs-52">今日报修</text> <text class="fs-52">今日{{data.type==1?'报修':'报事'}}</text>
<text class="fs-30">报修详情我知道</text> <text class="fs-30">{{data.type==1?'报修详情我知道':'报事详情我知道'}}</text>
</view> </view>
<image class="h-225 w-225" src="/pagesMain/static/icon_bxxq.png"></image> <image class="h-225 w-225" src="/pagesMain/static/icon_bxxq.png"></image>
</view> </view>
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
</view> </view>
<view class="flex-column-center fs-32 fw-700 mt-30"> <view class="flex-column-center fs-32 fw-700 mt-30">
<image class="w-10 h-40 mr-15" style="background-color: #1FCA7C;"></image> <image class="w-10 h-40 mr-15" style="background-color: #1FCA7C;"></image>
<text>报修信息</text> <text>{{data.type==1?'报修信息':'报事信息'}}</text>
</view> </view>
<view class="flex-column br-12 fs-28 mtb-30 pad-30" style="background: #EBF5F0;"> <view class="flex-column br-12 fs-28 mtb-30 pad-30" style="background: #EBF5F0;">
<text style="text-align: left;">{{data.repairsDescription}}</text> <text style="text-align: left;">{{data.repairsDescription}}</text>
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
</view> </view>
</scroll-view> </scroll-view>
<view class="flex mt-20 h-40 lh-40"> <view class="flex mt-20 h-40 lh-40">
<text class="fw-700 fs-28">报修时间:</text> <text class="fw-700 fs-28">{{data.type==1?'报修':'报事'}}时间:</text>
<text class="fs-24 ml-10">{{data.repairsTime}}</text> <text class="fs-24 ml-10">{{data.repairsTime}}</text>
<text class="fs-24 ml-10" style="flex: 1;"></text> <text class="fs-24 ml-10" style="flex: 1;"></text>
<!-- <text @click="onCz('关闭报修')" v-if="data.state==1" class="fs-24 mr-10" style="color: #23BBEE;"> <!-- <text @click="onCz('关闭报修')" v-if="data.state==1" class="fs-24 mr-10" style="color: #23BBEE;">
...@@ -89,7 +89,7 @@ ...@@ -89,7 +89,7 @@
去支付 去支付
</view> </view>
<view @click="onCz('关闭报修')" class="full-btn" style="color: #FF682D;" v-if="data.state==1"> <view @click="onCz('关闭报修')" class="full-btn" style="color: #FF682D;" v-if="data.state==1">
取消报修 {{data.type==1?'关闭报修':'关闭报事'}}
</view> </view>
</view> </view>
</view> </view>
......
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
<text class="fs-28 mt-30" style="text-align: left;padding-left: 30rpx;">车位号</text> <text class="fs-28 mt-30" style="text-align: left;padding-left: 30rpx;">车位号</text>
<view class="flex-row-between mar-30 br-4 pad-25" style="background: #F2F2F2;" @click="openCar"> <view class="flex-row-between mar-30 br-4 pad-25" style="background: #F2F2F2;" @click="openCar">
<text>{{carNumber==''?"请选择":carNumber}}</text> <text>{{carNumber==''?"请选择":carNumber}}</text>
<image class="h-30 w-30" src="/static/icon_xjt.png"></image>
</view> </view>
<text class="fs-28 mt-30" style="text-align: left;padding-left: 30rpx;">租赁时间</text> <text class="fs-28 mt-30" style="text-align: left;padding-left: 30rpx;">租赁时间</text>
<view class="flex-row-between mar-30 br-4 pad-25" style="background: #F2F2F2;" @click="open"> <view class="flex-row-between mar-30 br-4 pad-25" style="background: #F2F2F2;" @click="open">
...@@ -67,7 +66,7 @@ ...@@ -67,7 +66,7 @@
}, },
openCar() { openCar() {
this.carShow = true //this.carShow = true
}, },
closeCar() { closeCar() {
this.carShow = false this.carShow = false
......
...@@ -31,20 +31,20 @@ ...@@ -31,20 +31,20 @@
<view class="flex"> <view class="flex">
<view @click="onTabClick(index)" class="h-50 flex-column flex-between-center fs-28 pad-30" <view @click="onTabClick(index)" class="h-50 flex-column flex-between-center fs-28 pad-30"
style="flex: 1;" :style="{ color: index==indexTab?'#333333':'#999999'}" style="flex: 1;" :style="{ color: index==indexTab?'#333333':'#999999'}"
v-for="(item, index) in 3" :key="index"> v-for="(item, index) in 2" :key="index">
<text>{{index==0?"费用预存":index==1?"待缴查看":index==2?"缴费记录":""}}</text> <text>{{index==0?"费用预存":index==1?"缴费记录":""}}</text>
<view v-if="index==indexTab" style="background: #27CC81;height: 1rpx;width: 77rpx;"> <view v-if="index==indexTab" style="background: #27CC81;height: 1rpx;width: 77rpx;">
</view> </view>
<view v-else style="background: #FFFFFF;height: 1rpx;width: 77rpx;"> <view v-else style="background: #FFFFFF;height: 1rpx;width: 77rpx;">
</view> </view>
</view> </view>
</view> </view>
<text v-if="indexTab==1" class="fs-30 fw-700 ">未缴金额\n¥{{money}}</text> <!-- <text v-if="indexTab==1" class="fs-30 fw-700 ">未缴金额\n¥{{money}}</text> -->
</view> </view>
</view> </view>
<view class="overflow-y" style="background: white;"> <view class="overflow-y" style="background: white;">
<scroll-view scroll-y style="height:100%;"> <scroll-view scroll-y style="height:100%;">
<view v-if="indexTab==1&&djList.length!=0" v-for="(item, index) in djList" :key="index" <!-- <view v-if="indexTab==1&&djList.length!=0" v-for="(item, index) in djList" :key="index"
@click="onClick(index)"> @click="onClick(index)">
<view class="flex-column fs-24 mar-20 pb-20" style="border-bottom: 1rpx solid #E9E9E9;"> <view class="flex-column fs-24 mar-20 pb-20" style="border-bottom: 1rpx solid #E9E9E9;">
<view class="flex v-center fs-28"> <view class="flex v-center fs-28">
...@@ -63,8 +63,8 @@ ...@@ -63,8 +63,8 @@
</view> </view>
<view v-if="indexTab==1&&djList.length==0" style="padding-top: 100rpx;"> <view v-if="indexTab==1&&djList.length==0" style="padding-top: 100rpx;">
<u-empty mode="data"></u-empty> <u-empty mode="data"></u-empty>
</view> </view> -->
<view v-if="indexTab==2&&jfjlList.length==0" v-for="(item, index) in jfjlList" :key="index" <view v-if="indexTab==1&&jfjlList.length==0" v-for="(item, index) in jfjlList" :key="index"
@click="onClick(index)"> @click="onClick(index)">
<view class="flex-column fs-24 mb-20" style="text-align: left;"> <view class="flex-column fs-24 mb-20" style="text-align: left;">
<text class="fs-28 h-80 lh-80 plr-25" <text class="fs-28 h-80 lh-80 plr-25"
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
<text class="plr-25" style="color: #999999;">{{item.updateTime.slice(5)}}</text> <text class="plr-25" style="color: #999999;">{{item.updateTime.slice(5)}}</text>
</view> </view>
</view> </view>
<view v-if="indexTab==2&&jfjlList.length==0" style="padding-top: 100rpx;"> <view v-if="indexTab==1&&jfjlList.length==0" style="padding-top: 100rpx;">
<u-empty mode="data"></u-empty> <u-empty mode="data"></u-empty>
</view> </view>
</scroll-view> </scroll-view>
...@@ -110,7 +110,7 @@ ...@@ -110,7 +110,7 @@
onLoad(options) { onLoad(options) {
this.type = options.type this.type = options.type
this.userinfo = uni.getStorageSync("userInfo") this.userinfo = uni.getStorageSync("userInfo")
this.getListCar() //this.getListCar()
this.getJfjlList() this.getJfjlList()
}, },
methods: { methods: {
...@@ -120,11 +120,11 @@ ...@@ -120,11 +120,11 @@
return return
} }
this.indexTab = index this.indexTab = index
// if (index == 1) {
// this.getDjList()
// return
// }
if (index == 1) { if (index == 1) {
this.getDjList()
return
}
if (index == 2) {
this.getJfjlList() this.getJfjlList()
return return
} }
......
...@@ -12,9 +12,9 @@ ...@@ -12,9 +12,9 @@
<text>{{userInfo.sqm}}</text> <text>{{userInfo.sqm}}</text>
</view> </view>
<text class="fs-28 mt-30" style="text-align: left;padding-left: 30rpx;">缴费时长</text> <text class="fs-28 mt-30" style="text-align: left;padding-left: 30rpx;">缴费时长</text>
<view class="flex-row-between mar-30 br-4 pad-25" style="background: #F2F2F2;" @click="open"> <view class="flex-center-center mar-30 br-4" style="background: #F2F2F2;">
<text>{{monthsNumber==''?"请选择":monthsNumber}}</text> <dateTimeQuantum @onConfirmStartTime="onConfirmStartTime" @onConfirmEndTime="onConfirmEndTime">
<image class="h-30 w-30" src="/static/icon_xjt.png"></image> </dateTimeQuantum>
</view> </view>
<text class="fs-28 mt-30" style="text-align: left;padding-left: 30rpx;">缴费金额</text> <text class="fs-28 mt-30" style="text-align: left;padding-left: 30rpx;">缴费金额</text>
<view class="flex-row-between mar-30 br-4 pad-25" style="background: #F2F2F2;"> <view class="flex-row-between mar-30 br-4 pad-25" style="background: #F2F2F2;">
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
</template> </template>
<script> <script>
import dateTimeQuantum from "@/components/dateTimeQuantum"
export default { export default {
data() { data() {
return { return {
...@@ -41,6 +42,9 @@ ...@@ -41,6 +42,9 @@
monthsNumber: '', monthsNumber: '',
userInfo: '', userInfo: '',
money: 0, money: 0,
startTime: '',
endTime: '',
dayNumber: 0,
}; };
}, },
onLoad(options) { onLoad(options) {
...@@ -48,7 +52,37 @@ ...@@ -48,7 +52,37 @@
this.getUserInfo() this.getUserInfo()
}, },
components: {
dateTimeQuantum
},
methods: { methods: {
// 计算日期差值
calculateDateDifference(startDate, endDate) {
// 将日期字符串转为 Date 对象
let start = new Date(startDate);
let end = new Date(endDate);
// 计算时间差(毫秒)
let timeDifference = end - start;
// 将毫秒差值转换为天数
let daysDifference = timeDifference / (1000 * 3600 * 24);
return daysDifference;
},
onConfirmStartTime(e) {
this.startTime = e
console.log(e)
},
onConfirmEndTime(e) {
this.endTime = e
console.log(e)
let dayNumber = this.calculateDateDifference(this.startTime, this.endTime)
this.money = parseFloat(dayNumber) * parseFloat(this.$wskj.isNull(this.userInfo.dayMoney) ? 0.01 : this
.userInfo.dayMoney);
this.money = this.money.toFixed(2);
this.dayNumber = dayNumber;
console.log(this.money)
},
open() { open() {
this.show = true this.show = true
}, },
...@@ -63,8 +97,12 @@ ...@@ -63,8 +97,12 @@
console.log(this.money) console.log(this.money)
}, },
onSubmit() { onSubmit() {
if (this.$wskj.isNull(this.money)) { if (this.$wskj.isNull(this.startTime)) {
this.$wskj.toast('请选择缴费时长') this.$wskj.toast('请选择开始时间')
return
}
if (this.$wskj.isNull(this.endTime)) {
this.$wskj.toast('请选择结束时间')
return return
} }
this.onCjdd() this.onCjdd()
...@@ -77,8 +115,6 @@ ...@@ -77,8 +115,6 @@
} }
this.$request(params).then(res => { this.$request(params).then(res => {
this.userInfo = res.data this.userInfo = res.data
//uni.setStorageSync('userInfo', res.data)
}) })
}, },
onCjdd() { onCjdd() {
...@@ -88,7 +124,9 @@ ...@@ -88,7 +124,9 @@
data: { data: {
money: this.money, money: this.money,
type: 3, //类型(1电费 2水费 3物业费 4车位管理费 5车位出租费 6储藏室出租 7其他费用) type: 3, //类型(1电费 2水费 3物业费 4车位管理费 5车位出租费 6储藏室出租 7其他费用)
duration: this.monthsNumber.replace('个月', '') //缴费时长(月) duration: this.dayNumber, //缴费时长(日)
startTime: this.startTime,
endTime: this.endTime
} }
} }
this.$request(params).then(res => { this.$request(params).then(res => {
......
...@@ -10,20 +10,20 @@ ...@@ -10,20 +10,20 @@
<view class="flex"> <view class="flex">
<view @click="onTabClick(index)" class="h-50 flex-column flex-between-center fs-28 pad-30" <view @click="onTabClick(index)" class="h-50 flex-column flex-between-center fs-28 pad-30"
style="flex: 1;" :style="{ color: index==indexTab?'#333333':'#999999'}" style="flex: 1;" :style="{ color: index==indexTab?'#333333':'#999999'}"
v-for="(item, index) in 3" :key="index"> v-for="(item, index) in 2" :key="index">
<text>{{index==0?"费用预存":index==1?"待缴查看":index==2?"缴费记录":""}}</text> <text>{{index==0?"费用预存":index==1?"缴费记录":""}}</text>
<view v-if="index==indexTab" style="background: #27CC81;height: 1rpx;width: 77rpx;"> <view v-if="index==indexTab" style="background: #27CC81;height: 1rpx;width: 77rpx;">
</view> </view>
<view v-else style="background: #FFFFFF;height: 1rpx;width: 77rpx;"> <view v-else style="background: #FFFFFF;height: 1rpx;width: 77rpx;">
</view> </view>
</view> </view>
</view> </view>
<text v-if="indexTab==1" class="fs-30 fw-700 ">未缴金额\n¥{{money}}</text> <!-- <text v-if="indexTab==1" class="fs-30 fw-700 ">未缴金额\n¥{{money}}</text> -->
</view> </view>
</view> </view>
<view class="overflow-y" style="background: white;"> <view class="overflow-y" style="background: white;">
<scroll-view scroll-y style="height:100%;"> <scroll-view scroll-y style="height:100%;">
<view v-if="indexTab==1" v-for="(item, index) in djList" :key="index" @click="onClick(index)"> <!-- <view v-if="indexTab==1" v-for="(item, index) in djList" :key="index" @click="onClick(index)">
<view class="flex-column fs-24 mar-20 pb-20" style="border-bottom: 1rpx solid #E9E9E9;"> <view class="flex-column fs-24 mar-20 pb-20" style="border-bottom: 1rpx solid #E9E9E9;">
<view class="flex v-center fs-28"> <view class="flex v-center fs-28">
<text>{{item.month}}</text> <text>{{item.month}}</text>
...@@ -42,11 +42,11 @@ ...@@ -42,11 +42,11 @@
</view> </view>
<view v-if="indexTab==1&&djList.length==0" style="padding-top: 100rpx;"> <view v-if="indexTab==1&&djList.length==0" style="padding-top: 100rpx;">
<u-empty mode="data"></u-empty> <u-empty mode="data"></u-empty>
</view> </view> -->
<view v-if="indexTab==2" v-for="(item, index) in jfjlList" :key="index" @click="onClick(index)"> <view v-if="indexTab==1" v-for="(item, index) in jfjlList" :key="index" @click="onClick(index)">
<view class="flex-column fs-24 mb-20" style="text-align: left;"> <view class="flex-column fs-24 mb-20" style="text-align: left;">
<text class="fs-28 h-80 lh-80 plr-25" <text class="fs-28 h-80 lh-80 plr-25" style="background:#F2F2F2;">
style="background:#F2F2F2;">{{item.updateTime.slice(0, 7)}}</text> {{$wskj.isNull(item.startTime)? '':item.startTime.slice(0,10)}}{{$wskj.isNull(item.endTime)? '':item.endTime.slice(0,10)}}</text>
<view class="flex-row-between plr-25 mtb-20"> <view class="flex-row-between plr-25 mtb-20">
<text style="color: #999999;">缴费渠道:线上缴费</text> <text style="color: #999999;">缴费渠道:线上缴费</text>
<text>{{item.payAmount}}</text> <text>{{item.payAmount}}</text>
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
<text class="plr-25" style="color: #999999;">{{item.updateTime.slice(5)}}</text> <text class="plr-25" style="color: #999999;">{{item.updateTime.slice(5)}}</text>
</view> </view>
</view> </view>
<view v-if="indexTab==2&&jfjlList.length==0" style="padding-top: 100rpx;"> <view v-if="indexTab==1&&jfjlList.length==0" style="padding-top: 100rpx;">
<u-empty mode="data"></u-empty> <u-empty mode="data"></u-empty>
</view> </view>
</scroll-view> </scroll-view>
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
onLoad(options) { onLoad(options) {
this.type = options.type this.type = options.type
this.userinfo = uni.getStorageSync("userInfo") this.userinfo = uni.getStorageSync("userInfo")
this.getDjList() //this.getDjList()
this.getJfjlList() this.getJfjlList()
}, },
...@@ -90,11 +90,11 @@ ...@@ -90,11 +90,11 @@
return return
} }
this.indexTab = index this.indexTab = index
// if (index == 1) {
// this.getDjList()
// return
// }
if (index == 1) { if (index == 1) {
this.getDjList()
return
}
if (index == 2) {
this.getJfjlList() this.getJfjlList()
return return
} }
......
...@@ -27,6 +27,12 @@ ...@@ -27,6 +27,12 @@
<text style="color: #999999;">业主手机号</text> <text style="color: #999999;">业主手机号</text>
<text>{{userinfo.mobile}}</text> <text>{{userinfo.mobile}}</text>
</view> </view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text style="color: #999999;">匿名投诉/表扬</text>
<image class="w-45 h-45" @click="onFlog()"
:src="flog==false?'/pagesMine/static/icon_fwxx_1.png':'/pagesMine/static/icon_fwxx_2.png'">
</image>
</view>
</view> </view>
<view class="flex-column-center fs-32 fw-700 mt-30"> <view class="flex-column-center fs-32 fw-700 mt-30">
<image class="w-10 h-40 mr-15" style="background-color: #1FCA7C;"></image> <image class="w-10 h-40 mr-15" style="background-color: #1FCA7C;"></image>
...@@ -58,6 +64,7 @@ ...@@ -58,6 +64,7 @@
reason: '', reason: '',
images: '', images: '',
userinfo: '', userinfo: '',
flog: false,
}; };
}, },
onLoad(e) { onLoad(e) {
...@@ -80,6 +87,9 @@ ...@@ -80,6 +87,9 @@
}) })
}, },
methods: { methods: {
onFlog() {
this.flog = !this.flog
},
upload(e) { upload(e) {
this.images = e this.images = e
}, },
...@@ -99,7 +109,8 @@ ...@@ -99,7 +109,8 @@
data: { data: {
commentDescription: this.reason, commentDescription: this.reason,
commentImg: this.images, commentImg: this.images,
type: this.type type: this.type,
isAnon: this.flog ? 1 : 0
} }
} }
this.$request(params).then(res => { this.$request(params).then(res => {
...@@ -116,4 +127,8 @@ ...@@ -116,4 +127,8 @@
flex-direction: column; flex-direction: column;
background: #fff; background: #fff;
} }
.round-checkbox .uni-checkbox__icon {
border-radius: 50%;
}
</style> </style>
\ No newline at end of file
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
</view> </view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;"> <view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text style="color: #999999;">姓名</text> <text style="color: #999999;">姓名</text>
<text>{{userInfo.accountName}}</text> <text>{{userInfo.name}}</text>
</view> </view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;"> <view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text style="color: #999999;">性别</text> <text style="color: #999999;">性别</text>
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
</view> </view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;"> <view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;">
<text style="color: #999999;">手机号</text> <text style="color: #999999;">手机号</text>
<text>{{userInfo.accountMobile}}</text> <text>{{userInfo.mobile}}</text>
</view> </view>
</view> </view>
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
}; };
}, },
onLoad(e) { onLoad(e) {
this.userInfo = uni.getStorageSync('userInfo_yg') this.userInfo = uni.getStorageSync('userInfo')
this.type = e.type this.type = e.type
if (e.type == 0) { if (e.type == 0) {
this.title = "安保打卡" this.title = "安保打卡"
...@@ -130,7 +130,6 @@ ...@@ -130,7 +130,6 @@
const key = 'cc4f24cc4928169e0d623573e4e0687e'; // 替换为你的高德API Key const key = 'cc4f24cc4928169e0d623573e4e0687e'; // 替换为你的高德API Key
const url = const url =
`https://restapi.amap.com/v3/geocode/regeo?key=${key}&location=${longitude},${latitude}&radius=1000&extensions=all`; `https://restapi.amap.com/v3/geocode/regeo?key=${key}&location=${longitude},${latitude}&radius=1000&extensions=all`;
uni.request({ uni.request({
url: url, url: url,
success: (res) => { success: (res) => {
......
...@@ -58,11 +58,13 @@ ...@@ -58,11 +58,13 @@
proprietorId: 0, proprietorId: 0,
name: "", name: "",
phone: "", phone: "",
type: 1,
} }
}; };
}, },
onLoad(options) { onLoad(options) {
this.type = options.type this.type = options.type
this.data.type = options.cy_type
if (this.type == 1) { if (this.type == 1) {
this.disabled = true this.disabled = true
} }
...@@ -73,6 +75,7 @@ ...@@ -73,6 +75,7 @@
this.data.name = json.name this.data.name = json.name
this.data.phone = json.phone this.data.phone = json.phone
} }
console.log("LMG", this.data)
this.getUserInfo() this.getUserInfo()
}, },
methods: { methods: {
...@@ -140,11 +143,7 @@ ...@@ -140,11 +143,7 @@
} }
const params = { const params = {
url: '/api/familyMember/update', url: '/api/familyMember/update',
data: { data: this.data
id: this.data.id,
name: this.data.name,
phone: this.data.phone
}
} }
this.$request(params).then(res => { this.$request(params).then(res => {
this.$u.toast(res.msg || '修改成功') this.$u.toast(res.msg || '修改成功')
......
...@@ -15,11 +15,16 @@ ...@@ -15,11 +15,16 @@
</view> </view>
</view> </view>
</view> </view>
<view class="flex-column fs-32 w-150 vh-center mtb-30"> <view class="flex-row-around">
<text style="text-align: center;">家庭成员</text> <view class="flex-column fs-32 w-150 vh-center mtb-30" @click="onClickTab(1)">
<view style="width: 60rpx;height: 5rpx;background-color: #1FCA7C;"></view> <text style="text-align: center;">家庭成员</text>
<view v-if="type==1" style="width: 60rpx;height: 5rpx;background-color: #1FCA7C;"></view>
</view>
<view class="flex-column fs-32 w-150 vh-center mtb-30" @click="onClickTab(2)">
<text style="text-align: center;">租户成员</text>
<view v-if="type==2" style="width: 60rpx;height: 5rpx;background-color: #1FCA7C;"></view>
</view>
</view> </view>
<view class="overflow-y"> <view class="overflow-y">
<scroll-view scroll-y style="height: 100%;"> <scroll-view scroll-y style="height: 100%;">
<view @click="onClickSelecte(index)" v-for="(item, index) in list" :key="index"> <view @click="onClickSelecte(index)" v-for="(item, index) in list" :key="index">
...@@ -47,6 +52,7 @@ ...@@ -47,6 +52,7 @@
return { return {
userInfo: '', userInfo: '',
list: [], list: [],
type: 1,
}; };
}, },
onLoad(options) { onLoad(options) {
...@@ -56,11 +62,17 @@ ...@@ -56,11 +62,17 @@
this.getUserInfo() this.getUserInfo()
}, },
methods: { methods: {
onClickTab(type) {
this.type = type;
this.getList();
},
getList() { getList() {
const params = { const params = {
url: '/api/familyMember/listAllByUserId', url: '/api/familyMember/listAllByUserId',
method: 'GET', method: 'GET',
data: {} data: {
type: this.type
}
} }
this.$request(params).then(res => { this.$request(params).then(res => {
console.log(res.data) console.log(res.data)
...@@ -86,13 +98,14 @@ ...@@ -86,13 +98,14 @@
}, },
onClick(index) { onClick(index) {
if (index == 0) { if (index == 0) {
this.$wskj.to("/pagesMine/pages/jtcy?type=0") this.$wskj.to("/pagesMine/pages/jtcy?type=0&cy_type=" + this.type)
return return
} }
}, },
onClickSelecte(index) { onClickSelecte(index) {
this.selecteIndex = index this.selecteIndex = index
this.$wskj.to("/pagesMine/pages/jtcy?type=1&data=" + encodeURIComponent(JSON.stringify(this.list[index]))) this.$wskj.to("/pagesMine/pages/jtcy?type=1&data=" + encodeURIComponent(JSON.stringify(this.list[index])) +
"&cy_type=" + this.type)
} }
} }
}; };
......
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
<text style="flex: 1;color: #000;">{{item.repairsTime}}</text> <text style="flex: 1;color: #000;">{{item.repairsTime}}</text>
<text @tap.stop="onCz('设置费用',index)" v-if="item.state==1" <text @tap.stop="onCz('设置费用',index)" v-if="item.state==1"
style="color: #23BBEE;">设置费用</text> style="color: #23BBEE;">设置费用</text>
<text style="color: #27CC81;margin-left: 30rpx;">报修详情</text> <text style="color: #27CC81;margin-left: 30rpx;">{{item.type==1?'报修详情':'报事详情'}}</text>
</view> </view>
</view> </view>
</view> </view>
......
<template> <template>
<view class='center'> <view class='center'>
<view style="background: linear-gradient( 180deg, #1FCA7C 0%, #F2F2F2 100%);"> <view style="background: linear-gradient( 180deg, #1FCA7C 0%, #F2F2F2 100%);">
<u-navbar :autoBack="true" title="报修详情" placeholder="true" bgColor="transparent" leftIconColor="#FFF" <u-navbar :autoBack="true" :title="data.type==1?'报修详情':'报事详情'" placeholder="true" bgColor="transparent"
:title-style="{color: '#FFF'}"> leftIconColor="#FFF" :title-style="{color: '#FFF'}">
</u-navbar> </u-navbar>
<view class="h-300 flex flex-row-between v-center ml-60 mr-35"> <view class="h-300 flex flex-row-between v-center ml-60 mr-35">
<view class="flex-column" style="color: #1BB871;"> <view class="flex-column" style="color: #1BB871;">
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
</view> </view>
<view class="flex-column-center fs-32 fw-700 mt-30"> <view class="flex-column-center fs-32 fw-700 mt-30">
<image class="w-10 h-40 mr-15" style="background-color: #1FCA7C;"></image> <image class="w-10 h-40 mr-15" style="background-color: #1FCA7C;"></image>
<text>报修信息</text> <text>{{data.type==1?'报修信息':'报事信息'}}</text>
</view> </view>
<view class="flex-column br-12 fs-28 mtb-30 pad-30" style="background: #EBF5F0;"> <view class="flex-column br-12 fs-28 mtb-30 pad-30" style="background: #EBF5F0;">
<text style="text-align: left;">{{data.repairsDescription}}</text> <text style="text-align: left;">{{data.repairsDescription}}</text>
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
</view> </view>
</scroll-view> </scroll-view>
<view class="flex mt-20 h-40 lh-40"> <view class="flex mt-20 h-40 lh-40">
<text class="fw-700 fs-28">报修时间:</text> <text class="fw-700 fs-28">{{data.type==1?'报修':'报事'}}时间:</text>
<text class="fs-24 ml-10">{{data.repairsTime}}</text> <text class="fs-24 ml-10">{{data.repairsTime}}</text>
</view> </view>
<view v-if="data.state==2||data.state==3" class="flex-column br-12 fs-28 mt-30" <view v-if="data.state==2||data.state==3" class="flex-column br-12 fs-28 mt-30"
......
...@@ -25,9 +25,21 @@ ...@@ -25,9 +25,21 @@
}; };
}, },
onLoad(options) { onLoad(options) {
this.userInfo = uni.getStorageSync('userInfo_yg') this.getUserInfo();
}, },
methods: { methods: {
getUserInfo() {
const params = {
url: '/api/login/userInfo',
method: 'GET',
data: {}
}
this.$request(params).then(res => {
uni.setStorageSync('userInfo', res.data)
this.userInfo = res.data
})
},
open() { open() {
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment