|
|
@@ -17,11 +17,9 @@
|
|
|
</view>
|
|
|
<view class="card-body">
|
|
|
<view class="tag-row">
|
|
|
- <view class="tag-btn" v-for="t in exerciseTypes" :key="t.value"
|
|
|
- :class="form.exerciseType === t.value ? 'tag-active' : ''"
|
|
|
- @tap="form.exerciseType = t.value">
|
|
|
- <text>{{ t.label }}</text>
|
|
|
- </view>
|
|
|
+ <TagChip v-for="t in exerciseTypes" :key="t.value" :label="t.label"
|
|
|
+ :active="form.exerciseType === t.value"
|
|
|
+ @tap="form.exerciseType = t.value" />
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
@@ -40,11 +38,9 @@
|
|
|
<view class="form-group">
|
|
|
<text class="form-label">强度</text>
|
|
|
<view class="tag-row">
|
|
|
- <view class="tag-btn" v-for="s in intensityOptions" :key="s.value"
|
|
|
- :class="form.intensity === s.value ? 'tag-active' : ''"
|
|
|
- @tap="form.intensity = s.value">
|
|
|
- <text>{{ s.label }}</text>
|
|
|
- </view>
|
|
|
+ <TagChip v-for="s in intensityOptions" :key="s.value" :label="s.label"
|
|
|
+ :active="form.intensity === s.value"
|
|
|
+ @tap="form.intensity = s.value" />
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="form-group">
|
|
|
@@ -157,8 +153,10 @@ import config from '../../config'
|
|
|
import { parseDate } from '../../utils/format.js'
|
|
|
import { sttTranscribe } from '../../utils/api.js'
|
|
|
import { pickImage } from '../../utils/image-picker.js'
|
|
|
+import TagChip from '../../components/TagChip.vue'
|
|
|
|
|
|
export default {
|
|
|
+ components: { TagChip },
|
|
|
data() {
|
|
|
return {
|
|
|
memberId: null,
|
|
|
@@ -515,10 +513,6 @@ export default {
|
|
|
.form-group { margin-bottom: 20rpx; }
|
|
|
.form-label { font-size: 26rpx; color: $facade-text-strong; font-weight: 500; margin-bottom: 10rpx; display: block; }
|
|
|
.tag-row { display: flex; flex-wrap: wrap; gap: 10rpx; }
|
|
|
-.tag-btn { padding: 12rpx 24rpx; border-radius: 30rpx; border: 2rpx solid $facade-fill-4; background: $facade-fill-ghost; transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease; }
|
|
|
-.tag-active { border-color: $brand-primary; background: $fortune-1-tint; box-shadow: 0 4rpx 12rpx rgba(249,115,22,0.15); }
|
|
|
-.tag-btn text { font-size: 26rpx; color: $facade-text-body; }
|
|
|
-.tag-active text { color: $brand-primary; font-weight: 600; }
|
|
|
.form-input { width: 100%; height: 76rpx; border: 1rpx solid $facade-fill-4; border-radius: 14rpx; padding: 0 16rpx; font-size: 26rpx; background: $facade-fill-ghost; box-sizing: border-box; }
|
|
|
.step-sync-row { display: flex; align-items: center; gap: 12rpx; }
|
|
|
.step-input { flex: 1; }
|