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.');
|