index.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <template>
  2. <div class="application scroll-y">
  3. <div class="application-head flex">
  4. <div class="manageTitle">应用管理</div>
  5. <div>
  6. <el-button size="default" @click="addApp" plain>新增</el-button>
  7. </div>
  8. </div>
  9. <div class="application-content">
  10. <Table :tableHeader="tableHeader" @btnClick="btnClick" :tableBtnGroup="tableBtnGroup" :tableData="tableData" />
  11. </div>
  12. <!--删除弹框-->
  13. <Dialog :flag="flag" msgTitle="删除应用" type="del" :delName="title" @delRest="delRest" @delRemove="remove" />
  14. <!--新增/编辑-->
  15. <Dialog :flag="editDialogVisible" :msgTitle="editDialogTitle" @submitForm="submitForm(ruleFormRef)" @resetForm="resetForm(ruleFormRef)" :show-flag="true">
  16. <el-form ref="ruleFormRef" :model="ruleForm" label-width="110px" class="demo-ruleForm">
  17. <el-form-item label="应用名称" prop="app_name">
  18. <el-input v-model="ruleForm.app_name" size="default" placeholder="请输入应用名称" />
  19. </el-form-item>
  20. <el-form-item label="appid" prop="app_show_id">
  21. <el-input v-model="ruleForm.app_show_id" size="default" placeholder="请输入appid" />
  22. </el-form-item>
  23. <el-form-item label="应用描述" prop="app_comment">
  24. <el-input v-model="ruleForm.app_comment" size="default" type="textarea" :rows="3" placeholder="请输入应用描述" />
  25. </el-form-item>
  26. </el-form>
  27. </Dialog>
  28. </div>
  29. </template>
  30. <script setup lang="ts">
  31. import { ref, onBeforeMount } from "vue";
  32. import { ElMessage, FormInstance, FormRules } from "element-plus";
  33. import Table from "@/components/tableTemp/index.vue";
  34. import * as _ from "lodash";
  35. import table from "../hooks/useTable";
  36. const ruleFormRef = ref<FormInstance>();
  37. const tableHeader = ref<any>([]);
  38. const tableData = ref<any>([]);
  39. const tableBtnGroup = [
  40. {
  41. name: "编辑",
  42. className: "editBtn",
  43. param: "edit",
  44. },
  45. {
  46. name: "删除",
  47. className: "delBtn",
  48. param: "del",
  49. },
  50. ];
  51. const flag = ref(false);
  52. const title = ref("");
  53. const dT = ref("add");
  54. const editDialogVisible = ref(false);
  55. const editDialogTitle = ref("新增应用");
  56. const ruleForm = ref<any>({
  57. app_name: "",
  58. app_comment: "",
  59. app_show_id: "",
  60. });
  61. const rowIndex = ref(1);
  62. const searchInfo = ref("");
  63. onBeforeMount(() => {
  64. getApp();
  65. });
  66. const getApp = async () => {
  67. const res = await table.getTable(DATACONTENT_ID.appTableId, [
  68. searchInfo.value,
  69. ]);
  70. tableHeader.value = res.tableHeader.value;
  71. tableData.value = res.tableData.value;
  72. };
  73. const btnClick = (index, row, param) => {
  74. rowIndex.value = _.cloneDeep(row);
  75. if (param == "del") {
  76. flag.value = true;
  77. title.value = row.app_name;
  78. } else {
  79. dT.value = "edit";
  80. editDialogVisible.value = true;
  81. editDialogTitle.value = "编辑应用";
  82. ruleForm.value = _.cloneDeep(row);
  83. }
  84. };
  85. const delRest = () => {
  86. flag.value = false;
  87. };
  88. const remove = () => {
  89. dataChange(3, rowIndex.value);
  90. flag.value = false;
  91. };
  92. const addApp = () => {
  93. editDialogVisible.value = true;
  94. editDialogTitle.value = "新增应用";
  95. dT.value = "add";
  96. ruleForm.value = {};
  97. };
  98. //增删改
  99. const dataChange = async (event, data) => {
  100. const { code, message } = await table.dataChange(
  101. SERVICE_ID.appScId,
  102. event,
  103. data
  104. );
  105. if (code == 0) {
  106. ElMessage.success(message);
  107. getApp();
  108. } else {
  109. ElMessage.error(message);
  110. }
  111. };
  112. const submitForm = async (formEl: FormInstance | undefined) => {
  113. if (!formEl) return;
  114. await formEl.validate((valid, fields) => {
  115. if (valid) {
  116. if (dT.value == "add") {
  117. dataChange(1, ruleForm.value);
  118. } else {
  119. dataChange(2, ruleForm.value);
  120. }
  121. editDialogVisible.value = false;
  122. } else {
  123. console.log("error submit!", fields);
  124. }
  125. });
  126. };
  127. const resetForm = (formEl: FormInstance | undefined) => {
  128. if (!formEl) return;
  129. formEl.resetFields();
  130. editDialogVisible.value = false;
  131. };
  132. </script>
  133. <style lang="scss" scoped>
  134. .application {
  135. &-content {
  136. margin-top: 24px;
  137. height: calc(100% - 56px);
  138. }
  139. }
  140. </style>