befly-admin-ui 1.10.0 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div :class="['page-table-detail', 'page-table', { 'page-table--with-pagination': props.isPagination }]">
3
- <div class="main-tool">
3
+ <div v-if="hasToolBar" class="main-tool">
4
4
  <div class="left">
5
5
  <slot name="toolLeft" :reload="reload" :current-row="$Data.currentRow"></slot>
6
6
  </div>
@@ -237,6 +237,10 @@ const forwardedTableSlotNames = computed(() => {
237
237
  return names;
238
238
  });
239
239
 
240
+ const hasToolBar = computed(() => {
241
+ return Boolean(slots.toolLeft) || Boolean(slots.toolRight);
242
+ });
243
+
240
244
  const tableRenderSlotNames = computed(() => {
241
245
  const out = [];
242
246
  const set = new Set();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "befly-admin-ui",
3
- "version": "1.10.0",
4
- "gitHead": "976e70ee1f6f959e9def8189bd43ad4c0d454b7f",
3
+ "version": "1.10.1",
4
+ "gitHead": "c14b3572a265a384993be0d375d023f82cdd9ffd",
5
5
  "private": false,
6
6
  "description": "Befly - 管理后台功能组件",
7
7
  "keywords": [
@@ -17,11 +17,6 @@
17
17
  <SearchIcon />
18
18
  </template>
19
19
  </TInput>
20
- <TButton shape="circle" @click="handleRefresh(scope.reload)">
21
- <template #icon>
22
- <RefreshIcon />
23
- </template>
24
- </TButton>
25
20
  </template>
26
21
 
27
22
  <template #operation="{ row, deleteRow }">
@@ -53,7 +48,7 @@
53
48
  import { onMounted, reactive } from "vue";
54
49
 
55
50
  import { Button as TButton, Dropdown as TDropdown, DropdownItem as TDropdownItem, DropdownMenu as TDropdownMenu, Input as TInput, Option as TOption, Select as TSelect, MessagePlugin } from "tdesign-vue-next";
56
- import { AddIcon, ChevronDownIcon, DeleteIcon, EditIcon, RefreshIcon, SearchIcon } from "tdesign-icons-vue-next";
51
+ import { AddIcon, ChevronDownIcon, DeleteIcon, EditIcon, SearchIcon } from "tdesign-icons-vue-next";
57
52
  import EditDialog from "./components/edit.vue";
58
53
  import { $Http } from "@/plugins/http";
59
54
  import PageTableDetail from "befly-admin-ui/components/pageTableDetail.vue";
@@ -74,7 +69,7 @@ const $Data = reactive({
74
69
  ]),
75
70
  endpoints: {
76
71
  list: {
77
- path: "/core/dict/list",
72
+ path: "/core/dict/select",
78
73
  dropValues: [""],
79
74
  buildData: () => {
80
75
  return {
@@ -126,12 +121,6 @@ function handleSearch(reload) {
126
121
  reload({ keepSelection: false, resetPage: true });
127
122
  }
128
123
 
129
- function handleRefresh(reload) {
130
- $Data.searchTypeCode = "";
131
- $Data.searchKeyword = "";
132
- reload({ keepSelection: false, resetPage: true });
133
- }
134
-
135
124
  function onAction(type, row) {
136
125
  if (type === "add") {
137
126
  $Data.actionType = "add";
@@ -14,11 +14,6 @@
14
14
  <SearchIcon />
15
15
  </template>
16
16
  </TInput>
17
- <TButton shape="circle" @click="handleRefresh(scope.reload)">
18
- <template #icon>
19
- <RefreshIcon />
20
- </template>
21
- </TButton>
22
17
  </template>
23
18
 
24
19
  <template #operation="{ row, deleteRow }">
@@ -49,7 +44,7 @@
49
44
  <script setup>
50
45
  import { reactive } from "vue";
51
46
  import { Button as TButton, Dropdown as TDropdown, DropdownItem as TDropdownItem, DropdownMenu as TDropdownMenu, Input as TInput } from "tdesign-vue-next";
52
- import { AddIcon, ChevronDownIcon, DeleteIcon, EditIcon, RefreshIcon, SearchIcon } from "tdesign-icons-vue-next";
47
+ import { AddIcon, ChevronDownIcon, DeleteIcon, EditIcon, SearchIcon } from "tdesign-icons-vue-next";
53
48
  import EditDialog from "./components/edit.vue";
54
49
  import PageTableDetail from "befly-admin-ui/components/pageTableDetail.vue";
55
50
  import { withDefaultColumns } from "befly-admin-ui/utils/withDefaultColumns";
@@ -65,7 +60,7 @@ const $Data = reactive({
65
60
  ]),
66
61
  endpoints: {
67
62
  list: {
68
- path: "/core/dictType/list",
63
+ path: "/core/dictType/select",
69
64
  dropValues: [0, ""],
70
65
  dropKeyValue: {
71
66
  keyword: [""]
@@ -106,11 +101,6 @@ function handleSearch(reload) {
106
101
  reload({ keepSelection: false, resetPage: true });
107
102
  }
108
103
 
109
- function handleRefresh(reload) {
110
- $Data.searchKeyword = "";
111
- reload({ keepSelection: false, resetPage: true });
112
- }
113
-
114
104
  function onAction(type, row) {
115
105
  if (type === "add") {
116
106
  $Data.actionType = "add";
@@ -12,14 +12,6 @@
12
12
  </TSelect>
13
13
  </template>
14
14
 
15
- <template #toolRight="scope">
16
- <TButton shape="circle" @click="onReload(scope.reload)">
17
- <template #icon>
18
- <RefreshIcon />
19
- </template>
20
- </TButton>
21
- </template>
22
-
23
15
  <template #isSystem="{ row }">
24
16
  <TTag v-if="row.isSystem === 1" shape="round" theme="warning" variant="light-outline">系统</TTag>
25
17
  <TTag v-else shape="round" variant="light-outline">自定义</TTag>
@@ -77,7 +69,7 @@
77
69
  <script setup>
78
70
  import { reactive } from "vue";
79
71
  import { Button as TButton, Dropdown as TDropdown, DropdownItem as TDropdownItem, DropdownMenu as TDropdownMenu, Option as TOption, Select as TSelect, Tag as TTag } from "tdesign-vue-next";
80
- import { AddIcon, ChevronDownIcon, DeleteIcon, EditIcon, RefreshIcon } from "tdesign-icons-vue-next";
72
+ import { AddIcon, ChevronDownIcon, DeleteIcon, EditIcon } from "tdesign-icons-vue-next";
81
73
  import EditDialog from "./components/edit.vue";
82
74
  import DetailPanel from "befly-admin-ui/components/detailPanel.vue";
83
75
  import PageTableDetail from "befly-admin-ui/components/pageTableDetail.vue";
@@ -99,7 +91,7 @@ const $Data = reactive({
99
91
  ]),
100
92
  endpoints: {
101
93
  list: {
102
- path: "/core/sysConfig/list",
94
+ path: "/core/sysConfig/select",
103
95
  dropValues: [0, ""],
104
96
  dropKeyValue: {
105
97
  group: [""]
@@ -140,10 +132,6 @@ function handleFilter(reload) {
140
132
  reload({ keepSelection: false, resetPage: true });
141
133
  }
142
134
 
143
- function onReload(reload) {
144
- reload({ keepSelection: true });
145
- }
146
-
147
135
  function onDialogSuccess(reload) {
148
136
  reload({ keepSelection: true });
149
137
  }
@@ -15,14 +15,6 @@
15
15
  </TButton>
16
16
  </template>
17
17
 
18
- <template #toolRight="scope">
19
- <TButton shape="circle" @click="onReload(scope.reload)">
20
- <template #icon>
21
- <RefreshIcon />
22
- </template>
23
- </TButton>
24
- </template>
25
-
26
18
  <template #sendResult="{ row }">
27
19
  <TTag v-if="row.sendResult === 1" shape="round" theme="success" variant="light-outline">成功</TTag>
28
20
  <TTag v-else shape="round" theme="danger" variant="light-outline">失败</TTag>
@@ -71,7 +63,7 @@
71
63
  <script setup>
72
64
  import { reactive, ref } from "vue";
73
65
  import { Button as TButton, Form as TForm, FormItem as TFormItem, Input as TInput, MessagePlugin, Space as TSpace, Tag as TTag, Textarea as TTextarea } from "tdesign-vue-next";
74
- import { CheckCircleIcon, RefreshIcon, SendIcon } from "tdesign-icons-vue-next";
66
+ import { CheckCircleIcon, SendIcon } from "tdesign-icons-vue-next";
75
67
  import PageDialog from "befly-admin-ui/components/pageDialog.vue";
76
68
  import DetailPanel from "befly-admin-ui/components/detailPanel.vue";
77
69
  import { $Http } from "@/plugins/http";
@@ -115,10 +107,6 @@ const $Data = reactive({
115
107
  }
116
108
  });
117
109
 
118
- function onReload(reload) {
119
- reload({ keepSelection: true });
120
- }
121
-
122
110
  function onCancelSend() {
123
111
  $Data.sendDialogVisible = false;
124
112
  }
@@ -28,14 +28,6 @@
28
28
  <TInput v-model="$Data.filter.osName" clearable placeholder="操作系统" style="width: 160px" @enter="handleFilter(scope.reload)" @clear="handleFilter(scope.reload)" />
29
29
  </template>
30
30
 
31
- <template #toolRight="scope">
32
- <TButton shape="circle" @click="onReload(scope.reload)">
33
- <template #icon>
34
- <RefreshIcon />
35
- </template>
36
- </TButton>
37
- </template>
38
-
39
31
  <template #errorType="{ row }">
40
32
  <TTag shape="round" :theme="getErrorTheme(row.errorType)" variant="light-outline">{{ formatErrorType(row.errorType) }}</TTag>
41
33
  </template>
@@ -101,7 +93,7 @@
101
93
  <script setup>
102
94
  import { reactive } from "vue";
103
95
  import { Button as TButton, Input as TInput, MessagePlugin, Option as TOption, Select as TSelect, Tag as TTag } from "tdesign-vue-next";
104
- import { RefreshIcon, SearchIcon } from "tdesign-icons-vue-next";
96
+ import { SearchIcon } from "tdesign-icons-vue-next";
105
97
  import DetailPanel from "befly-admin-ui/components/detailPanel.vue";
106
98
  import PageTableDetail from "befly-admin-ui/components/pageTableDetail.vue";
107
99
  import { withDefaultColumns } from "befly-admin-ui/utils/withDefaultColumns";
@@ -181,10 +173,6 @@ function handleFilter(reload) {
181
173
  reload({ keepSelection: false, resetPage: true });
182
174
  }
183
175
 
184
- function onReload(reload) {
185
- reload({ keepSelection: true });
186
- }
187
-
188
176
  function isDetailExpanded(id) {
189
177
  return Number($Data.detailExpandedId) === Number(id || 0);
190
178
  }
@@ -1,13 +1,5 @@
1
1
  <template>
2
2
  <PageTableDetail class="page-login-log page-table" :columns="$Data.columns" :endpoints="$Data.endpoints" :table-slot-names="['loginResult', 'loginTime', 'deviceType']">
3
- <template #toolRight="scope">
4
- <TButton shape="circle" @click="onReload(scope.reload)">
5
- <template #icon>
6
- <RefreshIcon />
7
- </template>
8
- </TButton>
9
- </template>
10
-
11
3
  <template #loginResult="{ row }">
12
4
  <TTag v-if="row.loginResult === 1" shape="round" theme="success" variant="light-outline">成功</TTag>
13
5
  <TTag v-else shape="round" theme="danger" variant="light-outline">失败</TTag>
@@ -40,8 +32,7 @@
40
32
 
41
33
  <script setup>
42
34
  import { reactive } from "vue";
43
- import { Button as TButton, Tag as TTag } from "tdesign-vue-next";
44
- import { RefreshIcon } from "tdesign-icons-vue-next";
35
+ import { Tag as TTag } from "tdesign-vue-next";
45
36
  import DetailPanel from "befly-admin-ui/components/detailPanel.vue";
46
37
  import PageTableDetail from "befly-admin-ui/components/pageTableDetail.vue";
47
38
  import { withDefaultColumns } from "befly-admin-ui/utils/withDefaultColumns";
@@ -68,16 +59,12 @@ const $Data = reactive({
68
59
  ]),
69
60
  endpoints: {
70
61
  list: {
71
- path: "/core/loginLog/list",
62
+ path: "/core/loginLog/select",
72
63
  dropValues: [""]
73
64
  }
74
65
  }
75
66
  });
76
67
 
77
- function onReload(reload) {
78
- reload({ keepSelection: true });
79
- }
80
-
81
68
  function formatTime(timestamp) {
82
69
  if (!timestamp) return "-";
83
70
  const date = new Date(timestamp);
@@ -13,14 +13,6 @@
13
13
  </TSelect>
14
14
  </template>
15
15
 
16
- <template #toolRight="scope">
17
- <TButton shape="circle" @click="onReload(scope.reload)">
18
- <template #icon>
19
- <RefreshIcon />
20
- </template>
21
- </TButton>
22
- </template>
23
-
24
16
  <template #result="{ row }">
25
17
  <TTag v-if="row.result === 1" shape="round" theme="success" variant="light-outline">成功</TTag>
26
18
  <TTag v-else shape="round" theme="danger" variant="light-outline">失败</TTag>
@@ -63,8 +55,7 @@
63
55
 
64
56
  <script setup>
65
57
  import { reactive } from "vue";
66
- import { Button as TButton, Option as TOption, Select as TSelect, Tag as TTag } from "tdesign-vue-next";
67
- import { RefreshIcon } from "tdesign-icons-vue-next";
58
+ import { Option as TOption, Select as TSelect, Tag as TTag } from "tdesign-vue-next";
68
59
  import DetailPanel from "befly-admin-ui/components/detailPanel.vue";
69
60
  import PageTableDetail from "befly-admin-ui/components/pageTableDetail.vue";
70
61
  import { withDefaultColumns } from "befly-admin-ui/utils/withDefaultColumns";
@@ -88,7 +79,7 @@ const $Data = reactive({
88
79
  ]),
89
80
  endpoints: {
90
81
  list: {
91
- path: "/core/operateLog/list",
82
+ path: "/core/operateLog/select",
92
83
  dropValues: [""],
93
84
  dropKeyValue: {
94
85
  module: [""],
@@ -127,10 +118,6 @@ function handleFilter(reload) {
127
118
  reload({ keepSelection: false, resetPage: true });
128
119
  }
129
120
 
130
- function onReload(reload) {
131
- reload({ keepSelection: true });
132
- }
133
-
134
121
  function formatTime(timestamp) {
135
122
  if (!timestamp) return "-";
136
123
  const date = new Date(timestamp);
@@ -58,7 +58,7 @@ const $Data = reactive({
58
58
  ]),
59
59
  endpoints: {
60
60
  list: {
61
- path: "/core/admin/list",
61
+ path: "/core/admin/select",
62
62
  dropValues: [""]
63
63
  },
64
64
  delete: {
@@ -9,13 +9,6 @@
9
9
  </TInput>
10
10
  <span style="margin-left: 16px; color: var(--text-secondary); font-size: 13px">共 {{ $Data.allData.length }} 个接口</span>
11
11
  </div>
12
- <div class="right">
13
- <TButton shape="circle" @click="handleRefresh">
14
- <template #icon>
15
- <RefreshIcon />
16
- </template>
17
- </TButton>
18
- </div>
19
12
  </div>
20
13
 
21
14
  <div class="main-content">
@@ -60,8 +53,8 @@
60
53
 
61
54
  <script setup>
62
55
  import { reactive } from "vue";
63
- import { Button as TButton, Table as TTable, Tag as TTag, Input as TInput, MessagePlugin } from "tdesign-vue-next";
64
- import { RefreshIcon, SearchIcon } from "tdesign-icons-vue-next";
56
+ import { Table as TTable, Tag as TTag, Input as TInput, MessagePlugin } from "tdesign-vue-next";
57
+ import { SearchIcon } from "tdesign-icons-vue-next";
65
58
  import DetailPanel from "befly-admin-ui/components/detailPanel.vue";
66
59
  import { $Http } from "@/plugins/http";
67
60
  import { withDefaultColumns } from "befly-admin-ui/utils/withDefaultColumns";
@@ -109,10 +102,6 @@ async function loadApiAll() {
109
102
  }
110
103
  }
111
104
 
112
- function handleRefresh() {
113
- loadApiAll();
114
- }
115
-
116
105
  function handleSearch() {
117
106
  if (!$Data.searchKeyword) {
118
107
  $Data.tableData = $Data.allData;
@@ -1,19 +1,18 @@
1
1
  <template>
2
2
  <div class="page-menu page-table">
3
- <div class="main-tool">
4
- <div class="left"></div>
5
- <div class="right">
6
- <TButton shape="circle" @click="handleRefresh">
7
- <template #icon>
8
- <RefreshIcon />
9
- </template>
10
- </TButton>
11
- </div>
12
- </div>
13
-
14
3
  <div class="main-content">
15
4
  <div class="main-table">
16
- <TTable :data="$Data.tableData" :columns="$Data.columns" :loading="$Data.loading" :active-row-keys="$Data.activeRowKeys" row-key="id" height="calc(100vh - var(--search-height) - var(--layout-gap) * 2)" active-row-type="single" :tree="{ childrenKey: 'children', treeNodeColumnIndex: 0, defaultExpandAll: true }" @active-change="onActiveChange">
5
+ <TTable
6
+ :data="$Data.tableData"
7
+ :columns="$Data.columns"
8
+ :loading="$Data.loading"
9
+ :active-row-keys="$Data.activeRowKeys"
10
+ row-key="id"
11
+ height="calc(100vh - var(--layout-gap) * 2)"
12
+ active-row-type="single"
13
+ :tree="{ childrenKey: 'children', treeNodeColumnIndex: 0, defaultExpandAll: true }"
14
+ @active-change="onActiveChange"
15
+ >
17
16
  <template #state="{ row }">
18
17
  <TTag v-if="row.state === 1" shape="round" theme="success" variant="light-outline">正常</TTag>
19
18
  <TTag v-else-if="row.state === 2" shape="round" theme="warning" variant="light-outline">禁用</TTag>
@@ -31,8 +30,7 @@
31
30
 
32
31
  <script setup>
33
32
  import { reactive } from "vue";
34
- import { Button as TButton, Table as TTable, Tag as TTag, MessagePlugin } from "tdesign-vue-next";
35
- import { RefreshIcon } from "tdesign-icons-vue-next";
33
+ import { Table as TTable, Tag as TTag, MessagePlugin } from "tdesign-vue-next";
36
34
  import DetailPanel from "befly-admin-ui/components/detailPanel.vue";
37
35
  import { $Http } from "@/plugins/http";
38
36
  import { arrayToTree } from "befly-admin-ui/utils/arrayToTree";
@@ -81,10 +79,6 @@ async function apiMenuList() {
81
79
  }
82
80
  }
83
81
 
84
- function handleRefresh() {
85
- apiMenuList();
86
- }
87
-
88
82
  function onActiveChange(value, context) {
89
83
  if (value.length === 0 && $Data.activeRowKeys.length > 0) {
90
84
  return;
@@ -8,14 +8,6 @@
8
8
  </TButton>
9
9
  </template>
10
10
 
11
- <template #toolRight="scope">
12
- <TButton shape="circle" @click="onReload(scope.reload)">
13
- <template #icon>
14
- <RefreshIcon />
15
- </template>
16
- </TButton>
17
- </template>
18
-
19
11
  <template #state="{ row }">
20
12
  <TTag v-if="row.state === 1" shape="round" theme="success" variant="light-outline">正常</TTag>
21
13
  <TTag v-else-if="row.state === 2" shape="round" theme="warning" variant="light-outline">禁用</TTag>
@@ -73,7 +65,7 @@
73
65
  <script setup>
74
66
  import { reactive } from "vue";
75
67
  import { Button as TButton, Dropdown as TDropdown, DropdownItem as TDropdownItem, DropdownMenu as TDropdownMenu, Tag as TTag } from "tdesign-vue-next";
76
- import { AddIcon, ChevronDownIcon, CodeIcon, DeleteIcon, EditIcon, RefreshIcon, SettingIcon } from "tdesign-icons-vue-next";
68
+ import { AddIcon, ChevronDownIcon, CodeIcon, DeleteIcon, EditIcon, SettingIcon } from "tdesign-icons-vue-next";
77
69
  import EditDialog from "./components/edit.vue";
78
70
  import MenuDialog from "./components/menu.vue";
79
71
  import ApiDialog from "./components/api.vue";
@@ -94,7 +86,7 @@ const $Data = reactive({
94
86
  ]),
95
87
  endpoints: {
96
88
  list: {
97
- path: "/core/role/list",
89
+ path: "/core/role/select",
98
90
  dropValues: [""]
99
91
  },
100
92
  delete: {
@@ -121,10 +113,6 @@ function onAdd() {
121
113
  onAction("add", {});
122
114
  }
123
115
 
124
- function onReload(reload) {
125
- reload({ keepSelection: true });
126
- }
127
-
128
116
  function onDialogSuccess(reload) {
129
117
  reload({ keepSelection: true });
130
118
  }
@@ -17,11 +17,6 @@
17
17
  <SearchIcon />
18
18
  </template>
19
19
  </TInput>
20
- <TButton shape="circle" @click="handleRefresh(scope.reload)">
21
- <template #icon>
22
- <RefreshIcon />
23
- </template>
24
- </TButton>
25
20
  </template>
26
21
 
27
22
  <template #thumbnail="{ row }">
@@ -83,7 +78,7 @@
83
78
  <script setup>
84
79
  import { reactive } from "vue";
85
80
  import { Button as TButton, Image as TImage, Input as TInput, MessagePlugin, Tag as TTag, Upload as TUpload } from "tdesign-vue-next";
86
- import { RefreshIcon, SearchIcon, UploadIcon } from "tdesign-icons-vue-next";
81
+ import { SearchIcon, UploadIcon } from "tdesign-icons-vue-next";
87
82
 
88
83
  import DetailPanel from "befly-admin-ui/components/detailPanel.vue";
89
84
  import PageTableDetail from "befly-admin-ui/components/pageTableDetail.vue";
@@ -131,10 +126,6 @@ function handleSearch(reload) {
131
126
  reload({ keepSelection: false, resetPage: true });
132
127
  }
133
128
 
134
- function handleRefresh(reload) {
135
- reload({ keepSelection: true });
136
- }
137
-
138
129
  async function copyUrl(url) {
139
130
  try {
140
131
  await navigator.clipboard.writeText(url);