From 3f64725886d13677eccb38babb18f2259ba79eb1 Mon Sep 17 00:00:00 2001 From: cr <423803750@qq.com> Date: Thu, 23 Apr 2026 23:51:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E7=A4=BE=E5=8C=BA?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E5=92=8C=E6=B6=88=E6=81=AF=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=8F=8A=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 5 +- pages.json | 25 +- pages/commission/message.vue | 160 +++++ pages/community/dynamics.vue | 290 +++++++++ pages/index/auth-form.vue | 271 +++++++-- pages/index/cart.vue | 7 - pages/index/check-page.vue | 73 +-- pages/index/guest.vue | 11 +- pages/index/index.vue | 126 +++- pages/index/login-page.vue | 68 ++- pages/index/switch-house.vue | 260 +++++++++ pages/index/user.vue | 12 +- pages/notice/detail.vue | 411 +++++++++++++ pages/sub/income/index.vue | 549 ++++++++++++++++++ pages/sub/staff/index.vue | 188 ++++-- sheep/api/community/community.js | 29 + sheep/api/community/memberHouse.js | 56 ++ sheep/platform/provider/alipay/miniProgram.js | 2 +- sheep/platform/provider/wechat/miniProgram.js | 2 +- sheep/store/app.js | 6 +- sheep/store/user.js | 19 +- static/img/jr-icon1.png | Bin 0 -> 1702 bytes static/img/jr-icon2.png | Bin 0 -> 202 bytes static/img/jr-icon3.png | Bin 0 -> 19602 bytes static/img/jr-icon4.png | Bin 0 -> 396 bytes static/img/wy-icon1.png | Bin 0 -> 899 bytes static/img/wy-icon2.png | Bin 0 -> 369 bytes static/img/wy-icon3.png | Bin 0 -> 15881 bytes 28 files changed, 2382 insertions(+), 188 deletions(-) create mode 100644 pages/commission/message.vue create mode 100644 pages/community/dynamics.vue create mode 100644 pages/index/switch-house.vue create mode 100644 pages/notice/detail.vue create mode 100644 pages/sub/income/index.vue create mode 100644 sheep/api/community/community.js create mode 100644 sheep/api/community/memberHouse.js create mode 100644 static/img/jr-icon1.png create mode 100644 static/img/jr-icon2.png create mode 100644 static/img/jr-icon3.png create mode 100644 static/img/jr-icon4.png create mode 100644 static/img/wy-icon1.png create mode 100644 static/img/wy-icon2.png create mode 100644 static/img/wy-icon3.png diff --git a/.env b/.env index 03dd89b..2518203 100644 --- a/.env +++ b/.env @@ -5,7 +5,8 @@ SHOPRO_VERSION=v2.4.1 SHOPRO_BASE_URL=http://api-dashboard.yudao.iocoder.cn # 后端接口 - 测试环境(通过 process.env.NODE_ENV = development) -SHOPRO_DEV_BASE_URL=http://127.0.0.1:48080 +#SHOPRO_DEV_BASE_URL=http://127.0.0.1:48080 +SHOPRO_DEV_BASE_URL=http://1.12.53.43:9999 ### SHOPRO_DEV_BASE_URL=http://10.171.1.188:48080 ### SHOPRO_DEV_BASE_URL = http://yunai.natapp1.cc @@ -32,4 +33,4 @@ SHOPRO_H5_URL=http://127.0.0.1:3000 SHOPRO_MPLIVE_ON=0 # 租户ID 默认 1 -SHOPRO_TENANT_ID=1 +SHOPRO_TENANT_ID=162 diff --git a/pages.json b/pages.json index dc3120c..d13d3a8 100644 --- a/pages.json +++ b/pages.json @@ -116,6 +116,18 @@ "group": "物业管理" } }, + { + "path": "pages/index/switch-house", + "style": { + "navigationBarTitleText": "" + }, + "meta": { + "auth": false, + "sync": true, + "title": "切换房号", + "group": "物业管理" + } + }, { "path": "pages/index/auth-form", "style": { @@ -636,7 +648,18 @@ "group": "物业管理" } }, - { + { + "path": "income/index", + "style": { + "navigationBarTitleText": "收益公示" + }, + "meta": { + "sync": true, + "title": "收益公示", + "group": "物业管理" + } + }, + { "path": "knowledge/classroom", "style": { "navigationBarTitleText": "知识课堂" diff --git a/pages/commission/message.vue b/pages/commission/message.vue new file mode 100644 index 0000000..3827a5f --- /dev/null +++ b/pages/commission/message.vue @@ -0,0 +1,160 @@ + + + + + + diff --git a/pages/community/dynamics.vue b/pages/community/dynamics.vue new file mode 100644 index 0000000..899840e --- /dev/null +++ b/pages/community/dynamics.vue @@ -0,0 +1,290 @@ + + + + + + diff --git a/pages/index/auth-form.vue b/pages/index/auth-form.vue index 6f8558c..46572d5 100644 --- a/pages/index/auth-form.vue +++ b/pages/index/auth-form.vue @@ -6,26 +6,26 @@ 小区名称 - - 融侨馨苑 + + {{ state.form.communityName || '请选择小区' }} - + 序号 - + 号楼 - + 单元 - + @@ -54,7 +54,7 @@ 与产权人关系 - {{ state.form.relation || '请输入' }} + {{ state.form.relationType || '请输入' }} @@ -79,7 +79,7 @@ 手机号 性别 - {{ state.form.gender || '请选择' }} + {{ state.form.sex === 1 ? '男' : state.form.sex === 2 ? '女' : '请选择' }} @@ -145,13 +145,32 @@ 上传附件 - + + + + 📁 选择文件 + + + + 上传人脸照片 + + + + + + + + 📁 + + 选择照片 + + @@ -163,33 +182,152 @@ @@ -513,6 +704,18 @@ const handleSubmit = () => { color: #999999; } } + + .upload-preview { + width: 180rpx; + height: 180rpx; + border-radius: 16rpx; + overflow: hidden; + + .preview-img { + width: 100%; + height: 100%; + } + } } /* 底部按钮 */ diff --git a/pages/index/cart.vue b/pages/index/cart.vue index 8f02d5d..bc88036 100644 --- a/pages/index/cart.vue +++ b/pages/index/cart.vue @@ -246,13 +246,6 @@ cart.delete(state.selectedIds); } - function getCartList() { - cart.getList(); - } - - onShow(() => { - getCartList(); - }); diff --git a/pages/index/switch-house.vue b/pages/index/switch-house.vue new file mode 100644 index 0000000..ea149cb --- /dev/null +++ b/pages/index/switch-house.vue @@ -0,0 +1,260 @@ + + + + + + diff --git a/pages/index/user.vue b/pages/index/user.vue index a85750e..4709b6e 100644 --- a/pages/index/user.vue +++ b/pages/index/user.vue @@ -95,6 +95,7 @@ import { ref, onMounted } from 'vue'; import { onShow } from '@dcloudio/uni-app'; import sheep from '@/sheep'; +import AuthUtil from '@/sheep/api/member/auth'; // 用户信息 const userInfo = ref({ @@ -131,10 +132,15 @@ const handleLogout = () => { uni.showModal({ title: '提示', content: '确定要退出登录吗?', - success: (res) => { + success: async (res) => { if (res.confirm) { - sheep.$store('user').logout(); - sheep.$router.go('/pages/index/login-page'); + const { code } = await AuthUtil.logout(); + if (code === 0) { + sheep.$store('user').logout(); + sheep.$router.go('/pages/index/login-page'); + } else { + uni.showToast({ title: '退出登录失败', icon: 'none' }); + } } } }); diff --git a/pages/notice/detail.vue b/pages/notice/detail.vue new file mode 100644 index 0000000..657c4f5 --- /dev/null +++ b/pages/notice/detail.vue @@ -0,0 +1,411 @@ + + + + + + diff --git a/pages/sub/income/index.vue b/pages/sub/income/index.vue new file mode 100644 index 0000000..dd72182 --- /dev/null +++ b/pages/sub/income/index.vue @@ -0,0 +1,549 @@ + + + + + + diff --git a/pages/sub/staff/index.vue b/pages/sub/staff/index.vue index 0887046..15287db 100644 --- a/pages/sub/staff/index.vue +++ b/pages/sub/staff/index.vue @@ -9,34 +9,49 @@ - - - - + + + + + 物业人员 + + + + + + {{ statsInfo.buildingName }} - 物业人员 - - - - 总人数 - {{ statsInfo.total }} - + + + 总人数 + {{ statsInfo.total }} + - - - - {{ cat.name }} - {{ cat.count }} + + + + {{ cat.name }} + {{ cat.count }} + + + + + + + + + 人员信息 + @@ -51,9 +66,6 @@ - - - 人员信息 @@ -81,10 +93,7 @@ 电话: - {{ item.phone }} - - - + {{ item.phone }} @@ -236,27 +245,68 @@ function callPhone(phone) { /* ==================== 统计卡片 ==================== */ .stats-card { margin: 24rpx 32rpx 24rpx; - padding: 28rpx 32rpx 24rpx; - background: linear-gradient(135deg, #EBF4FF 0%, #D6E7FF 100%); + padding: 28rpx 0 24rpx 32rpx; border-radius: 24rpx; + display: flex; + align-items: flex-start; + justify-content: space-between; + position: relative; + overflow: hidden; + min-height: 320rpx; - /* 卡片顶部:小区名+标签 */ + /* 背景图 */ + .stats-bg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 0; + } + + /* 右侧叠加背景图 */ + .right-bg { + position: absolute; + top: 50%; + right: 24rpx; + transform: translateY(-50%); + width: 160rpx; + height: 180rpx; + z-index: 1; + } + + /* 右上角标签 */ + .corner-badge { + position: absolute; + top: 0; + right: 30rpx; + color: #FFFFFF; + font-size: 28rpx; + font-weight: 500; + padding: 12rpx 28rpx; + border-radius: 0 24rpx 0 24rpx; + z-index: 2; + } + + /* 左侧内容区 */ + .card-left { + flex: 1; + min-width: 0; + position: relative; + z-index: 1; + } + + /* 卡片顶部:小区名 */ .card-top { display: flex; align-items: center; - justify-content: space-between; margin-bottom: 20rpx; - } - - /* 小区信息 */ - .building-info { - display: flex; - align-items: center; .building-icon { - font-size: 36rpx; - color: #333333; + width: 40rpx; + height: 40rpx; margin-right: 12rpx; + flex-shrink: 0; } .building-name { @@ -266,35 +316,25 @@ function callPhone(phone) { } } - /* 物业人员标签 */ - .staff-badge { - background: linear-gradient(135deg, #5B9BFF 0%, #3D7BD9 100%); - color: #FFFFFF; - font-size: 26rpx; - font-weight: 500; - padding: 8rpx 24rpx; - border-radius: 24rpx 0 24rpx 0; - } - - /* 总人数行 */ + /* 总人数行 - 纵向排列 */ .total-row { display: flex; - align-items: baseline; - margin-bottom: 24rpx; + flex-direction: column; + margin-bottom: 20rpx; .total-label { font-size: 26rpx; color: #666666; - margin-right: 16rpx; + margin-bottom: 8rpx; } .total-count { - font-size: 48rpx; + font-size: 52rpx; font-weight: 700; color: #FA7E49; /* 橙色主题 */ .total-unit { - font-size: 28rpx; + font-size: 30rpx; font-weight: 400; color: #FA7E49; margin-left: 4rpx; @@ -305,7 +345,8 @@ function callPhone(phone) { /* 分类统计行 */ .category-row { display: flex; - justify-content: space-between; + justify-content: space-around; + gap: 32rpx; .category-item { display: flex; @@ -313,9 +354,9 @@ function callPhone(phone) { align-items: center; .cat-name { - font-size: 26rpx; + font-size: 24rpx; color: #666666; - margin-bottom: 8rpx; + margin-bottom: 10rpx; } .cat-count { @@ -325,6 +366,18 @@ function callPhone(phone) { } } } + + /* 右侧区域 */ + .card-right { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding-right: 24rpx; + padding-left: 16rpx; + position: relative; + z-index: 1; + } } /* ==================== 分类Tab栏 ==================== */ @@ -341,6 +394,7 @@ function callPhone(phone) { padding: 20rpx 0; margin-right: 40rpx; position: relative; + flex-shrink: 0; /* 防止Tab项被压缩 */ &:last-child { margin-right: 0; @@ -397,13 +451,14 @@ function callPhone(phone) { .staff-item { display: flex; padding: 28rpx 0; + position: relative; - /* 分割线(非第一项) */ - &:not(:last-child)::after { + /* 分割线 */ + &::after { content: ''; position: absolute; bottom: 0; - left: 112rpx; + left: 0; right: 0; height: 1rpx; background-color: #F0F0F0; @@ -442,6 +497,9 @@ function callPhone(phone) { font-weight: 500; margin-right: 24rpx; } + .name-text{ + margin-right:100rpx; + } } /* 电话行 */ @@ -478,17 +536,23 @@ function callPhone(phone) { } } - /* 职责描述行 */ + /* 职责描述行 - 标签与内容同行换行 */ .duty-row { + display: flex; + align-items: flex-start; + .duty-label { font-size: 26rpx; color: #999999; + flex-shrink: 0; } .duty-text { + flex: 1; font-size: 26rpx; color: #666666; line-height: 1.6; + word-break: break-all; } } } diff --git a/sheep/api/community/community.js b/sheep/api/community/community.js new file mode 100644 index 0000000..065c3cf --- /dev/null +++ b/sheep/api/community/community.js @@ -0,0 +1,29 @@ +import request from '@/sheep/request'; + +const CommunityApi = { + // 获取小区简单列表 + getSimpleList: () => { + return request({ + url: '/community/community/simple-list', + method: 'GET', + custom: { + showLoading: true, + auth: true, + }, + }); + }, + // 获取小区房屋树 + getHouseTree: (communityId) => { + return request({ + url: '/community/house/tree', + method: 'GET', + params: { communityId }, + custom: { + showLoading: true, + auth: true, + }, + }); + }, +}; + +export default CommunityApi; diff --git a/sheep/api/community/memberHouse.js b/sheep/api/community/memberHouse.js new file mode 100644 index 0000000..e969446 --- /dev/null +++ b/sheep/api/community/memberHouse.js @@ -0,0 +1,56 @@ +import request from '@/sheep/request'; + +const MemberHouseApi = { + // 获取我的房屋认证列表 + getMyList: () => { + return request({ + url: '/community/member-house/my-list', + method: 'GET', + custom: { + showLoading: true, + auth: true, + }, + }); + }, + // 获取小区房屋树 + getCommunityTree: () => { + return request({ + url: '/community/member-house/community-tree', + method: 'GET', + custom: { + showLoading: true, + auth: true, + }, + }); + }, + // 切换当前房屋 + switchHouse: (data) => { + return request({ + url: '/community/member-house/switch-house', + method: 'POST', + data, + custom: { + showLoading: true, + auth: true, + showSuccess: true, + successMsg: '切换成功', + }, + }); + }, + // 新增业主认证信息 + create: (data) => { + return request({ + url: '/community/member-house/create', + method: 'POST', + data, + custom: { + showLoading: true, + auth: true, + showSuccess: true, + successMsg: '提交成功', + }, + }); + }, +}; + +export default MemberHouseApi; diff --git a/sheep/platform/provider/alipay/miniProgram.js b/sheep/platform/provider/alipay/miniProgram.js index b22457a..534e28f 100644 --- a/sheep/platform/provider/alipay/miniProgram.js +++ b/sheep/platform/provider/alipay/miniProgram.js @@ -8,7 +8,7 @@ let subscribeEventList = [] function load() { checkUpdate() - getSubscribeTemplate() + // getSubscribeTemplate() // 已移除:不需要获取订阅消息模板列表 } // ================= 登录相关逻辑=================== diff --git a/sheep/platform/provider/wechat/miniProgram.js b/sheep/platform/provider/wechat/miniProgram.js index 1fe1809..6271769 100644 --- a/sheep/platform/provider/wechat/miniProgram.js +++ b/sheep/platform/provider/wechat/miniProgram.js @@ -10,7 +10,7 @@ let subscribeEventList = []; // 加载微信小程序 function load() { checkUpdate(); - getSubscribeTemplate(); + // getSubscribeTemplate(); // 已移除:不需要获取订阅消息模板列表 } // 微信小程序静默授权登陆 diff --git a/sheep/store/app.js b/sheep/store/app.js index b84c1a9..b843295 100644 --- a/sheep/store/app.js +++ b/sheep/store/app.js @@ -67,12 +67,12 @@ const app = defineStore({ await adaptTenant(); // 加载装修配置 - await adaptTemplate(this.template, templateId); + // await adaptTemplate(this.template, templateId); // TODO 芋艿:【初始化优化】未来支持管理后台可配;对应 https://api.shopro.sheepjs.com/shop/api/init if (true) { this.info = { - name: '芋道商城', + name: '物业管理', logo: 'https://static.iocoder.cn/ruoyi-vue-pro-logo.png', version: '2026.01', copyright: '全部开源,个人与企业可 100% 免费使用', @@ -172,7 +172,7 @@ const adaptTenant = async () => { userStore.setToken(); // 设置新的 tenantId 到本地存储 - uni.setStorageSync('tenant-id', newTenantId); + uni.setStorageSync('tenant-id', '162'||newTenantId); console.log('租户 ID 已更新:', `${oldTenantId} -> ${newTenantId}`); } } catch (error) { diff --git a/sheep/store/user.js b/sheep/store/user.js index fceb584..eea182f 100644 --- a/sheep/store/user.js +++ b/sheep/store/user.js @@ -16,6 +16,11 @@ const defaultUserInfo = { gender: 0, // 性别 mobile: '', // 手机号 point: 0, // 积分 + currentCommunityId: null, // 当前小区ID + currentCommunityName: '', // 当前小区名称 + currentHouseId: null, // 当前房屋ID + currentHouseAddress: '', // 当前房屋完整地址 + isHouseAuth: false, // 是否已完成房屋认证(有认证记录) }; // 默认钱包信息 @@ -110,8 +115,8 @@ const user = defineStore({ // 获取最新信息 await this.getInfo(); - this.getWallet(); - this.getNumData(); + // this.getWallet(); + // this.getNumData(); return this.userInfo; }, @@ -132,17 +137,17 @@ const user = defineStore({ await this.updateUserData(); // 加载购物车 - cart().getList(); + // cart().getList(); // 登录后设置全局分享参数 $share.getShareInfo(); // 提醒绑定手机号 - if (app().platform.bind_mobile && !this.userInfo.mobile) { - showAuthModal('changeMobile'); - } + // if (app().platform.bind_mobile && !this.userInfo.mobile) { + // showAuthModal('changeMobile'); + // } // 绑定推广员 - $share.bindBrokerageUser(); + // $share.bindBrokerageUser(); }, // 登出系统 diff --git a/static/img/jr-icon1.png b/static/img/jr-icon1.png new file mode 100644 index 0000000000000000000000000000000000000000..330feff501e97f4935f8e6a6bf2f067654e76e2e GIT binary patch literal 1702 zcmV;X23h%uP)sO+d1( zD!RyV?UC(qi}m*YR25c~bI)x3;~&pIm@$0x#*F1Y#I!mJy$%#=HKK% zof^1sCN!$zkVdW9J+Lvu5Ck+ciU^;CP7#aeJ7Y|u1OOLQA+f2*Db zp`>i!%}S`Rarc)lqS}!8TrtStWH)3DyOM-br;>_5e%SOi_^=(cJi`@sSZ1 zEz*69aT;z#7Zw*6cz{TTMUdRs9GGqo^%8ob_jXDQCPsj|I`c}7eEpCgJ zUov3Yl9iRELPJxVoNlE|69I@Vl$QYQ^^cHf*Ob;MqVBETN<=82Z z5iswrytk<@oB|mGlO}zYOjuJxWDLv=xxyDPvH%RgKq@dY1|~H0W+%U}Ox;Pe1T6M8?1X z4I}~}V_;rPTzZU*fpPmzShE9UHLz) z8whM1CmfjGsw=C3;P=c71U6ZwKClCVPv`^tfdf;FG4QYU&RC~mAPAxcf#|{DHVxEN z)Um`5An^kf^!fh^ilC7w{Ortaw5!~evEs4s*5|$3nQ;dW1J3d|9Vd_r0@h2y1Ll`R z7GNa;9xx{YS%8)7dBB|PWdT+~?*Vf{k4qRIn3pj6H7xbfz0oq&Pxg43ssVTkNN*v2 zaVx@4=w|`L=8L<8;msFqH`$9e-frTbePF&dbwpHGYcP4}{ovy8)wZ$wIPtbIZoft^JHZYTZnU3rO>%2(p z_JNt$%~WuwukG=?pWfLsI zVc8K#K|I-!FSO!L9EnR4B`v$pDyEB)4?gAbkL6|7g9n$6U(*J)@dRK-GRkZIJxamkzN*km;_2CHO+rYCV@ zfIaJf`&xE)Ee-yPSQ?&S;`qJY#E~nvZ@W#lyyMPa>uopcluKSUYf{sU)z4Aces+na zP|R?5xF(BXG&inhs?5lYTg^DTfmL`pbM)W#vc?X6alWc%fPb787ovI9E4$W54!qAg w_#OWKUk3cS`MV0WKHbq;}hyAml5XbXHo(cz699ePX#FPXb=cyjz4bL4-7BrmLTEK92 bYX~dD8Ve5t+h;Q;fL!G1>gTe~DWM4fb7MGQ literal 0 HcmV?d00001 diff --git a/static/img/jr-icon3.png b/static/img/jr-icon3.png new file mode 100644 index 0000000000000000000000000000000000000000..0eeca2ac7eb8afa1eb160071696329d0b5794a7b GIT binary patch literal 19602 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 literal 0 HcmV?d00001 diff --git a/static/img/jr-icon4.png b/static/img/jr-icon4.png new file mode 100644 index 0000000000000000000000000000000000000000..a6f344986dc3cf046f8db1ec90b1a8521fa59842 GIT binary patch literal 396 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU3?z3ec*FxKzW|>QS0GJAaAeW4NT6|&B|(0{ z4Cf8%{W;d>sCsVud}CS3<9V@%SbB9N#H}|z+He`D=!&O{V~EA+t5a_CH7f|XOq|NJ zsN!|*zyI#DOME@0WaVbrRmhz!oT-?2HZvms+k^*Q&xJWo&hF*-a#qn+zM*=h-@A2SQh;?NW zR^}3(JHs`_LElL|Z_5smr{NbXt4j8sshXRedMBVRK{B>|V)s#Q(Tx@DNk=|>ybv>` z(!Hc|c9DDHLjQxzv8!2>R=xagR5V$ip+7}rQ_#K5x59Y0Em7Ot&i!rn)j9p*y7^*0 T4?Fhrfx^_&)z4*}Q$iB}SxABD literal 0 HcmV?d00001 diff --git a/static/img/wy-icon1.png b/static/img/wy-icon1.png new file mode 100644 index 0000000000000000000000000000000000000000..2365702f9877308f3760a68647fff262320e161f GIT binary patch literal 899 zcmV-}1AP36P)tw z5JhP|dM!crL`LdK+3Cp{r>A89|F@(_aVHr|0L8@}!P(QAqhkPz1+YM27=~dOhG7_n zVHk#C7)G8npYN}4?`uKi^DKY(@m7$i&jQ+C1%nUyn`4oltNe>gKD2NGS0n^ZY7bZP zHK!sSjh7pYMKTt-MVls=(7D`U^>T-~0BItZG;a_^oLE9bsZGU*l1H_a5S_ksk|64H zwU#i0w)7%^7D`?KE0ijUq3883aKzpPGcR_*kRUT~^TQ%>w8S9=GjB-2z#CG~@n$J- z#1#gp#t}V|8i{A%WqWYY3|@NpzDPWdmjppeoH2knW5ArVRJJf`<_2U z;D>LUc}ZtO@hbB&U34V1*_U3Ui_F=V(<5hU`wgy0n3q9dA@pvbe_5{`e0=X_erenI zZF~ESFXFd8Imq{M1)55Ir&AI`7figTL7<|gdho$~j|3;r3MbhLXV{we(pGzk;HRpy znIwi5D=M+n;a1*&f+KPL1|zR?fg>Jdz=?TI#CpSvBG4t=@V2k#blczZ_D?U#)>eP} zm+L@N^&5I8#QIdBd-tfk>W3~)g)eF5>T*|F-utWm?TCX^Jp-2yN;~y1g0xCefvx3H z>5$@_)&-uX6bGDiRa002ovPDHLkV1oHJtuFuo literal 0 HcmV?d00001 diff --git a/static/img/wy-icon2.png b/static/img/wy-icon2.png new file mode 100644 index 0000000000000000000000000000000000000000..5952c5160f250345a83174395b3f8fb5e09c1e63 GIT binary patch literal 369 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sP60k4u0WbX(D(4$C!i6cB|(0{ z4E1b3EY^H}zjSJ!SKi6(VaoSoMeLgtVwM6Gob+^Y4DmSr_Uc`(!wNjC3B6I#TmM_X z|G(<>0fQG=**DgmI@ikbaCe7b=yy(DHuu612F}(cOcxqne$kuDSR#4k{M`z!KC8)0 zU)lFFhCRRGbwS~H`h_@#;|tCn&^aW>pv#)!$zd=-V8Q$rhR-4OUK5Y8Wh62F_$za0 zo8M*p))jFRIU6&VV#TCZL7Q9lcWJ=6c{41r?e+U$Cp00i_>zopr E0HeKsLjV8( literal 0 HcmV?d00001 diff --git a/static/img/wy-icon3.png b/static/img/wy-icon3.png new file mode 100644 index 0000000000000000000000000000000000000000..8254941d0c41c1833536b193d1be7159f10e2bb7 GIT binary patch literal 15881 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