Files
danyang-match/miniapp/components/preference-editor/index.wxml
T
WorkBuddy c0298c27a5 fix(miniapp): 小程序界面全量中文化,消除英文/非中文枚举码上屏
- 新增 miniapp/constants/profileLabels.js 作为「枚举码→中文简体」唯一字典
  (婚姻/子女/学历/职业/吸烟饮酒/择偶子女/红娘状态),覆盖表单值与种子
  实际值两套并集,保证详情页无论后端返回哪种码都显示中文
- 修复「择偶条件-子女」下拉英文选项(any/accept/reject→不限/可接受/不接受),
  改用 value/label 数组 + range-key="label"
- 修复 recommend-card / user-card / profile-detail / profile-confirm 直接渲染
  后端枚举码(educationCode/maritalStatus/occupationCode…)的问题,改由
  observers 派生中文 label 上屏
- 清理残留英文文案:Required 条件→必须符合的条件、喜欢TA/向Ta→喜欢对方/向对方、
  U51 服务预约→服务预约、U64 公益服务记录→公益服务记录
- 修复 7 个英文窗口标题与 3 个英文占位页正文
- matchmaker 历史服务状态消除原始码兜底,统一走字典
- 加固 scripts/audit-miniapp-language.mjs(A 整行先剥离 mustache、B 排除
  bind:action 处理器、F 窗口标题、JPG/PNG 入白名单)
- 新增 ui-tests/miniapp-language-contracts.mjs 语种守卫(复用审计脚本,断言 0 命中),
  UI 契约门禁 MIN_GUARDS 21→22;已做负向注入验证判别力
2026-09-23 11:19:17 +08:00

125 lines
3.4 KiB
Plaintext

<view class="ui-pref" wx:if="{{preference}}">
<view class="ui-pref__hint">
标记为"必须符合"的条件将作为硬约束,不会自动放宽;
"最好符合"为软偏好,可能匹配到略不满足的对象。
</view>
<!-- 年龄 -->
<view class="ui-pref__row">
<view class="ui-pref__label">年龄</view>
<view class="ui-pref__range">
<input
class="ui-pref__num"
type="number"
value="{{preference.ageMin}}"
placeholder="不限"
data-bound="min"
bindinput="onAgeChange"
/>
<text class="ui-pref__dash">~</text>
<input
class="ui-pref__num"
type="number"
value="{{preference.ageMax}}"
placeholder="不限"
data-bound="max"
bindinput="onAgeChange"
/>
</view>
<view
class="ui-pref__importance ui-pref__importance--{{preference.ageImportance}}"
data-field="ageImportance"
bindtap="onToggleImportance"
>{{importanceLabelMap[preference.ageImportance]}}</view>
</view>
<!-- 身高 -->
<view class="ui-pref__row">
<view class="ui-pref__label">身高</view>
<view class="ui-pref__range">
<input
class="ui-pref__num"
type="number"
value="{{preference.heightMin}}"
placeholder="不限"
data-bound="min"
bindinput="onHeightChange"
/>
<text class="ui-pref__dash">~</text>
<input
class="ui-pref__num"
type="number"
value="{{preference.heightMax}}"
placeholder="不限"
data-bound="max"
bindinput="onHeightChange"
/>
</view>
<view
class="ui-pref__importance ui-pref__importance--{{preference.heightImportance}}"
data-field="heightImportance"
bindtap="onToggleImportance"
>{{importanceLabelMap[preference.heightImportance]}}</view>
</view>
<!-- 地区 -->
<view class="ui-pref__row">
<view class="ui-pref__label">地区</view>
<view class="ui-pref__tags">
<ui-tag
wx:for="{{preference.region}}"
wx:key="*this"
label="{{item}}"
variant="primary"
/>
</view>
<view
class="ui-pref__importance ui-pref__importance--{{preference.regionImportance}}"
data-field="regionImportance"
bindtap="onToggleImportance"
>{{importanceLabelMap[preference.regionImportance]}}</view>
</view>
<!-- 婚姻状况 -->
<view class="ui-pref__row">
<view class="ui-pref__label">婚姻状况</view>
<view class="ui-pref__tags">
<ui-tag
wx:for="{{preference.maritalStatusAccepted}}"
wx:key="*this"
label="{{item}}"
variant="primary"
/>
</view>
</view>
<!-- 学历 -->
<view class="ui-pref__row">
<view class="ui-pref__label">学历</view>
<view class="ui-pref__tags">
<ui-tag
wx:for="{{preference.educationAccepted}}"
wx:key="*this"
label="{{item}}"
variant="primary"
/>
</view>
</view>
<!-- 是否接受有孩 -->
<view class="ui-pref__row">
<view class="ui-pref__label">子女</view>
<picker
class="ui-pref__picker"
value="{{childrenIndex < 0 ? 0 : childrenIndex}}"
range="{{childrenOptions}}"
range-key="label"
bindchange="onAcceptChildrenChange"
>
<view class="ui-pref__picker-value">
{{childrenLabelMap[preference.acceptChildren] || '不限'}}
</view>
</picker>
</view>
</view>