Ver código fonte

Code Added

master
George Williams 5 anos atrás
commit
c378316e09

+ 2
- 0
.browserslistrc Ver arquivo

@@ -0,0 +1,2 @@
1
+> 1%
2
+last 2 versions

+ 14
- 0
.eslintrc.js Ver arquivo

@@ -0,0 +1,14 @@
1
+module.exports = {
2
+  root: true,
3
+  env: {
4
+    node: true
5
+  },
6
+  extends: ["plugin:vue/essential", "@vue/prettier"],
7
+  rules: {
8
+    "no-console": process.env.NODE_ENV === "production" ? "error" : "off",
9
+    "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off"
10
+  },
11
+  parserOptions: {
12
+    parser: "babel-eslint"
13
+  }
14
+};

+ 21
- 0
.gitignore Ver arquivo

@@ -0,0 +1,21 @@
1
+.DS_Store
2
+node_modules
3
+/dist
4
+
5
+# local env files
6
+.env.local
7
+.env.*.local
8
+
9
+# Log files
10
+npm-debug.log*
11
+yarn-debug.log*
12
+yarn-error.log*
13
+
14
+# Editor directories and files
15
+.idea
16
+.vscode
17
+*.suo
18
+*.ntvs*
19
+*.njsproj
20
+*.sln
21
+*.sw?

+ 24
- 0
README.md Ver arquivo

