Merge branch 'dev' of http://git.sinoecare.com/sinoecare/digital_village_v2/dvcp_v2_webapp into dev
This commit is contained in:
@@ -59,11 +59,12 @@ export default {
|
||||
},
|
||||
getTabs() {
|
||||
let {name, query, hash} = this.$route
|
||||
let tab = this.tabs.find(e => e.name == this.currentTab)
|
||||
let tab = this.tabs.find(e => e.name == this.currentTab),
|
||||
tabName = [name, query?.id, hash].join("")
|
||||
if (tab) {
|
||||
} else if (name) {
|
||||
} else if (tabName) {
|
||||
let menu = this.apps.find(e => e.name == name)
|
||||
this.tabs.push({name, query, hash, label: menu?.label})
|
||||
this.tabs.push({name: tabName, query, hash, label: menu?.label})
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
<el-table-column label="操作" slot="options" fixed="right" align="center" width="180">
|
||||
<template v-slot="{row}">
|
||||
<div class="table-options">
|
||||
<!-- <el-button type="text" title="编辑" @click="edit(row)" :disabled="!$permissions('app_appvillagerintegralfamily_edit')">编辑</el-button> -->
|
||||
<el-button type="text" title="家庭成员" @click="familyMember(row)" :disabled="!$permissions('app_appvillagerintegralfamilymember_edit')">家庭成员</el-button>
|
||||
<el-button type="text" :disabled="!$permissions('app_appvillagerintegralfamily_detail')" title="详情" @click="goDetail(row)">详情</el-button>
|
||||
</div>
|
||||
@@ -53,93 +52,12 @@
|
||||
</template>
|
||||
</ai-list>
|
||||
<detail v-if="detailShow" @goBack="goBack" :detailInfo='detailInfo' :instance='instance' :dict='dict'></detail>
|
||||
<ai-dialog
|
||||
:title="dialog.title"
|
||||
:visible.sync="dialog.visible"
|
||||
:customFooter="true"
|
||||
:destroyOnClose="true"
|
||||
@close="init('ruleForm')"
|
||||
width="520px">
|
||||
<div class="form_div">
|
||||
<el-form ref="ruleForm" :model="dialogInfo" :rules="formRules" size="small" label-suffix=":"
|
||||
label-width="120px">
|
||||
<el-form-item label="类型" prop="personType">
|
||||
<el-radio-group v-model="dialogInfo.personType" @change="typeChange"
|
||||
:disabled="dialog.title.indexOf('修改')!=-1">
|
||||
<el-radio label="0">户籍居民</el-radio>
|
||||
<el-radio label="1">外来人员</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item :label="dialog.title.indexOf('家庭')!=-1?'户主':'姓名'" prop="name">
|
||||
<el-row type="flex" :gutter="8">
|
||||
<el-col>
|
||||
<el-input v-model="dialogInfo.name" disabled clearable/>
|
||||
</el-col>
|
||||
<el-col>
|
||||
<ai-person-select :instance="instance" :key="personUrl" :url="personUrl" @selectPerson="getSelect"
|
||||
v-if="dialog.title.indexOf('添加')!=-1"></ai-person-select>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证号" prop="idNumber">
|
||||
<el-input v-model="dialogInfo.idNumber" disabled clearable/>
|
||||
</el-form-item>
|
||||
<el-form-item label="联系电话" prop="phone">
|
||||
<el-input type="number" v-model="dialogInfo.phone" maxlength="11" clearable/>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属组" prop="villageGroup" v-if="dialog.title.indexOf('家庭')!=-1">
|
||||
<el-select v-model="dialogInfo.villageGroup" placeholder="请选择...">
|
||||
<el-option
|
||||
v-for="(item,i) in dict.getDict('integralVillageGroup')"
|
||||
:key="i"
|
||||
:label="item.dictName"
|
||||
:value="item.dictValue"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="status" v-if="dialog.title.indexOf('家庭')!=-1">
|
||||
<el-select v-model="dialogInfo.status" placeholder="请选择...">
|
||||
<el-option
|
||||
v-for="(item,i) in dict.getDict('integralRuleStatus')"
|
||||
:key="i"
|
||||
:label="item.dictName"
|
||||
:value="item.dictValue"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="与户主关系" prop="householdRelation" v-if="dialog.title.indexOf('成员')!=-1">
|
||||
<el-select
|
||||
v-model="dialogInfo.householdRelation"
|
||||
placeholder="请选择"
|
||||
size="mini"
|
||||
clearable
|
||||
style="width:216px;"
|
||||
>
|
||||
<el-option
|
||||
v-for="(item,i) in dict.getDict('householdRelation')"
|
||||
:label="item.dictName"
|
||||
:key="i"
|
||||
:value="item.dictValue"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="dialog-footer" slot="footer">
|
||||
<el-button @click="dialog.visible=false" size="medium">取消</el-button>
|
||||
<el-button @click="onConfirm('ruleForm')" type="primary" size="medium">确认</el-button>
|
||||
</div>
|
||||
</ai-dialog>
|
||||
<ai-dialog class="family-list"
|
||||
title="成员列表"
|
||||
:visible.sync="addMemberVisible"
|
||||
:customFooter="true"
|
||||
:destroyOnClose="true"
|
||||
width="780px">
|
||||
<!-- <p class="add_btn">
|
||||
<span class="iconfont iconAdd" @click="addFamily()"></span>
|
||||
<span @click="addFamily()">添加家庭成员</span>
|
||||
</p> -->
|
||||
<ai-table
|
||||
:tableData="familyList"
|
||||
:col-configs="familycolConfigs"
|
||||
@@ -162,16 +80,6 @@
|
||||
<ai-id mode="show" :show-eyes="false" :value="row.idNumber"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="操作" slot="options" align="center">
|
||||
<template v-slot="{row}">
|
||||
<el-button type="text"
|
||||
v-if="row.householdRelation!=11&&$permissions('app_appvillagerintegralfamilymember_edit')"
|
||||
icon="iconfont iconEdit" title="编辑" @click="editFamily(row)"/>
|
||||
<el-button type="text"
|
||||
v-if="row.householdRelation!=11&&$permissions('app_appvillagerintegralfamilymember_del')"
|
||||
icon="iconfont iconDelete" title="删除" @click="deleteFamily(row.id)"/>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
</ai-table>
|
||||
<div class="dialog-footer" slot="footer">
|
||||
<el-button @click="addMemberVisible=false" size="medium">关 闭</el-button>
|
||||
@@ -372,7 +280,7 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.areaId = this.user.info.areaId;
|
||||
this.dict.load('integralVillageGroup', 'integralRuleStatus', 'integralPersonType', 'householdRelation', 'residentType');
|
||||
this.dict.load('integralVillageGroup', 'integralRuleStatus', 'householdRelation', 'residentType');
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
@@ -398,55 +306,6 @@ export default {
|
||||
this.dialogInfo.avatar = "";
|
||||
this.dialogInfo.areaId = "";
|
||||
},
|
||||
add() {
|
||||
this.dialog.visible = true;
|
||||
this.dialog.title = '添加家庭';
|
||||
},
|
||||
addFamily() {
|
||||
this.dialog.visible = true;
|
||||
this.dialog.title = '添加成员';
|
||||
},
|
||||
onConfirm(formName) {
|
||||
this.$refs[formName].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.dialog.title.indexOf('家庭') != -1) {
|
||||
this.instance.post("/app/appvillagerintegralfamily/addOrUpdate", {
|
||||
...this.dialogInfo,
|
||||
}, null).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.dialog.visible = false;
|
||||
if (this.dialog.title.indexOf('添加') != -1) {
|
||||
this.$message.success("添加成功")
|
||||
} else {
|
||||
this.$message.success("修改成功")
|
||||
}
|
||||
this.getList();
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.instance.post("/app/appvillagerintegralfamilymember/addOrUpdate", {
|
||||
...this.dialogInfo,
|
||||
familyId: this.familyId,
|
||||
familyIdNumber: this.rowInfo.idNumber,
|
||||
familyName: this.rowInfo.name
|
||||
}, null).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.dialog.visible = false;
|
||||
if (this.dialog.title.indexOf('添加') != -1) {
|
||||
this.$message.success("添加成功")
|
||||
} else {
|
||||
this.$message.success("修改成功")
|
||||
}
|
||||
this.familyMember(this.rowInfo);
|
||||
this.getList();
|
||||
}
|
||||
})
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
init(formName) {
|
||||
this.$refs[formName].clearValidate();
|
||||
Object.keys(this.dialogInfo).forEach(e => {
|
||||
@@ -461,35 +320,8 @@ export default {
|
||||
});
|
||||
this.getList();
|
||||
},
|
||||
edit(row) {
|
||||
this.dialog.visible = true;
|
||||
this.dialog.title = '修改家庭';
|
||||
this.dialogInfo = {...row}
|
||||
},
|
||||
editFamily(row) {
|
||||
this.dialog.visible = true;
|
||||
this.dialog.title = '修改成员';
|
||||
this.dialogInfo = {...row}
|
||||
},
|
||||
deleteFamily(ids) {
|
||||
ids && this.$confirm("是否要删除该家庭成员", {
|
||||
type: 'error'
|
||||
}).then(() => {
|
||||
this.instance.post("/app/appvillagerintegralfamilymember/delete", null, {
|
||||
params: {ids}
|
||||
}).then(res => {
|
||||
if (res?.code == 0) {
|
||||
this.$message.success("删除成功!")
|
||||
this.familyMember(this.rowInfo);
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
getSelect(val) {
|
||||
console.log(val)
|
||||
if (val) {
|
||||
|
||||
this.dialogInfo.name = val.name;
|
||||
this.dialogInfo.idNumber = val.idNumber;
|
||||
this.dialogInfo.avatar = val.photo;
|
||||
|
||||
@@ -72,24 +72,7 @@
|
||||
<span class="form_label">积分:</span>
|
||||
<span class="form_value">{{dialogInfo.changeIntegral >= 0 ? '增加' : '减少'}}<span style="color:#2266FF">{{Math.abs(dialogInfo.changeIntegral)}}</span>分</span>
|
||||
</div>
|
||||
<!-- <div>
|
||||
<span class="form_label">途径:</span>
|
||||
<span class="form_value">{{$dict.getLabel("integralDetailBizType", dialogInfo.bizType)}}</span>
|
||||
</div> -->
|
||||
</div>
|
||||
<!-- <div class="form_info">
|
||||
<span class="form_label">{{dialogInfo.bizType == 1 ? '申诉' : '申报'}}说明:</span>
|
||||
<span
|
||||
class="form_value"
|
||||
>{{dialogInfo.description}}</span>
|
||||
</div>
|
||||
<div class="form_info">
|
||||
<span class="form_label">照片:</span>
|
||||
<span class="form_value" v-if="dialogInfo.fileList && dialogInfo.fileList.length">
|
||||
<ai-uploader :disabled="true" :instance="instance" v-model="dialogInfo.fileList" :limit="9" ></ai-uploader>
|
||||
</span>
|
||||
<span class="form_value" v-else>-</span>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="dialog-footer" slot="footer">
|
||||
<el-button @click="dialog.visible=false" size="medium">关闭</el-button>
|
||||
@@ -173,7 +156,6 @@ export default {
|
||||
.load([
|
||||
"integralDeclareDoType",
|
||||
"integralDetailType",
|
||||
"integralDetailBizType"
|
||||
])
|
||||
.then(() => {
|
||||
this.getList();
|
||||
|
||||
@@ -298,7 +298,7 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.areaId = this.user.info.areaId;
|
||||
this.dict.load('integralVillageGroup', 'integralRuleStatus', 'integralPersonType', 'householdRelation', 'residentType');
|
||||
this.dict.load( 'integralRuleStatus', 'householdRelation', 'residentType');
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -282,7 +282,7 @@ export default {
|
||||
},
|
||||
|
||||
created() {
|
||||
this.dict.load(["classification", "integralIntegralType", "integralRuleStatus", 'atWillReportType']).then(() => {
|
||||
this.dict.load([ "integralIntegralType", "integralRuleStatus", 'atWillReportType']).then(() => {
|
||||
this.getList();
|
||||
});
|
||||
},
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
</el-button>
|
||||
</template>
|
||||
<template #right>
|
||||
<el-input size="small" placeholder="搜索党员/四邻信息" v-model="search.name" clearable
|
||||
<el-input size="small" placeholder="搜索户主姓名" v-model="search.name" clearable
|
||||
@change="page.current=1,getTableData()" suffix-icon="iconfont iconSearch"/>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
@@ -36,7 +36,7 @@
|
||||
<el-table-column slot="resident">
|
||||
<template #header>
|
||||
<b v-text="`户主信息列表`"/>
|
||||
<el-input class="fill" v-model="list.con" size="small" placeholder="搜索姓名/身份证号" clearable
|
||||
<el-input class="fill searchbar" v-model="list.con" size="small" placeholder="搜索姓名/身份证号" clearable
|
||||
@change="list.current=1,getResident()"/>
|
||||
</template>
|
||||
<template slot-scope="{row}">
|
||||
@@ -220,5 +220,9 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep.searchbar {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -12,7 +12,7 @@ import Add from './components/Add'
|
||||
import BuildMsg from './components/BuildMsg'
|
||||
|
||||
export default {
|
||||
label: '楼栋管理',
|
||||
label: '楼栋管理(sass)',
|
||||
name: 'AppBuildManage',
|
||||
props: {
|
||||
instance: Function,
|
||||
@@ -41,7 +41,7 @@ export default {
|
||||
|
||||
if (data.type === 'buildmsg') {
|
||||
this.component = 'BuildMsg'
|
||||
this.params = { ...data.params }
|
||||
this.params = {...data.params}
|
||||
}
|
||||
|
||||
if (data.type == 'list') {
|
||||
|
||||
@@ -12,18 +12,19 @@
|
||||
<ai-bar title="基础信息"></ai-bar>
|
||||
<el-form-item label="小区名称" prop="communityName" class="line" ref="communityNameContent">
|
||||
<!-- 选择小区 -->
|
||||
<ai-select v-if="instance" :instance="instance" v-model="formData.communityId" action="/app/appcommunityinfo/listAll" :prop="{ label: 'communityName' }"></ai-select>
|
||||
<ai-select v-if="instance" :instance="instance" v-model="formData.communityId" action="/app/appcommunityinfo/listAll"
|
||||
:prop="{ label: 'communityName' }"></ai-select>
|
||||
</el-form-item>
|
||||
|
||||
<div class="flex">
|
||||
<!-- 楼栋号 -->
|
||||
<el-form-item label="楼栋号" prop="buildingNumber" :rules="[{ required: true, message: '请输入楼栋号', trigger: 'blur' }]">
|
||||
<el-input size="small" v-model="formData.buildingNumber" placeholder="请输入" clearable :disabled="isEdit" />
|
||||
<el-input size="small" v-model="formData.buildingNumber" placeholder="请输入" clearable :disabled="isEdit"/>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 单元数 -->
|
||||
<el-form-item label="单元数" prop="unitNumber">
|
||||
<el-input size="small" v-model.number="formData.unitNumber" placeholder="请输入" clearable :disabled="isEdit" />
|
||||
<el-input size="small" v-model.number="formData.unitNumber" placeholder="请输入" clearable :disabled="isEdit"/>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 起始计数层数 -->
|
||||
@@ -96,28 +97,22 @@
|
||||
<el-button type="primary" @click="confirm()">提交</el-button>
|
||||
</template>
|
||||
</ai-detail>
|
||||
<ai-dialog title="地图" :visible.sync="showMap" @opened="getCorpLocation" width="800px" class="mapDialog" @onConfirm="selectMap">
|
||||
<ai-dialog title="地图" :visible.sync="showMap" @opened="getCorpLocation" width="800px" class="mapDialog" @onConfirm="selectMap" fullscreen>
|
||||
<div id="map"></div>
|
||||
<el-form label-width="80px" style="padding: 10px 20px 0 20px;">
|
||||
<el-row type="flex" justify="space-between">
|
||||
<el-form-item label="经度">
|
||||
<el-input disabled size="small" v-model="placeDetail.lng"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="纬度">
|
||||
<el-input disabled size="small" v-model="placeDetail.lat"></el-input>
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
<el-form label-position="left">
|
||||
<el-form-item label="经纬度">{{ [placeDetail.lng, placeDetail.lat].toString() }}</el-form-item>
|
||||
</el-form>
|
||||
<el-input id="searchPlaceInput" size="medium" class="searchPlaceInput" clearable v-model="searchPlace" autocomplete="on" @change="placeSearch.search(searchPlace)" placeholder="请输入关键字">
|
||||
<el-input id="searchPlaceInput" size="medium" class="searchPlaceInput" clearable v-model="searchPlace" autocomplete="on"
|
||||
@change="placeSearch.search(searchPlace)" placeholder="请输入关键字">
|
||||
<el-button type="primary" slot="append" @click="placeSearch.search(searchPlace)">搜索</el-button>
|
||||
</el-input>
|
||||
<div id="searchPlaceOutput" />
|
||||
<div id="searchPlaceOutput"/>
|
||||
</ai-dialog>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapState } from 'vuex'
|
||||
import {mapState} from 'vuex'
|
||||
import AMapLoader from '@amap/amap-jsapi-loader'
|
||||
|
||||
export default {
|
||||
@@ -148,33 +143,33 @@ export default {
|
||||
},
|
||||
formRules: {
|
||||
unitNumber: [
|
||||
{ required: true, message: '请输入单元数', trigger: 'change' },
|
||||
{required: true, message: '请输入单元数', trigger: 'change'},
|
||||
{
|
||||
validator: (r, v, cb) => (!v || /^[1-9]\d*|0$/g.test(v) ? cb() : cb('请输入正整数')),
|
||||
},
|
||||
],
|
||||
layerStart: [
|
||||
{ required: true, message: '请输入起始计数层数', trigger: 'change' },
|
||||
{required: true, message: '请输入起始计数层数', trigger: 'change'},
|
||||
{
|
||||
validator: (r, v, cb) => (!v || /^[1-9]\d*|0$/g.test(v) ? cb() : cb('请输入正整数')),
|
||||
},
|
||||
],
|
||||
|
||||
layerNumber: [
|
||||
{ required: true, message: '请输入最高层数', trigger: 'change' },
|
||||
{required: true, message: '请输入最高层数', trigger: 'change'},
|
||||
{
|
||||
validator: (r, v, cb) => (!v || /^[1-9]\d*|0$/g.test(v) ? cb() : cb('请输入正整数')),
|
||||
},
|
||||
],
|
||||
householdStart: [
|
||||
{ required: true, message: '请输入起始计数户数', trigger: 'change' },
|
||||
{required: true, message: '请输入起始计数户数', trigger: 'change'},
|
||||
{
|
||||
validator: (r, v, cb) => (!v || /^[1-9]\d*|0$/g.test(v) ? cb() : cb('请输入正整数')),
|
||||
},
|
||||
],
|
||||
|
||||
householdNumber: [
|
||||
{ required: true, message: '请输入每层户数', trigger: 'change' },
|
||||
{required: true, message: '请输入每层户数', trigger: 'change'},
|
||||
{
|
||||
validator: (r, v, cb) => (!v || /^[1-9]\d*|0$/g.test(v) ? cb() : cb('请输入正整数')),
|
||||
},
|
||||
@@ -226,7 +221,7 @@ export default {
|
||||
zooms: [6, 20],
|
||||
zoom: 11,
|
||||
})
|
||||
this.placeSearch = new AMap.PlaceSearch({ map: this.map })
|
||||
this.placeSearch = new AMap.PlaceSearch({map: this.map})
|
||||
new AMap.AutoComplete({
|
||||
input: 'searchPlaceInput',
|
||||
output: 'searchPlaceOutput',
|
||||
@@ -267,33 +262,33 @@ export default {
|
||||
|
||||
getListinfo() {
|
||||
return this.instance
|
||||
.post('/app/appcommunitybuildinginfo/queryDetailById', null, {
|
||||
params: {
|
||||
id: this.params.id,
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.data) {
|
||||
this.formData = res.data
|
||||
}
|
||||
})
|
||||
.post('/app/appcommunitybuildinginfo/queryDetailById', null, {
|
||||
params: {
|
||||
id: this.params.id,
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.data) {
|
||||
this.formData = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
confirm() {
|
||||
this.$refs['ruleForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
this.instance
|
||||
.post(`/app/appcommunitybuildinginfo/addOrUpdate`, {
|
||||
...this.formData,
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('提交成功')
|
||||
setTimeout(() => {
|
||||
this.cancel(true)
|
||||
}, 1000)
|
||||
}
|
||||
})
|
||||
.post(`/app/appcommunitybuildinginfo/addOrUpdate`, {
|
||||
...this.formData,
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('提交成功')
|
||||
setTimeout(() => {
|
||||
this.cancel(true)
|
||||
}, 1000)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -317,29 +312,36 @@ export default {
|
||||
<style lang="scss" scoped>
|
||||
.AppBuildManage {
|
||||
::v-deep .amap-logo {
|
||||
display: none!important;
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
::v-deep .amap-copyright {
|
||||
display: none!important;
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
.Add {
|
||||
height: 100%;
|
||||
|
||||
.ai-detail__title {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.ai-detail__content {
|
||||
.ai-detail__content--wrapper {
|
||||
.el-form {
|
||||
background-color: #fff;
|
||||
padding: 0 60px;
|
||||
|
||||
.flex {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
|
||||
.el-form-item {
|
||||
width: 48%;
|
||||
}
|
||||
|
||||
.buildingTypes {
|
||||
width: 100%;
|
||||
}
|
||||
@@ -350,11 +352,20 @@ export default {
|
||||
}
|
||||
|
||||
::v-deep .mapDialog {
|
||||
.el-dialog {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.el-dialog__body {
|
||||
padding: 0;
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
|
||||
.ai-dialog__content {
|
||||
padding: 0;
|
||||
max-height: unset !important;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.ai-dialog__content--wrapper {
|
||||
@@ -364,7 +375,7 @@ export default {
|
||||
|
||||
#map {
|
||||
width: 100%;
|
||||
height: 420px;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.searchPlaceInput {
|
||||
@@ -374,6 +385,21 @@ export default {
|
||||
left: 25px;
|
||||
}
|
||||
|
||||
.el-form {
|
||||
position: absolute;
|
||||
width: 230px;
|
||||
right: 25px;
|
||||
top: 20px;
|
||||
background: rgba(#fff, .8);
|
||||
color: #26f;
|
||||
padding: 0 16px;
|
||||
box-sizing: border-box;
|
||||
|
||||
.el-form-item {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
#searchPlaceOutput {
|
||||
position: absolute;
|
||||
width: 250px;
|
||||
|
||||
@@ -1,67 +1,73 @@
|
||||
<template>
|
||||
<ai-list class="AppPetitionManage">
|
||||
<ai-title slot="title" title="楼栋管理" isShowBottomBorder />
|
||||
<template #left>
|
||||
|
||||
<ai-tree-menu title="楼栋管理" @search="(v) => $refs.gridTree.filter(v)">
|
||||
<el-tree :data="treeData" ref="gridTree" :filter-node-method="handleTreeFilter" @node-click="handleSelectGrid" highlight-current node-key="id" :props="{ label: 'name', children: 'children' }" />
|
||||
</ai-tree-menu>
|
||||
</template>
|
||||
<template #content>
|
||||
<ai-search-bar bottomBorder>
|
||||
<template slot="left">
|
||||
<!-- 定位状态 -->
|
||||
<ai-select v-model="search.locationStatus" placeholder="定位状态" clearable :selectList="$dict.getDict('BuildLocationStatus')" @change=";(page.current = 1), getList()"></ai-select>
|
||||
<ai-list class="bmList">
|
||||
<ai-title slot="title" title="楼栋管理" isShowBottomBorder/>
|
||||
<template #left>
|
||||
|
||||
<ai-tree-menu title="楼栋管理" @search="(v) => $refs.gridTree.filter(v)">
|
||||
<el-tree :data="treeData" ref="gridTree" :filter-node-method="handleTreeFilter" @node-click="handleSelectGrid" highlight-current node-key="id"
|
||||
:props="{ label: 'name', children: 'children' }"/>
|
||||
</ai-tree-menu>
|
||||
</template>
|
||||
<template #content>
|
||||
<ai-search-bar bottomBorder>
|
||||
<template slot="left">
|
||||
<!-- 定位状态 -->
|
||||
<ai-select v-model="search.locationStatus" placeholder="定位状态" clearable :selectList="$dict.getDict('BuildLocationStatus')"
|
||||
@change=";(page.current = 1), getList()"></ai-select>
|
||||
</template>
|
||||
|
||||
<!-- 搜索 -->
|
||||
<template slot="right">
|
||||
<el-input v-model="search.managerName" size="small" placeholder="楼栋号/楼长/联系方式" clearable v-throttle="() => {page.current = 1, getList()}"
|
||||
@clear=";(page.current = 1), (search.managerName = ''), getList()" suffix-icon="iconfont iconSearch"/>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
|
||||
<ai-search-bar style="margin-top: 16px;">
|
||||
<template slot="left">
|
||||
<el-button icon="iconfont iconAdd" type="primary" size="small" @click="onAdd('')" :disabled="!isAdd">添加</el-button>
|
||||
<el-button icon="iconfont iconDelete" size="small" @click="removeAll" :disabled="ids.length == 0">删除</el-button>
|
||||
</template>
|
||||
|
||||
<!-- 导入导出 -->
|
||||
<template #right>
|
||||
<ai-import :instance="instance" :dict="dict" type="appcommunitybuildinginfo" :importParams="{ areaId: user.info && user.info.areaId }" name="楼栋管理"
|
||||
@success="getList()">
|
||||
<el-button icon="iconfont iconImport">导入</el-button>
|
||||
</ai-import>
|
||||
<ai-download :instance="instance" url="/app/appcommunitybuildinginfo/listExport" :params="param" fileName="楼栋管理模板" :disabled="tableData.length == 0">
|
||||
<el-button icon="iconfont iconExported" :disabled="tableData.length == 0">导出</el-button>
|
||||
</ai-download>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
|
||||
<ai-table :tableData="tableData" :col-configs="colConfigs" :total="total" ref="aitableex" style="margin-top: 20px;" :current.sync="page.current"
|
||||
:size.sync="page.size" @getList="getList" @selection-change="(v) => (ids = v.map((e) => e.id))">
|
||||
<el-table-column slot="locationStatus" label="定位状态" align="center">
|
||||
<template slot-scope="{ row }">
|
||||
<span style="color:red" v-if="row.locationStatus == 0">{{ dict.getLabel('BuildLocationStatus', row.locationStatus) }}</span>
|
||||
<span style="color:green" v-if="row.locationStatus == 1">{{ dict.getLabel('BuildLocationStatus', row.locationStatus) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<!-- 搜索 -->
|
||||
<template slot="right">
|
||||
<el-input v-model="search.managerName" size="small" placeholder="楼栋号/楼长/联系方式" clearable v-throttle="() => {page.current = 1, getList()}" @clear=";(page.current = 1), (search.managerName = ''), getList()" suffix-icon="iconfont iconSearch" />
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
|
||||
<ai-search-bar style="margin-top: 16px;">
|
||||
<template slot="left">
|
||||
<el-button icon="iconfont iconAdd" type="primary" size="small" @click="onAdd('')" :disabled="!isAdd">添加 </el-button>
|
||||
<el-button icon="iconfont iconDelete" size="small" @click="removeAll" :disabled="ids.length == 0">删除 </el-button>
|
||||
</template>
|
||||
|
||||
<!-- 导入导出 -->
|
||||
<template #right>
|
||||
<ai-import :instance="instance" :dict="dict" type="appcommunitybuildinginfo" :importParams="{ areaId: user.info && user.info.areaId }" name="楼栋管理" @success="getList()">
|
||||
<el-button icon="iconfont iconImport">导入</el-button>
|
||||
</ai-import>
|
||||
<ai-download :instance="instance" url="/app/appcommunitybuildinginfo/listExport" :params="param" fileName="楼栋管理模板" :disabled="tableData.length == 0">
|
||||
<el-button icon="iconfont iconExported" :disabled="tableData.length == 0">导出</el-button>
|
||||
</ai-download>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
|
||||
<ai-table :tableData="tableData" :col-configs="colConfigs" :total="total" ref="aitableex" style="margin-top: 20px;" :current.sync="page.current" :size.sync="page.size" @getList="getList" @selection-change="(v) => (ids = v.map((e) => e.id))">
|
||||
<el-table-column slot="locationStatus" label="定位状态" align="center">
|
||||
<template slot-scope="{ row }">
|
||||
<span style="color:red" v-if="row.locationStatus == 0">{{ dict.getLabel('BuildLocationStatus', row.locationStatus) }}</span>
|
||||
<span style="color:green" v-if="row.locationStatus == 1">{{ dict.getLabel('BuildLocationStatus', row.locationStatus) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column slot="options" label="操作" align="center" width="240px" fixed="right">
|
||||
<div class="table-options" slot-scope="{ row }">
|
||||
<el-button type="text" @click="onAdd(row.id)">编辑</el-button>
|
||||
<el-button type="text" @click="remove(row.id)">删除</el-button>
|
||||
<el-button type="text" @click="toBuildMsg(row)">房屋信息</el-button>
|
||||
<el-button type="text" @click="$router.push({ name: '63', query: { communityId: row.communityId, buildingId: row.id, unitNum: 1, buildingNumber: row.buildingNumber } })">
|
||||
楼栋模型
|
||||
</el-button>
|
||||
</div>
|
||||
</el-table-column>
|
||||
</ai-table>
|
||||
</template>
|
||||
<el-table-column slot="options" label="操作" align="center" width="240px" fixed="right">
|
||||
<div class="table-options" slot-scope="{ row }">
|
||||
<el-button type="text" @click="onAdd(row.id)">编辑</el-button>
|
||||
<el-button type="text" @click="remove(row.id)">删除</el-button>
|
||||
<el-button type="text" @click="toBuildMsg(row)">房屋信息</el-button>
|
||||
<el-button type="text"
|
||||
@click="$router.push({ name: '63', query: { communityId: row.communityId, buildingId: row.id, unitNum: 1, buildingNumber: row.buildingNumber } })">
|
||||
楼栋模型
|
||||
</el-button>
|
||||
</div>
|
||||
</el-table-column>
|
||||
</ai-table>
|
||||
</template>
|
||||
</ai-list>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapState } from 'vuex'
|
||||
import {mapState} from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'List',
|
||||
@@ -86,7 +92,7 @@ export default {
|
||||
id: '',
|
||||
ids: [],
|
||||
colConfigs: [
|
||||
{ type: 'selection' },
|
||||
{type: 'selection'},
|
||||
{
|
||||
prop: 'communityName',
|
||||
label: '小区名称',
|
||||
@@ -96,26 +102,26 @@ export default {
|
||||
label: '楼栋号',
|
||||
align: 'center',
|
||||
},
|
||||
{ prop: 'unitNumber', label: '单元数', align: 'center' },
|
||||
{prop: 'unitNumber', label: '单元数', align: 'center'},
|
||||
{
|
||||
prop: 'layerNumber',
|
||||
label: '最高层数',
|
||||
align: 'center',
|
||||
},
|
||||
{ prop: 'householdNumber', label: '每层户数', align: 'center' },
|
||||
{prop: 'householdNumber', label: '每层户数', align: 'center'},
|
||||
{
|
||||
prop: 'houseNum',
|
||||
label: '实有户数',
|
||||
align: 'center',
|
||||
},
|
||||
{ prop: 'residentNum', label: '实有人口', align: 'center' },
|
||||
{prop: 'residentNum', label: '实有人口', align: 'center'},
|
||||
{
|
||||
prop: 'managerName',
|
||||
label: '楼栋长名',
|
||||
align: 'center',
|
||||
},
|
||||
{ prop: 'managerPhone', label: '楼栋长联系方式', align: 'center', width: '150' },
|
||||
{ slot: 'locationStatus' },
|
||||
{prop: 'managerPhone', label: '楼栋长联系方式', align: 'center', width: '150'},
|
||||
{slot: 'locationStatus'},
|
||||
{
|
||||
slot: 'options',
|
||||
label: '操作',
|
||||
@@ -169,20 +175,20 @@ export default {
|
||||
|
||||
getList() {
|
||||
this.instance
|
||||
.post(`/app/appcommunitybuildinginfo/list`, null, {
|
||||
params: {
|
||||
...this.page,
|
||||
...this.search,
|
||||
communityId: this.communityId,
|
||||
areaId: this.areaId,
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.tableData = res.data.records
|
||||
this.total = res.data.total
|
||||
}
|
||||
})
|
||||
.post(`/app/appcommunitybuildinginfo/list`, null, {
|
||||
params: {
|
||||
...this.page,
|
||||
...this.search,
|
||||
communityId: this.communityId,
|
||||
areaId: this.areaId,
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.tableData = res.data.records
|
||||
this.total = res.data.total
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 添加
|
||||
@@ -245,7 +251,7 @@ export default {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.AppPetitionManage {
|
||||
.bmList {
|
||||
height: 100%;
|
||||
|
||||
.ai-detail {
|
||||
@@ -284,7 +290,7 @@ export default {
|
||||
background: transparent;
|
||||
|
||||
.el-tree-node__expand-icon.is-leaf {
|
||||
color: transparent!important;
|
||||
color: transparent !important;
|
||||
}
|
||||
|
||||
.el-tree-node__content > .el-tree-node__expand-icon {
|
||||
@@ -316,8 +322,9 @@ export default {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
width: 100%;
|
||||
background: #2266FF;
|
||||
|
||||
|
||||
span {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
@@ -72,24 +72,7 @@
|
||||
<span class="form_label">积分:</span>
|
||||
<span class="form_value">{{dialogInfo.changeIntegral >= 0 ? '增加' : '减少'}}<span style="color:#2266FF">{{Math.abs(dialogInfo.changeIntegral)}}</span>分</span>
|
||||
</div>
|
||||
<!-- <div>
|
||||
<span class="form_label">途径:</span>
|
||||
<span class="form_value">{{$dict.getLabel("integralDetailBizType", dialogInfo.bizType)}}</span>
|
||||
</div> -->
|
||||
</div>
|
||||
<!-- <div class="form_info">
|
||||
<span class="form_label">{{dialogInfo.bizType == 1 ? '申诉' : '申报'}}说明:</span>
|
||||
<span
|
||||
class="form_value"
|
||||
>{{dialogInfo.description}}</span>
|
||||
</div>
|
||||
<div class="form_info">
|
||||
<span class="form_label">照片:</span>
|
||||
<span class="form_value" v-if="dialogInfo.fileList && dialogInfo.fileList.length">
|
||||
<ai-uploader :disabled="true" :instance="instance" v-model="dialogInfo.fileList" :limit="9" ></ai-uploader>
|
||||
</span>
|
||||
<span class="form_value" v-else>-</span>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="dialog-footer" slot="footer">
|
||||
<el-button @click="dialog.visible=false" size="medium">关闭</el-button>
|
||||
@@ -173,7 +156,6 @@ export default {
|
||||
.load([
|
||||
"integralDeclareDoType",
|
||||
"integralDetailType",
|
||||
"integralDetailBizType"
|
||||
])
|
||||
.then(() => {
|
||||
this.getList();
|
||||
|
||||
@@ -69,24 +69,7 @@
|
||||
<span class="form_value">{{ dialogInfo.changeIntegral >= 0 ? '增加' : '减少' }}<span
|
||||
style="color:#2266FF">{{ Math.abs(dialogInfo.changeIntegral) }}</span>分</span>
|
||||
</div>
|
||||
<!-- <div>
|
||||
<span class="form_label">途径:</span>
|
||||
<span class="form_value">{{dict.getLabel("integralDetailBizType", dialogInfo.bizType)}}</span>
|
||||
</div> -->
|
||||
</div>
|
||||
<!-- <div class="form_info">
|
||||
<span class="form_label">{{dialogInfo.bizType == 1 ? '申诉' : '申报'}}说明:</span>
|
||||
<span
|
||||
class="form_value"
|
||||
>{{dialogInfo.description}}</span>
|
||||
</div>
|
||||
<div class="form_info">
|
||||
<span class="form_label">照片:</span>
|
||||
<span class="form_value" v-if="dialogInfo.fileList && dialogInfo.fileList.length">
|
||||
<ai-uploader :disabled="true" :instance="instance" v-model="dialogInfo.fileList" :limit="9" ></ai-uploader>
|
||||
</span>
|
||||
<span class="form_value" v-else>-</span>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="dialog-footer" slot="footer">
|
||||
<el-button @click="dialog.visible=false" size="medium">关闭</el-button>
|
||||
@@ -160,7 +143,6 @@ export default {
|
||||
"integralDoType",
|
||||
"integralDeclareDoType",
|
||||
"integralDetailType",
|
||||
"integralDetailBizType",
|
||||
).then(() => {
|
||||
this.getList();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user