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
| import { ToRefs } from 'vue';
|
| export function useVModel<P extends object, K extends keyof P>(
| props: P,
| key: K,
| emit: (name: string, ...args: any[]) => void
| ) {
| return computed({
| get() {
| return props[key];
| },
| set(v: any) {
| emit(`update:${key!.toString()}`, v);
| },
| });
| }
|
| export function useVModels<P extends object>(
| props: P,
| emit: (name: string, ...args: any[]) => void
| ): ToRefs<P> {
| const ret: any = {};
|
| for (const key in props) {
| ret[key] = useVModel(props, key, emit);
| }
| return ret;
| }
|
| export function useCanGoBack() {
| const router = useRouter();
|
| function checkCanGoBack() {
| return router.options.history.state.back !== null;
| }
| const isCanGoBack = computed(() => checkCanGoBack());
| return {
| isCanGoBack,
| };
| }
|
|