23 changed files with 1070 additions and 1425 deletions
@ -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; |
|||
} |
|||
} |
@ -1,154 +1,157 @@ |
|||
/* eslint-disable */ |
|||
<template> |
|||
<textarea :id="tinymceId" |
|||
style="visibility: hidden;" /> |
|||
<textarea :id="tinymceId" style="visibility: hidden" /> |
|||
</template> |
|||
|
|||
<script> |
|||
import loadTinymce from '@/utils/loadTinymce' |
|||
import { plugins, toolbar } from './config' |
|||
import { debounce } from 'throttle-debounce' |
|||
import Cookie from 'js-cookie' |
|||
import loadTinymce from "@/utils/loadTinymce"; |
|||
import { plugins, toolbar } from "./config"; |
|||
import { debounce } from "throttle-debounce"; |
|||
import Cookie from "js-cookie"; |
|||
// import constants from '@/utils/constants' |
|||
import nextTick from "dai-js/tools/nextTick"; |
|||
|
|||
let num = 1 |
|||
let num = 1; |
|||
|
|||
export default { |
|||
name: 'Tinymce', |
|||
name: "Tinymce", |
|||
props: { |
|||
id: { |
|||
type: String, |
|||
default: () => { |
|||
num === 10000 && (num = 1) |
|||
return `tinymce${+new Date()}${num++}` |
|||
} |
|||
num === 10000 && (num = 1); |
|||
return `tinymce${+new Date()}${num++}`; |
|||
}, |
|||
}, |
|||
value: { |
|||
default: '' |
|||
default: "", |
|||
}, |
|||
customerId: { |
|||
type: String, |
|||
default: '' |
|||
} |
|||
default: "", |
|||
}, |
|||
}, |
|||
data () { |
|||
data() { |
|||
return { |
|||
tinymceId: this.id |
|||
} |
|||
tinymceId: this.id, |
|||
}; |
|||
}, |
|||
mounted () { |
|||
|
|||
loadTinymce(tinymce => { |
|||
let token = this.getUserToken() |
|||
mounted() { |
|||
loadTinymce((tinymce) => { |
|||
let token = this.getUserToken(); |
|||
// 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}" |
|||
// let uploadUrl = constants.userUploadUrl |
|||
// eslint-disable-next-line global-require |
|||
require('./zh_CN') |
|||
require("./zh_CN"); |
|||
let conf = { |
|||
selector: `#${this.tinymceId}`, |
|||
language: 'zh_CN', |
|||
menubar: 'false', |
|||
skin_url: '/' + process.env.VUE_APP_PUBLIC_PATH + '/tinymce/skins/ui/tduck', |
|||
content_style: 'p {margin:3px 0; border:0px; padding:0px}', |
|||
content_css: '/' + process.env.VUE_APP_PUBLIC_PATH + '/tinymce/skins/content/tduck', |
|||
cache_suffix: '?v=0.0.1', |
|||
language: "zh_CN", |
|||
menubar: "false", |
|||
skin_url: |
|||
"/" + process.env.VUE_APP_PUBLIC_PATH + "/tinymce/skins/ui/tduck", |
|||
content_style: "p {margin:3px 0; border:0px; padding:0px}", |
|||
content_css: |
|||
"/" + |
|||
process.env.VUE_APP_PUBLIC_PATH + |
|||
"/tinymce/skins/content/tduck", |
|||
cache_suffix: "?v=0.0.1", |
|||
plugins, |
|||
toolbar, |
|||
toolbar_drawer: 'sliding', |
|||
toolbar_mode: 'sliding', |
|||
toolbar_drawer: "sliding", |
|||
toolbar_mode: "sliding", |
|||
height: 400, |
|||
// fontsize_formats: "8pt 10pt 12pt 14pt 18pt 24pt 36pt", |
|||
branding: false, |
|||
object_resizing: false, |
|||
end_container_on_empty_block: true, |
|||
powerpaste_word_import: 'clean', |
|||
powerpaste_word_import: "clean", |
|||
// code_dialog_height: 450, |
|||
// code_dialog_width: 1000, |
|||
// autoresize_max_height: 450, // 编辑区域的最大高度 |
|||
// autoresize_min_height: 350, //编辑区域的最小高度 |
|||
advlist_bullet_styles: 'square', |
|||
advlist_number_styles: 'default', |
|||
default_link_target: '_blank', |
|||
advlist_bullet_styles: "square", |
|||
advlist_number_styles: "default", |
|||
default_link_target: "_blank", |
|||
link_title: false, |
|||
statusbar: false, |
|||
nonbreaking_force_tab: true, |
|||
// images_upload_url: uploadUrl, |
|||
images_upload_handler: function (blobInfo, succFun, failFun) { |
|||
var xhr, formData |
|||
var file = blobInfo.blob()// 转化为易于理解的file对象 |
|||
xhr = new XMLHttpRequest() |
|||
xhr.withCredentials = false |
|||
xhr.open('POST', uploadUrl) |
|||
xhr.setRequestHeader('token', token) |
|||
var xhr, formData; |
|||
var file = blobInfo.blob(); // 转化为易于理解的file对象 |
|||
xhr = new XMLHttpRequest(); |
|||
xhr.withCredentials = false; |
|||
xhr.open("POST", uploadUrl); |
|||
xhr.setRequestHeader("token", token); |
|||
xhr.onload = function () { |
|||
|
|||
var json |
|||
var json; |
|||
if (xhr.status != 200) { |
|||
failFun('HTTP Error: ' + xhr.status) |
|||
return |
|||
failFun("HTTP Error: " + xhr.status); |
|||
return; |
|||
} |
|||
json = JSON.parse(xhr.responseText) |
|||
if (!json || typeof json.data.url != 'string') { |
|||
failFun('Invalid JSON: ' + xhr.responseText) |
|||
return |
|||
json = JSON.parse(xhr.responseText); |
|||
if (!json || typeof json.data.url != "string") { |
|||
failFun("Invalid JSON: " + xhr.responseText); |
|||
return; |
|||
} |
|||
|
|||
succFun(json.data.url) |
|||
} |
|||
formData = new FormData() |
|||
succFun(json.data.url); |
|||
}; |
|||
formData = new FormData(); |
|||
|
|||
formData.append('file', file, file.name)// 此处与源文档不一样 |
|||
formData.append("file", file, file.name); // 此处与源文档不一样 |
|||
// formData.append('customerId', '111') |
|||
xhr.send(formData) |
|||
} |
|||
} |
|||
conf = Object.assign(conf, this.$attrs) |
|||
conf.init_instance_callback = editor => { |
|||
|
|||
if (this.value) editor.setContent(this.value) |
|||
this.vModel(editor) |
|||
} |
|||
xhr.send(formData); |
|||
}, |
|||
}; |
|||
conf = Object.assign(conf, this.$attrs); |
|||
conf.init_instance_callback = (editor) => { |
|||
if (this.value) editor.setContent(this.value); |
|||
this.vModel(editor); |
|||
}; |
|||
|
|||
tinymce.init(conf) |
|||
}) |
|||
tinymce.init(conf); |
|||
}); |
|||
}, |
|||
destroyed () { |
|||
this.destroyTinymce() |
|||
destroyed() { |
|||
this.destroyTinymce(); |
|||
}, |
|||
methods: { |
|||
vModel (editor) { |
|||
vModel(editor) { |
|||
// 控制连续写入时setContent的触发频率 |
|||
const debounceSetContent = debounce(250, editor.setContent) |
|||
this.$watch('value', (val, prevVal) => { |
|||
const debounceSetContent = debounce(250, editor.setContent); |
|||
this.$watch("value", (val, prevVal) => { |
|||
if (editor && val !== prevVal && val !== editor.getContent()) { |
|||
if (typeof val !== 'string') val = val.toString() |
|||
debounceSetContent.call(editor, val) |
|||
if (typeof val !== "string") val = val.toString(); |
|||
debounceSetContent.call(editor, val); |
|||
} |
|||
}) |
|||
}); |
|||
|
|||
editor.on('change keyup undo redo', () => { |
|||
this.$emit('input', editor.getContent()) |
|||
}) |
|||
editor.on('blur', () => { |
|||
this.$emit('blur') |
|||
}) |
|||
editor.on("change keyup undo redo", () => { |
|||
this.$emit("input", editor.getContent()); |
|||
}); |
|||
editor.on("blur", () => { |
|||
this.$emit("blur"); |
|||
}); |
|||
console.log('init_instance_callback1111111111') |
|||
}, |
|||
getUserToken () { |
|||
let token = localStorage.getItem('token') |
|||
getUserToken() { |
|||
let token = localStorage.getItem("token"); |
|||
// console.log('获取token', token) |
|||
// return this.$store.getters['user/isLogin'] |
|||
return token |
|||
return token; |
|||
}, |
|||
destroyTinymce () { |
|||
if (!window.tinymce) return |
|||
const tinymce = window.tinymce.get(this.tinymceId) |
|||
destroyTinymce() { |
|||
if (!window.tinymce) return; |
|||
const tinymce = window.tinymce.get(this.tinymceId); |
|||
if (tinymce) { |
|||
tinymce.destroy() |
|||
tinymce.destroy(); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
File diff suppressed because it is too large
@ -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: '',//居民端小程序的用户id、数字社区的icResiUserId、其他情况无值 |
|||
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> |
@ -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> |
Loading…
Reference in new issue