# Conflicts: # subpages/searchResult/pages/resiInfo/resiInfo.js # subpages/searchResult/pages/resiInfo/resiInfo.wxmlwork_tab_bar
|
After Width: | Height: | Size: 665 B |
|
After Width: | Height: | Size: 520 B |
|
After Width: | Height: | Size: 573 B |
|
After Width: | Height: | Size: 464 B |
|
After Width: | Height: | Size: 668 B |
|
After Width: | Height: | Size: 519 B |
|
After Width: | Height: | Size: 659 B |
|
After Width: | Height: | Size: 505 B |
@ -1,272 +1,493 @@ |
|||
// pages/resiAndHouse/resiAndHouse.js
|
|||
import api, { |
|||
getAllOrgCategoryCount, |
|||
getResidentBaseInfo, |
|||
getCommunityHouse |
|||
getAllOrgCategoryCount, |
|||
getResidentBaseInfo, |
|||
getTopTree, |
|||
getNextTree, |
|||
houseSearch, |
|||
allOrgHouseInfo, |
|||
getCommunityHouse |
|||
} from "../../utils/api" |
|||
const App = getApp() |
|||
Page({ |
|||
|
|||
/** |
|||
* 页面的初始数据 |
|||
*/ |
|||
data: { |
|||
activeType: 0, |
|||
tabList: [], |
|||
tableData: [], |
|||
resiList: [{ |
|||
name: '', |
|||
resiTags: [''], |
|||
nationalityName: '', |
|||
nationName: '', |
|||
mobile: '', |
|||
idNum: '', |
|||
agencyName: '', |
|||
homeName: '', |
|||
updatedTime: '' |
|||
} |
|||
/** |
|||
* 页面的初始数据 |
|||
*/ |
|||
data: { |
|||
activeType: 0, |
|||
tabList: [], |
|||
tableData: [], |
|||
tableFwData: [], |
|||
resiList: [{ |
|||
name: '', |
|||
resiTags: [''], |
|||
nationalityName: '', |
|||
nationName: '', |
|||
mobile: '', |
|||
idNum: '', |
|||
agencyName: '', |
|||
homeName: '', |
|||
updatedTime: '' |
|||
} |
|||
|
|||
], |
|||
pageNo: 1, |
|||
pageSize: 10, |
|||
lowerThreshold: '10', |
|||
loadMoreVisible: false, |
|||
loadMoreType: "none", |
|||
nodata:false, |
|||
selectVale: 'resi', |
|||
keyWord: '', |
|||
angencyId: null, |
|||
category: null, |
|||
searchOrgIdPath: '', |
|||
angencyList: [], //组织树
|
|||
showAngenCascader: false, |
|||
agencyName:'', |
|||
fieldName: { |
|||
text: 'agencyName', |
|||
value: 'agencyId', |
|||
children: 'subAgencyList' |
|||
} |
|||
}, |
|||
/** |
|||
* 生命周期函数--监听页面加载 |
|||
*/ |
|||
onLoad(options) { |
|||
this.setData({ |
|||
searchOrgIdPath: App.globalData.user.agencyId, |
|||
cascaderName: App.globalData.user.agencyName, |
|||
agencyName: App.globalData.user.agencyName |
|||
}) |
|||
this.getAgencygridtree() |
|||
this.getAllOrgCategoryCount() |
|||
this.getTableData() |
|||
}, |
|||
//
|
|||
/** |
|||
* 生命周期函数--监听页面初次渲染完成 |
|||
*/ |
|||
onReady() { |
|||
], |
|||
pageNo: 1, |
|||
pageSize: 10, |
|||
lowerThreshold: '10', |
|||
loadMoreVisible: false, |
|||
loadFwMoreVisible: false, |
|||
loadMoreType: "none", |
|||
loadFwMoreType: "none", |
|||
nodata: false, |
|||
selectVale: 'resi', |
|||
keyWord: '1', |
|||
angencyId: null, |
|||
category: null, |
|||
searchOrgIdPath: '', |
|||
cascaderFwValue: '', |
|||
angencyList: [], //组织树
|
|||
angencyFwList: [], //房屋组织树
|
|||
showAngenCascader: false, |
|||
agencyName: '', |
|||
fieldName: { |
|||
text: 'agencyName', |
|||
value: 'agencyId', |
|||
children: 'subAgencyList' |
|||
}, |
|||
fieldNameFw: { |
|||
text: 'label', |
|||
value: 'id', |
|||
children: 'children' |
|||
}, |
|||
cascaderNameFw: null, |
|||
showFw: false, |
|||
params: { |
|||
agencyId: '', |
|||
orgId: '', |
|||
level: 'district', |
|||
orgInfo:'' |
|||
}, |
|||
params1: { |
|||
"searchKey": "", |
|||
"pageSize": 50, |
|||
"pageNo": 1, |
|||
"searchOrgIdPath": "7b6f9a9f9f38d5f9fa7ce94a93d6eb28", |
|||
}, |
|||
activeFwType: 0, |
|||
fwTypes: [ |
|||
{ name: '房屋', num: 0, value: '' }, |
|||
{ name: '自住', num: 0, value: '0' }, |
|||
{ name: '出租', num: 0, value: '1' }, |
|||
{ name: '闲置', num: 0, value: '2' }, |
|||
{ name: '未出售', num: 0, value: '3' }, |
|||
] |
|||
}, |
|||
/** |
|||
* 生命周期函数--监听页面加载 |
|||
*/ |
|||
onLoad(options) { |
|||
this.setData({ |
|||
searchOrgIdPath: App.globalData.user.agencyId, |
|||
cascaderName: App.globalData.user.agencyName, |
|||
cascaderNameFw: App.globalData.user.agencyName, |
|||
agencyName: App.globalData.user.agencyName, |
|||
params: { |
|||
...this.data.params, |
|||
agencyId:App.globalData.user.agencyId, |
|||
orgId:App.globalData.user.agencyId |
|||
}, |
|||
params1: { |
|||
...this.data.params1, |
|||
searchOrgIdPath:App.globalData.user.agencyId, |
|||
} |
|||
}) |
|||
this.getTableFwData() |
|||
this.getAgencygridtree() |
|||
this.getAllOrgCategoryCount() |
|||
this.getTableData() |
|||
this.getTopTreeData() |
|||
}, |
|||
//
|
|||
/** |
|||
* 生命周期函数--监听页面初次渲染完成 |
|||
*/ |
|||
onReady() { |
|||
|
|||
}, |
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面显示 |
|||
*/ |
|||
onShow() { |
|||
}, |
|||
/** |
|||
* 生命周期函数--监听页面显示 |
|||
*/ |
|||
onShow() { |
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面隐藏 |
|||
*/ |
|||
onHide() { |
|||
/** |
|||
* 生命周期函数--监听页面隐藏 |
|||
*/ |
|||
onHide() { |
|||
|
|||
}, |
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面卸载 |
|||
*/ |
|||
onUnload() { |
|||
/** |
|||
* 生命周期函数--监听页面卸载 |
|||
*/ |
|||
onUnload() { |
|||
|
|||
}, |
|||
}, |
|||
|
|||
/** |
|||
* 页面相关事件处理函数--监听用户下拉动作 |
|||
*/ |
|||
onPullDownRefresh() { |
|||
this.getIntelligentMessage() |
|||
}, |
|||
/** |
|||
* 页面相关事件处理函数--监听用户下拉动作 |
|||
*/ |
|||
onPullDownRefresh() { |
|||
this.getIntelligentMessage() |
|||
}, |
|||
|
|||
/** |
|||
* 页面上拉触底事件的处理函数 |
|||
*/ |
|||
onReachBottom() { |
|||
/** |
|||
* 页面上拉触底事件的处理函数 |
|||
*/ |
|||
onReachBottom() { |
|||
|
|||
}, |
|||
}, |
|||
|
|||
/** |
|||
* 用户点击右上角分享 |
|||
*/ |
|||
onShareAppMessage() { |
|||
/** |
|||
* 用户点击右上角分享 |
|||
*/ |
|||
onShareAppMessage() { |
|||
|
|||
}, |
|||
toOCRCard() { |
|||
wx.navigateTo({ |
|||
url: '/subpages/OCRCard/pages/index/index', |
|||
}) |
|||
}, |
|||
handelClickTab(e) { |
|||
this.setData({ |
|||
activeType: e.currentTarget.dataset.index, |
|||
category: e.currentTarget.dataset.category, |
|||
tableData:[] |
|||
}) |
|||
this.getTableData() |
|||
}, |
|||
handelBlurKeyWord(e) { |
|||
this.setData({ |
|||
keyWord: e.detail.value |
|||
}) |
|||
}, |
|||
handelClickSearchType(e) { |
|||
this.setData({ |
|||
selectVale: e.currentTarget.dataset.type |
|||
}) |
|||
}, |
|||
handelClickShowTree() { |
|||
this.setData({ |
|||
showAngenCascader: true |
|||
}) |
|||
}, |
|||
// 组织树
|
|||
getAgencygridtree() { |
|||
|
|||
api.getAgencygridtree().then(res => { |
|||
this.setData({ |
|||
angencyList: [res.data], |
|||
}) |
|||
}).catch(err => { |
|||
console.log(err); |
|||
}) |
|||
}, |
|||
async handelClickSearch() { |
|||
this.setData({ |
|||
pageNo:1, |
|||
tableData:[] |
|||
}) |
|||
this.getAllOrgCategoryCount() |
|||
this.getTableData() |
|||
}, |
|||
handelClickToOcr() { |
|||
wx.navigateTo({ |
|||
url: '/subpages/OCRCard/pages/index/index', |
|||
}) |
|||
}, |
|||
// 获取居民概览
|
|||
getAllOrgCategoryCount() { |
|||
let parm = { |
|||
residentInfo: this.data.keyWord, |
|||
agencyId:App.globalData.user.agencyId, |
|||
orgId: this.data.searchOrgIdPath, |
|||
level: 'agency' |
|||
} |
|||
api.getAllOrgCategoryCount(parm).then(res => { |
|||
if (res.code == 0) { |
|||
res.data.forEach(item => { |
|||
if (item.categoryName === '党员') { |
|||
item.category = 'party' |
|||
} else if (item.categoryName === '关注人群') { |
|||
item.category = 'attention' |
|||
} else if (item.categoryName === '特殊人群') { |
|||
item.category = 'special' |
|||
} else if (item.categoryName === '非健康人群') { |
|||
item.category = 'health' |
|||
} |
|||
}, |
|||
toOCRCard() { |
|||
wx.navigateTo({ |
|||
url: '/subpages/OCRCard/pages/index/index', |
|||
}) |
|||
}, |
|||
handelClickTab(e) { |
|||
this.setData({ |
|||
activeType: e.currentTarget.dataset.index, |
|||
category: e.currentTarget.dataset.category, |
|||
tableData: [] |
|||
}) |
|||
this.getTableData() |
|||
}, |
|||
handelClickTabFw(e) { |
|||
this.setData({ |
|||
tabList: res.data.filter(item => item.categoryName == '党员' || item.categoryName == '关注人群' || item.categoryName == '特殊人群' || item.categoryName == '非健康人群' || item.categoryName == '居民').reverse() |
|||
activeFwType: e.currentTarget.dataset.index, |
|||
// category: e.currentTarget.dataset.category,
|
|||
tableFwData: [], |
|||
params1: { |
|||
...this.data.params1, |
|||
pageNo: 1, |
|||
"category": e.currentTarget.dataset.category, |
|||
}, |
|||
}) |
|||
} |
|||
}).catch(err => { |
|||
console.log(err); |
|||
}) |
|||
}, |
|||
toResiDetail(e) { |
|||
// '1765976717767618562'
|
|||
console.log(e); |
|||
wx.navigateTo({ |
|||
url: `/subpages/searchResult/pages/resiInfo/resiInfo?resiId=${e.currentTarget.dataset.resiid}`, |
|||
}) |
|||
}, |
|||
onFinish(e) { |
|||
this.setData({ |
|||
pageNo: 1, |
|||
searchOrgIdPath:e.detail.selectedOptions[e.detail.selectedOptions.length-1].agencyId, |
|||
cascaderName:e.detail.selectedOptions.map(item=>item.agencyName).join(','), |
|||
tableData:[] |
|||
}) |
|||
this.getAllOrgCategoryCount() |
|||
this.getTableData() |
|||
}, |
|||
onClose() { |
|||
this.setData({ |
|||
showAngenCascader: false |
|||
}) |
|||
}, |
|||
this.getTableFwData() |
|||
}, |
|||
handelBlurKeyWord(e) { |
|||
this.setData({ |
|||
keyWord: e.detail.value |
|||
}) |
|||
}, |
|||
getTopTreeData() { |
|||
getTopTree().then(res => { |
|||
const arr = res.data.children.map(item => { |
|||
return { |
|||
...item, |
|||
children: [] |
|||
} |
|||
}) |
|||
this.setData({ |
|||
angencyFwList: [{ ...res.data, children: arr }], |
|||
}) |
|||
}) |
|||
}, |
|||
getTreeFun(id, arr, data) { |
|||
return arr.map(item => { |
|||
if (id == item.id) { |
|||
return { |
|||
...item, |
|||
children: data, |
|||
} |
|||
} |
|||
if (item.children && item.children.length > 0) { |
|||
return { |
|||
...item, |
|||
children: this.getTreeFun(id, item.children, data), |
|||
} |
|||
} |
|||
return item |
|||
}) |
|||
}, |
|||
onChangeFw(e) { |
|||
const { value, tabIndex, selectedOptions } = e.detail; |
|||
if (tabIndex > 0 && selectedOptions[selectedOptions.length - 1].level != 'building') { |
|||
const level = selectedOptions[selectedOptions.length - 1].level |
|||
getNextTree({ level, id: value }).then(res => { |
|||
if (res.data.length > 0) { |
|||
const data = res.data.map(item => { |
|||
if (item.level != 'building') { |
|||
return { |
|||
...item, |
|||
children: [] |
|||
} |
|||
} |
|||
return { |
|||
...item, |
|||
children: null |
|||
} |
|||
}); |
|||
const arr = this.getTreeFun(value, this.data.angencyFwList, data); |
|||
this.setData({ |
|||
angencyFwList: arr, |
|||
}) |
|||
} else { |
|||
const arr = this.getTreeFun(value, this.data.angencyFwList, null); |
|||
this.setData({ |
|||
angencyFwList: arr, |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
}, |
|||
onCloseFw() { |
|||
this.setData({ |
|||
showFw: false, |
|||
}); |
|||
}, |
|||
|
|||
onScrollToLower(e) { |
|||
|
|||
if (this.data.loadMoreType === 'more') { |
|||
this.setData({ |
|||
loadMoreVisible: true, |
|||
}) |
|||
this.data.pageNo += 1 |
|||
this.getTableData() |
|||
} |
|||
}, |
|||
getTableData: async function() { |
|||
try{ |
|||
this.setData({ |
|||
loadMoreVisible: true, |
|||
nodata: false, |
|||
loadMoreType: "more", |
|||
}) |
|||
let parm = { |
|||
searchKey: this.data.keyWord, |
|||
pageSize: this.data.pageSize, |
|||
pageNo: this.data.pageNo, |
|||
category:this.data.category, |
|||
searchOrgIdPath:this.data.searchOrgIdPath |
|||
} |
|||
let { |
|||
data, |
|||
code, |
|||
msg |
|||
} = await getResidentBaseInfo(parm) |
|||
if (code == 0) { |
|||
onFinishFw(e) { |
|||
const { selectedOptions, value } = e.detail; |
|||
// const fieldNameFw = selectedOptions
|
|||
// .map((option) => option.text || option.name)
|
|||
// .join('/');
|
|||
const level = selectedOptions[selectedOptions.length - 1].level |
|||
this.setData({ |
|||
cascaderNameFw: e.detail.selectedOptions.map(item => item.label).join(' '), |
|||
showFw: false, |
|||
cascaderFwValue: value, |
|||
params: { |
|||
...this.data.params, |
|||
orgId: value, |
|||
level, |
|||
}, |
|||
params1: { |
|||
...this.data.params1, |
|||
searchOrgIdPath: value, |
|||
orgId: value, |
|||
level, |
|||
}, |
|||
}); |
|||
this.getTableFwData() |
|||
}, |
|||
handelClickSearchType(e) { |
|||
this.setData({ |
|||
selectVale: e.currentTarget.dataset.type |
|||
}) |
|||
}, |
|||
handelClickShowTree() { |
|||
this.setData({ |
|||
loadMoreType: data.list.length === this.data.pageSize ? 'more' : 'none', |
|||
tableData: this.data.tableData.concat(data.list), |
|||
showAngenCascader: true |
|||
}) |
|||
if (this.data.tableData.length == 0) { |
|||
this.setData({ |
|||
loadMoreVisible: false, |
|||
nodata: true |
|||
}) |
|||
}, |
|||
handelClickShowTreeFw() { |
|||
this.setData({ |
|||
showFw: true |
|||
}) |
|||
}, |
|||
// 组织树
|
|||
getAgencygridtree() { |
|||
|
|||
api.getAgencygridtree().then(res => { |
|||
this.setData({ |
|||
angencyList: [res.data], |
|||
}) |
|||
}).catch(err => { |
|||
console.log(err); |
|||
}) |
|||
}, |
|||
async handelClickSearch() { |
|||
if (this.data.selectVale === 'resi') { |
|||
this.setData({ |
|||
pageNo: 1, |
|||
tableData: [] |
|||
}) |
|||
this.getTableData() |
|||
}else{ |
|||
this.setData({ |
|||
pageNo: 1, |
|||
tableFwData: [] |
|||
}) |
|||
this.getTableFwData() |
|||
} |
|||
}, |
|||
handelClickToOcr() { |
|||
wx.navigateTo({ |
|||
url: '/subpages/OCRCard/pages/index/index', |
|||
}) |
|||
}, |
|||
// 获取居民概览
|
|||
getAllOrgCategoryCount() { |
|||
let parm = { |
|||
residentInfo: this.data.keyWord, |
|||
agencyId: App.globalData.user.agencyId, |
|||
orgId: this.data.searchOrgIdPath, |
|||
level: 'agency' |
|||
} |
|||
} else { |
|||
api.getAllOrgCategoryCount(parm).then(res => { |
|||
if (res.code == 0) { |
|||
res.data.forEach(item => { |
|||
if (item.categoryName === '党员') { |
|||
item.category = 'party' |
|||
} else if (item.categoryName === '关注人群') { |
|||
item.category = 'attention' |
|||
} else if (item.categoryName === '特殊人群') { |
|||
item.category = 'special' |
|||
} else if (item.categoryName === '非健康人群') { |
|||
item.category = 'health' |
|||
} |
|||
}) |
|||
this.setData({ |
|||
tabList: res.data.filter(item => item.categoryName == '党员' || item.categoryName == '关注人群' || item.categoryName == '特殊人群' || item.categoryName == '非健康人群' || item.categoryName == '居民').reverse() |
|||
}) |
|||
} |
|||
}).catch(err => { |
|||
console.log(err); |
|||
}) |
|||
}, |
|||
toResiDetail(e) { |
|||
// '1765976717767618562'
|
|||
console.log(e); |
|||
wx.navigateTo({ |
|||
url: `/subpages/searchResult/pages/punchCard/punchCard?resiId=${e.currentTarget.dataset.resiid}`, |
|||
}) |
|||
}, |
|||
onClickJump(e) { |
|||
console.log('e::', e) |
|||
// '1765976717767618562'?resiId=${e.currentTarget.dataset.resiid}
|
|||
wx.navigateTo({ |
|||
url: `/subpages/house/pages/housePortrait/housePortrait?resiId=${e.currentTarget.dataset.resiid}`, |
|||
}) |
|||
}, |
|||
onFinish(e) { |
|||
this.setData({ |
|||
loadMoreVisible: false, |
|||
nodata: true, |
|||
loadMoreType:'none' |
|||
pageNo: 1, |
|||
searchOrgIdPath: e.detail.selectedOptions[e.detail.selectedOptions.length - 1].agencyId, |
|||
cascaderName: e.detail.selectedOptions.map(item => item.agencyName).join(','), |
|||
tableData: [] |
|||
}) |
|||
} |
|||
} catch(err) { |
|||
console.log(err); |
|||
this.setData({ |
|||
loadMoreVisible: false, |
|||
nodata: true, |
|||
loadMoreType:'none' |
|||
}) |
|||
} |
|||
}, |
|||
this.getTableData() |
|||
}, |
|||
onClose() { |
|||
this.setData({ |
|||
showAngenCascader: false |
|||
}) |
|||
}, |
|||
|
|||
onScrollToLower(e) { |
|||
|
|||
}) |
|||
if (this.data.loadMoreType === 'more') { |
|||
this.setData({ |
|||
loadMoreVisible: true, |
|||
}) |
|||
this.data.pageNo += 1 |
|||
this.getTableData() |
|||
} |
|||
}, |
|||
onScrollFwToLower(e) { |
|||
console.log('this.data.loadFwMoreType::','zoule', this.data.loadFwMoreType) |
|||
if (this.data.loadFwMoreType === 'more') { |
|||
this.setData({ |
|||
loadFwMoreVisible: true, |
|||
}) |
|||
this.data.params1.pageNo += 1 |
|||
this.getTableFwData() |
|||
} |
|||
}, |
|||
getTableData: async function () { |
|||
try { |
|||
this.setData({ |
|||
loadMoreVisible: true, |
|||
nodata: false, |
|||
loadMoreType: "more", |
|||
}) |
|||
let parm = { |
|||
searchKey: this.data.keyWord, |
|||
pageSize: this.data.pageSize, |
|||
pageNo: this.data.pageNo, |
|||
category: this.data.category, |
|||
searchOrgIdPath: this.data.searchOrgIdPath |
|||
} |
|||
let { |
|||
data, |
|||
code, |
|||
msg |
|||
} = await getResidentBaseInfo(parm) |
|||
if (code == 0) { |
|||
this.setData({ |
|||
loadMoreType: data.list.length === this.data.pageSize ? 'more' : 'none', |
|||
tableData: this.data.tableData.concat(data.list), |
|||
}) |
|||
if (this.data.tableData.length == 0) { |
|||
this.setData({ |
|||
loadMoreVisible: false, |
|||
nodata: true |
|||
}) |
|||
} |
|||
} else { |
|||
this.setData({ |
|||
loadMoreVisible: false, |
|||
nodata: true, |
|||
loadMoreType: 'none' |
|||
}) |
|||
} |
|||
} catch (err) { |
|||
console.log(err); |
|||
this.setData({ |
|||
loadMoreVisible: false, |
|||
nodata: true, |
|||
loadMoreType: 'none' |
|||
}) |
|||
} |
|||
}, |
|||
getTableFwData: async function () { |
|||
this.setData({ |
|||
loadMoreVisible: true, |
|||
nodata: false, |
|||
loadMoreType: "more", |
|||
}) |
|||
await allOrgHouseInfo({ ...this.data.params }).then(res => { |
|||
const data = []; |
|||
let num = 0; |
|||
res.data.forEach((item, index) => { |
|||
if (index < 4) { |
|||
let value = item.name == '自住' ? '0' : item.name == '出租' ? '1' : item.name == '闲置' ? '2' : item.name == '未出售' ? '3' : ''; |
|||
data.push({ ...item, value }); |
|||
num = num + parseInt(item.num); |
|||
} |
|||
}) |
|||
const arr = [{ name: '房屋', num, value: '' }, ...data]; |
|||
this.setData({ |
|||
fwTypes: arr |
|||
}) |
|||
}) |
|||
await houseSearch({ ...this.data.params1, searchKey: this.data.keyWord }).then(res => { |
|||
const { code, data } = res; |
|||
if (code == 0) { |
|||
this.setData({ |
|||
loadFwMoreType: data.list.length === this.data.params1.pageSize ? 'more' : 'none', |
|||
tableFwData: this.data.tableFwData.concat(data.list), |
|||
}) |
|||
if (this.data.tableData.length == 0) { |
|||
this.setData({ |
|||
loadMoreVisible: false, |
|||
nodata: true |
|||
}) |
|||
} |
|||
} else { |
|||
this.setData({ |
|||
loadMoreVisible: false, |
|||
nodata: true, |
|||
loadMoreType: 'none' |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
}) |
|||
|
|||
@ -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' |
|||
} |
|||
} |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
}); |
|||
@ -0,0 +1,6 @@ |
|||
{ |
|||
"component": true, |
|||
"usingComponents": { |
|||
"ec-canvas": "../../../../../../ec-canvas/ec-canvas" |
|||
} |
|||
} |
|||
@ -0,0 +1,4 @@ |
|||
<!--subpages/searchResult/pages/resiInfo/modules/graph/graph.wxml--> |
|||
<view class="hotlineComplaints"> |
|||
<ec-canvas id="hotlineComplaints" canvas-id="hotlineComplaints" ec="{{ ec }}"></ec-canvas> |
|||
</view> |
|||
@ -0,0 +1,9 @@ |
|||
/* subpages/searchResult/pages/resiInfo/modules/graph/graph.wxss */ |
|||
ec-canvas { |
|||
width: 100%; |
|||
height: 100%; |
|||
} |
|||
.hotlineComplaints { |
|||
width: 100%; |
|||
height: 318rpx; |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
{ |
|||
"usingComponents": { |
|||
"van-dialog": "@vant/weapp/dialog/index", |
|||
"resi-graph":"./component/graph/graph" |
|||
}, |
|||
"navigationBarTitleText": "详情" |
|||
} |
|||
@ -1,2 +1,130 @@ |
|||
<!--subpages/searchResult/pages/resiInfo/resiInfo.wxml--> |
|||
<text>subpages/searchResult/pages/resiInfo/resiInfo.wxml</text> |
|||
<<<<<<< HEAD |
|||
<text>subpages/searchResult/pages/resiInfo/resiInfo.wxml</text> |
|||
======= |
|||
<!-- 基本信息 --> |
|||
<resi-graph resiId="{{resiId}}"></resi-graph> |
|||
<view class="card"> |
|||
<view class="top"> |
|||
<view class="left"> |
|||
<view class="name"> |
|||
<view style="font-size: 32rpx;margin-right: 35rpx;">{{form.baseInfoDto.name}}</view> |
|||
<view style="font-size: 28rpx;color:#999999 ;">信息完整度:</view> |
|||
<view style="color:#04b8ad;">{{form.integrityData.score}}%</view> |
|||
</view> |
|||
<view class="tags"> |
|||
<view class="tag" wx:for="{{form.baseInfoDto.categoryInfo.categoryNames}}" wx:key="index">{{item}}</view> |
|||
</view> |
|||
</view> |
|||
<view class="right"> |
|||
<view class="jm-btn" bind:tap="toAddResi">编辑</view> |
|||
</view> |
|||
</view> |
|||
<view class="form"> |
|||
<view class="form_label">地址:</view> |
|||
<view class="form_value"><text >{{form |
|||
.resideInfoDtos[0].agencyName}}</text>{{form.resideInfoDtos[0].homeName}}</view> |
|||
</view> |
|||
<view class="form"> |
|||
<view class="form_label">创建时间:</view> |
|||
<view class="form_value">{{form.baseInfoDto.createdTime}}</view> |
|||
</view> |
|||
<view class="form"> |
|||
<view class="form_label">最近更新时间:</view> |
|||
<view class="form_value">{{form.baseInfoDto.updatedTime}}</view> |
|||
</view> |
|||
<view class="tabs"> |
|||
<view class="tab_item {{activeType === index ? 'border_bto' : ''}}" wx:for="{{tabList}}" bind:tap="handelClickTab" data-item="{{item}}" data-index="{{index}}" wx:key="index" wx:if="{{item.filledQty!=0}}"> |
|||
{{item.name}} <text style="color:{{item.filledQty!==item.totalQty?'#f27225':'#1ebfb5'}}" wx:if="{{item.filledQty}}">({{ item.filledQty }}/{{ item.totalQty }})</text> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="card"> |
|||
<view class="title">基础信息</view> |
|||
<view class="info"> |
|||
<view class="item"> |
|||
<view class="label">国籍:</view> |
|||
<View class="value">{{form.baseInfoDto.nationalityName|| '--' }}</View> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="label">证件类型:</view> |
|||
<View class="value">{{idTypeList[form.baseInfoDto.idType].label}}</View> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="label">证件号:</view> |
|||
<View class="value">{{form.baseInfoDto.idNum}}</View> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="label">联系电话:</view> |
|||
<View class="value">{{form.baseInfoDto.mobile}}</View> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="label">文化程度:</view> |
|||
<View class="value">{{form.eduInfoDto.cultureLevelName}}</View> |
|||
</view> |
|||
|
|||
<view class="item"> |
|||
<view class="label">性别:</view> |
|||
<View class="value">{{form.baseInfoDto.genderName}}</View> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="label">出生日期:</view> |
|||
<View class="value">{{form.baseInfoDto.birthday}}</View> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="label">民族:</view> |
|||
<View class="value">{{form.baseInfoDto.nationName}}</View> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="label">婚姻状况:</view> |
|||
<View class="value"> {{marriageName}}</View> |
|||
|
|||
</view> |
|||
<view class="item"> |
|||
<view class="label">籍贯:</view> |
|||
<View class="value">{{form.baseInfoDto.nativePlace}}</View> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="card" wx:for="{{expandList}}" wx:key="index" id="{{item.scrollId}}"> |
|||
<view class="title">{{item.title}}</view> |
|||
<view class="info" wx:for="{{item.children}}" wx:for-index="indexC" wx:key="indexC" wx:for-item="itemC"> |
|||
<view class="item"> |
|||
<view class="label">{{itemC.label}}:</view> |
|||
<View class="value">{{itemC.value|| '--' }}</View> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="card"> |
|||
<view class="title">居民图谱</view> |
|||
</view> |
|||
|
|||
<!-- 走访打卡 --> |
|||
<!-- <view class="card "> |
|||
<view class="flex-sb"> |
|||
<view class="title">走访打卡</view> |
|||
<view class="view" bind:tap="gotopage" data-url="/subpages/searchResult/pages/checkLog/checkLog?resiId={{resiId}}">打卡记录</view> |
|||
</view> |
|||
<view class="punch {{animationClass}}" bind:tap="handlePunch"> |
|||
<view class="{{animationClass}}" style="font-size: 36rpx;">打卡</view> |
|||
<view class="{{animationClass}}" style="font-family:PingFang-SC-Regular;font-size: 28rpx;opacity: 0.72;">{{currentTime}}</view> |
|||
</view> |
|||
<view class="address">当前位置:{{addressContent}}</view> |
|||
<view class="address" style="margin-top: 0;" wx:if="{{lastLog.clockInTime}}">最近打卡时间:{{lastLog.clockInTime}}</view> |
|||
</view> --> |
|||
|
|||
|
|||
<view class="bto_btn"> |
|||
<button class="btn" hover-class="blue" bind:tap="toEvent">上报诉求</button> |
|||
<button class="btn" hover-class="blue" bind:tap="toWebView" wx:if="{{agencyLevel!=='street'}}"> |
|||
满意度调查</button> |
|||
<!-- --> |
|||
<button class="btn blue">走访打卡</button> |
|||
</view> |
|||
<van-dialog use-slot title="密码验证" show="{{ checkPassword }}" show-cancel-button bind:close="onClosePassword" bind:confirm="onConfirmassword" custom-class="dialog" confirm-button-color="#3974f6"> |
|||
<view> |
|||
<input type="text" bind:input="bindPassword" bind:blur="bindPassword" value="{{password}}" placeholder="请输入密码" password /> |
|||
</view> |
|||
</van-dialog> |
|||
>>>>>>> dfe56009a6df6ddb9f15a1825578dabd99db092e |
|||
|
|||
@ -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; |
|||
} |
|||