Newer
Older
xc-business-system / src / views / equipement / standard / build / components / basic.vue
dutingting on 16 Jan 27 KB 需求开发、bug修复+4
<!-- 建标管理 基本信息 -->
<script name="standardBuildApproveBasic" 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 } from '../build-interface'
import SelectFileTemplateDialog from '../dialog/selectFileTemplateDialog.vue'
import showPhoto from '@/components/showPhoto/index.vue'
import type { dictType } from '@/global'
import useOpenPdfinBrowser from '@/commonMethods/useOpenPdfinBrowser'
import { UploadFile } from '@/api/file'
import type { IAddress } from '@/components/AddressSelect/address-interface'
import { getDictByCode } from '@/api/system/dict'
import { SCHEDULE } from '@/utils/scheduleDict'
import ApprovalDialog from '@/components/Approval/ApprovalDialog.vue'
import selectStandardDialog from '@/views/equipement/standardStateMaintenance/dialog/selectStandardDialog.vue'
import useUserStore from '@/store/modules/user'
import { getGradeForm, getHistoryList } from '@/api/equipment/standard/book'
import { addBuildList, failUpdateBuildList, getInfo, submit, updateBuildList } from '@/api/equipment/standard/build'
const props = defineProps({
  pageType: { // 页面类型 add新建 edit编辑 detail详情
    type: String,
    requre: true,
    default: 'detail',
  },
  id: {
    type: String,
    requre: true,
  },
  approvalStatusName: { // 审批状态名称
    type: String,
    requre: true,
  },
})
const emits = defineEmits(['addSuccess', 'submitSuccess'])
const user = useUserStore() // 用户信息
const form = ref<IForm>({
  buildType: '0', // 标准建立类型
  applyNo: '', // 文件编号
  applyName: '', // 文件名称
  createUserId: '', // 申请人id
  createUserName: '', // 申请人
  createTime: '', // 申请时间
  labCode: '', // 实验室
  labCodeName: '', // 实验室名称
  groupCode: '', // 部门
  groupCodeName: '', // 部门名称
  standardId: '', // 标准装置id
  standardName: '', // 标准装置名称
  majorType: '', //	专业类别
  versionNumber: '', // 版本号
  meterOrganize: '', // 计量机构名称
  buildStandardReportFile: '', // 建标报告word版
  buildStandardReportPdfFile: '', // 建标报告pdf版
  examTableFile: '', // 考核表word版
  examTablePdfFile: '', // 考核表pdf版
  relationFile: '', // 量值溯源与传递等级关系图word版
  relationPdfFile: '', // 量值溯源与传递等级关系图pdf版
  remark: '', // 备注
})
const ruleFormRef = ref() // 表单ref
const ruleFormRefBaseInfo = ref() // 上面基本信息表单
const loading = ref(false) // loading
const infoId = ref('') // id
const formRules = ref<FormRules>({ // 校验规则
  buildType: [{ required: true, message: '标准建立类型不能为空', trigger: ['blur', 'change'] }],
  applyName: [{ required: true, message: '文件名称不能为空', trigger: ['blur', 'change'] }],
  majorType: [{ required: true, message: '专业类别不能为空', trigger: ['blur', 'change'] }],
  standardName: [{ required: true, message: '标准装置名称不能为空', trigger: ['blur', 'change'] }],
  labCode: [{ required: true, message: '实验室不能为空', trigger: ['blur', 'change'] }],
  groupCode: [{ required: true, message: '部门不能为空', trigger: ['blur', 'change'] }],
  versionNumber: [{ required: true, message: '版本号不能为空', trigger: ['blur', 'change'] }],
  meterOrganize: [{ required: true, message: '计量机构名称不能为空', trigger: ['blur', 'change'] }],
  buildStandardReportFile: [{ required: true, message: '建标报告(word版)不能为空', trigger: ['blur', 'change'] }],
  examTableFile: [{ required: true, message: '考核表(word版)不能为空', trigger: ['blur', 'change'] }],
  relationFile: [{ required: true, message: '量值溯源与传递等级关系图(word版)不能为空', trigger: ['blur', 'change'] }],
})
// -----------------------------------------字典--------------------------------------------------------------
const labCodeList = ref<dictType[]>([]) // 实验室
const groupCodeList = ref<dictType[]>([]) // 部门
const buildTypeList = ref<dictType[]>([]) // 标准建立类型
const bizMajorTypeList = ref<dictType[]>([]) // 专业类别
function getDict() {
  // 标准建立类型
  getDictByCode('equipmentBuildType').then((response) => {
    buildTypeList.value = response.data
  })
  // 实验室
  getDictByCode('bizGroupCodeEquipment').then((response) => {
    labCodeList.value = response.data
  })
  // 部门/部门
  getDictByCode('bizGroupCode').then((response) => {
    groupCodeList.value = response.data
  })
  // 专业类别
  getDictByCode('bizMajorType').then((response) => {
    bizMajorTypeList.value = response.data
  })
}
getDict()
// ---------------------------------------选择标准装置-----------------------------------------
const selectStandardDialogRef = ref() // 选择标准装置组件ref

