option.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /**
  2. * 调查问卷选项管理API接口
  3. * @fileoverview 提供选项的增删改查功能
  4. */
  5. import request from '@/router/axios'
  6. /**
  7. * 选项查询参数类型定义
  8. * @typedef {Object} OptionQueryParams
  9. * @property {string|number} questionId - 题目ID
  10. * @property {number} [size=10] - 每页数量
  11. * @property {number} [current=1] - 当前页码
  12. */
  13. /**
  14. * 选项表单数据类型定义
  15. * @typedef {Object} OptionForm
  16. * @property {string|number} [id] - 选项ID(编辑时必填)
  17. * @property {string|number} questionId - 题目ID
  18. * @property {number} optionNo - 选项序号
  19. * @property {string} optionText - 选项文本
  20. */
  21. /**
  22. * 选项数据项类型定义
  23. * @typedef {Object} OptionItem
  24. * @property {string} id - 选项ID
  25. * @property {string} createUser - 创建用户ID
  26. * @property {string} createDept - 创建部门ID
  27. * @property {string} createTime - 创建时间
  28. * @property {string} updateUser - 更新用户ID
  29. * @property {string} updateTime - 更新时间
  30. * @property {number} status - 状态
  31. * @property {number} isDeleted - 是否删除
  32. * @property {string|number} questionId - 题目ID
  33. * @property {number} optionNo - 选项序号
  34. * @property {string} optionText - 选项文本
  35. */
  36. /**
  37. * 选项列表响应数据类型定义
  38. * @typedef {Object} OptionListResponse
  39. * @property {Array<OptionItem>} records - 选项列表
  40. * @property {number} total - 总数
  41. * @property {number} size - 每页数量
  42. * @property {number} current - 当前页码
  43. * @property {Array} orders - 排序
  44. * @property {boolean} optimizeCountSql - 优化计数SQL
  45. * @property {boolean} hitCount - 命中计数
  46. * @property {null} countId - 计数ID
  47. * @property {null} maxLimit - 最大限制
  48. * @property {boolean} searchCount - 搜索计数
  49. * @property {number} pages - 总页数
  50. */
  51. /**
  52. * 获取选项列表
  53. * @param {OptionQueryParams} params - 查询参数
  54. * @returns {Promise<{code: number, success: boolean, data: OptionListResponse, msg: string}>} 选项列表响应
  55. */
  56. export async function getOptionList(params) {
  57. return await request({
  58. url: '/api/blade-factory/api/factory/survey-option',
  59. method: 'get',
  60. params
  61. })
  62. }
  63. /**
  64. * 添加选项
  65. * @param {OptionForm} data - 选项表单数据
  66. * @returns {Promise<{code: number, success: boolean, data: boolean, msg: string}>} 添加结果
  67. */
  68. export async function addOption(data) {
  69. return await request({
  70. url: '/api/blade-factory/api/factory/survey-option',
  71. method: 'post',
  72. data
  73. })
  74. }
  75. /**
  76. * 修改选项
  77. * @param {OptionForm} data - 选项表单数据
  78. * @returns {Promise<{code: number, success: boolean, data: boolean, msg: string}>} 修改结果
  79. */
  80. export async function updateOption(data) {
  81. return await request({
  82. url: '/api/blade-factory/api/factory/survey-option',
  83. method: 'put',
  84. data
  85. })
  86. }