Browse Source

Merge branch 'dev' into preview

V1.0
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. 95
      src/views/components/resiForm.vue
  16. 1
      src/views/dataBoard/cpts/personnel/modules/MatterDetails.vue
  17. 1345
      src/views/modules/base/huji/immigration/edit.vue
  18. 13
      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. 7
      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. 19
      src/views/modules/shequzhili/event/cpts/process-form-replay-end.vue
  36. 6
      src/views/modules/shequzhili/event/cpts/process-form-replay.vue
  37. 23
      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);;
}

95
src/views/components/resiForm.vue

@ -128,8 +128,10 @@
:placeholder="`请选择${item.label}`"
size="small"
clearable
class="u-item-width-normal">
<el-option v-for="items in item.opction "
class="u-item-width-normal"
@change="handleChangSelect(item.formName)"
>
<el-option v-for="items in item.opction"
:key="items.value"
:label="items.label"
:value="items.value">
@ -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">

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

File diff suppressed because it is too large

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

@ -150,7 +150,7 @@
</el-dialog>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import nextTick from "dai-js/tools/nextTick";
@ -174,7 +174,7 @@ function iniFmData() {
subsidyAmount: '',//
certificateDateStart: '',//
certificateDateEnd: '',//
remark: '', //
remark: '', //
};
}
@ -287,7 +287,7 @@ export default {
}
return fileType && isLt1M;
},
async uploadHttpRequest(file) {
this.$message({
showClose: true,
@ -378,7 +378,7 @@ export default {
this.showAdd = false;
this.showEdit = false;
},
//
handleComfirm(type) {
this.handleClose();
@ -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,
@ -572,5 +572,4 @@ export default {
margin-right: 10px;
}
</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);

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

@ -364,7 +364,7 @@
</el-dialog>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import nextTick from "dai-js/tools/nextTick";
@ -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,
@ -921,5 +921,4 @@ export default {
margin-right: 10px;
}
</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 = {}
}

19
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 = {}
}
@ -165,7 +176,7 @@ export default {
if (!this.formData.categoryId) {
this.formData.categoryId = this.selCateObj.id;
}
if(this.fileList){
if (this.fileList) {
this.formData.files = this.fileList
}
this.formData.categoryList = [];

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;
}
});

23
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: {
@ -538,7 +522,7 @@ export default {
}
},
handleProgress(event, file, fileList) {
},
beforeExcelUpload(file) {
const isType = file.type === 'application/vnd.ms-excel';
@ -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