Browse Source

Merge branch 'master' of http://116.255.223.226:3000/zhangzl/nsgk_mobile

 Conflicts:
	src/api/sunVillage_info/fixedAssets.js
rongxin_prod
庞东旭 2 years ago
parent
commit
eb15eac554
17 changed files with 1792 additions and 45 deletions
  1. +9
    -0
      src/api/onlineHome/homestead/circulation.js
  2. +54
    -0
      src/api/onlineHome/homestead/homeuseycsyjfbz.js
  3. +61
    -0
      src/api/onlineHome/homestead/programme.js
  4. +54
    -0
      src/api/sunVillage_info/fixedAssets.js
  5. BIN
      src/assets/images/sunVillage_info/index_icon_10.png
  6. BIN
      src/assets/images/sunVillage_info/index_icon_11.png
  7. +36
    -0
      src/router/index.js
  8. +1
    -0
      src/views/sunVillage_info/index_code_rights.vue
  9. +528
    -0
      src/views/sunVillage_info/list_multipleLots.vue
  10. +526
    -0
      src/views/sunVillage_info/list_multipleLotsNh.vue
  11. +190
    -0
      src/views/sunVillage_info/list_multipleLotsNh_detail.vue
  12. +194
    -0
      src/views/sunVillage_info/list_multipleLots_detail.vue
  13. +0
    -5
      src/views/sunVillage_info/login.vue
  14. +1
    -1
      src/views/sunVillage_info/login_code.vue
  15. +69
    -11
      src/views/yinnong/homestead/paidUtilize/paidUtilizeAdd.vue
  16. +3
    -1
      src/views/yinnong/homestead/paidUtilize/paidUtilizeList.vue
  17. +66
    -27
      src/views/yinnong/homestead/paidUtilize/paidUtilizeModify.vue

+ 9
- 0
src/api/onlineHome/homestead/circulation.js View File

@@ -127,6 +127,15 @@ export function getByLyZjddm(data){
}) })
} }


// 宅基地信息条件查询
export function selectHomesteadObligeeMapList(query) {
return request({
url: '/home/homesteadshyqr/selectHomesteadObligeeMapList',
method: 'get',
params: query
})
}