// 点击选择标准装置
const selectStandard = () => {
  selectStandardDialogRef.value.initDialog()
}

// 根据标准装置id获取量值与溯源传递
const getGrade = (standardId: string) => {
  // getGradeForm({ id: standardId }).then((res) => {
  //   if (res.data) {
  //     form.value.relationPdfFile = res.data.quantityWordFile ? res.data.quantityWordFile : form.value.relationPdfFile
  //     form.value.relationFile = res.data.quantityPdfFile ? res.data.quantityPdfFile : form.value.relationFile
  //   }
  // })
  getHistoryList({ id: standardId, limit: 5, offset: 1 }).then((res) => {
    if (res.data && res.data.rows && res.data.rows.length) {
      form.value.relationPdfFile = res.data.rows[0].relationPdfFile
      form.value.relationFile = res.data.rows[0].relationWordFile
    }
  })
}

// 选择好标准装置
const confirmSelectStandard = (val: any) => {
  if (val && val.length) {
    form.value.standardId = val[0].id // 标准装置id
    form.value.standardName = val[0].standardName // 标准装置名称
    form.value.labCode = val[0].labCode // 实验室
    form.value.groupCode = val[0].groupCode // 部门
    form.value.majorType = val[0].majorType //	专业类别
    form.value.buildStandardReportFile = val[0].buildStandardReportFile ? val[0].buildStandardReportFile : form.value.buildStandardReportFile // 建标报告word版
    form.value.buildStandardReportPdfFile = val[0].buildStandardReportPdfFile ? val[0].buildStandardReportPdfFile : form.value.buildStandardReportPdfFile // 建标报告pdf版
    form.value.examTableFile = val[0].examTableFile ? val[0].examTableFile : form.value.examTableFile// 考核表word版
    form.value.examTablePdfFile = val[0].examTablePdfFile ? val[0].examTablePdfFile : form.value.examTablePdfFile// 考核表pdf版
    if (form.value.standardId) {
      getGrade(form.value.standardId) // 获取量值溯源传递文件
    }
  }
}

// -----------------------------------------------保存----------------------------------------------
// 封装验证函数
const validateForm = (formRef: any) => {
  return new Promise((resolve, reject) => {
    formRef.validate((valid: Boolean) => {
      if (valid) {
        resolve(valid)
      }
      else {
        reject(new Error('验证不通过'))
      }
    })
  })
}
/**
 * 点击保存
 * @param formEl 基本信息表单ref
 */
const saveForm = async () => {
  Promise.all([validateForm(ruleFormRef.value), validateForm(ruleFormRefBaseInfo.value)]).then(() => {
    ElMessageBox.confirm(
      '确认保存吗?',
      '提示',
      {
        confirmButtonText: '确认',
        cancelButtonText: '取消',
        type: 'warning',
      },
    ).then(() => {
      const loading = ElLoading.service({
        lock: true,
        text: '加载中...',
        background: 'rgba(255, 255, 255, 0.8)',
      })
      if (props.pageType === 'add') { // 新建
        addBuildList(form.value).then((res) => {
          loading.close()
          form.value.applyNo = res.data.applyNo // 申请单编号
          infoId.value = res.data.id // id
          emits('addSuccess', infoId.value)
          ElMessage.success('新建成功')
        }).catch(() => {
          loading.close()
        })
      }
      else if (props.pageType === 'edit') { // 编辑
        console.log(props.approvalStatusName)
        if (props.approvalStatusName === '草稿箱' || props.approvalStatusName === '全部') {
          updateBuildList(form.value).then((res) => {
            loading.close()
            emits('addSuccess', infoId.value)
            ElMessage.success('已保存')
          }).catch(() => {
            loading.close()
          })
        }
        else { // '未通过' || '已取消'
          failUpdateBuildList(form.value).then((res) => {
            loading.close()
            emits('submitSuccess')
            ElMessage.success('已保存')
          }).catch(() => {
            loading.close()
          })
        }
      }
    })
  })
}
// -------------------------------------------文件上传--------------------------------------
// 文件上传
const fileRefBuildStandardReport = ref() // 建标报告ref-word
const fileRefBuildStandardReportPdfFile = ref() // 建标报告ref-pdf
const fileRefExamTableFile = ref() // 考核表ref
const fileRefExamTablePdfFile = ref() // 标准证书ref
const fileRefQuantityWordFile = ref() // 量值溯源与传递等级关系图(word版)ref
const fileRefQuantityPdfFile = ref() // 量值溯源与传递等级关系图(pdf版)ref