@@ -0,0 +1,24 @@
1
+# pv_webclient
2
+
3
+## Project setup
4
+```
5
+npm install
6
+```
7
+
8
+### Compiles and hot-reloads for development
9
+```
10
+npm run serve
11
+```
12
+
13
+### Compiles and minifies for production
14
+```
15
+npm run build
16
+```
17
+
18
+### Lints and fixes files
19
+```
20
+npm run lint
21
+```
22
+
23
+### Customize configuration
24
+See [Configuration Reference](https://cli.vuejs.org/config/).

+ 3
- 0
babel.config.js Ver arquivo

@@ -0,0 +1,3 @@
1
+module.exports = {
2
+  presets: ["@vue/cli-plugin-babel/preset"]
3
+};

+ 11661
- 0
package-lock.json
Diferenças do arquivo suprimidas por serem muito extensas
Ver arquivo


+ 35
- 0
package.json Ver arquivo

@@ -0,0 +1,35 @@
1
+{
2
+  "name": "pv_webclient",
3
+  "version": "0.1.0",
4
+  "private": true,
5
+  "scripts": {
6
+    "serve": "vue-cli-service serve",
7
+    "build": "vue-cli-service build",
8
+    "lint": "vue-cli-service lint"
9
+  },
10
+  "dependencies": {
11
+    "core-js": "^3.4.4",
12
+    "vue": "^2.6.10",
13
+    "vue-router": "^3.1.3",
14
+    "vuetify": "^2.1.0",
15
+    "vuex": "^3.1.2"
16
+  },
17
+  "devDependencies": {
18
+    "@vue/cli-plugin-babel": "^4.1.0",
19
+    "@vue/cli-plugin-eslint": "^4.1.0",
20
+    "@vue/cli-plugin-router": "^4.1.0",
21
+    "@vue/cli-plugin-vuex": "^4.1.0",
22
+    "@vue/cli-service": "^4.1.0",
23
+    "@vue/eslint-config-prettier": "^5.0.0",
24
+    "babel-eslint": "^10.0.3",
25
+    "eslint": "^5.16.0",
26
+    "eslint-plugin-prettier": "^3.1.1",
27
+    "eslint-plugin-vue": "^5.0.0",
28
+    "prettier": "^1.19.1",
29
+    "sass": "^1.19.0",
30
+    "sass-loader": "^8.0.0",
31
+    "vue-cli-plugin-vuetify": "^2.0.3",
32
+    "vue-template-compiler": "^2.6.10",
33
+    "vuetify-loader": "^1.3.0"
34
+  }
35
+}

BIN
public/favicon.ico Ver arquivo


+ 19
- 0
public/index.html Ver arquivo

@@ -0,0 +1,19 @@
1
+<!DOCTYPE html>
2
+<html lang="en">
3
+  <head>
4
+    <meta charset="utf-8">
5
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+    <meta name="viewport" content="width=device-width,initial-scale=1.0">
7
+    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
8
+    <title>pv_webclient</title>
9
+    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900">
10
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css">
11
+  </head>
12
+  <body>
13
+    <noscript>
14
+      <strong>We're sorry but pv_webclient doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
15
+    </noscript>
16
+    <div id="app"></div>
17
+    <!-- built files will be auto injected -->
18
+  </body>
19
+</html>

+ 70
- 0
src/App.vue Ver arquivo

@@ -0,0 +1,70 @@
1
+<template>
2
+  <v-app id="inspire">
3
+    <v-navigation-drawer v-model="drawerRight" app right>
4
+      <v-list dense>
5
+        <v-list-item @click.stop="drawerRight = !drawerRight">
6
+          <v-list-item-action>
7
+            <v-icon>exit_to_app</v-icon>
8
+          </v-list-item-action>
9
+          <v-list-item-content>
10
+            <v-list-item-title>Open Temporary</v-list-item-title>
11
+          </v-list-item-content>
12
+        </v-list-item>
13
+      </v-list>
14
+    </v-navigation-drawer>
15
+    <v-navigation-drawer v-model="drawerLeft" app>
16
+      <v-list dense>
17
+        <v-list-item @click.stop="drawerLeft = !rigdrawerLeftht">
18
+          <v-list-item-action>
19
+            <v-icon>exit_to_app</v-icon>
20
+          </v-list-item-action>
21
+          <v-list-item-content>
22
+            <v-list-item-title>Open Temporary</v-list-item-title>
23
+          </v-list-item-content>
24
+        </v-list-item>
25
+      </v-list>
26
+    </v-navigation-drawer>
27
+
28
+    <v-app-bar app>
29
+      <v-app-bar-nav-icon @click.stop="drawerLeft = !drawerLeft" />
30
+      <v-toolbar-title>
31
+        <v-img src="./assets/images/logo.png" height="50" width="450"></v-img>
32
+      </v-toolbar-title>
33
+      <v-spacer />
34
+      <v-app-bar-nav-icon @click.stop="drawerRight = !drawerRight" />
35
+    </v-app-bar>
36
+
37
+    <v-content>
38
+      <v-container class="fill-height" fluid>
39
+        <v-row align="center" justify="center">
40
+          <router-view></router-view>
41
+        </v-row>
42
+      </v-container>
43
+    </v-content>
44
+
45
+    <v-footer app dark>
46
+      <span>
47
+        <v-row wrap align="center" justify="center">
48
+          <v-img src="./assets/images/logo.png" height="20" width="225"></v-img>
49
+          <div style="width:15px;"></div>
50
+          <div>&copy; 2019</div>
51
+        </v-row>
52
+      </span>
53
+    </v-footer>
54
+  </v-app>
55
+</template>
56
+
57
+<script>
58
+export default {
59
+  props: {
60
+    source: String
61
+  },
62
+  data: () => ({
63
+    drawerRight: false,
64
+    drawerLeft: false
65
+  }),
66
+  created() {
67
+    this.$vuetify.theme.dark = false;
68
+  }
69
+};
70
+</script>

BIN
src/assets/images/logo.png Ver arquivo


+ 120
- 0
src/components/HelloWorld.vue Ver arquivo

@@ -0,0 +1,120 @@
1
+<template>
2
+  <v-container>
3
+    <v-layout text-center wrap>
4
+      <v-flex xs12></v-flex>
5
+
6
+      <v-flex mb-4>
7
+        <h1 class="display-2 font-weight-bold mb-3">Welcome to Vuetify</h1>
8
+        <p class="subheading font-weight-regular">
9
+          For help and collaboration with other Vuetify developers,
10
+          <br />please join our online
11
+          <a
12
+            href="https://community.vuetifyjs.com"
13
+            target="_blank"
14
+          >Discord Community</a>
15
+        </p>
16
+      </v-flex>
17
+
18
+      <v-flex mb-5 xs12>
19
+        <h2 class="headline font-weight-bold mb-3">What's next?</h2>
20
+
21
+        <v-layout justify-center>
22
+          <a
23
+            v-for="(next, i) in whatsNext"
24
+            :key="i"
25
+            :href="next.href"
26
+            class="subheading mx-3"
27
+            target="_blank"
28
+          >{{ next.text }}</a>
29
+        </v-layout>
30
+      </v-flex>
31
+
32
+      <v-flex xs12 mb-5>
33
+        <h2 class="headline font-weight-bold mb-3">Important Links</h2>
34
+
35
+        <v-layout justify-center>
36
+          <a
37
+            v-for="(link, i) in importantLinks"
38
+            :key="i"
39
+            :href="link.href"
40
+            class="subheading mx-3"
41
+            target="_blank"
42
+          >{{ link.text }}</a>
43
+        </v-layout>
44
+      </v-flex>
45
+
46
+      <v-flex xs12 mb-5>
47
+        <h2 class="headline font-weight-bold mb-3">Ecosystem</h2>
48
+
49
+        <v-layout justify-center>
50
+          <a
51
+            v-for="(eco, i) in ecosystem"
52
+            :key="i"
53
+            :href="eco.href"
54
+            class="subheading mx-3"
55
+            target="_blank"
56
+          >{{ eco.text }}</a>
57
+        </v-layout>
58
+      </v-flex>
59
+    </v-layout>
60
+  </v-container>
61
+</template>
62
+
63
+<script>
64
+export default {
65
+  name: "HelloWorld",
66
+
67
+  data: () => ({
68
+    ecosystem: [
69
+      {
70
+        text: "vuetify-loader",
71
+        href: "https://github.com/vuetifyjs/vuetify-loader"
72
+      },
73
+      {
74
+        text: "github",
75
+        href: "https://github.com/vuetifyjs/vuetify"
76
+      },
77
+      {
78
+        text: "awesome-vuetify",
79
+        href: "https://github.com/vuetifyjs/awesome-vuetify"
80
+      }
81
+    ],
82
+    importantLinks: [
83
+      {
84
+        text: "Documentation",
85
+        href: "https://vuetifyjs.com"
86
+      },
87
+      {
88
+        text: "Chat",
89
+        href: "https://community.vuetifyjs.com"
90
+      },
91
+      {
92
+        text: "Made with Vuetify",
93
+        href: "https://madewithvuejs.com/vuetify"
94
+      },
95
+      {
96
+        text: "Twitter",
97
+        href: "https://twitter.com/vuetifyjs"
98
+      },
99
+      {
100
+        text: "Articles",
101
+        href: "https://medium.com/vuetify"
102
+      }
103
+    ],
104
+    whatsNext: [
105
+      {
106
+        text: "Explore components",
107
+        href: "https://vuetifyjs.com/components/api-explorer"
108
+      },
109
+      {
110
+        text: "Select a layout",
111
+        href: "https://vuetifyjs.com/layout/pre-defined"
112
+      },
113
+      {
114
+        text: "Frequently Asked Questions",
115
+        href: "https://vuetifyjs.com/getting-started/frequently-asked-questions"
116
+      }
117
+    ]
118
+  })
119
+};
120
+</script>

+ 14
- 0
src/main.js Ver arquivo

@@ -0,0 +1,14 @@
1
+import Vue from "vue";
2
+import App from "./App.vue";
3
+import router from "./router";
4
+import store from "./store";
5
+import vuetify from "./plugins/vuetify";
6
+
7
+Vue.config.productionTip = false;
8
+
9
+new Vue({
10
+  router,
11
+  store,
12
+  vuetify,
13
+  render: h => h(App)
14
+}).$mount("#app");

+ 6
- 0
src/plugins/vuetify.js Ver arquivo

@@ -0,0 +1,6 @@
1
+import Vue from "vue";
2
+import Vuetify from "vuetify/lib";
3
+
4
+Vue.use(Vuetify);
5
+
6
+export default new Vuetify({});

+ 30
- 0
src/router/index.js Ver arquivo

@@ -0,0 +1,30 @@
1
+import Vue from "vue";
2
+import VueRouter from "vue-router";
3
+import Home from "../views/Home.vue";
4
+
5
+Vue.use(VueRouter);
6
+
7
+const routes = [
8
+  {
9
+    path: "/",
10
+    name: "home",
11
+    component: Home
12
+  },
13
+  {
14
+    path: "/about",
15
+    name: "about",
16
+    // route level code-splitting
17
+    // this generates a separate chunk (about.[hash].js) for this route
18
+    // which is lazy-loaded when the route is visited.
19
+    component: () =>
20
+      import(/* webpackChunkName: "about" */ "../views/About.vue")
21
+  }
22
+];
23
+
24
+const router = new VueRouter({
25
+  mode: "history",
26
+  base: process.env.BASE_URL,
27
+  routes
28
+});
29
+
30
+export default router;

+ 11
- 0
src/store/index.js Ver arquivo

@@ -0,0 +1,11 @@
1
+import Vue from "vue";
2
+import Vuex from "vuex";
3
+
4
+Vue.use(Vuex);
5
+
6
+export default new Vuex.Store({
7
+  state: {},
8
+  mutations: {},
9
+  actions: {},
10
+  modules: {}
11
+});

+ 5
- 0
src/views/About.vue Ver arquivo

@@ -0,0 +1,5 @@
1
+<template>
2
+  <div class="about">
3
+    <h1>This is an about page</h1>
4
+  </div>
5
+</template>

+ 17
- 0
src/views/Home.vue Ver arquivo

@@ -0,0 +1,17 @@
1
+<template>
2
+  <div class="home">
3
+    <HelloWorld msg="Welcome to Your Vue.js App" />
4
+  </div>
5
+</template>
6
+
7
+<script>
8
+// @ is an alias to /src
9
+import HelloWorld from "@/components/HelloWorld.vue";
10
+
11
+export default {
12
+  name: "home",
13
+  components: {
14
+    HelloWorld
15
+  }
16
+};
17
+</script>

+ 78
- 0
src/views/Main.vue Ver arquivo

@@ -0,0 +1,78 @@
1
+<template>
2
+  <v-app id="inspire">
3
+    <v-navigation-drawer v-model="drawer" app clipped>
4
+      <v-list dense>
5
+        <v-list-item link>
6
+          <v-list-item-action>
7
+            <v-icon>mdi-view-dashboard</v-icon>
8
+          </v-list-item-action>
9
+          <v-list-item-content>
10
+            <v-list-item-title>Dashboard</v-list-item-title>
11
+          </v-list-item-content>
12
+        </v-list-item>
13
+        <v-list-item link>
14
+          <v-list-item-action>
15
+            <v-icon>mdi-settings</v-icon>
16
+          </v-list-item-action>
17
+          <v-list-item-content>
18
+            <v-list-item-title>Settings</v-list-item-title>
19
+          </v-list-item-content>
20
+        </v-list-item>
21
+      </v-list>
22
+    </v-navigation-drawer>
23
+
24
+    <v-app-bar app clipped-left>
25
+      <v-app-bar-nav-icon @click.stop="drawer = !drawer" />
26
+      <v-toolbar-title>Application</v-toolbar-title>
27
+    </v-app-bar>
28
+
29
+    <v-content>
30
+      <v-container class="fill-height" fluid>
31
+        <v-row align="center" justify="center">
32
+          <v-col class="shrink">
33
+            <v-tooltip right>
34
+              <template v-slot:activator="{ on }">
35
+                <v-btn :href="source" icon large target="_blank" v-on="on">
36
+                  <v-icon large>mdi-code-tags</v-icon>
37
+                </v-btn>
38
+              </template>
39
+              <span>Source</span>
40
+            </v-tooltip>
41
+            <v-tooltip right>
42
+              <template v-slot:activator="{ on }">
43
+                <v-btn
44
+                  icon
45
+                  large
46
+                  href="https://codepen.io/johnjleider/pen/bXNzZL"
47
+                  target="_blank"
48
+                  v-on="on"
49
+                >
50
+                  <v-icon large>mdi-codepen</v-icon>
51
+                </v-btn>
52
+              </template>
53
+              <span>Codepen</span>
54
+            </v-tooltip>
55
+          </v-col>
56
+        </v-row>
57
+      </v-container>
58
+    </v-content>
59
+
60
+    <v-footer app>
61
+      <span>&copy; 2019</span>
62
+    </v-footer>
63
+  </v-app>
64
+</template>
65
+
66
+<script>
67
+export default {
68
+  props: {
69
+    source: String
70
+  },
71
+  data: () => ({
72
+    drawer: null
73
+  }),
74
+  created() {
75
+    this.$vuetify.theme.dark = true;
76
+  }
77
+};
78
+</script>

+ 3
- 0
vue.config.js Ver arquivo

@@ -0,0 +1,3 @@
1
+module.exports = {
2
+  transpileDependencies: ["vuetify"]
3
+};

Carregando…
Cancelar
Salvar