dai 3 years ago
parent
commit
5ef823bfba
  1. 3
      src/assets/scss/modules/shequzhili/event-info.scss
  2. 23
      src/mixins/view-module.js
  3. 167
      src/mixins/view-post.js
  4. 17
      src/views/components/resiForm.vue
  5. 13
      src/views/main-shuju/main-navbar.vue
  6. 2
      src/views/modules/communityParty/members/index.vue
  7. 4
      src/views/modules/partymember/icpartymemberpoint.vue
  8. 231
      src/views/modules/plugins/stats/factagencyuserhousedaily.vue
  9. 31
      src/views/modules/shequzhili/event/cpts/add.vue
  10. 27
      src/views/modules/shequzhili/event/cpts/event-detail.vue
  11. 11
      src/views/modules/shequzhili/event/cpts/event-info.vue
  12. 31
      src/views/modules/shequzhili/event/cpts/process-form-demand.vue
  13. 20
      src/views/modules/shequzhili/event/cpts/process-form-project.vue
  14. 5
      src/views/modules/shequzhili/event/cpts/process-form.vue
  15. 6
      src/views/modules/shequzhili/event/eventList.vue
  16. 4
      src/views/modules/visual/communityGovern/shijianchuli/event-info.vue
  17. 5
      src/views/modules/visual/communityGovern/shijianchuli/shijianchulifenxi.vue
  18. 2
      src/views/modules/visual/communityGovern/shijianfenlei/shijianfenleifenxi.vue
  19. 7
      src/views/modules/visual/communityParty/community.vue
  20. 4
      src/views/modules/visual/communityParty/dialogInfo.vue

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

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

17
src/views/components/resiForm.vue

@ -509,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 () {
@ -670,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: {

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

@ -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 = ''

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: {

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

@ -1,10 +1,11 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-__factAgencyUserHouseDaily}">
<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
<!-- <el-select
v-model.trim="dataForm.agencyId"
placeholder="请选择"
clearable
@ -16,7 +17,16 @@
:value="item.agencyId"
>
</el-option>
</el-select>
</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">
@ -31,24 +41,34 @@
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
<el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%">
</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 prop="agencyName" label="组织结构" header-align="center" align="center"></el-table-column>
<el-table-column prop="neighbourhoodsCount" label="小区数" header-align="center" align="center"></el-table-column>
<el-table-column prop="houseCount" label="房屋数" header-align="center" align="center"></el-table-column>
<el-table-column prop="houseSelfCount" label="自住房屋总" header-align="center" align="center"></el-table-column>
<el-table-column prop="houseLeaseCount" label="出租房屋数" header-align="center" align="center"></el-table-column>
<el-table-column prop="houseIdleCount" label="闲置房屋数" header-align="center" align="center"></el-table-column>
<el-table-column prop="userCount" label="居民总数" header-align="center" align="center"></el-table-column>
<el-table-column prop="userResiCount" label="常住人口数" header-align="center" align="center"></el-table-column>
<el-table-column prop="userFloatCount" label="流动人口数" header-align="center" align="center"></el-table-column>
<el-table-column prop="houseIncr" label="新增房屋数" header-align="center" align="center"></el-table-column>
<el-table-column prop="userIncr" label="新增人口数" header-align="center" align="center"></el-table-column>
<el-table-column prop="houseModify" label="修改房屋数" header-align="center" align="center"></el-table-column>
<el-table-column prop="userModify" label="修改人口数" header-align="center" align="center"></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"
@ -59,8 +79,33 @@
@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>
@ -76,13 +121,16 @@ export default {
getDataListURL: '/data/stats/factAgencyUserHouseDaily/page',
getDataListIsPage: true,
deleteURL: '/data/stats/factAgencyUserHouseDaily',
deleteIsBatch: true
deleteIsBatch: true,
exportURL: '/data/stats/factAgencyUserHouseDaily/export'
},
optionsA: [],
totalVisible: false,
timeRange: '',
dataForm: {
id: ''
}
},
tableData: []
}
},
components: {
@ -90,7 +138,7 @@ export default {
},
created () {
this.getGridList()
this.getValiheList()
// this.getValiheList()
},
watch: {
timeRange (val) {
@ -104,6 +152,59 @@ export default {
}
},
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
@ -115,6 +216,8 @@ export default {
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(() => {
@ -124,3 +227,89 @@ export default {
}
}
</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"

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">

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
},
]

2
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>

7
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>
@ -1260,6 +1260,7 @@ export default {
}
.calc-h {
height: calc(100vh - 240px);
padding-bottom: 20px;
}
.wd50 {
width: 50%;
@ -1298,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>

Loading…
Cancel
Save