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
import * as api from '@/api';
import * as tools from '@/utils/tools.js';
 
const usePagePermission = (
  pageId,
  mounted = () => {
  }
) => {
  const buttons = [];
  const tabs = [];
  let page = {};
 
  onMounted(async () => {
    const {data} = await api.page.getPage({pageId});
    page = data.page;
    page.tabs.forEach(e => {
      tabs.push({name: e.code, label: tools.decode(e.name)});
    });
    const code = page.tabs[0].code;
    subActive(code);
    mounted({buttons, tabs});
  });
 
  const subActive = (val) => {
    const tabId = page.tabs.find(e => e.code === val).id;
    buttons.splice(0, buttons.length);
    page.buttons
      .filter(e => e.tab_id === tabId)
      .forEach(e => {
        buttons.push({
          name: e.code,
          label: tools.decode(e.title)
        });
      })
  }
 
  return [buttons, tabs, subActive];
};
 
const useDesignerOptions = (props) => {
  const globalOptions = {};
 
  const optionsHandler = ({options, children}) => {
    globalOptions[options.ref] = options;
    (children || []).forEach(child => optionsHandler(child));
  }
 
  optionsHandler(props);
 
  return [globalOptions]
}
 
export default {
  usePagePermission,
  useDesignerOptions,
};