Files
Wechat/pages/express-order/express-order.wxml
XingQue c03d22776f backup: 紫色UI换肤前完整备份(当前橙色逍遥梦主题)
保留改造前全部页面样式与功能代码,便于回滚。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 01:59:42 +08:00

232 lines
13 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- pages/express-order/express-order.wxml -->
<view class="page-container sj-form-theme">
<!-- 余额卡片 -->
<view class="balance-card">
<text class="balance-label">{{isStaffMode ? '可用额度' : '可用余额'}}</text>
<view class="balance-amount">
<text class="amount-value">{{sjyue}}</text>
<text class="amount-unit">元</text>
</view>
<text class="balance-tip" wx:if="{{isStaffMode}}">当前身份:{{staffRoleName || '客服'}} · 生成链接从此额度扣除</text>
<text class="balance-tip" wx:else>生成链接将从此余额扣除</text>
</view>
<!-- 商品类型选择 -->
<view class="section">
<text class="section-title">选择订单类型</text>
<scroll-view class="type-scroll" scroll-x="true" enable-flex>
<block wx:for="{{shangpinList}}" wx:key="id">
<view class="type-item {{selectedTypeId === item.id ? 'type-active' : ''}}"
data-id="{{item.id}}" data-item="{{item}}" bindtap="onSelectType">
<text class="type-text">{{item.jieshao}}</text>
</view>
</block>
</scroll-view>
</view>
<!-- 搜索区域 -->
<view class="search-section">
<view class="search-box">
<text class="search-icon">🔍</text>
<input class="search-input" placeholder="输入模板ID/介绍..." value="{{searchParams.keyword}}"
bindinput="onSearchKeywordInput" bindconfirm="onSearchConfirm"/>
<view class="search-btn" bindtap="onSearchConfirm">
<text class="search-btn-text">搜索</text>
</view>
</view>
<view class="filter-row">
<view class="filter-item">
<text class="filter-label">金额≥</text>
<input class="filter-input" type="digit" placeholder="元" value="{{searchParams.minPrice}}" bindinput="onSearchMinPriceInput"/>
</view>
<view class="filter-item">
<text class="filter-label">标签</text>
<picker mode="selector" range="{{currentTypeChenghaoList}}" range-key="mingcheng" bindchange="onSearchLabelChange">
<view class="picker-view">
<text>{{searchLabelName || '全部'}}</text>
</view>
</picker>
</view>
<view class="clear-search" bindtap="onClearSearch"><text>清空</text></view>
</view>
</view>
<!-- 模板卡片网格 -->
<view class="template-section">
<scroll-view class="template-scroll" scroll-y="true" scroll-with-animation="true" bindscrolltolower="onScrollToLower">
<view class="template-grid">
<block wx:for="{{templateList}}" wx:key="mobanId">
<view class="template-card" bindtap="onCardTap" data-item="{{item}}">
<view class="template-intro">
<text class="intro-text">{{item.jieshao || '无介绍'}}</text>
</view>
<view class="template-label" wx:if="{{item.labelName}}">
<chenghao-tag mingcheng="{{item.labelName}}" texiaoJson="{{''}}"/>
</view>
<view class="template-price-row">
<text class="template-price-label">价格:</text>
<text class="template-price-value">{{item.jiage || '0.00'}}元</text>
</view>
<view class="template-actions-grid">
<view class="action-grid-btn generate-grid-btn {{item.hasGenerated ? 'generated' : ''}}"
data-id="{{item.mobanId}}" catchtap="onGenerateLink">
{{item.hasGenerated ? '获取新链接' : '生成链接'}}
</view>
<view class="action-grid-btn copy-grid-btn {{item.isCopied ? 'copied' : ''}}"
data-id="{{item.mobanId}}" catchtap="onCopyLink">
{{item.isCopied ? '已复制' : '一键复制'}}
</view>
</view>
</view>
</block>
<view class="template-card add-card" bindtap="showAddModal">
<view class="add-icon"></view>
<text class="add-text">添加模板</text>
<text class="add-subtext">点击创建新模板</text>
</view>
</view>
<view class="load-more" wx:if="{{isLoadingMore}}">...</view>
<view class="no-more" wx:if="{{!hasMoreData && templateList.length > 0}}">没有更多模板了</view>
<view class="empty-state" wx:if="{{templateList.length === 0 && !isLoading}}">暂无模板</view>
</scroll-view>
</view>
</view>
<!-- 详情弹窗 -->
<view class="modal-overlay" wx:if="{{showDetailModal}}" bindtap="hideDetailModal">
<view class="modal-content detail-modal" catchtap="stopPropagation">
<view class="modal-close" bindtap="hideDetailModal">×</view>
<view class="modal-header"><text class="modal-title">模板详情</text></view>
<view class="detail-info" wx:if="{{currentTemplate}}">
<view class="detail-item">
<text class="detail-label">订单介绍</text>
<view class="detail-value intro-value"><text>{{currentTemplate.jieshao || '无介绍'}}</text></view>
</view>
<view class="detail-item" wx:if="{{currentTemplate.labelName}}">
<text class="detail-label">关联标签</text>
<chenghao-tag mingcheng="{{currentTemplate.labelName}}" texiaoJson="{{currentTemplate.texiaoJson}}"/>
</view>
<view class="detail-meta-row">
<view class="meta-item"><text class="meta-label">价格</text><text class="meta-value price-meta">{{currentTemplate.jiage || '0.00'}}元</text></view>
<view class="meta-divider">|</view>
<view class="meta-item"><text class="meta-label">发布数量</text><text class="meta-value count-meta">{{currentTemplate.fabushuliang || 0}}次</text></view>
<view class="meta-divider">|</view>
<view class="meta-item"><text class="meta-label">模板ID</text><text class="meta-value id-meta">{{currentTemplate.mobanId || 'N/A'}}</text></view>
</view>
<view class="detail-item" wx:if="{{currentTemplate.commissionEnabled}}">
<text class="detail-label">佣金要求</text>
<text class="detail-value">{{currentTemplate.commissionValue}}元建议≤50</text>
</view>
<!-- 链接筛选 -->
<view class="link-filter-bar">
<text class="filter-label">链接状态:</text>
<view class="filter-switch {{detailLinkFilter === 0 ? 'active' : ''}}" bindtap="onToggleLinkFilter">未使用</view>
<view class="filter-switch {{detailLinkFilter === 1 ? 'active' : ''}}" bindtap="onToggleLinkFilter">已使用</view>
</view>
<scroll-view class="link-list" scroll-y="true" style="max-height: 300rpx;">
<block wx:for="{{detailLinkList}}" wx:key="id">
<view class="link-item">
<text class="link-url" selectable="true">{{item.lianjie}}</text>
<text class="link-operator" wx:if="{{item.roleName || item.displayName}}">{{item.roleName || item.displayName}}</text>
<text class="link-status">{{item.is_used ? '已使用' : '未使用'}}</text>
<view wx:if="{{!item.is_used}}" class="copy-link-btn" bindtap="onCopyLinkItem" data-url="{{item.lianjie}}">复制</view>
</view>
</block>
<view class="load-more-links" wx:if="{{detailLinkHasMore}}">
<view class="load-more-btn" bindtap="onLoadMoreLinks">获取更多链接</view>
</view>
<view wx:if="{{isLoadingLinks}}" class="link-loading">加载中...</view>
<view wx:if="{{detailLinkList.length === 0 && !isLoadingLinks}}" class="link-empty">暂无链接</view>
</scroll-view>
</view>
<view class="modal-actions-grid">
<view class="modal-grid-btn generate-modal-grid-btn" bindtap="onGenerateLinkModal">{{currentTemplate.hasGenerated ? '获取新链接' : '生成链接'}}</view>
<view class="modal-grid-btn copy-modal-grid-btn {{currentTemplate.isCopied ? 'copied' : ''}}" bindtap="onCopyLinkModal">{{currentTemplate.isCopied ? '已复制' : '复制链接'}}</view>
<view class="modal-grid-btn edit-modal-grid-btn" bindtap="onEditTemplate">{{isEditing ? '保存修改' : '立即修改'}}</view>
<view class="modal-grid-btn delete-modal-grid-btn" bindtap="onDeleteTemplate">删除模板</view>
</view>
<!-- 编辑区 -->
<view class="edit-section" wx:if="{{isEditing}}">
<view class="edit-item">
<text class="edit-label">订单介绍</text>
<textarea class="edit-input intro-edit" value="{{editJieshao}}" maxlength="100" placeholder="请输入订单介绍100字以内" bindinput="onEditJieshaoInput" auto-height/>
<text class="word-count">{{editJieshao.length}}/100</text>
</view>
<view class="edit-item">
<text class="edit-label">价格(元)</text>
<input class="edit-input price-edit" type="digit" value="{{editJiage}}" placeholder="0.1 - 10000" bindinput="onEditJiageInput"/>
</view>
<view class="edit-item">
<text class="edit-label">标签</text>
<picker mode="selector" range="{{currentTypeChenghaoList}}" range-key="mingcheng" bindchange="onEditLabelChange">
<view class="picker-view"><text>{{editLabelName || '无'}}</text></view>
</picker>
</view>
<view class="edit-item commission-item">
<text class="edit-label">佣金要求建议≤50</text>
<switch checked="{{editCommissionEnabled}}" bindchange="onEditCommissionToggle"/>
<input wx:if="{{editCommissionEnabled}}" class="commission-input" type="digit" placeholder="佣金金额" value="{{editCommissionValue}}" bindinput="onEditCommissionValueInput"/>
</view>
</view>
</view>
</view>
<!-- 添加模板弹窗 -->
<view class="modal-overlay" wx:if="{{showAddModal}}" bindtap="hideAddModal">
<view class="modal-content add-modal" catchtap="stopPropagation">
<view class="modal-close" bindtap="hideAddModal">×</view>
<view class="modal-header"><text class="modal-title">添加模板</text></view>
<view class="add-form">
<view class="form-item">
<text class="form-label">订单介绍</text>
<textarea class="form-input intro-input" value="{{addJieshao}}" maxlength="100" placeholder="请输入订单介绍(必填)" bindinput="onAddJieshaoInput" auto-height/>
<text class="word-count">{{addJieshao.length}}/100</text>
</view>
<view class="form-item">
<text class="form-label">价格(元)</text>
<input class="form-input price-input" type="digit" value="{{addJiage}}" placeholder="0.1 - 10000" bindinput="onAddJiageInput"/>
</view>
<view class="form-item">
<text class="form-label">标签</text>
<picker mode="selector" range="{{currentTypeChenghaoList}}" range-key="mingcheng" bindchange="onAddLabelChange">
<view class="picker-view"><text>{{addLabelName || '可选'}}</text></view>
</picker>
</view>
<view class="form-item commission-item">
<text class="form-label">佣金要求建议≤50</text>
<switch checked="{{addCommissionEnabled}}" bindchange="onAddCommissionToggle"/>
<input wx:if="{{addCommissionEnabled}}" class="commission-input" type="digit" placeholder="佣金金额" value="{{addCommissionValue}}" bindinput="onAddCommissionValueInput"/>
</view>
</view>
<view class="modal-actions-grid add-actions-grid">
<view class="modal-grid-btn cancel-grid-btn" bindtap="hideAddModal">取消</view>
<view class="modal-grid-btn confirm-add-grid-btn" bindtap="onAddTemplate">确认添加</view>
</view>
</view>
</view>
<!-- 删除确认弹窗 -->
<view class="modal-overlay confirm-overlay" wx:if="{{showDeleteConfirm}}" bindtap="hideDeleteConfirm">
<view class="confirm-content" catchtap="stopPropagation">
<text class="confirm-title">确认删除</text>
<text class="confirm-text">确定要删除这个模板吗?此操作不可恢复。</text>
<view class="confirm-actions-grid">
<view class="confirm-grid-btn cancel-confirm-grid-btn" bindtap="hideDeleteConfirm">取消</view>
<view class="confirm-grid-btn delete-confirm-grid-btn" bindtap="confirmDeleteTemplate">确定删除</view>
</view>
</view>
</view>
<!-- 获取新链接确认弹窗 -->
<view class="modal-overlay confirm-overlay" wx:if="{{showNewLinkConfirm}}" bindtap="hideNewLinkConfirm">
<view class="confirm-content" catchtap="stopPropagation">
<text class="confirm-title">获取新链接</text>
<text class="confirm-text">{{currentTemplate.isCopied ? '确定要获取新链接吗?旧链接将失效。' : '您还没有复制当前链接,确定要获取新链接吗?'}}</text>
<view class="confirm-actions-grid">
<view class="confirm-grid-btn cancel-confirm-grid-btn" bindtap="hideNewLinkConfirm">取消</view>
<view class="confirm-grid-btn confirm-new-link-grid-btn" bindtap="confirmNewLink">确定</view>
</view>
</view>
</view>
<global-notification id="global-notification" />