This commit is contained in:
2020-09-28 20:11:42 -05:00
parent f6625c6b22
commit ac470242fc
28 changed files with 4789 additions and 5480 deletions
-13
View File
@@ -1,13 +0,0 @@
# editorconfig.org
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false
-20
View File
@@ -1,20 +0,0 @@
module.exports = {
root: true,
env: {
browser: true,
node: true,
},
parserOptions: {
parser: 'babel-eslint',
},
extends: [
'@nuxtjs',
'prettier',
'prettier/vue',
'plugin:prettier/recommended',
'plugin:nuxt/recommended',
],
plugins: ['prettier'],
// add your custom rules here
rules: {},
}
+18 -85
View File
@@ -1,90 +1,23 @@
# Created by .ignore support plugin (hsz.mobi)
### Node template
# Logs
/logs
*.log
.DS_Store
node_modules
/dist
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# Nuxt generate
# dist
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless
# IDE / Editor
# Editor directories and files
.idea
# Service worker
sw.*
# macOS
.DS_Store
# Vim swap files
*.swp
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
-4
View File
@@ -1,4 +0,0 @@
{
"semi": false,
"singleQuote": true
}
+20 -16
View File
@@ -1,20 +1,24 @@
# pcpuma_admin
## Build Setup
```bash
# install dependencies
$ npm install
# serve with hot reload at localhost:3000
$ npm run dev
# build for production and launch server
$ npm run build
$ npm run start
# generate static project
$ npm run generate
## Project setup
```
npm install
```
For detailed explanation on how things work, check out [Nuxt.js docs](https://nuxtjs.org).
### Compiles and hot-reloads for development
```
npm run serve
```
### Compiles and minifies for production
```
npm run build
```
### Lints and fixes files
```
npm run lint
```
### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).
+5
View File
@@ -0,0 +1,5 @@
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
]
}
View File
-9
View File
@@ -1,9 +0,0 @@
<!doctype html>
<html>
<head>
<title>pcpuma_admin</title><meta data-n-head="1" charset="utf-8"><meta data-n-head="1" name="viewport" content="width=device-width,initial-scale=1"><meta data-n-head="1" data-hid="description" name="description" content="## Build Setup"><link data-n-head="1" rel="icon" type="image/x-icon" href="/favicon.ico"><link rel="preload" href="/_nuxt/runtime.2006747.js" as="script"><link rel="preload" href="/_nuxt/vendors/commons.af3260c.js" as="script"><link rel="preload" href="/_nuxt/app.c11a985.js" as="script">
</head>
<body>
<div id="__nuxt"><style>#nuxt-loading{background:#fff;visibility:hidden;opacity:0;position:absolute;left:0;right:0;top:0;bottom:0;display:flex;justify-content:center;align-items:center;flex-direction:column;animation:nuxtLoadingIn 10s ease;-webkit-animation:nuxtLoadingIn 10s ease;animation-fill-mode:forwards;overflow:hidden}@keyframes nuxtLoadingIn{0%{visibility:hidden;opacity:0}20%{visibility:visible;opacity:0}100%{visibility:visible;opacity:1}}@-webkit-keyframes nuxtLoadingIn{0%{visibility:hidden;opacity:0}20%{visibility:visible;opacity:0}100%{visibility:visible;opacity:1}}#nuxt-loading>div,#nuxt-loading>div:after{border-radius:50%;width:5rem;height:5rem}#nuxt-loading>div{font-size:10px;position:relative;text-indent:-9999em;border:.5rem solid #f5f5f5;border-left:.5rem solid #000;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:nuxtLoading 1.1s infinite linear;animation:nuxtLoading 1.1s infinite linear}#nuxt-loading.error>div{border-left:.5rem solid #ff4500;animation-duration:5s}@-webkit-keyframes nuxtLoading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes nuxtLoading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}</style><script>window.addEventListener("error",function(){var e=document.getElementById("nuxt-loading");e&&(e.className+=" error")})</script><div id="nuxt-loading" aria-live="polite" role="status"><div>Loading...</div></div></div><script>window.__NUXT__={config:{},staticAssetsBase:void 0}</script>
<script src="/_nuxt/runtime.2006747.js"></script><script src="/_nuxt/vendors/commons.af3260c.js"></script><script src="/_nuxt/app.c11a985.js"></script></body>
</html>
-67
View File
@@ -1,67 +0,0 @@
/*!
* vue-router v3.4.3
* (c) 2020 Evan You
* @license MIT
*/
/*!
* BootstrapVue Icons, generated from Bootstrap Icons 1.0.0-alpha5
*
* @link https://icons.getbootstrap.com/
* @license MIT
* https://github.com/twbs/icons/blob/master/LICENSE.md
*/
/*!
* Vue.js v2.6.12
* (c) 2014-2020 Evan You
* Released under the MIT License.
*/
/*!
* vue-client-only v2.0.0
* (c) 2019-present egoist <0x142857@gmail.com>
* Released under the MIT License.
*/
/*!
* vue-no-ssr v1.1.1
* (c) 2018-present egoist <0x142857@gmail.com>
* Released under the MIT License.
*/
/*!
* portal-vue © Thorsten Lünborg, 2019
*
* Version: 2.1.7
*
* LICENCE: MIT
*
* https://github.com/linusborg/portal-vue
*
*/
/**!
* @fileOverview Kickass library to create and place poppers near their reference elements.
* @version 1.16.1
* @license
* Copyright (c) 2016 Federico Zivolo and contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
-2
View File
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{216:function(e,t,o){"use strict";o.r(t);o(9);var n=o(214),c=o(213),r=o.n(c),d=o(215),l=o.n(d),m={components:{QrcodeStream:n.QrcodeStream},methods:{onDecode:function(e){var data={prestamoId:Number(e),operadorId:1};r.a.put("".concat("https://venus.acatlan.unam.mx/pruebas_pcpuma","/prestamo/confirmar"),data).then((function(e){e.data.activo&&l.a.fire({icon:"success",title:"¡Felicidades!",text:"Haz activado correctamente el dispositivo del alumno."})})).catch((function(e){console.log(e)}))}}},f=o(47),component=Object(f.a)(m,(function(){var e=this.$createElement;return(this._self._c||e)("qrcode-stream",{on:{decode:this.onDecode}})}),[],!1,null,null,null);t.default=component.exports}}]);
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{217:function(e,o,t){"use strict";t.r(o);t(9);var n=t(214),c=t(213),r=t.n(c),d=t(215),l=t.n(d),m={components:{QrcodeStream:n.QrcodeStream},methods:{onDecode:function(e){var data={prestamoId:Number(e),operadorId:1};r.a.put("".concat("https://venus.acatlan.unam.mx/pruebas_pcpuma","/prestamo/regreso"),data).then((function(e){console.log(e.data),l.a.fire({icon:"success",title:"¡Felicidades!",text:"Se ha retornado el dispositivo correctamente."})})).catch((function(e){console.log(e)}))}}},h=t(47),component=Object(h.a)(m,(function(){var e=this.$createElement;return(this._self._c||e)("qrcode-stream",{on:{decode:this.onDecode}})}),[],!1,null,null,null);o.default=component.exports}}]);
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{218:function(e,t,o){"use strict";o.r(t);o(9);var n=o(214),c=o(213),r=o.n(c),d=o(215),l=o.n(d),m={components:{QrcodeStream:n.QrcodeStream},methods:{onDecode:function(e){var data={prestamoId:Number(e),operadorId:1};r.a.put("".concat("https://venus.acatlan.unam.mx/pruebas_pcpuma","/reservacion/confirmar"),data).then((function(e){e.data.activo&&l.a.fire({icon:"success",title:"¡Felicidades!",text:"Haz activado correctamente el dispositivo del alumno."})})).catch((function(e){console.log(e)}))}}},f=o(47),component=Object(f.a)(m,(function(){var e=this.$createElement;return(this._self._c||e)("qrcode-stream",{on:{decode:this.onDecode}})}),[],!1,null,null,null);t.default=component.exports}}]);
-1
View File
@@ -1 +0,0 @@
!function(e){function r(data){for(var r,n,l=data[0],f=data[1],d=data[2],i=0,h=[];i<l.length;i++)n=l[i],Object.prototype.hasOwnProperty.call(o,n)&&o[n]&&h.push(o[n][0]),o[n]=0;for(r in f)Object.prototype.hasOwnProperty.call(f,r)&&(e[r]=f[r]);for(v&&v(data);h.length;)h.shift()();return c.push.apply(c,d||[]),t()}function t(){for(var e,i=0;i<c.length;i++){for(var r=c[i],t=!0,n=1;n<r.length;n++){var f=r[n];0!==o[f]&&(t=!1)}t&&(c.splice(i--,1),e=l(l.s=r[0]))}return e}var n={},o={6:0},c=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var c,script=document.createElement("script");script.charset="utf-8",script.timeout=120,l.nc&&script.setAttribute("nonce",l.nc),script.src=function(e){return l.p+""+({1:"vendors/340f9885",3:"pages/prestamo/index",4:"pages/regreso/index",5:"pages/reservacion/index"}[e]||e)+"."+{1:"89ef27d",3:"1d31315",4:"a224adb",5:"bca517d"}[e]+".js"}(e);var f=new Error;c=function(r){script.onerror=script.onload=null,clearTimeout(d);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.src;f.message="Loading chunk "+e+" failed.\n("+n+": "+c+")",f.name="ChunkLoadError",f.type=n,f.request=c,t[1](f)}o[e]=void 0}};var d=setTimeout((function(){c({type:"timeout",target:script})}),12e4);script.onerror=script.onload=c,document.head.appendChild(script)}return Promise.all(r)},l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(object,e){return Object.prototype.hasOwnProperty.call(object,e)},l.p="/_nuxt/",l.oe=function(e){throw console.error(e),e};var f=window.webpackJsonp=window.webpackJsonp||[],d=f.push.bind(f);f.push=r,f=f.slice();for(var i=0;i<f.length;i++)r(f[i]);var v=d;t()}([]);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-9
View File
@@ -1,9 +0,0 @@
<!doctype html>
<html>
<head>
<title>pcpuma_admin</title><meta data-n-head="1" charset="utf-8"><meta data-n-head="1" name="viewport" content="width=device-width,initial-scale=1"><meta data-n-head="1" data-hid="description" name="description" content="## Build Setup"><link data-n-head="1" rel="icon" type="image/x-icon" href="/favicon.ico"><link rel="preload" href="/_nuxt/runtime.2006747.js" as="script"><link rel="preload" href="/_nuxt/vendors/commons.af3260c.js" as="script"><link rel="preload" href="/_nuxt/app.c11a985.js" as="script">
</head>
<body>
<div id="__nuxt"><style>#nuxt-loading{background:#fff;visibility:hidden;opacity:0;position:absolute;left:0;right:0;top:0;bottom:0;display:flex;justify-content:center;align-items:center;flex-direction:column;animation:nuxtLoadingIn 10s ease;-webkit-animation:nuxtLoadingIn 10s ease;animation-fill-mode:forwards;overflow:hidden}@keyframes nuxtLoadingIn{0%{visibility:hidden;opacity:0}20%{visibility:visible;opacity:0}100%{visibility:visible;opacity:1}}@-webkit-keyframes nuxtLoadingIn{0%{visibility:hidden;opacity:0}20%{visibility:visible;opacity:0}100%{visibility:visible;opacity:1}}#nuxt-loading>div,#nuxt-loading>div:after{border-radius:50%;width:5rem;height:5rem}#nuxt-loading>div{font-size:10px;position:relative;text-indent:-9999em;border:.5rem solid #f5f5f5;border-left:.5rem solid #000;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:nuxtLoading 1.1s infinite linear;animation:nuxtLoading 1.1s infinite linear}#nuxt-loading.error>div{border-left:.5rem solid #ff4500;animation-duration:5s}@-webkit-keyframes nuxtLoading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes nuxtLoading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}</style><script>window.addEventListener("error",function(){var e=document.getElementById("nuxt-loading");e&&(e.className+=" error")})</script><div id="nuxt-loading" aria-live="polite" role="status"><div>Loading...</div></div></div><script>window.__NUXT__={config:{},staticAssetsBase:void 0}</script>
<script src="/_nuxt/runtime.2006747.js"></script><script src="/_nuxt/vendors/commons.af3260c.js"></script><script src="/_nuxt/app.c11a985.js"></script></body>
</html>
-27
View File
@@ -1,27 +0,0 @@
const gulp = require('gulp')
const sass = require('gulp-sass')
const autoprefixer = require('gulp-autoprefixer')
const css = () => {
return gulp
.src('./assets/scss/main.scss')
.pipe(
autoprefixer({
overrideBrowserslist: ['last 2 versions'],
cascade: false,
})
)
.pipe(
sass({
outputStyle: 'expanded',
// outputStyle: "compressed"
})
)
.pipe(gulp.dest('./assets'))
}
const watchFiles = () => {
gulp.watch('./assets/scss/*.scss', css)
}
gulp.task('watch', watchFiles)
-32
View File
@@ -1,32 +0,0 @@
export default {
mode: 'spa',
server: { port: 4200 },
router: {
mode: 'hash',
},
head: {
title: process.env.npm_package_name || '',
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{
hid: 'description',
name: 'description',
content: process.env.npm_package_description || '',
},
],
link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }],
},
css: [],
plugins: [],
components: true,
buildModules: ['@nuxtjs/eslint-module'],
modules: ['bootstrap-vue/nuxt'],
build: {},
env: {
// api: "http://localhost:3000"
// api: 'https://f856b4d485e1.ngrok.io',
api: 'https://venus.acatlan.unam.mx/pruebas_pcpuma',
// api: "http://"
},
}
+4670 -5059
View File
File diff suppressed because it is too large Load Diff
+37 -21
View File
@@ -1,36 +1,52 @@
{
"name": "pcpuma_admin",
"version": "1.0.0",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "nuxt",
"build": "nuxt build",
"start": "nuxt start",
"generate": "nuxt generate",
"lint:js": "eslint --ext .js,.vue --ignore-path .gitignore .",
"lint": "npm run lint:js"
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"axios": "^0.20.0",
"bootstrap": "^4.5.0",
"bootstrap-vue": "^2.15.0",
"moment": "^2.27.0",
"nuxt": "^2.14.0",
"sweetalert2": "^10.0.1",
"validator": "^13.1.1",
"bootstrap": "^4.5.2",
"bootstrap-vue": "^2.17.3",
"core-js": "^3.6.5",
"moment": "^2.29.0",
"sweetalert2": "^10.3.5",
"validator": "^13.1.17",
"vue": "^2.6.11",
"vue-qrcode-reader": "^2.3.13"
},
"devDependencies": {
"@nuxtjs/eslint-config": "^3.1.0",
"@nuxtjs/eslint-module": "^2.0.0",
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"babel-eslint": "^10.1.0",
"eslint": "^7.5.0",
"eslint-config-prettier": "^6.11.0",
"eslint-plugin-nuxt": "^1.0.0",
"eslint-plugin-prettier": "^3.1.4",
"eslint": "^6.7.2",
"eslint-plugin-vue": "^6.2.2",
"gulp": "^4.0.2",
"gulp-autoprefixer": "^7.0.1",
"gulp-sass": "^4.1.0",
"prettier": "^2.0.5"
}
"vue-template-compiler": "^2.6.11"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/essential",
"eslint:recommended"
],
"parserOptions": {
"parser": "babel-eslint"
},
"rules": {}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead"
]
}
-36
View File
@@ -1,36 +0,0 @@
<template>
<qrcode-stream @decode="onDecode"></qrcode-stream>
</template>
<script>
import { QrcodeStream } from 'vue-qrcode-reader'
import axios from 'axios'
import Swal from 'sweetalert2'
export default {
components: {
QrcodeStream,
},
methods: {
onDecode(idPrestamo) {
const data = { prestamoId: Number(idPrestamo), operadorId: 1 }
axios
.put(`${process.env.api}/prestamo/confirmar`, data)
.then((res) => {
if (res.data.activo) {
Swal.fire({
icon: 'success',
title: '¡Felicidades!',
text: 'Haz activado correctamente el dispositivo del alumno.',
})
}
})
.catch((err) => {
// eslint-disable-next-line no-console
console.log(err)
})
},
},
}
</script>
-37
View File
@@ -1,37 +0,0 @@
<template>
<qrcode-stream @decode="onDecode"></qrcode-stream>
</template>
<script>
import { QrcodeStream } from 'vue-qrcode-reader'
import axios from 'axios'
import Swal from 'sweetalert2'
export default {
components: {
QrcodeStream,
},
methods: {
onDecode(idPrestamo) {
const data = { prestamoId: Number(idPrestamo), operadorId: 1 }
axios
.put(`${process.env.api}/prestamo/regreso`, data)
.then((res) => {
// if (res.data.activo) {
// eslint-disable-next-line no-console
console.log(res.data)
Swal.fire({
icon: 'success',
title: '¡Felicidades!',
text: 'Se ha retornado el dispositivo correctamente.',
})
// }
})
.catch((err) => {
// eslint-disable-next-line no-console
console.log(err)
})
},
},
}
</script>
-36
View File
@@ -1,36 +0,0 @@
<template>
<qrcode-stream @decode="onDecode"></qrcode-stream>
</template>
<script>
import { QrcodeStream } from 'vue-qrcode-reader'
import axios from 'axios'
import Swal from 'sweetalert2'
export default {
components: {
QrcodeStream,
},
methods: {
onDecode(idPrestamo) {
const data = { prestamoId: Number(idPrestamo), operadorId: 1 }
axios
.put(`${process.env.api}/reservacion/confirmar`, data)
.then((res) => {
if (res.data.activo) {
Swal.fire({
icon: 'success',
title: '¡Felicidades!',
text: 'Haz activado correctamente el dispositivo del alumno.',
})
}
})
.catch((err) => {
// eslint-disable-next-line no-console
console.log(err)
})
},
},
}
</script>
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

+17
View File
@@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
+14
View File
@@ -0,0 +1,14 @@
<template>
<div id="app">
<p>hol</p>
</div>
</template>
<script>
export default {
name: "App",
};
</script>
<style></style>
+8
View File
@@ -0,0 +1,8 @@
import Vue from 'vue'
import App from './App.vue'
Vue.config.productionTip = false
new Vue({
render: h => h(App),
}).$mount('#app')