庞东旭 2 lat temu
rodzic
commit
dd41ca208e
11 zmienionych plików z 1529 dodań i 42 usunięć
  1. +53
    -0
      src/api/sunVillage_info/fixedAssets.js
  2. BIN
      src/assets/images/sunVillage_info/index_icon_12.png
  3. BIN
      src/assets/images/sunVillage_info/index_icon_13.png
  4. +27
    -0
      src/router/index.js
  5. +577
    -0
      src/views/sunVillage_info/list_cbf.vue
  6. +567
    -0
      src/views/sunVillage_info/list_cbht.vue
  7. +206
    -0
      src/views/sunVillage_info/list_cbht_detail.vue
  8. +47
    -17
      src/views/sunVillage_info/list_multipleLots.vue
  9. +50
    -24
      src/views/sunVillage_info/list_multipleLotsNh.vue
  10. +1
    -0
      src/views/sunVillage_info/list_multipleLotsNh_detail.vue
  11. +1
    -1
      src/views/sunVillage_info/list_signature.vue

+ 53
- 0
src/api/sunVillage_info/fixedAssets.js Wyświetl plik

@@ -752,3 +752,56 @@ export function multipleLotsSecondSign(data, id) {
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
})
}

BIN
src/assets/images/sunVillage_info/index_icon_12.png Wyświetl plik

Przed Po
Szerokość: 65  |  Wysokość: 58  |  Rozmiar: 3.2 KiB

BIN
src/assets/images/sunVillage_info/index_icon_13.png Wyświetl plik

Przed Po
Szerokość: 65  |  Wysokość: 58  |  Rozmiar: 3.1 KiB

+ 27
- 0
src/router/index.js Wyświetl plik

@@ -3875,6 +3875,33 @@ export const constantRoutes = [
},
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',
name: 'sunVillageInfoApplicationList',


+ 577
- 0
src/views/sunVillage_info/list_cbf.vue Wyświetl plik

@@ -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>

+ 567
- 0
src/views/sunVillage_info/list_cbht.vue Wyświetl plik

@@ -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>

+ 206
- 0
src/views/sunVillage_info/list_cbht_detail.vue Wyświetl plik

@@ -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>

+ 47
- 17
src/views/sunVillage_info/list_multipleLots.vue Wyświetl plik

@@ -4,7 +4,7 @@
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>
@@ -16,7 +16,7 @@
finished-text="没有更多了"
@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="info">
<div class="title">
@@ -26,7 +26,7 @@
<p class="tips_mark"
:style="{'color': item.firstSigning != null ? '#79bc29' : '#f8a83d','background': item.firstSigning != null ? '#e8ffcd' : '#ffedcd'}">
{{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 class="time">
<p>{{item.contractName}}</p>
@@ -41,10 +41,10 @@
<img src="../../assets/images/sunVillage_info/signature_icon_02.png" alt="" width="35">
<p>签名</p>
</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">
<p>线下合同</p>
</div> -->
<p>附件</p>
</div>
</div>
</template>
</van-swipe-cell>
@@ -76,14 +76,19 @@
</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>
</div>
</template>

<script>
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 signatureUploadSignature from "@/views/yinnong/signatureUploadSignature";
import $ from "jquery";
@@ -155,16 +160,41 @@
this.show = true;
this.signaId = id;
},
openPopupFile(file) {
openPopupFile(id){
this.fileList = [];
this.signaId = id;
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) {
this.signatureImg = url;
@@ -423,7 +453,7 @@

.opera_btn {
border-radius: 50%;
padding: 0 10px;
&.delete {
background: #df0707;
margin-left: 10PX;


+ 50
- 24
src/views/sunVillage_info/list_multipleLotsNh.vue Wyświetl plik

@@ -4,7 +4,7 @@
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>
@@ -17,7 +17,7 @@
@load="getList"
>
<!----1-->
<van-swipe-cell v-for="(item,index) in applicationList" :key="index" :disabled="item.secondIsSign === '是'" >
<van-swipe-cell v-for="item in applicationList" :key="item.id" >
<div class="item" @click="goDetail(item.id)">
<div class="info">
<div class="title">
@@ -25,7 +25,7 @@
<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" :style="{'background': item.secondSigning!=null?'#2bc30c':'#eb1616'}">{{item.signingStatus}}</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>
@@ -35,23 +35,14 @@
</div>
<template #right>
<div class="operation">
<!-- delete 删除 edit编辑 view查看 list榜单 -->
<div class="opera_btn" @click="openPopup(item.id)" v-if="item.secondIsSign === '否' ">
<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" style="margin: 0 10px;" v-if="item.signingMode == '线上' && item.attachement != null ">
<img src="../../assets/images/sunVillage_info/signature_icon_03.png" alt="" width="35">
<p>预览</p>
</div>
<div class="opera_btn" v-if="item.signingMode == '线上' && item.isArchive == '是' ">
<div class="opera_btn" @click="openPopupFile(item.id)">
<img src="../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35">
<p>电子合同</p>
<p>附件</p>
</div>
<div class="opera_btn" v-if="item.signingMode == '线下' ">
<img src="../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35">
<p>线下合同</p>
</div> -->
</div>
</template>
</van-swipe-cell>
@@ -78,11 +69,21 @@
</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";
@@ -153,16 +154,41 @@
this.show = true;
this.signaId = id;
},
openPopupFile(file) {
openPopupFile(id){
this.fileList = [];
this.signaId = id;
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_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;
@@ -421,7 +447,7 @@

.opera_btn {
border-radius: 50%;
padding: 0 10px;
&.delete {
background: #df0707;
margin-left: 10PX;


+ 1
- 0
src/views/sunVillage_info/list_multipleLotsNh_detail.vue Wyświetl plik

@@ -8,6 +8,7 @@
<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"/>


+ 1
- 1
src/views/sunVillage_info/list_signature.vue Wyświetl plik

@@ -4,7 +4,7 @@
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>


Ładowanie…
Anuluj
Zapisz