zhengnaiwen_citu hai 1 ano
pai
achega
d6bc3bda15
Modificáronse 11 ficheiros con 974 adicións e 38 borrados
  1. 2 0
      .eslintignore
  2. 14 0
      .eslintrc.js
  3. 8 0
      .prettierrc.json
  4. 2 1
      jsconfig.json
  5. 11 1
      package.json
  6. 812 24
      pnpm-lock.yaml
  7. 81 9
      src/App.vue
  8. 10 3
      src/main.js
  9. 11 0
      src/router/index.js
  10. 12 0
      src/stores/counter.js
  11. 11 0
      src/views/Home/index.vue

+ 2 - 0
.eslintignore

@@ -0,0 +1,2 @@
+/node_modules
+/dist

+ 14 - 0
.eslintrc.js

@@ -0,0 +1,14 @@
+/* eslint-env node */
+require('@rushstack/eslint-patch/modern-module-resolution')
+
+module.exports = {
+  root: true,
+  'extends': [
+    'plugin:vue/vue3-essential',
+    'eslint:recommended',
+    '@vue/eslint-config-prettier/skip-formatting'
+  ],
+  parserOptions: {
+    ecmaVersion: 'latest'
+  }
+}

+ 8 - 0
.prettierrc.json

@@ -0,0 +1,8 @@
+{
+  "$schema": "https://json.schemastore.org/prettierrc",
+  "semi": false,
+  "tabWidth": 2,
+  "singleQuote": true,
+  "printWidth": 100,
+  "trailingComma": "none"
+}

+ 2 - 1
jsconfig.json

@@ -16,5 +16,6 @@
       "dom.iterable",
       "scripthost"
     ]
-  }
+  },
+  "exclude": ["node_modules", "dist"]
 }

+ 11 - 1
package.json

@@ -4,16 +4,26 @@
   "scripts": {
     "dev": "vite",
     "build": "vite build",
-    "preview": "vite preview"
+    "preview": "vite preview",
+    "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore",
+    "format": "prettier --write src/"
   },
   "dependencies": {
     "@mdi/font": "7.0.96",
+    "pinia": "^2.1.7",
     "roboto-fontface": "*",
     "vue": "^3.4.0",
+    "vue-router": "^4.3.0",
     "vuetify": "^3.5.0"
   },
   "devDependencies": {
+    "@rushstack/eslint-patch": "^1.8.0",
     "@vitejs/plugin-vue": "^5.0.4",
+    "@vue/eslint-config-prettier": "^9.0.0",
+    "jsdom": "^24.0.0",
+    "eslint": "^8.57.0",
+    "eslint-plugin-vue": "^9.23.0",
+    "prettier": "^3.2.5",
     "sass": "^1.71.1",
     "unplugin-fonts": "^1.1.1",
     "unplugin-vue-components": "^0.26.0",

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 812 - 24
pnpm-lock.yaml


+ 81 - 9
src/App.vue

@@ -1,13 +1,85 @@
+<script setup>
+import { RouterLink, RouterView } from 'vue-router'
+import HelloWorld from './components/HelloWorld.vue'
+</script>
+
 <template>
-  <v-app>
-    <v-main>
-      <HelloWorld />
-    </v-main>
+  <header>
+    <img alt="Vue logo" class="logo" src="@/assets/logo.svg" width="125" height="125" />
+
+    <div class="wrapper">
+      <HelloWorld msg="You did it!" />
+
+      <nav>
+        <RouterLink to="/">Home</RouterLink>
+        <RouterLink to="/about">About</RouterLink>
+      </nav>
+    </div>
+  </header>
 
-    <AppFooter />
-  </v-app>
+  <RouterView />
 </template>
 
-<script setup>
-  //
-</script>
+<style scoped>
+header {
+  line-height: 1.5;
+  max-height: 100vh;
+}
+
+.logo {
+  display: block;
+  margin: 0 auto 2rem;
+}
+
+nav {
+  width: 100%;
+  font-size: 12px;
+  text-align: center;
+  margin-top: 2rem;
+}
+
+nav a.router-link-exact-active {
+  color: var(--color-text);
+}
+
+nav a.router-link-exact-active:hover {
+  background-color: transparent;
+}
+
+nav a {
+  display: inline-block;
+  padding: 0 1rem;
+  border-left: 1px solid var(--color-border);
+}
+
+nav a:first-of-type {
+  border: 0;
+}
+
+@media (min-width: 1024px) {
+  header {
+    display: flex;
+    place-items: center;
+    padding-right: calc(var(--section-gap) / 2);
+  }
+
+  .logo {
+    margin: 0 2rem 0 0;
+  }
+
+  header .wrapper {
+    display: flex;
+    place-items: flex-start;
+    flex-wrap: wrap;
+  }
+
+  nav {
+    text-align: left;
+    margin-left: -1rem;
+    font-size: 1rem;
+
+    padding: 1rem 0;
+    margin-top: 1rem;
+  }
+}
+</style>

+ 10 - 3
src/main.js

@@ -7,14 +7,21 @@
 // Plugins
 import { registerPlugins } from '@/plugins'
 
-// Components
 import App from './App.vue'
-
-// Composables
 import { createApp } from 'vue'
 
+import { createPinia } from 'pinia'
+
+import router from './router'
+
+const pinia = createPinia()
+
 const app = createApp(App)
 
+app.use(pinia)
+
+app.use(router)
+
 registerPlugins(app)
 
 app.mount('#app')

+ 11 - 0
src/router/index.js

@@ -0,0 +1,11 @@
+import { createRouter, createWebHistory } from 'vue-router'
+
+
+const router = createRouter({
+  history: createWebHistory(import.meta.env.BASE_URL),
+  routes: [
+    
+  ]
+})
+
+export default router

+ 12 - 0
src/stores/counter.js

@@ -0,0 +1,12 @@
+import { ref, computed } from 'vue'
+import { defineStore } from 'pinia'
+
+export const useCounterStore = defineStore('counter', () => {
+  const count = ref(0)
+  const doubleCount = computed(() => count.value * 2)
+  function increment() {
+    count.value++
+  }
+
+  return { count, doubleCount, increment }
+})

+ 11 - 0
src/views/Home/index.vue

@@ -0,0 +1,11 @@
+<script setup>
+
+</script>
+<template>
+  <div>
+123
+  </div>
+</template>
+<style lang="scss" scoped>
+
+</style>

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio