index.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <template>
  2. <div class="sys-codeGen-container">
  3. <el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
  4. <el-form :model="queryParams" ref="queryForm" :inline="true">
  5. <el-form-item>
  6. <el-button type="primary" icon="ele-Plus" @click="openAddDialog">增加</el-button>
  7. </el-form-item>
  8. </el-form>
  9. </el-card>
  10. <el-card shadow="hover" style="margin-top: 8px">
  11. <el-table :data="tableData" style="width: 100%" v-loading="loading" border>
  12. <el-table-column type="index" label="序号" width="55" align="center" />
  13. <el-table-column prop="configId" label="库定位器" show-overflow-tooltip />
  14. <el-table-column prop="tableName" label="表名称" show-overflow-tooltip />
  15. <el-table-column prop="busName" label="业务名" show-overflow-tooltip />
  16. <el-table-column prop="nameSpace" label="命名空间" show-overflow-tooltip />
  17. <el-table-column prop="authorName" label="作者姓名" show-overflow-tooltip />
  18. <el-table-column prop="generateType" label="生成方式" show-overflow-tooltip>
  19. <template #default="scope">
  20. <el-tag v-if="scope.row.generateType === 1"> 下载压缩包 </el-tag>
  21. <el-tag type="danger" v-else> 生成到本项目 </el-tag>
  22. </template>
  23. </el-table-column>
  24. <el-table-column label="操作" width="200" fixed="right" align="center" show-overflow-tooltip>
  25. <template #default="scope">
  26. <el-button size="small" text type="primary" @click="handleGenerate(scope.row)">开始生成</el-button>
  27. <el-button size="small" text type="primary" @click="openConfigDialog(scope.row)">配置</el-button>
  28. <el-button size="small" text type="primary" @click="openEditDialog(scope.row)">编辑</el-button>
  29. <el-button size="small" text type="primary" @click="deleConfig(scope.row)">删除</el-button>
  30. </template>
  31. </el-table-column>
  32. </el-table>
  33. <el-pagination
  34. v-model:currentPage="tableParams.page"
  35. v-model:page-size="tableParams.pageSize"
  36. :total="tableParams.total"
  37. :page-sizes="[10, 20, 50, 100]"
  38. small
  39. background
  40. @size-change="handleSizeChange"
  41. @current-change="handleCurrentChange"
  42. layout="total, sizes, prev, pager, next, jumper"
  43. />
  44. </el-card>
  45. <EditCodeGenDialog :title="editMenuTitle" ref="EditCodeGenRef" />
  46. <CodeConfigDialog ref="CodeConfigRef" />
  47. </div>
  48. </template>
  49. <script lang="ts">
  50. import { toRefs, reactive, onMounted, ref, defineComponent, onUnmounted } from 'vue';
  51. import { ElMessageBox, ElMessage } from 'element-plus';
  52. import mittBus from '/@/utils/mitt';
  53. import EditCodeGenDialog from './component/editCodeGenDialog.vue';
  54. import CodeConfigDialog from './component/genConfigDialog.vue';
  55. import { getAPI } from '/@/utils/axios-utils';
  56. import { SysCodeGenApi } from '/@/api-services/api';
  57. import { SysCodeGen } from '/@/api-services/models';
  58. export default defineComponent({
  59. name: 'sysCodeGen',
  60. components: { EditCodeGenDialog, CodeConfigDialog },
  61. setup() {
  62. const EditCodeGenRef = ref();
  63. const CodeConfigRef = ref();
  64. const state = reactive({
  65. loading: false,
  66. loading1: false,
  67. dbData: [] as any,
  68. configId: '',
  69. tableData: [] as Array<SysCodeGen>,
  70. tableName: '',
  71. queryParams: {
  72. name: undefined,
  73. code: undefined,
  74. tableName: undefined,
  75. },
  76. tableParams: {
  77. page: 1,
  78. pageSize: 10,
  79. total: 0 as any,
  80. },
  81. editMenuTitle: '',
  82. });
  83. onMounted(async () => {
  84. handleQuery();
  85. mittBus.on('submitRefresh', () => {
  86. handleQuery();
  87. });
  88. mittBus.on('submitRefreshFk', () => {
  89. state.tableData;
  90. });
  91. });
  92. onUnmounted(() => {
  93. mittBus.off('submitRefresh', () => {});
  94. mittBus.off('submitRefreshFk', () => {});
  95. });
  96. const openConfigDialog = (row: any) => {
  97. CodeConfigRef.value.openDialog(row);
  98. };
  99. // 表查询操作
  100. const handleQuery = async () => {
  101. state.loading = true;
  102. // let params = Object.assign(state.queryParams, state.tableParams);
  103. let res = await getAPI(SysCodeGenApi).sysCodeGenPageGet(
  104. undefined,
  105. undefined,
  106. undefined,
  107. undefined,
  108. undefined,
  109. undefined,
  110. undefined,
  111. undefined,
  112. state.queryParams.tableName,
  113. undefined,
  114. undefined,
  115. undefined,
  116. undefined,
  117. undefined,
  118. state.tableParams.page,
  119. state.tableParams.pageSize
  120. );
  121. state.tableData = res.data.result?.items ?? [];
  122. state.tableParams.total = res.data.result?.total;
  123. state.loading = false;
  124. };
  125. // 改变页面容量
  126. const handleSizeChange = (val: number) => {
  127. state.tableParams.pageSize = val;
  128. handleQuery();
  129. };
  130. // 改变页码序号
  131. const handleCurrentChange = (val: number) => {
  132. state.tableParams.page = val;
  133. handleQuery();
  134. };
  135. // 打开表增加页面
  136. const openAddDialog = () => {
  137. state.editMenuTitle = '增加';
  138. EditCodeGenRef.value.openDialog({ nameSpace: 'Admin.NET.Application', authorName: 'Admin.NET', generateType: '2' });
  139. };
  140. // 打开表编辑页面
  141. const openEditDialog = (row: any) => {
  142. state.editMenuTitle = '编辑';
  143. EditCodeGenRef.value.openDialog(row);
  144. };
  145. // 删除表
  146. const deleConfig = (row: any) => {
  147. ElMessageBox.confirm(`确定删除吗?`, '提示', {
  148. confirmButtonText: '确定',
  149. cancelButtonText: '取消',
  150. type: 'warning',
  151. })
  152. .then(async () => {
  153. await getAPI(SysCodeGenApi).sysCodeGenDeletePost([{ id: row.id }]);
  154. handleQuery();
  155. ElMessage.success('操作成功');
  156. })
  157. .catch(() => {});
  158. };
  159. // 开始生成代码
  160. const handleGenerate = (row: any) => {
  161. ElMessageBox.confirm(`确定要生成吗?`, '提示', {
  162. confirmButtonText: '确定',
  163. cancelButtonText: '取消',
  164. type: 'warning',
  165. })
  166. .then(async () => {
  167. await getAPI(SysCodeGenApi).sysCodeGenRunLocalPost(row);
  168. handleQuery();
  169. ElMessage.success('操作成功');
  170. })
  171. .catch(() => {});
  172. };
  173. return {
  174. EditCodeGenRef,
  175. CodeConfigRef,
  176. handleQuery,
  177. openAddDialog,
  178. openEditDialog,
  179. deleConfig,
  180. handleSizeChange,
  181. handleCurrentChange,
  182. openConfigDialog,
  183. handleGenerate,
  184. ...toRefs(state),
  185. };
  186. },
  187. });
  188. </script>