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