index.vue 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. <!--
  2. * @Descripttion: 报表设计--数据源
  3. * @version:
  4. * @Author: yanzili
  5. * @Date: 2021-12-11 14:48:27
  6. * @LastEditors: qianlishi
  7. * @LastEditTime: 2022-03-09 09:43:31
  8. -->
  9. <template>
  10. <anji-crud ref="listPage" :option="crudOption">
  11. <template v-slot:pageSection>
  12. <EditDataSource
  13. ref="EditDataSource"
  14. :dataSource="dataSource"
  15. :visib="dialogVisibleSetDataSource"
  16. @handleClose="dialogVisibleSetDataSource = false"
  17. @refreshList="refreshList"
  18. />
  19. </template>
  20. </anji-crud>
  21. </template>
  22. <script>
  23. import {
  24. reportDataSourceList,
  25. reportDataSourceAdd,
  26. reportDataSourceDeleteBatch,
  27. reportDataSourceUpdate,
  28. reportDataSourceDetail
  29. } from "@/api/reportDataSource";
  30. import EditDataSource from "./components/EditDataSource";
  31. export default {
  32. name: "ReportDataSource",
  33. components: {
  34. EditDataSource: EditDataSource
  35. },
  36. data() {
  37. return {
  38. dialogVisibleSetDataSource: false,
  39. dataSource: {},
  40. crudOption: {
  41. // 使用菜单做为页面标题
  42. title: "数据源",
  43. // 详情页中输入框左边文字宽度
  44. labelWidth: "120px",
  45. // 表头按钮
  46. tableButtons: [
  47. {
  48. label: "新增",
  49. type: "", // primary、success、info、warning、danger
  50. permission: "datasourceManage:insert", // 按钮权限码
  51. icon: "el-icon-plus",
  52. plain: true,
  53. click: () => {
  54. return this.operateDatasource("add");
  55. }
  56. },
  57. {
  58. label: "删除",
  59. type: "danger",
  60. permission: "datasourceManage:delete",
  61. icon: "el-icon-delete",
  62. plain: false,
  63. click: () => {
  64. return this.$refs.listPage.handleDeleteBatch();
  65. }
  66. }
  67. ],
  68. // 表格行按钮
  69. rowButtons: [
  70. {
  71. label: "编辑",
  72. permission: "datasourceManage:update",
  73. click: row => {
  74. return this.operateDatasource("edit", row);
  75. }
  76. },
  77. {
  78. label: "删除",
  79. permission: "datasourceManage:delete",
  80. click: row => {
  81. return this.$refs.listPage.handleDeleteBatch(row);
  82. }
  83. }
  84. ],
  85. // 查询表单条件
  86. queryFormFields: [
  87. {
  88. inputType: "input",
  89. label: "数据源编码",
  90. field: "sourceCode"
  91. },
  92. {
  93. inputType: "input",
  94. label: "数据源名称",
  95. field: "sourceName"
  96. },
  97. {
  98. inputType: "anji-select", //form表单类型 input|input-number|anji-select(传递url或者dictCode)|anji-tree(左侧树)|date|datetime|datetimerange
  99. anjiSelectOption: {
  100. dictCode: "SOURCE_TYPE"
  101. },
  102. label: "数据源类型",
  103. field: "sourceType"
  104. }
  105. ],
  106. // 操作按钮
  107. buttons: {
  108. rowButtonsWidth: 150, // row自定义按钮表格宽度
  109. query: {
  110. api: reportDataSourceList,
  111. permission: "datasourceManage:query",
  112. sort: "update_time",
  113. order: "DESC"
  114. },
  115. queryByPrimarykey: {
  116. api: reportDataSourceDetail,
  117. permission: "datasourceManage:detail"
  118. },
  119. add: {
  120. api: reportDataSourceAdd,
  121. permission: "datasourceManage:insert",
  122. isShow: false
  123. },
  124. delete: {
  125. api: reportDataSourceDeleteBatch,
  126. permission: "datasourceManage:delete"
  127. },
  128. edit: {
  129. api: reportDataSourceUpdate,
  130. permission: "datasourceManage:update",
  131. isShow: false
  132. }
  133. },
  134. // 表格列
  135. columns: [
  136. {
  137. label: "",
  138. field: "id",
  139. primaryKey: true, // 根据主键查询详情或者根据主键删除时, 主键的
  140. tableHide: true, // 表格中不显示
  141. editHide: true // 编辑弹框中不显示
  142. },
  143. {
  144. label: "数据源编码", //数据源编码
  145. placeholder: "",
  146. field: "sourceCode",
  147. editField: "sourceCode",
  148. inputType: "input",
  149. rules: [
  150. { min: 1, max: 100, message: "不超过100个字符", trigger: "blur" }
  151. ],
  152. disabled: false
  153. },
  154. {
  155. label: "数据源名称", //数据源名称
  156. placeholder: "",
  157. field: "sourceName",
  158. editField: "sourceName",
  159. inputType: "input",
  160. rules: [
  161. { min: 1, max: 100, message: "不超过100个字符", trigger: "blur" }
  162. ],
  163. disabled: false
  164. },
  165. {
  166. label: "数据源描述", //数据源描述
  167. placeholder: "",
  168. field: "sourceDesc",
  169. editField: "sourceDesc",
  170. inputType: "input",
  171. rules: [
  172. { min: 1, max: 255, message: "不超过255个字符", trigger: "blur" }
  173. ],
  174. disabled: false
  175. },
  176. {
  177. label: "数据源类型", //数据源类型 DIC_NAME=SOURCE_TYPE; mysql,orace,sqlserver,elasticsearch,接口,javaBean,数据源类型字典中item-extend动态生成表单
  178. placeholder: "",
  179. field: "sourceType",
  180. fieldTableRowRenderer: row => {
  181. return this.getDictLabelByCode("SOURCE_TYPE", row["sourceType"]);
  182. },
  183. editField: "sourceType",
  184. inputType: "input",
  185. rules: [
  186. { min: 1, max: 50, message: "不超过50个字符", trigger: "blur" }
  187. ],
  188. disabled: false
  189. },
  190. {
  191. label: "数据源连接配置json", //数据源连接配置json:关系库{ jdbcUrl:'', username:'', password:'' } ES{ hostList:'ip1:9300,ip2:9300,ip3:9300', clusterName:'elasticsearch_cluster' } 接口{ apiUrl:'http://ip:port/url', method:'' } javaBean{ beanNamw:'xxx' }
  192. placeholder: "",
  193. field: "sourceConfig",
  194. editField: "sourceConfig",
  195. tableHide: true,
  196. inputType: "input",
  197. rules: [
  198. {
  199. min: 1,
  200. max: 2048,
  201. message: "不超过2048个字符",
  202. trigger: "blur"
  203. }
  204. ],
  205. disabled: false
  206. },
  207. {
  208. label: "状态", //0--已禁用 1--已启用 DIC_NAME=ENABLE_FLAG
  209. placeholder: "",
  210. field: "enableFlag",
  211. fieldTableRowRenderer: row => {
  212. return this.getDictLabelByCode("ENABLE_FLAG", row["enableFlag"]);
  213. },
  214. colorStyle: {
  215. 0: "table-danger", //key为editField渲染的值(字典的提交值)'红色': 'danger','蓝色': 'primary','绿色': 'success','黄色': 'warning','灰色': 'info','白色':''
  216. 1: "table-success"
  217. },
  218. editField: "enableFlag",
  219. inputType: "input",
  220. rules: [],
  221. disabled: false
  222. },
  223. {
  224. label: "删除标记", //0--未删除 1--已删除 DIC_NAME=DELETE_FLAG
  225. placeholder: "",
  226. field: "deleteFlag",
  227. editField: "deleteFlag",
  228. tableHide: true,
  229. inputType: "input",
  230. rules: [],
  231. disabled: false
  232. }
  233. ]
  234. }
  235. };
  236. },
  237. methods: {
  238. operateDatasource(type, prop) {
  239. this.dialogVisibleSetDataSource = true;
  240. if (prop) {
  241. this.dataSource = prop;
  242. } else {
  243. this.dataSource = {};
  244. }
  245. this.$refs.EditDataSource.getSystem();
  246. },
  247. refreshList() {
  248. this.$refs.listPage.handleQueryForm("query");
  249. }
  250. }
  251. };
  252. </script>