feat: 小程序展示报工超额快照

This commit is contained in:
souplearn
2026-07-25 21:12:17 +08:00
parent 25ed4e2da8
commit 4003625fb1
6 changed files with 280 additions and 33 deletions
+12 -7
View File
@@ -37,13 +37,14 @@
<view wx:if="{{!rows.length}}" class="list-empty">暂无已审核报工</view>
<view wx:for="{{rows}}" wx:key="id" class="card dashboard-card {{item.isSystemAutoSubmitted ? 'system-auto' : ''}} {{item.isVoided ? 'voided' : ''}}">
<text wx:if="{{item.isVoided}}" class="voided-watermark">作废</text>
<text wx:elif="{{item.correctionPairs.length}}" class="modified-watermark">更改</text>
<text wx:if="{{item.isSystemAutoSubmitted}}" class="timeout-watermark">超时-系统自动提交</text>
<text wx:if="{{item.isCleaning}}" class="cleaning-watermark {{item.isSystemAutoSubmitted || item.isVoided || item.correctionPairs.length ? 'lower-watermark' : ''}}">清洗</text>
<text wx:if="{{item.isMisc}}" class="misc-watermark {{item.isSystemAutoSubmitted || item.isVoided || item.correctionPairs.length ? 'lower-watermark' : ''}}">包含杂活</text>
<text wx:if="{{item.isMultiPerson}}" class="multi-person-watermark {{item.isSystemAutoSubmitted || item.isVoided || item.correctionPairs.length || item.isMisc || item.isCleaning ? 'lower-watermark' : ''}}">多人协作</text>
<text wx:if="{{item.isContinuousDie}}" class="continuous-die-watermark {{item.isSystemAutoSubmitted || item.isVoided || item.correctionPairs.length || item.isMisc || item.isCleaning || item.isMultiPerson ? 'lower-watermark' : ''}} {{item.isMultiPerson && (item.isSystemAutoSubmitted || item.isVoided || item.correctionPairs.length || item.isMisc || item.isCleaning) ? 'third-watermark' : ''}}">连续模</text>
<text wx:if="{{item.hasOverLimit}}" class="over-limit-watermark {{item.watermarkClasses.overLimit}}">超额</text>
<text wx:if="{{item.isVoided}}" class="voided-watermark {{item.watermarkClasses.state}}">作废</text>
<text wx:elif="{{item.correctionPairs.length}}" class="modified-watermark {{item.watermarkClasses.state}}">更改</text>
<text wx:if="{{item.isSystemAutoSubmitted}}" class="timeout-watermark {{item.watermarkClasses.timeout}}">超时-系统自动提交</text>
<text wx:if="{{item.isCleaning}}" class="cleaning-watermark {{item.watermarkClasses.cleaning}}">清洗</text>
<text wx:if="{{item.isMisc}}" class="misc-watermark {{item.watermarkClasses.misc}}">包含杂活</text>
<text wx:if="{{item.isMultiPerson}}" class="multi-person-watermark {{item.watermarkClasses.multiPerson}}">多人协作</text>
<text wx:if="{{item.isContinuousDie}}" class="continuous-die-watermark {{item.watermarkClasses.continuousDie}}">连续模</text>
<view class="row">
<view class="row-left">
<text class="value">{{item.employeeName}} · {{item.reportDate}}</text>
@@ -118,6 +119,10 @@
<text class="label">备注</text>
<text class="value">{{item.reviewRemark}}</text>
</view>
<view wx:if="{{item.hasOverLimitNotice}}" class="over-limit-panel {{item.hasOverLimit ? 'danger' : 'warn'}}">
<text class="over-limit-title">{{item.overLimitSummary || (item.hasOverLimit ? '超额' : '无法校验')}}</text>
<text wx:if="{{item.overLimitReasons}}" class="over-limit-text">{{item.overLimitReasons}}</text>
</view>
<view class="salary-divider"></view>
<view class="salary-row">
<text class="label">参考工资</text>
+18 -7
View File
@@ -63,13 +63,14 @@
data-id="{{item.id}}"
bindtap="toggleRecordDetail"
>
<text wx:if="{{item.isVoided}}" class="voided-watermark">作废</text>
<text wx:elif="{{item.isModified}}" class="modified-watermark">更改</text>
<text wx:if="{{item.isSystemAutoSubmitted}}" class="timeout-watermark">{{item.autoSubmitReason || '超时-系统自动提交'}}</text>
<text wx:if="{{item.isCleaning}}" class="cleaning-watermark {{item.isSystemAutoSubmitted || item.isVoided || item.isModified ? 'lower-watermark' : ''}}">清洗</text>
<text wx:if="{{item.hasMisc}}" class="misc-watermark {{item.isSystemAutoSubmitted || item.isVoided || item.isModified ? 'lower-watermark' : ''}}">包含杂活</text>
<text wx:if="{{item.hasMultiPerson}}" class="multi-person-watermark {{item.isSystemAutoSubmitted || item.isVoided || item.isModified || item.hasMisc || item.isCleaning ? 'lower-watermark' : ''}}">多人协作</text>
<text wx:if="{{item.hasContinuousDie}}" class="continuous-die-watermark {{item.isSystemAutoSubmitted || item.isVoided || item.isModified || item.hasMisc || item.isCleaning || item.hasMultiPerson ? 'lower-watermark' : ''}} {{item.hasMultiPerson && (item.isSystemAutoSubmitted || item.isVoided || item.isModified || item.hasMisc || item.isCleaning) ? 'third-watermark' : ''}}">连续模</text>
<text wx:if="{{item.hasOverLimit}}" class="over-limit-watermark {{item.watermarkClasses.overLimit}}">超额</text>
<text wx:if="{{item.isVoided}}" class="voided-watermark {{item.watermarkClasses.state}}">作废</text>
<text wx:elif="{{item.isModified}}" class="modified-watermark {{item.watermarkClasses.state}}">更改</text>
<text wx:if="{{item.isSystemAutoSubmitted}}" class="timeout-watermark {{item.watermarkClasses.timeout}}">{{item.autoSubmitReason || '超时-系统自动提交'}}</text>
<text wx:if="{{item.isCleaning}}" class="cleaning-watermark {{item.watermarkClasses.cleaning}}">清洗</text>
<text wx:if="{{item.hasMisc}}" class="misc-watermark {{item.watermarkClasses.misc}}">包含杂活</text>
<text wx:if="{{item.hasMultiPerson}}" class="multi-person-watermark {{item.watermarkClasses.multiPerson}}">多人协作</text>
<text wx:if="{{item.hasContinuousDie}}" class="continuous-die-watermark {{item.watermarkClasses.continuousDie}}">连续模</text>
<view class="row">
<view class="row-left">
<text class="value">{{item.employeeName}} · {{item.reportDate}}</text>
@@ -149,6 +150,16 @@
<text class="value">{{detail.changeoverCount || 0}}</text>
</view>
</view>
<view wx:if="{{detail.hasOverLimitNotice}}" class="over-limit-panel {{detail.hasOverLimit ? 'danger' : 'warn'}}">
<text class="over-limit-title">{{detail.hasOverLimit ? '超额' : '无法校验'}}</text>
<text class="over-limit-text">{{detail.overLimitReason || '-'}}</text>
<view class="over-limit-grid">
<text>本次消耗 {{detail.overLimitCurrentReportQtyText}}</text>
<text>累计消耗 {{detail.overLimitCurrentCumulativeQtyText}}</text>
<text wx:if="{{detail.hasOverLimitMaxReportableQty}}">最大可报 {{detail.overLimitMaxReportableQtyText}}</text>
<text wx:if="{{detail.hasOverLimitPreviousGoodQty}}">前序可用 {{detail.overLimitPreviousGoodQtyText}}</text>
</view>
</view>
<view wx:if="{{detail.correctionPairs.length}}" class="correction-list detail-corrections">
<view wx:for="{{detail.correctionPairs}}" wx:key="key" wx:for-item="pair" class="correction-pair">
<text>{{pair.label}} </text>
+20
View File
@@ -326,6 +326,26 @@ Page({
changeoverCount: detail.changeoverCount || 0,
changeoverCountError: false,
remark: detail.remark || '',
overLimitStatus: detail.overLimitStatus || 'not_checked',
overLimitType: detail.overLimitType || '',
overLimitReason: detail.overLimitReason || '',
overLimitCheckedAt: detail.overLimitCheckedAt || '',
overLimitCheckSource: detail.overLimitCheckSource || '',
overLimitBatchNo: detail.overLimitBatchNo || '',
overLimitProductGrossWeightKg: detail.overLimitProductGrossWeightKg ?? '',
overLimitIssuedWeightKg: detail.overLimitIssuedWeightKg ?? '',
overLimitMaxReportableQty: detail.overLimitMaxReportableQty ?? '',
overLimitPreviousGoodQty: detail.overLimitPreviousGoodQty ?? '',
overLimitCurrentCumulativeQty: detail.overLimitCurrentCumulativeQty ?? '',
overLimitCurrentReportQty: detail.overLimitCurrentReportQty ?? '',
overLimitMaxReportableQtyText: detail.overLimitMaxReportableQtyText || '-',
overLimitPreviousGoodQtyText: detail.overLimitPreviousGoodQtyText || '-',
overLimitCurrentCumulativeQtyText: detail.overLimitCurrentCumulativeQtyText || '-',
overLimitCurrentReportQtyText: detail.overLimitCurrentReportQtyText || '-',
hasOverLimitMaxReportableQty: !!detail.hasOverLimitMaxReportableQty,
hasOverLimitPreviousGoodQty: !!detail.hasOverLimitPreviousGoodQty,
hasOverLimit: !!detail.hasOverLimit,
hasOverLimitNotice: !!detail.hasOverLimitNotice,
deviceError: false,
deviceNo: detail.deviceNo,
deviceIndex,
+19 -7
View File
@@ -38,13 +38,14 @@
data-id="{{item.id}}"
bindtap="toggleReportDetail"
>
<text wx:if="{{item.isVoided}}" class="voided-watermark">作废</text>
<text wx:elif="{{item.isModified}}" class="modified-watermark">更改</text>
<text wx:if="{{item.isSystemAutoSubmitted}}" class="timeout-watermark">{{item.autoSubmitReason || '超时-系统自动提交'}}</text>
<text wx:if="{{item.isCleaning}}" class="cleaning-watermark {{item.isSystemAutoSubmitted || item.isVoided || item.isModified ? 'lower-watermark' : ''}}">清洗</text>
<text wx:if="{{item.hasMisc}}" class="misc-watermark {{item.isSystemAutoSubmitted || item.isVoided || item.isModified ? 'lower-watermark' : ''}}">包含杂活</text>
<text wx:if="{{item.hasMultiPerson}}" class="multi-person-watermark {{item.isSystemAutoSubmitted || item.isVoided || item.isModified || item.hasMisc || item.isCleaning ? 'lower-watermark' : ''}}">多人协作</text>
<text wx:if="{{item.hasContinuousDie}}" class="continuous-die-watermark {{item.isSystemAutoSubmitted || item.isVoided || item.isModified || item.hasMisc || item.isCleaning || item.hasMultiPerson ? 'lower-watermark' : ''}} {{item.hasMultiPerson && (item.isSystemAutoSubmitted || item.isVoided || item.isModified || item.hasMisc || item.isCleaning) ? 'third-watermark' : ''}}">连续模</text>
<text wx:if="{{item.hasOverLimit}}" class="over-limit-watermark {{item.watermarkClasses.overLimit}}">超额</text>
<text wx:if="{{item.isVoided}}" class="voided-watermark {{item.watermarkClasses.state}}">作废</text>
<text wx:elif="{{item.isModified}}" class="modified-watermark {{item.watermarkClasses.state}}">更改</text>
<text wx:if="{{item.isSystemAutoSubmitted}}" class="timeout-watermark {{item.watermarkClasses.timeout}}">{{item.autoSubmitReason || '超时-系统自动提交'}}</text>
<text wx:if="{{item.isCleaning}}" class="cleaning-watermark {{item.watermarkClasses.cleaning}}">清洗</text>
<text wx:if="{{item.hasMisc}}" class="misc-watermark {{item.watermarkClasses.misc}}">包含杂活</text>
<text wx:if="{{item.hasMultiPerson}}" class="multi-person-watermark {{item.watermarkClasses.multiPerson}}">多人协作</text>
<text wx:if="{{item.hasContinuousDie}}" class="continuous-die-watermark {{item.watermarkClasses.continuousDie}}">连续模</text>
<view class="row">
<view class="row-left">
<text class="value">{{item.employeeName}} · {{item.reportDate}}</text>
@@ -158,6 +159,17 @@
</view>
</view>
<view wx:if="{{detail.hasOverLimitNotice}}" class="over-limit-panel {{detail.hasOverLimit ? 'danger' : 'warn'}}">
<text class="over-limit-title">{{detail.hasOverLimit ? '超额' : '无法校验'}}</text>
<text class="over-limit-text">{{detail.overLimitReason || '-'}}</text>
<view class="over-limit-grid">
<text>本次消耗 {{detail.overLimitCurrentReportQtyText}}</text>
<text>累计消耗 {{detail.overLimitCurrentCumulativeQtyText}}</text>
<text wx:if="{{detail.hasOverLimitMaxReportableQty}}">最大可报 {{detail.overLimitMaxReportableQtyText}}</text>
<text wx:if="{{detail.hasOverLimitPreviousGoodQty}}">前序可用 {{detail.overLimitPreviousGoodQtyText}}</text>
</view>
</view>
<view wx:if="{{detail.isMisc && !item.isVoided && item.canEdit}}" class="review-edit-panel misc-remark-panel">
<text class="panel-title">杂活事项备注</text>
<textarea