Files
陈誉午 994b267f5c feat: 电子药箱小程序 - 4Tab药品管理
- 电子药箱: 药品库存管理 + 手动录入 + 今日用药打卡
- 药品百科: 搜索 + 分类筛选 + 20种药品静态数据
- 惠教中心: 4条药品使用指南课程
- 我的: 家庭成员信息管理
- 自定义TabBar + navigation-bar组件
- SVG药品分类插图
2026-07-29 11:20:52 +08:00

146 lines
5.1 KiB
Plaintext

<Drawer
id="questionnaire-drawer"
custom-drawer="questionnaire-drawer"
needCancel="{{false}}"
mask="{{effectiveClosable}}"
bind:myCancel="onDrawerCancel"
>
<view
class="questionnaire-drawer-wrap {{useDarkTheme ? 'questionnaire-drawer-wrap-dark' : ''}}"
>
<view class="questionnaire-header" wx:if="{{currentQuestionnaire}}">
<view class="questionnaire-title-row">
<view class="questionnaire-title">
{{currentQuestionnaire.title}}
</view>
<mp-icon
wx:if="{{effectiveClosable}}"
class="questionnaire-close-icon drawer-close-shadow"
bindtap="onDrawerCancel"
icon="close"
color="{{useDarkTheme ? '#A6A6A7' : '#939aa3'}}"
size="{{20}}"
/>
</view>
<view class="questionnaire-desc" wx:if="{{currentQuestionnaire.description}}">
{{currentQuestionnaire.description}}
</view>
<view
class="questionnaire-count"
wx:if="{{currentQuestionnaire.questions && currentQuestionnaire.questions.length}}"
>
共{{currentQuestionnaire.questions.length}}题
</view>
</view>
<view class="questionnaire-body">
<view wx:if="{{!currentQuestionnaire}}">
<view class="questionnaire-empty">暂无法获取问卷内容</view>
</view>
<view wx:elif="{{isFilled}}">
<view class="filled-status-container">
<image
class="filled-status-icon"
mode="aspectFit"
src="https://p1-live.byteimg.com/tos-cn-i-gjr78lqtd0/f3590f83cc9d49fc963b8763319752e5~tplv-gjr78lqtd0-image.image"
/>
<view class="filled-status-text">您已填写过该问卷,感谢您的参与</view>
</view>
</view>
<scroll-view
wx:else
scroll-y="true"
class="questionnaire-scroll"
>
<block wx:for="{{currentQuestionnaire.questions}}" wx:key="key">
<view class="question-item">
<view class="question-title">
<text class="question-required" wx:if="{{item.isRequired}}">*</text>
<text class="question-index">{{index + 1}}.</text>
<text class="question-text">{{item.title}}</text>
<text class="question-type-tag" wx:if="{{item.typeTag}}">{{item.typeTag}}</text>
</view>
<!-- 文本题 -->
<view wx:if="{{item.isInput}}" class="question-input {{item.disabled ? 'question-input-disabled' : ''}}">
<input
class="question-textarea {{item.disabled ? 'question-textarea-disabled' : ''}}"
placeholder="{{item.placeholder}}"
maxlength="{{item.maxlength}}"
type="{{item.inputType}}"
value="{{item.value}}"
disabled="{{item.disabled}}"
data-index="{{index}}"
bindinput="handleInputChange"
bindblur="handleInputBlur"
/>
</view>
<!-- 单选题 -->
<view wx:elif="{{item.isSingle}}" class="question-select">
<radio-group
data-index="{{index}}"
bindchange="handleRadioChange"
>
<label
wx:for="{{item.options}}"
wx:for-item="option"
wx:key="id"
class="question-option"
>
<radio
class="question-radio"
value="{{option.id}}"
checked="{{option.checked}}"
color="#3370ff"
/>
<view class="question-option-text">{{option.label}}</view>
</label>
</radio-group>
</view>
<!-- 多选题 -->
<view wx:elif="{{item.isMulti}}" class="question-select">
<checkbox-group
data-index="{{index}}"
bindchange="handleCheckboxChange"
>
<label
wx:for="{{item.options}}"
wx:for-item="option"
wx:key="id"
class="question-option"
>
<checkbox
class="question-checkbox"
value="{{option.id}}"
checked="{{option.checked}}"
color="#3370ff"
/>
<view class="question-option-text">{{option.label}}</view>
</label>
</checkbox-group>
</view>
<view wx:if="{{item.errorMessage}}" class="error-msg">{{item.errorMessage}}</view>
</view>
</block>
</scroll-view>
</view>
<view class="questionnaire-footer" wx:if="{{!isFilled}}">
<button
class="questionnaire-submit-btn {{isFilled || isSubmitting ? 'questionnaire-submit-btn-disabled' : ''}}"
type="primary"
loading="{{isSubmitting}}"
disabled="{{isFilled || isSubmitting}}"
bindtap="onSubmit"
>
{{isFilled ? '已提交' : '提交'}}
</button>
</view>
</view>
</Drawer>