233 lines
4.4 KiB
Vue
233 lines
4.4 KiB
Vue
<template>
|
||
<view>
|
||
<view class="nothing" v-if="ContractList.length === 0">
|
||
<image src="../../static/img/pic.svg" mode=""></image>
|
||
<view class="nothingText">
|
||
暂无合同信息
|
||
</view>
|
||
</view>
|
||
<view class="contractBoxList" v-for="item in ContractList">
|
||
<view>
|
||
<view class="title">任务名称:{{item.servicesName}}</view>
|
||
<view class="time" style="margin: 10px 0;font-weight:500;">合同编号:{{item.contractNo}}</view>
|
||
<view class="time">合同有效期:{{item.stime | time}} 至 {{item.etime | time}}</view>
|
||
</view>
|
||
|
||
<view class="lookBtn" @click="look(item)">
|
||
查看合同
|
||
</view>
|
||
|
||
</view>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import {
|
||
contractList,
|
||
viewContract
|
||
} from '@/api/auth.js'
|
||
|
||
export default {
|
||
data() {
|
||
return {
|
||
ContractList: [],
|
||
maskShow: false,
|
||
src: '',
|
||
current: 1,
|
||
size: 10,
|
||
total: 0
|
||
}
|
||
},
|
||
onLoad() {
|
||
this.initContractList()
|
||
},
|
||
filters: {
|
||
time(date) {
|
||
var d = date.slice(0, 10)
|
||
return d.replace(/\//g, "-")
|
||
}
|
||
},
|
||
|
||
/*页面滚动到底部 换页*/
|
||
onReachBottom: function() {
|
||
if (this.ContractList.length >= this.total) {
|
||
uni.showToast({
|
||
title: '到底了',
|
||
icon: 'none'
|
||
})
|
||
return
|
||
}
|
||
this.initContractList()
|
||
},
|
||
/*下拉刷新*/
|
||
onPullDownRefresh: function() {
|
||
this.current = 1
|
||
this.ContractList = []
|
||
this.initContractList()
|
||
},
|
||
methods: {
|
||
initContractList() {
|
||
var params = {
|
||
size: this.size,
|
||
current: this.current
|
||
}
|
||
contractList(params).then(e => {
|
||
this.current++
|
||
this.ContractList = [...this.ContractList, ...e.data.data.records]
|
||
this.total = e.data.data.total
|
||
uni.stopPullDownRefresh();
|
||
}).catch(err => {
|
||
uni.stopPullDownRefresh();
|
||
})
|
||
},
|
||
look(item) {
|
||
/*预览合同图片改为预览PDF*/
|
||
uni.showLoading({
|
||
title:'请求中',
|
||
})
|
||
// #ifdef H5
|
||
uni.hideLoading()
|
||
window.open(item.contractSecondUrl);
|
||
return;
|
||
// #endif
|
||
uni.downloadFile({
|
||
url: item.contractSecondUrl,
|
||
success: function(res) {
|
||
var filePath = res.tempFilePath;
|
||
uni.openDocument({
|
||
filePath: filePath,
|
||
success: function(res) {
|
||
uni.hideLoading()
|
||
},
|
||
fail: function() {
|
||
uni.showToast({
|
||
title: '打开合同失败,请稍后重试',
|
||
icon: 'none'
|
||
})
|
||
}
|
||
});
|
||
},
|
||
});
|
||
|
||
|
||
},
|
||
|
||
},
|
||
computed: {
|
||
imgSrc() {
|
||
const obj = {
|
||
'backgroundImage:': `url(${this.src})`,
|
||
"backgroundColor": 'red'
|
||
}
|
||
return obj
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
a {
|
||
text-decoration: none
|
||
}
|
||
|
||
page {
|
||
background: #F6F6F6;
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
.nothingText {
|
||
font-family: PingFangSC-Regular;
|
||
font-size: 28rpx;
|
||
color: #666666;
|
||
text-align: center;
|
||
margin-top: 20rpx;
|
||
}
|
||
|
||
.nothing image {
|
||
width: 400rpx;
|
||
height: 200rpx;
|
||
display: block;
|
||
padding-top: 50%;
|
||
margin: 0 auto;
|
||
}
|
||
|
||
.nothing {
|
||
width: 100%;
|
||
height: 100vh;
|
||
|
||
background-color: #fefefe;
|
||
}
|
||
|
||
.contractMask {
|
||
background-color: #FFFFFF;
|
||
margin: 30rpx;
|
||
position: relative;
|
||
border-radius: 4px;
|
||
height: 96%;
|
||
overflow: auto;
|
||
|
||
.close {
|
||
width: 23px;
|
||
height: 23px;
|
||
color: #1B66FF;
|
||
position: fixed;
|
||
right: 60rpx;
|
||
top: 60rpx;
|
||
transform: rotate(45deg);
|
||
font-size: 40px;
|
||
}
|
||
|
||
.down {
|
||
position: fixed;
|
||
bottom: 30px;
|
||
left: 14%;
|
||
width: 545rpx;
|
||
height: 90rpx;
|
||
line-height: 90rpx;
|
||
text-align: center;
|
||
background: #1B66FF;
|
||
font-size: 36rpx;
|
||
font-weight: 400;
|
||
color: #FFFFFF;
|
||
}
|
||
}
|
||
|
||
.contractBoxList {
|
||
padding: 30rpx 18rpx 26rpx 30rpx;
|
||
margin-bottom: 20rpx;
|
||
font-size: 14px;
|
||
background-color: #FEFEFE;
|
||
position: relative;
|
||
|
||
.title {
|
||
height: 32rpx;
|
||
font-size: 32rpx;
|
||
font-weight: 500;
|
||
color: #333333;
|
||
line-height: 32rpx;
|
||
|
||
}
|
||
|
||
.time {
|
||
height: 38rpx;
|
||
font-size: 24rpx;
|
||
font-weight: 400;
|
||
color: #999999;
|
||
line-height: 38rpx;
|
||
}
|
||
|
||
.lookBtn {
|
||
position: absolute;
|
||
right: 18rpx;
|
||
bottom: 34rpx;
|
||
height: 33rpx;
|
||
font-size: 28rpx;
|
||
font-weight: 400;
|
||
color: #007AFF;
|
||
line-height: 33rpx;
|
||
|
||
}
|
||
}
|
||
</style>
|