schangxiang@126.com
2025-04-01 de7dbe7cf85aa01abb64040aae1c04dfba74c135
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import { ref } from "vue";
import PageDialog from "@/components/page-dialog";
import {ElMessage,ElMessageBox} from 'element-plus'
type callback = (query: any) => any;
 
//搜索逻辑处理
export function searchLinkage(funcName: callback) {
  //列表数据
  const dataList = ref([]);
  // 列表总的数据条数
  const dataCount = ref(0);
  //请求数据
  async function getDataList(query: any = {}): Promise<void> {
    dataList.value = [];
    const resultList = await funcName({...query});
    if(typeof resultList?.data === 'object') {
      const {data} = resultList;
      const result = data;
      dataList.value = result.rows;
      dataCount.value = result.totalRows;
    }
  }
  //查询
  function searchBtnClic(query: any = {}) {
    getDataList(query)
  }
  //重置
  function resetBtnClic(query: any = {}) {
    getDataList(query)
  }
  // 返回ref对象、查询、重置方法
  return {dataList,dataCount,getDataList,searchBtnClic,resetBtnClic}
}
 
//添加、编辑操作
export function operationLinkage(delCallback: callback,getDataCallback: callback) {
  //获取page-dialog的ref对象
  const pageDialogRef = ref<InstanceType<typeof PageDialog>>();
  // 窗口打开传递的参数(添加为{},编辑时赋值scope.row)
  const defaultValue = ref({});
  //打开添加窗口
  const handleCreateBtnClic = (): void => {
    defaultValue.value = {};
    if (pageDialogRef.value) {
      pageDialogRef.value.centerDialogVisible = true;
    }
    
  };
  //打开编辑窗口
  const handleEditorBtnClic = (payload: any = {} ): void => {
    defaultValue.value = payload;
    if (pageDialogRef.value) {
      pageDialogRef.value.centerDialogVisible = true;
    }
  };
  interface delTypes {
    id:number[]
  }
  //删除操作
  const handleDeleteConfirm = (arr: number[]): void => {
    const obj: delTypes = {id: arr};
    ElMessageBox.confirm('是否确认删除?','提示',{
      confirmButtonText: '确认',
      cancelButtonText: '取消',
      type: 'warning'
    }).then(() => {
      delCallback(obj).then(() => {
        ElMessage.success('删除成功')
          // 刷新列表
          getDataCallback({PageNo:1,PageSize: 10});
      })
    })
  }
  //返回
  return {
    pageDialogRef,
    defaultValue,
    handleEditorBtnClic,
    handleCreateBtnClic,
    handleDeleteConfirm
  }
}
 
//确认添加、编辑操作
/**
 * 添加、编辑确认操作
 * @param addConfirm 添加的回调
 * @param editConfirm 编辑的回调
 * @param getList 获取列表的回调
 */
export function confirmLinkage(addConfirm: callback, editConfirm: callback,getList: callback) {
  //添加
  const handleAddConfirm = (query: any = {}) => {
    addConfirm(query).then(() => {
      ElMessage.success('添加成功');
      getList({Page: 1,PageSize: 10});
    })
  }
 
  //编辑
  const handleEditConfirm = (query: any = {}) => {
    editConfirm(query).then(() => {
      ElMessage.success('编辑成功');
      getList({Page: 1,PageSize: 10});
    })
  }
 
  return {
    handleAddConfirm,
    handleEditConfirm
  }
}