@befly-addon/admin 1.0.20 → 1.0.22

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.
@@ -2,64 +2,64 @@
2
2
  <div class="page-menu page-table">
3
3
  <div class="main-tool">
4
4
  <div class="left">
5
- <tiny-button type="primary" @click="$Method.onAction('add', {})">
5
+ <TinyButton type="primary" @click="$Method.onAction('add', {})">
6
6
  <template #icon>
7
- <i-lucide:plus />
7
+ <IconLucidePlus />
8
8
  </template>
9
9
  添加菜单
10
- </tiny-button>
10
+ </TinyButton>
11
11
  </div>
12
12
  <div class="right">
13
- <tiny-button @click="$Method.handleRefresh">
13
+ <TinyButton @click="$Method.handleRefresh">
14
14
  <template #icon>
15
- <i-lucide:rotate-cw />
15
+ <IconLucideRotateCw />
16
16
  </template>
17
17
  刷新
18
- </tiny-button>
18
+ </TinyButton>
19
19
  </div>
20
20
  </div>
21
21
  <div class="main-table">
22
- <tiny-grid :data="$Data.menuList" header-cell-class-name="custom-table-cell-class" size="small" height="100%" seq-serial>
23
- <tiny-grid-column type="index" title="序号" :width="60" />
24
- <tiny-grid-column field="name" title="菜单名称" />
25
- <tiny-grid-column field="path" title="路径" :width="200" />
26
- <tiny-grid-column field="icon" title="图标" :width="100">
22
+ <TinyGrid :data="$Data.menuList" header-cell-class-name="custom-table-cell-class" size="small" height="100%" seq-serial>
23
+ <TinyGridColumn type="index" title="序号" :width="60" />
24
+ <TinyGridColumn field="name" title="菜单名称" />
25
+ <TinyGridColumn field="path" title="路径" :width="200" />
26
+ <TinyGridColumn field="icon" title="图标" :width="100">
27
27
  <template #default="{ row }">
28
- <i-lucide:square v-if="row.icon" />
28
+ <IconLucideSquare v-if="row.icon" />
29
29
  <span v-else>-</span>
30
30
  </template>
31
- </tiny-grid-column>
32
- <tiny-grid-column field="sort" title="排序" :width="80" />
33
- <tiny-grid-column field="state" title="状态" :width="100">
31
+ </TinyGridColumn>
32
+ <TinyGridColumn field="sort" title="排序" :width="80" />
33
+ <TinyGridColumn field="state" title="状态" :width="100">
34
34
  <template #default="{ row }">
35
- <tiny-tag v-if="row.state === 1" type="success">正常</tiny-tag>
36
- <tiny-tag v-else-if="row.state === 2" type="warning">禁用</tiny-tag>
37
- <tiny-tag v-else type="danger">已删除</tiny-tag>
35
+ <TinyTag v-if="row.state === 1" type="success">正常</TinyTag>
36
+ <TinyTag v-else-if="row.state === 2" type="warning">禁用</TinyTag>
37
+ <TinyTag v-else type="danger">已删除</TinyTag>
38
38
  </template>
39
- </tiny-grid-column>
40
- <tiny-grid-column title="操作" :width="120" align="right">
39
+ </TinyGridColumn>
40
+ <TinyGridColumn title="操作" :width="120" align="right">
41
41
  <template #default="{ row }">
42
- <tiny-dropdown title="操作" trigger="click" size="small" border visible-arrow @item-click="(data) => $Method.onAction(data.itemData.command, row)">
42
+ <TinyDropdown title="操作" trigger="click" size="small" border visible-arrow @item-click="(data) => $Method.onAction(data.itemData.command, row)">
43
43
  <template #dropdown>
44
- <tiny-dropdown-menu>
45
- <tiny-dropdown-item :item-data="{ command: 'upd' }">
46
- <i-lucide:pencil style="width: 14px; height: 14px; margin-right: 6px" />
44
+ <TinyDropdownMenu>
45
+ <TinyDropdownItem :item-data="{ command: 'upd' }">
46
+ <IconLucidePencil />
47
47
  编辑
