Browse Source

Merge branch 'master-bugfix' into test

test
jiangyy 3 years ago
parent
commit
d59c0f86d1
  1. 3
      src/assets/scss/modules/management/list-main.scss
  2. 3
      src/assets/scss/modules/shequzhili/event-info.scss
  3. 2
      src/assets/scss/modules/visual/communityManage.scss
  4. 23
      src/mixins/view-module.js
  5. 167
      src/mixins/view-post.js
  6. 491
      src/views/components/editResi.vue
  7. 18
      src/views/components/resiForm.vue
  8. 13
      src/views/main-shuju/main-navbar.vue
  9. 22
      src/views/modules/base/community/buildTable.vue
  10. 424
      src/views/modules/base/community/community.vue
  11. 22
      src/views/modules/base/community/communityTable.vue
  12. 1232
      src/views/modules/base/community/roomTable.vue
  13. 3
      src/views/modules/base/resi.vue
  14. 5
      src/views/modules/communityParty/members/cpts/record.vue
  15. 6
      src/views/modules/communityParty/members/crateForm.vue
  16. 12
      src/views/modules/communityParty/members/index.vue
  17. 47
      src/views/modules/communityService/sqzzz/cpts/edit.vue
  18. 4
      src/views/modules/partymember/icpartymemberpoint.vue
  19. 5
      src/views/modules/partymember/icpartyorg-add-or-update.vue
  20. 2
      src/views/modules/plugins/change/changedeath.vue
  21. 2
      src/views/modules/plugins/change/changerelocation.vue
  22. 2
      src/views/modules/plugins/change/changewelfare.vue
  23. 240
      src/views/modules/plugins/stats/factagencyuserhousedaily-add-or-update.vue
  24. 315
      src/views/modules/plugins/stats/factagencyuserhousedaily.vue
  25. 31
      src/views/modules/shequzhili/event/cpts/add.vue
  26. 27
      src/views/modules/shequzhili/event/cpts/event-detail.vue
  27. 11
      src/views/modules/shequzhili/event/cpts/event-info.vue
  28. 31
      src/views/modules/shequzhili/event/cpts/process-form-demand.vue
  29. 20
      src/views/modules/shequzhili/event/cpts/process-form-project.vue
  30. 5
      src/views/modules/shequzhili/event/cpts/process-form.vue
  31. 6
      src/views/modules/shequzhili/event/eventList.vue
  32. 13
      src/views/modules/shequzhili/xiangmu/cpts/project-info.vue
  33. 4
      src/views/modules/visual/communityGovern/shijianchuli/event-info.vue
  34. 2
      src/views/modules/visual/communityGovern/shijianchuli/pieOption.js
  35. 5
      src/views/modules/visual/communityGovern/shijianchuli/shijianchulifenxi.vue
  36. 9
      src/views/modules/visual/communityGovern/shijianfenlei/shijianfenleifenxi.vue
  37. 10
      src/views/modules/visual/communityParty/community.vue
  38. 4
      src/views/modules/visual/communityParty/dialogInfo.vue
  39. 49
      src/views/modules/visual/communityParty/gridParty.vue

3
src/assets/scss/modules/management/list-main.scss

