index.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <template>
  2. <div class="flex-grow p-5">
  3. <el-card>
  4. <div>
  5. <el-header>
  6. <div class="yxt-flex-between">
  7. <div>
  8. <el-tag>系统配置:您可以对您的网站进行自定义配置</el-tag>
  9. </div>
  10. <div>
  11. <el-button-group>
  12. <el-button type="primary" size="small" :icon="FolderAdd" @click="tabsDrawer = true"> 添加分组 </el-button>
  13. <el-button size="small" type="warning" :icon="Edit" @click="contentDrawer = true"> 添加内容 </el-button>
  14. </el-button-group>
  15. </div>
  16. </div>
  17. </el-header>
  18. </div>
  19. <div>
  20. <el-drawer v-if="tabsDrawer" title="添加分组" v-model="tabsDrawer" direction="rtl" size="30%">
  21. <addTabs></addTabs>
  22. </el-drawer>
  23. </div>
  24. <div>
  25. <el-drawer v-if="contentDrawer" title="添加内容" v-model="contentDrawer" direction="rtl" size="30%">
  26. <addContent></addContent>
  27. </el-drawer>
  28. </div>
  29. <el-tabs type="border-card" v-model="editableTabsValue">
  30. <el-tab-pane :key="index" v-for="(item, index) in editableTabs" :label="item.title" :name="item.key">
  31. <span slot="label" v-if="item.icon"><i :class="item.icon" style="font-weight: 1000; font-size: 16px"></i></span>
  32. <el-row v-if="item.icon">
  33. <el-col :offset="4" :span="8">
  34. <addContent></addContent>
  35. </el-col>
  36. </el-row>
  37. <formContent v-else :options="item" :editableTabsItem="item"></formContent>
  38. </el-tab-pane>
  39. </el-tabs>
  40. </el-card>
  41. </div>
  42. </template>
  43. <script lang="ts" setup name="config">
  44. import { Edit, FolderAdd } from '@element-plus/icons-vue';
  45. import * as api from './api';
  46. import addTabs from './components/addTabs.vue';
  47. import addContent from './components/addContent.vue';
  48. import formContent from './components/formContent.vue';
  49. import { ref, onMounted } from 'vue';
  50. let tabsDrawer = ref(false);
  51. let contentDrawer = ref(false);
  52. let editableTabsValue = ref('base');
  53. let editableTabs: any = ref([]);
  54. const getTabs = () => {
  55. api
  56. .GetList({
  57. limit: 999,
  58. parent__isnull: true,
  59. })
  60. .then((res: any) => {
  61. let data = res.data;
  62. data.push({
  63. title: '无',
  64. icon: 'el-icon-plus',
  65. key: 'null',
  66. });
  67. editableTabs.value = data;
  68. });
  69. };
  70. onMounted(() => {
  71. getTabs();
  72. });
  73. </script>
  74. <style>
  75. /*用 flex 两边对齐*/
  76. .yxt-flex-between {
  77. display: flex;
  78. justify-content: space-between;
  79. }
  80. </style>