...
|
...
|
@@ -31,6 +31,16 @@ |
31
|
31
|
]"
|
32
|
32
|
/>
|
33
|
33
|
</template>
|
|
34
|
+ <template #status="{ record }">
|
|
35
|
+ <Switch
|
|
36
|
+ :disabled="disabled"
|
|
37
|
+ :checked="record.status === 1"
|
|
38
|
+ :loading="record.pendingStatus"
|
|
39
|
+ checkedChildren="启用"
|
|
40
|
+ unCheckedChildren="禁用"
|
|
41
|
+ @change="(checked:boolean)=>statusChange(checked,record)"
|
|
42
|
+ />
|
|
43
|
+ </template>
|
34
|
44
|
</BasicTable>
|
35
|
45
|
<ItemDrawer @register="registerDrawer" @success="handleSuccess" />
|
36
|
46
|
</div>
|
...
|
...
|
@@ -38,30 +48,40 @@ |
38
|
48
|
</div>
|
39
|
49
|
</template>
|
40
|
50
|
<script lang="ts">
|
41
|
|
- import { defineComponent } from 'vue';
|
42
|
|
-
|
|
51
|
+ import { defineComponent, ref } from 'vue';
|
43
|
52
|
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
44
|
53
|
import { sysDictItemPage, deleteDictItem } from '/@/api/system/dict';
|
45
|
|
-
|
|
54
|
+ import { Switch } from 'ant-design-vue';
|
46
|
55
|
import { BasicDrawer, useDrawer, useDrawerInner } from '/@/components/Drawer';
|
47
|
56
|
import ItemDrawer from '/@/views/system/dict/item/ItemDrawer.vue';
|
48
|
|
-
|
49
|
57
|
import { columns, searchFormSchema } from './dict.item.data';
|
50
|
58
|
import { useMessage } from '/@/hooks/web/useMessage';
|
51
|
59
|
import Authority from '/@/components/Authority/src/Authority.vue';
|
|
60
|
+ import { setDictItemStatus } from '/@/api/system/dict';
|
52
|
61
|
|
53
|
62
|
export default defineComponent({
|
54
|
63
|
name: 'ItemIndex',
|
55
|
|
- components: { BasicDrawer, BasicTable, ItemDrawer, TableAction, Authority },
|
|
64
|
+ components: { BasicDrawer, BasicTable, ItemDrawer, TableAction, Authority, Switch },
|
56
|
65
|
setup() {
|
57
|
66
|
let dictId;
|
|
67
|
+ const disabled = ref(false);
|
58
|
68
|
const { createMessage } = useMessage();
|
59
|
69
|
const [registerDrawer, { openDrawer }] = useDrawer();
|
60
|
70
|
const [register] = useDrawerInner((data) => {
|
61
|
|
- dictId = data.id;
|
|
71
|
+ dictId = data.data.id;
|
|
72
|
+ if (
|
|
73
|
+ data.data.dictCode === 'enabled_platform_admin_auth' ||
|
|
74
|
+ data.data.dictCode === 'disabled_tenant_auth' ||
|
|
75
|
+ data.data.dictCode === 'enabled_sysadmin_auth'
|
|
76
|
+ ) {
|
|
77
|
+ disabled.value = true;
|
|
78
|
+ } else {
|
|
79
|
+ disabled.value = false;
|
|
80
|
+ }
|
|
81
|
+
|
62
|
82
|
reload();
|
63
|
83
|
});
|
64
|
|
- const [registerTable, { reload }] = useTable({
|
|
84
|
+ const [registerTable, { reload, setSelectedRowKeys, setProps }] = useTable({
|
65
|
85
|
title: '字典值列表',
|
66
|
86
|
api: sysDictItemPage,
|
67
|
87
|
columns,
|
...
|
...
|
@@ -117,7 +137,27 @@ |
117
|
137
|
function handleSuccess() {
|
118
|
138
|
reload();
|
119
|
139
|
}
|
120
|
|
-
|
|
140
|
+ const statusChange = async (checked, record) => {
|
|
141
|
+ setProps({
|
|
142
|
+ loading: true,
|
|
143
|
+ });
|
|
144
|
+ setSelectedRowKeys([]);
|
|
145
|
+ const newStatus = checked ? 1 : 0;
|
|
146
|
+ const { createMessage } = useMessage();
|
|
147
|
+ try {
|
|
148
|
+ await setDictItemStatus(record.id, newStatus);
|
|
149
|
+ if (newStatus) {
|
|
150
|
+ createMessage.success(`启用成功`);
|
|
151
|
+ } else {
|
|
152
|
+ createMessage.success('禁用成功');
|
|
153
|
+ }
|
|
154
|
+ } finally {
|
|
155
|
+ setProps({
|
|
156
|
+ loading: false,
|
|
157
|
+ });
|
|
158
|
+ reload();
|
|
159
|
+ }
|
|
160
|
+ };
|
121
|
161
|
return {
|
122
|
162
|
register,
|
123
|
163
|
registerTable,
|
...
|
...
|
@@ -126,6 +166,8 @@ |
126
|
166
|
handleEdit,
|
127
|
167
|
handleDelete,
|
128
|
168
|
handleSuccess,
|
|
169
|
+ statusChange,
|
|
170
|
+ disabled,
|
129
|
171
|
};
|
130
|
172
|
},
|
131
|
173
|
});
|
...
|
...
|
|