@@ -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) { | ||||
@@ -0,0 +1,60 @@ | |||||
import request from '@/utils/request' | |||||
//查询列表 | |||||
export function getList(data){ | |||||
return request({ | |||||
url:'/service/cbf/list', | |||||
method:'get', | |||||
params:data | |||||
}) | |||||
} | |||||
//查询承包地块列表 | |||||
export function getCbdkms(data){ | |||||
return request({ | |||||
url:'/service/cbdkxx/getCbdkms', | |||||
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 | |||||
}) | |||||
} |
@@ -848,6 +848,7 @@ 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")); | ||||
@@ -855,7 +856,7 @@ export default { | |||||
if(this.form.theGeomJson.hasOwnProperty('coordinates')) // 从后台获取的 | if(this.form.theGeomJson.hasOwnProperty('coordinates')) // 从后台获取的 | ||||
this.$set(this.form, 'theGeomJson',this.form.theGeomJson.coordinates); | this.$set(this.form, 'theGeomJson',this.form.theGeomJson.coordinates); | ||||
this.$set(this.form, 'theGeomJson', JSON.stringify( this.form.theGeomJson)); | this.$set(this.form, 'theGeomJson', JSON.stringify( this.form.theGeomJson)); | ||||
this.$set(this.form, 'surveyId', surveyItem.id); | |||||
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) => { | ||||
@@ -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) | ||||
@@ -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,178 @@ | |||||
/> | /> | ||||
</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;" > | |||||
<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,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.getCbfCount(); | |||||
this.getCbfdkCount(); | |||||
this.height = window.screen.height * 1.28 - 20; | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getCbfCount(){ | |||||
getList({}).then(res=>{ | |||||
this.cbfCount = res.total; | |||||
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.getCbfCount(); | |||||
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 +217,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,41 @@ | |||||
<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="公示记事人签字" > | |||||
<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-field readonly v-model="form.gsjgqz" label="承包方公示结果签字" placeholder="承包方公示结果签字" input-align="right" :border="false" /> | |||||
<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 +52,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="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="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="记事人" > | |||||
<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" /> | |||||
<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 +242,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;" > | |||||
<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,182 @@ | |||||
/> | /> | ||||
</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;" > | |||||
<van-field readonly style="padding: 0 0;height: 30px;" label="审核人" input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.gsshqz" 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,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.getCbfCount(); | |||||
this.getCbfdkCount(); | |||||
this.getCbfGsqzCount(); | |||||
this.height = window.screen.height * 1.28 - 20; | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getCbfCount(){ | |||||
getList({}).then(res=>{ | |||||
this.cbfCount = res.total; | |||||
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.getCbfCount(); | |||||
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 +243,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,236 @@ | |||||
<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="公示记事人签字" > | |||||
<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-field readonly v-model="form.gsjgqz" label="承包方公示结果签字" placeholder="承包方公示结果签字" input-align="right" :border="false" /> | |||||
<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="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" /> | |||||
</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="审核人" > | |||||
<van-field style="padding: 0 0;height: 30px;" readonly label="审核人" input-align="right" :border="false" > | |||||
<template #label> | |||||
<img :src="'/api'+form.gsshqz" 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/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 +241,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 +354,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 +404,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 +442,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="调查签名" > | |||||
<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;" > | |||||
<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; | ||||
@@ -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 | ||||