Newer
Older
xc-business-system / src / views / business / manager / sendReceive / components / subpackageInfo.vue
dutingting on 11 Nov 6 KB 需求开发,bug修复
<!-- 设备收发管理详情 -- 分包信息 -->
<script lang="ts" setup name="SendReceiveDetailSubpackageInfo">
import { getInfo } from '@/api/business/subpackage/directories'
const props = defineProps({
  subpackageInfo: Object,
})

// 表单
const form = ref({
  outsourcerId: '', // 分包方id
  outsourcerNo: '', // 分包方编号
  outsourcerName: '', // 分包方名称
  director: '', // 机构负责人
  fullAddress: '', // 地址
  postalCode: '', // 邮政编码
  contacts: '', // 联系人
  mobile: '', // 电话
  protocolId: '', //	协议书id
  protocolNo: '', //	协议书编号
  noticeId: '', //	通知书id
  noticeNo: '', //	通知书编号
  accessNo: '', //	评审表编号
  accessId: '', //	评审表id
})
const $router = useRouter()
const clickPrintFile = (type: string) => {
  switch (type) {
    case 'access': // 评审表
      $router.push({
        path: `/reviewDoc/detail/${form.value.accessId}`,
        query: {
          approvalStatusName: '全部', // 审批状态名称
        },
      })
      break
    case 'protocol': // 协议书

      $router.push({
        path: `/agreementDoc/detail/${form.value.protocolId}`,
        query: {
          approvalStatusName: '全部', // 审批状态名称
        },
      })
      break
    case 'notice': // 通知书
      $router.push({
        path: `/informDoc/detail/${form.value.noticeId}`,
        query: {
          approvalStatusName: '全部', // 审批状态名称
        },
      })
      break
  }
}

watch(() => props.subpackageInfo, (newValue) => {
  if (newValue) {
    form.value = {
      outsourcerId: newValue!.outsourcerId, // 分包方id
      outsourcerNo: newValue!.outsourcerNo, // 分包方编号
      outsourcerName: newValue!.outsourcerName, // 分包方名称
      director: newValue!.director, // 机构负责人
      fullAddress: newValue!.fullAddress, // 地址
      postalCode: newValue!.postalCode, // 邮政编码
      contacts: newValue!.contacts, // 联系人
      mobile: newValue!.mobile, // 电话
      protocolId: newValue!.protocolId, //	协议书id
      protocolNo: newValue!.protocolNo, //	协议书编号
      noticeId: newValue!.noticeId, //	通知书id
      noticeNo: newValue!.noticeNo, //	通知书编号
      accessNo: newValue!.accessNo, //	评审表编号
      accessId: newValue!.accessId, //	评审表id
    }
    if (!newValue!.outsourcerNo) { // 没有分包设备编号的话去用分包方id去查
      getInfo({ id: form.value.outsourcerId }).then((res) => {
        form.value.outsourcerNo = res.data.outsourcerNo
      })
    }
  }
}, { deep: true, immediate: true })
</script>

<template>
  <detail-block title="">
    <el-form
      ref="ruleFormRef"
      :model="form"
      :label-width="130"
      label-position="right"
    >
      <el-row :gutter="24">
        <el-col :span="6">
          <el-form-item label="分包方编号:" prop="outsourcerNo">
            <el-input
              v-model="form.outsourcerNo"
              placeholder="分包方编号"
              class="detail-input"
              disabled
            />
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="分包方名称:" prop="outsourcerName">
            <el-input
              v-model="form.outsourcerName"
              placeholder="分包方名称"
              class="detail-input"
              disabled
            />
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="机构负责人:" prop="director">
            <el-input
              v-model="form.director"
              placeholder="机构负责人"
              class="detail-input"
              disabled
            />
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="邮政编码:" prop="postalCode">
            <el-input
              v-model="form.postalCode"
              placeholder="邮政编码"
              class="detail-input"
              disabled
            />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="地址:" prop="fullAddress">
            <el-input
              v-model="form.fullAddress"
              placeholder="地址"
              class="detail-input"
              type="textarea"
              autosize
              disabled
            />
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="联系人:" prop="contacts">
            <el-input
              v-model="form.contacts"
              placeholder="联系人"
              class="detail-input"
              disabled
            />
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="联系电话:" prop="mobile">
            <el-input
              v-model="form.mobile"
              placeholder="电话"
              class="detail-input"
              disabled
            />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="24" class="marg">
        <el-col :span="24">
          <el-form-item label="测试、校准或检定工作分包评审表:" label-width="240" prop="minioFileName">
            <span v-if="form.accessNo" class="link" @click="clickPrintFile('access')">{{ form.accessNo }}</span>
            <span v-if="!form.accessNo">/</span>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="24" class="marg">
        <el-col :span="24">
          <el-form-item label="测试、校准或检定工作分包通知书:" label-width="240" prop="minioFileName">
            <span v-if="form.noticeNo" class="link" @click="clickPrintFile('notice')">{{ form.noticeNo }}</span>
            <span v-if="!form.noticeNo">/</span>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="24" class="marg">
        <el-col :span="24">
          <el-form-item label="测试、校准或检定工作分包协议书:" label-width="240" prop="minioFileName">
            <span v-if="form.protocolNo" class="link" @click="clickPrintFile('protocol')">{{ form.protocolNo }}</span>
            <span v-if="!form.protocolNo">/</span>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
  </detail-block>
</template>

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