Browse Source

Merge remote-tracking branch 'origin/master' into shibei_master

shibei_master
jianjun 3 years ago
parent
commit
e43e04dc9b
  1. 17
      src/views/modules/base/community/roomTable.vue
  2. 63
      src/views/modules/communityService/fuwujilu/addForm.vue
  3. 209
      src/views/modules/communityService/fuwujilu/detailForm.vue
  4. 6
      src/views/modules/communityService/fuwujilu/fuwuList.vue
  5. 40
      src/views/modules/communityService/fuwuxiangmu/cpts/edit.vue
  6. 4
      src/views/modules/communityService/fuwuxiangmu/index.vue
  7. 29
      src/views/modules/communityService/fuwuzuzhi/cpts/edit.vue
  8. 48
      src/views/modules/plugins/stats/factagencyuserhousedaily.vue
  9. 11
      src/views/modules/shequzhili/event/cpts/process-form-demand.vue
  10. 335
      src/views/modules/visual/communityGovern/duoyuanDialog.vue
  11. 5
      src/views/modules/visual/communityGovern/duoyuanfuwu/duoyuanfuwufenxi.vue

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

@ -213,6 +213,7 @@ export default {
// showImportBtn: false,//
agencyObj: {},//
agencyLevel: '',//level grid neighborHood building agency
validTableDataNum: 0,//
@ -339,6 +340,20 @@ export default {
}
if (this.agencyObj.level === 'grid') {
this.agencyLevel = 'grid'
} else if (this.agencyObj.level === 'neighborHood') {
this.agencyLevel = 'neighborHood'
} else if (this.agencyObj.level === 'building') {
this.agencyLevel = 'building'
} else {
this.agencyLevel = 'agency'
}
// if (fromTree) {
// this.agencyObj = treeObj
@ -346,7 +361,7 @@ export default {
let params = {
pageSize: this.pageSize,
pageNo: this.pageNo,
level: this.agencyObj.level,
level: this.agencyLevel,
id: this.agencyObj.id,
ownerName: this.ownerName,
ownerPhone: this.ownerPhone,

63
src/views/modules/communityService/fuwujilu/addForm.vue

@ -122,10 +122,10 @@
style="display: block">
<el-input class="item_width_1"
type="textarea"
maxlength="500"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入备注,不超过500字"
placeholder="请输入备注,不超过1000字"
v-model="formData.remark"></el-input>
</el-form-item>
<el-form-item label="直接反馈"
@ -162,10 +162,10 @@
style="display: block">
<el-input class="item_width_1"
type="textarea"
maxlength="500"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入服务目标,不超过500字"
placeholder="请输入服务目标,不超过1000字"
v-model="feedbackFormData.serviceGoal"></el-input>
</el-form-item>
@ -175,10 +175,10 @@
style="display: block">
<el-input class="item_width_1"
type="textarea"
maxlength="500"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入服务效果,不超过500字"
placeholder="请输入服务效果,不超过1000字"
v-model="feedbackFormData.serviceEffect"></el-input>
</el-form-item>
@ -362,41 +362,6 @@ export default {
address: '',
attachmentList: [],//
},
formDataTemp: {
principalContact: "15111111111",
principalName: "31231",
remark: "4234234",
serviceCategoryKey: "01",
serviceOrgId: "1531105677127692289",
serviceProjectId: "1531514265581076482",
serviceScope: [
{
objectId: "1479033225060757506",
objectName: "合肥路街道",
objectType: "street",
},
{
objectId: "1514064686570147842",
objectName: "ss",
objectType: "street",
}
],
serviceTimeEnd: "",
serviceTimeStart: "",
feedback: {
address: "山东省青岛市市南区南京路73号",
latitude: 36.0722275,
longitude: 120.38945519,
satisfaction: "bad",
serviceEffect: "234234234",
serviceGoal: "234234",
servicePeopleNumber: 1,
serviceProjectId: "1531514265581076482",
serviceProjectName: "223",
serviceStatus: "completed",
}
},
projectList: [],//list
orgList: [],//list
@ -430,18 +395,17 @@ export default {
async mounted () {
this.startLoading()
this.initMap()
this.$refs.ref_form_feedback.resetFields();
if (this.formType === 'add') {
this.$refs.ref_form.resetFields();
await this.loadScopeTree()
}
this.$refs.ref_form_feedback.resetFields();
} else {
this.$set(this.feedbackFormData, 'serviceProjectName', this.serviceProjectName)
}
this.endLoading()
this.formData = JSON.parse(JSON.stringify(this.formDataTemp));
this.feedbackFormData = { ...this.formData.feedback }
},
@ -598,7 +562,7 @@ export default {
console.log(this.formData)
// return false
const regPhone = /^1(3|4|5|6|7|8|9)\d{9}$/; //
if (regPhone.test(this.formData.principalContact) === false) {
if (this.formData.principalContact && regPhone.test(this.formData.principalContact) === false) {
this.btnDisable = false
this.$message({
type: 'warning',
@ -959,6 +923,11 @@ export default {
type: String,
required: ''
},
serviceProjectName: {//
type: String,
required: false,
default: ''
},
formType: { // addeditdetail,feedback
type: String,
required: ''

209
src/views/modules/communityService/fuwujilu/detailForm.vue

@ -139,6 +139,142 @@
</el-form>
<div v-show="formData.serviceStatus==='completed'">
<h3 class="d-h3">反馈内容</h3>
<el-form ref="ref_form_feedback"
:inline="true"
:disabled="true"
:model="feedbackFormData"
class="div_form">
<el-form-item label="服务目标"
prop="serviceGoal"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入服务目标,不超过1000字"
v-model="feedbackFormData.serviceGoal"></el-input>
</el-form-item>
<el-form-item label="服务效果"
prop="serviceEffect"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入服务效果,不超过1000字"
v-model="feedbackFormData.serviceEffect"></el-input>
</el-form-item>
<el-form-item label="服务人数"
style="display: block"
prop="servicePeopleNumber"
label-width="150px">
<el-input-number class="item_width_1"
v-model="feedbackFormData.servicePeopleNumber"
:min="0"
:max="9999"
label="服务人数"></el-input-number>
</el-form-item>
<el-form-item label="服务状态"
label-width="150px"
prop="serviceStatus">
<span>已完成</span>
<!-- <el-select class="item_width_1"
v-model="feedbackFormData.serviceStatus"
placeholder="全部"
clearable>
<el-option v-for="item in statusArray"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select> -->
</el-form-item>
<el-form-item label="满意度"
label-width="150px"
prop="satisfaction">
<el-select class="item_width_1"
v-model="feedbackFormData.satisfaction"
placeholder="全部"
clearable>
<el-option v-for="item in satisfyArray"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="地址"
prop="address"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
v-model="feedbackFormData.address"></el-input>
</el-form-item>
<!-- <el-form-item label="地图位置"
label-width="150px"
style="display: block">
<div style="width:500px">
<div class="div_map">
<div id="map_app">
</div>
<div class="div_searchmap">
<el-input maxlength="50"
size="mini"
placeholder="请输入关键字"
v-model="keyWords">
</el-input>
<el-button style="margin-left: 10px"
type="primary"
size="mini"
@click="handleSearchMap">查询</el-button>
</div>
</div>
</div>
</el-form-item> -->
<el-form-item class="block"
label="附件"
label-width="150px"
prop="attach">
<!-- <el-upload v-if="feedbackFormData.attachmentList&&feedbackFormData.attachmentList.length>0"
class="upload-demo"
:on-preview="handleFileDownload"
accept=".doc,.pdf,.xls,.docx,.xlsx,.jpg,.png,.jpeg,.bmp,.mp4,.wma,.m4a,.mp3"
:limit="3"
:file-list="fileList">
</el-upload> -->
<div v-if="feedbackFormData.attachmentList&&feedbackFormData.attachmentList.length>0"
class="attachement-list">
<a :href="att.attachmentUrl"
target="_blank"
:key="att.attachmentUrl"
v-for="att in feedbackFormData.attachmentList">
<i class="el-icon-folder-opened"></i>
{{ att.attachmentName }}
</a>
</div>
<span v-else>无附件</span>
</el-form-item>
</el-form>
</div>
</div>
<div class="div_btn">
@ -202,6 +338,20 @@ export default {
longitude: 36.0722275, //
latitude: 120.38945519 //
},
feedbackFormData: {
serviceProjectId: '',// id
serviceProjectName: '',
serviceGoal: '',//
serviceEffect: '',//
servicePeopleNumber: null,//
serviceStatus: 'completed',// in_servicecompleted:
satisfaction: '',//:bad:good:perfect
longitude: '',//
latitude: '',//
address: '',
attachmentList: [],//
},
serviceList: [],//list
endPickerOptions: {
@ -211,18 +361,19 @@ export default {
disabledDate: startDisabledDate
},
projectList: [],
fileList: [],
uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadvariedfile',
}
},
components: {},
mounted () {
if (this.serviceRecordId) {//
this.loadInfo()
}
// this.initMap()
console.log('mounted')
},
@ -240,13 +391,26 @@ export default {
if (code === 0) {
this.formData = { ...data }
this.formData.serviceRecordId = this.serviceRecordId
this.feedbackFormData = { ...data.feedBack }
this.feedbackFormData.servicePeopleNumber = this.formData.servicePeopleNumber
this.fileList = []
if (data.feedBack.attachmentList && data.feedBack.attachmentList.length > 0) {
data.feedBack.attachmentList.forEach(element => {
let obj = {
name: element.attachmentName,
format: element.attachmentFormat,
url: element.attachmentUrl,
}
this.fileList.push(obj)
});
}
} else {
this.$message.error(msg)
}
},
async handleComfirm () {
this.btnDisable = true
@ -303,6 +467,19 @@ export default {
},
//
handleFileDownload (file) {
var a = document.createElement('a');
var event = new MouseEvent('click');
a.download = file.name;
console.log(a)
a.href = file.url;
a.dispatchEvent(event);
},
// init
initMap () {
//
@ -485,7 +662,13 @@ export default {
default () {
return []
}
}
},
satisfyArray: {
type: Array,
default () {
return []
}
},
}
}
</script>
@ -493,4 +676,18 @@ export default {
<style lang="scss" scoped >
@import "@/assets/scss/modules/management/form-main.scss";
.attachement-list {
// padding-left: 20px;
a {
display: block;
cursor: pointer;
// color: #4df0ff;
font-size: 14px;
i {
color: #333;
}
}
}
</style>

6
src/views/modules/communityService/fuwujilu/fuwuList.vue

@ -238,6 +238,7 @@
:statusArray="statusArray"
:satisfyArray="satisfyArray"
:serviceRecordId="serviceRecordId"
:serviceProjectName="serviceProjectName"
@handleOk="handleOk"
@handleClose="handleClose"></add-form>
</el-dialog>
@ -252,6 +253,7 @@
@closed="showDetail = false">
<detail-form ref="ref_detail_form"
:serviceRecordId="serviceRecordId"
:satisfyArray="satisfyArray"
:categrayArray="categrayArray"
@handleOk="handleOk"
@handleClose="handleClose"
@ -344,6 +346,7 @@ export default {
disabledDate: startDisabledDate
},
serviceRecordId: '',
serviceProjectName: '',
showAdd: false,
showDetail: false,
@ -411,6 +414,7 @@ export default {
async handleDetail (row) {
this.serviceRecordId = row.serviceRecordId
this.formType = 'detail'
this.showDetail = true
@ -424,7 +428,9 @@ export default {
//
async handleFeedback (row) {
this.serviceRecordId = row.serviceRecordId
this.serviceProjectName = row.serviceProjectName
this.addDiaTitle = '服务反馈'
this.formType = 'feedback'
this.showAdd = true;

40
src/views/modules/communityService/fuwuxiangmu/cpts/edit.vue

@ -29,7 +29,7 @@
>
</el-option>
</el-select>
<div v-else>{{ fmData.serviceCategory || "--" }}</div>
<div style="width:610px" v-else>{{ fmData.serviceCategory || "--" }}</div>
</el-form-item>
<el-form-item
@ -47,7 +47,7 @@
v-model="fmData.serviceName"
>
</el-input>
<div v-else>{{ fmData.serviceName || "--" }}</div>
<div style="width:610px" v-else>{{ fmData.serviceName || "--" }}</div>
</el-form-item>
<el-form-item
@ -66,7 +66,7 @@
placeholder="请输入服务内容,不超过1000字"
v-model="fmData.serviceContent"
></el-input>
<div v-else>{{ fmData.serviceContent || "--" }}</div>
<div style="width:610px" v-else>{{ fmData.serviceContent || "--" }}</div>
</el-form-item>
<el-form-item
@ -89,7 +89,7 @@
>
</el-option>
</el-select>
<div v-else>{{ fmData.policyLevelName || "--" }}</div>
<div style="width:610px" v-else>{{ fmData.policyLevelName || "--" }}</div>
</el-form-item>
<el-form-item
@ -108,7 +108,7 @@
placeholder="请输入政策依据,不超过1000字"
v-model="fmData.policyGround"
></el-input>
<div v-else>{{ fmData.policyGround || "--" }}</div>
<div style="width:610px" v-else>{{ fmData.policyGround || "--" }}</div>
</el-form-item>
<el-form-item
@ -123,11 +123,15 @@
:data="{ customerId: customerId }"
:show-file-list="true"
:file-list="fmData.attachmentList"
:on-preview="handleImgPreview"
:on-success="handleImgSuccess"
:on-remove="handleImgRemove"
:on-exceed="handleImgExceed"
:before-upload="beforeImgUpload"
:limit="3"
>
<i class="el-icon-plus avatar-uploader-icon"></i>
<span style="color: #999"> 点击上传支持图片wordpdf格式</span>
</el-upload>
</el-form-item>
</el-form>
@ -210,12 +214,12 @@ export default {
serviceContent: [
{ required: true, message: "服务内容不能为空", trigger: "blur" },
],
policyGround: [
{ required: true, message: "政策依据不能为空", trigger: "blur" },
],
policyLevel: [
{ required: true, message: "政策级别不能为空", trigger: "blur" },
],
// policyGround: [
// { required: true, message: "", trigger: "blur" },
// ],
// policyLevel: [
// { required: true, message: "", trigger: "blur" },
// ],
};
},
},
@ -277,7 +281,7 @@ export default {
["doc", "docx", "xls", "xlsx", "ppt", "pptx", "pdf"].indexOf(format) ==
-1
) {
this.$message.error("文档仅限pdf和office文件!");
this.$message.error("仅限图片、word和pdf文件!");
return false;
}
return true;
@ -308,6 +312,11 @@ export default {
}
},
handleImgPreview(file) {
console.log(file);
window.open(file.url || file.response.data.url);
},
handleImgRemove(file) {
console.log("handleImgRemove", file);
if (file.response) {
@ -323,6 +332,13 @@ export default {
}
},
handleImgExceed() {
this.$message({
type: "warning",
message: "文件数量最多不超过三个",
});
},
watchImg(src) {
window.open(src);
},

4
src/views/modules/communityService/fuwuxiangmu/index.vue

@ -140,7 +140,7 @@
</el-table-column>
<el-table-column
prop="policyLevel"
prop="policyLevelName"
align="center"
label="政策级别"
:show-overflow-tooltip="true"
@ -233,7 +233,7 @@ import axios from "axios";
import editForm from "./cpts/edit";
function iniSearchData() {
return {
return {
serviceCategoryKey: "",
serviceName: "",
serviceContent: "",

29
src/views/modules/communityService/fuwuzuzhi/cpts/edit.vue

@ -30,7 +30,7 @@
>
</el-option>
</el-select>
<div v-else>{{ fmData.serviceTypeName }}</div>
<div style="width:610px" v-else>{{ fmData.serviceTypeName }}</div>
</el-form-item>
<el-form-item
@ -48,7 +48,7 @@
v-model="fmData.orgName"
>
</el-input>
<div v-else>{{ fmData.orgName || '--' }}</div>
<div style="width:610px" v-else>{{ fmData.orgName || "--" }}</div>
</el-form-item>
<el-form-item
@ -67,7 +67,7 @@
placeholder="请输入服务内容,不超过1000字"
v-model="fmData.orgDescribe"
></el-input>
<div v-else>{{ fmData.orgDescribe || '--' }}</div>
<div style="width:610px" v-else>{{ fmData.orgDescribe || "--" }}</div>
</el-form-item>
<el-form-item
@ -84,7 +84,7 @@
placeholder="请输入负责人姓名"
v-model="fmData.principalName"
></el-input>
<div v-else>{{ fmData.principalName || '--' }}</div>
<div style="width:610px" v-else>{{ fmData.principalName || "--" }}</div>
</el-form-item>
<el-form-item
@ -101,7 +101,7 @@
placeholder="请输入联系方式"
v-model="fmData.principalMobile"
></el-input>
<div v-else>{{ fmData.principalMobile || '--' }}</div>
<div style="width:610px" v-else>{{ fmData.principalMobile || "--" }}</div>
</el-form-item>
<el-form-item
@ -113,14 +113,16 @@
<div style="width: 500px">
<el-input
class="item_width_4"
maxlength="50"
placeholder="请输入关键字"
maxlength="100"
style="width: 430px"
show-word-limit
placeholder="请输入所在地址"
v-model="fmData.address"
>
</el-input>
<el-button
style="margin-left: 10px"
type="primary"
type="default"
size="small"
@click="handleSearchMap"
>查询</el-button
@ -163,7 +165,7 @@
placeholder="请输入备注,不超过500字"
v-model="fmData.remark"
></el-input>
<div v-else>{{ fmData.remark || '--' }}</div>
<div style="width:610px" v-else>{{ fmData.remark || "--" }}</div>
</el-form-item>
</el-form>
</div>
@ -191,6 +193,7 @@ var map;
var search;
var markers;
var infoWindowList;
var geocoder; //
export default {
props: {
@ -282,6 +285,8 @@ export default {
});
infoWindowList = Array(10);
geocoder = new TMap.service.Geocoder(); //
//
map.on("panend", () => {
this.handleMoveCenter();
@ -339,6 +344,12 @@ export default {
this.fmData.latitude = lat;
this.fmData.longitude = lng;
this.setMarker(lat, lng);
geocoder
.getAddress({ location: new TMap.LatLng(lat, lng) }) //
.then((result) => {
this.fmData.address = result.result.address;
});
},
async getInfo() {

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

@ -3,7 +3,7 @@
<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"
<el-form-item label="所属组织" label-width="100px"
prop="agencyId">
<!-- <el-select
v-model.trim="dataForm.agencyId"
@ -18,12 +18,12 @@
>
</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">
<el-cascader ref="cascaderUnit" v-model.trim="dataForm.agencyId" :options="optionsA" :props="{ checkStrictly: true, expandTrigger: 'hover', emitPath: false,children:'children',label:'objectName',value:'objectId'}" 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>
<span>{{ data.objectName }}</span>
<span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
</div>
</template>
</el-cascader>
@ -56,19 +56,19 @@
</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-column fixed prop="agencyName" label="组织结构" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="neighbourhoodsCount" label="小区数" header-align="center" align="center"></el-table-column>
<el-table-column width="100" prop="houseCount" label="房屋数" header-align="center" align="center"></el-table-column>
<el-table-column width="110" prop="houseSelfCount" label="自住房屋数" header-align="center" align="center"></el-table-column>
<el-table-column width="110" prop="houseLeaseCount" label="出租房屋数" header-align="center" align="center"></el-table-column>
<el-table-column width="110" prop="houseIdleCount" label="闲置房屋数" header-align="center" align="center"></el-table-column>
<el-table-column width="110" prop="userCount" label="居民总数" header-align="center" align="center"></el-table-column>
<el-table-column width="110" prop="userResiCount" label="常住人口数" header-align="center" align="center"></el-table-column>
<el-table-column width="110" prop="userFloatCount" label="流动人口数" header-align="center" align="center"></el-table-column>
<el-table-column width="110" prop="houseIncr" label="新增房屋数" header-align="center" align="center"></el-table-column>
<el-table-column width="110" prop="userIncr" label="新增人口数" header-align="center" align="center"></el-table-column>
<el-table-column width="110" prop="houseModify" label="修改房屋数" header-align="center" align="center"></el-table-column>
<el-table-column width="110" prop="userModify" label="修改人口数" header-align="center" align="center"></el-table-column>
</el-table>
<el-pagination
:current-page="page"
@ -198,9 +198,9 @@ export default {
})
},
cascaderClick (nodeData) {
this.dataForm.agencyId = nodeData.agencyId;
this.dataForm.level = nodeData.level
this.$refs.cascaderUnit.checkedValue = nodeData.agencyId;
this.dataForm.agencyId = nodeData.objectId;
this.dataForm.level = nodeData.objectType
this.$refs.cascaderUnit.checkedValue = nodeData.objectId;
this.$refs.cascaderUnit.computePresentText();
this.$refs.cascaderUnit.toggleDropDownVisible(false);
@ -208,17 +208,17 @@ export default {
getGridList() {
const { user } = this.$store.state
this.$http
.post('/gov/org/customeragency/agencygridtree')
.post('/gov/org/userhouse/service/serviceScopeTree')
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
console.log('获取查询详情成功', res.data)
// this.optionsA = res.data
// console.log(this.optionsA);
this.optionsA.push(res.data)
this.dataForm.agencyId = res.data.agencyId
this.dataForm.level = res.data.level
this.getDataList()
this.dataForm.agencyId = res.data.objectId
this.dataForm.level = res.data.objectType
}
})
.catch(() => {

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

@ -469,9 +469,14 @@ export default {
handleServiceChange (type, val) {
if (val === "social_org") {
if (type === "add") this.getServiceuserList(val, "add_demand");
else this.getServiceuserList(val, "query_demand");
} else this.getServiceuserList(val, "");
if (type === "add") {
this.getServiceuserList(val, "add_demand");
} else {
this.getServiceuserList(val, "query_demand");
}
} else {
this.getServiceuserList(val, "");
}
},
async getServiceuserList (serviceType, query) {

335
src/views/modules/visual/communityGovern/duoyuanDialog.vue

@ -1,335 +0,0 @@
<template>
<div class="m-pop">
<div class="wrap">
<cpt-card>
<div class="title">
<img src="@/assets/img/shuju/title-tip.png" />
<span>详情</span>
</div>
<div class="btn-close" @click="handleClose">
<img src="@/assets/img/shuju/people/close.png" />
</div>
<!-- <div class="list-title">需求内容</div> -->
<div class="list-wr">
<div class="list left-list" v-infinite-scroll="getServicelist" style="overflow:auto">
<template v-if="servicelist.length > 0">
<div class="left-item" :class="activeIndex == index ? 'active-item' : ''" v-for="(item, index) in servicelist" :key="index" @click="toDetail(index)">
<div class="item-time">{{item.reportTime || '2022-05-18'}}</div>
<div class="item-content">{{item.content || '本周加班本周加班本周加班本周加班本周加班本周加班'}}</div>
</div>
</template>
<screen-nodata class="nodata" v-else></screen-nodata>
</div>
<div class="dashed-line"></div>
<div class="list right-list">
<template v-if="info.content">
<!-- <div class="item-title">需求内容</div> -->
<div class="item">
<span class="item-field">所属网格</span>
<span>{{ info.gridName }}</span>
</div>
<div class="item">
<span class="item-field">需求类型</span>
<span>{{ info.categoryName }}</span>
</div>
<!-- <div class="item">
<span class="item-field">需求状态</span>
<span>{{ info.statusName }}</span>
</div> -->
<div class="item">
<span class="item-field">上报类型</span>
<span>{{ info.reportTypeName }}</span>
</div>
<div class="item">
<span class="item-field">上报人</span>
<span>{{ info.reportUserName }}</span>
</div>
<div class="item">
<span class="item-field">上报人联系方式 </span>
<span>{{ info.reportUserMobile }}</span>
</div>
<div class="item">
<span class="item-field">上报时间 </span>
<span>{{ info.reportTime }}</span>
</div>
<div class="item">
<span class="item-field">需求人 </span>
<span>{{ info.demandUserName }}</span>
</div>
<div class="item">
<span class="item-field">服务时间 </span>
<span>{{ info.wantServiceTime }}</span>
</div>
<div class="item">
<span class="item-field">需求内容</span>
<div>{{ info.content }}</div>
</div>
<div class="item">
<span class="item-field">服务方 </span>
<span>{{ info.serviceShowName }}</span>
</div>
<div class="item">
<span class="item-field">实际服务时间 </span>
<span>{{ info.serviceStartTime }} {{ info.serviceEndTime }}</span>
</div>
<!-- <div class="item">
<span class="item-field">完成情况 </span>
<span>{{ info.finishDesc }}</span>
</div> -->
<div class="item">
<span class="item-field">评价 </span>
<span>
<el-rate :value="info.score" disabled></el-rate>
</span>
</div>
</template>
<screen-nodata class="nodata" v-else></screen-nodata>
</div>
</div>
</cpt-card>
</div>
</div>
</template>
<script>
import ScreenNodata from "@/views/modules/visual/components/screen-nodata"
import cptCard from '@/views/modules/visual/cpts/card'
import { requestPost } from '@/js/dai/request'
export default {
name: 'dialogInfo',
props: {
userId: {
type: String,
default: '',
},
gridName: {
type: String,
default: '',
},
orgId: {
type: String,
default: ''
}
},
components: {
cptCard,
ScreenNodata
},
data() {
return {
pageNo: 1,
pageSize: 10,
servicelist: [],
info: {
// content: '56',
// gridName: '',
// categoryName: '便',
// statusName: '',
// reportTypeName: '',
// reportUserName: '',
// reportUserMobile: '13794049999',
// reportTime: '2022-05-18 14:47:00',
// wantServiceTime: '2022-05-18 14:47:00',
// serviceShowName: '',
// serviceStartTime: '2022-05-18 14:47:00',
// serviceEndTime: '2022-05-18 14:47:00',
// finishDesc: '',
// score: '3.5'
},
loadType: 'loading',
activeIndex: 0
}
},
created () {
this.servicelist = []
},
methods: {
//
async getServicelist () {
if (this.loadType == 'none') {
return
}
const url = '/heart/residemand/service-list'
const params = {
serverId: this.orgId,
pageNo: this.pageNo,
pageSize: this.pageSize,
type: 'community_org', // volunteercommunity_org
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
if (this.pageNo == 1) {
this.getDemandDetail(data.list[0].demandRecId)
}
this.pageNo++
this.servicelist = this.servicelist.concat(data.list)
this.loadType = this.servicelist.length < data.total ? 'loading' : 'none'
} else {
this.$message.error(msg)
}
},
//
async getDemandDetail (id) {
this.info = {}
const url = '/heart/userdemand/demandDetail'
const params = {
demandRecId: id, // id
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.info = data
} else {
this.$message.error(msg)
}
},
toDetail (index) {
this.activeIndex = index
this.getDemandDetail(this.servicelist[index].demandRecId)
},
handleClose() {
this.$emit("close")
},
}
}
</script>
<style lang="scss" src="@/assets/scss/modules/visual/people.scss" scoped></style>
<style lang="scss" scoped>
@mixin scrollBar {
&::-webkit-scrollbar {
/*滚动条整体样式*/
width: 8px; /*高宽分别对应横竖滚动条的尺寸*/
height: 1px;
}
&::-webkit-scrollbar-thumb {
/*滚动条里面小方块*/
border-radius: 8px;
box-shadow: inset 0 0 5px rgba(#00023f, 0.2);
background: linear-gradient(270deg, #0063fe, #0095ff);
}
&::-webkit-scrollbar-track {
/*滚动条里面轨道*/
box-shadow: inset 0 0 5px rgba(#00023f, 0.2);
border-radius: 8px;
background: darken(#0c81fe, 20);
}
}
.m-pop {
.wrap {
.list {
display: block;
width: calc(100% - 280px);
max-height: 600px;
overflow: auto;
@include scrollBar;
.item-title {
padding: 0;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
color: #ffffff;
margin-bottom: 15px;
}
.item {
display: flex;
width: 100%;
box-sizing: border-box;
margin-top: 0;
margin-bottom: 15px;
font-size: 16px;
cursor: pointer;
.item-field {
// width: 100px;
flex-shrink: 0;
}
.item-content {
width: 100%;
max-height: 420px;
overflow-y: auto;
@include scrollBar;
}
::v-deep p {
margin: 0;
img {
width: 100%;
height: 100%;
}
}
.item-imgs {
width: 100%;
display: flex;
flex-wrap: wrap;
img {
display: block;
width: 240px;
height: 240px;
margin-right: 10px;
}
}
}
.item-desc {
font-size: 16px;
margin-bottom: 10px;
line-height: 24px;
}
}
}
.list-title {
width: 100%;
box-sizing: border-box;
padding: 20px 0 10px 62px;
font-size: 20px;
cursor: pointer;
}
}
.list-wr {
display: flex;
padding: 0 20px;
.dashed-line {
width: 1px;
height: 600px;
margin: 0 15px;
border: 1px dashed #1257c9;
}
.left-list {
width: 280px !important;
height: 600px;
overflow: auto;
padding: 10px 0 !important;
@include scrollBar;
.active-item {
border: 1px solid #0063FE !important;
box-shadow: 0px 0px 10px #0063fe inset;
}
.left-item {
display: flex;
flex-direction: column;
width: 100%;
box-sizing: border-box;
margin-top: 0;
margin-bottom: 20px;
font-size: 16px;
cursor: pointer;
color: #ffffff;
padding: 5px;
border: 1px solid transparent;
.item-content {
margin-top: 10px;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
.right-list {
padding: 0 15px !important;
}
}
</style>

5
src/views/modules/visual/communityGovern/duoyuanfuwu/duoyuanfuwufenxi.vue

@ -62,8 +62,6 @@
@clickFeature="clickMap"
:showIconLayer="true"
:showPolygonLayer="true"
:showPolIconLayer="true"
:areaScale="0.1"
:clickType="'popup'"
:isAddOpenlay="true"></screen-map>
</div>
@ -371,7 +369,8 @@ export default {
if (item.coordinates && item.coordinates.length > 0) {
if (!this.isRepeatItem(item.name)) {
let colorIndex = index < polygonColorArray.length ? index : 0
item.fillColor = 'rgba(0, 229, 237, 0.16)'
// item.fillColor = 'rgba(0, 229, 237, 0.16)'
item.fillColor = transparent
item.color = '#00E5ED'
// item.color = polygonColorArray[colorIndex]
subPolygonList.push(item)

Loading…
Cancel
Save