From 91ffaa62e7fc64bff72a6266ad3b99ae531768d0 Mon Sep 17 00:00:00 2001 From: lik Date: Fri, 29 May 2026 20:30:42 +0800 Subject: [PATCH] tmp --- app.js | 12 +- app.json | 8 +- pages/escort/agreement.js | 124 ++++++++++ pages/escort/agreement.json | 6 + pages/escort/agreement.wxml | 62 +++++ pages/escort/agreement.wxss | 264 ++++++++++++++++++++++ pages/escort/itemdetail.json | 2 +- pages/escort/itemdetail.wxml | 6 +- pages/escort/itemdetail.wxss | 24 +- pages/escort/itemlist.js | 74 ++---- pages/escort/itemlist.json | 3 +- pages/escort/itemlist.wxml | 56 ++++- pages/escort/itemlist.wxss | 218 +++++++++++++++++- pages/escort/recordlist.wxss | 4 +- pages/home/index.js | 15 +- pages/home/index.wxml | 4 +- pages/home/index.wxss | 6 + pages/mine/about.js | 128 +++++++++++ pages/mine/about.json | 6 + pages/mine/about.wxml | 70 ++++++ pages/mine/about.wxss | 191 ++++++++++++++++ pages/mine/comp_address/comp_address.wxml | 10 +- pages/mine/comp_address/comp_address.wxss | 31 ++- pages/mine/comp_profile/comp_profile.wxml | 1 + pages/mine/comp_profile/comp_profile.wxss | 26 ++- pages/mine/mine.js | 12 +- utils/api.js | 1 + utils/request.js | 4 +- 28 files changed, 1270 insertions(+), 98 deletions(-) create mode 100644 pages/escort/agreement.js create mode 100644 pages/escort/agreement.json create mode 100644 pages/escort/agreement.wxml create mode 100644 pages/escort/agreement.wxss create mode 100644 pages/mine/about.js create mode 100644 pages/mine/about.json create mode 100644 pages/mine/about.wxml create mode 100644 pages/mine/about.wxss diff --git a/app.js b/app.js index 7da5041..0a3ee86 100644 --- a/app.js +++ b/app.js @@ -10,7 +10,6 @@ App({ } this.globalData.appId = appId - const request = require('./utils/request.js') this.globalData.servicesReady = new Promise((resolve) => { API.resource.getServices().then((data) => { this.globalData.services = data.data.services @@ -20,6 +19,16 @@ App({ resolve([]) }) }) + + this.globalData.agreementReady = new Promise((resolve) => { + API.resource.getAgreement().then((data) => { + this.globalData.agreement = data.data.agreement + resolve(data.data.agreement) + }).catch((err) => { + console.error('获取服务协议失败', err) + resolve(null) + }) + }) }, onShow(options) { @@ -76,5 +85,6 @@ App({ user: null, chatSocket: null, services: [], + agreement: null, } }) \ No newline at end of file diff --git a/app.json b/app.json index 50a18df..90769b8 100644 --- a/app.json +++ b/app.json @@ -1,16 +1,18 @@ { "pages": [ "pages/home/index", - "pages/mine/mine", "pages/ai/aichat", "pages/escort/itemdetail", "pages/escort/itemlist", - "pages/escort/recordlist" + "pages/escort/recordlist", + "pages/escort/agreement", + "pages/mine/mine", + "pages/mine/about" ], "window": { "backgroundTextStyle": "light", "navigationBarBackgroundColor": "#FFFFFF", - "navigationBarTitleText": "陪诊助手", + "navigationBarTitleText": "暖橙陪诊", "navigationBarTextStyle": "black" }, "tabBar": { diff --git a/pages/escort/agreement.js b/pages/escort/agreement.js new file mode 100644 index 0000000..6032fe1 --- /dev/null +++ b/pages/escort/agreement.js @@ -0,0 +1,124 @@ +const app = getApp() + +Page({ + + /** + * 页面的初始数据 + */ + data: { + agreement: null, + loading: true + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + const agreement = app.globalData.agreement + if (agreement) { + this.setData({ + agreement: agreement, + loading: false + }) + } else { + this.setData({ loading: false }) + } + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + return { + title: '暖橙陪诊服务协议', + path: '/pages/escort/agreement' + } + }, + + // 复制客服邮箱 + onCopyEmail() { + wx.setClipboardData({ + data: 'service@huashengtec.com', + success: () => { + wx.showToast({ + title: '邮箱已复制', + icon: 'success', + duration: 1500 + }) + }, + fail: () => { + wx.showToast({ + title: '复制失败', + icon: 'none', + duration: 1500 + }) + } + }) + }, + + // 拨打客服电话 + onCallPhone() { + wx.makePhoneCall({ + phoneNumber: '18618162956', + fail: () => { + wx.showToast({ + title: '拨号失败', + icon: 'none', + duration: 1500 + }) + } + }) + }, + + // 处理联系人行点击 + onContactTap(e) { + const action = e.currentTarget.dataset.action + if (action === 'copyEmail') { + this.onCopyEmail() + } else if (action === 'callPhone') { + this.onCallPhone() + } + } +}) diff --git a/pages/escort/agreement.json b/pages/escort/agreement.json new file mode 100644 index 0000000..fe5c1a7 --- /dev/null +++ b/pages/escort/agreement.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "陪诊服务协议", + "usingComponents": { + "t-icon": "tdesign-miniprogram/icon/icon" + } +} diff --git a/pages/escort/agreement.wxml b/pages/escort/agreement.wxml new file mode 100644 index 0000000..5126b7a --- /dev/null +++ b/pages/escort/agreement.wxml @@ -0,0 +1,62 @@ + + + 加载中... + + + + + + {{agreement.title}} + {{agreement.subtitle}} + + + + + + {{item.number}} + {{item.title}} + + + + + + + {{subItem}} + + + + + + + + {{h}} + + + {{cell}} + + + + + + + {{item.content}} + + + + + + + + {{contact.text}} + + + + + + + + + {{item}} + + + diff --git a/pages/escort/agreement.wxss b/pages/escort/agreement.wxss new file mode 100644 index 0000000..f3e6119 --- /dev/null +++ b/pages/escort/agreement.wxss @@ -0,0 +1,264 @@ +/* pages/escort/agreement.wxss */ +page { + background-color: #FAF6F1; +} + +.container { + min-height: 100vh; + padding-bottom: 48rpx; +} + +/* 顶部标题区 */ +.header-section { + background: linear-gradient(180deg, #FFFFFF 0%, #FFF8F0 100%); + display: flex; + flex-direction: column; + align-items: center; + padding: 48rpx 32rpx 40rpx; +} + +.header-icon-wrap { + width: 96rpx; + height: 96rpx; + background: linear-gradient(135deg, #D4A853 0%, #D4A853 100%); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + box-shadow: 0 8rpx 24rpx rgba(212, 168, 83, 0.25); +} + +.header-icon { + color: #FFFFFF; +} + +.header-title { + font-size: 40rpx; + font-weight: 700; + color: #1F2937; + margin-top: 24rpx; +} + +.header-subtitle { + font-size: 26rpx; + color: #9CA3AF; + margin-top: 12rpx; +} + +/* 协议内容卡片 */ +.agreement-card { + background: #FFFFFF; + padding: 32rpx; +} + +/* 章节 */ +.section { + margin-bottom: 40rpx; +} + +.section:last-child { + margin-bottom: 0; +} + +.section-title { + display: flex; + align-items: center; + font-size: 32rpx; + font-weight: 600; + color: #1F2937; + margin-bottom: 20rpx; +} + +.section-number { + width: 40rpx; + height: 40rpx; + background: linear-gradient(135deg, #D4A853 0%, #D4A853 100%); + color: #FFFFFF; + font-size: 24rpx; + font-weight: 600; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + margin-right: 16rpx; + flex-shrink: 0; +} + +.section-content { + padding-left: 36rpx; +} + +.paragraph { + display: block; + font-size: 28rpx; + color: #4B5563; + line-height: 1.8; +} + +/* 列表项 */ +.list-item { + display: flex; + align-items: flex-start; + margin-bottom: 16rpx; +} + +.list-item:last-child { + margin-bottom: 0; +} + +.list-dot { + width: 12rpx; + height: 12rpx; + background: #D4A853; + border-radius: 50%; + margin-top: 14rpx; + margin-right: 16rpx; + flex-shrink: 0; +} + +.list-text { + font-size: 28rpx; + color: #4B5563; + line-height: 1.7; + flex: 1; +} + +/* 流程步骤 */ +.flow-steps { + display: flex; + flex-direction: column; +} + +.flow-step { + display: flex; + align-items: flex-start; +} + +.step-badge { + width: 44rpx; + height: 44rpx; + background: linear-gradient(135deg, #D4A853 0%, #D4A853 100%); + color: #FFFFFF; + font-size: 24rpx; + font-weight: 600; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + margin-right: 20rpx; +} + +.step-info { + flex: 1; + padding-bottom: 8rpx; +} + +.step-title { + display: block; + font-size: 28rpx; + font-weight: 600; + color: #1F2937; + margin-bottom: 4rpx; +} + +.step-desc { + display: block; + font-size: 26rpx; + color: #6B7280; + line-height: 1.5; +} + +.step-line { + width: 2rpx; + height: 40rpx; + background: #E5E7EB; + margin-left: 21rpx; + margin-top: 4rpx; + margin-bottom: 4rpx; +} + +/* 联系信息 */ +.contact-info { + margin-top: 20rpx; + background: #FAF6F1; + border-radius: 16rpx; + padding: 24rpx; +} + +.contact-row { + display: flex; + align-items: center; + margin-bottom: 16rpx; +} + +.contact-row:last-child { + margin-bottom: 0; +} + +.contact-icon { + color: #D4A853; + margin-right: 12rpx; + flex-shrink: 0; +} + +.contact-text { + font-size: 28rpx; + color: #4B5563; +} + +/* 退订违约金表格 */ +.refund-table { + margin-top: 20rpx; + background: #FAF6F1; + border-radius: 16rpx; + overflow: hidden; + border: 1rpx solid #F0E6D8; +} + +.table-row { + display: flex; + align-items: center; + padding: 20rpx 24rpx; + border-bottom: 1rpx solid #F0E6D8; +} + +.table-row:last-child { + border-bottom: none; +} + +.table-row.header { + background: #FFF8F0; +} + +.table-row.header .table-cell { + font-weight: 600; + color: #1F2937; +} + +.table-cell { + flex: 1; + font-size: 26rpx; + color: #4B5563; + line-height: 1.5; + text-align: center; +} + +.table-cell:first-child { + flex: 1.2; +} + +/* 底部信息 */ +.footer-section { + display: flex; + flex-direction: column; + align-items: center; + margin-top: 16rpx; + padding: 0 32rpx; +} + +.footer-text { + font-size: 24rpx; + color: #9CA3AF; + line-height: 1.6; +} diff --git a/pages/escort/itemdetail.json b/pages/escort/itemdetail.json index 8dbc89c..bb39b10 100644 --- a/pages/escort/itemdetail.json +++ b/pages/escort/itemdetail.json @@ -2,5 +2,5 @@ "usingComponents": { "t-icon": "tdesign-miniprogram/icon/icon" }, - "navigationBarTitleText": "服务详情" + "navigationBarTitleText": "" } diff --git a/pages/escort/itemdetail.wxml b/pages/escort/itemdetail.wxml index 2d977e8..6b00284 100644 --- a/pages/escort/itemdetail.wxml +++ b/pages/escort/itemdetail.wxml @@ -71,7 +71,7 @@ 合计: ¥{{totalPrice}} - + @@ -80,7 +80,7 @@ - 确认订单 + 确认预约信息 @@ -173,7 +173,7 @@ 合计: ¥{{totalPrice}} - + diff --git a/pages/escort/itemdetail.wxss b/pages/escort/itemdetail.wxss index 34dc74b..14319c1 100644 --- a/pages/escort/itemdetail.wxss +++ b/pages/escort/itemdetail.wxss @@ -52,7 +52,7 @@ page { } .service-tag { - background: linear-gradient(135deg, #FF9B33 0%, #FF8500 100%); + background: linear-gradient(135deg, #D4A853 0%, #D4A853 100%); color: #FFFFFF; font-size: 22rpx; padding: 4rpx 16rpx; @@ -66,13 +66,13 @@ page { .price-symbol { font-size: 28rpx; - color: #FF9B33; + color: #D4A853; font-weight: 600; } .service-price { font-size: 44rpx; - color: #FF9B33; + color: #D4A853; font-weight: 700; } @@ -107,7 +107,7 @@ page { } .card-icon { - color: #FF9B33; + color: #D4A853; margin-right: 12rpx; } @@ -137,7 +137,7 @@ page { .flow-number { width: 44rpx; height: 44rpx; - background: linear-gradient(135deg, #FF9B33 0%, #FF8500 100%); + background: linear-gradient(135deg, #D4A853 0%, #D4A853 100%); color: #FFFFFF; font-size: 24rpx; font-weight: 600; @@ -183,7 +183,7 @@ page { .notice-dot { width: 12rpx; height: 12rpx; - background: #FF9B33; + background: #D4A853; border-radius: 50%; margin-top: 12rpx; flex-shrink: 0; @@ -230,17 +230,17 @@ page { .total-price { font-size: 40rpx; - color: #FF9B33; + color: #D4A853; font-weight: 700; } .order-btn { - background: linear-gradient(135deg, #FF9B33 0%, #FF8500 100%); + background: linear-gradient(135deg, #D4A853 0%, #D4A853 100%); color: #FFFFFF; font-size: 30rpx; font-weight: 600; padding: 24rpx 56rpx; - border-radius: 40rpx; + border-radius: 20rpx; border: none; line-height: 1.5; } @@ -352,7 +352,7 @@ page { .order-service-price { display: block; font-size: 32rpx; - color: #FF9B33; + color: #D4A853; font-weight: 700; } @@ -475,12 +475,12 @@ page { .popup-price-value { font-size: 40rpx; - color: #FF9B33; + color: #D4A853; font-weight: 700; } .popup-submit-btn { - background: linear-gradient(135deg, #FF9B33 0%, #FF8500 100%); + background: linear-gradient(135deg, #D4A853 0%, #D4A853 100%); color: #FFFFFF; font-size: 30rpx; font-weight: 600; diff --git a/pages/escort/itemlist.js b/pages/escort/itemlist.js index 2f062e2..39bda76 100644 --- a/pages/escort/itemlist.js +++ b/pages/escort/itemlist.js @@ -1,66 +1,32 @@ -// pages/escort/itemlist.js Page({ - - /** - * 页面的初始数据 - */ data: { - + services: [] }, - /** - * 生命周期函数--监听页面加载 - */ onLoad(options) { - + const app = getApp() + this.setData({ + services: app.globalData.services + }); }, - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady() { - + goToDetail(e) { + const id = e.currentTarget.dataset.id; + wx.navigateTo({ + url: `/pages/escort/itemdetail?id=${id}` + }); }, - /** - * 生命周期函数--监听页面显示 - */ - onShow() { - + onBook(e) { + const id = e.currentTarget.dataset.id; + wx.navigateTo({ + url: `/pages/escort/itemdetail?id=${id}` + }); }, - /** - * 生命周期函数--监听页面隐藏 - */ - onHide() { - - }, - - /** - * 生命周期函数--监听页面卸载 - */ - onUnload() { - - }, - - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh() { - - }, - - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom() { - - }, - - /** - * 用户点击右上角分享 - */ - onShareAppMessage() { - + goToAgreement() { + wx.navigateTo({ + url: '/pages/escort/agreement' + }); } -}) \ No newline at end of file +}); diff --git a/pages/escort/itemlist.json b/pages/escort/itemlist.json index 8835af0..9172073 100644 --- a/pages/escort/itemlist.json +++ b/pages/escort/itemlist.json @@ -1,3 +1,4 @@ { - "usingComponents": {} + "usingComponents": {}, + "navigationBarTitleText": "助诊服务" } \ No newline at end of file diff --git a/pages/escort/itemlist.wxml b/pages/escort/itemlist.wxml index 0b46a96..734ae88 100644 --- a/pages/escort/itemlist.wxml +++ b/pages/escort/itemlist.wxml @@ -1,2 +1,54 @@ - -pages/escort/itemlist.wxml \ No newline at end of file + + + + + + + 陪诊服务 + + 专业 · 贴心 · 安心 + + + + + 全国范围内的陪诊服务,全程陪同就医,让就诊更轻松、更安心。请认真阅读 + 《用户协议》 + + + + + + + + + + + 服务列表 + + + + + + + + {{ item.title }} + + {{ item.tag }} + + + {{ item.subtitle }} + + + + + ¥ + {{ item.price }} + + + 立即预约 + + + + + + diff --git a/pages/escort/itemlist.wxss b/pages/escort/itemlist.wxss index 1f1e125..011dae3 100644 --- a/pages/escort/itemlist.wxss +++ b/pages/escort/itemlist.wxss @@ -1 +1,217 @@ -/* pages/escort/itemlist.wxss */ \ No newline at end of file +page { + background-color: #F5F7F6; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; +} + +.container { + min-height: 100vh; + padding-bottom: calc(32rpx + env(safe-area-inset-bottom)); +} + +/* 页面头部 */ +.page-header { + background: #FFFFFF; + padding: 48rpx 32rpx 32rpx; +} + +.header-title-wrap { + display: flex; + align-items: center; + gap: 16rpx; + margin-bottom: 12rpx; +} + +.header-accent { + width: 8rpx; + height: 40rpx; + background: #2D6A4F; + border-radius: 4rpx; +} + +.header-title { + font-size: 40rpx; + font-weight: 700; + color: #1F2937; + letter-spacing: 2rpx; +} + +.header-subtitle { + font-size: 26rpx; + color: #6B8E7B; + margin-left: 24rpx; + letter-spacing: 4rpx; + margin-bottom: 24rpx; +} + +.intro-card { + display: flex; + align-items: flex-start; + background: #FAFAFA; + border-radius: 20rpx; + padding: 32rpx; +} + +.intro-icon-wrap { + width: 80rpx; + height: 80rpx; + border-radius: 20rpx; + background: #6B8E7B; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + margin-right: 24rpx; +} + +.intro-content { + display: flex; + flex-direction: column; + flex: 1; +} + +.intro-title { + font-size: 32rpx; + font-weight: 700; + color: #1F2937; + margin-bottom: 12rpx; +} + +.intro-desc { + font-size: 26rpx; + color: #6B7280; + line-height: 1.6; +} + +.link-text { + color: #D4A853; + font-weight: 500; +} + +/* 服务列表 */ +.service-list { + padding: 32rpx 12rpx; +} + +.section-title-wrap { + display: flex; + align-items: center; + gap: 12rpx; + margin-bottom: 24rpx; +} + +.section-title { + font-size: 32rpx; + font-weight: 700; + color: #1F2937; +} + +.service-item { + background: #FFFFFF; + border-radius: 20rpx; + padding: 32rpx 32rpx 22rpx 32rpx; + margin-bottom: 24rpx; + box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.04); + transition: transform 0.2s, box-shadow 0.2s; +} + +.service-item:active { + transform: translateY(2rpx); + box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.06); +} + +.service-main { + margin-bottom: 24rpx; +} + +.service-title-row { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 12rpx; +} + +.title-wrap { + display: flex; + align-items: center; + gap: 12rpx; +} + +.title-accent { + width: 6rpx; + height: 32rpx; + background: #2D6A4F; + border-radius: 3rpx; + flex-shrink: 0; +} + +.service-title { + font-size: 32rpx; + font-weight: 700; + color: #1F2937; +} + +.service-tag { + background: #D4A853; + color: #FFFFFF; + font-size: 22rpx; + padding: 6rpx 16rpx; + border-radius: 8rpx; + font-weight: 500; + flex-shrink: 0; + margin-left: 16rpx; +} + +.subtitle-wrap { + display: flex; + align-items: center; + gap: 12rpx; +} + +.service-subtitle { + font-size: 26rpx; + color: #6B7280; + line-height: 1.5; +} + +.service-footer { + display: flex; + align-items: center; + justify-content: space-between; + padding-top: 14rpx; + border-top: 1rpx solid #F3F4F6; +} + +.price-wrap { + display: flex; + align-items: baseline; +} + +.price-symbol { + font-size: 28rpx; + color: #D4A853; + font-weight: 600; +} + +.service-price { + font-size: 32rpx; + color: #D4A853; + font-weight: 700; + margin-left: 4rpx; +} + +.btn-book { + display: flex; + align-items: center; + gap: 8rpx; + background: #2D6A4F; + color: #FFFFFF; + font-size: 26rpx; + padding: 16rpx 28rpx; + border-radius: 20rpx; + font-weight: 500; + transition: transform 0.2s; +} + +.btn-book:active { + transform: scale(0.96); +} diff --git a/pages/escort/recordlist.wxss b/pages/escort/recordlist.wxss index b1e2d41..03e631a 100644 --- a/pages/escort/recordlist.wxss +++ b/pages/escort/recordlist.wxss @@ -36,7 +36,7 @@ page { .tab-item.active { color: #FFFFFF; - background: linear-gradient(135deg, #FF9B33 0%, #FF8500 100%); + background: linear-gradient(135deg, #D4A853 0%, #D4A853 100%); font-weight: 600; } @@ -136,7 +136,7 @@ page { .fee-value { font-size: 32rpx; - color: #FF9B33; + color: #D4A853; font-weight: 700; } diff --git a/pages/home/index.js b/pages/home/index.js index 7364e7e..d84206d 100644 --- a/pages/home/index.js +++ b/pages/home/index.js @@ -2,18 +2,18 @@ Page({ data: { assistServices: [ { id: 1, name: '陪诊', icon: 'heart-filled', iconColor: '#2D6A4F' }, - { id: 2, name: '代办问诊', icon: 'chat-heart-filled', iconColor: '#2D6A4F' }, + { id: 2, name: '代办问诊', icon: 'chat-heart', iconColor: '#2D6A4F' }, { id: 3, name: '代办买药', icon: 'cart-filled', iconColor: '#2D6A4F' }, { id: 4, name: '代取结果', icon: 'draft-filled', iconColor: '#2D6A4F' }, - { id: 5, name: '检查预约', icon: 'calendar-filled', iconColor: '#2D6A4F' }, + { id: 5, name: '检查预约', icon: 'calendar-1', iconColor: '#2D6A4F' }, { id: 6, name: '出入院办理', icon: 'bridge', iconColor: '#2D6A4F' }, { id: 7, name: 'vip陪诊', icon: 'user-vip-filled', iconColor: '#2D6A4F' }, { id: 8, name: '其他助诊', icon: 'app-filled', iconColor: '#2D6A4F' } ], otherServices: [ { id: 1, name: '代探望', icon: 'apple', iconColor: '#D4A853' }, - { id: 2, name: '社区', icon: 'city-8', iconColor: '#D4A853' }, - { id: 3, name: '陪诊师入住', icon: 'usergroup', iconColor: '#D4A853' }, + { id: 2, name: '企业陪诊', icon: 'city-8', iconColor: '#D4A853' }, + { id: 3, name: '陪诊师入驻', icon: 'usergroup', iconColor: '#D4A853' }, { id: 4, name: '商务合作', icon: 'command', iconColor: '#D4A853' }, ] }, @@ -44,5 +44,12 @@ Page({ wx.navigateTo({ url: `/pages/escort/itemlist?assistId=${id}` }); + }, + + goToOtherServicesDetail(e) { + wx.showToast({ + title: '建设中, 请电话联系!', + icon: 'none' + }); } }); diff --git a/pages/home/index.wxml b/pages/home/index.wxml index eb8b156..96d1304 100644 --- a/pages/home/index.wxml +++ b/pages/home/index.wxml @@ -57,7 +57,7 @@ - + @@ -65,7 +65,7 @@ - + diff --git a/pages/home/index.wxss b/pages/home/index.wxss index 0389a81..7c2ac26 100644 --- a/pages/home/index.wxss +++ b/pages/home/index.wxss @@ -174,6 +174,12 @@ page { /* 助诊服务 */ .assist-section { + background: #F0F8F2; + padding: 50rpx 32rpx; + margin-top: 20rpx; +} + +.other-section { background: #FFFFFF; padding: 50rpx 32rpx; margin-top: 20rpx; diff --git a/pages/mine/about.js b/pages/mine/about.js new file mode 100644 index 0000000..5b72074 --- /dev/null +++ b/pages/mine/about.js @@ -0,0 +1,128 @@ +// pages/mine/about.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + }, + + // 复制内容到剪贴板 + onCopy(e) { + const content = e.currentTarget.dataset.content; + wx.setClipboardData({ + data: content, + success: () => { + wx.showToast({ + title: '已复制', + icon: 'success', + duration: 1500 + }); + }, + fail: () => { + wx.showToast({ + title: '复制失败', + icon: 'none', + duration: 1500 + }); + } + }); + }, + + // 拨打电话 + onCallPhone(e) { + const phone = e.currentTarget.dataset.phone; + wx.makePhoneCall({ + phoneNumber: phone, + fail: () => { + wx.showToast({ + title: '拨号失败', + icon: 'none', + duration: 1500 + }); + } + }); + }, + + // 点击用户协议 + onTapAgreement() { + wx.navigateTo({ + url: '/pages/escort/agreement' + }); + }, + + // 点击隐私政策 + onTapPrivacy() { + wx.showToast({ + title: '功能开发中', + icon: 'none', + duration: 1500 + }); + }, + + // 点击更新日志 + onTapUpdateLog() { + wx.showToast({ + title: '功能开发中', + icon: 'none', + duration: 1500 + }); + } +}); diff --git a/pages/mine/about.json b/pages/mine/about.json new file mode 100644 index 0000000..e8ea58f --- /dev/null +++ b/pages/mine/about.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "关于我们", + "usingComponents": { + "t-icon": "tdesign-miniprogram/icon/icon" + } +} diff --git a/pages/mine/about.wxml b/pages/mine/about.wxml new file mode 100644 index 0000000..63d491f --- /dev/null +++ b/pages/mine/about.wxml @@ -0,0 +1,70 @@ + + + + + + + + 暖橙陪诊 + 温暖陪伴,专业守护 + 版本号:V 0.1.0 + + + + + + 用户协议 + + + + 隐私政策 + + + + 更新日志 + + + + + + + 关于我们 + 暖橙陪诊是北京奕华盛科技旗下专注于医疗健康陪护服务的平台。我们致力于为患者提供专业、温暖、便捷的陪诊服务,让就医不再孤单。 + +我们的服务涵盖挂号陪同、就诊引导、检查陪护、取药代办、住院陪护等全流程就医陪伴,由经过专业培训的陪诊师团队为您提供贴心服务。 + + + + + 联系我们 + + + 客服邮箱 + + service@huashengtec.com + + + + + 客服热线 + + 18618162956 + + + + + 工作时间 + + 周一至周日 08:00 - 20:00 + + + + + + + + + © 2026 北京奕华盛科技 版权所有 + 京ICP备15030270号-2X + + diff --git a/pages/mine/about.wxss b/pages/mine/about.wxss new file mode 100644 index 0000000..fc089b2 --- /dev/null +++ b/pages/mine/about.wxss @@ -0,0 +1,191 @@ +/* pages/mine/about.wxss */ +page { + background-color: #F5F5F5; +} + +.container { + min-height: 100vh; + padding-bottom: 48rpx; +} + +/* 品牌信息区 */ +.brand-section { + background: linear-gradient(180deg, #FFFFFF 0%, #FFF8F0 100%); + display: flex; + flex-direction: column; + align-items: center; + padding: 64rpx 32rpx 48rpx; +} + +.logo-wrap { + width: 160rpx; + height: 160rpx; + background: linear-gradient(135deg, #D4A853 0%, #D4A853 100%); + border-radius: 36rpx; + display: flex; + align-items: center; + justify-content: center; + box-shadow: 0 8rpx 24rpx rgba(255, 133, 0, 0.2); +} + +.logo { + width: 100rpx; + height: 100rpx; +} + +.app-name { + font-size: 40rpx; + font-weight: 700; + color: #1A1A1A; + margin-top: 24rpx; +} + +.app-slogan { + font-size: 28rpx; + color: #D4A853; + margin-top: 12rpx; + font-weight: 500; +} + +.version { + font-size: 24rpx; + color: #999999; + margin-top: 16rpx; +} + +/* 功能列表 */ +.menu-list { + margin: 24rpx 22rpx 0; + background: #FFFFFF; + border-radius: 16rpx; + overflow: hidden; +} + +.menu-item { + display: flex; + align-items: center; + justify-content: space-between; + padding: 32rpx; + border-bottom: 1rpx solid #F0F0F0; +} + +.menu-item:last-child { + border-bottom: none; +} + +.menu-item-hover { + background-color: #F9F9F9; +} + +.menu-text { + font-size: 30rpx; + color: #333333; +} + +.menu-arrow { + color: #CCCCCC; +} + +/* 简介区 */ +.intro-section { + margin: 24rpx 22rpx 0; + background: #FFFFFF; + border-radius: 16rpx; + padding: 32rpx; +} + +.section-title { + font-size: 32rpx; + font-weight: 600; + color: #1A1A1A; + margin-bottom: 20rpx; + position: relative; + padding-left: 20rpx; +} + +.section-title::before { + content: ''; + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + width: 6rpx; + height: 28rpx; + background: linear-gradient(180deg, #D4A853 0%, #FF8500 100%); + border-radius: 4rpx; +} + +.intro-text { + font-size: 28rpx; + color: #666666; + line-height: 1.8; + text-align: justify; +} + +/* 联系方式 */ +.contact-section { + margin: 24rpx 22rpx 0; + background: #FFFFFF; + border-radius: 16rpx; + padding: 32rpx; +} + +.contact-list { + display: flex; + flex-direction: column; +} + +.contact-item { + display: flex; + flex-direction: column; + padding: 20rpx 0; + border-bottom: 1rpx solid #F5F5F5; +} + +.contact-item:last-child { + border-bottom: none; +} + +.contact-label { + font-size: 26rpx; + color: #999999; + margin-bottom: 8rpx; +} + +.contact-value-wrap { + display: flex; + align-items: center; + justify-content: space-between; +} + +.contact-value { + font-size: 30rpx; + color: #333333; + flex: 1; + word-break: break-all; +} + +.contact-icon { + color: #FF8500; + margin-left: 16rpx; + flex-shrink: 0; +} + +/* 底部版权 */ +.footer-section { + margin-top: 48rpx; + display: flex; + flex-direction: column; + align-items: center; + gap: 8rpx; +} + +.copyright { + font-size: 24rpx; + color: #AAAAAA; +} + +.icp { + font-size: 22rpx; + color: #CCCCCC; +} diff --git a/pages/mine/comp_address/comp_address.wxml b/pages/mine/comp_address/comp_address.wxml index aea54e0..71d151e 100644 --- a/pages/mine/comp_address/comp_address.wxml +++ b/pages/mine/comp_address/comp_address.wxml @@ -72,8 +72,14 @@ - - + + + + + + + + diff --git a/pages/mine/comp_address/comp_address.wxss b/pages/mine/comp_address/comp_address.wxss index 5565e78..b7cf4f1 100644 --- a/pages/mine/comp_address/comp_address.wxss +++ b/pages/mine/comp_address/comp_address.wxss @@ -168,8 +168,15 @@ flex-shrink: 0; } +.address-list-footer, +.address-edit-footer { + display: flex; + gap: 24rpx; +} + .address-add-btn { - background: linear-gradient(135deg, #FF9B33 0%, #D4A853 100%); + flex: 1; + background: linear-gradient(135deg, #6B8E7B 0%, #6B8E7B 100%); color: #FFFFFF; font-size: 30rpx; font-weight: 600; @@ -177,12 +184,30 @@ border-radius: 20rpx; border: none; line-height: 1.5; + margin-top: 20rpx; } .address-add-btn::after { border: none; } +.address-cancel-btn { + flex: 1; + background: #F5F5F5; + color: #666666; + font-size: 30rpx; + font-weight: 600; + padding: 28rpx; + border-radius: 20rpx; + border: none; + line-height: 1.5; + margin-top: 20rpx; +} + +.address-cancel-btn::after { + border: none; +} + .address-form { padding: 0 32rpx; } @@ -222,7 +247,8 @@ } .address-save-btn { - background: linear-gradient(135deg, #FF9B33 0%, #D4A853 100%); + flex: 1; + background: linear-gradient(135deg, #6B8E7B 0%, #6B8E7B 100%); color: #FFFFFF; font-size: 30rpx; font-weight: 600; @@ -230,6 +256,7 @@ border-radius: 20rpx; border: none; line-height: 1.5; + margin-top: 20rpx; } .address-save-btn::after { diff --git a/pages/mine/comp_profile/comp_profile.wxml b/pages/mine/comp_profile/comp_profile.wxml index a4b6af0..b2d2605 100644 --- a/pages/mine/comp_profile/comp_profile.wxml +++ b/pages/mine/comp_profile/comp_profile.wxml @@ -58,6 +58,7 @@ + diff --git a/pages/mine/comp_profile/comp_profile.wxss b/pages/mine/comp_profile/comp_profile.wxss index 453d930..0250918 100644 --- a/pages/mine/comp_profile/comp_profile.wxss +++ b/pages/mine/comp_profile/comp_profile.wxss @@ -14,7 +14,6 @@ .profile-sheet { background: #FFFFFF; border-radius: 32rpx 32rpx 0 0; - padding-bottom: env(safe-area-inset-bottom); animation: slideUp 0.3s ease; max-height: 85vh; overflow-y: auto; @@ -125,7 +124,7 @@ } .profile-sex-tag-active { - background: linear-gradient(135deg, #FF9B33 0%, #D4A853 100%); + background: linear-gradient(135deg, #D4A853 0%, #D4A853 100%); } .profile-sex-text { @@ -140,10 +139,30 @@ .profile-footer { padding: 4rpx 32rpx 48rpx; flex-shrink: 0; + display: flex; + gap: 24rpx; +} + +.profile-cancel-btn { + flex: 1; + background: #F5F5F5; + color: #666666; + font-size: 30rpx; + font-weight: 600; + padding: 28rpx; + border-radius: 20rpx; + border: none; + line-height: 1.5; + margin-top: 20rpx; +} + +.profile-cancel-btn::after { + border: none; } .profile-save-btn { - background: linear-gradient(135deg, #FF9B33 0%, #D4A853 100%); + flex: 1; + background: linear-gradient(135deg, #6B8E7B 0%, #6B8E7B 100%); color: #FFFFFF; font-size: 30rpx; font-weight: 600; @@ -151,6 +170,7 @@ border-radius: 20rpx; border: none; line-height: 1.5; + margin-top: 20rpx; } .profile-save-btn::after { diff --git a/pages/mine/mine.js b/pages/mine/mine.js index d932de0..dc0970b 100644 --- a/pages/mine/mine.js +++ b/pages/mine/mine.js @@ -3,7 +3,7 @@ const API = require('../../utils/api.js') Page({ data: { userInfo: { - avatar: '/images/home-green.png', + avatar: '/images/home-yellow.png', name: '用户', phone: '', sex: '', @@ -22,7 +22,7 @@ Page({ bindtap: 'onTapProfile' }, { name: '健康档案', - icon: 'user-vip', + icon: 'attach', bindtap: 'onTapHealth' }, { name: '邮寄地址', @@ -126,7 +126,7 @@ Page({ }, onTapHealth() { - this.setData({ healthVisible: true }) + wx.showToast({ title: '正在建设中', icon: 'none' }) }, onHealthClose() { @@ -139,6 +139,12 @@ Page({ }) }, + onTapAboutUs() { + wx.navigateTo({ + url: '/pages/mine/about' + }) + }, + onTapSetting() { this.setData({ settingVisible: true }) }, diff --git a/utils/api.js b/utils/api.js index 548deb1..191324e 100644 --- a/utils/api.js +++ b/utils/api.js @@ -19,6 +19,7 @@ const API = { resource: { getServices: (params) => request.get('/health/service', params), + getAgreement: (params) => request.get('/health/agreement', params), }, ai: { diff --git a/utils/request.js b/utils/request.js index 12d2344..928dbd0 100644 --- a/utils/request.js +++ b/utils/request.js @@ -1,7 +1,7 @@ class Request { - //constructor(baseURL = 'https://api.huashengtec.com') { - constructor(baseURL = 'http://127.0.0.1:9004') { + constructor(baseURL = 'https://api.huashengtec.com') { + //constructor(baseURL = 'http://127.0.0.1:9004') { this.baseURL = baseURL }