城阳工作端uniH5前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

377 lines
12 KiB

<template>
<view>
<wux-popup position="center" :visible="visible" @close="close" closable>
<view class="popup-container">
<view class="title">资源信息卡</view>
<view class="popup-content">
<view class="items">
<view class="label">资源类型</view>
<view class="value">{{ typeList[type] }}</view>
</view>
<block v-if="type === 2">
<view class="items">
<view class="label">单位名称:</view>
<view class="value">{{ detail.unitName }}</view>
</view>
<view class="items">
<view class="label">分类:</view>
<view class="value">{{ detail.typeName }}</view>
</view>
<view class="items">
<view class="label">服务事项:</view>
<view class="value">{{ detail.serviceMatterNameList }}</view>
</view>
<view class="items">
<view class="label">联系人:</view>
<view class="value">{{ detail.contact }}</view>
</view>
<view class="items">
<view class="label">联系电话:</view>
<view class="value">{{ detail.contactMobile }}</view>
</view>
<view class="items">
<view class="label">地理位置:</view>
<view class="value">{{ detail.address }}</view>
</view>
</block>
<block v-if="type === 3">
<view class="items">
<view class="label">组织名称:</view>
<view class="value">{{ detail.organizationName }}</view>
</view>
<view class="items">
<view class="label">分类:</view>
<view class="value">{{ detail.categoryName }}</view>
</view>
<view class="items">
<view class="label">服务事项:</view>
<view class="value">{{ detail.serviceItem }}</view>
</view>
<view class="items">
<view class="label">联系人:</view>
<view class="value">{{ detail.principalName }}</view>
</view>
<view class="items">
<view class="label">联系电话:</view>
<view class="value">{{ detail.principalPhone }}</view>
</view>
<view class="items">
<view class="label">地理位置:</view>
<view class="value">{{ detail.address }}</view>
</view>
</block>
<block v-if="type === 4">
<view class="items">
<view class="label">姓名:</view>
<view class="value">{{ detail.name }}</view>
</view>
<view class="items">
<view class="label">联系电话:</view>
<view class="value">{{ detail.mobile }}</view>
</view>
<view class="items">
<view class="label">证件号:</view>
<view class="value">{{ detail.idCard }}</view>
</view>
<view class="items">
<view class="label">组织/部门:</view>
<view class="value">{{ detail.orgName }}</view>
</view>
<view class="items">
<view class="label">职位:</view>
<view class="value">
<text v-for="(item, index) in detail.szsqRoles" :key="index">
{{ item }}
<text v-if="index < detail.szsqRoles.length - 1">、</text>
</text>
</view>
</view>
</block>
<block v-if="type === 5 || type === 1">
<view class="items">
<view class="label">姓名:</view>
<view class="value">{{ detail.name }}</view>
</view>
<view class="items">
<view class="label">联系电话:</view>
<view class="value">{{ detail.mobile }}</view>
</view>
<view class="items">
<view class="label">年龄:</view>
<view class="value">{{ detail.age }}</view>
</view>
<view class="items">
<view class="label">学历:</view>
<view class="value">{{ education ? education.cultureLevelName : '' }}</view>
</view>
<!-- <view class="items">
<view class="label">状态:</view>
<view class="value">巡查中</view>
</view>-->
<view class="items">
<view class="label">所在位置:</view>
<view class="value">{{ detail && detail.houseInfo && detail.houseInfo.homeName ? detail.houseInfo.homeName : '' }}</view>
</view>
<view class="items">
<view class="label">兴趣爱好:</view>
<view class="value">{{ hobby && hobby.hobbyRemark ? hobby.hobbyRemark : '' }}</view>
</view>
</block>
</view>
</view>
</wux-popup>
</view>
</template>
<script>
// import wuxPopup from '../dist/popup/index';
import {
communitySelfOrgDetail,
getServiceTypeRelationByHobbyCode,
icpartyunitDetail,
residentEduInfo,
residentHobbyInfo,
staffdetailv2,
volunteerDetail
} from '../../utils/statisticsApi';
export default {
components: {
wuxPopup
},
data() {
return {
detail: {
unitName: '',
typeName: '',
serviceMatterNameList: '',
contact: '',
contactMobile: '',
address: '',
organizationName: '',
categoryName: '',
serviceItem: '',
principalName: '',
principalPhone: '',
name: '',
mobile: '',
idCard: '',
orgName: '',
szsqRoles: [],
age: '',
houseInfo: {
homeName: ''
}
},
education: {
cultureLevelName: ''
},
hobby: {
hobbyRemark: ''
},
typeList: {
1: '志愿者',
2: '联建单位',
3: '社区自组织',
4: '网格员',
5: '公益岗'
},
id: '',
type: '',
rowData: ''
};
},
props: {
visible: {
type: Boolean,
default: false
},
data: {
type: Object,
default: () => {}
}
},
mounted() {
// 处理小程序 ready 生命周期
this.$nextTick(() => this.ready());
},
methods: {
ready: function () {},
close() {
this.$emit('close');
},
getData(type) {
if (type === 1) {
this.getVolunteer();
}
if (type === 2) {
this.getCompany();
}
if (type === 3) {
this.getCommunity();
}
if (type === 4) {
this.getGridOperator();
}
if (type === 5) {
this.getVolunteer();
}
},
getAgeByDateOfBirth(birthDate) {
var currentDate = new Date();
var yearDiff = currentDate.getFullYear() - birthDate.getFullYear();
var monthDiff = currentDate.getMonth() - birthDate.getMonth();
var dayDiff = currentDate.getDate() - birthDate.getDate();
if (monthDiff < 0 || (monthDiff === 0 && dayDiff < 0)) {
yearDiff--;
}
console.log(yearDiff, 'yearDiff');
return yearDiff;
},
// 志愿者 公益岗
getVolunteer() {
volunteerDetail(this.id).then(({ data }) => {
data.age = data.birthday ? this.getAgeByDateOfBirth(new Date(data.birthday)) : '未知';
this.setData({
detail: data || {}
});
});
residentEduInfo(this.id).then(({ data }) => {
this.setData({
education: data || {}
});
});
residentHobbyInfo(this.id).then(({ data }) => {
this.setData({
hobby: data || {}
});
});
},
// 单位
getCompany() {
icpartyunitDetail({
id: this.id
}).then(({ data }) => {
data.serviceMatterNameList = data.serviceMatterNameList ? data.serviceMatterNameList.join('、') : '';
this.setData({
detail: data || {}
});
});
},
// 社区
getCommunity() {
communitySelfOrgDetail(this.id).then(({ data }) => {
this.setData({
detail: data || {}
});
});
},
// 网格
getGridOperator() {
staffdetailv2({
staffId: this.id
}).then(({ data }) => {
this.setData({
detail: data || {}
});
});
}
},
created: function () {},
watch: {
data: {
handler: function ({ id, type, data }) {
console.log(id, type, data);
this.setData({
id,
type,
rowData: data
});
this.getData(type);
},
immediate: true,
deep: true
}
}
};
</script>
<style>
.wux-popup__content {
background: none !important;
}
.popup-container {
padding: 32rpx 20rpx 50rpx;
background: linear-gradient(180deg, #dbeeff 0%, #f4faff 100%);
border-radius: 30rpx;
}
.title {
font-size: 34rpx;
font-weight: bold;
color: #333333;
display: flex;
align-items: center;
margin-bottom: 39rpx;
position: relative;
}
.title:before {
content: '';
display: block;
width: 10rpx;
height: 28rpx;
background: #3a80e7;
border-radius: 4rpx;
margin-right: 20rpx;
}
.popup-content {
background: #fff;
border-radius: 20px;
padding: 30rpx;
}
.items {
display: flex;
align-items: flex-start;
text-align: left;
font-size: 32rpx;
font-weight: 500;
color: #333333;
margin-bottom: 29rpx;
position: relative;
}
.items .label {
white-space: nowrap;
min-width: 160rpx;
display: flex;
align-items: center;
justify-content: space-between;
}
.tel {
width: 126rpx;
height: 62rpx;
position: absolute;
top: calc(50% - 31rpx);
right: 0;
}
</style>