浏览代码

docs(claim): 添加理赔管理mixin的详细类型注释和文档说明

yz 1 周之前
父节点
当前提交
7d2a8388b2
共有 1 个文件被更改,包括 146 次插入21 次删除
  1. 146 21
      src/views/claim/claimMixin.js

+ 146 - 21
src/views/claim/claimMixin.js

@@ -1,3 +1,71 @@
+/**
+ * 理赔管理Mixin
+ * @fileoverview 理赔管理页面的通用逻辑和数据处理
+ * @version 1.0.0
+ */
+
+/**
+ * @typedef {import('@/api/claim/index').ClaimItem} ClaimItem - 理赔申请数据项
+ * @typedef {import('@/api/claim/index').ClaimQueryParams} ClaimQueryParams - 理赔查询参数
+ * @typedef {import('@/api/claim/index').ClaimAuditItem} ClaimAuditItem - 审核记录数据项
+ * @typedef {import('@/api/claim/index').ClaimAttachmentItem} ClaimAttachmentItem - 附件信息
+ * @typedef {import('@/api/claim/index').ApiResponse} ApiResponse - API响应数据
+ * @typedef {import('@/api/claim/index').PageResult} PageResult - 分页结果
+ */
+
+/**
+ * @typedef {import('@/constants/claim').AUDIT_STATUS} AUDIT_STATUS - 审核状态枚举
+ * @typedef {import('@/constants/claim').CLAIM_SOURCE_TYPE} CLAIM_SOURCE_TYPE - 理赔来源类型枚举
+ * @typedef {import('@/constants/claim').ATTACHMENT_FILE_TYPE} ATTACHMENT_FILE_TYPE - 附件文件类型枚举
+ */
+
+/**
+ * 分页参数类型定义
+ * @typedef {Object} PageParams
+ * @property {number} pageSize - 每页大小
+ * @property {number} currentPage - 当前页码
+ * @property {number} total - 总记录数
+ */
+
+/**
+ * 审核表单数据类型定义
+ * @typedef {Object} AuditFormData
+ * @property {string|null} id - 审核记录ID(编辑时必需)
+ * @property {number|null} claimId - 理赔ID
+ * @property {string} claimNo - 理赔编号
+ * @property {number|null} auditResult - 审核结果 1-通过 2-拒绝
+ * @property {number} auditAmount - 审核金额
+ * @property {string} reasonDetail - 审核说明
+ * @property {number|null} auditorId - 审核人ID
+ * @property {string} auditorName - 审核人姓名
+ * @property {string} auditTime - 审核时间
+ * @property {string} feedbackChannel - 反馈渠道
+ * @property {string} feedbackDesc - 反馈描述
+ * @property {string} feedbackTime - 反馈时间
+ * @property {number} appealStatus - 申诉状态 0-无申诉 1-申诉中
+ * @property {string} appealResult - 申诉结果
+ * @property {string} appealTime - 申诉时间
+ */
+
+/**
+ * 表格配置选项类型定义
+ * @typedef {Object} TableOption
+ * @property {string|number} height - 表格高度
+ * @property {number} calcHeight - 计算高度偏移
+ * @property {boolean} tip - 是否显示提示
+ * @property {boolean} searchShow - 是否显示搜索
+ * @property {number} searchMenuSpan - 搜索菜单跨度
+ * @property {boolean} border - 是否显示边框
+ * @property {boolean} index - 是否显示序号
+ * @property {string} indexLabel - 序号列标签
+ * @property {boolean} selection - 是否显示选择框
+ * @property {boolean} viewBtn - 是否显示查看按钮
+ * @property {boolean} editBtn - 是否显示编辑按钮
+ * @property {boolean} delBtn - 是否显示删除按钮
+ * @property {boolean} addBtn - 是否显示添加按钮
+ * @property {Array<Object>} column - 列配置
+ */
+
 import { getClaimList, getClaimDetail, getClaimAttachments, getClaimAuditList, addClaimAudit, updateClaimAudit, removeClaimAudit } from '@/api/claim/index'
 import { formatFileSize } from '@/util/util'
 import { mapGetters } from 'vuex'
