Commit 97e7c6e13296aff44807a49b77f21e37ed2164c6

Authored by fengtao
1 parent 4f715377

pref:字典管理回退之前代码

... ... @@ -31,16 +31,6 @@
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>
44 34 </BasicTable>
45 35 <ItemDrawer @register="registerDrawer" @success="handleSuccess" />
46 36 </div>
... ... @@ -51,17 +41,15 @@
51 41 import { defineComponent, ref } from 'vue';
52 42 import { BasicTable, useTable, TableAction } from '/@/components/Table';
53 43 import { sysDictItemPage, deleteDictItem } from '/@/api/system/dict';
54   - import { Switch } from 'ant-design-vue';
55 44 import { BasicDrawer, useDrawer, useDrawerInner } from '/@/components/Drawer';
56 45 import ItemDrawer from '/@/views/system/dict/item/ItemDrawer.vue';
57 46 import { columns, searchFormSchema } from './dict.item.data';
58 47 import { useMessage } from '/@/hooks/web/useMessage';
59 48 import Authority from '/@/components/Authority/src/Authority.vue';
60   - import { setDictItemStatus } from '/@/api/system/dict';
61 49
62 50 export default defineComponent({
63 51 name: 'ItemIndex',
64   - components: { BasicDrawer, BasicTable, ItemDrawer, TableAction, Authority, Switch },
  52 + components: { BasicDrawer, BasicTable, ItemDrawer, TableAction, Authority },
65 53 setup() {
66 54 let dictId;
67 55 const disabled = ref(false);
... ... @@ -81,7 +69,7 @@
81 69
82 70 reload();
83 71 });
84   - const [registerTable, { reload, setSelectedRowKeys, setProps }] = useTable({
  72 + const [registerTable, { reload }] = useTable({
85 73 title: '字典值列表',
86 74 api: sysDictItemPage,
87 75 columns,
... ... @@ -137,27 +125,6 @@
137 125 function handleSuccess() {
138 126 reload();
139 127 }
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   - };
161 128 return {
162 129 register,
163 130 registerTable,
... ... @@ -166,7 +133,6 @@
166 133 handleEdit,
167 134 handleDelete,
168 135 handleSuccess,
169   - statusChange,
170 136 disabled,
171 137 };
172 138 },
... ...
  1 +import { Switch } from 'ant-design-vue';
1 2 import { BasicColumn } from '/@/components/Table';
2 3 import { FormSchema } from '/@/components/Table';
  4 +import { useMessage } from '/@/hooks/web/useMessage';
  5 +import { setDictItemStatus } from '/@/api/system/dict';
  6 +import { h } from 'vue';
3 7
4 8 export const columns: BasicColumn[] = [
5 9 {
... ... @@ -21,8 +25,32 @@ export const columns: BasicColumn[] = [
21 25 title: '状态',
22 26 dataIndex: 'status',
23 27 width: 100,
24   - slots: { customRender: 'status' },
  28 + customRender: ({ record }) => {
  29 + if (!Reflect.has(record, 'pendingStatus')) {
  30 + record.pendingStatus = false;
  31 + }
  32 + return h(Switch, {
  33 + checked: record.status === 1,
  34 + checkedChildren: '已启用',
  35 + unCheckedChildren: '已禁用',
  36 + loading: record.pendingStatus,
  37 + onChange(checked: boolean) {
  38 + record.pendingStatus = true;
  39 + const newStatus = checked ? 1 : 0;
  40 + const { createMessage } = useMessage();
  41 + setDictItemStatus(record.id, newStatus)
  42 + .then(() => {
  43 + record.status = newStatus;
  44 + createMessage.success(`修改成功`);
  45 + })
  46 + .finally(() => {
  47 + record.pendingStatus = false;
  48 + });
  49 + },
  50 + });
  51 + },
25 52 },
  53 +
26 54 {
27 55 title: '排序',
28 56 dataIndex: 'sort',
... ...