You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
284 lines
7.4 KiB
284 lines
7.4 KiB
<template> |
|
<view class="body-background"></view> |
|
<u-navbar |
|
:title="title" |
|
:auto-back="true" |
|
left-icon-size="40rpx" |
|
:safe-area-inset-top="true" |
|
:placeholder="true" |
|
bgColor="#ffffff" |
|
></u-navbar> |
|
<u-row :custom-style="{padding:'16rpx 26rpx'}"> |
|
<u-col :span="12" :custom-style="{ |
|
backgroundColor:'#FFFFFF', |
|
borderRadius:'20rpx', |
|
padding:'40rpx 32rpx', |
|
position:'relative' |
|
}"> |
|
<view class="form-title"> |
|
兑换详情 |
|
</view> |
|
<view class="detail-container"> |
|
<view class="detail-item" v-for="item in lists"> |
|
<u-cell-group |
|
:border="false" |
|
> |
|
<u-cell |
|
custom-style="padding:0;" > |
|
<template #title> |
|
<view class="item-title"> |
|
{{item.title}} |
|
</view> |
|
</template> |
|
<template #label> |
|
<view class="item-label"> |
|
{{item.create_time}} |
|
</view> |
|
</template> |
|
<template #value> |
|
<view class="item-value"> |
|
兑换 <text class="item-value-price">{{item.number}}</text> 暖新币 |
|
</view> |
|
</template> |
|
</u-cell> |
|
</u-cell-group> |
|
</view> |
|
</view> |
|
</u-col> |
|
</u-row> |
|
<u-loadmore :status="status" fontSize="28" marginBottom="30" marginTop="30" @loadmore="getDetail()"/> |
|
</template> |
|
|
|
<script> |
|
import { |
|
imghost |
|
} from '@/config/host.js' |
|
import MzSubsection from '@/components/MzSubsection/Index.vue'; |
|
import api from '@/utils/functions.js'; |
|
import {houseOrderDetail, houseOrderExchange, submitHouseOrder, userExtends} from "@/api/user"; |
|
import {feedback} from "@/api/feed"; |
|
|
|
export default { |
|
components: { |
|
MzSubsection |
|
}, |
|
data() { |
|
return { |
|
fileList1:[], |
|
fileList2:[], |
|
type:'create', |
|
model: { |
|
order: { |
|
house_id: '', |
|
name: '', |
|
id_card: '', |
|
phone: '', |
|
month: '', |
|
rent: '', |
|
payment_voucher: '', |
|
lease_agreement: '', |
|
}, |
|
}, |
|
pages:{ |
|
page:1, |
|
limit:10, |
|
house_order_id:'' |
|
}, |
|
title: '兑换详情', |
|
loading: true, |
|
size: { |
|
height: 500, |
|
}, |
|
lists:[], |
|
status:'loadmore', |
|
|
|
} |
|
}, |
|
onLoad(option) { |
|
this.pages.house_order_id = option.id |
|
this.getDetail() |
|
}, |
|
onReady() { |
|
let that = this; |
|
let height = api.wxSystemInfo().system.windowHeight |
|
let headerHeight = uni.$u.getPx(44) + uni.$u.sys().statusBarHeight |
|
|
|
let info = uni.createSelectorQuery().in(this).select('.foot-button'); |
|
info.boundingClientRect(function (data) { |
|
that.size.height = that.size.height = height - headerHeight - data.height - uni.$u.getPx('32rpx'); |
|
}).exec(function (res) {}); |
|
}, |
|
computed: {}, |
|
methods: { |
|
getDetail(clear = false){ |
|
if (clear) { |
|
this.status = 'loadmore' |
|
this.pages.page = 1; |
|
this.lists = []; |
|
} |
|
if (this.status === 'nomore') { |
|
return false; |
|
} |
|
houseOrderExchange(this.pages).then(res => { |
|
if(res.code === 200){ |
|
if (res.data.length === 0) { |
|
this.status = 'nomore' |
|
} |
|
this.lists.push.apply(this.lists,res.data); |
|
}else{ |
|
uni.$u.toast(res.msg); |
|
} |
|
}) |
|
this.pages.page++; |
|
}, |
|
submit(){ |
|
let file1 = []; |
|
this.fileList1.forEach(item => { |
|
file1.push(item.url) |
|
}); |
|
this.model.order.payment_voucher = file1.join(); |
|
let file2 = []; |
|
this.fileList2.forEach(item => { |
|
file2.push(item.url) |
|
}); |
|
this.model.order.lease_agreement = file2; |
|
console.log(this.model.order) |
|
this.$refs.orderForm.validate().then(res => { |
|
submitHouseOrder(this.model.order).then(res => { |
|
if(res.code === 200){ |
|
this.model = { |
|
order: { |
|
house_id: '', |
|
name: '', |
|
id_card: '', |
|
phone: '', |
|
month: '', |
|
rent: '', |
|
payment_voucher: '', |
|
lease_agreement: '', |
|
} |
|
}; |
|
this.fileList1 = []; |
|
this.fileList2 = []; |
|
this.navTo('/pages/Order/done?id='); |
|
}else{ |
|
uni.$u.toast(res.msg) |
|
} |
|
}) |
|
}).catch(errors => { |
|
uni.$u.toast(errors[0].message) |
|
}) |
|
|
|
}, |
|
//上传文件 |
|
async afterFileRead1 (event){ |
|
let lists = [].concat(event.file); |
|
|
|
let fileListLen = this.fileList1.length; |
|
lists.map((item) => { |
|
this.fileList1.push({ |
|
...item, |
|
status: 'uploading', |
|
message: '上传中', |
|
}); |
|
}); |
|
for (let i = 0; i < lists.length; i++) { |
|
|
|
api.uploadOssFile(lists[i].url).then(res => { |
|
let item = this.fileList1[fileListLen]; |
|
this.fileList1.splice(fileListLen, 1, { |
|
...item, |
|
status: 'success', |
|
message: '', |
|
url: res.show_path, |
|
thumb: res.show_path, |
|
}); |
|
fileListLen++; |
|
}) |
|
} |
|
}, |
|
//上传文件 |
|
async afterFileRead2 (event){ |
|
let lists = [].concat(event.file); |
|
|
|
let fileListLen = this.fileList2.length; |
|
lists.map((item) => { |
|
this.fileList2.push({ |
|
...item, |
|
status: 'uploading', |
|
message: '上传中', |
|
}); |
|
}); |
|
for (let i = 0; i < lists.length; i++) { |
|
|
|
api.uploadOssFile(lists[i].url).then(res => { |
|
let item = this.fileList2[fileListLen]; |
|
this.fileList2.splice(fileListLen, 1, { |
|
...item, |
|
status: 'success', |
|
message: '', |
|
url: res.show_path, |
|
thumb: res.show_path, |
|
}); |
|
fileListLen++; |
|
}) |
|
} |
|
}, |
|
//删除上传图片 |
|
deleteFile1(event){ |
|
this.fileList1.splice(event.index, 1); |
|
}, |
|
//删除上传图片 |
|
deleteFile2(event){ |
|
this.fileList2.splice(event.index, 1); |
|
}, |
|
getUserExtend() { |
|
userExtends().then((res) => { |
|
if(res.code === 200) { |
|
uni.setStorageSync('user', res.data); |
|
this.$store.commit('userInfo', res.data); |
|
this.modalShow = !res.data?.phone |
|
|| !res.data?.name |
|
|| !res.data?.community |
|
|| !res.data?.street |
|
|| !res.data?.company |
|
|| !res.data?.position |
|
|| !res.data?.id_card; |
|
this.model.order.name = res.data.name; |
|
this.model.order.id_card = res.data.id_card; |
|
this.model.order.phone = res.data.phone; |
|
} |
|
}); |
|
}, |
|
navTo(url) { |
|
wx.navigateTo({ |
|
url: url |
|
}) |
|
}, |
|
}, |
|
onPageScroll(res) { |
|
|
|
}, |
|
onReachBottom() { |
|
this.getDetail(); |
|
}, |
|
created() { |
|
// this.pagePadding = (api.navHeight().navPaddingTop + |
|
// api.navHeight().navHeight + (api.navHeight().headerPadding * 2)) |
|
}, |
|
mounted() { |
|
let token = uni.getStorageSync('token'); |
|
// this.userInfo = this.$store.userInfo |
|
if(token && this.type === 'create'){ |
|
this.getUserExtend(); |
|
} |
|
if(this.type === 'detail'){ |
|
this.getDetail(this.model.order.house_id); |
|
} |
|
} |
|
} |
|
</script> |
|
|
|
<style lang="scss"> |
|
@import './components/detail.scss'; |
|
</style> |