@ -2,6 +2,9 @@
.div_main {
width: 100%;
.marginl-20{
margin-left: 16px;
}
.div_search {
background: #ffffff;

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

@ -396,7 +396,8 @@
display: flex;
.detail-field {
width: 100px;
flex:0 0 100px;
text-align: justify;
text-align-last: justify;
}

2
src/assets/scss/modules/visual/communityManage.scss

@ -49,7 +49,7 @@
.div_btn {
display: flex;
margin-top: 20px;
margin-top: 10px;
.btn_upload {
margin-left: 10px;

23
src/mixins/view-module.js

@ -42,17 +42,18 @@ export default {
methods: {
// 获取数据列表
query () {
const params = {
order: this.order,
orderField: this.orderField,
page: this.mixinViewModuleOptions.getDataListIsPage ? this.page : null,
limit: this.mixinViewModuleOptions.getDataListIsPage ? this.limit : null,
...this.dataForm
}
this.post = true
this.$http.post(
this.mixinViewModuleOptions.getDataListURL,
params
this.dataListLoading = true
this.$http.get(
this.mixinViewModuleOptions.getDataListURL,
{
params: {
order: this.order,
orderField: this.orderField,
page: this.mixinViewModuleOptions.getDataListIsPage ? this.page : null,
limit: this.mixinViewModuleOptions.getDataListIsPage ? this.limit : null,
...this.dataForm
}
}
).then(({ data: res }) => {
this.dataListLoading = false
if (res.code !== 0) {

167
src/mixins/view-post.js

@ -0,0 +1,167 @@
import Cookies from 'js-cookie'
import qs from 'qs'
export default {
data () {
/* eslint-disable */
return {
// 设置属性
mixinViewModuleOptions: {
createdIsNeed: true, // 此页面是否在创建时,调用查询数据列表接口?
activatedIsNeed: false, // 此页面是否在激活(进入)时,调用查询数据列表接口?
getDataListURL: '', // 数据列表接口,API地址
getDataListIsPage: false, // 数据列表接口,是否需要分页?
deleteURL: '', // 删除接口,API地址
deleteIsBatch: false, // 删除接口,是否需要批量?
deleteIsBatchKey: 'id', // 删除接口,批量状态下由那个key进行标记操作?比如:pid,uid...
exportURL: '' // 导出接口,API地址
},
// 默认属性
dataForm: {}, // 查询条件
dataList: [], // 数据列表
order: '', // 排序,asc/desc
orderField: '', // 排序,字段
page: 1, // 当前页码
limit: 10, // 每页数
total: 0, // 总条数
dataListLoading: false, // 数据列表,loading状态
dataListSelections: [], // 数据列表,多选项
addOrUpdateVisible: false // 新增/更新,弹窗visible状态
}
/* eslint-enable */
},
created () {
if (this.mixinViewModuleOptions.createdIsNeed) {
this.query()
}
},
activated () {
if (this.mixinViewModuleOptions.activatedIsNeed) {
this.query()
}
},
methods: {
// 获取数据列表
query () {
this.dataListLoading = true
const params = {
order: this.order,
orderField: this.orderField,
page: this.mixinViewModuleOptions.getDataListIsPage ? this.page : null,
limit: this.mixinViewModuleOptions.getDataListIsPage ? this.limit : null,
...this.dataForm
}
this.$http.post(
this.mixinViewModuleOptions.getDataListURL,
params
).then(({ data: res }) => {
this.dataListLoading = false
if (res.code !== 0) {
this.dataList = []
this.total = 0
return this.$message.error(res.msg)
}
this.dataList = this.mixinViewModuleOptions.getDataListIsPage ? res.data.list : res.data
this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0
this.dataList.forEach(item => {
if (item.gender) {
item.gender = item.gender == '0' ? '女' : item.gender == '1' ? '男' : item.gender
}
})
}).catch(() => {
this.dataListLoading = false
})
},
// 多选
dataListSelectionChangeHandle (val) {
this.dataListSelections = val
},
// 排序
dataListSortChangeHandle (data) {
if (!data.order || !data.prop) {
this.order = ''
this.orderField = ''
return false
}
this.order = data.order.replace(/ending$/, '')
this.orderField = data.prop.replace(/([A-Z])/g, '_$1').toLowerCase()
this.query()
},
// 分页, 每页条数
pageSizeChangeHandle (val) {
this.page = 1
this.limit = val
this.query()
},
// 分页, 当前页
pageCurrentChangeHandle (val) {
this.page = val
this.query()
},
getDataList: function () {
this.page = 1
this.query()
},
// 新增 / 修改
addOrUpdateHandle (id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.dataForm.id = id
this.$refs.addOrUpdate.init()
})
},
// 删除
deleteHandle (id) {
if (this.mixinViewModuleOptions.deleteIsBatch && !id && this.dataListSelections.length <= 0) {
return this.$message({
message: this.$t('prompt.deleteBatch'),
type: 'warning',
duration: 500
})
}
this.$confirm(this.$t('prompt.info', { 'handle': this.$t('delete') }), this.$t('prompt.title'), {
confirmButtonText: this.$t('confirm'),
cancelButtonText: this.$t('cancel'),
type: 'warning'
}).then(() => {
this.$http.delete(
`${this.mixinViewModuleOptions.deleteURL}${this.mixinViewModuleOptions.deleteIsBatch ? '' : '/' + id}`,
this.mixinViewModuleOptions.deleteIsBatch ? {
'data': id ? [id] : this.dataListSelections.map(item => item[this.mixinViewModuleOptions.deleteIsBatchKey])
} : {}
).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.query()
}
})
}).catch(() => {})
}).catch(() => {})
},
// 导出
exportHandle () {
var params = qs.stringify({
'token': localStorage.getItem('token'),
...this.dataForm
})
window.location.href = `${window.SITE_CONFIG['apiURL']}${this.mixinViewModuleOptions.exportURL}?${params}`
},
// 时间段控件取值变化事件-清空一个其他都清空
changeTime (dateValue) {
var startTimeIsNull = this.dataForm.startTime === '' || this.dataForm.startTime === 'null' || this.dataForm.startTime === null
var endTimeIsNull = this.dataForm.endTime === '' || this.dataForm.endTime === 'null' || this.dataForm.endTime === null
if (dateValue === null || dateValue === '' || dateValue === 'null') {
this.dataForm.startTime = ''
this.dataForm.endTime = ''
} else if (startTimeIsNull || endTimeIsNull) {
this.dataForm.startTime = dateValue
this.dataForm.endTime = dateValue
}
}
}
}

491
src/views/components/editResi.vue

@ -1,92 +1,120 @@
<template>
<div :id="formId" class="resi-container">
<el-form :ref="formId" class="resi-form" :model="form" :rules="rulesForm" :label-width="labelWidth">
<div :id="formId"
class="resi-container">
<el-form :ref="formId"
class="resi-form"
:model="form"
:rules="rulesForm"
:label-width="labelWidth">
<template v-if="supportAdd">
<el-row style="margin-bottom: 10px;">
<el-col :span="24">
<el-button icon="el-icon-plus" size="small" @click="handleAddRow"></el-button>
<el-button icon="el-icon-plus"
size="small"
@click="handleAddRow"></el-button>
</el-col>
</el-row>
<edit-form v-for="(item, index) in addList" :key="index" :ref="'baseForms' + index" :columns="3"
:form-list="item.itemList || formList" :form-id="'baseForms' + item.row" />
<edit-form v-for="(item, index) in addList"
:key="index"
:ref="'baseForms' + index"
:columns="3"
:form-list="item.itemList || formList"
:form-id="'baseForms' + item.row" />
</template>
<template v-else>
<el-row v-if="fixed" class="resi-row">
<el-row v-if="fixed"
class="resi-row">
<!-- <el-col v-for="n in item" :key="n.id" :span="n.itemType === 'textarea'&&24 || (24/columns)"> -->
<el-col :span="6">
<el-form-item prop="GRID_ID" label="所属网格">
<el-form-item prop="GRID_ID"
label="所属网格">
<!-- <div class="resi-cell"> -->
<!-- <div class="resi-cell-label">{{n.label}}</div> -->
<div class="resi-cell-value">
<el-select v-model.trim="form.GRID_ID" :disabled="disabled" placeholder="请选择网格" size="small"
clearable class="resi-cell-select" @change="handleChangeGrid"
>
<el-option
v-for="item in optionsG"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<!-- <div class="resi-cell-label">{{n.label}}</div> -->
<div class="resi-cell-value">
<el-select v-model.trim="form.GRID_ID"
:disabled="disabled"
placeholder="请选择网格"
size="small"
clearable
class="resi-cell-select"
@change="handleChangeGrid">
<el-option v-for="item in optionsG"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<!-- </div> -->
</el-form-item>
</el-col>
<el-col :span="18">
<el-form-item label="所属房屋" required>
<div class="resi-cell-value">
<div class="resi-cell-col">
<el-form-item prop="VILLAGE_ID">
<el-select v-model.trim="form.VILLAGE_ID" placeholder="请选择小区" size="small"
clearable class="resi-cell-select" :disabled="disabled" @change="handleChangeV"
>
<el-option
v-for="item in optionsV"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="BUILD_ID">
<el-select v-model.trim="form.BUILD_ID" placeholder="请选择楼号" size="small"
clearable :disabled="disabled" class="resi-cell-select resi-cell-select-middle" @change="handleChangeB"
>
<el-option
v-for="item in optionsB"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="UNIT_ID">
<el-select v-model.trim="form.UNIT_ID" placeholder="请选择单元" size="small"
clearable :disabled="disabled" class="resi-cell-select resi-cell-select-middle" @change="handleChangeD"
>
<el-option
v-for="item in optionsD"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="HOME_ID">
<el-select v-model.trim="form.HOME_ID" placeholder="请选择房号" size="small"
clearable :disabled="disabled" class="resi-cell-select resi-cell-select-middle"
@change="handleChangeH"
>
<el-option
v-for="item in optionsH"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
<!-- <el-col :span="6">
<el-form-item label="所属房屋"
required>
<div class="resi-cell-value">
<div class="resi-cell-col">
<el-form-item prop="VILLAGE_ID">
<el-select v-model.trim="form.VILLAGE_ID"
placeholder="请选择小区"
size="small"
clearable
class="resi-cell-select"
:disabled="disabled"
@change="handleChangeV">
<el-option v-for="item in optionsV"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="BUILD_ID">
<el-select v-model.trim="form.BUILD_ID"
placeholder="请选择楼号"
size="small"
clearable
:disabled="disabled"
class="resi-cell-select resi-cell-select-middle"
@change="handleChangeB">
<el-option v-for="item in optionsB"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="UNIT_ID">
<el-select v-model.trim="form.UNIT_ID"
placeholder="请选择单元"
size="small"
clearable
:disabled="disabled"
class="resi-cell-select resi-cell-select-middle"
@change="handleChangeD">
<el-option v-for="item in optionsD"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="HOME_ID">
<el-select v-model.trim="form.HOME_ID"
placeholder="请选择房号"
size="small"
clearable
:disabled="disabled"
class="resi-cell-select resi-cell-select-middle"
@change="handleChangeH">
<el-option v-for="item in optionsH"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
<!-- <el-col :span="6">
</el-col>
<el-col :span="6">
@ -98,7 +126,7 @@
<el-col :span="6">
</el-col> -->
</div>
</div>
</el-form-item>
</el-col>
<!-- <el-col :span="6">
@ -134,37 +162,38 @@
</el-form-item>
</el-col> -->
</el-row>
<el-row v-for="(item, index) in sliceList(formList, columns)" :key="index" class="resi-row">
<!-- <el-col v-for="n in item" :key="n.id" :span="n.itemType === 'textarea'&&24 || (24/columns)"> -->
<el-col v-for="n in item" :key="n.itemId" :span="item.length === 1 ? 24 : (24/columns)"
:style="n.itemType === 'divider' && 'display: none;'">
<el-form-item :prop="n.columnName" :label="n.label">
<!-- <div class="resi-cell"> -->
<!-- <div class="resi-cell-label">{{n.label}}</div> -->
<div class="resi-cell-value">
<template v-if="n.itemType === 'input' || n.itemType === 'textarea'">
<el-input
v-if="n.validType"
v-model.trim="form[n.columnName]"
:disabled="disabled"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入内容"
>
</el-input>
<el-input
v-else
v-model.trim="form[n.columnName]"
:disabled="disabled"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入内容"
>
</el-input>
</template>
<!-- <template v-if="n.itemType === 'textarea'">
<el-row v-for="(item, index) in sliceList(formList, columns)"
:key="index"
class="resi-row">
<!-- <el-col v-for="n in item" :key="n.id" :span="n.itemType === 'textarea'&&24 || (24/columns)"> -->
<el-col v-for="n in item"
:key="n.itemId"
:span="item.length === 1 ? 24 : (24/columns)"
:style="n.itemType === 'divider' && 'display: none;'">
<el-form-item :prop="n.columnName"
:label="n.label">
<!-- <div class="resi-cell"> -->
<!-- <div class="resi-cell-label">{{n.label}}</div> -->
<div class="resi-cell-value">
<template v-if="n.itemType === 'input' || n.itemType === 'textarea'">
<el-input v-if="n.validType"
v-model.trim="form[n.columnName]"
:disabled="disabled"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入内容">
</el-input>
<el-input v-else
v-model.trim="form[n.columnName]"
:disabled="disabled"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入内容">
</el-input>
</template>
<!-- <template v-if="n.itemType === 'textarea'">
<el-input
v-model.trim="form[n.columnName]"
class="resi-cell-textarea"
@ -175,89 +204,92 @@
>
</el-input>
</template> -->
<el-date-picker
v-else-if="n.itemType === 'datepicker'"
v-model.trim="form[n.columnName]"
:disabled="disabled"
class="resi-cell-input"
type="date"
size="small"
clearable
placeholder="选择日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd">
</el-date-picker>
<el-date-picker
v-else-if="n.itemType === 'daterange'"
v-model.trim="form[n.columnName]"
:disabled="disabled"
type="daterange"
align="right"
unlink-panels
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
<el-time-picker
v-else-if="n.itemType === 'timepicker'"
v-model.trim="form[n.columnName]"
:disabled="disabled"
placeholder="任意时间点">
</el-time-picker>
<el-time-picker
v-else-if="n.itemType === 'timerange'"
v-model.trim="form[n.columnName]"
:disabled="disabled"
is-range
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
placeholder="选择时间范围">
</el-time-picker>
<el-select v-else-if="n.itemType === 'select'" v-model.trim="form[n.columnName]"
:multiple="n.multiSelect"
:disabled="disabled"
placeholder="请选择" size="small" clearable class="resi-cell-select">
<el-option
v-for="item in n.options || options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<!-- <el-cascader
<el-date-picker v-else-if="n.itemType === 'datepicker'"
v-model.trim="form[n.columnName]"
:disabled="disabled"
class="resi-cell-input"
type="date"
size="small"
clearable
placeholder="选择日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd">
</el-date-picker>
<el-date-picker v-else-if="n.itemType === 'daterange'"
v-model.trim="form[n.columnName]"
:disabled="disabled"
type="daterange"
align="right"
unlink-panels
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
<el-time-picker v-else-if="n.itemType === 'timepicker'"
v-model.trim="form[n.columnName]"
:disabled="disabled"
placeholder="任意时间点">
</el-time-picker>
<el-time-picker v-else-if="n.itemType === 'timerange'"
v-model.trim="form[n.columnName]"
:disabled="disabled"
is-range
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
placeholder="选择时间范围">
</el-time-picker>
<el-select v-else-if="n.itemType === 'select'"
v-model.trim="form[n.columnName]"
:multiple="n.multiSelect"
:disabled="disabled"
placeholder="请选择"
size="small"
clearable
class="resi-cell-select">
<el-option v-for="item in n.options || options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<!-- <el-cascader
:options="options"
:props="{ checkStrictly: true }"
clearable></el-cascader> -->
<el-cascader
v-else-if="n.itemType === 'cascader'"
v-model.trim="form[n.columnName]"
:options="n.options"
:props="{ checkStrictly: true }"
:disabled="disabled"
clearable
size="small"
class="resi-cell-select">
</el-cascader>
<template v-else-if="n.itemType === 'radio'">
<el-radio v-for="ns in n.options" :key="ns.value" v-model.trim="form[n.columnName]" :disabled="disabled"
:label="ns.value">
{{ ns.label }}
</el-radio>
<!-- <el-radio v-model.trim="form[n.columnName]" label="1">备选项</el-radio> -->
</template>
<template v-else-if="n.itemType === 'checkbox'">
<el-checkbox-group v-model.trim="form[n.columnName]">
<el-checkbox v-for="ns in n.options" :key="ns.value" :label="ns.value" :disabled="disabled">{{ns.label}}</el-checkbox>
<!-- <el-checkbox label="n.la"></el-checkbox> -->
</el-checkbox-group>
</template>
</div>
<!-- </div> -->
</el-form-item>
</el-col>
<el-cascader v-else-if="n.itemType === 'cascader'"
v-model.trim="form[n.columnName]"
:options="n.options"
:props="{ checkStrictly: true }"
:disabled="disabled"
clearable
size="small"
class="resi-cell-select">
</el-cascader>
<template v-else-if="n.itemType === 'radio'">
<el-radio v-for="ns in n.options"
:key="ns.value"
v-model.trim="form[n.columnName]"
:disabled="disabled"
:label="ns.value">
{{ ns.label }}
</el-radio>
<!-- <el-radio v-model.trim="form[n.columnName]" label="1">备选项</el-radio> -->
</template>
<template v-else-if="n.itemType === 'checkbox'">
<el-checkbox-group v-model.trim="form[n.columnName]">
<el-checkbox v-for="ns in n.options"
:key="ns.value"
:label="ns.value"
:disabled="disabled">{{ns.label}}</el-checkbox>
<!-- <el-checkbox label="n.la"></el-checkbox> -->
</el-checkbox-group>
</template>
</div>
<!-- </div> -->
</el-form-item>
</el-col>
</el-row>
</template>
</el-form>
@ -381,7 +413,7 @@ export default {
}
let form = initForm(this.formInfo, this.formList)
let rules = initRules(this.formList)
let tempFormList = [ ...this.formList ]
let tempFormList = [...this.formList]
let constForm = {
...form
}
@ -525,13 +557,13 @@ export default {
}
})
},
getTreeData(data){
getTreeData (data) {
if (!Array.isArray(data)) return []
let arr = data.map(item => {
let _item = {}
if (item.children) {
if (item.children.length === 0) _item = { ...item, children: undefined }
else _item = { ...item, children: this.getTreeData(item.children)}
else _item = { ...item, children: this.getTreeData(item.children) }
} else {
_item = { ...item }
}
@ -613,9 +645,9 @@ export default {
this.getHouseList()
},
//
handleChangeH(val){
handleChangeH (val) {
let item = this.optionsH.find(item => item.value === val);
if(item && item.type == '1'){
if (item && item.type == '1') {
this.form.IS_TENANT = '1'
console.log('item-----', item)
} else this.form.IS_TENANT = '0'
@ -624,7 +656,7 @@ export default {
let arr = []
this.addList.forEach(item => {
// console.log('handlerMuscForm----000', this.$refs['baseForms' + item.row || item][0].handleForm())
arr.push([ ...this.$refs['baseForms' + item.row][0].handleForm() ])
arr.push([...this.$refs['baseForms' + item.row][0].handleForm()])
})
if (arr.length === 0) return arr
let arr2 = arr.reduce(function (a, b) { return a.concat(b) })
@ -807,17 +839,16 @@ export default {
<style lang="scss" scoped>
.resi-form {
:deep .el-date-editor.el-input, .el-date-editor.el-input__inner {
:deep .el-date-editor.el-input,
.el-date-editor.el-input__inner {
width: 100% !important;
}
}
.resi-cell-value .resi-cell-input {
width: 190px;
width: 190px;
}
</style>
<style lang="scss" scoped>
.resi-form .resi-row {
margin-bottom: 0;
}
@ -825,43 +856,43 @@ export default {
// .resi-form .resi-cell {
// display: flex;
// align-items: center;
// .resi-cell-label {
// width: 70px;
// box-sizing: border-box;
// margin-right: 15px;
// text-align: right;
// }
// .resi-cell-value-radio {
// display: flex;
// align-items: center;
// min-height: 36px;
// }
// .resi-cell-value .resi-cell-input {
// width: 180px;
// }
// .resi-cell-label {
// width: 70px;
// box-sizing: border-box;
// margin-right: 15px;
// text-align: right;
// }
// .resi-cell-value-radio {
// display: flex;
// align-items: center;
// min-height: 36px;
// }
// .resi-cell-value .resi-cell-input {
// width: 180px;
// }
.resi-cell-value .resi-cell-textarea {
width: 300px;
}
.resi-cell-col {
display: flex;
.el-form-item {
margin-right: 10px;
}
}
.resi-cell-select {
width: 190px;
box-sizing: border-box;
.resi-cell-value .resi-cell-textarea {
width: 300px;
}
.resi-cell-col {
display: flex;
.el-form-item {
margin-right: 10px;
&-middle {
width: 130px;
}
&-small {
width: 88px;
}
}
.resi-cell-select:last-child {
margin-right: 0;
}
.resi-cell-select {
width: 190px;
box-sizing: border-box;
margin-right: 10px;
&-middle {
width: 130px;
}
&-small {
width: 88px;
}
}
.resi-cell-select:last-child {
margin-right: 0;
}
// }
</style>

18
src/views/components/resiForm.vue

@ -198,7 +198,6 @@
v-else-if="n.itemType === 'cascader'"
v-model.trim="form[n.columnName]"
:options="n.options"
:props="{ checkStrictly: false }"
clearable
size="small"
class="resi-cell-select">
@ -510,6 +509,7 @@ export default {
this.form.GENDER = sex == 1 ? '1' : '2'
this.form.IS_OLD_PEOPLE = age >= 60 ? '1' : '0'
this.form.IS_BDHJ = huji == _id ? '1' : ''
this.validateIdcard(this.form.ID_CARD)
console.log('age-----', age, _id)
},
handleOpenSearch () {
@ -671,6 +671,22 @@ export default {
if (this.supportAdd) newForm = this.handlerMuscForm()
return newForm
},
validateIdcard (idCard) {
this.$http
.post('/epmetuser/icresiuser/getUserRoleByIdCard', { idCard })
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
console.log('获取查询详情成功', res.data)
if (res.data.isVolunteer == '1') this.form.IS_VOLUNTEER = '1'
else this.form.IS_VOLUNTEER = '0'
}
})
.catch(() => {
return this.$message.error('网络错误')
})
},
getGridList () {
const { user } = this.$store.state
console.log('agencyId', user)

13
src/views/main-shuju/main-navbar.vue

@ -164,7 +164,18 @@ export default {
// this.showHeader = false;
// }
this.changeCustomerName();
this.$store.state.mainShuju.menuList = window.SITE_CONFIG["menuShujuList"];
const customerId = localStorage.getItem("customerId");
let siteconfigElement = window.SITE_CONFIG["menuShujuList"];
// 亿 -
if ("04c0d396e298f13e57aa5904a657eaa6" != customerId && "3fdd0380deff5b30f45376cdf995d1c1" != customerId){
for (let index in siteconfigElement){
if (siteconfigElement[index].id == '6'){
let newMenuArr = siteconfigElement[index].children.filter(item =>item.id !== 'duoyuanfuwufenxi');
siteconfigElement[index].children = newMenuArr;
}
}
}
this.$store.state.mainShuju.menuList = siteconfigElement;
},
computed: {},
methods: {

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

@ -241,7 +241,7 @@ export default {
computed: {
tableHeight () {
return this.$store.state.inIframe ? this.clientHeight - 310 + this.iframeHeight : this.clientHeight - 310
return this.$store.state.inIframe ? this.clientHeight - 425 + this.iframeHeight : this.clientHeight - 425
},
@ -603,6 +603,10 @@ export default {
ownerName: this.ownerName,
ownerPhone: this.ownerPhone,
rentFlag: this.rentFlag,
purpose: this.purpose,
remark: this.remark,
updateStartDate: this.updateStartDate,
updateEndDate: this.updateEndDate,
neighborHoodId: this.agencyObj.id
}
@ -778,6 +782,22 @@ export default {
type: String,
default: '',
},
purpose: {
type: String,
default: '',
},
remark: {
type: String,
default: '',
},
updateStartDate: {
type: String,
default: '',
},
updateEndDate: {
type: String,
default: '',
},
}
}
</script>

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

@ -30,159 +30,196 @@
</div>
<div :style="{height:rowHeight}"
class="div_table">
<div class="div_search">
<div class="resi-cell">
<div class="resi-cell-label">房主姓名</div>
<div class="resi-cell-value">
<el-input v-model="ownerName"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入内容">
</el-input>
</div>
</div>
<div class="resi-cell">
<div class="resi-cell-label">房主手机</div>
<div class="resi-cell-value">
<el-input v-model="ownerPhone"
size="small"
clearable
placeholder="请输入内容">
</el-input>
</div>
</div>
<div class="resi-cell">
<div class="resi-cell-label">房屋状态</div>
<div class="resi-cell-value">
<el-select class="item_width_1"
v-model="rentFlag"
placeholder="请选择"
class=div_left>
<div class="div_search marginl-20">
<el-form :inline="true"
ref="ref_searchform"
:label-width="'80px'">
<div>
<el-form-item label="房主姓名"
prop="ownerName">
<el-input v-model="ownerName"
class="item_width_2"
size="small"
clearable
placeholder="请输入内容">
</el-input>
</el-form-item>
<el-form-item label="房主手机"
prop="ownerPhone">
<el-input v-model="ownerPhone"
class="item_width_2"
size="small"
clearable
placeholder="请输入手机">
</el-input>
</el-form-item>
<el-form-item label="房屋状态"
prop="rentFlag">
<el-select class="item_width_2"
v-model="rentFlag"
placeholder="请选择"
size="small"
clearable>
<el-option v-for="item in rentList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="房屋用途"
prop="purpose">
<el-select v-model="purpose"
class="item_width_2"
placeholder="请选择"
size="small"
clearable>
<el-option v-for="item in purposeArr"
:key="item.dictValue"
:label="item.dictName"
:value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="备注"
prop="remark">
<el-input v-model="remark"
class="item_width_2"
size="small"
clearable
placeholder="请输入备注">
</el-input>
</el-form-item>
<el-form-item label="更新时间"
prop="updateStartDate">
<el-date-picker v-model="updateStartDate"
:picker-options="startPickerOptions"
class="item_width_2"
size="small"
type="date"
value-format="yyyyMMdd"
value="yyyy-MM-dd"
placeholder="开始时间">
</el-date-picker>
<span class="data-tag"></span>
<el-date-picker v-model="updateEndDate"
:picker-options="endPickerOptions"
class="item_width_2 data-tag"
size="small"
type="date"
value-format="yyyyMMdd"
value="yyyy-MM-dd"
placeholder="结束时间">
</el-date-picker>
</el-form-item>
<el-button style="margin-left:30px"
size="small"
clearable>
<el-option v-for="item in rentList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
</div>
<div class="resi-cell">
<div class="resi-cell-label">房屋用途</div>
<div class="resi-cell-value">
<el-select v-model="purpose"
placeholder="房屋用途"
clearable>
<el-option v-for="item in purposeArr"
:key="item.dictValue"
:label="item.dictName"
:value="item.dictValue">
</el-option>
</el-select>
</div>
</div>
<div class="resi-cell">
<div class="resi-cell-label">备注</div>
<div class="resi-cell-value">
<el-input v-model="remark"
size="small"
clearable
placeholder="请输入备注">
</el-input>
class="diy-button--search"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
size="small"
class="diy-button--reset"
@click="resetSearch">重置</el-button>
</div>
</div>
<el-button style="margin-left:10px"
class="diy-button--search"
size="small"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
class="diy-button--reset"
size="small"
@click="resetSearch">重置</el-button>
<!-- <el-button style="margin-left:10px"
class="diy-button--reset"
size="small"
@click="resetSearch">重置</el-button> -->
</el-form>
</div>
<div class=div_left_table>
<build-table v-if="selTreeObj.level==='neighborHood'&&!showRoomTable"
ref="ref_neighTable"
:staffAgencyId="staffAgencyId"
:showImportBtn="showImportBtn"
:ownerName="ownerName"
:ownerPhone="ownerPhone"
:rentFlag="rentFlag"
:purpose="purpose"
:remark="remark"
:updateStartDate="updateStartDate"
:updateEndDate="updateEndDate"
@toNextLevel="toNextLevel"
@refreshTree="refreshTree"></build-table>
<room-table v-if="showRoomTable||selTreeObj.level==='building'"
:staffAgencyId="staffAgencyId"
:showImportBtn="showImportBtn"
:ownerName="ownerName"
:ownerPhone="ownerPhone"
:rentFlag="rentFlag"
:purpose="purpose"
:remark="remark"
:updateStartDate="updateStartDate"
:updateEndDate="updateEndDate"
ref="ref_buildingTable"
@refreshTree="refreshTree"></room-table>
<community-table v-if="selTreeObj.level!=='building'&&selTreeObj.level!=='neighborHood'&&!showRoomTable"
@toNextLevel="toNextLevel"
:staffAgencyId="staffAgencyId"
:ownerName="ownerName"
:ownerPhone="ownerPhone"
:rentFlag="rentFlag"
:purpose="purpose"
:remark="remark"
:updateStartDate="updateStartDate"
:updateEndDate="updateEndDate"
ref="ref_communityTable"
@refreshTree="refreshTree"></community-table>
</div>
<build-table v-if="selTreeObj.level==='neighborHood'&&!showRoomTable"
ref="ref_neighTable"
:staffAgencyId="staffAgencyId"
:showImportBtn="showImportBtn"
:ownerName="ownerName"
:ownerPhone="ownerPhone"
:rentFlag="rentFlag"
:purpose="purpose"
:remark="remark"
@toNextLevel="toNextLevel"
@refreshTree="refreshTree"></build-table>
<room-table v-if="showRoomTable||selTreeObj.level==='building'"
:staffAgencyId="staffAgencyId"
:showImportBtn="showImportBtn"
:ownerName="ownerName"
:ownerPhone="ownerPhone"
:rentFlag="rentFlag"
:purpose="purpose"
:remark="remark"
ref="ref_buildingTable"
@refreshTree="refreshTree"></room-table>
<community-table v-if="selTreeObj.level!=='building'&&selTreeObj.level!=='neighborHood'&&!showRoomTable"
@toNextLevel="toNextLevel"
:staffAgencyId="staffAgencyId"
:ownerName="ownerName"
:ownerPhone="ownerPhone"
:rentFlag="rentFlag"
:purpose="purpose"
:remark="remark"
ref="ref_communityTable"
@refreshTree="refreshTree"></community-table>
</div>
</div>
</template>
<script>
import CDialog from '@c/CDialog'
import communityTable from './communityTable'
import buildTable from './buildTable'
import roomTable from './roomTable'
import { requestPost } from "@/js/dai/request";
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
let loading //
export default {
data () {
return {
filterText: '',
treeLoading: true,
treeData: [],
openNodes: [],
defaultProps: {
children: 'children',
label: 'showName'
},
selTreeObj: {},
centerPoint: [],
staffAgencyId: localStorage.getItem("agencyId"),
showImportBtn: false,
import CDialog from '@c/CDialog'
import communityTable from './communityTable'
import buildTable from './buildTable'
import roomTable from './roomTable'
import { requestPost } from "@/js/dai/request";
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
let loading //
export default {
data () {
let endDisabledDate = (time) => {//datareturn
let nowData = Date.now()
if (this.updateStartDate) {
let startTime = new Date(this.updateStartDate)
return time.getTime() > nowData || time.getTime() < startTime || time.getTime() === startTime
} else {
return time.getTime() > nowData
}
}
let startDisabledDate = (time) => {//datareturn
let nowData = Date.now()
return time.getTime() > nowData
}
return {
filterText: '',
treeLoading: true,
treeData: [],
openNodes: [],
defaultProps: {
children: 'children',
label: 'showName'
},
selTreeObj: {},
centerPoint: [],
staffAgencyId: localStorage.getItem("agencyId"),
showImportBtn: false,
rentList: [
{
@ -203,6 +240,8 @@
rentFlag: '',
purpose: '',
remark: '',
updateStartDate: '',
updateEndDate: '',
showRoomTable: false,
selObj: {},
purposeArr: [
@ -213,7 +252,13 @@
{ dictValue: '5', dictName: '仓储' },
{ dictValue: '6', dictName: '商住混用' },
{ dictValue: '7', dictName: '其他' }
]
],
endPickerOptions: {
disabledDate: endDisabledDate
},
startPickerOptions: {
disabledDate: startDisabledDate
},
}
},
components: {
@ -252,15 +297,15 @@
methods: {
handleSearch () {
if (this.ownerName || this.ownerPhone || this.rentFlag || this.purpose || this.remark) {
this.showRoomTable = true
// if (this.ownerName || this.ownerPhone || this.rentFlag || this.purpose || this.remark) {
this.showRoomTable = true
this.$nextTick(() => {
this.$refs['ref_buildingTable'].loadTable('search', this.selTreeObj)
})
} else {
this.$message.warning('请输入查询条件')
}
this.$nextTick(() => {
this.$refs['ref_buildingTable'].loadTable('search', this.selTreeObj)
})
// } else {
// this.$message.warning('')
// }
},
@ -272,10 +317,12 @@
this.rentFlag = ''
this.purpose = ''
this.remark = ''
this.updateStartDate = ''
this.updateEndDate = ''
this.pageSize = 10
this.pageNo = 1
this.handleNodeClick(this.selObj)
// this.handleNodeClick(this.selObj)
// this.loadTable()
},
@ -345,6 +392,8 @@
this.rentFlag = ''
this.purpose = ''
this.remark = ''
this.updateStartDate = ''
this.updateEndDate = ''
this.showRoomTable = false
this.selObj = JSON.parse(JSON.stringify(obj))
@ -487,6 +536,30 @@
}
}
</script>
<style>
/* .aui-content > .el-tabs > .el-tabs__content {
padding: 0px;
} */
.el-tree-node:focus > .el-tree-node__content {
/* background-color: #ccc !important; */
color: #2195fe;
}
</style>
<style lang="scss" scoped>
.div_tree {
/deep/ .el-scrollbar__wrap {
overflow-x: hidden !important;
}
}
</style>
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManage.scss";
@import "@/assets/scss/modules/management/list-main.scss";
</style>
<style lang="scss" scoped >
.div_main {
display: flex;
@ -506,42 +579,25 @@
overflow-x: auto;
}
.div_table {
margin-left: 15px;
// .div_table {
// margin-left: 15px;
// // flex: 1;
// width: calc(100% - 300px);
// background-color: #ffffff;
// border-radius: 5px;
// padding: 10px;
// }
.div_left {
// flex: 1;
width: calc(100% - 300px);
}
.div_left_table {
margin-top: 10px;
margin-left: 15px;
background-color: #ffffff;
border-radius: 5px;
padding: 10px;
}
.div_btn {
margin-top: 20px;
}
.row {
padding: 10px;
}
</style>
<style>
/* .aui-content > .el-tabs > .el-tabs__content {
padding: 0px;
} */
.el-tree-node:focus > .el-tree-node__content {
/* background-color: #ccc !important; */
color: #2195fe;
}
</style>
<style lang="scss" scoped>
.div_tree {
/deep/ .el-scrollbar__wrap {
overflow-x: hidden !important;
}
}
</style>
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManage.scss";
</style>

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

@ -236,7 +236,7 @@ export default {
},
computed: {
tableHeight () {
return this.$store.state.inIframe ? this.clientHeight - 310 + this.iframeHeight : this.clientHeight - 310
return this.$store.state.inIframe ? this.clientHeight - 425 + this.iframeHeight : this.clientHeight - 425
},
@ -583,6 +583,10 @@ export default {
ownerName: this.ownerName,
ownerPhone: this.ownerPhone,
rentFlag: this.rentFlag,
purpose: this.purpose,
remark: this.remark,
updateStartDate: this.updateStartDate,
updateEndDate: this.updateEndDate,
}
if (this.agencyObj.level === 'grid') {
@ -777,6 +781,22 @@ export default {
type: String,
default: '',
},
purpose: {
type: String,
default: '',
},
remark: {
type: String,
default: '',
},
updateStartDate: {
type: String,
default: '',
},
updateEndDate: {
type: String,
default: '',
},
}
}

1232
src/views/modules/base/community/roomTable.vue

File diff suppressed because it is too large

3
src/views/modules/base/resi.vue

@ -849,7 +849,8 @@ export default {
childGroup.itemList.forEach(async (item) => {
if (item.optionSourceType === 'remote') {
await this.getOptionsList(item.optionSourceValue).then((res) => {
item.options = res
item.options = this.getTreeData(res)
})
// console.log('')
}

5
src/views/modules/communityParty/members/cpts/record.vue

@ -64,7 +64,7 @@
<div v-else class="div-content">{{ scope.row.startDate + ' - ' + scope.row.endDate }}</div>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="120">
<el-table-column v-if="btnType == 'add'" label="操作" align="center" width="120">
<template slot-scope="scope">
<template v-if="scope.row.isEdit">
<el-button
@ -123,7 +123,7 @@ export default {
data() {
return {
btnDisabled: false,
btnType: 'add',
btnType: 'cancle',
isEdit: false,
tableData: [],
tempRow: {}
@ -217,6 +217,7 @@ export default {
this.$message.success('保存成功')
row.isEdit = false
this.isEdit = false
this.btnType = 'cancle'
this.getList()
}
})

6
src/views/modules/communityParty/members/crateForm.vue

@ -93,7 +93,7 @@
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" :autosize="{ minRows: 4, maxRows: 10}" :disabled="disabled" type="textarea" clearable class="input-width-textarea" placeholder="请输入内容"></el-input>
</el-form-item>
<div :style="'width:' + formItemWd" >
<div >
<div style="margin-top: 20px; text-align: center;">
<el-button size="small" @click="handleCancle">取消</el-button>
<el-button
@ -241,6 +241,7 @@ export default {
this.form = { ...val }
console.log('val----------in', val)
this.partyOrgs = val.orgPids.split(':')
console.log('partyOrgs-----', this.partyOrgs)
this.partymenberid = val.id
}
},
@ -305,6 +306,9 @@ export default {
if (icResiUserId) {
this.form.address = address
this.isAuto = true
} else {
this.form.address = ''
this.isAuto = false
}
}

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

@ -78,7 +78,7 @@
<el-date-picker v-model="timeRangePay"
size="small"
type="daterange"
value-format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd"
@change="handleTimeChangePay"
range-separator="至"
start-placeholder="开始时间"
@ -91,7 +91,7 @@
<el-date-picker v-model="timeRange"
size="small"
type="daterange"
value-format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd"
@change="handleTimeChange"
range-separator="至"
start-placeholder="开始时间"
@ -483,7 +483,7 @@ export default {
handleTimeChange (val) {
if (val.length > 0) {
this.searchForm.rdsjStartDate = val[0]
this.searchForm.rdsjEndDate = val[0]
this.searchForm.rdsjEndDate = val[1]
} else {
this.searchForm.rdsjStartDate = ''
this.searchForm.rdsjEndDate = ''
@ -493,7 +493,7 @@ export default {
handleTimeChangePay (val) {
if (val.length > 0) {
this.searchForm.payStatrDate = val[0]
this.searchForm.payEndDate = val[0]
this.searchForm.payEndDate = val[1]
} else {
this.searchForm.payStatrDate = ''
this.searchForm.payEndDate = ''
@ -681,6 +681,10 @@ export default {
resetForm(formName) {
this.timeRangePay = []
this.timeRange = []
this.searchForm.payStatrDate = ''
this.searchForm.payEndDate = ''
this.searchForm.rdsjStartDate = ''
this.searchForm.rdsjEndDate = ''
this.$refs[formName].resetFields()
this.handleSearch()
},

47
src/views/modules/communityService/sqzzz/cpts/edit.vue

@ -30,12 +30,17 @@
label-width="150px"
style="display: block"
>
<el-select v-model="dataForm.categoryCode" placeholder="请选择" clearable>
<el-select
v-model="dataForm.categoryCode"
placeholder="请选择"
clearable
>
<el-option
v-for="item in categoryList"
:key="item.value"
:label="item.label"
:value="item.value">
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
@ -259,7 +264,7 @@ export default {
orgId: "",
dataForm: {
organizationName: "",
categoryCode: '',
categoryCode: "",
serviceItem: "",
organizationPersonCount: "",
principalName: "",
@ -271,8 +276,8 @@ export default {
latitude: "",
organizationPersonnel: [],
},
categoryList: []
}
categoryList: [],
};
},
components: {},
computed: {
@ -312,23 +317,23 @@ export default {
watch: {},
async created() {
this.getCategoryList()
this.getCategoryList();
},
async mounted() {
this.initMap()
this.initMap();
},
methods: {
async getCategoryList() {
const url = '/sys/dict/data/dictlist'
const url = "/sys/dict/data/dictlist";
const params = {
dictType: 'self_org_category'
}
const { data, code, msg } = await requestPost(url, params)
dictType: "self_org_category",
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.categoryList = data
this.categoryList = data;
} else {
this.$message.error(msg)
this.$message.error(msg);
}
},
handleAddStaff() {
@ -449,6 +454,22 @@ export default {
message: "手机号格式有误",
});
}
const {
dataForm: { organizationPersonnel },
} = this;
let vlt = organizationPersonnel.every((item) => {
return (
item.personName &&
item.personPhone &&
formVltHelper.userOrMobile(item.personPhone)
);
});
if (!vlt) {
return this.$message({
type: "error",
message: "成员姓名/手机号为空或格式有误",
});
}
this.submit();
}
});

4
src/views/modules/partymember/icpartymemberpoint.vue

@ -183,10 +183,10 @@
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import viewPost from '@/mixins/view-post'
import { mapGetters } from 'vuex'
export default {
mixins: [mixinViewModule],
mixins: [viewPost],
data() {
return {
mixinViewModuleOptions: {

5
src/views/modules/partymember/icpartyorg-add-or-update.vue

@ -164,7 +164,7 @@
if(this.dataForm.orgId) {
this.dataForm.mySelectOrg = this.dataForm.orgId
this.dataForm.orgPid = this.dataForm.orgId
this.dataForm.orgPids = this.dataForm.orgPids + ':' + this.dataForm.orgId
this.dataForm.orgPids = this.dataForm.orgPids ? this.dataForm.orgPids + ':' + this.dataForm.orgId : this.dataForm.orgId
console.log(this.dataForm.orgPid)
console.log(this.dataForm.orgPids)
} else {
@ -418,6 +418,9 @@
if (!this.dataForm.latitude || !this.dataForm.longitude) {
return this.$message.error('请滑动地图选择党组织位置')
}
if (this.dataForm.orgPids === '0') {
this.dataForm.orgPids = ''
}
this.$refs['dataForm'].validate((valid) => {
if (!valid) {
return false

2
src/views/modules/plugins/change/changedeath.vue

@ -88,7 +88,7 @@
<template slot-scope="scope">
{{
scope.row.gender == '2'
? "保密"
? ""
: scope.row.gender
}}
</template>

2
src/views/modules/plugins/change/changerelocation.vue

@ -186,7 +186,7 @@
<template slot-scope="scope">
{{
scope.row.gender == '2'
? "保密"
? ""
: scope.row.gender
}}
</template>

2
src/views/modules/plugins/change/changewelfare.vue

@ -79,7 +79,7 @@
<template slot-scope="scope">
{{
scope.row.gender == '2'
? "保密"
? ""
: scope.row.gender
}}
</template>

240
src/views/modules/plugins/stats/factagencyuserhousedaily-add-or-update.vue

@ -0,0 +1,240 @@
<template>
<el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" :label-width="$i18n.locale === 'en-US' ? '120px' : '80px'">
<el-form-item label="客户id" prop="customerId">
<el-input v-model="dataForm.customerId" placeholder="客户id"></el-input>
</el-form-item>
<el-form-item label="数据更新至:yyyyMMdd; " prop="dateId">
<el-input v-model="dataForm.dateId" placeholder="数据更新至:yyyyMMdd; "></el-input>
</el-form-item>
<el-form-item label="组织id" prop="agencyId">
<el-input v-model="dataForm.agencyId" placeholder="组织id"></el-input>
</el-form-item>
<el-form-item label="组织i所属的组织id" prop="pid">
<el-input v-model="dataForm.pid" placeholder="组织i所属的组织id"></el-input>
</el-form-item>
<el-form-item label="组织i所有上级id" prop="pids">
<el-input v-model="dataForm.pids" placeholder="组织i所有上级id"></el-input>
</el-form-item>
<el-form-item label="小区总数" prop="neighbourhoodsCount">
<el-input v-model="dataForm.neighbourhoodsCount" placeholder="小区总数"></el-input>
</el-form-item>
<el-form-item label="房屋总数" prop="houseCount">
<el-input v-model="dataForm.houseCount" placeholder="房屋总数"></el-input>
</el-form-item>
<el-form-item label="自住房屋总数" prop="houseSelfCount">
<el-input v-model="dataForm.houseSelfCount" placeholder="自住房屋总数"></el-input>
</el-form-item>
<el-form-item label="出租房屋总数" prop="houseLeaseCount">
<el-input v-model="dataForm.houseLeaseCount" placeholder="出租房屋总数"></el-input>
</el-form-item>
<el-form-item label="闲置房屋总数" prop="houseIdleCount">
<el-input v-model="dataForm.houseIdleCount" placeholder="闲置房屋总数"></el-input>
</el-form-item>
<el-form-item label="居民总数" prop="userCount">
<el-input v-model="dataForm.userCount" placeholder="居民总数"></el-input>
</el-form-item>
<el-form-item label="常住居民总数" prop="userResiCount">
<el-input v-model="dataForm.userResiCount" placeholder="常住居民总数"></el-input>
</el-form-item>
<el-form-item label="流动居民总数" prop="userFloatCount">
<el-input v-model="dataForm.userFloatCount" placeholder="流动居民总数"></el-input>
</el-form-item>
<el-form-item label="当日新增房屋数" prop="houseIncr">
<el-input v-model="dataForm.houseIncr" placeholder="当日新增房屋数"></el-input>
</el-form-item>
<el-form-item label="当日修改房屋数" prop="houseModify">
<el-input v-model="dataForm.houseModify" placeholder="当日修改房屋数"></el-input>
</el-form-item>
<el-form-item label="当日新增居民数" prop="userIncr">
<el-input v-model="dataForm.userIncr" placeholder="当日新增居民数"></el-input>
</el-form-item>
<el-form-item label="当日修改居民数" prop="userModify">
<el-input v-model="dataForm.userModify" placeholder="当日修改居民数"></el-input>
</el-form-item>
<el-form-item label="删除标识 0未删除、1已删除" prop="delFlag">
<el-input v-model="dataForm.delFlag" placeholder="删除标识 0未删除、1已删除"></el-input>
</el-form-item>
<el-form-item label="乐观锁" prop="revision">
<el-input v-model="dataForm.revision" placeholder="乐观锁"></el-input>
</el-form-item>
<el-form-item label="创建人" prop="createdBy">
<el-input v-model="dataForm.createdBy" placeholder="创建人"></el-input>
</el-form-item>
<el-form-item label="创建时间:第一次提交审核的时间,注意和历史表的第一条记录时间一致" prop="createdTime">
<el-input v-model="dataForm.createdTime" placeholder="创建时间:第一次提交审核的时间,注意和历史表的第一条记录时间一致"></el-input>
</el-form-item>
<el-form-item label="更新人" prop="updatedBy">
<el-input v-model="dataForm.updatedBy" placeholder="更新人"></el-input>
</el-form-item>
<el-form-item label="更新时间" prop="updatedTime">
<el-input v-model="dataForm.updatedTime" placeholder="更新时间"></el-input>
</el-form-item>
</el-form>
<template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
</template>
</el-dialog>
</template>
<script>
import debounce from 'lodash/debounce'
export default {
data () {
return {
visible: false,
dataForm: {
id: '',
customerId: '',
dateId: '',
agencyId: '',
level: '',
pid: '',
pids: '',
neighbourhoodsCount: '',
houseCount: '',
houseSelfCount: '',
houseLeaseCount: '',
houseIdleCount: '',
userCount: '',
userResiCount: '',
userFloatCount: '',
houseIncr: '',
houseModify: '',
userIncr: '',
userModify: '',
delFlag: '',
revision: '',
createdBy: '',
createdTime: '',
updatedBy: '',
updatedTime: ''
}
}
},
computed: {
dataRule () {
return {
customerId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
dateId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
agencyId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
level: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
pid: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
pids: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
neighbourhoodsCount: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
houseCount: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
houseSelfCount: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
houseLeaseCount: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
houseIdleCount: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
userCount: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
userResiCount: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
userFloatCount: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
houseIncr: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
houseModify: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
userIncr: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
userModify: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
delFlag: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
revision: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
createdBy: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
createdTime: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
updatedBy: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
updatedTime: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
]
}
}
},
methods: {
init () {
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.getInfo()
}
})
},
//
getInfo () {
this.$http.get(`//factAgencyUserHouseDaily/${this.dataForm.id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.dataForm = {
...this.dataForm,
...res.data
}
}).catch(() => {})
},
//
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => {
if (!valid) {
return false
}
this.$http[!this.dataForm.id ? 'post' : 'put']('//factAgencyUserHouseDaily/', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
}).catch(() => {})
})
}, 1000, { 'leading': true, 'trailing': false })
}
}
</script>

315
src/views/modules/plugins/stats/factagencyuserhousedaily.vue

@ -0,0 +1,315 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mode-block resi-container">
<el-card ref="searchCard" class="search-card">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item label="组织机构" label-width="100px"
prop="agencyId">
<!-- <el-select
v-model.trim="dataForm.agencyId"
placeholder="请选择"
clearable
>
<el-option
v-for="item in optionsA"
:key="item.agencyId"
:label="item.agencyName"
:value="item.agencyId"
>
</el-option>
</el-select> -->
<el-cascader ref="cascaderUnit" v-model.trim="dataForm.agencyId" :options="optionsA" :props="{ checkStrictly: true, expandTrigger: 'hover', emitPath: false,children:'subAgencyList',label:'agencyName',value:'agencyId'}" popper-class="cascader-block">
<template slot-scope="{ node, data }">
<div @click="cascaderClick(data)">
<!-- <span class="block"></span> -->
<span>{{ data.agencyName }}</span>
<span v-if="!node.isLeaf"> ({{ data.subAgencyList.length }}) </span>
</div>
</template>
</el-cascader>
</el-form-item>
<el-form-item label="时间范围"
prop="startTime">
<el-date-picker v-model="timeRange"
type="daterange"
clearable
size="small"
range-separator="至"
start-placeholder="选择日期"
end-placeholder="选择日期"
value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
</el-form>
</el-card>
<el-card class="resi-card-table">
<div class="resi-row-btn">
<el-button @click="totalHandle"
class="diy-button--add"
size="small">总计</el-button>
<el-button @click="exportHandle"
class="diy-button--reset"
size="small">导出</el-button>
</div>
<el-table class="resi-table" v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%">
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
<el-table-column width="160" fixed prop="agencyName" label="组织结构" header-align="center" align="center"></el-table-column>
<el-table-column width="80" prop="neighbourhoodsCount" label="小区数" header-align="center" align="center"></el-table-column>
<el-table-column width="80" prop="houseCount" label="房屋数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="houseSelfCount" label="自住房屋数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="houseLeaseCount" label="出租房屋数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="houseIdleCount" label="闲置房屋数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="userCount" label="居民总数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="userResiCount" label="常住人口数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="userFloatCount" label="流动人口数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="houseIncr" label="新增房屋数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="userIncr" label="新增人口数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="houseModify" label="修改房屋数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="userModify" label="修改人口数" header-align="center" align="center"></el-table-column>
</el-table>
<el-pagination
:current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle">
</el-pagination>
</el-card>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
<el-dialog
title="总计"
:visible.sync="totalVisible"
width="60%">
<template>
<el-table
:data="tableData"
style="width: 100%">
<el-table-column width="160" fixed prop="agencyName" label="组织结构" header-align="center" align="center"></el-table-column>
<el-table-column width="80" prop="neighbourhoodsCount" label="小区数" header-align="center" align="center"></el-table-column>
<el-table-column width="80" prop="houseCount" label="房屋数" header-align="center" align="center"></el-table-column>
<el-table-column width="120" prop="houseSelfCount" label="自住房屋总数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="houseLeaseCount" label="出租房屋数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="houseIdleCount" label="闲置房屋数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="userCount" label="居民总数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="userResiCount" label="常住人口数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="userFloatCount" label="流动人口数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="houseIncr" label="新增房屋数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="userIncr" label="新增人口数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="houseModify" label="修改房屋数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="userModify" label="修改人口数" header-align="center" align="center"></el-table-column>
</el-table>
</template>
</el-dialog>
</div>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import AddOrUpdate from './factagencyuserhousedaily-add-or-update'
export default {
mixins: [mixinViewModule],
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/data/stats/factAgencyUserHouseDaily/page',
getDataListIsPage: true,
deleteURL: '/data/stats/factAgencyUserHouseDaily',
deleteIsBatch: true,
exportURL: '/data/stats/factAgencyUserHouseDaily/export'
},
optionsA: [],
totalVisible: false,
timeRange: '',
dataForm: {
id: ''
},
tableData: []
}
},
components: {
AddOrUpdate
},
created () {
this.getGridList()
// this.getValiheList()
},
watch: {
timeRange (val) {
if (Array.isArray(val) && val.length == 2) {
this.dataForm.startTime = val[0];
this.dataForm.endTime = val[1];
} else {
this.dataForm.startTime = "";
this.dataForm.endTime = "";
}
}
},
methods: {
totalHandle () {
this.tableData = []
this.$http
.get('/data/stats/factAgencyUserHouseDaily/total',{params: this.dataForm})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
console.log('获取查询详情成功', res.data)
this.tableData.push(res.data)
}
})
.catch(() => {
return this.$message.error('网络错误')
})
this.totalVisible = true
},
exportHandle () {
const url = this.mixinViewModuleOptions.exportURL
this.$http({
method: 'GET',
url,
responseType: 'blob',
params: this.dataForm
}).then(res => {
// this.download(res.data, title + '.xls')
if (res.headers["content-disposition"]) {
let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1])
console.log('filename', fileName)
let blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
var url = window.URL.createObjectURL(blob)
var aLink = document.createElement('a')
aLink.style.display = 'none'
aLink.href = url
aLink.setAttribute('download', fileName)
document.body.appendChild(aLink)
aLink.click()
document.body.removeChild(aLink) //
window.URL.revokeObjectURL(url) //blob
} else this.$message.error('下载失败')
}).catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
},
cascaderClick (nodeData) {
this.dataForm.agencyId = nodeData.agencyId;
this.dataForm.level = nodeData.level
this.$refs.cascaderUnit.checkedValue = nodeData.agencyId;
this.$refs.cascaderUnit.computePresentText();
this.$refs.cascaderUnit.toggleDropDownVisible(false);
},
getGridList() {
const { user } = this.$store.state
this.$http
.post('/gov/org/customeragency/agencygridtree')
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
console.log('获取查询详情成功', res.data)
// this.optionsA = res.data
this.optionsA.push(res.data)
this.dataForm.agencyId = res.data.agencyId
this.dataForm.level = res.data.level
}
})
.catch(() => {
return this.$message.error('网络错误')
})
},
}
}
</script>
<style>
.block{
position: absolute;
left: 0px;
display: inline-block;
width: 35px;
height: 50px;
background: #fff;
}
.cascader-block .el-cascader-node>.el-radio{
display: none;
}
</style>
<style lang="scss" scoped>
.blacklist-reason {
width: 100%;
height: 80px;
border: 1px solid #e4e4e4;
border-radius: 4px;
resize: none;
padding: 8px;
box-sizing: border-box;
}
</style>
<style lang="scss" scoped>
@import "@/assets/scss/buttonstyle.scss";
.resi-container .resi-card-table {
::v-deep .el-table th {
color: #fff;
background-color: rgba(33, 149, 254, 1);
// border-right: 1px solid rgba(33, 149, 254, 1);
}
}
.resi-table {
::v-deep .el-button--text {
text-decoration: underline;
}
::v-deep .btn-color-del {
margin-left: 10px;
color: rgba(213, 16, 16, 1);
}
::v-deep .btn-color-edit {
color: rgba(0, 167, 169, 1);
}
}
.form-wr {
.input-width {
width: 260px;
}
.input-width-textarea {
width: 500px;
}
.imsg-list {
display: flex;
align-items: center;
.imgs-item {
position: relative;
margin-right: 10px;
.el-icon-delete {
position: absolute;
top: 0;
right: 0;
font-size: 18px;
color: red;
z-index: 3;
cursor: pointer;
}
}
}
}
.div-content {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.resi-row-btn {
margin-bottom: 13px;
.upload-btn {
display: inline-block;
margin: 0 10px;
}
}
</style>

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

@ -201,11 +201,11 @@
<el-form-item label="所属网格"
label-width="150px">
<el-select class="cell-width-1"
disabled
v-model.trim="formData.gridId"
v-model.trim="selGridId"
placeholder="请选择"
clearable>
<el-option v-for="item in gridList"
@click.native="handleChangeGrid"
:key="item.value"
:label="item.label"
:value="item.value">
@ -307,21 +307,7 @@ export default {
],
formData: iniFmData(),
formDataTemp: {
address: "山东省青岛市市南区徐州路21号戊",
// categoryList: ["1015", "1016"],
eventContent: "asdfasdfasdfasdf",
gridId: "63d5ff92ea981b1c58e4914ac894c610",
happenTime: "2022-05-05 12:00:00",
idCard: "211103190909090909",
imageList: ["https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet/test/internal/20220518/0818246db4cc4ac7bcd84bea69a8b38c.png"],
latitude: 36.07120507831775,
longitude: 120.38806572319174,
mobile: "15111111111",
name: "张三",
reportUserId: "",
sourceType: "1",
},
//
@ -406,6 +392,10 @@ export default {
"formData.reportUserId": function (val) {
this.$emit("changeUserId", val)
},
"formData.gridId": function (val) {
this.selGridId = val
this.$emit("changeGridId", val)
}
},
async mounted () {
@ -415,9 +405,7 @@ export default {
this.getCategoryList()
this.initMap()
// this.formData = {
// ...this.formDataTemp
// }
},
methods: {
@ -442,7 +430,6 @@ export default {
this.formData.mobile = selPerson.demandUserMobile
this.formData.reportUserId = selPerson.demandUserId
this.formData.idCard = selPerson.idCard
console.log(selPerson)
this.personTableShow = false;
@ -460,7 +447,7 @@ export default {
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/epidemicPrevention/page"
let params = {
agencyId: '',
gridId: this.formData.gridId,
gridId: this.selGridId,
name: "",
}

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

@ -70,18 +70,29 @@
<div class="line"
@click="handleToDemand">查看需求</div>
</div>
<div v-if="info.satisfactionName"
class="info-prop">
<span class="info-title-2">满意度</span>
<div @click="handleToDemand">{{info.satisfactionName}}</div>
</div>
</div>
</div>
<div v-if="info.operationId&&info.status!=='closed_case'"
<div v-if="info.operationId&&!(info.status==='closed_case'&&!info.satisfactionName && user.id===info.createdUserId)"
class="div-btn ">
<el-button size="small"
@click="handleCloseEvent">关闭</el-button>
</div>
<!-- <div class="div-btn ">
<el-button size="small"
@click="handleCloseEvent">关闭</el-button>
</div> -->
</el-card>
<el-card v-if=" info.status==='closed_case'">
<el-card v-if="info.status==='closed_case'&&!info.satisfactionName && user.id===info.createdUserId">
<h3>满意度评价</h3>
<div class="m-row">
<div class="m-info">
@ -106,13 +117,11 @@
</div>
</div>
<div v-if="info.operationId||info.status==='closed_case'"
class="div-btn ">
<div class="div-btn ">
<el-button size="small"
@click="handleCloseEvent">关闭</el-button>
<el-button v-if="info.status==='closed_case'&&!info.satisfactionName && user.id===info.createdUserId"
size="small"
<el-button size="small"
type="primary"
@click="handleComfirmSatisfy">确定</el-button>
@ -225,9 +234,9 @@ export default {
this.info = JSON.parse(JSON.stringify(this.eventDetailData));
//
if (this.info.status === 'closed_case' && this.info.satisfactionName) {
this.changeSatisfyType(this.info.satisfaction)
}
// if (this.info.status === 'closed_case' && this.info.satisfactionName) {
// this.changeSatisfyType(this.info.satisfaction)
// }
}
// this.getApiData();

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

@ -6,7 +6,8 @@
<event-add ref="ref_add"
@changeName="changeName"
@changeMobile="changeMobile"
@changeUserId="changeUserId"></event-add>
@changeUserId="changeUserId"
@changeGridId="changeGridId"></event-add>
</el-card>
<div class="process-form">
@ -15,7 +16,8 @@
<process-form ref="ref_processinfo_add"
:demandUserId="demandUserId"
:demandUserName="demandUserName"
:demandUserMobile="demandUserMobile"></process-form>
:demandUserMobile="demandUserMobile"
:gridId="gridId"></process-form>
<div class="div-btn ">
<el-button size="small"
@ -228,6 +230,7 @@ function iniData () {
demandUserId: '',
demandUserName: '',
demandUserMobile: '',
gridId: '',
eventDetailCopy: {},
@ -306,6 +309,10 @@ export default {
this.demandUserId = val
},
changeGridId (val) {
this.gridId = val
},
//
async getProjectProcess () {

31
src/views/modules/shequzhili/event/cpts/process-form-demand.vue

@ -207,22 +207,6 @@ export default {
customerId: localStorage.getItem("customerId"),
demandOptions: [],
serviceOptions: [
{
label: "志愿者",
value: "volunteer",
},
// {
// label: '',
// value: 'social_org'
// },
{
label: "社区自组织",
value: "community_org",
},
{
label: "区域党建单位",
value: "party_unit",
},
],
serviceOptiondList: [],
@ -331,6 +315,7 @@ export default {
this.agencyId = user.agencyId
this.getCategoryList();
this.getDemandOptions();
this.getServiceOption()
// this.formData = { ...this.formDataTemp }
this.initMap()
@ -428,6 +413,20 @@ export default {
},
async getServiceOption () {
const url = "/sys/dict/data/dictlist"
let params = { dictType: "user_demand_service_type", }
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.serviceOptions = data;
} else {
this.$message.error(msg)
}
},
getTreeData (data) {
if (!Array.isArray(data)) return [];
let arr = data.map((item) => {

20
src/views/modules/shequzhili/event/cpts/process-form-project.vue

@ -128,14 +128,15 @@
</div>
</fold-text>
<el-popover placement="bottom"
width="400"
height="400"
<el-popover placement="top"
width="450"
height="450"
v-model="visibleTagPanel">
<div class="f"
style="min-height: 120px">
<h2>选择标签</h2>
<el-select v-model="selectedTagData"
<el-select style="width: 350px"
v-model="selectedTagData"
multiple
allow-create
filterable
@ -298,6 +299,10 @@ export default {
},
props: {
gridId: {//id
type: String,
default: "",
},
eventId: {
type: String,
default: "",
@ -310,6 +315,11 @@ export default {
},
},
watch: {
gridId: function (val) {
this.formData.gridId = val
},
"formData.assistanceUnitIndex": function (val) {
if (val === "" || this.assistanceUnitList.length === 0) {
@ -365,6 +375,7 @@ export default {
// this.formData = { ...this.formDataTemp }
if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
this.formData.gridId = this.eventDetailCopy.gridId
if (this.eventDetailCopy.parentCategoryId && this.eventDetailCopy.categoryId) {
this.selCategoryArray = []
@ -380,6 +391,7 @@ export default {
this.formData.categoryList.push(this.selCateObj)
}
} else {
this.formData.gridId = this.gridId
}
},

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

@ -32,6 +32,7 @@
<div v-if="operationType==='1'">
<process-form-project ref="ref_process_form_project"
:eventDetailData="eventDetailData"
:gridId="gridId"
:eventId="eventId"></process-form-project>
</div>
@ -118,6 +119,10 @@ export default {
type: String,
default: "",
},
gridId: {
type: String,
default: "",
},
eventId: {
type: String,
default: "",

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

@ -254,11 +254,11 @@
size="small"
class="div-table-button--edit">处理</el-button>
<!-- <el-button v-else-if="scope.row.status==='closed_case' && !scope.row.satisfactionName && user.id===scope.row.createdUserId"
@click="handleSatisfy(scope.row)"
<el-button v-else-if="scope.row.status==='closed_case' && !scope.row.satisfactionName && user.id===scope.row.createdUserId"
@click="handleWatch(scope.row)"
type="text"
size="small"
class="div-table-button--edit">评价</el-button> -->
class="div-table-button--edit">评价</el-button>
<el-button v-else
@click="handleWatch(scope.row)"
type="text"

13
src/views/modules/shequzhili/xiangmu/cpts/project-info.vue

@ -113,7 +113,7 @@
<el-popover
v-if="projectInfo.projectStatus == 'pending'"
placement="bottom"
width="400"
width="450"
height="400"
v-model="visibleTagPanel"
>
@ -126,6 +126,8 @@
filterable
placeholder="请选择"
@change="handleTagChange"
size="medium"
style="width: 350px"
>
<el-option-group label="自定义标签">
<el-option
@ -222,7 +224,7 @@
<el-form-item
v-if="fmData.operateType == 'turn'"
label="处理部门:"
prop="publicReply"
prop="staffList"
>
<el-popover
placement="bottom"
@ -341,7 +343,7 @@
>
<el-upload
class="avatar-uploader"
:action="uploadUlr"
:action="uploadUrl"
:data="{ customerId: customerId }"
:show-file-list="true"
:on-success="handleImgSuccess"
@ -491,7 +493,7 @@ import dateFormat from "dai-js/tools/dateFormat";
function iniData() {
return {
pageType: "info",
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadqrcodeV2",
uploadUrl: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadqrcodeV2",
showedEvaluation: false,
@ -657,6 +659,9 @@ export default {
obj.staffList = [
{ required: true, message: "请选择处理部门", trigger: "blur" },
];
obj.internalRemark = [
{ required: true, message: "请填写内部备注", trigger: "blur" },
];
} else {
obj.internalRemark = [
{ required: true, message: "请填写内部备注", trigger: "blur" },

4
src/views/modules/visual/communityGovern/shijianchuli/event-info.vue

@ -18,8 +18,8 @@
<span>{{ eventInfo.gridName }}</span>
</div>
<div class="info-prop">
<span>上报时间</span>
<span>{{ eventInfo.createdTime }}</span>
<span>发生时间</span>
<span>{{ eventInfo.happenTime }}</span>
</div>
<div class="info-prop">

2
src/views/modules/visual/communityGovern/shijianchuli/pieOption.js

@ -81,7 +81,7 @@ const center= ['50%', '170px']
avoidLabelOverlap: false,
// top: top + '%',
// height: '80%',
// selectedMode: 'single',
selectedMode: 'single',
left: 'center',
width: 400,
label: {

5
src/views/modules/visual/communityGovern/shijianchuli/shijianchulifenxi.vue

@ -299,6 +299,7 @@ export default {
this.dataLoading = false
// this.assignData()
},
@ -423,11 +424,11 @@ export default {
{
name: "已完成",
value: data.closedRatio * 100
value: Math.floor(data.closedRatio * 10000) / 100
},
{
name: "处理中",
value: data.processingRatio * 100
value: Math.floor(data.processingRatio * 10000) / 100
},
]

9
src/views/modules/visual/communityGovern/shijianfenlei/shijianfenleifenxi.vue

@ -104,6 +104,8 @@
</div>
<event-info v-if="showProject"
:eventId="eventId"
:orgId="tableOrgId ? tableOrgId : orgId"
:orgType="tableOrgType ? tableOrgType : orgType"
@close="showProject = false" />
</cpt-card>
</template>
@ -239,6 +241,7 @@ export default {
queryEndTime: '',
categoryCode: '',
tableOrgId: '',
tableOrgType: '',
eventId: '',
processStatus: ''
}
@ -400,6 +403,7 @@ export default {
value: item.total,
name: item.orgName,
orgId: item.orgId,
orgType: item.orgType,
color: colorArray[colIndex],
selected: index == 0 ? true : false
}
@ -416,7 +420,7 @@ export default {
const url = '/gov/project/icEvent/processAnalysis/eventList'
let params = {
orgId: this.tableOrgId ? this.tableOrgId : this.orgId,
orgType: this.orgType,
orgType: this.tableOrgType ? this.tableOrgType : this.orgType,
queryStartTime: this.queryStartTime,
queryEndTime: this.queryEndTime,
processStatus: this.processStatus, // processing,closed_case
@ -538,6 +542,7 @@ export default {
// this.$refs.pieChart.hideLoading()
this.$refs.pieChart.setOption(this.pieOption)
this.tableOrgId = ''
this.tableOrgType = ''
this.demand.pageNo = 1
this.getGridPieData()
},
@ -603,6 +608,8 @@ export default {
}
}
this.tableOrgId = element.orgId
this.tableOrgType = element.orgType
console.log(element)
} else {
element.label = {
show: false,

10
src/views/modules/visual/communityParty/community.vue

@ -109,7 +109,7 @@
</div>
</div>
<div class="card-title mt20">
<div class="card-title mt40">
<div class="second-title mt0">
<div class="second-title-label">联建活动分类统计</div>
@ -1187,6 +1187,7 @@ export default {
.box-right {
flex: 1;
height: 100%;
margin-left: 10px;
overflow: hidden;
.pagination {
margin-top: 0;
@ -1255,10 +1256,11 @@ export default {
}
}
.table-h {
height: 320px;
height: calc(100vh - 630px);
}
.calc-h {
height: calc(100vh - 240px);
padding-bottom: 20px;
}
.wd50 {
width: 50%;
@ -1297,7 +1299,7 @@ export default {
.mt0 {
margin: 0;
}
.mt20 {
margin-top: 20px;
.mt40 {
margin-top: 40px;
}
</style>

4
src/views/modules/visual/communityParty/dialogInfo.vue

@ -46,11 +46,11 @@
<span class="item-field">活动时间</span>
<span>{{ info.activityTime }}</span>
</div>
<div class="item">
<!-- <div class="item">
<span class="item-field">活动坐标</span>
<span>经度{{ info.latitude }} <br />
纬度{{ info.longitude }}</span>
</div>
</div> -->
<div class="item">
<span class="item-field">活动地址</span>
<span>{{ info.address }}</span>

49
src/views/modules/visual/communityParty/gridParty.vue

@ -365,6 +365,8 @@ export default {
const _arr = this.selectAgency[this.selectAgency.length - 1].split('-')
const orgType = _arr[1] !== 'grid' ? 'agency': 'grid'
this.pageNo = 1
this.pageSize = 10;
this.eduList = []
this.getEduList(isClick && _code || '')
this.getMapData(isClick && _code || '')
}
@ -496,25 +498,25 @@ export default {
},
//
getMapData () {
const url = '/epmetuser/icVolunteerPoly/mapData'
async getMapData () {
const url = "/epmetuser/icVolunteerPoly/mapData"
let params = {
agencyId: this.agencyId,
code: this.eduCode
}
window.app.ajax.post(
url,
params,
(data, rspMsg) => {
const { data, code, internalMsg } = await requestPost(url, params)
if (code === 0) {
this.unitMapList = data
this.loadMap()
this.isfirstInit = false
this.$refs.map.handleClosePopup()
},
(rspMsg, data) => {
this.$message.error(rspMsg)
}
)
} else {
this.$message.error(internalMsg)
this.unitMapList = []
this.loadMap()
this.isfirstInit = false
this.$refs.map.handleClosePopup()
}
},
//
async clickProject (feature) {
@ -522,31 +524,40 @@ export default {
const featureInfo = feature.values_.properties.info
this.userId = feature.values_.properties.info.id
let coordinate = [featureInfo.longitude, featureInfo.latitude]
let {name, gridName, houseName, mobile, idCard, gzdw, rhzk, icResiUser} = feature.values_.properties.info
name = name ? name : '--'
gridName = gridName ? gridName : '--'
houseName = houseName ? houseName : '--'
mobile = mobile ? mobile : '--'
idCard = idCard ? idCard : '--'
gzdw = gzdw ? gzdw : '--'
rhzk = rhzk ? rhzk : '--'
let showData = `
<div style='font-size:16px; color:#FFFFFF;'>个人信息</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:10px'>姓名
<span>`+ feature.values_.properties.info.name + `</span>
<span>`+ name + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:10px'>所属网格
<span>`+ feature.values_.properties.info.gridName + `</span>
<span>`+ gridName + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:5px'>所属房屋
<span>`+ feature.values_.properties.info.houseName + `</span>
<span>`+ houseName + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:5px'>手机号
<span>`+ feature.values_.properties.info.mobile + `</span>
<span>`+ mobile + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:5px'>身份证号
<span>`+ feature.values_.properties.info.idCard + `</span>
<span>`+ idCard + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:5px'>工作单位
<span>`+ feature.values_.properties.info.gzdw + `</span>
<span>`+ gzdw + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:5px'>人户状况
<span>`+ feature.values_.properties.info.rhzk + `</span>
<span>`+ rhzk + `</span>
</div>
`
this.$refs.map.handleShowPopup(showData, coordinate, true)
const isShowMore = icResiUser ? true : false
this.$refs.map.handleShowPopup(showData, coordinate, isShowMore)
},
lookMore(e) {
this.userId = this.userId

Loading…
Cancel
Save