feat: chat integration, tenant admin spec, backend chat service, miniprogram updates, DEMO moved to tmp, XCX-TEST removed, migrations & docs

This commit is contained in:
Neo
2026-03-20 09:02:10 +08:00
parent 3d2e5f8165
commit beb88d5bea
388 changed files with 6436 additions and 25458 deletions

View File

@@ -0,0 +1,53 @@
<view class="modal-overlay {{keyboardHeight > 0 ? 'modal-overlay--keyboard-open' : ''}}" wx:if="{{visible}}" catchtap="onCancel" catchtouchmove="noop">
<view class="modal-container" catchtap="noop">
<!-- 头部 -->
<view class="modal-header">
<view class="header-left">
<text class="modal-emoji">⚠️</text>
<text class="modal-title">放弃 <text class="modal-name">{{customerName}}</text></text>
</view>
<view class="modal-close" bindtap="onCancel" hover-class="modal-close--hover">
<t-icon name="close" size="40rpx" color="#8b8b8b" />
</view>
</view>
<!-- 描述 -->
<view class="modal-desc-wrap">
<text class="modal-desc">确定放弃该客户的维护任务?请填写原因:</text>
</view>
<!-- 文本输入 -->
<view class="textarea-section">
<textarea
class="abandon-textarea"
placeholder="请输入放弃原因(必填)"
value="{{content}}"
bindinput="onContentInput"
bindfocus="onTextareaFocus"
bindblur="onTextareaBlur"
maxlength="200"
auto-height
adjust-position="{{false}}"
placeholder-class="textarea-placeholder"
/>
</view>
<!-- 错误提示 -->
<view class="error-wrap" wx:if="{{error}}">
<text class="error-text">请输入放弃原因后再提交</text>
</view>
<!-- 键盘弹出时的占位,防止内容被遮挡 -->
<view wx:if="{{keyboardHeight > 0}}" style="height: {{keyboardHeight}}px;"></view>
<!-- 保存按钮 -->
<view class="modal-footer {{keyboardHeight > 0 ? 'modal-footer--float' : ''}}" style="{{keyboardHeight > 0 ? 'bottom: ' + keyboardHeight + 'px;' : ''}}">
<view class="confirm-btn {{!canSave ? 'disabled' : ''}}" bindtap="onConfirm" hover-class="{{canSave ? 'confirm-btn--hover' : ''}}">
<text class="confirm-text">确认放弃</text>
</view>
<view class="cancel-btn" bindtap="onCancel" hover-class="cancel-btn--hover">
<text class="cancel-text">取消</text>
</view>
</view>
</view>
</view>