// 建标报告word上传文件,在 Input 值改变时触发
const onBuildStandardReportFileChange = (event: any) => {
  if (event.target.files[0].type !== 'application/msword' && event.target.files[0].type !== 'application/vnd.openxmlformats-officedocument.wordprocessingml.document') {
    ElMessage.warning('请上传doc、docx文件格式')
    return
  }
  UploadFileFn(event, 'buildStandardReportFile', '文件上传成功')
}
// 建标报告pdf上传文件,在 Input 值改变时触发
const onBuildStandardReportPdfFile = (event: any) => {
  if (event.target.files[0].type !== 'application/pdf') {
    ElMessage.warning('请上传pdf格式')
    return
  }
  UploadFileFn(event, 'buildStandardReportPdfFile', '文件上传成功')
}
// 考核表word
const onExamTableFileChange = (event: any) => {
  if (event.target.files[0].type !== 'application/msword' && event.target.files[0].type !== 'application/vnd.openxmlformats-officedocument.wordprocessingml.document') {
    ElMessage.warning('请上传doc、docx文件格式')
    return
  }
  UploadFileFn(event, 'examTableFile', '文件上传成功')
}
// 考核表pdf
const onExamTablePdfFileChange = (event: any) => {
  if (event.target.files[0].type !== 'application/pdf') {
    ElMessage.warning('请上传pdf格式')
    return
  }
  UploadFileFn(event, 'examTablePdfFile', '文件上传成功')
}

// 量值溯源与传递等级关系图(word版)
const onQuantityWordFileChange = (event: any) => {
  if (event.target.files[0].type !== 'application/msword' && event.target.files[0].type !== 'application/vnd.openxmlformats-officedocument.wordprocessingml.document') {
    ElMessage.warning('请上传doc、docx文件格式')
    return
  }
  UploadFileFn(event, 'relationFile', '文件上传成功')
}

// 量值溯源与传递等级关系图(pdf版)
const onQuantityPdfFileChange = (event: any) => {
  if (event.target.files[0].type !== 'application/pdf') {
    ElMessage.warning('请上传pdf格式')
    return
  }
  UploadFileFn(event, 'relationPdfFile', '文件上传成功')
}

// 上传文件操作
function UploadFileFn(event: any, prop: string, message: string) {
  if (event.target.files?.length !== 0) {
    // 创建formdata对象
    const fd = new FormData()
    fd.append('multipartFile', event.target.files[0])
    const loading = ElLoading.service({
      lock: true,
      background: 'rgba(255, 255, 255, 0.8)',
    })
    UploadFile(fd).then((res) => {
      if (res.code === 200) {
        form.value[prop] = res.data[0]
        // 重置当前验证
        ElMessage.success(message)
        loading.close()
      }
      else {
        ElMessage.error(res.message)
        loading.close()
      }
    })
  }
}

const upload = (fileRef: any) => {
  fileRef.click()
}

// ----------------------------------------------提交--------------------------------------------
// 提交
/**
 *
 * @param processId 流程实例id
 * @param id
 */
