下料抽查
This commit is contained in:
@@ -1902,4 +1902,28 @@ $shadow-md: 0 2rpx 12rpx rgba(0, 0, 0, 0.06);
|
|||||||
color: #b0bec5;
|
color: #b0bec5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ===== 不合格区域切换动画 =====
|
||||||
|
.fail-section {
|
||||||
|
max-height: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(-20rpx);
|
||||||
|
transition: max-height 0.35s ease, opacity 0.25s ease, transform 0.25s ease;
|
||||||
|
|
||||||
|
&.is-visible {
|
||||||
|
max-height: 600rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.is-enter {
|
||||||
|
opacity: 1;
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.is-leave {
|
||||||
|
max-height: 0;
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(-20rpx);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -482,27 +482,4 @@ $shadow-md: 0 2rpx 12rpx rgba(0, 0, 0, 0.04), 0 8rpx 24rpx rgba(0, 0, 0, 0.06);
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ===== 不合格区域切换动画 =====
|
|
||||||
.fail-section {
|
|
||||||
max-height: 0;
|
|
||||||
overflow: hidden;
|
|
||||||
opacity: 0;
|
|
||||||
transform: translateY(-20rpx);
|
|
||||||
transition: max-height 0.35s ease, opacity 0.25s ease, transform 0.25s ease;
|
|
||||||
|
|
||||||
&.is-visible {
|
|
||||||
max-height: 600rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.is-enter {
|
|
||||||
opacity: 1;
|
|
||||||
transform: translateY(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.is-leave {
|
|
||||||
max-height: 0;
|
|
||||||
opacity: 0;
|
|
||||||
transform: translateY(-20rpx);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -15,6 +15,95 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
<!-- 下料填报 -->
|
||||||
|
<view class="section">
|
||||||
|
<view class="section__header">
|
||||||
|
<view class="section__bar"></view>
|
||||||
|
<text class="section__title">下料填报</text>
|
||||||
|
</view>
|
||||||
|
<view class="card">
|
||||||
|
<!-- 下料长度 -->
|
||||||
|
<view class="card__row" @click="showPaintCodePicker = true">
|
||||||
|
<text class="card__label required">下料长度</text>
|
||||||
|
<view class="card__value-wrap">
|
||||||
|
<input class="card__input" v-model="layingOffForm.CuttingLength" type="digit"
|
||||||
|
placeholder="请输入下料长度" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 坡口形式 -->
|
||||||
|
<view class="card__row">
|
||||||
|
<text class="card__label required">坡口形式</text>
|
||||||
|
<view class="card__value-wrap">
|
||||||
|
<input class="card__input" v-model="layingOffForm.GrooveForm" type="text"
|
||||||
|
placeholder="请输入坡口形式" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 坡口角度 -->
|
||||||
|
<view class="card__row required">
|
||||||
|
<text class="card__label">坡口角度</text>
|
||||||
|
<view class="card__value-wrap">
|
||||||
|
<input class="card__input" v-model="layingOffForm.GrooveAngle" type="digit"
|
||||||
|
placeholder="请输入坡口角度" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 检查信息 -->
|
||||||
|
<view class="section">
|
||||||
|
<view class="section__header">
|
||||||
|
<view class="section__bar"></view>
|
||||||
|
<text class="section__title">检查信息</text>
|
||||||
|
</view>
|
||||||
|
<view class="card">
|
||||||
|
<!-- 检查结果 -->
|
||||||
|
<view class="card__row">
|
||||||
|
<text class="card__label">检查结果</text>
|
||||||
|
<view class="card__value-wrap card__value-wrap--clickable">
|
||||||
|
<nbd-check-btn v-model="layingOffForm.CheckResult" passKey="合格" failKey="不合格" passText="合格"
|
||||||
|
failText="不合格" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="fail-section"
|
||||||
|
:class="{ 'is-visible': failVisible, 'is-enter': failAnimating, 'is-leave': failLeaving }">
|
||||||
|
<!-- 不合格原因 -->
|
||||||
|
<view class="card__row card__row--stack">
|
||||||
|
<text class="card__label">不合格原因</text>
|
||||||
|
<view class="card__value-wrap">
|
||||||
|
<textarea class="remark-input" v-model="layingOffForm.UnqualifiedReason" placeholder="请输入"
|
||||||
|
:maxlength="200" auto-height />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 整改要求 -->
|
||||||
|
<view class="card__row card__row--stack">
|
||||||
|
<text class="card__label">整改要求</text>
|
||||||
|
<view class="card__value-wrap">
|
||||||
|
<textarea class="remark-input" v-model="layingOffForm.RectifyRequirement" placeholder="请输入"
|
||||||
|
:maxlength="200" auto-height />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 备注 -->
|
||||||
|
<view class="card__row card__row--stack">
|
||||||
|
<text class="card__label">备注</text>
|
||||||
|
<view class="card__value-wrap">
|
||||||
|
<textarea class="remark-input" v-model="layingOffForm.Remark" placeholder="请输入备注信息(选填)"
|
||||||
|
:maxlength="200" auto-height />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 照片 -->
|
||||||
|
<view class="card__row card__row--stack">
|
||||||
|
<text class="card__label">照片</text>
|
||||||
|
<view class="card__value-wrap">
|
||||||
|
<nbd-photo-upload ref="photoRef" v-model:attachUrl="files" typeName="AntiRust" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
<block v-for="(item, index) in info.preWeldMaterialItems" :key="item.MaterialCode || index">
|
<block v-for="(item, index) in info.preWeldMaterialItems" :key="item.MaterialCode || index">
|
||||||
<!-- 材料信息 -->
|
<!-- 材料信息 -->
|
||||||
<view class="section">
|
<view class="section">
|
||||||
@@ -92,7 +181,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from 'vue'
|
import { ref, watch, nextTick } from 'vue'
|
||||||
import { onLoad, onShow } from '@dcloudio/uni-app'
|
import { onLoad, onShow } from '@dcloudio/uni-app'
|
||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useUserStore } from '@/store'
|
import { useUserStore } from '@/store'
|
||||||
@@ -107,6 +196,16 @@ const info = ref({})
|
|||||||
const remark = ref('')
|
const remark = ref('')
|
||||||
const formAttachUrl = ref('')
|
const formAttachUrl = ref('')
|
||||||
const id = ref('')
|
const id = ref('')
|
||||||
|
const layingOffForm = ref({
|
||||||
|
CuttingLength: '',
|
||||||
|
GrooveForm: '',
|
||||||
|
GrooveAngle: '',
|
||||||
|
CheckResult: '合格',
|
||||||
|
UnqualifiedReason: '',
|
||||||
|
RectifyRequirement: '',
|
||||||
|
Remark: ''
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
const check = ref({
|
const check = ref({
|
||||||
CodeBatch: true,
|
CodeBatch: true,
|
||||||
@@ -116,7 +215,25 @@ const check = ref({
|
|||||||
// 照片组件引用
|
// 照片组件引用
|
||||||
const photoRef = ref(null)
|
const photoRef = ref(null)
|
||||||
|
|
||||||
|
const failVisible = ref(layingOffForm.value.CheckResult === '不合格')
|
||||||
|
const failAnimating = ref(false)
|
||||||
|
const failLeaving = ref(false)
|
||||||
|
|
||||||
|
watch(() => layingOffForm.value.CheckResult, async (val) => {
|
||||||
|
if (val === '不合格') {
|
||||||
|
failVisible.value = true
|
||||||
|
await nextTick()
|
||||||
|
failAnimating.value = true
|
||||||
|
failLeaving.value = false
|
||||||
|
} else {
|
||||||
|
failLeaving.value = true
|
||||||
|
failAnimating.value = false
|
||||||
|
setTimeout(() => {
|
||||||
|
failVisible.value = false
|
||||||
|
failLeaving.value = false
|
||||||
|
}, 250)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
const handleSubmit = () => {
|
const handleSubmit = () => {
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
|
|||||||
Reference in New Issue
Block a user