Browse Source

Merge branch 'master' into dev-bug-temp

dev-map-local
dai 3 years ago
parent
commit
a0574b39f3
  1. 4
      .env.development
  2. BIN
      src/assets/img/shuju/measure/cheng.png
  3. BIN
      src/assets/img/shuju/people/ren-prop-4.png
  4. BIN
      src/assets/img/shuju/people/ren-prop-5.png
  5. BIN
      src/assets/img/shuju/people/ren-prop-6.png
  6. 5
      src/assets/scss/common.scss
  7. 2
      src/assets/scss/modules/shequzhili/event-info.scss
  8. 8
      src/assets/scss/modules/visual/houseStatic.scss
  9. 4
      src/assets/scss/modules/visual/people.scss
  10. 1102
      src/js/dai/nongli.js
  11. 1
      src/views/components/editResi.vue
  12. 113
      src/views/modules/communityParty/calendar/cpts/calendar.vue
  13. 361
      src/views/modules/communityParty/calendar/index.vue
  14. 12
      src/views/modules/communityParty/stas/index.vue
  15. 147
      src/views/modules/partymember/icpartyorgtree.vue
  16. 40
      src/views/modules/plugins/point/icpointnucleicmonitoring.vue
  17. 11
      src/views/modules/shequzhili/event/cpts/add.vue
  18. 4
      src/views/modules/shequzhili/event/cpts/event-detail.vue
  19. 46
      src/views/modules/shequzhili/event/eventList.vue
  20. 2
      src/views/modules/shequzhili/tuceng/anquan/xuncha/cpts/record.vue
  21. 237
      src/views/modules/visual/basicinfo/houseStatic/houseList.vue
  22. 124
      src/views/modules/visual/basicinfo/houseStatic/houseMore.vue
  23. 158
      src/views/modules/visual/basicinfo/houseStatic/houseStatic.vue
  24. 235
      src/views/modules/visual/basicinfo/houseStatic/peopleList.vue
  25. 26
      src/views/modules/visual/basicinfo/people.vue
  26. 59
      src/views/modules/workSys/resiCate.vue

4
.env.development

@ -1,7 +1,7 @@
NODE_ENV=development
# VUE_APP_API_SERVER = http://epmet-dev.elinkservice.cn:41080/api
# VUE_APP_API_SERVER = http://192.168.1.140/api
VUE_APP_API_SERVER = https://epmet-yantai.elinkservice.cn/api
VUE_APP_API_SERVER = http://192.168.1.140/api
# VUE_APP_API_SERVER = https://epmet-yantai.elinkservice.cn/api
# VUE_APP_API_SERVER = https://epmet-test.elinkservice.cn/api
# VUE_APP_API_SERVER = https://epmet-cloud.elinkservice.cn/api
# VUE_APP_API_SERVER = https://epdc-shibei.elinkservice.cn/api

BIN
src/assets/img/shuju/measure/cheng.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
src/assets/img/shuju/people/ren-prop-4.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

BIN
src/assets/img/shuju/people/ren-prop-5.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 11 KiB

BIN
src/assets/img/shuju/people/ren-prop-6.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

5
src/assets/scss/common.scss

