From 72fd2448497548512523fbc60c4c8dc0262015d7 Mon Sep 17 00:00:00 2001
From: mk <2403457699@qq.com>
Date: Mon, 1 Apr 2024 19:07:47 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9B=BE=E8=B0=B1=E7=BB=84?=
=?UTF-8?q?=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../pages/resiInfo/component/graph/graph.js | 259 +++++
.../pages/resiInfo/component/graph/graph.json | 6 +
.../pages/resiInfo/component/graph/graph.wxml | 4 +
.../pages/resiInfo/component/graph/graph.wxss | 9 +
.../searchResult/pages/resiInfo/resiInfo.js | 907 ++++++++++++++++++
.../searchResult/pages/resiInfo/resiInfo.json | 7 +
.../searchResult/pages/resiInfo/resiInfo.wxml | 126 +++
.../searchResult/pages/resiInfo/resiInfo.wxss | 241 +++++
8 files changed, 1559 insertions(+)
create mode 100644 subpages/searchResult/pages/resiInfo/component/graph/graph.js
create mode 100644 subpages/searchResult/pages/resiInfo/component/graph/graph.json
create mode 100644 subpages/searchResult/pages/resiInfo/component/graph/graph.wxml
create mode 100644 subpages/searchResult/pages/resiInfo/component/graph/graph.wxss
create mode 100644 subpages/searchResult/pages/resiInfo/resiInfo.js
create mode 100644 subpages/searchResult/pages/resiInfo/resiInfo.json
create mode 100644 subpages/searchResult/pages/resiInfo/resiInfo.wxml
create mode 100644 subpages/searchResult/pages/resiInfo/resiInfo.wxss
diff --git a/subpages/searchResult/pages/resiInfo/component/graph/graph.js b/subpages/searchResult/pages/resiInfo/component/graph/graph.js
new file mode 100644
index 0000000..7ba4f33
--- /dev/null
+++ b/subpages/searchResult/pages/resiInfo/component/graph/graph.js
@@ -0,0 +1,259 @@
+import * as echarts from '../../../../../../ec-canvas/ec-canvas';
+import api from "../../../../../../utils/api";
+var chart;
+var listdata = [];
+var links = [];
+var legendes = ["手机IMSI", "人脸ID", "车牌号码", "人脸ID"];
+var texts = [];
+// function initChart(canvas, width, height, dpr) {
+// chart = echarts.init(canvas, null, {
+// width: width,
+// height: height,
+// devicePixelRatio: dpr // 像素比
+// });
+// canvas.setChart(chart);
+
+
+// return chart;
+// }
+
+Component({
+ properties: {
+ resid: {
+ type: String,
+ value: '',
+ observer(val) {
+ this.getData()
+ }
+ }
+ },
+ data: {
+ ec: {
+ lazyLoad: true
+ },
+ },
+
+ lifetimes: {
+ ready() {
+ console.log(this.data.resid);
+ this.getData()
+ }
+ },
+ methods: {
+
+ getData() {
+ this.selectComponent('#hotlineComplaints').init((canvas, width, height, dpr) => {
+ // chart = echarts.init(canvas, null, {
+ // width: width,
+ // height: height,
+ // devicePixelRatio: dpr // 像素比
+ // });
+ // canvas.setChart(chart);
+ let params = {
+ type: 0,
+ resid: this.data.resiId
+ }
+ api.getFamilyRelationshipList(params).then(({
+ data
+ }) => {
+ console.log(data);
+ var phoneNum = {
+ "手机号:13856978256": "13856978256",
+ "手机号:13998745632": "13998745632",
+ "手机号:18812345678": "18812345678",
+ "手机号:16812345678": "16812345678",
+ "手机号:13856971111": "13856978256",
+ "手机号:13998742222": "13998745632",
+ "手机号:18812344444": "18812345678",
+ "手机号:16812343333": "16812345678",
+ "手机号:13878978256": "13856978256",
+ "手机号:137895632": "13998745632",
+ };
+
+ var phoneIMSI = ["次数:1,匹配度:6%", "次数:3,匹配度:30%", "次数:2,匹配度:26%",
+ "次数:2,匹配度:26%", "次数:2,匹配度:26%", "次数:2,匹配度:26%",
+ "匹配手机号码", "匹配手机号码", "匹配手机号码", "匹配手机号码"
+ ]
+
+
+ var carNum = {
+ "车牌号码:豫AJ9685": "豫AJ9685",
+ "车牌号码:豫AG5123": "豫AG5123",
+ "车牌号码:豫AG6822": "豫AG6822",
+ "车牌号码:豫CJ9685": "豫AJ9685",
+ "车牌号码:豫AD5123": "豫AG5123",
+ "车牌号码:豫AT6822": "豫AG6822",
+ "车牌号码:豫AG6622": "豫AG6822",
+ "车牌号码:豫CJ9885": "豫AJ9685",
+ }
+ const relationShipCar = ["匹配车牌号码", "匹配车牌号码", "匹配车牌号码", "匹配车牌号码", "匹配车牌号码", "匹配车牌号码", "匹配车牌号码", "匹配车牌号码", "匹配车牌号码"]
+ this.setDataPhone(phoneNum, 0);
+ this.setDataCar(carNum, 2);
+ this.setDataPerson(mainRelationShip, 3);
+ this.setLinkData(phoneNum, phoneIMSI, legendes[3]);
+ this.setLinkData(carNum, relationShipCar, legendes[3]);
+ let option = {
+ title: {
+ text: "关系图绑定点击事件",
+ top: "top",
+ left: "left",
+ textStyle: {
+ color: '#000000'
+ }
+ },
+ tooltip: {
+ formatter: '{b}'
+ },
+
+ backgroundColor: '#f7f7f7',
+ legend: {
+ data: legendes,
+ textStyle: {
+ color: '#000000'
+ },
+ icon: 'circle',
+ type: 'scroll',
+ orient: 'vertical',
+ left: 10,
+ top: 20,
+ bottom: 20,
+ itemWidth: 10,
+ itemHeight: 10
+ },
+ animationDuration: 1000,
+ animationEasingUpdate: 'quinticInOut',
+ series: [{
+ type: 'graph',
+ layout: 'force',
+ force: {
+ repulsion: 80,
+ gravity: 0,
+ edgeLength: 150,
+ layoutAnimation: true,
+ },
+ data: listdata,
+ links: links,
+ categories: texts,
+ roam: false,
+ nodeScaleRatio: 0,
+ focusNodeAdjacency: false,
+ lineStyle: {
+ normal: {
+ opacity: 0.5,
+ width: 1.5,
+ curveness: 0
+ }
+ },
+ label: {
+ normal: {
+ show: true,
+ position: 'inside',
+ textStyle: {
+ color: '#000000',
+ fontWeight: 'normal',
+ fontSize: "12" //字体大小
+ },
+ formatter: function (params) {
+ return params.data.showName
+ },
+ fontSize: 18,
+ fontStyle: '600',
+ }
+ },
+ edgeLabel: {
+ normal: {
+ show: true,
+ textStyle: {
+ fontSize: 12
+ },
+ formatter: "{c}"
+ }
+ }
+ }],
+ color: ['#e8b842', '#41b1ef', '#667aed', '#347fbb', '#772cdc',
+ '#ff69b4', '#ba55d3', '#cd5c5c', '#ffa500', '#40e0d0'
+ ]
+ }
+ chart.setOption(option);
+ })
+ return chart;
+ });
+ },
+ setDataPhone(json, n) {
+ var i = 0;
+ for (var p in json) {
+ listdata.push({
+ x: i * 50,
+ y: size + i * 10,
+ "name": p,
+ "showName": json[p],
+ "symbol": 'image://' + "/asset/get/s/data-1561621386236-0IGCc48l6.png",
+ "symbolSize": size,
+ "category": n,
+ "draggable": "false",
+ formatter: function (params) {
+ return params.data.showName
+ },
+ label: {
+ position: 'bottom'
+ }
+ });
+ i++;
+ }
+ },
+ setDataCar(json, n) {
+ var i = 0;
+ for (var p in json) {
+ listdata.push({
+ x: i * 50,
+ y: size + i * 10,
+ "name": p,
+ "showName": json[p],
+ "symbol": 'image://' + "/asset/get/s/data-1561621379686-rZHoryrBV.png",
+ "symbolSize": size,
+ "category": n,
+ "draggable": "false",
+ formatter: function (params) {
+ return params.data.showName
+ },
+ label: {
+ position: 'bottom'
+ }
+ });
+ i++;
+ }
+ },
+ setLinkData(json, relarr, title) {
+ if (relarr !== "") {
+ var i = 0;
+ for (var p in json) {
+ links.push({
+ "source": p,
+ "target": title,
+ "value": relarr[i],
+ lineStyle: {
+ normal: {
+ // text: relarr[i],
+ color: 'source'
+ }
+ }
+ });
+ i++;
+ }
+ } else {
+ for (var p2 in json) {
+ links.push({
+ "source": p2,
+ "target": title,
+ "value": "",
+ lineStyle: {
+ normal: {
+ color: 'source'
+ }
+ }
+ });
+ }
+ }
+ }
+ }
+});
\ No newline at end of file
diff --git a/subpages/searchResult/pages/resiInfo/component/graph/graph.json b/subpages/searchResult/pages/resiInfo/component/graph/graph.json
new file mode 100644
index 0000000..6031717
--- /dev/null
+++ b/subpages/searchResult/pages/resiInfo/component/graph/graph.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "ec-canvas": "../../../../../../ec-canvas/ec-canvas"
+ }
+}
\ No newline at end of file
diff --git a/subpages/searchResult/pages/resiInfo/component/graph/graph.wxml b/subpages/searchResult/pages/resiInfo/component/graph/graph.wxml
new file mode 100644
index 0000000..2cced87
--- /dev/null
+++ b/subpages/searchResult/pages/resiInfo/component/graph/graph.wxml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/subpages/searchResult/pages/resiInfo/component/graph/graph.wxss b/subpages/searchResult/pages/resiInfo/component/graph/graph.wxss
new file mode 100644
index 0000000..f7895b6
--- /dev/null
+++ b/subpages/searchResult/pages/resiInfo/component/graph/graph.wxss
@@ -0,0 +1,9 @@
+/* subpages/searchResult/pages/resiInfo/modules/graph/graph.wxss */
+ec-canvas {
+ width: 100%;
+ height: 100%;
+}
+.hotlineComplaints {
+ width: 100%;
+ height: 318rpx;
+}
\ No newline at end of file
diff --git a/subpages/searchResult/pages/resiInfo/resiInfo.js b/subpages/searchResult/pages/resiInfo/resiInfo.js
new file mode 100644
index 0000000..b94c446
--- /dev/null
+++ b/subpages/searchResult/pages/resiInfo/resiInfo.js
@@ -0,0 +1,907 @@
+// subpages/searchResult/pages/resiInfo/resiInfo.js
+import api from "../../../../utils/api"
+var http = require('../../../../utils/request.js')
+const QQMapWX = require('../../../../utils/qqmap-wx-jssdk')
+const app = getApp()
+var timerId = null;
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ checkPassword:false,
+ form: {},
+ resiId: "",
+ punchFlag: null,
+ currentTime: '',
+ address: '',
+ longitude: '',
+ latitude: '',
+ agencyLevel: '',
+ recentTime: '',
+ lastLog: {},
+ tabList: [],
+ originalExpandList: [{
+ id: "healthDto",
+ title: "残疾信息",
+ scrollId: "disability",
+ children: [{
+ label: "残疾类别",
+ itemType: "select1",
+ formName: "disabilityCategoryCode",
+ opctionUrl: "sys/dict/data/dictlist",
+ opctionParams: {
+ dictType: "disability_category_code"
+ },
+ opction: [],
+ },
+ {
+ label: "残疾等级",
+ itemType: "select1",
+ formName: "disabilityLevel",
+ opctionUrl: "sys/dict/data/dictlist",
+ opctionParams: {
+ dictType: "disability_level"
+ },
+ opction: [],
+ },
+ {
+ label: "残疾证号",
+ itemType: "input1",
+ formName: "disabilityNum",
+ },
+ {
+ label: "残疾说明",
+ itemType: "input1",
+ formName: "disabilityDesc",
+ },
+ {
+ label: "监护人",
+ itemType: "radio1",
+ formName: "guardianFlag",
+ opction: [{
+ label: "有",
+ formName: "",
+ value: 1
+ },
+ {
+ label: "无",
+ formName: "",
+ value: 0
+ },
+ ],
+ },
+ {
+ label: "监护人姓名",
+ itemType: "input1",
+ formName: "guardianName",
+ },
+ {
+ label: "监护人联系电话",
+ itemType: "input1",
+ formName: "guardianMobile",
+ },
+ {
+ label: "技能特长",
+ itemType: "radio1",
+ formName: "specialSkillFlag",
+ opction: [{
+ label: "有",
+ formName: "",
+ value: 1
+ },
+ {
+ label: "无",
+ formName: "",
+ value: 0
+ },
+ ],
+ },
+ {
+ label: "劳动能力",
+ itemType: "radio1",
+ formName: "workCapacityFlag",
+ opction: [{
+ label: "有",
+ formName: "",
+ value: 1
+ },
+ {
+ label: "无",
+ formName: "",
+ value: 0
+ },
+ ],
+ },
+ ],
+ },
+ {
+ id: "seriousIllnessDto",
+ title: "大病信息",
+ scrollId: "serious_illness",
+ children: [{
+ label: "所患大病",
+ itemType: "checkbox",
+ formName: "illnessCodes",
+ opctionUrl: "sys/dict/data/dictlist",
+ opctionParams: {
+ dictType: "illness_code"
+ },
+ opction: [],
+ }, ],
+ },
+ {
+ id: "chronicDiseaseDto",
+ title: "慢病信息",
+ scrollId: "chronic_disease",
+ children: [{
+ label: "所患慢病",
+ itemType: "checkbox",
+ formName: "chronicDiseaseCodes",
+ opctionUrl: "sys/dict/data/dictlist",
+ opctionParams: {
+ dictType: "chronic_disease_code"
+ },
+ opction: [],
+ }, ],
+ },
+ {
+ id: "deathDto",
+ title: "死亡信息",
+ scrollId: "death",
+ children: [{
+ label: "死亡时间",
+ itemType: "datepicker1",
+ formName: "deathTime",
+ }, ],
+ },
+ {
+ id: "oldPeopleDto",
+ title: "老年人信息",
+ scrollId: "old_people",
+ children: [{
+ label: "老年人分类",
+ itemType: "checkbox",
+ multiple: true,
+ formName: "oldPeopleCategories",
+ opctionUrl: "sys/dict/data/dictlist",
+ opctionParams: {
+ dictType: "oldPeople_categories"
+ },
+ },
+ {
+ label: "居住情况",
+ itemType: "select1",
+ formName: "resideSituation",
+ opctionUrl: "sys/dict/data/dictlist",
+ opctionParams: {
+ dictType: "reside_situation"
+ },
+ },
+ {
+ label: "高龄补助",
+ itemType: "inputNum",
+ formName: "oldSubsidy",
+ },
+ ],
+ },
+ {
+ id: "subsistenceAllowanceDto",
+ title: "低保信息",
+ scrollId: "subsistence_allowance",
+ children: [{
+ label: "低保类别",
+ itemType: "select1",
+ formName: "category",
+ opctionUrl: "sys/dict/data/dictlist",
+ opctionParams: {
+ dictType: "subsistence_allowance_category"
+ },
+ },
+ {
+ label: "低保享受原因",
+ itemType: "checkbox",
+ formName: "reasons",
+ opctionUrl: "sys/dict/data/dictlist",
+ opctionParams: {
+ dictType: "subsistence_allowance_reasons"
+ },
+ opction: [],
+ },
+ ],
+ },
+ {
+ id: "parymemberInfoDto",
+ title: "党员信息",
+ scrollId: "party_member",
+ children: [{
+ label: "入党时间",
+ itemType: "datepicker1",
+ formName: "joinTime",
+ opction: [],
+ },
+ {
+ label: "转正时间",
+ itemType: "datepicker1",
+ formName: "positiveTime",
+ opction: [],
+ },
+ {
+ label: "所属党组织",
+ itemType: "cascader1",
+ formName: "partyOrgId",
+ opction: [],
+ },
+ {
+ label: "流动党员",
+ itemType: "radio1",
+ formName: "flowFlag",
+ opction: [{
+ label: "是",
+ value: 1
+ },
+ {
+ label: "否",
+ value: 0
+ },
+ ],
+ },
+ {
+ label: "流动党员活动证号",
+ itemType: "input1",
+ formName: "flowActNum",
+ },
+ {
+ label: "职务",
+ itemType: "select1",
+ formName: "partyJob",
+ opctionUrl: "sys/dict/data/dictlist",
+ opctionParams: {
+ dictType: "party_job"
+ },
+ opction: [],
+ },
+ {
+ label: "工作职责",
+ itemType: "input1",
+ formName: "duty",
+ },
+ {
+ label: "是否退休",
+ itemType: "radio1",
+ formName: "retiredFlag",
+ opction: [{
+ label: "是",
+ value: 1
+ },
+ {
+ label: "否",
+ value: 0
+ },
+ ],
+ },
+ {
+ label: "党员中心户",
+ itemType: "radio1",
+ formName: "centerFlag",
+ opction: [{
+ label: "是",
+ value: 1
+ },
+ {
+ label: "否",
+ value: 0
+ },
+ ],
+ },
+ {
+ label: "免学习",
+ itemType: "radio1",
+ formName: "studyNotNeed",
+ opction: [{
+ label: "是",
+ value: 1
+ },
+ {
+ label: "否",
+ value: 0
+ },
+ ],
+ },
+ {
+ label: "入党时所在党支部",
+ itemType: "input1",
+ formName: "joinBranchName",
+ },
+ {
+ label: "组织关系转入社区时间",
+ itemType: "datepicker1",
+ formName: "joinCommunityTime",
+ opction: [],
+ },
+ ],
+ },
+ {
+ id: "ensureHouseDto",
+ title: "保障房信息",
+ scrollId: "ensure_house",
+ children: [{
+ label: "所在社区",
+ itemType: "input1",
+ formName: "liveCommunity",
+ },
+ {
+ label: "住房性质",
+ itemType: "select1",
+ formName: "housingNature",
+ opctionUrl: "sys/dict/data/house",
+ opctionParams: {
+ formCode: "resi_base_info"
+ },
+ opction: [],
+ },
+ ],
+ },
+ {
+ id: "veteranDto",
+ title: "退役军人信息",
+ scrollId: "veteran",
+ children: [{
+ label: "入伍时间",
+ itemType: "datepicker1",
+ formName: "joinArmyTime",
+ opction: [],
+ },
+ {
+ label: "退伍时间",
+ itemType: "datepicker1",
+ formName: "leaveArmyTime",
+ opction: [],
+ },
+ {
+ label: "服役单位",
+ itemType: "input1",
+ formName: "serviceUnit",
+ },
+ {
+ label: "接收单位",
+ itemType: "input1",
+ formName: "receiveUnit",
+ },
+ {
+ label: "待安置补助金",
+ itemType: "inputNum",
+ formName: "settlementAmount",
+ opction: [],
+ },
+ {
+ label: "培训状况",
+ itemType: "input1",
+ formName: "trainDesc",
+ },
+ {
+ label: "现就业情况",
+ itemType: "input1",
+ formName: "employmentSituation",
+ },
+ {
+ label: "是否办理公益性岗位",
+ itemType: "radio1",
+ formName: "pubWelfareJobFlag",
+ opction: [{
+ label: "是",
+ value: 1
+ },
+ {
+ label: "否",
+ value: 0
+ },
+ ],
+ },
+ ],
+ },
+ {
+ id: "unitedFrontDto",
+ title: "统战人员信息",
+ scrollId: "united_front",
+ children: [{
+ label: "统战类型",
+ itemType: "input1",
+ formName: "unitedFrontType",
+ }, ],
+ },
+ {
+ id: "volunteerDto",
+ title: "志愿者信息",
+ children: [{
+ label: "志愿者类别",
+ itemType: "checkbox",
+ formName: "volunteerCategory",
+ opctionUrl: "sys/dict/data/dictlist",
+ opctionParams: {
+ dictType: "VOLUNTEER_CATEGORY"
+ },
+ opction: [],
+ }, ],
+ },
+ {
+ id: "specialSupportDto",
+ title: "特扶人员信息",
+ scrollId: "special_support",
+ children: [{
+ //0
+ label: "特扶类别",
+ itemType: "select1",
+ formName: "specialSupportType",
+ opction: [{
+ value: "1",
+ label: "失独",
+ },
+ {
+ value: "2",
+ label: "伤残",
+ },
+ ],
+ },
+ {
+ //1
+ label: "子女姓名",
+ itemType: "input1",
+ formName: "childName",
+ opction: [],
+ },
+ {
+ //2
+ label: "子女性别",
+ itemType: "select1",
+ formName: "childGender",
+ opction: [{
+ value: "1",
+ label: "男",
+ },
+ {
+ value: "2",
+ label: "女",
+ },
+ ],
+ },
+ {
+ label: "子女死亡日期",
+ itemType: "datepicker1",
+ formName: "childDeathDate",
+ opction: [],
+ },
+ {
+ label: "子女伤残类别",
+ itemType: "select1",
+ formName: "childDisabilityCategoryCode",
+ opctionUrl: "sys/dict/data/dictlist",
+ opctionParams: {
+ dictType: "disability_category_code"
+ },
+ opction: [],
+ },
+ {
+ label: "子女伤残等级",
+ itemType: "select1",
+ formName: "childDisabilityLevel",
+ opctionUrl: "sys/dict/data/dictlist",
+ opctionParams: {
+ dictType: "disability_level"
+ },
+ opction: [],
+ },
+ ],
+ },
+ ],
+ expandList: [],
+ activeType: 0,
+ tagList: [],
+ idTypeList: [{
+ label: '其他',
+ value: 0
+ },
+ {
+ label: '身份证',
+ value: 1
+ },
+ {
+ label: '护照',
+ value: 2
+ },
+ {
+ label: '港澳通行证',
+ value: 3
+ },
+ {
+ label: '军人证',
+ value: 4
+ },
+ {
+ label: '台胞证',
+ value: 5
+ }
+ ],
+ marriageList:[
+ {
+ label:"未婚",
+ value:'weihun'
+ },
+ {
+ label:"初婚",
+ value:'chuhun'
+ },
+ {
+ label:"离婚",
+ value:'lihun'
+ },
+ {
+ label:"再婚",
+ value:'zaihun'
+ },
+ {
+ label:"复婚",
+ value:'fuhun'
+ }
+ ],
+ password:''
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+ this.updateTime();
+ timerId = setInterval(this.updateTime, 1000);
+ if (options.resiId) {
+ this.setData({
+ resiId: options.resiId,
+ 'form.baseInfoDto.name':options.name,
+ 'form.baseInfoDto.idNum':options.idNum,
+ 'form.baseInfoDto.mobile':options.mobile,
+
+ })
+ this.getResiInfo()
+ }
+ // this.data.qqMapWX = new QQMapWX({
+ // key: 'CMJBZ-4DECI-JXGGN-5B4WU-QLV2H-B5BEJ'
+ // })
+ // this.reverseLocation()
+ this.setData({
+ agencyLevel: app.globalData.user.level
+ })
+ // this.getLastLogs()
+ },
+ updateTime() {
+ let date = new Date();
+ let hours = date.getHours().toString().padStart(2, '0');
+ let minutes = date.getMinutes().toString().padStart(2, '0');
+ let seconds = date.getSeconds().toString().padStart(2, '0');
+ this.setData({
+ currentTime: `${hours}:${minutes}:${seconds}`
+ });
+ },
+ getResiInfo: async function () {
+ try {
+ let res = await api.getResiInfo(this.data.resiId);
+ let marriageName = '--'
+ if (res.data.residentCategoryStr) {
+ res.data.baseInfoDto.categoryInfo.categoryNames = res.data.residentCategoryStr.split(',')
+ }
+ if(res.data.familyInfoDto&&res.data.familyInfoDto.marriage){
+ marriageName = this.data.marriageList.filter(item=>item.value == res.data.familyInfoDto.marriage)[0].label
+ }
+ // 处理tab
+ this.setData({
+ form: res.data,
+ marriageName:marriageName
+ });
+ await this.updateTabList(res.data.integrityData.integrityQtyMap)
+
+ } catch (err) {
+ console.log(err);
+ }
+ },
+ updateTabList: async function (value) {
+ const nameMap = {
+ reside: "居住信息",
+ ext: "拓展信息",
+ united_front: "统战人员信息",
+ party_member: "党员信息",
+ death: "死亡信息",
+ disability: "残疾信息",
+ subsistence_allowance: "低保信息",
+ serious_illness: "大病信息",
+ veteran: "退役军人信息",
+ special_support: "特扶人员信息",
+ old_people: "老年人信息",
+ ensure_house: "保障房信息",
+ chronic_disease: "慢病信息",
+ base: "基本信息",
+ graph:"关系图谱"
+ };
+ let list = Object.entries(
+ value
+ )
+ .map(([key, value]) => ({
+ name: nameMap[key],
+ id: key,
+ filledQty: value.filledQty,
+ totalQty: value.totalQty,
+ }))
+ .reverse();
+ list.push({
+ name:'关系图谱',
+ id:"graph"
+ })
+ this.setData({
+ tabList: list
+ })
+ let arr = this.data.tabList.filter(
+ (item) =>
+ item.filledQty > 0 || (
+ item.name == "拓展信息" ||
+ item.name == "基本信息")
+ );
+
+ let arrs = []
+ arrs = this.data.originalExpandList.filter((itemA) => {
+ return arr.some((itemB) => itemB.name === itemA.title);
+ });
+ await Promise.all(
+ arrs.map(async (item) => {
+ await Promise.all(
+ item.children.map(async (child) => {
+ const key = child.formName;
+ if (this.data.form[item.id].hasOwnProperty(key)) {
+ child.value = await this.getDictName(
+ child.opctionUrl,
+ child.opctionParams,
+ this.data.form[item.id][
+ key == "partyOrgId" ? "branchId" : key
+ ],
+ child.itemType,
+ child.opction
+ );
+ }
+ })
+ );
+ })
+ );
+ this.setData({
+ expandList: arrs
+ })
+ },
+ getDictName: async function (url, params, value, itemType, opction) {
+ try {
+ if (url) {
+ const {
+ data
+ } = await http.post(url, params);
+ if (itemType == "checkbox") {
+ const matchedLabels = value
+ .map((item) => {
+ const matchedItems = data.filter(
+ (obj) => obj.value === item
+ );
+ if (matchedItems.length > 0) {
+ return matchedItems
+ .map((matchedItem) => matchedItem.label)
+ .join(",");
+ } else {
+ return "";
+ }
+ })
+ .join(",");
+ return matchedLabels ? matchedLabels : "--";
+ } else if (itemType == "select1") {
+ const matchedItem = data.find((item) => item.value === value);
+ return matchedItem ? matchedItem.label : "--";
+ }
+ } else {
+ if (itemType == "radio1") {
+ const matchedItem = opction.find((item) => item.value === value);
+ return matchedItem ? matchedItem.label : "--";
+ } else if (
+ itemType == "input1" ||
+ itemType == "datepicker1" ||
+ itemType == "cascader1"
+ ) {
+ return value ? value : "--";
+ }
+ }
+ } catch (error) {
+ console.log(error);
+ }
+ },
+ handlePunch() {
+ this.setData({
+ // punchFlag:!this.data.punchFlag,
+ animationClass: 'animate'
+ })
+ setTimeout(() => {
+ this.setData({
+ animationClass: ''
+ });
+ this.clockRecords()
+
+ }, 1500);
+ },
+ clockRecords() {
+ let currentDate = new Date().toISOString().split('T')[0]; // 会得到形如 "2023-09-27" 的日期
+ let obj = {
+ resiId: this.data.resiId,
+ clockTime: currentDate + " " + this.data.currentTime,
+ clockAddress: this.data.address,
+ longitude: this.data.longitude,
+ latitude: this.data.latitude
+ }
+ api.clockRecords(obj).then(res => {
+ wx.showToast({
+ // title: this.data.punchFlag?'打卡成功':'更新成功',
+ title: '打卡成功',
+ icon: 'none'
+ })
+ }).catch(err => {
+ console.log(err);
+ })
+ },
+ toAddResi() {
+ this.setData({
+ checkPassword:true
+ })
+ },
+ bindPassword(e){
+ this.setData({
+ password:e.detail.value
+ })
+ },
+ onClosePassword(){
+ this.setData({
+ checkPassword:false
+ })
+ },
+ onConfirmassword(){
+ let parm = {
+ password:this.data.password
+ }
+ api.getResiUserInfo(this.data.resiId,parm).then(res=>{
+ if(res.code === 0){
+ wx.navigateTo({
+ url: `/subpages/addResi/pages/addResi/addResi?type=edit&resiId=${this.data.resiId}&name=${res.data.name}&mobile=${res.data.mobile}&idNum=${res.data.idNum}`,
+ })
+ this.setData({
+ password:null
+ })
+ }else{
+ this.setData({
+ password:null
+ })
+ this.showToast(res.msg)
+ }
+ }).catch(err=>{
+ console.log(err);
+ })
+ },
+ toWebView() {
+ console.log(app.globalData);
+ if (app.globalData.questionnaireUrl) {
+
+ wx.navigateTo({
+ url: '/pages/webView/webView?url=' + app.globalData.questionnaireUrl,
+ })
+ } else {
+ wx.showToast({
+ icon: "none",
+ title: '未创建满意度调查问卷',
+ })
+ }
+ },
+ toEvent() {
+ let obj = {
+ resiId: this.data.resiId,
+ resiMobile: this.data.form.mobile,
+ resiName: this.data.form.name
+ }
+ wx.setStorageSync('resiDetail', obj)
+ wx.navigateTo({
+ url: '/subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck',
+ })
+ },
+ reverseLocation() {
+ const _this = this
+ this.data.qqMapWX.reverseGeocoder({
+ success(res) {
+ _this.setData({
+ addressContent: res.result.address,
+ address: res.result.address,
+ longitude: res.result.location.lng,
+ latitude: res.result.location.lat,
+ })
+ },
+ fail(err) {
+ console.debug(err)
+ }
+ })
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+ if (timerId) {
+ clearInterval(timerId);
+ timerId = null;
+ }
+ },
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ },
+ gotopage(e) {
+ wx.navigateTo({
+ url: e.currentTarget.dataset.url,
+ })
+ },
+ // getLastLogs() {
+ // api.getLastLog({
+ // resiId: this.data.resiId
+ // }).then(res => {
+ // this.setData({
+ // lastLog: res.data
+ // })
+ // })
+ // },
+ goResidentPortrait2() {
+ wx.navigateTo({
+ url: '/subpages/statistics/pages/residentPortrait2/residentPortrait?id=' + this.data.resiId,
+ })
+ },
+
+ handelClickTab: function(e) {
+ wx.pageScrollTo({
+ selector: `#${e.currentTarget.dataset.item.id}`,
+ duration:300
+ });
+ this.setData({
+ activeType: e.currentTarget.dataset.index
+ })
+ }
+})
\ No newline at end of file
diff --git a/subpages/searchResult/pages/resiInfo/resiInfo.json b/subpages/searchResult/pages/resiInfo/resiInfo.json
new file mode 100644
index 0000000..b454563
--- /dev/null
+++ b/subpages/searchResult/pages/resiInfo/resiInfo.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "van-dialog": "@vant/weapp/dialog/index",
+ "resi-graph":"./component/graph/graph"
+ },
+ "navigationBarTitleText": "详情"
+}
\ No newline at end of file
diff --git a/subpages/searchResult/pages/resiInfo/resiInfo.wxml b/subpages/searchResult/pages/resiInfo/resiInfo.wxml
new file mode 100644
index 0000000..3d6cef0
--- /dev/null
+++ b/subpages/searchResult/pages/resiInfo/resiInfo.wxml
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+ {{form.baseInfoDto.name}}
+ 信息完整度:
+ {{form.integrityData.score}}%
+
+
+ {{item}}
+
+
+
+ 编辑
+
+
+
+ 地址:
+ {{form
+ .resideInfoDtos[0].agencyName}}{{form.resideInfoDtos[0].homeName}}
+
+
+ 创建时间:
+ {{form.baseInfoDto.createdTime}}
+
+
+ 最近更新时间:
+ {{form.baseInfoDto.updatedTime}}
+
+
+
+ {{item.name}} ({{ item.filledQty }}/{{ item.totalQty }})
+
+
+
+
+
+ 基础信息
+
+
+ 国籍:
+ {{form.baseInfoDto.nationalityName|| '--' }}
+
+
+ 证件类型:
+ {{idTypeList[form.baseInfoDto.idType].label}}
+
+
+ 证件号:
+ {{form.baseInfoDto.idNum}}
+
+
+ 联系电话:
+ {{form.baseInfoDto.mobile}}
+
+
+ 文化程度:
+ {{form.eduInfoDto.cultureLevelName}}
+
+
+
+ 性别:
+ {{form.baseInfoDto.genderName}}
+
+
+ 出生日期:
+ {{form.baseInfoDto.birthday}}
+
+
+ 民族:
+ {{form.baseInfoDto.nationName}}
+
+
+ 婚姻状况:
+ {{marriageName}}
+
+
+
+ 籍贯:
+ {{form.baseInfoDto.nativePlace}}
+
+
+
+
+ {{item.title}}
+
+
+ {{itemC.label}}:
+ {{itemC.value|| '--' }}
+
+
+
+
+ 居民图谱
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/subpages/searchResult/pages/resiInfo/resiInfo.wxss b/subpages/searchResult/pages/resiInfo/resiInfo.wxss
new file mode 100644
index 0000000..6f545f2
--- /dev/null
+++ b/subpages/searchResult/pages/resiInfo/resiInfo.wxss
@@ -0,0 +1,241 @@
+/* subpages/searchResult/pages/resiInfo/resiInfo.wxss */
+/**index.wxss**/
+page {
+ background-color: #f7f7f7;
+ height: auto;
+ overflow-y: scroll;
+ padding: 0 20rpx 160rpx ;
+ box-sizing: border-box;
+}
+
+.form {
+ display: flex;
+ margin-top: 20rpx;
+}
+
+.form .form_label {
+ font-size: 30rpx;
+ color: #999999;
+}
+
+.form .form_value {
+ color: #333333;
+ text-align: left;
+ font-weight: 500;
+ flex: 1;
+}
+
+.card {
+ background-color: #fff;
+ border-radius: 20rpx;
+ display: flex;
+ flex-direction: column;
+ margin-top: 20rpx;
+ padding: 30rpx 30rpx 40rpx;
+ box-sizing: border-box;
+ position: relative;
+ overflow: hidden;
+}
+
+.card .title {
+ position: relative;
+ font-size: 34rpx;
+}
+
+.card .title::after {
+ position: absolute;
+ left: -30rpx;
+ top: 8rpx;
+ content: " ";
+ width: 10rpx;
+ height: 28rpx;
+ background-color: #3A80E7;
+}
+
+.info {
+ margin-top: 6rpx;
+}
+
+.info .item {
+ display: flex;
+ margin-top: 28rpx;
+}
+
+.info .item .label {
+ width: fit-content;
+}
+
+.punch {
+ width: 260rpx;
+ height: 260rpx;
+ background: linear-gradient(180deg, #5E9FFF, #3A80E7);
+ box-shadow: 0rpx 4rpx 35rpx 0rpx rgba(61, 139, 248, 0.48);
+ color: #fff;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ border-radius: 50%;
+ margin: 50rpx auto 0;
+}
+
+.address {
+ color: #666666;
+ font-size: 28rpx;
+ margin: 0 auto;
+ margin: 40rpx auto 30rpx;
+}
+
+@keyframes rotateAnimation {
+ 0% {
+ transform: rotateY(0deg);
+ }
+
+ 100% {
+ transform: rotateY(180deg);
+ }
+}
+
+.animate {
+ animation: rotateAnimation 2s forwards;
+}
+
+.btn {
+ box-sizing: border-box;
+ text-align: center;
+ height: 76rpx;
+ border-radius: 38rpx;
+ margin: 30rpx 0;
+ line-height: 76rpx;
+ border-radius: 76rpx;
+ border: 2rpx solid #999999;
+}
+
+.blue{
+ background-color:#3974f6;
+ color: #fff;
+ border-color: #3974f6;
+}
+
+.flex-sb {
+ display: flex;
+ justify-content: space-between;
+}
+
+.view {
+ color: #999;
+ font-size: 24rpx;
+}
+
+.jm-btn {
+ position: absolute;
+ top: 30rpx;
+ right: 20rpx;
+ width: fit-content;
+ height: 56rpx;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+ line-height: 56rpx;
+ background: #3974f6;
+ border-radius: 28rpx;
+ color: #fff;
+ text-align: center;
+ font-size: 28rpx;
+}
+
+.tabs {
+ display: flex;
+ justify-content: start;
+ flex-wrap: wrap;
+ border-top: 1px solid #EAEAEA;
+ margin-top: 30rpx;
+}
+
+.tabs .tab_item {
+ display: flex;
+ margin-right: 20rpx;
+ padding-bottom: 10rpx;
+ width: auto;
+ margin-top: 20rpx;
+ justify-content: center;
+}
+
+.tabs .tab_item .num {
+ font-weight: 400;
+ font-size: 36rpx;
+}
+
+.tabs .tab_item .name {
+ font-size: 26rpx;
+ padding-bottom: 6rpx;
+ box-sizing: border-box;
+ color: #666666;
+}
+
+
+
+.top {
+ display: flex;
+ align-items: center;
+}
+
+.top .left {
+ flex: 1;
+}
+
+.top .right {
+ width: 130rpx;
+
+}
+
+.top .left .name {
+ display: flex;
+}
+
+.top .left .tags {
+ display: flex;
+ flex-grow: 0;
+ justify-content: start;
+ max-width: 645rpx;
+ overflow-x: scroll;
+ margin-top: 20rpx;
+ box-sizing: border-box;
+}
+.top .left .tags::-webkit-scrollbar {
+ display: none;
+ }
+.top .left .tags .tag {
+ background-color: rgba(236, 236, 236, 0.500000);
+ border-radius: 4rpx;
+ margin-right: 6rpx;
+ white-space: nowrap;
+ padding: 7rpx 8rpx;
+ width: auto;
+ box-sizing: border-box;
+ font-weight: 500;
+ font-size: 24rpx;
+ color: #999999;
+}
+.border_bto{
+ color: #3974f6 !important;
+ border-bottom: solid 6rpx #3974f6;
+}
+
+.bto_btn{
+ position: fixed;
+ bottom: 0;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ left: 0;
+ right: 0;
+ padding:0 20rpx;
+ box-sizing: border-box;
+ background: #fff;
+ padding-bottom: constant(safe-area-inset-bottom);
+ padding-bottom: env(safe-area-inset-bottom);
+}
+.dialog{
+ padding: 0 20rpx;
+ box-sizing: border-box;
+}
\ No newline at end of file