166 lines
7.2 KiB
Plaintext
166 lines
7.2 KiB
Plaintext
<scroll-view
|
|
class="page safe-bottom"
|
|
scroll-y
|
|
type="list"
|
|
refresher-enabled
|
|
refresher-triggered="{{refreshing}}"
|
|
bindrefresherrefresh="onPullDownRefresh"
|
|
>
|
|
<view class="header">
|
|
<text class="title">智能监控</text>
|
|
<text class="subtitle">查看当前模具占用和员工反馈</text>
|
|
</view>
|
|
|
|
<view class="section-title">反馈信箱</view>
|
|
<view class="mail-grid">
|
|
<view class="mail-card">
|
|
<view class="mail-head">
|
|
<view class="mail-title">
|
|
<text class="mail-icon unread">未</text>
|
|
<text class="value">未读信箱</text>
|
|
</view>
|
|
<text class="mail-badge">{{unreadTotal}}</text>
|
|
</view>
|
|
<view wx:if="{{!unreadRows.length}}" class="mail-empty">暂无未读反馈</view>
|
|
<view
|
|
wx:for="{{unreadRows}}"
|
|
wx:key="id"
|
|
wx:for-index="index"
|
|
class="feedback-row unread-row"
|
|
data-box="unread"
|
|
data-index="{{index}}"
|
|
bindtap="openFeedback"
|
|
>
|
|
<text class="feedback-title">{{item.moldDisplayName}}</text>
|
|
<text class="feedback-sub">{{item.reporterName || item.reporterPhone}} 反馈 {{item.occupiedName || item.occupiedPhone}}</text>
|
|
<text class="feedback-time">{{item.feedbackAtText}}</text>
|
|
</view>
|
|
<view class="pager">
|
|
<button class="btn mini secondary" data-box="unread" data-direction="-1" bindtap="changeFeedbackPage" disabled="{{unreadPage <= 1}}">上一页</button>
|
|
<view class="page-jump-control mini">
|
|
<input class="page-jump-input" type="number" confirm-type="done" value="{{unreadPageInput}}" data-box="unread" bindinput="onFeedbackPageInput" bindconfirm="jumpFeedbackPage" />
|
|
<text class="page-total-label">/ {{unreadTotalPages}}</text>
|
|
<text class="page-jump-action" data-box="unread" bindtap="jumpFeedbackPage">跳</text>
|
|
</view>
|
|
<button class="btn mini secondary" data-box="unread" data-direction="1" bindtap="changeFeedbackPage" disabled="{{unreadPage >= unreadTotalPages}}">下一页</button>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="mail-card">
|
|
<view class="mail-head">
|
|
<view class="mail-title">
|
|
<text class="mail-icon read">读</text>
|
|
<text class="value">已读信箱</text>
|
|
</view>
|
|
<text class="mail-badge muted-badge">{{readTotal}}</text>
|
|
</view>
|
|
<view wx:if="{{!readRows.length}}" class="mail-empty">暂无已读反馈</view>
|
|
<view
|
|
wx:for="{{readRows}}"
|
|
wx:key="id"
|
|
wx:for-index="index"
|
|
class="feedback-row"
|
|
data-box="read"
|
|
data-index="{{index}}"
|
|
bindtap="openFeedback"
|
|
>
|
|
<view class="feedback-title-line">
|
|
<text class="feedback-title">{{item.moldDisplayName}}</text>
|
|
<text class="status-text {{item.isHandled ? 'handled' : 'pending'}}">{{item.statusName}}</text>
|
|
</view>
|
|
<text class="feedback-sub">{{item.reporterName || item.reporterPhone}} 反馈 {{item.occupiedName || item.occupiedPhone}}</text>
|
|
<text class="feedback-time">{{item.readAtText || item.feedbackAtText}}</text>
|
|
</view>
|
|
<view class="pager">
|
|
<button class="btn mini secondary" data-box="read" data-direction="-1" bindtap="changeFeedbackPage" disabled="{{readPage <= 1}}">上一页</button>
|
|
<view class="page-jump-control mini">
|
|
<input class="page-jump-input" type="number" confirm-type="done" value="{{readPageInput}}" data-box="read" bindinput="onFeedbackPageInput" bindconfirm="jumpFeedbackPage" />
|
|
<text class="page-total-label">/ {{readTotalPages}}</text>
|
|
<text class="page-jump-action" data-box="read" bindtap="jumpFeedbackPage">跳</text>
|
|
</view>
|
|
<button class="btn mini secondary" data-box="read" data-direction="1" bindtap="changeFeedbackPage" disabled="{{readPage >= readTotalPages}}">下一页</button>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="section-title">生产监控</view>
|
|
<view class="card monitor-card">
|
|
<view class="monitor-head">
|
|
<view>
|
|
<text class="value">当前占用模具</text>
|
|
<text class="subtitle">只显示已经被员工打卡上班占用的模具</text>
|
|
</view>
|
|
<text class="monitor-mark">监控</text>
|
|
</view>
|
|
<view wx:if="{{!locks.length}}" class="list-empty inline-empty">暂无占用中的模具</view>
|
|
<view wx:else class="mold-grid">
|
|
<view
|
|
wx:for="{{locks}}"
|
|
wx:key="id"
|
|
wx:for-index="index"
|
|
class="mold-tile"
|
|
data-index="{{index}}"
|
|
bindtap="openLock"
|
|
>
|
|
<view class="mold-icon">模</view>
|
|
<text class="mold-name">{{item.moldDisplayName}}</text>
|
|
<text class="mold-worker">{{item.occupiedName || item.occupiedPhone}}</text>
|
|
<text class="mold-duration">{{item.occupiedDurationText}}</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</scroll-view>
|
|
|
|
<view wx:if="{{detailVisible}}" class="modal-mask" catchtap="closeDetail">
|
|
<view class="modal-panel" catchtap="noop">
|
|
<view class="modal-head">
|
|
<text class="modal-title">{{detailType === 'lock' ? '占用详情' : '反馈详情'}}</text>
|
|
<button class="btn mini secondary modal-close" bindtap="closeDetail">关闭</button>
|
|
</view>
|
|
|
|
<block wx:if="{{detailType === 'lock' && selectedLock}}">
|
|
<view class="detail-row">
|
|
<text class="label">模具名</text>
|
|
<text class="value">{{selectedLock.moldDisplayName}}</text>
|
|
</view>
|
|
<view class="detail-row">
|
|
<text class="label">占用人员</text>
|
|
<text class="value">{{selectedLock.occupiedName || selectedLock.occupiedPhone}}</text>
|
|
</view>
|
|
<view class="detail-row">
|
|
<text class="label">本次占用开始时间</text>
|
|
<text class="value">{{selectedLock.occupiedStartAtText}}</text>
|
|
</view>
|
|
<view class="detail-row">
|
|
<text class="label">已占用时长</text>
|
|
<text class="value">{{selectedLock.occupiedDurationText}}</text>
|
|
</view>
|
|
<button class="btn danger full detail-action" bindtap="releaseFromLock">强制解除占用</button>
|
|
</block>
|
|
|
|
<block wx:if="{{detailType === 'feedback' && selectedFeedback}}">
|
|
<view class="detail-row">
|
|
<text class="label">反馈人员姓名</text>
|
|
<text class="value">{{selectedFeedback.reporterName || selectedFeedback.reporterPhone}}</text>
|
|
</view>
|
|
<view class="detail-row">
|
|
<text class="label">占用人员姓名</text>
|
|
<text class="value">{{selectedFeedback.occupiedName || selectedFeedback.occupiedPhone}}</text>
|
|
</view>
|
|
<view class="detail-row">
|
|
<text class="label">模具名</text>
|
|
<text class="value">{{selectedFeedback.moldDisplayName}}</text>
|
|
</view>
|
|
<view class="detail-row">
|
|
<text class="label">反馈时间</text>
|
|
<text class="value">{{selectedFeedback.feedbackAtText}}</text>
|
|
</view>
|
|
<view class="detail-row">
|
|
<text class="label">处理状态</text>
|
|
<text class="status-text detail-status {{selectedFeedback.isHandled ? 'handled' : 'pending'}}">{{selectedFeedback.statusName}}</text>
|
|
</view>
|
|
<button wx:if="{{selectedFeedback.canRelease}}" class="btn danger full detail-action" bindtap="releaseFromFeedback">一键解除占用</button>
|
|
</block>
|
|
</view>
|
|
</view>
|