Commit 0953e6f4 authored by 秦威威's avatar 秦威威

缴费对接

parent 305c6217
...@@ -131,6 +131,18 @@ ...@@ -131,6 +131,18 @@
"navigationBarTitleText": "缴纳账单" "navigationBarTitleText": "缴纳账单"
} }
}, },
{
"path": "pages/jnzd_tcf",
"style": {
"navigationBarTitleText": "缴纳账单"
}
},
{
"path": "pages/jnzd_ccs",
"style": {
"navigationBarTitleText": "缴纳账单"
}
},
{ {
"path": "pages/jnzd_qt", "path": "pages/jnzd_qt",
"style": { "style": {
......
...@@ -27,9 +27,8 @@ ...@@ -27,9 +27,8 @@
</view> </view>
</view> </view>
</view> </view>
<u-popup :show="show" mode="center" @close="close" @open="open" round="20"> <u-popup :show="show" mode="center" @close="close" @open="open" round="20">
<view class="flex-column mlr-50" style="width:600rpx;"> <view class="flex-column mlr-50 ptb-30 vh-center" style="width:600rpx;">
<text class="fs-32 fw-600 mtb-20">选择小区</text> <text class="fs-32 fw-600 mtb-20">选择小区</text>
<scroll-view scroll-y class="h-400"> <scroll-view scroll-y class="h-400">
<view v-for="(item, index) in listXq" :key="index" @click="onSelect(index)"> <view v-for="(item, index) in listXq" :key="index" @click="onSelect(index)">
...@@ -39,13 +38,13 @@ ...@@ -39,13 +38,13 @@
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<view class="mt-40" @click="onSubmit()"> <view @click="onSubmit()" class="w-250 h-60 lh-60 br-12 mt-20" style="background:#1FCA7C;color: #fff;">
<text class="plr-80 ptb-12 br-12" style="background:#1FCA7C;color: #fff;">下一步</text> 下一步
</view> </view>
</view> </view>
</u-popup> </u-popup>
<u-popup :show="showHh" mode="center" @close="closeHh" @open="openHh" round="20"> <u-popup :show="showHh" mode="center" @close="closeHh" @open="openHh" round="20">
<view class="flex-column mlr-50" style="width:600rpx;"> <view class="flex-column mlr-50 ptb-30 vh-center" style="width:600rpx;">
<text class="fs-32 fw-600 mtb-20">楼栋号/单元号/户号</text> <text class="fs-32 fw-600 mtb-20">楼栋号/单元号/户号</text>
<scroll-view scroll-y class="h-400"> <scroll-view scroll-y class="h-400">
<view v-for="(item, index) in listHh" :key="index" @click="onSelectHh(index)"> <view v-for="(item, index) in listHh" :key="index" @click="onSelectHh(index)">
...@@ -54,8 +53,9 @@ ...@@ -54,8 +53,9 @@
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<view class="mt-40" @click="onSubmitHh()"> <view @click="onSubmitHh()" class="w-250 h-60 lh-60 br-12 mt-20"
<text class="plr-80 ptb-12 br-12" style="background:#1FCA7C;color: #fff;">完成</text> style="background:#1FCA7C;color: #fff;">
完成
</view> </view>
</view> </view>
</u-popup> </u-popup>
...@@ -203,6 +203,7 @@ ...@@ -203,6 +203,7 @@
} }
this.$request(params).then(res => { this.$request(params).then(res => {
this.$wskj.toast("设置成功") this.$wskj.toast("设置成功")
this.userInfo()
}) })
}, },
userInfo() { userInfo() {
......
...@@ -69,13 +69,13 @@ ...@@ -69,13 +69,13 @@
getUserInfo() { getUserInfo() {
const params = { const params = {
url: '/api/login/userInfo', url: '/api/login/userInfo',
loadingTip: '',
method: 'GET', method: 'GET',
data: {} data: {}
} }
this.$request(params).then(res => { this.$request(params).then(res => {
this.userInfo = res.data
uni.setStorageSync('userInfo', res.data) uni.setStorageSync('userInfo', res.data)
this.userInfo = res.data
}) })
}, },
onClick(index) { onClick(index) {
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
return return
} }
if (index == 1) { if (index == 1) {
this.$wskj.to("/pagesMain/pages/bxbs") this.$wskj.to("/pagesMain/pages/bxbs_lsgd")
return return
} }
if (index == 2) { if (index == 2) {
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
style="flex: 1;background: #FFFFFF;" style="flex: 1;background: #FFFFFF;"
:style="{ color: index==0?'#FF682D':index==1?'#EEA616':index==2?'#1FCA7C':'#23BBEE'}" :style="{ color: index==0?'#FF682D':index==1?'#EEA616':index==2?'#1FCA7C':'#23BBEE'}"
v-for="(item, index) in 4" :key="index"> v-for="(item, index) in 4" :key="index">
<text class="mt-20 fs-36">25</text> <text class="mt-20 fs-36">{{numberList[(index+1)]}}</text>
<text class="mb-20 fs-24">{{index==0?'待处理':index==1?'待支付':index==2?'已完成':index==3?'已取消':''}}</text> <text class="mb-20 fs-24">{{index==0?'待处理':index==1?'待支付':index==2?'已完成':index==3?'已取消':''}}</text>
<view v-if="index==tabIndex" <view v-if="index==tabIndex"
style="background: #27CC81;height: 10rpx;width: 100%;border-radius: 12rpx;"> style="background: #27CC81;height: 10rpx;width: 100%;border-radius: 12rpx;">
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
</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%;" v-if="list.length!=0">
<view v-for="(item, index) in list" :key="index" @click="onCz('详情',index)"> <view v-for="(item, index) in list" :key="index" @click="onCz('详情',index)">
<view class="flex-column br-12 mt-30 mlr-24 pad-20" <view class="flex-column br-12 mt-30 mlr-24 pad-20"
style="box-shadow: 0px 0px 15px 1px rgba(142,142,142,0.16);background: white;"> style="box-shadow: 0px 0px 15px 1px rgba(142,142,142,0.16);background: white;">
...@@ -49,7 +49,12 @@ ...@@ -49,7 +49,12 @@
</view> </view>
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<view style="padding-top: 300rpx;">
<u-empty v-if="list.length==0" mode="data"></u-empty>
</view>
</view> </view>
</view> </view>
...@@ -62,6 +67,7 @@ ...@@ -62,6 +67,7 @@
type: 0, type: 0,
tabIndex: 0, tabIndex: 0,
list: [], list: [],
numberList: '',
}; };
}, },
onLoad(e) { onLoad(e) {
...@@ -69,6 +75,7 @@ ...@@ -69,6 +75,7 @@
}, },
onShow() { onShow() {
this.getList() this.getList()
this.getNumberList()
}, },
methods: { methods: {
onClick(index) { onClick(index) {
...@@ -89,6 +96,16 @@ ...@@ -89,6 +96,16 @@
return return
} }
}, },
getNumberList() {
const params = {
url: '/api/repairs/userCountAll',
method: 'GET',
}
this.$request(params).then(res => {
this.numberList = res.data
})
},
getList() { getList() {
const params = { const params = {
url: '/api/repairs/userListAll?state=' + (this.tabIndex + 1), url: '/api/repairs/userListAll?state=' + (this.tabIndex + 1),
...@@ -106,6 +123,7 @@ ...@@ -106,6 +123,7 @@
} }
this.$request(params).then(res => { this.$request(params).then(res => {
this.getList() this.getList()
this.getNumberList()
}) })
} }
......
...@@ -40,13 +40,13 @@ ...@@ -40,13 +40,13 @@
</view> </view>
</view> </view>
<view class="list-item"> <view class="list-item">
<view class="flex w-220" style="text-align: left;"> <view class="flex w-220" style="text-align: left;">
<text class="t">*</text> <text class="t">*</text>
<text class="name">手机号</text> <text class="name">手机号</text>
</view> </view>
<view style="flex: 1;"> <view style="flex: 1;">
<input class="" style="text-align: left;" placeholder="请输入手机号" placeholder-style="color:#999999" <input class="" style="text-align: left;" type="tel" maxlength="11" placeholder="请输入手机号"
v-model="data.guestPhone" /> placeholder-style="color:#999999" v-model="data.guestPhone" />
</view> </view>
</view> </view>
<view class="list-item"> <view class="list-item">
...@@ -78,10 +78,10 @@ ...@@ -78,10 +78,10 @@
</view> </view>
<view class="mt-65"> <view class="mt-65">
<text class="plr-100 ptb-25 br-12 fs-30" style="background:#1FCA7C;color: #fff;" @click="onAdd">提交</text> <text class="plr-100 ptb-25 br-12 fs-30" style="background:#1FCA7C;color: #fff;" @click="onAdd()">提交</text>
</view> </view>
<u-popup :show="show" mode="center" @close="close" @open="open" round="20"> <u-popup :show="show" mode="center" @close="close" @open="open" round="20">
<view class="flex-column mlr-50" style="width:600rpx;"> <view class="flex-column mlr-50 ptb-30 vh-center" style="width:600rpx;">
<text class="fs-32 fw-600 mtb-20">选择小区</text> <text class="fs-32 fw-600 mtb-20">选择小区</text>
<scroll-view scroll-y class="h-400"> <scroll-view scroll-y class="h-400">
<view v-for="(item, index) in listXq" :key="index" @click="onSelect(index)"> <view v-for="(item, index) in listXq" :key="index" @click="onSelect(index)">
...@@ -91,8 +91,8 @@ ...@@ -91,8 +91,8 @@
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<view class="mt-40" @click="onSubmit()"> <view @click="onSubmit()" class="w-250 h-60 lh-60 br-12 mt-20" style="background:#1FCA7C;color: #fff;">
<text class="plr-80 ptb-12 br-12" style="background:#1FCA7C;color: #fff;">下一步</text> 完成
</view> </view>
</view> </view>
</u-popup> </u-popup>
...@@ -180,6 +180,7 @@ ...@@ -180,6 +180,7 @@
const params = { const params = {
url: '/api/login/sendSmsCode', url: '/api/login/sendSmsCode',
method: 'GET', method: 'GET',
loadingTip: '',
data: { data: {
mobile: this.data.guestPhone mobile: this.data.guestPhone
} }
...@@ -216,11 +217,14 @@ ...@@ -216,11 +217,14 @@
} }
const params = { const params = {
url: '/api/guest/add', url: '/api/guest/add',
loadingTip: '加载中...', loadingTip: '',
data: this.data data: this.data
} }
this.$request(params).then(res => { this.$request(params).then(res => {
this.$wskj.toast('提交成功')
setTimeout(() => {
this.$wskj.goBack(1)
}, 600)
}) })
}, },
open() { open() {
......
...@@ -32,7 +32,8 @@ ...@@ -32,7 +32,8 @@
</view> </view>
<view class="flex ptb-25" style="border-bottom: 1rpx solid #D9D9D9;"> <view class="flex ptb-25" style="border-bottom: 1rpx solid #D9D9D9;">
<text class="fs-32 fw-700 mr-30"></text> <text class="fs-32 fw-700 mr-30"></text>
<input style="flex: 1;text-align: left;font-size: 30rpx;" placeholder="输入缴费金额" /> <input @input="input" style="flex: 1;text-align: left;font-size: 30rpx;" type="digit"
placeholder="输入缴费金额" />
</view> </view>
<view class="fullscreen-btn" style="margin: 0;margin-top: 60rpx;" @click="onSubmit()"> <view class="fullscreen-btn" style="margin: 0;margin-top: 60rpx;" @click="onSubmit()">
立即缴费 立即缴费
...@@ -48,9 +49,9 @@ ...@@ -48,9 +49,9 @@
return { return {
indexTab: 0, indexTab: 0,
type: 1, type: 1,
money: 20, money: '20',
userinfo: '', userinfo: '',
price: '',
}; };
}, },
onLoad(options) { onLoad(options) {
...@@ -59,6 +60,16 @@ ...@@ -59,6 +60,16 @@
}, },
methods: { methods: {
input(e) {
if (this.$wskj.isNull(e.detail.value)) {
this.indexTab = 0
this.money = "20"
} else {
this.indexTab = -1
this.money = e.detail.value
}
console.log(this.money)
},
onClickPrice(index) { onClickPrice(index) {
this.indexTab = index this.indexTab = index
this.money = (index + 1) * 20 this.money = (index + 1) * 20
......
<template>
<view class="center plr-25">
<view class="flex-column br-12 fs-28 mt-30" style="background: white;">
<text class="fs-32 fw-700 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">
<text>{{carNumber==''?"请选择":carNumber}}</text>
<image class="h-30 w-30" src="/static/icon_xjt.png"></image>
</view> -->
<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">
<text>{{monthsNumber==''?"请选择":monthsNumber}}</text>
<image class="h-30 w-30" src="/static/icon_xjt.png"></image>
</view>
<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;">
<text>{{money||0}}</text>
</view>
</view>
<view class="fullscreen-btn" style="margin: 0;margin-top: 60rpx;" @click="onSubmit">
立即缴费
</view>
<u-picker :show="show" :columns="columns" closeOnClickOverlay="true" @cancel="close" @close="close"
@confirm="confirm"></u-picker>
<u-picker :show="carShow" :columns="list" closeOnClickOverlay="true" @cancel="closeCar" @close="closeCar"
@confirm="confirmCar"></u-picker>
</view>
</template>
<script>
export default {
data() {
return {
show: false,
carShow: false,
list: [
[]
],
columns: [
['1个月', '3个月', '6个月', '9个月', '12个月']
],
monthsNumber: '',
carNumber: '',
userinfo: '',
carportId: '',
money: '',
};
},
onLoad(options) {
this.type = options.type
this.userinfo = uni.getStorageSync("userInfo")
this.userinfo.carportVoList.forEach(item => {
this.list[0].push(item.carportNumber)
})
},
methods: {
open() {
this.show = true
},
close() {
this.show = false
},
openCar() {
this.carShow = true
},
closeCar() {
this.carShow = false
},
confirm(e) {
this.show = false
this.monthsNumber = e.value[0]
this.money = parseFloat(this.monthsNumber.replace('个月', '')) * parseFloat(this.userinfo.carportVoList[e
.indexs[0]].monthMoney);
this.money = this.money.toFixed(2)
console.log("LMG", this.money)
},
confirmCar(e) {
this.carShow = false
this.carNumber = e.value[0]
console.log("LMG", e.value[0])
this.carportId = this.userinfo.carportVoList[e.indexs[0]].carportId
},
onSubmit() {
if (this.$wskj.isNull(this.money)) {
this.$wskj.toast('请选择缴费时长')
return
}
this.onCjdd()
},
onCjdd() {
const params = {
url: '/api/liveBill/add',
loadingTip: '',
data: {
money: this.money,
type: 6, //类型(1电费 2水费 3物业费 4车位管理费 5车位出租费 6储藏室出租 7其他费用)
duration: this.monthsNumber.replace('个月', ''), //缴费时长(月)
}
}
this.$request(params).then(res => {
this.pay(res.data.billId)
})
},
pay(orderId) {
const params = {
url: '/api/payRecord/pay',
loadingTip: '',
data: {
orderId: orderId,
amount: this.money,
payBizCode: "PRESTORE",
}
}
this.$request(params).then(res => {
uni.requestPayment({
provider: 'wxpay',
appid: res.data.data.appId, // 微信开放平台 - 应用 - AppId,注意和微信小程序、公众号 AppId 可能不一致
nonceStr: res.data.data.nonceStr, // 随机字符串
package: res.data.data.package, // 固定值
timeStamp: res.data.data.timeStamp, // 时间戳(单位:秒)
paySign: res.data.data.paySign, // 签名,这里用的 MD5/RSA 签名
signType: 'MD5',
success: (res) => {
},
fail: (err) => {
console.log(err);
}
});
})
},
}
};
</script>
<style>
.center {
height: 100vh;
display: flex;
flex-direction: column;
background: #F2F2F2;
}
.grid-container {
display: flex;
flex-wrap: wrap;
justify-content: space-around; // 可以根据需求调整元素的水平排列方式,这里是均匀分布
align-items: center; // 垂直方向居中对齐
}
.grid-item {
width: 32%;
height: 80rpx; // 宫格高度
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background: #F2F2F2;
border-radius: 12rpx;
margin-top: 10rpx;
}
</style>
\ No newline at end of file
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
</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;">
<text>0</text> <text>{{money||0}}</text>
</view> </view>
</view> </view>
<view class="fullscreen-btn" style="margin: 0;margin-top: 60rpx;" @click="onSubmit"> <view class="fullscreen-btn" style="margin: 0;margin-top: 60rpx;" @click="onSubmit">
...@@ -34,19 +34,25 @@ ...@@ -34,19 +34,25 @@
show: false, show: false,
carShow: false, carShow: false,
list: [ list: [
['1', '2', '3', '4', '5'] []
], ],
columns: [ columns: [
['1个月', '3个月', '6个月', '9个月', '12个月'] ['1个月', '3个月', '6个月', '9个月', '12个月']
], ],
monthsNumber: '', monthsNumber: '',
carNumber: '', carNumber: '',
userinfo: '',
carportId: '',
money: '0',
}; };
}, },
onLoad(options) { onLoad(options) {
this.type = options.type this.type = options.type
this.userinfo = uni.getStorageSync("userInfo")
this.userinfo.carportVoList.forEach(item => {
this.list[0].push(item.carportNumber)
})
}, },
methods: { methods: {
open() { open() {
...@@ -66,14 +72,27 @@ ...@@ -66,14 +72,27 @@
confirm(e) { confirm(e) {
this.show = false this.show = false
this.monthsNumber = e.value[0] this.monthsNumber = e.value[0]
console.log("LMG", e.value[0]) this.money = parseFloat(this.monthsNumber.replace('个月', '')) * parseFloat(this.userinfo.carportVoList[e
.indexs[0]].monthMoney);
this.money = this.money.toFixed(2)
console.log("LMG", this.money)
}, },
confirmCar(e) { confirmCar(e) {
this.carShow = false this.carShow = false
this.carNumber = e.value[0] this.carNumber = e.value[0]
console.log("LMG", e.value[0]) console.log("LMG", e.value[0])
this.carportId = this.userinfo.carportVoList[e.indexs[0]].carportId
}, },
onSubmit() { onSubmit() {
if (this.$wskj.isNull(this.carportId)) {
this.$wskj.toast('请选择车位号')
return
}
if (this.$wskj.isNull(this.money)) {
this.$wskj.toast('请选择缴费时长')
return
}
this.onCjdd() this.onCjdd()
}, },
onCjdd() { onCjdd() {
...@@ -81,9 +100,10 @@ ...@@ -81,9 +100,10 @@
url: '/api/liveBill/add', url: '/api/liveBill/add',
loadingTip: '', loadingTip: '',
data: { data: {
money: this.monthsNumber.replace('个月', ''), money: this.money,
type: 5, //类型(1电费 2水费 3物业费 4车位管理费 5车位出租费 6储藏室出租 7其他费用) type: 5, //类型(1电费 2水费 3物业费 4车位管理费 5车位出租费 6储藏室出租 7其他费用)
duration: this.monthsNumber.replace('个月', '') //缴费时长(月) duration: this.monthsNumber.replace('个月', ''), //缴费时长(月)
carportId: this.carportId
} }
} }
this.$request(params).then(res => { this.$request(params).then(res => {
...@@ -96,7 +116,7 @@ ...@@ -96,7 +116,7 @@
loadingTip: '', loadingTip: '',
data: { data: {
orderId: orderId, orderId: orderId,
amount: this.monthsNumber.replace('个月', ''), amount: this.money,
payBizCode: "PRESTORE", payBizCode: "PRESTORE",
} }
} }
......
<template>
<view class="center plr-25">
<view class="flex-column br-12 fs-28 mt-30" style="background: white;">
<text class="fs-32 fw-700 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">
<text>{{carNumber==''?"请选择":carNumber}}</text>
<image class="h-30 w-30" src="/static/icon_xjt.png"></image>
</view>
<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">
<text>{{monthsNumber==''?"请选择":monthsNumber}}</text>
<image class="h-30 w-30" src="/static/icon_xjt.png"></image>
</view>
<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;">
<text>{{money||0}}</text>
</view>
</view>
<view class="fullscreen-btn" style="margin: 0;margin-top: 60rpx;" @click="onSubmit">
立即缴费
</view>
<u-picker :show="show" :columns="columns" closeOnClickOverlay="true" @cancel="close" @close="close"
@confirm="confirm"></u-picker>
<u-picker :show="carShow" :columns="list" closeOnClickOverlay="true" @cancel="closeCar" @close="closeCar"
@confirm="confirmCar"></u-picker>
</view>
</template>
<script>
export default {
data() {
return {
show: false,
carShow: false,
list: [
[]
],
columns: [
['1个月', '3个月', '6个月', '9个月', '12个月']
],
monthsNumber: '',
carNumber: '',
userinfo: '',
carportId: '',
money: '',
};
},
onLoad(options) {
this.type = options.type
this.userinfo = uni.getStorageSync("userInfo")
this.userinfo.carportVoList.forEach(item => {
this.list[0].push(item.carportNumber)
})
},
methods: {
open() {
this.show = true
},
close() {
this.show = false
},
openCar() {
this.carShow = true
},
closeCar() {
this.carShow = false
},
confirm(e) {
this.show = false
this.monthsNumber = e.value[0]
this.money = parseFloat(this.monthsNumber.replace('个月', '')) * parseFloat(this.userinfo.carportVoList[e
.indexs[0]].monthMoney);
this.money = this.money.toFixed(2)
console.log("LMG", this.money)
},
confirmCar(e) {
this.carShow = false
this.carNumber = e.value[0]
console.log("LMG", e.value[0])
this.carportId = this.userinfo.carportVoList[e.indexs[0]].carportId
},
onSubmit() {
if (this.$wskj.isNull(this.carportId)) {
this.$wskj.toast('请选择车位号')
return
}
if (this.$wskj.isNull(this.money)) {
this.$wskj.toast('请选择缴费时长')
return
}
this.onCjdd()
},
onCjdd() {
const params = {
url: '/api/liveBill/add',
loadingTip: '',
data: {
money: this.money,
type: 4, //类型(1电费 2水费 3物业费 4车位管理费 5车位出租费 6储藏室出租 7其他费用)
duration: this.monthsNumber.replace('个月', ''), //缴费时长(月)
carportId: this.carportId
}
}
this.$request(params).then(res => {
this.pay(res.data.billId)
})
},
pay(orderId) {
const params = {
url: '/api/payRecord/pay',
loadingTip: '',
data: {
orderId: orderId,
amount: this.money,
payBizCode: "PRESTORE",
}
}
this.$request(params).then(res => {
uni.requestPayment({
provider: 'wxpay',
appid: res.data.data.appId, // 微信开放平台 - 应用 - AppId,注意和微信小程序、公众号 AppId 可能不一致
nonceStr: res.data.data.nonceStr, // 随机字符串
package: res.data.data.package, // 固定值
timeStamp: res.data.data.timeStamp, // 时间戳(单位:秒)
paySign: res.data.data.paySign, // 签名,这里用的 MD5/RSA 签名
signType: 'MD5',
success: (res) => {
},
fail: (err) => {
console.log(err);
}
});
})
},
}
};
</script>
<style>
.center {
height: 100vh;
display: flex;
flex-direction: column;
background: #F2F2F2;
}
.grid-container {
display: flex;
flex-wrap: wrap;
justify-content: space-around; // 可以根据需求调整元素的水平排列方式,这里是均匀分布
align-items: center; // 垂直方向居中对齐
}
.grid-item {
width: 32%;
height: 80rpx; // 宫格高度
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background: #F2F2F2;
border-radius: 12rpx;
margin-top: 10rpx;
}
</style>
\ No newline at end of file
...@@ -39,42 +39,42 @@ ...@@ -39,42 +39,42 @@
</view> </view>
</view> </view>
</view> </view>
<text v-if="indexTab==1" class="fs-30 fw-700 ">未缴金额\n¥1355.04</text> <text v-if="indexTab==1" class="fs-30 fw-700 ">未缴金额\n¥0.00</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 8" :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>2025年01月</text> <text>{{item.month}}</text>
<text style="color: #EE0101;">108.23</text> <text style="color: #EE0101;">{{item.money}}</text>
<image style="width: 20rpx;height: 20rpx;" src="/pagesMain/static/icon_zksq_1.png"> <image style="width: 20rpx;height: 20rpx;" src="/pagesMain/static/icon_zksq_1.png">
</image> </image>
</view> </view>
<view v-if="indexNumber==index" class="flex-column mt-20 fs-24" <view v-if="indexNumber==index" class="flex-column mt-20 fs-24"
style="color: #999999;text-align: left;"> style="color: #999999;text-align: left;">
<text>缴费项目:物业管理费</text> <text>缴费项目:车位管理费</text>
<text>房屋面积:72.15</text> <text>单价/月:¥{{item.price}}</text>
<text>单价/平米:¥1.3</text> <text>金额:{{item.money}}</text>
<text>金额:93.8</text>
</view> </view>
</view> </view>
</view> </view>
<view v-if="indexTab==2" v-for="(item, index) in 10" :key="index" @click="onClick(index)"> <view v-if="indexTab==2" 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" style="background:#F2F2F2;">2024年6月</text> <text class="fs-28 h-80 lh-80 plr-25"
style="background:#F2F2F2;">{{item.updateTime.slice(0, 7)}}</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>1355.04</text> <text>{{item.payAmount}}</text>
</view> </view>
<text class="plr-25" style="color: #999999;">06-06 14:29</text> <text class="plr-25" style="color: #999999;">{{item.updateTime.slice(5)}}</text>
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<u-picker :show="show" :columns="columns" closeOnClickOverlay="true" @cancel="close" @close="close"
@confirm="confirm"></u-picker>
</view> </view>
<u-picker :show="show" :columns="columns" closeOnClickOverlay="true" @cancel="close" @close="close"
@confirm="confirm"></u-picker>
</view> </view>
</template> </template>
...@@ -87,22 +87,28 @@ ...@@ -87,22 +87,28 @@
type: 0, type: 0,
show: false, show: false,
columns: [ columns: [
['T01', 'T02', 'T03', 'T04', 'T05'] []
], ],
carNumber: '', carNumber: '',
userinfo: '', userinfo: '',
jfjlList: [],
djList: [],
carportId: '',
}; };
}, },
onLoad(options) { onLoad(options) {
this.type = options.type this.type = options.type
this.userinfo = uni.getStorageSync("userInfo") this.userinfo = uni.getStorageSync("userInfo")
this.userinfo.carportVoList.forEach(item => {
this.columns[0].push(item.carportNumber)
})
this.getJfjlList()
}, },
methods: { methods: {
onTabClick(index) { onTabClick(index) {
if (index == 0) { if (index == 0) {
this.$wskj.to("/pagesMain/pages/jnzd_czf") this.$wskj.to("/pagesMain/pages/jnzd_tcf")
return return
} }
this.indexTab = index this.indexTab = index
...@@ -119,8 +125,28 @@ ...@@ -119,8 +125,28 @@
confirm(e) { confirm(e) {
this.show = false this.show = false
this.carNumber = e.value[0] this.carNumber = e.value[0]
console.log("LMG", e.value[0]) this.carportId = this.userinfo.carportVoList[e.indexs[0]].carportId
} this.getDjList()
},
//类型(1电费 2水费 3物业费 4车位管理费 5车位出租费 6储藏室出租 7其他费用)
getDjList() {
const params = {
url: '/api/liveBill/listAll?type=4&carportId=' + this.carportId,
method: 'GET',
}
this.$request(params).then(res => {
this.djList = res.data
})
},
getJfjlList() {
const params = {
url: '/api/payRecord/listAll?type=4',
method: 'GET',
}
this.$request(params).then(res => {
this.jfjlList = res.data
})
},
} }
}; };
</script> </script>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</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;">
<text>0</text> <text>{{money}}</text>
</view> </view>
</view> </view>
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
], ],
monthsNumber: '', monthsNumber: '',
userinfo: '', userinfo: '',
money: 0,
}; };
}, },
onLoad(options) { onLoad(options) {
...@@ -57,9 +58,15 @@ ...@@ -57,9 +58,15 @@
confirm(e) { confirm(e) {
this.show = false this.show = false
this.monthsNumber = e.value[0] this.monthsNumber = e.value[0]
console.log("LMG", e.value[0]) this.money = parseFloat(this.monthsNumber.replace('个月', '')) * parseFloat(this.userinfo.monthMoney);
this.money = this.money.toFixed(2)
console.log(this.money)
}, },
onSubmit() { onSubmit() {
if (this.$wskj.isNull(this.money)) {
this.$wskj.toast('请选择缴费时长')
return
}
this.onCjdd() this.onCjdd()
}, },
onCjdd() { onCjdd() {
...@@ -67,7 +74,7 @@ ...@@ -67,7 +74,7 @@
url: '/api/liveBill/add', url: '/api/liveBill/add',
loadingTip: '', loadingTip: '',
data: { data: {
money: this.monthsNumber.replace('个月', ''), 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.monthsNumber.replace('个月', '') //缴费时长(月)
} }
...@@ -82,7 +89,7 @@ ...@@ -82,7 +89,7 @@
loadingTip: '', loadingTip: '',
data: { data: {
orderId: orderId, orderId: orderId,
amount: this.monthsNumber.replace('个月', ''), amount: this.money,
payBizCode: "PRESTORE", payBizCode: "PRESTORE",
} }
} }
......
...@@ -18,41 +18,41 @@ ...@@ -18,41 +18,41 @@
</view> </view>
</view> </view>
</view> </view>
<text v-if="indexTab==1" class="fs-30 fw-700 ">未缴金额\n¥1355.04</text> <text v-if="indexTab==1" class="fs-30 fw-700 ">未缴金额\n¥0.00</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 jfjlList" :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>2025年01月</text> <text>{{item.month}}</text>
<text style="color: #EE0101;">{{item.payAmount}}</text> <text style="color: #EE0101;">{{item.money}}</text>
<image style="width: 20rpx;height: 20rpx;" src="/pagesMain/static/icon_zksq_1.png"> <image style="width: 20rpx;height: 20rpx;" src="/pagesMain/static/icon_zksq_1.png">
</image> </image>
</view> </view>
<view v-if="indexNumber==index" class="flex-column mt-20 fs-24" <view v-if="indexNumber==index" class="flex-column mt-20 fs-24"
style="color: #999999;text-align: left;"> style="color: #999999;text-align: left;">
<text>缴费项目:物业管理费</text> <text>缴费项目:物业管理费</text>
<text>房屋面积:72.15</text> <text>房屋面积:{{item.sqm}}</text>
<text>单价/平米:¥1.3</text> <text>单价/平米:¥{{item.price}}</text>
<text>金额:{{item.payAmount}}</text> <text>金额:{{item.money}}</text>
</view> </view>
</view> </view>
</view> </view>
<view v-if="indexTab==2" v-for="(item, index) in jfjlList" :key="index" @click="onClick(index)"> <view v-if="indexTab==2" 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" style="background:#F2F2F2;">{{item.month}}</text> <text class="fs-28 h-80 lh-80 plr-25"
style="background:#F2F2F2;">{{item.updateTime.slice(0, 7)}}</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>
</view> </view>
<text class="plr-25" style="color: #999999;">{{item.month}}</text> <text class="plr-25" style="color: #999999;">{{item.updateTime.slice(5)}}</text>
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
</view> </view>
</view> </view>
</template> </template>
...@@ -90,7 +90,7 @@ ...@@ -90,7 +90,7 @@
//类型(1电费 2水费 3物业费 4车位管理费 5车位出租费 6储藏室出租 7其他费用) //类型(1电费 2水费 3物业费 4车位管理费 5车位出租费 6储藏室出租 7其他费用)
getDjList() { getDjList() {
const params = { const params = {
url: '/api/liveBill/listAll?type=1', url: '/api/liveBill/listAll?type=3',
method: 'GET', method: 'GET',
} }
this.$request(params).then(res => { this.$request(params).then(res => {
...@@ -99,7 +99,7 @@ ...@@ -99,7 +99,7 @@
}, },
getJfjlList() { getJfjlList() {
const params = { const params = {
url: '/api/payRecord/listAll?type=1', url: '/api/payRecord/listAll?type=3',
method: 'GET', method: 'GET',
} }
this.$request(params).then(res => { this.$request(params).then(res => {
......
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
return return
} }
if (index == 5) { if (index == 5) {
this.$wskj.to("/pagesMain/pages/jnzd_czf?type=1") this.$wskj.to("/pagesMain/pages/jnzd_ccs")
return return
} }
if (index == 6) { if (index == 6) {
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
style="flex: 1;background: #FFFFFF;" style="flex: 1;background: #FFFFFF;"
:style="{ color: index==0?'#FF682D':index==1?'#EEA616':index==2?'#1FCA7C':'#23BBEE'}" :style="{ color: index==0?'#FF682D':index==1?'#EEA616':index==2?'#1FCA7C':'#23BBEE'}"
v-for="(item, index) in 3" :key="index"> v-for="(item, index) in 3" :key="index">
<text class="mt-20 fs-36">25</text> <text class="mt-20 fs-36">{{numberList[(index+1)]}}</text>
<text class="mb-20 fs-24">{{index==0?'待处理':index==1?'已完成':index==2?'已取消':''}}</text> <text class="mb-20 fs-24">{{index==0?'待处理':index==1?'已完成':index==2?'已取消':''}}</text>
<view v-if="index==tabIndex" <view v-if="index==tabIndex"
style="background: #27CC81;height: 10rpx;width: 100%;border-radius: 12rpx;"> style="background: #27CC81;height: 10rpx;width: 100%;border-radius: 12rpx;">
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
</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%;" v-if="list.length!=0">
<view v-for="(item, index) in list" :key="index" @click="onCz('详情',index)"> <view v-for="(item, index) in list" :key="index" @click="onCz('详情',index)">
<view class="flex-column br-12 mt-30 mlr-24 pad-20" <view class="flex-column br-12 mt-30 mlr-24 pad-20"
style="box-shadow: 0px 0px 15px 1px rgba(142,142,142,0.16);background: white;"> style="box-shadow: 0px 0px 15px 1px rgba(142,142,142,0.16);background: white;">
...@@ -49,6 +49,9 @@ ...@@ -49,6 +49,9 @@
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<view style="padding-top: 300rpx;">
<u-empty v-if="list.length==0" mode="data"></u-empty>
</view>
</view> </view>
</view> </view>
...@@ -61,6 +64,7 @@ ...@@ -61,6 +64,7 @@
type: 0, type: 0,
tabIndex: 0, tabIndex: 0,
list: [], list: [],
numberList: '',
}; };
}, },
onLoad(e) { onLoad(e) {
...@@ -68,6 +72,7 @@ ...@@ -68,6 +72,7 @@
}, },
onShow() { onShow() {
this.getList() this.getList()
this.getNumberList()
}, },
methods: { methods: {
onClick(index) { onClick(index) {
...@@ -84,6 +89,16 @@ ...@@ -84,6 +89,16 @@
return return
} }
}, },
getNumberList() {
const params = {
url: '/api/comment/userCountAll',
method: 'GET',
}
this.$request(params).then(res => {
this.numberList = res.data
})
},
getList() { getList() {
const params = { const params = {
url: '/api/comment/userListAll?state=' + (this.tabIndex + 1), url: '/api/comment/userListAll?state=' + (this.tabIndex + 1),
...@@ -100,6 +115,7 @@ ...@@ -100,6 +115,7 @@
} }
this.$request(params).then(res => { this.$request(params).then(res => {
this.getList() this.getList()
this.getNumberList()
}) })
} }
......
...@@ -82,7 +82,8 @@ ...@@ -82,7 +82,8 @@
}, },
methods: { methods: {
onPz() { onPz() {
this.$wskj.to("/pagesMine/pages/dkpz") const name = this.userInfo.name + '(' + (this.type == 0 ? '安保' : '保洁') + ')'
this.$wskj.to("/pagesMine/pages/dkpz?address=" + this.address + "&name=" + name)
}, },
onDw() { onDw() {
const _this = this; const _this = this;
......
<template> <template>
<view class="content"> <view class="content">
<div></div>
<view class="takepicture" :style="{ 'height': allhight + 'px'}" v-show="isshow==true"> <view class="takepicture" :style="{ 'height': allhight + 'px'}" v-show="isshow==true">
<!-- 头部 --> <!-- 头部 -->
<!-- <view class="mode"> <!-- <view class="mode">
...@@ -31,8 +30,11 @@ ...@@ -31,8 +30,11 @@
</view> </view>
<!-- 底部 --> <!-- 底部 -->
<view class="bot" v-show="watermode"> <view class="bot" v-show="watermode">
<view class="left" @click="takeAlbum"> <!-- <view class="left" @click="takeAlbum">
<image src="/pagesMine/static/photo.png" mode=""></image> <image src="/pagesMine/static/photo.png" mode=""></image>
</view> -->
<view class="left flex vh-center" style="color: white;" @click="$wskj.goBack(1)">
取消
</view> </view>
<view class="center" @click="takePhotoAction"> <view class="center" @click="takePhotoAction">
<image src="/pagesMine/static/camera.png" mode=""></image> <image src="/pagesMine/static/camera.png" mode=""></image>
...@@ -54,8 +56,18 @@ ...@@ -54,8 +56,18 @@
</view> </view>
<!-- 水印1 --> <!-- 水印1 -->
<cover-view class="cameraa"> <cover-view class="cameraa">
<cover-view class="hour">{{nowTimes}}</cover-view> <view class="flex " style="align-items: flex-end;">
<cover-view @click="getLocation" class="time">{{nowTime}} {{addRess?addRess:'选择地点'}}</cover-view> <text class="fs-10 fs-50">
{{nowTimes}}
</text>
<text class="ml-40 fs-32">
{{nowTime}}
</text>
</view>
<view class="fs-28 mtb-20 mr-160">
<text style="white-space: normal;">{{addRess}}</text>
</view>
<view class="hour">{{txtName}}</view>
</cover-view> </cover-view>
...@@ -114,6 +126,10 @@ ...@@ -114,6 +126,10 @@
waterdraw: 1, waterdraw: 1,
} }
}, },
onLoad(e) {
this.addRess = e.address
this.txtName = e.name
},
mounted() { mounted() {
// 注意,这里要用个变量存this,不然进到getSystemInfo后this指向会变化,找不到data变量 // 注意,这里要用个变量存this,不然进到getSystemInfo后this指向会变化,找不到data变量
var _this = this var _this = this
...@@ -184,6 +200,21 @@ ...@@ -184,6 +200,21 @@
console.log(that.w, that.h) console.log(that.w, that.h)
let ctx = uni.createCanvasContext('firstCanvas'); /** 创建画布 */ let ctx = uni.createCanvasContext('firstCanvas'); /** 创建画布 */
const maxWidth = 200; // 设置最大行宽
const lineHeight = 30; // 设置行高
let lines = []; // 存储每行文字
let line = ''; // 临时存储当前行文字
// 根据 maxWidth 分割文本,手动换行
for (let i = 0; i < that.addRess.length; i++) {
line += that.addRess[i];
if (ctx.measureText(line).width > maxWidth) { // 测量当前行的宽度
lines.push(line.substring(0, line.length - 1)); // 将当前行加入行数组
line = that.addRess[i]; // 从当前字符开始新的一行
}
}
lines.push(line); // 将最后一行加入数组
//将图片绘制到cancas内 //将图片绘制到cancas内
ctx.drawImage(imginfo, 0, 0, ress.width, ress.height); ctx.drawImage(imginfo, 0, 0, ress.width, ress.height);
ctx.setFontSize(14); // 设置字体大小为 10px ctx.setFontSize(14); // 设置字体大小为 10px
...@@ -191,24 +222,27 @@ ...@@ -191,24 +222,27 @@
// ctx.setTextAlign("center") // ctx.setTextAlign("center")
let textToWidth = 25; // 绘制文本的左上角x坐标位置 let textToWidth = 25; // 绘制文本的左上角x坐标位置
let textToWidth1 = 100; // 绘制文本的左上角x坐标位置 let textToWidth1 = 120; // 绘制文本的左上角x坐标位置
let textToHeight1 = 150; // 绘制文本的左上角y坐标位置 let textToHeight1 = 140; // 绘制文本的左上角y坐标位置
let textToHeight2 = 170; // 绘制文本的左上角y坐标位置
let textToHeight3 = 190; // 绘制文本的左上角y坐标位置
//绘制的模板1 //绘制的模板1
if (that.waterdraw == 1) { if (that.waterdraw == 1) {
// 绘制时间 // 绘制时间
ctx.setFontSize(25); ctx.setFontSize(30);
ctx.fillText(that.nowTimes, textToWidth, textToHeight1); ctx.fillText(that.nowTimes, textToWidth, textToHeight1);
// 绘制日期 // 绘制日期
ctx.setFontSize(16); ctx.setFontSize(20);
ctx.fillText(that.nowTime, textToWidth1, textToHeight1); ctx.fillText(that.nowTime, textToWidth1, textToHeight1);
// 绘制地点 // 绘制地点
ctx.setFontSize(14); ctx.setFontSize(16);
ctx.fillText(that.addRess + "郑州市", textToWidth, textToHeight2); //ctx.fillText(that.addRess, textToWidth, textToHeight2);
let y = 30; // 起始 y 坐标
for (let i = 0; i < lines.length; i++) {
ctx.fillText(lines[i], textToWidth, textToHeight1 + y); // 绘制当前行
y += lineHeight; // 换行
}
// 绘制名称 // 绘制名称
ctx.setFontSize(14); ctx.setFontSize(16);
ctx.fillText("小木(安保)", textToWidth, textToHeight3); ctx.fillText(that.txtName, textToWidth, textToHeight1 + y);
} }
// 绘制完成后,在下一个事件循环将 canvas 内容导出为临时图片地址 // 绘制完成后,在下一个事件循环将 canvas 内容导出为临时图片地址
ctx.draw(false, () => { ctx.draw(false, () => {
...@@ -285,6 +319,7 @@ ...@@ -285,6 +319,7 @@
this.nowTimes = timers this.nowTimes = timers
this.nowTime = timer + ' ' + '星期' + todayWeekday; this.nowTime = timer + ' ' + '星期' + todayWeekday;
this.nowTime = timer;
}, },
getLocation() { //获取位置 getLocation() { //获取位置
var that = this var that = this
...@@ -488,17 +523,13 @@ ...@@ -488,17 +523,13 @@
/* 水印1显示 */ /* 水印1显示 */
.cameraa { .cameraa {
width: 690upx;
height: 120upx;
display: flex; display: flex;
justify-content: center;
flex-direction: column; flex-direction: column;
text-align: center;
color: #ffffff; color: #ffffff;
z-index: 200; z-index: 200;
position: absolute; position: absolute;
left: 30upx; left: 50upx;
bottom: 560upx; top: 170upx;
font-size: 28upx; font-size: 28upx;
} }
......
...@@ -5,42 +5,42 @@ ...@@ -5,42 +5,42 @@
<text class="fs-32 fw-700 pad-30" style="text-align: left;">基本信息</text> <text class="fs-32 fw-700 pad-30" style="text-align: left;">基本信息</text>
<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>姓名</text> <text>姓名</text>
<text>张三</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>手机号</text> <text>手机号</text>
<text>张三</text> <text>{{userInfo.mobile}}</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>身份证号</text> <text>身份证号</text>
<text>张三</text> <text>{{userInfo.identityCard}}</text>
</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 5" :key="index"> <view @click="onClickSelecte(index)" v-for="(item, index) in houseList" :key="index">
<view class="flex-column br-12 fs-28 mt-30" style="background: #FFFFFF;"> <view class="flex-column br-12 fs-28 mt-30" style="background: #FFFFFF;">
<view class="fs-32 fw-700 pad-30 flex-row-between"> <view class="fs-32 fw-700 pad-30 flex-row-between">
<text>房屋信息</text> <text>房屋信息</text>
<image v-if="selecteIndex==index" class="w-45 h-45" src="/pagesMine/static/icon_fwxx_1.png"> <image v-if="selecteIndex==index" class="w-45 h-45" src="/pagesMine/static/icon_fwxx_2.png">
</image> </image>
<image v-else class="w-45 h-45" src="/pagesMine/static/icon_fwxx_2.png"></image> <image v-else class="w-45 h-45" src="/pagesMine/static/icon_fwxx_1.png"></image>
</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>小区</text> <text>小区</text>
<text>利达国宾中心</text> <text>{{item.communityName}}</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>具体位置</text> <text>具体位置</text>
<text>1栋2单元205室</text> <text>{{item.room}}</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>业主姓名</text> <text>业主姓名</text>
<text>张三</text> <text>{{item.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>业主手机号</text> <text>业主手机号</text>
<text>177****1234</text> <text>{{item.phone}}</text>
</view> </view>
</view> </view>
</view> </view>
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
</scroll-view> </scroll-view>
</view> </view>
<view class="h-140 pt-20"> <view class="h-140 pt-20">
<view class="fullscreen-btn"> <view class="fullscreen-btn" @click="onSubmit()">
确定 确定
</view> </view>
</view> </view>
...@@ -59,41 +59,52 @@ ...@@ -59,41 +59,52 @@
export default { export default {
data() { data() {
return { return {
selecteIndex: 0 selecteIndex: -1,
userInfo: '',
houseList: [],
}; };
}, },
onLoad(options) { onLoad(options) {
this.userInfo = uni.getStorageSync('userInfo')
this.getHouseList()
}, },
methods: { methods: {
open() { onClickSelecte(index) {
this.selecteIndex = index
},
close() {
}, },
onClick(index) { onSubmit() {
if (index == 0) { if (this.selecteIndex == -1) {
this.$wskj.to("/pagesMain/pages/tsby_submit?type=0") this.$wskj.toast('请选择房屋')
return
}
if (index == 1) {
this.$wskj.to("/pagesMain/pages/tsby_submit?type=1")
return return
} }
if (index == 2) { this.setHouse()
this.$wskj.to("/pagesMain/pages/tsby_lsgd") },
return getHouseList() {
const than = this;
const params = {
url: '/api/community/myRoomListAll',
method: 'GET',
} }
if (index == 3) { than.$request(params).then(res => {
this.$wskj.to("/pagesMain/pages/fwgz") than.houseList = res.data
return than.houseList.forEach(function(item, index) {
if (item.room == than.userInfo.room) {
than.selecteIndex = index
}
});
})
},
setHouse() {
const params = {
url: '/api/community/cut/' + this.houseList[this.selecteIndex].communityId + "/" + this.houseList[
this.selecteIndex].proprietorId,
} }
this.$request(params).then(res => {
this.$wskj.toast("设置成功")
})
}, },
onClickSelecte(index) {
this.selecteIndex = index
}
} }
}; };
</script> </script>
......
...@@ -142,7 +142,8 @@ ...@@ -142,7 +142,8 @@
url: '/api/familyMember/update', url: '/api/familyMember/update',
data: { data: {
id: this.data.id, id: this.data.id,
name: this.data.name name: this.data.name,
phone: this.data.phone
} }
} }
this.$request(params).then(res => { this.$request(params).then(res => {
......
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
<view class="flex v-center"> <view class="flex v-center">
<image class="h-42 w-42" src="/static/icon_my_fw.png"></image> <image class="h-42 w-42" src="/static/icon_my_fw.png"></image>
<text class="fs-28">{{userInfo.communityName}}</text> <text class="fs-28">{{userInfo.communityName}}</text>
<image class="h-25 w-25 mt-5" src="/static/icon_r.png"></image>
</view> </view>
<text class="fs-24 h-54 lh-54 mt-30" <text class="fs-24 h-54 lh-54 mt-30"
style="background: linear-gradient( 90deg, #CAF6E2 0%, #FFFFFF 100%);"> style="background: linear-gradient( 90deg, #CAF6E2 0%, #FFFFFF 100%);">
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
</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%;" v-if="list.length!=0">
<view v-for="(item, index) in list" :key="index" @click="onCz('详情',index)"> <view v-for="(item, index) in list" :key="index" @click="onCz('详情',index)">
<view class="flex-column br-12 mt-30 mlr-24 pad-20" <view class="flex-column br-12 mt-30 mlr-24 pad-20"
style="box-shadow: 0px 0px 15px 1px rgba(142,142,142,0.16);background: white;"> style="box-shadow: 0px 0px 15px 1px rgba(142,142,142,0.16);background: white;">
...@@ -49,6 +49,9 @@ ...@@ -49,6 +49,9 @@
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<view style="padding-top: 300rpx;">
<u-empty v-if="list.length==0" mode="data"></u-empty>
</view>
<u-popup :show="show" mode="center" @close="close" @open="open" round="10"> <u-popup :show="show" mode="center" @close="close" @open="open" round="10">
<view class="flex-column mlr-50" style="width:600rpx;text-align: center;"> <view class="flex-column mlr-50" style="width:600rpx;text-align: center;">
<text class="fs-32 fw-600 mtb-20">设置维修费用</text> <text class="fs-32 fw-600 mtb-20">设置维修费用</text>
...@@ -74,6 +77,7 @@ ...@@ -74,6 +77,7 @@
list: [], list: [],
price: '', price: '',
repairsId: '', repairsId: '',
numberList: '',
}; };
}, },
onLoad(e) { onLoad(e) {
...@@ -81,6 +85,7 @@ ...@@ -81,6 +85,7 @@
}, },
onShow() { onShow() {
this.getList() this.getList()
this.getNumberList()
}, },
methods: { methods: {
open() { open() {
...@@ -113,6 +118,15 @@ ...@@ -113,6 +118,15 @@
} }
}, },
getNumberList() {
const params = {
url: '/api/repairs/maintainCountAll',
method: 'GET',
}
this.$request(params).then(res => {
this.numberList = res.data
})
},
getList() { getList() {
const params = { const params = {
url: '/api/repairs/maintainListAll?state=' + (this.tabIndex + 1), url: '/api/repairs/maintainListAll?state=' + (this.tabIndex + 1),
......
...@@ -6,18 +6,18 @@ ...@@ -6,18 +6,18 @@
<text class="fs-32 fw-700 pad-30" style="text-align: left;">基本信息</text> <text class="fs-32 fw-700 pad-30" style="text-align: left;">基本信息</text>
<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>姓名</text> <text>姓名</text>
<text>张三</text> <text>{{userInfo.accountName}}</text>
</view> </view>
<view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;" @click="open"> <view class="flex-row-between pad-30" style="border-bottom: 1rpx solid #E9E9E9;" @click="open">
<text>性别</text> <text>性别</text>
<view class="flex v-center"> <view class="flex v-center">
<text>{{sex==''?"请选择":sex}}</text> <text>{{userInfo.sex=='0'?"":userInfo.sex=='1'?"":"请选择"}}</text>
<image class="w-25 h-30 ml-10" src="/static/icon_r.png"></image> <image class="w-25 h-30 ml-10" src="/static/icon_r.png"></image>
</view> </view>
</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>手机号</text> <text>手机号</text>
<text>张三</text> <text>{{userInfo.mobile}}</text>
</view> </view>
</view> </view>
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
</scroll-view> </scroll-view>
</view> </view>
<view class="h-140 pt-20"> <view class="h-140 pt-20">
<view class="fullscreen-btn"> <view class="fullscreen-btn" @click="onClick()">
确定 确定
</view> </view>
</view> </view>
...@@ -39,15 +39,15 @@ ...@@ -39,15 +39,15 @@
data() { data() {
return { return {
show: false, show: false,
sex: '',
columns: [ columns: [
['', ''] ['', '']
], ],
userInfo: ''
}; };
}, },
onLoad(options) { onLoad(options) {
this.userInfo = uni.getStorageSync('userInfo')
}, },
methods: { methods: {
open() { open() {
...@@ -58,9 +58,20 @@ ...@@ -58,9 +58,20 @@
}, },
confirm(e) { confirm(e) {
this.show = false this.show = false
this.sex = e.value[0] this.userInfo.sex = e.value[0] == "" ? '0' : '1'
console.log("LMG", e.value[0]) this.setSex(this.userInfo.sex)
} },
onClick() {
this.$wskj.goBack(1)
},
setSex(e) {
const params = {
url: '/api/login/updateUserSex/' + e,
}
this.$request(params).then(res => {
})
},
} }
}; };
......
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