<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="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.artworkNum }}</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>