@ -829,3 +829,8 @@ input::-webkit-inner-spin-button {
input[type="number"] {
-moz-appearance: textfield;
}
// 默认输入框placeholder样式
html .el-input.is-disabled .el-input__inner {
color: #333;
}

2
src/assets/scss/modules/shequzhili/event-info.scss

@ -143,7 +143,7 @@
width: 450px
}
.cell-width-2{
width: 350px
width: 300px
}
.cell-width-map {

8
src/assets/scss/modules/visual/houseStatic.scss

@ -298,6 +298,7 @@
font-family: PingFang SC;
font-weight: bold;
color: #FFFFFF;
cursor: pointer;
}
.zz{
@ -320,6 +321,12 @@
font-weight: bold;
color: #fac126;
}
.wsc{
font-size: 35px;
font-family: PingFang SC;
font-weight: bold;
color: #fc8452;
}
.colorwhite{
font-size: 35px;
@ -336,6 +343,7 @@
font-weight: 400;
color: #FFFFFF;
min-width:62px;
}
.table-table-title{

4
src/assets/scss/modules/visual/people.scss

@ -243,6 +243,10 @@
border-radius: 3px;
}
}
.item2{
width: 49%;
}
}
.line {

1102
src/js/dai/nongli.js

File diff suppressed because it is too large

1
src/views/components/editResi.vue

@ -385,6 +385,7 @@ export default {
let constForm = {
...form
}
console.log('-----------------哈哈哈哈哈哈rules', rules)
return {
openSearch: false,
fixedForm: {

113
src/views/modules/communityParty/calendar/cpts/calendar.vue

@ -1,36 +1,43 @@
<template>
<div class="m-calendar">
<div class="top-list">
<div class="top"
v-for="(item, index) in top"
:class="{ 'z-weekend': index > 4 }"
:key="item">
<div
class="top"
v-for="(item, index) in top"
:class="{ 'z-weekend': index > 4 }"
:key="item"
>
{{ item }}
</div>
</div>
<!-- 日历号 -->
<div class="date-list">
<div class="date-item"
:class="{
<div
class="date-item"
:class="{
'z-on': item.format == currentDate,
'z-this-month': item.thisMonth,
'z-today': item.isToday,
'z-after-today': item.afterToday,
'z-weekend': item.day == 6 || item.day == 0,
}"
v-for="(item, index) in visibleCalendar"
:key="index"
@click="handleClickDate(item)">
v-for="(item, index) in visibleCalendar"
:key="index"
@click="handleClickDate(item)"
>
<div class="date">{{ item.date }}</div>
<slot name="date-item"
v-bind:item="item"
v-bind:index="index"></slot>
<div class="nongli">
{{ computeNongliText(item.year, item.month, item.date) }}
</div>
<slot name="date-item" v-bind:item="item" v-bind:index="index"> </slot>
</div>
</div>
</div>
</template>
<script>
import nongli from "@/js/dai/nongli";
export default {
props: {
currentYear: {
@ -42,7 +49,7 @@ export default {
default: new Date().getMonth(),
},
},
data () {
data() {
return {
top: ["一", "二", "三", "四", "五", "六", "日"],
currentDate: "",
@ -50,7 +57,7 @@ export default {
},
computed: {
// ,42
visibleCalendar () {
visibleCalendar() {
//
const { currentYear, currentMonth } = this;
const today = new Date();
@ -111,25 +118,37 @@ export default {
},
},
watch: {
visibleCalendar () {
visibleCalendar() {
this.init();
// this.iniDate();
},
},
mounted () {
mounted() {
console.log("123", this.time);
this.init();
},
methods: {
init () {
computeNongliText(y, m, d) {
let item = nongli.solar2lunar(y, m + 1, d);
return item.festival || item.lunarFestival || item.Term || item.IDayCn;
},
init() {
if (!this.currentDate) {
this.handleClickDate(
this.visibleCalendar.find((item) => item.isToday) ||
this.visibleCalendar.filter((item) => item.thisMonth)[0]
);
this.iniDate();
}
},
handleClickDate (item) {
iniDate() {
this.handleClickDate(
this.visibleCalendar
.filter((item) => item.thisMonth)
.find((item) => item.isToday) ||
this.visibleCalendar.filter((item) => item.thisMonth)[0]
);
},
handleClickDate(item) {
console.log("点击日历日期", item);
this.currentDate = item.format;
@ -152,8 +171,8 @@ export default {
left: 0;
right: 0;
bottom: 0;
border-left: 1px solid #eee;
border-top: 1px solid #eee;
border-left: 1px solid #e5e5e5;
border-top: 1px solid #e5e5e5;
pointer-events: none;
}
@ -165,8 +184,8 @@ export default {
width: 14.285%;
padding: 20px 0;
font-size: 20px;
font-weight:bold;
background-color: #E6A23C;
font-weight: bold;
background-color: rgba(#ccc, 0.2);
text-align: center;
&::after {
@ -177,9 +196,9 @@ export default {
left: 0;
right: 0;
bottom: 0;
border-right: 1px solid #eee;
border-right: 1px solid #e5e5e5;
pointer-events: none;
border-bottom: 1px solid #eee;
border-bottom: 1px solid #e5e5e5;
}
&.z-weekend {
@ -210,8 +229,8 @@ export default {
left: 0;
right: 0;
bottom: 0;
border-right: 1px solid #eee;
border-bottom: 1px solid #eee;
border-right: 1px solid #e5e5e5;
border-bottom: 1px solid #e5e5e5;
pointer-events: none;
}
@ -220,19 +239,39 @@ export default {
line-height: 50px;
font-size: 28px;
font-weight: bold;
color:#3e8ef7;
color: #3e8ef7;
}
.nongli {
position: absolute;
z-index: 0;
left: 0;
right: 0;
text-align: center;
color: #bbb;
font-size: 16px;
font-weight: bold;
}
&.z-weekend {
.date {
color: #ff3333;
}
}
&.z-on {
z-index: 21;
box-shadow: 0 0 15px 5px #a8cee0;
background:#3E8EF7;
background: #3e8ef7;
.date {
font-size: 30px;
color:#ffffff;
color: #ffffff;
font-weight: bold;
}
.nongli {
color: #ffffff;
}
}
&.z-this-month {
@ -244,12 +283,6 @@ export default {
font-weight: 700;
}
}
&.z-weekend {
.date {
color: #ff3333;
}
}
}
}
}

361
src/views/modules/communityParty/calendar/index.vue

@ -1,25 +1,28 @@
<template>
<div>
<div v-if="showType === 'list'"
class="g-cnt">
<div v-if="showType === 'list'" class="g-cnt">
<el-row :gutter="15">
<el-col :span="6">
<div class="m-sizer">
<div class="item">
<el-cascader class="customer_cascader"
ref="myCascader"
size="big"
v-model="fmData.orgId"
:options="partyOptions"
:props="partyOptionsProps"
:show-all-levels="false"
@change="handleChangeParty"></el-cascader>
<el-cascader
class="customer_cascader"
ref="myCascader"
size="big"
v-model="fmData.orgId"
:options="partyOptions"
:props="partyOptionsProps"
:show-all-levels="false"
@change="handleChangeParty"
></el-cascader>
</div>
<div class="item">
<el-radio v-model="fmData.isSelf"
label="1">本人创建的活动</el-radio>
<el-radio v-model="fmData.isSelf"
label="0">本组织所有活动</el-radio>
<el-radio v-model="fmData.isSelf" label="1"
>本人创建的活动</el-radio
>
<el-radio v-model="fmData.isSelf" label="0"
>本组织所有活动</el-radio
>
</div>
</div>
@ -31,16 +34,20 @@
<div class="date-week">{{ currentDate.dayFormat }}</div>
</div>
<div class="m-list"
v-if="
<div
class="m-list"
v-if="
currentDateData.activityList.length > 0 ||
currentDateData.scheduleList.length > 0
">
"
>
<div class="list-title">今日活动/日程</div>
<div class="list">
<div class="item"
:key="item.activityId"
v-for="item in currentDateData.activityList">
<div
class="item"
:key="item.activityId"
v-for="item in currentDateData.activityList"
>
<div class="item-title">
{{ item.theme }}
</div>
@ -48,6 +55,10 @@
<span>活动类型</span>
<span>{{ item.actTypeName }}</span>
</div>
<div class="item-prop">
<span>活动主题</span>
<span>{{ item.topic }}</span>
</div>
<div class="item-prop">
<span>开始时间</span>
<span>{{ item.holdTime }}</span>
@ -60,23 +71,33 @@
<span>参加组织</span>
<span>{{ item.joinOrgs.join("、") }}</span>
</div>
<div v-if="item.isMe"
class="item-ope">
<el-button type="primary"
v-if="item.isPublish === '0'"
size="mini"
@click="handleClickHuodong('publish', item)">发布</el-button>
<el-button type="success"
size="mini"
@click="handleClickHuodong('edit', item)">修改</el-button>
<el-button size="mini"
@click="handleClickHuodong('del', item)">删除</el-button>
<div v-if="item.isMe" class="item-ope">
<el-button
type="primary"
v-if="item.isPublish === '0'"
size="mini"
@click="handleClickHuodong('publish', item)"
>发布</el-button
>
<el-button
type="success"
size="mini"
@click="handleClickHuodong('edit', item)"
>修改</el-button
>
<el-button
size="mini"
@click="handleClickHuodong('del', item)"
>删除</el-button
>
</div>
</div>
<div class="item"
:key="item.scheduleId"
v-for="item in currentDateData.scheduleList">
<div
class="item"
:key="item.scheduleId"
v-for="item in currentDateData.scheduleList"
>
<div class="item-title">
{{ item.title }}
</div>
@ -93,22 +114,29 @@
<span>{{ item.remark }}</span>
</div>
<div class="item-ope">
<el-button type="success"
size="mini"
@click="handleClickRicheng('edit', item)">修改</el-button>
<el-button size="mini"
@click="handleClickRicheng('del', item)">删除</el-button>
<el-button
type="success"
size="mini"
@click="handleClickRicheng('edit', item)"
>修改</el-button
>
<el-button
size="mini"
@click="handleClickRicheng('del', item)"
>删除</el-button
>
</div>
</div>
</div>
</div>
<div class="m-ope">
<el-button type="warning"
style="width: 48%"
@click="addHudong">添加活动计划</el-button>
<el-button style="width: 48%"
@click="addRicheng">添加日程</el-button>
<el-button type="warning" style="width: 48%" @click="addHudong"
>添加活动计划</el-button
>
<el-button style="width: 48%" @click="addRicheng"
>添加日程</el-button
>
</div>
</el-col>
@ -116,54 +144,74 @@
<div class="m-cal">
<div class="hd">
<div class="hd-year">
<el-date-picker v-model="currentYearStr"
value-format="yyyy"
type="year"
placeholder="选择年度"
size="big"
style="width: 100px;">
<el-date-picker
v-model="currentYearStr"
value-format="yyyy"
type="year"
placeholder="选择年度"
size="big"
style="width: 100px"
:editable="false"
:clearable="false"
>
</el-date-picker>
</div>
<div class="hd-month">
<div class="month-item"
:class="{ 'z-on': m - 1 == currentMonth }"
:key="'month' + m"
@click="currentMonth = m - 1"
v-for="m in 12">
<el-badge :value="monthData[m-1]"
:hidden="monthData[m-1] == 0"
class="item">
<div
class="month-item"
:class="{ 'z-on': m - 1 == currentMonth }"
:key="'month' + m"
@click="currentMonth = m - 1"
v-for="m in 12"
>
<el-badge
:value="monthData[m - 1]"
:hidden="monthData[m - 1] == 0"
class="item"
>
<div class="month-text">{{ m }}</div>
</el-badge>
</div>
</div>
<div class="hd-btn">
<el-button type="primary"
size="big"
@click="handleAddYearPlan"
style="padding-left:10px; padding-right:10px;">生成年度活动计划</el-button>
<el-button
type="primary"
size="big"
@click="handleAddYearPlan"
style="padding-left: 10px; padding-right: 10px"
>生成年度活动计划</el-button
>
</div>
</div>
<calendar :currentYear="currentYear"
:currentMonth="currentMonth"
@rangeChange="handleRangeChange"
@clickDate="handleChangeDate">
<calendar
:currentYear="currentYear"
:currentMonth="currentMonth"
@rangeChange="handleRangeChange"
@clickDate="handleChangeDate"
>
<template v-slot:date-item="{ item, index }">
<div class="tip"
v-if="
<div
class="tip"
v-if="
rangeData[item.dateId] &&
rangeData[item.dateId].activityList.length > 0
">
<div class="tip-num"
v-if="rangeData[item.dateId].activityList.length > 1">
"
>
<div
class="tip-num"
v-if="rangeData[item.dateId].activityList.length > 1"
>
{{ rangeData[item.dateId].activityList.length }}
</div>
<div class="tip-text">
<span class="z-on">
{{ rangeData[item.dateId].activityList[0].actTypeName }}</span>
{{
rangeData[item.dateId].activityList[0].actTypeName
}}</span
>
{{
rangeData[item.dateId].activityList[0].isPublish==='0'
rangeData[item.dateId].activityList[0].isPublish === "0"
? "(未发布)"
: "(已发布)"
}}
@ -172,11 +220,12 @@
{{ rangeData[item.dateId].activityList[0].topic }}
</div>
<div class="all-list"
:class="computeAllListClass(index)">
<div class="item"
:key="item.activityId"
v-for="item in rangeData[item.dateId].activityList">
<div class="all-list" :class="computeAllListClass(index)">
<div
class="item"
:key="item.activityId"
v-for="item in rangeData[item.dateId].activityList"
>
<div class="item-title">
{{ item.theme }}
</div>
@ -184,6 +233,10 @@
<span>活动类型</span>
<span>{{ item.actTypeName }}</span>
</div>
<div class="item-prop">
<span>活动主题</span>
<span>{{ item.topic }}</span>
</div>
<div class="item-prop">
<span>开始时间</span>
<span>{{ item.holdTime }}</span>
@ -199,21 +252,24 @@
</div>
</div>
</div>
<div class="corn"
v-if="
<div
class="corn"
v-if="
rangeData[item.dateId] &&
rangeData[item.dateId].scheduleList.length > 0
">
"
>
<div class="corn-num">
{{ rangeData[item.dateId].scheduleList.length }}
</div>
<div class="corn-text">日程</div>
<div class="all-list"
:class="computeAllListClass(index)">
<div class="item"
:key="item.scheduleId"
v-for="item in rangeData[item.dateId].scheduleList">
<div class="all-list" :class="computeAllListClass(index)">
<div
class="item"
:key="item.scheduleId"
v-for="item in rangeData[item.dateId].scheduleList"
>
<div class="item-title">
{{ item.title }}
</div>
@ -240,42 +296,52 @@
</div>
<div v-if="showType === 'yearplan'">
<yearplan-list :currentYearStr="currentYearStr"
@handleOk="handleAddPlanOk"
@handleClose="handleAddPlanClose"></yearplan-list>
<yearplan-list
:currentYearStr="currentYearStr"
@handleOk="handleAddPlanOk"
@handleClose="handleAddPlanClose"
></yearplan-list>
</div>
<el-dialog v-if="showAdd"
:visible.sync="showAdd"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="addDiaTitle"
width="850px"
top="5vh"
class="dialog-h"
@closed="showAdd = false">
<add-activity ref="ref_add_form"
:formType="formType"
:icPartyActId="icPartyActId"
:defaultTime="currentDate.dateId"
@handleOk="handleOk"
@handleClose="handleClose"></add-activity>
<el-dialog
v-if="showAdd"
:visible.sync="showAdd"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="addDiaTitle"
width="850px"
top="5vh"
class="dialog-h"
@closed="showAdd = false"
>
<add-activity
ref="ref_add_form"
:formType="formType"
:icPartyActId="icPartyActId"
:defaultTime="currentDate.dateId"
@handleOk="handleOk"
@handleClose="handleClose"
></add-activity>
</el-dialog>
<el-dialog v-if="showSchedule"
:visible.sync="showSchedule"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="scheduleDiaTitle"
width="850px"
top="5vh"
class="dialog-h"
@closed="showSchedule = false">
<schedule-form ref="ref_schedule_form"
:formType="formType"
:scheduleId="scheduleId"
@handleOk="handleOk"
@handleClose="handleClose">
<el-dialog
v-if="showSchedule"
:visible.sync="showSchedule"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="scheduleDiaTitle"
width="850px"
top="5vh"
class="dialog-h"
@closed="showSchedule = false"
>
<schedule-form
ref="ref_schedule_form"
:formType="formType"
:scheduleId="scheduleId"
@handleOk="handleOk"
@handleClose="handleClose"
>
</schedule-form>
</el-dialog>
</div>
@ -289,7 +355,7 @@ import yearplanList from "../orgActivity/activivityList/yearplanList";
import addActivity from "../orgActivity/activivityList/addActivity";
import scheduleForm from "../orgActivity/activivityList/scheduleForm";
function doAfter (fn) {
function doAfter(fn) {
return new Promise(async (resolve) => {
while (!fn()) {
await nextTick(100);
@ -306,7 +372,7 @@ export default {
addActivity,
scheduleForm,
},
data () {
data() {
let todayObj = new Date();
return {
@ -357,10 +423,10 @@ export default {
};
},
computed: {
currentYear () {
currentYear() {
return parseInt(this.currentYearStr);
},
apiParams () {
apiParams() {
const { currentYear, fmData } = this;
return {
yearId: currentYear,
@ -384,16 +450,17 @@ export default {
},
currentYear: function (val) {
console.log("watch--currentYear", val);
this.currentMonth = 0;
this.getMonthData();
},
},
async mounted () {
async mounted() {
await this.getPartyOptions();
this.getMonthData();
},
methods: {
//
addHudong () {
addHudong() {
this.icPartyActId = "";
this.addDiaTitle = "新增活动计划";
this.formType = "add";
@ -401,14 +468,14 @@ export default {
},
//
addRicheng () {
addRicheng() {
this.formType = "schedule";
this.scheduleId = ''
this.scheduleId = "";
this.showSchedule = true;
},
//
handleClickHuodong (type, item) {
handleClickHuodong(type, item) {
console.log(type, item);
this.icPartyActId = item.activityId;
@ -452,7 +519,7 @@ export default {
}
},
async publishActivity () {
async publishActivity() {
const url = `/resi/partymember/icPartyAct/publish/${this.icPartyActId}`;
const { data, code, msg } = await requestPost(url, {});
@ -465,7 +532,7 @@ export default {
}
},
async cancelActivity () {
async cancelActivity() {
const url = "/resi/partymember/icPartyAct/del";
let params = [];
@ -482,7 +549,7 @@ export default {
},
//
handleClickRicheng (type, item) {
handleClickRicheng(type, item) {
console.log(type, item);
this.scheduleId = item.scheduleId;
if (type == "edit") {
@ -507,7 +574,7 @@ export default {
}
},
async cancelSchedule () {
async cancelSchedule() {
const url = "/resi/partymember/icSchedule/del";
let params = [];
@ -524,15 +591,15 @@ export default {
},
//
refreshData () {
refreshData() {
this.getMonthData();
this.getRangeData();
this.getCurrentDateData();
},
handleChangeParty () { },
handleChangeParty() {},
handleChangeDate (item) {
handleChangeDate(item) {
console.log("handleChangeDate");
this.currentYearStr = item.year + "";
this.currentMonth = item.month;
@ -541,7 +608,7 @@ export default {
this.getCurrentDateData();
},
computeAllListClass (index) {
computeAllListClass(index) {
let x = index % 7;
let y = Math.floor(index / 7);
if (x < 3) {
@ -559,12 +626,12 @@ export default {
}
},
handleRangeChange (arr) {
handleRangeChange(arr) {
this.rangeDateList = arr;
this.getRangeData();
},
async getRangeData () {
async getRangeData() {
const arr = this.rangeDateList;
const url = "/resi/partymember/icPartyAct/homeSearch";
@ -602,7 +669,7 @@ export default {
}
},
async getMonthData () {
async getMonthData() {
const url = "/resi/partymember/icPartyAct/homeMonthTotal";
if (!this.apiParams.orgId) return;
@ -616,14 +683,14 @@ export default {
this.monthData[index] = parseInt(item.count);
});
console.log("--------------monthData", this.monthData);
this.$forceUpdate()
this.$forceUpdate();
}
} else {
this.$message.error(msg);
}
},
async getCurrentDateData () {
async getCurrentDateData() {
const url = "/resi/partymember/icPartyAct/actAndScheduleList";
if (!this.apiParams.orgId) return;
@ -640,7 +707,7 @@ export default {
}
},
async getPartyOptions () {
async getPartyOptions() {
const url = "/resi/partymember/icPartyOrg/getSearchTreelist";
let params = {
customerId: localStorage.getItem("customerId"),
@ -657,25 +724,25 @@ export default {
}
},
handleAddYearPlan () {
handleAddYearPlan() {
this.showType = "yearplan";
},
handleAddPlanOk () {
handleAddPlanOk() {
this.showType = "list";
this.refreshData();
},
handleAddPlanClose () {
handleAddPlanClose() {
this.showType = "list";
},
handleClose () {
handleClose() {
this.formType = "";
this.showAdd = false;
this.showSchedule = false;
},
handleOk () {
handleOk() {
this.handleClose();
this.refreshData();
},
@ -731,6 +798,8 @@ $red: #f33;
font-size: 14px;
font-weight: bold;
cursor: pointer;
opacity: 0.7;
transform: scale(0.94);
}
}
}

12
src/views/modules/communityParty/stas/index.vue

@ -75,42 +75,42 @@
header-align="center"
align="center"
label="支部党员大会(次)"
min-width="80">
>
</el-table-column>
<el-table-column prop="wyhNum"
header-align="center"
align="center"
label="支部委员会(次)"
show-overflow-tooltip
max-width="100">
>
</el-table-column>
<el-table-column prop="dxzhNum"
header-align="center"
show-overflow-tooltip
align="center"
label="党小组会(次)"
mix-width="80">
>
</el-table-column>
<el-table-column prop="dkNum"
header-align="center"
align="center"
show-overflow-tooltip
label="党课(次)"
mix-width="80">
>
</el-table-column>
<el-table-column prop="ztdrNum"
header-align="center"
align="center"
show-overflow-tooltip
label="主题党日(次)"
width="100">
>
</el-table-column>
<el-table-column prop="wmfwNum"
header-align="center"
align="center"
show-overflow-tooltip
label="为民服务活动(次)"
width="130">
>
</el-table-column>
</el-table>
</div>

147
src/views/modules/partymember/icpartyorgtree.vue

@ -12,13 +12,28 @@
:data="tableData"
:default-expand-all="true"
row-key="id"
border
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
:header-cell-style="{background:'#2195FE',color:'#FFFFFF'}"
:height="tableHeight">
<el-table-column prop="partyOrgName" label="党组织名称"></el-table-column>
<el-table-column prop="partyOrgName" min-width="250" label="党组织名称"></el-table-column>
<el-table-column prop="partyOrgType" min-width="150" label="类别">
<template slot-scope="scope">
<span v-for="(item, index) in partyOrgTypes"
:key="item.value"
:value="item.label"
v-if="scope.row.partyOrgType == item.value">
{{ item.label }}</span>
</template>
</el-table-column>
<el-table-column prop="principal" width="120" label="负责人"></el-table-column>
<el-table-column prop="principalMobile" width="150" label="联系方式"></el-table-column>
<el-table-column label="操作" align="center" width="300">
<template slot-scope="scope">
<el-button v-if="scope.row.partyOrgType != '6'"
@click="principal(scope.row)"
type="text"
size="small"
class="div-table-button--detail">{{'负责人'}}</el-button>
<el-button v-if="(scope.row.agencyId == agencyId || scope.row.agencyPids.includes(agencyId)) && scope.row.partyOrgType != '6'"
@click="handleLook(scope.row.agencyPids, scope.row.id, scope.row)"
type="text"
@ -56,6 +71,39 @@
@lookMemberCancle="lookMemberCancle"
@lookMemberOk="lookMemberOk"></look-Member>
</el-dialog>
<el-dialog
title="负责人"
:visible.sync="principalShow"
width="850px"
top="5vh"
class="dialog-h"
:before-close="handleClose">
<el-form ref="refPrincipalRules"
:inline="true"
:model="editPrincipalData"
:rules="principalRules"
class="div_form">
<el-form-item label="负责人"
label-width="150px"
prop="principal">
<el-select v-model="editPrincipalData.principal"
placeholder="请选择"
clearable
style="width: 200px"
class="item_width_4">
<el-option v-for="item in staffs"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose"> </el-button>
<el-button type="primary" @click="editPrincipal"> </el-button>
</span>
</el-dialog>
</el-card>
</template>
@ -67,6 +115,14 @@
export default {
data () {
return {
principalShow: false,
staffs: [],
editPrincipalData: {
principal: '',
principalMobile: '',
partyOrgId: '',
principalStaffId: ''
},
searchH: 0,
dataForm: {
id: '',
@ -76,6 +132,36 @@
},
tableLoading: false,
tableData: [],
partyOrgTypes: [
{
value: '0',
label: '省委'
},
{
value: '1',
label: '市委'
},
{
value: '2',
label: '区委'
},
{
value: '3',
label: '党工委'
},
{
value: '4',
label: '党委'
},
{
value: '5',
label: '支部'
},
{
value: '6',
label: '党小组'
}
],
agencyId: '',
addOrUpdateVisible: false,
lookMemberShow: false,
@ -93,6 +179,13 @@
const h = this.clientHeight - this.searchH - 230 + this.iframeHeigh
const _h = this.clientHeight - 230 - this.searchH
return this.$store.state.inIframe ? h : _h
},
principalRules() {
return {
principal: [
{required: true, message: '负责人不能为空', trigger: 'blur'}
]
}
}
},
mounted() {
@ -109,6 +202,56 @@
// this.pageLoading = true
},
methods:{
principal(row) {
this.principalShow = true
this.$nextTick(() => {
this.$refs['refPrincipalRules'].resetFields();
})
this.editPrincipalData.partyOrgId = row.id
this.editPrincipalData.principal = row.principal
this.$http.post('/data/aggregator/org/staff-select-list/'+row.agencyId,{'params': {}}).then(({ data: res }) =>{
if (res.code !== 0) {
return this.$message.error(res.internalMsg ? res.internalMsg : res.msg ? res.msg : '查询失败')
} else {
this.staffs = res.data
}
}).catch(() => {})
},
editPrincipal(row) {
this.staffs.forEach(s => {
if (this.editPrincipalData.principal === s.value){
this.editPrincipalData.principal = s.name
this.editPrincipalData.principalStaffId = s.value
this.editPrincipalData.principalMobile = s.mobile
}
})
this.$refs['refPrincipalRules'].validate((valid) => {
if (!valid) {
return false
}
this.$http.post('/resi/partymember/icPartyOrg/editPrincipal',this.editPrincipalData).then(({ data: res }) =>{
if (res.code !== 0) {
return this.$message.error(res.internalMsg ? res.internalMsg : res.msg ? res.msg : '查询失败')
}else {
this.principalShow = false
this.getTableData()
this.resetEditPrincipalData()
}
}).catch(() => {})
})
},
handleClose() {
this.principalShow = false
this.resetEditPrincipalData()
},
resetEditPrincipalData() {
this.editPrincipalData = {
principal: '',
principalMobile: '',
partyOrgId: '',
principalStaffId: ''
}
},
//
async getTableData () {
this.tableLoading = true

40
src/views/modules/plugins/point/icpointnucleicmonitoring.vue

@ -153,13 +153,32 @@
align="center"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="enableFlag"
label="禁用/启用"
header-align="center"
align="center"
show-overflow-tooltip>
<template slot-scope="scope">
<span v-for="(item, index) in enableFlagList"
:key="item.value"
:value="item.label"
v-if="scope.row.enableFlag == item.value">
{{ item.label }}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
header-align="center"
align="center"
width="150"
width="180"
>
<template slot-scope="scope">
<el-button
type="text"
size="small"
class="div-table-button--detail"
@click="enableOrDisabled(scope.row.id)">{{ (scope.row.enableFlag === 'enable' && '禁用') || '启用' }}</el-button>
<el-button
type="text"
size="small"
@ -243,6 +262,16 @@ export default {
mixins: [mixinViewModule],
data() {
return {
enableFlagList: [
{
value: 'enable',
label: '启用'
},
{
value: 'disabled',
label: '禁用'
}
],
dataForm: {
name: "",
mobile: "",
@ -361,6 +390,15 @@ export default {
diaClose() {
this.sendNoticeFormShow = false;
},
// /
enableOrDisabled(id) {
this.$http
.post(`/epmetuser/appPoint/enableOrDisabled/` + id)
.then(({ data: res }) => {
this.loadTable();
})
.catch(() => {});
},
// /
addOrUpdateHandle(id, title) {
this.dialogTitle = title;

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

@ -28,15 +28,18 @@
prop="name"
label-width="150px"
style="display: block">
<el-input class="cell-width-1"
maxlength="10"
placeholder="请输入报事人姓名"
v-model="formData.name">
</el-input>
<el-button style="margin-left: 10px"
type="primary"
size="mini"
@click="handleShowPersonList">居民信息中选择</el-button>
<div>
<el-button style="margin-top: 10px"
type="primary"
size="mini"
@click="handleShowPersonList">居民信息中选择</el-button>
</div>
</el-form-item>
<el-form-item label="手机号"

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

@ -10,8 +10,8 @@
<span>{{ info.gridName }}</span>
</div>
<div :class="['info-prop',{'info-prop-vis':source==='visiual'}]">
<span class="info-title-2">上报时间</span>
<span>{{ info.createdTime }}</span>
<span class="info-title-2">发生时间</span>
<span>{{ info.happenTime }}</span>
</div>
<div :class="['info-prop',{'info-prop-vis':source==='visiual'}]">
<span class="info-title-2">事件内容</span>

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

@ -48,18 +48,23 @@
</el-form-item>
<el-form-item label="事件类型"
prop="firstIdList">
<el-cascader ref="cascaderEvent" v-model="eventTypeCheck" :options="cateOptions"
collapse-tags
:show-all-levels="false"
:props="{
<el-cascader ref="cascaderEvent"
v-model="eventTypeCheck"
:options="cateOptions"
collapse-tags
:show-all-levels="false"
:props="{
multiple: true,
checkStrictly: false,
emitPath: false,
children:'subCategory',
label:'name',
value:'id'
}" clearable class="item_width_2" @change="handleEventType" />
<!-- <template slot-scope="{ node, data }">
}"
clearable
class="item_width_2"
@change="handleEventType" />
<!-- <template slot-scope="{ node, data }">
<div @click="cascaderClick(node, data)">
<span>{{ data.name }}</span>
</div>
@ -177,14 +182,12 @@
label="所属网格"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
prop="categoryName"
label="事件类型"
min-width="140"
align="center"
:show-overflow-tooltip="true"
/>
<!-- <template slot-scope="scope">
<el-table-column prop="categoryName"
label="事件类型"
min-width="140"
align="center"
:show-overflow-tooltip="true" />
<!-- <template slot-scope="scope">
{{ scope.row.firstName + '-' + scope.row.secondName }}
</template>
</el-table-column> -->
@ -259,11 +262,11 @@
</template> -->
</el-table-column>
<el-table-column prop="createdTime"
<el-table-column prop="happenTime"
align="center"
width="140"
:show-overflow-tooltip="true"
label="上报时间">
label="发生时间">
</el-table-column>
<el-table-column prop="operationTypeShow"
align="center"
@ -505,7 +508,7 @@ export default {
this.getCateOptions()
},
methods: {
handleEventType(val) {
handleEventType (val) {
// console.log('val-----eee', val)
console.log('nodes---', this.$refs.cascaderEvent.getCheckedNodes())
const nodes = this.$refs.cascaderEvent.getCheckedNodes()
@ -709,11 +712,11 @@ export default {
this.delEvent(rowData.icEventId);
}).catch((err) => { });
},
async delEvent (eventId){
async delEvent (eventId) {
const url = "/gov/project/icEvent/delete";
let idsArr = [eventId];
const { data, code, msg } =await requestPost(url, idsArr);
const { data, code, msg } = await requestPost(url, idsArr);
if (code === 0) {
this.$message.success("删除成功!");
@ -757,7 +760,7 @@ export default {
this.$message.error(msg);
}
},
async getCateOptions() {
async getCateOptions () {
const url = "/gov/issue/issueprojectcategorydict/list";
const { data, code, msg } = await requestPost(url, {});
@ -807,7 +810,7 @@ export default {
this.getTableData();
// this.loadTable()
},
deepTree(arr, child) {
deepTree (arr, child) {
if (Array.isArray(arr) && arr.length > 0) {
return arr.map(item => {
// if (child === 'subAgencyList') item.value = item.orgType + '-' + item.orgId
@ -831,5 +834,4 @@ export default {
width: 200px;
}
}
</style>

2
src/views/modules/shequzhili/tuceng/anquan/xuncha/cpts/record.vue

@ -159,7 +159,7 @@
placeholder="选择日期">
</el-date-picker>
<div v-else
class="div-content">{{ scope.row.patrolTime }}</div>
class="div-content">{{ scope.row.reviewTime }}</div>
</template>
</el-table-column>

237
src/views/modules/visual/basicinfo/houseStatic/houseList.vue

@ -0,0 +1,237 @@
<template>
<div class="div_people_search">
<div class="list_box">
<div class="info_tip">
<img src="@/assets/img/shuju/title-tip.png"
alt />
<div class="tip_title">{{tableTitle}}</div>
</div>
<div class="warning-table">
<div class="table">
<div class="table-header">
<div class="td td1">序号</div>
<div class="td td2">所属小区</div>
<div class="td td2">所属楼栋</div>
<div class="td td1">单元号</div>
<div class="td td1">门牌号</div>
<div class="td td1">房屋类型</div>
<div class="td td1">房屋用途</div>
<div class="td td1">房屋状态</div>
<div class="td td1">房主姓名</div>
<div class="td td2">房主电话</div>
<div class="td td2">证件号</div>
<div class="td td1">操作</div>
</div>
<div v-if="!loading && tableData.length> 0"
class="table-body">
<div class="table-body-tr"
v-for="(item,index) in tableData"
:key='index'>
<div class="td td1">{{index+1}} </div>
<div class="td td2">{{item.neighborHoodName}} </div>
<div class="td td2">{{item.buildingName}} </div>
<div class="td td1">{{item.unitNum}} </div>
<!-- <div class="td td1">{{item.buildNum}} </div> -->
<div class="td td1">{{item.doorName}} </div>
<div class="td td1">{{item.houseType==='1'?'楼房':item.houseType==='2'?'平方':'别墅'}} </div>
<div class="td td1">{{item.purpose}} </div>
<div class="td td1">{{item.rentFlag==='1'?'出租':item.rentFlag==='0'?'自住':item.rentFlag==='2'?'闲置':'未出售'}} </div>
<div class="td td1">{{item.ownerName}} </div>
<div class="td td2">{{item.ownerPhone}} </div>
<div class="td td2">{{item.ownerIdCard}} </div>
<div @click="handleToHouse(item)"
class="td td1 btn_detail">{{'查看'}} </div>
</div>
</div>
<div class="table-status"
v-if="loading">
<screen-loading>加载中</screen-loading>
</div>
<div class="table-status"
v-if="tableData.length == 0 && !loading">
<div class="no-data">
<img src="@/assets/img/modules/visual/noData.png"
class="no-data-img" />
</div>
</div>
</div>
</div>
<div class="pagination">
<el-pagination hide-on-single-page
background
layout="prev, pager, next, total"
:current-page="pageNo"
:page-size="pageSize"
:total="total"
@current-change="pageCurrentChangeHandle">
</el-pagination>
</div>
</div>
<house-more v-show="showedMoreInfo"
:info="info"
@close="showedMoreInfo = false" />
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import ScreenLoading from "@/views/modules/visual/cpts/loading";
import houseMore from "./houseMore";
export default {
name: "people-list",
components: {
ScreenLoading, houseMore
},
data () {
return {
showedMoreInfo: false,
tableTitle: '房屋列表',
loading: false,
tableData: [],
pageSize: 10,
pageNo: 1,
total: 0,
info: {}
};
},
mounted () {
this.tableData = []
this.loadList()
},
deactivated () {
},
methods: {
async loadList () {
this.loading = true
const url = "/gov/org/house/housestatislistdetail"
let params = {
orgId: this.orgId,
orgType: this.orgType,
rentType: this.rentType,
pageSize: this.pageSize,
pageNo: this.pageNo
}
const { data, code, msg } = await requestPost(url, params)
this.loading = false
if (code === 0) {
this.total = data.total
this.tableData = data.list
} else {
this.$message.error(msg)
}
},
//
handleToHouse (item) {
// this.toSubAgency('people', this.tableData[index].userId)
this.info = { ...item }
this.showedMoreInfo = true
},
pageCurrentChangeHandle (val) {
this.pageNo = val
this.loadList()
},
},
destroyed () {
console.log("我已经离开了!");
},
props: {
orgId: {
type: String,
default: "",
},
orgType: {
type: String,
default: "",
},
rentType: {
type: String,
default: "",
},
},
};
</script>
<style
lang="scss"
src="@/assets/scss/modules/visual/basicInfoMain.scss"
scoped
></style>
<style
lang="scss"
src="@/assets/scss/modules/visual/searchPerson.scss"
scoped
></style>
<style lang="scss" scoped>
.div_search_list {
.el-input__inner[WarningColor="warning"] {
border-radius: 8px 0 0 8px;
height: 53px;
background-color: #01106800;
border: 2px solid #0082fb;
padding-left: 70px;
font-size: 18px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
}
}
.list_box {
width: 100%;
height: 780px;
margin: 0 auto;
}
.warning-table {
height: 640px;
}
.pagination {
padding-right: 0;
margin-top: 0;
text-align: right;
}
.g-bread {
padding: 10px 10px 15px;
::v-deep .el-breadcrumb__item {
font-size: 16px;
.el-breadcrumb__inner {
color: #fff;
}
}
::v-deep .el-breadcrumb__item:first-child {
.el-breadcrumb__inner {
color: #a0c3d9;
}
}
}
</style>

124
src/views/modules/visual/basicinfo/houseStatic/houseMore.vue

@ -0,0 +1,124 @@
<template>
<div class="m-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 item2">
<span class="item-field">所属小区</span>
<span>{{ info.neighborHoodName }}</span>
</div>
<div class="item item2">
<span class="item-field">所属楼栋</span>
<span>{{ info.buildingName }}</span>
</div>
<div class="item item2">
<span class="item-field">单元号</span>
<span>{{ info.unitNum }}</span>
</div>
<div class="item item2">
<span class="item-field">门牌号</span>
<span>{{ info. doorName}}</span>
</div>
<div class="item item2">
<span class="item-field">房屋类型</span>
<span>{{ info.houseType==='1'?'楼房':info.houseType==='2'?'平方':'别墅' }}</span>
</div>
<div class="item item2">
<span class="item-field">房屋用途</span>
<span>{{ info.purpose }}</span>
</div>
<div class="item item2">
<span class="item-field">房屋状态</span>
<span>{{ info. rentFlag==='1'?'出租':info.rentFlag==='0'?'自住':info.rentFlag==='2'?'闲置':'未出售'}}</span>
</div>
<div class="item item2">
<span class="item-field">房主姓名</span>
<span>{{ info. ownerName?info.ownerName:'--' }}</span>
</div>
<div class="item item2">
<span class="item-field">房主电话</span>
<span>{{ info. ownerPhone?info.ownerPhone:'--' }}</span>
</div>
<div class="item item2">
<span class="item-field">证件号</span>
<span>{{ info.ownerIdCard?info.ownerIdCard:'--' }}</span>
</div>
<div class="item item2">
<span class="item-field">备注</span>
<span>{{ info.remark?info.remark:'--' }}</span>
</div>
</div>
</cpt-card>
</div>
</div>
</template>
<script>
import cptCard from "@/views/modules/visual/cpts/card";
import { requestPost } from "@/js/dai/request";
import cptTb from "@/views/modules/visual/cpts/tb";
export default {
name: "peopleMore",
props: {
info: {
type: Object,
default () {
return {}
}
},
},
components: {
cptCard,
cptTb,
},
data () {
return {
};
},
computed: {
},
watch: {
},
mounted () {
},
methods: {
handleClose () {
this.$emit("close");
},
},
};
</script>
<style
lang="scss"
src="@/assets/scss/modules/visual/people.scss"
scoped
></style>

158
src/views/modules/visual/basicinfo/houseStatic/houseStatic.vue

@ -12,7 +12,8 @@
<span class="router_child">{{orgName}}</span>
</div>
</div>
<cpt-card :min-full-screen="true">
<cpt-card v-if="!showHouseList&&!showPeopleList"
:min-full-screen="true">
<div class="card-title">
<img class="title-icon"
src="@/assets/img/shuju/title-tip.png" />
@ -45,23 +46,32 @@
<div v-if="!dataLoading"
class="pie-table">
<div class="pie-table-total">
<div class="pie-table-total"
@click="handleClickHouse('')">
<div class="pie-table-total-count">{{houseData.houseTotal}}</div>
<div class="pie-table-title">房屋总数</div>
</div>
<div class="pie-table-line"></div>
<div class="pie-table-total ">
<div class="pie-table-total "
@click="handleClickHouse('0')">
<div class="pie-table-total-count zz">{{houseData.zzHouseTotal}}</div>
<div class="pie-table-title">自住房屋数</div>
</div>
<div class="pie-table-total ">
<div class="pie-table-total "
@click="handleClickHouse('1')">
<div class="pie-table-total-count cz">{{houseData.czHouseTotal}}</div>
<div class="pie-table-title">出租房屋数</div>
</div>
<div class="pie-table-total ">
<div class="pie-table-total "
@click="handleClickHouse('2')">
<div class="pie-table-total-count xz">{{houseData.xzHouseTotal}}</div>
<div class="pie-table-title">闲置房屋数</div>
</div>
<div class="pie-table-total "
@click="handleClickHouse('3')">
<div class="pie-table-total-count wsc">{{houseData.wscHouseTotal}}</div>
<div class="pie-table-title">未出售房屋数</div>
</div>
</div>
<div class="loading-status"
@ -93,16 +103,19 @@
<div v-if="!dataLoading"
class="pie-table">
<div class="pie-table-total">
<div class="pie-table-total"
@click="handleClickPeople('all')">
<div class="pie-table-total-count">{{userData.userTotal}}</div>
<div class="pie-table-title">居民总数</div>
</div>
<div class="pie-table-line"></div>
<div class="pie-table-total ">
<div class="pie-table-total "
@click="handleClickPeople('cz')">
<div class="pie-table-total-count zz">{{userData.czUserTotal}}</div>
<div class="pie-table-title">常住人口数</div>
</div>
<div class="pie-table-total ">
<div class="pie-table-total "
@click="handleClickPeople('ld')">
<div class="pie-table-total-count cz">{{userData.ldUserTotal}}</div>
<div class="pie-table-title">流动人口数</div>
</div>
@ -134,39 +147,52 @@
<div class="item_data">
<div class="item_left">
<div class="pie-table-total">
<div class="pie-table-total-count">{{item.houseTotal}}</div>
<div class="pie-table-total-count"
@click="handleClickHouse('',item)">{{item.houseTotal}}</div>
<div class="pie-table-title">房屋总数</div>
</div>
<div class="pie-table-line"></div>
<div class="pie-table-total ">
<div class="pie-table-total-count colorwhite">{{item.zzHouseTotal}}</div>
<div class="pie-table-total-count colorwhite"
@click="handleClickHouse('0',item)">{{item.zzHouseTotal}}</div>
<div class="pie-table-title table-table-title">{{item.zzHouseRatio+'%'}}</div>
<div class="pie-table-title table-table-title">自住房屋数</div>
</div>
<div class="pie-table-total ">
<div class="pie-table-total-count colorwhite">{{item.czHouseTotal}}</div>
<div class="pie-table-total-count colorwhite"
@click="handleClickHouse('1',item)">{{item.czHouseTotal}}</div>
<div class="pie-table-title table-table-title">{{item.czHouseRatio+'%'}}</div>
<div class="pie-table-title table-table-title">出租房屋数</div>
</div>
<div class="pie-table-total ">
<div class="pie-table-total-count colorwhite">{{item.xzHouseTotal}}</div>
<div class="pie-table-total-count colorwhite"
@click="handleClickHouse('2',item)">{{item.xzHouseTotal}}</div>
<div class="pie-table-title table-table-title">{{item.xzHouseRatio+'%'}}</div>
<div class="pie-table-title table-table-title">闲置房屋数</div>
</div>
<div class="pie-table-total ">
<div class="pie-table-total-count colorwhite"
@click="handleClickHouse('3',item)">{{item.wscHouseTotal}}</div>
<div class="pie-table-title table-table-title">{{item.wscHouseRatio+'%'}}</div>
<div class="pie-table-title table-table-title">未出售房屋数</div>
</div>
</div>
<div class="item_right">
<div class="pie-table-total">
<div class="pie-table-total-count">{{item.userTotal}}</div>
<div class="pie-table-total-count"
@click="handleClickPeople('all',item)">{{item.userTotal}}</div>
<div class="pie-table-title">居民总数</div>
</div>
<div class="pie-table-line"></div>
<div class="pie-table-total ">
<div class="pie-table-total-count colorwhite">{{item.czUserTotal}}</div>
<div class="pie-table-total-count colorwhite"
@click="handleClickPeople('cz',item)">{{item.czUserTotal}}</div>
<div class="pie-table-title table-table-title">{{item.czUserRatio+'%'}}</div>
<div class="pie-table-title table-table-title">常住人口数</div>
</div>
<div class="pie-table-total ">
<div class="pie-table-total-count colorwhite">{{item.ldUserTotal}}</div>
<div class="pie-table-total-count colorwhite"
@click="handleClickPeople('ld',item)">{{item.ldUserTotal}}</div>
<div class="pie-table-title table-table-title">{{item.ldUserRatio+'%'}}</div>
<div class="pie-table-title table-table-title">流动人口数</div>
</div>
@ -187,6 +213,21 @@
</div>
</cpt-card>
<house-list v-if="showHouseList "
:orgId="selOrgId"
:orgType="selOrgType"
:rentType="rentType"
@close="showHouseList = false">
</house-list>
<people-list v-if="showPeopleList "
:orgId="selOrgId"
:orgType="selOrgType"
:type="type"
@close="showPeopleList = false">
</people-list>
</div>
</template>
@ -199,6 +240,8 @@ import screenEchartsFrame from "../../components/screen-echarts-frame";
import ScreenLoading from "@/views/modules/visual/components/screen-loading";
import { housePieOption } from './options'
import { userPieOption } from './userOptions'
import houseList from './houseList'
import peopleList from './peopleList'
import * as echarts from 'echarts';
export default {
@ -207,7 +250,9 @@ export default {
cptCard,
screenTable,
screenEchartsFrame,
ScreenLoading
ScreenLoading,
houseList,
peopleList
},
data () {
return {
@ -232,8 +277,10 @@ export default {
czHouseRatio: '5%',//
xzHouseTotal: 200,//
xzHouseRatio: '70%',//
wscHouseTotal: 100,//
wscHouseRatio: '20%',//
},
houseColorArray: ['#3dda83', '#e43c26', '#fac126'],
houseColorArray: ['#3dda83', '#e43c26', '#fac126', '#fc8452'],
housePieData: [],
legendArray: [
@ -248,6 +295,10 @@ export default {
{
name: '闲置房屋数',
url: require('../../../../../assets/img/shuju/measure/huang@2x.png')
},
{
name: '未出售房屋数',
url: require('../../../../../assets/img/shuju/measure/cheng.png')
}
],
@ -278,6 +329,13 @@ export default {
zoom: null,
parentPolygon: [],
rentType: '',//
type: '',//
showPeopleList: false,
showHouseList: false,
selOrgId: '',
selOrgType: '',
};
},
async mounted () {
@ -301,9 +359,35 @@ export default {
this.getHousePie()
this.getUserPie()
},
//
handleClickHouse (rentType, item) {
if (item) {
this.selOrgId = item.orgId
this.selOrgType = item.orgType
} else {
this.selOrgId = this.houseData.orgId
this.selOrgType = this.houseData.orgType
}
this.toSubAgency('house')
this.rentType = rentType
this.showHouseList = true
},
//
handleClickPeople (type, item) {
if (item) {
this.selOrgId = item.orgId
this.selOrgType = item.orgType
} else {
this.selOrgId = this.houseData.orgId
this.selOrgType = this.houseData.orgType
}
this.toSubAgency('people')
this.type = type
this.showPeopleList = true
},
housePieInitOk (dom) {
console.log('pie准备好了', dom)
this.housePieChartS = dom
@ -335,7 +419,6 @@ export default {
this.$refs.housePieChart.hideLoading()
}
} else {
this.houseData = {}
this.$message.error(msg);
@ -379,10 +462,15 @@ export default {
name: '闲置房屋数',
value: this.houseData.xzHouseRatio
}
let obj4 = {
name: '未出售房屋数',
value: this.houseData.wscHouseRatio
}
this.housePieData.push(obj1)
this.housePieData.push(obj2)
this.housePieData.push(obj3)
this.housePieData.push(obj4)
this.housePieOption.title.text = this.houseData.houseTotal
this.housePieOption.series[1].itemStyle = {
@ -575,33 +663,36 @@ export default {
async handleToSubAgency (item) {
if (!this.dataLoading) {
this.toSubAgency(item)
this.toSubAgency('subAgency', item)
await this.getApiData()
}
},
//
async toSubAgency (item) {
async toSubAgency (type, item) {
this.runNum++
let obj = {
orgId: this.orgId,
orgType: this.orgType,
orgName: this.orgName,
type: type
}
this.runAgencyArray.push(obj)
if (type === 'subAgency') {
this.runAgencyArray.push(obj)
this.orgId = item.orgId
this.orgType = item.orgType
this.orgName = item.orgName
this.orgId = item.orgId
this.orgType = item.orgType
this.orgName = item.orgName
} else if (type === 'house') {
this.orgName = '房屋列表'
} else if (type === 'people') {
this.orgName = '人员列表'
}
},
@ -609,6 +700,7 @@ export default {
//
handleClickAgency (index) {
const cutNum = this.runAgencyArray.length - index//
this.runNum = this.runNum - cutNum
@ -622,6 +714,14 @@ export default {
this.orgId = orgData.orgId
this.orgType = orgData.orgType
this.orgName = orgData.orgName
this.showHouseList = false
this.showPeopleList = false
// if (orgData.type === 'house') {
// this.showHouseList = false
// }
// if (orgData.type === 'people') {
// this.showPeopleList = false
// }
this.getApiData()

235
src/views/modules/visual/basicinfo/houseStatic/peopleList.vue

@ -0,0 +1,235 @@
<template>
<div class="div_people_search">
<div class="list_box">
<div class="info_tip">
<img src="@/assets/img/shuju/title-tip.png"
alt />
<div class="tip_title">{{tableTitle}}</div>
</div>
<div class="warning-table">
<div class="table">
<div class="table-header">
<div class="td td1">序号</div>
<div class="td td1">姓名</div>
<div class="td td3">所属网格</div>
<div class="td td3">所属房屋</div>
<div class="td td2">手机</div>
<div class="td td3">证件号</div>
<div class="td td1">性别</div>
<div class="td td2">出生日期</div>
<div class="td td1">操作</div>
</div>
<div v-if="!loading && tableData.length> 0"
class="table-body">
<div class="table-body-tr"
v-for="(item,index) in tableData"
:key='index'>
<div class="td td1">{{item.sort}} </div>
<div class="td td1">{{item.name}} </div>
<div class="td td3">{{item.gridName}} </div>
<div class="td td3">{{item.neighborHoodName + item.buildNum}} </div>
<!-- <div class="td td1">{{item.buildNum}} </div> -->
<div class="td td2">{{item.mobile}} </div>
<div class="td td3">{{item.idCard}} </div>
<div class="td td1">{{item.gender}} </div>
<div class="td td2">{{item.birthday}} </div>
<div @click="handelToPeople(item)"
class="td td1 btn_detail">{{'查看'}} </div>
</div>
</div>
<div class="table-status"
v-if="loading">
<screen-loading>加载中</screen-loading>
</div>
<div class="table-status"
v-if="tableData.length == 0 && !loading">
<div class="no-data">
<img src="@/assets/img/modules/visual/noData.png"
class="no-data-img" />
</div>
</div>
</div>
</div>
<div class="pagination">
<el-pagination hide-on-single-page
background
layout="prev, pager, next, total"
:current-page="pageNo"
:page-size="pageSize"
:total="total"
@current-change="pageCurrentChangeHandle">
</el-pagination>
</div>
</div>
<people-more v-show="showedMoreInfo"
v-if="info.userId"
:userId="info.userId"
:gridName="info.gridName"
@close="showedMoreInfo = false" />
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import ScreenLoading from "@/views/modules/visual/cpts/loading";
import peopleMore from "@/views/modules/visual/basicinfo/cpts/people-more";
export default {
name: "people-list",
components: {
ScreenLoading, peopleMore
},
data () {
return {
showedMoreInfo: false,
tableTitle: '人员列表',
loading: false,
tableData: [],
pageSize: 10,
pageNo: 1,
total: 0,
info: {},
};
},
mounted () {
this.tableData = []
this.loadList()
},
deactivated () {
},
methods: {
async loadList () {
this.loading = true
const url = "/epmetuser/icresiuser/icuserstatislist"
let params = {
orgId: this.orgId,
orgType: this.orgType,
type: this.type,
pageSize: this.pageSize,
pageNo: this.pageNo
}
const { data, code, msg } = await requestPost(url, params)
this.loading = false
if (code === 0) {
this.total = data.total
this.tableData = data.list
} else {
this.$message.error(msg)
}
},
//
handelToPeople (item) {
// this.toSubAgency('people', this.tableData[index].userId)
this.info = { ...item }
this.showedMoreInfo = true
},
pageCurrentChangeHandle (val) {
this.pageNo = val
this.loadList()
},
},
destroyed () {
console.log("我已经离开了!");
},
props: {
orgId: {
type: String,
default: "",
},
orgType: {
type: String,
default: "",
},
type: {
type: String,
default: "",
},
},
};
</script>
<style
lang="scss"
src="@/assets/scss/modules/visual/basicInfoMain.scss"
scoped
></style>
<style
lang="scss"
src="@/assets/scss/modules/visual/searchPerson.scss"
scoped
></style>
<style lang="scss" scoped>
.div_search_list {
.el-input__inner[WarningColor="warning"] {
border-radius: 8px 0 0 8px;
height: 53px;
background-color: #01106800;
border: 2px solid #0082fb;
padding-left: 70px;
font-size: 18px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
}
}
.list_box {
width: 100%;
height: 780px;
margin: 0 auto;
}
.warning-table {
height: 640px;
}
.pagination {
padding-right: 0;
margin-top: 0;
text-align: right;
}
.g-bread {
padding: 10px 10px 15px;
::v-deep .el-breadcrumb__item {
font-size: 16px;
.el-breadcrumb__inner {
color: #fff;
}
}
::v-deep .el-breadcrumb__item:first-child {
.el-breadcrumb__inner {
color: #a0c3d9;
}
}
}
</style>

26
src/views/modules/visual/basicinfo/people.vue

@ -70,22 +70,22 @@
<div class="ren-prop z-4">
<img src="@/assets/img/shuju/people/ren-prop-4.png" />
<span>志愿者类别</span>
<span>住户类别</span>
<div class="ren-cnt">
<h5>志愿者类别</h5>
<h5>住户类别</h5>
<p>
{{
info.volunteerCategory.length == 0
info.isTenant == null || info.isTenant == ''
? "--"
: info.volunteerCategory.join("、")
: info.isTenant == '1' ? '租户' : '业主'
}}
</p>
</div>
</div>
<div class="ren-prop z-5">
<img src="@/assets/img/shuju/people/ren-prop-5.png" />
<div class="ren-prop z-6">
<img src="@/assets/img/shuju/people/ren-prop-6.png" />
<span>房屋信息</span>
<div class="ren-cnt">
@ -100,18 +100,16 @@
</div>
</div>
<div class="ren-prop z-6">
<img src="@/assets/img/shuju/people/ren-prop-6.png" />
<span>经济状况</span>
<div class="ren-prop z-5">
<img src="@/assets/img/shuju/people/ren-prop-5.png" />
<span>联系电话</span>
<div class="ren-cnt">
<h5>经济状况</h5>
<p>
月薪:
联系电话:
{{
info.financialSituation.monthlyIncome || "--"
}}退休金{{
info.financialSituation.retirementAmount || "--"
info.mobile || "--"
}}
</p>
</div>

59
src/views/modules/workSys/resiCate.vue

@ -185,6 +185,26 @@
size="small"
label="描述文字"></el-input-number> /
</el-form-item>
<el-form-item v-if="form.columnName==='IS_YLFN'"
label="自动匹配">
<el-switch v-model="autoMatching"></el-switch>
</el-form-item>
<el-form-item v-if="form.columnName==='IS_YLFN' && autoMatching"
label="匹配规则">
<span>年龄</span>
<el-input-number v-model="ageMin"
:min="0"
size="small"
label="描述文字"></el-input-number>
<span>{{' — '}}</span>
<el-input-number v-model="ageMax"
:min="ageMin"
size="small"
label="描述文字"></el-input-number>
</el-form-item>
</el-form>
<div class="resi-btns">
<el-button size="small"
@ -290,6 +310,10 @@ export default {
level2: 0,
level3: 0
},
autoMatching: false,
ageMin: 0,
ageMax: 1,
rules: {
managementIcon: [{ required: true, message: '管理平台图标不能为空', trigger: 'blur' }],
dataIcon: [{ required: true, message: '数据平台图标不能为空', trigger: 'blur' }],
@ -430,8 +454,26 @@ export default {
warn: row.warn == '1' ? true : false,
level1: row.level1 || 0,
level2: row.level2 || 0,
level3: row.level3 || 0
level3: row.level3 || 0,
}
if (row.columnName === 'IS_YLFN') {
if (row.autoMatching === '1') {
this.autoMatching = true
} else {
this.autoMatching = false
}
if (row.ylfnValue) {
let array = row.ylfnValue.split(',')
this.ageMin = array[0]
this.ageMax = array[1]
}
}
this.dialogVisible = true
},
async handleSUbmit () {
@ -440,6 +482,21 @@ export default {
if (this.form.warn) {
if (!this.form.level1) return this.$message.error('黄色预警不能为0')
}
if (this.form.columnName === 'IS_YLFN') {
this.form.autoMatching = this.autoMatching ? '1' : '0'
if (this.autoMatching) {
if ((this.ageMin > 0 || this.ageMin === 0) && (this.ageMax > 0 || this.ageMax === 0)) {
this.form.ylfnValue = this.ageMin + ',' + this.ageMax
} else {
return this.$message.error('年龄范围不能为空')
}
}
} else {
}
this.btnLoading = true
const _form = {
...this.form,

Loading…
Cancel
Save