Browse Source

图片冲突

test
dai 3 years ago
parent
commit
1f8b4d1cfa
  1. 100
      src/assets/scss/modules/visual/basicInfoMain.scss
  2. 11
      src/assets/scss/modules/visual/personCategory.scss
  3. 71
      src/assets/scss/modules/visual/warning-people-list.scss
  4. 2
      src/views/components/editResi.vue
  5. 14
      src/views/components/resiForm.vue
  6. 179
      src/views/components/tinymce/index.vue
  7. 11
      src/views/modules/base/community/buildTable.vue
  8. 18
      src/views/modules/base/community/community.vue
  9. 17
      src/views/modules/base/community/communityTable.vue
  10. 151
      src/views/modules/visual/basicinfo/basicInfoCommunity.vue
  11. 1074
      src/views/modules/visual/basicinfo/basicInfoMain copy.vue
  12. 15
      src/views/modules/visual/basicinfo/basicInfoMain.vue
  13. 183
      src/views/modules/visual/basicinfo/cpts/roomInfo.vue
  14. 5
      src/views/modules/visual/basicinfo/peopleSearch.vue
  15. 80
      src/views/modules/visual/basicinfo/personCategory/index.vue
  16. 58
      src/views/modules/visual/basicinfo/personCategory/recordList.vue
  17. 107
      src/views/modules/visual/warning/components/screen-table/index.vue
  18. 213
      src/views/modules/visual/warning/components/screen-table/people-list.vue
  19. 12
      src/views/modules/visual/warning/index.vue
  20. 21
      src/views/modules/warning/components/screen-table/index.vue
  21. 19
      src/views/modules/warning/components/screen-table/people-list.vue
  22. 3
      src/views/modules/warning/index.vue
  23. 1
      src/views/modules/workPc/guidance/DetailForm.vue

100
src/assets/scss/modules/visual/basicInfoMain.scss

