Newer
Older
xc-business-system / src / views / business / subpackage / directories / edit.vue
dutingting on 11 Nov 3 KB 需求开发,bug修复
<!-- 测试、校准或检定合格分包方名录编辑 -->
<script lang="ts" setup name="SubpackageDirectoriesEdit">
import { ElMessage, ElMessageBox } from 'element-plus'
import subpackageDirectoriesBasic from './components/basic.vue'
import subpackageDirectoriesReview from './components/reviewList.vue'
import subpackageDirectoriesInform from './components/informList.vue'
import subpackageDirectoriesAgreement from './components/agreementList.vue'
const loading = ref(false) // 表单加载状态
const infoId = ref('') // id
const pageType = ref('add') // 页面类型: add, edit, detail
const approvalStatusName = ref('') // 审批状态名字
const $route = useRoute()
const subpackageDirectoriesBasicRef = ref() // 基本信息组件ref
const textMap: { [key: string]: string } = {
  edit: '编辑',
  add: '新建',
  detail: '详情',
}// 字典

// 初始化router
const $router = useRouter()

// --------------------------------------路由参数----------------------------------------------
// 从路由中获取页面类型参数
if ($route.params && $route.params.type) {
  pageType.value = $route.params.type as string
  if ($route.params.id) {
    infoId.value = $route.params.id as string
  }
}
// -------------------------------------标签--------------------------------------------------
const radioMenus = ref([ // 标签内容
  { name: '基本信息', value: 'subpackage-directories-basic' },
  { name: '分包评审表', value: 'subpackage-directories-review' },
  { name: '分包通知书', value: 'subpackage-directories-inform' },
  { name: '分包协议书', value: 'subpackage-directories-agreement' },
])
const current = ref('subpackage-directories-basic') // 选择的tab 默认基本信息
// -----------------------------------------按钮--------------------------------------------------
// 关闭新增页面的回调
const close = () => {
  $router.back()
}

onMounted(() => {
})
</script>

<template>
  <app-container>
    <detail-page v-loading="loading" :title="`测试、校准或检定合格分包方名录 (${textMap[pageType]})`">
      <template #btns>
        <el-button type="info" @click="close">
          关闭
        </el-button>
      </template>
      <el-radio-group v-model="current">
        <el-radio-button
          v-for="item in radioMenus"
          :key="item.value"
          :label="item.value"
          :disabled="!infoId"
        >
          {{ item.name }}
        </el-radio-button>
      </el-radio-group>
    </detail-page>
    <!-- 基本信息 -->
    <subpackage-directories-basic
      v-if="current === 'subpackage-directories-basic'"
      :id="infoId"
      ref="subpackageDirectoriesBasicRef"
      :page-type="pageType"
      :approval-status-name="approvalStatusName"
    />
    <!-- 分包方评审表 -->
    <subpackage-directories-review
      v-if="current === 'subpackage-directories-review'"
      :id="infoId"
      :page-type="pageType"
    />
    <!-- 分包方通知书 -->
    <subpackage-directories-inform
      v-if="current === 'subpackage-directories-inform'"
      :id="infoId"
      :page-type="pageType"
    />

    <!-- 分包方协议书 -->
    <subpackage-directories-agreement
      v-if="current === 'subpackage-directories-agreement'"
      :id="infoId"
      :page-type="pageType"
    />
  </app-container>
</template>

<style lang="scss" scoped>
// 样式
</style>