//宅基地使用权流转农户查询 //宅基地使用权流转农户查询
export function queryHouserBaseNh(query) { export function queryHouserBaseNh(query) {
return request({ return request({


+ 54
- 0
src/api/onlineHome/homestead/homeuseycsyjfbz.js View File

@@ -0,0 +1,54 @@
import request from '@/utils/request'

// 查询有偿计费标准列表
export function listYcsyjfbz(query) {
return request({
url: '/home/ycsyjfbz/list',
method: 'get',
params: query
})
}

// 导出有偿计费标准
export function exportYcsyjfbz(query) {
return request({
url: '/home/ycsyjfbz/export',
method: 'get',
params: query
})
}

// 查询有偿计费标准详细
export function getYcsyjfbz(id) {
return request({
url: '/home/ycsyjfbz/get/' + id,
method: 'get'
})
}

// 新增有偿计费标准
export function addYcsyjfbz(data) {
return request({
url: '/home/ycsyjfbz/add',
method: 'post',
data: data
})
}

// 修改有偿计费标准
export function updateYcsyjfbz(data) {
return request({
url: '/home/ycsyjfbz/edit',
method: 'post',
data: data
})
}

// 删除有偿计费标准
export function delYcsyjfbz(id) {
return request({
url: '/home/ycsyjfbz/remove/' + id,
method: 'get'
})
}


+ 61
- 0
src/api/onlineHome/homestead/programme.js View File

@@ -0,0 +1,61 @@
import request from '@/utils/request'

// 查询村庄规划列表
export function listProgramme(query) {
return request({
url: '/home/programme/list',
method: 'get',
params: query
})
}
// 查询村庄规划预警列表
export function programmeWarninglist(query) {
return request({
url: '/home/programme/programmeWarninglist',
method: 'get',
params: query
})
}

// 查询村庄规划详细
export function getProgramme(id) {
return request({
url: '/home/programme/get/' + id,
method: 'get'
})
}

// 新增村庄规划
export function addProgramme(data) {
return request({
url: '/home/programme/add',
method: 'post',
data: data
})
}

// 修改村庄规划
export function updateProgramme(data) {
return request({
url: '/home/programme/edit',
method: 'post',
data: data
})
}

// 删除村庄规划
export function delProgramme(id) {
return request({
url: '/home/programme/remove/' + id,
method: 'get'
})
}

// 导出村庄规划
export function exportProgramme(query) {
return request({
url: '/home/programme/export',
method: 'get',
params: query
})
}

+ 54
- 0
src/api/sunVillage_info/fixedAssets.js View File

@@ -698,3 +698,57 @@ export function previewContractFile(id) {
method: 'get', method: 'get',
}) })
} }

// 查询多标段合同列表
export function listMultiplelots(query) {
return request({
url: '/transaction/multiplelots/list',
method: 'get',
params: query
})
}

// 查询多标段合同详情
export function getMultiplelots(query, id) {
return request({
url: '/transaction/multiplelots/get/' + id,
method: 'get',
params: query
})
}

// 标段合同甲方签字
export function multipleLotsFirstSign(data, id) {
return request({
url: '/transaction/multiplelots/firstSign/' + id,
method: 'post',
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
})
}

BIN
src/assets/images/sunVillage_info/index_icon_10.png View File

Before After
Width: 65  |  Height: 58  |  Size: 3.6 KiB

BIN
src/assets/images/sunVillage_info/index_icon_11.png View File

Before After
Width: 65  |  Height: 58  |  Size: 3.0 KiB

+ 36
- 0
src/router/index.js View File

@@ -3839,6 +3839,42 @@ export const constantRoutes = [
}, },
component: (resolve) => require(['@/views/sunVillage_info/list_official'], resolve) component: (resolve) => require(['@/views/sunVillage_info/list_official'], resolve)
}, },
{ ////阳光村务(新)-- 标段合同网签
path: '/sunVillage_info/list_multipleLots',
name: 'sunVillageInfoListMultipleLots',
meta: {
title: '标段合同网签',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/list_multipleLots'], resolve)
},
{ ////阳光村务(新)-- 标段合同详情
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: {
title: '标段合同网签',
hidden: true,
},
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/homeApplication/applicationList', path: '/sunVillage_info/homeApplication/applicationList',
name: 'sunVillageInfoApplicationList', name: 'sunVillageInfoApplicationList',


+ 1
- 0
src/views/sunVillage_info/index_code_rights.vue View File

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


+ 528
- 0
src/views/sunVillage_info/list_multipleLots.vue View File

@@ -0,0 +1,528 @@
<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" :disabled="item.firstIsSign === '是'">
<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.contractCode}}</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" :style="{'background': item.firstSigning != null ? '#2bc30c' : '#eb1616'}">{{item.signingStatus}}</p>
</div>
<div class="time">
<p>{{item.contractName}}</p>
<p style="color:#eb1616;font-weight: bold;"><span style="font-size: 12px;">¥</span>{{item.contractMoney.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 == '线下' " @click="openPopupFile(item.attachement)">
<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%' }">
<van-uploader v-model="fileList" multiple disabled :deletable="false" :show-upload="false"/>
</van-popup>
</div>
</template>

<script>
import { listMultiplelots, multipleLotsFirstSign } from "@/api/sunVillage_info/fixedAssets";
import vueEsign from "vue-esign";
import signatureUploadSignature from "@/views/yinnong/signatureUploadSignature";
import $ from "jquery";

export default {
name: "sunVillageInfoListMultipleLots",
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() {
listMultiplelots(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_multipleLots_detail',
query: { id: id }
})
},
openPopup(id, url) {
this.show = true;
this.signaId = id;
},
openPopupFile(file) {
this.showFile = true;
if (!file) return;
let fileArray = file.split(',');
fileArray.map(res => {
this.fileList.push({
url: '/api' + res,
isImage: true
})
})
},
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对象添加数据

multipleLotsFirstSign(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%;

&.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>

+ 526
- 0
src/views/sunVillage_info/list_multipleLotsNh.vue View File

@@ -0,0 +1,526 @@
<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,index) in applicationList" :key="index" :disabled="item.secondIsSign === '是'" >
<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" :style="{'background': item.secondSigning!=null?'#2bc30c':'#eb1616'}">{{item.signingStatus}}</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">
<!-- delete 删除 edit编辑 view查看 list榜单 -->
<div class="opera_btn" @click="openPopup(item.id)" v-if="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 == '是' ">
<img src="../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35">
<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>
</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>
</div>
</template>

<script>
import { listMultipleLotsNh, multipleLotsSecondSign } from "@/api/sunVillage_info/fixedAssets";
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(file) {
this.showFile = true;
if (!file) return;
let fileArray = file.split(',');
fileArray.map(res => {
this.fileList.push({
url: '/api' + res,
isImage: true
})
})
},
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%;

&.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>

+ 190
- 0
src/views/sunVillage_info/list_multipleLotsNh_detail.vue View File

@@ -0,0 +1,190 @@
<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.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>

+ 194
- 0
src/views/sunVillage_info/list_multipleLots_detail.vue View File

@@ -0,0 +1,194 @@
<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.firstParty" label="甲方" placeholder="甲方" input-align="right" :border="false"/>
<van-field v-model="form.contractMoney" label="合同金额(元)" placeholder="合同金额(元)" input-align="right" :border="false"/>
<van-field v-model="form.startTime" label="开始日期" placeholder="开始日期" input-align="right" :border="false"/>
<van-field v-model="form.endTime" label="结束日期" placeholder="结束日期" input-align="right" :border="false"/>
<van-field v-model="form.contractDate" label="登记日期" placeholder="登记日期" input-align="right" :border="false"/>
<van-field v-model="form.contractionStatus" 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" />
</div>
</div>
</template>

<script>
import {getMultiplelots} from "@/api/sunVillage_info/fixedAssets";

export default {
name: "listMultipleLotsDetail",
data() {
return {
form: {},
};
},
created() {
this.getDetail();
},
methods: {
getDetail() {
let query = {
translate_dict: 1
};
getMultiplelots(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>

+ 0
- 5
src/views/sunVillage_info/login.vue View File

@@ -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 });


+ 1
- 1
src/views/sunVillage_info/login_code.vue View File

@@ -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'})


+ 69
- 11
src/views/yinnong/homestead/paidUtilize/paidUtilizeAdd.vue View File

@@ -106,10 +106,17 @@
@confirm="onConfirmYcsydqsj" @confirm="onConfirmYcsydqsj"
/> />
</van-popup> </van-popup>

<van-field v-model="circulation.ycsymj" label="有偿使用面积(㎡)" placeholder="请输入有偿使用面积㎡" input-align="right" label-width="auto"/>
<van-field v-model="circulation.ycsymjdj" label="有偿使用面积单价(元)" placeholder="请输入有偿使用面积单价" input-align="right" label-width="auto"/>
<van-field v-model="circulation.ycsyfy" label="有偿使用费用(元)" placeholder="请输入有偿使用费用" input-align="right" label-width="auto"/>
<van-field v-model="circulation.ycsymj" label="有偿使用面积(㎡)" placeholder="请输入有偿使用面积㎡" input-align="right" label-width="auto">
<template #button>
<van-button size="small" @click="computeMJ" type="primary">计算</van-button>
</template>
</van-field>
<van-field v-model="circulation.ycsymjdj" label="有偿使用面积单价(元)" placeholder="请输入有偿使用面积单价" @change="changeDJ" input-align="right" label-width="auto"/>
<van-field v-model="circulation.ycsyfy" label="有偿使用费用(元)" placeholder="请输入有偿使用费用" input-align="right" label-width="auto">
<template #button>
<van-button size="small" @click="computeFY" type="primary">计算</van-button>
</template>
</van-field>
<van-field v-model="circulation.fkfs" label="付款方式" placeholder="请输入付款方式" input-align="right" label-width="auto"/> <van-field v-model="circulation.fkfs" label="付款方式" placeholder="请输入付款方式" input-align="right" label-width="auto"/>
<van-field v-model="circulation.bz" label="备注" placeholder="请输入内容" input-align="right" label-width="auto"/> <van-field v-model="circulation.bz" label="备注" placeholder="请输入内容" input-align="right" label-width="auto"/>


@@ -132,10 +139,12 @@
</template> </template>


<script> <script>
import { zjdzd } from "@/api/onlineHome/homestead/circulation";
import { zjdzd,selectHomesteadObligeeMapList} from "@/api/onlineHome/homestead/circulation";
import { ycsyAdd } from "@/api/onlineHome/homestead/paidUtilize"; import { ycsyAdd } from "@/api/onlineHome/homestead/paidUtilize";
import { getShyqrs,getByLyZjddm,listHomesteadnmfw} from "@/api/sunVillage_info/homestead/paidExit";
import { getShyqrs,getByLyZjddm} from "@/api/sunVillage_info/homestead/paidExit";
import { listYcsyjfbz} from "@/api/onlineHome/homestead/homeuseycsyjfbz";
import MapGisObtainTc from "@/components/Map/MapGisObtainTc"; import MapGisObtainTc from "@/components/Map/MapGisObtainTc";
import {listProgramme} from "@/api/onlineHome/homestead/programme";
export default { export default {
name: "paidUtilizeAdd", name: "paidUtilizeAdd",
components: {MapGisObtainTc}, components: {MapGisObtainTc},
@@ -149,11 +158,16 @@
zjdDictionaries:[],//宅基地代码 zjdDictionaries:[],//宅基地代码
shyqrdmDictionaries:[],//使用权人 shyqrdmDictionaries:[],//使用权人
getObligeeOptions:[],//下拉框列表 getObligeeOptions:[],//下拉框列表
//计算有偿使用面积
jsmjData:{
zdmjSum:0.00,
hzdmj:0.00,
},
landStatus:"1", landStatus:"1",
tcqllx:'', tcqllx:'',
tclx:'', tclx:'',
tcfs:'', tcfs:'',
zjlx:'',
zjlx:'身份证',
bcfs:'', bcfs:'',
zjddm:'', zjddm:'',
sysFarmer:{deptId:this.$store.state.user.loginDeptId,memberName:""}, sysFarmer:{deptId:this.$store.state.user.loginDeptId,memberName:""},
@@ -168,7 +182,7 @@
showycsydqsj: false, showycsydqsj: false,
showDropList: false,//是否显示下拉框 showDropList: false,//是否显示下拉框
mapShow: false, mapShow: false,
circulation:{},
circulation:{ ycsymj:0.00, ycsyfy:0.00, ycsymjdj:0.00,sfyhdz:"0"},
minDate: new Date(), minDate: new Date(),
maxDate: new Date(2025, 10, 1), maxDate: new Date(2025, 10, 1),
currentDate: new Date(), currentDate: new Date(),
@@ -236,9 +250,6 @@
getByLyZjddm(data).then((response) => { getByLyZjddm(data).then((response) => {
this.$set(this.circulation, "sfyhdz", response.data.isMore); this.$set(this.circulation, "sfyhdz", response.data.isMore);
// const baseImgUrl = this.$store.getters.baseRoutingUrl; // const baseImgUrl = this.$store.getters.baseRoutingUrl;
if(response.data.zdt != null && response.data.zdt !== ""){
this.$set(this.form, "xzzp", response.rows[0].zdt);
}
}); });
}, },
/** 模糊查询人员信息 */ /** 模糊查询人员信息 */
@@ -336,6 +347,53 @@
this.$refs.zjdProductResh.drawingLyPaceCountryDarw(); this.$refs.zjdProductResh.drawingLyPaceCountryDarw();
},1000); },1000);
}, },
/** 有偿使用面积计算 */
computeMJ(){
if(this.circulation.shyqrdbxm == null || this.circulation.shyqrdbxm === ""){
return this.$toast("请先选择使用权人");
}
let _this = this;
_this.$set( _this.circulation, "ycsymj", 0.00);
_this.$set( _this.jsmjData, "hzdmj", 0.00);
_this.$set( _this.jsmjData, "zdmjSum", 0.00);
listProgramme({}).then((res) => {
if(res.rows.length > 0){
_this.$set( _this.jsmjData, "hzdmj", res.rows[0].maxArea);
}
selectHomesteadObligeeMapList({shyqrdbxm:_this.circulation.shyqrdbxm,landStatus:_this.landStatus}).then((response) => {
if (response.code == 200) {
response.data.map(function(item){
_this.$set( _this.jsmjData, "zdmjSum", _this.jsmjData.zdmjSum + item.zjdzdxx.zdmj);
if(_this.jsmjData.zdmjSum - _this.jsmjData.hzdmj > 0){
_this.$set( _this.circulation, "ycsymj", (_this.jsmjData.zdmjSum - _this.jsmjData.hzdmj).toFixed(2));
}else{
_this.$set( _this.circulation, "ycsymj", 0.00);
}

});
}
});
})

},
/**使用费用计算 */
computeFY(){
let _this = this;
_this.$set( _this.circulation, "ycsymjdj", 0.00);
_this.$set( _this.circulation, "ycsyfy", 0.00);
listYcsyjfbz({}).then(response => {
response.rows.map(function(item){
if(_this.circulation.ycsymj >= item.startArea && _this.circulation.ycsymj <= item.endArea){
_this.$set( _this.circulation, "ycsyfy", (_this.circulation.ycsymj * item.feeAmount).toFixed(2));
}
});
});
},
changeDJ() {
if (this.circulation.ycsymj != null) {
this.circulation.ycsyfy = ((this.circulation.ycsymj * this.circulation.ycsymjdj)).toFixed(2);
}
},
goSubmit(){ goSubmit(){
ycsyAdd(this.circulation).then(response => { ycsyAdd(this.circulation).then(response => {
if(response.code = 200){ if(response.code = 200){


+ 3
- 1
src/views/yinnong/homestead/paidUtilize/paidUtilizeList.vue View File

@@ -25,9 +25,11 @@
<template #icon> <template #icon>
<van-icon name="../../../static/images/onlineHome/icon_zjd9.png" size="30" color="#539FFD" style="margin-right: 10px;" /> <van-icon name="../../../static/images/onlineHome/icon_zjd9.png" size="30" color="#539FFD" style="margin-right: 10px;" />
</template> </template>
<span>{{item.ycsyfy}}元</span>
<template #label> <template #label>
<p><b style="color: #539FFD;">{{item.sqrzjhm}}</b><i style="margin-right: 0.5rem;"></i><i >{{item.ycsykssj}} ~ </i><i style="margin-right: 0.5rem;"></i>{{item.ycsydqsj}}</p>
<p><b style="color: #539FFD;">{{item.sqrzjhm}}</b><i style="margin-right: 0.5rem;"></i></p>
</template> </template>

</van-cell> </van-cell>
<template #right> <template #right>
<van-row> <van-row>


+ 66
- 27
src/views/yinnong/homestead/paidUtilize/paidUtilizeModify.vue View File

@@ -106,10 +106,17 @@
@confirm="onConfirmYcsydqsj" @confirm="onConfirmYcsydqsj"
/> />
</van-popup> </van-popup>

<van-field v-model="circulation.ycsymj" label="有偿使用面积(㎡)" placeholder="请输入有偿使用面积㎡" input-align="right" label-width="auto"/>
<van-field v-model="circulation.ycsymjdj" label="有偿使用面积单价(元)" placeholder="请输入有偿使用面积单价" input-align="right" label-width="auto"/>
<van-field v-model="circulation.ycsyfy" label="有偿使用费用(元)" placeholder="请输入有偿使用费用" input-align="right" label-width="auto"/>
<van-field v-model="circulation.ycsymj" label="有偿使用面积(㎡)" placeholder="请输入有偿使用面积㎡" input-align="right" label-width="auto">
<template #button>
<van-button size="small" @click="computeMJ" type="primary">计算</van-button>
</template>
</van-field>
<van-field v-model="circulation.ycsymjdj" label="有偿使用面积单价(元)" placeholder="请输入有偿使用面积单价" @change="changeDJ" input-align="right" label-width="auto"/>
<van-field v-model="circulation.ycsyfy" label="有偿使用费用(元)" placeholder="请输入有偿使用费用" input-align="right" label-width="auto">
<template #button>
<van-button size="small" @click="computeFY" type="primary">计算</van-button>
</template>
</van-field>
<van-field v-model="circulation.fkfs" label="付款方式" placeholder="请输入付款方式" input-align="right" label-width="auto"/> <van-field v-model="circulation.fkfs" label="付款方式" placeholder="请输入付款方式" input-align="right" label-width="auto"/>
<van-field v-model="circulation.bz" label="备注" placeholder="请输入内容" input-align="right" label-width="auto"/> <van-field v-model="circulation.bz" label="备注" placeholder="请输入内容" input-align="right" label-width="auto"/>


@@ -132,10 +139,12 @@
</template> </template>


<script> <script>
import { zjdzd } from "@/api/onlineHome/homestead/circulation";
import { zjdzd,selectHomesteadObligeeMapList } from "@/api/onlineHome/homestead/circulation";
import { ycsyEdit,getYcsy } from "@/api/onlineHome/homestead/paidUtilize"; import { ycsyEdit,getYcsy } from "@/api/onlineHome/homestead/paidUtilize";
import { getShyqrs,getByLyZjddm,listHomesteadnmfw} from "@/api/sunVillage_info/homestead/paidExit"; import { getShyqrs,getByLyZjddm,listHomesteadnmfw} from "@/api/sunVillage_info/homestead/paidExit";
import { listYcsyjfbz} from "@/api/onlineHome/homestead/homeuseycsyjfbz";
import MapGisObtainTc from "@/components/Map/MapGisObtainTc"; import MapGisObtainTc from "@/components/Map/MapGisObtainTc";
import {listProgramme} from "@/api/onlineHome/homestead/programme";
export default { export default {
name: "paidUtilizeAdd", name: "paidUtilizeAdd",
components: {MapGisObtainTc}, components: {MapGisObtainTc},
@@ -149,6 +158,11 @@
zjdDictionaries:[],//宅基地代码 zjdDictionaries:[],//宅基地代码
shyqrdmDictionaries:[],//使用权人 shyqrdmDictionaries:[],//使用权人
getObligeeOptions:[],//下拉框列表 getObligeeOptions:[],//下拉框列表
//计算有偿使用面积
jsmjData:{
zdmjSum:0.00,
hzdmj:0.00,
},
landStatus:"1", landStatus:"1",
tcqllx:'', tcqllx:'',
tclx:'', tclx:'',
@@ -243,31 +257,51 @@
}, },
/** 查找地图中宅基地 */ /** 查找地图中宅基地 */
closeMoule: function (data) { closeMoule: function (data) {
this.circulation.zjddm = data;
let _this = this;
let handlerTime = this.getDate();
this.$set(this.circulation, "sqrq", handlerTime);
this.$set(this.circulation, "pzrq", handlerTime);
this.$set(this.circulation, "barq", handlerTime);
getByLyZjddm(data).then((response) => { getByLyZjddm(data).then((response) => {
this.$set(this.circulation, "ntcmj", response.data.zdmj);
this.$set(this.circulation, "tcmj", response.data.zdmj);
this.$set(this.circulation, "zjdszd", response.data.zdszd);
this.$set(this.circulation, "zjdszn", response.data.zdszn);
this.$set(this.circulation, "zjdszx", response.data.zdszx);
this.$set(this.circulation, "zjdszb", response.data.zdszb);
this.$set(this.circulation, "theGeomJson", response.data.theGeomJson);
this.$set(this.circulation, "tcqszsh", response.data.zsh);
listHomesteadnmfw({zjddm: data}).then((res) => {
res.rows.map(function(item){
_this.$set(_this.circulation, "jzmj", Number(_this.circulation.jzmj) + Number(item.jzmj));
_this.$set(_this.circulation, "xjzmj", Number(_this.circulation.xjzmj) + Number(item.jzmj));
});
});
this.$set(this.circulation, "sfyhdz", response.data.isMore);
// const baseImgUrl = this.$store.getters.baseRoutingUrl; // const baseImgUrl = this.$store.getters.baseRoutingUrl;
if(response.data.zdt != null && response.data.zdt !== ""){
this.$set(this.form, "xzzp", response.rows[0].zdt);
});
},
/** 有偿使用面积计算 */
computeMJ(){
if(this.circulation.shyqrdbxm == null || this.circulation.shyqrdbxm === ""){
return this.$toast("请先选择使用权人");
}
let _this = this;
_this.$set( _this.circulation, "ycsymj", 0.00);
_this.$set( _this.jsmjData, "hzdmj", 0.00);
_this.$set( _this.jsmjData, "zdmjSum", 0.00);
listProgramme({}).then((res) => {
if(res.rows.length > 0){
_this.$set( _this.jsmjData, "hzdmj", res.rows[0].maxArea);
} }
selectHomesteadObligeeMapList({shyqrdbxm:_this.circulation.shyqrdbxm,landStatus:_this.landStatus}).then((response) => {
if (response.code == 200) {
response.data.map(function(item){
_this.$set( _this.jsmjData, "zdmjSum", _this.jsmjData.zdmjSum + item.zjdzdxx.zdmj);
if(_this.jsmjData.zdmjSum - _this.jsmjData.hzdmj > 0){
_this.$set( _this.circulation, "ycsymj", (_this.jsmjData.zdmjSum - _this.jsmjData.hzdmj).toFixed(2));
}else{
_this.$set( _this.circulation, "ycsymj", 0.00);
}

});
}
});
})

},
/**使用费用计算 */
computeFY(){
let _this = this;
_this.$set( _this.circulation, "ycsymjdj", 0.00);
_this.$set( _this.circulation, "ycsyfy", 0.00);
listYcsyjfbz({}).then(response => {
response.rows.map(function(item){
if(_this.circulation.ycsymj >= item.startArea && _this.circulation.ycsymj <= item.endArea){
_this.$set( _this.circulation, "ycsyfy", (_this.circulation.ycsymj * item.feeAmount).toFixed(2));
}
});
}); });
}, },
/** 模糊查询人员信息 */ /** 模糊查询人员信息 */
@@ -365,6 +399,11 @@
this.$refs.zjdProductResh.drawingLyPaceCountryDarw(); this.$refs.zjdProductResh.drawingLyPaceCountryDarw();
},1000); },1000);
}, },
changeDJ() {
if (this.circulation.ycsymj != null) {
this.circulation.ycsyfy = ((this.circulation.ycsymj * this.circulation.ycsymjdj)).toFixed(2);
}
},
goSubmit(){ goSubmit(){
ycsyEdit(this.circulation).then(response => { ycsyEdit(this.circulation).then(response => {
if(response.code = 200){ if(response.code = 200){


Loading…
Cancel
Save