@ -1,3 +1,6 @@
@import "../../c/config";
@import "../../c/function";
@import "./c/common";
.div_top { .div_top {
margin-left: 10px; margin-left: 10px;
height: 35px; height: 35px;
@ -296,18 +299,37 @@
top: 13px; top: 13px;
left: 18px; left: 18px;
} }
.icon_roomstate {
position: absolute;
top: 16px;
right: 16px;
font-size: 14px;
font-family: PingFang SC;
font-weight: 500;
color: #ffffff;
}
.icon_category { .icon_category {
position: absolute; position: absolute;
bottom: 14px; bottom: 14px;
left: 9px; left: 9px;
display: flex;
justify-content: flex-start;
// margin-left: 7px; // margin-left: 7px;
> img { .div_icon_item{
.icon_img{
margin-left: 5px; margin-left: 5px;
width: 21px; width: 21px;
height: 20px; height: 20px;
} }
.icon_name{
display: flex;
justify-content: center;
}
}
} }
.div_user:hover { .div_user:hover {
cursor: pointer; cursor: pointer;
@ -355,11 +377,12 @@
box-shadow: 0 0 10px inset #1a5afd; box-shadow: 0 0 10px inset #1a5afd;
.user_item { .user_item {
padding: 13px 8px 0 14px; padding: 9px 8px 0 12px;
font-size: 16px; font-size: 14px;
font-family: PingFang SC; font-family: PingFang SC;
font-weight: 400; font-weight: 400;
color: #ffffff; color: #ffffff;
line-height: 10px;
.user_item_content { .user_item_content {
display: flex; display: flex;
@ -488,3 +511,74 @@
cursor: pointer; cursor: pointer;
} }
} }
.m-room-pop {
@include shield;
background-color: rgba(#000, 0.9);
overflow-y: auto;
.wrap {
position: relative;
margin: 120px auto;
width: 680px;
.title {
padding: 10px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
color: #ffffff;
display: flex;
align-items: center;
img {
display: block;
margin-right: 5px;
}
span {
display: block;
}
}
.btn-close {
position: absolute;
top: -15px;
right: -15px;
cursor: pointer;
}
.list {
// display: flex;
// flex-wrap: wrap;
padding: 5px 60px 5px 30px;
.item {
position: relative;
box-sizing: border-box;
padding: 0 15px;
width: 100%;
color: #fff;
font-size: 18px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 24px;
margin: 15px 0;
&::before {
position: absolute;
left: 0;
top: 9px;
content: "";
display: block;
width: 7px;
height: 7px;
background: #0c81fe;
border-radius: 3px;
}
}
}
}
}

11
src/assets/scss/modules/visual/personCategory.scss

@ -8,7 +8,14 @@
color: #fff; color: #fff;
// background: url("../../../img/modules/visual/warning-box.png") no-repeat center; // background: url("../../../img/modules/visual/warning-box.png") no-repeat center;
background-size: 100% 100%; background-size: 100% 100%;
padding: 45px 21px 35px 24px; padding: 15px 21px 15px 24px;
/deep/ .el-scrollbar__wrap {
margin-right:-17px !important
}
&-top { &-top {
display: flex; display: flex;
@ -152,7 +159,7 @@
&-bottom { &-bottom {
box-sizing: border-box; box-sizing: border-box;
width: 100%; width: 100%;
height: calc(100% - 300px); height: calc(100vh - 535px);
min-height: 300px; min-height: 300px;
margin-top: 60px; margin-top: 60px;
} }

71
src/assets/scss/modules/visual/warning-people-list.scss

@ -0,0 +1,71 @@
@import "../../c/config";
@import "../../c/function";
@import "./c/common";
.m-pop {
@include shield;
background-color: rgba(#000, 0.9);
overflow-y: auto;
.wrap {
position: relative;
margin: 120px auto;
width: 1180px;
.title {
padding: 10px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
color: #ffffff;
display: flex;
align-items: center;
img {
display: block;
margin-right: 5px;
}
span {
display: block;
}
}
.btn-close {
position: absolute;
top: -15px;
right: -15px;
cursor: pointer;
}
.content {
margin-top: 20px;
min-height: 500px;
}
}
}
.m-pagination {
box-sizing: border-box;
margin-top: 20px;
width: 100%;
height: 40px;
display: flex;
justify-content: flex-end;
/deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
background: #0266d1;
color: #000d3f;
}
/deep/ .el-pagination .el-pager li {
background: #002e74;
}
/deep/ .el-pagination .btn-prev {
background: #002e74;
}
/deep/ .el-pagination .btn-next {
background: #002e74;
}
}

2
src/views/components/editResi.vue

@ -812,7 +812,7 @@ export default {
} }
} }
.resi-cell-value .resi-cell-input { .resi-cell-value .resi-cell-input {
max-width: 190px; width: 190px;
} }
</style> </style>

14
src/views/components/resiForm.vue

@ -491,9 +491,19 @@ export default {
console.log('n---', n) console.log('n---', n)
if (n.columnName !== 'ID_CARD') return if (n.columnName !== 'ID_CARD') return
if (!isCard(this.form.ID_CARD)) return if (!isCard(this.form.ID_CARD)) return
const { sex, birth } = computedCard(this.form.ID_CARD) const { user } = this.$store.state
let huji = '', i = 0
if (user.areaCodePath && user.areaCodePath.length > 0) {
i = user.areaCodePath.length - 1
huji = user.areaCodePath[i].length > 6 ? user.areaCodePath[i].substr(0, 6) : user.areaCodePath[i]
}
const _id = this.form.ID_CARD.substr(0, 6)
const { sex, birth, age } = computedCard(this.form.ID_CARD)
this.form.BIRTHDAY = birth this.form.BIRTHDAY = birth
this.form.GENDER = sex == 1 ? '1' : '2' this.form.GENDER = sex == 1 ? '1' : '2'
this.form.IS_OLD_PEOPLE = age >= 60 ? '1' : '0'
this.form.IS_BDHJ = huji == _id ? '1' : ''
console.log('age-----', age, _id)
}, },
handleOpenSearch () { handleOpenSearch () {
this.openSearch = !this.openSearch this.openSearch = !this.openSearch
@ -760,7 +770,7 @@ export default {
} }
} }
.resi-cell-value .resi-cell-input { .resi-cell-value .resi-cell-input {
max-width: 190px; width: 190px;
} }
.resi-cell-value { .resi-cell-value {
:deep .el-col { :deep .el-col {

179
src/views/components/tinymce/index.vue

@ -1,154 +1,157 @@
/* eslint-disable */ /* eslint-disable */
<template> <template>
<textarea :id="tinymceId" <textarea :id="tinymceId" style="visibility: hidden" />
style="visibility: hidden;" />
</template> </template>
<script> <script>
import loadTinymce from '@/utils/loadTinymce' import loadTinymce from "@/utils/loadTinymce";
import { plugins, toolbar } from './config' import { plugins, toolbar } from "./config";
import { debounce } from 'throttle-debounce' import { debounce } from "throttle-debounce";
import Cookie from 'js-cookie' import Cookie from "js-cookie";
// import constants from '@/utils/constants' // import constants from '@/utils/constants'
import nextTick from "dai-js/tools/nextTick";
let num = 1 let num = 1;
export default { export default {
name: 'Tinymce', name: "Tinymce",
props: { props: {
id: { id: {
type: String, type: String,
default: () => { default: () => {
num === 10000 && (num = 1) num === 10000 && (num = 1);
return `tinymce${+new Date()}${num++}` return `tinymce${+new Date()}${num++}`;
} },
}, },
value: { value: {
default: '' default: "",
}, },
customerId: { customerId: {
type: String, type: String,
default: '' default: "",
}
}, },
data () { },
data() {
return { return {
tinymceId: this.id tinymceId: this.id,
} };
}, },
mounted () { mounted() {
loadTinymce((tinymce) => {
loadTinymce(tinymce => { let token = this.getUserToken();
let token = this.getUserToken()
// let uploadUrl = '1111' // let uploadUrl = '1111'
let uploadUrl = window.SITE_CONFIG['apiURL'] + '/oss/file/function/upload' let uploadUrl =
window.SITE_CONFIG["apiURL"] + "/oss/file/function/upload";
// :data="{customerId:customerId}" // :data="{customerId:customerId}"
// let uploadUrl = constants.userUploadUrl // let uploadUrl = constants.userUploadUrl
// eslint-disable-next-line global-require // eslint-disable-next-line global-require
require('./zh_CN') require("./zh_CN");
let conf = { let conf = {
selector: `#${this.tinymceId}`, selector: `#${this.tinymceId}`,
language: 'zh_CN', language: "zh_CN",
menubar: 'false', menubar: "false",
skin_url: '/' + process.env.VUE_APP_PUBLIC_PATH + '/tinymce/skins/ui/tduck', skin_url:
content_style: 'p {margin:3px 0; border:0px; padding:0px}', "/" + process.env.VUE_APP_PUBLIC_PATH + "/tinymce/skins/ui/tduck",
content_css: '/' + process.env.VUE_APP_PUBLIC_PATH + '/tinymce/skins/content/tduck', content_style: "p {margin:3px 0; border:0px; padding:0px}",
cache_suffix: '?v=0.0.1', content_css:
"/" +
process.env.VUE_APP_PUBLIC_PATH +
"/tinymce/skins/content/tduck",
cache_suffix: "?v=0.0.1",
plugins, plugins,
toolbar, toolbar,
toolbar_drawer: 'sliding', toolbar_drawer: "sliding",
toolbar_mode: 'sliding', toolbar_mode: "sliding",
height: 400, height: 400,
// fontsize_formats: "8pt 10pt 12pt 14pt 18pt 24pt 36pt", // fontsize_formats: "8pt 10pt 12pt 14pt 18pt 24pt 36pt",
branding: false, branding: false,
object_resizing: false, object_resizing: false,
end_container_on_empty_block: true, end_container_on_empty_block: true,
powerpaste_word_import: 'clean', powerpaste_word_import: "clean",
// code_dialog_height: 450, // code_dialog_height: 450,
// code_dialog_width: 1000, // code_dialog_width: 1000,
// autoresize_max_height: 450, // // autoresize_max_height: 450, //
// autoresize_min_height: 350, // // autoresize_min_height: 350, //
advlist_bullet_styles: 'square', advlist_bullet_styles: "square",
advlist_number_styles: 'default', advlist_number_styles: "default",
default_link_target: '_blank', default_link_target: "_blank",
link_title: false, link_title: false,
statusbar: false, statusbar: false,
nonbreaking_force_tab: true, nonbreaking_force_tab: true,
// images_upload_url: uploadUrl, // images_upload_url: uploadUrl,
images_upload_handler: function (blobInfo, succFun, failFun) { images_upload_handler: function (blobInfo, succFun, failFun) {
var xhr, formData var xhr, formData;
var file = blobInfo.blob()// file var file = blobInfo.blob(); // file
xhr = new XMLHttpRequest() xhr = new XMLHttpRequest();
xhr.withCredentials = false xhr.withCredentials = false;
xhr.open('POST', uploadUrl) xhr.open("POST", uploadUrl);
xhr.setRequestHeader('token', token) xhr.setRequestHeader("token", token);
xhr.onload = function () { xhr.onload = function () {
var json;
var json
if (xhr.status != 200) { if (xhr.status != 200) {
failFun('HTTP Error: ' + xhr.status) failFun("HTTP Error: " + xhr.status);
return return;
} }
json = JSON.parse(xhr.responseText) json = JSON.parse(xhr.responseText);
if (!json || typeof json.data.url != 'string') { if (!json || typeof json.data.url != "string") {
failFun('Invalid JSON: ' + xhr.responseText) failFun("Invalid JSON: " + xhr.responseText);
return return;
} }
succFun(json.data.url) succFun(json.data.url);
} };
formData = new FormData() formData = new FormData();
formData.append('file', file, file.name)// formData.append("file", file, file.name); //
// formData.append('customerId', '111') // formData.append('customerId', '111')
xhr.send(formData) xhr.send(formData);
} },
} };
conf = Object.assign(conf, this.$attrs) conf = Object.assign(conf, this.$attrs);
conf.init_instance_callback = editor => { conf.init_instance_callback = (editor) => {
if (this.value) editor.setContent(this.value);
if (this.value) editor.setContent(this.value) this.vModel(editor);
this.vModel(editor) };
}
tinymce.init(conf) tinymce.init(conf);
}) });
}, },
destroyed () { destroyed() {
this.destroyTinymce() this.destroyTinymce();
}, },
methods: { methods: {
vModel (editor) { vModel(editor) {
// setContent // setContent
const debounceSetContent = debounce(250, editor.setContent) const debounceSetContent = debounce(250, editor.setContent);
this.$watch('value', (val, prevVal) => { this.$watch("value", (val, prevVal) => {
if (editor && val !== prevVal && val !== editor.getContent()) { if (editor && val !== prevVal && val !== editor.getContent()) {
if (typeof val !== 'string') val = val.toString() if (typeof val !== "string") val = val.toString();
debounceSetContent.call(editor, val) debounceSetContent.call(editor, val);
} }
}) });
editor.on('change keyup undo redo', () => { editor.on("change keyup undo redo", () => {
this.$emit('input', editor.getContent()) this.$emit("input", editor.getContent());
}) });
editor.on('blur', () => { editor.on("blur", () => {
this.$emit('blur') this.$emit("blur");
}) });
console.log('init_instance_callback1111111111')
}, },
getUserToken () { getUserToken() {
let token = localStorage.getItem('token') let token = localStorage.getItem("token");
// console.log('token', token) // console.log('token', token)
// return this.$store.getters['user/isLogin'] // return this.$store.getters['user/isLogin']
return token return token;
}, },
destroyTinymce () { destroyTinymce() {
if (!window.tinymce) return if (!window.tinymce) return;
const tinymce = window.tinymce.get(this.tinymceId) const tinymce = window.tinymce.get(this.tinymceId);
if (tinymce) { if (tinymce) {
tinymce.destroy() tinymce.destroy();
} }
} },
} },
} };
</script> </script>

11
src/views/modules/base/community/buildTable.vue

@ -71,6 +71,12 @@
<el-table-column prop="buildingName" <el-table-column prop="buildingName"
label="楼栋名称" label="楼栋名称"
min-width="180"> min-width="180">
<template slot-scope="scope">
<a class="name-a"
@click="handleToNextLevel(scope.row)">
{{ scope.row.buildingName }}
</a>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="neighborHoodName" <el-table-column prop="neighborHoodName"
label="所属小区" label="所属小区"
@ -97,10 +103,7 @@
align="center" align="center"
class="operate"> class="operate">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-button type="text"
style="color:#feb349;text-decoration: underline;"
size="small"
@click="handleToNextLevel(scope.row)">进入</el-button> -->
<el-button type="text" <el-button type="text"
class="div-table-button--detail" class="div-table-button--detail"
size="small" size="small"

18
src/views/modules/base/community/community.vue

@ -19,6 +19,11 @@
:expand-on-click-node="false" :expand-on-click-node="false"
:filter-node-method="filterNode" :filter-node-method="filterNode"
@node-click="handleNodeClick"> @node-click="handleNodeClick">
<span slot-scope="{ node, data }"
class="custom-tree-node">
<span :id="data.id">{{ data.showName }}</span>
</span>
</el-tree> </el-tree>
</el-scrollbar> </el-scrollbar>
@ -194,6 +199,7 @@ export default {
handleSearch () { handleSearch () {
if (this.ownerName || this.ownerPhone || this.rentState) { if (this.ownerName || this.ownerPhone || this.rentState) {
this.showRoomTable = true this.showRoomTable = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['ref_buildingTable'].loadTable('search', this.selTreeObj, this.ownerName, this.ownerPhone, this.rentState) this.$refs['ref_buildingTable'].loadTable('search', this.selTreeObj, this.ownerName, this.ownerPhone, this.rentState)
}) })
@ -315,16 +321,28 @@ export default {
if (level === 'community') { if (level === 'community') {
this.selTreeObj = this.$refs.ref_tree.getNode(row.neighborHoodId).data this.selTreeObj = this.$refs.ref_tree.getNode(row.neighborHoodId).data
this.openNodes.push(this.selTreeObj.id)
} else { } else {
this.selTreeObj = this.$refs.ref_tree.getNode(row.buildingId).data this.selTreeObj = this.$refs.ref_tree.getNode(row.buildingId).data
} }
this.handleNodeClick(this.selTreeObj) this.handleNodeClick(this.selTreeObj)
this.$nextTick(() => { this.$nextTick(() => {
// ref_tree ref value node-key // ref_tree ref value node-key
this.$refs.ref_tree.setCurrentKey(this.selTreeObj.id); this.$refs.ref_tree.setCurrentKey(this.selTreeObj.id);
}); });
const node = document.getElementById(this.selTreeObj.id) // Iddom
setTimeout(() => {
if (node) {
this.$nextTick(() => {
node.scrollIntoView({ block: 'center' }) // scrollIntoViewdom block: 'center'
})
}
}, 100)
}, },
// //

17
src/views/modules/base/community/communityTable.vue

@ -96,11 +96,12 @@
<el-table-column prop="neighborHoodName" <el-table-column prop="neighborHoodName"
label="小区名称" label="小区名称"
min-width="100"> min-width="100">
<!-- <template slot-scope="scope"> <template slot-scope="scope">
<a class="name-a" @click="handleDetail(scope.row)"> <a class="name-a"
@click="handleToNextLevel(scope.row)">
{{ scope.row.neighborHoodName }} {{ scope.row.neighborHoodName }}
</a> </a>
</template> --> </template>
</el-table-column> </el-table-column>
<el-table-column prop="agencyName" <el-table-column prop="agencyName"
label="所属组织" label="所属组织"
@ -131,14 +132,6 @@
class="operate"> class="operate">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-button type="text"
style="color:#feb349;text-decoration: underline;"
size="small"
@click="handleToNextLevel(scope.row)">进入</el-button> -->
<!-- <el-button type="text"
class="div-table-button--qr"
size="small"
@click="handleDownQr(scope.row, 'neighborHood')">二维码</el-button> -->
<el-button type="text" <el-button type="text"
class="div-table-button--detail" class="div-table-button--detail"
size="small" size="small"
@ -236,10 +229,8 @@ export default {
}, },
computed: { computed: {
tableHeight () { tableHeight () {
return this.$store.state.inIframe ? this.clientHeight - 310 + this.iframeHeight : this.clientHeight - 310 return this.$store.state.inIframe ? this.clientHeight - 310 + this.iframeHeight : this.clientHeight - 310
}, },
...mapGetters(['clientHeight', 'iframeHeight']) ...mapGetters(['clientHeight', 'iframeHeight'])

151
src/views/modules/visual/basicinfo/basicInfoCommunity.vue

@ -1,7 +1,7 @@
<template> <template>
<div class="div_community_info" <div class="div_community_info"
@click="handleShowAllUser()"> @click="handleCloseAllUser()">
<div class="div_select"> <div class="div_select">
<img src="../../../../assets/img/shuju/title-tip.png" <img src="../../../../assets/img/shuju/title-tip.png"
@ -10,7 +10,8 @@
<div class="second-select"> <div class="second-select">
<el-select v-model="selBuildingId" <el-select v-model="selBuildingId"
:popper-append-to-body="false" :popper-append-to-body="false"
placeholder="请选择"> placeholder="请选择"
@click="handleCloseAllUser()">
<el-option v-for="(item,index) in buildingArray" <el-option v-for="(item,index) in buildingArray"
:key="item.buildingId" :key="item.buildingId"
:label="item.buildingName" :label="item.buildingName"
@ -21,8 +22,10 @@
</div> </div>
</div> </div>
<div class="div_room_bar"> <div class="div_room_bar">
<el-scrollbar style="height:100%"> <el-scrollbar v-if="roomArray.length>0"
style="height:100%">
<div class="info_loading" <div class="info_loading"
v-if="roomLoaded"> v-if="roomLoaded">
<screen-loading>加载中</screen-loading> <screen-loading>加载中</screen-loading>
@ -40,18 +43,39 @@
<img :src="item.partyUrl" <img :src="item.partyUrl"
alt /> alt />
</div> </div>
<div class="icon_roomstate">
<div>出租</div>
</div>
<div class="icon_category"> <div class="icon_category">
<img v-for="(iconItem,iconIndex) in item.iconArrayShow"
:key="iconIndex" <div class="div_icon_item"
v-for="(iconItem,iconIndex) in item.iconArrayShow"
:key="iconIndex">
<el-popover trigger="hover"
popper-class="icon_popover"
placement="bottom">
<div class="icon_name">{{iconItem.name}} </div>
<div slot="reference">
<img class="icon_img"
:src="iconItem.iconUrl" :src="iconItem.iconUrl"
alt /> alt />
</div> </div>
<!-- <el-popover v-model="item.showAllUser" </el-popover>
</div>
<!-- <img v-for="(iconItem,iconIndex) in item.iconArrayShow"
:key="iconIndex"
:src="iconItem.iconUrl"
alt /> -->
</div>
<el-popover v-model="item.showAllUser"
placement="bottom" placement="bottom"
width="50" width="50"
popper-class="my_popover" popper-class="my_popover"
trigger="click"> trigger="manual">
<div class="user_list"> <div class="user_list">
<div v-for="(userItem,userIndex) in userArray" <div v-for="(userItem,userIndex) in userArray"
:key="userIndex" :key="userIndex"
@ -77,39 +101,23 @@
alt /> alt />
</div> </div>
</el-popover> --> </el-popover>
<div @click.stop="handleShowAllUser(index)"
class="div_user">
<span>全部成员</span>
<img src="../../../../assets/img/xiala.png"
alt />
<div class="user_list"
v-show="item.showAllUser&&userArray.length>0">
<div v-for="(userItem,userIndex) in userArray"
:key="userIndex"
class="user_item"
@click.stop="handleClickUser(userItem.userId)">
<div class="user_item_content">
<div class="name">{{userItem.name}}</div>
<img src="../../../../assets/img/jinru.png"
alt />
</div>
<div :class="['item_line',{'last_line':userIndex==(userArray.length-1)}]"></div>
</div>
</div>
</div> </div>
</div> </div>
</el-scrollbar>
<div v-else
class="no-data">
<img src="@/assets/img/modules/visual/noData.png"
class="no-data-img" />
</div> </div>
</el-scrollbar>
</div> </div>
<room-info v-show="showHouseInfo"
v-if="selHouseId"
:selHouseId="selHouseId"
@close="showHouseInfo = false" />
</div> </div>
</template> </template>
@ -119,6 +127,8 @@ import { mapGetters } from "vuex";
import { Loading } from 'element-ui'; //Loading import { Loading } from 'element-ui'; //Loading
import { requestPost } from "@/js/dai/request"; import { requestPost } from "@/js/dai/request";
import ScreenLoading from "@/views/modules/visual/cpts/loading"; import ScreenLoading from "@/views/modules/visual/cpts/loading";
import nextTick from "dai-js/tools/nextTick";
import roomInfo from "@/views/modules/visual/basicinfo/cpts/roomInfo";
let loading;// let loading;//
@ -138,6 +148,7 @@ export default {
selHouseId: '', selHouseId: '',
selHouseName: '', selHouseName: '',
selHouseIndex: 0, selHouseIndex: 0,
showHouseInfo: false,
userArray: [], userArray: [],
selUserName: '', selUserName: '',
@ -151,12 +162,16 @@ export default {
runNum: 0, runNum: 0,
runAgencyArray: [], runAgencyArray: [],
} }
}, },
async mounted () { async mounted () {
}, },
methods: { methods: {
//id //id
async initData (neighborHoodId, neighborHoodName) { async initData (neighborHoodId, neighborHoodName) {
@ -190,32 +205,46 @@ export default {
this.selHouseId = this.roomArray[index].houseId this.selHouseId = this.roomArray[index].houseId
this.selHouseName = this.roomArray[index].houseName this.selHouseName = this.roomArray[index].houseName
this.showHouseInfo = true
// this.$emit('refreshInfoList', this.selHouseId, 'room')- // this.$emit('refreshInfoList', this.selHouseId, 'room')-
}, },
// //
async handleShowAllUser (selIndex) { async handleShowAllUser (selIndex) {
// this.startLoading()
this.userArray = []
this.roomArray.forEach((element, index) => {
let obj = JSON.parse(JSON.stringify(element))
obj.showAllUser = false
this.$set(this.roomArray, index, obj)
// element.showAllUser = false
});
await nextTick(50);
if ((selIndex === 0 || selIndex) && !this.roomArray[selIndex].showAllUser) { if ((selIndex === 0 || selIndex) && !this.roomArray[selIndex].showAllUser) {
await this.loadUser(this.roomArray[selIndex].houseId, selIndex) await this.loadUser(this.roomArray[selIndex].houseId, selIndex)
} }
this.roomArray.forEach((element, index) => { },
let obj = JSON.parse(JSON.stringify(element)) //
async handleCloseAllUser () {
if (index === selIndex) { this.userArray = []
obj.showAllUser = !obj.showAllUser this.roomArray.forEach((element, index) => {
this.$set(this.roomArray, selIndex, obj)
let obj = JSON.parse(JSON.stringify(element))
} else {
obj.showAllUser = false obj.showAllUser = false
this.$set(this.roomArray, index, obj) this.$set(this.roomArray, index, obj)
// element.showAllUser = false
}
}); });
// this.endLoading()
}, },
@ -228,6 +257,13 @@ export default {
}, },
onEnterTd () {
console.log('进入')
},
onLeaveTd () {
console.log('出来')
},
// //
async loadBuilding () { async loadBuilding () {
const url = "/gov/org/agency/baseinfofamilybuilding" const url = "/gov/org/agency/baseinfofamilybuilding"
@ -320,7 +356,7 @@ export default {
}, },
// //
async loadUser (houseId, index) { async loadUser (houseId, selIndex) {
const url = "/epmetuser/icresiuser/getpeoplebyroom" const url = "/epmetuser/icresiuser/getpeoplebyroom"
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icresiuser/getpeoplebyroom" // const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icresiuser/getpeoplebyroom"
let params = { let params = {
@ -333,6 +369,11 @@ export default {
this.userArray = data this.userArray = data
if (this.userArray.length === 0) { if (this.userArray.length === 0) {
this.$message.warning('该房间下没有住户') this.$message.warning('该房间下没有住户')
} else {
let objItem = JSON.parse(JSON.stringify(this.roomArray[selIndex]))
objItem.showAllUser = true
this.$set(this.roomArray, selIndex, objItem)
} }
} else { } else {
@ -390,7 +431,7 @@ export default {
...mapGetters(["clientHeight"]) ...mapGetters(["clientHeight"])
}, },
components: { ScreenLoading }, components: { ScreenLoading, roomInfo },
} }
</script> </script>
@ -433,7 +474,7 @@ export default {
.second-select { .second-select {
margin: 0 10px 10px; margin: 0 10px 10px;
::v-deep .el-input { ::v-deep .el-input {
width: 180px; width: 380px;
height: 36px; height: 36px;
.el-input__inner { .el-input__inner {
height: 100%; height: 100%;
@ -442,6 +483,7 @@ export default {
line-height: 36px; line-height: 36px;
background: #06186d; background: #06186d;
border: 1px solid #1a64cc; border: 1px solid #1a64cc;
width: 380px;
} }
.el-icon-arrow-up:before { .el-icon-arrow-up:before {
@ -491,12 +533,25 @@ export default {
/deep/ .el-scrollbar__wrap { /deep/ .el-scrollbar__wrap {
overflow-x: hidden !important; overflow-x: hidden !important;
} }
.no-data {
padding-top: 120px;
display: flex;
justify-content: center;
}
} }
</style> </style>
<style lang="scss" > <style lang="scss" >
.el-popover.my_popover { .el-popover.my_popover {
padding: 0px; padding: 0px;
margin-top: 10px; margin-top: 14px;
border: 0; border: 0;
} }
.el-popover.icon_popover {
font-size: 14px;
min-width: 50px !important;
margin-top: 5px !important;
padding: 3px !important;
background-color: rgb(247, 250, 253);
}
</style> </style>

1074
src/views/modules/visual/basicinfo/basicInfoMain copy.vue

File diff suppressed because it is too large

15
src/views/modules/visual/basicinfo/basicInfoMain.vue

@ -107,7 +107,8 @@
<div class="list_item"> <div class="list_item">
<div v-for="(colItem,colIndex) in item" <div v-for="(colItem,colIndex) in item"
:key="colIndex" :key="colIndex"
class="list_item_col" @click="handleTo(colItem)"> class="list_item_col"
@click="handleTo(colItem)">
<img :src="colItem.dataIcon" <img :src="colItem.dataIcon"
alt /> alt />
<div class="item_content"> <div class="item_content">
@ -310,7 +311,7 @@ const vueGis = {
}, },
methods: { methods: {
handleTo(item) { handleTo (item) {
this.$router.push({ this.$router.push({
path: `/main-shuju/visual-basicinfo-people-list`, path: `/main-shuju/visual-basicinfo-people-list`,
query: { query: {
@ -526,8 +527,18 @@ const vueGis = {
// //
handleClickAgency (index) { handleClickAgency (index) {
//
if (this.orgLevel === 'neighborHood') {
this.$nextTick(() => {
// id
this.$refs.ref_community.handleCloseAllUser();
});
}
const cutNum = this.runAgencyArray.length - index// const cutNum = this.runAgencyArray.length - index//
this.runNum = this.runNum - cutNum this.runNum = this.runNum - cutNum
this.orgData = this.runAgencyArray[index] this.orgData = this.runAgencyArray[index]
for (let i = 0; i < cutNum; i++) { for (let i = 0; i < cutNum; i++) {

183
src/views/modules/visual/basicinfo/cpts/roomInfo.vue

@ -0,0 +1,183 @@
<template>
<div class="m-room-pop">
<div class="wrap">
<cpt-card>
<div class="title">
<img src="@/assets/img/shuju/title-tip.png" />
<span>房屋信息</span>
</div>
<div class="btn-close"
@click="handleClose">
<img src="@/assets/img/shuju/people/close.png" />
</div>
<!-- <div class="list">
<div class="item">
<span class="item-field">所属小区</span>
<span>{{ formData.neighborHoodName }}</span>
</div>
</div> -->
<div class="list">
<div class="item">
<span class="item-field">所属楼栋</span>
<span>{{ formData.buildingName }}</span>
</div>
</div>
<div class="list">
<div class="item">
<span class="item-field">房屋名称</span>
<span>{{ formData. houseName }}</span>
</div>
</div>
<div class="list">
<div class="item">
<span class="item-field">房屋类型</span>
<span>{{ formData.houseTypeName }}</span>
</div>
</div>
<div class="list">
<div class="item">
<span class="item-field">房屋状态</span>
<span>{{ formData. rentName }}</span>
</div>
</div>
<div class="list">
<div class="item">
<span class="item-field">房屋用途</span>
<span>{{ formData. purposeName }}</span>
</div>
</div>
<div class="list">
<div class="item">
<span class="item-field">房主姓名</span>
<span>{{ formData.ownerName?formData.ownerName:'无' }}</span>
</div>
</div>
<div class="list">
<div class="item">
<span class="item-field">房主电话</span>
<span>{{ formData.ownerPhone?formData.ownerPhone:'无' }}</span>
</div>
</div>
<div class="list">
<div class="item">
<span class="item-field">房主身份证</span>
<span>{{ formData. ownerIdCard?formData.ownerIdCard:'无' }}</span>
</div>
</div>
</cpt-card>
</div>
</div>
</template>
<script>
import cptCard from "@/views/modules/visual/cpts/card";
import { requestGet } from "@/js/dai/request";
import cptTb from "@/views/modules/visual/cpts/tb";
export default {
name: "peopleMore",
props: {
selHouseId: {
type: String,
default: "",
},
gridName: {
type: String,
default: "",
},
},
components: {
cptCard, cptTb
},
data () {
return {
formData: {
gridId: '',
agencyId: '',//Id
userId: '',//idicResiUserId
userType: 'icresi',//resi;icresi;import;synchro
name: '',
idCard: '',
mobile: '',
heSuanCheck: false,
presentAddress: '',
presentAddressCode: '',
detailAddress: '',
sourceAddressCode: '',
presentAddressPathCode: '',
sourceAddress: '',
sourceAddressPathCode: '',
arriveDate: '',
remark: '',
leaveDate: '',
userType: 'input',
content: '',
channel: []
},
};
},
computed: {
},
watch: {
selHouseId () {
this.getApiData();
},
},
mounted () {
this.getApiData();
},
methods: {
handleClose () {
this.$emit("close");
},
async getApiData () {
this.loadHouseInfo()
},
async loadHouseInfo () {
const url = "/gov/org/ichouse/" + this.selHouseId
const { data, code, msg } = await requestGet(url)
if (code === 0) {
this.formData = data
} else {
this.$message.error(msg)
}
},
},
};
</script>
<style
lang="scss"
src="@/assets/scss/modules/visual/basicInfoMain.scss"
scoped
></style>

5
src/views/modules/visual/basicinfo/peopleSearch.vue

@ -124,9 +124,8 @@ export default {
total: 0, total: 0,
orgLevel: 'search', orgLevel: 'search',
selUserId: '', selUserId: '',
//
runNum: 0,
runAgencyArray: [],
}; };
}, },
activated () { activated () {

80
src/views/modules/visual/basicinfo/personCategory/index.vue

@ -1,5 +1,21 @@
<template> <template>
<div @click="hiddenTypeList()" <div>
<!-- 组织路由 -->
<div class="div_top">
<div class="router_line"></div>
<div class="div_router">
<div v-if="orgLevel==='search'">
<span class="router_child">人员类别</span>
</div>
<div v-if="orgLevel==='people'"> <span class="router_parents"
@click="handleClickBack">人员类别<span class="arrow">></span></span>
<span class="router_child">个人档案</span>
</div>
</div>
</div>
<div v-if="orgLevel!=='people'"
@click="hiddenTypeList()"
class="warning-box"> class="warning-box">
<cpt-card> <cpt-card>
<div class="title"> <div class="title">
@ -67,29 +83,7 @@
</div> </div>
</div> </div>
<!-- <div class="num-item">
<div>较上月</div>
<div>
<div>
<span>新人员增加</span>
<span v-if=" item.immigration!==0">{{ "+" }}</span>
<span>{{ item.immigration }}</span>
</div>
</div>
</div> -->
<!-- <div class="num-item">
<div>{{" "}}</div>
<div>
<div>
<span>原人员减少</span>
<span v-if=" item.emigration!==0">{{ "-" }}</span>
<span>{{ item.emigration }}</span>
</div>
</div>
</div> -->
</div> </div>
</div> </div>
</div> </div>
@ -97,11 +91,17 @@
</el-scrollbar> </el-scrollbar>
<div class="warning-box-bottom"> <div class="warning-box-bottom">
<screen-table ref="ref_recordlist"></screen-table> <screen-table ref="ref_recordlist"
@toSubAgency="toSubAgency"></screen-table>
</div> </div>
</cpt-card> </cpt-card>
</div> </div>
<people v-if="orgLevel==='people'"
:uid="selUserId"
ref="ref_people"></people>
</div>
</template> </template>
<script> <script>
@ -109,12 +109,17 @@ import { requestPost } from "@/js/dai/request";
import screenTable from "./recordList"; import screenTable from "./recordList";
import cptCard from "@/views/modules/visual/cpts/card"; import cptCard from "@/views/modules/visual/cpts/card";
import nextTick from "dai-js/tools/nextTick"; import nextTick from "dai-js/tools/nextTick";
import People from "../people";
export default { export default {
components: { components: {
cptCard, cptCard,
screenTable, screenTable,
People,
}, },
data () { data () {
return { return {
@ -146,10 +151,11 @@ export default {
agencyInfo: {}, agencyInfo: {},
categoryList: [], categoryList: [],
activeIndex: 0, activeIndex: 0,
orgLevel: 'search',
selUserId: '',
}; };
}, },
async mounted () { async mounted () {
@ -160,6 +166,7 @@ export default {
}, },
methods: { methods: {
hiddenTypeList () { hiddenTypeList () {
@ -256,6 +263,20 @@ export default {
}, },
// type:polygon / people
async toSubAgency (userId) {
this.selUserId = userId
this.orgLevel = 'people'
},
//
handleClickBack () {
this.orgLevel = 'search'
},
}, },
watch: { watch: {
dateIdShow () { dateIdShow () {
@ -267,6 +288,12 @@ export default {
}, },
}; };
</script> </script>
<style
lang="scss"
src="@/assets/scss/modules/visual/basicInfoMain.scss"
scoped
></style>
<style <style
lang="scss" lang="scss"
src="@/assets/scss/modules/visual/typeAnalyze.scss" src="@/assets/scss/modules/visual/typeAnalyze.scss"
@ -277,3 +304,4 @@ export default {
src="@/assets/scss/modules/visual/personCategory.scss" src="@/assets/scss/modules/visual/personCategory.scss"
scoped scoped
></style> ></style>

58
src/views/modules/visual/basicinfo/personCategory/recordList.vue

@ -1,4 +1,5 @@
<template> <template>
<div class="warning-table"> <div class="warning-table">
<div class="table"> <div class="table">
<div class="table-header"> <div class="table-header">
@ -50,15 +51,16 @@
<div class="table-body-tr" <div class="table-body-tr"
v-for="(value, index) in tableData" v-for="(value, index) in tableData"
:key="index"> :key="index">
<div class="td" <div :class="['td',indexs===1?'tr-underline':'']"
v-for="(item, indexs) in value" v-for="(item, indexs) in value"
:style="{width:widthList[indexs]}" :style="{width:widthList[indexs]}"
:key="indexs"> :key="indexs"
@click="handelToPeople(indexs,index)">
<span>{{ item }}</span> <span>{{ item }}</span>
</div> </div>
</div> </div>
<screen-loading v-if="visibleLoading">加载中</screen-loading> <!-- <screen-loading v-if="visibleLoading">加载中</screen-loading> -->
<div class="no-data" <div class="no-data"
v-if="tableData.length == 0 && !visibleLoading"> v-if="tableData.length == 0 && !visibleLoading">
<img src="@/assets/img/modules/visual/noData.png" <img src="@/assets/img/modules/visual/noData.png"
@ -68,7 +70,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="pagination"> <div class="pagination-record">
<el-pagination :current-page="pageNo" <el-pagination :current-page="pageNo"
:page-size="pageSize" :page-size="pageSize"
background background
@ -79,6 +81,7 @@
</el-pagination> </el-pagination>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
@ -96,6 +99,7 @@ export default {
data () { data () {
return { return {
visibleLoading: false, visibleLoading: false,
tableAllData: [],
tableData: [], tableData: [],
showTypeSelect: false, showTypeSelect: false,
widthList: ['5%', '10%', '15%', '10%', '20%', '30%'], widthList: ['5%', '10%', '15%', '10%', '20%', '30%'],
@ -106,8 +110,9 @@ export default {
dateId: '', dateId: '',
categoryKey: '', categoryKey: '',
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 7,
total: 0 total: 0,
}; };
}, },
watch: { watch: {
@ -118,9 +123,22 @@ export default {
this.loadTypeList() this.loadTypeList()
}, },
created () { }, created () { },
methods: { methods: {
//
handelToPeople (titleIndex, index) {
if (titleIndex === 1) {
// console.log(this.tableData)
console.log(this.tableAllData[index])
this.$emit('toSubAgency', this.tableAllData[index].icUserId)
}
},
hiddenTypeList () { hiddenTypeList () {
this.showTypeSelect = false this.showTypeSelect = false
@ -181,6 +199,7 @@ export default {
}; };
const { data, code, msg } = await requestPost(url, params); const { data, code, msg } = await requestPost(url, params);
if (code === 0) { if (code === 0) {
this.tableAllData = data.list
data.list.forEach((item, index) => { data.list.forEach((item, index) => {
tableData.push([ tableData.push([
index + 1, index + 1,
@ -230,10 +249,11 @@ export default {
width: 100%; width: 100%;
height: 100%; height: 100%;
.table { .table {
width: 100%; position: relative;
width: 99%;
height: 100%; height: 100%;
&-header { &-header {
width: 100%; width: 99%;
height: 50px; height: 50px;
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
@ -247,6 +267,7 @@ export default {
text-align: center; text-align: center;
width: calc(100% / 5); width: calc(100% / 5);
} }
&-select { &-select {
position: relative; position: relative;
@ -328,6 +349,15 @@ export default {
} }
} }
} }
.tr-underline {
font-size: 18px;
font-weight: 400;
color: rgba(197, 210, 255, 0.85);
text-decoration: underline;
}
.tr-underline:hover {
cursor: pointer;
}
} }
&-tr:nth-child(2n) { &-tr:nth-child(2n) {
@ -339,6 +369,7 @@ export default {
no-repeat center; no-repeat center;
background-size: 100% 100%; background-size: 100% 100%;
} }
// //
.no-data { .no-data {
width: 100%; width: 100%;
@ -353,10 +384,13 @@ export default {
} }
} }
} }
.pagination { .pagination-record {
position: absolute;
box-sizing: border-box; box-sizing: border-box;
margin-top: 20px; right: 20px;
width: 100%; bottom: 10px;
// margin-top: 20px;
// width: 100%;
height: 40px; height: 40px;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
@ -431,3 +465,5 @@ export default {
} }
} }
</style> </style>

107
src/views/modules/visual/warning/components/screen-table/index.vue

@ -23,33 +23,10 @@
:key="indexs" :key="indexs"
:style="tableContentStyle[indexs]" :style="tableContentStyle[indexs]"
> >
<div v-if="Array.isArray(item)"> <div v-if="item.type && item.type == 'btn'">
<span <a @click="handleClickBtn(item)">{{ item.name }}</a>
v-show="rIndex < 3"
:key="resi.userId"
v-for="(resi, rIndex) in item"
>
{{ rIndex != 0 ? "、" : "" }}
<a @click="toUserInfo(resi.userId)">{{ resi.residentName }}</a>
</span>
</div> </div>
<span v-else>{{ item }}</span> <span v-else>{{ item }}</span>
<span
v-if="indexs + 1 == value.length && item.length > 3"
class="more"
@click.stop="onClickMorePop(index)"
ref="morePop"
>
更多>
<div class="more-pop" v-if="visiblePopList[index]">
<span :key="resi.userId" v-for="(resi, rIndex) in item">
{{ rIndex != 0 ? "、" : "" }}
<a @click="toUserInfo(resi.userId)">{{
resi.residentName
}}</a>
</span>
</div>
</span>
</div> </div>
</div> </div>
<screen-loading v-if="visibleLoading">加载中</screen-loading> <screen-loading v-if="visibleLoading">加载中</screen-loading>
@ -63,16 +40,27 @@
</div> </div>
</div> </div>
</div> </div>
<people-list
v-if="showedPeopleList && buildingId"
:buildingId="buildingId"
:configId="configId"
:gridName="gridName"
@close="showedPeopleList = false"
/>
</div> </div>
</template> </template>
<script> <script>
import ScreenLoading from "../screen-loading/index"; import ScreenLoading from "../screen-loading/index";
import Vue from "vue"; import Vue from "vue";
import peopleList from "./people-list";
export default { export default {
name: "warning-table", name: "warning-table",
components: { components: {
ScreenLoading, ScreenLoading,
peopleList,
}, },
props: { props: {
headerList: { headerList: {
@ -84,7 +72,8 @@ export default {
{ title: "所属网格" }, { title: "所属网格" },
{ title: "所属小区" }, { title: "所属小区" },
{ title: "楼号" }, { title: "楼号" },
{ title: "姓名" }, { title: "预警人数" },
{ title: "操作" },
]; ];
}, },
}, },
@ -162,49 +151,29 @@ export default {
}, },
data() { data() {
return { return {
visiblePopList: [ //
false, showedPeopleList: false,
false, buildingId: "",
false, configId: "",
false, gridName: "",
false,
false,
false,
false,
false,
false,
],
}; };
}, },
watch: { watch: {},
tableData(arr) {
if (Array.isArray(arr)) {
this.visiblePopList = new Array(arr.length).fill(false);
}
},
},
mounted() { mounted() {},
window.addEventListener("click", (e) => {
this.visiblePopList = new Array(this.visiblePopList.length).fill(false);
});
},
created() {}, created() {},
methods: { methods: {
toUserInfo(uid) { handleClickBtn(item) {
this.$router.push({ path: `/main-shuju/visual-basicinfo-people/${uid}` }); this.showedPeopleList = true;
this.buildingId = item.buildingId;
this.configId = item.configId;
this.gridName = item.gridName;
}, },
onClickMorePop(index) { toUserInfo(uid) {
this.visiblePopList.forEach((item, indexs) => { this.$router.push({ path: `/main-shuju/visual-basicinfo-people/${uid}` });
if (index == indexs) {
Vue.set(this.visiblePopList, index, true);
} else {
Vue.set(this.visiblePopList, indexs, false);
}
});
}, },
}, },
}; };
@ -236,16 +205,19 @@ export default {
width: 5%; width: 5%;
} }
&:nth-child(2) { &:nth-child(2) {
width: 20%; width: 25%;
} }
&:nth-child(3) { &:nth-child(3) {
width: 20%; width: 25%;
} }
&:nth-child(4) { &:nth-child(4) {
width: 15%; width: 15%;
} }
&:nth-child(5) { &:nth-child(5) {
width: 40%; width: 15%;
}
&:nth-child(6) {
width: 15%;
} }
} }
} }
@ -275,16 +247,19 @@ export default {
width: 5%; width: 5%;
} }
&:nth-child(2) { &:nth-child(2) {
width: 20%; width: 25%;
} }
&:nth-child(3) { &:nth-child(3) {
width: 20%; width: 25%;
} }
&:nth-child(4) { &:nth-child(4) {
width: 15%; width: 15%;
} }
&:nth-child(5) { &:nth-child(5) {
width: 40%; width: 15%;
}
&:nth-child(6) {
width: 15%;
} }
a { a {
cursor: pointer; cursor: pointer;

213
src/views/modules/visual/warning/components/screen-table/people-list.vue

@ -0,0 +1,213 @@
<template>
<div class="m-pop">
<div class="wrap">
<cpt-card>
<div class="btn-close" @click="handleClose">
<img src="@/assets/img/shuju/people/close.png" />
</div>
<div class="wrap2">
<div class="title">
<span>人员列表</span>
</div>
<div class="content">
<div class="tb">
<cpt-tb
:col-list="colList"
:loading="loading"
:header="header"
:list="list"
@operate="toUserInfo"
></cpt-tb>
</div>
<div class="m-pagination">
<el-pagination
:current-page="pageNo"
:page-size="pageSize"
background
layout="prev, pager, next"
@size-change="pageSizeChangeHandleNew"
@current-change="pageCurrentChangeHandleNew"
:total="total"
>
</el-pagination>
</div>
</div>
</div>
</cpt-card>
</div>
<people-more
v-if="showedPeopleInfo && currentPepeleId"
:userId="currentPepeleId"
:gridName="gridName"
@close="showedPeopleInfo = false"
/>
</div>
</template>
<script>
import cptCard from "@/views/modules/visual/cpts/card";
import { requestPost } from "@/js/dai/request";
import peopleMore from "@/views/modules/shequ/cpts/people-more";
import cptTb from "@/views/modules/visual/cpts/tb";
import { mapGetters } from "vuex";
export default {
name: "people-list",
props: {
configId: {
type: String,
default: "",
},
buildingId: {
type: String,
default: "",
},
gridName: {
type: String,
default: "",
},
},
components: {
cptCard,
cptTb,
peopleMore,
},
data() {
return {
showedPeopleInfo: false,
currentPepeleId: "",
currentPepeleGridName: "",
colList: [
{
align: "center",
width: "5%",
},
{
align: "center",
width: "15%",
},
{
align: "center",
width: "10%",
},
{
align: "center",
width: "15%",
},
{
align: "center",
width: "20%",
},
{
align: "center",
width: "20%",
},
{
align: "center",
width: "10%",
},
],
header: ["序号", "姓名", "单元", "门牌号", "手机", "身份证", "操作"],
loading: false,
pageNo: 0,
pageSize: 12,
total: 0,
list: [],
srcList: [],
};
},
computed: {
maxTableHeight() {
return this.clientHeight - 450;
return 420;
},
...mapGetters(["clientHeight"]),
},
watch: {
userId() {
this.getApiData();
},
},
mounted() {
this.getApiData();
},
methods: {
pageSizeChangeHandleNew(val) {
this.pageNo = 1;
this.pageSize = val;
},
pageCurrentChangeHandleNew(val) {
this.pageNo = val;
this.getList();
},
handlePeopleItem(uid) {
console.log(uid);
this.currentPepeleId = uid;
this.showedPeopleInfo = true;
},
toUserInfo(index) {
let uid = this.srcList[index].userId;
this.$router.push({ path: `/main-shuju/visual-basicinfo-people/${uid}` });
},
handleClose() {
this.$emit("close");
},
async getApiData() {
this.getList();
},
async getList() {
const url = "/epmetuser/statsresiwarn/alluserwarnlist";
let params = {
buildingId: this.buildingId,
configId: this.configId,
pageNo: this.pageNo,
pageSize: this.pageSize,
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
const { list, total } = data;
this.list = list.map((item) => {
return [
{ type: "index" },
item.residentName,
item.unitName,
item.doorName,
item.mobile,
item.idCard,
{ type: "operate", list: ["查看更多"] },
];
});
this.total = total;
this.srcList = list;
} else {
this.$message.error(msg);
}
},
},
};
</script>
<style
lang="scss"
src="@/assets/scss/modules/visual/warning-people-list.scss"
scoped
></style>

12
src/views/modules/visual/warning/index.vue

@ -89,7 +89,8 @@ export default {
{ title: "所属网格" }, { title: "所属网格" },
{ title: "所属小区" }, { title: "所属小区" },
{ title: "楼号" }, { title: "楼号" },
{ title: "姓名" }, { title: "预警人数" },
{ title: "操作" },
], ],
tableData: [ tableData: [
// [1,'','','2',''], // [1,'','','2',''],
@ -133,7 +134,14 @@ export default {
item.gridName, item.gridName,
item.neighborhoodName, item.neighborhoodName,
item.buildingName, item.buildingName,
item.userList || '暂无', item.count,
{
type: "btn",
name: "查看人员",
buildingId: item.buildingId,
configId: item.configId,
gridName: item.gridName,
},
]); ]);
}); });
this.tableData = tableData; this.tableData = tableData;

21
src/views/modules/warning/components/screen-table/index.vue

@ -42,6 +42,7 @@
v-if="showedPeopleList && buildingId" v-if="showedPeopleList && buildingId"
:buildingId="buildingId" :buildingId="buildingId"
:configId="configId" :configId="configId"
:gridName="gridName"
@close="showedPeopleList = false" @close="showedPeopleList = false"
/> />
</div> </div>
@ -136,6 +137,7 @@ export default {
showedPeopleList: false, showedPeopleList: false,
buildingId: "", buildingId: "",
configId: "", configId: "",
gridName: "",
}; };
}, },
watch: {}, watch: {},
@ -149,6 +151,7 @@ export default {
this.showedPeopleList = true; this.showedPeopleList = true;
this.buildingId = item.buildingId; this.buildingId = item.buildingId;
this.configId = item.configId; this.configId = item.configId;
this.gridName = item.gridName;
}, },
toUserInfo(uid) { toUserInfo(uid) {
@ -186,16 +189,19 @@ export default {
width: 5%; width: 5%;
} }
&:nth-child(2) { &:nth-child(2) {
width: 20%; width: 25%;
} }
&:nth-child(3) { &:nth-child(3) {
width: 20%; width: 25%;
} }
&:nth-child(4) { &:nth-child(4) {
width: 15%; width: 15%;
} }
&:nth-child(5) { &:nth-child(5) {
width: 40%; width: 15%;
}
&:nth-child(6) {
width: 15%;
} }
} }
} }
@ -228,16 +234,19 @@ export default {
width: 5%; width: 5%;
} }
&:nth-child(2) { &:nth-child(2) {
width: 20%; width: 25%;
} }
&:nth-child(3) { &:nth-child(3) {
width: 20%; width: 25%;
} }
&:nth-child(4) { &:nth-child(4) {
width: 15%; width: 15%;
} }
&:nth-child(5) { &:nth-child(5) {
width: 40%; width: 15%;
}
&:nth-child(6) {
width: 15%;
} }
a { a {
cursor: pointer; cursor: pointer;

19
src/views/modules/warning/components/screen-table/people-list.vue

@ -6,7 +6,7 @@
</div> </div>
<div class="wrap2"> <div class="wrap2">
<div class="title"> <div class="title">
<span>更多信息</span> <span>人员列表</span>
</div> </div>
<div class="content"> <div class="content">
@ -14,9 +14,8 @@
<el-table <el-table
:data="list" :data="list"
border border
style="width: 100%" style="width: 100%;margin-top:20px;"
class="resi-table" class="resi-table"
:max-height="maxTableHeight"
> >
<el-table-column <el-table-column
label="序号" label="序号"
@ -35,11 +34,11 @@
fixed="right" fixed="right"
label="操作" label="操作"
align="center" align="center"
width="60" width="120"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@click="handlePeopleItem(scope.userId)" @click="handlePeopleItem(scope.row.userId)"
type="text" type="text"
size="small" size="small"
>查看更多</el-button >查看更多</el-button
@ -69,7 +68,7 @@
v-if="showedPeopleInfo && currentPepeleId" v-if="showedPeopleInfo && currentPepeleId"
:userId="currentPepeleId" :userId="currentPepeleId"
:gridName="gridName" :gridName="gridName"
@close="showedPeopleMoreInfo = false" @close="showedPeopleInfo = false"
/> />
</div> </div>
</template> </template>
@ -91,10 +90,15 @@ export default {
type: String, type: String,
default: "", default: "",
}, },
gridName: {
type: String,
default: "",
},
}, },
components: { components: {
cptCard, cptCard,
peopleMore,
}, },
data() { data() {
@ -105,7 +109,7 @@ export default {
loading: false, loading: false,
pageNo: 0, pageNo: 0,
pageSize: 10, pageSize: 12,
total: 0, total: 0,
list: [], list: [],
}; };
@ -140,6 +144,7 @@ export default {
}, },
handlePeopleItem(uid) { handlePeopleItem(uid) {
console.log(uid);
this.currentPepeleId = uid; this.currentPepeleId = uid;
this.showedPeopleInfo = true; this.showedPeopleInfo = true;

3
src/views/modules/warning/index.vue

@ -146,9 +146,10 @@ export default {
item.count, item.count,
{ {
type: "btn", type: "btn",
name: "查看人员详情", name: "查看人员",
buildingId: item.buildingId, buildingId: item.buildingId,
configId: item.configId, configId: item.configId,
gridName: item.gridName,
}, },
]); ]);
}); });

1
src/views/modules/workPc/guidance/DetailForm.vue

@ -132,7 +132,6 @@ import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading import { Loading } from 'element-ui' // Loading
import { requestPost } from '@/js/dai/request' import { requestPost } from '@/js/dai/request'
import Tinymce from '@c/tinymce/index.vue' import Tinymce from '@c/tinymce/index.vue'
// import tinymce from 'tinymce/tinymce' // import tinymce from 'tinymce/tinymce'
// import Editor from '@tinymce/tinymce-vue' // import Editor from '@tinymce/tinymce-vue'

Loading…
Cancel
Save