Newer
Older
xc-business-system / src / views / system / baseInfo / remind / detailDialog.vue
<!-- 到期提醒详情 -->
<script lang="ts" setup name="RemingDetailDialog">
import { ElMessage } from 'element-plus'
import type { Ref } from 'vue'
import { ref } from 'vue'
import dayjs from 'dayjs'
import type { DateModelType } from 'element-plus'
import { getStandardList } from '@/api/equipment/standard/book'
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { SCHEDULE } from '@/utils/scheduleDict'
import { getDeptTreeList } from '@/api/system/dept'
import { getStaffList } from '@/api/resource/register'
import { toTreeList } from '@/utils/structure'
import type { deptType } from '@/global'
import { getDictByCode } from '@/api/system/dict'
import useUserStore from '@/store/modules/user'
// 用户信息
const emits = defineEmits(['confirm'])
const user = useUserStore()
const dialogFormVisible = ref(false)
const textMap: { [key: string]: string } = {
  edit: '编辑',
  add: '新建',
  detail: '详情',
}// 字典
const form = ref({
  name: '', // 提醒名称
  time: 30, // 提醒时间
})
const pageType = ref('detail') // 页面类型
const rules = {
  name: [{ required: true, message: '提醒名称不能为空', trigger: ['blur', 'change'] }],
  time: [{ required: true, message: '提醒时间不能为空', trigger: ['blur', 'change'] }],
}
// 点击确定
const confirmSelect = () => {
  dialogFormVisible.value = false
}
// 取消
const resetForm = () => {
  dialogFormVisible.value = false
}
// 初始化
const initDialog = async (type: string, row: any) => {
  pageType.value = type // 页面类型
  dialogFormVisible.value = true
}

defineExpose({ initDialog })
</script>

<template>
  <el-dialog v-if="dialogFormVisible" v-model="dialogFormVisible" :title="`${textMap[pageType]}`">
    <el-form ref="dataForm" :rules="rules" :model="form" label-well-code="right" label-width="200px">
      <el-form-item label="提醒名称" prop="name">
        <el-input v-model="form.name" class="full-width-input" type="text" placeholder="请输入提醒名称" :disabled="pageType === 'detail'" />
      </el-form-item>
      <el-form-item label="提醒时间(按到期前提示)" prop="time">
        <el-input-number
          v-model="form.time"
          :placeholder="pageType === 'detail' ? '' : '到期前XX天'"
          :disabled="pageType === 'detail'"
          class="full-width-input"
        />
      </el-form-item>
    </el-form>
    <template #footer>
      <span class="dialog-footer">
        <el-button type="primary" @click="confirmSelect">确认</el-button>
        <el-button @click="resetForm">
          取消
        </el-button>
      </span>
    </template>
  </el-dialog>
</template>

<style lang="scss" scoped>
:deep(.el-radio__label) {
  display: none;
}
</style>