index.vue 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <template>
  2. <div class="app-container">
  3. <!-- 操作工具栏 -->
  4. <el-row :gutter="10" class="mb8">
  5. <el-col :span="1.5">
  6. <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
  7. v-hasPermi="['infra:data-source-config:create']">新增</el-button>
  8. </el-col>
  9. </el-row>
  10. <!-- 列表 -->
  11. <el-table v-loading="loading" :data="list">
  12. <el-table-column label="主键编号" align="center" prop="id" />
  13. <el-table-column label="参数名称" align="center" prop="name" />
  14. <el-table-column label="数据源连接" align="center" prop="url" />
  15. <el-table-column label="用户名" align="center" prop="username" />
  16. <el-table-column label="创建时间" align="center" prop="createTime" width="180">
  17. <template slot-scope="scope">
  18. <span>{{ parseTime(scope.row.createTime) }}</span>
  19. </template>
  20. </el-table-column>
  21. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  22. <template slot-scope="scope">
  23. <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
  24. v-hasPermi="['infra:data-source-config:update']">修改</el-button>
  25. <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
  26. v-hasPermi="['infra:data-source-config:delete']">删除</el-button>
  27. </template>
  28. </el-table-column>
  29. </el-table>
  30. <!-- 对话框(添加 / 修改) -->
  31. <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
  32. <el-form ref="form" :model="form" :rules="rules" label-width="100px">
  33. <el-form-item label="参数名称" prop="name">
  34. <el-input v-model="form.name" placeholder="请输入参数名称" />
  35. </el-form-item>
  36. <el-form-item label="数据源连接" prop="url">
  37. <el-input v-model="form.url" placeholder="请输入数据源连接" />
  38. </el-form-item>
  39. <el-form-item label="用户名" prop="username">
  40. <el-input v-model="form.username" placeholder="请输入用户名" />
  41. </el-form-item>
  42. <el-form-item label="密码" prop="password">
  43. <el-input v-model="form.password" placeholder="请输入密码" />
  44. </el-form-item>
  45. </el-form>
  46. <div slot="footer" class="dialog-footer">
  47. <el-button type="primary" @click="submitForm">确 定</el-button>
  48. <el-button @click="cancel">取 消</el-button>
  49. </div>
  50. </el-dialog>
  51. </div>
  52. </template>
  53. <script>
  54. import { createDataSourceConfig, updateDataSourceConfig, deleteDataSourceConfig, getDataSourceConfig, getDataSourceConfigList } from "@/api/infra/dataSourceConfig";
  55. export default {
  56. name: "DataSourceConfig",
  57. components: {
  58. },
  59. data() {
  60. return {
  61. // 遮罩层
  62. loading: true,
  63. // 总条数
  64. total: 0,
  65. // 数据源配置列表
  66. list: [],
  67. // 弹出层标题
  68. title: "",
  69. // 是否显示弹出层
  70. open: false,
  71. // 表单参数
  72. form: {},
  73. // 表单校验
  74. rules: {
  75. name: [{ required: true, message: "参数名称不能为空", trigger: "blur" }],
  76. url: [{ required: true, message: "数据源连接不能为空", trigger: "blur" }],
  77. username: [{ required: true, message: "用户名不能为空", trigger: "blur" }],
  78. password: [{ required: true, message: "密码不能为空", trigger: "blur" }],
  79. }
  80. };
  81. },
  82. created() {
  83. this.getList();
  84. },
  85. methods: {
  86. /** 查询列表 */
  87. getList() {
  88. this.loading = true;
  89. // 执行查询
  90. getDataSourceConfigList().then(response => {
  91. this.list = response.data;
  92. this.loading = false;
  93. });
  94. },
  95. /** 取消按钮 */
  96. cancel() {
  97. this.open = false;
  98. this.reset();
  99. },
  100. /** 表单重置 */
  101. reset() {
  102. this.form = {
  103. id: undefined,
  104. name: undefined,
  105. url: undefined,
  106. username: undefined,
  107. password: undefined,
  108. };
  109. this.resetForm("form");
  110. },
  111. /** 新增按钮操作 */
  112. handleAdd() {
  113. this.reset();
  114. this.open = true;
  115. this.title = "添加数据源配置";
  116. },
  117. /** 修改按钮操作 */
  118. handleUpdate(row) {
  119. this.reset();
  120. const id = row.id;
  121. getDataSourceConfig(id).then(response => {
  122. this.form = response.data;
  123. this.open = true;
  124. this.title = "修改数据源配置";
  125. });
  126. },
  127. /** 提交按钮 */
  128. submitForm() {
  129. this.$refs["form"].validate(valid => {
  130. if (!valid) {
  131. return;
  132. }
  133. // 修改的提交
  134. if (this.form.id != null) {
  135. updateDataSourceConfig(this.form).then(response => {
  136. this.$modal.msgSuccess("修改成功");
  137. this.open = false;
  138. this.getList();
  139. });
  140. return;
  141. }
  142. // 添加的提交
  143. createDataSourceConfig(this.form).then(response => {
  144. this.$modal.msgSuccess("新增成功");
  145. this.open = false;
  146. this.getList();
  147. });
  148. });
  149. },
  150. /** 删除按钮操作 */
  151. handleDelete(row) {
  152. const id = row.id;
  153. this.$modal.confirm('是否确认删除数据源配置编号为"' + id + '"的数据项?').then(function() {
  154. return deleteDataSourceConfig(id);
  155. }).then(() => {
  156. this.getList();
  157. this.$modal.msgSuccess("删除成功");
  158. }).catch(() => {});
  159. }
  160. }
  161. };
  162. </script>