Browse Source

Merge branch 'dev-数据对比' into dev

dev-用户反馈
dai 3 years ago
parent
commit
8778409e52
  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. 533
      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
  23. 178
      src/views/modules/shujuduibi/canji.vue
  24. 122
      src/views/modules/shujuduibi/siwang.vue

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

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

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

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

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

@ -728,11 +728,20 @@
<el-form-item label="调动至">
<el-cascader
clearable
:props="{ checkStrictly: true }"
:props="{ checkStrictly: true, multiple: false }"
v-model="selectValue"
: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-form-item>
<el-form-item label="调动原因">
@ -1254,24 +1263,7 @@ export default {
roleList: [],
//
options: [
{
value: "",
label: "",
children: [
{
value: "",
label: "",
children: [],
},
{
value: "",
label: "",
children: [],
},
],
},
],
options: [],
selectValue: [],
//
breadcrumbArr: [],
@ -1358,30 +1350,24 @@ export default {
},
methods: {
// id
handleChange(e) {
this.transferForm.orgId = e[1];
if (this.transferForm.orgId != null || "") {
if (this.transferForm.orgId === 0) {
if (e[2] == null || "") {
this.transferForm.orgType = "dept";
this.transferForm.orgId = "14f572e724eecf7668b655505d789cab";
} else {
this.transferForm.orgId = e[2];
this.transferForm.orgType = "dept";
}
handleChangeTransferCascader(e) {
console.log("*********************");
function findItem(valueArr, coll) {
console.log("--------------------");
console.log(valueArr);
let copyArr = [...valueArr];
let firstValue = copyArr.shift();
let item = coll.find((a) => a.value == firstValue);
console.log(item);
if (copyArr.length > 0) {
return findItem(copyArr, item.children);
} else {
if (e[2] == null || "") {
this.transferForm.orgType = "grid";
this.transferForm.orgId = "63d5ff92ea981b1c58e4914ac894c610";
} else {
this.transferForm.orgId = e[2];
this.transferForm.orgType = "grid";
}
return item;
}
} 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() {
@ -2166,31 +2152,32 @@ export default {
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.options[0].label = data.agencyName;
this.options[0].value = data.agencyId;
console.log("--------", this.options);
let depart = Array.from(data.departmentList);
let gr = Array.from(data.gridList);
depart.forEach((item) => {
const ob = {
value: item.deptId,
label: item.deptName,
};
this.options[0].children[0].children.push(ob);
});
this.options[0].children[0].value = 0;
this.options[0].children[0].label = "部门";
this.options[0].children[1].value = 1;
this.options[0].children[1].label = "网格";
gr.forEach((item) => {
const obj = {
value: item.gridId,
label: item.gridName,
function computeOption(opt) {
return {
label: opt.agencyName,
value: opt.agencyId,
type: "agency",
children: [
...(opt.departmentList || []).map((item) => ({
label: item.deptName,
value: item.deptId,
type: "dept",
typeName: "部门",
})),
...(opt.gridList || []).map((item) => ({
label: item.gridName,
value: item.gridId,
type: "grid",
typeName: "网格",
})),
...(opt.subAgencyList || []).map((item) => computeOption(item)),
],
};
this.options[0].children[1].children.push(obj);
});
}
if (data) {
this.options = [computeOption(data)];
console.log("树树树树树树树树树树", this.options[0]);
}
} else {
this.$message.error("树查询失败", msg);
}
@ -2477,7 +2464,7 @@ export default {
const url = "/gov/org/agency/addagency-v2";
let params = {
parentAgencyId: this.parentAgencyId,
parentAgencyId: this.currentAgencyId,
agencyName: this.agencyForm.agencyName,
level: this.agencyForm.level,
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 = new window.TMap.Map(document.getElementById('app'), {
center: center, //
zoom: 17.2, //
zoom: 16.2, //
pitch: 43.5, //
rotation: 45 //
})
@ -470,9 +470,11 @@ export default {
markers.setGeometries([])
//
search
.searchRectangle({
.searchNearby({
keyword: this.keyWords,
bounds: map.getBounds()
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -1,239 +1,315 @@
<template>
<div class="div_main">
<div v-show="true">
<div class="div_search"
ref="ref_search">
<el-form :inline="true"
ref="ref_searchform"
label-width="100px">
<div class="div_search" ref="ref_search">
<el-form :inline="true" ref="ref_searchform" label-width="100px">
<div>
<el-form-item v-for="item in searchParams"
:key="'serach' + item.keyName"
:label="item.field"
:prop="item.keyName">
<el-form-item
v-for="item in searchParams"
:key="'serach' + item.keyName"
:label="item.field"
:prop="item.keyName"
>
<template v-if="item.type == 'input'">
<el-input v-model="item.value"
style="width: 240px"
size="small"
clearable
:placeholder="item.placeholder || '请输入'">
<el-input
v-model="item.value"
style="width: 240px"
size="small"
clearable
:placeholder="item.placeholder || '请输入'"
>
</el-input>
</template>
<template v-else-if="item.type == 'select'">
<el-select v-model="item.value"
:placeholder="item.placeholder || '请选择'"
size="small"
clearable
style="width: 240px"
:multiple="item.multiple || false">
<el-option v-for="item in item.optionList"
:key="'serach' + item.keyName + item.value"
:label="item.label"
:value="item.value">
<el-select
v-model="item.value"
:placeholder="item.placeholder || '请选择'"
size="small"
clearable
style="width: 240px"
:multiple="item.multiple || false"
>
<el-option
v-for="item in item.optionList"
:key="'serach' + item.keyName + item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</template>
<template v-else-if="item.type == 'cascader'">
<el-cascader v-model="item.value"
:placeholder="item.placeholder || '请选择'"
:options="item.optionList"
:props="item.optionProps"
:show-all-levels="false"
size="small"
clearable
style="width: 240px"
@change="(e) => handleChangeCascader(e, item)">
<el-cascader
v-model="item.value"
:placeholder="item.placeholder || '请选择'"
:options="item.optionList"
:props="item.optionProps"
:show-all-levels="false"
size="small"
clearable
style="width: 240px"
@change="(e) => handleChangeCascader(e, item)"
>
</el-cascader>
</template>
<template v-if="item.type == 'date-range'">
<el-date-picker v-model="item.supValues[0]"
type="date"
placeholder="开始时间"
style="width: 150px"
value-format="yyyy-MM-dd"
clearable>
<el-date-picker
v-model="item.supValues[0]"
type="date"
placeholder="开始时间"
style="width: 150px"
value-format="yyyy-MM-dd"
clearable
>
</el-date-picker>
<span style="display: inline-block; margin: 0 10px"></span>
<el-date-picker v-model="item.supValues[1]"
type="date"
placeholder="结束时间"
style="width: 150px"
value-format="yyyy-MM-dd"
clearable>
<el-date-picker
v-model="item.supValues[1]"
type="date"
placeholder="结束时间"
style="width: 150px"
value-format="yyyy-MM-dd"
clearable
>
</el-date-picker>
</template>
</el-form-item>
<el-button style="margin-left: 30px; margin-bottom: 20px"
size="small"
class="diy-button--search"
@click="handleSearch">查询</el-button>
<el-button style="margin-left: 10px; margin-bottom: 20px"
size="small"
class="diy-button--reset"
@click="resetSearch">重置</el-button>
<el-button
style="margin-left: 30px; margin-bottom: 20px"
size="small"
class="diy-button--search"
@click="handleSearch"
>查询</el-button
>
<el-button
style="margin-left: 10px; margin-bottom: 20px"
size="small"
class="diy-button--reset"
@click="resetSearch"
>重置</el-button
>
</div>
</el-form>
</div>
<div class="div_table"
:style="{ height: maxTableHeight + 130 + 'px' }">
<div class="div_table" :style="{ height: maxTableHeight + 130 + 'px' }">
<div class="div_btn">
<el-button class="diy-button--add"
v-if="addUrl"
size="small"
@click="handleAdd">新增</el-button>
<el-button v-if="mubanUrl"
class="btn_upload diy-button--export"
size="small"
@click="handleExportModule('room')">下载模板</el-button>
<el-upload :headers="$getElUploadHeaders()"
v-if="importUrl"
ref="upload"
class="upload-btn"
action="uploadUlr"
:limit="1"
: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-button
class="diy-button--add"
v-if="addUrl"
size="small"
@click="handleAdd"
>新增</el-button
>
<el-button
v-if="mubanUrl"
class="btn_upload diy-button--export"
size="small"
@click="handleExportModule('room')"
>下载模板</el-button
>
<el-upload
:headers="$getElUploadHeaders()"
v-if="importUrl"
ref="upload"
class="upload-btn"
action="uploadUlr"
:limit="1"
: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-button v-if="exportUrl"
@click="handleExport"
class="btn_upload diy-button--reset"
size="small">导出</el-button>
<el-button
v-if="exportUrl"
@click="handleExport"
class="btn_upload diy-button--reset"
size="small"
>导出</el-button
>
<el-button
v-if="delMultipleUrl"
size="small"
@click="handleDeleteMultiple"
>批量删除</el-button
>
<slot
name="listBtn"
v-bind:multipleSelection="multipleSelection"
></slot>
</div>
<el-table ref="ref_table"
:data="tableData"
border
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
class="table"
style="width: 100%"
:height="maxTableHeight">
<template v-for="item in tableParams"
:prop="item.keyName">
<el-table-column v-if="item.type == 'no'"
:key="'table-no' + item.keyName"
:label="item.field"
fixed="left"
type="index"
align="center"
width="50" />
<el-table-column v-else-if="item.type == 'text'"
:key="'table' + item.keyName"
:prop="item.keyName"
:label="item.field"
align="center"
:width="item.width || ''"
:show-overflow-tooltip="true">
<el-table
ref="ref_table"
:data="tableData"
border
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
class="table"
style="width: 100%"
:height="maxTableHeight"
@selection-change="handleSelectionChange"
>
<template v-for="(item, index) in tableParams" :prop="item.keyName">
<el-table-column
v-if="item.type == 'selection'"
:key="'table-selection' + index"
type="selection"
align="center"
width="50"
/>
<el-table-column
v-if="item.type == 'no'"
:key="'table-no' + item.keyName"
:label="item.field"
fixed="left"
type="index"
align="center"
width="50"
/>
<el-table-column
v-else-if="item.type == 'text'"
:key="'table' + item.keyName"
:prop="item.keyName"
:label="item.field"
align="center"
:width="item.width || ''"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column v-else-if="item.type == 'array'"
:key="'table-array' + item.keyName"
:prop="item.keyName"
:label="item.field"
align="center"
:width="item.width || ''"
:show-overflow-tooltip="true">
<el-table-column
v-else-if="item.type == 'array'"
:key="'table-array' + item.keyName"
:prop="item.keyName"
:label="item.field"
align="center"
:width="item.width || ''"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
{{ scope.row[item.keyName].join(item.arrayDiv || ",") }}
</template>
</el-table-column>
</template>
<el-table-column fixed="right"
label="操作"
align="center"
width="200">
<el-table-column
v-if="operateCol"
fixed="right"
label="操作"
align="center"
width="200"
>
<template slot-scope="scope">
<slot name="listBtnbefore"
v-bind:item="scope.row"></slot>
<el-button v-if="infoUrl && infoAuth(scope.row)"
@click="handleWatch(scope.row)"
type="text"
size="small"
class=".div-table-button--detail">查看</el-button>
<el-button v-if="editUrl && editAuth(scope.row)"
@click="handleEdit(scope.row)"
type="text"
size="small"
class="div-table-button--edit">{{ editBtnName(scope.row) }}</el-button>
<el-popconfirm v-if="delUrl && delAuth(scope.row)"
title="删除之后无法回复,确认删除?"
@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>
<slot name="listBtnbefore" v-bind:item="scope.row"></slot>
<el-button
v-if="infoUrl && infoAuth(scope.row)"
@click="handleWatch(scope.row)"
type="text"
size="small"
class=".div-table-button--detail"
>查看</el-button
>
<el-button
v-if="editUrl && editAuth(scope.row)"
@click="handleEdit(scope.row)"
type="text"
size="small"
class="div-table-button--edit"
>{{ editBtnName(scope.row) }}</el-button
>
<el-popconfirm
v-if="delUrl && delAuth(scope.row)"
title="删除之后无法回复,确认删除?"
@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>
<slot name="listBtnSup"
v-bind:item="scope.row"></slot>
<slot name="listBtnSup" v-bind:item="scope.row"></slot>
</template>
</el-table-column>
</el-table>
<div>
<el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-sizes="[20, 50, 100, 200]"
:page-size="parseInt(pageSize)"
layout="sizes, prev, pager, next, total"
:total="total">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-sizes="[20, 50, 100, 200]"
:page-size="parseInt(pageSize)"
layout="sizes, prev, pager, next, total"
:total="total"
>
</el-pagination>
</div>
</div>
</div>
<!-- 修改弹出框 -->
<el-dialog v-if="formShow"
:visible.sync="formShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
:width="editParamsDiv ? '1100px' : '850px'"
top="5vh"
class="dialog-h"
@closed="handleClose">
<edit-form v-if="formShow"
ref="editForm"
:idName="idName"
:formId="formId"
:formType="formType"
:infoUrl="infoUrl"
:addUrl="addUrl"
:editUrl="editUrl"
:editParams="editParams"
:editParamsDiv="editParamsDiv"
:editElseRules="editElseRules"
:editFixedParams="editFixedParams"
:formBtnFixed="formBtnFixed"
:editConfig="editConfig"
@close="handleClose"
@afterEdit="handleEditSuccess">
<el-dialog
v-if="formShow"
:visible.sync="formShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
:width="editParamsDiv ? '1100px' : '850px'"
top="5vh"
class="dialog-h"
@closed="handleClose"
>
<edit-form
v-if="formShow"
ref="editForm"
:idName="idName"
:formId="formId"
:formType="formType"
:infoUrl="infoUrl"
:addUrl="addUrl"
:editUrl="editUrl"
:editParams="editParams"
:editParamsDiv="editParamsDiv"
:editElseRules="editElseRules"
:editFixedParams="editFixedParams"
:formBtnFixed="formBtnFixed"
:editConfig="editConfig"
@close="handleClose"
@afterEdit="handleEditSuccess"
>
<template v-slot:bottomSup="{ id, formType, info }">
<slot name="editBottomSup"
v-bind:id="id"
v-bind:formType="formType"
v-bind:info="info"></slot>
<slot
name="editBottomSup"
v-bind:id="id"
v-bind:formType="formType"
v-bind:info="info"
></slot>
</template>
<template v-slot:operateSup="{ id, formType, info }">
<slot name="editOperateSup"
v-bind:id="id"
v-bind:formType="formType"
v-bind:info="info"></slot>
<slot
name="editOperateSup"
v-bind:id="id"
v-bind:formType="formType"
v-bind:info="info"
></slot>
</template>
</edit-form>
</el-dialog>
@ -282,6 +358,10 @@ export default {
type: String,
default: "",
},
delMultipleUrl: {
type: String,
default: "",
},
infoUrl: {
type: String,
default: "",
@ -346,9 +426,19 @@ export default {
type: Boolean,
default: true,
},
operateCol: {
type: Boolean,
default: true,
},
cookTableData: {
type: Function,
default: (val) => val,
},
},
data () {
data() {
return {
tableData: [],
@ -362,11 +452,13 @@ export default {
formType: "", // list add edit info
ref_search_height: 100,
multipleSelection: [],
};
},
computed: {
maxTableHeight () {
maxTableHeight() {
const { ref_search_height } = this;
return this.$store.state.inIframe
? this.clientHeight - ref_search_height - 265 + this.iframeHeight
@ -377,7 +469,7 @@ export default {
watch: {},
async mounted () {
async mounted() {
console.log(this.$store.state);
this.user = this.$store.state.user;
@ -391,19 +483,24 @@ export default {
this.computeSearchHeight();
},
activated () {
activated() {
console.log("-------------activated");
this.$refs["ref_table"].doLayout();
},
methods: {
computeSearchHeight () {
handleSelectionChange(val) {
console.log(val);
this.multipleSelection = val;
},
computeSearchHeight() {
this.ref_search_height = this.$refs["ref_search"].clientHeight;
console.log(this.$refs["ref_search"]);
console.log(this.ref_search_height);
},
iniSearchData () {
iniSearchData() {
const { searchParams } = this;
searchParams.forEach((item, index) => {
if (item.type == "select" || item.type == "cascader") {
@ -419,7 +516,7 @@ export default {
});
},
async getFmOptions (index, url, params, cookFn) {
async getFmOptions(index, url, params, cookFn) {
const { data, code, msg } = await requestPost(url, {
...params,
});
@ -432,19 +529,19 @@ export default {
}
},
handleChangeCascader (vals, item) {
handleChangeCascader(vals, item) {
if (typeof item.handleChangeFn == "function") {
item.handleChangeFn(vals, item);
}
},
handleSearch (val) {
handleSearch(val) {
this.pageNo = 1;
this.getTableData();
},
beforeExcelUpload (file) {
beforeExcelUpload(file) {
console.log("file", file);
const isType = file.type === "application/vnd.ms-excel";
const isTypeComputer =
@ -462,7 +559,7 @@ export default {
return fileType && isLt1M;
},
async uploadHttpRequest (file) {
async uploadHttpRequest(file) {
let { importUrl: url } = this;
if (!url) return;
@ -491,7 +588,7 @@ export default {
});
},
async handleExportModule () {
async handleExportModule() {
let { mubanUrl: url } = this;
if (!url) return;
@ -528,7 +625,7 @@ export default {
});
},
async handleExport () {
async handleExport() {
const { exportUrl: url } = this;
if (!url) return;
@ -566,13 +663,13 @@ export default {
});
},
handleAdd () {
handleAdd() {
this.formType = "add";
this.formTitle = "新增";
this.formShow = true;
},
handleWatch (row) {
handleWatch(row) {
const { idName } = this;
this.formType = "watch";
this.formId = row[idName];
@ -580,7 +677,7 @@ export default {
this.formShow = true;
},
handleEdit (row) {
handleEdit(row) {
const { idName } = this;
this.formType = "edit";
this.formId = row[idName];
@ -588,17 +685,35 @@ export default {
this.formShow = true;
},
handleClose () {
handleClose() {
this.formShow = false;
this.getTableData();
},
handleEditSuccess () {
handleEditSuccess() {
this.handleClose();
// this.getTableData();
},
async handleDelete (rowData, rowIndex) {
async handleDeleteMultiple() {
let { delMultipleUrl: url } = this;
if (!url) return;
const { multipleSelection, idName } = this;
const { data, code, msg } = await requestPost(url, [
...multipleSelection.map((item) => item[idName]),
]);
if (code === 0) {
this.$message.success("批量删除成功!");
this.getTableData();
} else {
this.$message.error("操作失败!");
}
},
async handleDelete(rowData, rowIndex) {
console.log(rowData, rowIndex);
let { delUrl: url } = this;
if (!url) return;
@ -621,7 +736,7 @@ export default {
}
},
computeFmData () {
computeFmData() {
let fmData = {};
this.searchParams.forEach((item) => {
fmData[item.keyName] = item.value;
@ -634,11 +749,11 @@ export default {
return fmData;
},
refresh () {
refresh() {
this.getTableData();
},
async getTableData () {
async getTableData() {
const { tableUrl: url } = this;
if (!url) return;
@ -651,27 +766,23 @@ export default {
if (code === 0) {
this.total = data.total || 0;
this.tableData = data.list
? data.list.map((item) => {
return item;
})
: [];
this.tableData = data.list ? this.cookTableData(data.list) : [];
} else {
this.$message.error(msg);
}
},
handleSizeChange (val) {
handleSizeChange(val) {
this.pageSize = val;
window.localStorage.setItem("pageSize", val);
this.getTableData();
},
handleCurrentChange (val) {
handleCurrentChange(val) {
this.pageNo = val;
this.getTableData();
},
resetSearch () {
resetSearch() {
console.log("----------------resetSearch", this.searchParams);
this.searchParams.forEach((item) => {
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([]);
//
search
.searchRectangle({
.searchNearby({
keyword: this.dataForm.address,
bounds: map.getBounds(),
radius: 1000,
autoExtend: true,
center: map.getCenter(),
})
.then((result) => {
let { data } = result;

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

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

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

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

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

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

178
src/views/modules/shujuduibi/canji.vue

@ -0,0 +1,178 @@
<template>
<div>
<base-page
ref="basePage"
:searchParams="searchParams"
:tableParams="tableParams"
:tableUrl="tableUrl"
:delMultipleUrl="delMultipleUrl"
:infoUrl="infoUrl"
:exportUrl="exportUrl"
:editParams="editParams"
:editParamsDiv="5"
idName="id"
>
<template v-slot:listBtn="{ multipleSelection }">
<el-button @click="handleSyncMultiple(multipleSelection)" size="small"
>批量更新</el-button
>
</template>
<template v-slot:listBtnSup="{ item }">
<el-button type="text" @click="handleSync(item)" size="small"
>全部更新</el-button
>
</template>
<template v-slot:editBottomSup="{ id, info }">
<div class="m-duibi">
<h3>对比信息</h3>
<el-table
:data="cookInfo(info)"
style="width: 100%"
:row-class-name="tableRowClassName"
>
<el-table-column prop="resiInfo" label="数据库信息">
</el-table-column>
<el-table-column prop="result" label="结果"></el-table-column>
</el-table>
</div>
</template>
</base-page>
</div>
</template>
<script>
import basePage from "@/views/modules/cpts/base/index";
import { requestPost } from "@/js/dai/request";
export default {
props: {},
data() {
return {
searchParams: [
{ field: "姓名", keyName: "name", type: "input" },
{ field: "证件号", keyName: "idCard", type: "input" },
{ field: "手机", keyName: "mobile", type: "input" },
],
tableParams: [
{ field: "选择框", keyName: "", type: "selection" },
{ field: "序号", keyName: "", type: "no" },
{ field: "姓名", keyName: "name", type: "text" },
{ field: "证件号", keyName: "idCard", type: "text", width: 200 },
{ field: "手机", keyName: "mobile", type: "text", width: 120 },
{ field: "性别", keyName: "genderCn", type: "text" },
{ field: "民族", keyName: "mzCn", type: "text" },
{ field: "家庭住址", keyName: "address", type: "text" },
{ field: "残疾类别", keyName: "cjlbCn", type: "text" },
{ field: "残疾等级", keyName: "cjzkCn", type: "text" },
{ field: "残疾证号", keyName: "cardNum", type: "text", width: 200 },
{ field: "监护人", keyName: "guardian", type: "text" },
{ field: "状态", keyName: "dealStatusName", type: "text" },
{ field: "失败原因", keyName: "dealResult", type: "text" },
],
tableUrl: "/epmetuser/dataSyncRecordDisability/page",
delMultipleUrl: "/epmetuser/dataSyncRecordDisability/delete",
infoUrl: "/epmetuser/dataSyncRecordDisability/detail/",
// delUrl: "/gov/org/icDangerousChemicals/del",
exportUrl: "/epmetuser/dataSyncRecordDisability/export",
editParams: [
{ field: "姓名", keyName: "name", type: "input" },
{ field: "证件号", keyName: "idCard", type: "input" },
{ field: "手机", keyName: "mobile", type: "input" },
{ field: "性别", keyName: "genderCn", type: "input" },
{ field: "民族", keyName: "mzCn", type: "input" },
{ field: "家庭住址", keyName: "address", type: "input" },
{ field: "残疾类别", keyName: "cjlbCn", type: "input" },
{ field: "残疾等级", keyName: "cjzkCn", type: "input" },
{ field: "残疾证号", keyName: "cardNum", type: "input" },
{ field: "监护人", keyName: "guardian", type: "input" },
{ field: "状态", keyName: "dealStatusName", type: "input" },
{ field: "失败原因", keyName: "dealResult", type: "input" },
],
};
},
components: { basePage },
computed: {},
watch: {},
async mounted() {},
methods: {
cookInfo(info) {
let arr = [
{ field: "姓名", keyName: "name", type: "text" },
{ field: "证件号", keyName: "idCard", type: "text" },
{ field: "手机", keyName: "mobile", type: "text" },
{ field: "性别", keyName: "genderCn", type: "text" },
{ field: "民族", keyName: "mzCn", type: "text" },
{ field: "家庭住址", keyName: "address", type: "text" },
{ field: "残疾类别", keyName: "cjlbCn", type: "text" },
{ field: "残疾等级", keyName: "cjzkCn", type: "text" },
{ field: "残疾证号", keyName: "cardNum", type: "text" },
{ field: "监护人", keyName: "guardian", type: "text" },
];
return arr.map((item) => {
let val = (info && info[item.keyName]) || "--";
let resiVal =
(info && info.resiInfo && info.resiInfo[item.keyName]) || "--";
return {
resiInfo: item.field + ":" + resiVal,
result: resiVal == val ? "一致" : "不一致",
};
});
},
tableRowClassName({ row }) {
if (row.result === "不一致") {
return "z-stress";
}
return "";
},
async handleSync(item) {
const { data, code, msg } = await requestPost(
"/epmetuser/dataSyncRecordDisability/batchUpdate",
[item["id"]]
);
if (code === 0) {
this.$message.success("更新成功!");
this.$refs.basePage.getTableData();
} else {
this.$message.error("操作失败!");
}
},
async handleSyncMultiple(multipleSelection) {
const { data, code, msg } = await requestPost(
"/epmetuser/dataSyncRecordDisability/batchUpdate",
[...multipleSelection.map((item) => item["id"])]
);
if (code === 0) {
this.$message.success("批量更新成功!");
this.$refs.basePage.getTableData();
} else {
this.$message.error("操作失败!");
}
},
},
};
</script>
<style lang="scss" scoped>
.m-duibi {
padding: 10px;
}
::v-deep .el-table .z-stress {
background: oldlace;
}
</style>

122
src/views/modules/shujuduibi/siwang.vue

@ -0,0 +1,122 @@
<template>
<div>
<base-page
ref="basePage"
:searchParams="searchParams"
:tableParams="tableParams"
:tableUrl="tableUrl"
:delMultipleUrl="delMultipleUrl"
:infoUrl="infoUrl"
:exportUrl="exportUrl"
:editParams="editParams"
:cookTableData="cookTableData"
idName="id"
>
<template v-slot:listBtn="{ multipleSelection }">
<el-button @click="handleSyncMultiple(multipleSelection)" size="small"
>批量更新</el-button
>
</template>
<template v-slot:listBtnSup="{ item }">
<el-button type="text" @click="handleSync(item)" size="small"
>全部更新</el-button
>
</template>
</base-page>
</div>
</template>
<script>
import basePage from "@/views/modules/cpts/base/index";
import { requestPost } from "@/js/dai/request";
export default {
props: {},
data() {
return {
searchParams: [
{ field: "姓名", keyName: "name", type: "input" },
{ field: "证件号", keyName: "idCard", type: "input" },
],
tableParams: [
{ field: "选择框", keyName: "", type: "selection" },
{ field: "序号", keyName: "", type: "no" },
{ field: "姓名", keyName: "name", type: "text" },
{ field: "证件号", keyName: "idCard", type: "text", width: 200 },
{ field: "死亡日期", keyName: "deathDate", type: "text", width: 120 },
{ field: "现年龄", keyName: "age", type: "text" },
{ field: "家庭住址", keyName: "address", type: "text" },
{ field: "状态", keyName: "dealStatusName", type: "text" },
{ field: "失败原因", keyName: "dealResult", type: "text" },
],
tableUrl: "/epmetuser/dataSyncRecordDeath/page",
delMultipleUrl: "/epmetuser/dataSyncRecordDeath/delete",
infoUrl: "/epmetuser/dataSyncRecordDeath/detail/",
// delUrl: "/gov/org/icDangerousChemicals/del",
exportUrl: "/epmetuser/dataSyncRecordDeath/export",
editParams: [
{ field: "姓名", keyName: "name", type: "input" },
{ field: "证件号", keyName: "idCard", type: "input" },
{ field: "死亡日期", keyName: "deathDate", type: "input" },
{ field: "现年龄", keyName: "age", type: "input" },
{ field: "家庭住址", keyName: "address", type: "input" },
],
};
},
components: { basePage },
computed: {},
watch: {},
async mounted() {},
methods: {
cookTableData(tableData) {
return tableData.map((item) => {
item.dealStatusName =
!item.dealStatus || item.dealStatus == 0
? "未处理"
: item.dealStatus == 1
? "处理成功"
: "处理失败";
return item;
});
},
async handleSync(item) {
const { data, code, msg } = await requestPost(
"/epmetuser/dataSyncRecordDeath/batchupdate",
[item["id"]]
);
if (code === 0) {
this.$message.success("更新成功!");
this.$refs.basePage.getTableData();
} else {
this.$message.error("操作失败!");
}
},
async handleSyncMultiple(multipleSelection) {
const { data, code, msg } = await requestPost(
"/epmetuser/dataSyncRecordDeath/batchupdate",
[...multipleSelection.map((item) => item["id"])]
);
if (code === 0) {
this.$message.success("批量更新成功!");
this.$refs.basePage.getTableData();
} else {
this.$message.error("操作失败!");
}
},
},
};
</script>
<style lang="scss" scoped></style>
Loading…
Cancel
Save