@@ -13,37 +81,63 @@ import {
 } from '@/constants/claim'
 
 export default {
+  /**
+   * 组件数据定义
+   * @returns {Object} 组件数据对象
+   */
   data() {
     return {
+      /** @type {Object} 表单数据 */
       form: {},
+      /** @type {ClaimQueryParams} 查询参数 */
       query: {},
+      /** @type {boolean} 加载状态 */
       loading: true,
+      /** @type {PageParams} 分页参数 */
       page: {
         pageSize: 10,
         currentPage: 1,
         total: 0
       },
+      /** @type {ClaimItem[]} 选中的列表项 */
       selectionList: [],
+      /** @type {boolean} 详情弹窗显示状态 */
       detailVisible: false,
+      /** @type {boolean} 附件弹窗显示状态 */
       attachmentVisible: false,
+      /** @type {boolean} 审核记录弹窗显示状态 */
       auditVisible: false,
+      /** @type {boolean} 审核表单弹窗显示状态 */
       auditFormVisible: false,
+      /** @type {ClaimItem|null} 理赔详情数据 */
       claimDetail: null,
+      /** @type {ClaimAttachmentItem[]} 附件列表 */
       attachmentList: [],
+      /** @type {ClaimAuditItem[]} 审核记录列表 */
       auditList: [],
+      /** @type {boolean} 附件加载状态 */
       attachmentLoading: false,
+      /** @type {boolean} 审核记录加载状态 */
       auditLoading: false,
+      /** @type {boolean} 审核表单加载状态 */
       auditFormLoading: false,
+      /** @type {ClaimItem|null} 当前操作的理赔行数据 */
       currentClaimRow: null,
-      auditFormMode: 'add', // 'add' | 'edit'
-      // 图片预览相关状态
+      /** @type {'add'|'edit'} 审核表单模式 */
+      auditFormMode: 'add',
+      /** @type {boolean} 图片预览弹窗显示状态 */
       imagePreviewVisible: false,
+      /** @type {string} 预览图片URL */
       previewImageUrl: '',
+      /** @type {string[]} 预览图片列表 */
       previewImageList: [],
+      /** @type {number} 当前预览图片索引 */
       currentPreviewIndex: 0,
-      // 视频预览相关状态
+      /** @type {boolean} 视频预览弹窗显示状态 */
       videoPreviewVisible: false,
+      /** @type {string} 预览视频URL */
       previewVideoUrl: '',
+      /** @type {AuditFormData} 审核表单数据 */
       auditForm: {
         id: null,
         claimId: null,
@@ -61,6 +155,7 @@ export default {
         appealResult: '',
         appealTime: ''
       },
+      /** @type {Object} 审核表单验证规则 */
       auditFormRules: {
         auditResult: [
           { required: true, message: '请选择审核结果', trigger: 'change' }
@@ -81,6 +176,7 @@ export default {
           { required: true, message: '请选择审核时间', trigger: 'change' }
         ]
       },
+      /** @type {TableOption} 表格配置选项 */
       option: {
         height: 'auto',
         calcHeight: 30,
@@ -160,6 +256,7 @@ export default {
           }
         ]
       },
+      /** @type {ClaimItem[]} 理赔数据列表 */
       data: []
     }
   },
@@ -169,8 +266,9 @@ export default {
   methods: {
     /**
      * 获取列表数据
-     * @param {Object} page - 分页参数
-     * @param {Object} params - 查询参数
+     * @param {PageParams} page - 分页参数
+     * @param {ClaimQueryParams} [params={}] - 查询参数
+     * @returns {Promise<void>} 无返回值
      */
     async onLoad(page, params = {}) {
       try {
@@ -189,8 +287,9 @@ export default {
 
     /**
      * 搜索
-     * @param {Object} params - 搜索参数
-     * @param {Function} done - 完成回调
+     * @param {ClaimQueryParams} params - 搜索参数
+     * @param {Function} done - 完成回调函数
+     * @returns {void} 无返回值
      */
     searchChange(params, done) {
       this.query = params
@@ -200,6 +299,7 @@ export default {
 
     /**
      * 搜索重置
+     * @returns {void} 无返回值
      */
     searchReset() {
       this.query = {}
@@ -208,7 +308,8 @@ export default {
 
     /**
      * 选择改变
-     * @param {Array} list - 选中的列表
+     * @param {ClaimItem[]} list - 选中的列表项
+     * @returns {void} 无返回值
      */
     selectionChange(list) {
       this.selectionList = list
@@ -217,6 +318,7 @@ export default {
     /**
      * 当前页改变
      * @param {number} currentPage - 当前页码
+     * @returns {void} 无返回值
      */
     currentChange(currentPage) {
       this.page.currentPage = currentPage
@@ -225,6 +327,7 @@ export default {
     /**
      * 页大小改变
      * @param {number} pageSize - 页大小
+     * @returns {void} 无返回值
      */
     sizeChange(pageSize) {
       this.page.pageSize = pageSize
@@ -232,6 +335,7 @@ export default {
 
     /**
      * 刷新
+     * @returns {void} 无返回值
      */
     refreshChange() {
       this.onLoad(this.page, this.query)
@@ -239,7 +343,8 @@ export default {
 
     /**
      * 查看详情
-     * @param {Object} row - 行数据
+     * @param {ClaimItem} row - 理赔行数据
+     * @returns {Promise<void>} 无返回值
      */
     async handleDetail(row) {
       try {
@@ -254,7 +359,8 @@ export default {
 
     /**
      * 查看附件
-     * @param {Object} row - 行数据
+     * @param {ClaimItem} row - 理赔行数据
+     * @returns {Promise<void>} 无返回值
      */
     async handleAttachments(row) {
       try {
@@ -272,7 +378,8 @@ export default {
 
     /**
      * 查看审核记录
-     * @param {Object} row - 行数据
+     * @param {ClaimItem} row - 理赔行数据
+     * @returns {Promise<void>} 无返回值
      */
     async handleAudit(row) {
       try {
@@ -291,6 +398,7 @@ export default {
 
     /**
      * 新增审核记录
+     * @returns {void} 无返回值
      */
     handleAddAudit() {
       this.auditFormMode = 'add'
@@ -302,7 +410,8 @@ export default {
 
     /**
      * 编辑审核记录
-     * @param {Object} row - 审核记录数据
+     * @param {ClaimAuditItem} row - 审核记录数据
+     * @returns {void} 无返回值
      */
     handleEditAudit(row) {
       this.auditFormMode = 'edit'
@@ -328,7 +437,8 @@ export default {
 
     /**
      * 删除审核记录
-     * @param {Object} row - 审核记录数据
+     * @param {ClaimAuditItem} row - 审核记录数据
+     * @returns {Promise<void>} 无返回值
      */
     async handleDeleteAudit(row) {
       try {
@@ -351,6 +461,7 @@ export default {
 
     /**
      * 保存审核记录
+     * @returns {Promise<void>} 无返回值
      */
     async handleSaveAudit() {
       try {
@@ -384,6 +495,7 @@ export default {
 
     /**
      * 重置审核表单
+     * @returns {void} 无返回值
      */
     resetAuditForm() {
       this.auditForm = {
@@ -412,6 +524,7 @@ export default {
 
     /**
      * 刷新审核记录列表
+     * @returns {Promise<void>} 无返回值
      */
     async refreshAuditList() {
       if (!this.currentClaimRow) return
@@ -430,7 +543,8 @@ export default {
 
     /**
      * 下载文件
-     * @param {Object} file - 文件信息
+     * @param {ClaimAttachmentItem} file - 文件信息
+     * @returns {void} 无返回值
      */
     downloadFile(file) {
       window.open(file.fileUrl)
@@ -462,8 +576,9 @@ export default {
 
     /**
      * 预览图片
-     * @param {Object} file - 文件对象
-     * @param {number} index - 索引
+     * @param {ClaimAttachmentItem} file - 文件对象
+     * @param {number} [index=0] - 索引
+     * @returns {void} 无返回值
      */
     previewImage(file, index = 0) {
       // 获取所有图片文件
@@ -476,7 +591,8 @@ export default {
 
     /**
      * 预览视频
-     * @param {Object} file - 文件对象
+     * @param {ClaimAttachmentItem} file - 文件对象
+     * @returns {void} 无返回值
      */
     previewVideo(file) {
       this.previewVideoUrl = file.fileUrl
@@ -486,22 +602,28 @@ export default {
     /**
      * 处理图片加载错误
      * @param {Event} event - 错误事件
+     * @returns {void} 无返回值
      */
     handleImageError(event) {
       event.target.src = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiBmaWxsPSIjRjVGNUY1Ii8+CjxwYXRoIGQ9Ik0yMCAyNkM5LjUgMjYgMSAxNy41IDEgN0MxIDMuNSA0IDEgNyAxSDMzQzM2IDEgMzkgMy41IDM5IDdDMzkgMTcuNSAzMC41IDI2IDIwIDI2WiIgZmlsbD0iI0NDQ0NDQyIvPgo8L3N2Zz4K'
     },
 
     // 添加公共方法引用
+    /** @type {(bytes: number) => string} 格式化文件大小 */
     formatFileSize,
+    /** @type {(status: number) => string} 获取审核状态标签 */
     getAuditStatusLabel,
+    /** @type {(status: number) => string} 获取审核状态类型 */
     getAuditStatusType,
+    /** @type {(sourceType: number) => string} 获取理赔来源类型标签 */
     getClaimSourceTypeLabel,
+    /** @type {(sourceType: number) => string} 获取理赔来源类型类型 */
     getClaimSourceTypeType,
 
     /**
      * 获取审核结果类型
-     * @param {number} result - 审核结果
-     * @returns {string} 结果类型
+     * @param {number} result - 审核结果 1-通过 2-拒绝
+     * @returns {string} 结果类型 'success' | 'danger' | 'info'
      */
     getAuditResultType(result) {
       const typeMap = {
@@ -513,6 +635,7 @@ export default {
 
     /**
      * 关闭图片预览
+     * @returns {void} 无返回值
      */
     closeImagePreview() {
       this.imagePreviewVisible = false
@@ -523,6 +646,7 @@ export default {
 
     /**
      * 关闭视频预览
+     * @returns {void} 无返回值
      */
     closeVideoPreview() {
       this.videoPreviewVisible = false
@@ -532,6 +656,7 @@ export default {
     /**
      * 处理视频加载错误
      * @param {Event} event - 错误事件
+     * @returns {void} 无返回值
      */
     handleVideoError(event) {
       console.error('视频加载失败:', event)
@@ -540,8 +665,8 @@ export default {
 
     /**
      * 获取审核结果文本
-     * @param {number} result - 审核结果
-     * @returns {string} 结果文本
+     * @param {number} result - 审核结果 1-通过 2-拒绝
+     * @returns {string} 结果文本 '通过' | '拒绝' | '未知'
      */
     getAuditResultText(result) {
       const textMap = {