功能调整

This commit is contained in:
huhao
2026-08-18 18:05:16 +08:00
parent b342fb971b
commit 47559d6ed2
17 changed files with 2677 additions and 246 deletions
+117 -17
View File
@@ -133,6 +133,26 @@
<u-icon name="arrow-right" :size="24" color="#bbb" />
</view>
</view>
<!-- 焊丝 -->
<view class="card__row" @click="handleShowWireSelect">
<text class="card__label">焊丝</text>
<view class="card__value-wrap card__value-wrap--clickable">
<text class="card__value" :class="{ 'card__value--placeholder': !wireDisplay }">
{{ wireDisplay || '请选择' }}
</text>
<u-icon name="arrow-right" :size="24" color="#bbb" />
</view>
</view>
<!-- 焊条 -->
<view class="card__row" @click="handleShowRodSelect">
<text class="card__label">焊条</text>
<view class="card__value-wrap card__value-wrap--clickable">
<text class="card__value" :class="{ 'card__value--placeholder': !rodDisplay }">
{{ rodDisplay || '请选择' }}
</text>
<u-icon name="arrow-right" :size="24" color="#bbb" />
</view>
</view>
<!-- 备注 -->
<view class="card__row card__row--stack">
<text class="card__label">备注</text>
@@ -185,6 +205,14 @@
<!-- 焊接方法选择弹窗 -->
<nbd-select v-model="showWeldingMethodPicker" :show-search="true" title="选择焊接方法" :list="weldingMethodList"
label-key="BaseInfoCode" value-key="BaseInfoId" @confirm="handleConfirmWeldingMethod" />
<!-- 焊丝选择弹窗 -->
<nbd-select v-model="showWirePicker" :show-search="true" title="选择焊丝" :list="wireList"
label-key="BaseInfoCode" value-key="BaseInfoId" @confirm="handleConfirmWire" />
<!-- 焊条选择弹窗 -->
<nbd-select v-model="showRodPicker" :show-search="true" title="选择焊条" :list="rodList"
label-key="BaseInfoCode" value-key="BaseInfoId" @confirm="handleConfirmRod" />
</view>
</template>
@@ -192,7 +220,7 @@
import { ref, computed } from 'vue'
import { onLoad } from '@dcloudio/uni-app'
import { reqGetWeldJointByWeldJointId, reqSaveWeldingDailyByWeldJointId, reqGetManualPointSave, reqFitupCheckByWeldJointId } from '@/api/hj.js'
import { reqWeldingLocation, reqGetWeldTypeList, reqGetWeldingMethodList } from '@/api/base.js'
import { reqWeldingLocation, reqGetWeldTypeList, reqGetWeldingMethodList, reqGetWeldingConsumables } from '@/api/base.js'
import { useUserStore, useMenuStore } from '@/store'
@@ -211,9 +239,13 @@ const showLocationPicker = ref(false)
const showTypePicker = ref(false)
const showWeldTypePicker = ref(false)
const showWeldingMethodPicker = ref(false)
const showWirePicker = ref(false)
const showRodPicker = ref(false)
const locationList = ref([])
const weldTypeList = ref([])
const weldingMethodList = ref([])
const wireList = ref([])
const rodList = ref([])
const welderTypeList = ref([
{ BaseInfoName: '打底/盖面', BaseInfoCode: 0 },
{ BaseInfoName: '打底', BaseInfoCode: 1 },
@@ -227,16 +259,8 @@ const afterPhotoRef = ref(null)
const weldJointId = ref('')
const fitupList = ref([])
const fitupFields = [
{ label: '坡口类型名称', key: 'GrooveTypeName' },
{ label: '坡口类型编码', key: 'GrooveTypeCode' },
{ label: '坡口加工类型', key: 'GrooveProcessType' },
{ label: '坡口角度', key: 'GrooveAngle' },
{ label: '组对间隙', key: 'FitupGap' },
{ label: '错边量', key: 'Misalignment' },
{ label: '焊缝余高', key: 'WeldReinforcement' },
{ label: '焊缝高度', key: 'WeldHeight' },
{ label: '焊缝宽度', key: 'WeldWidth' },
{ label: '表面缺陷', key: 'SurfaceDefect' },
{ label: '检查人', key: 'CheckPersonName' },
{ label: '检查时间', key: 'CheckTime' },
{ label: '检查结果', key: 'CheckResult', type: 'tag', tagMatch: '合格' },
@@ -294,6 +318,56 @@ const handleConfirmWeldingMethod = (item) => {
showWeldingMethodPicker.value = false
}
const CONSUMABLE_WIRE = 1
const CONSUMABLE_ROD = 2
const pickConsumableId = (item) => item?.BaseInfoId || item?.Id || ''
const pickConsumableCode = (item) => item?.BaseInfoCode || item?.Code || ''
const pickConsumableName = (item) => item?.BaseInfoName || item?.Name || pickConsumableCode(item)
const normalizeConsumables = (list) => (Array.isArray(list) ? list : []).map((item) => ({
...item,
BaseInfoId: pickConsumableId(item),
BaseInfoCode: pickConsumableCode(item),
BaseInfoName: pickConsumableName(item),
}))
const fetchConsumables = async (type) => {
const res = await reqGetWeldingConsumables(type)
return normalizeConsumables(res.data)
}
const handleShowWireSelect = () => {
fetchConsumables(CONSUMABLE_WIRE).then((list) => {
wireList.value = list
showWirePicker.value = true
})
}
const handleConfirmWire = (item) => {
form.value.WeldingWire = item.BaseInfoId
form.value.WeldingWireCode = item.BaseInfoCode
form.value.WeldingWireName = item.BaseInfoName
showWirePicker.value = false
}
const handleShowRodSelect = () => {
fetchConsumables(CONSUMABLE_ROD).then((list) => {
rodList.value = list
showRodPicker.value = true
})
}
const handleConfirmRod = (item) => {
form.value.WeldingRod = item.BaseInfoId
form.value.WeldingRodCode = item.BaseInfoCode
form.value.WeldingRodName = item.BaseInfoName
showRodPicker.value = false
}
const wireDisplay = computed(() => form.value.WeldingWireCode || form.value.WeldingWireName || '')
const rodDisplay = computed(() => form.value.WeldingRodCode || form.value.WeldingRodName || '')
// ===== 操作 =====
const handlePoint = async () => {
await reqGetManualPointSave(form.value.WeldJointId)
@@ -329,7 +403,11 @@ const handleReport = () => {
welderType: form.value.welderType,
// 同步更新焊口焊缝类型 / 焊接方法
WeldTypeId: form.value.WeldTypeId || '',
WeldTypeCode: form.value.WeldTypeCode || '',
WeldingMethodId: form.value.WeldingMethodId || '',
WeldingMethodCode: form.value.WeldingMethodCode || '',
WeldingWire: form.value.WeldingWire || '',
WeldingRod: form.value.WeldingRod || '',
PreWeldAttachUrl: preWeldAttachUrl.value || form.value.PreWeldAttachUrl || '',
PostWeldAttachUrl: postWeldAttachUrl.value || form.value.PostWeldAttachUrl || ''
})
@@ -350,14 +428,16 @@ const handleMutualCheck = () => {
const fillTypeMethodIds = async () => {
const needWeldType = form.value.WeldTypeCode && !form.value.WeldTypeId
const needMethod = form.value.WeldingMethodCode && !form.value.WeldingMethodId
if (!needWeldType && !needMethod) return
const needWire = (form.value.WeldingWireCode && !form.value.WeldingWire) || (form.value.WeldingWire && !form.value.WeldingWireCode)
const needRod = (form.value.WeldingRodCode && !form.value.WeldingRod) || (form.value.WeldingRod && !form.value.WeldingRodCode)
if (!needWeldType && !needMethod && !needWire && !needRod) return
try {
const tasks = []
if (needWeldType) tasks.push(reqGetWeldTypeList())
else tasks.push(Promise.resolve(null))
if (needMethod) tasks.push(reqGetWeldingMethodList())
else tasks.push(Promise.resolve(null))
const [typeRes, methodRes] = await Promise.all(tasks)
const [typeRes, methodRes, wireRes, rodRes] = await Promise.all([
needWeldType ? reqGetWeldTypeList() : Promise.resolve(null),
needMethod ? reqGetWeldingMethodList() : Promise.resolve(null),
needWire ? fetchConsumables(CONSUMABLE_WIRE) : Promise.resolve(null),
needRod ? fetchConsumables(CONSUMABLE_ROD) : Promise.resolve(null),
])
if (typeRes?.data) {
const hit = typeRes.data.find(i => i.BaseInfoCode === form.value.WeldTypeCode)
if (hit) {
@@ -372,8 +452,28 @@ const fillTypeMethodIds = async () => {
form.value.WeldingMethodName = hit.BaseInfoName
}
}
if (wireRes) {
const hit = wireRes.find(i =>
i.BaseInfoId === form.value.WeldingWire || i.BaseInfoCode === form.value.WeldingWireCode
)
if (hit) {
form.value.WeldingWire = hit.BaseInfoId
form.value.WeldingWireCode = hit.BaseInfoCode
form.value.WeldingWireName = hit.BaseInfoName
}
}
if (rodRes) {
const hit = rodRes.find(i =>
i.BaseInfoId === form.value.WeldingRod || i.BaseInfoCode === form.value.WeldingRodCode
)
if (hit) {
form.value.WeldingRod = hit.BaseInfoId
form.value.WeldingRodCode = hit.BaseInfoCode
form.value.WeldingRodName = hit.BaseInfoName
}
}
} catch (e) {
console.error('回填焊缝类型/焊接方法ID失败:', e)
console.error('回填焊缝类型/焊接方法/焊材ID失败:', e)
}
}