Commit fb06bc8357972af6aae9774bd5f4d4c11d78bec6

Authored by YunaiV
1 parent b4e86430

bpm:增加 OA 请假的详情

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&lt;VxeCrudSchema&gt;({
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 {
... ...