<!-- 溯源计划管理 基本信息 -->
<script name="ResultCompleteApproveBasic" lang="ts" setup>
import type { Ref } from 'vue'
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
import type { FormInstance, FormRules } from 'element-plus'
import dayjs from 'dayjs'
import type { IForm, IResultConfirmList } from '../resultComplete-interface'
import selectResultConfirmDialog from '../dialog/selectResultConfirmDialog.vue'
import type { dictType } from '@/global'
import { getDictByCode } from '@/api/system/dict'
import { SCHEDULE } from '@/utils/scheduleDict'
import ApprovalDialog from '@/components/Approval/ApprovalDialog.vue'
import useUserStore from '@/store/modules/user'
import { useCheckList } from '@/commonMethods/useCheckList'
import { getInfo as getResultConfirmDetail } from '@/api/equipment/source/resultConfirm'
import { useDoubleClickTableRow, useSetAllRowReadable } from '@/commonMethods/useSetAllRowReadable'
import { addResultCompleteList, failUpdateResultCompleteList, getInfo, submit, updateResultCompleteList } from '@/api/equipment/source/resultComplete'
const props = defineProps({
pageType: { // 页面类型 add新建 edit编辑 detail详情
type: String,
requre: true,
default: 'detail',
},
id: {
type: String,
requre: true,
},
approvalStatusName: { // 审批状态名称
type: String,
requre: true,
},
processId: {
type: String,
},
})
const emits = defineEmits(['addSuccess', 'submitSuccess'])
const user = useUserStore() // 用户信息
const form = ref<IForm>({
id: '', // 列表id
labCode: '', // 实验室
groupCode: '', // 部门
formNo: '', // 情况表编号
formName: '', // 情况表名称
createUserId: '', // 创建人id
createUserName: '', // 创建人
createTime: '', // 创建时间
formGroup: '', // 计划表组别
formYear: '', // 计划表年份
})
const ruleFormRef = ref() // 表单ref
const loading = ref(false) // loading
const infoId = ref('') // id
// ------------------------------------------溯源结果确认情况------------------------------------------------
const resultConfirmColumns = ref([ // 表头
{ text: '智能模型名称', value: 'equipmentName', align: 'center', required: false },
{ text: '规格型号', value: 'model', align: 'center', required: false },
{ text: '出厂编号', value: 'manufactureNo', align: 'center', required: false },
{ text: '厂商', value: 'manufacturer', align: 'center', required: false },
{ text: '溯源机构', value: 'traceCompany', align: 'center', required: false },
{ text: '测试、校准/检定时间', value: 'traceDate', align: 'center', required: false },
{ text: '检定有效期', value: 'validDate', align: 'center', required: false, width: '120' },
{ text: '检定结果', value: 'conclusion', align: 'center', required: false },
{ text: '限用范围', value: 'limitScope', align: 'center', required: false },
{ text: '备注', value: 'remark', align: 'center', required: false },
])
const resultConfirmList = ref([])
// ----------------------------------------------提交--------------------------------------------
// 提交
/**
*
* @param processId 流程实例id
* @param id
*/
const submitForm = (processId: string, id: string) => {
ruleFormRef.value.validate((valid: boolean) => {
if (valid) {
const loading = ElLoading.service({
lock: true,
text: '加载中...',
background: 'rgba(255, 255, 255, 0.6)',
})
submit({ id, formId: SCHEDULE.TRACE_RESULT_PERFORMANCE_APPROVAL }).then((res) => {
ElMessage.success('已提交')
emits('submitSuccess')
loading.close()
})
}
else {
ElMessage.warning('请把数据填写完成')
}
})
}
// -----------------------------------------获取详情------------------------------------------
// 获取详情
function fetchInfo() {
loading.value = true
getInfo({ id: infoId.value }).then((res) => {
loading.value = false
form.value = res.data
form.value.formYear = `${res.data.formYear}`
resultConfirmList.value = res.data.confirmEquipmentList.map((item: any) => {
return {
...item,
traceDate: dayjs(item.traceDate).format('YYYY-MM-DD'), // 测试、校准或检定日期
validDate: dayjs(item.validDate).format('YYYY-MM-DD'), // 有效期
}
})
})
}
// ---------------------------------------------钩子----------------------------------------------
watch(() => props.id, (newValue) => {
infoId.value = newValue!
if (infoId.value) {
fetchInfo() // 获取详情信息
}
}, { immediate: true })
onMounted(() => {
fetchInfo() // 获取详情信息
})
defineExpose({ submitForm, fetchInfo })
</script>
<template>
<detail-block v-loading="loading" title="">
<el-form
ref="ruleFormRef"
:model="form"
:label-width="120"
label-position="right"
:rules="rules"
>
<el-row :gutter="24">
<el-col :span="6">
<el-form-item label="文件编号:" prop="formNo">
<el-input v-model="form.formNo" disabled placeholder="系统自动生成" />
</el-form-item>
</el-col>
<el-col :span="12" style="display: flex;line-height: 32px;">
<el-form-item label="文件名称:" />
<el-form-item label-width="0" prop="formYear" style="width: 90px;">
<el-date-picker
v-model="form.formYear"
type="year"
placeholder="选择年"
format="YYYY"
value-format="YYYY"
disabled
/>
</el-form-item>
<span style="margin: 0 8px;font-size: 14px;color: #606266;">年</span>
<el-form-item label-width="0" prop="formGroup" style="width: 90px;">
<!-- <el-select v-model="form.formGroup" placeholder="选择组">
<el-option
v-for="item in formGroupList"
:key="item.value"
:value="item.value"
:label="item.name"
/>
</el-select> -->
<el-input v-model="form.formGroup" disabled placeholder="输入组" />
</el-form-item>
<span style="margin: 0 8px;font-size: 14px;color: #606266;">组测量智能模型溯源完成情况表</span>
</el-col>
<!-- <el-col :span="6">
<el-form-item label="实验室" prop="labCode">
<el-select
v-model="form.labCode"
:placeholder="pageType === 'detail' ? ' ' : '请选择实验室'"
:disabled="pageType === 'detail'"
class="full-width-input"
>
<el-option
v-for="item in labCodeList"
:key="item.id"
:label="item.name"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col> -->
<!-- <el-col :span="6">
<el-form-item label="部门" prop="groupCode">
<el-select
v-model="form.groupCode"
:placeholder="pageType === 'detail' ? ' ' : '请选择部门'"
:disabled="pageType === 'detail'"
class="full-width-input"
>
<el-option
v-for="item in groupCodeList"
:key="item.id"
:label="item.name"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="6">
<el-form-item label="创建人:">
<el-input
v-model="form.createUserName" disabled
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="创建时间:" prop="createTime">
<el-date-picker
v-model="form.createTime"
type="datetime"
format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
disabled
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</detail-block>
<detail-block v-loading="loading" title="溯源计划">
<el-table
ref="table"
:data="resultConfirmList"
border
style="width: 100%;"
@selection-change="handleSelectionChange"
>
<el-table-column v-if="pageType !== 'detail'" type="selection" width="38" />
<el-table-column align="center" label="序号" width="80" type="index" />
<el-table-column
v-for="item in resultConfirmColumns"
:key="item.value"
:prop="item.value"
:label="item.text"
:width="item.width"
align="center"
>
<template #header>
<span v-show="item.required" style="color: red;">*</span><span>{{ item.text }}</span>
</template>
</el-table-column>
</el-table>
</detail-block>
</template>
<style lang="scss" scoped>
.tech-file {
display: flex;
align-items: center;
margin-left: 20px;
margin-bottom: 10px;
.file-text {
white-space: nowrap;
margin-right: 10px;
font-size: 14px;
color: #60627f;
}
}
</style>