ReportEdit.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <!--
  2. * @Author: niezch@dashoo.cn
  3. * @Date: 2023-02-16 15:55:15
  4. * @LastEditors: niezch@dashoo.cn
  5. * @LastEditTime: 2023-02-17 15:53:42
  6. * @Description: file content
  7. * @FilePath: \opms_frontend\src\views\system\report\components\ReportEdit.vue
  8. -->
  9. <template>
  10. <el-dialog :title="title" :visible.sync="dialogFormVisible" width="500px" @close="close">
  11. <el-form ref="form" label-width="80px" :model="form" :rules="rules">
  12. <el-form-item label="报表名称" prop="reportName">
  13. <el-input v-model="form.reportName" placeholder="请输入报表名称" />
  14. </el-form-item>
  15. <el-form-item label="报表类型" prop="reportType">
  16. <el-radio-group v-model="form.reportType">
  17. <el-radio-group v-model="form.reportType">
  18. <el-radio label="10">数值指标</el-radio>
  19. <el-radio label="20">数据报表</el-radio>
  20. </el-radio-group>
  21. </el-radio-group>
  22. </el-form-item>
  23. <el-form-item label="报表描述" prop="reportDesc">
  24. <el-input v-model="form.reportDesc" placeholder="请输入报表描述" />
  25. </el-form-item>
  26. <el-form-item label="报表代码" prop="reportCode">
  27. <el-input v-model="form.reportCode" placeholder="请输入报表代码" />
  28. </el-form-item>
  29. <el-form-item label="报表图标" prop="reportIcon">
  30. <el-popover popper-class="icon-selector-popper" trigger="hover" width="292">
  31. <template #reference>
  32. <el-input v-model="form.reportIcon" />
  33. </template>
  34. <vab-icon-selector @handle-icon="handleIcon" />
  35. </el-popover>
  36. <!-- <el-input v-model="form.reportIcon" placeholder="请输入报表图标" /> -->
  37. </el-form-item>
  38. <el-form-item label="备注" prop="remark">
  39. <el-input v-model="form.remark" placeholder="请输入内容" type="textarea" />
  40. </el-form-item>
  41. </el-form>
  42. <template #footer>
  43. <el-button @click="close">取 消</el-button>
  44. <el-button type="primary" @click="save">确 定</el-button>
  45. </template>
  46. </el-dialog>
  47. </template>
  48. <script>
  49. import reportApi from '@/api/system/report'
  50. import roleApi from '@/api/system/role'
  51. export default {
  52. name: 'PostEdit',
  53. data() {
  54. return {
  55. form: { reportType: '10', reportIcon: undefined },
  56. rules: {
  57. reportName: [{ required: true, message: '报表名称不能为空', trigger: 'blur' }],
  58. reportDesc: [{ required: true, message: '报表描述不能为空', trigger: 'blur' }],
  59. },
  60. title: '',
  61. dialogFormVisible: false,
  62. // 角色选项
  63. roleOptions: [],
  64. }
  65. },
  66. mounted() {
  67. // 获取角色
  68. roleApi.getList({ status: '10' }).then((response) => {
  69. this.roleOptions = response.data.list
  70. })
  71. },
  72. methods: {
  73. handleIcon(item) {
  74. this.form.icon = item
  75. },
  76. showEdit(row) {
  77. if (!row) {
  78. this.title = '添加'
  79. } else {
  80. this.title = '编辑'
  81. this.getDetailsInfo(row.id)
  82. }
  83. this.dialogFormVisible = true
  84. },
  85. async getDetailsInfo(id) {
  86. const { data: data } = await reportApi.getEntityById({ id: id })
  87. this.form = data
  88. },
  89. close() {
  90. this.$refs['form'].resetFields()
  91. this.form = this.$options.data().form
  92. this.dialogFormVisible = false
  93. },
  94. save() {
  95. this.$refs['form'].validate(async (valid) => {
  96. if (valid) {
  97. if (this.form.id) {
  98. const { msg } = await reportApi.doEdit(this.form)
  99. this.$baseMessage(msg, 'success', 'vab-hey-message-success')
  100. } else {
  101. const { msg } = await reportApi.doAdd(this.form)
  102. this.$baseMessage(msg, 'success', 'vab-hey-message-success')
  103. }
  104. this.$emit('fetch-data')
  105. this.close()
  106. }
  107. })
  108. },
  109. },
  110. }
  111. </script>