@@ -9,3 +9,7 @@ export default | |||
export const REGION = { | |||
YI_LONG_XIAN: '仪陇', | |||
} | |||
export const REGEXP = { | |||
PASSWORD: /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!@#$%^&*])[\da-zA-Z~!@#$%^&*]{8,}$/, | |||
}; |
@@ -63,7 +63,7 @@ | |||
<div style="padding:15px;"> | |||
<p style="display: flex;align-items: center;"> | |||
<img src="../../assets/images/housesteadSurvey/add03.png" alt="" style="margin-right: 5px;"> | |||
<span style="line-height: 1;font-size: 16px;">{{item.fssslx}}</span> | |||
<span style="line-height: 1;font-size: 16px;">{{ formatDict(fssslxList, item.fssslx) }}</span> | |||
</p> | |||
<div style="display:flex;line-height:20px;margin-top: 15px;font-size: 14px;color: #999999;"> | |||
<p style="flex:1;text-align:left;">建筑面积(㎡):</p> | |||
@@ -71,7 +71,7 @@ | |||
</div> | |||
<div style="display:flex;line-height:20px;margin-top: 5px;font-size: 14px;color: #999999;"> | |||
<p style="flex:1;text-align:left;">建筑物情况:</p> | |||
<p style="flex:1;text-align:right;">{{item.jzwqk}}</p> | |||
<p style="flex:1;text-align:right;">{{ formatDict(jzwqkList, item.jzwqk) }} </p> | |||
</div> | |||
<div style="text-align:center;overflow:auto;display: flex;justify-content: center;margin-top: 10px;"> | |||
<p style="width:49%;display: flex;align-items: center;justify-content:center;border: 1px solid transparent;background: #22B7F2;padding: 3px 0;border-radius: 50px;" @click="showPopupzrz(item)"> | |||
@@ -173,6 +173,8 @@ export default { | |||
permission:false, | |||
bztp:"", | |||
ycbz:"", | |||
jzwqkList:[], | |||
fssslxList:[], | |||
examineData:[{dictLabel:"审批通过",dictValue:"5"},{dictLabel:"审批驳回",dictValue:"4"}], | |||
zjdzdxx:{surveyStatus:"5"}, | |||
fssslist:[], | |||
@@ -187,13 +189,19 @@ export default { | |||
}; | |||
}, | |||
created(){ | |||
this.houseGetDicts("jzwqk").then((response) => { | |||
this.jzwqkList = response.data; | |||
}); | |||
this.houseGetDicts("fsss_type").then((response) => { | |||
this.fssslxList = response.data; | |||
}); | |||
this.zjdzdxx = JSON.parse(localStorage.getItem("zjdzdxxItem")); | |||
this.permission = localStorage.getItem("executePermission"); | |||
let businessLevel = this.$store.state.user.businessLevel; | |||
console.info(this.zjdzdxx); | |||
if(this.zjdzdxx.surveySign != null){ | |||
this.signature.resultImg = this.$store.getters.baseRoutingUrl+this.zjdzdxx.surveySign; | |||
} | |||
console.info(businessLevel); | |||
if(this.zjdzdxx.id !== undefined){ | |||
getZjdzd(this.zjdzdxx.id).then((response) => { | |||
if(response.data.surveyStatus !== "1" && businessLevel === "2"){ | |||
@@ -293,12 +301,12 @@ export default { | |||
zjddcSign(param, this.zjdzdxx.zjddm).then(response => { | |||
this.$notify({type: 'success', message: '签字成功'}); | |||
this.showesign = false; | |||
// location.reload(); | |||
getZjdzd(this.zjdzdxx.id).then((response) => { | |||
localStorage.setItem("zjdzdxxItem",JSON.stringify(response.data)) | |||
location.reload(); | |||
}); | |||
this.getList(); | |||
}); | |||
}) | |||
@@ -307,6 +315,9 @@ export default { | |||
this.$toast.fail('请签名后再保存签字'); | |||
}); | |||
}, | |||
formatDict(dict, value) { | |||
return this.selectDictLabel(dict, value); | |||
}, | |||
dataURLtoBlob (dataurl, filename = 'file') { | |||
let arr = dataurl.split(',') | |||
let mime = arr[0].match(/:(.*?);/)[1] | |||
@@ -566,57 +566,21 @@ | |||
}, | |||
//删除户主 | |||
deletenh(item,index){ | |||
let yes = true | |||
let params={ | |||
nhdm : item.nhdm, | |||
deptId: item.deptId | |||
} | |||
listNhhncy(params).then((res) => { | |||
console.log(res.rows.length) | |||
if(res.rows.length>0){ | |||
yes = false | |||
this.$toast({ | |||
icon: 'error', // 找到自己需要的图标 | |||
message: '无法删除,此户主存在户内成员!', | |||
duration:"1000", | |||
onClose:function(){ | |||
Dialog.confirm({ | |||
title: '警告', | |||
message: '确认删除户内成员么?', | |||
}) | |||
.then(() => { | |||
// on confirm | |||
delNhhncy(item.id).then(res => { | |||
if(res.code=="200"){ | |||
this.hncylist.splice(index,1); | |||
} | |||
}) | |||
}else{ | |||
listShyqr(params).then((res) => { | |||
if(res.rows.length>0){ | |||
yes = false | |||
this.$toast({ | |||
icon: 'error', // 找到自己需要的图标 | |||
message: '无法删除,此户主已经成为使用权人!', | |||
duration:"1000", | |||
onClose:function(){ | |||
} | |||
}) | |||
}else{ | |||
if(yes){ | |||
Dialog.confirm({ | |||
title: '警告', | |||
message: '确认删除此使用权人么?', | |||
}) | |||
.then(() => { | |||
// on confirm | |||
delNh(item.id).then(res => { | |||
if(res.code=="200"){ | |||
this.nhlist.splice(index,1); | |||
this.totalH-- | |||
this.totalR-- | |||
} | |||
}) | |||
}) | |||
.catch(() => { | |||
// on cancel | |||
}); | |||
} | |||
} | |||
}); | |||
} | |||
}); | |||
}) | |||
.catch(() => { | |||
// on cancel | |||
}); | |||
}, | |||
// 设为户主 | |||
@@ -84,7 +84,7 @@ | |||
size="70%" | |||
layer-color="#ebedf0" | |||
:color="chooseColor(item)" | |||
:text="item.zjdwcsl!=0?(((item.zjdwcsl/item.zjdsl)*100).toFixed(2))+'%':0+'%'" | |||
:text="item.zjdwcsl!=0?(item.zjdwcsl == item.zjdsl?100+'%':(((item.zjdwcsl/item.zjdsl)*100).toFixed(2))+'%'):0+'%'" | |||
/> | |||
</template> | |||
<template #label> | |||
@@ -111,7 +111,7 @@ | |||
size="70%" | |||
layer-color="#ebedf0" | |||
:color="chooseColor(item)" | |||
:text="item.zjdwcsl!=0?(((item.zjdwcsl/item.zjdsl)*100).toFixed(2))+'%':0+'%'" | |||
:text="item.zjdwcsl!=0?(item.zjdwcsl == item.zjdsl?100+'%':(((item.zjdwcsl/item.zjdsl)*100).toFixed(2))+'%'):0+'%'" | |||
/> | |||
</template> | |||
<template #label> | |||
@@ -137,7 +137,7 @@ | |||
size="70%" | |||
layer-color="#ebedf0" | |||
:color="chooseColor(item)" | |||
:text="item.zjdwcsl!=0?(((item.zjdwcsl/item.zjdsl)*100).toFixed(2))+'%':0+'%'" | |||
:text="item.zjdwcsl!=0?(item.zjdwcsl == item.zjdsl?100+'%':(((item.zjdwcsl/item.zjdsl)*100).toFixed(2))+'%'):0+'%'" | |||
/> | |||
</template> | |||
<template #label> | |||
@@ -436,10 +436,6 @@ | |||
showUploadList(){ | |||
this.showImageList = true; | |||
}, | |||
onCancel(){ | |||
console.info(2321) | |||
this.zjdvalue = ""; | |||
}, | |||
submitUploadList(){ | |||
submitUploadImageList(this.uploadImgList1).then(res => { | |||
let _this = this | |||
@@ -73,7 +73,7 @@ | |||
</div> | |||
</div> | |||
<template #right> | |||
<van-button v-if="permission == 'true'" square text="删除" type="danger" class="delete-button" @click="deletesyqr(item.id,index)"/> | |||
<van-button v-if="permission == 'true'" square text="删除" type="danger" class="delete-button" @click="deletehncy(item.id,index)"/> | |||
</template> | |||
</van-swipe-cell> | |||
<div v-if="permission == 'true'" style=" width:95%;margin:20px auto;display: flex;justify-content: space-between;"> | |||
@@ -147,6 +147,24 @@ export default { | |||
showPopuphncy(val){ | |||
this.$router.push({name:'nhcyAdd',query:val}); | |||
}, | |||
// 删除户内成员 | |||
deletehncy(id,index){ | |||
Dialog.confirm({ | |||
title: '警告', | |||
message: '确认删除户内成员么?', | |||
}) | |||
.then(() => { | |||
// on confirm | |||
delNhhncy(id).then(res => { | |||
if(res.code=="200"){ | |||
this.hnnylist.splice(index,1); | |||
} | |||
}) | |||
}) | |||
.catch(() => { | |||
// on cancel | |||
}); | |||
}, | |||
} | |||
} | |||
</script> | |||
@@ -515,7 +515,7 @@ export default { | |||
} | |||
}, | |||
cancel(){ | |||
this.$router.push({path:'/homesteadSurvey/nmfwList',query: {zjddm: this.form.zjddm}}); | |||
this.$router.push({path:'/homesteadSurvey/nmfwList',query: {nmfwzh:this.form.nmfwzh}}); | |||
}, | |||
// 获取登录人位置坐标 | |||
getLandCoord(func) { | |||
@@ -30,7 +30,7 @@ | |||
</div> | |||
<div class="flex_block"> | |||
<i class="icon icon_2"></i> | |||
<div class="text">填报数: {{item.params.numReport}}</div> | |||
<div class="text">总填报数: {{item.params.numReport}}</div> | |||
</div> | |||
</div> | |||
</div> | |||
@@ -71,7 +71,7 @@ | |||
<div class="full-height" v-else-if="col.type === '4'"> | |||
<input class="input-field align-center full-height" v-model="col.name" :readonly="disableEdit"></input> | |||
</div> | |||
<div v-else :style="{'text-align': calcAlign(col.type)}">{{col.name}}</div> | |||
<div v-else class="full-height flex-center" :style="{'justify-content': calcAlign(col.type)}">{{col.name}}</div> | |||
<van-icon name="edit" v-if="cindex === editorData.headerTypes.length - 1 && canEdit(col)" class="edit-icon" color="#1989fa" size="24" @click="edit(col)"/> | |||
</div> | |||
@@ -170,6 +170,7 @@ export default { | |||
this.loading = true; | |||
summaryList({ | |||
templateId: this.editorData.templateId, | |||
deptId: Cookies.get('deptId'), | |||
}).then((resp) => { | |||
this.editorData = resp.data; | |||
}).finally(() => { | |||
@@ -467,6 +468,11 @@ export default { | |||
right: -0.6rem; | |||
top: calc(50% - 0.3rem); | |||
} | |||
.flex-center { | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
} | |||
} | |||
@@ -51,7 +51,8 @@ | |||
<div class="main-table" v-if="!!editorData.templateId"> | |||
<div v-for="(header, rindex) in editorData.detailHeaders"> | |||
<van-field v-if="header.type === '2'" label-width="50%" :readonly="disableEdit" v-model="editorData.rows[0][rindex].val" :label="header.headerName" :placeholder="header.headerName" input-align="right" type="number"/> | |||
<van-field v-else-if="header.type === '4' || header.type === '3'" label-width="50%" :readonly="disableEdit" v-model="editorData.rows[0][rindex].name" :label="header.headerName" :placeholder="header.headerName" input-align="right"/> | |||
<van-field v-else-if="header.type === '4'" label-width="50%" :readonly="disableEdit" v-model="editorData.rows[0][rindex].name" :label="header.headerName" :placeholder="header.headerName" input-align="right"/> | |||
<van-field v-else-if="header.type === '3'" label-width="50%" :readonly="disableEdit" v-model="editorData.rows[0][rindex].name" :label="header.headerName" :placeholder="header.headerName" type="digit" input-align="right"/> | |||
<van-field v-else label-width="50%" :readonly="true" :value="editorData.rows[0][rindex].name" :label="header.headerName" :placeholder="header.headerName" input-align="right"/> | |||
</div> | |||
</div> | |||
@@ -525,6 +526,11 @@ export default { | |||
.form_readonly /deep/ .van-icon-arrow-down { | |||
display: none; | |||
} | |||
.main-table /deep/ .van-field { | |||
height: unset; | |||
min-height: 1rem; | |||
} | |||
} | |||
@@ -65,9 +65,11 @@ export default { | |||
loading: false, | |||
finished: false, | |||
idcard:null, | |||
farmerCode:null, | |||
queryParams:{ | |||
pageNum:1, | |||
pageSize:10, | |||
farmerCode:null, | |||
deptId: Cookies.get('deptId'), | |||
orderByColumn:'createTime', | |||
isAsc:'desc', | |||
@@ -88,8 +90,7 @@ export default { | |||
this.houseGetDicts("tcfs").then((res) => { | |||
this.tcfsStatus = res.data; | |||
}); | |||
this.idcard = Cookies.get('idcard'); | |||
this.$set(this.queryParams, "sqrzjhm", this.idcard); | |||
this.queryParams.farmerCode = Cookies.get('farmerCode'); | |||
this.houseGetDicts("yctcsp_status").then((res) => { | |||
// this.auditStatus = res.data; | |||
let _this = this; | |||
@@ -58,6 +58,7 @@ | |||
<script> | |||
import { getCodeImg, getSmsCode } from "@/api/login"; | |||
import { checkFarmer } from "@/api/sunVillage_info/fixedAssets"; | |||
import { getFamilyMemberList } from "@/api/sunVillage_info/homestead/familyMember"; | |||
import Cookies from "js-cookie"; | |||
import { encrypt, decrypt } from "../../utils/jsencrypt"; | |||
//引用wx sdk | |||
@@ -96,6 +97,7 @@ | |||
idcard: idcard === undefined ? this.formData.idcard : idcard, | |||
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe), | |||
}; | |||
}, | |||
handleLogin(values) { | |||
if (this.formData.rememberMe) { | |||
@@ -125,9 +127,13 @@ | |||
let seconds = 3600; | |||
let expires = new Date(new Date() * 1 + seconds * 1000); | |||
getFamilyMemberList({idcard:this.formData.idcard,familyStatus:"02"}).then(res => { | |||
const farmerCode = res.rows[0].farmerCode; | |||
Cookies.set("farmerCode",farmerCode, { expires: 30 }); | |||
Cookies.set("user", response.data, { expires: expires }); | |||
this.$router.push({path:'/sunVillage_info/index_code_rights'}) | |||
}) | |||
Cookies.set("user", response.data, { expires: expires }); | |||
this.$router.push({path:'/sunVillage_info/index_code_rights'}) | |||
} | |||
}); | |||
}, | |||
@@ -5,14 +5,14 @@ | |||
<div class="return_btn" @click="onClickLeft"></div> | |||
<div class="add_btn" @click="send">保存</div> | |||
</div> | |||
<van-form @submit="onSubmit" ref="formData"> | |||
<van-form @submit="onSubmit" ref="formData" error-message-align="right"> | |||
<div class="list_main"> | |||
<van-field required label="旧密码" :rules="[{ required: true , message:'请输入旧密码' }]" v-model="user.oldPassword" placeholder="请输入旧密码" input-align="right" :border="false" /> | |||
<van-field required label="旧密码" :rules="[{ required: true , message:'' }]" v-model="user.oldPassword" placeholder="请输入旧密码" input-align="right" :border="false" /> | |||
<van-field required label="新密码" :rules="[{ required: true , message:'请输入新密码'}]" v-model="user.newPassword" placeholder="请输入新密码" input-align="right" :border="false" /> | |||
<van-field required label="新密码" :rules="rules.newPassword" v-model="user.newPassword" placeholder="请输入新密码" input-align="right" :border="false" /> | |||
<van-field required label="确认密码" :rules="[{ required: true, message: '请确认密码' }]" prop="email" v-model="user.confirmPassword" placeholder="请确认密码" input-align="right" :border="false" /> | |||
<van-field required label="确认密码" :rules="[{ required: true, message: '' }]" prop="email" v-model="user.confirmPassword" placeholder="请确认密码" input-align="right" :border="false" /> | |||
</div> | |||
@@ -27,11 +27,21 @@ | |||
<script> | |||
import { updateUserPwd } from "@/api/sunVillage_info/fixedAssets"; | |||
import {REGEXP} from "@/utils/global"; | |||
import {Notify} from "vant"; | |||
export default { | |||
name: "certificateList", | |||
data() { | |||
return { | |||
user:{}, | |||
rules: { | |||
newPassword: [ | |||
{ required: true , message:''}, | |||
{ validator: (val) => { return val.length >= 8; }, message: '密码长度至少8位', }, | |||
{ validator: (val) => { return val.length <= 20; }, message: '密码长度不能超过20位', }, | |||
{ pattern: REGEXP.PASSWORD, message: '密码必须包括字母、数字、特殊符号!', } | |||
], | |||
}, | |||
}; | |||
}, | |||
created() { | |||
@@ -46,6 +56,8 @@ | |||
that.$notify({ type: 'warning', message: '两次输入的密码不一致!' }); | |||
return; | |||
} | |||
if(!this.validatePassword(this.user.newPassword)) | |||
return; | |||
updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => { | |||
that.$notify({ type: 'success', message: '修改成功!' }); | |||
setTimeout(function(){ | |||
@@ -53,6 +65,15 @@ | |||
},2000) | |||
}); | |||
}, | |||
validatePassword(what) { | |||
if(!(REGEXP.PASSWORD.test(what))) | |||
{ | |||
Notify.clear(); | |||
Notify({ type: 'danger', message: '密码至少8个字符,必须包括字母、数字、特殊符号!' }); | |||
return false; | |||
} | |||
return true; | |||
}, | |||
}, | |||
} | |||
</script> | |||
@@ -176,7 +197,7 @@ | |||
left: 0PX; | |||
} | |||
/deep/ .van-field__error-message{ | |||
display: none; | |||
/*display: none;*/ | |||
} | |||
} | |||
</style> |
@@ -6,7 +6,7 @@ | |||
@click-left="$router.back(-1)" | |||
/> | |||
<van-cell-group style="width: 96%;margin:2%;border-radius: 6px;overflow: hidden;padding-top: 10px;padding-bottom: 10px;box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);"> | |||
<van-field type="password" v-model="user.oldPassword" placeholder="" > | |||
<van-field type="password" v-model="user.oldPassword" placeholder="" @input="clearError" > | |||
<template #left-icon> | |||
<van-image | |||
height="20" | |||
@@ -17,7 +17,7 @@ | |||
<H4 style="margin-left: 5px">原密码</H4> | |||
</template> | |||
</van-field> | |||
<van-field type="password" v-model="user.newPassword" placeholder="" > | |||
<van-field type="password" :error-message="validate.newPassword" v-model="user.newPassword" placeholder="" @input="clearError" @blur="validate_newPassword"> | |||
<template #left-icon> | |||
<van-image | |||
height="20" | |||
@@ -28,7 +28,7 @@ | |||
<H4 style="margin-left: 5px">新密码</H4> | |||
</template> | |||
</van-field> | |||
<van-field type="password" v-model="user.confirmPassword" placeholder="" > | |||
<van-field type="password" v-model="user.confirmPassword" placeholder="" @input="clearError"> | |||
<template #left-icon> | |||
<van-image | |||
height="20" | |||
@@ -49,6 +49,8 @@ | |||
<script> | |||
import onlineHomeIndex from "../onlineHomeIndex"; | |||
import {updateUserPwd} from "../../api/onlineHome/my"; | |||
import {REGEXP} from "@/utils/global"; | |||
import {Notify} from "vant"; | |||
export default { | |||
components: { | |||
@@ -62,10 +64,15 @@ | |||
newPassword: undefined, | |||
confirmPassword: undefined | |||
}, | |||
validate: { | |||
newPassword: '', | |||
}, | |||
}; | |||
}, | |||
methods: { | |||
submit() { | |||
if(!this.validate_newPassword()) | |||
return; | |||
console.log(this.user) | |||
if(this.user.confirmPassword | |||
!=this.user.newPassword){ | |||
@@ -73,14 +80,19 @@ | |||
icon: 'error', // 找到自己需要的图标 | |||
message: '两次密码不同,请重新输入', | |||
duration:"1000", | |||
onClose:function(){ | |||
this.user.oldPassword="" | |||
this.user.newPassword="" | |||
this.user.confirmPassword="" | |||
onClose:() => { | |||
if(0) | |||
{ | |||
this.user.oldPassword="" | |||
this.user.newPassword="" | |||
this.user.confirmPassword="" | |||
} | |||
return false; | |||
} | |||
}) | |||
}else{ | |||
if(!this.validatePassword(this.user.newPassword)) | |||
return; | |||
updateUserPwd(this.user.oldPassword, this.user.newPassword).then( | |||
response => { | |||
let _this =this | |||
@@ -95,7 +107,43 @@ | |||
} | |||
); | |||
} | |||
}, | |||
validatePassword(what) { | |||
if(!(REGEXP.PASSWORD.test(what))) | |||
{ | |||
Notify.clear(); | |||
Notify({ type: 'danger', message: '密码至少8个字符,必须包括字母、数字、特殊符号!' }); | |||
return false; | |||
} | |||
return true; | |||
}, | |||
validate_newPassword() { | |||
let password = this.user.newPassword; | |||
if(!password) | |||
{ | |||
this.validate.newPassword = ''; | |||
return false; | |||
} | |||
if(password.length < 8) | |||
{ | |||
this.validate.newPassword = '密码长度至少8位'; | |||
return false; | |||
} | |||
if(password.length > 20) | |||
{ | |||
this.validate.newPassword = '密码长度不能超过20位'; | |||
return false; | |||
} | |||
if(!(REGEXP.PASSWORD.test(password))) | |||
{ | |||
this.validate.newPassword = '密码必须包括字母、数字、特殊符号!'; | |||
return false; | |||
} | |||
this.validate.newPassword = ''; | |||
return true; | |||
}, | |||
clearError() { | |||
this.validate.newPassword = ''; | |||
}, | |||
} | |||
} | |||