Browse Source

Merge branch 'dev' into preview

feature
wxz 2 years ago
parent
commit
a42b7bc1e6
  1. BIN
      src/assets/images/index/house.png
  2. BIN
      src/assets/images/index/i-more.png
  3. BIN
      src/assets/images/index/nan.png
  4. BIN
      src/assets/images/index/nv.png
  5. BIN
      src/assets/images/index/resi.png
  6. BIN
      src/assets/images/index/title-icon-jfjl.png
  7. BIN
      src/assets/images/index/title-icon-jtgx.png
  8. BIN
      src/assets/images/index/title-icon-xsfw.png
  9. BIN
      src/assets/images/index/title-icon-ywjl.png
  10. 86
      src/assets/scss/pages/huaxiang.scss
  11. 2
      src/js/store/index.js
  12. 20
      src/js/store/modules/huaXiang.js
  13. 14
      src/router/index.js
  14. 21
      src/utils/validate.js
  15. 93
      src/views/components/resiForm.vue
  16. 1
      src/views/dataBoard/cpts/personnel/modules/MatterDetails.vue
  17. 251
      src/views/modules/base/huji/immigration/edit.vue
  18. 3
      src/views/modules/base/residentManagement/housingNature/housingNature.vue
  19. 2
      src/views/modules/base/residentManagement/oldPeople/oldPeople.vue
  20. 10
      src/views/modules/base/residentManagement/publicWelfarePost/addForm.vue
  21. 3
      src/views/modules/base/residentManagement/tefu/tefuList.vue
  22. 2
      src/views/modules/communityParty/regionalParty/activitys.vue
  23. 2
      src/views/modules/communityService/labelConfig/addForm.vue
  24. 4
      src/views/modules/communityService/measure/index.vue
  25. 99
      src/views/modules/jumin/cpts/leftBto.vue
  26. 71
      src/views/modules/jumin/cpts/leftTop.vue
  27. 96
      src/views/modules/jumin/huaxiang.vue
  28. 4
      src/views/modules/satisfaction/satisfactionProvince/index.vue
  29. 29
      src/views/modules/shequ/chaxun.vue
  30. 2
      src/views/modules/shequzhili/event/cpts/add.vue
  31. 2
      src/views/modules/shequzhili/event/cpts/event-detail.vue
  32. 13
      src/views/modules/shequzhili/event/cpts/event-info.vue
  33. 4
      src/views/modules/shequzhili/event/cpts/myCascader.vue
  34. 11
      src/views/modules/shequzhili/event/cpts/process-form-designate.vue
  35. 17
      src/views/modules/shequzhili/event/cpts/process-form-replay-end.vue
  36. 6
      src/views/modules/shequzhili/event/cpts/process-form-replay.vue
  37. 21
      src/views/modules/shequzhili/event/eventList.vue

BIN
src/assets/images/index/house.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
src/assets/images/index/i-more.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 575 B

BIN
src/assets/images/index/nan.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
src/assets/images/index/nv.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
src/assets/images/index/resi.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

BIN
src/assets/images/index/title-icon-jfjl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
src/assets/images/index/title-icon-jtgx.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
src/assets/images/index/title-icon-xsfw.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
src/assets/images/index/title-icon-ywjl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

86
src/assets/scss/pages/huaxiang.scss

@ -0,0 +1,86 @@
.g-main{
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
padding:25px 16px;
box-sizing: border-box;
.top{
display: flex;
height: calc(50vh - 104px);
.left{
width: 320px;
height: 100%;
margin-right:16px;
overflow-y: scroll;
}
.right{
flex: 1;
overflow-y: scroll;
}
}
.bottom{
height: calc(50vh - 104px);
margin-top: 16px;
display: flex;
.left{
width: 320px;
height: 100%;
margin-right:16px;
overflow-y: scroll;
}
.right{
flex: 1;
overflow-y: scroll;
}
}
}
.card{
background-color: #fff;
padding: 10px 16px 16px;
overflow: hidden;
height: 100%;
display: flex;
flex-direction: column;
.title{
font-family: PingFang SC;
font-weight: bold;
color: #333333;
display: flex;
align-items: center;
justify-content: space-between;
img{
width: 24px;
height: 24px;
}
}
.bgC{
flex: 1;
background-color: #f5f7fa;
border-radius: 2px;
overflow-y: scroll;
display: flex;
flex-direction: column;
padding: 0 16px;
.item{
margin-top: 19px;
.value{
color: #333333;
font-family: PingFang SC;
font-weight: 400;
}
}
}
}
.gray{
color: #000000;
opacity: 0.65;
}
.bgf{
background-color: #fff ;
margin-top: 0 !important;
}

2
src/js/store/index.js

