You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

220 lines
4.9 KiB
Vue

<template>
<div class="contract">
<title-block title="待签署合同">
<!-- <template #left>
<div class="wrap3" style="display: flex;align-items: center">
<image src="../../static/zu567@3x.png"></image>
</div>
</template>-->
</title-block>
<div class="content2">
<div class="wrap1">合同名称</div>
<div class="wrap2">合同编号</div>
<div class="wrap3">签署日期</div>
</div>
<div class="content3">
<scroll-view :style="{height:`${elementBottom}rpx`}" :scroll-y="true" @scrolltolower="loadMore">
<div class="wrap1" v-for="(item,index) in mainList" :key="index" @click="previewContract(item)">
<div class="wrap1_1">{{ item.contractTile }}</div>
<div class="wrap1_2">
{{ item.contractId.length > 10 ? `${item.contractId.slice(0, 10)}...` : item.contractId }}
</div>
<div class="wrap1_3">
<div class="wrap1_3_1">{{ item.signDate }}</div>
</div>
</div>
</scroll-view>
</div>
<tabbar :current="2"></tabbar>
</div>
</template>
<script>
import tabbar from "../../components/uiq-tabbar/uiq-tabbar.vue";
import {postDataByParams} from "../../http/service";
export default {
name: "index",
components: {tabbar},
data() {
return {
show: false,
page: 1,
pageSize: 999,
mainList: [],
elementBottom: ''
}
},
onShow() {
this.getData()
},
mounted() {
this.getDistanceFromTopToPageBottom('.content3')
},
methods: {
async previewContract(item) {
const data={
ID:item.ID
}
const res = await postDataByParams('/api/warehouse/fdd/pdf/url',data )
if (res.code===200){
uni.setStorageSync("jumpUrl",res.data.jumpUrl)
uni.navigateTo({
url: `/pages/signwebview/index`,
});
}
},
async getDistanceFromTopToPageBottom(classValue) {
const {windowHeight, windowWidth} = await uni.getSystemInfo();
const [{top}] = await new Promise(resolve => uni.createSelectorQuery().select(classValue).boundingClientRect().exec(resolve));
this.elementBottom = ((windowHeight - top) / windowWidth) * 750 - 175;
},
loadMore() {
},
async getData() {
const data = {
page: this.page, //分页
pageSize: this.pageSize, //每页数据量
}
const res = await postDataByParams('/api/warehouse/list', data)
if (res.code === 200) {
this.mainList = res.data.data
} else {
uni.showToast({
title: res.msg,
icon: 'none'
})
}
},
}
}
</script>
<style scoped lang="scss">
.contract {
background-image: url("https://cdns.fontree.cn/fonchain-main/prod/image/default/artwork/4fdc9a0f-d72a-46b6-a04d-ed56d5465213.png");
box-sizing: border-box;
overflow: hidden;
padding-left: 30rpx;
padding-right: 30rpx;
background-size: cover;
width: 100vw;
height: 100vh;
.content3 {
margin-top: 20rpx;
margin-bottom: 166rpx;
.wrap1 {
margin-bottom: 20rpx;
border-radius: 20rpx;
height: 108rpx;
background: #fff;
display: flex;
align-items: center;
.wrap1_1 {
flex: 1 1 0rpx;
font-size: 28rpx;
display: flex;
justify-content: center;
align-items: center;
flex-grow: 1;
}
.wrap1_2 {
flex: 1 1 0rpx;
color: #808080;
font-size: 24rpx;
display: flex;
justify-content: center;
align-items: center;
flex-grow: 1;
}
.wrap1_3 {
flex: 1 1 0rpx;
display: flex;
justify-content: center;
align-items: center;
.wrap1_3_1 {
display: flex;
justify-content: center;
align-items: center;
width: 208rpx;
border-radius: 20rpx;
height: 56rpx;
background: #76C458;
color: #fff;
font-size: 24rpx;
}
}
}
}
.content2 {
margin-top: 46rpx;
display: flex;
border-radius: 20rpx;
height: 70rpx;
background: #76C458;
.wrap1 {
color: #fff;
font-size: 28rpx;
display: flex;
justify-content: center;
align-items: center;
flex: 1 1 0rpx;
}
.wrap2 {
color: #fff;
font-size: 28rpx;
display: flex;
justify-content: center;
align-items: center;
flex: 1 1 0rpx;
}
.wrap3 {
color: #fff;
font-size: 28rpx;
display: flex;
justify-content: center;
align-items: center;
flex: 1 1 0rpx;
}
}
.content1 {
display: flex;
justify-content: space-between;
.wrap1 {
width: 120rpx;
height: 20rpx;
}
.wrap2 {
color: #4E964D;
font-size: 32rpx;
}
.wrap3 {
image {
width: 132rpx;
height: 52rpx;
}
}
}
}
</style>