Browse Source

Merge branch 'master' into dev-yiti1009

V1.0
jiangyy 3 years ago
parent
commit
35f97b0544
  1. 6
      src/views/modules/base/community/buildForm.vue
  2. 6
      src/views/modules/base/community/communityForm.vue
  3. 119
      src/views/modules/base/organization/organization.vue
  4. 1010
      src/views/modules/communityParty/heart/heartForm.vue
  5. 8
      src/views/modules/communityParty/regionalParty/activitysForm.vue
  6. 8
      src/views/modules/communityParty/regionalParty/unitsForm.vue
  7. 8
      src/views/modules/communityService/dqfwzx/cpts/edit.vue
  8. 6
      src/views/modules/communityService/fuwujilu/addForm.vue
  9. 6
      src/views/modules/communityService/fuwujilu/editForm.vue
  10. 8
      src/views/modules/communityService/fuwuzuzhi/cpts/edit.vue
  11. 294
      src/views/modules/communityService/shzz/cpts/edit.vue
  12. 12
      src/views/modules/communityService/sqzzz/cpts/edit.vue
  13. 8
      src/views/modules/cpts/base/cpts/edit.vue
  14. 478
      src/views/modules/cpts/base/index.vue
  15. 1060
      src/views/modules/partymember/icpartyorg-add-or-update.vue
  16. 6
      src/views/modules/plugins/point/icpointnucleicmonitoring-add-or-update.vue
  17. 6
      src/views/modules/plugins/point/icpointvaccinesinoculation-add-or-update.vue
  18. 108
      src/views/modules/renFangTongJi/cpts/shequtongji.vue
  19. 364
      src/views/modules/renFangTongJi/index.vue
  20. 8
      src/views/modules/shequzhili/csgltc/csglForm.vue
  21. 8
      src/views/modules/shequzhili/event/cpts/add.vue
  22. 8
      src/views/modules/shequzhili/ggfwtc/ggfwForm.vue

6
src/views/modules/base/community/buildForm.vue

