|
@@ -89,11 +89,45 @@
|
|
|
@articleClick="goArticleDetail"
|
|
@articleClick="goArticleDetail"
|
|
|
@moreArticles="goMoreArticles" />
|
|
@moreArticles="goMoreArticles" />
|
|
|
|
|
|
|
|
- <!-- ===== 重要关系维护 ===== -->
|
|
|
|
|
- <OctopusGraph
|
|
|
|
|
- :contactList="contactList"
|
|
|
|
|
- :healthAlerts="healthAlerts"
|
|
|
|
|
- :isLoggedIn="isLoggedIn" />
|
|
|
|
|
|
|
+ <!-- ===== 我的圈子 ===== -->
|
|
|
|
|
+ <view class="circle-section" v-if="isLoggedIn">
|
|
|
|
|
+ <view class="circle-header">
|
|
|
|
|
+ <text class="circle-section-title">🤝 我的圈子</text>
|
|
|
|
|
+ <text class="circle-header-link" @click="goDiscoverCircles">发现更多 ›</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <scroll-view class="circle-scroll" scroll-x enable-flex v-if="myCircles.length > 0">
|
|
|
|
|
+ <view class="circle-scroll-inner">
|
|
|
|
|
+ <view class="circle-card-wrap" v-for="item in myCircles" :key="item.id || item.circleId" @click="onCircleClick(item)">
|
|
|
|
|
+ <CircleCard :circle="item" compact />
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </scroll-view>
|
|
|
|
|
+ <view class="circle-empty" v-else>
|
|
|
|
|
+ <text class="circle-empty-text">暂未加入圈子,去发现看看</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- ===== 发现推荐 ===== -->
|
|
|
|
|
+ <view class="circle-discover" v-if="discoverCirclesList.length > 0">
|
|
|
|
|
+ <view class="circle-header">
|
|
|
|
|
+ <text class="circle-section-title">🔍 发现推荐</text>
|
|
|
|
|
+ <text class="circle-header-link" @click="goDiscoverCircles">查看更多 ›</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="discover-list">
|
|
|
|
|
+ <view class="discover-item" v-for="item in discoverCirclesList" :key="item.id || item.circleId" @click="onCircleClick(item)">
|
|
|
|
|
+ <CircleCard :circle="item" />
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 圈子详情弹窗 -->
|
|
|
|
|
+ <CircleDetail
|
|
|
|
|
+ :visible="circleDetailVisible"
|
|
|
|
|
+ :circle="selectedCircle || {}"
|
|
|
|
|
+ :isMember="selectedCircleIsMember"
|
|
|
|
|
+ @close="circleDetailVisible = false"
|
|
|
|
|
+ @join="onCircleJoin"
|
|
|
|
|
+ @leave="onCircleLeave" />
|
|
|
|
|
|
|
|
<!-- 功能入口(4个:活动、商品、课程) -->
|
|
<!-- 功能入口(4个:活动、商品、课程) -->
|
|
|
<view class="func-section" v-if="sectionVisible('func_entries')">
|
|
<view class="func-section" v-if="sectionVisible('func_entries')">
|
|
@@ -107,12 +141,6 @@
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
- <!-- 导入联系人弹窗 -->
|
|
|
|
|
- <ContactImport
|
|
|
|
|
- :visible="showImportModal"
|
|
|
|
|
- @close="onCloseImport"
|
|
|
|
|
- @success="onImportSuccess" />
|
|
|
|
|
-
|
|
|
|
|
<!-- 底部占位 -->
|
|
<!-- 底部占位 -->
|
|
|
<view class="bottom-spacer"></view>
|
|
<view class="bottom-spacer"></view>
|
|
|
</view>
|
|
</view>
|
|
@@ -127,16 +155,15 @@ import DimensionTasks from '../../components/DimensionTasks.vue'
|
|
|
import DimensionActivities from '../../components/DimensionActivities.vue'
|
|
import DimensionActivities from '../../components/DimensionActivities.vue'
|
|
|
import DimensionProducts from '../../components/DimensionProducts.vue'
|
|
import DimensionProducts from '../../components/DimensionProducts.vue'
|
|
|
import DimensionArticles from '../../components/DimensionArticles.vue'
|
|
import DimensionArticles from '../../components/DimensionArticles.vue'
|
|
|
-import ContactCard from '../../components/ContactCard.vue'
|
|
|
|
|
-import ContactImport from '../../components/ContactImport.vue'
|
|
|
|
|
-import OctopusGraph from '../../components/OctopusGraph.vue'
|
|
|
|
|
|
|
+import CircleCard from '../../components/CircleCard.vue'
|
|
|
|
|
+import CircleDetail from '../../components/CircleDetail.vue'
|
|
|
import FamilyRelationGraph from '../../components/FamilyRelationGraph.vue'
|
|
import FamilyRelationGraph from '../../components/FamilyRelationGraph.vue'
|
|
|
import WuxingSandbox from '../../components/wuxing-sandbox.vue'
|
|
import WuxingSandbox from '../../components/wuxing-sandbox.vue'
|
|
|
import FamilyMemberStrip from '../../components/FamilyMemberStrip.vue'
|
|
import FamilyMemberStrip from '../../components/FamilyMemberStrip.vue'
|
|
|
-import { getVisibleSections, getEnergyOverview, getFamilyEnergySandbox, getTodayTasksByCategory, getActivityList, getProductsByDomain, getChildren, getContactList, getVisibleFamilyMembers, getFeaturedArticles, getHealthAlerts } from '../../utils/api.js'
|
|
|
|
|
|
|
+import { getVisibleSections, getEnergyOverview, getFamilyEnergySandbox, getTodayTasksByCategory, getActivityList, getProductsByDomain, getChildren, getVisibleFamilyMembers, getFeaturedArticles, getMyCircles, discoverCircles, joinGeneralCircle, leaveGeneralCircle } from '../../utils/api.js'
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
- components: { TabTransition, PageBanner, LoginGuideCard, FamilyEnergyBar, DimensionTasks, DimensionActivities, DimensionProducts, DimensionArticles, ContactCard, ContactImport, FamilyRelationGraph, OctopusGraph, WuxingSandbox, FamilyMemberStrip },
|
|
|
|
|
|
|
+ components: { TabTransition, PageBanner, LoginGuideCard, FamilyEnergyBar, DimensionTasks, DimensionActivities, DimensionProducts, DimensionArticles, FamilyRelationGraph, WuxingSandbox, FamilyMemberStrip, CircleCard, CircleDetail },
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
showTabTransition: true,
|
|
showTabTransition: true,
|
|
@@ -156,9 +183,11 @@ export default {
|
|
|
dimensionActivities: [],
|
|
dimensionActivities: [],
|
|
|
dimensionProducts: [],
|
|
dimensionProducts: [],
|
|
|
articles: [],
|
|
articles: [],
|
|
|
- contactList: [],
|
|
|
|
|
- showImportModal: false,
|
|
|
|
|
- healthAlerts: [],
|
|
|
|
|
|
|
+ myCircles: [],
|
|
|
|
|
+ discoverCirclesList: [],
|
|
|
|
|
+ circleDetailVisible: false,
|
|
|
|
|
+ selectedCircle: null,
|
|
|
|
|
+ selectedCircleIsMember: false,
|
|
|
|
|
|
|
|
funcList: [
|
|
funcList: [
|
|
|
{ icon: '\u{1F3CB}', label: '任务', needLogin: true, page: '/pages/tasks/tasks' },
|
|
{ icon: '\u{1F3CB}', label: '任务', needLogin: true, page: '/pages/tasks/tasks' },
|
|
@@ -216,7 +245,6 @@ export default {
|
|
|
uni.setStorageSync('actionReadyTime', Date.now())
|
|
uni.setStorageSync('actionReadyTime', Date.now())
|
|
|
})
|
|
})
|
|
|
this.loadFamilyMembersVisible()
|
|
this.loadFamilyMembersVisible()
|
|
|
- this.loadRelationshipHealth()
|
|
|
|
|
}
|
|
}
|
|
|
// 游客也能浏览活动和商品
|
|
// 游客也能浏览活动和商品
|
|
|
this.loadDimensionActivities()
|
|
this.loadDimensionActivities()
|
|
@@ -265,7 +293,6 @@ export default {
|
|
|
if (found) {
|
|
if (found) {
|
|
|
self.loadDimensionData()
|
|
self.loadDimensionData()
|
|
|
}
|
|
}
|
|
|
- self.loadContacts()
|
|
|
|
|
}
|
|
}
|
|
|
}).catch(function(e) {
|
|
}).catch(function(e) {
|
|
|
console.log('获取孩子列表失败', e)
|
|
console.log('获取孩子列表失败', e)
|
|
@@ -277,6 +304,7 @@ export default {
|
|
|
this.loadDimensionTasks()
|
|
this.loadDimensionTasks()
|
|
|
this.loadDimensionActivities()
|
|
this.loadDimensionActivities()
|
|
|
this.loadDimensionProducts()
|
|
this.loadDimensionProducts()
|
|
|
|
|
+ this.loadCircleData()
|
|
|
},
|
|
},
|
|
|
loadEnergyData: function() {
|
|
loadEnergyData: function() {
|
|
|
var self = this
|
|
var self = this
|
|
@@ -332,28 +360,62 @@ export default {
|
|
|
}
|
|
}
|
|
|
}).catch(function() { self.dimensionProducts = [] })
|
|
}).catch(function() { self.dimensionProducts = [] })
|
|
|
},
|
|
},
|
|
|
- loadContacts: function() {
|
|
|
|
|
|
|
+ loadCircleData: function() {
|
|
|
var self = this
|
|
var self = this
|
|
|
- getContactList({}).then(function(res) {
|
|
|
|
|
|
|
+ if (!this.currentChildId) return
|
|
|
|
|
+ getMyCircles(this.currentChildId, 'child').then(function(res) {
|
|
|
if (res.code === 200 && res.data) {
|
|
if (res.code === 200 && res.data) {
|
|
|
- self.contactList = Array.isArray(res.data) ? res.data : []
|
|
|
|
|
|
|
+ self.myCircles = Array.isArray(res.data) ? res.data : []
|
|
|
}
|
|
}
|
|
|
}).catch(function(e) {
|
|
}).catch(function(e) {
|
|
|
- console.log('获取联系人失败', e)
|
|
|
|
|
|
|
+ console.log('获取我的圈子失败', e)
|
|
|
|
|
+ })
|
|
|
|
|
+ discoverCircles(this.currentChildId).then(function(res) {
|
|
|
|
|
+ if (res.code === 200 && res.data) {
|
|
|
|
|
+ self.discoverCirclesList = Array.isArray(res.data) ? res.data.slice(0, 3) : []
|
|
|
|
|
+ }
|
|
|
|
|
+ }).catch(function(e) {
|
|
|
|
|
+ console.log('获取推荐圈子失败', e)
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
- onContactClick: function(item) {
|
|
|
|
|
- uni.navigateTo({ url: '/pages/action-detail/contact-detail?id=' + item.id })
|
|
|
|
|
|
|
+ onCircleClick: function(circle) {
|
|
|
|
|
+ var isMember = this.myCircles.some(function(c) {
|
|
|
|
|
+ return (c.id || c.circleId) === (circle.id || circle.circleId)
|
|
|
|
|
+ })
|
|
|
|
|
+ this.selectedCircle = circle
|
|
|
|
|
+ this.selectedCircleIsMember = isMember
|
|
|
|
|
+ this.circleDetailVisible = true
|
|
|
},
|
|
},
|
|
|
- onShowImport: function() {
|
|
|
|
|
- this.showImportModal = true
|
|
|
|
|
|
|
+ onCircleJoin: function(circleId) {
|
|
|
|
|
+ var self = this
|
|
|
|
|
+ joinGeneralCircle(circleId, this.currentChildId, 'child').then(function(res) {
|
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
|
+ uni.showToast({ title: '加入成功', icon: 'success' })
|
|
|
|
|
+ self.circleDetailVisible = false
|
|
|
|
|
+ self.loadCircleData()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ uni.showToast({ title: res.message || '加入失败', icon: 'none' })
|
|
|
|
|
+ }
|
|
|
|
|
+ }).catch(function(e) {
|
|
|
|
|
+ console.log('加入圈子失败', e)
|
|
|
|
|
+ })
|
|
|
},
|
|
},
|
|
|
- onCloseImport: function() {
|
|
|
|
|
- this.showImportModal = false
|
|
|
|
|
|
|
+ onCircleLeave: function(circleId) {
|
|
|
|
|
+ var self = this
|
|
|
|
|
+ leaveGeneralCircle(circleId, this.currentChildId, 'child').then(function(res) {
|
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
|
+ uni.showToast({ title: '已退出', icon: 'success' })
|
|
|
|
|
+ self.circleDetailVisible = false
|
|
|
|
|
+ self.loadCircleData()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ uni.showToast({ title: res.message || '退出失败', icon: 'none' })
|
|
|
|
|
+ }
|
|
|
|
|
+ }).catch(function(e) {
|
|
|
|
|
+ console.log('退出圈子失败', e)
|
|
|
|
|
+ })
|
|
|
},
|
|
},
|
|
|
- onImportSuccess: function() {
|
|
|
|
|
- this.showImportModal = false
|
|
|
|
|
- this.loadContacts()
|
|
|
|
|
|
|
+ goDiscoverCircles: function() {
|
|
|
|
|
+ uni.navigateTo({ url: '/pages/discover/circles' })
|
|
|
},
|
|
},
|
|
|
onFamilyMemberSelect: function(member) {
|
|
onFamilyMemberSelect: function(member) {
|
|
|
this.selectedMemberId = member.id
|
|
this.selectedMemberId = member.id
|
|
@@ -472,27 +534,7 @@ export default {
|
|
|
goMoreArticles: function() {
|
|
goMoreArticles: function() {
|
|
|
uni.navigateTo({ url: '/pages/article-center/index?dimension=action' })
|
|
uni.navigateTo({ url: '/pages/article-center/index?dimension=action' })
|
|
|
},
|
|
},
|
|
|
- loadRelationshipHealth: function() {
|
|
|
|
|
- var self = this
|
|
|
|
|
- getHealthAlerts({}).then(function(res) {
|
|
|
|
|
- if (res.code === 200 && res.data) {
|
|
|
|
|
- self.healthAlerts = Array.isArray(res.data) ? res.data : []
|
|
|
|
|
- }
|
|
|
|
|
- }).catch(function() {
|
|
|
|
|
- self.healthAlerts = []
|
|
|
|
|
- })
|
|
|
|
|
-
|
|
|
|
|
- },
|
|
|
|
|
- goInteractionLog: function(memberId) {
|
|
|
|
|
- if (memberId) {
|
|
|
|
|
- uni.navigateTo({ url: '/pages/action-detail/interaction-log?memberId=' + memberId })
|
|
|
|
|
- } else {
|
|
|
|
|
- uni.navigateTo({ url: '/pages/action-detail/interaction-log' })
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- goRelationshipQuestionnaire: function() {
|
|
|
|
|
- uni.navigateTo({ url: '/pages/action-detail/relationship-questionnaire' })
|
|
|
|
|
- },
|
|
|
|
|
|
|
+
|
|
|
_watchPageReady() {
|
|
_watchPageReady() {
|
|
|
var self = this
|
|
var self = this
|
|
|
var unwatch = this.$watch(function() {
|
|
var unwatch = this.$watch(function() {
|
|
@@ -564,189 +606,62 @@ export default {
|
|
|
font-weight: 500;
|
|
font-weight: 500;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-/* ===== 重要关系 ===== */
|
|
|
|
|
-.contact-section {
|
|
|
|
|
|
|
+/* ===== 圈子区块 ===== */
|
|
|
|
|
+.circle-section {
|
|
|
margin: 20rpx 20rpx 0;
|
|
margin: 20rpx 20rpx 0;
|
|
|
}
|
|
}
|
|
|
-.contact-header {
|
|
|
|
|
|
|
+.circle-header {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
justify-content: space-between;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
margin-bottom: 16rpx;
|
|
margin-bottom: 16rpx;
|
|
|
}
|
|
}
|
|
|
-.contact-section-title {
|
|
|
|
|
|
|
+.circle-section-title {
|
|
|
font-size: 30rpx;
|
|
font-size: 30rpx;
|
|
|
font-weight: 600;
|
|
font-weight: 600;
|
|
|
color: #333;
|
|
color: #333;
|
|
|
}
|
|
}
|
|
|
-.contact-header-right {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- gap: 16rpx;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
-}
|
|
|
|
|
-.contact-more {
|
|
|
|
|
- font-size: 24rpx;
|
|
|
|
|
- color: #999;
|
|
|
|
|
-}
|
|
|
|
|
-.contact-import-btn {
|
|
|
|
|
|
|
+.circle-header-link {
|
|
|
font-size: 24rpx;
|
|
font-size: 24rpx;
|
|
|
color: #F97316;
|
|
color: #F97316;
|
|
|
font-weight: 500;
|
|
font-weight: 500;
|
|
|
}
|
|
}
|
|
|
-.contact-scroll {
|
|
|
|
|
|
|
+.circle-scroll {
|
|
|
white-space: nowrap;
|
|
white-space: nowrap;
|
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
|
}
|
|
}
|
|
|
-.contact-scroll-inner {
|
|
|
|
|
|
|
+.circle-scroll-inner {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
flex-direction: row;
|
|
|
gap: 16rpx;
|
|
gap: 16rpx;
|
|
|
padding: 8rpx 0 16rpx;
|
|
padding: 8rpx 0 16rpx;
|
|
|
}
|
|
}
|
|
|
-.contact-card-wrap {
|
|
|
|
|
|
|
+.circle-card-wrap {
|
|
|
flex-shrink: 0;
|
|
flex-shrink: 0;
|
|
|
width: 220rpx;
|
|
width: 220rpx;
|
|
|
}
|
|
}
|
|
|
-.contact-card-wrap:active {
|
|
|
|
|
|
|
+.circle-card-wrap:active {
|
|
|
opacity: 0.8;
|
|
opacity: 0.8;
|
|
|
}
|
|
}
|
|
|
-.contact-add-card {
|
|
|
|
|
- width: 160rpx;
|
|
|
|
|
-}
|
|
|
|
|
-.add-card-inner {
|
|
|
|
|
- width: 160rpx;
|
|
|
|
|
- height: 280rpx;
|
|
|
|
|
- background: #fff;
|
|
|
|
|
- border-radius: 16rpx;
|
|
|
|
|
- border: 2rpx dashed #ddd;
|
|
|
|
|
- display: flex;
|
|
|
|
|
- flex-direction: column;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- justify-content: center;
|
|
|
|
|
- gap: 12rpx;
|
|
|
|
|
-}
|
|
|
|
|
-.add-card-icon {
|
|
|
|
|
- font-size: 48rpx;
|
|
|
|
|
- color: #ccc;
|
|
|
|
|
-}
|
|
|
|
|
-.add-card-label {
|
|
|
|
|
- font-size: 22rpx;
|
|
|
|
|
- color: #999;
|
|
|
|
|
-}
|
|
|
|
|
-.contact-empty {
|
|
|
|
|
|
|
+.circle-empty {
|
|
|
padding: 40rpx 0;
|
|
padding: 40rpx 0;
|
|
|
text-align: center;
|
|
text-align: center;
|
|
|
}
|
|
}
|
|
|
-.contact-empty-text {
|
|
|
|
|
|
|
+.circle-empty-text {
|
|
|
font-size: 26rpx;
|
|
font-size: 26rpx;
|
|
|
color: #ccc;
|
|
color: #ccc;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-/* ===== 关系健康概览 ===== */
|
|
|
|
|
-.rq-section {
|
|
|
|
|
- margin: 20rpx 20rpx 0;
|
|
|
|
|
-}
|
|
|
|
|
-.rq-header {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- justify-content: space-between;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- margin-bottom: 16rpx;
|
|
|
|
|
-}
|
|
|
|
|
-.rq-title {
|
|
|
|
|
- font-size: 30rpx;
|
|
|
|
|
- font-weight: 600;
|
|
|
|
|
- color: #333;
|
|
|
|
|
-}
|
|
|
|
|
-.rq-more {
|
|
|
|
|
- font-size: 24rpx;
|
|
|
|
|
- color: #F97316;
|
|
|
|
|
- font-weight: 500;
|
|
|
|
|
|
|
+.circle-discover {
|
|
|
|
|
+ margin-top: 8rpx;
|
|
|
}
|
|
}
|
|
|
-/* 健康预警卡片 */
|
|
|
|
|
-.rq-alerts {
|
|
|
|
|
|
|
+.discover-list {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
flex-direction: column;
|
|
|
gap: 12rpx;
|
|
gap: 12rpx;
|
|
|
- margin-bottom: 16rpx;
|
|
|
|
|
-}
|
|
|
|
|
-.rq-alert-card {
|
|
|
|
|
- background: #FFF7ED;
|
|
|
|
|
- border-radius: 16rpx;
|
|
|
|
|
- padding: 20rpx;
|
|
|
|
|
- display: flex;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- gap: 16rpx;
|
|
|
|
|
- border: 1rpx solid #FED7AA;
|
|
|
|
|
}
|
|
}
|
|
|
-.rq-alert-card:active {
|
|
|
|
|
|
|
+.discover-item:active {
|
|
|
opacity: 0.8;
|
|
opacity: 0.8;
|
|
|
}
|
|
}
|
|
|
-.rq-alert-icon {
|
|
|
|
|
- width: 64rpx;
|
|
|
|
|
- height: 64rpx;
|
|
|
|
|
- border-radius: 50%;
|
|
|
|
|
- background: #fff;
|
|
|
|
|
- display: flex;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- justify-content: center;
|
|
|
|
|
- flex-shrink: 0;
|
|
|
|
|
-}
|
|
|
|
|
-.rq-alert-emoji {
|
|
|
|
|
- font-size: 32rpx;
|
|
|
|
|
-}
|
|
|
|
|
-.rq-alert-info {
|
|
|
|
|
- flex: 1;
|
|
|
|
|
- display: flex;
|
|
|
|
|
- flex-direction: column;
|
|
|
|
|
- gap: 4rpx;
|
|
|
|
|
-}
|
|
|
|
|
-.rq-alert-name {
|
|
|
|
|
- font-size: 28rpx;
|
|
|
|
|
- font-weight: 600;
|
|
|
|
|
- color: #333;
|
|
|
|
|
-}
|
|
|
|
|
-.rq-alert-desc {
|
|
|
|
|
- font-size: 24rpx;
|
|
|
|
|
- color: #F97316;
|
|
|
|
|
-}
|
|
|
|
|
-.rq-alert-action {
|
|
|
|
|
- flex-shrink: 0;
|
|
|
|
|
-}
|
|
|
|
|
-.rq-alert-btn {
|
|
|
|
|
- font-size: 24rpx;
|
|
|
|
|
- color: #fff;
|
|
|
|
|
- background: #F97316;
|
|
|
|
|
- padding: 8rpx 20rpx;
|
|
|
|
|
- border-radius: 20rpx;
|
|
|
|
|
-}
|
|
|
|
|
-/* 快捷操作 */
|
|
|
|
|
-.rq-quick-actions {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- gap: 16rpx;
|
|
|
|
|
- margin-top: 8rpx;
|
|
|
|
|
-}
|
|
|
|
|
-.rq-action-btn {
|
|
|
|
|
- flex: 1;
|
|
|
|
|
- background: #fff;
|
|
|
|
|
- border-radius: 16rpx;
|
|
|
|
|
- padding: 20rpx;
|
|
|
|
|
- display: flex;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- justify-content: center;
|
|
|
|
|
- gap: 10rpx;
|
|
|
|
|
- box-shadow: 0 2rpx 12rpx rgba(0,0,0,0.06);
|
|
|
|
|
-}
|
|
|
|
|
-.rq-action-btn:active {
|
|
|
|
|
- opacity: 0.8;
|
|
|
|
|
-}
|
|
|
|
|
-.rq-action-icon {
|
|
|
|
|
- font-size: 36rpx;
|
|
|
|
|
-}
|
|
|
|
|
-.rq-action-label {
|
|
|
|
|
- font-size: 26rpx;
|
|
|
|
|
- color: #333;
|
|
|
|
|
- font-weight: 500;
|
|
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
/* ===== 底部 ===== */
|
|
/* ===== 底部 ===== */
|
|
|
.bottom-spacer {
|
|
.bottom-spacer {
|