@@ -0,0 +1,17 @@ | |||||
import request from '@/utils/request' | |||||
//获根据用户获取其所在的行政单位(对象)信息 | |||||
export function getUserGeo() { | |||||
return request({ | |||||
url: '/bigData/common/getUserGeo', | |||||
method: 'get', | |||||
}) | |||||
} | |||||
//获取村级下拉 | |||||
export function getUserGeoList(query) { | |||||
return request({ | |||||
url: '/bigData/common/getUserGeoList/'+query, | |||||
method: 'get' | |||||
}) | |||||
} |
@@ -683,6 +683,22 @@ export function contractGet(query,id) { | |||||
}) | }) | ||||
} | } | ||||
//线下合同附件列表 | |||||
export function contractFileList(id) { | |||||
return request({ | |||||
url: '/transaction/website/contractFileList/id/'+id, | |||||
method: 'get', | |||||
}) | |||||
} | |||||
//线上合同预览 | |||||
export function previewContractFile(id) { | |||||
return request({ | |||||
url: '/transaction/website/previewContractFile/id/'+id, | |||||
method: 'get', | |||||
}) | |||||
} | |||||
// 查询多标段合同列表 | // 查询多标段合同列表 | ||||
export function listMultiplelots(query) { | export function listMultiplelots(query) { | ||||
return request({ | return request({ | ||||
@@ -709,3 +725,83 @@ export function multipleLotsFirstSign(data, id) { | |||||
data: data | data: data | ||||
}) | }) | ||||
} | } | ||||
// 查询标段农户信息 | |||||
export function listMultipleLotsNh(query) { | |||||
return request({ | |||||
url: '/home/mobile/multipleLotsNh/list', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 查询标段农户详情 | |||||
export function getMultiplelotsNh(query, id) { | |||||
return request({ | |||||
url: '/home/mobile/multipleLotsNh/get/' + id, | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 标段合同乙方签字 | |||||
export function multipleLotsSecondSign(data, id) { | |||||
return request({ | |||||
url: '/transaction/multiplelotsnh/secondSign/' + id, | |||||
method: 'post', | |||||
data: data | |||||
}) | |||||
} | |||||
// 查询承包合同列表 | |||||
export function listCbht(query) { | |||||
return request({ | |||||
url: '/service/cbht/list', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 承包合同甲方签名 | |||||
export function cbhtFirstSign(data,id) { | |||||
return request({ | |||||
url: '/service/cbht/sign/first/' + id, | |||||
method: 'post', | |||||
data: data | |||||
}) | |||||
} | |||||
// 查询承包合同详细 | |||||
export function getCbht(query, id) { | |||||
return request({ | |||||
url: '/service/cbht/get/' + id, | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 查询承包方信息 | |||||
export function getCbf(idcard) { | |||||
return request({ | |||||
url: '/home/mobile/cbf/get/' + idcard, | |||||
method: 'get' | |||||
}) | |||||
} | |||||
// 查询承包合同信息 | |||||
export function getCbhtList(query) { | |||||
return request({ | |||||
url: '/home/mobile/cbht/list', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 承包合同乙方签名 | |||||
export function cbhtSecondSign(data,id) { | |||||
return request({ | |||||
url: '/service/cbht/sign/second/' + id, | |||||
method: 'post', | |||||
data: data | |||||
}) | |||||
} |
@@ -200,6 +200,8 @@ const whiteList = [ | |||||
// '/agriculturalTrusteeship/billDetail4',//买家选购-订单详情 | // '/agriculturalTrusteeship/billDetail4',//买家选购-订单详情 | ||||
// '/agriculturalTrusteeship/evaluate',//买家选购-服务评价 | // '/agriculturalTrusteeship/evaluate',//买家选购-服务评价 | ||||
'/plotPremisesMobile/index',//两清三化 | |||||
] | ] | ||||
router.beforeEach((to, from, next) => { | router.beforeEach((to, from, next) => { | ||||
@@ -254,6 +254,15 @@ export const constantRoutes = [ | |||||
}, | }, | ||||
component: (resolve) => require(['@/views/user/signature/signatureDetail'], resolve) | component: (resolve) => require(['@/views/user/signature/signatureDetail'], resolve) | ||||
}, | }, | ||||
{ | |||||
path: '/user/signature/signaturePdf', | |||||
name: 'userSignaturePdf', | |||||
meta: { | |||||
title: '合同预览', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/user/signature/signaturePdf'], resolve) | |||||
}, | |||||
{ | { | ||||
path: '/accountSetting', | path: '/accountSetting', | ||||
name: 'accountSetting', | name: 'accountSetting', | ||||
@@ -3822,6 +3831,15 @@ export const constantRoutes = [ | |||||
}, | }, | ||||
component: (resolve) => require(['@/views/sunVillage_info/list_signature_add'], resolve) | component: (resolve) => require(['@/views/sunVillage_info/list_signature_add'], resolve) | ||||
}, | }, | ||||
{ ////阳光村务(新)-- 合同网签 | |||||
path: '/sunVillage_info/list_signature_pdf', | |||||
name: 'sunVillageInfoListSignaturePdf', | |||||
meta: { | |||||
title: '合同预览', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/sunVillage_info/list_signature_pdf'], resolve) | |||||
}, | |||||
{ ////阳光村务(新)-- 村级公章 | { ////阳光村务(新)-- 村级公章 | ||||
path: '/sunVillage_info/list_official', | path: '/sunVillage_info/list_official', | ||||
name: 'sunVillageInfoListOfficial', | name: 'sunVillageInfoListOfficial', | ||||
@@ -3840,14 +3858,59 @@ export const constantRoutes = [ | |||||
}, | }, | ||||
component: (resolve) => require(['@/views/sunVillage_info/list_multipleLots'], resolve) | component: (resolve) => require(['@/views/sunVillage_info/list_multipleLots'], resolve) | ||||
}, | }, | ||||
{ ////阳光村务(新)-- 标段合同网签 | |||||
path: '/sunVillage_info/list_multipleLots_add', | |||||
name: 'sunVillageInfoListMultipleLotsAdd', | |||||
{ ////阳光村务(新)-- 标段合同详情 | |||||
path: '/sunVillage_info/list_multipleLots_detail', | |||||
name: 'sunVillageInfoListMultipleLotsDetail', | |||||
meta: { | |||||
title: '标段合同详情', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/sunVillage_info/list_multipleLots_detail'], resolve) | |||||
}, | |||||
{ ////阳光村务(新)-- 标段农户网签 | |||||
path: '/sunVillage_info/list_multipleLotsNh', | |||||
name: 'sunVillageInfoListMultipleLotsNh', | |||||
meta: { | meta: { | ||||
title: '标段合同网签', | title: '标段合同网签', | ||||
hidden: true, | hidden: true, | ||||
}, | }, | ||||
component: (resolve) => require(['@/views/sunVillage_info/list_multipleLots_add'], resolve) | |||||
component: (resolve) => require(['@/views/sunVillage_info/list_multipleLotsNh'], resolve) | |||||
}, | |||||
{ ////阳光村务(新)-- 标段农户详情 | |||||
path: '/sunVillage_info/list_multipleLotsNh_detail', | |||||
name: 'sunVillageInfoListMultipleLotsNhDetail', | |||||
meta: { | |||||
title: '标段合同详情', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/sunVillage_info/list_multipleLotsNh_detail'], resolve) | |||||
}, | |||||
{ ////阳光村务(新)-- 承包合同网签 | |||||
path: '/sunVillage_info/list_cbht', | |||||
name: 'sunVillageInfoListCbht', | |||||
meta: { | |||||
title: '承包合同网签', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/sunVillage_info/list_cbht'], resolve) | |||||
}, | |||||
{ ////阳光村务(新)-- 承包合同详情 | |||||
path: '/sunVillage_info/list_cbht_detail', | |||||
name: 'sunVillageInfoListCbhtDetail', | |||||
meta: { | |||||
title: '承包合同详情', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/sunVillage_info/list_cbht_detail'], resolve) | |||||
}, | |||||
{ ////阳光村务(新)-- 承包方网签 | |||||
path: '/sunVillage_info/list_cbf', | |||||
name: 'sunVillageInfoListCbf', | |||||
meta: { | |||||
title: '承包方网签', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/sunVillage_info/list_cbf'], resolve) | |||||
}, | }, | ||||
{ ////阳光村务(新)-- 宅基地申请 | { ////阳光村务(新)-- 宅基地申请 | ||||
path: '/sunVillage_info/homeApplication/applicationList', | path: '/sunVillage_info/homeApplication/applicationList', | ||||
@@ -5420,6 +5483,16 @@ export const constantRoutes = [ | |||||
}, | }, | ||||
component: (resolve) => require(['@/views/agriculturalTrusteeship/buyer/evaluate'], resolve) | component: (resolve) => require(['@/views/agriculturalTrusteeship/buyer/evaluate'], resolve) | ||||
}, | }, | ||||
//<--------------------------------------两清三化--------------------------------------> | |||||
{ | |||||
path: '/plotPremisesMobile/index', | |||||
name: 'plotPremisesMobile', | |||||
meta: { | |||||
title: '两清三化', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/plotPremisesMobile/index'], resolve) | |||||
}, | |||||
]; | ]; | ||||
@@ -0,0 +1,372 @@ | |||||
<template> | |||||
<div class="home_wrapper"> | |||||
<div class="map_main" id="mapWrap"></div> | |||||
<div class="top_address" @click="showAddress=true"> | |||||
<i class="address_icon"></i> | |||||
<p>羊亭</p> | |||||
<p>/北上夼</p> | |||||
</div> | |||||
<van-popup v-model="show" position="bottom" :overlay="false" round> | |||||
<div class="pop_main"> | |||||
<div class="pop_title"> | |||||
<i class="address_icon"></i> | |||||
<p>羊亭镇-北上夼村</p> | |||||
</div> | |||||
<div class="pop_content"> | |||||
<div class="pop_content_left"> | |||||
<img src="../../../static/images/plotPremises/plotPremises_icon_01.png" alt=""> | |||||
<div class="pop_content_left_box"> | |||||
<div> | |||||
<p>农房 <span>(栋)</span></p> | |||||
<p class="num">352</p> | |||||
</div> | |||||
<span class="border"></span> | |||||
<div> | |||||
<p>可租 <span>(栋)</span></p> | |||||
<p class="num" @click="showList = true,activeName='nf'">71</p> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="pop_content_left"> | |||||
<img src="../../../static/images/plotPremises/plotPremises_icon_02.png" alt=""> | |||||
<div class="pop_content_left_box"> | |||||
<div> | |||||
<p>农地 <span>(亩)</span></p> | |||||
<p class="num">352</p> | |||||
</div> | |||||
<span class="border"></span> | |||||
<div> | |||||
<p>可租 <span>(亩)</span></p> | |||||
<p class="num" @click="showList = true,activeName='nd'">71</p> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</van-popup> | |||||
<van-popup v-model="showZD" closeable position="bottom" :closed="show=true" :overlay="false" round> | |||||
<div class="pop_main"> | |||||
<div class="pop_title"> | |||||
<i class="address_icon"></i> | |||||
<p>羊亭镇-北上夼村-107</p> | |||||
</div> | |||||
<div class="pop_content_zd"> | |||||
<img src="../../../static/images/plotPremises/plotPremises_img.png" alt=""> | |||||
<div class="pop_content_zd_right"> | |||||
<van-row type="flex" justify="space-between"> | |||||
<van-col>租地位置:</van-col> | |||||
<van-col>北上夼村</van-col> | |||||
</van-row> | |||||
<van-row type="flex" justify="space-between"> | |||||
<van-col>租地编号:</van-col> | |||||
<van-col class="num">310</van-col> | |||||
</van-row> | |||||
<van-row type="flex" justify="space-between"> | |||||
<van-col>租地面积:</van-col> | |||||
<van-col class="num">12亩</van-col> | |||||
</van-row> | |||||
<van-row type="flex" justify="space-between"> | |||||
<van-col>咨询代表:</van-col> | |||||
<van-col>张村委</van-col> | |||||
</van-row> | |||||
<van-row type="flex" justify="space-between"> | |||||
<van-col>咨询电话:</van-col> | |||||
<van-col class="num">13306310631</van-col> | |||||
</van-row> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</van-popup> | |||||
<van-popup v-model="showZF" closeable position="bottom" :closed="show=true" :overlay="false" round> | |||||
<div class="pop_main"> | |||||
<div class="pop_title"> | |||||
<i class="address_icon"></i> | |||||
<p>羊亭镇-北上夼村-107</p> | |||||
</div> | |||||
<div class="pop_content_zd"> | |||||
<img src="../../../static/images/plotPremises/plotPremises_img.png" alt=""> | |||||
<div class="pop_content_zd_right"> | |||||
<van-row type="flex" justify="space-between"> | |||||
<van-col>租房位置:</van-col> | |||||
<van-col>北上夼村</van-col> | |||||
</van-row> | |||||
<van-row type="flex" justify="space-between"> | |||||
<van-col>租房编号:</van-col> | |||||
<van-col class="num">310</van-col> | |||||
</van-row> | |||||
<van-row type="flex" justify="space-between"> | |||||
<van-col>租房面积:</van-col> | |||||
<van-col class="num">12亩</van-col> | |||||
</van-row> | |||||
<van-row type="flex" justify="space-between"> | |||||
<van-col>咨询代表:</van-col> | |||||
<van-col>张村委</van-col> | |||||
</van-row> | |||||
<van-row type="flex" justify="space-between"> | |||||
<van-col>咨询电话:</van-col> | |||||
<van-col class="num">13306310631</van-col> | |||||
</van-row> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</van-popup> | |||||
<van-popup v-model="showList" close-icon="../../../static/images/plotPremises/plotPremises_icon_03.png" closeable position="right" :closed="show=true" :overlay="false" round :style="{ width: '45%' , height: '60%' , background:'#ffffff' }"> | |||||
<div class="pop_main_right"> | |||||
<p class="pop_title" :style="{color:activeName=='nf'?'#1B65F8':'#FF7321'}">{{activeName=='nf'?'待租农房':'待租农地'}}</p> | |||||
<div class="pop_content_right"> | |||||
<van-row> | |||||
<van-col span="8" offset="4">编号</van-col> | |||||
<van-col span="9" offset="3">面积</van-col> | |||||
</van-row> | |||||
<van-row v-for="(item,index) in 20" | |||||
:key="index" | |||||
@click="listChange(index)" | |||||
:class="{ active: selectChooseOrder == index }" | |||||
> | |||||
<van-col span="8" offset="4" class="num">101</van-col> | |||||
<van-col span="9" offset="3" class="num">3亩</van-col> | |||||
</van-row> | |||||
</div> | |||||
<div class="pop_btn_right"> | |||||
<p :style="{background:activeName=='nf'?'#1B65F8':'',color:activeName=='nf'?'#ffffff':''}" @click="tabChange('nf')">农房</p> | |||||
<p :style="{background:activeName=='nd'?'#FF7321':'',color:activeName=='nd'?'#ffffff':''}" @click="tabChange('nd')">农地</p> | |||||
</div> | |||||
</div> | |||||
</van-popup> | |||||
<van-popup v-model="showAddress" position="bottom" round> | |||||
<van-picker show-toolbar title="村镇选择" :columns="columns" /> | |||||
</van-popup> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import $ from "jquery"; | |||||
export default { | |||||
data() { | |||||
return { | |||||
show:true, | |||||
showZD:false, | |||||
showZF:false, | |||||
showList:false, | |||||
showAddress:false, | |||||
activeName:'nf', | |||||
selectChooseOrder:-1, | |||||
columns: [ | |||||
{ | |||||
text: '浙江', | |||||
children: [ | |||||
{ | |||||
text: '杭州', | |||||
children: [{ text: '西湖区' }, { text: '余杭区' }], | |||||
}, | |||||
{ | |||||
text: '温州', | |||||
children: [{ text: '鹿城区' }, { text: '瓯海区' }], | |||||
}, | |||||
], | |||||
}, | |||||
{ | |||||
text: '福建', | |||||
children: [ | |||||
{ | |||||
text: '福州', | |||||
children: [{ text: '鼓楼区' }, { text: '台江区' }], | |||||
}, | |||||
{ | |||||
text: '厦门', | |||||
children: [{ text: '思明区' }, { text: '海沧区' }], | |||||
}, | |||||
], | |||||
}, | |||||
], | |||||
}; | |||||
}, | |||||
created() { | |||||
}, | |||||
methods: { | |||||
tabChange(name){ | |||||
this.activeName = name; | |||||
}, | |||||
listChange(id){ | |||||
this.selectChooseOrder = id; | |||||
this.show = false; | |||||
this.showZF = false; | |||||
this.showZD = true; | |||||
} | |||||
}, | |||||
}; | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
.home_wrapper { | |||||
background: #e9e9e9; | |||||
min-height: 100vh; | |||||
width: 100vw; | |||||
} | |||||
.num{ | |||||
font-family: Arial; | |||||
} | |||||
.map_main{ | |||||
width: 100%; | |||||
height: 100vh; | |||||
background: url("../../../static/images/plotPremises/map_bg.png") no-repeat center; | |||||
background-size: 100%; | |||||
} | |||||
/deep/ .van-popup{ | |||||
background: #F1F0F5; | |||||
} | |||||
/deep/ .van-popup--right{ | |||||
top: 35%; | |||||
.van-icon__image{ | |||||
width: .7em; | |||||
height: .7em; | |||||
display: block; | |||||
} | |||||
} | |||||
.top_address{ | |||||
display: flex; | |||||
align-items: center; | |||||
position: absolute; | |||||
top: 5vh; | |||||
left: 3vw; | |||||
padding: 1vh 2vh; | |||||
background: #ffffff; | |||||
border-radius: 5vh; | |||||
p{font-size: 1.5vh} | |||||
} | |||||
.address_icon { | |||||
width: 13PX; | |||||
height: 17PX; | |||||
background: url("../../../static/images/plotPremises/positioning.png") no-repeat; | |||||
background-size: 100% 100%; | |||||
margin-right: 1vw; | |||||
} | |||||
.pop_main{ | |||||
padding: 2vh 3vw; | |||||
.pop_title{ | |||||
display: flex; | |||||
align-items: center; | |||||
font-size: 2.2vh; | |||||
line-height: 1; | |||||
} | |||||
.pop_content{ | |||||
display: flex; | |||||
justify-content: space-between; | |||||
margin-top: 2vh; | |||||
.pop_content_left{ | |||||
background: #ffffff; | |||||
width: 48%; | |||||
padding: 1.5vh 3vw; | |||||
border-radius: 15PX; | |||||
.pop_content_left_box{ | |||||
display: flex; | |||||
justify-content: space-between; | |||||
margin-top: .5vh; | |||||
.border{ | |||||
border-left: 2PX dashed #DFDFDF; | |||||
} | |||||
div{ | |||||
p{ | |||||
&:first-child{ | |||||
font-size: 2vh; | |||||
color: #797979; | |||||
span{ | |||||
font-size: 1.5vh; | |||||
} | |||||
} | |||||
&:last-child{ | |||||
font-size: 3vh; | |||||
color: #333333; | |||||
} | |||||
} | |||||
&:last-child{ | |||||
p:last-child{ | |||||
color: #1B65F8; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.pop_content_zd{ | |||||
background: #ffffff; | |||||
border-radius: 15PX; | |||||
display: flex; | |||||
justify-content: space-between; | |||||
margin-top: 2vh; | |||||
overflow: hidden; | |||||
img{width: 40%;} | |||||
.pop_content_zd_right{ | |||||
width: 60%; | |||||
padding:1.5vh 2.5vh; | |||||
font-size: 1.8vh; | |||||
display: flex; | |||||
flex-direction: column; | |||||
justify-content: space-between; | |||||
} | |||||
} | |||||
} | |||||
.pop_main_right{ | |||||
.pop_title{ | |||||
font-size: 2.2vh; | |||||
color: #1B65F8; | |||||
padding: 1.5vh; | |||||
} | |||||
.pop_content_right{ | |||||
font-size: 1.8vh; | |||||
height: 48vh; | |||||
overflow-y: scroll; | |||||
.active{ | |||||
box-shadow:0px 0px 5px #999999; | |||||
} | |||||
.van-row{ | |||||
padding: 1vh 0; | |||||
} | |||||
} | |||||
.pop_btn_right{ | |||||
display: flex; | |||||
width: 100%; | |||||
position: absolute; | |||||
bottom: 0; | |||||
p{ | |||||
padding: 1.5vh 0; | |||||
text-align: center; | |||||
font-size: 2vh; | |||||
flex: 1; | |||||
background: #E1E0E4; | |||||
color: #9F9F9F; | |||||
} | |||||
} | |||||
} | |||||
</style> |
@@ -222,6 +222,7 @@ | |||||
justify-content: center; | justify-content: center; | ||||
padding-top: 40PX; | padding-top: 40PX; | ||||
width: 25%; | width: 25%; | ||||
margin-top: 10PX; | |||||
&:nth-child(3){ | &:nth-child(3){ | ||||
margin-right: 0; | margin-right: 0; | ||||
} | } | ||||
@@ -0,0 +1,577 @@ | |||||
<template> | |||||
<div class="home_wrapper"> | |||||
<div | |||||
class="header_main" | |||||
:style="`background-image:url(${require(showBtn?'@/assets/images/sunVillage_info/list_head.png':'@/assets/images/sunVillage_info/list_head_red.png')})`" | |||||
> | |||||
承包合同 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
<!-- <div class="add_btn" @click="goAdd" v-show="showBtn"></div>--> | |||||
</div> | |||||
<div class="list_main"> | |||||
<van-list | |||||
v-model="loading" | |||||
:finished="finished" | |||||
finished-text="没有更多了" | |||||
:immediate-check="false" | |||||
@load="getList" | |||||
> | |||||
<!----1--> | |||||
<van-swipe-cell v-for="item in applicationList" :key="item.id" > | |||||
<div class="item" @click="goDetail(item.id)"> | |||||
<div class="info"> | |||||
<div class="title"> | |||||
<i class="icon_box" v-if="item.secondSigning==null"></i> | |||||
<i class="icon_box1" v-if="item.secondSigning!=null"></i> | |||||
<p class="news_title" :style="{'color': item.secondSigning!=null?'#2bc30c':'#eb1616'}">{{item.cbhtbm}}</p> | |||||
<p class="tips_mark" :style="{'color': item.secondSigning!=null?'#79bc29':'#f8a83d','background': item.secondSigning!=null?'#e8ffcd':'#ffedcd'}">{{item.signingMode}}</p> | |||||
<p class="tips_mark2" v-if="item.signingMode === '线上'" :style="{'background': item.secondSigning!=null?'#2bc30c':'#eb1616'}">{{item.signingStatus}}</p> | |||||
</div> | |||||
<div class="time"> | |||||
<p style="color:#eb1616;">{{item.cbfmc}}</p> | |||||
<p style="color:#eb1616;font-weight: bold;">{{item.htzmjm.toFixed(2)}} 亩</p> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<template #right> | |||||
<div class="operation"> | |||||
<div class="opera_btn" @click="openPopup(item.id)" v-if="item.signingMode == '线上' && item.secondIsSign === '否'"> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_02.png" alt="" width="35"> | |||||
<p>签名</p> | |||||
</div> | |||||
<!-- <div class="opera_btn" v-if="item.signingMode == '线上' && item.attachement != null " @click="$router.push({path:'/sunVillage_info/list_signature_pdf',query: {id:item.id,type:$route.query.type}})"> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_03.png" alt="" width="35"> | |||||
<p>预览</p> | |||||
</div> --> | |||||
<div class="opera_btn"> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_03.png" alt="" width="35"> | |||||
<p>预览</p> | |||||
</div> | |||||
<div class="opera_btn" @click="openPopupFile(item.id)"> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | |||||
<p>附件</p> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
</van-swipe-cell> | |||||
</van-list> | |||||
</div> | |||||
<van-popup v-model="show" closeable position="right" :style="{ height: '100%' }" > | |||||
<van-cell-group style="width: 100%;height:100%;overflow: hidden;padding-top: 10px;padding-bottom: 10px;"> | |||||
<div class="signature-box" @mousedown="canvasTTdown" @touchstart="canvasTTdown"> | |||||
<vue-esign | |||||
ref="esign" | |||||
class="mySign" | |||||
:width="500" | |||||
:height="height" | |||||
:isCrop="signature.isCrop" | |||||
:lineWidth="signature.lineWidth" | |||||
:lineColor="signature.lineColor" | |||||
:bgColor.sync="signature.bgColor" | |||||
/> | |||||
</div> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_10.png" id="canvasTT" style="position:absolute;top: 50%;left: 50%;transform: translate(-50%,-50%)" alt=""> | |||||
<div class="signature-footer"> | |||||
<van-button @click="handleGenerate" type="info" size="small">保存签字</van-button> | |||||
<van-button @click="handleReset" class="clearBtn" type="info" plain size="small">清空画板</van-button> | |||||
</div> | |||||
</van-cell-group> | |||||
</van-popup> | |||||
<!-- 附件弹出层 --> | |||||
<van-popup v-model="showFile" round closeable position="bottom" :style="{ height: '30%' }" > | |||||
<div style="padding: 0 3%;"> | |||||
<van-divider>附件</van-divider> | |||||
<van-uploader v-model="fileList" accept="" :after-read="afterRead" @delete="deleteFile" /> <!-- accept=".jpg, .gif, .png, .jpeg, .txt, .pdf, .doc, .docx, .xls, .xlsx" --> | |||||
</div> | |||||
</van-popup> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import { getCbf, getCbhtList, cbhtSecondSign } from "@/api/sunVillage_info/fixedAssets"; | |||||
import {attachmentList, commonAttach, systemAttachment} from "@/api/sunVillage_info/fixedAssets"; | |||||
import request from "@/utils/request"; | |||||
import vueEsign from "vue-esign"; | |||||
import signatureUploadSignature from "@/views/yinnong/signatureUploadSignature"; | |||||
import $ from "jquery"; | |||||
import Cookies from "js-cookie"; | |||||
export default { | |||||
name: "sunVillageInfoListCbf", | |||||
components: {vueEsign, signatureUploadSignature}, | |||||
data() { | |||||
return { | |||||
applicationList: [], | |||||
loading: false, | |||||
finished: false, | |||||
show: false, | |||||
showFile: false, | |||||
fileList: [], | |||||
listLength: '0', | |||||
queryParams: { | |||||
pageNum: 1, | |||||
pageSize: 10, | |||||
cbfbm: null, | |||||
translate_dict: 1, | |||||
}, | |||||
showBtn: true, | |||||
signatureImg: '', | |||||
//电子签名 | |||||
signature: { | |||||
lineWidth: 6, // 画笔的线条粗细 | |||||
lineColor: "#000000", // 画笔的颜色 | |||||
bgColor: "", // 画布的背景颜色 | |||||
resultImg: "", // 最终画布生成的base64图片 | |||||
isCrop: false, // 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | |||||
}, | |||||
signaId: '', | |||||
height: null | |||||
}; | |||||
}, | |||||
created() { | |||||
this.height = window.screen.height * 1.28 - 20; | |||||
this.getCbfInfo(); | |||||
// this.queryParams.cbfbm = JSON.parse(Cookies.get('user')).idcard; | |||||
}, | |||||
methods: { | |||||
canvasTTdown() { | |||||
$('#canvasTT').css('display', 'none'); | |||||
}, | |||||
getCbfInfo() { | |||||
getCbf(JSON.parse(Cookies.get('user')).idcard).then(response => { | |||||
this.queryParams.cbfbm = response.data.cbfbm; | |||||
this.getList(); | |||||
}); | |||||
}, | |||||
getList() { | |||||
if (this.queryParams.cbfbm != null) { | |||||
getCbhtList(this.queryParams).then(response => { | |||||
response.rows.forEach(item => { | |||||
this.applicationList.push(item); | |||||
}); | |||||
if (this.applicationList.length >= response.total) { | |||||
this.finished = true; | |||||
return; | |||||
} else { | |||||
this.loading = false; | |||||
this.queryParams.pageNum += 1; | |||||
} | |||||
}); | |||||
} else { | |||||
this.finished = true; | |||||
} | |||||
}, | |||||
goDetail(id) { | |||||
this.$router.push({ | |||||
path: '/sunVillage_info/list_cbht_detail', | |||||
query: { id: id } | |||||
}) | |||||
}, | |||||
openPopup(id, url) { | |||||
this.show = true; | |||||
this.signaId = id; | |||||
this.$nextTick(() => { | |||||
this.handleReset(); | |||||
}); | |||||
}, | |||||
openPopupFile(id){ | |||||
this.fileList = []; | |||||
this.signaId = id; | |||||
this.showFile = true; | |||||
let queryParams = { | |||||
tableId: id, | |||||
tableName: 't_sys_cbht', | |||||
}; | |||||
attachmentList(queryParams).then(response => { | |||||
response.rows.map(res => { | |||||
// let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL | |||||
this.fileList.push({ | |||||
url: '/api'+res.fileUrl, | |||||
file: new File([], res.fileName,{}), | |||||
id: res.id | |||||
}); | |||||
}) | |||||
}); | |||||
}, | |||||
afterRead(file) { | |||||
// 此时可以自行将文件上传至服务器 | |||||
let params = new FormData(); | |||||
params.append("tableId", this.signaId); | |||||
params.append("tableName", "t_sys_cbht"); | |||||
params.append("bizPath", "service"); | |||||
params.append("fileType", '0'); | |||||
params.append("file", file.file); | |||||
commonAttach(params).then(response => { | |||||
this.$notify({ type: 'success', message: '上传成功' }); | |||||
}); | |||||
}, | |||||
deleteFile(file){ | |||||
systemAttachment(file.id).then(res => { | |||||
this.$notify({ type: 'success', message: '删除成功' }); | |||||
}); | |||||
}, | |||||
signaImgFun(url) { | |||||
this.signatureImg = url; | |||||
}, | |||||
// 清空画板 | |||||
handleReset() { | |||||
this.$refs.esign.reset(); | |||||
$('#canvasTT').css('display', 'block') | |||||
}, | |||||
// 生成签字图 | |||||
handleGenerate() { | |||||
this.$refs.esign | |||||
.generate() // 使用生成器调用把签字的图片转换成为base64图片格式 | |||||
.then((res) => { | |||||
this.signature.resultImg = res; | |||||
let wj = this.dataURLtoBlob(res); | |||||
let param = new FormData() // 创建form对象 | |||||
param.append('file', wj) // 通过append向form对象添加数据 | |||||
param.append('date', this.format(new Date(), 'yyyy-MM-dd')) // 通过append向form对象添加数据 | |||||
cbhtSecondSign(param, this.signaId).then(response => { | |||||
this.$notify({type: 'success', message: '签字成功'}); | |||||
this.show = false; | |||||
// location.reload(); | |||||
this.applicationList = []; | |||||
this.getList(); | |||||
}); | |||||
}) | |||||
.catch((err) => { | |||||
// 画布没有签字时会执行这里提示一下 | |||||
this.$toast.fail('请签名后再保存签字'); | |||||
}); | |||||
}, | |||||
dataURLtoBlob(dataurl, filename = 'file') { | |||||
let arr = dataurl.split(',') | |||||
let mime = arr[0].match(/:(.*?);/)[1] | |||||
let suffix = mime.split('/')[1] | |||||
let bstr = atob(arr[1]) | |||||
let n = bstr.length | |||||
let u8arr = new Uint8Array(n) | |||||
while (n--) { | |||||
u8arr[n] = bstr.charCodeAt(n) | |||||
} | |||||
return new File([u8arr], `${filename}.${suffix}`, { | |||||
type: mime | |||||
}) | |||||
}, | |||||
}, | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
.home_wrapper { | |||||
background: #e9e9e9; | |||||
min-height: 100vh; | |||||
width: 100vw; | |||||
.header_main { | |||||
height: 116px; | |||||
background: url('../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
position: fixed; | |||||
top: 0; | |||||
left: 0; | |||||
width: 100%; | |||||
font-size: 36px; | |||||
line-height: 116px; | |||||
text-align: center; | |||||
color: #fff; | |||||
position: relative; | |||||
.return_btn { | |||||
width: 24px; | |||||
height: 43.2px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||||
background-size: 20px 36px; | |||||
position: absolute; | |||||
left: 38px; | |||||
top: 36px; | |||||
} | |||||
.add_btn { | |||||
width: 56.4px; | |||||
height: 40.8px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat; | |||||
background-size: 47px 34px; | |||||
position: absolute; | |||||
right: 38px; | |||||
top: 36px; | |||||
} | |||||
} | |||||
.record_main { | |||||
padding: 30px 22px; | |||||
.record_det { | |||||
height: 38px; | |||||
line-height: 38px; | |||||
display: flex; | |||||
justify-content: space-between; | |||||
.year_l { | |||||
font-size: 30px; | |||||
display: flex; | |||||
align-items: center; | |||||
color: #858585; | |||||
.unit { | |||||
padding-left: 5px; | |||||
} | |||||
.icon { | |||||
width: 23px; | |||||
height: 12px; | |||||
display: block; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_1.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
margin-bottom: 4px; | |||||
margin-right: 8px; | |||||
&.zk { | |||||
transform: rotate(0deg) | |||||
} | |||||
&.ss { | |||||
transform: rotate(180deg) | |||||
} | |||||
} | |||||
} | |||||
.total_r { | |||||
font-size: 26px; | |||||
letter-spacing: 2px; | |||||
} | |||||
} | |||||
.record_list { | |||||
display: flex; | |||||
flex-flow: wrap; | |||||
margin-top: 12PX; | |||||
.flex_block { | |||||
font-size: 30px; | |||||
color: #878787; | |||||
padding-right: 30px; | |||||
&.current { | |||||
color: #4199fe; | |||||
font-weight: bold; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.list_main { | |||||
padding: 0 22px; | |||||
margin-top: 15PX; | |||||
.item { | |||||
border-radius: 30px; | |||||
background: #fff; | |||||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||||
padding: 25px 32px; | |||||
margin-bottom: 20px; | |||||
.info { | |||||
.title { | |||||
display: flex; | |||||
font-size: 32px; | |||||
align-items: center; | |||||
height: 58px; | |||||
.icon_box { | |||||
width: 34px; | |||||
display: block; | |||||
height: 30px; | |||||
background: url('../../assets/images/sunVillage_info/signature_icon_01.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
margin-right: 10px; | |||||
flex-shrink: 0; | |||||
} | |||||
.icon_box1 { | |||||
width: 34px; | |||||
display: block; | |||||
height: 30px; | |||||
background: url('../../assets/images/sunVillage_info/signature_icon_01g.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
margin-right: 10px; | |||||
flex-shrink: 0; | |||||
} | |||||
.news_title { | |||||
display: -webkit-box; | |||||
-webkit-box-orient: vertical; | |||||
-webkit-line-clamp: 1; | |||||
word-break: break-all; | |||||
overflow: hidden; | |||||
} | |||||
.tips_mark { | |||||
background: #ffedcd; | |||||
border-radius: 8px; | |||||
font-size: 24px; | |||||
color: #f8a83d; | |||||
text-align: center; | |||||
line-height: 34px; | |||||
flex-shrink: 0; | |||||
padding: 0 5Px; | |||||
margin-left: auto; | |||||
} | |||||
.tips_mark2 { | |||||
background: #eb1616; | |||||
border-radius: 8px; | |||||
font-size: 24px; | |||||
color: #ffffff; | |||||
text-align: center; | |||||
line-height: 34px; | |||||
flex-shrink: 0; | |||||
padding: 0 5Px; | |||||
margin-left: 10PX; | |||||
} | |||||
} | |||||
.time { | |||||
font-size: 16PX; | |||||
color: #333333; | |||||
display: flex; | |||||
align-items: center; | |||||
margin-top: 5PX; | |||||
justify-content: space-between; | |||||
.icon_time { | |||||
width: 25px; | |||||
height: 25px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_4.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
margin-right: 10px; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.operation { | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: right; | |||||
text-align: center; | |||||
border-radius: 30px; | |||||
background: #fff; | |||||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||||
height: 100%; | |||||
padding: 0 15Px; | |||||
margin-left: 10PX; | |||||
.opera_btn { | |||||
border-radius: 50%; | |||||
padding: 0 10px; | |||||
&.delete { | |||||
background: #df0707; | |||||
margin-left: 10PX; | |||||
.icon { | |||||
width: 22PX; | |||||
height: 29PX; | |||||
background: url('../../assets/images/sunVillage_info/signature_icon_03.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
display: block; | |||||
} | |||||
} | |||||
&.edit { | |||||
background: #79cf13; | |||||
margin-left: 10PX; | |||||
.icon { | |||||
width: 26PX; | |||||
height: 25PX; | |||||
background: url('../../assets/images/sunVillage_info/signature_icon_02.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
display: block; | |||||
} | |||||
} | |||||
&.view { | |||||
background: #3494ff; | |||||
margin-left: 10PX; | |||||
.icon { | |||||
width: 29PX; | |||||
height: 21PX; | |||||
background: url('../../assets/images/sunVillage_info/signature_icon_04.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
display: block; | |||||
} | |||||
} | |||||
&.list { | |||||
background: #79cf13; | |||||
margin-left: 10PX; | |||||
.icon { | |||||
width: 29px; | |||||
height: 21px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_10.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
display: block; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.bottom_tips { | |||||
font-size: 24px; | |||||
color: #a7a6a6; | |||||
text-align: center; | |||||
margin-top: 32px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_8.png') center center no-repeat; | |||||
background-size: 260px 2px; | |||||
.xs { | |||||
padding: 0 8px; | |||||
background: #e9e9e9; | |||||
} | |||||
} | |||||
.signature-box { | |||||
border: 1px dashed #666; | |||||
margin: 2px 20px; | |||||
height: 100%; | |||||
/*canvas{*/ | |||||
/* height: 100%!important;*/ | |||||
/*}*/ | |||||
} | |||||
.signature-footer { | |||||
transform: rotate(90deg); | |||||
width: auto; | |||||
position: absolute; | |||||
top: 50%; | |||||
left: 0PX; | |||||
.clearBtn { | |||||
margin-left: 15px; | |||||
} | |||||
} | |||||
.esigh-result { | |||||
margin: 15px 20px; | |||||
// height: 110px; | |||||
border: 1px solid #666; | |||||
font-size: 0; | |||||
.imgs { | |||||
width: 100%; | |||||
} | |||||
} | |||||
} | |||||
</style> |
@@ -0,0 +1,567 @@ | |||||
<template> | |||||
<div class="home_wrapper"> | |||||
<div | |||||
class="header_main" | |||||
:style="`background-image:url(${require(showBtn?'@/assets/images/sunVillage_info/list_head.png':'@/assets/images/sunVillage_info/list_head_red.png')})`" | |||||
> | |||||
承包合同 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
<!-- <div class="add_btn" @click="goAdd" v-show="showBtn"></div>--> | |||||
</div> | |||||
<div class="list_main"> | |||||
<van-list | |||||
v-model="loading" | |||||
:finished="finished" | |||||
finished-text="没有更多了" | |||||
@load="getList" | |||||
> | |||||
<van-swipe-cell v-for="item in applicationList" :key="item.id"> | |||||
<div class="item" @click="goDetail(item.id)"> | |||||
<div class="info"> | |||||
<div class="title"> | |||||
<i class="icon_box" v-if="item.firstSigning == null"></i> | |||||
<i class="icon_box1" v-if="item.firstSigning != null"></i> | |||||
<p class="news_title" :style="{'color': item.firstSigning != null ? '#2bc30c' : '#eb1616'}">{{item.cbhtbm}}</p> | |||||
<p class="tips_mark" | |||||
:style="{'color': item.firstSigning != null ? '#79bc29' : '#f8a83d','background': item.firstSigning != null ? '#e8ffcd' : '#ffedcd'}"> | |||||
{{item.signingMode}}</p> | |||||
<p class="tips_mark2" v-if="item.signingMode === '线上'" :style="{'background': item.firstSigning != null ? '#2bc30c' : '#eb1616'}">{{item.signingStatus}}</p> | |||||
</div> | |||||
<div class="time"> | |||||
<p style="color:#eb1616;">{{item.cbfmc}}</p> | |||||
<!-- <p>{{item.cbhtmc}}</p>--> | |||||
<p style="color:#eb1616;font-weight: bold;">{{item.htzmjm.toFixed(2)}} 亩</p> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<template #right> | |||||
<div class="operation"> | |||||
<div class="opera_btn" v-if="item.signingMode == '线上' && item.firstIsSign =='否'" | |||||
@click="openPopup(item.id)"> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_02.png" alt="" width="35"> | |||||
<p>签名</p> | |||||
</div> | |||||
<!-- <div class="opera_btn" v-if="item.signingMode == '线上' && item.attachement != null " @click="$router.push({path:'/sunVillage_info/list_signature_pdf',query: {id:item.id,type:$route.query.type}})"> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_03.png" alt="" width="35"> | |||||
<p>预览</p> | |||||
</div> --> | |||||
<div class="opera_btn"> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_03.png" alt="" width="35"> | |||||
<p>预览</p> | |||||
</div> | |||||
<div class="opera_btn" @click="openPopupFile(item.id)"> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | |||||
<p>附件</p> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
</van-swipe-cell> | |||||
</van-list> | |||||
</div> | |||||
<!-- 签字弹出层 --> | |||||
<van-popup v-model="show" closeable position="right" :style="{ height: '100%' }"> | |||||
<van-cell-group style="width: 100%;height:100%;overflow: hidden;padding-top: 10px;padding-bottom: 10px;"> | |||||
<div class="signature-box" @mousedown="canvasTTdown" @touchstart="canvasTTdown"> | |||||
<vue-esign | |||||
ref="esign" | |||||
class="mySign" | |||||
:width="500" | |||||
:height="height" | |||||
:isCrop="signature.isCrop" | |||||
:lineWidth="signature.lineWidth" | |||||
:lineColor="signature.lineColor" | |||||
:bgColor.sync="signature.bgColor" | |||||
/> | |||||
</div> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_10.png" id="canvasTT" | |||||
style="position:absolute;top: 50%;left: 50%;transform: translate(-50%,-50%)" alt=""> | |||||
<div class="signature-footer"> | |||||
<van-button @click="handleGenerate" type="info" size="small">保存签字</van-button> | |||||
<van-button @click="handleReset" class="clearBtn" type="info" plain size="small">清空画板</van-button> | |||||
</div> | |||||
</van-cell-group> | |||||
</van-popup> | |||||
<!-- 附件弹出层 --> | |||||
<van-popup v-model="showFile" round closeable position="bottom" :style="{ height: '30%' }" > | |||||
<div style="padding: 0 3%;"> | |||||
<van-divider>附件</van-divider> | |||||
<van-uploader v-model="fileList" accept="" :after-read="afterRead" @delete="deleteFile" /> <!-- accept=".jpg, .gif, .png, .jpeg, .txt, .pdf, .doc, .docx, .xls, .xlsx" --> | |||||
</div> | |||||
</van-popup> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import { listCbht, cbhtFirstSign } from "@/api/sunVillage_info/fixedAssets"; | |||||
import {attachmentList, commonAttach, systemAttachment} from "@/api/sunVillage_info/fixedAssets"; | |||||
import request from "@/utils/request"; | |||||
import vueEsign from "vue-esign"; | |||||
import signatureUploadSignature from "@/views/yinnong/signatureUploadSignature"; | |||||
import $ from "jquery"; | |||||
export default { | |||||
name: "sunVillageInfoListCbht", | |||||
components: {vueEsign, signatureUploadSignature}, | |||||
data() { | |||||
return { | |||||
applicationList: [], | |||||
loading: false, | |||||
finished: false, | |||||
show: false, | |||||
showFile: false, | |||||
fileList: [], | |||||
listLength: '0', | |||||
queryParams: { | |||||
pageNum: 1, | |||||
pageSize: 10, | |||||
translate_dict: 1, | |||||
}, | |||||
showBtn: true, | |||||
signatureImg: '', | |||||
//电子签名 | |||||
signature: { | |||||
lineWidth: 6, // 画笔的线条粗细 | |||||
lineColor: "#000000", // 画笔的颜色 | |||||
bgColor: "", // 画布的背景颜色 | |||||
resultImg: "", // 最终画布生成的base64图片 | |||||
isCrop: false, // 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | |||||
}, | |||||
signaId: '', | |||||
height: null | |||||
}; | |||||
}, | |||||
created() { | |||||
if (this.$route.query.type == 'code') { | |||||
this.showBtn = false; | |||||
} | |||||
this.height = window.screen.height * 1.28 - 20; | |||||
}, | |||||
methods: { | |||||
canvasTTdown() { | |||||
$('#canvasTT').css('display', 'none'); | |||||
}, | |||||
getList() { | |||||
listCbht(this.queryParams).then(response => { | |||||
response.rows.forEach(item => { | |||||
this.applicationList.push(item); | |||||
}); | |||||
if (this.applicationList.length >= response.total) { | |||||
this.finished = true; | |||||
return; | |||||
} else { | |||||
this.loading = false; | |||||
this.queryParams.pageNum += 1; | |||||
} | |||||
}); | |||||
}, | |||||
goDetail(id) { | |||||
this.$router.push({ | |||||
path: '/sunVillage_info/list_cbht_detail', | |||||
query: { id: id } | |||||
}) | |||||
}, | |||||
openPopup(id, url) { | |||||
this.show = true; | |||||
this.signaId = id; | |||||
}, | |||||
openPopupFile(id){ | |||||
this.fileList = []; | |||||
this.signaId = id; | |||||
this.showFile = true; | |||||
let queryParams = { | |||||
tableId: id, | |||||
tableName: 't_sys_cbht', | |||||
}; | |||||
attachmentList(queryParams).then(response => { | |||||
response.rows.map(res => { | |||||
// let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL | |||||
this.fileList.push({ | |||||
url: '/api'+res.fileUrl, | |||||
file: new File([], res.fileName,{}), | |||||
id: res.id | |||||
}); | |||||
}) | |||||
}); | |||||
}, | |||||
afterRead(file) { | |||||
// 此时可以自行将文件上传至服务器 | |||||
let params = new FormData(); | |||||
params.append("tableId", this.signaId); | |||||
params.append("tableName", "t_sys_cbht"); | |||||
params.append("bizPath", "service"); | |||||
params.append("fileType", '0'); | |||||
params.append("file", file.file); | |||||
commonAttach(params).then(response => { | |||||
this.$notify({ type: 'success', message: '上传成功' }); | |||||
}); | |||||
}, | |||||
deleteFile(file){ | |||||
systemAttachment(file.id).then(res => { | |||||
this.$notify({ type: 'success', message: '删除成功' }); | |||||
}); | |||||
}, | |||||
signaImgFun(url) { | |||||
this.signatureImg = url; | |||||
}, | |||||
// 清空画板 | |||||
handleReset() { | |||||
this.$refs.esign.reset(); | |||||
$('#canvasTT').css('display', 'block') | |||||
}, | |||||
// 生成签字图 | |||||
handleGenerate() { | |||||
this.$refs.esign | |||||
.generate() // 使用生成器调用把签字的图片转换成为base64图片格式 | |||||
.then((res) => { | |||||
this.signature.resultImg = res; | |||||
let wj = this.dataURLtoBlob(res); | |||||
let param = new FormData(); // 创建form对象 | |||||
param.append('file', wj); // 通过append向form对象添加数据 | |||||
param.append('date', this.format(new Date(), 'yyyy-MM-dd')); // 通过append向form对象添加数据 | |||||
cbhtFirstSign(param, this.signaId).then(response => { | |||||
this.$notify({type: 'success', message: '签字成功'}); | |||||
this.show = false; | |||||
location.reload(); | |||||
}); | |||||
}) | |||||
.catch((err) => { | |||||
// 画布没有签字时会执行这里提示一下 | |||||
this.$toast.fail('请签名后再保存签字'); | |||||
}); | |||||
}, | |||||
dataURLtoBlob(dataurl, filename = 'file') { | |||||
let arr = dataurl.split(',') | |||||
let mime = arr[0].match(/:(.*?);/)[1] | |||||
let suffix = mime.split('/')[1] | |||||
let bstr = atob(arr[1]) | |||||
let n = bstr.length | |||||
let u8arr = new Uint8Array(n) | |||||
while (n--) { | |||||
u8arr[n] = bstr.charCodeAt(n) | |||||
} | |||||
return new File([u8arr], `${filename}.${suffix}`, { | |||||
type: mime | |||||
}) | |||||
}, | |||||
}, | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
.home_wrapper { | |||||
background: #e9e9e9; | |||||
min-height: 100vh; | |||||
width: 100vw; | |||||
.header_main { | |||||
height: 116px; | |||||
background: url('../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
position: fixed; | |||||
top: 0; | |||||
left: 0; | |||||
width: 100%; | |||||
font-size: 36px; | |||||
line-height: 116px; | |||||
text-align: center; | |||||
color: #fff; | |||||
position: relative; | |||||
.return_btn { | |||||
width: 24px; | |||||
height: 43.2px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||||
background-size: 20px 36px; | |||||
position: absolute; | |||||
left: 38px; | |||||
top: 36px; | |||||
} | |||||
.add_btn { | |||||
width: 56.4px; | |||||
height: 40.8px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat; | |||||
background-size: 47px 34px; | |||||
position: absolute; | |||||
right: 38px; | |||||
top: 36px; | |||||
} | |||||
} | |||||
.record_main { | |||||
padding: 30px 22px; | |||||
.record_det { | |||||
height: 38px; | |||||
line-height: 38px; | |||||
display: flex; | |||||
justify-content: space-between; | |||||
.year_l { | |||||
font-size: 30px; | |||||
display: flex; | |||||
align-items: center; | |||||
color: #858585; | |||||
.unit { | |||||
padding-left: 5px; | |||||
} | |||||
.icon { | |||||
width: 23px; | |||||
height: 12px; | |||||
display: block; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_1.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
margin-bottom: 4px; | |||||
margin-right: 8px; | |||||
&.zk { | |||||
transform: rotate(0deg) | |||||
} | |||||
&.ss { | |||||
transform: rotate(180deg) | |||||
} | |||||
} | |||||
} | |||||
.total_r { | |||||
font-size: 26px; | |||||
letter-spacing: 2px; | |||||
} | |||||
} | |||||
.record_list { | |||||
display: flex; | |||||
flex-flow: wrap; | |||||
margin-top: 12PX; | |||||
.flex_block { | |||||
font-size: 30px; | |||||
color: #878787; | |||||
padding-right: 30px; | |||||
&.current { | |||||
color: #4199fe; | |||||
font-weight: bold; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.list_main { | |||||
padding: 0 22px; | |||||
margin-top: 15PX; | |||||
.item { | |||||
border-radius: 30px; | |||||
background: #fff; | |||||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||||
padding: 25px 32px; | |||||
margin-bottom: 20px; | |||||
.info { | |||||
.title { | |||||
display: flex; | |||||
font-size: 32px; | |||||
align-items: center; | |||||
height: 58px; | |||||
.icon_box { | |||||
width: 34px; | |||||
display: block; | |||||
height: 30px; | |||||
background: url('../../assets/images/sunVillage_info/signature_icon_01.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
margin-right: 10px; | |||||
flex-shrink: 0; | |||||
} | |||||
.icon_box1 { | |||||
width: 34px; | |||||
display: block; | |||||
height: 30px; | |||||
background: url('../../assets/images/sunVillage_info/signature_icon_01g.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
margin-right: 10px; | |||||
flex-shrink: 0; | |||||
} | |||||
.news_title { | |||||
display: -webkit-box; | |||||
-webkit-box-orient: vertical; | |||||
-webkit-line-clamp: 1; | |||||
word-break: break-all; | |||||
overflow: hidden; | |||||
} | |||||
.tips_mark { | |||||
background: #ffedcd; | |||||
border-radius: 8px; | |||||
font-size: 24px; | |||||
color: #f8a83d; | |||||
text-align: center; | |||||
line-height: 34px; | |||||
flex-shrink: 0; | |||||
padding: 0 5Px; | |||||
margin-left: auto; | |||||
} | |||||
.tips_mark2 { | |||||
background: #eb1616; | |||||
border-radius: 8px; | |||||
font-size: 24px; | |||||
color: #ffffff; | |||||
text-align: center; | |||||
line-height: 34px; | |||||
flex-shrink: 0; | |||||
padding: 0 5Px; | |||||
margin-left: 10PX; | |||||
} | |||||
} | |||||
.time { | |||||
font-size: 16PX; | |||||
color: #333333; | |||||
display: flex; | |||||
align-items: center; | |||||
margin-top: 5PX; | |||||
justify-content: space-between; | |||||
.icon_time { | |||||
width: 25px; | |||||
height: 25px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_4.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
margin-right: 10px; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.operation { | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: right; | |||||
text-align: center; | |||||
border-radius: 30px; | |||||
background: #fff; | |||||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||||
height: 100%; | |||||
padding: 0 15Px; | |||||
margin-left: 10PX; | |||||
.opera_btn { | |||||
border-radius: 50%; | |||||
padding: 0 10px; | |||||
&.delete { | |||||
background: #df0707; | |||||
margin-left: 10PX; | |||||
.icon { | |||||
width: 22PX; | |||||
height: 29PX; | |||||
background: url('../../assets/images/sunVillage_info/signature_icon_03.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
display: block; | |||||
} | |||||
} | |||||
&.edit { | |||||
background: #79cf13; | |||||
margin-left: 10PX; | |||||
.icon { | |||||
width: 26PX; | |||||
height: 25PX; | |||||
background: url('../../assets/images/sunVillage_info/signature_icon_02.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
display: block; | |||||
} | |||||
} | |||||
&.view { | |||||
background: #3494ff; | |||||
margin-left: 10PX; | |||||
.icon { | |||||
width: 29PX; | |||||
height: 21PX; | |||||
background: url('../../assets/images/sunVillage_info/signature_icon_04.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
display: block; | |||||
} | |||||
} | |||||
&.list { | |||||
background: #79cf13; | |||||
margin-left: 10PX; | |||||
.icon { | |||||
width: 29px; | |||||
height: 21px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_10.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
display: block; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.bottom_tips { | |||||
font-size: 24px; | |||||
color: #a7a6a6; | |||||
text-align: center; | |||||
margin-top: 32px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_8.png') center center no-repeat; | |||||
background-size: 260px 2px; | |||||
.xs { | |||||
padding: 0 8px; | |||||
background: #e9e9e9; | |||||
} | |||||
} | |||||
.signature-box { | |||||
border: 1px dashed #666; | |||||
margin: 2px 20px; | |||||
height: 100%; | |||||
/*canvas{*/ | |||||
/* height: 100%!important;*/ | |||||
/*}*/ | |||||
} | |||||
.signature-footer { | |||||
transform: rotate(90deg); | |||||
width: auto; | |||||
position: absolute; | |||||
top: 50%; | |||||
left: 0PX; | |||||
.clearBtn { | |||||
margin-left: 15px; | |||||
} | |||||
} | |||||
.esigh-result { | |||||
margin: 15px 20px; | |||||
// height: 110px; | |||||
border: 1px solid #666; | |||||
font-size: 0; | |||||
.imgs { | |||||
width: 100%; | |||||
} | |||||
} | |||||
} | |||||
</style> |
@@ -0,0 +1,206 @@ | |||||
<template> | |||||
<div class="home_wrapper"> | |||||
<div class="header_main"> | |||||
承包合同详情 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
</div> | |||||
<div class="list_main"> | |||||
<van-divider>承包合同合同信息</van-divider> | |||||
<van-field v-model="form.cbhtbm" label="承包合同编码" placeholder="承包合同编码" input-align="right" :border="false"/> | |||||
<van-field v-model="form.ycbhtbm" label="原承包合同编码" placeholder="原承包合同编码" input-align="right" :border="false"/> | |||||
<van-field v-model="form.cbhtmc" label="承包合同名称" placeholder="承包合同名称" input-align="right" :border="false"/> | |||||
<van-field v-model="form.cbflx" label="承包方类型" placeholder="承包方类型" input-align="right" :border="false"/> | |||||
<van-field v-model="form.cbfbm" label="承包方编码" placeholder="承包方编码" input-align="right" :border="false"/> | |||||
<van-field v-model="form.cbfmc" label="承包方名称" placeholder="承包方名称" input-align="right" :border="false"/> | |||||
<van-field v-model="form.cbfs" label="承包方式" placeholder="承包方式" input-align="right" :border="false"/> | |||||
<van-field v-model="form.cbdkzs" label="承包地块总数" placeholder="承包地块总数" input-align="right" :border="false"/> | |||||
<van-field v-model="form.cbqxq" label="承包期限起" placeholder="承包期限起" input-align="right" :border="false"/> | |||||
<van-field v-model="form.cbqxz" label="承包期限止" placeholder="承包期限止" input-align="right" :border="false"/> | |||||
<van-field v-model="form.htzmjm" label="合同总面积(亩)" placeholder="合同总面积(亩)" input-align="right" :border="false"/> | |||||
<van-field v-model="form.yhtzmjm" label="原合同总面积(亩)" placeholder="原合同总面积(亩)" input-align="right" :border="false"/> | |||||
<van-field v-model="form.qdsj" label="签订时间" placeholder="签订时间" input-align="right" :border="false"/> | |||||
<van-field v-model="form.cbhtzt" label="承包合同状态" placeholder="承包合同状态" input-align="right" :border="false"/> | |||||
<van-field v-model="form.signingMode" label="签订方式" placeholder="签订方式" input-align="right" :border="false"/> | |||||
<van-field v-model="form.signingStatus" label="签订状态" placeholder="签订状态" input-align="right" :border="false"/> | |||||
<!-- <van-field v-model="form.contractRemark" label="合同备注" placeholder="合同备注" input-align="right" :border="false"/>--> | |||||
<van-divider>甲方信息</van-divider> | |||||
<van-field v-model="form.firstIsSign" label="甲方已签" placeholder="甲方已签" input-align="right" :border="false"/> | |||||
<van-field v-model="form.firstPartyAt" label="甲方签字日期" placeholder="甲方签字日期" input-align="right" :border="false"/> | |||||
<van-field label="甲方签字" input-align="right" :border="false" /> | |||||
<img :src="'/api'+form.firstSigning" width="100%" alt="" v-if="form.firstSigning" /> | |||||
<van-field label="村级公章" input-align="right" :border="false" /> | |||||
<img :src="'/api'+form.firstSeal" width="100%" alt="" v-if="form.firstSeal" /> | |||||
<van-divider>乙方信息</van-divider> | |||||
<van-field v-model="form.secondIsSign" label="乙方已签" placeholder="乙方已签" input-align="right" :border="false" /> | |||||
<van-field v-model="form.secondPartyAt" label="乙方签字日期" placeholder="乙方签字日期" input-align="right" :border="false" /> | |||||
<van-field label="乙方签字" input-align="right" :border="false" /> | |||||
<img :src="'/api'+form.secondSigning" width="100%" alt="" v-if="form.secondSigning"> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import {getCbht} from "@/api/sunVillage_info/fixedAssets"; | |||||
export default { | |||||
name: "sunVillageInfoListCbhtDetail", | |||||
data() { | |||||
return { | |||||
form: {}, | |||||
}; | |||||
}, | |||||
created() { | |||||
this.getDetail(); | |||||
}, | |||||
methods: { | |||||
getDetail() { | |||||
let query = { | |||||
translate_dict: 1 | |||||
}; | |||||
getCbht(query, this.$route.query.id).then((res) => { | |||||
if (res.code === 200) { | |||||
this.form = res.data; | |||||
} | |||||
}) | |||||
}, | |||||
}, | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
/deep/ .van-button--primary { | |||||
background: url("../../assets/images/sunVillage_info/btn_bg.png") no-repeat; | |||||
background-size: 100% 100%; | |||||
border: none; | |||||
} | |||||
.home_wrapper { | |||||
background: #e9e9e9; | |||||
min-height: 100vh; | |||||
width: 100vw; | |||||
.header_main { | |||||
height: 116px; | |||||
background: url('../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
position: fixed; | |||||
top: 0; | |||||
left: 0; | |||||
width: 100%; | |||||
font-size: 36px; | |||||
line-height: 116px; | |||||
text-align: center; | |||||
color: #fff; | |||||
position: relative; | |||||
.return_btn { | |||||
width: 24px; | |||||
height: 43.2px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||||
background-size: 20px 36px; | |||||
position: absolute; | |||||
left: 38px; | |||||
top: 36px; | |||||
} | |||||
} | |||||
.release_head { | |||||
height: 90px; | |||||
padding: 0 23px; | |||||
display: flex; | |||||
align-items: center; | |||||
font-size: 26px; | |||||
color: #929292; | |||||
.people { | |||||
flex: 1; | |||||
display: flex; | |||||
align-items: center; | |||||
.icon { | |||||
width: 24px; | |||||
height: 21px; | |||||
background: url('../../assets/images/sunVillage_info/details_icon_1.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
display: block; | |||||
margin-right: 8px; | |||||
} | |||||
} | |||||
.time { | |||||
flex: 1; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: flex-end; | |||||
.icon { | |||||
width: 25px; | |||||
height: 25px; | |||||
background: url('../../assets/images/sunVillage_info/details_icon_2.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
display: block; | |||||
margin-right: 8px; | |||||
} | |||||
} | |||||
} | |||||
.release_conetnt { | |||||
padding: 0 22px; | |||||
font-size: 32px; | |||||
color: #252525; | |||||
line-height: 44px; | |||||
img { | |||||
max-width: 100%; | |||||
margin-bottom: 16px; | |||||
} | |||||
p { | |||||
margin-bottom: 16px; | |||||
} | |||||
} | |||||
.list_main { | |||||
padding: 25px; | |||||
background: #ffffff; | |||||
width: 94%; | |||||
margin: 25px auto 0; | |||||
border-radius: 15PX; | |||||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||||
} | |||||
.titBox { | |||||
display: flex; | |||||
align-items: center; | |||||
} | |||||
.tit { | |||||
font-size: 36px; | |||||
font-weight: bold; | |||||
} | |||||
/deep/ .van-cell { | |||||
padding-left: 0 !important; | |||||
padding-right: 0 !important; | |||||
padding-bottom: 0 !important; | |||||
} | |||||
/deep/ .van-field__label { | |||||
/*padding-left: 10PX;*/ | |||||
width: auto; | |||||
display: flex; | |||||
align-items: center; | |||||
} | |||||
/deep/ .van-cell--required::before { | |||||
left: 85PX; | |||||
} | |||||
/deep/ .van-field__error-message { | |||||
display: none; | |||||
} | |||||
} | |||||
</style> |
@@ -4,7 +4,7 @@ | |||||
class="header_main" | class="header_main" | ||||
:style="`background-image:url(${require(showBtn?'@/assets/images/sunVillage_info/list_head.png':'@/assets/images/sunVillage_info/list_head_red.png')})`" | :style="`background-image:url(${require(showBtn?'@/assets/images/sunVillage_info/list_head.png':'@/assets/images/sunVillage_info/list_head_red.png')})`" | ||||
> | > | ||||
标段合同网签 | |||||
标段合同 | |||||
<div class="return_btn" @click="onClickLeft"></div> | <div class="return_btn" @click="onClickLeft"></div> | ||||
<!-- <div class="add_btn" @click="goAdd" v-show="showBtn"></div>--> | <!-- <div class="add_btn" @click="goAdd" v-show="showBtn"></div>--> | ||||
</div> | </div> | ||||
@@ -16,7 +16,7 @@ | |||||
finished-text="没有更多了" | finished-text="没有更多了" | ||||
@load="getList" | @load="getList" | ||||
> | > | ||||
<van-swipe-cell v-for="item in applicationList" :key="item.id" :disabled="item.firstIsSign === '是'"> | |||||
<van-swipe-cell v-for="item in applicationList" :key="item.id"> | |||||
<div class="item" @click="goDetail(item.id)"> | <div class="item" @click="goDetail(item.id)"> | ||||
<div class="info"> | <div class="info"> | ||||
<div class="title"> | <div class="title"> | ||||
@@ -26,7 +26,7 @@ | |||||
<p class="tips_mark" | <p class="tips_mark" | ||||
:style="{'color': item.firstSigning != null ? '#79bc29' : '#f8a83d','background': item.firstSigning != null ? '#e8ffcd' : '#ffedcd'}"> | :style="{'color': item.firstSigning != null ? '#79bc29' : '#f8a83d','background': item.firstSigning != null ? '#e8ffcd' : '#ffedcd'}"> | ||||
{{item.signingMode}}</p> | {{item.signingMode}}</p> | ||||
<p class="tips_mark2" :style="{'background': item.firstSigning != null ? '#2bc30c' : '#eb1616'}">{{item.signingStatus}}</p> | |||||
<p class="tips_mark2" v-if="item.signingMode === '线上'" :style="{'background': item.firstSigning != null ? '#2bc30c' : '#eb1616'}">{{item.signingStatus}}</p> | |||||
</div> | </div> | ||||
<div class="time"> | <div class="time"> | ||||
<p>{{item.contractName}}</p> | <p>{{item.contractName}}</p> | ||||
@@ -41,10 +41,10 @@ | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_02.png" alt="" width="35"> | <img src="../../assets/images/sunVillage_info/signature_icon_02.png" alt="" width="35"> | ||||
<p>签名</p> | <p>签名</p> | ||||
</div> | </div> | ||||
<!-- <div class="opera_btn" v-if="item.signingMode == '线下' " @click="openPopupFile(item.attachement)"> | |||||
<div class="opera_btn" @click="openPopupFile(item.id)"> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | <img src="../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | ||||
<p>线下合同</p> | |||||
</div> --> | |||||
<p>附件</p> | |||||
</div> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
</van-swipe-cell> | </van-swipe-cell> | ||||
@@ -76,14 +76,19 @@ | |||||
</van-popup> | </van-popup> | ||||
<!-- 附件弹出层 --> | <!-- 附件弹出层 --> | ||||
<van-popup v-model="showFile" round closeable position="bottom" :style="{ height: '30%' }"> | |||||
<van-uploader v-model="fileList" multiple disabled :deletable="false" :show-upload="false"/> | |||||
<van-popup v-model="showFile" round closeable position="bottom" :style="{ height: '30%' }" > | |||||
<div style="padding: 0 3%;"> | |||||
<van-divider>附件</van-divider> | |||||
<van-uploader v-model="fileList" accept="" :after-read="afterRead" @delete="deleteFile" /> <!-- accept=".jpg, .gif, .png, .jpeg, .txt, .pdf, .doc, .docx, .xls, .xlsx" --> | |||||
</div> | |||||
</van-popup> | </van-popup> | ||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import { listMultiplelots, multipleLotsFirstSign } from "@/api/sunVillage_info/fixedAssets"; | import { listMultiplelots, multipleLotsFirstSign } from "@/api/sunVillage_info/fixedAssets"; | ||||
import {attachmentList, commonAttach, systemAttachment} from "@/api/sunVillage_info/fixedAssets"; | |||||
import request from "@/utils/request"; | |||||
import vueEsign from "vue-esign"; | import vueEsign from "vue-esign"; | ||||
import signatureUploadSignature from "@/views/yinnong/signatureUploadSignature"; | import signatureUploadSignature from "@/views/yinnong/signatureUploadSignature"; | ||||
import $ from "jquery"; | import $ from "jquery"; | ||||
@@ -132,7 +137,9 @@ | |||||
}, | }, | ||||
getList() { | getList() { | ||||
listMultiplelots(this.queryParams).then(response => { | listMultiplelots(this.queryParams).then(response => { | ||||
this.applicationList = response.rows; | |||||
response.rows.forEach(item => { | |||||
this.applicationList.push(item); | |||||
}); | |||||
if (this.applicationList.length >= response.total) { | if (this.applicationList.length >= response.total) { | ||||
this.finished = true; | this.finished = true; | ||||
@@ -145,7 +152,7 @@ | |||||
}, | }, | ||||
goDetail(id) { | goDetail(id) { | ||||
this.$router.push({ | this.$router.push({ | ||||
path: '/sunVillage_info/list_multipleLots_add', | |||||
path: '/sunVillage_info/list_multipleLots_detail', | |||||
query: { id: id } | query: { id: id } | ||||
}) | }) | ||||
}, | }, | ||||
@@ -153,16 +160,41 @@ | |||||
this.show = true; | this.show = true; | ||||
this.signaId = id; | this.signaId = id; | ||||
}, | }, | ||||
openPopupFile(file) { | |||||
openPopupFile(id){ | |||||
this.fileList = []; | |||||
this.signaId = id; | |||||
this.showFile = true; | this.showFile = true; | ||||
if (!file) return; | |||||
let fileArray = file.split(','); | |||||
fileArray.map(res => { | |||||
this.fileList.push({ | |||||
url: '/api' + res, | |||||
isImage: true | |||||
let queryParams = { | |||||
tableId: id, | |||||
tableName: 't_transaction_multiplelots', | |||||
}; | |||||
attachmentList(queryParams).then(response => { | |||||
response.rows.map(res => { | |||||
// let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL | |||||
this.fileList.push({ | |||||
url: '/api'+res.fileUrl, | |||||
file: new File([], res.fileName,{}), | |||||
id: res.id | |||||
}); | |||||
}) | }) | ||||
}) | |||||
}); | |||||
}, | |||||
afterRead(file) { | |||||
// 此时可以自行将文件上传至服务器 | |||||
let params = new FormData(); | |||||
params.append("tableId", this.signaId); | |||||
params.append("tableName", "t_transaction_multiplelots"); | |||||
params.append("bizPath", "transaction"); | |||||
params.append("fileType", '0'); | |||||
params.append("file", file.file); | |||||
commonAttach(params).then(response => { | |||||
this.$notify({ type: 'success', message: '上传成功' }); | |||||
}); | |||||
}, | |||||
deleteFile(file){ | |||||
systemAttachment(file.id).then(res => { | |||||
this.$notify({ type: 'success', message: '删除成功' }); | |||||
}); | |||||
}, | }, | ||||
signaImgFun(url) { | signaImgFun(url) { | ||||
this.signatureImg = url; | this.signatureImg = url; | ||||
@@ -421,7 +453,7 @@ | |||||
.opera_btn { | .opera_btn { | ||||
border-radius: 50%; | border-radius: 50%; | ||||
padding: 0 10px; | |||||
&.delete { | &.delete { | ||||
background: #df0707; | background: #df0707; | ||||
margin-left: 10PX; | margin-left: 10PX; | ||||
@@ -0,0 +1,552 @@ | |||||
<template> | |||||
<div class="home_wrapper"> | |||||
<div | |||||
class="header_main" | |||||
:style="`background-image:url(${require(showBtn?'@/assets/images/sunVillage_info/list_head.png':'@/assets/images/sunVillage_info/list_head_red.png')})`" | |||||
> | |||||
标段合同 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
<!-- <div class="add_btn" @click="goAdd" v-show="showBtn"></div>--> | |||||
</div> | |||||
<div class="list_main"> | |||||
<van-list | |||||
v-model="loading" | |||||
:finished="finished" | |||||
finished-text="没有更多了" | |||||
@load="getList" | |||||
> | |||||
<!----1--> | |||||
<van-swipe-cell v-for="item in applicationList" :key="item.id" > | |||||
<div class="item" @click="goDetail(item.id)"> | |||||
<div class="info"> | |||||
<div class="title"> | |||||
<i class="icon_box" v-if="item.secondSigning==null"></i> | |||||
<i class="icon_box1" v-if="item.secondSigning!=null"></i> | |||||
<p class="news_title" :style="{'color': item.secondSigning!=null?'#2bc30c':'#eb1616'}">{{item.contractCode}}</p> | |||||
<p class="tips_mark" :style="{'color': item.secondSigning!=null?'#79bc29':'#f8a83d','background': item.secondSigning!=null?'#e8ffcd':'#ffedcd'}">{{item.signingMode}}</p> | |||||
<p class="tips_mark2" v-if="item.signingMode === '线上'" :style="{'background': item.secondSigning!=null?'#2bc30c':'#eb1616'}">{{item.secondIsSign === '是' ? '已签名' : '未签名'}}</p> | |||||
</div> | |||||
<div class="time"> | |||||
<p>{{item.contractName}}</p> | |||||
<p style="color:#eb1616;font-weight: bold;"><span style="font-size: 12px;">¥</span>{{item.logAmount.toFixed(2)}}</p> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<template #right> | |||||
<div class="operation"> | |||||
<div class="opera_btn" @click="openPopup(item.id)" v-if="item.signingMode == '线上' && item.secondIsSign === '否'"> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_02.png" alt="" width="35"> | |||||
<p>签名</p> | |||||
</div> | |||||
<div class="opera_btn" @click="openPopupFile(item.id)"> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | |||||
<p>附件</p> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
</van-swipe-cell> | |||||
</van-list> | |||||
</div> | |||||
<van-popup v-model="show" closeable position="right" :style="{ height: '100%' }" > | |||||
<van-cell-group style="width: 100%;height:100%;overflow: hidden;padding-top: 10px;padding-bottom: 10px;"> | |||||
<div class="signature-box" @mousedown="canvasTTdown" @touchstart="canvasTTdown"> | |||||
<vue-esign | |||||
ref="esign" | |||||
class="mySign" | |||||
:width="500" | |||||
:height="height" | |||||
:isCrop="signature.isCrop" | |||||
:lineWidth="signature.lineWidth" | |||||
:lineColor="signature.lineColor" | |||||
:bgColor.sync="signature.bgColor" | |||||
/> | |||||
</div> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_10.png" id="canvasTT" style="position:absolute;top: 50%;left: 50%;transform: translate(-50%,-50%)" alt=""> | |||||
<div class="signature-footer"> | |||||
<van-button @click="handleGenerate" type="info" size="small">保存签字</van-button> | |||||
<van-button @click="handleReset" class="clearBtn" type="info" plain size="small">清空画板</van-button> | |||||
</div> | |||||
</van-cell-group> | |||||
</van-popup> | |||||
<!-- 附件弹出层 --> | |||||
<van-popup v-model="showFile" round closeable position="bottom" :style="{ height: '30%' }" > | |||||
<div style="padding: 0 3%;"> | |||||
<van-divider>附件</van-divider> | |||||
<van-uploader v-model="fileList" accept="" :after-read="afterRead" @delete="deleteFile" /> <!-- accept=".jpg, .gif, .png, .jpeg, .txt, .pdf, .doc, .docx, .xls, .xlsx" --> | |||||
</div> | |||||
</van-popup> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import { listMultipleLotsNh, multipleLotsSecondSign } from "@/api/sunVillage_info/fixedAssets"; | |||||
import {attachmentList, commonAttach, systemAttachment} from "@/api/sunVillage_info/fixedAssets"; | |||||
import request from "@/utils/request"; | |||||
import vueEsign from "vue-esign"; | |||||
import signatureUploadSignature from "@/views/yinnong/signatureUploadSignature"; | |||||
import $ from "jquery"; | |||||
import Cookies from "js-cookie"; | |||||
export default { | |||||
name: "sunVillageInfoListMultipleLotsNh", | |||||
components: {vueEsign, signatureUploadSignature}, | |||||
data() { | |||||
return { | |||||
applicationList: [], | |||||
loading: false, | |||||
finished: false, | |||||
show: false, | |||||
showFile: false, | |||||
fileList: [], | |||||
listLength: '0', | |||||
queryParams: { | |||||
pageNum: 1, | |||||
pageSize: 10, | |||||
idcard: null, | |||||
translate_dict: 1, | |||||
}, | |||||
showBtn: true, | |||||
signatureImg: '', | |||||
//电子签名 | |||||
signature: { | |||||
lineWidth: 6, // 画笔的线条粗细 | |||||
lineColor: "#000000", // 画笔的颜色 | |||||
bgColor: "", // 画布的背景颜色 | |||||
resultImg: "", // 最终画布生成的base64图片 | |||||
isCrop: false, // 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | |||||
}, | |||||
signaId: '', | |||||
height: null | |||||
}; | |||||
}, | |||||
created() { | |||||
this.height = window.screen.height * 1.28 - 20; | |||||
this.queryParams.idcard = JSON.parse(Cookies.get('user')).idcard; | |||||
}, | |||||
methods: { | |||||
canvasTTdown() { | |||||
$('#canvasTT').css('display', 'none'); | |||||
}, | |||||
getList() { | |||||
listMultipleLotsNh(this.queryParams).then(response => { | |||||
response.rows.forEach(item => { | |||||
this.applicationList.push(item); | |||||
}); | |||||
if (this.applicationList.length >= response.total) { | |||||
this.finished = true; | |||||
return; | |||||
} else { | |||||
this.loading = false; | |||||
this.queryParams.pageNum += 1; | |||||
} | |||||
}); | |||||
}, | |||||
goDetail(id) { | |||||
this.$router.push({ | |||||
path: '/sunVillage_info/list_multipleLotsNh_detail', | |||||
query: { id: id } | |||||
}) | |||||
}, | |||||
openPopup(id, url) { | |||||
this.show = true; | |||||
this.signaId = id; | |||||
}, | |||||
openPopupFile(id){ | |||||
this.fileList = []; | |||||
this.signaId = id; | |||||
this.showFile = true; | |||||
let queryParams = { | |||||
tableId: id, | |||||
tableName: 't_transaction_multiplelotsnh', | |||||
}; | |||||
attachmentList(queryParams).then(response => { | |||||
response.rows.map(res => { | |||||
// let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL | |||||
this.fileList.push({ | |||||
url: '/api'+res.fileUrl, | |||||
file: new File([], res.fileName,{}), | |||||
id: res.id | |||||
}); | |||||
}) | |||||
}); | |||||
}, | |||||
afterRead(file) { | |||||
// 此时可以自行将文件上传至服务器 | |||||
let params = new FormData(); | |||||
params.append("tableId", this.signaId); | |||||
params.append("tableName", "t_transaction_multiplelotsnh"); | |||||
params.append("bizPath", "transaction"); | |||||
params.append("fileType", '0'); | |||||
params.append("file", file.file); | |||||
commonAttach(params).then(response => { | |||||
this.$notify({ type: 'success', message: '上传成功' }); | |||||
}); | |||||
}, | |||||
deleteFile(file){ | |||||
systemAttachment(file.id).then(res => { | |||||
this.$notify({ type: 'success', message: '删除成功' }); | |||||
}); | |||||
}, | |||||
signaImgFun(url) { | |||||
this.signatureImg = url; | |||||
}, | |||||
// 清空画板 | |||||
handleReset() { | |||||
this.$refs.esign.reset(); | |||||
$('#canvasTT').css('display', 'block') | |||||
}, | |||||
// 生成签字图 | |||||
handleGenerate() { | |||||
this.$refs.esign | |||||
.generate() // 使用生成器调用把签字的图片转换成为base64图片格式 | |||||
.then((res) => { | |||||
this.signature.resultImg = res; | |||||
let wj = this.dataURLtoBlob(res); | |||||
let param = new FormData() // 创建form对象 | |||||
param.append('file', wj) // 通过append向form对象添加数据 | |||||
param.append('date', this.format(new Date(), 'yyyy-MM-dd')) // 通过append向form对象添加数据 | |||||
multipleLotsSecondSign(param, this.signaId).then(response => { | |||||
this.$notify({type: 'success', message: '签字成功'}); | |||||
this.show = false; | |||||
location.reload(); | |||||
}); | |||||
}) | |||||
.catch((err) => { | |||||
// 画布没有签字时会执行这里提示一下 | |||||
this.$toast.fail('请签名后再保存签字'); | |||||
}); | |||||
}, | |||||
dataURLtoBlob(dataurl, filename = 'file') { | |||||
let arr = dataurl.split(',') | |||||
let mime = arr[0].match(/:(.*?);/)[1] | |||||
let suffix = mime.split('/')[1] | |||||
let bstr = atob(arr[1]) | |||||
let n = bstr.length | |||||
let u8arr = new Uint8Array(n) | |||||
while (n--) { | |||||
u8arr[n] = bstr.charCodeAt(n) | |||||
} | |||||
return new File([u8arr], `${filename}.${suffix}`, { | |||||
type: mime | |||||
}) | |||||
}, | |||||
}, | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
.home_wrapper { | |||||
background: #e9e9e9; | |||||
min-height: 100vh; | |||||
width: 100vw; | |||||
.header_main { | |||||
height: 116px; | |||||
background: url('../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
position: fixed; | |||||
top: 0; | |||||
left: 0; | |||||
width: 100%; | |||||
font-size: 36px; | |||||
line-height: 116px; | |||||
text-align: center; | |||||
color: #fff; | |||||
position: relative; | |||||
.return_btn { | |||||
width: 24px; | |||||
height: 43.2px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||||
background-size: 20px 36px; | |||||
position: absolute; | |||||
left: 38px; | |||||
top: 36px; | |||||
} | |||||
.add_btn { | |||||
width: 56.4px; | |||||
height: 40.8px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat; | |||||
background-size: 47px 34px; | |||||
position: absolute; | |||||
right: 38px; | |||||
top: 36px; | |||||
} | |||||
} | |||||
.record_main { | |||||
padding: 30px 22px; | |||||
.record_det { | |||||
height: 38px; | |||||
line-height: 38px; | |||||
display: flex; | |||||
justify-content: space-between; | |||||
.year_l { | |||||
font-size: 30px; | |||||
display: flex; | |||||
align-items: center; | |||||
color: #858585; | |||||
.unit { | |||||
padding-left: 5px; | |||||
} | |||||
.icon { | |||||
width: 23px; | |||||
height: 12px; | |||||
display: block; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_1.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
margin-bottom: 4px; | |||||
margin-right: 8px; | |||||
&.zk { | |||||
transform: rotate(0deg) | |||||
} | |||||
&.ss { | |||||
transform: rotate(180deg) | |||||
} | |||||
} | |||||
} | |||||
.total_r { | |||||
font-size: 26px; | |||||
letter-spacing: 2px; | |||||
} | |||||
} | |||||
.record_list { | |||||
display: flex; | |||||
flex-flow: wrap; | |||||
margin-top: 12PX; | |||||
.flex_block { | |||||
font-size: 30px; | |||||
color: #878787; | |||||
padding-right: 30px; | |||||
&.current { | |||||
color: #4199fe; | |||||
font-weight: bold; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.list_main { | |||||
padding: 0 22px; | |||||
margin-top: 15PX; | |||||
.item { | |||||
border-radius: 30px; | |||||
background: #fff; | |||||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||||
padding: 25px 32px; | |||||
margin-bottom: 20px; | |||||
.info { | |||||
.title { | |||||
display: flex; | |||||
font-size: 32px; | |||||
align-items: center; | |||||
height: 58px; | |||||
.icon_box { | |||||
width: 34px; | |||||
display: block; | |||||
height: 30px; | |||||
background: url('../../assets/images/sunVillage_info/signature_icon_01.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
margin-right: 10px; | |||||
flex-shrink: 0; | |||||
} | |||||
.icon_box1 { | |||||
width: 34px; | |||||
display: block; | |||||
height: 30px; | |||||
background: url('../../assets/images/sunVillage_info/signature_icon_01g.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
margin-right: 10px; | |||||
flex-shrink: 0; | |||||
} | |||||
.news_title { | |||||
display: -webkit-box; | |||||
-webkit-box-orient: vertical; | |||||
-webkit-line-clamp: 1; | |||||
word-break: break-all; | |||||
overflow: hidden; | |||||
} | |||||
.tips_mark { | |||||
background: #ffedcd; | |||||
border-radius: 8px; | |||||
font-size: 24px; | |||||
color: #f8a83d; | |||||
text-align: center; | |||||
line-height: 34px; | |||||
flex-shrink: 0; | |||||
padding: 0 5Px; | |||||
margin-left: auto; | |||||
} | |||||
.tips_mark2 { | |||||
background: #eb1616; | |||||
border-radius: 8px; | |||||
font-size: 24px; | |||||
color: #ffffff; | |||||
text-align: center; | |||||
line-height: 34px; | |||||
flex-shrink: 0; | |||||
padding: 0 5Px; | |||||
margin-left: 10PX; | |||||
} | |||||
} | |||||
.time { | |||||
font-size: 16PX; | |||||
color: #333333; | |||||
display: flex; | |||||
align-items: center; | |||||
margin-top: 5PX; | |||||
justify-content: space-between; | |||||
.icon_time { | |||||
width: 25px; | |||||
height: 25px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_4.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
margin-right: 10px; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.operation { | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: right; | |||||
text-align: center; | |||||
border-radius: 30px; | |||||
background: #fff; | |||||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||||
height: 100%; | |||||
padding: 0 15Px; | |||||
margin-left: 10PX; | |||||
.opera_btn { | |||||
border-radius: 50%; | |||||
padding: 0 10px; | |||||
&.delete { | |||||
background: #df0707; | |||||
margin-left: 10PX; | |||||
.icon { | |||||
width: 22PX; | |||||
height: 29PX; | |||||
background: url('../../assets/images/sunVillage_info/signature_icon_03.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
display: block; | |||||
} | |||||
} | |||||
&.edit { | |||||
background: #79cf13; | |||||
margin-left: 10PX; | |||||
.icon { | |||||
width: 26PX; | |||||
height: 25PX; | |||||
background: url('../../assets/images/sunVillage_info/signature_icon_02.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
display: block; | |||||
} | |||||
} | |||||
&.view { | |||||
background: #3494ff; | |||||
margin-left: 10PX; | |||||
.icon { | |||||
width: 29PX; | |||||
height: 21PX; | |||||
background: url('../../assets/images/sunVillage_info/signature_icon_04.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
display: block; | |||||
} | |||||
} | |||||
&.list { | |||||
background: #79cf13; | |||||
margin-left: 10PX; | |||||
.icon { | |||||
width: 29px; | |||||
height: 21px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_10.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
display: block; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.bottom_tips { | |||||
font-size: 24px; | |||||
color: #a7a6a6; | |||||
text-align: center; | |||||
margin-top: 32px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_8.png') center center no-repeat; | |||||
background-size: 260px 2px; | |||||
.xs { | |||||
padding: 0 8px; | |||||
background: #e9e9e9; | |||||
} | |||||
} | |||||
.signature-box { | |||||
border: 1px dashed #666; | |||||
margin: 2px 20px; | |||||
height: 100%; | |||||
/*canvas{*/ | |||||
/* height: 100%!important;*/ | |||||
/*}*/ | |||||
} | |||||
.signature-footer { | |||||
transform: rotate(90deg); | |||||
width: auto; | |||||
position: absolute; | |||||
top: 50%; | |||||
left: 0PX; | |||||
.clearBtn { | |||||
margin-left: 15px; | |||||
} | |||||
} | |||||
.esigh-result { | |||||
margin: 15px 20px; | |||||
// height: 110px; | |||||
border: 1px solid #666; | |||||
font-size: 0; | |||||
.imgs { | |||||
width: 100%; | |||||
} | |||||
} | |||||
} | |||||
</style> |
@@ -0,0 +1,191 @@ | |||||
<template> | |||||
<div class="home_wrapper"> | |||||
<div class="header_main"> | |||||
标段农户详情 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
</div> | |||||
<div class="list_main"> | |||||
<van-divider>标段农户信息</van-divider> | |||||
<van-field v-model="form.contractCode" label="合同编号" placeholder="合同编号" input-align="right" :border="false"/> | |||||
<van-field v-model="form.contractName" label="合同名称" placeholder="合同名称" input-align="right" :border="false"/> | |||||
<van-field v-model="form.signingMode" label="签订方式" placeholder="签订方式" input-align="right" :border="false"/> | |||||
<van-field v-model="form.farmerCode" label="农户编码" placeholder="农户编码" input-align="right" :border="false"/> | |||||
<van-field v-model="form.memberName" label="农户姓名" placeholder="农户姓名" input-align="right" :border="false"/> | |||||
<van-field v-model="form.idcard" label="身份证号" placeholder="身份证号" input-align="right" :border="false"/> | |||||
<van-field v-model="form.phone" label="联系电话" placeholder="联系电话" input-align="right" :border="false"/> | |||||
<van-field v-model="form.lotArea" label="标段数量" placeholder="标段数量" input-align="right" :border="false"/> | |||||
<van-field v-model="form.lotUnit" label="数量单位" placeholder="数量单位" input-align="right" :border="false"/> | |||||
<van-field v-model="form.logAmount" label="金额(元)" placeholder="金额(元)" input-align="right" :border="false"/> | |||||
<van-field v-model="form.remark" label="备注" placeholder="备注" input-align="right" :border="false"/> | |||||
<van-divider>乙方信息</van-divider> | |||||
<van-field v-model="form.secondIsSign" label="乙方已签" placeholder="乙方已签" input-align="right" :border="false"/> | |||||
<van-field v-model="form.secondPartyAt" label="乙方签字日期" placeholder="乙方签字日期" input-align="right" :border="false"/> | |||||
<van-field label="乙方签字" input-align="right" :border="false" /> | |||||
<img :src="'/api'+form.secondSigning" width="100%" alt="" v-if="form.secondSigning" /> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import {getMultiplelotsNh} from "@/api/sunVillage_info/fixedAssets"; | |||||
export default { | |||||
name: "listMultipleLotsNhDetail", | |||||
data() { | |||||
return { | |||||
form: {}, | |||||
}; | |||||
}, | |||||
created() { | |||||
this.getDetail(); | |||||
}, | |||||
methods: { | |||||
getDetail() { | |||||
let query = { | |||||
translate_dict: 1 | |||||
}; | |||||
getMultiplelotsNh(query, this.$route.query.id).then((res) => { | |||||
if (res.code === 200) { | |||||
this.form = res.data; | |||||
} | |||||
}); | |||||
}, | |||||
}, | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
/deep/ .van-button--primary { | |||||
background: url("../../assets/images/sunVillage_info/btn_bg.png") no-repeat; | |||||
background-size: 100% 100%; | |||||
border: none; | |||||
} | |||||
.home_wrapper { | |||||
background: #e9e9e9; | |||||
min-height: 100vh; | |||||
width: 100vw; | |||||
.header_main { | |||||
height: 116px; | |||||
background: url('../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
position: fixed; | |||||
top: 0; | |||||
left: 0; | |||||
width: 100%; | |||||
font-size: 36px; | |||||
line-height: 116px; | |||||
text-align: center; | |||||
color: #fff; | |||||
position: relative; | |||||
.return_btn { | |||||
width: 24px; | |||||
height: 43.2px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||||
background-size: 20px 36px; | |||||
position: absolute; | |||||
left: 38px; | |||||
top: 36px; | |||||
} | |||||
} | |||||
.release_head { | |||||
height: 90px; | |||||
padding: 0 23px; | |||||
display: flex; | |||||
align-items: center; | |||||
font-size: 26px; | |||||
color: #929292; | |||||
.people { | |||||
flex: 1; | |||||
display: flex; | |||||
align-items: center; | |||||
.icon { | |||||
width: 24px; | |||||
height: 21px; | |||||
background: url('../../assets/images/sunVillage_info/details_icon_1.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
display: block; | |||||
margin-right: 8px; | |||||
} | |||||
} | |||||
.time { | |||||
flex: 1; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: flex-end; | |||||
.icon { | |||||
width: 25px; | |||||
height: 25px; | |||||
background: url('../../assets/images/sunVillage_info/details_icon_2.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
display: block; | |||||
margin-right: 8px; | |||||
} | |||||
} | |||||
} | |||||
.release_conetnt { | |||||
padding: 0 22px; | |||||
font-size: 32px; | |||||
color: #252525; | |||||
line-height: 44px; | |||||
img { | |||||
max-width: 100%; | |||||
margin-bottom: 16px; | |||||
} | |||||
p { | |||||
margin-bottom: 16px; | |||||
} | |||||
} | |||||
.list_main { | |||||
padding: 25px; | |||||
background: #ffffff; | |||||
width: 94%; | |||||
margin: 25px auto 0; | |||||
border-radius: 15PX; | |||||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||||
} | |||||
.titBox { | |||||
display: flex; | |||||
align-items: center; | |||||
} | |||||
.tit { | |||||
font-size: 36px; | |||||
font-weight: bold; | |||||
} | |||||
/deep/ .van-cell { | |||||
padding-left: 0 !important; | |||||
padding-right: 0 !important; | |||||
padding-bottom: 0 !important; | |||||
} | |||||
/deep/ .van-field__label { | |||||
/*padding-left: 10PX;*/ | |||||
width: auto; | |||||
display: flex; | |||||
align-items: center; | |||||
} | |||||
/deep/ .van-cell--required::before { | |||||
left: 85PX; | |||||
} | |||||
/deep/ .van-field__error-message { | |||||
display: none; | |||||
} | |||||
} | |||||
</style> |
@@ -22,32 +22,24 @@ | |||||
<van-field v-model="form.firstIsSign" label="甲方已签" placeholder="甲方已签" input-align="right" :border="false"/> | <van-field v-model="form.firstIsSign" label="甲方已签" placeholder="甲方已签" input-align="right" :border="false"/> | ||||
<van-field v-model="form.firstPartyAt" label="甲方签字日期" placeholder="甲方签字日期" input-align="right" :border="false"/> | <van-field v-model="form.firstPartyAt" label="甲方签字日期" placeholder="甲方签字日期" input-align="right" :border="false"/> | ||||
<van-field label="甲方签字" input-align="right" :border="false" /> | <van-field label="甲方签字" input-align="right" :border="false" /> | ||||
<img :src="'/api'+form.firstSigning" width="100%" alt="" v-if="form.firstSigning"> | |||||
<img :src="'/api'+form.firstSigning" width="100%" alt="" v-if="form.firstSigning" /> | |||||
<van-field label="村级公章" input-align="right" :border="false" /> | <van-field label="村级公章" input-align="right" :border="false" /> | ||||
<img :src="'/api'+form.firstSeal" width="100%" alt="" v-if="form.firstSeal"> | |||||
<img :src="'/api'+form.firstSeal" width="100%" alt="" v-if="form.firstSeal" /> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import {getMultiplelots} from "@/api/sunVillage_info/fixedAssets"; | import {getMultiplelots} from "@/api/sunVillage_info/fixedAssets"; | ||||
import Cookies from "js-cookie"; | |||||
export default { | export default { | ||||
name: "certificateList", | |||||
name: "listMultipleLotsDetail", | |||||
data() { | data() { | ||||
return { | return { | ||||
form: {}, | form: {}, | ||||
queryParams: { | |||||
bookId: '', | |||||
deptId: '' | |||||
}, | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
this.queryParams.bookId = Cookies.get('bookId'); | |||||
this.queryParams.deptId = Cookies.get('deptId'); | |||||
this.getDetail(); | this.getDetail(); | ||||
}, | }, | ||||
methods: { | methods: { |
@@ -4,7 +4,7 @@ | |||||
class="header_main" | class="header_main" | ||||
:style="`background-image:url(${require(showBtn?'@/assets/images/sunVillage_info/list_head.png':'@/assets/images/sunVillage_info/list_head_red.png')})`" | :style="`background-image:url(${require(showBtn?'@/assets/images/sunVillage_info/list_head.png':'@/assets/images/sunVillage_info/list_head_red.png')})`" | ||||
> | > | ||||
合同网签 | |||||
流转合同 | |||||
<div class="return_btn" @click="onClickLeft"></div> | <div class="return_btn" @click="onClickLeft"></div> | ||||
<!-- <div class="add_btn" @click="goAdd" v-show="showBtn"></div>--> | <!-- <div class="add_btn" @click="goAdd" v-show="showBtn"></div>--> | ||||
</div> | </div> | ||||
@@ -36,22 +36,21 @@ | |||||
<template #right> | <template #right> | ||||
<div class="operation"> | <div class="operation"> | ||||
<!-- delete 删除 edit编辑 view查看 list榜单 --> | <!-- delete 删除 edit编辑 view查看 list榜单 --> | ||||
<div class="opera_btn" v-if="item.signingMode == '线上' && item.firstIsSign =='否' " @click="openPopup(item.id)"> | <div class="opera_btn" v-if="item.signingMode == '线上' && item.firstIsSign =='否' " @click="openPopup(item.id)"> | ||||
<img src="../../assets/images/sunVillage_info/signature_icon_02.png" alt="" width="35"> | <img src="../../assets/images/sunVillage_info/signature_icon_02.png" alt="" width="35"> | ||||
<p>签名</p> | <p>签名</p> | ||||
</div> | </div> | ||||
<div class="opera_btn" style="margin: 0 10px;" v-if="item.signingMode == '线上' && item.attachement != null "> | |||||
<div class="opera_btn" v-if="item.signingMode == '线上' && item.attachement != null " @click="$router.push({path:'/sunVillage_info/list_signature_pdf',query: {id:item.id,type:$route.query.type}})"> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_03.png" alt="" width="35"> | <img src="../../assets/images/sunVillage_info/signature_icon_03.png" alt="" width="35"> | ||||
<p>预览</p> | <p>预览</p> | ||||
</div> | </div> | ||||
<div class="opera_btn" v-if="item.signingMode == '线上' && item.isArchive == '是' "> | <div class="opera_btn" v-if="item.signingMode == '线上' && item.isArchive == '是' "> | ||||
<a :href="'/api'+item.contractPdf" style="color: #333333"> | |||||
<a :href="'/api/profile/download'+item.contractPdf" style="color: #333333"> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | <img src="../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | ||||
<p>电子合同</p> | <p>电子合同</p> | ||||
</a> | </a> | ||||
</div> | </div> | ||||
<div class="opera_btn" v-if="item.signingMode == '线下' " @click="openPopupFile(item.attachement)"> | |||||
<div class="opera_btn" v-if="item.signingMode == '线下' " @click="openPopupFile(item.id)"> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | <img src="../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | ||||
<p>线下合同</p> | <p>线下合同</p> | ||||
</div> | </div> | ||||
@@ -85,14 +84,15 @@ | |||||
</van-popup> | </van-popup> | ||||
<!-- 附件弹出层 --> | <!-- 附件弹出层 --> | ||||
<van-popup v-model="showFile" round closeable position="bottom" :style="{ height: '30%' }" > | |||||
<van-uploader v-model="fileList" multiple disabled :deletable="false" :show-upload="false" /> | |||||
<van-popup v-model="showFile" round closeable position="bottom" :style="{ height: '40%' , padding: '5vh 2vh' }" > | |||||
<van-uploader v-if="fileList.length>0" v-model="fileList" multiple :deletable="false" :show-upload="false" /> | |||||
<van-empty v-else description="暂无附件" /> | |||||
</van-popup> | </van-popup> | ||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import { contractFirstList , signFirst } from "@/api/sunVillage_info/fixedAssets"; | |||||
import { contractFirstList , signFirst , contractFileList , previewContractFile } from "@/api/sunVillage_info/fixedAssets"; | |||||
import vueEsign from "vue-esign"; | import vueEsign from "vue-esign"; | ||||
import signatureUploadSignature from "@/views/yinnong/signatureUploadSignature"; | import signatureUploadSignature from "@/views/yinnong/signatureUploadSignature"; | ||||
import $ from "jquery"; | import $ from "jquery"; | ||||
@@ -125,7 +125,7 @@ | |||||
isCrop: false, // 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | isCrop: false, // 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | ||||
}, | }, | ||||
signaId:'', | signaId:'', | ||||
height:null | |||||
height:null, | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
@@ -159,17 +159,17 @@ | |||||
this.show = true; | this.show = true; | ||||
this.signaId = id; | this.signaId = id; | ||||
}, | }, | ||||
openPopupFile(file){ | |||||
openPopupFile(id){ | |||||
this.fileList = []; | |||||
this.showFile = true; | this.showFile = true; | ||||
console.log(file) | |||||
if (!file) return; | |||||
let fileArray = file.split(','); | |||||
fileArray.map(res=>{ | |||||
this.fileList.push({ | |||||
url: '/api'+res, | |||||
isImage: true | |||||
contractFileList(id).then(response => { | |||||
response.data.map(res=>{ | |||||
this.fileList.push({ | |||||
url: '/api'+res.fileUrl, | |||||
isImage: true | |||||
}) | |||||
}) | }) | ||||
}) | |||||
}); | |||||
}, | }, | ||||
signaImgFun(url){ | signaImgFun(url){ | ||||
this.signatureImg = url; | this.signatureImg = url; | ||||
@@ -407,6 +407,8 @@ | |||||
margin-left: 10PX; | margin-left: 10PX; | ||||
.opera_btn{ | .opera_btn{ | ||||
border-radius: 50%; | border-radius: 50%; | ||||
margin-left: 10PX; | |||||
&:first-child{margin: 0;} | |||||
&.delete{ | &.delete{ | ||||
background:#df0707; | background:#df0707; | ||||
margin-left: 10PX; | margin-left: 10PX; | ||||
@@ -0,0 +1,223 @@ | |||||
<template> | |||||
<div class="app-container"> | |||||
<div | |||||
class="header_main" | |||||
:style="`background-image:url(${require(showBtn?'@/assets/images/sunVillage_info/list_head.png':'@/assets/images/sunVillage_info/list_head_red.png')})`" | |||||
> | |||||
合同预览 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
<!-- <div class="add_btn" @click="goAdd" v-show="showBtn"></div>--> | |||||
</div> | |||||
<pdf v-for="item in numPages" :key="item" :src="url" :page="item" ref="pdf"></pdf> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import { } from "@/api/lawEnforcement/index"; | |||||
import pdf from 'vue-pdf' | |||||
import {previewContractFile} from "@/api/sunVillage_info/fixedAssets"; | |||||
export default { | |||||
components:{ | |||||
}, | |||||
name: "programmeDetail", | |||||
data() { | |||||
return { | |||||
url:'', | |||||
numPages: null, // pdf 总页数 | |||||
showBtn:true, | |||||
}; | |||||
}, | |||||
created() { | |||||
if (this.$route.query.type == 'code'){ | |||||
this.showBtn = false; | |||||
} | |||||
const id = this.$route.query.id; | |||||
const baseURL = process.env.VUE_APP_BASE_API; | |||||
previewContractFile(id).then(response => { | |||||
this.url = baseURL + response.msg; | |||||
let loadingTask = pdf.createLoadingTask(this.url) | |||||
loadingTask.promise.then(pdf => { | |||||
this.numPages = pdf.numPages | |||||
}) | |||||
}); | |||||
}, | |||||
methods: { | |||||
goBack(){ | |||||
window.history.go(-1) | |||||
} | |||||
}, | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
.app-container { | |||||
} | |||||
/deep/ .van-collapse-item__content{ | |||||
padding: 0; | |||||
} | |||||
.cf{ | |||||
padding: 0 3%; | |||||
margin-top: 20PX; | |||||
margin-bottom: 20PX; | |||||
.van-row{ | |||||
background: #F0F3F5; | |||||
display: flex; | |||||
align-items: center; | |||||
.van-col{ | |||||
padding: 5PX 0; | |||||
font-size: 12PX!important; | |||||
text-align: center; | |||||
p{ | |||||
color: #1D6FE9; | |||||
text-align: left; | |||||
font-size: .4rem; | |||||
} | |||||
} | |||||
&:first-child{ | |||||
background: transparent; | |||||
} | |||||
} | |||||
} | |||||
.header_main{ | |||||
height: 116px; | |||||
background: url('../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
position: fixed; | |||||
top: 0; | |||||
left: 0; | |||||
width: 100%; | |||||
font-size: 36px; | |||||
line-height: 116px; | |||||
text-align: center; | |||||
color: #fff; | |||||
position: relative; | |||||
.return_btn{ | |||||
width: 24px; | |||||
height: 43.2px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||||
background-size: 20px 36px; | |||||
position: absolute; | |||||
left: 38px; | |||||
top: 36px; | |||||
} | |||||
.add_btn{ | |||||
width: 56.4px; | |||||
height: 40.8px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat; | |||||
background-size: 47px 34px; | |||||
position: absolute; | |||||
right: 38px; | |||||
top: 36px; | |||||
} | |||||
} | |||||
/deep/ .van-radio--horizontal{ | |||||
margin-left: 0.32rem; | |||||
margin-right: 0; | |||||
} | |||||
.peopleList{ | |||||
padding: 0 3%; | |||||
text-align: left; | |||||
.van-row{ | |||||
border-bottom: 1px solid #dddddd; | |||||
display: flex; | |||||
align-items: center; | |||||
&:last-child{ | |||||
border: none; | |||||
} | |||||
.van-col--17{ | |||||
display: flex; | |||||
align-items: center; | |||||
p{ | |||||
margin-left: 10PX; | |||||
} | |||||
} | |||||
.van-col--7{ | |||||
display: flex; | |||||
justify-content: space-between; | |||||
p{ | |||||
color: #1D6FE9; | |||||
border: 1px solid #1D6FE9; | |||||
text-align: center; | |||||
border-radius: 15PX; | |||||
display: inline-block; | |||||
padding: 5px 15px; | |||||
} | |||||
} | |||||
.van-col{ | |||||
text-align: left; | |||||
font-size: 14PX; | |||||
color: #333333; | |||||
padding: 15PX 0; | |||||
img{ | |||||
display: block; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.main_title{ | |||||
font-size: 0.4rem; | |||||
color: #1D6FE9; | |||||
margin: 0.2rem 6%; | |||||
margin-top: 0; | |||||
position: relative; | |||||
} | |||||
.main_box{ | |||||
width: 96%; | |||||
margin: 0 auto; | |||||
border-radius: 10PX; | |||||
box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||||
overflow: hidden; | |||||
background-color: #FFF; | |||||
.van-icon{ | |||||
vertical-align: middle; | |||||
} | |||||
.custom-title{ | |||||
font-size: 17PX; | |||||
color: #333333; | |||||
vertical-align: middle; | |||||
line-height: 1; | |||||
position: relative; | |||||
} | |||||
.tap{ | |||||
color: #1D6FE9; | |||||
} | |||||
.bgBlue{ | |||||
display: block; | |||||
position: absolute; | |||||
width: 17PX; | |||||
height: 17PX; | |||||
border-radius: 50%; | |||||
background-color: rgba(29,111,233,0.26); | |||||
top: -2PX; | |||||
right: -8PX; | |||||
} | |||||
} | |||||
.submitButton{ | |||||
width: 40%; | |||||
margin: 0 auto; | |||||
background-image: linear-gradient(to right, #77A6EF , #2E79E9); | |||||
text-align: center; | |||||
color: #ffffff; | |||||
height: 70px; | |||||
line-height: 70px; | |||||
border-radius: 8PX; | |||||
margin-top: 25PX; | |||||
&:first-child{ | |||||
background-image: linear-gradient(to right, #21CAC3 , #17A8A2); | |||||
} | |||||
} | |||||
.submit_box{ | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: space-around; | |||||
} | |||||
.addFamily{ | |||||
position: absolute; | |||||
top: -2px; | |||||
right: 0; | |||||
border-radius: 50%; | |||||
} | |||||
</style> |
@@ -146,11 +146,6 @@ | |||||
} | } | ||||
}, | }, | ||||
handleLogin(values) { | handleLogin(values) { | ||||
console.log(this.formData.username) | |||||
console.log(this.formData.password) | |||||
console.log(this.formData.code) | |||||
if (this.formData.rememberMe) { | if (this.formData.rememberMe) { | ||||
Cookies.set("username", this.formData.username, { expires: 30 }); | Cookies.set("username", this.formData.username, { expires: 30 }); | ||||
Cookies.set("password", encrypt(this.formData.password), { expires: 30 }); | Cookies.set("password", encrypt(this.formData.password), { expires: 30 }); | ||||
@@ -120,7 +120,7 @@ | |||||
return false; | return false; | ||||
} | } | ||||
checkFarmer(this.formData).then(response => { | checkFarmer(this.formData).then(response => { | ||||
console.log(response.data) | |||||
// console.log(response.data) | |||||
if (response.code == 200){ | if (response.code == 200){ | ||||
Cookies.set("user", response.data, { expires: 30 }); | Cookies.set("user", response.data, { expires: 30 }); | ||||
this.$router.push({path:'/sunVillage_info/index_code_rights'}) | this.$router.push({path:'/sunVillage_info/index_code_rights'}) | ||||
@@ -39,15 +39,17 @@ | |||||
<img src="../../../assets/images/sunVillage_info/signature_icon_02.png" alt="" width="35"> | <img src="../../../assets/images/sunVillage_info/signature_icon_02.png" alt="" width="35"> | ||||
<p>签名</p> | <p>签名</p> | ||||
</div> | </div> | ||||
<div class="opera_btn" style="margin: 0 10px;" v-if="item.signingMode == '线上' && item.attachement != null "> | |||||
<div class="opera_btn" style="margin: 0 10px;" v-if="item.signingMode == '线上' && item.attachement != null " @click="$router.push({path:'/user/signature/signaturePdf',query: {id:item.id}})"> | |||||
<img src="../../../assets/images/sunVillage_info/signature_icon_03.png" alt="" width="35"> | <img src="../../../assets/images/sunVillage_info/signature_icon_03.png" alt="" width="35"> | ||||
<p>预览</p> | <p>预览</p> | ||||
</div> | </div> | ||||
<div class="opera_btn" v-if="item.signingMode == '线上' && item.isArchive == '是' "> | <div class="opera_btn" v-if="item.signingMode == '线上' && item.isArchive == '是' "> | ||||
<img src="../../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | |||||
<p>电子合同</p> | |||||
<a :href="'/api/profile/download'+item.contractPdf" style="color: #333333"> | |||||
<img src="../../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | |||||
<p>电子合同</p> | |||||
</a> | |||||
</div> | </div> | ||||
<div class="opera_btn" v-if="item.signingMode == '线下' "> | |||||
<div class="opera_btn" v-if="item.signingMode == '线下' " @click="openPopupFile(item.id)"> | |||||
<img src="../../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | <img src="../../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | ||||
<p>线下合同</p> | <p>线下合同</p> | ||||
</div> | </div> | ||||
@@ -77,11 +79,17 @@ | |||||
</div> | </div> | ||||
</van-cell-group> | </van-cell-group> | ||||
</van-popup> | </van-popup> | ||||
<!-- 附件弹出层 --> | |||||
<van-popup v-model="showFile" round closeable position="bottom" :style="{ height: '40%' , padding: '5vh 2vh' }" > | |||||
<van-uploader v-if="fileList.length>0" v-model="fileList" multiple :deletable="false" :show-upload="false" /> | |||||
<van-empty v-else description="暂无附件" /> | |||||
</van-popup> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import { contractSecondList , signSecond } from "@/api/sunVillage_info/fixedAssets"; | |||||
import {contractFileList, contractSecondList, signSecond} from "@/api/sunVillage_info/fixedAssets"; | |||||
import vueEsign from "vue-esign"; | import vueEsign from "vue-esign"; | ||||
import signatureUploadSignature from "@/views/yinnong/signatureUploadSignature"; | import signatureUploadSignature from "@/views/yinnong/signatureUploadSignature"; | ||||
import $ from 'jquery' | import $ from 'jquery' | ||||
@@ -94,6 +102,7 @@ | |||||
loading: false, | loading: false, | ||||
finished: false, | finished: false, | ||||
show: false, | show: false, | ||||
showFile: false, | |||||
fileList:[], | fileList:[], | ||||
listLength:'0', | listLength:'0', | ||||
queryParams:{ | queryParams:{ | ||||
@@ -147,6 +156,18 @@ | |||||
this.show = true; | this.show = true; | ||||
this.signaId = id; | this.signaId = id; | ||||
}, | }, | ||||
openPopupFile(id){ | |||||
this.fileList = []; | |||||
this.showFile = true; | |||||
contractFileList(id).then(response => { | |||||
response.data.map(res=>{ | |||||
this.fileList.push({ | |||||
url: '/api'+res.fileUrl, | |||||
isImage: true | |||||
}) | |||||
}) | |||||
}); | |||||
}, | |||||
signaImgFun(url){ | signaImgFun(url){ | ||||
this.signatureImg = url; | this.signatureImg = url; | ||||
// console.log(url) | // console.log(url) | ||||
@@ -0,0 +1,218 @@ | |||||
<template> | |||||
<div class="app-container"> | |||||
<van-nav-bar | |||||
title="合同预览" | |||||
left-arrow | |||||
fixed | |||||
placeholder | |||||
@click-left="onClickLeft" | |||||
/> | |||||
<pdf v-for="item in numPages" :key="item" :src="url" :page="item" ref="pdf"></pdf> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import { createAssistPDF,createSurveyPDF,createPutrecordPDF,createOnrecordPDF,createSamplingPDF,createTreatPDF,createDecisionPDF,createEvidencePDF,createExecutePDF,createEndingPDF,createBreakPDF,createResumePDF } from "@/api/lawEnforcement/index"; | |||||
import pdf from 'vue-pdf' | |||||
import {previewContractFile} from "@/api/sunVillage_info/fixedAssets"; | |||||
export default { | |||||
components:{ | |||||
}, | |||||
name: "programmeDetail", | |||||
data() { | |||||
return { | |||||
url:'', | |||||
numPages: null, // pdf 总页数 | |||||
}; | |||||
}, | |||||
created() { | |||||
const id = this.$route.query.id; | |||||
const baseURL = process.env.VUE_APP_BASE_API; | |||||
previewContractFile(id).then(response => { | |||||
this.url = baseURL + response.msg; | |||||
let loadingTask = pdf.createLoadingTask(this.url) | |||||
loadingTask.promise.then(pdf => { | |||||
this.numPages = pdf.numPages | |||||
}) | |||||
}); | |||||
}, | |||||
methods: { | |||||
goBack(){ | |||||
window.history.go(-1) | |||||
} | |||||
}, | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
.app-container { | |||||
} | |||||
/deep/ .van-collapse-item__content{ | |||||
padding: 0; | |||||
} | |||||
.cf{ | |||||
padding: 0 3%; | |||||
margin-top: 20PX; | |||||
margin-bottom: 20PX; | |||||
.van-row{ | |||||
background: #F0F3F5; | |||||
display: flex; | |||||
align-items: center; | |||||
.van-col{ | |||||
padding: 5PX 0; | |||||
font-size: 12PX!important; | |||||
text-align: center; | |||||
p{ | |||||
color: #1D6FE9; | |||||
text-align: left; | |||||
font-size: .4rem; | |||||
} | |||||
} | |||||
&:first-child{ | |||||
background: transparent; | |||||
} | |||||
} | |||||
} | |||||
.header_main{ | |||||
height: 116px; | |||||
background: url('../../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
position: fixed; | |||||
top: 0; | |||||
left: 0; | |||||
width: 100%; | |||||
font-size: 36px; | |||||
line-height: 116px; | |||||
text-align: center; | |||||
color: #fff; | |||||
position: relative; | |||||
.return_btn{ | |||||
width: 24px; | |||||
height: 43.2px; | |||||
background: url('../../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||||
background-size: 20px 36px; | |||||
position: absolute; | |||||
left: 38px; | |||||
top: 36px; | |||||
} | |||||
.add_btn{ | |||||
width: 56.4px; | |||||
height: 40.8px; | |||||
background: url('../../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat; | |||||
background-size: 47px 34px; | |||||
position: absolute; | |||||
right: 38px; | |||||
top: 36px; | |||||
} | |||||
} | |||||
/deep/ .van-radio--horizontal{ | |||||
margin-left: 0.32rem; | |||||
margin-right: 0; | |||||
} | |||||
.peopleList{ | |||||
padding: 0 3%; | |||||
text-align: left; | |||||
.van-row{ | |||||
border-bottom: 1px solid #dddddd; | |||||
display: flex; | |||||
align-items: center; | |||||
&:last-child{ | |||||
border: none; | |||||
} | |||||
.van-col--17{ | |||||
display: flex; | |||||
align-items: center; | |||||
p{ | |||||
margin-left: 10PX; | |||||
} | |||||
} | |||||
.van-col--7{ | |||||
display: flex; | |||||
justify-content: space-between; | |||||
p{ | |||||
color: #1D6FE9; | |||||
border: 1px solid #1D6FE9; | |||||
text-align: center; | |||||
border-radius: 15PX; | |||||
display: inline-block; | |||||
padding: 5px 15px; | |||||
} | |||||
} | |||||
.van-col{ | |||||
text-align: left; | |||||
font-size: 14PX; | |||||
color: #333333; | |||||
padding: 15PX 0; | |||||
img{ | |||||
display: block; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.main_title{ | |||||
font-size: 0.4rem; | |||||
color: #1D6FE9; | |||||
margin: 0.2rem 6%; | |||||
margin-top: 0; | |||||
position: relative; | |||||
} | |||||
.main_box{ | |||||
width: 96%; | |||||
margin: 0 auto; | |||||
border-radius: 10PX; | |||||
box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||||
overflow: hidden; | |||||
background-color: #FFF; | |||||
.van-icon{ | |||||
vertical-align: middle; | |||||
} | |||||
.custom-title{ | |||||
font-size: 17PX; | |||||
color: #333333; | |||||
vertical-align: middle; | |||||
line-height: 1; | |||||
position: relative; | |||||
} | |||||
.tap{ | |||||
color: #1D6FE9; | |||||
} | |||||
.bgBlue{ | |||||
display: block; | |||||
position: absolute; | |||||
width: 17PX; | |||||
height: 17PX; | |||||
border-radius: 50%; | |||||
background-color: rgba(29,111,233,0.26); | |||||
top: -2PX; | |||||
right: -8PX; | |||||
} | |||||
} | |||||
.submitButton{ | |||||
width: 40%; | |||||
margin: 0 auto; | |||||
background-image: linear-gradient(to right, #77A6EF , #2E79E9); | |||||
text-align: center; | |||||
color: #ffffff; | |||||
height: 70px; | |||||
line-height: 70px; | |||||
border-radius: 8PX; | |||||
margin-top: 25PX; | |||||
&:first-child{ | |||||
background-image: linear-gradient(to right, #21CAC3 , #17A8A2); | |||||
} | |||||
} | |||||
.submit_box{ | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: space-around; | |||||
} | |||||
.addFamily{ | |||||
position: absolute; | |||||
top: -2px; | |||||
right: 0; | |||||
border-radius: 50%; | |||||
} | |||||
</style> |
@@ -1,8 +1,7 @@ | |||||
<template> | <template> | ||||
<div class="app-container"> | <div class="app-container"> | ||||
<div class="title"> | <div class="title"> | ||||
<img style="display: block; | |||||
margin: 0 auto;" src="../../static/images/onlineHome/yinnongLogo1.png" alt=""> | |||||
<img style="display: block;width: 100%;margin: 0 auto;" src="../../static/images/onlineHome/yinnongLogo1.png" alt=""> | |||||
</div> | </div> | ||||
<van-tabs v-model="active" color="#1D6FE9 " :swipeable="true" style="margin-top:0.5rem;padding:0 10px;"> | <van-tabs v-model="active" color="#1D6FE9 " :swipeable="true" style="margin-top:0.5rem;padding:0 10px;"> | ||||
<van-tab title="密码登录" name="1"> | <van-tab title="密码登录" name="1"> | ||||