diff --git a/app.json b/app.json index 3629731..efb8957 100644 --- a/app.json +++ b/app.json @@ -86,6 +86,16 @@ "pages": [ "pages/index/index" ] + }, + { + "root": "subpages/family", + "name": "family", + "pages": [ + "pages/index/index", + "pages/bindFamily/bindFamily", + "pages/familyInfo/familyInfo", + "pages/noAccess/noAccess" + ] } ], "preloadRule": { diff --git a/project.private.config.json b/project.private.config.json new file mode 100644 index 0000000..e488daf --- /dev/null +++ b/project.private.config.json @@ -0,0 +1,7 @@ +{ + "projectname": "epdc-office-mp-yushan", + "setting": { + "compileHotReLoad": true + }, + "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html" +} \ No newline at end of file diff --git a/subpages/family/images/arrow-right.png b/subpages/family/images/arrow-right.png new file mode 100644 index 0000000..5563325 Binary files /dev/null and b/subpages/family/images/arrow-right.png differ diff --git a/subpages/family/images/arrow.png b/subpages/family/images/arrow.png new file mode 100644 index 0000000..1fb30af Binary files /dev/null and b/subpages/family/images/arrow.png differ diff --git a/subpages/family/images/close.png b/subpages/family/images/close.png new file mode 100644 index 0000000..a0948c7 Binary files /dev/null and b/subpages/family/images/close.png differ diff --git a/subpages/family/images/family-qr.png b/subpages/family/images/family-qr.png new file mode 100644 index 0000000..240c21c Binary files /dev/null and b/subpages/family/images/family-qr.png differ diff --git a/subpages/family/images/no-family.png b/subpages/family/images/no-family.png new file mode 100644 index 0000000..b2246d2 Binary files /dev/null and b/subpages/family/images/no-family.png differ diff --git a/subpages/family/pages/bindFamily/bindFamily.js b/subpages/family/pages/bindFamily/bindFamily.js new file mode 100644 index 0000000..1247c77 --- /dev/null +++ b/subpages/family/pages/bindFamily/bindFamily.js @@ -0,0 +1,66 @@ +// subpages/family/pages/bindFamily/bindFamily.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/subpages/family/pages/bindFamily/bindFamily.json b/subpages/family/pages/bindFamily/bindFamily.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/subpages/family/pages/bindFamily/bindFamily.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/subpages/family/pages/bindFamily/bindFamily.wxml b/subpages/family/pages/bindFamily/bindFamily.wxml new file mode 100644 index 0000000..d6f855e --- /dev/null +++ b/subpages/family/pages/bindFamily/bindFamily.wxml @@ -0,0 +1,2 @@ + +subpages/family/pages/bindFamily/bindFamily.wxml diff --git a/subpages/family/pages/bindFamily/bindFamily.wxss b/subpages/family/pages/bindFamily/bindFamily.wxss new file mode 100644 index 0000000..0c9003b --- /dev/null +++ b/subpages/family/pages/bindFamily/bindFamily.wxss @@ -0,0 +1 @@ +/* subpages/family/pages/bindFamily/bindFamily.wxss */ \ No newline at end of file diff --git a/subpages/family/pages/familyInfo/familyInfo.js b/subpages/family/pages/familyInfo/familyInfo.js new file mode 100644 index 0000000..2ff9b27 --- /dev/null +++ b/subpages/family/pages/familyInfo/familyInfo.js @@ -0,0 +1,66 @@ +// subpages/family/pages/familyInfo/familyInfo.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/subpages/family/pages/familyInfo/familyInfo.json b/subpages/family/pages/familyInfo/familyInfo.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/subpages/family/pages/familyInfo/familyInfo.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/subpages/family/pages/familyInfo/familyInfo.wxml b/subpages/family/pages/familyInfo/familyInfo.wxml new file mode 100644 index 0000000..797a815 --- /dev/null +++ b/subpages/family/pages/familyInfo/familyInfo.wxml @@ -0,0 +1,2 @@ + +subpages/family/pages/familyInfo/familyInfo.wxml diff --git a/subpages/family/pages/familyInfo/familyInfo.wxss b/subpages/family/pages/familyInfo/familyInfo.wxss new file mode 100644 index 0000000..1ec7536 --- /dev/null +++ b/subpages/family/pages/familyInfo/familyInfo.wxss @@ -0,0 +1 @@ +/* subpages/family/pages/familyInfo/familyInfo.wxss */ \ No newline at end of file diff --git a/subpages/family/pages/index/index.js b/subpages/family/pages/index/index.js new file mode 100644 index 0000000..6e82e6c --- /dev/null +++ b/subpages/family/pages/index/index.js @@ -0,0 +1,164 @@ +import { + getHouseInfo +} from '../../utils/api.js' +Page({ + + /** + * 页面的初始数据 + */ + data: { + familyInfo:null, + showQr: true, + memberList:[], + roomCode:null, + }, + + /** + * 生命周期函数--监听页面加载 + */ + async onLoad(options) { + wx.showLoading({ + title: "加载中", + mask: true, + }); + this.setData({ + roomCode : options.roomCode.toString() + }) + // this.setData({ + // roomCode:'3702110100420037200006' + // }) + wx.setStorage({ + key: 'roomCode', + data: this.data.roomCode + }) + await this.getInfo(this.data.roomCode) + wx.hideLoading() + }, + + /** + * 生命周期函数--监听页面显示 + */ + async onShow() { + wx.showLoading({ + title: "加载中", + mask: true, + }); + let roomCode = wx.getStorageSync('roomCode') + this.setData({ + roomCode : roomCode + }) + await this.getInfo(this.data.roomCode) + wx.hideLoading() + }, + + // 获取房屋信息 + async getInfo(code){ + const res = await getHouseInfo({roomCode:code}) + if(res.msg === 'success' && res.code === 0){ + this.setData({ + 'familyInfo':res.data, + 'roomCode':res.data.members + }) + } + }, + // 跳转新增页面 + handleTo(){ + wx.navigateTo({ + url: '/subpages/family/pages/familyInfo/familyInfo?pageType=add&id='+ this.data.familyInfo.id + }) + }, + // 跳转查看页面 + toFamilyInfo(e){ + wx.navigateTo({ + url: '/subpages/family/pages/familyInfo/familyInfo?pageType=look&idCard='+ e.currentTarget.dataset.id + }) + }, + // 取消编辑 + cancel() { + this.setData({ + showQr: true, + }); + }, + // 点击保存二维码 + comfirmSave() { + wx.downloadFile({ + url: this.data.familyInfo.maUrl, + success: function (res) { + let imageFilePath = res.tempFilePath; + wx.saveImageToPhotosAlbum({ + filePath: imageFilePath, + success: function (data) { + wx.showToast({ + title: '保存成功', + icon: 'none', + duration: 1500 + }); + }, + fail: function (res) { + wx.showToast({ + title: '保存失败', + icon: 'none', + duration: 1500 + }) + } + }) + }, + fail: (err) => { + wx.showToast({ + title: '下载失败', + icon: 'none', + duration: 1500 + }) + } + }) + }, + handlePreview() { + if (!this.data.familyInfo.maUrl) return; + this.setData({ + showQr: false, + }); + }, + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } +}) \ No newline at end of file diff --git a/subpages/family/pages/index/index.json b/subpages/family/pages/index/index.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/subpages/family/pages/index/index.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/subpages/family/pages/index/index.wxml b/subpages/family/pages/index/index.wxml new file mode 100644 index 0000000..193d9dc --- /dev/null +++ b/subpages/family/pages/index/index.wxml @@ -0,0 +1,82 @@ + + + + + + + {{ familyInfo.plotName + familyInfo.buildingName + familyInfo.unit + familyInfo.roomNo}} + + No.{{ familyInfo.roomCode }} + + + + + + + + + + 我的"e家码" + + + + No.{{ familyInfo.roomCode }} + + + + + + + + 家庭成员 + + + + + + + + 姓名 + 成员关系 + 手机号 + 明细 + + + + {{ item.userName }} + {{ item.relation }} + {{ item.mobile }} + 查看 + + + 暂无成员 + + + + + 添加家庭成员 + + + + 暂无家庭信息 + + + + \ No newline at end of file diff --git a/subpages/family/pages/index/index.wxss b/subpages/family/pages/index/index.wxss new file mode 100644 index 0000000..67b2fee --- /dev/null +++ b/subpages/family/pages/index/index.wxss @@ -0,0 +1 @@ +/* subpages/family/pages/index/index.wxss */ \ No newline at end of file diff --git a/subpages/family/pages/noAccess/noAccess.js b/subpages/family/pages/noAccess/noAccess.js new file mode 100644 index 0000000..c8a3cc2 --- /dev/null +++ b/subpages/family/pages/noAccess/noAccess.js @@ -0,0 +1,71 @@ +// subpages/family/pages/noAccess/noAccess.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + handleHome(){ + wx.navigateTo({ + url: '/pages/index/index', + }) + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/subpages/family/pages/noAccess/noAccess.json b/subpages/family/pages/noAccess/noAccess.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/subpages/family/pages/noAccess/noAccess.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/subpages/family/pages/noAccess/noAccess.wxml b/subpages/family/pages/noAccess/noAccess.wxml new file mode 100644 index 0000000..c116329 --- /dev/null +++ b/subpages/family/pages/noAccess/noAccess.wxml @@ -0,0 +1,4 @@ + + + 返回首页 + \ No newline at end of file diff --git a/subpages/family/pages/noAccess/noAccess.wxss b/subpages/family/pages/noAccess/noAccess.wxss new file mode 100644 index 0000000..b8d3da3 --- /dev/null +++ b/subpages/family/pages/noAccess/noAccess.wxss @@ -0,0 +1 @@ +/* subpages/family/pages/noAccess/noAccess.wxss */ \ No newline at end of file diff --git a/subpages/family/utils/api.js b/subpages/family/utils/api.js new file mode 100644 index 0000000..ba995a9 --- /dev/null +++ b/subpages/family/utils/api.js @@ -0,0 +1,71 @@ +const request = require('../../../utils/request') + +/** + * 绑定我的家庭房屋 + */ +export function bindingFamily (param) { + return request.post('custom/family/bindingFamily',param) +} + +/** + * 获取小区下拉列表 + */ +export function getPlotOption (param) { + return request.get('custom/personroom/getPlotOption',param) +} + +/** + * 获取楼栋下拉列表 + */ +export function getBuildingOption (param) { + return request.get('custom/personroom/getBuildingOption',param) +} + +/** + * 获取单元下拉列表 + */ +export function getUnitOption (param) { + return request.get('custom/personroom/getUnitOption',param) +} + +/** + * 获取房屋下拉列表 + */ +export function getHouseOption (param) { + return request.get('custom/personroom/getHouseOption', param) +} + +/** + * 添加成员信息 + */ + export function addFamilyMember (param) { + return request.post('custom/personroom/addFamilyMember', param) +} + +/** + * 修改成员信息 + */ + export function updateFamilyMember (param) { + return request.post('custom/personroom/updateFamilyMember',param) +} + +/** + * 获取成员信息 + */ + export function getFamilyMember (param) { + return request.get('custom/personroom/getFamilyMember',param) +} + +/** + * 获取房屋信息 + */ + export function getHouseInfo (param) { + return request.get('custom/personroom/getHouseInfo',param) +} + +/** + * 获取与户主关系 + */ + export function householderRelation () { + return request.get('imgconfig/heartImgType/householder_relation') +} diff --git a/subpages/family/utils/validate/index.js b/subpages/family/utils/validate/index.js new file mode 100644 index 0000000..49845d2 --- /dev/null +++ b/subpages/family/utils/validate/index.js @@ -0,0 +1,51 @@ +import rules from './rules'; + +/** + * 表单验证 + * + * @param {Object} fmData [表单数据] + * @param {Object} opts [参数] + * @return {Object} [descrsiption] + */ +export default function(fmData, opts){ + let res = { + valid: true, + error: '', + errors: [], + fields: {} + }; + Object.keys(opts).forEach(key => { + + let value = fmData[key], + item = opts[key], + resItem = { + valid: true, + error: '', + errors: [] + }; + + item.forEach(ruleItem => { + let {rule, message, param} = ruleItem; + if (rules[rule]) { + if (!rules[rule].check(value, param)) { + message = message + ? message + : rules[rule].message; + if (res.valid) { + res.valid = false; + res.error = message; + } + if (resItem.valid) { + resItem.valid = false; + resItem.error = message; + } + resItem.errors.push(message); + res.errors.push(message); + } + } + }); + res.fields[key] = resItem; + }); + + return res; +} diff --git a/subpages/family/utils/validate/rules.js b/subpages/family/utils/validate/rules.js new file mode 100644 index 0000000..25038a8 --- /dev/null +++ b/subpages/family/utils/validate/rules.js @@ -0,0 +1,123 @@ +'use strict'; + +/** + * 表单验证规则 + */ +export default { + required: { + message: '该字段必填', + check(v) { + const type = typeof v; + if (type === 'string') { + return v !== ''; + } else if (type === 'array') { + return v.length > 0; + } else if (type === 'boolean') { + return v; + } else if (type === 'number') { + return true; + return v !== 0; + } else if (type === 'object') { + return v !== null && v !== undefined; + } else { + return true; + } + } + }, + // 最小 + min: { + message: '超过最小限制', + check(v, param) { + return parseFloat(v) >= parseFloat(param) || v === ''; + } + }, + // 最大 + max: { + message: '超过最小限制', + check(v, param) { + return parseFloat(v) <= parseFloat(param) || v === ''; + } + }, + //只能数字、字母、下划线组合,下划线不能在开头或结尾 + user: { + message: '只能数字、字母、下划线组合,下划线不能在开头或结尾', + check(v) { + return /^(?!_)(?!.*?_$)(\w)*$/.test(v) || v === ''; + } + }, + //身份证号 + idCard: { + message: '', + check(v) { + return /^([1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3})$|^([1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx]))$/.test(v) || v === ''; + } + }, + // 手机号 + mobile: { + message: '手机号格式不正确', + check(v) { + return /^1[23456789]{1}[0-9]{9}$/.test(v) || v === ''; + } + }, + //url地址 + url: { + message: 'url地址格式不正确', + check(v) { + return /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(v) || v === ''; + } + }, + //汉字 + chinese: { + message: '仅限汉字', + check(v) { + return /^[\u4e00-\u9fa5]*$/.test(v) || v === ''; + } + }, + //数字 + number: { + message: '仅限数字', + check(v) { + return /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(v) || v === ''; + } + }, + //数字或字母 + alphaNum: { + message: '仅限字母或数字', + check(v) { + return /^[A-Za-z0-9]+$/.test(v) || v === ''; + } + }, + //整数 + digits: { + message: '仅限整数', + check(v) { + return /^\d+$/.test(v) || v === ''; + } + }, + //范围长度 + rangeLength: { + message: '请输入指定范围长度', + check(v, param) { + let length = v.length; + if (Array.isArray(param)) { + return (length >= param[0] && length <= param[1]) || v === ''; + } else { + return length == param || v === ''; + } + } + }, + //范围 + range: { + message: '', + check(v, param) { + return (v >= param[0] && v <= param[1]) || v === ''; + } + }, + //等于 + equal: { + message: '两次输入不一致', + check(v, param) { + return v == param || v === ''; + } + } +}; \ No newline at end of file diff --git a/subpages/family/wxss/c-popForm.wxss b/subpages/family/wxss/c-popForm.wxss new file mode 100644 index 0000000..0248e43 --- /dev/null +++ b/subpages/family/wxss/c-popForm.wxss @@ -0,0 +1 @@ +@charset "UTF-8";.f-cb{float:none;clear:both;height:0}.f-cs::after{display:block;visibility:hidden;clear:both;overflow:hidden;height:0;content:""}.f-hide{display:none}.f-fl{float:left}.f-fr{float:right}.f-bs1{box-shadow:0 2rpx 8rpx 0 rgba(0,0,0,.1)}.f-bs2{box-shadow:0 4rpx 12rpx 0 rgba(0,0,0,.16)}.f-bs3{box-shadow:0 6rpx 18rpx 0 rgba(0,0,0,.22)}.f-blur{filter:blur(3px)}.f-shield{position:fixed;z-index:9999;top:0;left:0;right:0;bottom:0;width:100%;height:100%;background-color:rgba(0,0,0,.4);backdrop-filter:blur(8rpx)}@keyframes fade_in{0%{opacity:0}100%{opacity:1}}@keyframes fade_in_up{0%{transform:translate3d(0,360rpx,0);opacity:.3}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes fade_in_down{0%{transform:translate3d(0,-360rpx),0;opacity:.3}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes fade_in_right{0%{transform:translate3d(360rpx,0,0);opacity:.3}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes fade_in_left{0%{transform:translate3d(-360rpx,0,0);opacity:.3}100%{transform:translate3d(0,0,0);opacity:1}}.a-fade-in{animation:fade_in .27s ease-in}.a-fade-in-up{animation:fade_in_up .27s ease-in}.a-fade-in-right{animation:fade_in_right .27s ease-in}.a-fade-in-left{animation:fade_in_left .27s ease-in}.a-fade-in-down{animation:fade_in_down .27s ease-in}@keyframes fade_out{0%{display:block;opacity:1}100%{display:block;opacity:0}}@keyframes fade_out_up{0%{display:block;transform:translate3d(0,0,0);opacity:1}100%{display:block;transform:translate3d(0,360rpx,0);opacity:0}}@keyframes fade_out_down{0%{display:block;transform:translate3d(0,0,0);opacity:1}100%{display:block;transform:translate3d(0,-360rpx,0);opacity:0}}@keyframes fade_out_right{0%{display:block;transform:translate3d(0,0,0);opacity:1}100%{display:block;transform:translate3d(360rpx,0,0);opacity:0}}@keyframes fade_out_left{0%{display:block;transform:translate3d(0);opacity:1}100%{display:block;transform:translate3d(-360rpx,0,0);opacity:0}}.a-fade-out{animation:fade_out .27s ease-out}.a-fade-out-up{animation:fade_out_up .27s ease-out}.a-fade-out-right{animation:fade_out_right .27s ease-out}.a-fade-out-left{animation:fade_out_left .27s ease-out}.a-fade-out-down{animation:fade_out_down .27s ease-out}@keyframes scale_in{0%{opacity:0;transform:scale3d(0,0,0)}100%{opacity:1;transform:scale3d(1,1,1)}}@keyframes scale_in_left_up{0%{opacity:0;transform:translate3d(-50%,-50%,0) scale3d(0,0,0)}100%{opacity:1;transform:translate3d(0,0,0) scale3d(1,1,1)}}@keyframes scale_in_right_down{0%{opacity:0;transform:translate3d(50%,50%,0) scale3d(0,0,0)}100%{opacity:1;transform:translate3d(0,0,0) scale3d(1,1,1)}}@keyframes scale_in_right_up{0%{opacity:0;transform:translate3d(50%,-50%,0) scale3d(0,0,0)}100%{opacity:1;transform:translate3d(0,0,0) scale3d(1,1,1)}}@keyframes scale_in_left_down{0%{opacity:0;transform:translate3d(-50%,50%,0) scale3d(0,0,0)}100%{opacity:1;transform:translate3d(0,0,0) scale3d(1,1,1)}}.a-scale-in{animation:scale_in .27s ease-in}.a-scale-in-left-up{animation:scale_in_left_up .27s ease-in}.a-scale-in-right-up{animation:scale_in_right_up .27s ease-in}.a-scale-in-left-down{animation:scale_in_left_down .27s ease-in}.a-scale-in-right-down{animation:scale_in_right_down .27s ease-in}.m-fm{position:fixed;z-index:9999;top:0;left:0;right:0;bottom:0;width:100%;height:100%;background-color:rgba(0,0,0,.4);backdrop-filter:blur(8rpx);z-index:10000}.m-fm .fm{position:absolute;top:50%;left:0;right:0;margin:0 auto;width:630rpx;transform:translateY(-50%);box-sizing:border-box;padding:30rpx 40rpx;background-color:#fff;border-radius:20rpx;background-image:url(https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet/test/20210907/a766bbce71b54c6985fdbd2a38d8fa5e.png);background-repeat:no-repeat;background-size:contain}.m-fm .fm .logo{margin:40rpx 0 0}.m-fm .fm .logo image{display:block;margin:0 auto;width:120rpx;height:120rpx;border-radius:50%}.m-fm .fm .logo .tag{position:relative;margin-top:-25rpx;text-align:center}.m-fm .fm .logo .tag text{display:inline-block;padding:0 15rpx;height:28rpx;line-height:28rpx;background:#e3271c;border-radius:14rpx;font-size:20rpx;font-family:Source Han Serif SC;font-weight:500;color:#fff}.m-fm .fm .title{margin-top:10rpx;text-align:center;font-size:34rpx;font-family:Source Han Serif SC;font-weight:500;color:#333;line-height:60rpx}.m-fm .fm .attr{font-size:22rpx;font-family:Source Han Serif SC;font-weight:400;color:#999;line-height:42rpx;text-align:center}.m-fm .fm .attr text{display:inline-block;margin:0 10rpx}.m-fm .fm .intro{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:5;-webkit-box-orient:vertical;margin:10rpx auto;width:540rpx;font-size:34rpx;font-family:Source Han Serif SC;font-weight:400;color:#333;line-height:52rpx}.m-fm .fm .btn-close{position:absolute;top:0;right:0;padding:30rpx}.m-fm .fm .btn-close image{width:24rpx;height:24rpx}.m-fm .fm .input{display:block;box-sizing:border-box;padding:20rpx;width:550rpx;height:218rpx;background:#f7f7f7;border-radius:10rpx;margin:30rpx auto}.m-fm .fm .input textarea{box-sizing:border-box;display:block;margin:0 auto auto;padding:5rpx 0;width:100%;height:178rpx;line-height:45rpx;border-radius:20rpx;font-size:26rpx;font-family:Source Han Serif SC;font-weight:500;color:#333;line-height:42rpx}.m-fm .fm .input textarea .z-placeholder{white-space:normal;word-wrap:break-word;word-break:break-all;color:#999;font-weight:400}.m-fm .fm .operate{margin-top:30rpx;padding:15rpx 0;overflow:hidden}.m-fm .fm .operate .btn{margin:0 auto;box-sizing:border-box;width:170rpx;height:70rpx;background:#e3271c;border-radius:35rpx;color:#fff;text-align:center;line-height:70rpx;font-size:34rpx;font-family:Source Han Serif SC;font-weight:500} \ No newline at end of file diff --git a/subpages/family/wxss/family.wxss b/subpages/family/wxss/family.wxss new file mode 100644 index 0000000..4dae7a5 --- /dev/null +++ b/subpages/family/wxss/family.wxss @@ -0,0 +1 @@ +page{background:#fff;box-sizing:border-box}.f-container{width:100%;box-sizing:border-box}.f-top{position:relative;width:100%;height:200rpx;background:#e3271c;border-radius:0 0 30rpx 30rpx;-webkit-border-radius:0 0 30rpx 30rpx;-moz-border-radius:0 0 30rpx 30rpx;-ms-border-radius:0 0 30rpx 30rpx;-o-border-radius:0 0 30rpx 30rpx}.f-top .flex-view{display:flex;justify-content:space-between;}.f-top .f-card{position:absolute;left:50%;bottom:-64rpx;width:690rpx;height:200rpx;margin-left:-345rpx;background-color:#fff;box-sizing:border-box;padding:28rpx 30rpx 18rpx;box-shadow: rgba(184,184,184,.25) 0px 0px 30px 5px;overflow:hidden;border-radius:14rpx;-moz-border-radius:14rpx;-ms-border-radius:14rpx;-o-border-radius:14rpx;-webkit-border-radius:14rpx}.f-top .f-card .card-right{flex-shrink:0;margin-left:30rpx}.f-top .f-card .card-title{height:96rpx;font-family:PingFang-SC-Bold;font-size:34rpx;letter-spacing:1rpx;color:#333;overflow:hidden}.f-top .f-card .card-num{display:flex;align-items:center;font-family:PingFang-SC-Medium;font-size:28rpx;letter-spacing:1rpx;color:#333;overflow:hidden}.f-top .f-card .card-num image{flex-shrink:0;width:32rpx;height:18rpx}.f-top .f-card .card-qr{width:140rpx;height:140rpx;margin: auto;position: relative;top: -5px;}.f-top .f-card .card-qr image{display:block;width:100%;height:100%;border-radius: 10px;}.f-top .f-card .card-qr-long{width:100rpx;height:100rpx}.f-top .f-card .card-qr-name{font-family:PingFang-SC-Regular;font-size:22rpx;font-weight:400;font-stretch:normal;letter-spacing:1rpx;color:#333}.f-wr{width:100%;box-sizing:border-box;padding:100rpx 20rpx 0}.title-right,.title-wr{display:flex;align-items:center}.title-wr{justify-content:space-between;padding:28rpx 0;border-bottom:1rpx solid #e7eeee}.title-wr .title-label{position:relative;padding-left:25rpx;font-family:PingFang-SC-Bold;font-size:34rpx;font-weight:400;font-stretch:normal;letter-spacing:0;color:#333}.title-wr .title-label::after{content:'';position:absolute;top:50%;left:0;width:6rpx;height:30rpx;margin-top:-15rpx;background-color:#e60000;border-radius:3rpx;-webkit-border-radius:3rpx;-moz-border-radius:3rpx;-ms-border-radius:3rpx;-o-border-radius:3rpx}.title-wr .title-right-label{font-family:PingFang-SC-Light;font-size:26rpx;font-weight:400;font-stretch:normal;color:#999}.title-wr .right-icon{width:30rpx;height:30rpx}.f-table{background-color:#fbfbfb}.f-table .table-cell{display:flex;align-items:center;padding:26rpx 0;border:solid 1rpx #e3e3e3;border-top:0;font-family:PingFang-SC-Regular;font-size:30rpx;color:#000003}.f-table .table-cell .table-col{flex:1;text-align:center;line-height:1}.f-table .table-cell .table-col-4{color:#dd2a2a}.f-table .table-header{background:#f1f1f1;border:0;font-family:PingFang-SC-Regular;font-size:28rpx;color:#666}.f-btns{display:flex;align-items:center;padding:30rpx 0}.f-btns .f-btns-icon{width:30rpx;height:30rpx;font-size:28rpx;color:#dd2a2a;text-align:center;line-height:30rpx;border:1rpx solid #dd2a2a;border-radius:50%;-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%}.f-btns .f-btns-label{margin-left:10rpx;font-size:28rpx;color:#dd2a2a}.mt40{margin-top:40rpx}.mt16{margin-top:16rpx}.no-data{font-size:28rpx;color:#999;text-align:center;line-height:300rpx}.m-fm .fm{top:500rpx;width:600rpx;padding:0 0 40rpx 0;background:#fff;overflow:hidden}.m-fm .fm .btn-close{top:27rpx;padding:0 30rpx;font-size:36rpx;color:#fff;line-height:90rpx}.m-fm .fm .btn-close image{display:block;width:36rpx;height:36rpx}.m-fm .fm .fm-btn{width:240rpx;height:54rpx;margin:20rpx auto 0;font-family:PingFang-SC-Medium;font-size:28rpx;font-weight:400;font-stretch:normal;letter-spacing:0;color:#999;text-align:center;line-height:54rpx;border-radius:27rpx;border:solid 1rpx #eee;-webkit-border-radius:27rpx;-moz-border-radius:27rpx;-ms-border-radius:27rpx;-o-border-radius:27rpx}.m-fm .fm-header{width:100%;height:90rpx;margin-bottom:20rpx;text-align:center;line-height:90rpx;font-family:PingFang-SC-Bold;font-size:32rpx;color:#fff;background-image:linear-gradient(90deg,#ca151d 0,#e11c13 100%)}.m-fm .fm-qr{width:400rpx;height:400rpx;box-sizing:border-box;margin:0 auto}.m-fm .fm-qr image{display:block;width:100%;height:100%}.no-family{padding-top:200rpx}.no-family image{display:block;width:506rpx;margin:0 auto}.no-family .no-btn{width:220rpx;height:66rpx;margin:60rpx auto 0;font-size:32rpx;color:#fff;text-align:center;line-height:66rpx;background-image:linear-gradient(90deg,#ca151d 0,#e11c13 100%);border-radius:30rpx;-webkit-border-radius:30rpx;-moz-border-radius:30rpx;-ms-border-radius:30rpx;-o-border-radius:30rpx} \ No newline at end of file diff --git a/subpages/family/wxss/familyInfo.wxss b/subpages/family/wxss/familyInfo.wxss new file mode 100644 index 0000000..56ff418 --- /dev/null +++ b/subpages/family/wxss/familyInfo.wxss @@ -0,0 +1 @@ +@charset "UTF-8";.f-cb{float:none;clear:both;height:0}.f-cs::after{display:block;visibility:hidden;clear:both;overflow:hidden;height:0;content:""}.f-hide{display:none}.f-fl{float:left}.f-fr{float:right}.f-bs1{box-shadow:0 2rpx 8rpx 0 rgba(0,0,0,.1)}.f-bs2{box-shadow:0 4rpx 12rpx 0 rgba(0,0,0,.16)}.f-bs3{box-shadow:0 6rpx 18rpx 0 rgba(0,0,0,.22)}.f-blur{filter:blur(3px)}.f-shield{position:fixed;z-index:9999;top:0;left:0;right:0;bottom:0;width:100%;height:100%;background-color:rgba(0,0,0,.4);backdrop-filter:blur(8rpx)}@keyframes fade_in{0%{opacity:0}100%{opacity:1}}@keyframes fade_in_up{0%{transform:translate3d(0,360rpx,0);opacity:.3}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes fade_in_down{0%{transform:translate3d(0,-360rpx),0;opacity:.3}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes fade_in_right{0%{transform:translate3d(360rpx,0,0);opacity:.3}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes fade_in_left{0%{transform:translate3d(-360rpx,0,0);opacity:.3}100%{transform:translate3d(0,0,0);opacity:1}}.a-fade-in{animation:fade_in .27s ease-in}.a-fade-in-up{animation:fade_in_up .27s ease-in}.a-fade-in-right{animation:fade_in_right .27s ease-in}.a-fade-in-left{animation:fade_in_left .27s ease-in}.a-fade-in-down{animation:fade_in_down .27s ease-in}@keyframes fade_out{0%{display:block;opacity:1}100%{display:block;opacity:0}}@keyframes fade_out_up{0%{display:block;transform:translate3d(0,0,0);opacity:1}100%{display:block;transform:translate3d(0,360rpx,0);opacity:0}}@keyframes fade_out_down{0%{display:block;transform:translate3d(0,0,0);opacity:1}100%{display:block;transform:translate3d(0,-360rpx,0);opacity:0}}@keyframes fade_out_right{0%{display:block;transform:translate3d(0,0,0);opacity:1}100%{display:block;transform:translate3d(360rpx,0,0);opacity:0}}@keyframes fade_out_left{0%{display:block;transform:translate3d(0);opacity:1}100%{display:block;transform:translate3d(-360rpx,0,0);opacity:0}}.a-fade-out{animation:fade_out .27s ease-out}.a-fade-out-up{animation:fade_out_up .27s ease-out}.a-fade-out-right{animation:fade_out_right .27s ease-out}.a-fade-out-left{animation:fade_out_left .27s ease-out}.a-fade-out-down{animation:fade_out_down .27s ease-out}@keyframes scale_in{0%{opacity:0;transform:scale3d(0,0,0)}100%{opacity:1;transform:scale3d(1,1,1)}}@keyframes scale_in_left_up{0%{opacity:0;transform:translate3d(-50%,-50%,0) scale3d(0,0,0)}100%{opacity:1;transform:translate3d(0,0,0) scale3d(1,1,1)}}@keyframes scale_in_right_down{0%{opacity:0;transform:translate3d(50%,50%,0) scale3d(0,0,0)}100%{opacity:1;transform:translate3d(0,0,0) scale3d(1,1,1)}}@keyframes scale_in_right_up{0%{opacity:0;transform:translate3d(50%,-50%,0) scale3d(0,0,0)}100%{opacity:1;transform:translate3d(0,0,0) scale3d(1,1,1)}}@keyframes scale_in_left_down{0%{opacity:0;transform:translate3d(-50%,50%,0) scale3d(0,0,0)}100%{opacity:1;transform:translate3d(0,0,0) scale3d(1,1,1)}}.a-scale-in{animation:scale_in .27s ease-in}.a-scale-in-left-up{animation:scale_in_left_up .27s ease-in}.a-scale-in-right-up{animation:scale_in_right_up .27s ease-in}.a-scale-in-left-down{animation:scale_in_left_down .27s ease-in}.a-scale-in-right-down{animation:scale_in_right_down .27s ease-in}.m-fm .fm{position:relative;margin-bottom:15rpx;background-color:#fff}.m-fm .fm .fm-title{padding:30rpx;line-height:50rpx;font-size:34rpx;font-family:Source Han Serif SC;font-weight:800;color:#333}.m-fm .fm .record-btn{position:absolute;right:0;top:28rpx;width:160rpx;height:56rpx;line-height:56rpx;border-radius:56rpx 0 0 56rpx;text-align:center;font-size:28rpx;font-family:Source Han Serif SC;color:#fff;background:linear-gradient(to right,#e83100,#ff6326)}.m-fm .fm .item-list{padding:0 30rpx}.m-fm .fm .item-list .item{border-top:1rpx solid #e7eeee;padding:25rpx 0;line-height:60rpx;display:flex;justify-content:space-between}.m-fm .fm .item-list .item .upload{position:relative;width:100%;height:280rpx}.m-fm .fm .item-list .item .upload .upload-show{width:100%;height:280rpx}.m-fm .fm .item-list .item .upload .upload-add{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;text-align:center;height:100rpx;width:300rpx;font-size:30rpx;font-family:Source Han Serif SC;font-weight:300;color:#999;line-height:54rpx}.m-fm .fm .item-list .item .upload .upload-add image{display:block;margin:0 auto;width:46rpx;height:46rpx}.m-fm .fm .item-list .item .radio{width:100%;display:flex;justify-content:flex-end}.m-fm .fm .item-list .item .radio .radio-item{margin-left:40rpx;width:150rpx;height:60rpx;border-radius:4rpx;text-align:center;font-size:32rpx;font-family:Source Han Serif SC;font-weight:400;line-height:60rpx;background:#f7f7f7;color:#333}.m-fm .fm .item-list .item .radio .radio-item.z-on{color:#e3271c;background:#fff2f1}.m-fm .fm .item-list .item .textarea{box-sizing:border-box;padding:0 30rpx;width:100%}.m-fm .fm .item-list .item .textarea textarea{box-sizing:border-box;display:block;padding:0;width:100%;height:200rpx;border-radius:10rpx;font-size:32rpx;font-family:Source Han Serif SC;color:#333}.m-fm .fm .item-list .item .textarea textarea .z-ph{color:#999}.m-fm .fm .item-list .item .field{position:relative;box-sizing:border-box;width:300rpx;padding-left:25rpx}.m-fm .fm .item-list .item .field .must{position:absolute;top:0;left:0;margin:0 auto;color:#d81918}.m-fm .fm .item-list .item .field .field-text{font-size:32rpx;font-family:Source Han Serif SC;font-weight:400;color:#333}.m-fm .fm .item-list .item .value{position:relative;width:410rpx;display:flex;font-size:32rpx;font-family:Source Han Serif SC;font-weight:400;color:#333;line-height:60rpx}.m-fm .fm .item-list .item .value .picker{position:relative;width:100%;padding-right:40rpx;text-align:right}.m-fm .fm .item-list .item .value .picker .z-weak{color:#999}.m-fm .fm .item-list .item .value .picker .menu-arrow{position:absolute;top:20rpx;right:0;width:16rpx;height:23rpx}.m-fm .fm .item-list .item .value .input{width:100%;text-align:right}.m-fm .fm .item-list .item .value .input input{border:0;width:100%;line-height:60rpx;text-align:right;font-size:30rpx;font-family:Source Han Serif SC;font-weight:400;color:#333}.m-fm .fm .item-list .item .value .input input .z-ph{color:#999}.m-fm .operate .btn{margin:100rpx auto;width:400rpx;height:80rpx;line-height:80rpx;background:#e3271c;border-radius:40rpx;text-align:center;font-size:32rpx;font-family:Source Han Serif SC;font-weight:400;color:#fff}.m-fm .operate .btn.z-disabled{opacity:.5}.m-fm .edit{display:flex;justify-content:space-between}.m-fm .edit .btn{margin:100rpx auto;width:240rpx;height:80rpx;line-height:80rpx;border-radius:40rpx;text-align:center;font-size:32rpx;font-family:Source Han Serif SC;font-weight:400;color:#fff}.m-fm .edit .btn.z-disabled{opacity:.5}.m-fm .edit .btn.left{background-image:linear-gradient(90deg,#0863b3 0,#0399d8 100%);box-shadow:0 4px 10px 0 rgba(4,144,210,.32);border-radius:40px}.m-fm .edit .btn.right{background-image:linear-gradient(90deg,#dc1b03 0,#f37b03 100%);box-shadow:0 4px 10px 0 rgba(241,114,3,.32);border-radius:40px}.m-fm .edit-two{display:flex;justify-content:space-between}.m-fm .edit-two .btn{margin:100rpx auto;width:240rpx;height:80rpx;line-height:80rpx;background:#e3271c;border-radius:40rpx;text-align:center;font-size:32rpx;font-family:Source Han Serif SC;font-weight:400;color:#fff}.m-fm .edit-two .btn.z-disabled{opacity:.5}.m-fm .edit-two .btn.left{color:#999;background-color:#fff;box-shadow:0 4px 10px 0 rgba(209,209,209,.32);border-radius:40px;border:solid 1px #cacaca}.m-fm .edit-two .btn.right{background-image:linear-gradient(90deg,#dc1b03 0,#f37b03 100%);box-shadow:0 4px 10px 0 rgba(241,114,3,.32);border-radius:40px}.m-modal{position:fixed;z-index:10000;width:100%;height:100vh;left:0;top:0;background:rgba(0,0,0,.6);display:flex;justify-content:center;align-items:center}.content{position:relative;box-sizing:border-box;padding:9rpx 40rpx 10rpx;width:530rpx;border-radius:16rpx;background:#fff}.content .close-dialog{position:absolute;z-index:1;top:10rpx;right:10rpx;width:60rpx;height:60rpx;display:flex;align-items:center;justify-content:center}.content .close-dialog image{width:24rpx;height:24rpx}.content .title{font-size:36rpx;color:#333;width:100%;line-height:60rpx;height:60rpx;text-align:center;margin-bottom:27rpx}.content .item-list .item{display:flex;justify-content:space-between}.content .item-list .item .textarea{margin-top:20rpx;box-sizing:border-box;width:100%;border:1rpx solid #e7eeee;border-radius:10rpx}.content .item-list .item .textarea textarea{box-sizing:border-box;display:block;padding:20rpx;width:100%;height:200rpx;border-radius:10rpx;font-size:32rpx;font-family:Source Han Serif SC;color:#333}.content .item-list .item .textarea textarea .z-ph{color:#999}.content .item-list .item .field{position:relative;box-sizing:border-box;width:300rpx;padding-left:25rpx}.content .item-list .item .field .must{position:absolute;top:0;left:0;margin:0 auto;color:#d81918}.content .item-list .item .field .field-text{font-size:32rpx;font-family:Source Han Serif SC;font-weight:400;color:#333}.content .item-list .item .value{position:relative;width:410rpx;display:flex;font-size:32rpx;font-family:Source Han Serif SC;font-weight:400;color:#333;line-height:60rpx}.content .item-list .item .value .picker{position:relative;width:100%;padding-right:40rpx;text-align:right}.content .item-list .item .value .picker .z-weak{color:#999}.content .item-list .item .value .picker .menu-arrow{position:absolute;top:20rpx;right:0;width:16rpx;height:23rpx}.content .item-list .item .value .input{width:100%;text-align:right}.content .item-list .item .value .input input{border:0;width:100%;line-height:60rpx;text-align:right;font-size:30rpx;font-family:Source Han Serif SC;font-weight:400;color:#333}.content .item-list .item .value .input input .z-ph{color:#999}.content .tip{margin-top:20rpx;color:#d81918;font-size:23rpx}.btns{display:flex;justify-content:space-between}.btns .btn{margin:50rpx auto;width:35%;height:50rpx;line-height:50rpx;border-radius:40rpx;text-align:center;font-size:28rpx;font-family:Source Han Serif SC;font-weight:400;color:#fff}.btns .btn.z-disabled{opacity:.5}.btns .btn.left{color:#999;background-color:#fff;box-shadow:0 4px 10px 0 rgba(209,209,209,.32);border-radius:40px;border:solid 1px #cacaca}.btns .btn.right{background-image:linear-gradient(90deg,#dc1b03 0,#f37b03 100%);box-shadow:0 4px 10px 0 rgba(241,114,3,.32);border-radius:40px} \ No newline at end of file diff --git a/subpages/family/wxss/register.wxss b/subpages/family/wxss/register.wxss new file mode 100644 index 0000000..0540cd5 --- /dev/null +++ b/subpages/family/wxss/register.wxss @@ -0,0 +1 @@ +@charset "UTF-8";.f-cb{float:none;clear:both;height:0}.f-cs::after{display:block;visibility:hidden;clear:both;overflow:hidden;height:0;content:""}.f-hide{display:none}.f-fl{float:left}.f-fr{float:right}.f-bs1{box-shadow:0 2rpx 8rpx 0 rgba(0,0,0,.1)}.f-bs2{box-shadow:0 4rpx 12rpx 0 rgba(0,0,0,.16)}.f-bs3{box-shadow:0 6rpx 18rpx 0 rgba(0,0,0,.22)}.f-blur{filter:blur(3px)}.f-shield{position:fixed;z-index:9999;top:0;left:0;right:0;bottom:0;width:100%;height:100%;background-color:rgba(0,0,0,.4);backdrop-filter:blur(8rpx)}@keyframes fade_in{0%{opacity:0}100%{opacity:1}}@keyframes fade_in_up{0%{transform:translate3d(0,360rpx,0);opacity:.3}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes fade_in_down{0%{transform:translate3d(0,-360rpx),0;opacity:.3}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes fade_in_right{0%{transform:translate3d(360rpx,0,0);opacity:.3}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes fade_in_left{0%{transform:translate3d(-360rpx,0,0);opacity:.3}100%{transform:translate3d(0,0,0);opacity:1}}.a-fade-in{animation:fade_in .27s ease-in}.a-fade-in-up{animation:fade_in_up .27s ease-in}.a-fade-in-right{animation:fade_in_right .27s ease-in}.a-fade-in-left{animation:fade_in_left .27s ease-in}.a-fade-in-down{animation:fade_in_down .27s ease-in}@keyframes fade_out{0%{display:block;opacity:1}100%{display:block;opacity:0}}@keyframes fade_out_up{0%{display:block;transform:translate3d(0,0,0);opacity:1}100%{display:block;transform:translate3d(0,360rpx,0);opacity:0}}@keyframes fade_out_down{0%{display:block;transform:translate3d(0,0,0);opacity:1}100%{display:block;transform:translate3d(0,-360rpx,0);opacity:0}}@keyframes fade_out_right{0%{display:block;transform:translate3d(0,0,0);opacity:1}100%{display:block;transform:translate3d(360rpx,0,0);opacity:0}}@keyframes fade_out_left{0%{display:block;transform:translate3d(0);opacity:1}100%{display:block;transform:translate3d(-360rpx,0,0);opacity:0}}.a-fade-out{animation:fade_out .27s ease-out}.a-fade-out-up{animation:fade_out_up .27s ease-out}.a-fade-out-right{animation:fade_out_right .27s ease-out}.a-fade-out-left{animation:fade_out_left .27s ease-out}.a-fade-out-down{animation:fade_out_down .27s ease-out}@keyframes scale_in{0%{opacity:0;transform:scale3d(0,0,0)}100%{opacity:1;transform:scale3d(1,1,1)}}@keyframes scale_in_left_up{0%{opacity:0;transform:translate3d(-50%,-50%,0) scale3d(0,0,0)}100%{opacity:1;transform:translate3d(0,0,0) scale3d(1,1,1)}}@keyframes scale_in_right_down{0%{opacity:0;transform:translate3d(50%,50%,0) scale3d(0,0,0)}100%{opacity:1;transform:translate3d(0,0,0) scale3d(1,1,1)}}@keyframes scale_in_right_up{0%{opacity:0;transform:translate3d(50%,-50%,0) scale3d(0,0,0)}100%{opacity:1;transform:translate3d(0,0,0) scale3d(1,1,1)}}@keyframes scale_in_left_down{0%{opacity:0;transform:translate3d(-50%,50%,0) scale3d(0,0,0)}100%{opacity:1;transform:translate3d(0,0,0) scale3d(1,1,1)}}.a-scale-in{animation:scale_in .27s ease-in}.a-scale-in-left-up{animation:scale_in_left_up .27s ease-in}.a-scale-in-right-up{animation:scale_in_right_up .27s ease-in}.a-scale-in-left-down{animation:scale_in_left_down .27s ease-in}.a-scale-in-right-down{animation:scale_in_right_down .27s ease-in}page{background-color:#f5f6f7;padding-bottom:100rpx}.m-hint{text-align:center;padding:100rpx 50rpx;line-height:50rpx;color:#999;text-align:center;font-size:34rpx;font-family:Source Han Serif SC;font-weight:500}.m-status{position:fixed;z-index:9999;top:0;left:0;right:0;bottom:0;width:100%;height:100%;background-color:rgba(0,0,0,.4);backdrop-filter:blur(8rpx)}.m-status .wrap{padding:20rpx 25rpx;line-height:40rpx;font-size:26rpx;background-color:#fff;font-family:Source Han Serif SC;font-weight:500;color:#333}.m-status .wrap::after{display:block;visibility:hidden;clear:both;overflow:hidden;height:0;content:""}.m-status .wrap .btn{display:block;box-sizing:border-box;width:120rpx;height:40rpx;border-radius:40rpx;line-height:38rpx;border:1rpx solid #ff4c52;color:#ff4c52;text-align:center}.m-fm .fm2{margin-top:1px;background-color:#fff;padding:30rpx}.m-fm .fm2 textarea{box-sizing:border-box;display:block;padding:20rpx;width:100%;height:300rpx;border-radius:10rpx;background-color:#f3f4f5;font-size:13px;font-family:Source Han Serif SC;font-weight:500;color:#333}.m-fm .fm2 textarea .z-ph{color:#999}.m-fm .fm{box-sizing:border-box;margin:20rpx auto;width:710rpx;border-radius:10rpx;padding:5rpx 20rpx;background-color:#fff}.m-fm .fm .fm-title{line-height:40rpx;padding:25rpx 0;font-size:34rpx;font-family:Source Han Serif SC;font-weight:500;color:#333}.m-fm .fm .item{line-height:40rpx;padding:25rpx 0;border-top:1rpx solid #eee}.m-fm .fm .item::after{display:block;visibility:hidden;clear:both;overflow:hidden;height:0;content:""}.m-fm .fm .item:first-child{border-top:none}.m-fm .fm .item .field{float:left;font-size:32rpx;font-family:Source Han Serif SC;font-weight:500;color:#333}.m-fm .fm .item .field .z-stress{color:#e60000}.m-fm .fm .item .input-long{float:right;width:500rpx}.m-fm .fm .item .input-long .input-show{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-wrap:normal;display:block;width:500rpx;height:40rpx;line-height:40rpx;min-height:40rpx;text-align:right;border:none;background-color:#fff;font-size:28rpx;font-family:Source Han Serif SC;color:#333}.m-fm .fm .item .input-long .input-show .input-btn{display:inline-block;margin:0 10rpx;color:#ffa03c}.m-fm .fm .item .input-long input{display:block;width:500rpx;height:40rpx;line-height:40rpx;min-height:40rpx;text-align:right;border:none;background-color:#fff;font-size:28rpx;font-family:Source Han Serif SC;color:#333}.m-fm .fm .item .input-long input .z-placeholder{color:#999}.m-fm .fm .item .input-long.z-small{width:300rpx}.m-fm .fm .item .input-long.z-small input{width:300rpx}.m-fm .fm .item .input{float:right;width:400rpx}.m-fm .fm .item .input .input-show{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-wrap:normal;display:block;width:400rpx;height:40rpx;line-height:40rpx;min-height:40rpx;text-align:right;border:none;background-color:#fff;font-size:28rpx;font-family:Source Han Serif SC;color:#333}.m-fm .fm .item .input .input-show .input-btn{display:inline-block;margin:0 10rpx;color:#ffa03c}.m-fm .fm .item .input input{display:block;width:400rpx;height:40rpx;line-height:40rpx;min-height:40rpx;text-align:right;border:none;background-color:#fff;font-size:28rpx;font-family:Source Han Serif SC;color:#333}.m-fm .fm .item .input input .z-placeholder{color:#999}.m-fm .fm .item .input.z-small{width:300rpx}.m-fm .fm .item .input.z-small input{width:300rpx}.m-fm .fm .item .item-btn{float:right;margin-left:10rpx;width:138rpx;height:40rpx;background:linear-gradient(90deg,#ff2400 2%,#cc0101 99%);border-radius:10rpx;text-align:center;font-size:22rpx;font-family:Source Han Serif SC;font-weight:500;color:#fff}.m-fm .fm .item .back-grey{background:#999}.m-fm .fm .item2{line-height:40rpx;padding:20rpx 0}.m-fm .fm .item2::after{display:block;visibility:hidden;clear:both;overflow:hidden;height:0;content:""}.m-fm .fm .item2 .field{position:relative;float:left;padding-left:50rpx;font-size:28rpx;font-family:Source Han Serif SC;font-weight:500;color:#333}.m-fm .fm .item2 .field .field-select{position:absolute;box-sizing:border-box;top:0;left:0;bottom:0;margin:auto;width:26rpx;height:26rpx;display:block;border-radius:100%;border:1px solid #aaa;pointer-events:none}.m-fm .fm .item2 .field .field-select::after{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;width:10rpx;height:10rpx;border-radius:100%;pointer-events:none}.m-fm .fm .item2 .field .field-select.z-on{border-color:#ff4c52}.m-fm .fm .item2 .field .field-select.z-on::after{background-color:#ff4c52}.m-fm .fm .item2 .input{float:left;margin-left:10rpx;width:400rpx}.m-fm .fm .item2 .input input{display:block;width:400rpx;height:40rpx;line-height:40rpx;min-height:40rpx;text-align:left;border:none;background-color:#fff;font-size:28rpx;font-family:Source Han Serif SC;color:#333}.m-fm .fm .item2 .input input .z-placeholder{color:#999}.m-fm .edit-item{display:flex;justify-content:space-between;align-items:center;width:100%;box-sizing:border-box;padding:20rpx 0;line-height:1}.m-fm .edit-item .label-avatar{font-size:32rpx;font-family:Source Han Serif SC;font-weight:500;color:#333}.m-fm .edit-item .label-avatar .z-stress{color:#e60000}.m-fm .edit-item .input-avatar{width:120rpx;height:120rpx;overflow:hidden;border-radius:50%;-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%}.m-fm .edit-item .input-avatar image{display:block;width:100%;height:100%}.m-fm .fm-hint{padding:0 20rpx;line-height:50rpx;font-size:22rpx;font-family:Source Han Serif SC;font-weight:500;color:#999} \ No newline at end of file