JhHardwareWRS/pages/usageStats/usageStats.wxml
2026-06-24 15:19:14 +08:00

106 lines
4.5 KiB
Plaintext

<scroll-view
class="page safe-bottom"
scroll-y
type="list"
scroll-top="{{scrollTop}}"
scroll-with-animation
refresher-enabled
refresher-triggered="{{refreshing}}"
bindrefresherrefresh="onPullDownRefresh"
>
<view class="header">
<text class="title">设备模具使用统计</text>
<text class="subtitle">默认统计审核通过且未作废数据</text>
</view>
<view class="card filter-card">
<view class="date-filter-row">
<view class="date-filter-item">
<text class="label">开始日期</text>
<picker mode="date" value="{{startDate}}" bindchange="onStartChange">
<view class="picker">{{startDate || '开始日期'}}</view>
</picker>
</view>
<view class="date-filter-item">
<text class="label">结束日期</text>
<picker mode="date" value="{{endDate}}" bindchange="onEndChange">
<view class="picker">{{endDate || '结束日期'}}</view>
</picker>
</view>
</view>
<view class="filter-section">
<text class="label">考勤点</text>
<picker range="{{attendancePointLabels}}" value="{{attendancePointIndex}}" bindchange="onAttendancePointChange">
<view class="picker ellipsis">{{attendancePointLabels[attendancePointIndex] || '全部考勤点'}}</view>
</picker>
</view>
<view class="segmented-row">
<button class="segment-btn {{category === 'device' ? 'active' : ''}}" data-category="device" bindtap="chooseCategory">设备</button>
<button class="segment-btn {{category === 'mold' ? 'active' : ''}}" data-category="mold" bindtap="chooseCategory">模具</button>
</view>
<view class="segmented-row">
<button class="segment-btn {{sortBy === 'value' ? 'active' : ''}}" data-sort="value" bindtap="chooseSort">按时长/数量</button>
<button class="segment-btn {{sortBy === 'count' ? 'active' : ''}}" data-sort="count" bindtap="chooseSort">按报工次数</button>
</view>
<button class="btn primary full export-btn" loading="{{exporting}}" bindtap="exportFile">导出统计</button>
</view>
<input
class="input search"
value="{{keyword}}"
placeholder="搜索考勤点、设备、模具、产品、工序、冲压方式"
confirm-type="search"
bindinput="onKeywordInput"
bindconfirm="searchKeyword"
/>
<view wx:if="{{loading && !rows.length}}" class="list-empty">加载中</view>
<view wx:elif="{{!rows.length}}" class="list-empty">暂无统计数据</view>
<view
wx:for="{{rows}}"
wx:key="uniqueKey"
wx:for-index="index"
class="card usage-card"
data-index="{{index}}"
bindtap="openDetail"
>
<view class="row usage-head">
<view class="row-left">
<text class="value usage-name">{{item.name || '-'}}</text>
<text class="subtitle ellipsis">考勤点 {{item.attendancePointName || '-'}}</text>
<text class="subtitle ellipsis">{{item.objectType || '-'}} · 报工 {{item.reportCount || 0}} 次</text>
</view>
<text class="pill primary">{{item.metricLabel}}</text>
</view>
<view class="usage-bar-track">
<view class="usage-bar-fill {{item.metricKind === 'quantity' ? 'quantity' : 'duration'}}" style="width: {{item.barPercent}}%;"></view>
</view>
<view class="row usage-value-row">
<text class="label">{{item.metricKind === 'quantity' ? '统计数量' : '使用时长'}}</text>
<text class="value usage-value">{{item.valueText}}</text>
</view>
<view wx:if="{{item.productName || item.processName || item.stampingMethod}}" class="usage-tags">
<text wx:if="{{item.productName}}" class="usage-tag">{{item.productName}}</text>
<text wx:if="{{item.processName}}" class="usage-tag">{{item.processName}}</text>
<text wx:if="{{item.stampingMethod}}" class="usage-tag">{{item.stampingMethod}}</text>
</view>
</view>
<view class="button-row pager-row usage-pager" wx:if="{{rows.length}}">
<button class="btn secondary pager-nav" bindtap="prevPage" disabled="{{page <= 1}}">上一页</button>
<view class="page-jump-control usage-page-jump">
<input class="page-jump-input usage-page-input" type="number" confirm-type="done" value="{{pageInput}}" bindinput="onPageInput" bindconfirm="jumpToPage" />
<text class="page-total-label usage-total-label">/ {{totalPages}}</text>
<text class="page-jump-action" bindtap="jumpToPage">跳</text>
</view>
<button class="btn secondary pager-nav" bindtap="nextPage" disabled="{{page >= totalPages}}">下一页</button>
</view>
</scroll-view>