✨ feat(defect): 支持缺陷记录弹窗的编辑和详情模式
parent
4e964e2eea
commit
342b5d08c0
|
|
@ -3,7 +3,7 @@
|
||||||
<Dialog title="缺陷记录" v-model="dialogVisible" width="900px">
|
<Dialog title="缺陷记录" v-model="dialogVisible" width="900px">
|
||||||
<div class="overflow-hidden">
|
<div class="overflow-hidden">
|
||||||
<!-- 新增按钮 -->
|
<!-- 新增按钮 -->
|
||||||
<el-row class="mb-10px">
|
<el-row v-if="!isDetail" class="mb-10px">
|
||||||
<el-button type="primary" plain @click="handleAdd" v-hasPermi="['mes:qc-defect:create']">
|
<el-button type="primary" plain @click="handleAdd" v-hasPermi="['mes:qc-defect:create']">
|
||||||
<Icon icon="ep:plus" class="mr-5px" /> 新增缺陷
|
<Icon icon="ep:plus" class="mr-5px" /> 新增缺陷
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -16,6 +16,8 @@
|
||||||
<el-input
|
<el-input
|
||||||
v-if="scope.row.editing"
|
v-if="scope.row.editing"
|
||||||
v-model="scope.row.name"
|
v-model="scope.row.name"
|
||||||
|
type="textarea"
|
||||||
|
:autosize="{ minRows: 1, maxRows: 4 }"
|
||||||
placeholder="请输入缺陷描述"
|
placeholder="请输入缺陷描述"
|
||||||
/>
|
/>
|
||||||
<span v-else>{{ scope.row.name }}</span>
|
<span v-else>{{ scope.row.name }}</span>
|
||||||
|
|
@ -56,7 +58,7 @@
|
||||||
<span v-else>{{ scope.row.remark || '-' }}</span>
|
<span v-else>{{ scope.row.remark || '-' }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" width="130" fixed="right">
|
<el-table-column v-if="!isDetail" label="操作" align="center" width="130" fixed="right">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="scope.row.editing">
|
<template v-if="scope.row.editing">
|
||||||
<el-button link type="success" @click="handleSave(scope.row)">保存</el-button>
|
<el-button link type="success" @click="handleSave(scope.row)">保存</el-button>
|
||||||
|
|
@ -103,11 +105,16 @@ import { QcDefectRecordApi, QcDefectRecordVO } from '@/api/mes/qc/defectrecord'
|
||||||
/** 缺陷记录内联编辑弹窗(通用组件,供 IQC/IPQC/OQC/RQC 各模块复用) */
|
/** 缺陷记录内联编辑弹窗(通用组件,供 IQC/IPQC/OQC/RQC 各模块复用) */
|
||||||
defineOptions({ name: 'DefectRecordInlineList' })
|
defineOptions({ name: 'DefectRecordInlineList' })
|
||||||
|
|
||||||
|
const props = defineProps<{
|
||||||
|
formType?: string // 表单类型:update - 编辑;detail - 详情(只读)
|
||||||
|
}>()
|
||||||
|
|
||||||
const emit = defineEmits(['refresh']) // 通知父组件刷新行统计
|
const emit = defineEmits(['refresh']) // 通知父组件刷新行统计
|
||||||
|
|
||||||
const message = useMessage()
|
const message = useMessage()
|
||||||
const { t } = useI18n()
|
const { t } = useI18n()
|
||||||
|
|
||||||
|
const isDetail = computed(() => props.formType === 'detail') // 是否为详情模式(只读)
|
||||||
const dialogVisible = ref(false)
|
const dialogVisible = ref(false)
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
const list = ref<any[]>([])
|
const list = ref<any[]>([])
|
||||||
|
|
|
||||||
|
|
@ -257,11 +257,11 @@
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<!-- 子表标签页(编辑/详情模式下显示) -->
|
<!-- 子表标签页(编辑/详情模式下显示) -->
|
||||||
<template v-if="formType === 'update' && formData.id">
|
<template v-if="formData.id">
|
||||||
<el-divider />
|
<el-divider />
|
||||||
<el-tabs v-model="activeTab">
|
<el-tabs v-model="activeTab">
|
||||||
<el-tab-pane label="检验项" name="line">
|
<el-tab-pane label="检验项" name="line">
|
||||||
<IpqcLineList :ipqc-id="formData.id" />
|
<IpqcLineList :ipqc-id="formData.id" :form-type="formType" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="检测结果" name="result">
|
<el-tab-pane label="检测结果" name="result">
|
||||||
<QcIndicatorResultList :qc-id="formData.id!" :qc-type="MesQcTypeEnum.IPQC" />
|
<QcIndicatorResultList :qc-id="formData.id!" :qc-type="MesQcTypeEnum.IPQC" />
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 缺陷记录弹窗(内联编辑) -->
|
<!-- 缺陷记录弹窗(内联编辑) -->
|
||||||
<DefectRecordInlineList ref="defectListRef" @refresh="getList" />
|
<DefectRecordInlineList ref="defectListRef" :form-type="formType" @refresh="getList" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -45,7 +45,10 @@ import { MesQcTypeEnum } from '@/views/mes/utils/constants'
|
||||||
|
|
||||||
defineOptions({ name: 'IpqcLineList' })
|
defineOptions({ name: 'IpqcLineList' })
|
||||||
|
|
||||||
const props = defineProps<{ ipqcId: number }>()
|
const props = defineProps<{
|
||||||
|
ipqcId: number
|
||||||
|
formType?: string // 表单类型:传递给缺陷记录弹窗
|
||||||
|
}>()
|
||||||
|
|
||||||
const loading = ref(false) // 列表的加载中
|
const loading = ref(false) // 列表的加载中
|
||||||
const list = ref<QcIpqcLineVO[]>([]) // 列表的数据
|
const list = ref<QcIpqcLineVO[]>([]) // 列表的数据
|
||||||
|
|
|
||||||
|
|
@ -207,12 +207,12 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<!-- 子表标签页(编辑模式下显示) -->
|
<!-- 子表标签页(编辑/详情模式下显示) -->
|
||||||
<template v-if="formType === 'update' && formData.id">
|
<template v-if="formData.id">
|
||||||
<el-divider />
|
<el-divider />
|
||||||
<el-tabs v-model="activeTab">
|
<el-tabs v-model="activeTab">
|
||||||
<el-tab-pane label="检验项" name="line">
|
<el-tab-pane label="检验项" name="line">
|
||||||
<IqcLineList :iqc-id="formData.id" />
|
<IqcLineList :iqc-id="formData.id" :form-type="formType" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="检测结果" name="result">
|
<el-tab-pane label="检测结果" name="result">
|
||||||
<QcIndicatorResultList :qc-id="formData.id!" :qc-type="MesQcTypeEnum.IQC" />
|
<QcIndicatorResultList :qc-id="formData.id!" :qc-type="MesQcTypeEnum.IQC" />
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 缺陷记录弹窗(内联编辑) -->
|
<!-- 缺陷记录弹窗(内联编辑) -->
|
||||||
<DefectRecordInlineList ref="defectListRef" @refresh="getList" />
|
<DefectRecordInlineList ref="defectListRef" :form-type="formType" @refresh="getList" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -46,7 +46,10 @@ import { MesQcTypeEnum } from '@/views/mes/utils/constants'
|
||||||
|
|
||||||
defineOptions({ name: 'IqcLineList' })
|
defineOptions({ name: 'IqcLineList' })
|
||||||
|
|
||||||
const props = defineProps<{ iqcId: number }>()
|
const props = defineProps<{
|
||||||
|
iqcId: number
|
||||||
|
formType?: string // 表单类型:传递给缺陷记录弹窗
|
||||||
|
}>()
|
||||||
|
|
||||||
const loading = ref(false) // 列表的加载中
|
const loading = ref(false) // 列表的加载中
|
||||||
const list = ref<QcIqcLineVO[]>([]) // 列表的数据
|
const list = ref<QcIqcLineVO[]>([]) // 列表的数据
|
||||||
|
|
|
||||||
|
|
@ -218,11 +218,11 @@
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<!-- 子表标签页(编辑模式下显示) -->
|
<!-- 子表标签页(编辑模式下显示) -->
|
||||||
<template v-if="(formType === 'update' || isDetail) && formData.id">
|
<template v-if="formData.id">
|
||||||
<el-divider />
|
<el-divider />
|
||||||
<el-tabs v-model="activeTab">
|
<el-tabs v-model="activeTab">
|
||||||
<el-tab-pane label="检验项" name="line">
|
<el-tab-pane label="检验项" name="line">
|
||||||
<OqcLineList :oqc-id="formData.id" />
|
<OqcLineList :oqc-id="formData.id" :form-type="formType" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="检测结果" name="result">
|
<el-tab-pane label="检测结果" name="result">
|
||||||
<QcIndicatorResultList :qc-id="formData.id!" :qc-type="MesQcTypeEnum.OQC" />
|
<QcIndicatorResultList :qc-id="formData.id!" :qc-type="MesQcTypeEnum.OQC" />
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 缺陷记录弹窗(内联编辑) -->
|
<!-- 缺陷记录弹窗(内联编辑) -->
|
||||||
<DefectRecordInlineList ref="defectListRef" @refresh="getList" />
|
<DefectRecordInlineList ref="defectListRef" :form-type="formType" @refresh="getList" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -45,7 +45,10 @@ import { MesQcTypeEnum } from '@/views/mes/utils/constants'
|
||||||
|
|
||||||
defineOptions({ name: 'OqcLineList' })
|
defineOptions({ name: 'OqcLineList' })
|
||||||
|
|
||||||
const props = defineProps<{ oqcId: number }>()
|
const props = defineProps<{
|
||||||
|
oqcId: number
|
||||||
|
formType?: string // 表单类型:传递给缺陷记录弹窗
|
||||||
|
}>()
|
||||||
|
|
||||||
const loading = ref(false) // 列表的加载中
|
const loading = ref(false) // 列表的加载中
|
||||||
const list = ref<QcOqcLineVO[]>([]) // 列表的数据
|
const list = ref<QcOqcLineVO[]>([]) // 列表的数据
|
||||||
|
|
|
||||||
|
|
@ -205,11 +205,11 @@
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<!-- 子表标签页(编辑/详情模式下显示) -->
|
<!-- 子表标签页(编辑/详情模式下显示) -->
|
||||||
<template v-if="(formType === 'update' || formType === 'detail') && formData.id">
|
<template v-if="formData.id">
|
||||||
<el-divider />
|
<el-divider />
|
||||||
<el-tabs v-model="activeTab">
|
<el-tabs v-model="activeTab">
|
||||||
<el-tab-pane label="检验项" name="line">
|
<el-tab-pane label="检验项" name="line">
|
||||||
<RqcLineList :rqc-id="formData.id" />
|
<RqcLineList :rqc-id="formData.id" :form-type="formType" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="检测结果" name="result">
|
<el-tab-pane label="检测结果" name="result">
|
||||||
<QcIndicatorResultList :qc-id="formData.id!" :qc-type="MesQcTypeEnum.RQC" />
|
<QcIndicatorResultList :qc-id="formData.id!" :qc-type="MesQcTypeEnum.RQC" />
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 缺陷记录弹窗(内联编辑) -->
|
<!-- 缺陷记录弹窗(内联编辑) -->
|
||||||
<DefectRecordInlineList ref="defectListRef" @refresh="getList" />
|
<DefectRecordInlineList ref="defectListRef" :form-type="formType" @refresh="getList" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -45,7 +45,10 @@ import { MesQcTypeEnum } from '@/views/mes/utils/constants'
|
||||||
|
|
||||||
defineOptions({ name: 'RqcLineList' })
|
defineOptions({ name: 'RqcLineList' })
|
||||||
|
|
||||||
const props = defineProps<{ rqcId: number }>()
|
const props = defineProps<{
|
||||||
|
rqcId: number
|
||||||
|
formType?: string // 表单类型:传递给缺陷记录弹窗
|
||||||
|
}>()
|
||||||
|
|
||||||
const loading = ref(false) // 列表的加载中
|
const loading = ref(false) // 列表的加载中
|
||||||
const list = ref<QcRqcLineVO[]>([]) // 列表的数据
|
const list = ref<QcRqcLineVO[]>([]) // 列表的数据
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue