Commit 97e7c6e13296aff44807a49b77f21e37ed2164c6

Authored by fengtao
1 parent 4f715377

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

@@ -31,16 +31,6 @@ @@ -31,16 +31,6 @@
31 ]" 31 ]"
32 /> 32 />
33 </template> 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 </BasicTable> 34 </BasicTable>
45 <ItemDrawer @register="registerDrawer" @success="handleSuccess" /> 35 <ItemDrawer @register="registerDrawer" @success="handleSuccess" />
46 </div> 36 </div>
@@ -51,17 +41,15 @@ @@ -51,17 +41,15 @@
51 import { defineComponent, ref } from 'vue'; 41 import { defineComponent, ref } from 'vue';
52 import { BasicTable, useTable, TableAction } from '/@/components/Table'; 42 import { BasicTable, useTable, TableAction } from '/@/components/Table';
53 import { sysDictItemPage, deleteDictItem } from '/@/api/system/dict'; 43 import { sysDictItemPage, deleteDictItem } from '/@/api/system/dict';
54 - import { Switch } from 'ant-design-vue';  
55 import { BasicDrawer, useDrawer, useDrawerInner } from '/@/components/Drawer'; 44 import { BasicDrawer, useDrawer, useDrawerInner } from '/@/components/Drawer';
56 import ItemDrawer from '/@/views/system/dict/item/ItemDrawer.vue'; 45 import ItemDrawer from '/@/views/system/dict/item/ItemDrawer.vue';
57 import { columns, searchFormSchema } from './dict.item.data'; 46 import { columns, searchFormSchema } from './dict.item.data';
58 import { useMessage } from '/@/hooks/web/useMessage'; 47 import { useMessage } from '/@/hooks/web/useMessage';
59 import Authority from '/@/components/Authority/src/Authority.vue'; 48 import Authority from '/@/components/Authority/src/Authority.vue';
60 - import { setDictItemStatus } from '/@/api/system/dict';  
61 49
62 export default defineComponent({ 50 export default defineComponent({
63 name: 'ItemIndex', 51 name: 'ItemIndex',
64 - components: { BasicDrawer, BasicTable, ItemDrawer, TableAction, Authority, Switch }, 52 + components: { BasicDrawer, BasicTable, ItemDrawer, TableAction, Authority },
65 setup() { 53 setup() {
66 let dictId; 54 let dictId;
67 const disabled = ref(false); 55 const disabled = ref(false);
@@ -81,7 +69,7 @@ @@ -81,7 +69,7 @@
81 69
82 reload(); 70 reload();
83 }); 71 });
84 - const [registerTable, { reload, setSelectedRowKeys, setProps }] = useTable({ 72 + const [registerTable, { reload }] = useTable({
85 title: '字典值列表', 73 title: '字典值列表',
86 api: sysDictItemPage, 74 api: sysDictItemPage,
87 columns, 75 columns,
@@ -137,27 +125,6 @@ @@ -137,27 +125,6 @@
137 function handleSuccess() { 125 function handleSuccess() {
138 reload(); 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 return { 128 return {
162 register, 129 register,
163 registerTable, 130 registerTable,
@@ -166,7 +133,6 @@ @@ -166,7 +133,6 @@
166 handleEdit, 133 handleEdit,
167 handleDelete, 134 handleDelete,
168 handleSuccess, 135 handleSuccess,
169 - statusChange,  
170 disabled, 136 disabled,
171 }; 137 };
172 }, 138 },
  1 +import { Switch } from 'ant-design-vue';
1 import { BasicColumn } from '/@/components/Table'; 2 import { BasicColumn } from '/@/components/Table';
2 import { FormSchema } from '/@/components/Table'; 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 export const columns: BasicColumn[] = [ 8 export const columns: BasicColumn[] = [
5 { 9 {
@@ -21,8 +25,32 @@ export const columns: BasicColumn[] = [ @@ -21,8 +25,32 @@ export const columns: BasicColumn[] = [
21 title: '状态', 25 title: '状态',
22 dataIndex: 'status', 26 dataIndex: 'status',
23 width: 100, 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 title: '排序', 55 title: '排序',
28 dataIndex: 'sort', 56 dataIndex: 'sort',