File size: 1,532 Bytes
133609a
 
 
 
 
 
 
c16f98d
 
 
 
 
 
133609a
 
 
 
c16f98d
133609a
 
 
 
c16f98d
 
 
 
 
133609a
 
 
 
 
c16f98d
133609a
 
 
c16f98d
 
133609a
 
 
 
8d7d15e
133609a
 
 
8d7d15e
133609a
c16f98d
133609a
c16f98d
8d7d15e
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
// static/js/admin.js
// static/js/admin.js
// Vue 3 CDN 版本将 createApp 暴露在全局 Vue 对象下
const { createApp } = Vue; 

import { authData, authMethods, authMounted } from './auth.js';
import { proxyData, proxyMethods } from './proxy.js';
import { appData, appMethods, appMounted } from './store.js';
const AdminApp = {
    components: {
        // AdminNavbar // Register the component
    },
    // template: document.querySelector('#app template').innerHTML, // Removed template option
    data() {
        return {
            ...authData(),
            ...proxyData(),
            ...appData(),
            selectedFile: null,
            isUploading: false,
            uploadMessage: '',
            uploadedImageUrl: '',
            showImageUpload: false,
            showUserManagement: false,
            showImageManagement: false,
            images: [],
            imageMessage: '',
        };
    },
    methods: {
        ...authMethods(this),
        ...proxyMethods(),
        ...appMethods(this),
        handleFileUpload(event) {
            this.selectedFile = event.target.files[0];
        },
        handleShowChangePasswordModal() {
            this.showChangePasswordModal = true;
        }
    },
    mounted() {
        authMounted(this);
        appMounted(this);
        console.log('Admin app mounted!');
    },
    watch: {
        // No specific watchers needed for this page
    }
};

createApp(AdminApp).mount('#app');
console.log('Vue app successfully mounted to #app element.');