| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import { computed, ref } from 'vue';
- import { SceneListInfo, SortSceneItemParam, SortSceneDataParam } from '@/types/business-scene/type';
- import { getSceneList, deleteSceneData, sortSceneData } from '@/api/sys-config/business-scene';
- export const useTableHook = () => {
- const tableData = ref<SceneListInfo[]>([]);
- const getTableData = async () => {
- tableData.value = await getSceneList();
- };
- const deleteTableData = async (id: number) => {
- await deleteSceneData(id);
- await getTableData();
- };
- const orderNums = computed(() => {
- const length = tableData.value.length;
- const firstOrderNum = length > 0 ? tableData.value[0].orderNum : null;
- const lastOrderNum = length > 0 ? tableData.value[length - 1].orderNum : null;
- return [firstOrderNum, lastOrderNum];
- });
- const getSwapParam = (id: number, sortType: 'increase' | 'decrease') => {
- const index = tableData.value.findIndex((item) => item.id === id);
- if (index === -1) return;
- let idAndOrderDTOList: SortSceneItemParam[] = [];
- const currentOrder = tableData.value[index].orderNum; //当前的顺序
- if (sortType === 'increase') {
- /**
- * @description prevId -- 上一个的ID prevOrder -- 上一个的oderNum
- */
- const prevData = tableData.value[index - 1];
- const prevId = prevData.id;
- const prevOrder = prevData.orderNum;
- idAndOrderDTOList = [
- { sceneId: prevId, orderNum: currentOrder },
- { sceneId: id, orderNum: prevOrder },
- ];
- } else {
- /**
- * @description nextId -- 下一个的ID nextOrder -- 下一个的oderNum
- */
- const nextData = tableData.value[index + 1];
- const nextId = nextData.id;
- const nextOrder = nextData.orderNum;
- idAndOrderDTOList = [
- { sceneId: nextId, orderNum: currentOrder },
- { sceneId: id, orderNum: nextOrder },
- ];
- }
- const sortSceneDataParam: SortSceneDataParam = {
- idAndOrderDTOList,
- };
- return sortSceneDataParam;
- };
- const sortTableData = async (id: number, sortType: 'increase' | 'decrease') => {
- const idAndOrderDTOList = getSwapParam(id, sortType);
- await sortSceneData(idAndOrderDTOList!);
- await getTableData();
- };
- return { orderNums, tableData, getTableData, deleteTableData, sortTableData };
- };
|