index.vue 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <template>
  2. <view class="yd-page-container">
  3. <!-- 顶部导航栏 -->
  4. <wd-navbar
  5. title="短信日志详情"
  6. left-arrow placeholder safe-area-inset-top fixed
  7. @click-left="handleBack"
  8. />
  9. <!-- 详情内容 -->
  10. <view>
  11. <wd-cell-group border>
  12. <wd-cell title="日志编号" :value="String(formData?.id ?? '-')" />
  13. <wd-cell title="手机号" :value="String(formData?.mobile ?? '-')" />
  14. <wd-cell title="短信渠道">
  15. <dict-tag :type="DICT_TYPE.SYSTEM_SMS_CHANNEL_CODE" :value="formData?.channelCode" />
  16. </wd-cell>
  17. <wd-cell title="模板编号" :value="String(formData?.templateId ?? '-')" />
  18. <wd-cell title="模板类型">
  19. <dict-tag :type="DICT_TYPE.SYSTEM_SMS_TEMPLATE_TYPE" :value="formData?.templateType" />
  20. </wd-cell>
  21. <wd-cell title="短信内容" :value="String(formData?.templateContent ?? '-')" />
  22. <wd-cell title="发送状态">
  23. <dict-tag :type="DICT_TYPE.SYSTEM_SMS_SEND_STATUS" :value="formData?.sendStatus" />
  24. </wd-cell>
  25. <wd-cell title="发送时间" :value="formatDateTime(formData?.sendTime) || '-'" />
  26. <wd-cell title="API 发送编码" :value="String(formData?.apiSendCode ?? '-')" />
  27. <wd-cell title="API 发送消息" :value="String(formData?.apiSendMsg ?? '-')" />
  28. <wd-cell title="接收状态">
  29. <dict-tag :type="DICT_TYPE.SYSTEM_SMS_RECEIVE_STATUS" :value="formData?.receiveStatus" />
  30. </wd-cell>
  31. <wd-cell title="接收时间" :value="formatDateTime(formData?.receiveTime) || '-'" />
  32. <wd-cell title="API 接收编码" :value="String(formData?.apiReceiveCode ?? '-')" />
  33. <wd-cell title="API 接收消息" :value="String(formData?.apiReceiveMsg ?? '-')" />
  34. <wd-cell title="API 请求 ID" :value="String(formData?.apiRequestId ?? '-')" />
  35. <wd-cell title="API 序列号" :value="String(formData?.apiSerialNo ?? '-')" />
  36. <wd-cell title="创建时间" :value="formatDateTime(formData?.createTime) || '-'" />
  37. </wd-cell-group>
  38. </view>
  39. </view>
  40. </template>
  41. <script lang="ts" setup>
  42. import type { SmsLog } from '@/api/system/sms/log'
  43. import { onMounted, ref } from 'vue'
  44. import { useToast } from 'wot-design-uni'
  45. import { getSmsLogPage } from '@/api/system/sms/log'
  46. import { navigateBackPlus } from '@/utils'
  47. import { DICT_TYPE } from '@/utils/constants'
  48. import { formatDateTime } from '@/utils/date'
  49. const props = defineProps<{
  50. id?: number | any
  51. }>()
  52. definePage({
  53. style: {
  54. navigationBarTitleText: '',
  55. navigationStyle: 'custom',
  56. },
  57. })
  58. const toast = useToast()
  59. const formData = ref<SmsLog>()
  60. /** 返回上一页 */
  61. function handleBack() {
  62. navigateBackPlus('/pages-system/sms/index')
  63. }
  64. /** 加载详情 - 由于没有单独的获取详情接口,通过列表接口获取 */
  65. async function getDetail() {
  66. if (!props.id) {
  67. return
  68. }
  69. try {
  70. toast.loading('加载中...')
  71. // 通过分页接口获取单条数据
  72. // TODO @AI:使用 getMailLog 认为它存在!我去支持下;
  73. const data = await getSmsLogPage({ pageNo: 1, pageSize: 1, id: props.id })
  74. if (data.list && data.list.length > 0) {
  75. formData.value = data.list[0]
  76. }
  77. } finally {
  78. toast.close()
  79. }
  80. }
  81. /** 初始化 */
  82. onMounted(() => {
  83. getDetail()
  84. })
  85. </script>
  86. <style lang="scss" scoped>
  87. </style>