const submitForm = (processId: string, id: string) => {
  const loading = ElLoading.service({
    lock: true,
    text: '加载中...',
    background: 'rgba(255, 255, 255, 0.6)',
  })
  submit({ id, formId: SCHEDULE.STANDARD_SETUP_APPROVAL, processId }).then((res) => {
    ElMessage.success('已提交')
    emits('submitSuccess')
    loading.close()
  })
}
// -----------------------------------------获取详情------------------------------------------
// 获取详情
const fetchInfo = () => {
  if (!infoId.value) {
    console.log('没有获取到id')
    return false
  }
  loading.value = true
  getInfo({ id: infoId.value }).then((res) => {
    loading.value = false
    form.value = res.data
    form.value.buildType = `${res.data.buildType}` // 标准建立类型
  })
}
// ---------------------------------------------钩子、事件----------------------------------------------
// 标准建立类型
const changeBuildType = (val: any) => {
  if ((form.value.buildType === '1' && val.target._value === '2') || (form.value.buildType === '2' && val.target._value === '1')) {
    form.value.buildType = val.target._value
  }
  else if (form.value.labCode || form.value.groupCode || form.value.standardName || form.value.majorType) {
    ElMessageBox.confirm(
      '切换标准建立类型会清空【实验室、部门、标准装置名称、专业类别】的信息,确认操作吗?',
      '提示',
      {
        confirmButtonText: '确认',
        cancelButtonText: '取消',
        type: 'warning',
      },
    )
      .then(() => {
        form.value.buildType = val.target._value // 切换标准建立类型
        form.value.labCode = '' // 实验室
        form.value.groupCode = '' // 部门
        form.value.standardId = '' // 标准装置id
        form.value.standardName = '' // 标准装置名称
        form.value.majorType = '' //	专业类别
        form.value.standardId = '' // 标准装置id
      // form.value.applyName = '' // 文件名称
      // form.value.versionNumber = '' // 版本号
      // form.value.meterOrganize = '中国西昌卫星发射中心' // 计量机构名称
      // form.value.buildStandardReportFile = '' // 建标报告word版
      // form.value.buildStandardReportPdfFile = '' // 建标报告pdf版
      // form.value.examTableFile = '' // 考核表word版
      // form.value.examTablePdfFile = '' // 考核表pdf版
      // form.value.relationFile = '' // 量值溯源与传递等级关系图word版
      // form.value.relationPdfFile = '' // 量值溯源与传递等级关系图pdf版
      // form.value.remark = '' // 备注
      })
  }
  else {
    form.value.buildType = val.target._value
  }
}

// 选择实验室变化事件
const changeSelectLab = (val: string) => {
  const index = labCodeList.value.findIndex(item => item.value === val)
  if (index !== -1) {
    form.value.labCodeName = labCodeList.value[index].name
  }
}

// 选择部门变化事件
const changeSelectGroup = (val: string) => {
  const index = groupCodeList.value.findIndex(item => item.value === val)
  if (index !== -1) {
    form.value.groupCodeName = groupCodeList.value[index].name
  }
}

const clickPrintFile = (printFileName: string) => {
  console.log('------')

  useOpenPdfinBrowser(printFileName)
}

watch(() => props.id, (newValue) => {
  infoId.value = newValue!
  if (infoId.value) {
    fetchInfo() // 获取详情信息
  }
}, { immediate: true })

onMounted(async () => {
  form.value.createUserId = user.id// 申请人id
  form.value.createUserName = user.name // 申请人名字
  form.value.createTime = dayjs().format('YYYY-MM-DD HH-mm:ss')// 申请时间
  if (props.pageType !== 'add') {
    fetchInfo() // 获取详情信息
  }
  else { // 新建
    form.value.labCode = user.bizLabCode // 实验室
    form.value.groupCode = user.groupNo // 部门代码
    form.value.meterOrganize = '中国西昌卫星发射中心'
  }
})

defineExpose({ saveForm, submitForm, fetchInfo, form })
</script>