48
- </tiny-dropdown-item>
49
- <tiny-dropdown-item :item-data="{ command: 'del' }" divided>
50
- <i-lucide:trash-2 style="width: 14px; height: 14px; margin-right: 6px" />
48
+ </TinyDropdownItem>
49
+ <TinyDropdownItem :item-data="{ command: 'del' }" divided>
50
+ <IconLucideTrash2 style="width: 14px; height: 14px; margin-right: 6px" />
51
51
  删除
52
- </tiny-dropdown-item>
53
- </tiny-dropdown-menu>
52
+ </TinyDropdownItem>
53
+ </TinyDropdownMenu>
54
54
  </template>
55
- </tiny-dropdown>
55
+ </TinyDropdown>
56
56
  </template>
57
- </tiny-grid-column>
58
- </tiny-grid>
57
+ </TinyGridColumn>
58
+ </TinyGrid>
59
59
  </div>
60
60
 
61
61
  <div class="main-page">
62
- <tiny-pager :current-page="$Data.pagerConfig.currentPage" :page-size="$Data.pagerConfig.pageSize" :total="$Data.pagerConfig.total" @current-change="$Method.onPageChange" @size-change="$Method.handleSizeChange" />
62
+ <TinyPager :current-page="$Data.pagerConfig.currentPage" :page-size="$Data.pagerConfig.pageSize" :total="$Data.pagerConfig.total" @current-change="$Method.onPageChange" @size-change="$Method.handleSizeChange" />
63
63
  </div>
64
64
 
65
65
  <!-- 编辑对话框组件 -->
@@ -68,10 +68,15 @@
68
68
  </template>
69
69
 
70
70
  <script setup>
71
- import { ref } from 'vue';
72
- import { Modal } from '@opentiny/vue';
71
+ import { Button as TinyButton, Grid as TinyGrid, GridColumn as TinyGridColumn, Tag as TinyTag, Dropdown as TinyDropdown, DropdownMenu as TinyDropdownMenu, DropdownItem as TinyDropdownItem, Pager as TinyPager, Modal } from '@opentiny/vue';
72
+ import IconLucidePlus from '~icons/lucide/plus';
73
+ import IconLucideRotateCw from '~icons/lucide/rotate-cw';
74
+ import IconLucideSquare from '~icons/lucide/square';
75
+ import IconLucidePencil from '~icons/lucide/pencil';
76
+ import IconLucideTrash2 from '~icons/lucide/trash-2';
73
77
 
74
78
  import EditDialog from './components/edit.vue';
79
+ import { $Http } from '@/plugins/http';
75
80
 
76
81
  // 响应式数据
