| @@ -25,6 +25,23 @@ export function getNhhncy(id) { | |||
| 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) { | |||
| @@ -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: '请在地图上标注宅基地所在位置!' }); | |||
| return; | |||
| } | |||
| this.permission = "false"; | |||
| if(this.form.id == null){ | |||
| let surveyItem = JSON.parse(localStorage.getItem("surveyItem")); | |||
| @@ -855,7 +856,7 @@ export default { | |||
| 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); | |||
| this.$set(this.form, 'surveyId', surveyItem.id) | |||
| addZjdzd(this.form).then(response => { | |||
| let _this =this; | |||
| getZjdzd(response.data).then((res) => { | |||
| @@ -229,6 +229,7 @@ | |||
| console.info(userId); | |||
| this.nickName = this.$store.state.user.nickName; | |||
| this.$set(this.queryParams, "rwzxr", userId); | |||
| this.$set(this.queryParams, "params", {deptId:100}); | |||
| this.getList(); | |||
| },1000) | |||
| @@ -331,6 +332,7 @@ | |||
| if(this.active==1){ | |||
| let params = { | |||
| "rwfbzt":"PUBLISHED", | |||
| "params":{deptId:this.$store.state.user.loginDeptId}, | |||
| "pageNum": this.countyhc+1, | |||
| "pageSize":10, | |||
| } | |||
| @@ -346,6 +348,7 @@ | |||
| let params = { | |||
| "rwwczt": "PUBLISHED", | |||
| "rwfbzt":"PUBLISHED", | |||
| "params":{deptId:this.$store.state.user.loginDeptId}, | |||
| "pageNum": this.countwhc+1, | |||
| "pageSize":10, | |||
| } | |||
| @@ -361,6 +364,7 @@ | |||
| let params = { | |||
| "rwwczt": "UNPUBLISHED", | |||
| "rwfbzt":"PUBLISHED", | |||
| "params":{deptId:this.$store.state.user.loginDeptId}, | |||
| "pageNum": this.countqb+1, | |||
| "pageSize":10, | |||
| } | |||
| @@ -53,6 +53,7 @@ | |||
| <van-search v-model="nhvalue" placeholder="请输入农户姓名或证件号" show-action @search="onSearchnh"> | |||
| <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="onClickWcnh" style="vertical-align:middle;"/> | |||
| </template> | |||
| </van-search> | |||
| </van-sticky> | |||
| @@ -83,6 +84,27 @@ | |||
| </template> | |||
| </van-cell> | |||
| </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>--> | |||
| </div> | |||
| </template> | |||
| @@ -90,7 +112,7 @@ | |||
| <script> | |||
| import {getQueryLand,getZjdzd,delZjdzdInfo,uploadFile,submitUploadImageList} from "@/api/homesteadSurvey/zjdzd"; | |||
| 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 {listSuyqr,updateSuyqr,addSuyqr} from "@/api/homesteadSurvey/suyqr"; | |||
| import {listZrz,getZrzZjdDmList,getZrz} from "@/api/homesteadSurvey/zrz"; | |||
| @@ -149,6 +171,7 @@ | |||
| showhzlx:false, | |||
| showhncylist:false, | |||
| showhncy:false, | |||
| showWcnh: false, | |||
| activeBtn:2, | |||
| value:'', | |||
| // 宅基地搜索框 | |||
| @@ -243,6 +266,9 @@ | |||
| searchBarOperVisbile: false, | |||
| mapDataAll: [], | |||
| showSearch:false, | |||
| outsideOpen:false, | |||
| outsideForm:{nhdm:null}, | |||
| wcnhList:[], | |||
| bottomHeight:'0px', | |||
| //搜索---end | |||
| //测面 | |||
| @@ -769,6 +795,30 @@ | |||
| this.$cookies.remove("search"); | |||
| 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(){ | |||
| this.$cookies.set("search","") | |||
| @@ -4743,6 +4793,7 @@ | |||
| return v.toString(16); | |||
| }); | |||
| }, | |||
| //宅基地点击地图核查 | |||
| zjdHc(){ | |||
| if(this.zjdHcDy != "" && this.zjdHcDy != "undefined"){ | |||
| @@ -4865,6 +4916,16 @@ | |||
| value.indexOf('zrzSx') == -1 ? this.zrzSx = false : this.zrzSx = 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(){ | |||
| this.showSearch = false ; | |||
| var height = $(".searchBar_wrap").outerHeight(true) - $(".searchBar_wrap .van-search").outerHeight(true) | |||
| @@ -7,35 +7,37 @@ | |||
| <div class="search_info"> | |||
| <div class="search_block"> | |||
| <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 class="total">查询</div> | |||
| <div class="total" @click="getCbfCount">查询</div> | |||
| </div> | |||
| <div class="list_main"> | |||
| <van-list | |||
| v-model="loading" | |||
| v-model:loading="loading" | |||
| :finished="finished" | |||
| 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="title"> | |||
| <i class="icon_box"></i> | |||
| <p class="news_title">李佳佳</p> | |||
| <p class="news_title">{{item.cbfmc}}</p> | |||
| </div> | |||
| <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 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> | |||
| <template #right> | |||
| <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"> | |||
| <p>记事签字</p> | |||
| </div> | |||
| @@ -47,14 +49,7 @@ | |||
| </div> | |||
| </template> | |||
| <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 MapGisLine from "@/components/Map/MapGisLine"; | |||
| export default { | |||
| @@ -64,15 +59,49 @@ | |||
| return { | |||
| loading: false, | |||
| finished: false, | |||
| value:'', | |||
| cbfList:[], | |||
| countcbf:0, | |||
| queryParams:{ | |||
| pageNum: 1, | |||
| pageSize: 10, | |||
| cbfbm:null}, | |||
| }; | |||
| }, | |||
| created() { | |||
| this.getCbfCount(); | |||
| }, | |||
| 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> | |||
| @@ -8,24 +8,24 @@ | |||
| <div class="information_main"> | |||
| <div class="titBox"> | |||
| <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 class="information_content"> | |||
| <div class="information_block"> | |||
| <p class="block_num">共有承包方<span>800</span>户</p> | |||
| <p class="block_num">共有承包方<span>{{cbfCount}}</span>户</p> | |||
| </div> | |||
| <div class="information_block"> | |||
| <p class="block_num">共有承包方<span>800</span>户</p> | |||
| <p class="block_num">承包地<span>{{cbfdkCount}}</span>亩</p> | |||
| </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=""> | |||
| <van-field | |||
| v-model="value" | |||
| v-model="form.gsjs" | |||
| rows="3" | |||
| autosize | |||
| required | |||
| @@ -35,46 +35,178 @@ | |||
| /> | |||
| </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=""> | |||
| <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=""> | |||
| </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> | |||
| </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> | |||
| </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> | |||
| </template> | |||
| <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 { | |||
| name: "certificateList", | |||
| data() { | |||
| 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() { | |||
| this.getCbfCount(); | |||
| this.getCbfdkCount(); | |||
| this.height = window.screen.height * 1.28 - 20; | |||
| }, | |||
| 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> | |||
| @@ -85,6 +217,27 @@ | |||
| background-size: 100% 100%; | |||
| 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{ | |||
| background: #e9e9e9; | |||
| 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;"/> | |||
| <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 class="subForm"> | |||
| <div class="subForm" v-if="!showForm2"> | |||
| <img src="../../assets/images/sunVillage_info/list_employer_process_icon_01.png" alt=""> | |||
| <van-field | |||
| v-model="value" | |||
| v-model="form.gsjs" | |||
| rows="3" | |||
| autosize | |||
| required | |||
| @@ -35,44 +52,186 @@ | |||
| :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" /> | |||
| <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 class="subForm2"> | |||
| <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="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=""> | |||
| </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> | |||
| </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> | |||
| </template> | |||
| <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 { | |||
| name: "certificateList", | |||
| components: {FieldSelect}, | |||
| data() { | |||
| return { | |||
| value:'' | |||
| form:{}, | |||
| showForm2:false, | |||
| showesign:false, | |||
| height:0, | |||
| options: { | |||
| cert_type: [], | |||
| }, | |||
| //电子签名 | |||
| signature: { | |||
| lineWidth: 6, // 画笔的线条粗细 | |||
| lineColor: "#000000", // 画笔的颜色 | |||
| bgColor: "", // 画布的背景颜色 | |||
| resultImg: "", // 最终画布生成的base64图片 | |||
| isCrop: false, // 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | |||
| }, | |||
| }; | |||
| }, | |||
| 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: { | |||
| 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> | |||
| @@ -83,7 +242,27 @@ | |||
| background-size: 100% 100%; | |||
| 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; | |||
| min-height: 100vh; | |||
| width: 100vw; | |||
| @@ -7,35 +7,36 @@ | |||
| <div class="search_info"> | |||
| <div class="search_block"> | |||
| <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 class="total">查询</div> | |||
| <div class="total" @click="getCbfCount">查询</div> | |||
| </div> | |||
| <div class="list_main"> | |||
| <van-list | |||
| v-model="loading" | |||
| v-model:loading="loading" | |||
| :finished="finished" | |||
| 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="title"> | |||
| <i class="icon_box"></i> | |||
| <p class="news_title">李佳佳</p> | |||
| <p class="news_title">{{item.cbfmc}}</p> | |||
| </div> | |||
| <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 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> | |||
| <template #right> | |||
| <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"> | |||
| <p>审核签字</p> | |||
| </div> | |||
| @@ -49,14 +50,7 @@ | |||
| </div> | |||
| </template> | |||
| <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 MapGisLine from "@/components/Map/MapGisLine"; | |||
| export default { | |||
| @@ -66,15 +60,51 @@ | |||
| return { | |||
| loading: false, | |||
| finished: false, | |||
| cbfList:[], | |||
| countcbf:0, | |||
| queryParams:{ | |||
| pageNum: 1, | |||
| pageSize: 10, | |||
| cbfbm:null}, | |||
| value:'', | |||
| }; | |||
| }, | |||
| created() { | |||
| this.getCbfCount(); | |||
| }, | |||
| 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> | |||
| @@ -8,21 +8,21 @@ | |||
| <div class="information_main"> | |||
| <div class="titBox"> | |||
| <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 class="information_content"> | |||
| <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> | |||
| </div> | |||
| <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 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> | |||
| @@ -33,15 +33,21 @@ | |||
| <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="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 class="subForm"> | |||
| <div class="subForm" v-if="!showForm2"> | |||
| <img src="../../assets/images/sunVillage_info/list_employer_process_icon_01.png" alt=""> | |||
| <van-field | |||
| v-model="value" | |||
| v-model="form.gsshyj" | |||
| rows="3" | |||
| autosize | |||
| required | |||
| @@ -51,46 +57,182 @@ | |||
| /> | |||
| </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=""> | |||
| <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=""> | |||
| </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> | |||
| </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> | |||
| </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> | |||
| </template> | |||
| <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 { | |||
| name: "certificateList", | |||
| data() { | |||
| 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() { | |||
| this.getCbfCount(); | |||
| this.getCbfdkCount(); | |||
| this.getCbfGsqzCount(); | |||
| this.height = window.screen.height * 1.28 - 20; | |||
| }, | |||
| 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> | |||
| @@ -101,6 +243,26 @@ | |||
| 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; | |||
| @@ -1,78 +1,236 @@ | |||
| <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 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 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> | |||
| </van-popup> | |||
| </div> | |||
| </template> | |||
| <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 { | |||
| name: "certificateList", | |||
| components: {FieldSelect}, | |||
| data() { | |||
| return { | |||
| value:'' | |||
| form:{}, | |||
| showForm2:false, | |||
| showesign:false, | |||
| height:0, | |||
| options: { | |||
| cert_type: [], | |||
| }, | |||
| //电子签名 | |||
| signature: { | |||
| lineWidth: 6, // 画笔的线条粗细 | |||
| lineColor: "#000000", // 画笔的颜色 | |||
| bgColor: "", // 画布的背景颜色 | |||
| resultImg: "", // 最终画布生成的base64图片 | |||
| isCrop: false, // 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | |||
| }, | |||
| }; | |||
| }, | |||
| 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: { | |||
| 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> | |||
| @@ -83,82 +241,102 @@ | |||
| background-size: 100% 100%; | |||
| 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; | |||
| 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; | |||
| .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{ | |||
| padding:25px; | |||
| background: #ffffff; | |||
| @@ -176,46 +354,46 @@ | |||
| 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; | |||
| } | |||
| 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; | |||
| @@ -226,21 +404,21 @@ | |||
| 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%); | |||
| } | |||
| .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; | |||
| @@ -264,5 +442,5 @@ | |||
| /deep/ .van-cell--required::before{ | |||
| left: 85PX; | |||
| } | |||
| } | |||
| } | |||
| </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;"/> | |||
| <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="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 class="subForm"> | |||
| <div class="subForm" v-if="!showShenHe"> | |||
| <img src="../../assets/images/sunVillage_info/list_employer_process_icon_01.png" alt=""> | |||
| <van-field | |||
| v-model="value" | |||
| v-model="form.shyj" | |||
| rows="3" | |||
| autosize | |||
| required | |||
| @@ -34,39 +42,174 @@ | |||
| /> | |||
| </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=""> | |||
| <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=""> | |||
| </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> | |||
| </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> | |||
| </template> | |||
| <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 request from '@/utils/request' | |||
| export default { | |||
| name: "certificateList", | |||
| data() { | |||
| return { | |||
| value:'' | |||
| value:'', | |||
| showesign:false, | |||
| showShenHe:false, | |||
| showShqz:true, | |||
| height:0, | |||
| form:{}, | |||
| //电子签名 | |||
| signature: { | |||
| lineWidth: 6, // 画笔的线条粗细 | |||
| lineColor: "#000000", // 画笔的颜色 | |||
| bgColor: "", // 画布的背景颜色 | |||
| resultImg: "", // 最终画布生成的base64图片 | |||
| isCrop: false, // 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | |||
| }, | |||
| }; | |||
| }, | |||
| created() { | |||
| this.getSysFfb(); | |||
| this.height = window.screen.height * 1.28 - 20; | |||
| }, | |||
| 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> | |||
| @@ -77,6 +220,28 @@ | |||
| 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; | |||
| @@ -45,7 +45,6 @@ | |||
| this.$toast.loading({ | |||
| message: "正在加载文件", | |||
| forbidClick: true, | |||
| duration: 20000, | |||
| }); | |||
| loadingTask.promise.then(pdf => { | |||
| this.numPages = pdf.numPages | |||