@ -5,6 +5,7 @@ import user from "./modules/user";
import app from "./modules/app";
import tagsView from "./modules/tagsView";
import chooseArea from "./modules/chooseArea";
import huaXiang from "./modules/huaXiang";
import categoryStr from "./modules/categoryStr";
import { requestPost } from "@/js/dai/request";
import { dateFormats } from "@/utils/index";
@ -49,6 +50,7 @@ export default new Vuex.Store({
tagsView,
categoryStr,
chooseArea,
huaXiang
},
mutations: {
// 重置vuex本地储存状态

20
src/js/store/modules/huaXiang.js

@ -0,0 +1,20 @@
const huaXiang ={
state: {
userInfo:null || JSON.parse(localStorage.getItem('huaX'))
},
mutations: {
setData(state, payload) {
state.userInfo = payload;
}
},
actions: {
saveData({ commit }, payload) {
console.log(payload,'vueX接参');
commit('setData', payload);
localStorage.setItem('huaX', JSON.stringify(payload));
}
}
};
export default huaXiang;

14
src/router/index.js

@ -108,6 +108,16 @@ export const moduleRoutes = {
title: "社区查询",
},
},
{
path: "jumin-huaxiang",
props: true,
name: "jumin-huaxiang",
component: () => import("@/views/modules/jumin/huaxiang"),
meta: {
isTab: true,
title: "",
},
}
],
};
// pc端菜单的 如果没有配置 默认的 或者配置了默认的 但没有权限 默认选中第一
@ -696,6 +706,10 @@ router.beforeEach((to, from, next) => {
if (to.name === "caiji") {
return next();
}
if(to.name === 'jumin-huaxiang'){
to.meta.title = store.state.huaXiang.userInfo.name
return next();
}
if (window.SITE_CONFIG["dynamicMenuRoutesHasAdded"] || fnCurrentRouteIsPageRoute(to, pageRoutes)) {
return next();
}

21
src/utils/validate.js

@ -49,3 +49,24 @@ export function isPassport(s) {
return reg.test(s);
}
/**
* 港澳身份证
* @param {*} s
*/
export function isHKPassport(s) {
return /^([A-Z]\d{6,10}(\(\w{1}\))?)$/.test(s);;
}
/**
* 台湾身份证
* @param {*} s
*/
export function isTwPassport(s) {
return /^\d{8}|^[a-zA-Z0-9]{10}|^\d{18}$/.test(s);;
}
/**
* 军官证
* @param {*} s
*/
export function isSoldier(s) {
return /^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$/.test(s);;
}

93
src/views/components/resiForm.vue

@ -128,7 +128,9 @@
:placeholder="`请选择${item.label}`"
size="small"
clearable
class="u-item-width-normal">
class="u-item-width-normal"
@change="handleChangSelect(item.formName)"
>
<el-option v-for="items in item.opction"
:key="items.value"
:label="items.label"
@ -401,7 +403,7 @@
</template>
<script>
import { isCard, isPassport, isMobile, isPhone } from '@/utils/validate'
import { isCard, isPassport, isMobile, isPhone,isHKPassport,isTwPassport,isSoldier } from '@/utils/validate'
import { computedCard } from '@/utils/index'
import { idTypeList } from "@/js/columns/constants";
import {requestGet} from "@/js/dai/request";
@ -495,17 +497,7 @@ export default {
label: "证件号",
itemType: "input",
formName: "idNum",
rules: [{ required: true, message: '证件号不能为空' },
{
validator: (rule, value, callback) => {
if (!/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/.test(value)) {
return callback(new Error('证件格式不符合'));
}
callback()
}, trigger: 'change' | blur
}
],
rules: [{ required: true, message: '证件号不能为空' },],
opction: [],
},
{
@ -1583,6 +1575,7 @@ export default {
}
},
computed: {
},
watch: {
form: {
@ -2130,6 +2123,80 @@ export default {
if (this.supportAdd) newForm = this.handlerMuscForm()
return newForm
},
//
handleChangSelect(formName){
if(formName != 'idType') return
this.basicInformation.forEach(item=>{
if(item.formName == 'idNum'){
item.rules.length = 1
if(this.form.idType == 4){
let obj = {
validator: (rule, value, callback) => {
if (!/^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$/.test(value)) {
return callback(new Error('军人证格式不符合'));
}
callback()
}, trigger: 'change' | blur
}
item.rules.push(obj)
} else if(this.form.idType == 3){
let obj = {
validator: (rule, value, callback) => {
if (!/^([A-Z]\d{6,10}(\(\w{1}\))?)$/.test(value)) {
return callback(new Error('港澳通行证格式不符合'));
}
callback()
}, trigger: 'change' | blur
}
item.rules.push(obj)
}else if(this.form.idType == 5){
let obj = {
validator: (rule, value, callback) => {
if (!/^\d{8}|^[a-zA-Z0-9]{10}|^\d{18}$/.test(value)) {
return callback(new Error('台胞证不符合'));
}
callback()
}, trigger: 'change' | blur
}
item.rules.push(obj)
}else if(this.form.idType == 1 ){
let obj = {
validator: (rule, value, callback) => {
if (!/^(\d{15}$)|(^\d{17}([0-9]|X)$)|^[a-zA-Z0-9]{8,9}$/.test(value)) {
return callback(new Error('身份证不符合'));
}
callback()
}, trigger: 'change' | blur
}
item.rules.push(obj)
}else if(this.form.idType == 2 ){
let obj = {
validator: (rule, value, callback) => {
if (!/(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/.test(value)) {
return callback(new Error('护照不符合'));
}
callback()
}, trigger: 'change' | blur
}
item.rules.push(obj)
}else if(this.form.idType == 0 ){
let obj = {
validator: (rule, value, callback) => {
callback()
}, trigger: 'change' | blur
}
item.rules.push(obj)
}
}
})
},
//
handleChangeH (val) {
let item = this.optionsH.find(item => item.value === val);

1
src/views/dataBoard/cpts/personnel/modules/MatterDetails.vue

@ -1,3 +1,4 @@
<template>
<div class="matter-details">
<div class="user-img">

251
src/views/modules/base/huji/immigration/edit.vue

@ -1,107 +1,52 @@
<template>
<div>
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="true"
:model="fmData"
:rules="dataRule"
label-width="150px"
<el-form ref="ref_form" :inline="true" :model="fmData" :rules="dataRule" label-width="150px"
class="g-edit-form">
<el-form-item label="所属网格 "
prop="gridId"
style="display: block">
<el-select v-model.trim="fmData.gridId"
placeholder="请选择"
size="small"
clearable
class="u-edit-width-normal"
:disabled="formType === 'edit'"
@change="handleChangeGrid">
<el-option v-for="item in optionsG"
:key="item.value"
:label="item.label"
:value="item.value">
<el-form-item label="所属网格 " prop="gridId" style="display: block">
<el-select v-model.trim="fmData.gridId" placeholder="请选择" size="small" clearable
class="u-edit-width-normal" :disabled="formType === 'edit'" @change="handleChangeGrid">
<el-option v-for="item in optionsG" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="所属房屋 "
prop="homeId"
style="display: block">
<el-form-item label="所属房屋 " prop="homeId" style="display: block">
<div>
<el-select v-model.trim="fmData.villageId"
placeholder="请选择小区"
size="small"
clearable
class="u-edit-width-normal"
@clear="handleClearVillage"
@change="handleChangeV"
<el-select v-model.trim="fmData.villageId" placeholder="请选择小区" size="small" clearable
class="u-edit-width-normal" @clear="handleClearVillage" @change="handleChangeV"
:disabled="formType === 'edit'">
<el-option v-for="item in optionsV"
:key="item.value"
:label="item.label"
:value="item.value">
<el-option v-for="item in optionsV" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</div>
<div>
<el-select v-model.trim="fmData.buildId"
placeholder="楼号"
size="small"
clearable
class="u-edit-width-build"
:disabled="changeVDisabled || formType === 'edit'"
@clear="handleClearBuild"
@change="handleChangeB">
<el-option v-for="item in optionsB"
:key="item.value"
:label="item.label"
:value="item.value">
<el-select v-model.trim="fmData.buildId" placeholder="楼号" size="small" clearable
class="u-edit-width-build" :disabled="changeVDisabled || formType === 'edit'"
@clear="handleClearBuild" @change="handleChangeB">
<el-option v-for="item in optionsB" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
<el-select v-model.trim="fmData.unitId"
:disabled="changeBDisabled || formType === 'edit'"
placeholder="单元"
size="small"
clearable
style="margin-left: 10px;"
class="u-edit-width-build"
@click="handleClearDan"
@change="handleChangeD">
<el-option v-for="item in optionsD"
:key="item.value"
:label="item.label"
:value="item.value">
<el-select v-model.trim="fmData.unitId" :disabled="changeBDisabled || formType === 'edit'"
placeholder="单元" size="small" clearable style="margin-left: 10px;" class="u-edit-width-build"
@click="handleClearDan" @change="handleChangeD">
<el-option v-for="item in optionsD" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
<el-select v-model.trim="fmData.homeId"
:disabled="changeDDisabled || formType === 'edit'"
placeholder="房号"
size="small"
clearable
@change="handleChangeH"
style="margin-left: 10px;"
<el-select v-model.trim="fmData.homeId" :disabled="changeDDisabled || formType === 'edit'"
placeholder="房号" size="small" clearable @change="handleChangeH" style="margin-left: 10px;"
class="u-edit-width-build">
<el-option v-for="item in optionsH"
:key="item.value"
:label="item.label"
:value="item.value">
<el-option v-for="item in optionsH" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</div>
</el-form-item>
<el-form-item label="姓名"
prop="name"
style="display: block">
<el-input class="u-edit-width-normal"
style="margin-right: 20px"
placeholder="请输入姓名 "
v-model="fmData.name"
:disabled="formType === 'edit'"
maxlength="30">
<el-form-item label="姓名" prop="name" style="display: block">
<el-input class="u-edit-width-normal" style="margin-right: 20px" placeholder="请输入姓名 "
v-model="fmData.name" :disabled="formType === 'edit'" maxlength="30">
</el-input>
<div>
<!-- <el-checkbox v-model="fmData.isWelfare"
@ -109,143 +54,74 @@
false-label="0">享受福利</el-checkbox> -->
<template v-if="formType === 'edit'">
<el-checkbox v-model="fmData.isCheck"
true-label="1"
false-label="0"
:disabled="initCheck == 1"
<el-checkbox v-model="fmData.isCheck" true-label="1" false-label="0" :disabled="initCheck == 1"
@change="checkResiAvailable">补充居民信息</el-checkbox>
</template>
<el-checkbox v-else
v-model="fmData.isCheck"
true-label="1"
false-label="0"
<el-checkbox v-else v-model="fmData.isCheck" true-label="1" false-label="0"
@change="checkResiAvailable">补充居民信息</el-checkbox>
</div>
</el-form-item>
<el-form-item label="联系电话"
prop="mobile"
style="display: block">
<el-input class="u-edit-width-normal"
type="number"
maxlength="11"
show-word-limit
placeholder="请输入联系电话 "
:disabled="formType === 'edit'"
v-model="fmData.mobile">
<el-form-item label="联系电话" prop="mobile" style="display: block">
<el-input class="u-edit-width-normal" type="number" maxlength="11" show-word-limit
placeholder="请输入联系电话 " :disabled="formType === 'edit'" v-model="fmData.mobile">
</el-input>
</el-form-item>
<el-form-item label="证件号"
prop="idCard"
style="display: block">
<el-input class="u-edit-width-normal"
placeholder="请输入证件号或护照号"
v-model="fmData.idCard"
:disabled="formType === 'edit'"
@blur="handleBlurId"></el-input>
<el-form-item label="证件号" prop="idCard" style="display: block">
<el-input class="u-edit-width-normal" placeholder="请输入证件号或护照号" v-model="fmData.idCard"
:disabled="formType === 'edit'" @blur="handleBlurId"></el-input>
</el-form-item>
<el-form-item label="性别"
prop="principalName"
style="display: block">
<el-select v-model.trim="fmData.gender"
placeholder="性别"
size="small"
clearable
class="u-edit-width-normal"
:disabled="true">
<el-option v-for="item in optionsGender"
:key="item.value"
:label="item.label"
:value="item.value">
<el-form-item label="性别" prop="principalName" style="display: block">
<el-select v-model.trim="fmData.gender" placeholder="性别" size="small" clearable
class="u-edit-width-normal" :disabled="true">
<el-option v-for="item in optionsGender" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年龄"
prop="age"
style="display: block">
<el-input class="u-edit-width-normal"
type="number"
show-word-limit
placeholder="请输入"
v-model="fmData.age"
:disabled="true">
<el-form-item label="年龄" prop="age" style="display: block">
<el-input class="u-edit-width-normal" type="number" show-word-limit placeholder="请输入"
v-model="fmData.age" :disabled="true">
</el-input>
</el-form-item>
<el-form-item label="迁入日期"
prop="inTime"
style="display: block">
<el-date-picker v-model="fmData.inTime"
type="date"
placeholder="迁入时间"
value-format="yyyy-MM-dd"
class="u-edit-width-normal"
:disabled="formType === 'edit'">
<el-form-item label="迁入日期" prop="inTime" style="display: block">
<el-date-picker v-model="fmData.inTime" type="date" placeholder="迁入时间" value-format="yyyy-MM-dd"
class="u-edit-width-normal" :disabled="formType === 'edit'">
</el-date-picker>
</el-form-item>
<el-form-item label="迁入原因"
prop="inReason"
style="display: block">
<el-input type="textarea"
class="u-edit-width-normal"
placeholder="请输入迁入原因"
v-model="fmData.inReason">
<el-form-item label="迁入原因" prop="inReason" style="display: block">
<el-input type="textarea" class="u-edit-width-normal" placeholder="请输入迁入原因" v-model="fmData.inReason">
</el-input>
</el-form-item>
<el-form-item label="来源地"
prop="sourceAddress"
style="display: block">
<el-form-item label="来源地" prop="sourceAddress" style="display: block">
<el-cascader ref="nowArea"
class="u-edit-width-normal"
:props="areaProps"
v-model="nowAllCode"
clearable
<el-cascader ref="nowArea" class="u-edit-width-normal" :props="areaProps" v-model="nowAllCode" clearable
@change="handleNowArea"></el-cascader>
</el-form-item>
<el-form-item label="详细地址"
prop="address"
style="display: block">
<el-input class="u-edit-width-normal"
placeholder="请输入详细地址"
v-model="fmData.address">
<el-form-item label="详细地址" prop="address" style="display: block">
<el-input class="u-edit-width-normal" placeholder="请输入详细地址" v-model="fmData.address">
</el-input>
</el-form-item>
<el-form-item label="迁移证号码"
prop="moveNumber"
style="display: block">
<el-input class="u-edit-width-normal"
placeholder="请输入迁移证号码"
v-model="fmData.moveNumber">
<el-form-item label="迁移证号码" prop="moveNumber" style="display: block">
<el-input class="u-edit-width-normal" placeholder="请输入迁移证号码" v-model="fmData.moveNumber">
</el-input>
</el-form-item>
<el-form-item label="户主姓名"
prop="householderName"
style="display: block">
<el-input class="u-edit-width-normal"
placeholder="请输入户主姓名"
v-model="fmData.householderName">
<el-form-item label="户主姓名" prop="householderName" style="display: block">
<el-input class="u-edit-width-normal" placeholder="请输入户主姓名" v-model="fmData.householderName">
</el-input>
</el-form-item>
<el-form-item label="与户主关系"
prop="householderRelation"
style="display: block">
<el-select v-model.trim="fmData.householderRelation"
placeholder="与户主关系"
size="small"
clearable
<el-form-item label="与户主关系" prop="householderRelation" style="display: block">
<el-select v-model.trim="fmData.householderRelation" placeholder="与户主关系" size="small" clearable
class="u-edit-width-normal">
<el-option v-for="item in optionsRelation"
:key="item.value"
:label="item.label"
<el-option v-for="item in optionsRelation" :key="item.value" :label="item.label"
:value="item.value">
</el-option>
</el-select>
@ -253,13 +129,9 @@
</el-form>
</div>
<div class="m-edit-btn">
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button type="primary"
size="small"
class="diy-button--blue"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
<el-button size="small" @click="handleCancle"> </el-button>
<el-button type="primary" size="small" class="diy-button--blue" :disabled="btnDisable" @click="handleComfirm">
</el-button>
</div>
</div>
</template>
@ -407,9 +279,9 @@ export default {
} = this
if (isCard(idCard)) {
const { data, code, msg } = await requestPost(
'/epmetuser/icresiuser/checkuser',
'/actual/base/residentBaseInfo/getresicount',
{
idCard,
idNum: idCard,
agencyId: this.$store.state.user.agencyId
}
)
@ -636,12 +508,13 @@ export default {
})
},
//
getHouseMaster() {
const { homeId } = this.fmData
if (!homeId) return (this.alreadyHaveMaster = false)
const params = this.fmData
this.$http
.post('/epmetuser/icresiuser/queryhousehold/' + homeId, {})
.post('/actual/base/residentBaseInfo/getResiUserInfoListByHouseInfo' , params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)

3
src/views/modules/base/residentManagement/housingNature/housingNature.vue

@ -442,7 +442,7 @@ export default {
},
//
async handleExport() {
const url = "/actual/base/resiHousingNature/export";
const url = "/actual/base/resiCategorized/ensureHouse/export";
const { pageSize, pageNo, formData } = this;
axios({
url: window.SITE_CONFIG["apiURL"] + url,
@ -573,4 +573,3 @@ export default {
}
</style>

2
src/views/modules/base/residentManagement/oldPeople/oldPeople.vue

@ -718,7 +718,7 @@
//
async handleExport() {
const url = "/actual/base/resiCategorized/oldpeople/export";
const url = "/actual/base/resiCategorized/oldPeople/export";
const { pageSize, pageNo, formData } = this;
axios({
url: window.SITE_CONFIG["apiURL"] + url,

10
src/views/modules/base/residentManagement/publicWelfarePost/addForm.vue

@ -165,10 +165,10 @@
<el-col :span="12">
<div class="info-prop" v-if="formType == 'detail'">
<span class="info-title-2">入职时间: </span>
<span>{{ formData.hireDate || '--' }}</span>
<span>{{ formData.hireData || '--' }}</span>
</div>
<el-form-item label-width="100px" label="入职时间" v-else>
<el-date-picker v-model="formData.hireDate" type="date" value-format="yyyy-MM-dd HH:mm:ss"
<el-date-picker v-model="formData.hireData" type="date" value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择日期" style="width: 202px" clearable>
</el-date-picker>
</el-form-item>
@ -235,7 +235,7 @@
<el-col :span="24">
<div class="info-prop" v-if="formType == 'detail'">
<span class="info-title-2">管理范围: </span>
<span>{{ formData.manageScopesName || "--" }}</span>
<span>{{ manageScopesName || "--" }}</span>
</div>
<el-form-item label="管理范围" prop="agencyId" label-width="100px" v-else>
<el-cascader class="u-item-width-normal" ref="myCascader" v-model="formData.manageScopes"
@ -300,7 +300,7 @@ export default {
remark: "",
postTypes: [],
manageScopes: [],
hireDate: '',
hireData: '',
isParty: null
},
agencyIdTemp: [],
@ -349,7 +349,6 @@ export default {
this.startLoading();
await this.endLoading();
},
methods: {
async initForm(type, row) {
this.formType = type;
@ -361,6 +360,7 @@ export default {
const { data, code, msg } = await requestGet(url);
if (code === 0) {
this.formData = { ...data };
this.manageScopesName = data.manageScopes.map(item => item.scopeName).join(', ');
this.formData.manageScopes = data.manageScopes[0].scopeId
await this.setAgencyIdFromLastLayerId(data.agencyId)
console.log(this.agencyIdTemp);

3
src/views/modules/base/residentManagement/tefu/tefuList.vue

@ -792,7 +792,7 @@ export default {
},
//
async handleExport () {
const url = "/actual/base/resiHousingNature/export";
const url = "/actual/base/resiCategorized/specialSupport/export";
const { pageSize, pageNo, formData } = this;
axios({
url: window.SITE_CONFIG["apiURL"] + url,
@ -922,4 +922,3 @@ export default {
}
</style>

2
src/views/modules/communityParty/regionalParty/activitys.vue

@ -365,7 +365,7 @@ export default {
},
async loadUnit () {
const url = "/heart/icpartyunit/option"
const url = "/actual/base/icpartyunit/option"
// const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyunit/option"
let params = {

2
src/views/modules/communityService/labelConfig/addForm.vue

@ -355,7 +355,7 @@ export default {
if (row.dataSource == "resi") {
let url = "/oper/customize/icformitemgroup/list";
let params = {
formCode: "resi_base_info",
formCode: "resident_base_info",
policyFlag: "1",
};
let { data, code, msg } = await requestPost(url, params);

4
src/views/modules/communityService/measure/index.vue

@ -154,7 +154,7 @@
@click="resetForm('searchForm')"
>重置</el-button
>
<el-button
<!-- <el-button
style="margin:0 6px 0 10px"
size="small"
class="div-table-button--blue"
@ -164,7 +164,7 @@
}}<i
:class="boxHeight ? 'el-icon-arrow-down' : 'el-icon-arrow-up'"
></i
></el-button>
></el-button> -->
</el-col>
</el-row>
</div>

99
src/views/modules/jumin/cpts/leftBto.vue

@ -0,0 +1,99 @@
<template>
<div class="">
<div v-for="(item, index) in familyList" :key="index" class="familylist">
<div :class="['item', {'bgf':index== 0 }] ">
<div>
<img v-if="index == 0 && userInfo.gender == '1'" src="../../../../assets/images/index/nan.png" alt=""
width="56px">
<img v-if="index == 0 && userInfo.gender == '2'" src="../../../../assets/images/index/nv.png" alt=""
width="56px">
<span class="name">{{ item.name }}</span>{{ item.houseHolderRel == "本人" ? "户主" : item.houseHolderRel ? item.houseHolderRel : '--'
}}
</div>
<div>
<span>人户状况</span>{{item.householdSituation||'--'}}
</div>
<div>
<span>居民分类</span>{{item.resiCategory||'--'}}
</div>
</div>
</div>
</div>
</template>
<script>
import { requestPost, requestGet } from '@/js/dai/request'
export default {
//
data() {
return {
familyList: []
};
},
//
created() {
},
mounted() {
console.log(this.userInfo);
this.getFamilyRelationshipList()
},
props: {
userInfo: {
type: Object,
default: () => { }
}
},
//
methods: {
async getFamilyRelationshipList() {
let url = `/actual/base/peopleRoomOverview/getFamilyRelationshipList?type=0&resid=` + this.userInfo.resiId
let { code, data, msg } = await requestPost(url)
if (code == 0) {
//
const index = data.findIndex(item => item.name == this.userInfo.name);
//
if (index !== -1) {
//
const [item] = data.splice(index, 1);
data.unshift(item);
}
for(let i in data){
if(data[i].classificationOfInhabitantsList){
data[i].resiCategory = data[i].classificationOfInhabitantsList.join(',')
}
}
this.familyList = data
} else {
this.$message.error(msg)
}
}
},
//
components: {},
//
computed: {},
//
watch: {},
}
</script>
<style lang="scss" scoped>
@import "@/assets/scss/pages/huaxiang";
@import "@/assets/scss/modules/management/list-main.scss";
.item{
padding: 0 15px;
&>div{
margin-top: 18px;
.name{
font-family: PingFang SC;
font-weight: bold;
color: #000000;
}
}
}
.bgf>:nth-child(1){
margin: 0!important;
padding-top: 16px;
box-sizing: border-box;
}
</style>

71
src/views/modules/jumin/cpts/leftTop.vue

@ -0,0 +1,71 @@
<template>
<div class=''>
<div class="item f-font14">
<span class="label gray">居住地址</span><span class="value">{{ resiInfo.fullName||"--" }}</span>
</div>
<div class="item f-font14">
<span class="label gray">联系电话</span><span class="value">{{ resiInfo.mobile||"--" }}</span>
</div>
<div class="item f-font14">
<span class="label gray">所属网格</span><span class="value">{{ resiInfo.gridName||"--" }}</span>
</div>
<div class="item f-font14">
<span class="label gray">入户状况</span><span class="value">{{ resiInfo.householdSituation||"--" }}</span>
</div>
<div class="item f-font14">
<!-- 居住类型,与子女同住,空巢,独居,其他 字段没有返回-->
<span class="label gray">居住类型</span><span class="value">{{ resiInfo.resideSituation || "--" }}</span>
</div>
<div class="item f-font14">
<span class="label gray">家庭预警</span>
<span class="value">{{resiInfo.riskyFlag === '1' ? '满意度风险家庭' : '--'}}</span>
</div>
</div>
</template>
<script>
import { requestPost, requestGet } from '@/js/dai/request'
export default {
//
data() {
return {
resiInfo: {}
};
},
//
created() {
},
mounted() {
this.getPersonalFile()
},
props: {
resiId: {
type: String,
default: ''
},
},
//
methods: {
async getPersonalFile() {
let url = `/actual/base/peopleRoomOverview/getPersonalFile?resid=` + this.resiId
let { code, data, msg } = await requestPost(url)
if (code == 0) {
this.resiInfo = data
} else {
this.$message.error(msg)
}
}
},
//
components: {},
//
computed: {},
//
watch: {},
}
</script>
<style lang="scss" scoped>
@import "@/assets/scss/pages/huaxiang";
@import "@/assets/scss/modules/management/list-main.scss";
</style>

96
src/views/modules/jumin/huaxiang.vue

@ -0,0 +1,96 @@
<template>
<div class='g-main'>
<div class="top">
<div class="left">
<div class="card">
<div class="title">
<div><img src="../../../assets/images/index/title-icon-sqzl.png" alt="">居民档案</div>
<span class="title f-font14 gray" style="cursor: pointer;" @click="handlerUserInfo">详情 ></span>
</div>
<div class="f-top12">
<img src="../../../assets/images/index/resi.png" alt="" width="56px"> {{userInfo.name}}
</div>
<section class="bgC">
<left-top :resiId="userInfo.resiId"></left-top>
</section>
</div>
</div>
<div class="right">
<div class="card">
<div class="title"></div>
</div>
</div>
</div>
<div class="bottom">
<div class="left">
<div class="card">
<div class="title">
<div><img src="../../../assets/images/index/title-icon-jtgx.png" alt="">家庭关系</div>
</div>
<section class="bgC" style="padding: 0;">
<left-bto :userInfo="userInfo" ></left-bto>
</section>
</div>
</div>
<div class="right">
<div class="card">
<div class="title"></div>
</div>
</div>
</div>
<resi-info
v-if="showedResiInfo && userInfo.resiId"
:resi-id="userInfo.resiId"
@close="showedResiInfo = false"
/>
</div>
</template>
<script>
import { requestPost, requestGet } from '@/js/dai/request'
import leftTop from "./cpts/leftTop";
import leftBto from "./cpts/leftBto";
import resiInfo from "@/views/modules/cpts/resi/info";
import nextTick from "dai-js/tools/nextTick";
export default {
//
data() {
return {
userInfo:{},
showedResiInfo: false,
};
},
//
created() {
this.getFamilyRelationshipList()
this.userInfo = this.$store.state.huaXiang.userInfo
},
//
methods: {
async getFamilyRelationshipList() {
let url = `/actual/base/peopleRoomOverview/getFamilyRelationshipList?type=0&resid=` + this.userInfo.resiId
let {code,data,msg} = await requestPost(url)
if(code == 0){
this.familyList = data
}else{
this.$message.error(msg)
}
},
async handlerUserInfo(){
await nextTick();
this.showedResiInfo = true;
},
},
//
components: {leftTop,leftBto,resiInfo},
//
computed: {},
//
watch: {},
}
</script>
<style lang="scss" scoped>
@import "@/assets/scss/pages/huaxiang";
@import "@/assets/scss/modules/management/list-main.scss";
</style>

4
src/views/modules/satisfaction/satisfactionProvince/index.vue

@ -31,8 +31,8 @@
</div>
<el-radio-group v-model="formData.orgCategoryCode" @change="handelChangeCategory" style="margin: 20px 0 0;">
<el-radio-button label="province">省满意度调查</el-radio-button>
<el-radio-button label="city">满意度调查</el-radio-button>
<el-radio-button label="district">满意度调查</el-radio-button>
<el-radio-button label="city">满意度调查</el-radio-button>
<el-radio-button label="district">满意度调查</el-radio-button>
</el-radio-group>
<div class="m-table-item" :style="{ height: maxTableHeight + 'px', width: '100%' }">
<div id="myCharts"></div>

29
src/views/modules/shequ/chaxun.vue

@ -339,6 +339,8 @@ import resiInfo from "@/views/modules/cpts/resi/info";
import houseInfo from "@/views/modules/cpts/house/info";
import smatrRules from "./cpts/smatr-rules.vue";
import { requestGet } from "../../../js/dai/request";
import { addDynamicRoute } from '@/router'
export default {
components: {
resiInfo,
@ -572,10 +574,20 @@ export default {
this.getSearchJumin();
},
async handleWatchSearchJumin(rowIndex) {
let item = this.searchJumin.list[rowIndex];
this.currentResiId = item.resiId;
await nextTick();
this.showedResiInfo = true;
// let item = this.searchJumin.list[rowIndex];
// this.currentResiId = item.resiId;
// await nextTick();
// this.showedResiInfo = true;
let { agencyId, gridId, gridName, gender, homeId, homeName, name, resiId } = this.searchJumin.list[rowIndex]
console.log(this.searchJumin.list[rowIndex]);
this.$store.dispatch('saveData', { agencyId, gridId, gridName, gender, homeId, homeName, name, resiId });
this.$router.push({ name: 'jumin-huaxiang' });
this.$store.state.contentTabs = this.$store.state.contentTabs.map(item => {
if (item.name === "jumin-huaxiang") {
return {...item, title: name };
}
return item;
});
},
handleSizeChangeSearchFangwu(val) {
@ -591,10 +603,11 @@ export default {
},
async handleWatchSearchFangwu(rowIndex) {
let item = this.searchFangwu.list[rowIndex];
this.currentHouseId = item.id;
await nextTick();
this.showedHouseInfo = true;
// let item = this.searchFangwu.list[rowIndex];
// this.currentHouseId = item.id;
// await nextTick();
// this.showedHouseInfo = true;
console.log(this.searchFangwu.list[rowIndex]);
},
getApiData() {},

2
src/views/modules/shequzhili/event/cpts/add.vue

@ -18,7 +18,7 @@
</el-select>
</el-form-item>
<el-form-item label="工单号" prop="workOrderNum" label-width="150px" style="display: block">
<el-input class="cell-width-1" maxlength="10" placeholder="请输入工单号" v-model="formData.workOrderNum" />
<el-input class="cell-width-1" maxlength="30" placeholder="请输入工单号" v-model="formData.workOrderNum" />
</el-form-item>
<el-form-item label="接收时间" prop="happenTime" label-width="150px" style="display: block">
<el-date-picker v-model="formData.happenTime" class="cell-width-1" type="datetime"

2
src/views/modules/shequzhili/event/cpts/event-detail.vue

@ -85,7 +85,7 @@
<el-radio-group :class="{ 'form-item': source === 'visiual' }" v-model="satisfyLevel"
@change="clickSatisfy">
<el-radio label="good">满意</el-radio>
<el-radio label="perfect">基本满意</el-radio>
<el-radio label="perfect">非常满意</el-radio>
<el-radio label="bad">不满意</el-radio>
</el-radio-group>
</div>

13
src/views/modules/shequzhili/event/cpts/event-info.vue

@ -372,37 +372,32 @@ export default {
} else {
return false;
}
this.project = {};
this.demand = {};
this.$refs.ref_processinfo_add.getProcessInfo();
this.formData.operationType = this.$refs.ref_processinfo_add.operationType;
this.eventInfoData.operationType = this.$refs.ref_processinfo_add.operationType;
if (this.formData.operationType === '0' || this.formData.operationType === '6') {
this.project = {};
this.demand = {};
this.replayInfo = this.$refs.ref_processinfo_add.replayInfo;
console.log(this.replayInfo);
//
this.eventInfoData.content = this.replayInfo.content;
this.eventInfoData.status = this.replayInfo.status;
this.eventInfoData.timeLimit = this.replayInfo.timeLimit;
if (this.replayInfo.categoryId) {
this.eventInfoData.categoryList = [];
this.eventInfoData.categoryList.push(this.replayInfo.categoryId);
}
} else if (this.formData.operationType === '5') {
this.project = {};
this.demand = {};
console.log(this.$refs.ref_process_form_designate.replayInfo);
this.replayInfo = this.$refs.ref_process_form_designate.replayInfo;
console.log(this.replayInfo);
//
this.eventInfoData.content = this.replayInfo.content;
this.eventInfoData.status = this.replayInfo.status;
this.eventInfoData.timeLimit = this.replayInfo.timeLimit;
if (this.replayInfo.categoryId) {
this.eventInfoData.categoryList = [];
this.eventInfoData.categoryList.push(this.replayInfo.categoryId);
}
} else if (this.formData.operationType === '4') {
this.project = {};
this.demand = {};
this.replayInfo = {};
}
this.formData = {

4
src/views/modules/shequzhili/event/cpts/myCascader.vue

@ -18,8 +18,9 @@ export default {
selCategoryArray: {}
},
selCateObj: {},
iscascaderShow: 0
iscascaderShow: 0,
};
},
props: {
casOptions: {
@ -39,7 +40,6 @@ export default {
} else {
this.selCateObj = {}
}
this.$emit('handleChangeCate', this.selCateObj)
}
},

11
src/views/modules/shequzhili/event/cpts/process-form-designate.vue

@ -102,6 +102,9 @@ export default {
],
timeLimit: [
{ required: true, message: "办结时限不能为空", trigger: "blur" },
],
categoryList: [
{ required: true, message: '事件分类不能为空', trigger: 'blur' },
]
},
selCateObj: {
@ -140,9 +143,9 @@ export default {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
// eventDetailCopy
if (this.eventDetailCopy.parentCategoryId && this.eventDetailCopy.categoryId) {
this.selCateObj.id = this.eventDetailCopy.categoryId
this.formData.categoryId = this.eventDetailCopy.categoryId
this.selCategoryArray.push(this.eventDetailCopy.parentCategoryId, this.eventDetailCopy.categoryId)
this.selCategoryArray = this.eventDetailCopy.parentCategoryId.split(",");
this.selCategoryArray.push(this.eventDetailCopy.categoryId);
this.handleChangeCate(this.selCategoryArray)
}
}
},
@ -189,8 +192,8 @@ export default {
handleChangeCate() {
if (this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0]) {
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data
this.formData.categoryList = this.selCateObj
this.formData.categoryId = this.selCateObj.id
console.log(this.formData.categoryId, 'this.formData.categoryId');
} else {
this.selCateObj = {}
}

17
src/views/modules/shequzhili/event/cpts/process-form-replay-end.vue

@ -73,7 +73,7 @@ export default {
{ required: true, message: '回复内容不能为空', trigger: 'blur' },
],
categoryList: [
// { required: true, message: '', trigger: 'blur' },
{ required: true, message: '事件分类不能为空', trigger: 'blur' },
]
}
};
@ -107,8 +107,9 @@ export default {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
// eventDetailCopy
if (this.eventDetailCopy.parentCategoryId && this.eventDetailCopy.categoryId) {
this.formData.categoryId = this.eventDetailCopy.categoryId
this.selCategoryArray.push(this.eventDetailCopy.parentCategoryId, this.eventDetailCopy.categoryId)
this.selCategoryArray = this.eventDetailCopy.parentCategoryId.split(",");
this.selCategoryArray.push(this.eventDetailCopy.categoryId);
this.handleChangeCate(this.selCategoryArray)
}
}
},
@ -128,9 +129,19 @@ export default {
this.$message.error(msg);
}
},
buildTree(nodes, treeId) {
nodes.forEach(item => {
if (treeId === item.id) {
return item;
} else {
this.buildTree(item.children, treeId)
}
})
},
handleChangeCate() {
if (this.selCateObj = this.$refs['myCascader'].getCheckedNodes()[0]) {
this.selCateObj = this.$refs['myCascader'].getCheckedNodes()[0].data
this.formData.categoryList = this.selCateObj
} else {
this.selCateObj = {}
}

6
src/views/modules/shequzhili/event/cpts/process-form-replay.vue

@ -62,7 +62,7 @@ export default {
{ required: true, message: '回复内容不能为空', trigger: 'blur' },
],
categoryList: [
// { required: true, message: '', trigger: 'blur' },
{ required: true, message: '事件分类不能为空', trigger: 'blur' },
],
timeLimit: [
{ required: true, message: "办结时限不能为空", trigger: "blur" },
@ -101,7 +101,6 @@ export default {
this.getCategoryList();
if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
console.log('this.eventDetailCopy', this.eventDetailCopy);
let value = this.eventDetailCopy.parentCategoryId.split(",");
value.push(this.eventDetailCopy.categoryId);
this.handleChangeCate(value)
@ -131,7 +130,6 @@ export default {
});
let node = this.buildTree(this.casOptions, this.eventDetailCopy.categoryId);
this.selCategoryArray.push(node);
console.log(this.selCategoryArray);
}
},
buildTree(nodes, treeId) {
@ -146,6 +144,7 @@ export default {
handleChangeCate(value) {
if (this.selCateObj = this.$refs['myCascader'].getCheckedNodes()[0]) {
this.selCateObj = this.$refs['myCascader'].getCheckedNodes()[0].data
this.formData.categoryList = this.selCateObj
} else {
this.selCateObj = {}
}
@ -181,6 +180,7 @@ export default {
}
this.formData.categoryList = [];
this.formData.categoryList.push(this.selCateObj);
this.formData.categoryId = this.selCateObj.id
this.okflag = true;
}
});

21
src/views/modules/shequzhili/event/eventList.vue

@ -270,26 +270,10 @@ export default {
},
],
qudaoArray: [
// {
// value: "0",
// label: "/",
// },
// {
// value: "1",
// label: "",
// },
// {
// value: "2",
// label: "",
// },
{
value: "3",
label: "12345",
},
// {
// value: "4",
// label: "",
// },
}
],
formData: {
@ -654,6 +638,9 @@ export default {
},
async getTableData() {
const url = "/governance/icEvent/list";
if (this.eventTypeCheck) {
this.formData.secondIdList = this.eventTypeCheck
}
const { pageSize, pageNo, formData } = this;
const { data, code, msg } = await requestPost(url, {
pageSize,

Loading…
Cancel
Save