新增焊缝外观检测

This commit is contained in:
huhao
2026-08-17 11:29:27 +08:00
parent 57bd21d6b9
commit b342fb971b
10 changed files with 902 additions and 13 deletions
+64 -1
View File
@@ -62,6 +62,24 @@
failText="不准确" />
</view>
</view>
<!-- 专项审核办理人:材料编码批次或材料数量不准确时必填 -->
<view class="card__row" @click="handleShowReviewerSelect">
<text class="card__label" :class="{ required: needSpecialReviewer }">专项审核办理人</text>
<view class="card__value-wrap card__value-wrap--clickable">
<text class="card__value" :class="{ 'card__value--placeholder': !specialReviewerName }">
{{ specialReviewerName || '请选择' }}
</text>
<u-icon name="arrow-right" :size="24" color="#bbb" />
</view>
</view>
<!-- 两侧主编码反馈 -->
<view class="card__row card__row--stack">
<text class="card__label">两侧主编码反馈</text>
<view class="card__value-wrap">
<textarea readonly class="remark-input" placeholder="请输入" :maxlength="200" auto-height />
</view>
</view>
</view>
</view>
@@ -174,6 +192,10 @@
<text class="btn-primary-gradient__text">提交结果</text>
</view>
</view>
<!-- 专项审核办理人选择 -->
<nbd-select v-model="showReviewerPicker" :show-search="true" title="选择专项审核办理人" :list="reviewerList"
label-key="BaseInfoName" value-key="BaseInfoId" @confirm="handleConfirmReviewer" />
</view>
</template>
@@ -183,7 +205,7 @@ import { onLoad } from '@dcloudio/uni-app'
import { storeToRefs } from 'pinia'
import { useUserStore, useMenuStore } from '@/store'
import { reqPreWeldJointByWeldJointId, reqSaveCuttingCheck, reqCuttingCheckByWeldJointId, reqGetAntiCorrosionCheck } from '@/api/hj'
import { reqPreWeldJointByWeldJointId, reqSaveCuttingCheck, reqCuttingCheckByWeldJointId, reqGetAntiCorrosionCheck, reqGetSpecialReviewers } from '@/api/hj'
const cuttingFields = [
{ label: '下料长度', key: 'CuttingLength' },
@@ -191,6 +213,7 @@ const cuttingFields = [
{ label: '坡口角度', key: 'GrooveAngle' },
{ label: '材料编码批次', key: 'IsMaterialCodeBatchNoAccurate', type: 'tag', tagMatch: true, tagPassText: '准确', tagFailText: '不准确' },
{ label: '材料数量', key: 'IsMaterialQuantityAccurate', type: 'tag', tagMatch: true, tagPassText: '准确', tagFailText: '不准确' },
{ label: '专项审核办理人', key: 'SpecialReviewerName' },
{ label: '检查人', key: 'CheckPersonName' },
{ label: '检查时间', key: 'CheckTime' },
{ label: '检查结果', key: 'CheckResult', type: 'tag', tagMatch: '合格' },
@@ -231,11 +254,21 @@ const layingOffForm = ref({
CheckResult: '合格',
IsMaterialCodeBatchNoAccurate: '准确',
IsMaterialQuantityAccurate: '准确',
SpecialReviewerId: '',
UnqualifiedReason: '',
RectifyRequirement: '',
Remark: ''
})
const showReviewerPicker = ref(false)
const reviewerList = ref([])
const specialReviewerName = ref('')
// 材料编码批次或材料数量不准确时,专项审核办理人必填
const needSpecialReviewer = computed(() =>
layingOffForm.value.IsMaterialCodeBatchNoAccurate === '不准确' ||
layingOffForm.value.IsMaterialQuantityAccurate === '不准确'
)
// 照片组件引用
const photoRef = ref(null)
@@ -260,11 +293,40 @@ watch(() => layingOffForm.value.CheckResult, async (val) => {
}
})
const handleShowReviewerSelect = () => {
const projectId = currentProject.value?.ProjectId || info.value?.ProjectId
if (!projectId) {
uni.showToast({ title: '缺少项目信息', icon: 'none' })
return
}
reqGetSpecialReviewers(projectId).then(res => {
reviewerList.value = Array.isArray(res.data) ? res.data : []
showReviewerPicker.value = true
})
}
const handleConfirmReviewer = (item) => {
if (!item) return
layingOffForm.value.SpecialReviewerId = item.BaseInfoId || item.PersonId || ''
specialReviewerName.value = item.BaseInfoName || item.PersonName || ''
showReviewerPicker.value = false
}
const validateSpecialReviewer = () => {
if (!needSpecialReviewer.value) return true
if (!layingOffForm.value.SpecialReviewerId) {
uni.showToast({ title: '请选择专项审核办理人', icon: 'none' })
return false
}
return true
}
const handleSubmit = () => {
if (!canEdit.value) {
uni.showToast({ title: '当前岗位仅可查看', icon: 'none' })
return
}
if (!validateSpecialReviewer()) return
uni.showModal({
title: '确认提交',
content: '确定提交吗?',
@@ -286,6 +348,7 @@ const handleSubmit = () => {
GrooveAngle: layingOffForm.value.GrooveAngle, // 坡口角度
IsMaterialCodeBatchNoAccurate: layingOffForm.value.IsMaterialCodeBatchNoAccurate === '准确', // 材料编码批次
IsMaterialQuantityAccurate: layingOffForm.value.IsMaterialQuantityAccurate === '准确', // 材料数量
SpecialReviewerId: layingOffForm.value.SpecialReviewerId || '', // 专项审核办理人
CheckPerson: userInfo.value?.PersonId, // 检查人员
CheckTime: uni.formatTime(new Date().getTime(), 'YYYY-MM-DD HH:mm'), // 检查时间
CreateUser: userInfo.value?.PersonId, // 创建人员