<template>
  <detail-block v-loading="loading" title="" class="equipment-build">
    <el-form
      ref="ruleFormRefBaseInfo"
      :model="form"
      :label-width="120"
      label-position="right"
      :rules="formRules"
    >
      <el-row :gutter="24">
        <el-col :span="24">
          <el-form-item label="标准建立类型" prop="buildType">
            <el-radio-group :model-value="form.buildType" :disabled="props.pageType === 'detail'" @input="changeBuildType">
              <el-radio v-for="item in buildTypeList" :key="item.value" :label="item.value">
                {{ item.name }}
              </el-radio>
            </el-radio-group>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="24">
        <el-col :span="6">
          <el-form-item label="文件编号:" prop="applyNo">
            <el-input v-model="form.applyNo" disabled placeholder="系统自动生成" />
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="文件名称:" prop="applyName">
            <el-input
              v-model="form.applyName"
              :placeholder="pageType === 'detail' ? '' : '请输入文件名称'"
              :disabled="pageType === 'detail'"
            />
          </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="" class="equipment-build">
    <el-form
      ref="ruleFormRef"
      :model="form"
      :label-width="120"
      label-position="right"
      :rules="formRules"
    >
      <el-row v-if="form.buildType !== '0'" :gutter="24">
        <el-col :span="6">
          <el-form-item label="标准装置名称:" prop="standardName">
            <el-input
              v-model="form.standardName"
              :placeholder="pageType === 'detail' ? '' : '请选择标准装置名称'"
              :class="{ 'detail-input': pageType === 'detail' }"
              disabled
            >
              <template v-if="pageType !== 'detail'" #append>
                <el-button size="small" @click="selectStandard">
                  选择
                </el-button>
              </template>
            </el-input>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="24">
        <el-col :span="6">
          <el-form-item label="实验室" prop="labCode">
            <el-select v-model="form.labCode" :placeholder="pageType === 'detail' ? ' ' : '请选择实验室'" :disabled="pageType === 'detail' || form.buildType !== '0'" class="full-width-input" @click="changeSelectLab">
              <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" @click="changeSelectGroup">
            <el-select v-model="form.groupCode" :placeholder="pageType === 'detail' ? ' ' : '请选择部门'" :disabled="pageType === 'detail' || form.buildType !== '0'" 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="标准装置名称:" prop="standardName">
            <el-input
              v-model="form.standardName"
              :placeholder="pageType === 'detail' ? '' : '请输入标准装置名称'"
              :class="{ 'detail-input': pageType === 'detail' }"
              :disabled="pageType === 'detail' || form.buildType !== '0'"
            />
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="专业类别" prop="majorType">
            <el-select v-model="form.majorType" :placeholder="pageType === 'detail' ? ' ' : '请选择部门'" :disabled="pageType === 'detail' || form.buildType !== '0'" class="full-width-input">
              <el-option v-for="item in bizMajorTypeList" :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="versionNumber">
            <el-input
              v-model="form.versionNumber"
              :placeholder="pageType === 'detail' ? '' : '请输入版本号'"
              :disabled="pageType === 'detail'"
            />
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="计量机构名称" prop="meterOrganize">
            <el-input
              v-model="form.meterOrganize"
              :placeholder="pageType === 'detail' ? '' : '请输入计量机构名称'"
              :class="{ 'detail-input': pageType === 'detail' }"
              :disabled="pageType === 'detail'"
            />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="24" class="marg">
        <el-col :span="12">
          <el-form-item label="建标报告(word版):" label-width="300px" prop="buildStandardReportFile">
            <show-photo v-if="form.buildStandardReportFile" :minio-file-name="form.buildStandardReportFile" />
            <span v-else-if="pageType === 'detail'">无</span>
            <input v-show="pageType === ''" ref="fileRefBuildStandardReport" type="file" @change="onBuildStandardReportFileChange">
            <el-button v-if="pageType !== 'detail'" id="file" type="primary" :disabled="pageType === 'detail'" :style="{ 'margin-left': form.buildStandardReportFile === '' ? '0px' : '20px' }" @click="upload(fileRefBuildStandardReport)">
              {{ form.buildStandardReportFile === '' ? '上传' : '更换附件' }}
            </el-button>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="建标报告(pdf版):" prop="buildStandardReportPdfFile" label-width="300px">
            <show-photo v-if="form.buildStandardReportPdfFile && pageType !== 'detail'" :minio-file-name="form.buildStandardReportPdfFile" />
            <!-- <span v-else-if="pageType === 'detail'">无</span> -->
            <span v-else-if="pageType === 'detail'" class="link" @click="clickPrintFile(form.buildStandardReportPdfFile)">{{ form.buildStandardReportPdfFile }}</span>
            <input v-show="pageType === ''" ref="fileRefBuildStandardReportPdfFile" type="file" @change="onBuildStandardReportPdfFile">
            <el-button v-if="pageType !== 'detail'" id="file" type="primary" :disabled="pageType === 'detail'" :style="{ 'margin-left': form.buildStandardReportPdfFile === '' ? '0px' : '20px' }" @click="upload(fileRefBuildStandardReportPdfFile)">
              {{ form.buildStandardReportPdfFile === '' ? '上传' : '更换附件' }}
            </el-button>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="24" class="marg">
        <el-col :span="12">
          <el-form-item label="考核表(word版):" label-width="300px" prop="examTableFile">
            <show-photo v-if="form.examTableFile" :minio-file-name="form.examTableFile" />
            <span v-else-if="pageType === 'detail'">无</span>
            <input v-show="pageType === ''" ref="fileRefExamTableFile" type="file" @change="onExamTableFileChange">
            <el-button v-if="pageType !== 'detail'" id="file" type="primary" :disabled="pageType === 'detail'" :style="{ 'margin-left': form.examTableFile === '' ? '0px' : '20px' }" @click="upload(fileRefExamTableFile)">
              {{ form.examTableFile === '' ? '上传' : '更换附件' }}
            </el-button>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="考核表(pdf版):" prop="examTablePdfFile" label-width="300px">
            <show-photo v-if="form.examTablePdfFile && pageType !== 'detail'" :minio-file-name="form.examTablePdfFile" />
            <!-- <span v-else-if="pageType === 'detail'">无</span> -->
            <span v-else-if="pageType === 'detail'" class="link" @click="clickPrintFile(form.examTablePdfFile)">{{ form.examTablePdfFile }}</span>
            <input v-show="pageType === ''" ref="fileRefExamTablePdfFile" type="file" @change="onExamTablePdfFileChange">
            <el-button v-if="pageType !== 'detail'" id="file" type="primary" :disabled="pageType === 'detail'" :style="{ 'margin-left': form.examTablePdfFile === '' ? '0px' : '20px' }" @click="upload(fileRefExamTablePdfFile)">
              {{ form.examTablePdfFile === '' ? '上传' : '更换附件' }}
            </el-button>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="24" class="marg">
        <el-col :span="12">
          <el-form-item label="量值溯源与传递等级关系图(word版):" label-width="300px" prop="relationFile">
            <show-photo v-if="form.relationFile" :minio-file-name="form.relationFile" />
            <span v-else-if="pageType === 'detail'">无</span>
            <input v-show="pageType === ''" ref="fileRefQuantityWordFile" type="file" @change="onQuantityWordFileChange">
            <el-button v-if="pageType !== 'detail'" id="file" type="primary" :disabled="pageType === 'detail'" :style="{ 'margin-left': form.relationFile === '' ? '0px' : '20px' }" @click="upload(fileRefQuantityWordFile)">
              {{ form.relationFile === '' ? '上传' : '更换附件' }}
            </el-button>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="量值溯源与传递等级关系图(pdf版):" prop="relationPdfFile" label-width="300px">
            <show-photo v-if="form.relationPdfFile && pageType !== 'detail'" :minio-file-name="form.relationPdfFile" />
            <!-- <span v-else-if="pageType === 'detail'">无</span> -->
            <span v-else-if="pageType === 'detail'" class="link" @click="clickPrintFile(form.relationPdfFile)">{{ form.relationPdfFile }}</span>
            <input v-show="pageType === ''" ref="fileRefQuantityPdfFile" type="file" @change="onQuantityPdfFileChange">
            <el-button v-if="pageType !== 'detail'" id="file" type="primary" :disabled="pageType === 'detail'" :style="{ 'margin-left': form.relationPdfFile === '' ? '0px' : '20px' }" @click="upload(fileRefQuantityPdfFile)">
              {{ form.relationPdfFile === '' ? '上传' : '更换附件' }}
            </el-button>
          </el-form-item>
        </el-col>
      </el-row>

      <el-row :gutter="24">
        <el-col :span="12">
          <el-form-item label="备注:" prop="remark">
            <el-input
              v-model="form.remark"
              autosize
              type="textarea"
              :placeholder="pageType === 'detail' ? '' : '请输入备注'"
              :disabled="pageType === 'detail'"
            />
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
  </detail-block>
  <!-- 选择标准代码 -->
  <select-standard-dialog ref="selectStandardDialogRef" :is-select-dept-id="false" @confirm="confirmSelectStandard" />
</template>

<style lang="scss">
.equipment-build {
  .el-radio__label {
    display: block !important;
  }
}
</style>

<style lang="scss" scoped>
.equipment-build {
  .link {
    color: #3d7eff;
    text-decoration: underline;
    cursor: pointer;
    margin-right: 8px;
  }
}
</style>