@ -372,9 +372,11 @@ export default {
markers.setGeometries([]) markers.setGeometries([])
// //
search search
.searchRectangle({ .searchNearby({
keyword: this.keyWords, keyword: this.keyWords,
bounds: map.getBounds() radius: 1000,
autoExtend: true,
center: map.getCenter(),
}) })
.then((result) => { .then((result) => {
let { data } = result let { data } = result

6
src/views/modules/base/community/communityForm.vue

@ -285,9 +285,11 @@ export default {
markers.setGeometries([]) markers.setGeometries([])
// //
search search
.searchRectangle({ .searchNearby({
keyword: this.keyWords, keyword: this.keyWords,
bounds: map.getBounds() radius: 1000,
autoExtend: true,
center: map.getCenter(),
}) })
.then((result) => { .then((result) => {
let { data } = result let { data } = result

119
src/views/modules/base/organization/organization.vue

@ -728,11 +728,20 @@
<el-form-item label="调动至"> <el-form-item label="调动至">
<el-cascader <el-cascader
clearable clearable
:props="{ checkStrictly: true }" :props="{ checkStrictly: true, multiple: false }"
v-model="selectValue" v-model="selectValue"
:options="options" :options="options"
@change="handleChange" style="width: 100%"
@change="handleChangeTransferCascader"
> >
<template slot-scope="{ data }">
<span>{{ data.label }}</span>
<span
v-if="data.type != 'agency'"
style="color: #aaa; font-size: 12px"
>{{ data.typeName }}
</span>
</template>
</el-cascader> </el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="调动原因"> <el-form-item label="调动原因">
@ -1254,24 +1263,7 @@ export default {
roleList: [], roleList: [],
// //
options: [ options: [],
{
value: "",
label: "",
children: [
{
value: "",
label: "",
children: [],
},
{
value: "",
label: "",
children: [],
},
],
},
],
selectValue: [], selectValue: [],
// //
breadcrumbArr: [], breadcrumbArr: [],
@ -1358,30 +1350,24 @@ export default {
}, },
methods: { methods: {
// id // id
handleChange(e) { handleChangeTransferCascader(e) {
this.transferForm.orgId = e[1]; console.log("*********************");
if (this.transferForm.orgId != null || "") { function findItem(valueArr, coll) {
if (this.transferForm.orgId === 0) { console.log("--------------------");
if (e[2] == null || "") { console.log(valueArr);
this.transferForm.orgType = "dept"; let copyArr = [...valueArr];
this.transferForm.orgId = "14f572e724eecf7668b655505d789cab"; let firstValue = copyArr.shift();
} else { let item = coll.find((a) => a.value == firstValue);
this.transferForm.orgId = e[2]; console.log(item);
this.transferForm.orgType = "dept"; if (copyArr.length > 0) {
} return findItem(copyArr, item.children);
} else { } else {
if (e[2] == null || "") { return item;
this.transferForm.orgType = "grid";
this.transferForm.orgId = "63d5ff92ea981b1c58e4914ac894c610";
} else {
this.transferForm.orgId = e[2];
this.transferForm.orgType = "grid";
}
} }
} else {
this.transferForm.orgId = e[0];
this.transferForm.orgType = "agency";
} }
let item = findItem(e, this.options);
this.transferForm.orgId = item.value;
this.transferForm.orgType = item.type;
}, },
/** 查询系统工作人员角色(职责) */ /** 查询系统工作人员角色(职责) */
async getDutyList() { async getDutyList() {
@ -2166,31 +2152,32 @@ export default {
const { data, code, msg } = await requestPost(url, params); const { data, code, msg } = await requestPost(url, params);
if (code === 0) { if (code === 0) {
this.options[0].label = data.agencyName; function computeOption(opt) {
this.options[0].value = data.agencyId; return {
label: opt.agencyName,
console.log("--------", this.options); value: opt.agencyId,
let depart = Array.from(data.departmentList); type: "agency",
let gr = Array.from(data.gridList); children: [
...(opt.departmentList || []).map((item) => ({
depart.forEach((item) => { label: item.deptName,
const ob = { value: item.deptId,
value: item.deptId, type: "dept",
label: item.deptName, typeName: "部门",
}; })),
this.options[0].children[0].children.push(ob); ...(opt.gridList || []).map((item) => ({
}); label: item.gridName,
this.options[0].children[0].value = 0; value: item.gridId,
this.options[0].children[0].label = "部门"; type: "grid",
this.options[0].children[1].value = 1; typeName: "网格",
this.options[0].children[1].label = "网格"; })),
gr.forEach((item) => { ...(opt.subAgencyList || []).map((item) => computeOption(item)),
const obj = { ],
value: item.gridId,
label: item.gridName,
}; };
this.options[0].children[1].children.push(obj); }
}); if (data) {
this.options = [computeOption(data)];
console.log("树树树树树树树树树树", this.options[0]);
}
} else { } else {
this.$message.error("树查询失败", msg); this.$message.error("树查询失败", msg);
} }
@ -2477,7 +2464,7 @@ export default {
const url = "/gov/org/agency/addagency-v2"; const url = "/gov/org/agency/addagency-v2";
let params = { let params = {
parentAgencyId: this.parentAgencyId, parentAgencyId: this.currentAgencyId,
agencyName: this.agencyForm.agencyName, agencyName: this.agencyForm.agencyName,
level: this.agencyForm.level, level: this.agencyForm.level,
areaCodeSwitch: "closed", areaCodeSwitch: "closed",

1010
src/views/modules/communityParty/heart/heartForm.vue

File diff suppressed because it is too large

8
src/views/modules/communityParty/regionalParty/activitysForm.vue

@ -425,7 +425,7 @@ export default {
// map TMap.Map() // map TMap.Map()
map = new window.TMap.Map(document.getElementById('app'), { map = new window.TMap.Map(document.getElementById('app'), {
center: center, // center: center, //
zoom: 17.2, // zoom: 16.2, //
pitch: 43.5, // pitch: 43.5, //
rotation: 45 // rotation: 45 //
}) })
@ -470,9 +470,11 @@ export default {
markers.setGeometries([]) markers.setGeometries([])
// //
search search
.searchRectangle({ .searchNearby({
keyword: this.keyWords, keyword: this.keyWords,
bounds: map.getBounds() radius: 1000,
autoExtend: true,
center: map.getCenter(),
}) })
.then((result) => { .then((result) => {
let { data } = result let { data } = result

8
src/views/modules/communityParty/regionalParty/unitsForm.vue

@ -354,7 +354,7 @@ export default {
// map TMap.Map() // map TMap.Map()
map = new window.TMap.Map(document.getElementById('app'), { map = new window.TMap.Map(document.getElementById('app'), {
center: center, // center: center, //
zoom: 17.2, // zoom: 16.2, //
pitch: 43.5, // pitch: 43.5, //
rotation: 45 // rotation: 45 //
}) })
@ -399,9 +399,11 @@ export default {
markers.setGeometries([]) markers.setGeometries([])
// //
search search
.searchRectangle({ .searchNearby({
keyword: this.keyWords, keyword: this.keyWords,
bounds: map.getBounds() radius: 1000,
autoExtend: true,
center: map.getCenter(),
}) })
.then((result) => { .then((result) => {
let { data } = result let { data } = result

8
src/views/modules/communityService/dqfwzx/cpts/edit.vue

@ -449,7 +449,7 @@ export default {
// map TMap.Map() // map TMap.Map()
map = new window.TMap.Map(document.getElementById("app"), { map = new window.TMap.Map(document.getElementById("app"), {
center: center, // center: center, //
zoom: 17.2, // zoom: 16.2, //
pitch: 43.5, // pitch: 43.5, //
rotation: 45, // rotation: 45, //
}); });
@ -493,9 +493,11 @@ export default {
markers.setGeometries([]); markers.setGeometries([]);
// //
search search
.searchRectangle({ .searchNearby({
keyword: this.dataForm.locationAddress, keyword: this.dataForm.locationAddress,
bounds: map.getBounds(), radius: 1000,
autoExtend: true,
center: map.getCenter(),
}) })
.then((result) => { .then((result) => {
let { data } = result; let { data } = result;

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

@ -1023,9 +1023,11 @@ export default {
markers.setGeometries([]); markers.setGeometries([]);
// //
search search
.searchRectangle({ .searchNearby({
keyword: this.keyWords, keyword: this.keyWords,
bounds: map.getBounds(), radius: 1000,
autoExtend: true,
center: map.getCenter(),
}) })
.then((result) => { .then((result) => {
let { data } = result; let { data } = result;

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

@ -608,9 +608,11 @@ export default {
markers.setGeometries([]) markers.setGeometries([])
// //
search search
.searchRectangle({ .searchNearby({
keyword: this.keyWords, keyword: this.keyWords,
bounds: map.getBounds() radius: 1000,
autoExtend: true,
center: map.getCenter(),
}) })
.then((result) => { .then((result) => {
let { data } = result let { data } = result

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

@ -279,7 +279,7 @@ export default {
// map TMap.Map() // map TMap.Map()
map = new window.TMap.Map(document.getElementById("app"), { map = new window.TMap.Map(document.getElementById("app"), {
center: center, // center: center, //
zoom: 17.2, // zoom: 16.2, //
pitch: 43.5, // pitch: 43.5, //
rotation: 45, // rotation: 45, //
}); });
@ -323,9 +323,11 @@ export default {
markers.setGeometries([]); markers.setGeometries([]);
// //
search search
.searchRectangle({ .searchNearby({
keyword: this.fmData.address, keyword: this.fmData.address,
bounds: map.getBounds(), radius: 1000,
autoExtend: true,
center: map.getCenter(),
}) })
.then((result) => { .then((result) => {
let { data } = result; let { data } = result;

294
src/views/modules/communityService/shzz/cpts/edit.vue

@ -2,76 +2,90 @@
<div> <div>
<div> <div>
<el-form <el-form
ref="ref_form" ref="ref_form"
:inline="true" :inline="true"
:model="dataForm" :model="dataForm"
:rules="dataRule" :rules="dataRule"
:disabled="formType === 'detail'" :disabled="formType === 'detail'"
class="form" class="form"
> >
<el-form-item
<el-form-item label="头像" label-width="150px" label="头像"
prop="imageList" label-width="150px"
style="display: block"> prop="imageList"
style="display: block"
>
<div class="imsg-list"> <div class="imsg-list">
<div v-for="(item, index) in dataForm.imageList" :key="index" class="imgs-item"> <div
v-for="(item, index) in dataForm.imageList"
:key="index"
class="imgs-item"
>
<el-image <el-image
style="width: 100px; height: 100px" style="width: 100px; height: 100px"
:src="item" :src="item"
fit="fill" fit="fill"
:preview-src-list="dataForm.imageList"></el-image> :preview-src-list="dataForm.imageList"
></el-image>
<i class="el-icon-delete" @click="handleDelimg(item, index)"></i> <i class="el-icon-delete" @click="handleDelimg(item, index)"></i>
</div> </div>
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" <el-upload
v-if="dataForm.imageList.length < 1 && !disabled" :headers="$getElUploadHeaders()"
:action="uploadUlr" class="avatar-uploader"
:data="{customerId:customerId}" v-if="dataForm.imageList.length < 1 && !disabled"
:show-file-list="false" :action="uploadUlr"
:disabled="disabled" :data="{ customerId: customerId }"
:on-progress="handleProgress" :show-file-list="false"
:on-success="handleImgSuccess" :disabled="disabled"
:before-upload="beforeImgUpload" :on-progress="handleProgress"
accept=".jpg,.jpeg,.png,.gif,.bmp,.JPG,.JPEG,.PBG,.GIF,.BMP"> :on-success="handleImgSuccess"
<el-progress v-if="uploading" :width="100" type="circle" :percentage="unloadPencent"></el-progress> :before-upload="beforeImgUpload"
accept=".jpg,.jpeg,.png,.gif,.bmp,.JPG,.JPEG,.PBG,.GIF,.BMP"
>
<el-progress
v-if="uploading"
:width="100"
type="circle"
:percentage="unloadPencent"
></el-progress>
<i v-else class="el-icon-plus avatar-uploader-icon"></i> <i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload> </el-upload>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="组织名称 " label="组织名称 "
prop="societyName" prop="societyName"
label-width="150px" label-width="150px"
style="display: block" style="display: block"
> >
<el-input <el-input
class="item_width_1" class="item_width_1"
maxlength="50" maxlength="50"
show-word-limit show-word-limit
placeholder="请输入组织名称 " placeholder="请输入组织名称 "
v-model="dataForm.societyName" v-model="dataForm.societyName"
> >
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="服务内容" label="服务内容"
prop="serviceMatters" prop="serviceMatters"
label-width="150px" label-width="150px"
style="display: block" style="display: block"
> >
<el-input <el-input
class="item_width_1" class="item_width_1"
type="textarea" type="textarea"
maxlength="1000" maxlength="1000"
show-word-limit show-word-limit
:rows="3" :rows="3"
placeholder="请输入服务内容,不超过1000字" placeholder="请输入服务内容,不超过1000字"
v-model="dataForm.serviceMatters" v-model="dataForm.serviceMatters"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<!-- <el-form-item <!-- <el-form-item
label="负责人姓名 " label="负责人姓名 "
prop="personInCharge" prop="personInCharge"
label-width="150px" label-width="150px"
@ -88,36 +102,36 @@
</el-form-item>--> </el-form-item>-->
<el-form-item <el-form-item
label="服务电话 " label="服务电话 "
prop="mobile" prop="mobile"
label-width="150px" label-width="150px"
style="display: block" style="display: block"
> >
<el-input <el-input
class="item_width_1" class="item_width_1"
maxlength="50" maxlength="50"
show-word-limit show-word-limit
placeholder="请输入服务电话 " placeholder="请输入服务电话 "
v-model="dataForm.mobile" v-model="dataForm.mobile"
> >
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="服务时间 " label="服务时间 "
prop="serviceTimeStr" prop="serviceTimeStr"
label-width="150px" label-width="150px"
style="display: block" style="display: block"
> >
<el-input <el-input
class="item_width_1" class="item_width_1"
maxlength="50" maxlength="50"
show-word-limit show-word-limit
placeholder="请输入服务时间 " placeholder="请输入服务时间 "
v-model="dataForm.serviceTimeStr" v-model="dataForm.serviceTimeStr"
> >
</el-input> </el-input>
<!-- <el-date-picker <!-- <el-date-picker
v-model="dataForm.serviceTime" v-model="dataForm.serviceTime"
type="daterange" type="daterange"
range-separator="至" range-separator="至"
@ -129,23 +143,23 @@
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="绑定管理员" label="绑定管理员"
prop="adminStaffId" prop="adminStaffId"
label-width="150px" label-width="150px"
style="display: block" style="display: block"
> >
<el-select <el-select
class="item_width_1" class="item_width_1"
v-model="dataForm.adminStaffId" v-model="dataForm.adminStaffId"
placeholder="请选择" placeholder="请选择"
clearable clearable
filterable filterable
> >
<el-option <el-option
v-for="item in staffList" v-for="item in staffList"
:key="item.staffId" :key="item.staffId"
:label="item.staffName" :label="item.staffName"
:value="item.staffId" :value="item.staffId"
> >
</el-option> </el-option>
</el-select> </el-select>
@ -198,21 +212,20 @@
<div class="div_btn"> <div class="div_btn">
<el-button @click="handleCancle"> </el-button> <el-button @click="handleCancle"> </el-button>
<el-button <el-button
v-if="formType != 'detail'" v-if="formType != 'detail'"
type="primary" type="primary"
:disabled="btnDisable" :disabled="btnDisable"
@click="handleComfirm" @click="handleComfirm"
> >
</el-button </el-button>
>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import {mapGetters} from "vuex"; import { mapGetters } from "vuex";
import {Loading} from "element-ui"; // Loading import { Loading } from "element-ui"; // Loading
import {requestPost} from "@/js/dai/request"; import { requestPost } from "@/js/dai/request";
var map; var map;
var search; var search;
@ -223,11 +236,11 @@ let loading; // 加载动画
export default { export default {
data() { data() {
return { return {
uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadqrcodeV2', uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadqrcodeV2",
btnLoading: false, btnLoading: false,
uploading: false, uploading: false,
disabled: false, disabled: false,
customerId: '', customerId: "",
formType: "add", // addeditdetail formType: "add", // addeditdetail
agencyId: "", agencyId: "",
@ -259,7 +272,7 @@ export default {
dataRule() { dataRule() {
return { return {
societyName: [ societyName: [
{required: true, message: "组织名称 不能为空", trigger: "blur"}, { required: true, message: "组织名称 不能为空", trigger: "blur" },
{ {
min: 1, min: 1,
max: 50, max: 50,
@ -268,10 +281,10 @@ export default {
}, },
], ],
imageList: [ imageList: [
{required: true, message: "头像不能为空", trigger: "blur"}, { required: true, message: "头像不能为空", trigger: "blur" },
], ],
serviceMatters: [ serviceMatters: [
{required: true, message: "服务内容不能为空", trigger: "blur"}, { required: true, message: "服务内容不能为空", trigger: "blur" },
], ],
/*personInCharge: [ /*personInCharge: [
{required: true, message: "负责人姓名不能为空", trigger: "blur"}, {required: true, message: "负责人姓名不能为空", trigger: "blur"},
@ -280,10 +293,10 @@ export default {
{ required: true, message: "绑定管理员不能为空", trigger: "blur" }, { required: true, message: "绑定管理员不能为空", trigger: "blur" },
],*/ ],*/
mobile: [ mobile: [
{required: true, message: "服务电话不能为空", trigger: "blur"}, { required: true, message: "服务电话不能为空", trigger: "blur" },
], ],
serviceTimeStr: [ serviceTimeStr: [
{required: true, message: "服务时间不能为空", trigger: "blur"}, { required: true, message: "服务时间不能为空", trigger: "blur" },
], ],
/*longitude: [ /*longitude: [
{ required: true, message: "位置坐标不能为空", trigger: "blur" }, { required: true, message: "位置坐标不能为空", trigger: "blur" },
@ -316,12 +329,12 @@ export default {
// map TMap.Map() // map TMap.Map()
map = new window.TMap.Map(document.getElementById("app"), { map = new window.TMap.Map(document.getElementById("app"), {
center: center, // center: center, //
zoom: 17.2, // zoom: 16.2, //
pitch: 43.5, // pitch: 43.5, //
rotation: 45, // rotation: 45, //
}); });
search = new window.TMap.service.Search({pageSize: 10}); search = new window.TMap.service.Search({ pageSize: 10 });
// //
markers = new TMap.MultiMarker({ markers = new TMap.MultiMarker({
map: map, map: map,
@ -358,52 +371,54 @@ export default {
markers.setGeometries([]); markers.setGeometries([]);
// //
search search
.searchRectangle({ .searchNearby({
keyword: this.dataForm.address, keyword: this.dataForm.address,
bounds: map.getBounds(), radius: 1000,
}) autoExtend: true,
.then((result) => { center: map.getCenter(),
let {data} = result; })
if (Array.isArray(data) && data.length > 0) { .then((result) => {
const { let { data } = result;
location: {lat, lng}, if (Array.isArray(data) && data.length > 0) {
} = data[0]; const {
map.setCenter(new TMap.LatLng(lat, lng)); location: { lat, lng },
this.setMarker(lat, lng); } = data[0];
this.dataForm.latitude = lat; map.setCenter(new TMap.LatLng(lat, lng));
this.dataForm.longitude = lng; this.setMarker(lat, lng);
} else { this.dataForm.latitude = lat;
this.$message.error("未检索到相关位置坐标"); this.dataForm.longitude = lng;
} } else {
}); this.$message.error("未检索到相关位置坐标");
}
});
}, },
beforeImgUpload(file) { beforeImgUpload(file) {
const isPNG = (file.type === 'image/png') || (file.type === 'image/jpeg') const isPNG = file.type === "image/png" || file.type === "image/jpeg";
const isLt1M = file.size / 1024 / 1024 < 10 const isLt1M = file.size / 1024 / 1024 < 10;
if (!isPNG) { if (!isPNG) {
this.$message.error('上传图片只能是 PNG 或 JPEG 格式!') this.$message.error("上传图片只能是 PNG 或 JPEG 格式!");
} }
if (!isLt1M) { if (!isLt1M) {
this.$message.error('上传图片大小不能超过 10MB!') this.$message.error("上传图片大小不能超过 10MB!");
} }
return isPNG && isLt1M return isPNG && isLt1M;
}, },
handleProgress(event, file, fileList) { handleProgress(event, file, fileList) {
this.uploading = true this.uploading = true;
this.unloadPencent = Number(file.percentage.toFixed(0)) this.unloadPencent = Number(file.percentage.toFixed(0));
}, },
handleImgSuccess(res, file) { handleImgSuccess(res, file) {
if (res.code === 0 && res.msg === 'success') { if (res.code === 0 && res.msg === "success") {
this.uploading = false this.uploading = false;
this.unloadPencent = 0 this.unloadPencent = 0;
this.dataForm.imageList.push(res.data.url) this.dataForm.imageList.push(res.data.url);
} else { } else {
this.$message.error(res.msg) this.$message.error(res.msg);
} }
}, },
handleDelimg(item, index) { handleDelimg(item, index) {
this.dataForm.imageList.splice(index, 1) this.dataForm.imageList.splice(index, 1);
}, },
handleMoveCenter() { handleMoveCenter() {
// //
@ -419,9 +434,9 @@ export default {
this.$refs.ref_form.resetFields(); this.$refs.ref_form.resetFields();
this.formType = type; this.formType = type;
this.dataForm.imageList = [] this.dataForm.imageList = [];
if (row) { if (row) {
this.dataForm = {...this.dataForm, ...row}; this.dataForm = { ...this.dataForm, ...row };
if (row.imgUrl) { if (row.imgUrl) {
this.dataForm.imageList.push(row.imgUrl); this.dataForm.imageList.push(row.imgUrl);
} }
@ -436,7 +451,7 @@ export default {
async loadAgency() { async loadAgency() {
const url = "/epmetuser/customerstaff/staffbasicinfo"; const url = "/epmetuser/customerstaff/staffbasicinfo";
let params = {}; let params = {};
const {data, code, msg} = await requestPost(url, params); const { data, code, msg } = await requestPost(url, params);
if (code === 0) { if (code === 0) {
this.agencyId = data.agencyId; this.agencyId = data.agencyId;
@ -455,7 +470,7 @@ export default {
pageSize: 100000, pageSize: 100000,
}; };
const {data, code, msg} = await requestPost(url, params); const { data, code, msg } = await requestPost(url, params);
if (code === 0) { if (code === 0) {
this.staffList = data.staffList.map((item) => { this.staffList = data.staffList.map((item) => {
@ -485,7 +500,6 @@ export default {
}, },
async submit() { async submit() {
let url = ""; let url = "";
if (this.formType === "add") { if (this.formType === "add") {
url = "/heart/societyorg/add"; url = "/heart/societyorg/add";
@ -496,7 +510,7 @@ export default {
this.dataForm.societyId = this.societyId; this.dataForm.societyId = this.societyId;
} }
const {data, code, msg} = await requestPost(url, this.dataForm); const { data, code, msg } = await requestPost(url, this.dataForm);
if (code === 0) { if (code === 0) {
this.$message({ this.$message({
@ -520,7 +534,7 @@ export default {
this.societyId = ""; //ID this.societyId = ""; //ID
this.$refs.ref_form.resetFields(); this.$refs.ref_form.resetFields();
this.propertyFormShow = false; this.propertyFormShow = false;
/* /*
this.dataForm = { this.dataForm = {
societyName: "", societyName: "",
serviceMatters: "", serviceMatters: "",
@ -535,7 +549,6 @@ export default {
latitude: "", latitude: "",
imageList:[] imageList:[]
};*/ };*/
}, },
// //
startLoading() { startLoading() {
@ -597,15 +610,14 @@ export default {
} }
.avatar-uploader { .avatar-uploader {
::v-deep ::v-deep .el-upload {
.el-upload {
cursor: pointer; cursor: pointer;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
} }
.el-upload:hover { .el-upload:hover {
border-color: #409EFF; border-color: #409eff;
} }
.avatar { .avatar {

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

@ -314,9 +314,7 @@ export default {
principalPhone: [ principalPhone: [
{ required: true, message: "联系电话不能为空", trigger: "blur" }, { required: true, message: "联系电话不能为空", trigger: "blur" },
], ],
address: [ address: [{ required: true, message: "地址不能为空", trigger: "blur" }],
{ required: true, message: "地址不能为空", trigger: "blur" },
],
longitude: [ longitude: [
{ required: true, message: "请拖动地图选择坐标点", trigger: "blur" }, { required: true, message: "请拖动地图选择坐标点", trigger: "blur" },
], ],
@ -404,7 +402,7 @@ export default {
// map TMap.Map() // map TMap.Map()
map = new window.TMap.Map(document.getElementById("app"), { map = new window.TMap.Map(document.getElementById("app"), {
center: center, // center: center, //
zoom: 17.2, // zoom: 16.2, //
pitch: 43.5, // pitch: 43.5, //
rotation: 45, // rotation: 45, //
}); });
@ -448,9 +446,11 @@ export default {
markers.setGeometries([]); markers.setGeometries([]);
// //
search search
.searchRectangle({ .searchNearby({
keyword: this.dataForm.address, keyword: this.dataForm.address,
bounds: map.getBounds(), radius: 1000,
autoExtend: true,
center: map.getCenter(),
}) })
.then((result) => { .then((result) => {
let { data } = result; let { data } = result;

8
src/views/modules/cpts/base/cpts/edit.vue

@ -635,7 +635,7 @@ export default {
// map TMap.Map() // map TMap.Map()
map = new window.TMap.Map(document.getElementById("app"), { map = new window.TMap.Map(document.getElementById("app"), {
center: center, // center: center, //
zoom: 13, // zoom: 16.2, //
pitch: 43.5, // pitch: 43.5, //
rotation: 45, // rotation: 45, //
}); });
@ -679,9 +679,11 @@ export default {
markers.setGeometries([]); markers.setGeometries([]);
// //
search search
.searchRectangle({ .searchNearby({
keyword: this.fmData[item.keyName], keyword: this.fmData[item.keyName],
bounds: map.getBounds(), radius: 1000,
autoExtend: true,
center: map.getCenter(),
}) })
.then((result) => { .then((result) => {
let { data } = result; let { data } = result;

478
src/views/modules/cpts/base/index.vue

@ -1,239 +1,296 @@
<template> <template>
<div class="div_main"> <div class="div_main">
<div v-show="true"> <div v-show="true">
<div class="div_search" <div class="div_search" ref="ref_search">
ref="ref_search"> <el-form :inline="true" ref="ref_searchform" label-width="100px">
<el-form :inline="true"
ref="ref_searchform"
label-width="100px">
<div> <div>
<el-form-item v-for="item in searchParams" <el-form-item
:key="'serach' + item.keyName" v-for="item in searchParams"
:label="item.field" :key="'serach' + item.keyName"
:prop="item.keyName"> :label="item.field"
:prop="item.keyName"
>
<template v-if="item.type == 'input'"> <template v-if="item.type == 'input'">
<el-input v-model="item.value" <el-input
style="width: 240px" v-model="item.value"
size="small" style="width: 240px"
clearable size="small"
:placeholder="item.placeholder || '请输入'"> clearable
:placeholder="item.placeholder || '请输入'"
>
</el-input> </el-input>
</template> </template>
<template v-else-if="item.type == 'select'"> <template v-else-if="item.type == 'select'">
<el-select v-model="item.value" <el-select
:placeholder="item.placeholder || '请选择'" v-model="item.value"
size="small" :placeholder="item.placeholder || '请选择'"
clearable size="small"
style="width: 240px" clearable
:multiple="item.multiple || false"> style="width: 240px"
<el-option v-for="item in item.optionList" :multiple="item.multiple || false"
:key="'serach' + item.keyName + item.value" >
:label="item.label" <el-option
:value="item.value"> v-for="item in item.optionList"
:key="'serach' + item.keyName + item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</template> </template>
<template v-else-if="item.type == 'cascader'"> <template v-else-if="item.type == 'cascader'">
<el-cascader v-model="item.value" <el-cascader
:placeholder="item.placeholder || '请选择'" v-model="item.value"
:options="item.optionList" :placeholder="item.placeholder || '请选择'"
:props="item.optionProps" :options="item.optionList"
:show-all-levels="false" :props="item.optionProps"
size="small" :show-all-levels="false"
clearable size="small"
style="width: 240px" clearable
@change="(e) => handleChangeCascader(e, item)"> style="width: 240px"
@change="(e) => handleChangeCascader(e, item)"
>
</el-cascader> </el-cascader>
</template> </template>
<template v-if="item.type == 'date-range'"> <template v-if="item.type == 'date-range'">
<el-date-picker v-model="item.supValues[0]" <el-date-picker
type="date" v-model="item.supValues[0]"
placeholder="开始时间" type="date"
style="width: 150px" placeholder="开始时间"
value-format="yyyy-MM-dd" style="width: 150px"
clearable> value-format="yyyy-MM-dd"
clearable
>
</el-date-picker> </el-date-picker>
<span style="display: inline-block; margin: 0 10px"></span> <span style="display: inline-block; margin: 0 10px"></span>
<el-date-picker v-model="item.supValues[1]" <el-date-picker
type="date" v-model="item.supValues[1]"
placeholder="结束时间" type="date"
style="width: 150px" placeholder="结束时间"
value-format="yyyy-MM-dd" style="width: 150px"
clearable> value-format="yyyy-MM-dd"
clearable
>
</el-date-picker> </el-date-picker>
</template> </template>
</el-form-item> </el-form-item>
<el-button style="margin-left: 30px; margin-bottom: 20px" <el-button
size="small" style="margin-left: 30px; margin-bottom: 20px"
class="diy-button--search" size="small"
@click="handleSearch">查询</el-button> class="diy-button--search"
<el-button style="margin-left: 10px; margin-bottom: 20px" @click="handleSearch"
size="small" >查询</el-button
class="diy-button--reset" >
@click="resetSearch">重置</el-button> <el-button
style="margin-left: 10px; margin-bottom: 20px"
size="small"
class="diy-button--reset"
@click="resetSearch"
>重置</el-button
>
</div> </div>
</el-form> </el-form>
</div> </div>
<div class="div_table" <div class="div_table" :style="{ height: maxTableHeight + 130 + 'px' }">
:style="{ height: maxTableHeight + 130 + 'px' }">
<div class="div_btn"> <div class="div_btn">
<el-button class="diy-button--add" <el-button
v-if="addUrl" class="diy-button--add"
size="small" v-if="addUrl"
@click="handleAdd">新增</el-button> size="small"
@click="handleAdd"
<el-button v-if="mubanUrl" >新增</el-button
class="btn_upload diy-button--export" >
size="small"
@click="handleExportModule('room')">下载模板</el-button> <el-button
v-if="mubanUrl"
<el-upload :headers="$getElUploadHeaders()" class="btn_upload diy-button--export"
v-if="importUrl" size="small"
ref="upload" @click="handleExportModule('room')"
class="upload-btn" >下载模板</el-button
action="uploadUlr" >
:limit="1"
:accept="'.xls,.xlsx'" <el-upload
:with-credentials="true" :headers="$getElUploadHeaders()"
:show-file-list="false" v-if="importUrl"
:auto-upload="true" ref="upload"
:before-upload="beforeExcelUpload" class="upload-btn"
:http-request="uploadHttpRequest"> action="uploadUlr"
<el-button size="small" :limit="1"
class="btn_upload diy-button--delete">导入</el-button> :accept="'.xls,.xlsx'"
:with-credentials="true"
:show-file-list="false"
:auto-upload="true"
:before-upload="beforeExcelUpload"
:http-request="uploadHttpRequest"
>
<el-button size="small" class="btn_upload diy-button--delete"
>导入</el-button
>
</el-upload> </el-upload>
<el-button v-if="exportUrl" <el-button
@click="handleExport" v-if="exportUrl"
class="btn_upload diy-button--reset" @click="handleExport"
size="small">导出</el-button> class="btn_upload diy-button--reset"
size="small"
>导出</el-button
>
</div> </div>
<el-table ref="ref_table" <el-table
:data="tableData" ref="ref_table"
border :data="tableData"
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }" border
class="table" :header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
style="width: 100%" class="table"
:height="maxTableHeight"> style="width: 100%"
<template v-for="item in tableParams" :height="maxTableHeight"
:prop="item.keyName"> >
<el-table-column v-if="item.type == 'no'" <template v-for="item in tableParams" :prop="item.keyName">
:key="'table-no' + item.keyName" <el-table-column
:label="item.field" v-if="item.type == 'no'"
fixed="left" :key="'table-no' + item.keyName"
type="index" :label="item.field"
align="center" fixed="left"
width="50" /> type="index"
align="center"
<el-table-column v-else-if="item.type == 'text'" width="50"
:key="'table' + item.keyName" />
:prop="item.keyName"
:label="item.field" <el-table-column
align="center" v-else-if="item.type == 'text'"
:width="item.width || ''" :key="'table' + item.keyName"
:show-overflow-tooltip="true"> :prop="item.keyName"
:label="item.field"
align="center"
:width="item.width || ''"
:show-overflow-tooltip="true"
>
</el-table-column> </el-table-column>
<el-table-column v-else-if="item.type == 'array'" <el-table-column
:key="'table-array' + item.keyName" v-else-if="item.type == 'array'"
:prop="item.keyName" :key="'table-array' + item.keyName"
:label="item.field" :prop="item.keyName"
align="center" :label="item.field"
:width="item.width || ''" align="center"
:show-overflow-tooltip="true"> :width="item.width || ''"
:show-overflow-tooltip="true"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row[item.keyName].join(item.arrayDiv || ",") }} {{ scope.row[item.keyName].join(item.arrayDiv || ",") }}
</template> </template>
</el-table-column> </el-table-column>
</template> </template>
<el-table-column fixed="right" <el-table-column
label="操作" v-if="operateCol"
align="center" fixed="right"
width="200"> label="操作"
align="center"
width="200"
>
<template slot-scope="scope"> <template slot-scope="scope">
<slot name="listBtnbefore" <slot name="listBtnbefore" v-bind:item="scope.row"></slot>
v-bind:item="scope.row"></slot> <el-button
<el-button v-if="infoUrl && infoAuth(scope.row)" v-if="infoUrl && infoAuth(scope.row)"
@click="handleWatch(scope.row)" @click="handleWatch(scope.row)"
type="text" type="text"
size="small" size="small"
class=".div-table-button--detail">查看</el-button> class=".div-table-button--detail"
<el-button v-if="editUrl && editAuth(scope.row)" >查看</el-button
@click="handleEdit(scope.row)" >
type="text" <el-button
size="small" v-if="editUrl && editAuth(scope.row)"
class="div-table-button--edit">{{ editBtnName(scope.row) }}</el-button> @click="handleEdit(scope.row)"
<el-popconfirm v-if="delUrl && delAuth(scope.row)" type="text"
title="删除之后无法回复,确认删除?" size="small"
@onConfirm="handleDelete(scope.row, scope.$index)" class="div-table-button--edit"
@confirm="handleDelete(scope.row, scope.$index)"> >{{ editBtnName(scope.row) }}</el-button
<el-button slot="reference" >
type="text" <el-popconfirm
size="small" v-if="delUrl && delAuth(scope.row)"
style="margin-left: 10px" title="删除之后无法回复,确认删除?"
class="div-table-button--delete">删除</el-button> @onConfirm="handleDelete(scope.row, scope.$index)"
@confirm="handleDelete(scope.row, scope.$index)"
>
<el-button
slot="reference"
type="text"
size="small"
style="margin-left: 10px"
class="div-table-button--delete"
>删除</el-button
>
</el-popconfirm> </el-popconfirm>
<slot name="listBtnSup" <slot name="listBtnSup" v-bind:item="scope.row"></slot>
v-bind:item="scope.row"></slot>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div> <div>
<el-pagination @size-change="handleSizeChange" <el-pagination
@current-change="handleCurrentChange" @size-change="handleSizeChange"
:current-page.sync="pageNo" @current-change="handleCurrentChange"
:page-sizes="[20, 50, 100, 200]" :current-page.sync="pageNo"
:page-size="parseInt(pageSize)" :page-sizes="[20, 50, 100, 200]"
layout="sizes, prev, pager, next, total" :page-size="parseInt(pageSize)"
:total="total"> layout="sizes, prev, pager, next, total"
:total="total"
>
</el-pagination> </el-pagination>
</div> </div>
</div> </div>
</div> </div>
<!-- 修改弹出框 --> <!-- 修改弹出框 -->
<el-dialog v-if="formShow" <el-dialog
:visible.sync="formShow" v-if="formShow"
:close-on-click-modal="false" :visible.sync="formShow"
:close-on-press-escape="false" :close-on-click-modal="false"
:title="formTitle" :close-on-press-escape="false"
:width="editParamsDiv ? '1100px' : '850px'" :title="formTitle"
top="5vh" :width="editParamsDiv ? '1100px' : '850px'"
class="dialog-h" top="5vh"
@closed="handleClose"> class="dialog-h"
<edit-form v-if="formShow" @closed="handleClose"
ref="editForm" >
:idName="idName" <edit-form
:formId="formId" v-if="formShow"
:formType="formType" ref="editForm"
:infoUrl="infoUrl" :idName="idName"
:addUrl="addUrl" :formId="formId"
:editUrl="editUrl" :formType="formType"
:editParams="editParams" :infoUrl="infoUrl"
:editParamsDiv="editParamsDiv" :addUrl="addUrl"
:editElseRules="editElseRules" :editUrl="editUrl"
:editFixedParams="editFixedParams" :editParams="editParams"
:formBtnFixed="formBtnFixed" :editParamsDiv="editParamsDiv"
:editConfig="editConfig" :editElseRules="editElseRules"
@close="handleClose" :editFixedParams="editFixedParams"
@afterEdit="handleEditSuccess"> :formBtnFixed="formBtnFixed"
:editConfig="editConfig"
@close="handleClose"
@afterEdit="handleEditSuccess"
>
<template v-slot:bottomSup="{ id, formType, info }"> <template v-slot:bottomSup="{ id, formType, info }">
<slot name="editBottomSup" <slot
v-bind:id="id" name="editBottomSup"
v-bind:formType="formType" v-bind:id="id"
v-bind:info="info"></slot> v-bind:formType="formType"
v-bind:info="info"
></slot>
</template> </template>
<template v-slot:operateSup="{ id, formType, info }"> <template v-slot:operateSup="{ id, formType, info }">
<slot name="editOperateSup" <slot
v-bind:id="id" name="editOperateSup"
v-bind:formType="formType" v-bind:id="id"
v-bind:info="info"></slot> v-bind:formType="formType"
v-bind:info="info"
></slot>
</template> </template>
</edit-form> </edit-form>
</el-dialog> </el-dialog>
@ -346,9 +403,14 @@ export default {
type: Boolean, type: Boolean,
default: true, default: true,
}, },
operateCol: {
type: Boolean,
default: true,
},
}, },
data () { data() {
return { return {
tableData: [], tableData: [],
@ -366,7 +428,7 @@ export default {
}, },
computed: { computed: {
maxTableHeight () { maxTableHeight() {
const { ref_search_height } = this; const { ref_search_height } = this;
return this.$store.state.inIframe return this.$store.state.inIframe
? this.clientHeight - ref_search_height - 265 + this.iframeHeight ? this.clientHeight - ref_search_height - 265 + this.iframeHeight
@ -377,7 +439,7 @@ export default {
watch: {}, watch: {},
async mounted () { async mounted() {
console.log(this.$store.state); console.log(this.$store.state);
this.user = this.$store.state.user; this.user = this.$store.state.user;
@ -391,19 +453,19 @@ export default {
this.computeSearchHeight(); this.computeSearchHeight();
}, },
activated () { activated() {
console.log("-------------activated"); console.log("-------------activated");
this.$refs["ref_table"].doLayout(); this.$refs["ref_table"].doLayout();
}, },
methods: { methods: {
computeSearchHeight () { computeSearchHeight() {
this.ref_search_height = this.$refs["ref_search"].clientHeight; this.ref_search_height = this.$refs["ref_search"].clientHeight;
console.log(this.$refs["ref_search"]); console.log(this.$refs["ref_search"]);
console.log(this.ref_search_height); console.log(this.ref_search_height);
}, },
iniSearchData () { iniSearchData() {
const { searchParams } = this; const { searchParams } = this;
searchParams.forEach((item, index) => { searchParams.forEach((item, index) => {
if (item.type == "select" || item.type == "cascader") { if (item.type == "select" || item.type == "cascader") {
@ -419,7 +481,7 @@ export default {
}); });
}, },
async getFmOptions (index, url, params, cookFn) { async getFmOptions(index, url, params, cookFn) {
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
...params, ...params,
}); });
@ -432,19 +494,19 @@ export default {
} }
}, },
handleChangeCascader (vals, item) { handleChangeCascader(vals, item) {
if (typeof item.handleChangeFn == "function") { if (typeof item.handleChangeFn == "function") {
item.handleChangeFn(vals, item); item.handleChangeFn(vals, item);
} }
}, },
handleSearch (val) { handleSearch(val) {
this.pageNo = 1; this.pageNo = 1;
this.getTableData(); this.getTableData();
}, },
beforeExcelUpload (file) { beforeExcelUpload(file) {
console.log("file", file); console.log("file", file);
const isType = file.type === "application/vnd.ms-excel"; const isType = file.type === "application/vnd.ms-excel";
const isTypeComputer = const isTypeComputer =
@ -462,7 +524,7 @@ export default {
return fileType && isLt1M; return fileType && isLt1M;
}, },
async uploadHttpRequest (file) { async uploadHttpRequest(file) {
let { importUrl: url } = this; let { importUrl: url } = this;
if (!url) return; if (!url) return;
@ -491,7 +553,7 @@ export default {
}); });
}, },
async handleExportModule () { async handleExportModule() {
let { mubanUrl: url } = this; let { mubanUrl: url } = this;
if (!url) return; if (!url) return;
@ -528,7 +590,7 @@ export default {
}); });
}, },
async handleExport () { async handleExport() {
const { exportUrl: url } = this; const { exportUrl: url } = this;
if (!url) return; if (!url) return;
@ -566,13 +628,13 @@ export default {
}); });
}, },
handleAdd () { handleAdd() {
this.formType = "add"; this.formType = "add";
this.formTitle = "新增"; this.formTitle = "新增";
this.formShow = true; this.formShow = true;
}, },
handleWatch (row) { handleWatch(row) {
const { idName } = this; const { idName } = this;
this.formType = "watch"; this.formType = "watch";
this.formId = row[idName]; this.formId = row[idName];
@ -580,7 +642,7 @@ export default {
this.formShow = true; this.formShow = true;
}, },
handleEdit (row) { handleEdit(row) {
const { idName } = this; const { idName } = this;
this.formType = "edit"; this.formType = "edit";
this.formId = row[idName]; this.formId = row[idName];
@ -588,17 +650,17 @@ export default {
this.formShow = true; this.formShow = true;
}, },
handleClose () { handleClose() {
this.formShow = false; this.formShow = false;
this.getTableData(); this.getTableData();
}, },
handleEditSuccess () { handleEditSuccess() {
this.handleClose(); this.handleClose();
// this.getTableData(); // this.getTableData();
}, },
async handleDelete (rowData, rowIndex) { async handleDelete(rowData, rowIndex) {
console.log(rowData, rowIndex); console.log(rowData, rowIndex);
let { delUrl: url } = this; let { delUrl: url } = this;
if (!url) return; if (!url) return;
@ -621,7 +683,7 @@ export default {
} }
}, },
computeFmData () { computeFmData() {
let fmData = {}; let fmData = {};
this.searchParams.forEach((item) => { this.searchParams.forEach((item) => {
fmData[item.keyName] = item.value; fmData[item.keyName] = item.value;
@ -634,11 +696,11 @@ export default {
return fmData; return fmData;
}, },
refresh () { refresh() {
this.getTableData(); this.getTableData();
}, },
async getTableData () { async getTableData() {
const { tableUrl: url } = this; const { tableUrl: url } = this;
if (!url) return; if (!url) return;
@ -653,25 +715,25 @@ export default {
this.total = data.total || 0; this.total = data.total || 0;
this.tableData = data.list this.tableData = data.list
? data.list.map((item) => { ? data.list.map((item) => {
return item; return item;
}) })
: []; : [];
} else { } else {
this.$message.error(msg); this.$message.error(msg);
} }
}, },
handleSizeChange (val) { handleSizeChange(val) {
this.pageSize = val; this.pageSize = val;
window.localStorage.setItem("pageSize", val); window.localStorage.setItem("pageSize", val);
this.getTableData(); this.getTableData();
}, },
handleCurrentChange (val) { handleCurrentChange(val) {
this.pageNo = val; this.pageNo = val;
this.getTableData(); this.getTableData();
}, },
resetSearch () { resetSearch() {
console.log("----------------resetSearch", this.searchParams); console.log("----------------resetSearch", this.searchParams);
this.searchParams.forEach((item) => { this.searchParams.forEach((item) => {
if (typeof item.value == "string") { if (typeof item.value == "string") {

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

File diff suppressed because it is too large

6
src/views/modules/plugins/point/icpointnucleicmonitoring-add-or-update.vue

@ -282,9 +282,11 @@ export default {
markers.setGeometries([]); markers.setGeometries([]);
// //
search search
.searchRectangle({ .searchNearby({
keyword: this.dataForm.address, keyword: this.dataForm.address,
bounds: map.getBounds(), radius: 1000,
autoExtend: true,
center: map.getCenter(),
}) })
.then((result) => { .then((result) => {
let { data } = result; let { data } = result;

6
src/views/modules/plugins/point/icpointvaccinesinoculation-add-or-update.vue

@ -367,9 +367,11 @@ export default {
markers.setGeometries([]); markers.setGeometries([]);
// //
search search
.searchRectangle({ .searchNearby({
keyword: this.dataForm.address, keyword: this.dataForm.address,
bounds: map.getBounds(), radius: 1000,
autoExtend: true,
center: map.getCenter(),
}) })
.then((result) => { .then((result) => {
let { data } = result; let { data } = result;

108
src/views/modules/renFangTongJi/cpts/shequtongji.vue

@ -0,0 +1,108 @@
<template>
<div v-if="iniLoaded">
<base-page
:searchParams="searchParams"
:tableParams="tableParams"
:tableUrl="tableUrl"
:operateCol="false"
idName="icDangerousChemicalsId"
></base-page>
</div>
</template>
<script>
import basePage from "@/views/modules/cpts/base/index";
import { getItemByIdInCascader, collapse } from "@/utils/cascader";
export default {
props: {
orgId: {
type: String,
default: "",
},
orgIds: {
type: String,
default: "",
},
},
data() {
return {
iniLoaded: false,
searchParams: [
{
field: "选择范围",
keyName: "org",
type: "cascader",
value: "",
// optionUrl: "/gov/org/customeragency/agencygridtree",
optionUrl: "/gov/org/customeragency/my-subagency-list",
optionUrlParams: {
agencyId: this.$store.state.user.agencyId,
},
optionList: [],
optionProps: {
multiple: false,
value: "agencyId",
label: "agencyName",
children: "subAgencyList",
checkStrictly: true,
},
optionCook(obj) {
return [obj];
},
supKeys: ["orgId", "orgType"],
supValues: ["", ""],
handleChangeFn(vals, item) {
const { optionList } = item;
if (vals.length > 0) {
item["supValues"][0] = vals[vals.length - 1];
item["supValues"][1] = getItemByIdInCascader(
optionList,
vals,
"agencyId",
"subAgencyList"
)[vals.length - 1]["level"];
item["supValues"][1] =
item["supValues"][1] == "grid" ? "grid" : "agency";
} else {
item["supValues"][0] = "";
item["supValues"][1] = "";
}
},
},
],
tableParams: [
{ field: "序号", keyName: "", type: "no" },
{ field: "所属组织", keyName: "orgName", type: "text", width: "220" },
{ field: "人口总数", keyName: "userTotal", type: "text" },
{ field: "常住人口数", keyName: "czUserTotal", type: "text" },
{ field: "流动人口数", keyName: "ldUserTotal", type: "text" },
{ field: "房屋总数", keyName: "houseTotal", type: "text" },
{ field: "自住房屋数", keyName: "zzHouseTotal", type: "text" },
{ field: "出租房屋数", keyName: "czHouseTotal", type: "text" },
{ field: "闲置房屋数", keyName: "xzHouseTotal", type: "text" },
],
tableUrl: "/gov/org/house/usingCommunityUserHouseStats",
};
},
components: { basePage },
computed: {},
watch: {},
async mounted() {
this.searchParams[0].value = this.orgIds;
this.searchParams[0].supValues[0] = this.orgId;
if (this.orgId) {
this.searchParams[0].supValues[1] = "agency";
}
this.iniLoaded = true;
},
methods: {},
};
</script>
<style lang="scss" scoped></style>

364
src/views/modules/renFangTongJi/index.vue

@ -0,0 +1,364 @@
<template>
<el-card class="g-cnt">
<div class="m-cards">
<div
class="item"
:key="item.name"
@click="handleClickCard(item)"
v-for="item in list"
>
<div class="item-left">
<div class="num">{{ item.num }}</div>
<div class="name">{{ item.name }}</div>
</div>
<div class="item-right">
<div class="hint">
<div class="hint-title">较上月</div>
<b v-if="item.variation >= 0">+ {{ item.variationAbs }}</b>
<b v-else>- {{ item.variationAbs }}</b>
</div>
</div>
</div>
</div>
<div class="m-tb">
<h3>下级平台使用进度汇总</h3>
<el-table
:data="tableData"
border
style="width: 100%"
class="tb"
:height="maxTableHeight"
align="center"
>
<el-table-column label="序号" type="index" align="center" width="50" />
<el-table-column
prop="orgName"
label="所属组织"
width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="usingCommunityNum"
label="开通平台社区数"
align="center"
>
<template slot-scope="scope">
<a style="cursor: pointer" @click="showDetail(scope.row.orgId)">{{
scope.row.usingCommunityNum
}}</a>
</template>
</el-table-column>
<el-table-column
prop="userTotal"
label="人口总数"
align="center"
></el-table-column>
<el-table-column
prop="czUserTotal"
label="常住人口总数"
align="center"
></el-table-column>
<el-table-column
prop="ldUserTotal"
label="流动人口总数"
align="center"
></el-table-column>
<el-table-column
prop="houseTotal"
label="房屋总数"
align="center"
></el-table-column>
<el-table-column
prop="zzHouseTotal"
label="自住房屋总数"
align="center"
></el-table-column>
<el-table-column
prop="czHouseTotal"
label="出租房屋总数"
align="center"
></el-table-column>
<el-table-column
prop="xzHouseTotal"
label="闲置房屋总数"
align="center"
></el-table-column>
</el-table>
</div>
<!-- 修改弹出框 -->
<el-dialog
v-if="displayedDetail"
:visible="true"
title="社区列表 "
width="1150px"
top="5vh"
@close="displayedDetail = false"
>
<shequtongji
ref="shequtongji"
:orgId="detailOrgId"
:orgIds="[orgId, detailOrgId]"
/>
</el-dialog>
</el-card>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import nextTick from "dai-js/tools/nextTick";
import { mapGetters } from "vuex";
import shequtongji from "./cpts/shequtongji";
export default {
name: "renFangTongJi",
components: { shequtongji },
data() {
return {
displayedDetail: false,
tableData: [],
orgId: "",
orgType: "",
detailOrgId: "",
list: [
{
name: "开通平台社区数",
num: "--",
variation: 0,
variationAbs: "0",
},
{
name: "人口总数",
num: "--",
variation: 0,
variationAbs: "0",
},
{
name: "常住人口数",
num: "--",
variation: 0,
variationAbs: "0",
},
{
name: "流动人口数",
num: "--",
variation: 0,
variationAbs: "0",
},
{
name: "房屋总数",
num: "--",
variation: 0,
variationAbs: "0",
},
{
name: "自住房屋数",
num: "--",
variation: 0,
variationAbs: "0",
},
{
name: "出租房屋数",
num: "--",
variation: 0,
variationAbs: "0",
},
{
name: "闲置房屋数",
num: "--",
variation: 0,
variationAbs: "0",
},
],
};
},
computed: {
maxTableHeight() {
return this.clientHeight - 420;
},
...mapGetters(["clientHeight"]),
},
watch: {
orgId() {
this.getTableData();
},
},
mounted() {
this.getCommunityData();
this.getResiData();
this.getHouseData();
this.getTableData();
},
methods: {
handleClickCard(item) {
if (item.name == "开通平台社区数") {
this.showDetail();
}
},
async showDetail(orgId = "") {
this.displayedDetail = true;
this.detailOrgId = orgId;
},
async getCommunityData() {
const url = "/gov/org/agency/usingCommunityStats";
const { data, code, msg } = await requestPost(url, {
orgId: this.orgId,
orgType: this.orgType,
});
if (code === 0) {
const { list } = this;
let item1 = list.find((item) => item.name == "开通平台社区数");
item1.num = data.usingCommunityNum;
item1.variation = parseInt(data.usingCommunityNumJSY);
item1.variationAbs = Math.abs(item1.variation);
}
},
async getResiData() {
const url = "/epmetuser/icresiuser/userchart";
const { data, code, msg } = await requestPost(url, {
orgId: this.orgId,
orgType: this.orgType,
});
if (code === 0) {
const { list } = this;
this.orgId = data.orgId;
this.orgType = data.orgType;
let item1 = list.find((item) => item.name == "人口总数");
item1.num = data.userTotal;
item1.variation = parseInt(data.userTotalJSY);
item1.variationAbs = Math.abs(item1.variation);
let item2 = list.find((item) => item.name == "常住人口数");
item2.num = data.czUserTotal;
item2.variation = parseInt(data.czUserTotalJSY);
item2.variationAbs = Math.abs(item2.variation);
let item3 = list.find((item) => item.name == "流动人口数");
item3.num = data.ldUserTotal;
item3.variation = parseInt(data.ldUserTotalJSY);
item3.variationAbs = Math.abs(item3.variation);
}
},
async getHouseData() {
const url = "/gov/org/house/housechart";
const { data, code, msg } = await requestPost(url, {
orgId: this.orgId,
orgType: this.orgType,
});
if (code === 0) {
const { list } = this;
let item1 = list.find((item) => item.name == "房屋总数");
item1.num = data.houseTotal;
item1.variation = parseInt(data.houseTotalJSY);
item1.variationAbs = Math.abs(item1.variation);
let item2 = list.find((item) => item.name == "自住房屋数");
item2.num = data.zzHouseTotal;
item2.variation = parseInt(data.zzHouseTotalJSY);
item2.variationAbs = Math.abs(item2.variation);
let item3 = list.find((item) => item.name == "出租房屋数");
item3.num = data.czHouseTotal;
item3.variation = parseInt(data.czHouseTotalJSY);
item3.variationAbs = Math.abs(item3.variation);
let item4 = list.find((item) => item.name == "闲置房屋数");
item4.num = data.xzHouseTotal;
item4.variation = parseInt(data.xzHouseTotalJSY);
item4.variationAbs = Math.abs(item4.variation);
}
},
async getTableData() {
const url = "/gov/org/house/subuserhouselist";
const { data, code, msg } = await requestPost(url, {
orgId: this.orgId,
orgType: this.orgType,
});
if (code === 0) {
this.tableData = data
? data.map((item) => {
return item;
})
: [];
}
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/scss/c/config.scss";
@import "@/assets/scss/c/function.scss";
.m-cards {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
.item {
display: flex;
width: 24%;
margin-top: 15px;
// margin-right: 1%;
box-sizing: border-box;
color: #ffffff;
padding: 12px;
border-radius: 4px;
background-image: linear-gradient(to left, #43c8c4, #2aa5c6);
cursor: pointer;
.item-right {
margin-left: auto;
}
.item-left {
text-align: center;
}
.num {
font-size: 28px;
font-weight: bold;
line-height: 40px;
}
.name {
font-size: 14px;
line-height: 20px;
}
.hint {
margin-top: 10px;
line-height: 20px;
text-align: center;
font-size: 18px;
.hint-title {
font-size: 14px;
}
}
}
}
.m-tb {
margin-top: 20px;
}
</style>

8
src/views/modules/shequzhili/csgltc/csglForm.vue

@ -307,7 +307,7 @@ export default {
// map TMap.Map() // map TMap.Map()
map = new window.TMap.Map(document.getElementById('app'), { map = new window.TMap.Map(document.getElementById('app'), {
center: center, // center: center, //
zoom: 17.2, // zoom: 16.2, //
pitch: 43.5, // pitch: 43.5, //
rotation: 45 // rotation: 45 //
}) })
@ -352,9 +352,11 @@ export default {
markers.setGeometries([]) markers.setGeometries([])
// //
search search
.searchRectangle({ .searchNearby({
keyword: this.formData.address, keyword: this.formData.address,
bounds: map.getBounds() radius: 1000,
autoExtend: true,
center: map.getCenter(),
}) })
.then((result) => { .then((result) => {
let { data } = result let { data } = result

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

@ -625,7 +625,7 @@ export default {
// map TMap.Map() // map TMap.Map()
map = new window.TMap.Map(document.getElementById("app"), { map = new window.TMap.Map(document.getElementById("app"), {
center: center, // center: center, //
zoom: 17.2, // zoom: 16.2, //
pitch: 43.5, // pitch: 43.5, //
rotation: 45, // rotation: 45, //
}); });
@ -670,9 +670,11 @@ export default {
markers.setGeometries([]); markers.setGeometries([]);
// //
search search
.searchRectangle({ .searchNearby({
keyword: this.keyWords, keyword: this.keyWords,
bounds: map.getBounds(), radius: 1000,
autoExtend: true,
center: map.getCenter(),
}) })
.then((result) => { .then((result) => {
let { data } = result; let { data } = result;

8
src/views/modules/shequzhili/ggfwtc/ggfwForm.vue

@ -284,7 +284,7 @@ export default {
// map TMap.Map() // map TMap.Map()
map = new window.TMap.Map(document.getElementById('app'), { map = new window.TMap.Map(document.getElementById('app'), {
center: center, // center: center, //
zoom: 17.2, // zoom: 16.2, //
pitch: 43.5, // pitch: 43.5, //
rotation: 45 // rotation: 45 //
}) })
@ -329,9 +329,11 @@ export default {
markers.setGeometries([]) markers.setGeometries([])
// //
search search
.searchRectangle({ .searchNearby({
keyword: this.formData.address, keyword: this.formData.address,
bounds: map.getBounds() radius: 1000,
autoExtend: true,
center: map.getCenter(),
}) })
.then((result) => { .then((result) => {
let { data } = result let { data } = result

Loading…
Cancel
Save