@@ -0,0 +1,54 @@ | |||||
import request from '@/utils/request'; | |||||
// 承包地块信息列表 | |||||
export function listCbdkxx(params) { | |||||
return request({ | |||||
url: '/service/cbdkxx/mobile/list', | |||||
method: 'get', | |||||
params: params | |||||
}); | |||||
} | |||||
// 承包地块详情 | |||||
export function getCbdkxx(id) { | |||||
return request({ | |||||
url: '/service/cbdkxx/get/' + id, | |||||
method: 'get' | |||||
}); | |||||
} | |||||
// 新增承包地块信息 | |||||
export function addCbdkxx(data) { | |||||
return request({ | |||||
url: '/service/cbdkxx/insert', | |||||
method: 'post', | |||||
data: data | |||||
}); | |||||
} | |||||
// 修改承包地块信息 | |||||
export function updateCbdkxx(data) { | |||||
return request({ | |||||
url: '/service/cbdkxx/modify', | |||||
method: 'post', | |||||
data: data | |||||
}); | |||||
} | |||||
// 删除承包地块信息 | |||||
export function deleteCbdkxx(id) { | |||||
return request({ | |||||
url: '/service/cbdkxx/delete/' + id, | |||||
method: 'get' | |||||
}); | |||||
} | |||||
// 转出承包地块 | |||||
export function transferCbdkxx(params) { | |||||
return request({ | |||||
url: '/service/cbdkxx/transfer', | |||||
method: 'get', | |||||
params: params | |||||
}); | |||||
} | |||||
@@ -17,6 +17,14 @@ export function getCbf(cbfbm) { | |||||
}); | }); | ||||
} | } | ||||
// 获取承包方详情 | |||||
export function getCbfById(id) { | |||||
return request({ | |||||
url: '/service/cbf/get/' + id, | |||||
method: 'get' | |||||
}); | |||||
} | |||||
// 新增承包方信息 | // 新增承包方信息 | ||||
export function addCbf(data) { | export function addCbf(data) { | ||||
return request({ | return request({ | ||||
@@ -51,3 +59,21 @@ export function generateContractorCode(params) { | |||||
params: params | params: params | ||||
}); | }); | ||||
} | } | ||||
// 承包方调查签字 | |||||
export function contractorSignature(data) { | |||||
return request({ | |||||
url: '/service/cbf/surveySign', | |||||
method: 'post', | |||||
data: data | |||||
}); | |||||
} | |||||
// 调查挂起 | |||||
export function hangUp(data) { | |||||
return request({ | |||||
url: '/service/cbf/hangUp', | |||||
method: 'post', | |||||
data: data | |||||
}); | |||||
} |
@@ -0,0 +1,70 @@ | |||||
import request from '@/utils/request'; | |||||
// 查询承包方家庭成员列表 | |||||
export function listJtcy(params) { | |||||
return request({ | |||||
url: '/service/jtcy/list', | |||||
method: 'get', | |||||
params: params | |||||
}); | |||||
} | |||||
// 查询承包方家庭成员详细 | |||||
export function getJtcy(id) { | |||||
return request({ | |||||
url: '/service/jtcy/get/' + id, | |||||
method: 'get' | |||||
}); | |||||
} | |||||
// 新增承包方家庭成员信息 | |||||
export function addJtcy(data) { | |||||
return request({ | |||||
url: '/service/jtcy/add', | |||||
method: 'post', | |||||
data: data | |||||
}); | |||||
} | |||||
// 修改承包方家庭成员信息 | |||||
export function updateJtcy(data) { | |||||
return request({ | |||||
url: '/service/jtcy/edit', | |||||
method: 'post', | |||||
data: data | |||||
}); | |||||
} | |||||
// 删除承包方家庭成员信息 | |||||
export function deleteJtcy(id) { | |||||
return request({ | |||||
url: '/service/jtcy/remove/' + id, | |||||
method: 'get' | |||||
}); | |||||
} | |||||
// 家庭成员分户 | |||||
export function divisionJtcy(id) { | |||||
return request({ | |||||
url: '/service/jtcy/division/' + id, | |||||
method: 'get' | |||||
}); | |||||
} | |||||
// 家庭成员移户 | |||||
export function transferJtcy(params) { | |||||
return request({ | |||||
url: '/service/jtcy/transfer', | |||||
method: 'get', | |||||
params: params | |||||
}); | |||||
} | |||||
// 家庭成员设为户主 | |||||
export function setHouseholder(id) { | |||||
return request({ | |||||
url: '/service/jtcy/householder/' + id, | |||||
method: 'get' | |||||
}); | |||||
} | |||||
@@ -0,0 +1,35 @@ | |||||
import request from '@/utils/request'; | |||||
// 获取承包合同详情 | |||||
export function getCbht(cbfbm) { | |||||
return request({ | |||||
url: '/service/cbht/obtain/' + cbfbm, | |||||
method: 'get' | |||||
}); | |||||
} | |||||
// 新增承包合同信息 | |||||
export function addCbht(data) { | |||||
return request({ | |||||
url: '/service/cbht/insert', | |||||
method: 'post', | |||||
data: data | |||||
}); | |||||
} | |||||
// 修改承包合同信息 | |||||
export function updateCbht(data) { | |||||
return request({ | |||||
url: '/service/cbht/edit', | |||||
method: 'post', | |||||
data: data | |||||
}); | |||||
} | |||||
// 承包合同延期 | |||||
export function extendCbht(id) { | |||||
return request({ | |||||
url: '/service/cbht/extension/' + id, | |||||
method: 'get' | |||||
}); | |||||
} |
@@ -0,0 +1,54 @@ | |||||
import request from '@/utils/request'; | |||||
// 地块信息列表 | |||||
export function listDk(params) { | |||||
return request({ | |||||
url: '/service/dk/list', | |||||
method: 'get', | |||||
params: params | |||||
}); | |||||
} | |||||
// 地块信息详情 | |||||
export function getDk(id) { | |||||
return request({ | |||||
url: '/service/dk/get/' + id, | |||||
method: 'get' | |||||
}); | |||||
} | |||||
// 新增地块属性信息 | |||||
export function addDk(data) { | |||||
return request({ | |||||
url: '/service/dk/add', | |||||
method: 'post', | |||||
data: data | |||||
}) | |||||
} | |||||
// 修改地块属性信息 | |||||
export function updateDk(data) { | |||||
return request({ | |||||
url: '/service/dk/edit', | |||||
method: 'post', | |||||
data: data | |||||
}) | |||||
} | |||||
// 删除地块信息 | |||||
export function deleteDk(id) { | |||||
return request({ | |||||
url: '/service/dk/remove/' + id, | |||||
method: 'get' | |||||
}); | |||||
} | |||||
// 生成地块编码 | |||||
export function generateLandCode(params) { | |||||
return request({ | |||||
url: '/service/dk/generateCode', | |||||
method: 'get', | |||||
params: params | |||||
}); | |||||
} |
@@ -0,0 +1,46 @@ | |||||
import request from '@/utils/request'; | |||||
// 获取承包方列表 | |||||
export function listFbf(params) { | |||||
return request({ | |||||
url: '/service/fbf/list', | |||||
method: 'get', | |||||
params: params | |||||
}); | |||||
} | |||||
// 新增发包方信息 | |||||
export function addFbf(data) { | |||||
return request({ | |||||
url: '/service/fbf/add', | |||||
method: 'post', | |||||
data: data | |||||
}) | |||||
} | |||||
// 修改发包方信息 | |||||
export function updateFbf(data) { | |||||
return request({ | |||||
url: '/service/fbf/edit', | |||||
method: 'post', | |||||
data: data | |||||
}) | |||||
} | |||||
// 发包方调查签字 | |||||
export function manualSignature(data) { | |||||
return request({ | |||||
url: '/service/fbf/surveySign', | |||||
method: 'post', | |||||
data: data | |||||
}); | |||||
} | |||||
// 生成发包方编码 | |||||
export function generateEmployerCode(params) { | |||||
return request({ | |||||
url: '/service/fbf/generateCode', | |||||
method: 'get', | |||||
params: params | |||||
}); | |||||
} |
@@ -25,6 +25,23 @@ export function getNhhncy(id) { | |||||
method: 'get' | method: 'get' | ||||
}) | }) | ||||
} | } | ||||
// 查询列表 | |||||
export function queryHomesteadnhhncyList(query) { | |||||
return request({ | |||||
url: '/home/homesteadnhhncy/queryList', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
export function addOutsidenhhncy(data) { | |||||
return request({ | |||||
url: '/home/homesteadnhhncy/outsideAdd', | |||||
method: 'post', | |||||
data: data | |||||
}) | |||||
} | |||||
// 新增数据调查-农户户内成员 | // 新增数据调查-农户户内成员 | ||||
export function addNhhncy(data) { | export function addNhhncy(data) { | ||||
@@ -814,6 +814,14 @@ export function cbhtSecondSign(data,id) { | |||||
data: data | data: data | ||||
}) | }) | ||||
} | } | ||||
// 承包方公示结果签字 | |||||
export function updateGsjgSign(data) { | |||||
return request({ | |||||
url: '/open/home/mobile/updateGsjgSign', | |||||
method: 'post', | |||||
data: data | |||||
}) | |||||
} | |||||
// 附件查询 | // 附件查询 | ||||
export function attachmentQuery(query) { | export function attachmentQuery(query) { | ||||
@@ -0,0 +1,77 @@ | |||||
import request from '@/utils/request' | |||||
//查询列表 | |||||
export function getList(data){ | |||||
return request({ | |||||
url:'/service/cbf/list', | |||||
method:'get', | |||||
params:data | |||||
}) | |||||
} | |||||
//承包方查询 | |||||
export function getCbfList(data){ | |||||
return request({ | |||||
url:'/open/villageAffairs/public/cbfList', | |||||
method:'get', | |||||
params:data | |||||
}) | |||||
} | |||||
//查询承包地块列表 | |||||
export function getCbdkms(data){ | |||||
return request({ | |||||
url:'/service/cbdkxx/getCbdkms', | |||||
method:'get', | |||||
params:data | |||||
}) | |||||
} | |||||
//查询承包方调查 | |||||
export function getCbfdcList(data){ | |||||
return request({ | |||||
url:'/service/cbfdc/list', | |||||
method:'get', | |||||
params:data | |||||
}) | |||||
} | |||||
//修改 | |||||
export function updateSysCfb(data){ | |||||
return request({ | |||||
url:'/service/cbf/edit', | |||||
method: 'post', | |||||
data: data | |||||
}) | |||||
} | |||||
//批量修改承包方记事签字 | |||||
export function updateBatchSign(data,gsjs){ | |||||
return request({ | |||||
url:'/service/cbf/updateBatchSign?gsjs='+gsjs, | |||||
method: 'post', | |||||
data: data | |||||
}) | |||||
} | |||||
//修改承包方记事签字 | |||||
export function updateSign(data){ | |||||
return request({ | |||||
url:'/service/cbf/updateSign', | |||||
method: 'post', | |||||
data: data | |||||
}) | |||||
} | |||||
//批量修改承包方审核签字 | |||||
export function examineBatchSign(data,shyj){ | |||||
return request({ | |||||
url:'/service/cbf/examineBatchSign?shyj='+shyj, | |||||
method: 'post', | |||||
data: data | |||||
}) | |||||
} | |||||
//修改承包方审核签字 | |||||
export function examineSign(data){ | |||||
return request({ | |||||
url:'/service/cbf/examineSign', | |||||
method: 'post', | |||||
data: data | |||||
}) | |||||
} | |||||
@@ -0,0 +1,18 @@ | |||||
import request from '@/utils/request' | |||||
//查询列表 | |||||
export function getSysFfb(data){ | |||||
return request({ | |||||
url:'/service/fbf/sysFbfSelect', | |||||
method:'get', | |||||
params:data | |||||
}) | |||||
} | |||||
//修改 | |||||
export function auditSign(data){ | |||||
return request({ | |||||
url:'/service/fbf/auditSign', | |||||
method: 'post', | |||||
data: data | |||||
}) | |||||
} |
@@ -15,3 +15,11 @@ export function getSystemAttachmentUrl() { | |||||
method: 'get' | method: 'get' | ||||
}) | }) | ||||
} | } | ||||
// 根据参数键名查询参数值 | |||||
export function getConfigKey(configKey) { | |||||
return request({ | |||||
url: '/open/typz/configKey/' + configKey, | |||||
method: 'get' | |||||
}) | |||||
} |
@@ -105,7 +105,7 @@ export default { | |||||
view: new ol.View({ | view: new ol.View({ | ||||
center: ol.proj.fromLonLat(this.coord), | center: ol.proj.fromLonLat(this.coord), | ||||
//zoom: false, | //zoom: false, | ||||
zoom: 17.9, | |||||
zoom: 17, | |||||
minZoom: this.minMapZoom, //地图缩小限制 | minZoom: this.minMapZoom, //地图缩小限制 | ||||
maxZoom: this.maxMapZoom, //地图放大限制 | maxZoom: this.maxMapZoom, //地图放大限制 | ||||
}), | }), | ||||
@@ -248,6 +248,7 @@ export default { | |||||
self.drawInsert = null; | self.drawInsert = null; | ||||
self.mapObject.removeInteraction(draw); | self.mapObject.removeInteraction(draw); | ||||
self.popLayer(COMMON_MAP_DRAW_LAYER_NAME); | self.popLayer(COMMON_MAP_DRAW_LAYER_NAME); | ||||
self.$emit("drawFinished", null); | |||||
//console.log("drawRemove"); | //console.log("drawRemove"); | ||||
}); | }); | ||||
//还原之前图层 | //还原之前图层 | ||||
@@ -308,9 +309,9 @@ export default { | |||||
this.mapObject.getView().animate({ | this.mapObject.getView().animate({ | ||||
// 只设置需要的属性即可 | // 只设置需要的属性即可 | ||||
center: center, // 中心点 | center: center, // 中心点 | ||||
zoom: 17.9, // 缩放级别 | |||||
zoom: 17, // 缩放级别 | |||||
rotation: undefined, // 缩放完成view视图旋转弧度 | rotation: undefined, // 缩放完成view视图旋转弧度 | ||||
duration: 1000, // 缩放持续时间,默认不需要设置 | |||||
duration: 300, // 缩放持续时间,默认不需要设置 | |||||
}); | }); | ||||
return true; | return true; | ||||
}, | }, | ||||
@@ -371,7 +372,7 @@ export default { | |||||
this.mapObject.getView().animate({ | this.mapObject.getView().animate({ | ||||
// 只设置需要的属性即可 | // 只设置需要的属性即可 | ||||
center: center, // 中心点 | center: center, // 中心点 | ||||
zoom: 17.9, // 缩放级别 | |||||
zoom: 17, // 缩放级别 | |||||
rotation: undefined, // 缩放完成view视图旋转弧度 | rotation: undefined, // 缩放完成view视图旋转弧度 | ||||
duration: 1000, // 缩放持续时间,默认不需要设置 | duration: 1000, // 缩放持续时间,默认不需要设置 | ||||
}); | }); | ||||
@@ -118,6 +118,7 @@ const whiteList = [ | |||||
'/sunVillage_info/arbitrationDetail', | '/sunVillage_info/arbitrationDetail', | ||||
'/sunVillage_info/familyMember', | '/sunVillage_info/familyMember', | ||||
'/sunVillage_info/familyMemberDetail', | '/sunVillage_info/familyMemberDetail', | ||||
'/sunVillage_info/list_cbfsq', | |||||
'/sunVillage_info/list_signature', | '/sunVillage_info/list_signature', | ||||
'/sunVillage_info/list_official', | '/sunVillage_info/list_official', | ||||
'/sunVillage_info/list_signature_add', | '/sunVillage_info/list_signature_add', | ||||
@@ -852,6 +852,24 @@ export const constantRoutes = [ | |||||
}, | }, | ||||
component: (resolve) => require(['@/views/yinnong/homestead/freeExit/freeExitList'], resolve) | component: (resolve) => require(['@/views/yinnong/homestead/freeExit/freeExitList'], resolve) | ||||
}, | }, | ||||
{ | |||||
path: '/homesteadPaidExitAdd', | |||||
name: 'homesteadPaidExitAdd', | |||||
meta: { | |||||
title: '有偿退出(阳光村务)', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/yinnong/homestead/paidExit/paidExitAdd'], resolve) | |||||
}, | |||||
{ | |||||
path: '/homesteadPaidExitModify', | |||||
name: 'homesteadPaidExitModify', | |||||
meta: { | |||||
title: '有偿退出(阳光村务)', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/yinnong/homestead/paidExit/paidExitModify'], resolve) | |||||
}, | |||||
{ | { | ||||
path: '/paidExitAdd', | path: '/paidExitAdd', | ||||
name: 'paidExitAdd', | name: 'paidExitAdd', | ||||
@@ -3624,6 +3642,15 @@ export const constantRoutes = [ | |||||
}, | }, | ||||
component: (resolve) => require(['@/views/sunVillage_info/list_chronicles_single_process'], resolve) | component: (resolve) => require(['@/views/sunVillage_info/list_chronicles_single_process'], resolve) | ||||
}, | }, | ||||
{ ////阳光村务(新)-- 发包方授权 | |||||
path: '/sunVillage_info/list_fbfsq', | |||||
name: 'sunVillageInfoListFbfsq', | |||||
meta: { | |||||
title: '发包方授权', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/sunVillage_info/list_fbfsq'], resolve) | |||||
}, | |||||
{ // 综合填报 | { // 综合填报 | ||||
path: '/sunVillage_info/entityReportList', | path: '/sunVillage_info/entityReportList', | ||||
name: 'entityReportList', | name: 'entityReportList', | ||||
@@ -3930,6 +3957,15 @@ export const constantRoutes = [ | |||||
}, | }, | ||||
component: (resolve) => require(['@/views/sunVillage_info/homeApplication/proposerLite'], resolve) | component: (resolve) => require(['@/views/sunVillage_info/homeApplication/proposerLite'], resolve) | ||||
}, | }, | ||||
{ | |||||
path: '/homesteadProposerLite', | |||||
name: 'homesteadProposerLite', | |||||
meta: { | |||||
title: '农村宅基地申请(阳光村务)', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/yinnong/homestead/homeApplication/proposerLite'], resolve) | |||||
}, | |||||
{ | { | ||||
path: '/sunVillage_info/paidExit/paidExitList', | path: '/sunVillage_info/paidExit/paidExitList', | ||||
name: 'sunVillageInfoPaidExitList', | name: 'sunVillageInfoPaidExitList', | ||||
@@ -4002,6 +4038,15 @@ export const constantRoutes = [ | |||||
}, | }, | ||||
component: (resolve) => require(['@/views/sunVillage_info/familyMember/familyMemberDetail'], resolve) | component: (resolve) => require(['@/views/sunVillage_info/familyMember/familyMemberDetail'], resolve) | ||||
}, | }, | ||||
{ | |||||
path: '/sunVillage_info/list_cbfsq', | |||||
name: 'sunVillageInfoListCbfsq', | |||||
meta: { | |||||
title: '承包方授权', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/sunVillage_info/list_cbfsq'], resolve) | |||||
}, | |||||
{ ////阳光村务(新)-- 合同信息 | { ////阳光村务(新)-- 合同信息 | ||||
path: '/sunVillage_info/list_vote_detail', | path: '/sunVillage_info/list_vote_detail', | ||||
name: 'sunVillageInfoListVoteDetail', | name: 'sunVillageInfoListVoteDetail', | ||||
@@ -55,9 +55,9 @@ | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<template #right> | |||||
<!-- <template #right> | |||||
<div class="operation"> | <div class="operation"> | ||||
<!-- delete 删除 edit编辑 view查看 list榜单 --> | |||||
delete 删除 edit编辑 view查看 list榜单 | |||||
<div class="opera_btn"> | <div class="opera_btn"> | ||||
<img src="../../assets/images/sunVillage_info/signature_icon_02.png" alt="" width="35"> | <img src="../../assets/images/sunVillage_info/signature_icon_02.png" alt="" width="35"> | ||||
<p>签名</p> | <p>签名</p> | ||||
@@ -75,7 +75,7 @@ | |||||
<p>线下合同</p> | <p>线下合同</p> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</template> | |||||
</template> --> | |||||
</van-swipe-cell> | </van-swipe-cell> | ||||
</van-list> | </van-list> | ||||
</div> | </div> | ||||
@@ -122,6 +122,12 @@ | |||||
}); | }); | ||||
}, | }, | ||||
goDetail(item){ | goDetail(item){ | ||||
// 调查任务完成状态:已完成标记为1,未完成标记为2 | |||||
let status = '1'; | |||||
if (item.surStatus === 'UNFINISHED') { | |||||
status = '2'; | |||||
} | |||||
Cookies.set('taskStatus', status, { expires: 30 }); | |||||
this.$router.push({path:'/contracted/village/contractor', query: { deptId: item.deptId, deptName: item.deptName }}) | this.$router.push({path:'/contracted/village/contractor', query: { deptId: item.deptId, deptName: item.deptName }}) | ||||
}, | }, | ||||
onSelect(action) { | onSelect(action) { | ||||
@@ -8,119 +8,151 @@ | |||||
</div> | </div> | ||||
</template> | </template> | ||||
</van-nav-bar> --> | </van-nav-bar> --> | ||||
<contractor-header></contractor-header> | |||||
<contractor-header :dept-id="$route.params.deptId" :contractor-code="$route.params.cbfbm" :contractor-name="$route.params.cbfmc" :survey-status="$route.params.surveyStatus" :task-status="taskStatus"></contractor-header> | |||||
<div class="tap_block"> | <div class="tap_block"> | ||||
<p @click="$router.push({path:'/contracted/village/contractorDetail'})">承包方</p> | |||||
<p @click="$router.push({path:'/contracted/village/contractorFamily'})">家庭成员</p> | |||||
<p @click="skip('contractedVillageContractorDetail')">承包方</p> | |||||
<p @click="skip('contractedVillageContractorFamily')">家庭成员</p> | |||||
<p class="active">承包合同</p> | <p class="active">承包合同</p> | ||||
<p @click="$router.push({path:'/contracted/village/contractorLand'})">承包地</p> | |||||
<p @click="skip('contractedVillageContractorLand')">承包地</p> | |||||
</div> | </div> | ||||
<div class="list_main"> | <div class="list_main"> | ||||
<van-field v-model="value" label="承包合同代码:" placeholder="请输入承包合同代码" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="原承包合同代码:" placeholder="请输入原承包合同代码" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="发包方代码:" placeholder="请输入发包方代码" required :border="false" input-align="right" /> | |||||
<van-field | |||||
v-model="value" | |||||
label="承包方类型:" | |||||
placeholder="请选择承包方类型" | |||||
required | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
readonly | |||||
clickable | |||||
@click="showType = true" | |||||
/> | |||||
<van-popup v-model="showType" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="typeOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmTypeOptions" | |||||
@cancel="showType = false" | |||||
<van-form ref="formData"> | |||||
<van-field v-model="form.cbhtbm" label="承包合同代码:" placeholder="请输入承包合同代码" required :rules="[{ required: true }]" :border="false" input-align="left" label-width="auto" :disabled="isDisabled" maxlength="19"> | |||||
<template #button v-if="!isDisabled"> | |||||
<van-button size="mini" type="primary" native-type="button" @click="generateCode">生成</van-button> | |||||
</template> | |||||
</van-field> | |||||
<van-field v-model="form.ycbhtbm" label="原承包合同代码:" placeholder="请输入原承包合同代码" :border="false" input-align="left" maxlength="19" /> | |||||
<van-field v-model="form.fbfbm" label="发包方代码:" placeholder="请输入发包方代码" required :rules="[{ required: true }]" :border="false" input-align="left" maxlength="14" /> | |||||
<van-field | |||||
v-model="cbflxText" | |||||
label="承包方类型:" | |||||
placeholder="请选择承包方类型" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="left" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showType = true" | |||||
/> | /> | ||||
</van-popup> | |||||
<van-field v-model="value" label="承包方名称:" placeholder="请输入承包方名称" required :border="false" input-align="right" /> | |||||
<van-field v-model="value" label="承包方代码:" placeholder="请输入承包方代码" required :border="false" input-align="right" /> | |||||
<van-field | |||||
v-model="value" | |||||
label="承包方式:" | |||||
placeholder="请选择承包方式" | |||||
required | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
readonly | |||||
clickable | |||||
@click="showZjType = true" | |||||
/> | |||||
<van-popup v-model="showZjType" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="zjTypeOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmZjTypeOptions" | |||||
@cancel="showZjType = false" | |||||
<van-popup v-model="showType" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="cbflxOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmTypeOptions" | |||||
@cancel="showType = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="form.cbfbm" label="承包方代码:" placeholder="请输入承包方代码" required :rules="[{ required: true }]" :border="false" input-align="left" :disabled="isDisabled" maxlength="18" /> | |||||
<van-field v-model="form.cbfmc" label="承包方名称:" placeholder="请输入承包方名称" required :rules="[{ required: true }]" :border="false" input-align="left" /> | |||||
<van-field | |||||
v-model="cbfsText" | |||||
label="承包方式:" | |||||
placeholder="请选择承包方式" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="left" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showCbfs = true" | |||||
/> | /> | ||||
</van-popup> | |||||
<van-field | |||||
v-model="value" | |||||
label="签订时间:" | |||||
placeholder="请选择签订时间" | |||||
required | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
readonly | |||||
clickable | |||||
@click="showQDSJ = true" | |||||
/> | |||||
<van-popup v-model="showQDSJ" position="bottom"> | |||||
<van-datetime-picker | |||||
v-model="currentDate" | |||||
type="date" | |||||
title="选择年月日" | |||||
:min-date="minDate" | |||||
:max-date="maxDate" | |||||
<van-popup v-model="showCbfs" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="cbfsOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmCbfsOptions" | |||||
@cancel="showCbfs = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field | |||||
v-model="form.qdsj" | |||||
label="签订时间:" | |||||
placeholder="请选择签订时间" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="left" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showQDSJ = true" | |||||
/> | /> | ||||
</van-popup> | |||||
<van-field | |||||
v-model="value" | |||||
label="承包起始:" | |||||
placeholder="请选择承包起始" | |||||
required | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
readonly | |||||
clickable | |||||
@click="showCBQS = true" | |||||
/> | |||||
<van-popup v-model="showCBQS" position="bottom"> | |||||
<van-datetime-picker | |||||
v-model="currentDate" | |||||
type="date" | |||||
title="选择年月日" | |||||
:min-date="minDate" | |||||
:max-date="maxDate" | |||||
<van-popup v-model="showQDSJ" position="bottom"> | |||||
<van-datetime-picker | |||||
:value="new Date(form.qdsj)" | |||||
type="date" | |||||
title="请选择签订时间" | |||||
:min-date="minDate" | |||||
:max-date="maxDate" | |||||
@confirm="onConfirmQdsj" | |||||
@cancel="showQDSJ = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field | |||||
v-model="form.cbqxq" | |||||
label="承包起始时间:" | |||||
placeholder="请选择起始时间" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="left" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showCbqxq = true" | |||||
> | |||||
<template #button v-if="isDisabled"> | |||||
<van-button size="mini" type="primary" native-type="button" @click.stop="extension">延期</van-button> | |||||
</template> | |||||
</van-field> | |||||
<van-popup v-model="showCbqxq" position="bottom"> | |||||
<van-datetime-picker | |||||
:value="form.cbqxq ? new Date(form.cbqxq) : new Date()" | |||||
type="date" | |||||
title="请选择起始时间" | |||||
:min-date="minDate" | |||||
:max-date="maxDate" | |||||
@confirm="onConfirmCbqxq" | |||||
@cancel="showCbqxq = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field | |||||
v-model="form.cbqxz" | |||||
label="承包结束时间:" | |||||
placeholder="请选择结束时间" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="left" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showCbqxz = true" | |||||
/> | /> | ||||
</van-popup> | |||||
<van-field v-model="value" label="承包结束:" placeholder="请输入承包结束" required :border="false" input-align="right" /> | |||||
<van-field v-model="value" label="承包地块数:" placeholder="请输入承包地块数" required :border="false" input-align="right" /> | |||||
<van-field v-model="value" label="合同面积(亩):" placeholder="请输入合同面积(亩)" required :border="false" input-align="right" label-width="auto" /> | |||||
<p class="btn">保存</p> | |||||
<van-popup v-model="showCbqxz" position="bottom"> | |||||
<van-datetime-picker | |||||
:value="form.cbqxz ? new Date(form.cbqxz) : new Date()" | |||||
type="date" | |||||
title="请选择结束时间" | |||||
:min-date="minDate" | |||||
:max-date="maxDate" | |||||
@confirm="onConfirmCbqxz" | |||||
@cancel="showCbqxz = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="form.cbdkzs" label="承包地块数:" placeholder="请输入承包地块数" required :rules="[{ required: true }]" :border="false" input-align="left" type="digit" /> | |||||
<van-field v-model="form.htzmjm" label="合同面积(亩):" placeholder="请输入合同面积(亩)" required :rules="[{ required: true }]" :border="false" input-align="left" type="number" /> | |||||
</van-form> | |||||
<p class="btn" @click="submitForm" v-if="taskStatus === '2' && $route.params.surveyStatus !== '3'">保存</p> | |||||
</div> | </div> | ||||
@@ -129,6 +161,7 @@ | |||||
<script> | <script> | ||||
import Cookies from "js-cookie"; | import Cookies from "js-cookie"; | ||||
import contractorHeader from "./contractorHeader"; | import contractorHeader from "./contractorHeader"; | ||||
import { getCbht, addCbht, updateCbht, extendCbht } from "@/api/contracted/cbht"; | |||||
export default { | export default { | ||||
name: "contractedVillageContractor", | name: "contractedVillageContractor", | ||||
@@ -137,51 +170,157 @@ | |||||
}, | }, | ||||
data() { | data() { | ||||
return { | return { | ||||
loading:false, | |||||
finished:true, | |||||
value:'', | |||||
showType:false, | |||||
showZjType:false, | |||||
showQDSJ:false, | |||||
showCBQS:false, | |||||
typeOptions:[{ | |||||
dictLabel:'类型1', | |||||
dictValue:'1', | |||||
}], | |||||
zjTypeOptions:[{ | |||||
dictLabel:'类型2', | |||||
dictValue:'1', | |||||
}], | |||||
CYBZOptions:[{ | |||||
dictLabel:'类型2', | |||||
dictValue:'1', | |||||
}], | |||||
radio:1, | |||||
minDate: new Date(2020, 0, 1), | |||||
maxDate: new Date(2025, 10, 1), | |||||
currentDate: new Date(2021, 0, 17), | |||||
form: {}, // 承包合同表单信息 | |||||
cbfsOptions: [], // 承包方式字典 | |||||
cbfsText: null, // 承包方式标签名 | |||||
showCbfs: false, // 控制承包方式字典弹出层的显示和隐藏 | |||||
cbflxOptions: [], // 承包方类型字典 | |||||
cbflxText: null, // 承包方类型标签名 | |||||
showType: false, // 控制承包方类型字典弹出层的显示和隐藏 | |||||
showQDSJ: false, // 控制签订时间弹出层的显示和隐藏 | |||||
showCbqxq: false, // 控制承包起始时间弹出层的显示和隐藏 | |||||
showCbqxz: false, // 控制承包结束时间弹出层的显示和隐藏 | |||||
minDate: new Date(1978, 0, 1), | |||||
maxDate: new Date(2100, 11, 31), | |||||
isDisabled: false, | |||||
taskStatus: null, // 调查任务的完成状态:1表示已完成,2表示未完成 | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
this.taskStatus = Cookies.get('taskStatus'); | |||||
this.getDicts("jyq_method").then(response => { | |||||
this.cbfsOptions = response.data; | |||||
}); | |||||
this.getDicts("cbf_type").then(response => { | |||||
this.cbflxOptions = response.data; | |||||
}); | |||||
}, | |||||
mounted() { | |||||
setTimeout(() => { | |||||
this.getDetail(); | |||||
}, 500); | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getList(){ | |||||
getDetail(){ | |||||
getCbht(this.$route.params.cbfbm).then(response => { | |||||
this.form = response.data; | |||||
if (this.form) { | |||||
this.cbflxText = this.selectDictLabel(this.cbflxOptions, this.form.cbflx); | |||||
this.cbfsText = this.selectDictLabel(this.cbfsOptions, this.form.cbfs); | |||||
this.isDisabled = true; | |||||
} else { | |||||
this.isDisabled = false; | |||||
this.resetForm(); | |||||
} | |||||
}); | |||||
}, | }, | ||||
onSearch(){ | |||||
onConfirmTypeOptions(value) { | |||||
this.form.cbflx = value.dictValue; | |||||
this.cbflxText = value.dictLabel; | |||||
this.showType = false; | |||||
}, | }, | ||||
onConfirmTypeOptions(){ | |||||
onConfirmCbfsOptions(value) { | |||||
this.form.cbfs = value.dictValue; | |||||
this.cbfsText = value.dictLabel; | |||||
this.showCbfs = false; | |||||
}, | }, | ||||
onConfirmZjTypeOptions(){ | |||||
onConfirmQdsj(data) { | |||||
this.form.qdsj = this.format(data, 'yyyy-MM-dd'); | |||||
this.showQDSJ = false | |||||
}, | }, | ||||
onConfirmCYBZOptions(){ | |||||
onConfirmCbqxq(data) { | |||||
this.form.cbqxq = this.format(data, 'yyyy-MM-dd'); | |||||
this.showCbqxq = false; | |||||
}, | }, | ||||
onConfirmCbqxz(data) { | |||||
this.form.cbqxz = this.format(data, 'yyyy-MM-dd'); | |||||
this.showCbqxz = false; | |||||
}, | |||||
skip(name) { | |||||
this.$router.push({ | |||||
name: name, | |||||
params: { | |||||
deptId: this.$route.params.deptId, | |||||
cbfbm: this.$route.params.cbfbm, | |||||
cbfmc: this.$route.params.cbfmc, | |||||
surveyStatus: this.$route.params.surveyStatus | |||||
} | |||||
}); | |||||
}, | |||||
submitForm() { | |||||
this.$refs.formData.validate().then(() => { | |||||
if (this.form.id) { | |||||
updateCbht(this.form).then(response => { | |||||
if (response.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '保存成功', | |||||
duration:"1000", | |||||
}); | |||||
} | |||||
}); | |||||
} else { | |||||
this.form.deptId = this.$route.params.deptId; | |||||
addCbht(this.form).then(response => { | |||||
if (response.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '保存成功', | |||||
duration:"1000", | |||||
onClose: () => { | |||||
this.getDetail(); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
}).catch(() => { | |||||
this.$notify({ type: 'danger', message: '请填写完整的表单项' }); | |||||
}); | |||||
}, | |||||
resetForm() { | |||||
this.form = { | |||||
deptId: null, | |||||
cbhtbm: null, | |||||
ycbhtbm: null, | |||||
fbfbm: null, | |||||
cbflx: '1', | |||||
cbfmc: null, | |||||
cbfbm: null, | |||||
cbfs: '110', | |||||
qdsj: this.format(new Date(), 'yyyy-MM-dd'), | |||||
cbqxq: null, | |||||
cbqxz: null, | |||||
cbdkzs: null, | |||||
htzmjm: null, | |||||
}; | |||||
this.cbfsText = '家庭承包'; | |||||
this.cbflxText = '农户'; | |||||
}, | |||||
extension() { | |||||
if (this.form.id) { | |||||
this.$dialog.confirm({ | |||||
message: '是否确认将此份承包合同的承包期限延长30年?', | |||||
}).then(() => { | |||||
// on confirm | |||||
extendCbht(this.form.id).then(response => { | |||||
if (response.code == 200) { | |||||
this.$toast.success('延期成功'); | |||||
this.form.cbqxq = response.data.startTime; | |||||
this.form.cbqxz = response.data.endTime; | |||||
} | |||||
}); | |||||
}).catch(() => { | |||||
// on cancel | |||||
}); | |||||
} | |||||
}, | |||||
generateCode() { | |||||
this.form.cbhtbm = this.$route.params.cbfbm + 'J'; | |||||
this.form.fbfbm = this.$route.params.cbfbm.substring(0, 14); | |||||
this.form.cbfmc = this.$route.params.cbfmc; | |||||
this.form.cbfbm = this.$route.params.cbfbm; | |||||
} | |||||
}, | }, | ||||
}; | }; | ||||
</script> | </script> | ||||
@@ -219,24 +358,32 @@ | |||||
overflow: initial; | overflow: initial; | ||||
} | } | ||||
/* .tb_main{ | |||||
position: relative; | |||||
p{ | |||||
position: absolute; | |||||
display: inline-block; | |||||
margin-left: 10PX; | |||||
} | |||||
/deep/ .van-field__label { | |||||
width: 225px; | |||||
} | |||||
/deep/ .van-field--disabled .van-field__label { | |||||
color: #646566; | |||||
} | } | ||||
.tb{ | |||||
font-size: 12px; | |||||
color: #ff8900; | |||||
background: #daf6e7; | |||||
border: 1px solid #d7be6e; | |||||
padding: 2PX 8PX; | |||||
border-radius: 50PX; | |||||
margin-right: 5PX; | |||||
} */ | |||||
/* .tb_main{ | |||||
position: relative; | |||||
p{ | |||||
position: absolute; | |||||
display: inline-block; | |||||
margin-left: 10PX; | |||||
} | |||||
} | |||||
.tb{ | |||||
font-size: 12px; | |||||
color: #ff8900; | |||||
background: #daf6e7; | |||||
border: 1px solid #d7be6e; | |||||
padding: 2PX 8PX; | |||||
border-radius: 50PX; | |||||
margin-right: 5PX; | |||||
} */ | |||||
.tap_block{ | .tap_block{ | ||||
width: 100%; | width: 100%; | ||||
@@ -20,7 +20,7 @@ | |||||
@search="onSearch" | @search="onSearch" | ||||
></van-search> | ></van-search> | ||||
<div class="search_btn" @click="addContractor"> | |||||
<div class="search_btn" @click="addContractor" v-if="taskStatus === '2'"> | |||||
<p class="active"> + 新增</p> | <p class="active"> + 新增</p> | ||||
</div> | </div> | ||||
@@ -54,18 +54,33 @@ | |||||
<van-col span="5" style="color: #f78200">{{ item.cbfcysl }}</van-col> | <van-col span="5" style="color: #f78200">{{ item.cbfcysl }}</van-col> | ||||
</van-row> | </van-row> | ||||
<template #right> | <template #right> | ||||
<van-button square type="danger" text="删除" native-type="button" @click="deleteContractor(item.id, index)" /> | |||||
<!-- <van-button v-if="surveyStatus === '2'" square type="warning" text="挂起原因" native-type="button" @click="handleViewRemark(item.id)" /> | |||||
<van-button square type="danger" text="删除" native-type="button" @click="deleteContractor(item.id, index)" /> --> | |||||
<div class="operation"> | |||||
<!-- delete 删除 edit编辑 view查看 list榜单 --> | |||||
<div class="opera_btn view" v-if="surveyStatus === '2'" @click="handleViewRemark(item.id)"> | |||||
<p>挂起原因</p> | |||||
</div> | |||||
<div class="opera_btn delete" v-if="taskStatus === '2'" @click="deleteContractor(item.id, index)"> | |||||
<p>删除</p> | |||||
</div> | |||||
</div> | |||||
</template> | </template> | ||||
</van-swipe-cell> | </van-swipe-cell> | ||||
</van-list> | </van-list> | ||||
</div> | </div> | ||||
<!-- 异常挂起备注信息弹出框 --> | |||||
<van-dialog v-model="showRemark" title="异常挂起原因" :show-confirm-button="false" show-cancel-button cancelButtonText="关闭"> | |||||
<van-form ref="remarkForm" class="remarkForm"> | |||||
<van-field v-model="remark" label="挂起原因:" type="textarea" rows="4" placeholder="挂起原因" input-align="left" | |||||
label-width="auto" /> | |||||
</van-form> | |||||
</van-dialog> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import Cookies from "js-cookie"; | import Cookies from "js-cookie"; | ||||
import { listCbf, deleteCbf } from "@/api/contracted/cbf"; | |||||
import { listCbf, getCbfById, deleteCbf } from "@/api/contracted/cbf"; | |||||
export default { | export default { | ||||
name: "contractedVillageContractor", | name: "contractedVillageContractor", | ||||
@@ -85,6 +100,9 @@ | |||||
surveyStatus: null, | surveyStatus: null, | ||||
pageNum:1, | pageNum:1, | ||||
pageSize:20, | pageSize:20, | ||||
// 查询排序 | |||||
orderByColumn: "id", | |||||
isAsc: "desc", | |||||
}, | }, | ||||
// 承包方列表 | // 承包方列表 | ||||
cbfList: [], | cbfList: [], | ||||
@@ -92,9 +110,16 @@ | |||||
tagName: null, | tagName: null, | ||||
// 当前调查状态下的承包方总数 | // 当前调查状态下的承包方总数 | ||||
totalNum: 0, | totalNum: 0, | ||||
// 控制异常信息备注提示框的显示和隐藏 | |||||
showRemark: false, | |||||
// 异常备注信息 | |||||
remark: null, | |||||
// 调查任务的完成状态:1表示已完成,2表示未完成 | |||||
taskStatus: null, | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
this.taskStatus = Cookies.get('taskStatus'); | |||||
this.queryParams.deptId = this.$route.query.deptId; | this.queryParams.deptId = this.$route.query.deptId; | ||||
this.getDicts("confirmed_survey_status").then(response => { | this.getDicts("confirmed_survey_status").then(response => { | ||||
this.surveyStatusOptions = response.data; | this.surveyStatusOptions = response.data; | ||||
@@ -161,18 +186,33 @@ | |||||
}, | }, | ||||
deleteContractor(id, index) { | deleteContractor(id, index) { | ||||
this.$dialog.confirm({ | this.$dialog.confirm({ | ||||
message: '是否确认删除此承包方信息?', | |||||
message: '是否确认删除此条承包方信息?', | |||||
}).then(() => { | }).then(() => { | ||||
// on confirm | // on confirm | ||||
deleteCbf(id).then(res => { | deleteCbf(id).then(res => { | ||||
if(res.code == 200){ | if(res.code == 200){ | ||||
this.$toast.success('删除成功'); | |||||
this.cbfList.splice(index, 1); | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '删除成功', | |||||
duration: "1000", | |||||
onClose: () => { | |||||
this.cbfList.splice(index, 1); | |||||
this.totalNum = this.totalNum - 1; | |||||
} | |||||
}); | |||||
} | } | ||||
}); | }); | ||||
}).catch(() => { | }).catch(() => { | ||||
// on cancel | // on cancel | ||||
}); | }); | ||||
}, | |||||
handleViewRemark(id) { | |||||
this.remark = null; | |||||
getCbfById(id).then(response => { | |||||
this.showRemark = true; | |||||
this.remark = response.data.surveyRemark; | |||||
}); | |||||
} | } | ||||
}, | }, | ||||
}; | }; | ||||
@@ -206,6 +246,15 @@ | |||||
flex: 1; | flex: 1; | ||||
} | } | ||||
/deep/ .remarkForm .van-cell__value { | |||||
border: 1px solid #b0b3ba; | |||||
border-radius: 5px; | |||||
padding: 0 15px; | |||||
.van-field__control { | |||||
color: #646566; | |||||
} | |||||
} | |||||
.tap_block{ | .tap_block{ | ||||
width: 100%; | width: 100%; | ||||
display: flex; | display: flex; | ||||
@@ -296,4 +345,36 @@ | |||||
} | } | ||||
} | } | ||||
.operation{ | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: right; | |||||
text-align: center; | |||||
background: #fff; | |||||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||||
height: 100%; | |||||
border-radius: 30px; | |||||
margin-left: 2vw; | |||||
overflow: hidden; | |||||
.opera_btn{ | |||||
height: 100%; | |||||
display: flex; | |||||
align-items: center; | |||||
color: #ffffff; | |||||
padding: 0 5vw; | |||||
&.delete{ | |||||
background:#ff3737; | |||||
} | |||||
&.edit{ | |||||
background: #a5f790; | |||||
} | |||||
&.view{ | |||||
background: #48e5a2; | |||||
} | |||||
&.list{ | |||||
background: #fb9627; | |||||
} | |||||
} | |||||
} | |||||
</style> | </style> |
@@ -8,7 +8,7 @@ | |||||
</div> | </div> | ||||
</template> | </template> | ||||
</van-nav-bar> --> | </van-nav-bar> --> | ||||
<contractor-header :dept-id="$route.params.deptId" :contractor-code="$route.params.cbfbm" :contractor-name="$route.params.cbfmc" :survey-status="$route.params.surveyStatus"></contractor-header> | |||||
<contractor-header :dept-id="$route.params.deptId" :contractor-code="$route.params.cbfbm" :contractor-name="$route.params.cbfmc" :survey-status="$route.params.surveyStatus" :task-status="taskStatus"></contractor-header> | |||||
<div class="tap_block"> | <div class="tap_block"> | ||||
<p class="active">承包方</p> | <p class="active">承包方</p> | ||||
@@ -19,6 +19,7 @@ | |||||
<div class="list_main"> | <div class="list_main"> | ||||
<van-form ref="formData"> | <van-form ref="formData"> | ||||
<van-field v-model="form.cbfbm" label="代码:" placeholder="请输入代码" required :rules="[{ required: true }]" :border="false" input-align="left" disabled maxlength="18" /> | |||||
<van-field | <van-field | ||||
v-model="form.cbflxText" | v-model="form.cbflxText" | ||||
label="类型:" | label="类型:" | ||||
@@ -41,7 +42,6 @@ | |||||
@cancel="showType = false" | @cancel="showType = false" | ||||
/> | /> | ||||
</van-popup> | </van-popup> | ||||
<van-field v-model="form.cbfbm" label="代码:" placeholder="请输入代码" required :rules="[{ required: true }]" :border="false" input-align="left" readonly /> | |||||
<van-field v-model="form.cbfmc" label="名称:" placeholder="请输入名称" required :rules="[{ required: true }]" :border="false" input-align="left" /> | <van-field v-model="form.cbfmc" label="名称:" placeholder="请输入名称" required :rules="[{ required: true }]" :border="false" input-align="left" /> | ||||
<van-field | <van-field | ||||
v-model="form.cbfzjlxText" | v-model="form.cbfzjlxText" | ||||
@@ -68,11 +68,11 @@ | |||||
<van-field v-model="form.cbfzjhm" label="证件号码:" placeholder="请输入证件号码" required :rules="[{ required: true }]" :border="false" input-align="left" /> | <van-field v-model="form.cbfzjhm" label="证件号码:" placeholder="请输入证件号码" required :rules="[{ required: true }]" :border="false" input-align="left" /> | ||||
<van-field v-model="form.cbfdz" label="地址:" placeholder="请输入地址" required :rules="[{ required: true }]" :border="false" input-align="left" /> | <van-field v-model="form.cbfdz" label="地址:" placeholder="请输入地址" required :rules="[{ required: true }]" :border="false" input-align="left" /> | ||||
<van-field v-model="form.yzbm" label="邮编:" placeholder="请输入邮编" required :rules="[{ required: true }]" :border="false" input-align="left" /> | |||||
<van-field v-model="form.yzbm" label="邮编:" placeholder="请输入邮编" required :rules="[{ required: true }]" :border="false" input-align="left" maxlength="6" /> | |||||
<van-field v-model="form.lxdh" label="电话:" placeholder="请输入电话" required :rules="[{ required: true }]" :border="false" input-align="left" /> | <van-field v-model="form.lxdh" label="电话:" placeholder="请输入电话" required :rules="[{ required: true }]" :border="false" input-align="left" /> | ||||
<van-field v-model="form.cbfdcjs" label="调查记事:" type="textarea" rows="3" placeholder="请输入调查记事" required :rules="[{ required: true }]" :border="false" input-align="left" /> | <van-field v-model="form.cbfdcjs" label="调查记事:" type="textarea" rows="3" placeholder="请输入调查记事" required :rules="[{ required: true }]" :border="false" input-align="left" /> | ||||
</van-form> | </van-form> | ||||
<p class="btn" @click="submitForm">保存</p> | |||||
<p class="btn" @click="submitForm" v-if="taskStatus === '2' && $route.params.surveyStatus !== '3'">保存</p> | |||||
</div> | </div> | ||||
@@ -98,21 +98,23 @@ | |||||
contractorTypeOptions: [], | contractorTypeOptions: [], | ||||
// 承包方证件类型字典 | // 承包方证件类型字典 | ||||
credentialTypeOptions: [], | credentialTypeOptions: [], | ||||
// 调查任务的完成状态:1表示已完成,2表示未完成 | |||||
taskStatus: null, | |||||
}; | }; | ||||
}, | }, | ||||
watch: { | |||||
'$route': function() { | |||||
window.location.reload(); | |||||
} | |||||
}, | |||||
created() { | created() { | ||||
this.taskStatus = Cookies.get('taskStatus'); | |||||
this.getDicts("cbf_type").then(response => { | this.getDicts("cbf_type").then(response => { | ||||
this.contractorTypeOptions = response.data; | this.contractorTypeOptions = response.data; | ||||
}); | }); | ||||
this.getDicts("cert_type").then(response => { | this.getDicts("cert_type").then(response => { | ||||
this.credentialTypeOptions = response.data; | this.credentialTypeOptions = response.data; | ||||
}); | }); | ||||
this.getDetail(); | |||||
}, | |||||
mounted() { | |||||
setTimeout(() => { | |||||
this.getDetail(); | |||||
}, 500); | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getDetail(){ | getDetail(){ | ||||
@@ -197,6 +199,10 @@ | |||||
overflow: initial; | overflow: initial; | ||||
} | } | ||||
/deep/ .van-field--disabled .van-field__label { | |||||
color: #646566; | |||||
} | |||||
/* .tb_main{ | /* .tb_main{ | ||||
position: relative; | position: relative; | ||||
p{ | p{ | ||||
@@ -11,6 +11,11 @@ | |||||
<div class="list_main"> | <div class="list_main"> | ||||
<van-form ref="formData"> | <van-form ref="formData"> | ||||
<van-field v-model="form.cbfbm" label="代码:" placeholder="请输入代码" required :rules="[{ required: true }]" :border="false" input-align="left" maxlength="18"> | |||||
<template #button> | |||||
<van-button size="mini" type="primary" native-type="button" @click="generateCode">生成代码</van-button> | |||||
</template> | |||||
</van-field> | |||||
<van-field | <van-field | ||||
v-model="cbflxText" | v-model="cbflxText" | ||||
label="类型:" | label="类型:" | ||||
@@ -33,11 +38,6 @@ | |||||
@cancel="showType = false" | @cancel="showType = false" | ||||
/> | /> | ||||
</van-popup> | </van-popup> | ||||
<van-field v-model="form.cbfbm" label="代码:" placeholder="请输入代码" required :rules="[{ required: true }]" :border="false" input-align="left"> | |||||
<template #button> | |||||
<van-button size="mini" type="primary" native-type="button" @click="generateCode">生成代码</van-button> | |||||
</template> | |||||
</van-field> | |||||
<van-field v-model="form.cbfmc" label="名称:" placeholder="请输入名称" required :rules="[{ required: true }]" :border="false" input-align="left" /> | <van-field v-model="form.cbfmc" label="名称:" placeholder="请输入名称" required :rules="[{ required: true }]" :border="false" input-align="left" /> | ||||
<van-field | <van-field | ||||
v-model="cbfzjlxText" | v-model="cbfzjlxText" | ||||
@@ -64,7 +64,7 @@ | |||||
<van-field v-model="form.cbfzjhm" label="证件号码:" placeholder="请输入证件号码" required :rules="[{ required: true }]" :border="false" input-align="left" /> | <van-field v-model="form.cbfzjhm" label="证件号码:" placeholder="请输入证件号码" required :rules="[{ required: true }]" :border="false" input-align="left" /> | ||||
<van-field v-model="form.cbfdz" label="地址:" placeholder="请输入地址" required :rules="[{ required: true }]" :border="false" input-align="left" /> | <van-field v-model="form.cbfdz" label="地址:" placeholder="请输入地址" required :rules="[{ required: true }]" :border="false" input-align="left" /> | ||||
<van-field v-model="form.yzbm" label="邮编:" placeholder="请输入邮编" required :rules="[{ required: true }]" :border="false" input-align="left" /> | |||||
<van-field v-model="form.yzbm" label="邮编:" placeholder="请输入邮编" required :rules="[{ required: true }]" :border="false" input-align="left" maxlength="6" /> | |||||
<van-field v-model="form.lxdh" label="电话:" placeholder="请输入电话" required :rules="[{ required: true }]" :border="false" input-align="left" /> | <van-field v-model="form.lxdh" label="电话:" placeholder="请输入电话" required :rules="[{ required: true }]" :border="false" input-align="left" /> | ||||
<van-field v-model="form.cbfdcjs" label="调查记事:" type="textarea" rows="3" placeholder="请输入调查记事" required :rules="[{ required: true }]" :border="false" input-align="left" /> | <van-field v-model="form.cbfdcjs" label="调查记事:" type="textarea" rows="3" placeholder="请输入调查记事" required :rules="[{ required: true }]" :border="false" input-align="left" /> | ||||
</van-form> | </van-form> | ||||
@@ -88,9 +88,9 @@ | |||||
form: { | form: { | ||||
deptId: null, | deptId: null, | ||||
cbfbm: null, | cbfbm: null, | ||||
cbflx: null, | |||||
cbflx: '1', | |||||
cbfmc: null, | cbfmc: null, | ||||
cbfzjlx: null, | |||||
cbfzjlx: '1', | |||||
cbfzjhm: null, | cbfzjhm: null, | ||||
cbfdz: null, | cbfdz: null, | ||||
yzbm: null, | yzbm: null, | ||||
@@ -99,9 +99,9 @@ | |||||
cbfdcjs: null, | cbfdcjs: null, | ||||
}, | }, | ||||
// 承包方类型(标签名) | // 承包方类型(标签名) | ||||
cbflxText: null, | |||||
cbflxText: '农户', | |||||
// 承包方证件类型(标签名) | // 承包方证件类型(标签名) | ||||
cbfzjlxText: null, | |||||
cbfzjlxText: '居民身份证', | |||||
// 承包方类型字典 | // 承包方类型字典 | ||||
contractorTypeOptions: [], | contractorTypeOptions: [], | ||||
// 承包方证件类型字典 | // 承包方证件类型字典 | ||||
@@ -8,69 +8,83 @@ | |||||
</div> | </div> | ||||
</template> | </template> | ||||
</van-nav-bar> --> | </van-nav-bar> --> | ||||
<contractor-header :dept-id="$route.params.deptId" :contractor-code="$route.params.cbfbm" :contractor-name="$route.params.cbfmc" :survey-status="$route.params.surveyStatus"></contractor-header> | |||||
<contractor-header :dept-id="$route.params.deptId" :contractor-code="$route.params.cbfbm" :contractor-name="$route.params.cbfmc" :survey-status="$route.params.surveyStatus" :task-status="taskStatus"></contractor-header> | |||||
<div class="tap_block"> | <div class="tap_block"> | ||||
<p @click="$router.push({path:'/contracted/village/contractorDetail'})">承包方</p> | |||||
<p @click="skip('contractedVillageContractorDetail')">承包方</p> | |||||
<p class="active">家庭成员</p> | <p class="active">家庭成员</p> | ||||
<p @click="$router.push({path:'/contracted/village/contractorWord'})">承包合同</p> | |||||
<p @click="$router.push({path:'/contracted/village/contractorLand'})">承包地</p> | |||||
<p @click="skip('contractedVillageContractorWord')">承包合同</p> | |||||
<p @click="skip('contractedVillageContractorLand')">承包地</p> | |||||
</div> | </div> | ||||
<div class="list_main"> | <div class="list_main"> | ||||
<van-swipe-cell v-for="(item,index) in 10"> | |||||
<div class="item" @click="goDetail"> | |||||
<van-swipe-cell v-for="(item, index) in familyList" :key="item.id"> | |||||
<div class="item" @click="goDetail(item.id)"> | |||||
<div class="item_left"> | <div class="item_left"> | ||||
<div class="item_left_tt"> | <div class="item_left_tt"> | ||||
<p class="name"> | <p class="name"> | ||||
<img src="../../../../../static/images/contracted/family_icon_01.png" alt=""> | <img src="../../../../../static/images/contracted/family_icon_01.png" alt=""> | ||||
张三 | |||||
{{ item.cyxm }} | |||||
</p> | </p> | ||||
<p>户主</p> | |||||
<p>{{ item.yhzgx }}</p> | |||||
<p class="sex"> | <p class="sex"> | ||||
男 | |||||
<img src="../../../../../static/images/contracted/family_icon_man.png" alt=""> | |||||
{{ item. cyxb }} | |||||
<img v-if="item.cyxb === '男'" src="../../../../../static/images/contracted/family_icon_man.png" alt=""> | |||||
<img v-else-if="item.cyxb === '女'" src="../../../../../static/images/contracted/family_icon_wman.png" alt=""> | |||||
</p> | </p> | ||||
</div> | </div> | ||||
<p class="id_card"> | <p class="id_card"> | ||||
<img src="../../../../../static/images/contracted/family_icon_02.png" alt=""> | <img src="../../../../../static/images/contracted/family_icon_02.png" alt=""> | ||||
230381199705551762 | |||||
{{ item.cyzjhm }} | |||||
</p> | </p> | ||||
</div> | </div> | ||||
<p class="item_right">是</p> | |||||
<p class="item_right">{{ item.sfgyr }}</p> | |||||
</div> | </div> | ||||
<template #right> | |||||
<template #right v-if="taskStatus === '2' && $route.params.surveyStatus !== '3'"> | |||||
<div class="operation"> | <div class="operation"> | ||||
<!-- delete 删除 edit编辑 view查看 list榜单 --> | <!-- delete 删除 edit编辑 view查看 list榜单 --> | ||||
<div class="opera_btn delete"> | |||||
<p>删除</p> | |||||
</div> | |||||
<div class="opera_btn edit"> | |||||
<div class="opera_btn edit" @click="householdDivision(item, index)"> | |||||
<p>分户</p> | <p>分户</p> | ||||
</div> | </div> | ||||
<div class="opera_btn view"> | |||||
<div class="opera_btn view" @click="householdTransfer(item)"> | |||||
<p>移户</p> | <p>移户</p> | ||||
</div> | </div> | ||||
<div class="opera_btn list"> | |||||
<div class="opera_btn list" @click="houseHolder(item)"> | |||||
<p>设为<br/>户主</p> | <p>设为<br/>户主</p> | ||||
</div> | </div> | ||||
<div class="opera_btn delete" @click="deleteFamilyMember(item.id, index)"> | |||||
<p>删除</p> | |||||
</div> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
</van-swipe-cell> | </van-swipe-cell> | ||||
<p class="btn" @click="goDetail">新增</p> | |||||
<!-- getDetail不加(), 第一个参数默认传递的是event,getDetail加(), 需要手动传递$event --> | |||||
<p class="btn" @click="goDetail()" v-if="taskStatus === '2' && $route.params.surveyStatus !== '3'">新增</p> | |||||
</div> | </div> | ||||
<van-popup v-model="showContractorPopup" position="bottom"> | |||||
<van-search v-model="searchKeyword" placeholder="请输入姓名搜索" /> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="filteredContractors" | |||||
@confirm="onConfirmContractorOptions" | |||||
@cancel="showContractorPopup = false" | |||||
> | |||||
<template #option="option"> | |||||
<div style="display: flex; flex-direction: column; align-items: center;"> | |||||
<div>{{option.cbfmc}}-{{option.cbfbm}}</div> | |||||
</div> | |||||
</template> | |||||
</van-picker> | |||||
</van-popup> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import Cookies from "js-cookie"; | import Cookies from "js-cookie"; | ||||
import contractorHeader from "./contractorHeader"; | import contractorHeader from "./contractorHeader"; | ||||
import { listJtcy, deleteJtcy, divisionJtcy, transferJtcy, setHouseholder } from "@/api/contracted/cbfjtcy"; | |||||
import { listCbf } from "@/api/contracted/cbf"; | |||||
export default { | export default { | ||||
name: "contractedVillageContractor", | name: "contractedVillageContractor", | ||||
@@ -79,41 +93,158 @@ | |||||
}, | }, | ||||
data() { | data() { | ||||
return { | return { | ||||
loading:false, | |||||
finished:true, | |||||
value:'', | |||||
showType:false, | |||||
showZjType:false, | |||||
typeOptions:[{ | |||||
dictLabel:'类型1', | |||||
dictValue:'1', | |||||
}], | |||||
zjTypeOptions:[{ | |||||
dictLabel:'类型2', | |||||
dictValue:'1', | |||||
}], | |||||
familyList: [], // 家庭成员列表 | |||||
contractorList: [], // 承包方列表 | |||||
showContractorPopup: false, // 控制承包方信息弹出层的显示和隐藏 | |||||
transferMemberId: null, // 转出的成员ID | |||||
taskStatus: null, // 调查任务的完成状态:1表示已完成,2表示未完成 | |||||
searchKeyword: '', // 弹出框查询关键字 | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
console.log(this.$route.params); | |||||
this.taskStatus = Cookies.get('taskStatus'); | |||||
this.getList(); | |||||
this.getContractorList(); | |||||
}, | |||||
computed: { | |||||
filteredContractors() { | |||||
return this.contractorList.filter(item => { | |||||
return item.cbfmc.indexOf(this.searchKeyword) !== -1; | |||||
}) | |||||
} | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getList(){ | getList(){ | ||||
listJtcy({cbfbm: this.$route.params.cbfbm, translate_dict: 1}).then(response => { | |||||
this.familyList = response.rows; | |||||
}); | |||||
}, | }, | ||||
onSearch(){ | |||||
getContractorList() { | |||||
listCbf({deptId: this.$route.params.deptId}).then(response => { | |||||
this.contractorList = response.rows; | |||||
}); | |||||
}, | }, | ||||
onConfirmTypeOptions(){ | |||||
skip(name) { | |||||
this.$router.push({ | |||||
name: name, | |||||
params: { | |||||
deptId: this.$route.params.deptId, | |||||
cbfbm: this.$route.params.cbfbm, | |||||
cbfmc: this.$route.params.cbfmc, | |||||
surveyStatus: this.$route.params.surveyStatus | |||||
} | |||||
}); | |||||
}, | }, | ||||
onConfirmZjTypeOptions(){ | |||||
goDetail(id) { | |||||
this.$router.push({ | |||||
name: 'contractedVillageContractorFamilyDetail', | |||||
params: { | |||||
id: id, | |||||
deptId: this.$route.params.deptId, | |||||
cbfbm: this.$route.params.cbfbm, | |||||
cbfmc: this.$route.params.cbfmc, | |||||
surveyStatus: this.$route.params.surveyStatus | |||||
} | |||||
}); | |||||
}, | |||||
deleteFamilyMember(id, index) { | |||||
this.$dialog.confirm({ | |||||
message: '是否确认删除此条家庭成员信息?', | |||||
}).then(() => { | |||||
// on confirm | |||||
deleteJtcy(id).then(res => { | |||||
if(res.code == 200){ | |||||
this.$toast.success('删除成功'); | |||||
this.familyList.splice(index, 1); | |||||
} | |||||
}); | |||||
}).catch(() => { | |||||
// on cancel | |||||
}); | |||||
}, | |||||
householdDivision(item, index) { | |||||
if (item.yhzgx === '户主') { | |||||
this.$toast.fail('该成员身份为户主,不能分户'); | |||||
return false; | |||||
} | |||||
this.$dialog.confirm({ | |||||
message: '是否确认将该成员新分一户并设为户主?', | |||||
}).then(() => { | |||||
// on confirm | |||||
divisionJtcy(item.id).then(res => { | |||||
if (res.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '分户成功', | |||||
duration: "1000", | |||||
onClose: () => { | |||||
this.familyList.splice(index, 1); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
}).catch(() => { | |||||
// on cancel | |||||
}); | |||||
}, | |||||
householdTransfer(item) { | |||||
if (item.yhzgx === '户主') { | |||||
this.$toast.fail('该成员身份为户主,不能移户'); | |||||
return false; | |||||
} | |||||
this.transferMemberId = item.id; | |||||
this.searchKeyword = ''; | |||||
this.showContractorPopup = true; | |||||
}, | }, | ||||
goDetail(){ | |||||
this.$router.push({path:'/contracted/village/contractorFamilyDetail'}); | |||||
onConfirmContractorOptions(value) { | |||||
this.$dialog.confirm({ | |||||
message: '是否确认将该成员移到' + value.cbfmc + '户内?', | |||||
}).then(() => { | |||||
// on confirm | |||||
this.showContractorPopup = false; | |||||
transferJtcy({id: this.transferMemberId, cbfbm: value.cbfbm}).then(response => { | |||||
if (response.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '移户成功', | |||||
duration:"1000", | |||||
onClose: () => { | |||||
const index = this.familyList.findIndex(item => item.id === this.transferMemberId); | |||||
this.familyList.splice(index, 1); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
}).catch(() => { | |||||
// on cancel | |||||
}); | |||||
}, | |||||
houseHolder(item) { | |||||
if (item.yhzgx === '户主') { | |||||
this.$toast.fail('该成员身份为户主,无需设置'); | |||||
return false; | |||||
} | |||||
this.$dialog.confirm({ | |||||
message: '是否确认将该成员设为户主?', | |||||
}).then(() => { | |||||
// on confirm | |||||
setHouseholder(item.id).then(res => { | |||||
if (res.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '设置户主成功', | |||||
duration: "1000", | |||||
onClose: () => { | |||||
this.$route.params.cbfmc = item.cyxm; | |||||
this.getList(); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
}).catch(() => { | |||||
// on cancel | |||||
}); | |||||
} | } | ||||
}, | }, | ||||
}; | }; | ||||
</script> | </script> | ||||
@@ -139,14 +270,6 @@ | |||||
border: none; | border: none; | ||||
} | } | ||||
/deep/ .van-search__content{ | |||||
background: rgba(255,255,255,.5); | |||||
} | |||||
/deep/ .van-search{ | |||||
padding: 0; | |||||
flex: 1; | |||||
} | |||||
/deep/ .van-ellipsis{ | /deep/ .van-ellipsis{ | ||||
overflow: initial; | overflow: initial; | ||||
} | } | ||||
@@ -1,117 +1,109 @@ | |||||
<template> | <template> | ||||
<div class="app-container"> | <div class="app-container"> | ||||
<van-nav-bar left-arrow fixed placeholder @click-left="onClickLeft" > | |||||
<van-nav-bar left-arrow fixed placeholder @click-left="goBack" > | |||||
<template #title> | <template #title> | ||||
<div class="tb_main"> | <div class="tb_main"> | ||||
<!-- B村<p><span class="tb">签字完成</span><span class="tb">异常挂起</span></p>--> | <!-- B村<p><span class="tb">签字完成</span><span class="tb">异常挂起</span></p>--> | ||||
1111111 | |||||
{{ titleName }} | |||||
</div> | </div> | ||||
</template> | </template> | ||||
</van-nav-bar> | </van-nav-bar> | ||||
<div class="tap_block"> | |||||
<!-- <div class="tap_block"> | |||||
<p @click="$router.push({path:'/contracted/village/contractorDetail'})">承包方</p> | <p @click="$router.push({path:'/contracted/village/contractorDetail'})">承包方</p> | ||||
<p class="active">家庭成员</p> | <p class="active">家庭成员</p> | ||||
<p @click="$router.push({path:'/contracted/village/contractorWord'})">承包合同</p> | <p @click="$router.push({path:'/contracted/village/contractorWord'})">承包合同</p> | ||||
<p @click="$router.push({path:'/contracted/village/contractorLand'})">承包地</p> | <p @click="$router.push({path:'/contracted/village/contractorLand'})">承包地</p> | ||||
</div> | |||||
</div> --> | |||||
<div class="list_main"> | <div class="list_main"> | ||||
<van-field v-model="value" label="姓名:" placeholder="请输入姓名" required :border="false" input-align="right" /> | |||||
<van-field v-model="value" label="性别:" required :border="false" input-align="right" > | |||||
<template #input> | |||||
<van-radio-group v-model="radio" direction="horizontal"> | |||||
<van-radio name="1">男</van-radio> | |||||
<van-radio name="2">女</van-radio> | |||||
</van-radio-group> | |||||
</template> | |||||
</van-field> | |||||
<van-field | |||||
v-model="value" | |||||
label="与户主关系:" | |||||
placeholder="请选择与户主关系" | |||||
required | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
readonly | |||||
clickable | |||||
@click="showType = true" | |||||
/> | |||||
<van-popup v-model="showType" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="typeOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmTypeOptions" | |||||
@cancel="showType = false" | |||||
<van-form ref="formData"> | |||||
<van-field v-model="form.cyxm" label="姓名:" placeholder="请输入姓名" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field label="性别:" required :border="false" input-align="right" > | |||||
<template #input> | |||||
<van-radio-group v-model="form.cyxb" direction="horizontal"> | |||||
<van-radio v-for="item in cyxbOptions" :key="item.dictValue" :name="item.dictValue">{{ item.dictLabel }}</van-radio> | |||||
</van-radio-group> | |||||
</template> | |||||
</van-field> | |||||
<van-field | |||||
v-model="familyStatusText" | |||||
label="与户主关系:" | |||||
placeholder="请选择与户主关系" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showFamilyStatus = true" | |||||
/> | /> | ||||
</van-popup> | |||||
<van-field v-model="value" label="是否共有人:" required :border="false" input-align="right" > | |||||
<template #input> | |||||
<van-radio-group v-model="radio" direction="horizontal"> | |||||
<van-radio name="1">是</van-radio> | |||||
<van-radio name="2">否</van-radio> | |||||
</van-radio-group> | |||||
</template> | |||||
</van-field> | |||||
<van-field | |||||
v-model="value" | |||||
label="证件类型:" | |||||
placeholder="请选择证件类型" | |||||
required | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
readonly | |||||
clickable | |||||
@click="showZjType = true" | |||||
/> | |||||
<van-popup v-model="showZjType" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="zjTypeOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmZjTypeOptions" | |||||
@cancel="showZjType = false" | |||||
<van-popup v-model="showFamilyStatus" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="familyStatusOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmFamilyStatusOptions" | |||||
@cancel="showFamilyStatus = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field label="是否共有人:" required :border="false" input-align="right" > | |||||
<template #input> | |||||
<van-radio-group v-model="form.sfgyr" direction="horizontal"> | |||||
<van-radio v-for="item in sfgyrOptions" :key="item.dictValue" :name="item.dictValue">{{ item.dictLabel }}</van-radio> | |||||
</van-radio-group> | |||||
</template> | |||||
</van-field> | |||||
<van-field | |||||
v-model="cyzjlxText" | |||||
label="证件类型:" | |||||
placeholder="请选择证件类型" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showCredentialType = true" | |||||
/> | /> | ||||
</van-popup> | |||||
<van-field v-model="value" label="证件号码:" placeholder="请输入证件号码" required :border="false" input-align="right" /> | |||||
<van-field | |||||
v-model="value" | |||||
label="成员备注:" | |||||
placeholder="请选择成员备注" | |||||
required | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
readonly | |||||
clickable | |||||
@click="showCYBZ = true" | |||||
/> | |||||
<van-popup v-model="showCYBZ" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="CYBZOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmCYBZOptions" | |||||
@cancel="showCYBZ = false" | |||||
<van-popup v-model="showCredentialType" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="cyzjlxOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmCredentialTypeOptions" | |||||
@cancel="showCredentialType = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="form.cyzjhm" label="证件号码:" placeholder="请输入证件号码" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field | |||||
v-model="cybzText" | |||||
label="成员备注:" | |||||
placeholder="请选择成员备注" | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showMemberRemark = true" | |||||
/> | /> | ||||
</van-popup> | |||||
<van-field v-model="value" label="备注说明:" placeholder="请输入备注说明" required :border="false" input-align="right" /> | |||||
<van-field v-model="value" label="持股份数:" placeholder="请输入持股份数" required :border="false" input-align="right" /> | |||||
<van-field v-model="value" label="股权编号:" placeholder="请输入股权编号" required :border="false" input-align="right" /> | |||||
<p class="btn">保存</p> | |||||
<van-popup v-model="showMemberRemark" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="cybzOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmMemberRemarkOptions" | |||||
@cancel="showMemberRemark = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="form.cybzsm" label="备注说明:" placeholder="请输入备注说明" :border="false" input-align="right" /> | |||||
<!-- <van-field v-model="form.cycgfs" label="持股份数:" type="number" placeholder="请输入持股份数" :border="false" input-align="right" /> | |||||
<van-field v-model="form.gqzbh" label="股权编号:" placeholder="请输入股权编号" :border="false" input-align="right" /> --> | |||||
</van-form> | |||||
<p class="btn" @click="submitForm" v-if="taskStatus === '2' && $route.params.surveyStatus !== '3'">保存</p> | |||||
</div> | </div> | ||||
@@ -119,50 +111,144 @@ | |||||
</template> | </template> | ||||
<script> | <script> | ||||
import Cookies from "js-cookie"; | import Cookies from "js-cookie"; | ||||
import { getJtcy, addJtcy, updateJtcy } from "@/api/contracted/cbfjtcy"; | |||||
export default { | export default { | ||||
name: "contractedVillageContractor", | name: "contractedVillageContractor", | ||||
data() { | data() { | ||||
return { | return { | ||||
loading:false, | |||||
finished:true, | |||||
value:'', | |||||
showType:false, | |||||
showZjType:false, | |||||
typeOptions:[{ | |||||
dictLabel:'类型1', | |||||
dictValue:'1', | |||||
}], | |||||
zjTypeOptions:[{ | |||||
dictLabel:'类型2', | |||||
dictValue:'1', | |||||
}], | |||||
CYBZOptions:[{ | |||||
dictLabel:'类型2', | |||||
dictValue:'1', | |||||
}], | |||||
radio:1 | |||||
titleName: '', // 顶部标题名 | |||||
form: {}, // 承包方家庭成员表单信息 | |||||
cyxbOptions: [], // 成员性别字典 | |||||
cyzjlxOptions: [], // 成员证件类型字典 | |||||
cyzjlxText: null, // 成员证件类型标签名 | |||||
showCredentialType: false, // 控制证件类型字典弹出层的显示和隐藏 | |||||
cybzOptions: [], // 成员备注字典 | |||||
cybzText: null, // 成员备注标签名 | |||||
showMemberRemark: false, // 控制成员备注字典弹出层的显示和隐藏 | |||||
sfgyrOptions: [], // 是否共有人字典 | |||||
familyStatusOptions: [], // 家庭身份字典 | |||||
familyStatusText: null, // 家庭身份标签名 | |||||
showFamilyStatus: false, // 控制家庭身份字典弹出层的显示和隐藏 | |||||
taskStatus: null, // 调查任务的完成状态:1表示已完成,2表示未完成 | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
this.taskStatus = Cookies.get('taskStatus'); | |||||
this.getDicts("sys_user_sex").then(response => { | |||||
this.cyxbOptions = response.data; | |||||
}); | |||||
this.getDicts("cert_type").then(response => { | |||||
this.cyzjlxOptions = response.data; | |||||
}); | |||||
this.getDicts("cybz").then(response => { | |||||
this.cybzOptions = response.data; | |||||
}); | |||||
this.getDicts("is_common").then(response => { | |||||
this.sfgyrOptions = response.data; | |||||
}); | |||||
this.getDicts("family_status").then(response => { | |||||
this.familyStatusOptions = response.data; | |||||
}); | |||||
}, | |||||
mounted() { | |||||
if (this.$route.params.id) { | |||||
this.titleName = "修改家庭成员信息"; | |||||
setTimeout(() => { | |||||
this.getDetail(); | |||||
}, 500); | |||||
} else { | |||||
this.titleName = "新增家庭成员信息"; | |||||
this.resetForm(); | |||||
} | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getList(){ | |||||
getDetail(){ | |||||
getJtcy(this.$route.params.id).then(response => { | |||||
this.form = response.data; | |||||
this.familyStatusText = this.selectDictLabel(this.familyStatusOptions, response.data.yhzgx); | |||||
this.cyzjlxText = this.selectDictLabel(this.cyzjlxOptions, response.data.cyzjlx); | |||||
this.cybzText = this.selectDictLabel(this.cybzOptions, response.data.cybz); | |||||
}); | |||||
}, | }, | ||||
onSearch(){ | |||||
onConfirmFamilyStatusOptions(value){ | |||||
this.form.yhzgx = value.dictValue; | |||||
this.familyStatusText = value.dictLabel; | |||||
this.showFamilyStatus = false; | |||||
}, | }, | ||||
onConfirmTypeOptions(){ | |||||
onConfirmCredentialTypeOptions(value){ | |||||
this.form.cyzjlx = value.dictValue; | |||||
this.cyzjlxText = value.dictLabel; | |||||
this.showCredentialType = false; | |||||
}, | }, | ||||
onConfirmZjTypeOptions(){ | |||||
onConfirmMemberRemarkOptions(value){ | |||||
this.form.cybz = value.dictValue; | |||||
this.cybzText = value.dictLabel; | |||||
this.showMemberRemark = false; | |||||
}, | }, | ||||
onConfirmCYBZOptions(){ | |||||
goBack() { | |||||
this.$router.push({ | |||||
name: 'contractedVillageContractorFamily', | |||||
params: { | |||||
deptId: this.$route.params.deptId, | |||||
cbfbm: this.$route.params.cbfbm, | |||||
cbfmc: this.$route.params.cbfmc, | |||||
surveyStatus: this.$route.params.surveyStatus | |||||
} | |||||
}); | |||||
}, | }, | ||||
submitForm() { | |||||
this.$refs.formData.validate().then(() => { | |||||
if (this.$route.params.id) { | |||||
updateJtcy(this.form).then(response => { | |||||
if (response.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '保存成功', | |||||
duration:"1000", | |||||
onClose: () => { | |||||
this.goBack(); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
} else { | |||||
this.form.deptId = this.$route.params.deptId; | |||||
this.form.cbfbm = this.$route.params.cbfbm; | |||||
addJtcy(this.form).then(response => { | |||||
if (response.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '保存成功', | |||||
duration:"1000", | |||||
onClose: () => { | |||||
this.goBack(); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
}).catch(() => { | |||||
this.$notify({ type: 'danger', message: '请填写完整的表单项' }); | |||||
}); | |||||
}, | |||||
resetForm() { | |||||
this.form = { | |||||
deptId: null, | |||||
cbfbm: null, | |||||
cyxm: null, | |||||
cyxb: '1', | |||||
yhzgx: null, | |||||
sfgyr: '1', | |||||
cyzjlx: '1', | |||||
cyzjhm: null, | |||||
cybz: null, | |||||
cybzsm: null, | |||||
cycgfs: null, | |||||
gqzbh: null | |||||
}; | |||||
this.cyzjlxText = '居民身份证'; | |||||
} | |||||
}, | }, | ||||
}; | }; | ||||
</script> | </script> | ||||
@@ -3,28 +3,197 @@ | |||||
<van-nav-bar left-arrow fixed placeholder @click-left="goBack"> | <van-nav-bar left-arrow fixed placeholder @click-left="goBack"> | ||||
<template #title> | <template #title> | ||||
<div class="tb_main"> | <div class="tb_main"> | ||||
{{ contractorName }}<p><span class="tb">签字完成</span><span class="tb">异常挂起</span></p> | |||||
{{ contractorName }}<p v-if="showBtn"><span class="tb" @click="handleSign">签字完成</span><span class="tb" @click="handleHangUp">异常挂起</span></p> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
</van-nav-bar> | </van-nav-bar> | ||||
<van-popup v-model="showSignPopup" 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="handleReset" class="clearBtn" type="info" plain size="small">清空画板</van-button> | |||||
<van-button @click="handleGenerate" type="info" size="small">保存签字</van-button> | |||||
</div> | |||||
</van-cell-group> | |||||
</van-popup> | |||||
<van-dialog v-model="showRemark" title="异常挂起原因" show-cancel-button confirmButtonText="保存" cancelButtonText="关闭" | |||||
:before-close="onBeforeClose" @confirm="handleConfirm"> | |||||
<van-form ref="remarkForm" class="remarkForm"> | |||||
<van-field v-model="remark" label="挂起原因:" type="textarea" rows="4" placeholder="请输入挂起原因" required | |||||
:rules="[{ required: true }]" input-align="left" label-width="auto" /> | |||||
</van-form> | |||||
</van-dialog> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import { getDept } from "@/api/contracted"; | import { getDept } from "@/api/contracted"; | ||||
import { contractorSignature, hangUp } from "@/api/contracted/cbf"; | |||||
import vueEsign from "vue-esign"; | |||||
import $ from "jquery"; | |||||
export default { | export default { | ||||
name: 'contractedVillageHeader', | name: 'contractedVillageHeader', | ||||
props: ['deptId', 'contractorCode', 'contractorName', 'surveyStatus'], | |||||
props: ['deptId', 'contractorCode', 'contractorName', 'surveyStatus', 'taskStatus'], | |||||
components: { | |||||
vueEsign | |||||
}, | |||||
data() { | |||||
return { | |||||
// 控制签字面板的显示和隐藏 | |||||
showSignPopup: false, | |||||
height: null, | |||||
//电子签名 | |||||
signature: { | |||||
lineWidth: 6, // 画笔的线条粗细 | |||||
lineColor: "#000000", // 画笔的颜色 | |||||
bgColor: "", // 画布的背景颜色 | |||||
resultImg: "", // 最终画布生成的base64图片 | |||||
isCrop: false, // 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | |||||
}, | |||||
// 控制异常信息备注提示框的显示和隐藏 | |||||
showRemark: false, | |||||
// 异常备注信息 | |||||
remark: null, | |||||
// 控制签字按钮和挂起按钮的显示和隐藏 | |||||
showBtn: true, | |||||
}; | |||||
}, | |||||
created() { | |||||
this.height = window.screen.height * 1.28 - 20; | |||||
if (this.taskStatus === '2' && this.surveyStatus !== '3') { | |||||
this.showBtn = true; | |||||
} else { | |||||
this.showBtn = false; | |||||
} | |||||
}, | |||||
methods: { | methods: { | ||||
goBack() { | goBack() { | ||||
getDept(this.deptId).then(response => { | getDept(this.deptId).then(response => { | ||||
this.$router.push({path:'/contracted/village/contractor', query: { deptId: this.deptId, deptName: response.data.deptName }}); | this.$router.push({path:'/contracted/village/contractor', query: { deptId: this.deptId, deptName: response.data.deptName }}); | ||||
}); | }); | ||||
}, | |||||
handleSign() { | |||||
this.showSignPopup = true; | |||||
this.handleReset(); | |||||
}, | |||||
canvasTTdown() { | |||||
$('#canvasTT').css('display', 'none'); | |||||
}, | |||||
// 清空画板 | |||||
handleReset() { | |||||
if (this.$refs.esign) { | |||||
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('cbfbm', this.contractorCode); | |||||
contractorSignature(param).then(response => { | |||||
if (response.code === 200) { | |||||
this.$toast({ | |||||
icon: 'success', // 找到自己需要的图标 | |||||
message: '签字成功', | |||||
duration: "1000", | |||||
onClose: () => { | |||||
this.showSignPopup = false; | |||||
this.goBack(); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
}) | |||||
.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 | |||||
}) | |||||
}, | |||||
// 异常挂起 | |||||
handleHangUp() { | |||||
this.showRemark = true; | |||||
this.remark = null; | |||||
}, | |||||
// van-dialog 点击confirm事件不自动关闭 | |||||
onBeforeClose(action, done) { | |||||
if (action === 'confirm') { | |||||
return done(false); | |||||
} else { | |||||
return done(); | |||||
} | |||||
}, | |||||
handleConfirm() { | |||||
this.$refs.remarkForm.validate().then(() => { | |||||
let data = new FormData() // 创建form对象 | |||||
data.append('cbfbm', this.contractorCode); | |||||
data.append('remark', this.remark); | |||||
hangUp(data).then(response => { | |||||
if (response.code === 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '当前承包方调查已被挂起', | |||||
duration: '2000', | |||||
onClose: () => { | |||||
this.showRemark = false; | |||||
this.goBack(); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
}).catch(() => { | |||||
this.$notify({ type: 'danger', message: '请填写备注信息' }); | |||||
}); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
</script> | </script> | ||||
<style scoped lang="scss"> | <style scoped lang="scss"> | ||||
/deep/ .remarkForm .van-cell__value { | |||||
border: 1px solid #b0b3ba; | |||||
border-radius: 5px; | |||||
padding: 0 15px; | |||||
.van-field__control { | |||||
color: #646566; | |||||
} | |||||
} | |||||
.tb_main{ | .tb_main{ | ||||
position: relative; | position: relative; | ||||
p{ | p{ | ||||
@@ -43,4 +212,25 @@ | |||||
border-radius: 50PX; | border-radius: 50PX; | ||||
margin-right: 5PX; | margin-right: 5PX; | ||||
} | } | ||||
.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; | |||||
} | |||||
} | |||||
</style> | </style> |
@@ -8,65 +8,74 @@ | |||||
</div> | </div> | ||||
</template> | </template> | ||||
</van-nav-bar> --> | </van-nav-bar> --> | ||||
<contractor-header></contractor-header> | |||||
<contractor-header :dept-id="$route.params.deptId" :contractor-code="$route.params.cbfbm" :contractor-name="$route.params.cbfmc" :survey-status="$route.params.surveyStatus" :task-status="taskStatus"></contractor-header> | |||||
<div class="tap_block"> | <div class="tap_block"> | ||||
<p @click="$router.push({path:'/contracted/village/contractorDetail'})">承包方</p> | |||||
<p @click="$router.push({path:'/contracted/village/contractorFamily'})">家庭成员</p> | |||||
<p @click="$router.push({path:'/contracted/village/contractorWord'})">承包合同</p> | |||||
<p @click="skip('contractedVillageContractorDetail')">承包方</p> | |||||
<p @click="skip('contractedVillageContractorFamily')">家庭成员</p> | |||||
<p @click="skip('contractedVillageContractorWord')">承包合同</p> | |||||
<p class="active">承包地</p> | <p class="active">承包地</p> | ||||
</div> | </div> | ||||
<div class="function_main"> | <div class="function_main"> | ||||
<div class="function_btn1" @click="goMap"> | |||||
<div class="function_btn1" @click="skip('contractedVillageContractorLandMap')"> | |||||
<p class="active">进入地图 <span class="sanjiao-right"></span></p> | <p class="active">进入地图 <span class="sanjiao-right"></span></p> | ||||
</div> | </div> | ||||
<div class="function_btn2" @click="goDetail"> | |||||
<div class="function_btn2" @click="goDetail()" v-if="taskStatus === '2' && $route.params.surveyStatus !== '3'"> | |||||
<p class="active"> + 新增</p> | <p class="active"> + 新增</p> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="list_main"> | <div class="list_main"> | ||||
<van-swipe-cell v-for="(item,index) in 10"> | |||||
<div class="item" @click="goDetail"> | |||||
<van-swipe-cell v-for="(item,index) in landList" :key="item.id"> | |||||
<div class="item" @click="goDetail(item.id)"> | |||||
<div class="item_tt"> | <div class="item_tt"> | ||||
<p>西湖地块名称名称名称</p> | |||||
<p>371481199201011234</p> | |||||
<p>{{ item.dkmc }}</p> | |||||
<p>{{ item.dkbm }}</p> | |||||
</div> | </div> | ||||
<div class="item_type"> | <div class="item_type"> | ||||
<p>3.5亩</p> | |||||
<p>旱地</p> | |||||
<p><span>2</span>等地</p> | |||||
<p>种植业</p> | |||||
<p>基本农田:是</p> | |||||
<p>{{ item.htmjm }}亩</p> | |||||
<!-- <p>{{ item.tdlylx }}</p>--> | |||||
<p>{{ item.dldj }}</p> | |||||
<p>{{ item.tdyt }}</p> | |||||
<p>基本农田:{{ item.sfjbnt }}</p> | |||||
</div> | </div> | ||||
<div class="item_direction"> | <div class="item_direction"> | ||||
<p>张三指界</p> | |||||
<p>东:张琪</p> | |||||
<p>西:马六</p> | |||||
<p>南:河流</p> | |||||
<p>北:道路</p> | |||||
<!-- <p>{{ item.zjrxm }}指界</p>--> | |||||
<p>东:{{ item.dkdz }}</p> | |||||
<p>西:{{ item. dkxz }}</p> | |||||
<p>南:{{ item.dknz }}</p> | |||||
<p>北:{{ item.dkbz }}</p> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<template #right> | |||||
<template #right v-if="taskStatus === '2' && $route.params.surveyStatus !== '3'"> | |||||
<div class="operation"> | <div class="operation"> | ||||
<!-- delete 删除 edit编辑 view查看 list榜单 --> | <!-- delete 删除 edit编辑 view查看 list榜单 --> | ||||
<div class="opera_btn delete"> | |||||
<p>取消<br/>承包</p> | |||||
</div> | |||||
<div class="opera_btn edit"> | |||||
<div class="opera_btn edit" @click="transferLand(item.id)"> | |||||
<p>转给<br/>他方</p> | <p>转给<br/>他方</p> | ||||
</div> | </div> | ||||
<div class="opera_btn delete" @click="deleteLand(item.id, index)"> | |||||
<p>取消<br/>承包</p> | |||||
</div> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
</van-swipe-cell> | </van-swipe-cell> | ||||
<van-popup v-model="showContractorPopup" position="bottom"> | |||||
<van-search v-model="searchKeyword" placeholder="请输入姓名搜索" /> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="filteredContractors" | |||||
@confirm="onConfirmContractorOptions" | |||||
@cancel="showContractorPopup = false" | |||||
> | |||||
<template #option="option"> | |||||
<div style="display: flex; flex-direction: column; align-items: center;"> | |||||
<div>{{option.cbfmc}}-{{option.cbfbm}}</div> | |||||
</div> | |||||
</template> | |||||
</van-picker> | |||||
</van-popup> | |||||
</div> | </div> | ||||
@@ -75,6 +84,9 @@ | |||||
<script> | <script> | ||||
import Cookies from "js-cookie"; | import Cookies from "js-cookie"; | ||||
import contractorHeader from "./contractorHeader"; | import contractorHeader from "./contractorHeader"; | ||||
import { listCbdkxx, deleteCbdkxx, transferCbdkxx } from "@/api/contracted/cbdkxx"; | |||||
import { listCbf } from "@/api/contracted/cbf"; | |||||
import { getCbht } from "@/api/contracted/cbht"; | |||||
export default { | export default { | ||||
name: "contractedVillageContractor", | name: "contractedVillageContractor", | ||||
@@ -83,44 +95,133 @@ | |||||
}, | }, | ||||
data() { | data() { | ||||
return { | return { | ||||
loading:false, | |||||
finished:true, | |||||
value:'', | |||||
showType:false, | |||||
showZjType:false, | |||||
typeOptions:[{ | |||||
dictLabel:'类型1', | |||||
dictValue:'1', | |||||
}], | |||||
zjTypeOptions:[{ | |||||
dictLabel:'类型2', | |||||
dictValue:'1', | |||||
}], | |||||
landList: [], // 承包地块列表 | |||||
contractorList: [], // 承包方列表 | |||||
showContractorPopup: false, // 控制承包方信息弹出层的显示和隐藏 | |||||
transferLandId: null, // 转出的承包地块ID | |||||
taskStatus: null, // 调查任务的完成状态:1表示已完成,2表示未完成 | |||||
searchKeyword: '', // 弹出框查询关键字 | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
this.taskStatus = Cookies.get('taskStatus'); | |||||
this.getList(); | |||||
this.getContractorList(); | |||||
}, | |||||
computed: { | |||||
filteredContractors() { | |||||
return this.contractorList.filter(item => { | |||||
return item.cbfmc.indexOf(this.searchKeyword) !== -1; | |||||
}) | |||||
} | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getList(){ | getList(){ | ||||
listCbdkxx({cbfbm: this.$route.params.cbfbm, translate_dict: 1}).then(response => { | |||||
this.landList = response.rows; | |||||
}); | |||||
}, | }, | ||||
onSearch(){ | |||||
getContractorList() { | |||||
listCbf({deptId: this.$route.params.deptId}).then(response => { | |||||
this.contractorList = response.rows; | |||||
}); | |||||
}, | }, | ||||
onConfirmTypeOptions(){ | |||||
goDetail(id){ | |||||
if (!id) { | |||||
// 新增时,查看承包合同是否存在 | |||||
getCbht(this.$route.params.cbfbm).then(response => { | |||||
if (!response.data) { | |||||
this.$toast({ | |||||
icon: 'fail', // 找到自己需要的图标 | |||||
message: '承包合同不存在,请先添加承包合同信息', | |||||
duration:"2000" | |||||
}); | |||||
return ; | |||||
} else { | |||||
this.$router.push({ | |||||
name: 'contractedVillageContractorLandDetail', | |||||
params: { | |||||
deptId: this.$route.params.deptId, | |||||
cbfbm: this.$route.params.cbfbm, | |||||
cbfmc: this.$route.params.cbfmc, | |||||
surveyStatus: this.$route.params.surveyStatus | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
} else { | |||||
this.$router.push({ | |||||
name: 'contractedVillageContractorLandDetail', | |||||
params: { | |||||
id: id, | |||||
deptId: this.$route.params.deptId, | |||||
cbfbm: this.$route.params.cbfbm, | |||||
cbfmc: this.$route.params.cbfmc, | |||||
surveyStatus: this.$route.params.surveyStatus | |||||
} | |||||
}); | |||||
} | |||||
}, | }, | ||||
onConfirmZjTypeOptions(){ | |||||
skip(name) { | |||||
this.$router.push({ | |||||
name: name, | |||||
params: { | |||||
deptId: this.$route.params.deptId, | |||||
cbfbm: this.$route.params.cbfbm, | |||||
cbfmc: this.$route.params.cbfmc, | |||||
surveyStatus: this.$route.params.surveyStatus | |||||
} | |||||
}); | |||||
}, | }, | ||||
goDetail(){ | |||||
this.$router.push({path:'/contracted/village/contractorLandDetail'}); | |||||
transferLand(id) { | |||||
this.transferLandId = id; | |||||
this.searchKeyword = ''; | |||||
this.showContractorPopup = true; | |||||
}, | }, | ||||
goMap(){ | |||||
this.$router.push({path:'/contracted/village/contractorLandMap'}); | |||||
onConfirmContractorOptions(value) { | |||||
this.$dialog.confirm({ | |||||
message: '是否确认将此承包地块转给' + value.cbfmc + '?', | |||||
}).then(() => { | |||||
// on confirm | |||||
this.showContractorPopup = false; | |||||
transferCbdkxx({id: this.transferLandId, cbfbm: value.cbfbm}).then(response => { | |||||
if (response.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '转出成功', | |||||
duration:"1000", | |||||
onClose: () => { | |||||
const index = this.landList.findIndex(item => item.id === this.transferLandId); | |||||
this.landList.splice(index, 1); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
}).catch(() => { | |||||
// on cancel | |||||
}); | |||||
}, | |||||
deleteLand(id, index) { | |||||
this.$dialog.confirm({ | |||||
message: '是否确认取消承包此地块?', | |||||
}).then(() => { | |||||
// on confirm | |||||
deleteCbdkxx(id).then(res => { | |||||
if (res.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '取消成功', | |||||
duration: "1000", | |||||
onClose: () => { | |||||
this.landList.splice(index, 1); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
}).catch(() => { | |||||
// on cancel | |||||
}); | |||||
} | } | ||||
}, | }, | ||||
}; | }; | ||||
</script> | </script> | ||||
@@ -146,15 +247,6 @@ | |||||
border: none; | border: none; | ||||
} | } | ||||
/deep/ .van-search__content{ | |||||
background: rgba(255,255,255,.5); | |||||
} | |||||
/deep/ .van-search{ | |||||
padding: 0; | |||||
flex: 1; | |||||
} | |||||
/deep/ .van-ellipsis{ | /deep/ .van-ellipsis{ | ||||
overflow: initial; | overflow: initial; | ||||
} | } | ||||
@@ -1,101 +1,120 @@ | |||||
<template> | <template> | ||||
<div class="app-container"> | <div class="app-container"> | ||||
<van-nav-bar left-arrow fixed placeholder @click-left="onClickLeft" > | |||||
<van-nav-bar left-arrow fixed placeholder @click-left="goBack" > | |||||
<template #title> | <template #title> | ||||
<div class="tb_main"> | <div class="tb_main"> | ||||
<!-- B村<p><span class="tb">签字完成</span><span class="tb">异常挂起</span></p>--> | |||||
2222 | |||||
{{ titleName }} | |||||
</div> | </div> | ||||
</template> | </template> | ||||
</van-nav-bar> | </van-nav-bar> | ||||
<div class="tap_block"> | |||||
<p @click="$router.push({path:'/contracted/village/contractorDetail'})">承包方</p> | |||||
<p @click="$router.push({path:'/contracted/village/contractorFamily'})">家庭成员</p> | |||||
<p @click="$router.push({path:'/contracted/village/contractorWord'})">承包合同</p> | |||||
<p class="active">承包地</p> | |||||
</div> | |||||
<div class="list_main"> | <div class="list_main"> | ||||
<van-field v-model="value" label="地块代码:" placeholder="请输入地块代码" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="地块名称:" placeholder="请输入地块名称" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="土地利用类型:" | |||||
placeholder="请选择土地利用类型" | |||||
required | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
readonly | |||||
clickable | |||||
@click="showType = true" | |||||
/> | |||||
<van-popup v-model="showType" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="typeOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmTypeOptions" | |||||
@cancel="showType = false" | |||||
<van-form ref="formData"> | |||||
<van-field v-model="form.dkbm" label="地块代码:" placeholder="请选择地块代码" required :rules="[{ required: true }]" :border="false" | |||||
input-align="right" right-icon="arrow-down" readonly clickable @click="openLandCodePopup" :disabled="isDisabled" /> | |||||
<van-popup v-model="showLandCode" position="bottom"> | |||||
<van-picker | |||||
ref="landCodePicker" | |||||
show-toolbar | |||||
:columns="landList" | |||||
@confirm="onConfirmLandCodeOptions" | |||||
@cancel="showLandCode = false" | |||||
> | |||||
<template #option="option"> | |||||
<div style="display: flex; flex-direction: column; align-items: center;"> | |||||
<div>{{option.dkmc}}-{{option.dkbm}}</div> | |||||
</div> | |||||
</template> | |||||
</van-picker> | |||||
</van-popup> | |||||
<van-field v-model="form.dkmc" label="地块名称:" placeholder="请输入地块名称" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field | |||||
v-model="tdlylxText" | |||||
label="土地利用类型:" | |||||
placeholder="请选择土地利用类型" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showLandUseType = true" | |||||
/> | /> | ||||
</van-popup> | |||||
<van-field v-model="value" label="地力等级:" | |||||
placeholder="请选择地力等级" | |||||
required | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
readonly | |||||
clickable | |||||
@click="showZjType = true" | |||||
/> | |||||
<van-popup v-model="showZjType" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="zjTypeOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmZjTypeOptions" | |||||
@cancel="showZjType = false" | |||||
<van-popup v-model="showLandUseType" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="tdlylxOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmLandUseTypeOptions" | |||||
@cancel="showLandUseType = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field | |||||
v-model="dldjText" | |||||
label="地力等级:" | |||||
placeholder="请选择地力等级" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showLandGrade = true" | |||||
/> | /> | ||||
</van-popup> | |||||
<van-field v-model="value" label="土地用途:" | |||||
placeholder="请选择土地用途" | |||||
required | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
readonly | |||||
clickable | |||||
@click="showTDYT = true" | |||||
/> | |||||
<van-popup v-model="showTDYT" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="TDYTOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmTDYTOptions" | |||||
@cancel="showTDYT = false" | |||||
<van-popup v-model="showLandGrade" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="dldjOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmLandGradeOptions" | |||||
@cancel="showLandGrade = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field | |||||
v-model="tdytText" | |||||
label="土地用途:" | |||||
placeholder="请选择土地用途" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showLandPurpose = true" | |||||
/> | /> | ||||
</van-popup> | |||||
<van-field v-model="value" label="基本农用:" placeholder="请输入基本农用" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="实测面积(亩):" placeholder="请输入实测面积(亩)" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="指界:" placeholder="请输入指界" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="东面:" placeholder="请输入东面" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="西面:" placeholder="请输入西面" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="南面:" placeholder="请输入南面" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="北面:" placeholder="请输入北面" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="备注:" placeholder="请输入备注" required :border="false" input-align="right" label-width="auto" /> | |||||
<div class="mapBox"></div> | |||||
<p class="btn">保存</p> | |||||
<van-popup v-model="showLandPurpose" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="tdytOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmTDYTOptions" | |||||
@cancel="showLandPurpose = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="form.sfjbnt" label="基本农田:" placeholder="请选择基本农田" required :rules="[{ required: true }]" :border="false" input-align="right"> | |||||
<template #input> | |||||
<van-radio-group v-model="form.sfjbnt" direction="horizontal"> | |||||
<van-radio v-for="item in sfjbntOptions" :key="item.dictValue" :name="item.dictValue">{{ item.dictLabel }}</van-radio> | |||||
</van-radio-group> | |||||
</template> | |||||
</van-field> | |||||
<van-field v-model="form.htmjm" type="number" label="合同面积(亩):" placeholder="请输入合同面积(亩)" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.zjrxm" label="指界人姓名:" placeholder="请输入指界人姓名" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.dkdz" label="地块东至:" placeholder="请输入地块东至" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.dkxz" label="地块西至:" placeholder="请输入地块西至" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.dknz" label="地块南至:" placeholder="请输入地块南至" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.dkbz" label="地块北至:" placeholder="请输入地块北至" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.dkbzxx" label="地块备注信息:" placeholder="请输入地块备注信息" :border="false" input-align="right" /> | |||||
<div class="mapBox"> | |||||
<common-map ref="contractedLandMap" :minMapZoom="15" :maxMapZoom="18" :allowDraw="true" @drawFinished="onMapDrawFinished" /> | |||||
</div> | |||||
</van-form> | |||||
<p class="btn" @click="submitForm" v-if="taskStatus === '2' && $route.params.surveyStatus !== '3'">保存</p> | |||||
</div> | </div> | ||||
@@ -103,54 +122,218 @@ | |||||
</template> | </template> | ||||
<script> | <script> | ||||
import Cookies from "js-cookie"; | import Cookies from "js-cookie"; | ||||
import { getCbdkxx, addCbdkxx, updateCbdkxx } from "@/api/contracted/cbdkxx"; | |||||
import { listDk } from "@/api/contracted/dk"; | |||||
import { getDept } from "@/api/contracted"; | |||||
import CommonMap from "@/components/house/CommonMap"; | |||||
export default { | export default { | ||||
name: "contractedVillageContractor", | name: "contractedVillageContractor", | ||||
components: { | |||||
CommonMap | |||||
}, | |||||
data() { | data() { | ||||
return { | return { | ||||
loading:false, | |||||
finished:true, | |||||
value:'', | |||||
showType:false, | |||||
showZjType:false, | |||||
showTDYT:false, | |||||
typeOptions:[{ | |||||
dictLabel:'类型1', | |||||
dictValue:'1', | |||||
}], | |||||
zjTypeOptions:[{ | |||||
dictLabel:'类型2', | |||||
dictValue:'1', | |||||
}], | |||||
TDYTOptions:[{ | |||||
dictLabel:'类型2', | |||||
dictValue:'1', | |||||
}], | |||||
radio:1, | |||||
minDate: new Date(2020, 0, 1), | |||||
maxDate: new Date(2025, 10, 1), | |||||
currentDate: new Date(2021, 0, 17), | |||||
titleName: '', // 标题信息 | |||||
isDisabled: false, // 是否禁用 | |||||
form: {}, // 承包地信息表单 | |||||
showLandCode: false, // 控制地块代码弹出层的显示和隐藏 | |||||
tdlylxOptions: [], // 土地利用类型字典 | |||||
tdlylxText: null, // 土地利用类型标签名 | |||||
showLandUseType: false, // 控制土地利用类型字典弹出层的显示和隐藏 | |||||
dldjOptions: [], // 地力等级字典 | |||||
dldjText: null, // 地力等级标签名 | |||||
showLandGrade: false, // 控制地力等级字典弹出层的显示和隐藏 | |||||
tdytOptions: [], // 土地用途字典 | |||||
tdytText: null, // 土地用途标签名 | |||||
showLandPurpose: false, // 控制土地用途字典弹出层的显示和隐藏 | |||||
sfjbntOptions: [], // 是否基本农田字典 | |||||
landList: [], // 地块信息列表 | |||||
taskStatus: null, // 调查任务的完成状态:1表示已完成,2表示未完成 | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
this.taskStatus = Cookies.get('taskStatus'); | |||||
this.getDicts("land_use").then(response => { | |||||
this.tdlylxOptions = response.data; | |||||
}); | |||||
this.getDicts("land_grade").then(response => { | |||||
this.dldjOptions = response.data; | |||||
}); | |||||
this.getDicts("use_code").then(response => { | |||||
this.tdytOptions = response.data; | |||||
}); | |||||
this.getDicts("is_common").then(response => { | |||||
this.sfjbntOptions = response.data; | |||||
}); | |||||
if (this.$route.params.id) { | |||||
this.titleName = '修改承包地信息'; | |||||
this.isDisabled = true; | |||||
this.getDetail(); | |||||
} else { | |||||
this.titleName = '新增承包地信息'; | |||||
this.resetForm(); | |||||
this.getCoordinates(); | |||||
this.getLandList(); | |||||
} | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getList(){ | |||||
getCoordinates() { | |||||
getDept(this.$route.params.deptId).then(response => { | |||||
const lng = response.data.lng; | |||||
const lat = response.data.lat; | |||||
if (lng && lat) { | |||||
this.$nextTick(() => { | |||||
this.$refs.contractedLandMap.setCoord(lng, lat); | |||||
}); | |||||
} | |||||
}); | |||||
}, | }, | ||||
onSearch(){ | |||||
getLandList() { | |||||
// 查询出非承包地块(dklb != '10')且未流转(dkzt = '1')的地块信息 | |||||
listDk({deptId: this.$route.params.deptId, jtdklb: '10', dkzt: '1'}).then(response => { | |||||
this.landList = response.rows; | |||||
}); | |||||
}, | }, | ||||
onConfirmTypeOptions(){ | |||||
getDetail(){ | |||||
getCbdkxx(this.$route.params.id).then(response => { | |||||
this.form = response.data; | |||||
this.tdlylxText = this.selectDictLabel(this.tdlylxOptions, response.data.tdlylx); | |||||
this.dldjText = this.selectDictLabel(this.dldjOptions, response.data.dldj); | |||||
this.tdytText = this.selectDictLabel(this.tdytOptions, response.data.tdyt); | |||||
if (response.data.theGeomJson) { | |||||
this.form.theGeom = JSON.stringify(JSON.parse(response.data.theGeomJson).coordinates); | |||||
this.$nextTick(() => { | |||||
this.$refs.contractedLandMap.setLayer('_Draw_layer', response.data.theGeomJson); | |||||
}); | |||||
} else { | |||||
this.getCoordinates(); | |||||
} | |||||
}); | |||||
}, | }, | ||||
onConfirmZjTypeOptions(){ | |||||
resetForm() { | |||||
this.form = { | |||||
deptId: null, | |||||
cbfbm: null, | |||||
dkbm: null, | |||||
dkmc: null, | |||||
tdlylx: null, | |||||
dldj: null, | |||||
tdyt: null, | |||||
sfjbnt: null, | |||||
htmjm: null, | |||||
zjrxm: null, | |||||
dkdz: null, | |||||
dkxz: null, | |||||
dknz: null, | |||||
dkbz: null, | |||||
dkbzxx: null, | |||||
theGeom: null | |||||
}; | |||||
}, | }, | ||||
onConfirmTDYTOptions(){ | |||||
openLandCodePopup() { | |||||
/* if (this.form.dkbm) { | |||||
const index = this.landList.findIndex(item => item.dkbm === this.form.dkbm); | |||||
this.$refs.landCodePicker.setColumnIndex(0, index); | |||||
} */ | |||||
if (!this.isDisabled) { | |||||
this.showLandCode = true; | |||||
} | |||||
}, | |||||
onConfirmLandCodeOptions(value) { | |||||
this.form.dkbm = value.dkbm; | |||||
this.form.dkmc = value.dkmc; | |||||
this.form.tdlylx = value.tdlylx; | |||||
this.tdlylxText = this.selectDictLabel(this.tdlylxOptions, value.tdlylx); | |||||
this.form.dldj = value.dldj; | |||||
this.dldjText = this.selectDictLabel(this.dldjOptions, value.dldj); | |||||
this.form.tdyt = value.tdyt | |||||
this.tdytText = this.selectDictLabel(this.tdytOptions, value.tdyt); | |||||
this.form.sfjbnt = value.sfjbnt; | |||||
this.form.htmjm = value.scmjm; | |||||
this.form.zjrxm = value.zjrxm; | |||||
this.form.dkdz = value.dkdz; | |||||
this.form.dkxz = value.dkxz | |||||
this.form.dknz = value.dknz; | |||||
this.form.dkbz = value.dkbz; | |||||
this.form.dkbzxx = value.dkbzxx; | |||||
if (value.theGeomJson) { | |||||
this.form.theGeom = JSON.stringify(JSON.parse(value.theGeomJson).coordinates); | |||||
this.$refs.contractedLandMap.setLayer('_Draw_layer', value.theGeomJson); | |||||
} else { | |||||
this.form.theGeom = null; | |||||
} | |||||
this.showLandCode = false; | |||||
}, | |||||
onConfirmLandUseTypeOptions(value) { | |||||
this.form.tdlylx = value.dictValue; | |||||
this.tdlylxText = value.dictLabel; | |||||
this.showLandUseType = false; | |||||
}, | |||||
onConfirmLandGradeOptions(value) { | |||||
this.form.dldj = value.dictValue; | |||||
this.dldjText = value.dictLabel; | |||||
this.showLandGrade = false; | |||||
}, | |||||
onConfirmTDYTOptions(value){ | |||||
this.form.tdyt = value.dictValue; | |||||
this.tdytText = value.dictLabel; | |||||
this.showLandPurpose = false; | |||||
}, | }, | ||||
goBack() { | |||||
this.$router.push({ | |||||
name: 'contractedVillageContractorLand', | |||||
params: { | |||||
deptId: this.$route.params.deptId, | |||||
cbfbm: this.$route.params.cbfbm, | |||||
cbfmc: this.$route.params.cbfmc, | |||||
surveyStatus: this.$route.params.surveyStatus | |||||
} | |||||
}); | |||||
}, | |||||
submitForm() { | |||||
this.$refs.formData.validate().then(() => { | |||||
if (this.$route.params.id) { | |||||
updateCbdkxx(this.form).then(response => { | |||||
if (response.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '保存成功', | |||||
duration:"1000", | |||||
onClose: () => { | |||||
this.goBack(); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
} else { | |||||
this.form.deptId = this.$route.params.deptId; | |||||
this.form.cbfbm = this.$route.params.cbfbm; | |||||
addCbdkxx(this.form).then(response => { | |||||
if (response.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '保存成功', | |||||
duration:"1000", | |||||
onClose: () => { | |||||
this.goBack(); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
}).catch(() => { | |||||
this.$notify({ type: 'danger', message: '请填写完整的表单项' }); | |||||
}); | |||||
}, | |||||
onMapDrawFinished(data) { | |||||
if (data) { | |||||
this.form.theGeom = JSON.stringify(data); | |||||
} else { | |||||
this.form.theGeom = null; | |||||
} | |||||
}, | |||||
}, | }, | ||||
}; | }; | ||||
</script> | </script> | ||||
@@ -188,6 +371,14 @@ | |||||
overflow: initial; | overflow: initial; | ||||
} | } | ||||
/deep/ .van-field--disabled .van-field__label { | |||||
color: #646566; | |||||
} | |||||
/deep/ .van-field__label { | |||||
width: 7em; | |||||
} | |||||
.tb_main{ | .tb_main{ | ||||
position: relative; | position: relative; | ||||
p{ | p{ | ||||
@@ -1,40 +1,231 @@ | |||||
<template> | <template> | ||||
<div class="app-container"> | <div class="app-container"> | ||||
<van-nav-bar left-arrow fixed placeholder @click-left="onClickLeft" > | |||||
<van-nav-bar left-arrow fixed placeholder @click-left="goBack" > | |||||
<template #title> | <template #title> | ||||
<div class="tb_main"> | <div class="tb_main"> | ||||
<!-- B村<p><span class="tb">签字完成</span><span class="tb">异常挂起</span></p>--> | |||||
地图 | 地图 | ||||
</div> | </div> | ||||
</template> | </template> | ||||
</van-nav-bar> | </van-nav-bar> | ||||
<div class="tap_block"> | |||||
<p @click="$router.push({path:'/contracted/village/contractorDetail'})">承包方</p> | |||||
<p @click="$router.push({path:'/contracted/village/contractorFamily'})">家庭成员</p> | |||||
<p @click="$router.push({path:'/contracted/village/contractorWord'})">承包合同</p> | |||||
<p class="active">承包地</p> | |||||
<div style="position:relative;"> | |||||
<div class="mapBox" id="contractedLandMapBox"></div> | |||||
<div class="legend_main"> | |||||
<div class="legend"> | |||||
<p class="legend_tt">图例 | |||||
<img src="../../../../../static/images/contracted/map_icon_01.png" alt=""> | |||||
</p> | |||||
<div><i></i><p>地块</p></div> | |||||
<div><i></i><p>承包地块</p></div> | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
<div class="mapBox"></div> | |||||
<div class="contractedLandPopup"> | |||||
<van-dialog v-model="open" title="承包地信息" :show-confirm-button="false" :show-cancel-button="true" cancel-button-text="关闭"> | |||||
<van-form ref="landForm"> | |||||
<van-field v-model="form.dkbm" label="地块代码:" :border="true" input-align="right" /> | |||||
<van-field v-model="form.dkmc" label="地块名称:" :border="true" input-align="right" /> | |||||
<van-field v-model="form.syqxz" label="所有权性质:" :border="true" input-align="right" /> | |||||
<van-field v-model="form.dklb" label="地块类别:" :border="true" input-align="right" /> | |||||
<van-field v-model="form.tdlylx" label="土地利用类型:" :border="true" input-align="right" /> | |||||
<van-field v-model="form.dldj" label="地力等级:" :border="true" input-align="right" /> | |||||
<van-field v-model="form.tdyt" label="土地用途:" :border="true" input-align="right" /> | |||||
<van-field v-model="form.sfjbnt" label="基本农田:" :border="true" input-align="right" /> | |||||
<van-field v-model="form.scmjm" label="实测面积(亩):" :border="true" input-align="right" /> | |||||
<van-field v-model="form.zjrxm" label="指界人姓名:" :border="true" input-align="right" /> | |||||
<van-field v-model="form.dkdz" label="地块东至:" :border="true" input-align="right" /> | |||||
<van-field v-model="form.dkxz" label="地块西至:" :border="true" input-align="right" /> | |||||
<van-field v-model="form.dknz" label="地块南至:" :border="true" input-align="right" /> | |||||
<van-field v-model="form.dkbz" label="地块北至:" :border="true" input-align="right" /> | |||||
<van-field v-model="form.dkbzxx" label="地块备注信息:" :border="true" input-align="right" /> | |||||
</van-form> | |||||
</van-dialog> | |||||
</div> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import Cookies from "js-cookie"; | import Cookies from "js-cookie"; | ||||
import { getConfigKey } from "@/api/system/config"; | |||||
import { listCbdkxx } from "@/api/contracted/cbdkxx"; | |||||
import { getDept } from "@/api/contracted"; | |||||
export default { | export default { | ||||
name: "contractedVillageContractor", | name: "contractedVillageContractor", | ||||
data() { | data() { | ||||
return { | return { | ||||
form: {}, // 承包地信息表单 | |||||
open: false, // 是否显示承包地信息弹出层 | |||||
map: "", // 地图 | |||||
mapGeoServerUrl: "", // geoserver地址 | |||||
mapCenterLocation: [], // 地图中心坐标 | |||||
landLayerName: "", // 地块图层名称 | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
// 获取geoserver的地址 | |||||
this.getGeoServerUrl(); | |||||
// 获取地块图层名称 | |||||
this.getLandLayerName(); | |||||
}, | |||||
mounted() { | |||||
// 获取承包地块列表 | |||||
this.getContractedLandList(); | |||||
}, | }, | ||||
methods: { | methods: { | ||||
// 获取geoserver的地址 | |||||
getGeoServerUrl() { | |||||
getConfigKey("system.geoServer.url").then(response => { | |||||
this.mapGeoServerUrl = response.msg; | |||||
}); | |||||
}, | |||||
// 获取地块图层名称 | |||||
getLandLayerName() { | |||||
getConfigKey("geoserver.layer.dk").then(response => { | |||||
this.landLayerName = response.msg; | |||||
}); | |||||
}, | |||||
goBack() { | |||||
this.$router.push({ | |||||
name: 'contractedVillageContractorLand', | |||||
params: { | |||||
deptId: this.$route.params.deptId, | |||||
cbfbm: this.$route.params.cbfbm, | |||||
cbfmc: this.$route.params.cbfmc, | |||||
surveyStatus: this.$route.params.surveyStatus | |||||
} | |||||
}); | |||||
}, | |||||
getContractedLandList() { | |||||
listCbdkxx({cbfbm: this.$route.params.cbfbm, translate_dict: 1}).then(response => { | |||||
const landList = response.rows; | |||||
this.map = ""; | |||||
setTimeout(() => { | |||||
this.drawMap(landList); | |||||
}, 500); | |||||
}); | |||||
}, | |||||
drawMap(landList) { | |||||
getDept(this.$route.params.deptId).then(response => { | |||||
let dept = response.data; | |||||
if (dept.lng && dept.lat) { | |||||
this.mapCenterLocation = [dept.lng, dept.lat]; | |||||
} else { | |||||
this.mapCenterLocation = [116.391458, 39.902377]; | |||||
} | |||||
document.getElementById("contractedLandMapBox").innerHTML = ""; | |||||
// 定义地图投影 | |||||
let projection = new ol.proj.Projection({ | |||||
code: "EPSG:3857", | |||||
units: "degrees", | |||||
}); | |||||
// 定义地图图层 | |||||
let aerial = new ol.layer.Tile({ | |||||
source: new ol.source.XYZ({ | |||||
url: "http://t{0-7}.tianditu.com/img_w/wmts?" + | |||||
"SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles" + | |||||
"&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=cc4aba6e967096098249efa069733067", | |||||
}), | |||||
isGroup: true, | |||||
name: "卫星影像图", | |||||
}); | |||||
let yingxzi = new ol.layer.Tile({ | |||||
source: new ol.source.XYZ({ | |||||
url: "http://t{0-7}.tianditu.com/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=cc4aba6e967096098249efa069733067", | |||||
}), | |||||
isGroup: true, | |||||
name: "天地图文字标注--卫星影像图", | |||||
}); | |||||
//加载地图 | |||||
this.map = new ol.Map({ | |||||
controls: ol.control.defaults({attribution: false, zoom: false, rotate: false}).extend([]), | |||||
layers: [aerial, yingxzi], | |||||
projection: projection, | |||||
target: "contractedLandMapBox", | |||||
view: new ol.View({ | |||||
center: ol.proj.fromLonLat(this.mapCenterLocation), // 地图中心坐标 | |||||
zoom: 17, | |||||
minZoom: 1, //地图缩小限制 | |||||
maxZoom: 18, //地图放大限制 | |||||
// extent: [13481224.75161,5667110.83528,13811063.06278,5880284.11416] | |||||
}), | |||||
}); | |||||
// 添加全部的地块图层 | |||||
this.addLandLayer(); | |||||
// 添加承包地块图层 | |||||
this.addContractedLandLayer(landList); | |||||
// 地图点击事件 | |||||
this.map.on("click", (evt) => { | |||||
let feature = this.map.forEachFeatureAtPixel( | |||||
evt.pixel, | |||||
(feature) => feature | |||||
); | |||||
if (feature) { | |||||
// 镇级:加载村级坐标点 | |||||
if (feature.get('level') === 'contractedLand') { | |||||
this.form = feature.get('landInfo'); | |||||
this.open = true; | |||||
} | |||||
} | |||||
}); | |||||
}); | |||||
}, | |||||
// 添加全部的地块图层 | |||||
addLandLayer() { | |||||
const landLayer = new ol.layer.Image({ | |||||
source: new ol.source.ImageWMS({ | |||||
url: this.mapGeoServerUrl + '/wms', | |||||
params: { | |||||
LAYERS: this.landLayerName, | |||||
cql_filter: "dept_id = '" + this.$route.params.deptId + "'", | |||||
SRID: 3857, | |||||
} | |||||
}), | |||||
name: 'landLayer' | |||||
}); | |||||
this.map.getLayers().insertAt(3, landLayer); | |||||
// this.map.addLayer(landLayer); | |||||
}, | |||||
// 添加承包地块图层 | |||||
addContractedLandLayer(landList) { | |||||
if (landList.length === 0) { | |||||
return ; | |||||
} | |||||
let features = []; | |||||
landList.forEach(item => { | |||||
if (item.theGeomJson) { | |||||
const iconFeature = new ol.Feature({ | |||||
geometry: new ol.geom.MultiPolygon(JSON.parse(item.theGeomJson).coordinates), | |||||
level: 'contractedLand', | |||||
landInfo: item | |||||
}); | |||||
features.push(iconFeature); | |||||
} | |||||
}); | |||||
const contractedLandLayer = new ol.layer.Vector({ | |||||
source: new ol.source.Vector({ | |||||
features: features | |||||
}), | |||||
name: 'contractedLandLayer', | |||||
style: new ol.style.Style({ | |||||
fill: new ol.style.Fill({ | |||||
color: "rgba(255, 84, 87, 0.5)" | |||||
}), | |||||
stroke: new ol.style.Stroke({ | |||||
color: "#ff5457", | |||||
width: 3 | |||||
}) | |||||
}) | |||||
}); | |||||
this.map.getLayers().insertAt(4, contractedLandLayer); | |||||
this.map.getView().fit(contractedLandLayer.getSource().getExtent()); | |||||
// this.map.getView().setZoom(15); | |||||
} | |||||
}, | }, | ||||
}; | }; | ||||
</script> | </script> | ||||
@@ -72,6 +263,15 @@ | |||||
overflow: initial; | overflow: initial; | ||||
} | } | ||||
/deep/ .contractedLandPopup .van-dialog { | |||||
height: 85%; | |||||
overflow-y: auto; | |||||
} | |||||
/deep/ .contractedLandPopup .van-field__label { | |||||
width: 7em; | |||||
} | |||||
.tb_main{ | .tb_main{ | ||||
position: relative; | position: relative; | ||||
p{ | p{ | ||||
@@ -121,4 +321,47 @@ | |||||
transform: translateX(-4vw); | transform: translateX(-4vw); | ||||
} | } | ||||
.legend_main{ | |||||
position: absolute; | |||||
top: 5vh; | |||||
right: 0; | |||||
} | |||||
.legend_tt{ | |||||
font-size: 16PX; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: space-between; | |||||
img{ | |||||
width: 20PX; | |||||
} | |||||
} | |||||
.legend{ | |||||
background: rgba(255,255,255,.5); | |||||
padding: 2vh; | |||||
border-radius: 10PX; | |||||
div{ | |||||
display: flex; | |||||
align-items: center; | |||||
margin-top: 2vh; | |||||
i{ | |||||
display: block; | |||||
width: 15PX; | |||||
height: 15PX; | |||||
border: 1px solid; | |||||
border-radius: 3PX; | |||||
margin-right: 10PX; | |||||
} | |||||
&:nth-child(2) i{ | |||||
background: rgba(22,233,15,.7); | |||||
border-color: rgba(22,233,15,1); | |||||
} | |||||
&:nth-child(3) i{ | |||||
background: rgba(255,84,87,.7); | |||||
border-color: rgba(255,84,87,1); | |||||
} | |||||
} | |||||
} | |||||
</style> | </style> |
@@ -17,83 +17,243 @@ | |||||
</div> | </div> | ||||
<div class="list_main"> | <div class="list_main"> | ||||
<van-field v-model="value" label="代码:" placeholder="请输入代码" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="名称:" placeholder="请输入名称" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="负责人:" placeholder="请输入负责人" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="证件类型:" | |||||
placeholder="请选择证件类型" | |||||
required | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
readonly | |||||
clickable | |||||
@click="showType = true" | |||||
/> | |||||
<van-popup v-model="showType" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="typeOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmTypeOptions" | |||||
@cancel="showType = false" | |||||
<van-form ref="formData"> | |||||
<van-field v-model="form.fbfbm" label="代码:" placeholder="请输入代码" required :rules="[{ required: true }]" :border="false" input-align="right" label-width="auto" :disabled="isDisabled" maxlength="14"> | |||||
<template #button v-if="!isDisabled"> | |||||
<van-button size="mini" type="primary" native-type="button" @click="generateCode">生成代码</van-button> | |||||
</template> | |||||
</van-field> | |||||
<van-field v-model="form.fbfmc" label="名称:" placeholder="请输入名称" required :rules="[{ required: true }]" :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="form.fbffzrxm" label="负责人姓名:" placeholder="请输入负责人姓名" required :rules="[{ required: true }]" :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="credentialTypeText" label="证件类型:" | |||||
placeholder="请选择证件类型" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
readonly | |||||
clickable | |||||
@click="showCredentialType = true" | |||||
/> | /> | ||||
</van-popup> | |||||
<van-field v-model="value" label="证件号码:" placeholder="请输入证件号码" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="联系电话:" placeholder="请输入联系电话" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="地址:" placeholder="请输入地址" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="邮编:" placeholder="请输入邮编" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="调查记事:" placeholder="请输入调查记事" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field readonly v-model="value" label="签字(上传图片):" :border="false" input-align="right" label-width="auto" /> | |||||
<div class="btn_main"> | |||||
<p class="btn">保存</p> | |||||
<p class="btn1">签字</p> | |||||
<van-popup v-model="showCredentialType" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="credentialTypeOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmTypeOptions" | |||||
@cancel="showCredentialType = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="form.fzrzjhm" label="证件号码:" placeholder="请输入证件号码" required :rules="[{ required: true }]" :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="form.lxdh" label="联系电话:" placeholder="请输入联系电话" required :rules="[{ required: true }]" :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="form.fbfdz" label="地址:" placeholder="请输入地址" required :rules="[{ required: true }]" :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="form.yzbm" label="邮政编码:" placeholder="请输入邮政编码" required :rules="[{ required: true }]" :border="false" input-align="right" label-width="auto" maxlength="6" /> | |||||
<van-field v-model="form.fbfdcjs" label="调查记事:" placeholder="请输入调查记事" required :rules="[{ required: true }]" :border="false" input-align="right" label-width="auto" /> | |||||
<van-field label="签字图片:" readonly :border="false" label-width="auto" /> | |||||
<img :src="'/api'+form.fbfdcqz" width="100%" alt="" /> | |||||
</van-form> | |||||
<div class="btn_main" v-if="taskStatus === '2'"> | |||||
<p class="btn" @click="submitForm">保存</p> | |||||
<p class="btn1" @click="handleSign">签字</p> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<van-popup v-model="showSignPopup" 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="handleReset" class="clearBtn" type="info" plain size="small">清空画板</van-button> | |||||
<van-button @click="handleGenerate" type="info" size="small">保存签字</van-button> | |||||
</div> | |||||
</van-cell-group> | |||||
</van-popup> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import Cookies from "js-cookie"; | import Cookies from "js-cookie"; | ||||
import { listFbf, addFbf, updateFbf, manualSignature, generateEmployerCode } from "@/api/contracted/fbf"; | |||||
import vueEsign from "vue-esign"; | |||||
import $ from "jquery"; | |||||
export default { | export default { | ||||
name: "contractedVillageContractor", | name: "contractedVillageContractor", | ||||
components: { | |||||
vueEsign | |||||
}, | |||||
data() { | data() { | ||||
return { | return { | ||||
loading:false, | |||||
finished:true, | |||||
value:'', | |||||
showType:false, | |||||
typeOptions:[{ | |||||
dictLabel:'类型1', | |||||
dictValue:'1', | |||||
}], | |||||
form: {}, // 发包方信息表单 | |||||
isDisabled: false, // 是否禁用 | |||||
credentialTypeOptions: [], // 证件类型字典 | |||||
credentialTypeText: null, // 证件类型标签名 | |||||
showCredentialType: false, // 控制证件类型字典弹出层的显示和隐藏 | |||||
taskStatus: null, // 调查任务的完成状态:1表示已完成,2表示未完成 | |||||
// 控制签字面板的显示和隐藏 | |||||
showSignPopup: false, | |||||
height: null, | |||||
//电子签名 | |||||
signature: { | |||||
lineWidth: 6, // 画笔的线条粗细 | |||||
lineColor: "#000000", // 画笔的颜色 | |||||
bgColor: "", // 画布的背景颜色 | |||||
resultImg: "", // 最终画布生成的base64图片 | |||||
isCrop: false, // 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | |||||
}, | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
this.taskStatus = Cookies.get('taskStatus'); | |||||
this.height = window.screen.height * 1.28 - 20; | |||||
this.getDicts("cert_type").then(response => { | |||||
this.credentialTypeOptions = response.data; | |||||
}); | |||||
this.getDetail(); | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getList(){ | |||||
getDetail() { | |||||
listFbf({deptId: this.$route.query.deptId}).then(response => { | |||||
if (response.rows.length > 0) { | |||||
this.form = response.rows[0]; | |||||
this.isDisabled = true; | |||||
this.$nextTick(() => { | |||||
this.credentialTypeText = this.selectDictLabel(this.credentialTypeOptions, this.form.fzrzjlx); | |||||
}); | |||||
} else { | |||||
this.resetForm(); | |||||
this.isDisabled = false; | |||||
} | |||||
}); | |||||
}, | }, | ||||
onSearch(){ | |||||
generateCode() { | |||||
generateEmployerCode({deptId: this.$route.query.deptId}).then(response => { | |||||
this.$set(this.form, 'fbfbm', response.data); | |||||
}); | |||||
}, | }, | ||||
onConfirmTypeOptions(){ | |||||
onConfirmTypeOptions(value){ | |||||
this.form.fzrzjlx = value.dictValue; | |||||
this.credentialTypeText = value.dictLabel; | |||||
this.showCredentialType = false; | |||||
}, | }, | ||||
onConfirmZjTypeOptions(){ | |||||
submitForm() { | |||||
this.$refs.formData.validate().then(() => { | |||||
if (this.form.id) { | |||||
updateFbf(this.form).then(response => { | |||||
if (response.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '保存成功', | |||||
duration:"1000", | |||||
}); | |||||
} | |||||
}); | |||||
} else { | |||||
this.form.deptId = this.$route.query.deptId; | |||||
addFbf(this.form).then(response => { | |||||
if (response.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '保存成功', | |||||
duration:"1000", | |||||
onClose: () => { | |||||
this.getDetail(); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
}).catch(() => { | |||||
this.$notify({ type: 'danger', message: '请填写完整的表单项' }); | |||||
}); | |||||
}, | }, | ||||
onConfirmTDYTOptions(){ | |||||
resetForm() { | |||||
this.form = { | |||||
deptId: null, | |||||
fbfbm: null, | |||||
fbfmc: null, | |||||
fbffzrxm: null, | |||||
fzrzjlx: '1', | |||||
fzrzjhm: null, | |||||
lxdh: null, | |||||
fbfdz: null, | |||||
yzbm: null, | |||||
fbfdcjs: null, | |||||
fbfdcqz: null | |||||
}; | |||||
this.credentialTypeText = '居民身份证'; | |||||
}, | |||||
handleSign() { | |||||
this.showSignPopup = true; | |||||
this.handleReset(); | |||||
}, | |||||
canvasTTdown() { | |||||
$('#canvasTT').css('display', 'none'); | |||||
}, | |||||
// 清空画板 | |||||
handleReset() { | |||||
if (this.$refs.esign) { | |||||
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('deptId', this.$route.query.deptId); | |||||
manualSignature(param).then(response => { | |||||
if (response.code === 200) { | |||||
this.$toast({ | |||||
icon: 'success', // 找到自己需要的图标 | |||||
message: '签字成功', | |||||
duration: "1000", | |||||
onClose: () => { | |||||
this.showSignPopup = false; | |||||
this.form.fbfdcqz = response.data; | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
}) | |||||
.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> | </script> | ||||
@@ -131,6 +291,10 @@ | |||||
overflow: initial; | overflow: initial; | ||||
} | } | ||||
/deep/ .van-field--disabled .van-field__label { | |||||
color: #646566; | |||||
} | |||||
.tb_main{ | .tb_main{ | ||||
position: relative; | position: relative; | ||||
p{ | p{ | ||||
@@ -252,4 +416,25 @@ | |||||
margin: 2vh auto; | margin: 2vh auto; | ||||
} | } | ||||
.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; | |||||
} | |||||
} | |||||
</style> | </style> |
@@ -13,6 +13,7 @@ | |||||
</div> | </div> | ||||
<div style="position:relative;"> | <div style="position:relative;"> | ||||
<div class="mapBox" id="landMapBox"></div> | |||||
<div class="legend_main"> | <div class="legend_main"> | ||||
<div class="legend"> | <div class="legend"> | ||||
<p class="legend_tt">图例 | <p class="legend_tt">图例 | ||||
@@ -24,33 +25,562 @@ | |||||
<div><i></i><p>开荒地</p></div> | <div><i></i><p>开荒地</p></div> | ||||
<div><i></i><p>其他地</p></div> | <div><i></i><p>其他地</p></div> | ||||
</div> | </div> | ||||
<div class="legend_second"> | |||||
<p class="legend_tt"> | |||||
<div class="legend_second" v-if="taskStatus === '2'"> | |||||
<p class="legend_tt" id="drawLandPolygon"> | |||||
<img src="../../../../../static/images/contracted/map_icon_02.png" alt="">画图 | <img src="../../../../../static/images/contracted/map_icon_02.png" alt="">画图 | ||||
</p> | </p> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="mapBox"></div> | |||||
</div> | |||||
<div class="landPopup"> | |||||
<van-dialog v-model="open" :title="title" :show-confirm-button="false" :show-cancel-button="false"> | |||||
<van-form ref="landForm"> | |||||
<van-field v-model="form.dkbm" label="地块代码:" placeholder="请输入地块代码" required :rules="[{ required: true }]" :border="false" input-align="right" label-width="auto" > <!-- :disabled="isDisabled" --> | |||||
<template #button v-if="!isDisabled"> | |||||
<van-button size="mini" type="primary" native-type="button" @click="generateCode">生成代码</van-button> | |||||
</template> | |||||
</van-field> | |||||
<van-field v-model="form.dkmc" label="地块名称:" placeholder="请输入地块名称" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="syqxzText" label="所有权性质:" | |||||
placeholder="请选择所有权性质" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showOwnership = true" | |||||
/> | |||||
<van-popup v-model="showOwnership" position="bottom" get-container=".app-container"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="syqxzOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmOwnershipOptions" | |||||
@cancel="showOwnership = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="dklbText" label="地块类别:" | |||||
placeholder="请选择地块类别" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showLandCategory = true" | |||||
/> | |||||
<van-popup v-model="showLandCategory" position="bottom" get-container=".app-container"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="dklbOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmLandCategoryOptions" | |||||
@cancel="showLandCategory = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="tdlylxText" label="土地利用类型:" | |||||
placeholder="请选择土地利用类型" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showLandType = true" | |||||
/> | |||||
<van-popup v-model="showLandType" position="bottom" get-container=".app-container"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="tdlylxOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmLandTypeOptions" | |||||
@cancel="showLandType = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="dldjText" label="地力等级:" | |||||
placeholder="请选择地力等级" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showLandGrade = true" | |||||
/> | |||||
<van-popup v-model="showLandGrade" position="bottom" get-container=".app-container"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="dldjOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmLandGradeOptions" | |||||
@cancel="showLandGrade = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="tdytText" label="土地用途:" | |||||
placeholder="请选择土地用途" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showLandPurpose = true" | |||||
/> | |||||
<van-popup v-model="showLandPurpose" position="bottom" get-container=".app-container"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="tdytOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmLandPurposeOptions" | |||||
@cancel="showLandPurpose = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="form.sfjbnt" label="基本农田:" required :rules="[{ required: true }]" :border="false" input-align="right" > | |||||
<template #input> | |||||
<van-radio-group v-model="form.sfjbnt" direction="horizontal"> | |||||
<!-- <van-radio name="1">是</van-radio> | |||||
<van-radio name="2">否</van-radio> --> | |||||
<van-radio v-for="dict in sfjbntOptions" :ke="dict.dictValue" :name="dict.dictValue">{{ dict.dictLabel }}</van-radio> | |||||
</van-radio-group> | |||||
</template> | |||||
</van-field> | |||||
<van-field v-model="form.scmjm" type="number" label="实测面积(亩):" placeholder="请输入实测面积(亩)" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.zjrxm" label="指界人姓名:" placeholder="请输入指界人姓名" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.dkdz" label="地块东至:" placeholder="请输入地块东至" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.dkxz" label="地块西至:" placeholder="请输入地块西至" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.dknz" label="地块南至:" placeholder="请输入地块南至" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.dkbz" label="地块北至:" placeholder="请输入地块北至" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.dkbzxx" label="地块备注信息:" placeholder="请输入地块备注信息" :border="false" input-align="right" /> | |||||
</van-form> | |||||
<div class="footer_main"> | |||||
<van-button type="default" hairline size="large" @click="closePopup">关闭弹窗</van-button> | |||||
<van-button type="danger" hairline size="large" @click="deleteLand(form.id)" v-if="taskStatus === '2' && showDeleteBtn">删除地块</van-button> | |||||
<van-button type="info" hairline size="large" @click="saveLand" v-if="showSaveBtn">保存信息</van-button> | |||||
</div> | |||||
</van-dialog> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import Cookies from "js-cookie"; | import Cookies from "js-cookie"; | ||||
import { getConfigKey } from "@/api/system/config"; | |||||
import { getDept } from "@/api/contracted"; | |||||
import { getDk, addDk, updateDk, deleteDk, generateLandCode } from "@/api/contracted/dk"; | |||||
import $ from "jquery"; | |||||
export default { | export default { | ||||
name: "contractedVillageContractor", | name: "contractedVillageContractor", | ||||
data() { | data() { | ||||
return { | return { | ||||
loading:false, | |||||
finished:true, | |||||
value:'' | |||||
form: {}, // 地块信息表单参数 | |||||
map: "", // 地图 | |||||
mapGeoServerUrl: "", // geoserver地址 | |||||
mapCenterLocation: [], // 地图中心坐标 | |||||
landLayerName: "", // 地块图层名称 | |||||
landLayer: "", // 地块图层 | |||||
mapBorder: "", // 地图边界 | |||||
villageBorderLayerName: "", // 乡镇边界图层名称 | |||||
vectorLayer: "", // 绘制的矢量图层 | |||||
title: "", // 弹出层标题 | |||||
open: false, // 是否显示地块弹出层 | |||||
syqxzOptions: [], // 所有权性质字典 | |||||
syqxzText: null, // 所有权性质标签名 | |||||
showOwnership: false, // 控制所有权性质字典弹出层的显示和隐藏 | |||||
dklbOptions: [], // 地块类别字典 | |||||
dklbText: null, // 地块类别标签名 | |||||
showLandCategory: false, // 控制的地块类别字典弹出层的显示和隐藏 | |||||
dldjOptions: [], // 地力等级字典 | |||||
dldjText: null, // 地力等级标签名 | |||||
showLandGrade: false, // 控制地力等级字典弹出层的显示和隐藏 | |||||
tdytOptions: [], // 土地用途字典 | |||||
tdytText: null, // 土地用途标签名 | |||||
showLandPurpose: false, // 控制土地用途字典弹出层的显示和隐藏 | |||||
tdlylxOptions: [], // 土地利用类型 | |||||
tdlylxText: null, // 土地利用类型标签名 | |||||
showLandType: false, // 控制土地利用类型字典弹出层的显示和隐藏 | |||||
sfjbntOptions: [], // 是否基本农田字典 | |||||
showSaveBtn: false, // 控制保存按钮的显示隐藏 | |||||
showDeleteBtn: false, // 控制删除按钮的显示隐藏 | |||||
isDisabled: false, // 是否禁用 | |||||
taskStatus: null, // 调查任务的完成状态:1表示已完成,2表示未完成 | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
this.taskStatus = Cookies.get('taskStatus'); | |||||
this.getDicts("land_ownership").then(response => { | |||||
this.syqxzOptions = response.data; | |||||
}); | |||||
this.getDicts("land_type").then(response => { | |||||
this.dklbOptions = response.data; | |||||
}); | |||||
this.getDicts("land_grade").then(response => { | |||||
this.dldjOptions = response.data; | |||||
}); | |||||
this.getDicts("use_code").then(response => { | |||||
this.tdytOptions = response.data; | |||||
}); | |||||
this.getDicts("land_use").then(response => { | |||||
this.tdlylxOptions = response.data; | |||||
}); | |||||
this.getDicts("is_common").then(response => { | |||||
this.sfjbntOptions = response.data; | |||||
}); | |||||
// 获取geoserver的地址 | |||||
this.getGeoServerUrl(); | |||||
// 获取地块图层名称 | |||||
this.getLandLayerName(); | |||||
// 获取村边界的图层名称 | |||||
this.getVillageBorderLayerName(); | |||||
}, | |||||
mounted() { | |||||
// 初始化地图 | |||||
setTimeout(() => { | |||||
this.initMap(); | |||||
}, 500); | |||||
}, | }, | ||||
methods: { | methods: { | ||||
// 获取geoserver的地址 | |||||
getGeoServerUrl() { | |||||
getConfigKey("system.geoServer.url").then(response => { | |||||
this.mapGeoServerUrl = response.msg; | |||||
}); | |||||
}, | |||||
// 获取地块图层名称 | |||||
getLandLayerName() { | |||||
getConfigKey("geoserver.layer.landCategory").then(response => { | |||||
this.landLayerName = response.msg; | |||||
}); | |||||
}, | |||||
// 获取村边界的图层名称 | |||||
getVillageBorderLayerName() { | |||||
getConfigKey("geoserver.layer.villageBorder").then(response => { | |||||
this.villageBorderLayerName = response.msg; | |||||
}); | |||||
}, | |||||
// 初始化地图 | |||||
initMap() { | |||||
getDept(this.$route.query.deptId).then(response => { | |||||
let dept = response.data; | |||||
if (dept.lng && dept.lat) { | |||||
this.mapCenterLocation = [dept.lng, dept.lat]; | |||||
} else { | |||||
this.mapCenterLocation = [116.391458, 39.902377]; | |||||
} | |||||
document.getElementById("landMapBox").innerHTML = ""; | |||||
// 定义地图投影 | |||||
let projection = new ol.proj.Projection({ | |||||
code: "EPSG:3857", | |||||
units: "degrees", | |||||
}); | |||||
// 定义地图图层 | |||||
let aerial = new ol.layer.Tile({ | |||||
source: new ol.source.XYZ({ | |||||
url: "http://t{0-7}.tianditu.com/img_w/wmts?" + | |||||
"SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles" + | |||||
"&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=cc4aba6e967096098249efa069733067", | |||||
}), | |||||
isGroup: true, | |||||
name: "卫星影像图", | |||||
}); | |||||
let yingxzi = new ol.layer.Tile({ | |||||
source: new ol.source.XYZ({ | |||||
url: "http://t{0-7}.tianditu.com/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=cc4aba6e967096098249efa069733067", | |||||
}), | |||||
isGroup: true, | |||||
name: "天地图文字标注--卫星影像图", | |||||
}); | |||||
//加载地图 | |||||
this.map = new ol.Map({ | |||||
controls: ol.control.defaults({attribution: false, zoom: false, rotate: false}).extend([]), | |||||
layers: [aerial, yingxzi], | |||||
projection: projection, | |||||
target: "landMapBox", | |||||
view: new ol.View({ | |||||
center: ol.proj.fromLonLat(this.mapCenterLocation), // 地图中心坐标 | |||||
zoom: 15.5, | |||||
minZoom: 1, //地图缩小限制 | |||||
maxZoom: 18, //地图放大限制 | |||||
// extent: [13481224.75161,5667110.83528,13811063.06278,5880284.11416] | |||||
}), | |||||
}); | |||||
// // 添加村边界 | |||||
this.addVillageBorder(); | |||||
// 添加地块图层 | |||||
this.addLandLayer(); | |||||
// 绘制地块 | |||||
$("#drawLandPolygon").click(() => { | |||||
// 创建矢量数据源 | |||||
let vectorSource = new ol.source.Vector({ | |||||
wrapX: false, | |||||
}); | |||||
// 创建矢量图层 | |||||
this.vectorLayer = new ol.layer.Vector({ | |||||
source: vectorSource, | |||||
}); | |||||
// 添加图层 | |||||
this.map.addLayer(this.vectorLayer); | |||||
// 地图交互-绘制图形 | |||||
let drawInteraction = new ol.interaction.Draw({ | |||||
source: vectorSource, | |||||
type: "Polygon", | |||||
}); | |||||
// 添加交互 | |||||
this.map.addInteraction(drawInteraction); | |||||
drawInteraction.on('drawend', (evt) => { | |||||
// 移除交互 | |||||
this.map.removeInteraction(drawInteraction); | |||||
let coordinates = evt.feature.getGeometry().getCoordinates(); | |||||
this.reset(); | |||||
this.form.theGeom = JSON.stringify(coordinates); | |||||
this.title = "添加地块信息"; | |||||
this.showSaveBtn = true; | |||||
this.showDeleteBtn = false; | |||||
this.isDisabled = false; | |||||
setTimeout(() => { | |||||
this.open = true; | |||||
}, 10); | |||||
}); | |||||
}); | |||||
// 地图点击事件 | |||||
this.map.on("click", (evt) => { | |||||
// 点击宅基地查看详情 | |||||
if (this.landLayer) { | |||||
const viewResolution = this.map.getView().getResolution(); | |||||
const url = this.landLayer.getSource() | |||||
.getFeatureInfoUrl(evt.coordinate, viewResolution, 'EPSG:3857', {'INFO_FORMAT': 'application/json'}); | |||||
if (url) { | |||||
fetch(url) | |||||
.then(response => response.json()) | |||||
.then(data => { | |||||
if (data.features.length > 0) { | |||||
let id = data.features[0].id.split(".")[1]; | |||||
getDk(id).then(response => { | |||||
const data = response.data; | |||||
this.reset(); | |||||
this.form = data; | |||||
this.syqxzText = this.selectDictLabel(this.syqxzOptions, data.syqxz); | |||||
this.dklbText = this.selectDictLabel(this.dklbOptions, data.dklb); | |||||
this.dldjText = this.selectDictLabel(this.dldjOptions, data.dldj); | |||||
this.tdytText = this.selectDictLabel(this.tdytOptions, data.tdyt); | |||||
this.tdlylxText = this.selectDictLabel(this.tdlylxOptions, data.tdlylx); | |||||
this.title = "查看地块信息"; | |||||
this.showSaveBtn = false; | |||||
this.showDeleteBtn = true; | |||||
this.isDisabled = true; | |||||
setTimeout(() => { | |||||
this.open = true; | |||||
}, 10); | |||||
}); | |||||
/* if (this.selectedHomesteadLayer) { | |||||
this.map.removeLayer(this.selectedHomesteadLayer); | |||||
this.selectedHomesteadLayer = ""; | |||||
} | |||||
this.selectedHomesteadLayer = new ol.layer.Vector({ | |||||
source: new ol.source.Vector({ | |||||
features: new ol.format.GeoJSON().readFeatures(data) | |||||
}), | |||||
name: 'selectedHomesteadLayer', | |||||
style: new ol.style.Style({ | |||||
fill: new ol.style.Fill({ | |||||
//矢量图层填充颜色,以及透明度 | |||||
color: "rgba(255, 84, 87, 0.3)", | |||||
}), | |||||
stroke: new ol.style.Stroke({ | |||||
//边界样式 | |||||
color: "#ff5457", | |||||
width: 3, | |||||
}), | |||||
}) | |||||
}); | |||||
// this.map.addLayer(this.selectedHomesteadLayer); | |||||
this.map.getLayers().insertAt(4, this.selectedHomesteadLayer);*/ | |||||
} | |||||
}); | |||||
} | |||||
} | |||||
}); | |||||
}); | |||||
}, | |||||
// 添加地块图层 | |||||
addLandLayer() { | |||||
this.landLayer = new ol.layer.Image({ | |||||
source: new ol.source.ImageWMS({ | |||||
url: this.mapGeoServerUrl + '/wms', | |||||
params: { | |||||
LAYERS: this.landLayerName, | |||||
cql_filter: "dept_id = '" + this.$route.query.deptId + "'", | |||||
SRID: 3857, | |||||
abc: Math.random() // 无效参数,保证每次发送的请求都不一样 | |||||
} | |||||
}), | |||||
name: 'landLayer' | |||||
}); | |||||
this.map.getLayers().insertAt(3, this.landLayer); | |||||
// this.map.addLayer(this.landLayer); | |||||
}, | |||||
// 添加村边界 | |||||
addVillageBorder() { | |||||
this.mapBorder = new ol.layer.Image({ | |||||
source: new ol.source.ImageWMS({ | |||||
url: this.mapGeoServerUrl + '/wms', | |||||
params: { | |||||
LAYERS: this.villageBorderLayerName, | |||||
cql_filter: "dept_id = '" + this.$route.query.deptId + "'", | |||||
SRID: 3857, | |||||
}, | |||||
}), | |||||
name: 'villageBorderLayer' | |||||
}); | |||||
this.map.getLayers().insertAt(2, this.mapBorder); | |||||
}, | |||||
saveLand() { | |||||
this.$refs.landForm.validate().then(() => { | |||||
if (this.form.id) { | |||||
this.showSaveBtn = false; | |||||
updateDk(this.form).then(response => { | |||||
if (response.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '保存成功', | |||||
duration:"1000", | |||||
onClose: () => { | |||||
this.open = false; | |||||
this.showSaveBtn = true; | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
} else { | |||||
this.form.deptId = this.$route.query.deptId; | |||||
this.showSaveBtn = false; | |||||
addDk(this.form).then(response => { | |||||
if (response.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '保存成功', | |||||
duration:"1000", | |||||
onClose: () => { | |||||
this.open = false; | |||||
this.showSaveBtn = true; | |||||
// 移除矢量图层 | |||||
this.map.removeLayer(this.vectorLayer); | |||||
this.vectorLayer = ""; | |||||
// 移除地块图层重新加载 | |||||
this.map.removeLayer(this.landLayer); | |||||
this.landLayer = ""; | |||||
this.addLandLayer(); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
}).catch(() => { | |||||
this.$notify({ type: 'danger', message: '请填写完整的表单项' }); | |||||
}); | |||||
}, | |||||
deleteLand(id) { | |||||
this.$dialog.confirm({ | |||||
message: '是否确认删除此地块?', | |||||
}).then(() => { | |||||
// on confirm | |||||
this.showDeleteBtn = false; | |||||
deleteDk(id).then(res => { | |||||
if (res.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '删除成功', | |||||
duration: "1000", | |||||
onClose: () => { | |||||
this.open = false; | |||||
this.showDeleteBtn = true; | |||||
// 移除地块图层重新加载 | |||||
this.map.removeLayer(this.landLayer); | |||||
this.landLayer = ""; | |||||
this.addLandLayer(); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
}).catch(() => { | |||||
// on cancel | |||||
}); | |||||
}, | |||||
onConfirmOwnershipOptions(value){ | |||||
this.form.syqxz = value.dictValue; | |||||
this.syqxzText = value.dictLabel; | |||||
this.showOwnership = false; | |||||
}, | |||||
onConfirmLandCategoryOptions(value){ | |||||
this.form.dklb = value.dictValue; | |||||
this.dklbText = value.dictLabel; | |||||
this.showLandCategory = false; | |||||
}, | |||||
onConfirmLandTypeOptions(value) { | |||||
this.form.tdlylx = value.dictValue; | |||||
this.tdlylxText = value.dictLabel; | |||||
this.showLandType = false; | |||||
}, | |||||
onConfirmLandGradeOptions(value) { | |||||
this.form.dldj = value.dictValue | |||||
this.dldjText = value.dictLabel; | |||||
this.showLandGrade = false; | |||||
}, | |||||
onConfirmLandPurposeOptions(value){ | |||||
this.form.tdyt = value.dictValue; | |||||
this.tdytText = value.dictLabel; | |||||
this.showLandPurpose = false; | |||||
}, | |||||
generateCode() { | |||||
generateLandCode({deptId: this.$route.query.deptId}).then(response => { | |||||
this.$set(this.form, 'dkbm', response.data); | |||||
}); | |||||
}, | |||||
closePopup() { | |||||
// 移除矢量图层 | |||||
if (this.vectorLayer) { | |||||
this.map.removeLayer(this.vectorLayer); | |||||
this.vectorLayer = ""; | |||||
} | |||||
this.open = false; | |||||
this.reset(); | |||||
}, | |||||
reset() { | |||||
this.form = { | |||||
deptId: null, | |||||
dkbm: null, | |||||
dkmc: null, | |||||
syqxz: null, | |||||
dklb: null, | |||||
tdlylx: null, | |||||
dldj: null, | |||||
tdyt: null, | |||||
sfjbnt: '1', | |||||
scmjm: null, | |||||
zjrxm: null, | |||||
dkdz: null, | |||||
dkxz: null, | |||||
dknz: null, | |||||
dkbz: null, | |||||
dkbzxx: null, | |||||
theGeom: null | |||||
}; | |||||
this.syqxzText = null; | |||||
this.dklbText = null; | |||||
this.dldjText = null; | |||||
this.tdytText = null; | |||||
this.tdlylxText = null; | |||||
}, | |||||
}, | }, | ||||
}; | }; | ||||
</script> | </script> | ||||
@@ -74,6 +604,20 @@ | |||||
border: none; | border: none; | ||||
} | } | ||||
/deep/ .van-field--disabled .van-field__label { | |||||
color: #646566; | |||||
} | |||||
/deep/ .landPopup .van-dialog { | |||||
width: 90%; | |||||
height: 85%; | |||||
overflow-y: auto; | |||||
} | |||||
/deep/ .landPopup .van-field__label { | |||||
width: 7em; | |||||
} | |||||
.head{ | .head{ | ||||
padding: 0 4vw; | padding: 0 4vw; | ||||
} | } | ||||
@@ -140,24 +684,24 @@ | |||||
margin-right: 10PX; | margin-right: 10PX; | ||||
} | } | ||||
&:nth-child(2) i{ | &:nth-child(2) i{ | ||||
background: rgba(12,255,0,.5); | |||||
border-color: rgba(12,255,0,1); | |||||
background: rgba(22,233,15,.7); | |||||
border-color: rgba(22,233,15,1); | |||||
} | } | ||||
&:nth-child(3) i{ | &:nth-child(3) i{ | ||||
background: rgba(255,137,5,.5); | |||||
border-color: rgba(255,137,5,1); | |||||
background: rgba(1,198,222,.7); | |||||
border-color: rgba(1,198,222,1); | |||||
} | } | ||||
&:nth-child(4) i{ | &:nth-child(4) i{ | ||||
background: rgba(246,255,0,.5); | |||||
border-color: rgba(246,255,0,1); | |||||
background: rgba(238,238,0,.7); | |||||
border-color: rgba(238,238,0,1); | |||||
} | } | ||||
&:nth-child(5) i{ | &:nth-child(5) i{ | ||||
background: rgba(168,0,255,.5); | |||||
border-color: rgba(168,0,255,1); | |||||
background: rgba(238,60,60,.7); | |||||
border-color: rgba(238,60,60,1); | |||||
} | } | ||||
&:nth-child(6) i{ | &:nth-child(6) i{ | ||||
background: rgba(0,234,255,.5); | |||||
border-color: rgba(0,234,255,1); | |||||
background: rgba(235,134,0,.7); | |||||
border-color: rgba(235,134,0,1); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -169,4 +713,12 @@ | |||||
background-image: linear-gradient(to right,#c6fe8b,#48e5a2); | background-image: linear-gradient(to right,#c6fe8b,#48e5a2); | ||||
} | } | ||||
.footer_main { | |||||
flex: 0 0 120px; | |||||
background: #ccc; | |||||
display: flex; | |||||
justify-content: center; /* 相对父元素水平居中 */ | |||||
align-items: center; /* 子元素相对父元素垂直居中 */ | |||||
} | |||||
</style> | </style> |
@@ -16,68 +16,179 @@ | |||||
v-model="value" | v-model="value" | ||||
shape="round" | shape="round" | ||||
background="transparent" | background="transparent" | ||||
placeholder="请输入姓名搜索" | |||||
placeholder="请输入地块名称搜索" | |||||
@search="onSearch" | @search="onSearch" | ||||
></van-search> | ></van-search> | ||||
<div class="search_btn"> | |||||
<div class="search_btn" @click="goDetail()" v-if="taskStatus === '2'"> | |||||
<p class="active"> + 新增</p> | <p class="active"> + 新增</p> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="second_tap"> | <div class="second_tap"> | ||||
<p class="active">承包</p> | |||||
<!-- <p class="active">承包</p> | |||||
<p>自留</p> | <p>自留</p> | ||||
<p>机动</p> | <p>机动</p> | ||||
<p>开荒</p> | <p>开荒</p> | ||||
<p>其他</p> | |||||
<p>其他</p> --> | |||||
<p v-for="dict in dklbOptions" :key="dict.dictValue" :class="{active: landCategory === dict.dictValue}" @click="landCategoryChange(dict.dictValue, dict.dictLabel)">{{dict.dictLabel}}</p> | |||||
</div> | </div> | ||||
<p class="page_tab">自留地 <span>5153亩</span></p> | |||||
<p class="page_tab">{{ tagName }} <span>{{ totalNum }}块</span></p> | |||||
<div class="list_main"> | <div class="list_main"> | ||||
<van-row style="color: #888888;font-size: 14px;"> | <van-row style="color: #888888;font-size: 14px;"> | ||||
<van-col span="9">地块代码</van-col> | <van-col span="9">地块代码</van-col> | ||||
<van-col span="10">地块名称</van-col> | <van-col span="10">地块名称</van-col> | ||||
<van-col span="5">面积(亩)</van-col> | <van-col span="5">面积(亩)</van-col> | ||||
</van-row> | </van-row> | ||||
<van-swipe-cell v-for="(item,index) in 50"> | |||||
<van-row @click="goDetail"> | |||||
<van-col span="9">45412353553</van-col> | |||||
<van-col span="10">西湖地地块名称</van-col> | |||||
<van-col span="5" style="color: #f78200">7</van-col> | |||||
</van-row> | |||||
<template #right> | |||||
<van-button square type="danger" text="删除" /> | |||||
</template> | |||||
</van-swipe-cell> | |||||
<van-list | |||||
v-model="loading" | |||||
:finished="finished" | |||||
finished-text="没有更多了" | |||||
:immediate-check="false" | |||||
@load="getList" | |||||
> | |||||
<van-swipe-cell v-for="(item,index) in landList"> | |||||
<van-row @click="goDetail(item.id)"> | |||||
<van-col span="9">{{ item.dkbm }}</van-col> | |||||
<van-col span="10">{{ item.dkmc }}</van-col> | |||||
<van-col span="5" style="color: #f78200">{{ item.scmjm }}</van-col> | |||||
</van-row> | |||||
<template #right v-if="taskStatus === '2'"> | |||||
<van-button square type="danger" text="删除" native-type="button" @click="deleteLand(item.id, index)" /> | |||||
</template> | |||||
</van-swipe-cell> | |||||
</van-list> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import Cookies from "js-cookie"; | import Cookies from "js-cookie"; | ||||
import { listDk, deleteDk } from "@/api/contracted/dk"; | |||||
export default { | export default { | ||||
name: "contractedVillageContractor", | name: "contractedVillageContractor", | ||||
data() { | data() { | ||||
return { | return { | ||||
loading:false, | loading:false, | ||||
finished:true, | |||||
value:'' | |||||
finished:false, | |||||
value:'', | |||||
// 查询参数 | |||||
queryParams: { | |||||
deptId: null, | |||||
dkmc: null, | |||||
dklb: null, | |||||
pageNum:1, | |||||
pageSize:20, | |||||
// 查询排序 | |||||
orderByColumn: "id", | |||||
isAsc: "desc", | |||||
}, | |||||
// 地块类别字典 | |||||
dklbOptions: [], | |||||
// 地块类别 | |||||
landCategory: null, | |||||
// 当前选中的地块类别 | |||||
tagName: null, | |||||
// 当前调查状态下的地块总数 | |||||
totalNum: 0, | |||||
// 地块列表 | |||||
landList: [], | |||||
// 调查任务的完成状态:1表示已完成,2表示未完成 | |||||
taskStatus: null, | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
this.taskStatus = Cookies.get('taskStatus'); | |||||
this.queryParams.deptId = this.$route.query.deptId; | |||||
this.getDicts("land_type").then(response => { | |||||
this.dklbOptions = response.data; | |||||
if (this.dklbOptions.length > 0) { | |||||
const dklb = this.$route.query.dklb; | |||||
this.queryParams.dklb = dklb ? dklb : this.dklbOptions[0].dictValue; | |||||
this.landCategory = dklb ? dklb : this.dklbOptions[0].dictValue; | |||||
this.tagName = dklb ? this.selectDictLabel(this.dklbOptions, dklb) : this.dklbOptions[0].dictLabel; | |||||
} | |||||
this.getList(); | |||||
}); | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getList(){ | getList(){ | ||||
this.loading = true; | |||||
listDk(this.queryParams).then(response => { | |||||
response.rows.forEach(item => { | |||||
this.landList.push(item); | |||||
}); | |||||
this.totalNum = response.total; | |||||
if (this.landList.length >= response.total) { | |||||
this.finished = true; | |||||
return; | |||||
} else { | |||||
this.loading = false; | |||||
this.queryParams.pageNum += 1; | |||||
} | |||||
}); | |||||
}, | }, | ||||
onSearch(){ | onSearch(){ | ||||
this.queryParams.dkmc = this.value; | |||||
this.queryData(); | |||||
}, | |||||
landCategoryChange(dictValue, dictLabel) { | |||||
this.landCategory = dictValue; | |||||
this.queryParams.dklb = dictValue; | |||||
this.tagName = dictLabel; | |||||
this.totalNum = 0; | |||||
this.queryData(); | |||||
}, | |||||
queryData() { | |||||
this.queryParams.pageNum = 1; | |||||
this.finished = false; | |||||
this.landList = []; | |||||
this.getList(); | |||||
}, | |||||
goDetail(id){ | |||||
if (id) { | |||||
this.$router.push({ | |||||
path:'/contracted/village/massifDetail', | |||||
query: { | |||||
deptId: this.$route.query.deptId, | |||||
deptName: this.$route.query.deptName, | |||||
id: id | |||||
} | |||||
}); | |||||
} else { | |||||
this.$router.push({ | |||||
path:'/contracted/village/massifDetail', | |||||
query: { | |||||
deptId: this.$route.query.deptId, | |||||
deptName: this.$route.query.deptName | |||||
} | |||||
}); | |||||
} | |||||
}, | }, | ||||
goDetail(){ | |||||
this.$router.push({path:'/contracted/village/massifDetail', query: { deptId: this.$route.query.deptId, deptName: this.$route.query.deptName }}); | |||||
deleteLand(id, index) { | |||||
this.$dialog.confirm({ | |||||
message: '是否确认删除此地块?', | |||||
}).then(() => { | |||||
// on confirm | |||||
deleteDk(id).then(res => { | |||||
if (res.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '删除成功', | |||||
duration: "1000", | |||||
onClose: () => { | |||||
this.landList.splice(index, 1); | |||||
this.totalNum = this.totalNum - 1; | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
}).catch(() => { | |||||
// on cancel | |||||
}); | |||||
} | } | ||||
}, | }, | ||||
}; | }; | ||||
@@ -162,7 +273,7 @@ | |||||
background: #dbf1ea; | background: #dbf1ea; | ||||
border: 1px solid #cdcdcd; | border: 1px solid #cdcdcd; | ||||
color: #5f5f5f; | color: #5f5f5f; | ||||
padding: 5PX 15PX; | |||||
padding: 5PX 5PX; | |||||
margin-right: 3vw; | margin-right: 3vw; | ||||
border-radius: 50PX; | border-radius: 50PX; | ||||
} | } | ||||
@@ -1,149 +1,151 @@ | |||||
<template> | <template> | ||||
<div class="app-container"> | <div class="app-container"> | ||||
<van-nav-bar left-arrow fixed placeholder @click-left="onClickLeft" > | |||||
<van-nav-bar left-arrow fixed placeholder @click-left="goBack" > | |||||
<template #title> | <template #title> | ||||
<div class="tb_main"> | <div class="tb_main"> | ||||
{{$route.query.deptName}} | |||||
{{ titleName }} | |||||
</div> | </div> | ||||
</template> | </template> | ||||
</van-nav-bar> | </van-nav-bar> | ||||
<div class="tap_block"> | |||||
<!-- <div class="tap_block"> | |||||
<p @click="$router.push({path:'/contracted/village/contractor', query: { deptId: $route.query.deptId, deptName: $route.query.deptName }})">承包方</p> | <p @click="$router.push({path:'/contracted/village/contractor', query: { deptId: $route.query.deptId, deptName: $route.query.deptName }})">承包方</p> | ||||
<p @click="$router.push({path:'/contracted/village/employer', query: { deptId: $route.query.deptId, deptName: $route.query.deptName }})">发包方</p> | <p @click="$router.push({path:'/contracted/village/employer', query: { deptId: $route.query.deptId, deptName: $route.query.deptName }})">发包方</p> | ||||
<p class="active">地块</p> | <p class="active">地块</p> | ||||
<p @click="$router.push({path:'/contracted/village/map', query: { deptId: $route.query.deptId, deptName: $route.query.deptName }})">地图</p> | <p @click="$router.push({path:'/contracted/village/map', query: { deptId: $route.query.deptId, deptName: $route.query.deptName }})">地图</p> | ||||
</div> | |||||
</div> --> | |||||
<div class="list_main"> | <div class="list_main"> | ||||
<van-field v-model="value" label="地块代码:" placeholder="请输入地块代码" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="地块名称:" placeholder="请输入地块名称" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="所有权性质:" | |||||
placeholder="请选择所有权性质" | |||||
required | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
readonly | |||||
clickable | |||||
@click="showType = true" | |||||
/> | |||||
<van-popup v-model="showSYQXZ" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="typeOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmTypeOptions" | |||||
@cancel="showSYQXZ = false" | |||||
<van-form ref="formData"> | |||||
<van-field v-model="form.dkbm" label="地块代码:" placeholder="请输入地块代码" required :rules="[{ required: true }]" :border="false" input-align="right" label-width="auto" :disabled="isDisabled" maxlength="19"> | |||||
<template #button v-if="!$route.query.id"> | |||||
<van-button size="mini" type="primary" native-type="button" @click="generateCode">生成代码</van-button> | |||||
</template> | |||||
</van-field> | |||||
<van-field v-model="form.dkmc" label="地块名称:" placeholder="请输入地块名称" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="syqxzText" label="所有权性质:" | |||||
placeholder="请选择所有权性质" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showOwnership = true" | |||||
/> | /> | ||||
</van-popup> | |||||
<van-field v-model="value" label="地块类别:" | |||||
placeholder="请选择地块类别" | |||||
required | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
readonly | |||||
clickable | |||||
@click="showZjType = true" | |||||
/> | |||||
<van-popup v-model="showDKLB" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="zjTypeOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmZjTypeOptions" | |||||
@cancel="showDKLB = false" | |||||
<van-popup v-model="showOwnership" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="syqxzOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmOwnershipOptions" | |||||
@cancel="showOwnership = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="dklbText" label="地块类别:" | |||||
placeholder="请选择地块类别" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="openLandCategoryPopup" | |||||
/> | /> | ||||
</van-popup> | |||||
<van-field v-model="value" label="土地利用类型:" | |||||
placeholder="请选择土地利用类型" | |||||
required | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
readonly | |||||
clickable | |||||
@click="showType = true" | |||||
/> | |||||
<van-popup v-model="showType" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="typeOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmTypeOptions" | |||||
@cancel="showType = false" | |||||
<van-popup v-model="showLandCategory" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="dklbOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmLandCategoryOptions" | |||||
@cancel="showLandCategory = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="tdlylxText" label="土地利用类型:" | |||||
placeholder="请选择土地利用类型" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showLandType = true" | |||||
/> | /> | ||||
</van-popup> | |||||
<van-field v-model="value" label="地力等级:" | |||||
placeholder="请选择地力等级" | |||||
required | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
readonly | |||||
clickable | |||||
@click="showZjType = true" | |||||
/> | |||||
<van-popup v-model="showZjType" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="zjTypeOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmZjTypeOptions" | |||||
@cancel="showZjType = false" | |||||
<van-popup v-model="showLandType" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="tdlylxOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmLandTypeOptions" | |||||
@cancel="showLandType = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="dldjText" label="地力等级:" | |||||
placeholder="请选择地力等级" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showLandGrade = true" | |||||
/> | /> | ||||
</van-popup> | |||||
<van-field v-model="value" label="土地用途:" | |||||
placeholder="请选择土地用途" | |||||
required | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
readonly | |||||
clickable | |||||
@click="showTDYT = true" | |||||
/> | |||||
<van-popup v-model="showTDYT" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="TDYTOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmTDYTOptions" | |||||
@cancel="showTDYT = false" | |||||
<van-popup v-model="showLandGrade" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="dldjOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmLandGradeOptions" | |||||
@cancel="showLandGrade = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="tdytText" label="土地用途:" | |||||
placeholder="请选择土地用途" | |||||
required | |||||
:rules="[{ required: true }]" | |||||
:border="false" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
readonly | |||||
clickable | |||||
@click="showLandPurpose = true" | |||||
/> | /> | ||||
</van-popup> | |||||
<van-field v-model="value" label="基本农田:" required :border="false" input-align="right" > | |||||
<template #input> | |||||
<van-radio-group v-model="radio" direction="horizontal"> | |||||
<van-radio name="1">是</van-radio> | |||||
<van-radio name="2">否</van-radio> | |||||
</van-radio-group> | |||||
</template> | |||||
</van-field> | |||||
<van-field v-model="value" label="实测面积(亩):" placeholder="请输入实测面积(亩)" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="指界人:" placeholder="请输入指界人" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="东面:" placeholder="请输入东面" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="西面:" placeholder="请输入西面" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="南面:" placeholder="请输入南面" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="北面:" placeholder="请输入北面" required :border="false" input-align="right" label-width="auto" /> | |||||
<van-field v-model="value" label="备注:" placeholder="请输入备注" :border="false" input-align="right" label-width="auto" /> | |||||
<div class="mapBox"></div> | |||||
<p class="btn">保存</p> | |||||
<van-popup v-model="showLandPurpose" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="tdytOptions" | |||||
value-key="dictLabel" | |||||
@confirm="onConfirmLandPurposeOptions" | |||||
@cancel="showLandPurpose = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="form.sfjbnt" label="基本农田:" required :rules="[{ required: true }]" :border="false" input-align="right" > | |||||
<template #input> | |||||
<van-radio-group v-model="form.sfjbnt" direction="horizontal"> | |||||
<!-- <van-radio name="1">是</van-radio> | |||||
<van-radio name="2">否</van-radio> --> | |||||
<van-radio v-for="dict in sfjbntOptions" :ke="dict.dictValue" :name="dict.dictValue">{{ dict.dictLabel }}</van-radio> | |||||
</van-radio-group> | |||||
</template> | |||||
</van-field> | |||||
<van-field v-model="form.scmjm" type="number" label="实测面积(亩):" placeholder="请输入实测面积(亩)" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.zjrxm" label="指界人姓名:" placeholder="请输入指界人姓名" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.dkdz" label="地块东至:" placeholder="请输入地块东至" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.dkxz" label="地块西至:" placeholder="请输入地块西至" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.dknz" label="地块南至:" placeholder="请输入地块南至" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.dkbz" label="地块北至:" placeholder="请输入地块北至" required :rules="[{ required: true }]" :border="false" input-align="right" /> | |||||
<van-field v-model="form.dkbzxx" label="地块备注信息:" placeholder="请输入地块备注信息" :border="false" input-align="right" /> | |||||
<div class="mapBox"> | |||||
<common-map ref="landMap" :minMapZoom="15" :maxMapZoom="18" :allowDraw="true" @drawFinished="onMapDrawFinished" /> | |||||
</div> | |||||
</van-form> | |||||
<p class="btn" @click="submitForm" v-if="taskStatus === '2'">保存</p> | |||||
</div> | </div> | ||||
@@ -151,8 +153,15 @@ | |||||
</template> | </template> | ||||
<script> | <script> | ||||
import Cookies from "js-cookie"; | import Cookies from "js-cookie"; | ||||
import { getDk, addDk, updateDk, generateLandCode } from "@/api/contracted/dk"; | |||||
import { getDept } from "@/api/contracted"; | |||||
import CommonMap from "@/components/house/CommonMap"; | |||||
export default { | export default { | ||||
name: "contractedVillageContractor", | name: "contractedVillageContractor", | ||||
components: { | |||||
CommonMap | |||||
}, | |||||
data() { | data() { | ||||
return { | return { | ||||
loading:false, | loading:false, | ||||
@@ -179,28 +188,243 @@ | |||||
minDate: new Date(2020, 0, 1), | minDate: new Date(2020, 0, 1), | ||||
maxDate: new Date(2025, 10, 1), | maxDate: new Date(2025, 10, 1), | ||||
currentDate: new Date(2021, 0, 17), | currentDate: new Date(2021, 0, 17), | ||||
titleName: '', // 标题信息 | |||||
isDisabled: false, // 是否禁用 | |||||
form: {}, // 地块信息表单 | |||||
syqxzOptions: [], // 所有权性质字典 | |||||
syqxzText: null, // 所有权性质标签名 | |||||
showOwnership: false, // 控制所有权性质字典弹出层的显示和隐藏 | |||||
dklbOptions: [], // 地块类别字典 | |||||
dklbText: null, // 地块类别标签名 | |||||
showLandCategory: false, // 控制的地块类别字典弹出层的显示和隐藏 | |||||
dldjOptions: [], // 地力等级字典 | |||||
dldjText: null, // 地力等级标签名 | |||||
showLandGrade: false, // 控制地力等级字典弹出层的显示和隐藏 | |||||
tdytOptions: [], // 土地用途字典 | |||||
tdytText: null, // 土地用途标签名 | |||||
showLandPurpose: false, // 控制土地用途字典弹出层的显示和隐藏 | |||||
tdlylxOptions: [], // 土地利用类型 | |||||
tdlylxText: null, // 土地利用类型标签名 | |||||
showLandType: false, // 控制土地利用类型字典弹出层的显示和隐藏 | |||||
sfjbntOptions: [], // 是否基本农田字典 | |||||
taskStatus: null, // 调查任务的完成状态:1表示已完成,2表示未完成 | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
this.taskStatus = Cookies.get('taskStatus'); | |||||
this.getDicts("land_ownership").then(response => { | |||||
this.syqxzOptions = response.data; | |||||
}); | |||||
this.getDicts("land_type").then(response => { | |||||
this.dklbOptions = response.data; | |||||
// 新增地块信息的时候,去除地块类别中的承包地块选项 | |||||
if (!this.$route.query.id) { | |||||
let index = this.dklbOptions.findIndex(item => item.dictValue === '10'); | |||||
this.dklbOptions.splice(index, 1); | |||||
} | |||||
}); | |||||
this.getDicts("land_grade").then(response => { | |||||
this.dldjOptions = response.data; | |||||
}); | |||||
this.getDicts("use_code").then(response => { | |||||
this.tdytOptions = response.data; | |||||
}); | |||||
this.getDicts("land_use").then(response => { | |||||
this.tdlylxOptions = response.data; | |||||
}); | |||||
this.getDicts("is_common").then(response => { | |||||
this.sfjbntOptions = response.data; | |||||
}); | |||||
}, | |||||
mounted() { | |||||
if (this.$route.query.id) { | |||||
this.titleName = '修改地块信息'; | |||||
this.isDisabled = true; | |||||
setTimeout(() => { | |||||
this.getDetail(); | |||||
}, 500); | |||||
} else { | |||||
this.titleName = '新增地块信息'; | |||||
this.resetForm(); | |||||
this.getCoordinates(); | |||||
} | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getList(){ | |||||
getDetail() { | |||||
getDk(this.$route.query.id).then(response => { | |||||
const data = response.data; | |||||
this.form = data; | |||||
this.syqxzText = this.selectDictLabel(this.syqxzOptions, data.syqxz); | |||||
this.dklbText = this.selectDictLabel(this.dklbOptions, data.dklb); | |||||
this.dldjText = this.selectDictLabel(this.dldjOptions, data.dldj); | |||||
this.tdytText = this.selectDictLabel(this.tdytOptions, data.tdyt); | |||||
this.tdlylxText = this.selectDictLabel(this.tdlylxOptions, data.tdlylx); | |||||
if (response.data.theGeomJson) { | |||||
this.form.theGeom = JSON.stringify(JSON.parse(response.data.theGeomJson).coordinates); | |||||
this.$nextTick(() => { | |||||
this.$refs.landMap.setLayer('_Draw_layer', response.data.theGeomJson); | |||||
}); | |||||
} else { | |||||
this.getCoordinates(); | |||||
} | |||||
}); | |||||
}, | }, | ||||
onSearch(){ | |||||
resetForm() { | |||||
this.form = { | |||||
deptId: null, | |||||
dkbm: null, | |||||
dkmc: null, | |||||
syqxz: '30', | |||||
dklb: '99', | |||||
tdlylx: '01', | |||||
dldj: '01', | |||||
tdyt: '1', | |||||
sfjbnt: '1', | |||||
scmjm: null, | |||||
zjrxm: null, | |||||
dkdz: null, | |||||
dkxz: null, | |||||
dknz: null, | |||||
dkbz: null, | |||||
dkbzxx: null, | |||||
theGeom: null | |||||
}; | |||||
this.syqxzText = '集体土地所有权'; | |||||
this.dklbText = '其他集体土地'; | |||||
this.tdlylxText = '【1】耕地'; | |||||
this.dldjText = '一等地'; | |||||
this.tdytText = '种植业'; | |||||
}, | }, | ||||
onConfirmTypeOptions(){ | |||||
getCoordinates() { | |||||
getDept(this.$route.query.deptId).then(response => { | |||||
const lng = response.data.lng; | |||||
const lat = response.data.lat; | |||||
if (lng && lat) { | |||||
this.$nextTick(() => { | |||||
this.$refs.landMap.setCoord(lng, lat); | |||||
}); | |||||
} | |||||
}); | |||||
}, | }, | ||||
onConfirmZjTypeOptions(){ | |||||
onConfirmOwnershipOptions(value){ | |||||
this.form.syqxz = value.dictValue; | |||||
this.syqxzText = value.dictLabel; | |||||
this.showOwnership = false; | |||||
}, | }, | ||||
onConfirmTDYTOptions(){ | |||||
onConfirmLandCategoryOptions(value){ | |||||
/* if (this.$route.query.id && this.form.dklb === '10') { | |||||
this.$toast({ | |||||
icon: 'fail', | |||||
message: '当前地块为承包地块,不能修改地块类别', | |||||
duration: '2000' | |||||
}) | |||||
this.showLandCategory = false; | |||||
return ; | |||||
} */ | |||||
this.form.dklb = value.dictValue; | |||||
this.dklbText = value.dictLabel; | |||||
this.showLandCategory = false; | |||||
}, | }, | ||||
onConfirmLandTypeOptions(value) { | |||||
this.form.tdlylx = value.dictValue; | |||||
this.tdlylxText = value.dictLabel; | |||||
this.showLandType = false; | |||||
}, | |||||
onConfirmLandGradeOptions(value) { | |||||
this.form.dldj = value.dictValue | |||||
this.dldjText = value.dictLabel; | |||||
this.showLandGrade = false; | |||||
}, | |||||
onConfirmLandPurposeOptions(value){ | |||||
this.form.tdyt = value.dictValue; | |||||
this.tdytText = value.dictLabel; | |||||
this.showLandPurpose = false; | |||||
}, | |||||
submitForm() { | |||||
this.$refs.formData.validate().then(() => { | |||||
if (this.$route.query.id) { | |||||
updateDk(this.form).then(response => { | |||||
if (response.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '保存成功', | |||||
duration:"1000", | |||||
onClose: () => { | |||||
// this.goBack(); | |||||
this.$router.push({ | |||||
path:'/contracted/village/massif', | |||||
query: { | |||||
deptId: this.$route.query.deptId, | |||||
deptName: this.$route.query.deptName, | |||||
dklb: this.form.dklb | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
} else { | |||||
this.form.deptId = this.$route.query.deptId; | |||||
addDk(this.form).then(response => { | |||||
if (response.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '保存成功', | |||||
duration:"1000", | |||||
onClose: () => { | |||||
// this.goBack(); | |||||
this.$router.push({ | |||||
path:'/contracted/village/massif', | |||||
query: { | |||||
deptId: this.$route.query.deptId, | |||||
deptName: this.$route.query.deptName, | |||||
dklb: this.form.dklb | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
}).catch(() => { | |||||
this.$notify({ type: 'danger', message: '请填写完整的表单项' }); | |||||
}); | |||||
}, | |||||
onMapDrawFinished(data) { | |||||
if (data) { | |||||
this.form.theGeom = JSON.stringify(data); | |||||
} else { | |||||
this.form.theGeom = null; | |||||
} | |||||
}, | |||||
generateCode() { | |||||
generateLandCode({deptId: this.$route.query.deptId}).then(response => { | |||||
this.$set(this.form, 'dkbm', response.data); | |||||
}); | |||||
}, | |||||
goBack() { | |||||
// history.back(-1); | |||||
this.$router.push({ | |||||
path:'/contracted/village/massif', | |||||
query: { | |||||
deptId: this.$route.query.deptId, | |||||
deptName: this.$route.query.deptName, | |||||
} | |||||
}); | |||||
}, | |||||
openLandCategoryPopup() { | |||||
// 修改时 && 地块类别为承包地块 不允许打开地块类别弹出层 | |||||
if (this.$route.query.id && this.form.dklb === '10') { | |||||
this.$toast({ | |||||
icon: 'fail', | |||||
message: '当前地块为承包地块,不能修改地块类别', | |||||
duration: '2000' | |||||
}) | |||||
return ; | |||||
} | |||||
this.showLandCategory = true; | |||||
} | |||||
}, | }, | ||||
}; | }; | ||||
</script> | </script> | ||||
@@ -238,6 +462,14 @@ | |||||
overflow: initial; | overflow: initial; | ||||
} | } | ||||
/deep/ .van-field--disabled .van-field__label { | |||||
color: #646566; | |||||
} | |||||
/deep/ .van-field__label { | |||||
width: 7em; | |||||
} | |||||
.tb_main{ | .tb_main{ | ||||
position: relative; | position: relative; | ||||
p{ | p{ | ||||
@@ -848,12 +848,19 @@ export default { | |||||
Dialog({ type: 'danger', message: '请在地图上标注宅基地所在位置!' }); | Dialog({ type: 'danger', message: '请在地图上标注宅基地所在位置!' }); | ||||
return; | return; | ||||
} | } | ||||
this.permission = "false"; | |||||
if(this.form.id == null){ | if(this.form.id == null){ | ||||
let surveyItem = JSON.parse(localStorage.getItem("surveyItem")); | let surveyItem = JSON.parse(localStorage.getItem("surveyItem")); | ||||
this.$set(this.form, 'surveyId', surveyItem.id); | |||||
this.$set(this.form, 'theGeomJson', JSON.parse( this.form.theGeomJson)); | |||||
if(this.form.theGeomJson.hasOwnProperty('coordinates')) // 从后台获取的 | |||||
this.$set(this.form, 'theGeomJson',this.form.theGeomJson.coordinates); | |||||
this.$set(this.form, 'theGeomJson', JSON.stringify( this.form.theGeomJson)); | |||||
this.$set(this.form, 'surveyId', surveyItem.id) | |||||
addZjdzd(this.form).then(response => { | addZjdzd(this.form).then(response => { | ||||
let _this =this; | let _this =this; | ||||
getZjdzd(response.data).then((res) => { | getZjdzd(response.data).then((res) => { | ||||
console.info(res.data); | |||||
localStorage.setItem("zjdzdxxItem",JSON.stringify(res.data)); | localStorage.setItem("zjdzdxxItem",JSON.stringify(res.data)); | ||||
this.$toast({ | this.$toast({ | ||||
icon: 'success', // 找到自己需要的图标 | icon: 'success', // 找到自己需要的图标 | ||||
@@ -209,6 +209,10 @@ export default { | |||||
}, | }, | ||||
submitzjd(){ | submitzjd(){ | ||||
this.$refs.form.validate().then(() => { | this.$refs.form.validate().then(() => { | ||||
this.$set(this.form, 'theGeomJson', JSON.parse( this.form.theGeomJson)); | |||||
if(this.form.theGeomJson.hasOwnProperty('coordinates')) // 从后台获取的 | |||||
this.$set(this.form, 'theGeomJson',this.form.theGeomJson.coordinates); | |||||
this.$set(this.form, 'theGeomJson', JSON.stringify( this.form.theGeomJson)); | |||||
if(this.form.id == null){ | if(this.form.id == null){ | ||||
addFsss(this.form).then(response => { | addFsss(this.form).then(response => { | ||||
let _this =this | let _this =this | ||||
@@ -229,6 +229,7 @@ | |||||
console.info(userId); | console.info(userId); | ||||
this.nickName = this.$store.state.user.nickName; | this.nickName = this.$store.state.user.nickName; | ||||
this.$set(this.queryParams, "rwzxr", userId); | this.$set(this.queryParams, "rwzxr", userId); | ||||
this.$set(this.queryParams, "params", {deptId:100}); | |||||
this.getList(); | this.getList(); | ||||
},1000) | },1000) | ||||
@@ -331,6 +332,7 @@ | |||||
if(this.active==1){ | if(this.active==1){ | ||||
let params = { | let params = { | ||||
"rwfbzt":"PUBLISHED", | "rwfbzt":"PUBLISHED", | ||||
"params":{deptId:this.$store.state.user.loginDeptId}, | |||||
"pageNum": this.countyhc+1, | "pageNum": this.countyhc+1, | ||||
"pageSize":10, | "pageSize":10, | ||||
} | } | ||||
@@ -346,6 +348,7 @@ | |||||
let params = { | let params = { | ||||
"rwwczt": "PUBLISHED", | "rwwczt": "PUBLISHED", | ||||
"rwfbzt":"PUBLISHED", | "rwfbzt":"PUBLISHED", | ||||
"params":{deptId:this.$store.state.user.loginDeptId}, | |||||
"pageNum": this.countwhc+1, | "pageNum": this.countwhc+1, | ||||
"pageSize":10, | "pageSize":10, | ||||
} | } | ||||
@@ -361,6 +364,7 @@ | |||||
let params = { | let params = { | ||||
"rwwczt": "UNPUBLISHED", | "rwwczt": "UNPUBLISHED", | ||||
"rwfbzt":"PUBLISHED", | "rwfbzt":"PUBLISHED", | ||||
"params":{deptId:this.$store.state.user.loginDeptId}, | |||||
"pageNum": this.countqb+1, | "pageNum": this.countqb+1, | ||||
"pageSize":10, | "pageSize":10, | ||||
} | } | ||||
@@ -53,6 +53,7 @@ | |||||
<van-search v-model="nhvalue" placeholder="请输入农户姓名或证件号" show-action @search="onSearchnh"> | <van-search v-model="nhvalue" placeholder="请输入农户姓名或证件号" show-action @search="onSearchnh"> | ||||
<template #action> | <template #action> | ||||
<van-icon name="add" color="rgba(122,201,67,1)" size=".8rem" @click="onClicknh" style="vertical-align:middle;"/> | <van-icon name="add" color="rgba(122,201,67,1)" size=".8rem" @click="onClicknh" style="vertical-align:middle;"/> | ||||
<van-icon name="add" color="rgba(122,201,67,1)" size=".8rem" @click="onClickWcnh" style="vertical-align:middle;"/> | |||||
</template> | </template> | ||||
</van-search> | </van-search> | ||||
</van-sticky> | </van-sticky> | ||||
@@ -83,6 +84,27 @@ | |||||
</template> | </template> | ||||
</van-cell> | </van-cell> | ||||
</van-list> | </van-list> | ||||
<van-dialog v-model="outsideOpen" title="外村农户" show-cancel-button confirmButtonText="保存" cancelButtonText="关闭" @confirm="outsideSubmitForm" > | |||||
<van-row> | |||||
<van-col span="24"> | |||||
<van-field v-model="outsideForm.nhdm" label="外村农户" placeholder="外村农户" input-align="right" required :rules="[{ required: true }]" @click="showWcnh = true"/> | |||||
<van-popup v-model="showWcnh" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="wcnhList" | |||||
@confirm="nhChange" | |||||
value-key="nhValue" | |||||
@cancel="showWcnh = false" | |||||
/> | |||||
</van-popup> | |||||
<br/> | |||||
<br/> | |||||
</van-col> | |||||
</van-row> | |||||
</van-dialog> | |||||
<!-- </van-pull-refresh>--> | <!-- </van-pull-refresh>--> | ||||
</div> | </div> | ||||
</template> | </template> | ||||
@@ -90,7 +112,7 @@ | |||||
<script> | <script> | ||||
import {getQueryLand,getZjdzd,delZjdzdInfo,uploadFile,submitUploadImageList} from "@/api/homesteadSurvey/zjdzd"; | import {getQueryLand,getZjdzd,delZjdzdInfo,uploadFile,submitUploadImageList} from "@/api/homesteadSurvey/zjdzd"; | ||||
import {addNh, delNh, exportNh, getNh, listNh, updateNh,setNhInfo} from "@/api/homesteadSurvey/nh"; | import {addNh, delNh, exportNh, getNh, listNh, updateNh,setNhInfo} from "@/api/homesteadSurvey/nh"; | ||||
import {addNhhncy, delNhhncy, exportNhhncy, getNhhncy, listNhhncy, updateNhhncy} from "@/api/homesteadSurvey/nhhncy"; | |||||
import {addNhhncy, delNhhncy,queryHomesteadnhhncyList, addOutsidenhhncy,exportNhhncy, getNhhncy, listNhhncy, updateNhhncy} from "@/api/homesteadSurvey/nhhncy"; | |||||
import {listShyqr,setSyqrInfo} from "@/api/homesteadSurvey/shyqr"; | import {listShyqr,setSyqrInfo} from "@/api/homesteadSurvey/shyqr"; | ||||
import {listSuyqr,updateSuyqr,addSuyqr} from "@/api/homesteadSurvey/suyqr"; | import {listSuyqr,updateSuyqr,addSuyqr} from "@/api/homesteadSurvey/suyqr"; | ||||
import {listZrz,getZrzZjdDmList,getZrz} from "@/api/homesteadSurvey/zrz"; | import {listZrz,getZrzZjdDmList,getZrz} from "@/api/homesteadSurvey/zrz"; | ||||
@@ -149,6 +171,7 @@ | |||||
showhzlx:false, | showhzlx:false, | ||||
showhncylist:false, | showhncylist:false, | ||||
showhncy:false, | showhncy:false, | ||||
showWcnh: false, | |||||
activeBtn:2, | activeBtn:2, | ||||
value:'', | value:'', | ||||
// 宅基地搜索框 | // 宅基地搜索框 | ||||
@@ -243,6 +266,9 @@ | |||||
searchBarOperVisbile: false, | searchBarOperVisbile: false, | ||||
mapDataAll: [], | mapDataAll: [], | ||||
showSearch:false, | showSearch:false, | ||||
outsideOpen:false, | |||||
outsideForm:{nhdm:null}, | |||||
wcnhList:[], | |||||
bottomHeight:'0px', | bottomHeight:'0px', | ||||
//搜索---end | //搜索---end | ||||
//测面 | //测面 | ||||
@@ -769,6 +795,30 @@ | |||||
this.$cookies.remove("search"); | this.$cookies.remove("search"); | ||||
this.$router.push({name:'hncyDetails',query:{item:{}}}); | this.$router.push({name:'hncyDetails',query:{item:{}}}); | ||||
}, | }, | ||||
/** 新增外村农户按钮操作 */ | |||||
onClickWcnh(){ | |||||
this.getWcnhList().then((resp) => { | |||||
this.outsideOpen = true; | |||||
}); | |||||
}, | |||||
getWcnhList() { | |||||
return queryHomesteadnhhncyList({ | |||||
yhzgx: '02', | |||||
searchValue: 'id, dept_id, book_id, dept_name, YSDM, NHDM, XM, ZJLX, ZJHM, XB, YHZGX, HKLX, LXDH, HYZK, SFBJTJJZZCY, CYBZ, CYBZSM, SJLY, occupation, jzqk,' + | |||||
'sfwbh, sfpkh, jzhcssfyzf, zqtczsfyzf, sfbccm, sfjbzgq, txdz, hkszd,' + | |||||
'create_by, create_time, update_by, update_time', | |||||
sfbccm:"0", | |||||
}).then((resp) => { | |||||
this.wcnhList = resp.rows; | |||||
this.wcnhList.map(function (item) { | |||||
item.nhValue = item.xm+" "+item.zjhm; | |||||
}) | |||||
}); | |||||
}, | |||||
nhChange(val){ | |||||
this.outsideForm = val; | |||||
this.showWcnh = false; | |||||
}, | |||||
// 返回 | // 返回 | ||||
onClickLeft(){ | onClickLeft(){ | ||||
this.$cookies.set("search","") | this.$cookies.set("search","") | ||||
@@ -4743,6 +4793,7 @@ | |||||
return v.toString(16); | return v.toString(16); | ||||
}); | }); | ||||
}, | }, | ||||
//宅基地点击地图核查 | //宅基地点击地图核查 | ||||
zjdHc(){ | zjdHc(){ | ||||
if(this.zjdHcDy != "" && this.zjdHcDy != "undefined"){ | if(this.zjdHcDy != "" && this.zjdHcDy != "undefined"){ | ||||
@@ -4865,6 +4916,16 @@ | |||||
value.indexOf('zrzSx') == -1 ? this.zrzSx = false : this.zrzSx = true; | value.indexOf('zrzSx') == -1 ? this.zrzSx = false : this.zrzSx = true; | ||||
value.indexOf('fsssSx') == -1 ? this.fsssSx = false : this.fsssSx = true; | value.indexOf('fsssSx') == -1 ? this.fsssSx = false : this.fsssSx = true; | ||||
}, | }, | ||||
/** 外村农户提交按钮 */ | |||||
outsideSubmitForm() { | |||||
addOutsidenhhncy(this.outsideForm).then(response => { | |||||
if(response.code != 200) throw response.msg; | |||||
this.$toast("新增成功"); | |||||
this.outsideOpen = false; | |||||
this.getList(); | |||||
this.outDiglogStatus = true; | |||||
}).catch(() => this.outDiglogStatus = true); | |||||
}, | |||||
closeSearchBox(){ | closeSearchBox(){ | ||||
this.showSearch = false ; | this.showSearch = false ; | ||||
var height = $(".searchBar_wrap").outerHeight(true) - $(".searchBar_wrap .van-search").outerHeight(true) | var height = $(".searchBar_wrap").outerHeight(true) - $(".searchBar_wrap .van-search").outerHeight(true) | ||||
@@ -243,6 +243,7 @@ export default { | |||||
let data = this.$route.query; | let data = this.$route.query; | ||||
this.form = data; | this.form = data; | ||||
this.zjdzdxx = JSON.parse(localStorage.getItem("zjdzdxxItem")); | this.zjdzdxx = JSON.parse(localStorage.getItem("zjdzdxxItem")); | ||||
console.info(this.zjdzdxx); | |||||
this.permission = localStorage.getItem("executePermission"); | this.permission = localStorage.getItem("executePermission"); | ||||
if(this.form.shyqrdbzjhm != null){ | if(this.form.shyqrdbzjhm != null){ | ||||
this.getList(); | this.getList(); | ||||
@@ -269,6 +270,10 @@ export default { | |||||
submitzjd(){ | submitzjd(){ | ||||
this.$refs.form.validate().then(() => { | this.$refs.form.validate().then(() => { | ||||
if(this.form.id == null){ | if(this.form.id == null){ | ||||
this.$set(this.form, 'theGeomJson', JSON.parse( this.form.theGeomJson)); | |||||
if(this.form.theGeomJson.hasOwnProperty('coordinates')) // 从后台获取的 | |||||
this.$set(this.form, 'theGeomJson',this.form.theGeomJson.coordinates); | |||||
this.$set(this.form, 'theGeomJson', JSON.stringify( this.form.theGeomJson)); | |||||
addZrz(this.form).then(response => { | addZrz(this.form).then(response => { | ||||
let _this =this | let _this =this | ||||
this.$toast({ | this.$toast({ | ||||
@@ -370,7 +370,7 @@ export default { | |||||
this.detail.projectNumber = this.selectDictLabel(res.data,response.data.projectNumber); | this.detail.projectNumber = this.selectDictLabel(res.data,response.data.projectNumber); | ||||
}); | }); | ||||
this.getDicts("sub_object_type").then(res => { | this.getDicts("sub_object_type").then(res => { | ||||
this.detail.projectType = this.selectDictLabel(res.data,response.data.projectType); | |||||
// this.detail.projectType = this.selectDictLabel(res.data,response.data.projectType); | |||||
}); | }); | ||||
this.getDicts("economic_type").then(res => { | this.getDicts("economic_type").then(res => { | ||||
this.detail.economicType = this.selectDictLabel(res.data,response.data.economicType); | this.detail.economicType = this.selectDictLabel(res.data,response.data.economicType); | ||||
@@ -241,6 +241,9 @@ | |||||
&:nth-child(4n+1){ | &:nth-child(4n+1){ | ||||
margin-top: 15PX; | margin-top: 15PX; | ||||
} | } | ||||
&:nth-child(5n+1){ | |||||
margin-top: 15PX; | |||||
} | |||||
&:nth-child(1){ | &:nth-child(1){ | ||||
margin-top: 0PX; | margin-top: 0PX; | ||||
} | } | ||||
@@ -44,6 +44,10 @@ | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_03.png" alt="" width="35"> | <img src="../../assets/images/sunVillage_info/signature_icon_03.png" alt="" width="35"> | ||||
<p>预览</p> | <p>预览</p> | ||||
</div> --> | </div> --> | ||||
<div class="opera_btn" @click="openPopupGsjg(item.cbfbm)"> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_02.png" alt="" width="30"> | |||||
<p>公示结果签名</p> | |||||
</div> | |||||
<div class="opera_btn"> | <div class="opera_btn"> | ||||
<img src="../../assets/images/sunVillage_info/signature_icon_03.png" alt="" width="35"> | <img src="../../assets/images/sunVillage_info/signature_icon_03.png" alt="" width="35"> | ||||
<p>预览</p> | <p>预览</p> | ||||
@@ -73,7 +77,8 @@ | |||||
</div> | </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=""> | <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"> | <div class="signature-footer"> | ||||
<van-button @click="handleGenerate" type="info" size="small">保存签字</van-button> | |||||
<van-button @click="handleGenerate" v-if="!showGsjgqz" type="info" size="small">保存签字</van-button> | |||||
<van-button @click="handleGenerateGsjg" v-if="showGsjgqz" type="info" size="small">保存签字</van-button> | |||||
<van-button @click="handleReset" class="clearBtn" type="info" plain size="small">清空画板</van-button> | <van-button @click="handleReset" class="clearBtn" type="info" plain size="small">清空画板</van-button> | ||||
</div> | </div> | ||||
</van-cell-group> | </van-cell-group> | ||||
@@ -90,7 +95,7 @@ | |||||
</template> | </template> | ||||
<script> | <script> | ||||
import { getCbf, getCbhtList, cbhtSecondSign, attachmentQuery, attachmentUpload, attachmentRemove } from "@/api/sunVillage_info/fixedAssets"; | |||||
import { getCbf, getCbhtList, cbhtSecondSign,updateGsjgSign, attachmentQuery, attachmentUpload, attachmentRemove } from "@/api/sunVillage_info/fixedAssets"; | |||||
import vueEsign from "vue-esign"; | import vueEsign from "vue-esign"; | ||||
import $ from "jquery"; | import $ from "jquery"; | ||||
import Cookies from "js-cookie"; | import Cookies from "js-cookie"; | ||||
@@ -107,6 +112,7 @@ | |||||
showFile: false, | showFile: false, | ||||
fileList: [], | fileList: [], | ||||
listLength: '0', | listLength: '0', | ||||
cbfbm:"", | |||||
queryParams: { | queryParams: { | ||||
pageNum: 1, | pageNum: 1, | ||||
pageSize: 10, | pageSize: 10, | ||||
@@ -171,11 +177,20 @@ | |||||
}, | }, | ||||
openPopup(id, url) { | openPopup(id, url) { | ||||
this.show = true; | this.show = true; | ||||
this.showGsjgqz = false; | |||||
this.signaId = id; | this.signaId = id; | ||||
this.$nextTick(() => { | this.$nextTick(() => { | ||||
this.handleReset(); | this.handleReset(); | ||||
}); | }); | ||||
}, | }, | ||||
openPopupGsjg(cbfbm, url) { | |||||
this.show = true; | |||||
this.showGsjgqz = true; | |||||
this.cbfbm = cbfbm; | |||||
this.$nextTick(() => { | |||||
this.handleReset(); | |||||
}); | |||||
}, | |||||
openPopupFile(id){ | openPopupFile(id){ | ||||
this.fileList = []; | this.fileList = []; | ||||
this.signaId = id; | this.signaId = id; | ||||
@@ -248,6 +263,29 @@ | |||||
this.$toast.fail('请签名后再保存签字'); | this.$toast.fail('请签名后再保存签字'); | ||||
}); | }); | ||||
}, | }, | ||||
handleGenerateGsjg(){ | |||||
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('cbfbm', this.cbfbm) | |||||
updateGsjgSign(param).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') { | dataURLtoBlob(dataurl, filename = 'file') { | ||||
let arr = dataurl.split(',') | let arr = dataurl.split(',') | ||||
let mime = arr[0].match(/:(.*?);/)[1] | let mime = arr[0].match(/:(.*?);/)[1] | ||||
@@ -0,0 +1,385 @@ | |||||
<template> | |||||
<div class="home_wrapper"> | |||||
<div class="header_main" > | |||||
承包方授权 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
</div> | |||||
<div class="list_main"> | |||||
<div class="titBox"> | |||||
<img src="../../assets/images/sunVillage_info/list_employer_process_icon_02.png" style="width:22PX;height:22PX;margin-right: 10px;"/> | |||||
<p class="tit">承包方授权</p> | |||||
</div> | |||||
<van-field readonly v-model="cbfTypeName" label="承包方类型" placeholder="承包方类型" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.cbfbm" label="承包方代码" placeholder="承包方代码" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.cbfmc" label="承包方名称" placeholder="承包方名称" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="zjlxName" label="承包方证件类型" placeholder="承包方证件类型" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.cbfzjhm" label="承包方证件号码" placeholder="承包方证件号码" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.lxdh" label="联系电话" placeholder="联系电话" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.cbfcysl" label="承包方成员数量" placeholder="承包方成员数量" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.cbfdcy" label="承包方调查员" placeholder="承包方调查员" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.cbfdcrq" label="承包方调查日期" placeholder="承包方调查日期" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.cbfdcjs" label="承包方调查记事" placeholder="承包方调查记事" input-align="right" :border="false" /> | |||||
<van-cell title="承包方调查签字" style="color: #646566;"> | |||||
<van-field style="padding: 0 0;" readonly input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.cbfdcqz" width="10%" alt="" v-if="form.cbfdcqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.gsjs" label="公示记事" placeholder="公示记事" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.gsjsr" label="公示记事人" placeholder="公示记事人" input-align="right" :border="false" /> | |||||
<van-cell title="公示记事人签字" style="color: #646566;"> | |||||
<van-field style="padding: 0 0;" readonly input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.gsjsrqz" width="10%" alt="" v-if="form.gsjsrqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.gsjsrq" label="公示记事日期" placeholder="公示记事日期" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.gsjgyj" label="公示结果意见" placeholder="公示结果意见" input-align="right" :border="false" /> | |||||
<van-cell title="公示结果签字" style="color: #646566;"> | |||||
<van-field style="padding: 0 0;" readonly input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.gsjgqz" width="10%" alt="" v-if="form.gsjgqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.gsjgqzrq" label="公示结果签字日期" placeholder="公示结果签字日期" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.gsshr" label="公示审核人" placeholder="公示审核人" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.gsshrq" label="公示审核日期" placeholder="公示审核日期" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.gsshyj" label="公示审核意见" placeholder="公示审核意见" input-align="right" :border="false" /> | |||||
<van-cell title="公示审核签字" style="color: #646566;"> | |||||
<van-field style="padding: 0 0;" readonly input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.gsjgqz" width="10%" alt="" v-if="form.gsjgqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.yzbm" label="邮政编码" placeholder=" 邮政编码" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.fbfdcy" label="发包方调查员" placeholder="发包方调查员" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.fbfdcrq" label="发包方调查日期" placeholder="发包方调查日期" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.fbfdcjs" label="发包方调查记事" placeholder="发包方调查记事" input-align="right" :border="false" /> | |||||
<van-cell title="发包方调查签字" style="color: #646566;"> | |||||
<van-field style="padding: 0 0;" readonly input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.fbfdcqz" width="10%" alt="" v-if="form.fbfdcqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.shyj" label="审核意见" placeholder="审核意见" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.shrq" label="审核日期" placeholder="审核日期" input-align="right" :border="false" /> | |||||
<van-cell title="审核人签字" style="color: #646566;"> | |||||
<van-field style="padding: 0 0;" readonly input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.shrqz" width="10%" alt="" v-if="form.shrqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.hcgfsl " label="户持股份(份额)数量" placeholder="户持股份(份额)数量 " input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.hcgfzjtqqtdbl " label="户持股份(份额)比例" placeholder="户持股份(份额)比例 " input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.hcgfzjtqqtdmj " label="户持股份(份额)面积" placeholder="户持股份(份额)面积" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="surveyStatusName" label="确权调查状态" placeholder="确权调查状态" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.surveyRemark" label="确权调查备注" placeholder="确权调查备注" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="isDepositName" label="是否纳入托管" placeholder="是否纳入托管" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.tgmj" label="托管面积(亩)" placeholder="托管面积(亩)" input-align="right" :border="false" /> | |||||
<div style="margin: 30px auto 0;width: 50%;"> | |||||
<van-button round block type="primary" native-type="submit" > | |||||
授权 | |||||
</van-button> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import { getCbfList} from "@/api/sunVillage_info/sysCbf"; | |||||
import FieldSelect from "@/components/form/FieldSelect"; | |||||
import Cookies from "js-cookie"; | |||||
import $ from "jquery"; | |||||
export default { | |||||
name: "certificateList", | |||||
components: {FieldSelect}, | |||||
data() { | |||||
return { | |||||
form:{}, | |||||
showForm2:false, | |||||
showesign:false, | |||||
sysFarmer:JSON.parse(Cookies.get('user')), | |||||
zjlxName:"", | |||||
cbfTypeName:"", | |||||
surveyStatusName:"", | |||||
isDepositName:"", | |||||
height:0, | |||||
options: { | |||||
cert_type: [], | |||||
}, | |||||
//电子签名 | |||||
signature: { | |||||
lineWidth: 6, // 画笔的线条粗细 | |||||
lineColor: "#000000", // 画笔的颜色 | |||||
bgColor: "", // 画布的背景颜色 | |||||
resultImg: "", // 最终画布生成的base64图片 | |||||
isCrop: false, // 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | |||||
}, | |||||
}; | |||||
}, | |||||
created() { | |||||
this.getSysFfb(); | |||||
}, | |||||
methods: { | |||||
InitOptions() { | |||||
for(let k in this.options) | |||||
{ | |||||
this.getDicts(k).then((resp) => this.options[k] = resp.data); | |||||
} | |||||
}, | |||||
getSysFfb(){ | |||||
getCbfList({deptId:this.sysFarmer.deptId,cbfzjhm:this.sysFarmer.idcard}).then(response => { | |||||
let _this = this; | |||||
if(response.rows.length > 0){ | |||||
this.form = response.rows[0]; | |||||
this.getDicts("zjlx").then(response => { | |||||
response.data.forEach(function (item) { | |||||
if (item.dictValue === _this.form.cbfzjlx) { | |||||
_this.zjlxName = item.dictLabel; | |||||
} | |||||
}) | |||||
}); | |||||
this.getDicts("cbf_type").then(response => { | |||||
response.data.forEach(function (item) { | |||||
if (item.dictValue === _this.form.cbflx) { | |||||
_this.cbfTypeName = item.dictLabel; | |||||
} | |||||
}) | |||||
}); | |||||
this.getDicts("confirmed_survey_status").then(response => { | |||||
response.data.forEach(function (item) { | |||||
if (item.dictValue === _this.form.surveyStatus) { | |||||
_this.surveyStatusName = item.dictLabel; | |||||
} | |||||
}) | |||||
}); | |||||
this.getDicts("sys_yes_no").then(response => { | |||||
response.data.forEach(function (item) { | |||||
if (item.dictValue === _this.form.isDeposit) { | |||||
_this.isDepositName = item.dictLabel; | |||||
} | |||||
}) | |||||
}); | |||||
} | |||||
}); | |||||
}, | |||||
}, | |||||
} | |||||
</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; | |||||
} | |||||
.van-cell::after { | |||||
position: absolute; | |||||
box-sizing: border-box; | |||||
content: ' '; | |||||
pointer-events: none; | |||||
right: 0.426667rem; | |||||
bottom: 0; | |||||
left: 0.426667rem; | |||||
border:none; | |||||
-webkit-transform: scaleY(.5); | |||||
transform: scaleY(.5); | |||||
} | |||||
.signature-footer { | |||||
transform: rotate(90deg); | |||||
width: auto; | |||||
position: absolute; | |||||
top: 50%; | |||||
left: 0px; | |||||
} | |||||
.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); | |||||
} | |||||
.subForm{ | |||||
padding:25px; | |||||
background-image: linear-gradient(#2884ec,#68b2ee); | |||||
width: 94%; | |||||
margin: 50PX auto 0; | |||||
border-radius: 15PX; | |||||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||||
position: relative; | |||||
padding-top: 10vw; | |||||
img{ | |||||
position: absolute; | |||||
left: 50%; | |||||
width: 15vw; | |||||
transform: translate(-50%,calc(-50% - 10vw)); | |||||
border: 5PX solid #e9e9e9; | |||||
border-radius: 100%; | |||||
} | |||||
/deep/ .van-field__label{ | |||||
/*padding-left: 10PX;*/ | |||||
width: auto; | |||||
display: flex; | |||||
align-items: start; | |||||
color: #ffffff; | |||||
margin-right: 6vw; | |||||
} | |||||
/deep/ .van-cell{ | |||||
background-color: transparent; | |||||
} | |||||
.textarea{ | |||||
/deep/ .van-field__value{ | |||||
background-color: #ffffff; | |||||
border-radius: 10PX; | |||||
} | |||||
/deep/ .van-field__control{ | |||||
padding: 12PX; | |||||
color: #666666; | |||||
} | |||||
} | |||||
/deep/ .van-field__value{ | |||||
background-color: transparent; | |||||
border-radius: 10PX; | |||||
} | |||||
/deep/ .van-field__control{ | |||||
padding: 0PX; | |||||
color: #ffffff; | |||||
} | |||||
/deep/ .van-cell--required::before{ | |||||
left: 60PX; | |||||
} | |||||
} | |||||
.subForm2{ | |||||
padding:25px; | |||||
background:#ffffff; | |||||
width: 94%; | |||||
margin: 50PX auto 0; | |||||
border-radius: 15PX; | |||||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||||
position: relative; | |||||
padding-top: 10vw; | |||||
.topImg{ | |||||
position: absolute; | |||||
left: 50%; | |||||
width: 15vw; | |||||
transform: translate(-50%,calc(-50% - 10vw)); | |||||
border: 5PX solid #e9e9e9; | |||||
border-radius: 100%; | |||||
} | |||||
.bottomImg{ | |||||
position: absolute; | |||||
left: 50%; | |||||
top: 50%; | |||||
width: 25vw; | |||||
transform: translate(-50%,-50%); | |||||
} | |||||
} | |||||
.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; | |||||
} | |||||
} | |||||
</style> |
@@ -7,35 +7,37 @@ | |||||
<div class="search_info"> | <div class="search_info"> | ||||
<div class="search_block"> | <div class="search_block"> | ||||
<i class="icon"></i> | <i class="icon"></i> | ||||
<input type="text" class="ipt" v-model="value" placeholder="搜索" > | |||||
<input type="text" class="ipt" v-model="queryParams.cbfmc" placeholder="搜索" > | |||||
</div> | </div> | ||||
<div class="total">查询</div> | |||||
<div class="total" @click="getCbfCount">查询</div> | |||||
</div> | </div> | ||||
<div class="list_main"> | <div class="list_main"> | ||||
<van-list | <van-list | ||||
v-model="loading" | |||||
v-model:loading="loading" | |||||
:finished="finished" | :finished="finished" | ||||
finished-text="没有更多了" | finished-text="没有更多了" | ||||
@load="onRefreshContractor" | |||||
:immediate-check="false" | |||||
> | > | ||||
<van-swipe-cell v-for="item in 10" :key="item"> | |||||
<div class="item"> | |||||
<van-swipe-cell v-for="(item,index) in cbfList" :key="'cbfjs'+index"> | |||||
<div class="item" style="height: 100px;" @click="$router.push({path:'/sunVillage_info/list_chronicles_single_process',query:{item:item,status:false}})"> | |||||
<div class="info"> | <div class="info"> | ||||
<div class="title"> | <div class="title"> | ||||
<i class="icon_box"></i> | <i class="icon_box"></i> | ||||
<p class="news_title">李佳佳</p> | |||||
<p class="news_title">{{item.cbfmc}}</p> | |||||
</div> | </div> | ||||
<div class="time"> | <div class="time"> | ||||
<p><img src="../../assets/images/sunVillage_info/contractor_icon_04.png" width="14">444444444</p> | |||||
<p><img src="../../assets/images/sunVillage_info/contractor_icon_05.png" width="14">13人</p> | |||||
<p><img src="../../assets/images/sunVillage_info/contractor_icon_04.png" width="14">{{item.lxdh}}</p> | |||||
<p><img src="../../assets/images/sunVillage_info/contractor_icon_05.png" width="14">{{item.cbfcysl}}</p> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div style="width: 30%;"> | <div style="width: 30%;"> | ||||
<img src="../../assets/images/sunVillage_info/contractor_icon_06.png" style="width: 100%" alt=""> | |||||
<img :src="'/api'+item.gsjsrqz" width="100%" alt="" v-if="item.gsjsrqz" > | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<template #right> | <template #right> | ||||
<div class="operation"> | <div class="operation"> | ||||
<div class="opera_btn" @click="$router.push({path:'/sunVillage_info/list_chronicles_single_process'})"> | |||||
<div class="opera_btn" @click="$router.push({path:'/sunVillage_info/list_chronicles_single_process',query:{item:item,status:true}})"> | |||||
<img src="../../assets/images/sunVillage_info/contractor_icon_07.png" alt="" width="25"> | <img src="../../assets/images/sunVillage_info/contractor_icon_07.png" alt="" width="25"> | ||||
<p>记事签字</p> | <p>记事签字</p> | ||||
</div> | </div> | ||||
@@ -47,14 +49,7 @@ | |||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import { | |||||
listResource, | |||||
commonAttach, | |||||
attachmentList, | |||||
systemAttachment, | |||||
delResource, | |||||
updateResource | |||||
} from "@/api/sunVillage_info/fixedAssets"; | |||||
import { getList} from "@/api/sunVillage_info/sysCbf"; | |||||
import request from '@/utils/request' | import request from '@/utils/request' | ||||
import MapGisLine from "@/components/Map/MapGisLine"; | import MapGisLine from "@/components/Map/MapGisLine"; | ||||
export default { | export default { | ||||
@@ -64,15 +59,49 @@ | |||||
return { | return { | ||||
loading: false, | loading: false, | ||||
finished: false, | finished: false, | ||||
value:'', | |||||
cbfList:[], | |||||
countcbf:0, | |||||
queryParams:{ | |||||
pageNum: 1, | |||||
pageSize: 10, | |||||
cbfbm:null}, | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
this.getCbfCount(); | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getCbfCount(){ | |||||
getList(this.queryParams).then(res=>{ | |||||
this.cbfList = res.rows; | |||||
if(this.cbfList.length >= res.total){ | |||||
this.finished = true; | |||||
}else{ | |||||
this.loading = false; | |||||
this.queryParams.pageNum += 1 ; | |||||
} | |||||
}); | |||||
}, | |||||
onRefreshContractor(){ | |||||
if(this.loading){ | |||||
let params = { | |||||
"cbfbm":this.queryParams.cbfbm, | |||||
"pageNum": this.countcbf+1, | |||||
"pageSize":10, | |||||
} | |||||
getList(params).then((response) => { | |||||
if(response.rows.length>0&&this.cbfList.length<response.total){ | |||||
response.rows.map(res => { | |||||
this.cbfList.unshift(res) | |||||
}) | |||||
this.loading = false; | |||||
this.countcbf++ | |||||
}else{ | |||||
this.finished = true; | |||||
} | |||||
}); | |||||
} | |||||
}, | |||||
}, | }, | ||||
} | } | ||||
</script> | </script> | ||||
@@ -8,24 +8,24 @@ | |||||
<div class="information_main"> | <div class="information_main"> | ||||
<div class="titBox"> | <div class="titBox"> | ||||
<img src="../../assets/images/sunVillage_info/contractor_icon_01.png" style="width:22PX;height:22PX;margin-right: 10px;"/> | <img src="../../assets/images/sunVillage_info/contractor_icon_01.png" style="width:22PX;height:22PX;margin-right: 10px;"/> | ||||
<p class="tit">娃娃村</p> | |||||
<p class="tit">{{this.$store.state.user.deptName}}</p> | |||||
</div> | </div> | ||||
<div class="information_content"> | <div class="information_content"> | ||||
<div class="information_block"> | <div class="information_block"> | ||||
<p class="block_num">共有承包方<span>800</span>户</p> | |||||
<p class="block_num">共有承包方<span>{{cbfCount}}</span>户</p> | |||||
</div> | </div> | ||||
<div class="information_block"> | <div class="information_block"> | ||||
<p class="block_num">共有承包方<span>800</span>户</p> | |||||
<p class="block_num">承包地<span>{{cbfdkCount}}</span>亩</p> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="subForm"> | |||||
<div class="subForm" v-if="!showJsxx"> | |||||
<img src="../../assets/images/sunVillage_info/list_employer_process_icon_01.png" alt=""> | <img src="../../assets/images/sunVillage_info/list_employer_process_icon_01.png" alt=""> | ||||
<van-field | <van-field | ||||
v-model="value" | |||||
v-model="form.gsjs" | |||||
rows="3" | rows="3" | ||||
autosize | autosize | ||||
required | required | ||||
@@ -35,46 +35,185 @@ | |||||
/> | /> | ||||
</div> | </div> | ||||
<div class="subForm2"> | |||||
<div class="subForm2" v-if="showJsxx"> | |||||
<img class="topImg" src="../../assets/images/sunVillage_info/list_employer_process_icon_03.png" alt=""> | <img class="topImg" src="../../assets/images/sunVillage_info/list_employer_process_icon_03.png" alt=""> | ||||
<van-field readonly v-model="value" label="审核意见" placeholder="审核意见" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="审核人" placeholder="审核人" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="审核日期" placeholder="审核日期" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.gsjs" label="记事内容" placeholder="记事内容" input-align="right" :border="false" /> | |||||
<van-cell title="记事人" style="border: none;color: #646566;" > | |||||
<van-field readonly style="padding: 0 0;height: 30px;" label="记事人" input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.gsjsrqz" width="10%" alt="" v-if="form.gsjsrqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.gsjsrq" label="记事日期" placeholder="审核日期" input-align="right" :border="false" /> | |||||
<img class="bottomImg" src="../../assets/images/sunVillage_info/contractor_icon_09.png" alt=""> | <img class="bottomImg" src="../../assets/images/sunVillage_info/contractor_icon_09.png" alt=""> | ||||
</div> | </div> | ||||
<div style="margin: 30px auto 0;width: 50%;"> | |||||
<van-button round block type="primary" native-type="submit"> | |||||
<div style="margin: 30px auto 0;width: 50%;" v-if="!showJsxx"> | |||||
<van-button round block type="primary" native-type="submit" @click="onSign()"> | |||||
批量记事签字 | 批量记事签字 | ||||
</van-button> | </van-button> | ||||
</div> | </div> | ||||
<div style="margin: 30px auto 0;width: 50%;"> | |||||
<div style="margin: 30px auto 0;width: 50%;" v-if="showJsxx"> | |||||
<van-button round block type="primary" native-type="submit" :to="{name:'sunVillageInfoListChronicles'}"> | <van-button round block type="primary" native-type="submit" :to="{name:'sunVillageInfoListChronicles'}"> | ||||
单独记事签字 | 单独记事签字 | ||||
</van-button> | </van-button> | ||||
</div> | </div> | ||||
<van-popup v-model="showesign" closeable position="right" :style="{ height: '100%' }" | |||||
close-icon="close"> | |||||
<van-row style="margin:0 10%"> | |||||
<p class="title" style="margin:20px 0;position:relative;padding-left:20px;font-size:0.5rem">电子签名</p> | |||||
</van-row> | |||||
<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" | |||||
v-if="!signature.resultImg" | |||||
/> | |||||
</div> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_10.png" id="canvasTT" v-if="!signature.resultImg" | |||||
style="position:absolute;top: 50%;left: 50%;transform: translate(-50%,-50%)" alt=""> | |||||
<img :src="signature.resultImg" alt="" width="100%" v-if="signature.resultImg"/> | |||||
<div class="signature-footer" v-if="!signature.resultImg"> | |||||
<van-button type="primary" round size="small" @click="handleReset">清空画板</van-button> | |||||
<van-button type="primary" round size="small" @click="handleGenerate">保存提交</van-button> | |||||
</van-row> | |||||
</div> | |||||
</van-popup> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import { financePublicDetail , openAdd } from "@/api/sunVillage_info/fixedAssets"; | |||||
import Cookies from "js-cookie"; | |||||
import request from '@/utils/request' | |||||
import { getList,getCbfdcList,getCbdkms,updateSysCfb,updateBatchSign} from "@/api/sunVillage_info/sysCbf"; | |||||
import $ from "jquery"; | |||||
export default { | export default { | ||||
name: "certificateList", | name: "certificateList", | ||||
data() { | data() { | ||||
return { | return { | ||||
value:'' | |||||
value:'', | |||||
cbfCount:0, | |||||
cbfdkCount:0, | |||||
showJsxx:false, | |||||
showesign:false, | |||||
height:0, | |||||
form:{}, | |||||
//电子签名 | |||||
signature: { | |||||
lineWidth: 6, // 画笔的线条粗细 | |||||
lineColor: "#000000", // 画笔的颜色 | |||||
bgColor: "", // 画布的背景颜色 | |||||
resultImg: "", // 最终画布生成的base64图片 | |||||
isCrop: false, // 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | |||||
}, | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
this.getCbfdc(); | |||||
this.getCbfCount(); | |||||
this.getCbfdkCount(); | |||||
this.height = window.screen.height * 1.28 - 20; | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getCbfCount(){ | |||||
getList({}).then(res=>{ | |||||
this.cbfCount = res.total; | |||||
}); | |||||
}, | |||||
getCbfdc(){ | |||||
getCbfdcList({}).then(res=>{ | |||||
if(res.total > 0){ | |||||
this.form = res.rows[0]; | |||||
if(this.form.gsjsrqz != null){ | |||||
this.showJsxx = true; | |||||
} | |||||
} | |||||
}); | |||||
}, | |||||
getCbfdkCount(){ | |||||
getCbdkms({}).then(res=>{ | |||||
this.cbfdkCount = res.data; | |||||
}); | |||||
}, | |||||
canvasTTdown() { | |||||
$('#canvasTT').css('display', 'none'); | |||||
}, | |||||
onSign(){ | |||||
this.showesign = true; | |||||
}, | |||||
// 清空画板 | |||||
handleReset() { | |||||
this.resultImg = null | |||||
if(this.$refs.esign){ | |||||
this.$refs.esign.reset(); | |||||
} | |||||
$('#canvasTT').css('display', 'block') | |||||
}, | |||||
// 生成签字图 | |||||
handleGenerate() { | |||||
this.$refs.esign | |||||
.generate() // 使用生成器调用把签字的图片转换成为base64图片格式 | |||||
.then((res) => { | |||||
this.signature.resultImg = res; | |||||
console.info(res) | |||||
let wj = this.dataURLtoBlob(res); | |||||
let param = new FormData(); | |||||
param.append('file', wj) // 通过append向form对象添加数据 | |||||
param.append('date', this.format(new Date(), 'yyyy-MM-dd')) // 通过append向form对象添加数据 | |||||
this.showesign = false; | |||||
this.$toast.loading({ | |||||
message: "数据处理中", | |||||
forbidClick: true, | |||||
duration: 40000, | |||||
}); | |||||
updateBatchSign(param,this.form.gsjs).then((res) => { | |||||
this.$toast.clear(); | |||||
this.getCbfdc(); | |||||
this.$notify({type: 'success', message: '签字成功'}); | |||||
}) | |||||
// this.mainImgArr.push(r1.fileName) | |||||
// let param = new FormData() // 创建form对象 | |||||
// param.append('file', wj) // 通过append向form对象添加数据 | |||||
// param.append('date', this.format(new Date(), 'yyyy-MM-dd')) // 通过append向form对象添加数据 | |||||
// zjddcSign(param, this.zjdzdxx.zjddm).then(response => { | |||||
// this.$notify({type: 'success', message: '签字成功'}); | |||||
// this.showesign = false; | |||||
// getZjdzd(this.zjdzdxx.id).then((response) => { | |||||
// localStorage.setItem("zjdzdxxItem",JSON.stringify(response.data)) | |||||
// 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> | </script> | ||||
@@ -85,6 +224,27 @@ | |||||
background-size: 100% 100%; | background-size: 100% 100%; | ||||
border: none; | border: none; | ||||
} | } | ||||
.signature-footer { | |||||
transform: rotate(90deg); | |||||
width: auto; | |||||
position: absolute; | |||||
top: 50%; | |||||
left: 0px; | |||||
} | |||||
.van-cell::after { | |||||
position: absolute; | |||||
box-sizing: border-box; | |||||
content: ' '; | |||||
pointer-events: none; | |||||
right: 0.426667rem; | |||||
bottom: 0; | |||||
left: 0.426667rem; | |||||
border:none; | |||||
-webkit-transform: scaleY(.5); | |||||
transform: scaleY(.5); | |||||
} | |||||
.home_wrapper{ | .home_wrapper{ | ||||
background: #e9e9e9; | background: #e9e9e9; | ||||
min-height: 100vh; | min-height: 100vh; | ||||
@@ -9,24 +9,48 @@ | |||||
<img src="../../assets/images/sunVillage_info/list_employer_process_icon_02.png" style="width:22PX;height:22PX;margin-right: 10px;"/> | <img src="../../assets/images/sunVillage_info/list_employer_process_icon_02.png" style="width:22PX;height:22PX;margin-right: 10px;"/> | ||||
<p class="tit">信息核对</p> | <p class="tit">信息核对</p> | ||||
</div> | </div> | ||||
<van-field readonly v-model="value" label="承包方名称" placeholder="承包方名称" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="承包方类型" placeholder="承包方类型" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="证件号码" placeholder="证件号码" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="电话" placeholder="电话" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="调查记事" placeholder="调查记事" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="公示记事" placeholder="公示记事" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="公示记事人" placeholder="公示记事人" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="公示记事时间" placeholder="公示记事时间" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="承包方公示结果意见" placeholder="承包方公示结果意见" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="承包方公示结果签字" placeholder="承包方公示结果签字" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="承包方公示日期" placeholder="承包方公示日期" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.cbfmc" label="承包方名称" placeholder="承包方名称" input-align="right" :border="false" /> | |||||
<field-select | |||||
v-model="form.cbfzjlx" | |||||
label="承包方类型" | |||||
value-key="dictLabel" | |||||
data-key="dictValue" | |||||
placeholder="选择证件类型" | |||||
:rules="[{ required: true }]" | |||||
readonly | |||||
remote-url="/open/zdzh/list/cert_type" | |||||
:on-remote-response="'data'" | |||||
/> | |||||
<van-field readonly v-model="form.cbfzjhm" label="证件号码" placeholder="证件号码" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.lxdh" label="电话" placeholder="电话" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.cbfdcjs" label="调查记事" placeholder="调查记事" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.gsjs" label="公示记事" placeholder="公示记事" input-align="right" :border="false" /> | |||||
<!-- <van-field readonly v-model="form.gsjsrqz" label="公示记事人" placeholder="公示记事人" input-align="right" :border="false" />--> | |||||
<van-cell title="公示记事人签字" style="color: #646566;"> | |||||
<van-field style="padding: 0 0;height: 30px;" readonly label="公示记事人签字" input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.gsjsrqz" width="10%" alt="" v-if="form.gsjsrqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.gsjsrq" label="公示记事时间" placeholder="公示记事时间" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.gsjgyj" label="承包方公示结果意见" placeholder="承包方公示结果意见" input-align="right" :border="false" /> | |||||
<van-cell title="承包方公示结果签字" style="color: #646566;" > | |||||
<van-field style="padding: 0 0;height: 30px;width: 100%;background-color: #ffffff; border-radius: 5PX;" readonly label="承包方公示结果签字" input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.gsjgqz" style="top:55px;border:none;" width="10%" alt="" v-if="form.gsjgqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.gsjgqzrq" label="承包方公示日期" placeholder="承包方公示日期" input-align="right" :border="false" /> | |||||
</div> | </div> | ||||
<div class="subForm"> | |||||
<div class="subForm" v-if="!showForm2"> | |||||
<img src="../../assets/images/sunVillage_info/list_employer_process_icon_01.png" alt=""> | <img src="../../assets/images/sunVillage_info/list_employer_process_icon_01.png" alt=""> | ||||
<van-field | <van-field | ||||
v-model="value" | |||||
v-model="form.gsjs" | |||||
rows="3" | rows="3" | ||||
autosize | autosize | ||||
required | required | ||||
@@ -35,44 +59,186 @@ | |||||
:border="false" | :border="false" | ||||
class="textarea" | class="textarea" | ||||
/> | /> | ||||
<van-field readonly value="123" label="记事人" placeholder="记事人" input-align="right" :border="false" /> | |||||
<van-field readonly value="123" label="记事时间" placeholder="记事时间" input-align="right" :border="false" /> | |||||
<van-cell title="记事人" style="color: #ffffff;" > | |||||
<van-field style="padding: 0 0;height: 30px;width: 100%;background-color: #ffffff; border-radius: 5PX;" readonly label="记事人" input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.gsjsrqz" style="top:55px;border:none;width: 40%;" alt="" v-if="form.gsjsrqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.gsjsrq" label="记事时间" placeholder="记事时间" input-align="right" :border="false" /> | |||||
</div> | </div> | ||||
<div class="subForm2"> | |||||
<div class="subForm2" v-if="showForm2"> | |||||
<img class="topImg" src="../../assets/images/sunVillage_info/list_employer_process_icon_03.png" alt=""> | <img class="topImg" src="../../assets/images/sunVillage_info/list_employer_process_icon_03.png" alt=""> | ||||
<van-field readonly v-model="value" label="记事内容" placeholder="记事内容" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="记事人" placeholder="记事人" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="记事日期" placeholder="记事日期" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.gsjs" label="记事内容" placeholder="记事内容" input-align="right" :border="false" /> | |||||
<van-cell title="记事人" style="color: #646566;"> | |||||
<van-field style="padding: 0 0;height: 30px;" readonly label="记事人" input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.gsjsrqz" style="width: 10%;" alt="" v-if="form.gsjsrqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.gsjsrq" label="记事日期" placeholder="记事日期" input-align="right" :border="false" /> | |||||
<img class="bottomImg" src="../../assets/images/sunVillage_info/contractor_icon_09.png" alt=""> | <img class="bottomImg" src="../../assets/images/sunVillage_info/contractor_icon_09.png" alt=""> | ||||
</div> | </div> | ||||
<div style="margin: 30px auto 0;width: 50%;"> | |||||
<van-button round block type="primary" native-type="submit"> | |||||
<div style="margin: 30px auto 0;width: 50%;" v-if="!showForm2"> | |||||
<van-button round block type="primary" native-type="submit" @click="onSign()" > | |||||
审核签字 | 审核签字 | ||||
</van-button> | </van-button> | ||||
</div> | </div> | ||||
<van-popup v-model="showesign" closeable position="right" :style="{ height: '100%' }" | |||||
close-icon="close"> | |||||
<van-row style="margin:0 10%"> | |||||
<p class="title" style="margin:20px 0;position:relative;padding-left:20px;font-size:0.5rem">电子签名</p> | |||||
</van-row> | |||||
<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" | |||||
v-if="!signature.resultImg" | |||||
/> | |||||
</div> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_10.png" id="canvasTT" v-if="!signature.resultImg" | |||||
style="position:absolute;top: 50%;left: 50%;transform: translate(-50%,-50%)" alt=""> | |||||
<img :src="signature.resultImg" alt="" width="100%" v-if="signature.resultImg"/> | |||||
<div class="signature-footer" v-if="!signature.resultImg"> | |||||
<van-button type="primary" round size="small" @click="handleReset">清空画板</van-button> | |||||
<van-button type="primary" round size="small" @click="handleGenerate">保存提交</van-button> | |||||
</van-row> | |||||
</div> | |||||
</van-popup> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import { financePublicDetail , openAdd } from "@/api/sunVillage_info/fixedAssets"; | |||||
import Cookies from "js-cookie"; | |||||
import request from '@/utils/request' | |||||
import { updateSign } from "@/api/sunVillage_info/sysCbf"; | |||||
import FieldSelect from "@/components/form/FieldSelect"; | |||||
import $ from "jquery"; | |||||
export default { | export default { | ||||
name: "certificateList", | name: "certificateList", | ||||
components: {FieldSelect}, | |||||
data() { | data() { | ||||
return { | return { | ||||
value:'' | |||||
form:{}, | |||||
showForm2:false, | |||||
showesign:false, | |||||
height:0, | |||||
options: { | |||||
cert_type: [], | |||||
}, | |||||
//电子签名 | |||||
signature: { | |||||
lineWidth: 6, // 画笔的线条粗细 | |||||
lineColor: "#000000", // 画笔的颜色 | |||||
bgColor: "", // 画布的背景颜色 | |||||
resultImg: "", // 最终画布生成的base64图片 | |||||
isCrop: false, // 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | |||||
}, | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
this.form = this.$route.query.item; | |||||
this.InitOptions(); | |||||
this.height = window.screen.height * 1.28 - 20; | |||||
if(this.$route.query.status === "true"){ | |||||
this.showForm2 =false; | |||||
}else{ | |||||
this.showForm2 =true; | |||||
} | |||||
}, | }, | ||||
methods: { | methods: { | ||||
InitOptions() { | |||||
for(let k in this.options) | |||||
{ | |||||
this.getDicts(k).then((resp) => this.options[k] = resp.data); | |||||
} | |||||
}, | |||||
canvasTTdown() { | |||||
$('#canvasTT').css('display', 'none'); | |||||
}, | |||||
onSign(){ | |||||
this.showesign = true; | |||||
}, | |||||
// 清空画板 | |||||
handleReset() { | |||||
this.resultImg = null | |||||
if(this.$refs.esign){ | |||||
this.$refs.esign.reset(); | |||||
} | |||||
$('#canvasTT').css('display', 'block') | |||||
}, | |||||
// 生成签字图 | |||||
handleGenerate() { | |||||
console.info( this.$refs.esign | |||||
.generate() ); | |||||
this.$refs.esign | |||||
.generate() // 使用生成器调用把签字的图片转换成为base64图片格式 | |||||
.then((res) => { | |||||
this.signature.resultImg = res; | |||||
console.info(res) | |||||
let wj = this.dataURLtoBlob(res); | |||||
let param = new FormData(); | |||||
param.append('file', wj) // 通过append向form对象添加数据 | |||||
param.append('id', this.form.id) | |||||
param.append('gsjs', this.form.gsjs) | |||||
this.showesign = false; | |||||
this.$toast.loading({ | |||||
message: "数据处理中", | |||||
forbidClick: true, | |||||
duration: 40000, | |||||
}); | |||||
updateSign(param).then((r1) => { | |||||
this.$toast.clear(); | |||||
// this.tEnforceSamplingGoodsList[index].attachement.push(r1.fileName); | |||||
this.$notify({type: 'success', message: '签字成功'}); | |||||
this.showForm2 = true; | |||||
this.form = r1.data; | |||||
this.$router.push({name:'sunVillageInfoListChronicles'}) | |||||
// this.mainImgArr.push(r1.fileName) | |||||
}) | |||||
// let param = new FormData() // 创建form对象 | |||||
// param.append('file', wj) // 通过append向form对象添加数据 | |||||
// param.append('date', this.format(new Date(), 'yyyy-MM-dd')) // 通过append向form对象添加数据 | |||||
// zjddcSign(param, this.zjdzdxx.zjddm).then(response => { | |||||
// this.$notify({type: 'success', message: '签字成功'}); | |||||
// this.showesign = false; | |||||
// getZjdzd(this.zjdzdxx.id).then((response) => { | |||||
// localStorage.setItem("zjdzdxxItem",JSON.stringify(response.data)) | |||||
// 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> | </script> | ||||
@@ -83,7 +249,27 @@ | |||||
background-size: 100% 100%; | background-size: 100% 100%; | ||||
border: none; | border: none; | ||||
} | } | ||||
.home_wrapper{ | |||||
.van-cell::after { | |||||
position: absolute; | |||||
box-sizing: border-box; | |||||
content: ' '; | |||||
pointer-events: none; | |||||
right: 0.426667rem; | |||||
bottom: 0; | |||||
left: 0.426667rem; | |||||
border:none; | |||||
-webkit-transform: scaleY(.5); | |||||
transform: scaleY(.5); | |||||
} | |||||
.signature-footer { | |||||
transform: rotate(90deg); | |||||
width: auto; | |||||
position: absolute; | |||||
top: 50%; | |||||
left: 0px; | |||||
} | |||||
.home_wrapper{ | |||||
background: #e9e9e9; | background: #e9e9e9; | ||||
min-height: 100vh; | min-height: 100vh; | ||||
width: 100vw; | width: 100vw; | ||||
@@ -7,35 +7,36 @@ | |||||
<div class="search_info"> | <div class="search_info"> | ||||
<div class="search_block"> | <div class="search_block"> | ||||
<i class="icon"></i> | <i class="icon"></i> | ||||
<input type="text" class="ipt" v-model="value" placeholder="搜索" > | |||||
<input type="text" class="ipt" v-model="queryParams.cbfmc" placeholder="搜索" > | |||||
</div> | </div> | ||||
<div class="total">查询</div> | |||||
<div class="total" @click="getCbfCount">查询</div> | |||||
</div> | </div> | ||||
<div class="list_main"> | <div class="list_main"> | ||||
<van-list | <van-list | ||||
v-model="loading" | |||||
v-model:loading="loading" | |||||
:finished="finished" | :finished="finished" | ||||
finished-text="没有更多了" | finished-text="没有更多了" | ||||
@load="onRefreshContractor" | |||||
> | > | ||||
<van-swipe-cell v-for="item in 10" :key="item"> | |||||
<div class="item"> | |||||
<van-swipe-cell v-for="(item,index) in cbfList" :key="'cbf'+index"> | |||||
<div class="item" @click="$router.push({path:'/sunVillage_info/list_contractor_single_process',query:{item:item,status:false}})"> | |||||
<div class="info"> | <div class="info"> | ||||
<div class="title"> | <div class="title"> | ||||
<i class="icon_box"></i> | <i class="icon_box"></i> | ||||
<p class="news_title">李佳佳</p> | |||||
<p class="news_title">{{item.cbfmc}}</p> | |||||
</div> | </div> | ||||
<div class="time"> | <div class="time"> | ||||
<p><img src="../../assets/images/sunVillage_info/contractor_icon_04.png" width="14">444444444</p> | |||||
<p><img src="../../assets/images/sunVillage_info/contractor_icon_05.png" width="14">13人</p> | |||||
<p><img src="../../assets/images/sunVillage_info/contractor_icon_04.png" width="14">{{item.lxdh}}</p> | |||||
<p><img src="../../assets/images/sunVillage_info/contractor_icon_05.png" width="14">{{item.cbfcysl}}</p> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div style="width: 30%;"> | <div style="width: 30%;"> | ||||
<img src="../../assets/images/sunVillage_info/contractor_icon_06.png" style="width: 100%" alt=""> | |||||
<img :src="'/api'+item.gsshqz" width="100%" alt="" v-if="item.gsshqz" > | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<template #right> | <template #right> | ||||
<div class="operation"> | <div class="operation"> | ||||
<div class="opera_btn" @click="$router.push({path:'/sunVillage_info/list_contractor_single_process'})"> | |||||
<div class="opera_btn" @click="$router.push({path:'/sunVillage_info/list_contractor_single_process',query:{item:item,status:true}})"> | |||||
<img src="../../assets/images/sunVillage_info/contractor_icon_07.png" alt="" width="25"> | <img src="../../assets/images/sunVillage_info/contractor_icon_07.png" alt="" width="25"> | ||||
<p>审核签字</p> | <p>审核签字</p> | ||||
</div> | </div> | ||||
@@ -49,14 +50,7 @@ | |||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import { | |||||
listResource, | |||||
commonAttach, | |||||
attachmentList, | |||||
systemAttachment, | |||||
delResource, | |||||
updateResource | |||||
} from "@/api/sunVillage_info/fixedAssets"; | |||||
import { getList} from "@/api/sunVillage_info/sysCbf"; | |||||
import request from '@/utils/request' | import request from '@/utils/request' | ||||
import MapGisLine from "@/components/Map/MapGisLine"; | import MapGisLine from "@/components/Map/MapGisLine"; | ||||
export default { | export default { | ||||
@@ -66,15 +60,51 @@ | |||||
return { | return { | ||||
loading: false, | loading: false, | ||||
finished: false, | finished: false, | ||||
cbfList:[], | |||||
countcbf:0, | |||||
queryParams:{ | |||||
pageNum: 1, | |||||
pageSize: 10, | |||||
cbfbm:null}, | |||||
value:'', | value:'', | ||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
this.getCbfCount(); | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getCbfCount(){ | |||||
getList(this.queryParams).then(res=>{ | |||||
this.cbfList = res.rows; | |||||
if(this.cbfList.length >= res.total){ | |||||
this.finished = true; | |||||
return; | |||||
}else{ | |||||
this.loading = false; | |||||
this.queryParams.pageNum += 1 ; | |||||
} | |||||
}); | |||||
}, | |||||
onRefreshContractor(){ | |||||
if(this.loading){ | |||||
let params = { | |||||
"cbfbm":this.queryParams.cbfbm, | |||||
"pageNum": this.countcbf+1, | |||||
"pageSize":10, | |||||
} | |||||
getList(params).then((response) => { | |||||
if(response.rows.length>0&&this.cbfList.length<response.total){ | |||||
response.rows.map(res => { | |||||
this.cbfList.unshift(res) | |||||
}) | |||||
this.loading = false; | |||||
this.countcbf++ | |||||
}else{ | |||||
this.finished = true; | |||||
} | |||||
}); | |||||
} | |||||
}, | |||||
}, | }, | ||||
} | } | ||||
</script> | </script> | ||||
@@ -8,21 +8,21 @@ | |||||
<div class="information_main"> | <div class="information_main"> | ||||
<div class="titBox"> | <div class="titBox"> | ||||
<img src="../../assets/images/sunVillage_info/contractor_icon_01.png" style="width:22PX;height:22PX;margin-right: 10px;"/> | <img src="../../assets/images/sunVillage_info/contractor_icon_01.png" style="width:22PX;height:22PX;margin-right: 10px;"/> | ||||
<p class="tit">娃娃村</p> | |||||
<p class="tit">{{this.$store.state.user.deptName}}</p> | |||||
</div> | </div> | ||||
<div class="information_content"> | <div class="information_content"> | ||||
<div class="information_block"> | <div class="information_block"> | ||||
<p class="block_num">800<span>户</span></p> | |||||
<p class="block_num">{{cbfCount}}<span>户</span></p> | |||||
<p class="block_name">承包方</p> | <p class="block_name">承包方</p> | ||||
</div> | </div> | ||||
<div class="information_block"> | <div class="information_block"> | ||||
<p class="block_num">800<span>户</span></p> | |||||
<p class="block_name">承包方</p> | |||||
<p class="block_num">{{cbfdkCount}}<span>亩</span></p> | |||||
<p class="block_name">承包地</p> | |||||
</div> | </div> | ||||
<div class="information_block"> | <div class="information_block"> | ||||
<p class="block_num">800<span>户</span></p> | |||||
<p class="block_name">承包方</p> | |||||
<p class="block_num">{{cbfGsqzCount}}<span>户</span></p> | |||||
<p class="block_name">已公示签字确认</p> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -33,15 +33,21 @@ | |||||
<img src="../../assets/images/sunVillage_info/list_employer_process_icon_02.png" style="width:22PX;height:22PX;margin-right: 10px;"/> | <img src="../../assets/images/sunVillage_info/list_employer_process_icon_02.png" style="width:22PX;height:22PX;margin-right: 10px;"/> | ||||
<p class="tit">信息核对</p> | <p class="tit">信息核对</p> | ||||
</div> | </div> | ||||
<van-field readonly v-model="value" label="公示记事" placeholder="公示记事" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="公示记事人" placeholder="公示记事人" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="公示记事日期" placeholder="公示记事日期" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.gsjs" label="记事内容" placeholder="记事内容" input-align="right" :border="false" /> | |||||
<van-cell title="记事人" style="border: none;color: #646566;" > | |||||
<van-field readonly style="padding: 0 0;height: 30px;" label="记事人" input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.gsjsrqz" width="10%" alt="" v-if="form.gsjsrqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.gsjsrq" label="记事日期" placeholder="审核日期" input-align="right" :border="false" /> | |||||
</div> | </div> | ||||
<div class="subForm"> | |||||
<div class="subForm" v-if="!showForm2"> | |||||
<img src="../../assets/images/sunVillage_info/list_employer_process_icon_01.png" alt=""> | <img src="../../assets/images/sunVillage_info/list_employer_process_icon_01.png" alt=""> | ||||
<van-field | <van-field | ||||
v-model="value" | |||||
v-model="form.gsshyj" | |||||
rows="3" | rows="3" | ||||
autosize | autosize | ||||
required | required | ||||
@@ -51,46 +57,189 @@ | |||||
/> | /> | ||||
</div> | </div> | ||||
<div class="subForm2"> | |||||
<div class="subForm2" v-if="showForm2"> | |||||
<img class="topImg" src="../../assets/images/sunVillage_info/list_employer_process_icon_03.png" alt=""> | <img class="topImg" src="../../assets/images/sunVillage_info/list_employer_process_icon_03.png" alt=""> | ||||
<van-field readonly v-model="value" label="审核意见" placeholder="审核意见" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="审核人" placeholder="审核人" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="审核日期" placeholder="审核日期" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.gsshyj" label="审核意见" placeholder="审核意见" input-align="right" :border="false" /> | |||||
<van-cell title="审核人" style="border: none;color: #646566;" > | |||||
<van-field readonly style="padding: 0 0;height: 30px;" label="审核人" input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.gsshqz" style="width: 10%;" alt="" v-if="form.gsshqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.gsshrq" label="审核日期" placeholder="审核日期" input-align="right" :border="false" /> | |||||
<img class="bottomImg" src="../../assets/images/sunVillage_info/list_employer_process_icon_04.png" alt=""> | <img class="bottomImg" src="../../assets/images/sunVillage_info/list_employer_process_icon_04.png" alt=""> | ||||
</div> | </div> | ||||
<div style="margin: 30px auto 0;width: 50%;"> | |||||
<van-button round block type="primary" native-type="submit"> | |||||
<div style="margin: 30px auto 0;width: 50%;" v-if="!showForm2"> | |||||
<van-button round block type="primary" native-type="submit" @click="onSign()"> | |||||
批量审核签字 | 批量审核签字 | ||||
</van-button> | </van-button> | ||||
</div> | </div> | ||||
<div style="margin: 30px auto 0;width: 50%;"> | |||||
<div style="margin: 30px auto 0;width: 50%;" v-if="showForm2"> | |||||
<van-button round block type="primary" native-type="submit" :to="{name:'sunVillageInfoListContractor'}"> | <van-button round block type="primary" native-type="submit" :to="{name:'sunVillageInfoListContractor'}"> | ||||
单独审核签字 | 单独审核签字 | ||||
</van-button> | </van-button> | ||||
</div> | </div> | ||||
<van-popup v-model="showesign" closeable position="right" :style="{ height: '100%' }" | |||||
close-icon="close"> | |||||
<van-row style="margin:0 10%"> | |||||
<p class="title" style="margin:20px 0;position:relative;padding-left:20px;font-size:0.5rem">电子签名</p> | |||||
</van-row> | |||||
<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" | |||||
v-if="!signature.resultImg" | |||||
/> | |||||
</div> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_10.png" id="canvasTT" v-if="!signature.resultImg" | |||||
style="position:absolute;top: 50%;left: 50%;transform: translate(-50%,-50%)" alt=""> | |||||
<img :src="signature.resultImg" alt="" width="100%" v-if="signature.resultImg"/> | |||||
<div class="signature-footer" v-if="!signature.resultImg"> | |||||
<van-button type="primary" round size="small" @click="handleReset">清空画板</van-button> | |||||
<van-button type="primary" round size="small" @click="handleGenerate">保存提交</van-button> | |||||
</van-row> | |||||
</div> | |||||
</van-popup> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import { financePublicDetail , openAdd } from "@/api/sunVillage_info/fixedAssets"; | |||||
import Cookies from "js-cookie"; | |||||
import request from '@/utils/request' | |||||
import { getList,getCbdkms,getCbfdcList,updateSysCfb,examineBatchSign} from "@/api/sunVillage_info/sysCbf"; | |||||
import $ from "jquery"; | |||||
export default { | export default { | ||||
name: "certificateList", | name: "certificateList", | ||||
data() { | data() { | ||||
return { | return { | ||||
value:'' | |||||
height:0, | |||||
cbfCount:0, | |||||
cbfdkCount:0, | |||||
cbfGsqzCount:0, | |||||
showForm2:false, | |||||
showesign:false, | |||||
form:{}, | |||||
//电子签名 | |||||
signature: { | |||||
lineWidth: 6, // 画笔的线条粗细 | |||||
lineColor: "#000000", // 画笔的颜色 | |||||
bgColor: "", // 画布的背景颜色 | |||||
resultImg: "", // 最终画布生成的base64图片 | |||||
isCrop: false, // 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | |||||
}, | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
this.getCbfdc(); | |||||
this.getCbfCount(); | |||||
this.getCbfdkCount(); | |||||
this.getCbfGsqzCount(); | |||||
this.height = window.screen.height * 1.28 - 20; | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getCbfCount(){ | |||||
getList({}).then(res=>{ | |||||
this.cbfCount = res.total; | |||||
}); | |||||
}, | |||||
getCbfdc(){ | |||||
getCbfdcList({}).then(res=>{ | |||||
if(res.total > 0){ | |||||
this.form = res.rows[0]; | |||||
if(this.form.gsshqz != null){ | |||||
this.showForm2 = true; | |||||
} | |||||
} | |||||
}); | |||||
}, | |||||
getCbfGsqzCount(){ | |||||
getList({params:{gsqz:true}}).then(res=>{ | |||||
this.cbfGsqzCount = res.total; | |||||
}); | |||||
}, | |||||
getCbfdkCount(){ | |||||
getCbdkms({}).then(res=>{ | |||||
this.cbfdkCount = res.data; | |||||
}); | |||||
}, | |||||
canvasTTdown() { | |||||
$('#canvasTT').css('display', 'none'); | |||||
}, | |||||
onSign(){ | |||||
this.showesign = true; | |||||
}, | |||||
// 清空画板 | |||||
handleReset() { | |||||
this.resultImg = null | |||||
if(this.$refs.esign){ | |||||
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(); | |||||
param.append('file', wj) // 通过append向form对象添加数据 | |||||
this.showesign = false; | |||||
this.$toast.loading({ | |||||
message: "数据处理中", | |||||
forbidClick: true, | |||||
duration: 40000, | |||||
}); | |||||
examineBatchSign(param,this.form.gsshyj).then((res) => { | |||||
this.$toast.clear(); | |||||
this.getCbfdc(); | |||||
this.$notify({type: 'success', message: '签字成功'}); | |||||
}) | |||||
// this.mainImgArr.push(r1.fileName) | |||||
// let param = new FormData() // 创建form对象 | |||||
// param.append('file', wj) // 通过append向form对象添加数据 | |||||
// param.append('date', this.format(new Date(), 'yyyy-MM-dd')) // 通过append向form对象添加数据 | |||||
// zjddcSign(param, this.zjdzdxx.zjddm).then(response => { | |||||
// this.$notify({type: 'success', message: '签字成功'}); | |||||
// this.showesign = false; | |||||
// getZjdzd(this.zjdzdxx.id).then((response) => { | |||||
// localStorage.setItem("zjdzdxxItem",JSON.stringify(response.data)) | |||||
// 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> | </script> | ||||
@@ -101,6 +250,26 @@ | |||||
background-size: 100% 100%; | background-size: 100% 100%; | ||||
border: none; | border: none; | ||||
} | } | ||||
.van-cell::after { | |||||
position: absolute; | |||||
box-sizing: border-box; | |||||
content: ' '; | |||||
pointer-events: none; | |||||
right: 0.426667rem; | |||||
bottom: 0; | |||||
left: 0.426667rem; | |||||
border:none; | |||||
-webkit-transform: scaleY(.5); | |||||
transform: scaleY(.5); | |||||
} | |||||
.signature-footer { | |||||
transform: rotate(90deg); | |||||
width: auto; | |||||
position: absolute; | |||||
top: 50%; | |||||
left: 0px; | |||||
} | |||||
.home_wrapper{ | .home_wrapper{ | ||||
background: #e9e9e9; | background: #e9e9e9; | ||||
min-height: 100vh; | min-height: 100vh; | ||||
@@ -1,78 +1,242 @@ | |||||
<template> | <template> | ||||
<div class="home_wrapper"> | |||||
<div class="header_main" > | |||||
承包方审核 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
<div class="home_wrapper"> | |||||
<div class="header_main" > | |||||
承包方审核 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
</div> | |||||
<div class="list_main"> | |||||
<div class="titBox"> | |||||
<img src="../../assets/images/sunVillage_info/list_employer_process_icon_02.png" style="width:22PX;height:22PX;margin-right: 10px;"/> | |||||
<p class="tit">信息核对</p> | |||||
</div> | </div> | ||||
<div class="list_main"> | |||||
<div class="titBox"> | |||||
<img src="../../assets/images/sunVillage_info/list_employer_process_icon_02.png" style="width:22PX;height:22PX;margin-right: 10px;"/> | |||||
<p class="tit">信息核对</p> | |||||
</div> | |||||
<van-field readonly v-model="value" label="承包方名称" placeholder="承包方名称" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="承包方类型" placeholder="承包方类型" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="证件号码" placeholder="证件号码" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="电话" placeholder="电话" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="调查记事" placeholder="调查记事" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="公示记事" placeholder="公示记事" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="公示记事人" placeholder="公示记事人" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="公示记事时间" placeholder="公示记事时间" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="承包方公示结果意见" placeholder="承包方公示结果意见" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="承包方公示结果签字" placeholder="承包方公示结果签字" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="承包方公示日期" placeholder="承包方公示日期" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.cbfmc" label="承包方名称" placeholder="承包方名称" input-align="right" :border="false" /> | |||||
<field-select | |||||
v-model="form.cbfzjlx" | |||||
label="承包方类型" | |||||
value-key="dictLabel" | |||||
data-key="dictValue" | |||||
placeholder="选择证件类型" | |||||
:rules="[{ required: true }]" | |||||
readonly | |||||
remote-url="/open/zdzh/list/cert_type" | |||||
:on-remote-response="'data'" | |||||
/> | |||||
<van-field readonly v-model="form.cbfzjhm" label="证件号码" placeholder="证件号码" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.lxdh" label="电话" placeholder="电话" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.cbfdcjs" label="调查记事" placeholder="调查记事" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.gsjs" label="公示记事" placeholder="公示记事" input-align="right" :border="false" /> | |||||
<!-- <van-field readonly v-model="form.gsjsrqz" label="公示记事人" placeholder="公示记事人" input-align="right" :border="false" />--> | |||||
<van-cell title="公示记事人签字" style="color: #646566;"> | |||||
<van-field style="padding: 0 0;height: 30px;" readonly label="公示记事人签字" input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.gsjsrqz" width="10%" alt="" v-if="form.gsjsrqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.gsjsrq" label="公示记事时间" placeholder="公示记事时间" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.gsjgyj" label="承包方公示结果意见" placeholder="承包方公示结果意见" input-align="right" :border="false" /> | |||||
<van-cell title="承包方公示结果签字" style="color: #646566;"> | |||||
<van-field style="padding: 0 0;height: 30px;width: 100%;background-color: #ffffff; border-radius: 5PX;" readonly label="承包方公示结果签字" input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.gsjgqz" style="top:55px;border:none;" width="10%" alt="" v-if="form.gsjgqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.gsjgqzrq" label="承包方公示日期" placeholder="承包方公示日期" input-align="right" :border="false" /> | |||||
</div> | |||||
</div> | |||||
<div class="subForm"> | |||||
<img src="../../assets/images/sunVillage_info/list_employer_process_icon_01.png" alt=""> | |||||
<van-field | |||||
v-model="value" | |||||
rows="3" | |||||
autosize | |||||
required | |||||
label="审批意见" | |||||
type="textarea" | |||||
:border="false" | |||||
class="textarea" | |||||
/> | |||||
<van-field readonly value="123" label="审核人" placeholder="承包方公示日期" input-align="right" :border="false" /> | |||||
<van-field readonly value="123" label="审核日期" placeholder="承包方公示日期" input-align="right" :border="false" /> | |||||
<div class="subForm" v-if="!showForm2"> | |||||
<img src="../../assets/images/sunVillage_info/list_employer_process_icon_01.png" alt=""> | |||||
<van-field | |||||
v-model="form.gsshyj" | |||||
rows="3" | |||||
autosize | |||||
required | |||||
label="审核意见" | |||||
type="textarea" | |||||
:border="false" | |||||
class="textarea" | |||||
/> | |||||
<van-cell title="审核人" style="color: #ffffff;" > | |||||
<van-field style="padding: 0 0;height: 30px;width: 100%;background-color: #ffffff; border-radius: 5PX;" readonly label="审核人" input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.gsshqz" style="top:55px;border:none;width: 80%;" alt="" v-if="form.gsshqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.gsshrq" label="审核日期" placeholder="审核日期" input-align="right" :border="false" /> | |||||
</div> | |||||
</div> | |||||
<div class="subForm2"> | |||||
<img class="topImg" src="../../assets/images/sunVillage_info/list_employer_process_icon_03.png" alt=""> | |||||
<van-field readonly v-model="value" label="审核意见" placeholder="审核意见" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="审核人" placeholder="审核人" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="审核日期" placeholder="审核日期" input-align="right" :border="false" /> | |||||
<div class="subForm2" v-if="showForm2"> | |||||
<img class="topImg" src="../../assets/images/sunVillage_info/list_employer_process_icon_03.png" alt=""> | |||||
<van-field readonly v-model="form.gsshyj" label="审核意见" placeholder="审核意见" input-align="right" :border="false" /> | |||||
<van-cell title="审核人" style="color: #646566;"> | |||||
<van-field style="padding: 0 0;height: 30px;" readonly label="审核人" input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.gsshqz" style="width: 20%;" alt="" v-if="form.gsshqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.gsshrq" label="审核日期" placeholder="审核日期" input-align="right" :border="false" /> | |||||
<img class="bottomImg" src="../../assets/images/sunVillage_info/list_employer_process_icon_04.png" alt=""> | |||||
<img class="bottomImg" src="../../assets/images/sunVillage_info/contractor_icon_09.png" alt=""> | |||||
</div> | |||||
<div style="margin: 30px auto 0;width: 50%;" v-if="!showForm2"> | |||||
<van-button round block type="primary" native-type="submit" @click="onSign()" > | |||||
审核签字 | |||||
</van-button> | |||||
</div> | |||||
<van-popup v-model="showesign" closeable position="right" :style="{ height: '100%' }" | |||||
close-icon="close"> | |||||
<van-row style="margin:0 10%"> | |||||
<p class="title" style="margin:20px 0;position:relative;padding-left:20px;font-size:0.5rem">电子签名</p> | |||||
</van-row> | |||||
<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" | |||||
v-if="!signature.resultImg" | |||||
/> | |||||
</div> | </div> | ||||
<div style="margin: 30px auto 0;width: 50%;"> | |||||
<van-button round block type="primary" native-type="submit"> | |||||
审核签字 | |||||
</van-button> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_10.png" id="canvasTT" v-if="!signature.resultImg" | |||||
style="position:absolute;top: 50%;left: 50%;transform: translate(-50%,-50%)" alt=""> | |||||
<img :src="signature.resultImg" alt="" width="100%" v-if="signature.resultImg"/> | |||||
<div class="signature-footer" v-if="!signature.resultImg"> | |||||
<van-button type="primary" round size="small" @click="handleReset">清空画板</van-button> | |||||
<van-button type="primary" round size="small" @click="handleGenerate">保存提交</van-button> | |||||
</van-row> | |||||
</div> | </div> | ||||
</div> | |||||
</van-popup> | |||||
</div> | |||||
</template> | </template> | ||||
<script> | <script> | ||||
import { financePublicDetail , openAdd } from "@/api/sunVillage_info/fixedAssets"; | |||||
import Cookies from "js-cookie"; | |||||
import request from '@/utils/request' | |||||
import { examineSign } from "@/api/sunVillage_info/sysCbf"; | |||||
import FieldSelect from "@/components/form/FieldSelect"; | |||||
import $ from "jquery"; | |||||
export default { | export default { | ||||
name: "certificateList", | name: "certificateList", | ||||
components: {FieldSelect}, | |||||
data() { | data() { | ||||
return { | return { | ||||
value:'' | |||||
form:{}, | |||||
showForm2:false, | |||||
showesign:false, | |||||
height:0, | |||||
options: { | |||||
cert_type: [], | |||||
}, | |||||
//电子签名 | |||||
signature: { | |||||
lineWidth: 6, // 画笔的线条粗细 | |||||
lineColor: "#000000", // 画笔的颜色 | |||||
bgColor: "", // 画布的背景颜色 | |||||
resultImg: "", // 最终画布生成的base64图片 | |||||
isCrop: false, // 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | |||||
}, | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
this.form = this.$route.query.item; | |||||
this.InitOptions(); | |||||
this.height = window.screen.height * 1.28 - 20; | |||||
if(this.$route.query.status === "true"){ | |||||
this.showForm2 =false; | |||||
}else{ | |||||
this.showForm2 =true; | |||||
} | |||||
}, | }, | ||||
methods: { | methods: { | ||||
InitOptions() { | |||||
for(let k in this.options) | |||||
{ | |||||
this.getDicts(k).then((resp) => this.options[k] = resp.data); | |||||
} | |||||
}, | |||||
canvasTTdown() { | |||||
$('#canvasTT').css('display', 'none'); | |||||
}, | |||||
onSign(){ | |||||
this.showesign = true; | |||||
}, | |||||
// 清空画板 | |||||
handleReset() { | |||||
this.resultImg = null | |||||
if(this.$refs.esign){ | |||||
this.$refs.esign.reset(); | |||||
} | |||||
$('#canvasTT').css('display', 'block') | |||||
}, | |||||
// 生成签字图 | |||||
handleGenerate() { | |||||
console.info( this.$refs.esign | |||||
.generate() ); | |||||
this.$refs.esign | |||||
.generate() // 使用生成器调用把签字的图片转换成为base64图片格式 | |||||
.then((res) => { | |||||
this.signature.resultImg = res; | |||||
console.info(res) | |||||
let wj = this.dataURLtoBlob(res); | |||||
let param = new FormData(); | |||||
param.append('file', wj) // 通过append向form对象添加数据 | |||||
param.append('id', this.form.id) | |||||
param.append('shyj', this.form.gsshyj) | |||||
this.showesign = false; | |||||
this.$toast.loading({ | |||||
message: "数据处理中", | |||||
forbidClick: true, | |||||
duration: 40000, | |||||
}); | |||||
examineSign(param).then((r1) => { | |||||
this.$toast.clear(); | |||||
// this.tEnforceSamplingGoodsList[index].attachement.push(r1.fileName); | |||||
this.$notify({type: 'success', message: '签字成功'}); | |||||
this.showForm2 = true; | |||||
this.form = r1.data; | |||||
this.$router.push({name:'sunVillageInfoListContractor'}) | |||||
}) | |||||
// let param = new FormData() // 创建form对象 | |||||
// param.append('file', wj) // 通过append向form对象添加数据 | |||||
// param.append('date', this.format(new Date(), 'yyyy-MM-dd')) // 通过append向form对象添加数据 | |||||
// zjddcSign(param, this.zjdzdxx.zjddm).then(response => { | |||||
// this.$notify({type: 'success', message: '签字成功'}); | |||||
// this.showesign = false; | |||||
// getZjdzd(this.zjdzdxx.id).then((response) => { | |||||
// localStorage.setItem("zjdzdxxItem",JSON.stringify(response.data)) | |||||
// 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> | </script> | ||||
@@ -83,82 +247,102 @@ | |||||
background-size: 100% 100%; | background-size: 100% 100%; | ||||
border: none; | border: none; | ||||
} | } | ||||
.home_wrapper{ | |||||
.van-cell::after { | |||||
position: absolute; | |||||
box-sizing: border-box; | |||||
content: ' '; | |||||
pointer-events: none; | |||||
right: 0.426667rem; | |||||
bottom: 0; | |||||
left: 0.426667rem; | |||||
border:none; | |||||
-webkit-transform: scaleY(.5); | |||||
transform: scaleY(.5); | |||||
} | |||||
.signature-footer { | |||||
transform: rotate(90deg); | |||||
width: auto; | |||||
position: absolute; | |||||
top: 50%; | |||||
left: 0px; | |||||
} | |||||
.home_wrapper{ | |||||
background: #e9e9e9; | background: #e9e9e9; | ||||
min-height: 100vh; | min-height: 100vh; | ||||
width: 100vw; | 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; | |||||
.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; | |||||
} | |||||
} | |||||
.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{ | .list_main{ | ||||
padding:25px; | padding:25px; | ||||
background: #ffffff; | background: #ffffff; | ||||
@@ -176,46 +360,46 @@ | |||||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | ||||
position: relative; | position: relative; | ||||
padding-top: 10vw; | padding-top: 10vw; | ||||
img{ | |||||
position: absolute; | |||||
left: 50%; | |||||
width: 15vw; | |||||
transform: translate(-50%,calc(-50% - 10vw)); | |||||
border: 5PX solid #e9e9e9; | |||||
border-radius: 100%; | |||||
} | |||||
/deep/ .van-field__label{ | |||||
/*padding-left: 10PX;*/ | |||||
width: auto; | |||||
display: flex; | |||||
align-items: start; | |||||
color: #ffffff; | |||||
margin-right: 6vw; | |||||
} | |||||
/deep/ .van-cell{ | |||||
background-color: transparent; | |||||
} | |||||
.textarea{ | |||||
/deep/ .van-field__value{ | |||||
background-color: #ffffff; | |||||
border-radius: 10PX; | |||||
} | |||||
/deep/ .van-field__control{ | |||||
padding: 12PX; | |||||
color: #666666; | |||||
} | |||||
} | |||||
/deep/ .van-field__value{ | |||||
background-color: transparent; | |||||
border-radius: 10PX; | |||||
} | |||||
/deep/ .van-field__control{ | |||||
padding: 0PX; | |||||
color: #ffffff; | |||||
} | |||||
/deep/ .van-cell--required::before{ | |||||
left: 60PX; | |||||
} | |||||
img{ | |||||
position: absolute; | |||||
left: 50%; | |||||
width: 15vw; | |||||
transform: translate(-50%,calc(-50% - 10vw)); | |||||
border: 5PX solid #e9e9e9; | |||||
border-radius: 100%; | |||||
} | |||||
/deep/ .van-field__label{ | |||||
/*padding-left: 10PX;*/ | |||||
width: auto; | |||||
display: flex; | |||||
align-items: start; | |||||
color: #ffffff; | |||||
margin-right: 6vw; | |||||
} | |||||
/deep/ .van-cell{ | |||||
background-color: transparent; | |||||
} | |||||
.textarea{ | |||||
/deep/ .van-field__value{ | |||||
background-color: #ffffff; | |||||
border-radius: 10PX; | |||||
} | |||||
/deep/ .van-field__control{ | |||||
padding: 12PX; | |||||
color: #666666; | |||||
} | |||||
} | |||||
/deep/ .van-field__value{ | |||||
background-color: transparent; | |||||
border-radius: 10PX; | |||||
} | |||||
/deep/ .van-field__control{ | |||||
padding: 0PX; | |||||
color: #ffffff; | |||||
} | |||||
/deep/ .van-cell--required::before{ | |||||
left: 60PX; | |||||
} | |||||
} | } | ||||
.subForm2{ | .subForm2{ | ||||
padding:25px; | padding:25px; | ||||
@@ -226,21 +410,21 @@ | |||||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | ||||
position: relative; | position: relative; | ||||
padding-top: 10vw; | padding-top: 10vw; | ||||
.topImg{ | |||||
position: absolute; | |||||
left: 50%; | |||||
width: 15vw; | |||||
transform: translate(-50%,calc(-50% - 10vw)); | |||||
border: 5PX solid #e9e9e9; | |||||
border-radius: 100%; | |||||
} | |||||
.bottomImg{ | |||||
position: absolute; | |||||
left: 50%; | |||||
top: 50%; | |||||
width: 25vw; | |||||
transform: translate(-50%,-50%); | |||||
} | |||||
.topImg{ | |||||
position: absolute; | |||||
left: 50%; | |||||
width: 15vw; | |||||
transform: translate(-50%,calc(-50% - 10vw)); | |||||
border: 5PX solid #e9e9e9; | |||||
border-radius: 100%; | |||||
} | |||||
.bottomImg{ | |||||
position: absolute; | |||||
left: 50%; | |||||
top: 50%; | |||||
width: 25vw; | |||||
transform: translate(-50%,-50%); | |||||
} | |||||
} | } | ||||
.titBox{ | .titBox{ | ||||
display: flex; | display: flex; | ||||
@@ -264,5 +448,5 @@ | |||||
/deep/ .van-cell--required::before{ | /deep/ .van-cell--required::before{ | ||||
left: 85PX; | left: 85PX; | ||||
} | } | ||||
} | |||||
} | |||||
</style> | </style> |
@@ -9,22 +9,30 @@ | |||||
<img src="../../assets/images/sunVillage_info/list_employer_process_icon_02.png" style="width:22PX;height:22PX;margin-right: 10px;"/> | <img src="../../assets/images/sunVillage_info/list_employer_process_icon_02.png" style="width:22PX;height:22PX;margin-right: 10px;"/> | ||||
<p class="tit">信息核对</p> | <p class="tit">信息核对</p> | ||||
</div> | </div> | ||||
<van-field readonly v-model="value" label="编码" placeholder="编码" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="名称" placeholder="名称" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="负责人" placeholder="负责人" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="证件类型" placeholder="证件类型" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="证件号码" placeholder="证件号码" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="调查记事" placeholder="调查记事" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="调查员" placeholder="调查员" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="调查日期" placeholder="调查日期" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="调查签字" placeholder="调查签字" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.fbfbm" label="编码" placeholder="编码" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.fbfdcy" label="名称" placeholder="名称" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.fbffzrxm" label="负责人" placeholder="负责人" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.fzrzjlx" label="证件类型" placeholder="证件类型" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.fzrzjhm" label="证件号码" placeholder="证件号码" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.fbfdcjs" label="调查记事" placeholder="调查记事" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.fbfdcy" label="调查员" placeholder="调查员" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.fbfdcrq" label="调查日期" placeholder="调查日期" input-align="right" :border="false" /> | |||||
<van-cell title="调查签名" style="color: #646566;"> | |||||
<van-field style="padding: 0 0;" readonly label="调查签名" input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.fbfdcqz" width="10%" alt="" v-if="form.fbfdcqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<!-- <van-col :span="12"> <van-field readonly label="调查签名" input-align="right" :border="false" /></van-col>--> | |||||
<!-- <van-col :span="12"><img :src="'/api'+form.fbfdcqz" width="100%" alt="" v-if="form.fbfdcqz" ></van-col>--> | |||||
</div> | </div> | ||||
<div class="subForm"> | |||||
<div class="subForm" v-if="!showShenHe"> | |||||
<img src="../../assets/images/sunVillage_info/list_employer_process_icon_01.png" alt=""> | <img src="../../assets/images/sunVillage_info/list_employer_process_icon_01.png" alt=""> | ||||
<van-field | <van-field | ||||
v-model="value" | |||||
v-model="form.shyj" | |||||
rows="3" | rows="3" | ||||
autosize | autosize | ||||
required | required | ||||
@@ -34,39 +42,174 @@ | |||||
/> | /> | ||||
</div> | </div> | ||||
<div class="subForm2"> | |||||
<div class="subForm2" v-if="showShenHe"> | |||||
<img class="topImg" src="../../assets/images/sunVillage_info/list_employer_process_icon_03.png" alt=""> | <img class="topImg" src="../../assets/images/sunVillage_info/list_employer_process_icon_03.png" alt=""> | ||||
<van-field readonly v-model="value" label="审核意见" placeholder="审核意见" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="审核人" placeholder="审核人" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="value" label="审核日期" placeholder="审核日期" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.shyj" label="审核意见" placeholder="审核意见" input-align="right" :border="false" /> | |||||
<van-cell title="审核人" style="border: none;height: 40px;color: #646566;" > | |||||
<van-field readonly style="padding: 0 0;" label="审核人" input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.shrqz" width="10%" alt="" v-if="form.shrqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.shrq" label="审核日期" placeholder="审核日期" input-align="right" :border="false" /> | |||||
<img class="bottomImg" src="../../assets/images/sunVillage_info/list_employer_process_icon_04.png" alt=""> | <img class="bottomImg" src="../../assets/images/sunVillage_info/list_employer_process_icon_04.png" alt=""> | ||||
</div> | </div> | ||||
<div style="margin: 30px auto 0;width: 50%;"> | |||||
<van-button round block type="primary" native-type="submit"> | |||||
<div style="margin: 30px auto 0;width: 50%;" v-if="showShqz && !showShenHe"> | |||||
<van-button round block type="primary" native-type="submit" @click="onSign()"> | |||||
审核签字 | 审核签字 | ||||
</van-button> | </van-button> | ||||
</div> | </div> | ||||
<van-popup v-model="showesign" closeable position="right" :style="{ height: '100%' }" | |||||
close-icon="close"> | |||||
<van-row style="margin:0 10%"> | |||||
<p class="title" style="margin:20px 0;position:relative;padding-left:20px;font-size:0.5rem">电子签名</p> | |||||
</van-row> | |||||
<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" | |||||
v-if="!signature.resultImg" | |||||
/> | |||||
</div> | |||||
<img src="../../assets/images/sunVillage_info/signature_icon_10.png" id="canvasTT" v-if="!signature.resultImg" | |||||
style="position:absolute;top: 50%;left: 50%;transform: translate(-50%,-50%)" alt=""> | |||||
<img :src="signature.resultImg" alt="" width="100%" v-if="signature.resultImg"/> | |||||
<div class="signature-footer" v-if="!signature.resultImg"> | |||||
<van-button type="primary" round size="small" @click="handleReset">清空画板</van-button> | |||||
<van-button type="primary" round size="small" @click="handleGenerate">保存提交</van-button> | |||||
</van-row> | |||||
</div> | |||||
</van-popup> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import { financePublicDetail , openAdd } from "@/api/sunVillage_info/fixedAssets"; | |||||
import { getSysFfb,auditSign} from "@/api/sunVillage_info/sysFbf"; | |||||
import { commonUpload } from "@/api/homestead/index"; | |||||
import $ from "jquery"; | |||||
import Cookies from "js-cookie"; | import Cookies from "js-cookie"; | ||||
import request from '@/utils/request' | import request from '@/utils/request' | ||||
export default { | export default { | ||||
name: "certificateList", | name: "certificateList", | ||||
data() { | data() { | ||||
return { | return { | ||||
value:'' | |||||
value:'', | |||||
showesign:false, | |||||
showShenHe:false, | |||||
showShqz:true, | |||||
height:0, | |||||
form:{}, | |||||
//电子签名 | |||||
signature: { | |||||
lineWidth: 6, // 画笔的线条粗细 | |||||
lineColor: "#000000", // 画笔的颜色 | |||||
bgColor: "", // 画布的背景颜色 | |||||
resultImg: "", // 最终画布生成的base64图片 | |||||
isCrop: false, // 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | |||||
}, | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
this.getSysFfb(); | |||||
this.height = window.screen.height * 1.28 - 20; | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getSysFfb(){ | |||||
getSysFfb().then(response => { | |||||
if(response.data.length > 0){ | |||||
this.form = response.data[0]; | |||||
if(this.form.shrqz != null){ | |||||
this.showShenHe = true; | |||||
} | |||||
console.info(this.form); | |||||
} | |||||
}); | |||||
}, | |||||
canvasTTdown() { | |||||
$('#canvasTT').css('display', 'none'); | |||||
}, | |||||
onSign(){ | |||||
this.showesign = true; | |||||
}, | |||||
// 清空画板 | |||||
handleReset() { | |||||
this.resultImg = null | |||||
if(this.$refs.esign){ | |||||
this.$refs.esign.reset(); | |||||
} | |||||
$('#canvasTT').css('display', 'block') | |||||
}, | |||||
// 生成签字图 | |||||
handleGenerate() { | |||||
console.info( this.$refs.esign | |||||
.generate() ); | |||||
this.$refs.esign | |||||
.generate() // 使用生成器调用把签字的图片转换成为base64图片格式 | |||||
.then((res) => { | |||||
this.signature.resultImg = res; | |||||
console.info(res) | |||||
let wj = this.dataURLtoBlob(res); | |||||
let param = new FormData(); | |||||
param.append('file', wj) // 通过append向form对象添加数据 | |||||
param.append('id', this.form.id) | |||||
param.append('shyj', this.form.shyj) | |||||
this.$toast.loading({ | |||||
message: "数据处理中", | |||||
forbidClick: true, | |||||
duration: 40000, | |||||
}); | |||||
auditSign(param).then((r1) => { | |||||
this.$toast.clear(); | |||||
// this.tEnforceSamplingGoodsList[index].attachement.push(r1.fileName); | |||||
this.$notify({type: 'success', message: '签字成功'}); | |||||
this.showShqz = false; | |||||
this.showesign = false; | |||||
this.getSysFfb(); | |||||
// this.mainImgArr.push(r1.fileName) | |||||
}) | |||||
// let param = new FormData() // 创建form对象 | |||||
// param.append('file', wj) // 通过append向form对象添加数据 | |||||
// param.append('date', this.format(new Date(), 'yyyy-MM-dd')) // 通过append向form对象添加数据 | |||||
// zjddcSign(param, this.zjdzdxx.zjddm).then(response => { | |||||
// this.$notify({type: 'success', message: '签字成功'}); | |||||
// this.showesign = false; | |||||
// getZjdzd(this.zjdzdxx.id).then((response) => { | |||||
// localStorage.setItem("zjdzdxxItem",JSON.stringify(response.data)) | |||||
// 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> | </script> | ||||
@@ -77,6 +220,28 @@ | |||||
background-size: 100% 100%; | background-size: 100% 100%; | ||||
border: none; | border: none; | ||||
} | } | ||||
.van-cell::after { | |||||
position: absolute; | |||||
box-sizing: border-box; | |||||
content: ' '; | |||||
pointer-events: none; | |||||
right: 0.426667rem; | |||||
bottom: 0; | |||||
left: 0.426667rem; | |||||
border:none; | |||||
-webkit-transform: scaleY(.5); | |||||
transform: scaleY(.5); | |||||
} | |||||
.signature-footer { | |||||
transform: rotate(90deg); | |||||
width: auto; | |||||
position: absolute; | |||||
top: 50%; | |||||
left: 0px; | |||||
} | |||||
.home_wrapper{ | .home_wrapper{ | ||||
background: #e9e9e9; | background: #e9e9e9; | ||||
min-height: 100vh; | min-height: 100vh; | ||||
@@ -0,0 +1,317 @@ | |||||
<template> | |||||
<div class="home_wrapper"> | |||||
<div class="header_main" > | |||||
发包方授权 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
</div> | |||||
<div class="list_main"> | |||||
<div class="titBox"> | |||||
<img src="../../assets/images/sunVillage_info/list_employer_process_icon_02.png" style="width:22PX;height:22PX;margin-right: 10px;"/> | |||||
<p class="tit">发包方授权</p> | |||||
</div> | |||||
<van-field readonly v-model="form.fbfbm" label="发包方代码" placeholder="发包方代码" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.fbfmc" label="发包方名称" placeholder="发包方名称" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.fbffzrxm" label="负责人名称" placeholder="负责人名称" input-align="right" :border="false" /> | |||||
<field-select | |||||
v-model="form.fzrzjlx" | |||||
label="证件类型" | |||||
value-key="dictLabel" | |||||
data-key="dictValue" | |||||
placeholder="选择证件类型" | |||||
:rules="[{ required: true }]" | |||||
readonly | |||||
remote-url="/open/zdzh/list/zjlx" | |||||
:on-remote-response="'data'" | |||||
/> | |||||
<van-field readonly v-model="form.fzrzjhm" label="证件号码" placeholder="证件号码" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.lxdh" label="联系电话" placeholder="联系电话" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.fbfdz" label="发包方地址" placeholder="发包方地址" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.yzbm" label="邮政编码" placeholder=" 邮政编码" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.fbfdcy" label="发包方调查员" placeholder="发包方调查员" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.fbfdcrq" label="发包方调查日期" placeholder="发包方调查日期" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.fbfdcjs" label="发包方调查记事" placeholder="发包方调查记事" input-align="right" :border="false" /> | |||||
<van-cell title="发包方调查签字" style="color: #646566;"> | |||||
<van-field style="padding: 0 0;" readonly label="发包方调查签字" input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.fbfdcqz" width="10%" alt="" v-if="form.fbfdcqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<van-field readonly v-model="form.shyj" label="审核意见" placeholder="审核意见" input-align="right" :border="false" /> | |||||
<van-field readonly v-model="form.shrq" label="审核日期" placeholder="审核日期" input-align="right" :border="false" /> | |||||
<van-cell title="审核人签字" style="color: #646566;"> | |||||
<van-field style="padding: 0 0;" readonly label="审核人签字" input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.shrqz" width="10%" alt="" v-if="form.shrqz" > | |||||
</template> | |||||
</van-field> | |||||
</van-cell> | |||||
<div style="margin: 30px auto 0;width: 50%;"> | |||||
<van-button round block type="primary" native-type="submit" > | |||||
授权 | |||||
</van-button> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import { getList} from "@/api/sunVillage_info/sysCbf"; | |||||
import FieldSelect from "@/components/form/FieldSelect"; | |||||
import $ from "jquery"; | |||||
export default { | |||||
name: "certificateList", | |||||
components: {FieldSelect}, | |||||
data() { | |||||
return { | |||||
form:{}, | |||||
showForm2:false, | |||||
showesign:false, | |||||
height:0, | |||||
options: { | |||||
cert_type: [], | |||||
}, | |||||
//电子签名 | |||||
signature: { | |||||
lineWidth: 6, // 画笔的线条粗细 | |||||
lineColor: "#000000", // 画笔的颜色 | |||||
bgColor: "", // 画布的背景颜色 | |||||
resultImg: "", // 最终画布生成的base64图片 | |||||
isCrop: false, // 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | |||||
}, | |||||
}; | |||||
}, | |||||
created() { | |||||
this.InitOptions(); | |||||
this.getSysCfb(); | |||||
}, | |||||
methods: { | |||||
InitOptions() { | |||||
for(let k in this.options) | |||||
{ | |||||
this.getDicts(k).then((resp) => this.options[k] = resp.data); | |||||
} | |||||
}, | |||||
getSysCfb(){ | |||||
getList({}).then(response => { | |||||
if(response.data.length > 0){ | |||||
this.form = response.data[0]; | |||||
} | |||||
}); | |||||
}, | |||||
}, | |||||
} | |||||
</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; | |||||
} | |||||
.van-cell::after { | |||||
position: absolute; | |||||
box-sizing: border-box; | |||||
content: ' '; | |||||
pointer-events: none; | |||||
right: 0.426667rem; | |||||
bottom: 0; | |||||
left: 0.426667rem; | |||||
border:none; | |||||
-webkit-transform: scaleY(.5); | |||||
transform: scaleY(.5); | |||||
} | |||||
.signature-footer { | |||||
transform: rotate(90deg); | |||||
width: auto; | |||||
position: absolute; | |||||
top: 50%; | |||||
left: 0px; | |||||
} | |||||
.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); | |||||
} | |||||
.subForm{ | |||||
padding:25px; | |||||
background-image: linear-gradient(#2884ec,#68b2ee); | |||||
width: 94%; | |||||
margin: 50PX auto 0; | |||||
border-radius: 15PX; | |||||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||||
position: relative; | |||||
padding-top: 10vw; | |||||
img{ | |||||
position: absolute; | |||||
left: 50%; | |||||
width: 15vw; | |||||
transform: translate(-50%,calc(-50% - 10vw)); | |||||
border: 5PX solid #e9e9e9; | |||||
border-radius: 100%; | |||||
} | |||||
/deep/ .van-field__label{ | |||||
/*padding-left: 10PX;*/ | |||||
width: auto; | |||||
display: flex; | |||||
align-items: start; | |||||
color: #ffffff; | |||||
margin-right: 6vw; | |||||
} | |||||
/deep/ .van-cell{ | |||||
background-color: transparent; | |||||
} | |||||
.textarea{ | |||||
/deep/ .van-field__value{ | |||||
background-color: #ffffff; | |||||
border-radius: 10PX; | |||||
} | |||||
/deep/ .van-field__control{ | |||||
padding: 12PX; | |||||
color: #666666; | |||||
} | |||||
} | |||||
/deep/ .van-field__value{ | |||||
background-color: transparent; | |||||
border-radius: 10PX; | |||||
} | |||||
/deep/ .van-field__control{ | |||||
padding: 0PX; | |||||
color: #ffffff; | |||||
} | |||||
/deep/ .van-cell--required::before{ | |||||
left: 60PX; | |||||
} | |||||
} | |||||
.subForm2{ | |||||
padding:25px; | |||||
background:#ffffff; | |||||
width: 94%; | |||||
margin: 50PX auto 0; | |||||
border-radius: 15PX; | |||||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||||
position: relative; | |||||
padding-top: 10vw; | |||||
.topImg{ | |||||
position: absolute; | |||||
left: 50%; | |||||
width: 15vw; | |||||
transform: translate(-50%,calc(-50% - 10vw)); | |||||
border: 5PX solid #e9e9e9; | |||||
border-radius: 100%; | |||||
} | |||||
.bottomImg{ | |||||
position: absolute; | |||||
left: 50%; | |||||
top: 50%; | |||||
width: 25vw; | |||||
transform: translate(-50%,-50%); | |||||
} | |||||
} | |||||
.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; | |||||
} | |||||
} | |||||
</style> |
@@ -45,7 +45,6 @@ | |||||
this.$toast.loading({ | this.$toast.loading({ | ||||
message: "正在加载文件", | message: "正在加载文件", | ||||
forbidClick: true, | forbidClick: true, | ||||
duration: 20000, | |||||
}); | }); | ||||
loadingTask.promise.then(pdf => { | loadingTask.promise.then(pdf => { | ||||
this.numPages = pdf.numPages | this.numPages = pdf.numPages | ||||
@@ -28,7 +28,7 @@ | |||||
@load="getList" | @load="getList" | ||||
> | > | ||||
<van-swipe-cell v-for="(item,index) in applicationList" :key="index"> | <van-swipe-cell v-for="(item,index) in applicationList" :key="index"> | ||||
<van-cell :title="item.zjddm" :value="item.auditStatus" center :to="{name:'sunVillageInfoPaidExitDetail', query: {id:item.id}}" > | |||||
<van-cell :title="item.zjddm" :value="selectDictLabel(auditStatus, item.auditStatus)" center :to="{name:'sunVillageInfoPaidExitDetail', query: {id:item.id}}" > | |||||
<template #icon> | <template #icon> | ||||
<van-icon name="../../../static/images/onlineHome/icon_zjd3.png" size="30" color="#539FFD" style="margin-right: 10px;" /> | <van-icon name="../../../static/images/onlineHome/icon_zjd3.png" size="30" color="#539FFD" style="margin-right: 10px;" /> | ||||
</template> | </template> | ||||
@@ -39,13 +39,13 @@ | |||||
<template #right> | <template #right> | ||||
<van-row> | <van-row> | ||||
<van-col> | <van-col> | ||||
<van-button square text="修改" v-if="item.auditStatus=='草稿'" :to="{name:'sunVillageInfoPaidExitModify', query: {id:item.id}}" type="info" class="delete-button" /> | |||||
<van-button square text="修改" v-if="item.auditStatus=='0'" :to="{name:'sunVillageInfoPaidExitModify', query: {id:item.id}}" type="info" class="delete-button" /> | |||||
</van-col> | </van-col> | ||||
<van-col> | <van-col> | ||||
<van-button square text="提交" type="primary" v-if="item.auditStatus=='草稿'" class="delete-button" @click="goSubmit(item)" /> | |||||
<van-button square text="提交" type="primary" v-if="item.auditStatus=='0'" class="delete-button" @click="goSubmit(item)" /> | |||||
</van-col> | </van-col> | ||||
<van-col> | <van-col> | ||||
<van-button square text="删除" v-if="item.auditStatus=='草稿'" @click="deleteList(item.id,index)" type="danger" class="delete-button" /> | |||||
<van-button square text="删除" v-if="item.auditStatus=='0'" @click="deleteList(item.id,index)" type="danger" class="delete-button" /> | |||||
</van-col> | </van-col> | ||||
</van-row> | </van-row> | ||||
</template> | </template> | ||||
@@ -1,15 +1,9 @@ | |||||
<template> | <template> | ||||
<div class="app-container"> | <div class="app-container"> | ||||
<van-nav-bar | |||||
left-arrow | |||||
fixed | |||||
placeholder | |||||
@click-left="$router.back(-1)" | |||||
> | |||||
<template #title> | |||||
<p style="font-weight: bold;">添加宅基地使用权流转</p> | |||||
</template> | |||||
</van-nav-bar> | |||||
<div class="header_main"> | |||||
使用权流转 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
</div> | |||||
<p class="main_title">转出方信息</p> | <p class="main_title">转出方信息</p> | ||||
<div class="main_box"> | <div class="main_box"> | ||||
<!-- <van-field v-model="circulation.sqrxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>--> | <!-- <van-field v-model="circulation.sqrxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>--> | ||||
@@ -641,6 +635,38 @@ | |||||
<style scoped lang="scss"> | <style scoped lang="scss"> | ||||
.app-container { | .app-container { | ||||
.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; | |||||
} | |||||
} | |||||
} | } | ||||
.main_title{ | .main_title{ | ||||
font-size: 0.4rem; | font-size: 0.4rem; | ||||
@@ -1,15 +1,9 @@ | |||||
<template> | <template> | ||||
<div class="app-container"> | <div class="app-container"> | ||||
<van-nav-bar | |||||
left-arrow | |||||
fixed | |||||
placeholder | |||||
@click-left="$router.back(-1)" | |||||
> | |||||
<template #title> | |||||
<p style="font-weight: bold;">添加宅基地使用权流转</p> | |||||
</template> | |||||
</van-nav-bar> | |||||
<div class="header_main"> | |||||
使用权流转 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
</div> | |||||
<p class="main_title">转出方信息</p> | <p class="main_title">转出方信息</p> | ||||
<div class="main_box"> | <div class="main_box"> | ||||
<!-- <van-field v-model="circulation.sqrxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>--> | <!-- <van-field v-model="circulation.sqrxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>--> | ||||
@@ -670,6 +664,38 @@ | |||||
<style scoped lang="scss"> | <style scoped lang="scss"> | ||||
.app-container { | .app-container { | ||||
.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; | |||||
} | |||||
} | |||||
} | } | ||||
.main_title{ | .main_title{ | ||||
font-size: 0.4rem; | font-size: 0.4rem; | ||||
@@ -1,19 +1,10 @@ | |||||
<template> | <template> | ||||
<div class="app-container"> | <div class="app-container"> | ||||
<van-nav-bar | |||||
left-arrow | |||||
fixed | |||||
placeholder | |||||
@click-left="$router.back(-1)" | |||||
@click-right="goAdd" | |||||
> | |||||
<template #title> | |||||
<p style="font-weight: bold;">使用权流转</p> | |||||
</template> | |||||
<template #right> | |||||
<van-icon name="add" size="18" /> | |||||
</template> | |||||
</van-nav-bar> | |||||
<div class="header_main"> | |||||
使用权流转 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
<div class="add_btn" @click="goAdd"></div> | |||||
</div> | |||||
<van-list | <van-list | ||||
v-model="loading" | v-model="loading" | ||||
:finished="finished" | :finished="finished" | ||||
@@ -120,7 +111,38 @@ export default { | |||||
<style scoped lang="scss"> | <style scoped lang="scss"> | ||||
.app-container { | .app-container { | ||||
padding: 0.2rem 3%; | |||||
.header_main{ | |||||
height: 116px; | |||||
background: url('../../../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
position: fixed; | |||||
top: 0; | |||||
left: 0; | |||||
width: 100%; | |||||
font-size: 36px; | |||||
line-height: 116px; | |||||
text-align: center; | |||||
color: #fff; | |||||
position: relative; | |||||
.return_btn{ | |||||
width: 24px; | |||||
height: 43.2px; | |||||
background: url('../../../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||||
background-size: 20px 36px; | |||||
position: absolute; | |||||
left: 38px; | |||||
top: 36px; | |||||
} | |||||
.add_btn{ | |||||
width: 56.4px; | |||||
height: 40.8px; | |||||
background: url('../../../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat; | |||||
background-size: 47px 34px; | |||||
position: absolute; | |||||
right: 38px; | |||||
top: 36px; | |||||
} | |||||
} | |||||
} | } | ||||
/deep/.van-cell__title{ | /deep/.van-cell__title{ | ||||
flex: 0.7; | flex: 0.7; | ||||
@@ -1,15 +1,9 @@ | |||||
<template> | <template> | ||||
<div class="app-container"> | <div class="app-container"> | ||||
<van-nav-bar | |||||
left-arrow | |||||
fixed | |||||
placeholder | |||||
@click-left="$router.back(-1)" | |||||
> | |||||
<template #title> | |||||
<p style="font-weight: bold;">添加宅基地使用权流转</p> | |||||
</template> | |||||
</van-nav-bar> | |||||
<div class="header_main"> | |||||
使用权流转 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
</div> | |||||
<p class="main_title">转出方信息</p> | <p class="main_title">转出方信息</p> | ||||
<div class="main_box"> | <div class="main_box"> | ||||
<!-- <van-field v-model="circulation.sqrxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>--> | <!-- <van-field v-model="circulation.sqrxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>--> | ||||
@@ -670,6 +664,38 @@ | |||||
<style scoped lang="scss"> | <style scoped lang="scss"> | ||||
.app-container { | .app-container { | ||||
.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; | |||||
} | |||||
} | |||||
} | } | ||||
.main_title{ | .main_title{ | ||||
font-size: 0.4rem; | font-size: 0.4rem; | ||||
@@ -627,7 +627,7 @@ export default { | |||||
padding-bottom: 2%; | padding-bottom: 2%; | ||||
.header_main{ | .header_main{ | ||||
height: 116px; | height: 116px; | ||||
background: url('../../../../assets/images/sunVillage_info/list_head_green.png') no-repeat; | |||||
background: url('../../../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
background-size: 100% 100%; | background-size: 100% 100%; | ||||
position: fixed; | position: fixed; | ||||
top: 0; | top: 0; | ||||
@@ -791,7 +791,7 @@ export default { | |||||
padding-bottom: 2%; | padding-bottom: 2%; | ||||
.header_main{ | .header_main{ | ||||
height: 116px; | height: 116px; | ||||
background: url('../../../../assets/images/sunVillage_info/list_head_green.png') no-repeat; | |||||
background: url('../../../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
background-size: 100% 100%; | background-size: 100% 100%; | ||||
position: fixed; | position: fixed; | ||||
top: 0; | top: 0; | ||||
@@ -154,7 +154,7 @@ export default { | |||||
.app-container { | .app-container { | ||||
.header_main{ | .header_main{ | ||||
height: 116px; | height: 116px; | ||||
background: url('../../../../assets/images/sunVillage_info/list_head_green.png') no-repeat; | |||||
background: url('../../../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
background-size: 100% 100%; | background-size: 100% 100%; | ||||
position: fixed; | position: fixed; | ||||
top: 0; | top: 0; | ||||
@@ -550,7 +550,7 @@ | |||||
padding-bottom: 2%; | padding-bottom: 2%; | ||||
.header_main{ | .header_main{ | ||||
height: 116px; | height: 116px; | ||||
background: url('../../../../assets/images/sunVillage_info/list_head_green.png') no-repeat; | |||||
background: url('../../../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
background-size: 100% 100%; | background-size: 100% 100%; | ||||
position: fixed; | position: fixed; | ||||
top: 0; | top: 0; | ||||
@@ -101,7 +101,7 @@ | |||||
|| row.houseApplyStatus == '3F' // 开工通过 | || row.houseApplyStatus == '3F' // 开工通过 | ||||
|| row.houseApplyStatus == '71' // 验收草稿 | || row.houseApplyStatus == '71' // 验收草稿 | ||||
? 'modify' : 'view'; | ? 'modify' : 'view'; | ||||
this.$router.push({name:'applicationForm',query:{type:type,id:row.id}}) | |||||
this.$router.push({name:'homesteadProposerLite',query:{type:type,id:row.id}}) | |||||
}, | }, | ||||
getList(target){ | getList(target){ | ||||
let type = typeof (target); | let type = typeof (target); | ||||
@@ -208,7 +208,7 @@ | |||||
.app-container { | .app-container { | ||||
.header_main{ | .header_main{ | ||||
height: 116px; | height: 116px; | ||||
background: url('../../../../assets/images/sunVillage_info/list_head_green.png') no-repeat; | |||||
background: url('../../../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
background-size: 100% 100%; | background-size: 100% 100%; | ||||
position: fixed; | position: fixed; | ||||
top: 0; | top: 0; | ||||
@@ -1,27 +1,28 @@ | |||||
<template> | <template> | ||||
<div class="app-container"> | |||||
<!-- <van-nav-bar--> | |||||
<!-- left-arrow--> | |||||
<!-- fixed--> | |||||
<!-- placeholder--> | |||||
<!-- @click-left="$router.back(-1)"--> | |||||
<!-- @click-right="goAddLite()"--> | |||||
<!-- >--> | |||||
<!-- <template #title>--> | |||||
<!-- <p style="font-weight: bold;">宅基地申请</p>--> | |||||
<!-- </template>--> | |||||
<!-- <template #right>--> | |||||
<!-- <van-icon name="add" size="18"/>--> | |||||
<!-- </template>--> | |||||
<!-- </van-nav-bar>--> | |||||
<div class="app-container"> | |||||
<!-- <van-nav-bar--> | |||||
<!-- left-arrow--> | |||||
<!-- fixed--> | |||||
<!-- placeholder--> | |||||
<!-- @click-left="$router.back(-1)"--> | |||||
<!-- @click-right="goAddLite()"--> | |||||
<!-- >--> | |||||
<!-- <template #title>--> | |||||
<!-- <p style="font-weight: bold;">宅基地申请</p>--> | |||||
<!-- </template>--> | |||||
<!-- <template #right>--> | |||||
<!-- <van-icon name="add" size="18"/>--> | |||||
<!-- </template>--> | |||||
<!-- </van-nav-bar>--> | |||||
<div class="header_main"> | |||||
宅基地申请 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
</div> | |||||
<div class="header_main"> | |||||
宅基地申请 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
<div class="add_btn" @click="goAddLite"></div> | |||||
</div> | |||||
<van-pull-refresh v-model="refreshing" @refresh="getList()"> | |||||
<van-list | |||||
<van-pull-refresh v-model="refreshing" @refresh="getList()"> | |||||
<van-list | |||||
v-model="loading" | v-model="loading" | ||||
:finished="finished" | :finished="finished" | ||||
finished-text="没有更多了" | finished-text="没有更多了" | ||||
@@ -29,13 +30,13 @@ | |||||
> | > | ||||
<van-swipe-cell v-for="(item,index) in applicationList" :key="index"> | <van-swipe-cell v-for="(item,index) in applicationList" :key="index"> | ||||
<van-cell :title="item.ywh" center @click="viewItem(item)"> | <van-cell :title="item.ywh" center @click="viewItem(item)"> | ||||
<!-- <van-cell :title="item.ywh" :value="item.houseApplyStatusName" center @click="viewItem(item)">--> | |||||
<!-- <template #icon>--> | |||||
<!-- <van-icon name="../../../static/images/onlineHome/icon_zjd1.png" size="30" color="#539FFD" style="margin-right: 10px;" />--> | |||||
<!-- </template>--> | |||||
<!-- <template #label>--> | |||||
<!-- <p>{{item.projectName}}</p>--> | |||||
<!-- </template>--> | |||||
<!-- <van-cell :title="item.ywh" :value="item.houseApplyStatusName" center @click="viewItem(item)">--> | |||||
<!-- <template #icon>--> | |||||
<!-- <van-icon name="../../../static/images/onlineHome/icon_zjd1.png" size="30" color="#539FFD" style="margin-right: 10px;" />--> | |||||
<!-- </template>--> | |||||
<!-- <template #label>--> | |||||
<!-- <p>{{item.projectName}}</p>--> | |||||
<!-- </template>--> | |||||
<template #icon> | <template #icon> | ||||
<van-icon name="../../../static/images/onlineHome/icon_zjd1.png" size="30" color="#539FFD" style="margin-right: 10px;" /> | <van-icon name="../../../static/images/onlineHome/icon_zjd1.png" size="30" color="#539FFD" style="margin-right: 10px;" /> | ||||
</template> | </template> | ||||
@@ -48,147 +49,151 @@ | |||||
</van-cell> | </van-cell> | ||||
<template #right> | <template #right> | ||||
<van-row> | <van-row> | ||||
<van-col> | <van-col> | ||||
<van-button square text="许可证预览" v-if="parseInt(item.homeApplyStatus, 16) >= 0x31" type="info" :to="{name:'homeXkzPanel', query: {id:item.id, type: 'modify'}}" class="delete-button" /> | |||||
<van-button square text="提交" type="primary" v-if="item.homeApplyStatus=='11' || item.homeApplyStatus=='31' || item.homeApplyStatus=='71'" @click="submitApplyProposer(item)" class="delete-button" /> | |||||
</van-col> | |||||
<van-col> | |||||
<van-button square text="修改" type="info" v-if="item.homeApplyStatus=='11' || item.homeApplyStatus=='31' || item.homeApplyStatus=='71'" :to="{name:'homesteadProposerLite', query: {id:item.id, type: 'modify'}}" class="delete-button" /> | |||||
</van-col> | </van-col> | ||||
<van-col> | <van-col> | ||||
<van-button square text="批准书预览" v-if="parseInt(item.homeApplyStatus, 16) >= 0x31" type="info" :to="{name:'homePzsPanel', query: {id:item.id, type: 'modify'}}" class="delete-button" /> | |||||
<van-button square text="删除" type="danger" v-if="item.homeApplyStatus=='11'" @click="deleteList(item.id,index)" class="delete-button" /> | |||||
</van-col> | </van-col> | ||||
</van-row> | </van-row> | ||||
</template> | </template> | ||||
</van-swipe-cell> | </van-swipe-cell> | ||||
</van-list> | </van-list> | ||||
</van-pull-refresh> | |||||
</div> | |||||
</van-pull-refresh> | |||||
</div> | |||||
</template> | </template> | ||||
<script> | <script> | ||||
import { getList , removeList } from "@/api/sunVillage_info/homestead/application"; | |||||
import { customSubmitWLHT, submitStartWLHT, submitEndWLHT,} from "@/api/sunVillage_info/homestead/application"; | |||||
import {updateOpretion} from "@/api/sunVillage_info/homestead/application"; | |||||
import Cookies from "js-cookie"; | |||||
export default { | |||||
name: "applicationList", | |||||
data() { | |||||
return { | |||||
applicationList:[], | |||||
houseApplyStatus:[], | |||||
loading: false, | |||||
finished: false, | |||||
refreshing: false, | |||||
import { getList , removeList } from "@/api/sunVillage_info/homestead/application"; | |||||
import { customSubmitWLHT, submitStartWLHT, submitEndWLHT,} from "@/api/sunVillage_info/homestead/application"; | |||||
import {updateOpretion} from "@/api/sunVillage_info/homestead/application"; | |||||
import Cookies from "js-cookie"; | |||||
export default { | |||||
name: "applicationList", | |||||
data() { | |||||
return { | |||||
applicationList:[], | |||||
houseApplyStatus:[], | |||||
loading: false, | |||||
finished: false, | |||||
refreshing: false, | |||||
deptId:null, | |||||
idcard:null, | |||||
total: 0, | |||||
queryParams:{ | |||||
pageNum:1, | |||||
pageSize:10, | |||||
deptId:null, | deptId:null, | ||||
idcard:null, | |||||
total: 0, | |||||
queryParams:{ | |||||
pageNum:1, | |||||
pageSize:10, | |||||
deptId:null, | |||||
orderByColumn:'createTime', | |||||
isAsc:'desc' | |||||
} | |||||
}; | |||||
orderByColumn:'createTime', | |||||
isAsc:'desc' | |||||
} | |||||
}; | |||||
}, | |||||
created() { | |||||
this.houseGetDicts("home_stage_status").then((response) => { | |||||
this.houseApplyStatus = response.data; | |||||
}); | |||||
this.deptId = Cookies.get('deptId') | |||||
this.idcard = Cookies.get('idcard') | |||||
this.$set(this.queryParams, "deptId", this.deptId); | |||||
this.$set(this.queryParams, "sqhhzsfzh", this.idcard); | |||||
this.getList(); | |||||
}, | |||||
methods: { | |||||
goAdd(){ | |||||
window.location = 'applicationAdd'; | |||||
}, | }, | ||||
created() { | |||||
this.houseGetDicts("home_stage_status").then((response) => { | |||||
this.houseApplyStatus = response.data; | |||||
}); | |||||
this.deptId = this.$store.state.user.loginDeptId; | |||||
this.$set(this.queryParams, "deptId", this.deptId); | |||||
this.getList(); | |||||
goAddLite(){ | |||||
//window.location = 'applicationAdd' | |||||
this.$router.push({name:'homesteadProposerLite',query:{type:"add"}}) | |||||
}, | }, | ||||
methods: { | |||||
goAdd(){ | |||||
window.location = 'applicationAdd'; | |||||
}, | |||||
goAddLite(){ | |||||
//window.location = 'applicationAdd' | |||||
this.$router.push({name:'sunVillageInfoProposerLite',query:{type:"add"}}) | |||||
}, | |||||
viewItem(row){ | |||||
let type = row.houseApplyStatus == '11' // 申请草稿 | |||||
viewItem(row){ | |||||
let type = row.houseApplyStatus == '11' // 申请草稿 | |||||
|| row.houseApplyStatus == '1F' // 申请通过 | || row.houseApplyStatus == '1F' // 申请通过 | ||||
|| row.houseApplyStatus == '31' // 开工草稿 | || row.houseApplyStatus == '31' // 开工草稿 | ||||
|| row.houseApplyStatus == '3F' // 开工通过 | || row.houseApplyStatus == '3F' // 开工通过 | ||||
|| row.houseApplyStatus == '71' // 验收草稿 | || row.houseApplyStatus == '71' // 验收草稿 | ||||
? 'modify' : 'view'; | ? 'modify' : 'view'; | ||||
this.$router.push({name:'applicationForm',query:{type:type,id:row.id}}) | |||||
}, | |||||
getList(target){ | |||||
let type = typeof (target); | |||||
console.log(type, target); | |||||
if(target && this.finished) | |||||
return; | |||||
if (target === 0) { | |||||
this.refreshing = true; | |||||
this.$router.push({name:'homesteadProposerLite',query:{type:type,id:row.id}}) | |||||
}, | |||||
getList(target){ | |||||
let type = typeof (target); | |||||
console.log(type, target); | |||||
if(target && this.finished) | |||||
return; | |||||
if (target === 0) { | |||||
this.refreshing = true; | |||||
this.finished = true; | |||||
this.total = 0; | |||||
this.queryParams.pageNum = 1; | |||||
this.applicationList = []; | |||||
} | |||||
else if (type === 'number') | |||||
this.queryParams.pageNum = target; | |||||
else if (type === 'string') { | |||||
this.queryParams.pageNum = eval(this.queryParams.pageNum + target) | |||||
} | |||||
else | |||||
{ | |||||
this.refreshing = true; | |||||
this.finished = true; | |||||
this.total = 0; | |||||
this.queryParams.pageNum = 1; | |||||
this.applicationList = [] | |||||
} | |||||
getList(this.queryParams).then(response => { | |||||
console.log(response) | |||||
if (response.rows.length === 0) { | |||||
this.finished = true; | this.finished = true; | ||||
this.total = 0; | |||||
this.queryParams.pageNum = 1; | |||||
this.applicationList = []; | |||||
return; | |||||
} | } | ||||
else if (type === 'number') | |||||
this.queryParams.pageNum = target; | |||||
else if (type === 'string') { | |||||
this.queryParams.pageNum = eval(this.queryParams.pageNum + target) | |||||
for (var i = 0; i < response.rows.length; i++) { | |||||
/*var houseApplyStatusName = this.selectDictLabel(this.houseApplyStatus, response.rows[i].houseApplyStatus); | |||||
// if(response.rows[i].auditStatus !== '0' && response.rows[i].auditStatus === '2'){ | |||||
// houseApplyStatusName = houseApplyStatusName+ ' ● 已驳回'; | |||||
// } | |||||
response.rows[i].houseApplyStatusName = houseApplyStatusName;*/ | |||||
this.applicationList.push(response.rows[i]); | |||||
} | } | ||||
else | |||||
{ | |||||
this.refreshing = true; | |||||
this.finished = true; | |||||
this.total = 0; | |||||
this.queryParams.pageNum = 1; | |||||
this.applicationList = [] | |||||
} | |||||
getList(this.queryParams).then(response => { | |||||
console.log(response) | |||||
if (response.rows.length === 0) { | |||||
this.finished = true; | |||||
return; | |||||
} | |||||
for (var i = 0; i < response.rows.length; i++) { | |||||
/*var houseApplyStatusName = this.selectDictLabel(this.houseApplyStatus, response.rows[i].houseApplyStatus); | |||||
// if(response.rows[i].auditStatus !== '0' && response.rows[i].auditStatus === '2'){ | |||||
// houseApplyStatusName = houseApplyStatusName+ ' ● 已驳回'; | |||||
// } | |||||
response.rows[i].houseApplyStatusName = houseApplyStatusName;*/ | |||||
this.applicationList.push(response.rows[i]); | |||||
this.total += response.rows.length; | |||||
this.finished = this.total >= response.total; | |||||
}).finally(() => { | |||||
this.loading = false; | |||||
this.refreshing = false; | |||||
}); | |||||
}, | |||||
formatDict(dict, value) { | |||||
return this.selectDictLabel(dict, value); | |||||
}, | |||||
deleteList(id,index){ | |||||
this.$dialog.confirm({ | |||||
message: '您确认删除申请草稿?', | |||||
}) | |||||
.then(() => { | |||||
// on confirm | |||||
this.applicationList.splice(index,1) | |||||
removeList(id).then(res => { | |||||
if(res.code = 200){ | |||||
this.$toast.success('删除成功'); | |||||
} | } | ||||
this.total += response.rows.length; | |||||
this.finished = this.total >= response.total; | |||||
}).finally(() => { | |||||
this.loading = false; | |||||
this.refreshing = false; | |||||
}); | }); | ||||
}, | |||||
formatDict(dict, value) { | |||||
return this.selectDictLabel(dict, value); | |||||
}, | |||||
deleteList(id,index){ | |||||
this.$dialog.confirm({ | |||||
message: '您确认删除申请草稿?', | |||||
}) | |||||
.then(() => { | |||||
// on confirm | |||||
this.applicationList.splice(index,1) | |||||
removeList(id).then(res => { | |||||
if(res.code = 200){ | |||||
this.$toast.success('删除成功'); | |||||
} | |||||
}); | |||||
}) | |||||
.catch(() => { | |||||
// on cancel | |||||
}); | |||||
}, | |||||
refresh() { | |||||
this.getList(); return; | |||||
this.applicationList = []; | |||||
this.queryParams.pageNum = 1; | |||||
this.refreshing = true; | |||||
this.finished = false; | |||||
}, | |||||
submitApplyProposer(item) { | |||||
this.$router.push({name:'sunVillageInfoProposerLite',query:{type:"edit",id:item.id}}) | |||||
}) | |||||
.catch(() => { | |||||
// on cancel | |||||
}); | |||||
}, | |||||
refresh() { | |||||
this.getList(); return; | |||||
this.applicationList = []; | |||||
this.queryParams.pageNum = 1; | |||||
this.refreshing = true; | |||||
this.finished = false; | |||||
}, | |||||
submitApplyProposer(item) { | |||||
this.$router.push({name:'homesteadProposerLite',query:{type:"edit",id:item.id}}) | |||||
// if(item.homeApplyStatus === '11'){ | // if(item.homeApplyStatus === '11'){ | ||||
// customSubmitWLHT(item.id).then((resp) => { | // customSubmitWLHT(item.id).then((resp) => { | ||||
// this.$toast.success("提交成功"); | // this.$toast.success("提交成功"); | ||||
@@ -211,45 +216,45 @@ | |||||
// this.$toast.fail("提交失败!"); | // this.$toast.fail("提交失败!"); | ||||
// }); | // }); | ||||
// } | // } | ||||
}, | |||||
}, | }, | ||||
} | |||||
}, | |||||
} | |||||
</script> | </script> | ||||
<style scoped lang="scss"> | <style scoped lang="scss"> | ||||
.app-container { | .app-container { | ||||
.header_main{ | |||||
height: 116px; | |||||
background: url('../../../../assets/images/sunVillage_info/list_head_green.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; | |||||
} | |||||
} | |||||
.header_main{ | |||||
height: 116px; | |||||
background: url('../../../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
position: fixed; | |||||
top: 0; | |||||
left: 0; | |||||
width: 100%; | |||||
font-size: 36px; | |||||
line-height: 116px; | |||||
text-align: center; | |||||
color: #fff; | |||||
position: relative; | |||||
.return_btn{ | |||||
width: 24px; | |||||
height: 43.2px; | |||||
background: url('../../../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||||
background-size: 20px 36px; | |||||
position: absolute; | |||||
left: 38px; | |||||
top: 36px; | |||||
} | |||||
.add_btn{ | |||||
width: 56.4px; | |||||
height: 40.8px; | |||||
background: url('../../../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat; | |||||
background-size: 47px 34px; | |||||
position: absolute; | |||||
right: 38px; | |||||
top: 36px; | |||||
} | |||||
} | |||||
} | } | ||||
/deep/.van-list{ | /deep/.van-list{ | ||||
padding: 0.2rem 3%; | padding: 0.2rem 3%; | ||||
@@ -0,0 +1,726 @@ | |||||
<template> | |||||
<div class="app-container"> | |||||
<!-- <van-nav-bar--> | |||||
<!-- left-arrow--> | |||||
<!-- fixed--> | |||||
<!-- placeholder--> | |||||
<!-- @click-left="$router.back(-1)"--> | |||||
<!-- >--> | |||||
<!-- <template #title>--> | |||||
<!-- <p style="font-weight: bold;">添加有偿退出</p>--> | |||||
<!-- </template>--> | |||||
<!-- </van-nav-bar>--> | |||||
<div class="header_main"> | |||||
添加有偿退出 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
<!-- <div class="add_btn" @click="goAdd"></div>--> | |||||
</div> | |||||
<p class="main_title">申请人基本信息</p> | |||||
<van-form ref="_Form"> | |||||
<div class="main_box"> | |||||
<!-- <van-field v-model="circulation.sqrxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>--> | |||||
<van-field v-model="circulation.sqrxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required @input="remoteTransfereeMethod" /> | |||||
<div id="dropList" v-show="showDropList" style="width: 92vw; position: absolute; z-index: 99; left: 50%; margin-left: -46vw; border: 1px solid #E2E0E0;" > | |||||
<van-cell id="vanCell" v-for="(item, index) in getObligeeOptions" :key="index" @click="shyqrdmxmChange(item)" style="position: relative; z-index: 999;"> | |||||
{{item.sqrxm}} | |||||
</van-cell> | |||||
</div> | |||||
<!-- <van-field--> | |||||
<!-- readonly--> | |||||
<!-- clickable--> | |||||
<!-- v-model="circulation.zjddm"--> | |||||
<!-- label="宅基地代码"--> | |||||
<!-- placeholder="请选择"--> | |||||
<!-- @click="remoteProposerMethod"--> | |||||
<!-- input-align="right"--> | |||||
<!-- right-icon="arrow-down" :rules="[{ required: true }]" required--> | |||||
<!-- />--> | |||||
<!-- <van-popup v-model="showzjddm" position="bottom">--> | |||||
<!-- <van-picker--> | |||||
<!-- show-toolbar--> | |||||
<!-- :columns="zjdDictionaries"--> | |||||
<!-- value-key="zjddm"--> | |||||
<!-- @confirm="onConfirmZjddm"--> | |||||
<!-- @cancel="showzjddm = false"--> | |||||
<!-- />--> | |||||
<!-- </van-popup>--> | |||||
<van-field | |||||
v-model="circulation.zjddm" | |||||
label="宅基地代码" | |||||
input-align="right" | |||||
:rules="[{ required: true }]" | |||||
required | |||||
> | |||||
<template #button> | |||||
<van-icon name="../../../static/images/22.png" color="#539FFD" size="20" @click="mapLook"/> | |||||
</template> | |||||
</van-field> | |||||
<van-field | |||||
readonly | |||||
clickable | |||||
v-model="xb" | |||||
label="性别" | |||||
placeholder="请选择" | |||||
@click="showxb = true" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" :rules="[{ required: true }]" required | |||||
/> | |||||
<van-popup v-model="showxb" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="xbDictionaries" | |||||
@confirm="onConfirmXb" | |||||
@cancel="showxb = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="circulation.sqrzjhm" label="申请人证件号码" placeholder="申请人证件号码" input-align="right" label-width="auto" :rules="[{ required: true }]" required/> | |||||
<van-field v-model="circulation.lxdh" label="联系电话" placeholder="联系电话" input-align="right" label-width="auto" :rules="[{ required: true }]" required/> | |||||
<field-select | |||||
v-model="circulation.gyqk" | |||||
label="共有情况" | |||||
value-key="dictLabel" | |||||
data-key="dictValue" | |||||
placeholder="选择共有情况" | |||||
:rules="[{ required: true }]" | |||||
required | |||||
remote-url="/open/zdzh/list/house_yes_no" | |||||
:on-remote-response="'data'" | |||||
/> | |||||
<van-field v-model="circulation.hkszd" label="户口所在地" placeholder="户口所在地" input-align="right" label-width="auto" :rules="[{ required: true }]" required/> | |||||
</div> | |||||
<p class="main_title">拟申请退出宅基地</p> | |||||
<van-field v-model="circulation.tcmj" label="面积(㎡)" placeholder="请输入面积㎡" input-align="right" label-width="auto" :rules="[{ required: true }]" required type="number"/> | |||||
<field-select | |||||
v-model="circulation.xz" | |||||
label="现状" | |||||
value-key="dictLabel" | |||||
data-key="dictValue" | |||||
placeholder="选择现状" | |||||
:rules="[{ required: true }]" | |||||
required | |||||
remote-url="/open/zdzh/list/dsxz" | |||||
:on-remote-response="'data'" | |||||
/> | |||||
<van-field v-model="circulation.zjdszd" label="东至" placeholder="东至" input-align="right" label-width="auto" :rules="[{ required: true }]" required/> | |||||
<van-field v-model="circulation.zjdszn" label="南至" placeholder="南至" input-align="right" label-width="auto" :rules="[{ required: true }]" required/> | |||||
<van-field v-model="circulation.zjdszx" label="西至" placeholder="西至" input-align="right" label-width="auto" :rules="[{ required: true }]" required/> | |||||
<van-field v-model="circulation.zjdszb" label="北至" placeholder="北至" input-align="right" label-width="auto" :rules="[{ required: true }]" required/> | |||||
<field-select | |||||
v-model="circulation.dldm" | |||||
label="地类" | |||||
value-key="dictLabel" | |||||
data-key="dictValue" | |||||
placeholder="选择现状" | |||||
:rules="[{ required: true }]" | |||||
required | |||||
remote-url="/open/zdzh/list/geographic_type" | |||||
:on-remote-response="'data'" | |||||
/> | |||||
<p class="main_title">退出宅基地情况</p> | |||||
<van-field v-model="circulation.tcmj" label="退出面积(㎡)" placeholder="请输入退出面积㎡" input-align="right" label-width="auto" :rules="[{ required: true }]" required type="number"/> | |||||
<van-field v-model="circulation.jzmj" label="建筑面积(㎡)" placeholder="请输入建筑面积㎡" input-align="right" label-width="auto" :rules="[{ required: true }]" required type="number"/> | |||||
<div class="main_box"> | |||||
<van-field | |||||
readonly | |||||
clickable | |||||
v-model="tcqllx" | |||||
label="退出权利类型" | |||||
placeholder="请选择退出权利类型" | |||||
@click="showtcqllx = true" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" :rules="[{ required: true }]" required | |||||
/> | |||||
<van-popup v-model="showtcqllx" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="tcqllxDictionaries" | |||||
@confirm="onConfirmTcqllx" | |||||
@cancel="showtcqllx = false" | |||||
/> | |||||
</van-popup> | |||||
<!--<van-field | |||||
readonly | |||||
clickable | |||||
v-model="tclx" | |||||
label="退出类型" | |||||
placeholder="请选择退出类型" | |||||
@click="showtclx = true" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" :rules="[{ required: true }]" required | |||||
/> | |||||
<van-popup v-model="showtclx" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="tclxDictionaries" | |||||
@confirm="onConfirmTclx" | |||||
@cancel="showtclx = false" | |||||
/> | |||||
</van-popup>--> | |||||
<van-field | |||||
readonly | |||||
clickable | |||||
v-model="tcfs" | |||||
label="退出方式" | |||||
placeholder="请选择退出方式" | |||||
@click="showtcfs = true" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" :rules="[{ required: true }]" required | |||||
/> | |||||
<van-popup v-model="showtcfs" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="tcfsDictionaries" | |||||
@confirm="onConfirmTcfs" | |||||
@cancel="showtcfs = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="circulation.tcqszsh" label="权属证书号" placeholder="请输入权属证书号" input-align="right" label-width="auto" /> | |||||
</div> | |||||
<p class="main_title">现居住情况</p> | |||||
<van-field v-model="circulation.xjzmj" label="建筑面积(㎡)" placeholder="请输入建筑面积㎡" input-align="right" label-width="auto" :rules="[{ required: true }]" required type="number"/> | |||||
<van-field v-model="circulation.xqszsh" label="权属证书号" placeholder="请输入权属证书号" input-align="right" label-width="auto" /> | |||||
<van-field v-model="circulation.xjzdd" label="居住地点" placeholder="请输入居住地点" input-align="right" label-width="auto" /> | |||||
<p class="main_title">补偿信息</p> | |||||
<van-field v-model="circulation.bcje" label="宅基地补偿" placeholder="宅基地补偿" input-align="right" label-width="auto" type="number"/> | |||||
<van-field v-model="circulation.dmfzwbc" label="地面附着物补偿" placeholder="地面附着物补偿" input-align="right" label-width="auto" type="number"/> | |||||
<field-select | |||||
v-model="circulation.yctcfs" | |||||
label="退出类型" | |||||
value-key="dictLabel" | |||||
data-key="dictValue" | |||||
placeholder="选择退出类型" | |||||
remote-url="/open/zdzh/list/yctcfs" | |||||
:on-remote-response="'data'" | |||||
/> | |||||
<field-select | |||||
v-model="circulation.bcfs" | |||||
label="补偿方式" | |||||
value-key="dictLabel" | |||||
data-key="dictValue" | |||||
placeholder="选择退出类型" | |||||
remote-url="/open/zdzh/list/bcfs" | |||||
:on-remote-response="'data'" | |||||
/> | |||||
<field-date-picker | |||||
v-model="circulation.bcsj" | |||||
label="补偿时间" | |||||
placeholder="选择日期" | |||||
formatter="yyyy-MM-dd" | |||||
/> | |||||
<p class="main_title">其他</p> | |||||
<van-field v-model="circulation.sqly" label="申请理由" placeholder="请输入申请理由" input-align="right" label-width="auto"/> | |||||
<field-date-picker | |||||
v-model="circulation.sqrq" | |||||
label="申请日期" | |||||
placeholder="选择日期" | |||||
:rules="[{ required: true }]" | |||||
formatter="yyyy-MM-dd" | |||||
required | |||||
/> | |||||
<van-field v-model="circulation.jbrxm" label="经办人姓名" placeholder="请输入经办人姓名" input-align="right" label-width="auto"/> | |||||
<field-date-picker | |||||
v-model="circulation.pzrq" | |||||
label="批准日期" | |||||
placeholder="选择日期" | |||||
:rules="[{ required: true }]" | |||||
formatter="yyyy-MM-dd" | |||||
required | |||||
/> | |||||
<field-date-picker | |||||
v-model="circulation.barq" | |||||
label="备案日期" | |||||
placeholder="选择日期" | |||||
:rules="[{ required: true }]" | |||||
formatter="yyyy-MM-dd" | |||||
required | |||||
/> | |||||
<van-dialog v-model="mapShow" show-cancel-button> | |||||
<MapGisObtainTc ref="zjdProductResh" :shqrxm="circulation.sqrxm" :landStatus="landStatus" :deptId="sysFarmer.deptId" @closeMoule="closeMoule"></MapGisObtainTc> | |||||
</van-dialog> | |||||
<!-- 3组附件 --> | |||||
<van-popup | |||||
v-model="attachmentVisible" | |||||
closeable | |||||
position="top" | |||||
:style="{ height: '61.8%' }" | |||||
:close-on-click-overlay="proposerStatus == 1" | |||||
:lazy-render="false" | |||||
> | |||||
<van-tabs type="card" style="padding-top: 1.35rem;" color="#1D6FE9" :lazy-render="false" v-model="attachmentActive" ref="attachmentDialog"> | |||||
<van-tab title="退出附件" key="0"> | |||||
<home-apply-upload-comp | |||||
:business-type="houseApplyUploadComp.businessType" | |||||
:house-apply-status="houseApplyUploadComp.homeApplyStatus" | |||||
:process-key="houseApplyUploadComp.processKey" | |||||
:proposer-id="houseApplyUploadComp.proposerId" | |||||
:table-name="houseApplyUploadComp.tableName" | |||||
:readonly="houseApplyUploadComp.readonly" | |||||
:userName="sysFarmer.memberName" | |||||
:full="houseApplyUploadComp.full" | |||||
@uploadFinished="onUploadFinished" | |||||
> | |||||
</home-apply-upload-comp> | |||||
</van-tab> | |||||
</van-tabs> | |||||
</van-popup> | |||||
</van-form> | |||||
<van-goods-action style="z-index: 999;"> | |||||
<van-goods-action-icon icon="label-o" text="附件" @click="openAttachment" color="#1D6FE9" /> | |||||
<van-goods-action-button type="info" text="保存" @click="goSubmit(false)" /> | |||||
<van-goods-action-button type="info" text="提交" @click="goSubmit(true)"/> | |||||
</van-goods-action> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import { getShyqrs,dyAdd,zyyctcApply,getByLyZjddm,listHomesteadnmfw} from "@/api/sunVillage_info/homestead/paidExit"; | |||||
import HomeApplyUploadComp from "@/components/home/HomeApplyUploadComp"; | |||||
import FieldSelect from "@/components/form/FieldSelect"; | |||||
import FieldDatePicker from "@/components/form/FieldDatePicker"; | |||||
import {formatDate} from "element-ui/src/utils/date-util.js"; | |||||
import { } from "@/api/onlineHome/homestead/paidExit"; | |||||
import {Notify} from "vant"; | |||||
import MapGisObtainTc from "@/components/Map/MapGisObtainTc"; | |||||
import Cookies from "js-cookie"; | |||||
const PROPOSER_VIEW = 1; | |||||
// 工作流名称 | |||||
const PROPOSER_STAGE_BASE_APPLY_ACTIVITY = 'home_usetc'; | |||||
// 附件表名 | |||||
const PROPOSER_STAGE_BASE_APPLY_TABLE = 't_homeuse_zyyctc'; | |||||
// 其他 | |||||
const PROPOSER_MODULE = 'home'; | |||||
export default { | |||||
name: "paidExitAdd", | |||||
components: { MapGisObtainTc,FieldSelect,FieldDatePicker,HomeApplyUploadComp }, | |||||
data() { | |||||
return { | |||||
tcqllxDictionaries:[],//退出权利类型 | |||||
tclxDictionaries:[],//退出类型 | |||||
tcfsDictionaries:[],//退出方式 | |||||
yctcfsDictionaries:[],//有偿退出方式 | |||||
xbDictionaries:[],//申请人证件类型 | |||||
bcfsDictionaries:[],//补偿方式 | |||||
zjdDictionaries:[],//宅基地代码 | |||||
getObligeeOptions:[],//下拉框列表 | |||||
sysFarmer:{deptId:this.$store.state.user.loginDeptId,memberName:this.$store.state.user.nickName}, | |||||
tcqllx:'整体退出', | |||||
tclx:'有偿退出', | |||||
tcfs:'使用权', | |||||
yctcfs:'暂时退出', | |||||
xb:'男', | |||||
bcfs:'', | |||||
zjddm:'', | |||||
landStatus:"1", | |||||
showtcqllx: false, | |||||
showtclx: false, | |||||
showtcfs: false, | |||||
showyctcfs: false, | |||||
showxb: false, | |||||
showbcfs: false, | |||||
showzjddm: false, | |||||
showDropList: false,//是否显示下拉框 | |||||
attachmentVisible:false, | |||||
active: 0, | |||||
// 表单意图 | |||||
proposerStatus: PROPOSER_VIEW, | |||||
// 家庭成员tab | |||||
familyMembersActive: 0, | |||||
circulation:{ | |||||
// 申请类型 1-宅基地退出 | |||||
sqlx: '1', | |||||
xb:"1", | |||||
gyqk:"1", | |||||
xz:"1", | |||||
tcfs:"01", | |||||
jzmj:0.00, | |||||
tcqllx:"01", | |||||
xjzmj:0.00, | |||||
dldm:"10", | |||||
// 退出类型 01-有偿退出 02-无偿退出 | |||||
tclx: '01', | |||||
}, | |||||
// 当前附件tab | |||||
attachmentActive: 0, | |||||
// 申请附件树 | |||||
houseApplyUploadComp: { | |||||
businessType: PROPOSER_MODULE, | |||||
proposerId: -1, | |||||
homeApplyStatus: "11", | |||||
processKey: PROPOSER_STAGE_BASE_APPLY_ACTIVITY, | |||||
tableName: PROPOSER_STAGE_BASE_APPLY_TABLE, | |||||
attachmentList: [], | |||||
readonly: false, | |||||
full: false, | |||||
}, | |||||
mapShow: false, | |||||
}; | |||||
}, | |||||
created() { | |||||
this.getDictionaries(); | |||||
}, | |||||
methods: { | |||||
getDictionaries(){ | |||||
//退出权利类型 | |||||
this.houseGetDicts("tcqllx").then((res) => { | |||||
for(var i = 0 ; i < res.data.length ; i++){ | |||||
this.tcqllxDictionaries.push({text:res.data[i].dictLabel,value:res.data[i].dictValue}); | |||||
} | |||||
}); | |||||
//退出类型 | |||||
/*this.houseGetDicts("tclx").then((res) => { | |||||
for(var i = 0 ; i < res.data.length ; i++){ | |||||
this.tclxDictionaries.push({text:res.data[i].dictLabel,value:res.data[i].dictValue}); | |||||
} | |||||
});*/ | |||||
//退出方式 | |||||
this.houseGetDicts("tcfs").then((res) => { | |||||
for(var i = 0 ; i < res.data.length ; i++){ | |||||
this.tcfsDictionaries.push({text:res.data[i].dictLabel,value:res.data[i].dictValue}); | |||||
} | |||||
}); | |||||
//申请人证件类型 | |||||
this.houseGetDicts("sys_user_sex").then((res) => { | |||||
for(var i = 0 ; i < res.data.length ; i++){ | |||||
this.xbDictionaries.push({text:res.data[i].dictLabel,value:res.data[i].dictValue}); | |||||
} | |||||
}); | |||||
//补偿方式 | |||||
this.houseGetDicts("bcfs").then((res) => { | |||||
for(var i = 0 ; i < res.data.length ; i++){ | |||||
this.bcfsDictionaries.push({text:res.data[i].dictLabel,value:res.data[i].dictValue}); | |||||
} | |||||
}); | |||||
this.$set(this.circulation, 'yctcfs', "1"); | |||||
this.$set(this.circulation, 'bcfs', "01"); | |||||
this.$set(this.circulation, 'bcje', 0.00); | |||||
this.$set(this.circulation, 'dmfzwbc', 0.00); | |||||
//宅基地代码 | |||||
/*zjdzd().then(zjdRes => { | |||||
for( let i = 0 ; i < zjdRes.rows.length ; i++){ | |||||
this.zjdDictionaries.push(zjdRes.rows[i].zjddm); | |||||
} | |||||
if(this.zjdDictionaries.length > 0) | |||||
this.onConfirmZjddm(this.zjdDictionaries[0]); | |||||
});*/ | |||||
// getExitProposerDetail().then(res => { | |||||
// if (res.data) { | |||||
// let data = res.data; | |||||
// this.$set(this.circulation, 'sqrxm', data.shyqrdbxm); | |||||
// this.$set(this.circulation, 'sqrzjhm', data.shyqrdbzjhm); | |||||
// this.$set(this.circulation, 'sqrzjlx', data.shyqrdbzjlx); | |||||
// if(data.shyqrdbzjlx) { | |||||
// let val = this.zjlxDictionaries.find((x) => x.value == data.shyqrdbzjlx); | |||||
// if(val) | |||||
// this.zjlx = val.text; | |||||
// } | |||||
// } | |||||
// }); | |||||
}, | |||||
/*onConfirmZjddm(data){ | |||||
console.log(data) | |||||
this.circulation.zjddm = data; | |||||
this.showzjddm = false; | |||||
getByZjddm({zjddm: data,}).then(qlrRes => { | |||||
let data = qlrRes.data; | |||||
console.log(data) | |||||
this.$set(this.circulation, 'sqrxm', data.shyqrdbxm); | |||||
this.$set(this.circulation, 'sqrzjhm', data.shyqrdbzjhm); | |||||
this.$set(this.circulation, 'sqrzjlx', data.shyqrdbzjlx); | |||||
if(data.shyqrdbzjlx) | |||||
{ | |||||
let val = this.zjlxDictionaries.find((x) => x.value == data.shyqrdbzjlx); | |||||
if(val) | |||||
this.zjlx = val.text; | |||||
} | |||||
this.$forceUpdate(); | |||||
}); | |||||
},*/ | |||||
// 初次申请草稿的附件上传 | |||||
onUploadFinished(fileIdList) { | |||||
this.$set(this.circulation, "fileList", fileIdList); | |||||
}, | |||||
onConfirmZjddm(data){ | |||||
console.log(data); | |||||
this.showzjddm = false; | |||||
if (data) { | |||||
this.$set(this.circulation, 'zjddm', data.zjddm); | |||||
this.$set(this.circulation, 'sqrzjhm', data.shyqrdbzjhm); | |||||
this.$set(this.circulation, 'sqrzjlx', data.shyqrdbzjlx); | |||||
if(data.shyqrdbzjlx) | |||||
{ | |||||
let val = this.zjlxDictionaries.find((x) => x.value == data.shyqrdbzjlx); | |||||
if(val) | |||||
this.zjlx = val.text; | |||||
} | |||||
} | |||||
// this.$forceUpdate(); | |||||
}, | |||||
onConfirmXb(data){ | |||||
this.xb = data.text; | |||||
this.circulation.xb = data.value; | |||||
this.showxb = false; | |||||
}, | |||||
onConfirmTcqllx(data){ | |||||
this.tcqllx = data.text; | |||||
this.circulation.tcqllx = data.value; | |||||
this.showtcqllx = false; | |||||
}, | |||||
/*onConfirmTclx(data){ | |||||
this.tclx = data.text; | |||||
this.circulation.tclx = data.value; | |||||
this.showtclx = false; | |||||
},*/ | |||||
onConfirmTcfs(data){ | |||||
this.tcfs = data.text; | |||||
this.circulation.tcfs = data.value; | |||||
this.showtcfs = false; | |||||
}, | |||||
onConfirmYctcfs(data){ | |||||
this.yctcfs = data.text; | |||||
this.circulation.yctcfs = data.value; | |||||
this.showyctcfs = false; | |||||
}, | |||||
onConfirmBcfs(data){ | |||||
this.bcfs = data.text; | |||||
this.circulation.bcfs = data.value; | |||||
this.showbcfs = false; | |||||
}, | |||||
goSubmit(submit){ | |||||
console.log(this.circulation); | |||||
this.$refs._Form.validate().then(() => { | |||||
// 设置初始状态为草稿,0 代表草稿 | |||||
this.$set(this.circulation, "auditStatus", '0'); | |||||
dyAdd(this.circulation).then(response => { | |||||
if(response.code = 200){ | |||||
if(submit) | |||||
{ | |||||
zyyctcApply(response.data).then((resp) => { | |||||
this.$toast.success('提交成功'); | |||||
this.back(); | |||||
}); | |||||
} | |||||
else { | |||||
this.$toast.success('保存成功'); | |||||
this.back(); | |||||
} | |||||
} | |||||
}) | |||||
}).catch((e) => { | |||||
Notify({ type: 'danger', message: '请填写完整的表单项' }); | |||||
}); | |||||
}, | |||||
back() { | |||||
setTimeout(() => this.$router.back(-1), 1000) | |||||
}, | |||||
remoteProposerMethod() { | |||||
this.showzjddm = true; | |||||
this.zjdDictionaries = []; | |||||
if (this.circulation.sqrxm) { | |||||
getShyqrs({shyqrdbxm:this.circulation.sqrxm}).then(response => { | |||||
this.zjdDictionaries = response.data.map(item => { | |||||
return { | |||||
zjddm: item.zjddm, | |||||
shyqrdbxm: item.shyqrdbxm, | |||||
shyqrdbzjlx: item.shyqrdbzjlx, | |||||
shyqrdbzjhm: item.shyqrdbzjhm | |||||
} | |||||
}); | |||||
}); | |||||
} else { | |||||
this.zjdDictionaries = []; | |||||
} | |||||
}, | |||||
/** 模糊查询人员信息 */ | |||||
remoteTransfereeMethod(query) { | |||||
if (query !== "") { | |||||
getShyqrs({shyqrdbxm:query,status:1}).then((response) => { | |||||
if (response.code == 200) { | |||||
this.getObligeeOptions = response.rows.map(function (item) { | |||||
return { | |||||
sqrxm:item.shyqrdbxm, | |||||
sqrxb:item.xb, | |||||
sqrzjhm:item.shyqrdbzjhm, | |||||
sqrnhdm:item.nhdm, | |||||
sqrzjlx:item.shyqrdbzjlx, | |||||
sqrdh:item.dh, | |||||
gyfs:item.gyfs, | |||||
dz:item.dz, | |||||
deptId:item.deptId, | |||||
deptName:item.deptName, | |||||
} | |||||
}) | |||||
//设置模糊查询的下拉框和滚动条 | |||||
if (this.getObligeeOptions.length > 0) { | |||||
this.showDropList = true; // div显示会阻挡下边的选择框和输入框,showDropList控制下拉框是否显示 | |||||
//设置模糊查询的和滚动条 | |||||
this.$nextTick(() => { | |||||
if (this.getObligeeOptions.length > 4) { | |||||
let height = document.getElementById("vanCell").offsetHeight * 4; | |||||
document.getElementById("dropList").style.height = height + "px"; | |||||
document.getElementById("dropList").style.overflow = "scroll"; | |||||
} else { | |||||
document.getElementById("dropList").style.height = ""; | |||||
document.getElementById("dropList").style.overflow = "visible"; | |||||
} | |||||
}); | |||||
} else { | |||||
this.showDropList = false; | |||||
} | |||||
} | |||||
}); | |||||
} else { | |||||
this.getObligeeOptions = []; | |||||
this.showDropList = false; | |||||
} | |||||
}, | |||||
// 打开附件树 | |||||
openAttachment() { | |||||
this.attachmentVisible = true; | |||||
if(this.attachmentActive == this.active) | |||||
this.$nextTick(() => { | |||||
this.$refs.attachmentDialog.scrollTo(this.active); | |||||
}); | |||||
}, | |||||
shyqrdmxmChange(val){ | |||||
this.$set(this.circulation, "sqrxm", val.sqrxm); | |||||
this.$set(this.circulation, "deptId", val.deptId); | |||||
this.$set(this.circulation, "deptName", val.deptName); | |||||
this.$set(this.circulation, "sqrzjhm", val.sqrzjhm); | |||||
this.$set(this.circulation, "sqrzjlx", val.sqrzjlx); | |||||
this.$set(this.circulation, "sqrnhdm", val.sqrnhdm); | |||||
this.$set(this.circulation, "gyqk", val.gyfs); | |||||
this.$set(this.circulation, "xb", val.sqrxb); | |||||
this.$set(this.circulation, "lxdh", val.sqrdh); | |||||
this.$set(this.circulation, "hkszd", val.dz); | |||||
this.getObligeeOptions=[]; | |||||
this.showDropList = false; | |||||
}, | |||||
mapLook(){ | |||||
this.mapShow = true; | |||||
setTimeout(() => { | |||||
this.$refs.zjdProductResh.drawingLyPaceCountryDarw(); | |||||
},1000); | |||||
}, | |||||
// 获取日期, yyyy-MM-dd | |||||
getDate(d) { | |||||
return formatDate(d ? d : new Date(), 'yyyy-MM-dd'); | |||||
}, | |||||
/** 查找地图中宅基地 */ | |||||
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) => { | |||||
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)); | |||||
}); | |||||
}); | |||||
// const baseImgUrl = this.$store.getters.baseRoutingUrl; | |||||
if(response.data.zdt != null && response.data.zdt !== ""){ | |||||
this.$set(this.form, "xzzp", response.rows[0].zdt); | |||||
} | |||||
}); | |||||
}, | |||||
}, | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
.app-container { | |||||
padding-bottom: 2%; | |||||
.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; | |||||
margin-bottom: 2%; | |||||
.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; | |||||
} | |||||
} | |||||
} | |||||
.main_title{ | |||||
font-size: 0.4rem; | |||||
color: #1D6FE9; | |||||
margin: 0.2rem 6%; | |||||
position: relative; | |||||
} | |||||
.main_box{ | |||||
width: 96%; | |||||
margin: 0 auto; | |||||
border-radius: 6px; | |||||
box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||||
overflow: hidden; | |||||
background-color: #FFF; | |||||
} | |||||
.submitButton{ | |||||
width: 80%; | |||||
margin: 0 auto; | |||||
background-color: #1D6FE9; | |||||
} | |||||
/*#dropList::-webkit-scrollbar {*/ | |||||
/* !*滚动条整体样式*!*/ | |||||
/* width: 5px; !*高宽分别对应横竖滚动条的尺寸*!*/ | |||||
/* height: 1px;*/ | |||||
/*}*/ | |||||
/*#dropList::-webkit-scrollbar-thumb {*/ | |||||
/* !*滚动条里面小方块*!*/ | |||||
/* border-radius: 10px;*/ | |||||
/* background: #fff;*/ | |||||
/* box-shadow: inset 0 0 5px rgb(0, 122, 204);*/ | |||||
/*}*/ | |||||
/*#dropList::-webkit-scrollbar-track {*/ | |||||
/* border-radius: 10px;*/ | |||||
/* background: #fff;*/ | |||||
/* !*滚动条里面轨道*!*/ | |||||
/* box-shadow: inset 0 0 5px rgba( 0, 0, 0, .1);*/ | |||||
/*}*/ | |||||
</style> |
@@ -798,10 +798,9 @@ | |||||
<style scoped lang="scss"> | <style scoped lang="scss"> | ||||
.app-container { | .app-container { | ||||
padding-bottom: 2%; | |||||
.header_main{ | .header_main{ | ||||
height: 116px; | height: 116px; | ||||
background: url('../../../../assets/images/sunVillage_info/list_head_green.png') no-repeat; | |||||
background: url('../../../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
background-size: 100% 100%; | background-size: 100% 100%; | ||||
position: fixed; | position: fixed; | ||||
top: 0; | top: 0; | ||||
@@ -812,7 +811,6 @@ | |||||
text-align: center; | text-align: center; | ||||
color: #fff; | color: #fff; | ||||
position: relative; | position: relative; | ||||
margin-bottom: 2%; | |||||
.return_btn{ | .return_btn{ | ||||
width: 24px; | width: 24px; | ||||
height: 43.2px; | height: 43.2px; | ||||
@@ -1,23 +1,10 @@ | |||||
<template> | <template> | ||||
<div class="app-container"> | <div class="app-container"> | ||||
<!-- <van-nav-bar--> | |||||
<!-- left-arrow--> | |||||
<!-- fixed--> | |||||
<!-- placeholder--> | |||||
<!-- @click-left="$router.back(-1)"--> | |||||
<!-- @click-right="goAdd"--> | |||||
<!-- >--> | |||||
<!-- <template #title>--> | |||||
<!-- <p style="font-weight: bold;">有偿退出</p>--> | |||||
<!-- </template>--> | |||||
<!-- <template #right>--> | |||||
<!-- <van-icon name="add" size="18" />--> | |||||
<!-- </template>--> | |||||
<!-- </van-nav-bar>--> | |||||
<div class="header_main"> | <div class="header_main"> | ||||
有偿退出 | 有偿退出 | ||||
<div class="return_btn" @click="onClickLeft"></div> | <div class="return_btn" @click="onClickLeft"></div> | ||||
<div class="add_btn" @click="goAdd"></div> | |||||
</div> | </div> | ||||
<van-list | <van-list | ||||
@@ -27,7 +14,7 @@ | |||||
@load="getList" | @load="getList" | ||||
> | > | ||||
<van-swipe-cell v-for="(item,index) in applicationList" :key="index"> | <van-swipe-cell v-for="(item,index) in applicationList" :key="index"> | ||||
<van-cell :title="item.zjddm" :value="item.auditStatus" center :to="{name:'paidExitDetail', query: {id:item.id}}" > | |||||
<van-cell :title="item.zjddm" :value="selectDictLabel(auditStatus, item.auditStatus)" center :to="{name:'paidExitDetail', query: {id:item.id}}" > | |||||
<template #icon> | <template #icon> | ||||
<van-icon name="../../../static/images/onlineHome/icon_zjd3.png" size="30" color="#539FFD" style="margin-right: 10px;" /> | <van-icon name="../../../static/images/onlineHome/icon_zjd3.png" size="30" color="#539FFD" style="margin-right: 10px;" /> | ||||
</template> | </template> | ||||
@@ -35,6 +22,19 @@ | |||||
<p><b style="color: #539FFD;">{{item.tcfs}}</b><i style="margin-right: 0.5rem;"></i><b style="color: #333333;">{{item.sqrxm}}</b><i style="margin-right: 0.5rem;"></i>{{item.tcmj}}㎡</p> | <p><b style="color: #539FFD;">{{item.tcfs}}</b><i style="margin-right: 0.5rem;"></i><b style="color: #333333;">{{item.sqrxm}}</b><i style="margin-right: 0.5rem;"></i>{{item.tcmj}}㎡</p> | ||||
</template> | </template> | ||||
</van-cell> | </van-cell> | ||||
<template #right> | |||||
<van-row> | |||||
<van-col> | |||||
<van-button square text="修改" v-if="item.auditStatus=='0'" :to="{name:'homesteadPaidExitModify', query: {id:item.id}}" type="info" class="delete-button" /> | |||||
</van-col> | |||||
<van-col> | |||||
<van-button square text="提交" type="primary" v-if="item.auditStatus=='0'" class="delete-button" @click="goSubmit(item)" /> | |||||
</van-col> | |||||
<van-col> | |||||
<van-button square text="删除" v-if="item.auditStatus=='0'" @click="deleteList(item.id,index)" type="danger" class="delete-button" /> | |||||
</van-col> | |||||
</van-row> | |||||
</template> | |||||
</van-swipe-cell> | </van-swipe-cell> | ||||
</van-list> | </van-list> | ||||
</div> | </div> | ||||
@@ -91,6 +91,9 @@ | |||||
}); | }); | ||||
}, | }, | ||||
methods: { | methods: { | ||||
goAdd(){ | |||||
window.location = '/homesteadPaidExitAdd'; | |||||
}, | |||||
getList(){ | getList(){ | ||||
setTimeout(() => { | setTimeout(() => { | ||||
this.deptId = this.$store.state.user.loginDeptId; | this.deptId = this.$store.state.user.loginDeptId; | ||||
@@ -100,9 +103,9 @@ | |||||
response.rows[i].tclx = this.selectDictLabel(this.tcqllxStatus, response.rows[i].tclx) | response.rows[i].tclx = this.selectDictLabel(this.tcqllxStatus, response.rows[i].tclx) | ||||
response.rows[i].tclx = this.selectDictLabel(this.tclxStatus, response.rows[i].tclx) | response.rows[i].tclx = this.selectDictLabel(this.tclxStatus, response.rows[i].tclx) | ||||
response.rows[i].tcfs = this.selectDictLabel(this.tcfsStatus, response.rows[i].tcfs) | response.rows[i].tcfs = this.selectDictLabel(this.tcfsStatus, response.rows[i].tcfs) | ||||
response.rows[i].auditStatus = this.selectDictLabel(this.auditStatus, response.rows[i].auditStatus) | |||||
this.applicationList.push(response.rows[i]); | this.applicationList.push(response.rows[i]); | ||||
} | } | ||||
console.info(this.applicationList); | |||||
if(this.applicationList.length >= response.total){ | if(this.applicationList.length >= response.total){ | ||||
this.finished = true; | this.finished = true; | ||||
return; | return; | ||||
@@ -138,7 +141,7 @@ | |||||
if (response.code = 200) { | if (response.code = 200) { | ||||
this.$toast.success('提交成功'); | this.$toast.success('提交成功'); | ||||
setTimeout(function () { | setTimeout(function () { | ||||
window.location.replace("/sunVillage_info/paidExit/paidExitList") | |||||
window.location.replace("/paidExit") | |||||
}, 1000) | }, 1000) | ||||
} | } | ||||
}) | }) | ||||
@@ -151,7 +154,7 @@ | |||||
.app-container { | .app-container { | ||||
.header_main{ | .header_main{ | ||||
height: 116px; | height: 116px; | ||||
background: url('../../../../assets/images/sunVillage_info/list_head_green.png') no-repeat; | |||||
background: url('../../../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
background-size: 100% 100%; | background-size: 100% 100%; | ||||
position: fixed; | position: fixed; | ||||
top: 0; | top: 0; | ||||
@@ -0,0 +1,634 @@ | |||||
<template> | |||||
<div class="app-container"> | |||||
<!-- <van-nav-bar--> | |||||
<!-- left-arrow--> | |||||
<!-- fixed--> | |||||
<!-- placeholder--> | |||||
<!-- @click-left="$router.back(-1)"--> | |||||
<!-- >--> | |||||
<!-- <template #title>--> | |||||
<!-- <p style="font-weight: bold;">修改有偿退出</p>--> | |||||
<!-- </template>--> | |||||
<!-- </van-nav-bar>--> | |||||
<div class="header_main"> | |||||
修改有偿退出 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
<!-- <div class="add_btn" @click="goAdd"></div>--> | |||||
</div> | |||||
<van-form ref="_Form"> | |||||
<div class="main_box"> | |||||
<!-- <van-field v-model="circulation.sqrxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>--> | |||||
<van-field v-model="circulation.sqrxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required @input="remoteTransfereeMethod" /> | |||||
<div id="dropList" v-show="showDropList" style="width: 92vw; position: absolute; z-index: 99; left: 50%; margin-left: -46vw; border: 1px solid #E2E0E0;" > | |||||
<van-cell id="vanCell" v-for="(item, index) in getObligeeOptions" :key="index" @click="shyqrdmxmChange(item)" style="position: relative; z-index: 999;"> | |||||
{{item.sqrxm}} | |||||
</van-cell> | |||||
</div> | |||||
<!-- <van-field--> | |||||
<!-- readonly--> | |||||
<!-- clickable--> | |||||
<!-- v-model="circulation.zjddm"--> | |||||
<!-- label="宅基地代码"--> | |||||
<!-- placeholder="请选择"--> | |||||
<!-- @click="remoteProposerMethod"--> | |||||
<!-- input-align="right"--> | |||||
<!-- right-icon="arrow-down" :rules="[{ required: true }]" required--> | |||||
<!-- />--> | |||||
<!-- <van-popup v-model="showzjddm" position="bottom">--> | |||||
<!-- <van-picker--> | |||||
<!-- show-toolbar--> | |||||
<!-- :columns="zjdDictionaries"--> | |||||
<!-- value-key="zjddm"--> | |||||
<!-- @confirm="onConfirmZjddm"--> | |||||
<!-- @cancel="showzjddm = false"--> | |||||
<!-- />--> | |||||
<!-- </van-popup>--> | |||||
<van-field | |||||
v-model="circulation.zjddm" | |||||
label="宅基地代码" | |||||
input-align="right" | |||||
:rules="[{ required: true }]" | |||||
required | |||||
> | |||||
<template #button> | |||||
<van-icon name="../../../static/images/22.png" color="#539FFD" size="20" @click="mapLook"/> | |||||
</template> | |||||
</van-field> | |||||
<field-select | |||||
v-model="circulation.xb" | |||||
label="性別" | |||||
value-key="dictLabel" | |||||
data-key="dictValue" | |||||
placeholder="选择现状" | |||||
:rules="[{ required: true }]" | |||||
required | |||||
remote-url="/open/zdzh/list/sys_user_sex" | |||||
:on-remote-response="'data'" | |||||
/> | |||||
<van-field v-model="circulation.sqrzjhm" label="申请人证件号码" placeholder="申请人证件号码" input-align="right" label-width="auto" :rules="[{ required: true }]" required/> | |||||
<van-field v-model="circulation.lxdh" label="联系电话" placeholder="联系电话" input-align="right" label-width="auto" :rules="[{ required: true }]" required/> | |||||
<field-select | |||||
v-model="circulation.gyqk" | |||||
label="共有情况" | |||||
value-key="dictLabel" | |||||
data-key="dictValue" | |||||
placeholder="选择共有情况" | |||||
:rules="[{ required: true }]" | |||||
required | |||||
remote-url="/open/zdzh/list/house_yes_no" | |||||
:on-remote-response="'data'" | |||||
/> | |||||
<van-field v-model="circulation.hkszd" label="户口所在地" placeholder="户口所在地" input-align="right" label-width="auto" :rules="[{ required: true }]" required/> | |||||
</div> | |||||
<p class="main_title">拟申请退出宅基地</p> | |||||
<van-field v-model="circulation.tcmj" label="面积(㎡)" placeholder="请输入面积㎡" input-align="right" label-width="auto" :rules="[{ required: true }]" required type="number"/> | |||||
<field-select | |||||
v-model="circulation.xz" | |||||
label="现状" | |||||
value-key="dictLabel" | |||||
data-key="dictValue" | |||||
placeholder="选择现状" | |||||
:rules="[{ required: true }]" | |||||
required | |||||
remote-url="/open/zdzh/list/dsxz" | |||||
:on-remote-response="'data'" | |||||
/> | |||||
<van-field v-model="circulation.zjdszd" label="东至" placeholder="东至" input-align="right" label-width="auto" :rules="[{ required: true }]" required/> | |||||
<van-field v-model="circulation.zjdszn" label="南至" placeholder="南至" input-align="right" label-width="auto" :rules="[{ required: true }]" required/> | |||||
<van-field v-model="circulation.zjdszx" label="西至" placeholder="西至" input-align="right" label-width="auto" :rules="[{ required: true }]" required/> | |||||
<van-field v-model="circulation.zjdszb" label="北至" placeholder="北至" input-align="right" label-width="auto" :rules="[{ required: true }]" required/> | |||||
<field-select | |||||
v-model="circulation.dldm" | |||||
label="地类" | |||||
value-key="dictLabel" | |||||
data-key="dictValue" | |||||
placeholder="选择现状" | |||||
:rules="[{ required: true }]" | |||||
required | |||||
remote-url="/open/zdzh/list/geographic_type" | |||||
:on-remote-response="'data'" | |||||
/> | |||||
<p class="main_title">退出宅基地情况</p> | |||||
<van-field v-model="circulation.tcmj" label="退出面积(㎡)" placeholder="请输入退出面积㎡" input-align="right" label-width="auto" :rules="[{ required: true }]" required type="number"/> | |||||
<van-field v-model="circulation.jzmj" label="建筑面积(㎡)" placeholder="请输入建筑面积㎡" input-align="right" label-width="auto" :rules="[{ required: true }]" required type="number"/> | |||||
<div class="main_box"> | |||||
<van-field | |||||
readonly | |||||
clickable | |||||
v-model="tcqllx" | |||||
label="退出权利类型" | |||||
placeholder="请选择退出权利类型" | |||||
@click="showtcqllx = true" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" :rules="[{ required: true }]" required | |||||
/> | |||||
<van-popup v-model="showtcqllx" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="tcqllxDictionaries" | |||||
@confirm="onConfirmTcqllx" | |||||
@cancel="showtcqllx = false" | |||||
/> | |||||
</van-popup> | |||||
<!--<van-field | |||||
readonly | |||||
clickable | |||||
v-model="tclx" | |||||
label="退出类型" | |||||
placeholder="请选择退出类型" | |||||
@click="showtclx = true" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" :rules="[{ required: true }]" required | |||||
/> | |||||
<van-popup v-model="showtclx" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="tclxDictionaries" | |||||
@confirm="onConfirmTclx" | |||||
@cancel="showtclx = false" | |||||
/> | |||||
</van-popup>--> | |||||
<van-field | |||||
readonly | |||||
clickable | |||||
v-model="tcfs" | |||||
label="退出方式" | |||||
placeholder="请选择退出方式" | |||||
@click="showtcfs = true" | |||||
input-align="right" | |||||
right-icon="arrow-down" | |||||
label-width="auto" :rules="[{ required: true }]" required | |||||
/> | |||||
<van-popup v-model="showtcfs" position="bottom"> | |||||
<van-picker | |||||
show-toolbar | |||||
:columns="tcfsDictionaries" | |||||
@confirm="onConfirmTcfs" | |||||
@cancel="showtcfs = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field v-model="circulation.tcqszsh" label="权属证书号" placeholder="请输入权属证书号" input-align="right" label-width="auto" /> | |||||
</div> | |||||
<p class="main_title">现居住情况</p> | |||||
<van-field v-model="circulation.xjzmj" label="建筑面积(㎡)" placeholder="请输入建筑面积㎡" input-align="right" label-width="auto" :rules="[{ required: true }]" required type="number"/> | |||||
<van-field v-model="circulation.xqszsh" label="权属证书号" placeholder="请输入权属证书号" input-align="right" label-width="auto" /> | |||||
<van-field v-model="circulation.xjzdd" label="居住地点" placeholder="请输入居住地点" input-align="right" label-width="auto" /> | |||||
<p class="main_title">补偿信息</p> | |||||
<van-field v-model="circulation.bcje" label="宅基地补偿" placeholder="宅基地补偿" input-align="right" label-width="auto" type="number"/> | |||||
<van-field v-model="circulation.dmfzwbc" label="地面附着物补偿" placeholder="地面附着物补偿" input-align="right" label-width="auto" type="number"/> | |||||
<field-select | |||||
v-model="circulation.yctcfs" | |||||
label="退出类型" | |||||
value-key="dictLabel" | |||||
data-key="dictValue" | |||||
placeholder="选择退出类型" | |||||
remote-url="/open/zdzh/list/yctcfs" | |||||
:on-remote-response="'data'" | |||||
/> | |||||
<field-select | |||||
v-model="circulation.bcfs" | |||||
label="补偿方式" | |||||
value-key="dictLabel" | |||||
data-key="dictValue" | |||||
placeholder="选择退出类型" | |||||
remote-url="/open/zdzh/list/bcfs" | |||||
:on-remote-response="'data'" | |||||
/> | |||||
<field-date-picker | |||||
v-model="circulation.bcsj" | |||||
label="补偿时间" | |||||
placeholder="选择日期" | |||||
formatter="yyyy-MM-dd" | |||||
/> | |||||
<p class="main_title">其他</p> | |||||
<van-field v-model="circulation.sqly" label="申请理由" placeholder="请输入申请理由" input-align="right" label-width="auto"/> | |||||
<field-date-picker | |||||
v-model="circulation.sqrq" | |||||
label="申请日期" | |||||
placeholder="选择日期" | |||||
:rules="[{ required: true }]" | |||||
formatter="yyyy-MM-dd" | |||||
required | |||||
/> | |||||
<van-field v-model="circulation.jbrxm" label="经办人姓名" placeholder="请输入经办人姓名" input-align="right" label-width="auto"/> | |||||
<field-date-picker | |||||
v-model="circulation.pzrq" | |||||
label="批准日期" | |||||
placeholder="选择日期" | |||||
:rules="[{ required: true }]" | |||||
formatter="yyyy-MM-dd" | |||||
required | |||||
/> | |||||
<field-date-picker | |||||
v-model="circulation.barq" | |||||
label="备案日期" | |||||
placeholder="选择日期" | |||||
:rules="[{ required: true }]" | |||||
formatter="yyyy-MM-dd" | |||||
required | |||||
/> | |||||
<van-dialog v-model="mapShow" show-cancel-button> | |||||
<MapGisObtainTc ref="zjdProductResh" :shqrxm="circulation.sqrxm" :landStatus="landStatus" :deptId="sysFarmer.deptId" @closeMoule="closeMoule"></MapGisObtainTc> | |||||
</van-dialog> | |||||
<!-- 3组附件 --> | |||||
<van-popup | |||||
v-model="attachmentVisible" | |||||
closeable | |||||
position="top" | |||||
:style="{ height: '61.8%' }" | |||||
:close-on-click-overlay="proposerStatus == 1" | |||||
:lazy-render="false" | |||||
> | |||||
<van-tabs type="card" style="padding-top: 1.35rem;" color="#1D6FE9" :lazy-render="false" v-model="attachmentActive" ref="attachmentDialog"> | |||||
<van-tab title="退出附件" key="0"> | |||||
<home-apply-upload-comp | |||||
:business-type="houseApplyUploadComp.businessType" | |||||
:house-apply-status="houseApplyUploadComp.homeApplyStatus" | |||||
:process-key="houseApplyUploadComp.processKey" | |||||
:proposer-id="houseApplyUploadComp.proposerId" | |||||
:table-name="houseApplyUploadComp.tableName" | |||||
:readonly="houseApplyUploadComp.readonly" | |||||
:userName="sysFarmer.memberName" | |||||
:full="houseApplyUploadComp.full" | |||||
@uploadFinished="onUploadFinished" | |||||
> | |||||
</home-apply-upload-comp> | |||||
</van-tab> | |||||
</van-tabs> | |||||
</van-popup> | |||||
</van-form> | |||||
<van-goods-action style="z-index: 999;"> | |||||
<van-goods-action-icon icon="label-o" text="附件" @click="openAttachment" color="#1D6FE9" /> | |||||
<van-goods-action-button type="info" text="保存" @click="goEdit" /> | |||||
<van-goods-action-button type="info" text="提交" @click="goSubmit"/> | |||||
</van-goods-action> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import { getZyyctc,getShyqrs,zyyctcEdit,zyyctcApply,getByLyZjddm,listHomesteadnmfw} from "@/api/sunVillage_info/homestead/paidExit"; | |||||
import HomeApplyUploadComp from "@/components/home/HomeApplyUploadComp"; | |||||
import FieldSelect from "@/components/form/FieldSelect"; | |||||
import FieldDatePicker from "@/components/form/FieldDatePicker"; | |||||
import {formatDate} from "element-ui/src/utils/date-util.js"; | |||||
import { } from "@/api/onlineHome/homestead/paidExit"; | |||||
import {Notify} from "vant"; | |||||
import MapGisObtainTc from "@/components/Map/MapGisObtainTc"; | |||||
import Cookies from "js-cookie"; | |||||
const PROPOSER_VIEW = 1; | |||||
// 工作流名称 | |||||
const PROPOSER_STAGE_BASE_APPLY_ACTIVITY = 'home_usetc'; | |||||
// 附件表名 | |||||
const PROPOSER_STAGE_BASE_APPLY_TABLE = 't_homeuse_zyyctc'; | |||||
// 其他 | |||||
const PROPOSER_MODULE = 'home'; | |||||
export default { | |||||
name: "paidExitModify", | |||||
components: { MapGisObtainTc,FieldSelect,FieldDatePicker,HomeApplyUploadComp }, | |||||
data() { | |||||
return { | |||||
tcqllxDictionaries:[],//退出权利类型 | |||||
tclxDictionaries:[],//退出类型 | |||||
tcfsDictionaries:[],//退出方式 | |||||
xbDictionaries:[],//申请人证件类型 | |||||
zjlxDictionaries:[], | |||||
bcfsDictionaries:[],//补偿方式 | |||||
zjdDictionaries:[],//宅基地代码 | |||||
getObligeeOptions:[],//下拉框列表 | |||||
sysFarmer:{deptId:this.$store.state.user.loginDeptId,memberName:this.$store.state.user.nickName}, | |||||
tcqllx:'', | |||||
tclx:'', | |||||
tcfs:'', | |||||
xb:'', | |||||
bcfs:'', | |||||
zjddm:'', | |||||
landStatus:"1", | |||||
showtcqllx: false, | |||||
showtclx: false, | |||||
showtcfs: false, | |||||
showxb: false, | |||||
showbcfs: false, | |||||
showzjddm: false, | |||||
showDropList: false,//是否显示下拉框 | |||||
mapShow: false, | |||||
attachmentVisible:false, | |||||
active: 0, | |||||
// 表单意图 | |||||
proposerStatus: PROPOSER_VIEW, | |||||
circulation:{}, | |||||
// 当前附件tab | |||||
attachmentActive: 0, | |||||
// 申请附件树 | |||||
houseApplyUploadComp: { | |||||
businessType: PROPOSER_MODULE, | |||||
proposerId: this.$route.query.id, | |||||
homeApplyStatus: "11", | |||||
processKey: PROPOSER_STAGE_BASE_APPLY_ACTIVITY, | |||||
tableName: PROPOSER_STAGE_BASE_APPLY_TABLE, | |||||
attachmentList: [], | |||||
readonly: false, | |||||
full: false, | |||||
}, | |||||
}; | |||||
}, | |||||
created() { | |||||
this.getDictionaries(); | |||||
}, | |||||
methods: { | |||||
getDictionaries(){ | |||||
getZyyctc(this.$route.query.id).then(response => { | |||||
//退出权利类型 | |||||
this.houseGetDicts("tcqllx").then((res) => { | |||||
for (var i = 0; i < res.data.length; i++) { | |||||
this.tcqllxDictionaries.push({text: res.data[i].dictLabel, value: res.data[i].dictValue}); | |||||
} | |||||
this.tcqllx = this.selectDictLabel(res.data, response.data.tcqllx); | |||||
}); | |||||
//退出方式 | |||||
this.houseGetDicts("tcfs").then((res) => { | |||||
for (var i = 0; i < res.data.length; i++) { | |||||
this.tcfsDictionaries.push({text: res.data[i].dictLabel, value: res.data[i].dictValue}); | |||||
} | |||||
this.tcfs = this.selectDictLabel(res.data, response.data.tcfs); | |||||
}); | |||||
//申请人证件类型 | |||||
this.houseGetDicts("zjlx").then((res) => { | |||||
for (var i = 0; i < res.data.length; i++) { | |||||
this.zjlxDictionaries.push({text: res.data[i].dictLabel, value: res.data[i].dictValue}); | |||||
} | |||||
this.zjlx = this.selectDictLabel(res.data, response.data.sqrzjlx); | |||||
}); | |||||
this.circulation = response.data; | |||||
console.info(this.circulation); | |||||
}); | |||||
}, | |||||
onConfirmZjddm(data){ | |||||
console.log(data); | |||||
this.showzjddm = false; | |||||
if (data) { | |||||
this.$set(this.circulation, 'zjddm', data.zjddm); | |||||
this.$set(this.circulation, 'sqrzjhm', data.shyqrdbzjhm); | |||||
this.$set(this.circulation, 'sqrzjlx', data.shyqrdbzjlx); | |||||
if(data.shyqrdbzjlx) | |||||
{ | |||||
let val = this.zjlxDictionaries.find((x) => x.value == data.shyqrdbzjlx); | |||||
if(val) | |||||
this.zjlx = val.text; | |||||
} | |||||
} | |||||
// this.$forceUpdate(); | |||||
}, | |||||
onConfirmXb(data){ | |||||
this.xb = data.text; | |||||
this.circulation.xb = data.value; | |||||
this.showxb = false; | |||||
}, | |||||
// 初次申请草稿的附件上传 | |||||
onUploadFinished(fileIdList) { | |||||
this.$set(this.circulation, "fileList", fileIdList); | |||||
}, | |||||
onConfirmTcqllx(data){ | |||||
this.tcqllx = data.text; | |||||
this.circulation.tcqllx = data.value; | |||||
this.showtcqllx = false; | |||||
}, | |||||
/*onConfirmTclx(data){ | |||||
this.tclx = data.text; | |||||
this.circulation.tclx = data.value; | |||||
this.showtclx = false; | |||||
},*/ | |||||
onConfirmTcfs(data){ | |||||
this.tcfs = data.text; | |||||
this.circulation.tcfs = data.value; | |||||
this.showtcfs = false; | |||||
}, | |||||
onConfirmBcfs(data){ | |||||
this.bcfs = data.text; | |||||
this.circulation.bcfs = data.value; | |||||
this.showbcfs = false; | |||||
}, | |||||
goEdit(){ | |||||
console.log(this.circulation); | |||||
this.$refs._Form.validate().then(() => { | |||||
zyyctcEdit(this.circulation).then(response => { | |||||
if(response.code = 200){ | |||||
this.$toast.success('保存成功'); | |||||
this.$router.back(-1); | |||||
} | |||||
}) | |||||
}).catch((e) => { | |||||
Notify({ type: 'danger', message: '请填写完整的表单项' }); | |||||
}); | |||||
}, | |||||
goSubmit(){ | |||||
this.$refs._Form.validate().then(() => { | |||||
this.$set(this.circulation, 'updateBy', this.sysFarmer.memberName); | |||||
zyyctcEdit(this.circulation).then(response => { | |||||
zyyctcApply(this.$route.query.id).then(response => { | |||||
if(response.code = 200){ | |||||
this.$toast.success('提交成功'); | |||||
setTimeout(function(){ | |||||
this.$router.back(-1); | |||||
},1000) | |||||
} | |||||
}); | |||||
}); | |||||
}).catch((e) => { | |||||
Notify({ type: 'danger', message: '请填写完整的表单项' }); | |||||
}); | |||||
}, | |||||
remoteProposerMethod() { | |||||
this.showzjddm = true; | |||||
this.zjdDictionaries = []; | |||||
if (this.circulation.sqrxm) { | |||||
getShyqrs({shyqrdbxm:this.circulation.sqrxm}).then(response => { | |||||
this.zjdDictionaries = response.data.map(item => { | |||||
return { | |||||
zjddm: item.zjddm, | |||||
shyqrdbxm: item.shyqrdbxm, | |||||
shyqrdbzjlx: item.shyqrdbzjlx, | |||||
shyqrdbzjhm: item.shyqrdbzjhm | |||||
} | |||||
}); | |||||
}); | |||||
} else { | |||||
this.zjdDictionaries = []; | |||||
} | |||||
}, | |||||
// 打开附件树 | |||||
openAttachment() { | |||||
this.attachmentVisible = true; | |||||
if(this.attachmentActive == this.active) | |||||
this.$nextTick(() => { | |||||
this.$refs.attachmentDialog.scrollTo(this.active); | |||||
}); | |||||
}, | |||||
/** 模糊查询人员信息 */ | |||||
remoteTransfereeMethod(query) { | |||||
if (query !== "") { | |||||
getShyqrs({shyqrdbxm:query,status:1}).then((response) => { | |||||
if (response.code == 200) { | |||||
this.getObligeeOptions = response.rows.map(function (item) { | |||||
return { | |||||
sqrxm:item.shyqrdbxm, | |||||
sqrxb:item.xb, | |||||
sqrzjhm:item.shyqrdbzjhm, | |||||
sqrzjlx:item.shyqrdbzjlx, | |||||
sqrdh:item.dh, | |||||
gyfs:item.gyfs, | |||||
dz:item.dz, | |||||
deptId:item.deptId, | |||||
deptName:item.deptName, | |||||
} | |||||
}) | |||||
//设置模糊查询的下拉框和滚动条 | |||||
if (this.getObligeeOptions.length > 0) { | |||||
this.showDropList = true; // div显示会阻挡下边的选择框和输入框,showDropList控制下拉框是否显示 | |||||
//设置模糊查询的和滚动条 | |||||
this.$nextTick(() => { | |||||
if (this.getObligeeOptions.length > 4) { | |||||
let height = document.getElementById("vanCell").offsetHeight * 4; | |||||
document.getElementById("dropList").style.height = height + "px"; | |||||
document.getElementById("dropList").style.overflow = "scroll"; | |||||
} else { | |||||
document.getElementById("dropList").style.height = ""; | |||||
document.getElementById("dropList").style.overflow = "visible"; | |||||
} | |||||
}); | |||||
} else { | |||||
this.showDropList = false; | |||||
} | |||||
} | |||||
}); | |||||
} else { | |||||
this.getObligeeOptions = []; | |||||
this.showDropList = false; | |||||
} | |||||
}, | |||||
shyqrdmxmChange(val){ | |||||
console.info(val); | |||||
this.$set(this.circulation, "sqrxm", val.sqrxm); | |||||
this.$set(this.circulation, "deptId", val.deptId); | |||||
this.$set(this.circulation, "deptName", val.deptId); | |||||
this.$set(this.circulation, "sqrzjhm", val.sqrzjhm); | |||||
this.$set(this.circulation, "sqrzjlx", val.sqrzjlx); | |||||
this.$set(this.circulation, "gyqk", val.gyfs); | |||||
this.$set(this.circulation, "xb", val.sqrxb); | |||||
this.$set(this.circulation, "lxdh", val.sqrdh); | |||||
this.$set(this.circulation, "hkszd", val.dz); | |||||
this.getObligeeOptions=[]; | |||||
this.showDropList = false; | |||||
}, | |||||
// 获取日期, yyyy-MM-dd | |||||
getDate(d) { | |||||
return formatDate(d ? d : new Date(), 'yyyy-MM-dd'); | |||||
}, | |||||
/** 查找地图中宅基地 */ | |||||
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) => { | |||||
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((response) => { | |||||
response.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)); | |||||
}); | |||||
}); | |||||
// const baseImgUrl = this.$store.getters.baseRoutingUrl; | |||||
if(response.rows[0].zdt != null && response.rows[0].zdt !== ""){ | |||||
this.$set(this.form, "xzzp", response.rows[0].zdt); | |||||
} | |||||
}); | |||||
}, | |||||
mapLook(){ | |||||
this.mapShow = true; | |||||
setTimeout(() => { | |||||
this.$refs.zjdProductResh.drawingLyPaceCountryDarw(); | |||||
},1000); | |||||
}, | |||||
}, | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
.app-container { | |||||
padding-bottom: 2%; | |||||
.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; | |||||
margin-bottom: 2%; | |||||
.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; | |||||
} | |||||
} | |||||
} | |||||
.main_title{ | |||||
font-size: 0.4rem; | |||||
color: #1D6FE9; | |||||
margin: 0.2rem 6%; | |||||
position: relative; | |||||
} | |||||
.main_box{ | |||||
width: 96%; | |||||
margin: 0 auto; | |||||
border-radius: 6px; | |||||
box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||||
overflow: hidden; | |||||
background-color: #FFF; | |||||
} | |||||
.submitButton{ | |||||
width: 80%; | |||||
margin: 0 auto; | |||||
background-color: #1D6FE9; | |||||
} | |||||
</style> |
@@ -1,15 +1,9 @@ | |||||
<template> | <template> | ||||
<div class="app-container"> | <div class="app-container"> | ||||
<van-nav-bar | |||||
left-arrow | |||||
fixed | |||||
placeholder | |||||
@click-left="$router.back(-1)" | |||||
> | |||||
<template #title> | |||||
<p style="font-weight: bold;">添加有偿使用</p> | |||||
</template> | |||||
</van-nav-bar> | |||||
<div class="header_main"> | |||||
有偿使用 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
</div> | |||||
<div class="main_box"> | <div class="main_box"> | ||||
<van-field v-model="circulation.shyqrdbxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required @input="remoteTransfereeMethod" /> | <van-field v-model="circulation.shyqrdbxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required @input="remoteTransfereeMethod" /> | ||||
<div id="dropList" v-show="showDropList" style="width: 92vw; position: absolute; z-index: 99; left: 50%; margin-left: -46vw; border: 1px solid #E2E0E0;" > | <div id="dropList" v-show="showDropList" style="width: 92vw; position: absolute; z-index: 99; left: 50%; margin-left: -46vw; border: 1px solid #E2E0E0;" > | ||||
@@ -410,7 +404,38 @@ | |||||
<style scoped lang="scss"> | <style scoped lang="scss"> | ||||
.app-container { | .app-container { | ||||
padding: 2% 0; | |||||
.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; | |||||
} | |||||
} | |||||
} | } | ||||
.main_title{ | .main_title{ | ||||
font-size: 0.4rem; | font-size: 0.4rem; | ||||
@@ -1,15 +1,9 @@ | |||||
<template> | <template> | ||||
<div class="app-container"> | <div class="app-container"> | ||||
<van-nav-bar | |||||
left-arrow | |||||
fixed | |||||
placeholder | |||||
@click-left="$router.back(-1)" | |||||
> | |||||
<template #title> | |||||
<p style="font-weight: bold;">有偿使用</p> | |||||
</template> | |||||
</van-nav-bar> | |||||
<div class="header_main"> | |||||
有偿使用 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
</div> | |||||
<div class="main_box"> | <div class="main_box"> | ||||
<van-field | <van-field | ||||
readonly | readonly | ||||
@@ -228,7 +222,38 @@ | |||||
<style scoped lang="scss"> | <style scoped lang="scss"> | ||||
.app-container { | .app-container { | ||||
padding: 2% 0; | |||||
.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; | |||||
} | |||||
} | |||||
} | } | ||||
.main_title{ | .main_title{ | ||||
font-size: 0.4rem; | font-size: 0.4rem; | ||||
@@ -1,19 +1,10 @@ | |||||
<template> | <template> | ||||
<div class="app-container"> | <div class="app-container"> | ||||
<van-nav-bar | |||||
left-arrow | |||||
fixed | |||||
placeholder | |||||
@click-left="$router.back(-1)" | |||||
@click-right="goAdd" | |||||
> | |||||
<template #title> | |||||
<p style="font-weight: bold;">有偿使用</p> | |||||
</template> | |||||
<template #right> | |||||
<van-icon name="add" size="18" /> | |||||
</template> | |||||
</van-nav-bar> | |||||
<div class="header_main"> | |||||
有偿使用 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
<div class="add_btn" @click="goAdd"></div> | |||||
</div> | |||||
<van-list | <van-list | ||||
v-model="loading" | v-model="loading" | ||||
:finished="finished" | :finished="finished" | ||||
@@ -134,7 +125,38 @@ | |||||
<style scoped lang="scss"> | <style scoped lang="scss"> | ||||
.app-container { | .app-container { | ||||
padding: 0.2rem 3%; | |||||
.header_main{ | |||||
height: 116px; | |||||
background: url('../../../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
position: fixed; | |||||
top: 0; | |||||
left: 0; | |||||
width: 100%; | |||||
font-size: 36px; | |||||
line-height: 116px; | |||||
text-align: center; | |||||
color: #fff; | |||||
position: relative; | |||||
.return_btn{ | |||||
width: 24px; | |||||
height: 43.2px; | |||||
background: url('../../../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||||
background-size: 20px 36px; | |||||
position: absolute; | |||||
left: 38px; | |||||
top: 36px; | |||||
} | |||||
.add_btn{ | |||||
width: 56.4px; | |||||
height: 40.8px; | |||||
background: url('../../../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat; | |||||
background-size: 47px 34px; | |||||
position: absolute; | |||||
right: 38px; | |||||
top: 36px; | |||||
} | |||||
} | |||||
} | } | ||||
/deep/.van-cell__title{ | /deep/.van-cell__title{ | ||||
flex: 0.7; | flex: 0.7; | ||||
@@ -1,15 +1,9 @@ | |||||
<template> | <template> | ||||
<div class="app-container"> | <div class="app-container"> | ||||
<van-nav-bar | |||||
left-arrow | |||||
fixed | |||||
placeholder | |||||
@click-left="$router.back(-1)" | |||||
> | |||||
<template #title> | |||||
<p style="font-weight: bold;">修改有偿使用</p> | |||||
</template> | |||||
</van-nav-bar> | |||||
<div class="header_main"> | |||||
有偿使用 | |||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
</div> | |||||
<div class="main_box"> | <div class="main_box"> | ||||
<van-field readonly v-model="circulation.shyqrdbxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required @input="remoteTransfereeMethod" /> | <van-field readonly v-model="circulation.shyqrdbxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required @input="remoteTransfereeMethod" /> | ||||
<div id="dropList" v-show="showDropList" style="width: 92vw; position: absolute; z-index: 99; left: 50%; margin-left: -46vw; border: 1px solid #E2E0E0;" > | <div id="dropList" v-show="showDropList" style="width: 92vw; position: absolute; z-index: 99; left: 50%; margin-left: -46vw; border: 1px solid #E2E0E0;" > | ||||
@@ -420,7 +414,38 @@ | |||||
<style scoped lang="scss"> | <style scoped lang="scss"> | ||||
.app-container { | .app-container { | ||||
padding: 2% 0; | |||||
.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; | |||||
} | |||||
} | |||||
} | } | ||||
.main_title{ | .main_title{ | ||||
font-size: 0.4rem; | font-size: 0.4rem; | ||||