77
82
  const $Data = $ref({
@@ -9,6 +9,8 @@
9
9
  </template>
10
10
 
11
11
  <script setup>
12
+ import { useRouter, useRoute } from 'vue-router';
13
+ import { Modal } from '@opentiny/vue';
12
14
  // 新闻页面逻辑
13
15
  </script>
14
16
 
@@ -1,9 +1,9 @@
1
1
  <template>
2
- <tiny-dialog-box v-model:visible="$Data.visible" title="接口权限" width="900px" :append-to-body="true" :show-footer="true" top="5vh" @close="$Method.onClose">
2
+ <TinyDialogBox v-model:visible="$Data.visible" title="接口权限" width="900px" :append-to-body="true" :show-footer="true" top="5vh" @close="$Method.onClose">
3
3
  <div class="comp-role-api">
4
4
  <!-- 搜索框 -->
5
5
  <div class="search-box">
6
- <tiny-search v-model="$Data.searchText" placeholder="搜索接口名称或路径" clearable @update:modelValue="$Method.onSearch" />
6
+ <TinySearch v-model="$Data.searchText" placeholder="搜索接口名称或路径" clearable @update:modelValue="$Method.onSearch" />
7
7
  </div>
8
8
 
9
9
  <!-- 接口分组列表 -->
@@ -11,9 +11,9 @@
11
11
  <div v-for="group in $Data.filteredApiData" :key="group.name" class="api-group">
12
12
  <div class="group-header">{{ group.title }}</div>
13
13
  <div class="api-checkbox-list">
14
- <tiny-checkbox-group v-model="$Data.checkedApiIds">
15
- <tiny-checkbox v-for="api in group.apis" :key="api.id" :label="api.id"> {{ api.label }} </tiny-checkbox>
16
- </tiny-checkbox-group>
14
+ <TinyCheckboxGroup v-model="$Data.checkedApiIds">
15
+ <TinyCheckbox v-for="api in group.apis" :key="api.id" :label="api.id"> {{ api.label }} </TinyCheckbox>
16
+ </TinyCheckboxGroup>
17
17
  </div>
18
18
  </div>
19
19
  </div>
@@ -21,20 +21,20 @@
21
21
 
22
22
  <template #footer>
23
23
  <div class="footer-left">
24
- <tiny-button size="small" @click="$Method.onCheckAll">全选</tiny-button>
25
- <tiny-button size="small" @click="$Method.onUncheckAll">取消全选</tiny-button>
24
+ <TinyButton size="small" @click="$Method.onCheckAll">全选</TinyButton>
25
+ <TinyButton size="small" @click="$Method.onUncheckAll">取消全选</TinyButton>
26
26
  </div>
27
27
  <div class="footer-right">
28
- <tiny-button @click="$Method.onClose">取消</tiny-button>
29
- <tiny-button type="primary" @click="$Method.onSubmit">保存</tiny-button>
28
+ <TinyButton @click="$Method.onClose">取消</TinyButton>
29
+ <TinyButton type="primary" @click="$Method.onSubmit">保存</TinyButton>
30
30
  </div>
31
31
  </template>
32
- </tiny-dialog-box>
32
+ </TinyDialogBox>
33
33
  </template>
34
34
 
35
35
  <script setup>
36
- import { ref } from 'vue';
37
- import { Modal } from '@opentiny/vue';
36
+ import { Button as TinyButton, DialogBox as TinyDialogBox, Search as TinySearch, Checkbox as TinyCheckbox, CheckboxGroup as TinyCheckboxGroup, Modal } from '@opentiny/vue';
37
+ import { $Http } from '@/plugins/http';
38
38
 
39
39
  const $Prop = defineProps({
40
40
  modelValue: {
@@ -1,37 +1,38 @@
1
1
  <template>
2
- <tiny-dialog-box v-model:visible="$Data.visible" :title="$Prop.actionType === 'upd' ? '更新角色' : '添加角色'" width="600px" :append-to-body="true" :show-footer="true" :esc-closable="false" top="10vh" @close="$Method.onClose">
2
+ <TinyDialogBox v-model:visible="$Data.visible" :title="$Prop.actionType === 'upd' ? '更新角色' : '添加角色'" width="600px" :append-to-body="true" :show-footer="true" :esc-closable="false" top="10vh" @close="$Method.onClose">
3
3
  <div class="comp-role-edit">
4
- <tiny-form :model="$Data.formData" label-width="120px" label-position="left" :rules="$Data2.formRules" :ref="(el) => ($From.form = el)">
5
- <tiny-form-item label="角色名称" prop="name">
6
- <tiny-input v-model="$Data.formData.name" placeholder="请输入角色名称" />
7
- </tiny-form-item>
8
- <tiny-form-item label="角色代码" prop="code">
9
- <tiny-input v-model="$Data.formData.code" placeholder="请输入角色代码,如:admin" />
10
- </tiny-form-item>
11
- <tiny-form-item label="角色描述" prop="description">
12
- <tiny-input v-model="$Data.formData.description" type="textarea" placeholder="请输入角色描述" :rows="3" />
13
- </tiny-form-item>
14
- <tiny-form-item label="排序" prop="sort">
15
- <tiny-numeric v-model="$Data.formData.sort" :min="0" :max="9999" />
16
- </tiny-form-item>
17
- <tiny-form-item label="状态" prop="state">
18
- <tiny-radio-group v-model="$Data.formData.state">
19
- <tiny-radio :label="1">正常</tiny-radio>
20
- <tiny-radio :label="2">禁用</tiny-radio>
21
- </tiny-radio-group>
22
- </tiny-form-item>
23
- </tiny-form>
4
+ <TinyForm :model="$Data.formData" label-width="120px" label-position="left" :rules="$Data2.formRules" :ref="(el) => ($From.form = el)">
5
+ <TinyFormItem label="角色名称" prop="name">
6
+ <TinyInput v-model="$Data.formData.name" placeholder="请输入角色名称" />
7
+ </TinyFormItem>
8
+ <TinyFormItem label="角色代码" prop="code">
9
+ <TinyInput v-model="$Data.formData.code" placeholder="请输入角色代码,如:admin" />
10
+ </TinyFormItem>
11
+ <TinyFormItem label="角色描述" prop="description">
12
+ <TinyInput v-model="$Data.formData.description" type="textarea" placeholder="请输入角色描述" :rows="3" />
13
+ </TinyFormItem>
14
+ <TinyFormItem label="排序" prop="sort">
15
+ <TinyNumeric v-model="$Data.formData.sort" :min="0" :max="9999" />
16
+ </TinyFormItem>
17
+ <TinyFormItem label="状态" prop="state">
18
+ <TinyRadioGroup v-model="$Data.formData.state">
19
+ <TinyRadio :label="1">正常</TinyRadio>
20
+ <TinyRadio :label="2">禁用</TinyRadio>
21
+ </TinyRadioGroup>
22
+ </TinyFormItem>
23
+ </TinyForm>
24
24
  </div>
25
25
  <template #footer>
26
- <tiny-button @click="$Method.onClose">取消</tiny-button>
27
- <tiny-button type="primary" @click="$Method.onSubmit">确定</tiny-button>
26
+ <TinyButton @click="$Method.onClose">取消</TinyButton>
27
+ <TinyButton type="primary" @click="$Method.onSubmit">确定</TinyButton>
28
28
  </template>
29
- </tiny-dialog-box>
29
+ </TinyDialogBox>
30
30
  </template>
31
31
 
32
32
  <script setup>
33
- import { ref, shallowRef } from 'vue';
34
- import { Modal } from '@opentiny/vue';
33
+ import { shallowRef } from 'vue';
34
+ import { Button as TinyButton, DialogBox as TinyDialogBox, Form as TinyForm, FormItem as TinyFormItem, Input as TinyInput, Numeric as TinyNumeric, Radio as TinyRadio, RadioGroup as TinyRadioGroup, Modal } from '@opentiny/vue';
35
+ import { $Http } from '@/plugins/http';
35
36
 
36
37
  const $Prop = defineProps({
37
38
  modelValue: {
@@ -1,20 +1,21 @@
1
1
  <template>
2
- <tiny-dialog-box v-model:visible="$Data.visible" title="菜单权限" width="600px" :append-to-body="true" :show-footer="true" top="10vh" @close="$Method.onClose">
2
+ <TinyDialogBox v-model:visible="$Data.visible" title="菜单权限" width="600px" :append-to-body="true" :show-footer="true" top="10vh" @close="$Method.onClose">
3
3
  <div class="comp-role-menu">
4
- <tiny-tree :data="$Data.menuTreeData" node-key="id" show-checkbox default-expand-all :props="{ label: 'name' }" :ref="(el) => ($From.tree = el)" />
4
+ <TinyTree :data="$Data.menuTreeData" node-key="id" show-checkbox default-expand-all :props="{ label: 'name' }" :ref="(el) => ($From.tree = el)" />
5
5
  </div>
6
6
  <template #footer>
7
- <tiny-button @click="$Method.onClose">取消</tiny-button>
8
- <tiny-button type="primary" @click="$Method.onSubmit">保存</tiny-button>
7
+ <TinyButton @click="$Method.onClose">取消</TinyButton>
8
+ <TinyButton type="primary" @click="$Method.onSubmit">保存</TinyButton>
9
9
  </template>
10
- </tiny-dialog-box>
10
+ </TinyDialogBox>
11
11
  </template>
12
12
 
13
13
  <script setup>
14
- import { ref, nextTick, shallowRef } from 'vue';
15
- import { Modal } from '@opentiny/vue';
14
+ import { nextTick, shallowRef } from 'vue';
15
+ import { Button as TinyButton, DialogBox as TinyDialogBox, Tree as TinyTree, Modal } from '@opentiny/vue';
16
16
 
17
17
  import { arrayToTree } from '@/utils';
18
+ import { $Http } from '@/plugins/http';
18
19
 
19
20
  const $Prop = defineProps({
20
21
  modelValue: {
@@ -2,67 +2,67 @@
2
2
  <div class="page-role page-table">
3
3
  <div class="main-tool">
4
4
  <div class="left">
5
- <tiny-button type="primary" @click="$Method.onAction('add', {})">
5
+ <TinyButton type="primary" @click="$Method.onAction('add', {})">
6
6
  <template #icon>
7
- <i-lucide:plus />
7
+ <IconLucidePlus />
8
8
  </template>
9
9
  添加角色
10
- </tiny-button>
10
+ </TinyButton>
11
11
  </div>
12
12
  <div class="right">
13
- <tiny-button @click="$Method.handleRefresh">
13
+ <TinyButton @click="$Method.handleRefresh">
14
14
  <template #icon>
15
- <i-lucide:rotate-cw />
15
+ <IconLucideRotateCw />
16
16
  </template>
17
17
  刷新
18
- </tiny-button>
18
+ </TinyButton>
19
19
  </div>
20
20
  </div>
21
21
  <div class="main-table">
22
- <tiny-grid :data="$Data.tableData" header-cell-class-name="custom-table-cell-class" size="small" height="100%" show-overflow="tooltip" border seq-serial>
23
- <tiny-grid-column type="index" title="序号" align="center" :width="100" />
24
- <tiny-grid-column field="name" title="角色名称" :width="150" />
25
- <tiny-grid-column field="code" title="角色代码" :width="150" />
26
- <tiny-grid-column field="description" title="描述" :min-width="150" />
27
- <tiny-grid-column field="sort" title="排序" align="center" :width="80" />
28
- <tiny-grid-column field="state" title="状态" align="center" :width="100">
22
+ <TinyGrid :data="$Data.tableData" header-cell-class-name="custom-table-cell-class" size="small" height="100%" show-overflow="tooltip" border seq-serial>
23
+ <TinyGridColumn type="index" title="序号" align="center" :width="100" />
24
+ <TinyGridColumn field="name" title="角色名称" :width="150" />
25
+ <TinyGridColumn field="code" title="角色代码" :width="150" />
26
+ <TinyGridColumn field="description" title="描述" :min-width="150" />
27
+ <TinyGridColumn field="sort" title="排序" align="center" :width="80" />
28
+ <TinyGridColumn field="state" title="状态" align="center" :width="100">
29
29
  <template #default="{ row }">
30
- <tiny-tag v-if="row.state === 1" type="success">正常</tiny-tag>
31
- <tiny-tag v-else-if="row.state === 2" type="warning">禁用</tiny-tag>
32
- <tiny-tag v-else type="danger">已删除</tiny-tag>
30
+ <TinyTag v-if="row.state === 1" type="success">正常</TinyTag>
31
+ <TinyTag v-else-if="row.state === 2" type="warning">禁用</TinyTag>
32
+ <TinyTag v-else type="danger">已删除</TinyTag>
33
33
  </template>
34
- </tiny-grid-column>
35
- <tiny-grid-column title="操作" :width="120" align="center" fixed="right">
34
+ </TinyGridColumn>
35
+ <TinyGridColumn title="操作" :width="120" align="center" fixed="right">
36
36
  <template #default="{ row }">
37
- <tiny-dropdown title="操作" trigger="click" size="small" border visible-arrow @item-click="(data) => $Method.onAction(data.itemData.command, row)">
37
+ <TinyDropdown title="操作" trigger="click" size="small" border visible-arrow @item-click="(data) => $Method.onAction(data.itemData.command, row)">
38
38
  <template #dropdown>
39
- <tiny-dropdown-menu>
40
- <tiny-dropdown-item :item-data="{ command: 'upd' }">
41
- <i-lucide:pencil style="width: 14px; height: 14px; margin-right: 6px" />
39
+ <TinyDropdownMenu>
40
+ <TinyDropdownItem :item-data="{ command: 'upd' }">
41
+ <IconLucidePencil />
42
42
  编辑
43
- </tiny-dropdown-item>
44
- <tiny-dropdown-item :item-data="{ command: 'menu' }">
45
- <i-lucide:settings style="width: 14px; height: 14px; margin-right: 6px" />
43
+ </TinyDropdownItem>
44
+ <TinyDropdownItem :item-data="{ command: 'menu' }">
45
+ <IconLucideSettings />
46
46
  菜单权限
47
- </tiny-dropdown-item>
48
- <tiny-dropdown-item :item-data="{ command: 'api' }">
49
- <i-lucide:code style="width: 14px; height: 14px; margin-right: 6px" />
47
+ </TinyDropdownItem>
48
+ <TinyDropdownItem :item-data="{ command: 'api' }">
49
+ <IconLucideCode />
50
50
  接口权限
51
- </tiny-dropdown-item>
52
- <tiny-dropdown-item :item-data="{ command: 'del' }" divided>
53
- <i-lucide:trash-2 style="width: 14px; height: 14px; margin-right: 6px" />
51
+ </TinyDropdownItem>
52
+ <TinyDropdownItem :item-data="{ command: 'del' }" divided>
53
+ <IconLucideTrash2 style="width: 14px; height: 14px; margin-right: 6px" />
54
54
  删除
55
- </tiny-dropdown-item>
56
- </tiny-dropdown-menu>
55
+ </TinyDropdownItem>
56
+ </TinyDropdownMenu>
57
57
  </template>
58
- </tiny-dropdown>
58
+ </TinyDropdown>
59
59
  </template>
60
- </tiny-grid-column>
61
- </tiny-grid>
60
+ </TinyGridColumn>
61
+ </TinyGrid>
62
62
  </div>
63
63
 
64
64
  <div class="main-page">
65
- <tiny-pager :current-page="$Data.pagerConfig.currentPage" :page-size="$Data.pagerConfig.pageSize" :total="$Data.pagerConfig.total" @current-change="$Method.onPageChange" @size-change="$Method.handleSizeChange" />
65
+ <TinyPager :current-page="$Data.pagerConfig.currentPage" :page-size="$Data.pagerConfig.pageSize" :total="$Data.pagerConfig.total" @current-change="$Method.onPageChange" @size-change="$Method.handleSizeChange" />
66
66
  </div>
67
67
 
68
68
  <!-- 编辑对话框组件 -->
@@ -77,9 +77,17 @@
77
77
  </template>
78
78
 
79
79
  <script setup>
80
+ import { Button as TinyButton, Grid as TinyGrid, GridColumn as TinyGridColumn, Tag as TinyTag, Dropdown as TinyDropdown, DropdownMenu as TinyDropdownMenu, DropdownItem as TinyDropdownItem, Pager as TinyPager, Modal } from '@opentiny/vue';
81
+ import IconLucidePlus from '~icons/lucide/plus';
82
+ import IconLucideRotateCw from '~icons/lucide/rotate-cw';
83
+ import IconLucidePencil from '~icons/lucide/pencil';
84
+ import IconLucideSettings from '~icons/lucide/settings';
85
+ import IconLucideCode from '~icons/lucide/code';
86
+ import IconLucideTrash2 from '~icons/lucide/trash-2';
80
87
  import EditDialog from './components/edit.vue';
81
88
  import MenuDialog from './components/menu.vue';
82
89
  import ApiDialog from './components/api.vue';
90
+ import { $Http } from '@/plugins/http';
83
91
 
84
92
  // 响应式数据
85
93
  const $Data = $ref({
@@ -5,7 +5,7 @@
5
5
  <div class="toolbar-left">
6
6
  <t-button theme="primary" @click="$Method.handleAdd">
7
7
  <template #icon>
8
- <i-lucide:plus />
8
+ <IconLucidePlus />
9
9
  </template>
10
10
  添加管理员
11
11
  </t-button>
@@ -16,13 +16,13 @@
16
16
  <t-select v-model="$Data.searchState" placeholder="状态" clearable style="width: 120px" :options="$Data.stateOptions" @change="$Method.handleSearch" />
17
17
  <t-button theme="default" @click="$Method.handleSearch">
18
18
  <template #icon>
19
- <i-lucide:search />
19
+ <IconLucideSearch />
20
20
  </template>
21
21
  搜索
22
22
  </t-button>
23
23
  <t-button theme="default" @click="$Method.handleReset">
24
24
  <template #icon>
25
- <i-lucide:rotate-cw />
25
+ <IconLucideRotateCw />
26
26
  </template>
27
27
  重置
28
28
  </t-button>
@@ -34,9 +34,9 @@
34
34
  <div class="table-wrapper">
35
35
  <t-table :data="$Data.userList" :columns="$Data.columns" row-key="id" :loading="$Data.loading" bordered stripe hover max-height="100%">
36
36
  <template #state="{ row }">
37
- <tiny-tag v-if="row.state === 1" type="success">正常</tiny-tag>
38
- <tiny-tag v-else-if="row.state === 2" type="warning">禁用</tiny-tag>
39
- <tiny-tag v-else type="danger">已删除</tiny-tag>
37
+ <TinyTag v-if="row.state === 1" type="success">正常</TinyTag>
38
+ <TinyTag v-else-if="row.state === 2" type="warning">禁用</TinyTag>
39
+ <TinyTag v-else type="danger">已删除</TinyTag>
40
40
  </template>
41
41
 
42
42
  <template #lastLoginTime="{ row }">
@@ -63,7 +63,7 @@
63
63
  <t-dialog v-model:visible="$Data.roleVisible" header="分配角色" width="600px" :on-confirm="$Method.handleRoleSubmit">
64
64
  <div class="role-dialog">
65
65
  <div class="user-info">
66
- <tiny-tag type="primary">{{ $Data.currentUser.username }}</tiny-tag>
66
+ <TinyTag type="primary">{{ $Data.currentUser.username }}</TinyTag>
67
67
  <span class="user-email">{{ $Data.currentUser.email }}</span>
68
68
  </div>
69
69
  <t-divider />
@@ -74,7 +74,11 @@
74
74
  </template>
75
75
 
76
76
  <script setup>
77
- import { ref } from 'vue';
77
+ import { Tag as TinyTag, Modal } from '@opentiny/vue';
78
+ import IconLucidePlus from '~icons/lucide/plus';
79
+ import IconLucideSearch from '~icons/lucide/search';
80
+ import IconLucideRotateCw from '~icons/lucide/rotate-cw';
81
+ import { $Http } from '@/plugins/http';
78
82
 
79
83
  // 响应式数据
80
84
  const $Data = $ref({