zhuoyuan.wang
2024-06-19 15ebe96f28cadec6a726c5324593a40bbf56205f
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
113
114
<template>
  <app-list-wrapper v-bind="listWrapperProps">
    <template #header-button="scope">
      <el-button
        icon="Plus"
        size="small"
        type="primary"
        @click="onDialog({parent_id: scope.selected.id})">
      </el-button>
      <el-button
        size="small"
        type="primary"
        icon="Edit"
        :disabled="!scope.selected.id"
        @click="onDialog(scope.selected)">
      </el-button>
      <el-button
        size="small"
        type="danger"
        icon="Delete"
        :disabled="!scope.selected.id"
        @click="onDelete(scope.selected)"
      >
      </el-button>
    </template>
    <app-list-page v-bind="listPageProps">
      <template #default="scope">
        <div>
          {{ scope.name }}
        </div>
        <div>
          {{ scope.code }}
        </div>
      </template>
    </app-list-page>
  </app-list-wrapper>
  <group-dialog v-bind="groupDialogProps"/>
</template>
 
<script setup>
 
import GroupDialog from './GroupDialog';
import {useI18n} from 'vue-i18n';
 
const {t} = useI18n();
import {useAppStore, useEntityStore} from '@/store/modules/index.js';
import {modal} from "@/plugins";
 
const props = defineProps({
  subActive: {
    type: Function,
    default: () => {
    }
  },
  type: {
    type: String,
    default: ''
  },
});
 
const entityStore = useEntityStore();
const appStore = useAppStore();
 
const listPageRef = ref();
 
const listWrapperRef = ref();
 
const groupDialogRef = ref();
 
const listWrapperProps = {
  ref: listWrapperRef,
  title: '分组',
  complementHeight: 45,
};
 
const groupDialogProps = {
  ref: groupDialogRef,
  subReload() {
    listPageRef.value.getTableData();
  }
};
 
const onDialog = (row) => {
  groupDialogRef.value.onOpen(row);
};
 
const onDelete = async (row) => {
  await modal.confirm("是否确认删除?");
 
  await entityStore.deleteEntity({
    dataName: 'fee_model_band_group',
    id: row.id
  });
  listPageRef.value.getTableData();
};
 
const listPageProps = {
  subRequest: (params) => entityStore.getOldEntitySet({
    dataName: 'dict',
    filter: `type='${props.type}'`,
    ...params,
  }),
  subActive(active) {
    listWrapperRef.value.setSelected(active)
    props.subActive(active);
  },
  ref: listPageRef
};
 
onMounted(() => {
  listPageRef.value.getTableData();
});
 
</script>