PropertyApp/pages/resource/itemOutManage.vue
2023-11-08 12:19:53 +08:00

209 lines
4.7 KiB
Vue

<template>
<view>
<view class="cu-bar bg-white search ">
<view class="action">
<button class="cu-btn round line-blue" @tap="_toAddItemOutPage()">领用申请</button>
</view>
</view>
<view class="margin-top" v-if="applyList.length > 0">
<view class="bg-white margin-bottom padding-sm margin-sm radius-sm" v-for="(item,index) in applyList"
:key="index">
<view class="apply-title flex justify-between">
<view>
<text class="cuIcon-goods text-cut text-green margin-right-xs"></text>
<text class="text-bold">{{item.resourceNames}}</text>
<text class="margin-left-sm">({{item.stateName}})</text>
</view>
<view class="flex justify-start">
<button class="cu-btn round sm line-red"
v-if="item.state == 1000 && userId == item.createUserId"
@tap="cancelApply(item)">取消</button>
<button class="cu-btn round sm line-black margin-left-sm"
@tap="_toApplyDetail(item)">详情</button>
</view>
</view>
<view class="apply-content flex justify-start flex-wrap">
<view class="item">
<text>申请人:</text>
<text>{{item.createUserName}}</text>
</view>
<view class="item">
<text>时间:</text>
<text>{{item.createTime}}</text>
</view>
<view class="item">
<text>订单:</text>
<text>{{item.applyOrderId}}</text>
</view>
</view>
</view>
<uni-load-more :status="loadingStatus" :content-text="loadingContentText" />
</view>
<view v-else>
<no-data-page></no-data-page>
</view>
</view>
</template>
<script>
import noDataPage from '@/components/no-data-page/no-data-page.vue'
import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
import {
queryPurchaseApplyList,
deletePurchaseApply
} from '../../api/resource/resource.js'
import {
getCurrentCommunity
} from '../../api/community/community.js'
export default {
data() {
return {
communityId: '',
applyList: [],
page: 1,
userId: this.java110Context.getUserInfo().userId,
loadingStatus: 'loading',
loadingContentText: {
contentdown: '上拉加载更多',
contentrefresh: '加载中',
contentnomore: '没有更多'
}
}
},
components: {
noDataPage,
uniLoadMore
},
onLoad: function(options) {
this.java110Context.onLoad();
},
onShow: function() {
this.page = 1;
this.applyList = [];
this.communityId = getCurrentCommunity().communityId;
this.loadApply();
},
onReachBottom: function() {
if (this.loadingStatus == 'noMore') {
return;
}
this.loadApply();
},
methods: {
/**
* 加载数据
*/
loadApply: function() {
this.loadingStatus = 'more';
let _that = this;
let _objData = {
page: 1,
row: 50,
communityId: this.communityId,
resOrderType: 20000,
createUserId:this.userId,
};
queryPurchaseApplyList(this, _objData)
.then(function(res) {
_that.applyList = res.purchaseApplys
//_that.page++;
if (_that.applyList.length == res.total) {
_that.loadingStatus = 'noMore';
return;
}
})
},
/**
* 跳转详情页
*/
_toApplyDetail: function(_item) {
uni.navigateTo({
url: '/pages/resource/purchaseApplyDetail?apply=' + JSON.stringify(_item)
});
},
/**
* 跳转申请页
*/
_toAddItemOutPage: function(_item) {
uni.navigateTo({
url: '/pages/resource/addItemOut'
});
},
/**
* 取消申请
* @param {Object} item
*/
cancelApply: function(item) {
let _that = this;
uni.showModal({
cancelText: "取消", // 取消按钮的文字
confirmText: "确认", // 确认按钮文字
title: '提示',
content: '是否取消申请?',
confirmColor: '#3B8BFF',
cancelColor: '#222222',
success: res => {
if (res.confirm) {
deletePurchaseApply(_that, item)
.then(function(res) {
uni.showToast({
title: res.msg
})
_that.page = 1;
_that.applyList = [];
_that.loadApply();
})
} else if (res.cancel) {
console.log('cancel')
}
}
});
}
}
}
</script>
<style lang="scss">
.item-content {
width: 100%;
margin-left: 20rpx;
line-height: 1.6em;
}
.ellipsis {
display: inline-block;
max-width: 50%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
vertical-align: middle
}
.bg-white {
position: relative;
}
.btn-cancel {
position: absolute;
right: 10rpx;
top: 25rpx;
}
.apply-title{
height: 60upx;
line-height: 50upx;
border-bottom: 1upx solid #F1F1F1;
}
.apply-content{
.item{
width: 50%;
margin-top:20upx;
}
}
.radius-sm{
border-radius: 16upx;
}
</style>