Commit fb06bc8357972af6aae9774bd5f4d4c11d78bec6
1 parent
b4e86430
bpm:增加 OA 请假的详情
Showing
4 changed files
with
58 additions
and
59 deletions
yudao-ui-admin-vue3/src/plugins/vxeTable/index.ts
| ... | ... | @@ -135,7 +135,15 @@ VXETable.setup({ |
| 135 | 135 | }) |
| 136 | 136 | // 自定义全局的格式化处理函数 |
| 137 | 137 | VXETable.formats.mixin({ |
| 138 | - // 格式日期,默认 yyyy-MM-dd HH:mm:ss | |
| 138 | + // 格式精简日期,默认 yyyy-MM-dd HH:mm:ss | |
| 139 | + formatDay({ cellValue }, format) { | |
| 140 | + if (cellValue != null) { | |
| 141 | + return XEUtils.toDateString(cellValue, format || 'yyyy-MM-dd') | |
| 142 | + } else { | |
| 143 | + return '' | |
| 144 | + } | |
| 145 | + }, | |
| 146 | + // 格式完整日期,默认 yyyy-MM-dd HH:mm:ss | |
| 139 | 147 | formatDate({ cellValue }, format) { |
| 140 | 148 | if (cellValue != null) { |
| 141 | 149 | return XEUtils.toDateString(cellValue, format || 'yyyy-MM-dd HH:mm:ss') | ... | ... |
yudao-ui-admin-vue3/src/views/bpm/oa/leave/detail.vue
| 1 | 1 | <template> |
| 2 | - <div class="app-container"> | |
| 3 | - <!-- 对话框(添加 / 修改) --> | |
| 4 | - <el-form ref="form" :model="form" label-width="100px"> | |
| 5 | - <el-form-item label="开始时间:" prop="startTime"> | |
| 6 | - {{ formatDate(form.startTime, '{y}-{m}-{d}') }} | |
| 7 | - </el-form-item> | |
| 8 | - <el-form-item label="结束时间:" prop="endTime"> | |
| 9 | - {{ formatDate(form.endTime, '{y}-{m}-{d}') }} | |
| 10 | - </el-form-item> | |
| 11 | - <el-form-item label="请假类型:" prop="type"> | |
| 12 | - <dict-tag :type="DICT_TYPE.BPM_OA_LEAVE_TYPE" :value="form.type" /> | |
| 13 | - </el-form-item> | |
| 14 | - <el-form-item label="原因:" prop="reason"> {{ form.reason }}</el-form-item> | |
| 15 | - </el-form> | |
| 16 | - </div> | |
| 2 | + <ContentWrap> | |
| 3 | + <!-- 详情 --> | |
| 4 | + <Descriptions :schema="allSchemas.detailSchema" :data="formData" /> | |
| 5 | + </ContentWrap> | |
| 17 | 6 | </template> |
| 18 | 7 | |
| 19 | 8 | <script lang="ts" setup> |
| 20 | 9 | import { onMounted, ref } from 'vue' |
| 21 | -import { ElMessage } from 'element-plus' | |
| 10 | +// 业务相关的 import | |
| 11 | +import * as LeaveApi from '@/api/bpm/leave' | |
| 12 | +import { allSchemas } from '@/views/bpm/oa/leave/leave.data' | |
| 22 | 13 | |
| 23 | -import { getLeaveApi } from '@/api/bpm/leave' | |
| 24 | -import { DICT_TYPE } from '@/utils/dict' | |
| 25 | -import { formatDate } from '@/utils/formatTime' | |
| 26 | -import { useRouter } from 'vue-router' | |
| 27 | -const router = useRouter() | |
| 28 | -// 请假编号 | |
| 29 | -const id = ref() | |
| 14 | +const { query } = useRoute() // 查询参数 | |
| 15 | +const message = useMessage() // 消息弹窗 | |
| 16 | + | |
| 17 | +const id = ref() // 请假编号 | |
| 30 | 18 | // 表单参数 |
| 31 | -const form = ref({ | |
| 19 | +const formData = ref({ | |
| 32 | 20 | startTime: undefined, |
| 33 | 21 | endTime: undefined, |
| 34 | 22 | type: undefined, |
| 35 | 23 | reason: undefined |
| 36 | 24 | }) |
| 37 | -/** 获得请假信息 */ | |
| 38 | -const getDetail = () => { | |
| 39 | - getLeaveApi(id.value).then((response) => { | |
| 40 | - form.value = response.data | |
| 41 | - }) | |
| 42 | -} | |
| 25 | + | |
| 43 | 26 | onMounted(() => { |
| 44 | - id.value = router.currentRoute.value.query.id | |
| 27 | + id.value = query.id | |
| 45 | 28 | if (!id.value) { |
| 46 | - ElMessage({ | |
| 47 | - type: 'error', | |
| 48 | - message: '未传递 id 参数,无法查看 OA 请假信息' | |
| 49 | - }) | |
| 29 | + message.error('未传递 id 参数,无法查看 OA 请假信息') | |
| 50 | 30 | return |
| 51 | 31 | } |
| 52 | - getDetail() | |
| 32 | + // 获得请假信息 | |
| 33 | + LeaveApi.getLeaveApi(id.value).then((data) => { | |
| 34 | + formData.value = data | |
| 35 | + }) | |
| 53 | 36 | }) |
| 54 | 37 | </script> | ... | ... |
yudao-ui-admin-vue3/src/views/bpm/oa/leave/index.vue
| 1 | 1 | <template> |
| 2 | - <XTable @register="registerTable"> | |
| 3 | - <template #toolbar_buttons> | |
| 4 | - <!-- 操作:发起请假 --> | |
| 5 | - <XButton type="primary" preIcon="ep:plus" title="发起请假" @click="handleCreate()" /> | |
| 6 | - </template> | |
| 7 | - <template #actionbtns_default="{ row }"> | |
| 8 | - <!-- 操作: 取消请假 --> | |
| 9 | - <XTextButton | |
| 10 | - preIcon="ep:delete" | |
| 11 | - title="取消请假" | |
| 12 | - v-hasPermi="['bpm:oa-leave:create']" | |
| 13 | - v-if="row.result === 1" | |
| 14 | - @click="cancelLeave(row)" | |
| 15 | - /> | |
| 16 | - <!-- 操作: 详情 --> | |
| 17 | - <XTextButton preIcon="ep:delete" :title="t('action.detail')" @click="handleDetail(row)" /> | |
| 18 | - <!-- 操作: 审批进度 --> | |
| 19 | - <XTextButton preIcon="ep:edit-pen" title="审批进度" @click="handleProcessDetail(row)" /> | |
| 20 | - </template> | |
| 21 | - </XTable> | |
| 2 | + <ContentWrap> | |
| 3 | + <XTable @register="registerTable"> | |
| 4 | + <template #toolbar_buttons> | |
| 5 | + <!-- 操作:发起请假 --> | |
| 6 | + <XButton type="primary" preIcon="ep:plus" title="发起请假" @click="handleCreate()" /> | |
| 7 | + </template> | |
| 8 | + <template #actionbtns_default="{ row }"> | |
| 9 | + <!-- 操作: 取消请假 --> | |
| 10 | + <XTextButton | |
| 11 | + preIcon="ep:delete" | |
| 12 | + title="取消请假" | |
| 13 | + v-hasPermi="['bpm:oa-leave:create']" | |
| 14 | + v-if="row.result === 1" | |
| 15 | + @click="cancelLeave(row)" | |
| 16 | + /> | |
| 17 | + <!-- 操作: 详情 --> | |
| 18 | + <XTextButton preIcon="ep:delete" :title="t('action.detail')" @click="handleDetail(row)" /> | |
| 19 | + <!-- 操作: 审批进度 --> | |
| 20 | + <XTextButton preIcon="ep:edit-pen" title="审批进度" @click="handleProcessDetail(row)" /> | |
| 21 | + </template> | |
| 22 | + </XTable> | |
| 23 | + </ContentWrap> | |
| 22 | 24 | </template> |
| 23 | 25 | |
| 24 | 26 | <script setup lang="ts"> | ... | ... |
yudao-ui-admin-vue3/src/views/bpm/oa/leave/leave.data.ts
| ... | ... | @@ -29,17 +29,23 @@ const crudSchemas = reactive<VxeCrudSchema>({ |
| 29 | 29 | { |
| 30 | 30 | title: t('common.startTimeText'), |
| 31 | 31 | field: 'startTime', |
| 32 | - formatter: 'formatDate', | |
| 32 | + formatter: 'formatDay', | |
| 33 | 33 | table: { |
| 34 | 34 | width: 180 |
| 35 | + }, | |
| 36 | + detail: { | |
| 37 | + dateFormat: 'YYYY-MM-DD' | |
| 35 | 38 | } |
| 36 | 39 | }, |
| 37 | 40 | { |
| 38 | 41 | title: t('common.endTimeText'), |
| 39 | 42 | field: 'endTime', |
| 40 | - formatter: 'formatDate', | |
| 43 | + formatter: 'formatDay', | |
| 41 | 44 | table: { |
| 42 | 45 | width: 180 |
| 46 | + }, | |
| 47 | + detail: { | |
| 48 | + dateFormat: 'YYYY-MM-DD' | |
| 43 | 49 | } |
| 44 | 50 | }, |
| 45 | 51 | { | ... | ... |