feat: 功能组件添加

新增axios请求组件http.js,新增国际化组件i18n.js,新增完全分页组件pagination,样式调整
This commit is contained in:
wanghaoyu
2019-12-04 13:45:37 +08:00
parent 427bd7eb94
commit fdd1888577
15 changed files with 792 additions and 71 deletions

View File

@@ -6,12 +6,18 @@ const path = require('path')
module.exports = { module.exports = {
dev: { dev: {
// Paths // Paths
assetsSubDirectory: 'static', assetsSubDirectory: 'static',
assetsPublicPath: '/', assetsPublicPath: '/',
proxyTable: {}, proxyTable: {
'/api': {
target: 'http://localhost:8088/nz-admin', //设置调用接口域名和端口号别忘了加http
changeOrigin: true,
pathRewrite: {
'^/api': '/' //这里理解成用‘/api代替target里面的地址组件中我们调接口时直接用/api代替
},
}
},
// Various Dev Server settings // Various Dev Server settings
host: 'localhost', // can be overwritten by process.env.HOST host: 'localhost', // can be overwritten by process.env.HOST
port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined

View File

@@ -289,6 +289,38 @@
"postcss-value-parser": "^3.2.3" "postcss-value-parser": "^3.2.3"
} }
}, },
"axios": {
"version": "0.19.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
"integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==",
"requires": {
"follow-redirects": "1.5.10",
"is-buffer": "^2.0.2"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
},
"follow-redirects": {
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
"requires": {
"debug": "=3.1.0"
}
},
"is-buffer": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
"integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A=="
}
}
},
"babel-code-frame": { "babel-code-frame": {
"version": "6.26.0", "version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
@@ -6108,8 +6140,7 @@
"ms": { "ms": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
"dev": true
}, },
"multicast-dns": { "multicast-dns": {
"version": "6.2.3", "version": "6.2.3",
@@ -11001,6 +11032,16 @@
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
"dev": true "dev": true
}, },
"vue-i18n": {
"version": "8.15.1",
"resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.15.1.tgz",
"integrity": "sha512-GBbz8qYCu0U2LNu4IcuFLZiuyninG4k26knvhL7GZG5Ncp4RR2VKDEH6g8gQ6I+UUBCvH2MBQVPSdxWe4DBkPw=="
},
"vue-infinite-scroll": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/vue-infinite-scroll/-/vue-infinite-scroll-2.0.2.tgz",
"integrity": "sha512-n+YghR059YmciANGJh9SsNWRi1YZEBVlODtmnb/12zI+4R72QZSWd+EuZ5mW6auEo/yaJXgxzwsuhvALVnm73A=="
},
"vue-loader": { "vue-loader": {
"version": "13.7.3", "version": "13.7.3",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-13.7.3.tgz", "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-13.7.3.tgz",

View File

@@ -11,12 +11,21 @@ export default {
</script> </script>
<style> <style>
#app { body,html{
font-family: 'Avenir', Helvetica, Arial, sans-serif; /* font-family: "AlibabaPuHuiTiR"; */
-webkit-font-smoothing: antialiased; }
-moz-osx-font-smoothing: grayscale; .ly-table1 table{
text-align: center; /* table-layout: unset; */
color: #2c3e50; }
margin-top: 60px; ::-webkit-scrollbar{
width: 10px;
height: 10px;
}
::-webkit-scrollbar-thumb{
border-radius: 1em;
background-color: rgba(50,50,50,.3);
}
::-webkit-scrollbar-track{
border-radius: 1em;
} }
</style> </style>

View File

@@ -11,7 +11,6 @@ body {
height: 100%; height: 100%;
box-sizing: border-box; box-sizing: border-box;
} }
html { html {
overflow: auto; overflow: auto;
overflow-y: hidden; overflow-y: hidden;
@@ -19,6 +18,17 @@ html {
height: 100%; height: 100%;
box-sizing: border-box; box-sizing: border-box;
} }
/*侧滑文字*/
.el-form-item .el-form-item__label{
font-size: 10px;
text-align : left;
}
/*侧滑输入框高度*/
.el-input .el-input__inner{
line-height: 26px;
height: 26px;
}
/*侧滑输入框宽度*/
.el-form-item__content .el-input{
width: 90%;
}

View File

@@ -1,26 +0,0 @@
<template>
<div>
<div>登录</div>
<el-button @click="jump">默认按钮</el-button>
</div>
</template>
<script>
export default {
name: "login",
methods:{
jump(){
this.$router.push({
path: "/dashboard",
query: {
t: +new Date()
}
});
}
}
}
</script>
<style scoped>
</style>

View File

@@ -21,6 +21,12 @@
<el-menu-item index="2-2">选项2</el-menu-item> <el-menu-item index="2-2">选项2</el-menu-item>
<el-menu-item index="2-3">选项3</el-menu-item> <el-menu-item index="2-3">选项3</el-menu-item>
</el-submenu> </el-submenu>
<el-submenu index="4">
<template slot="title"><div @click="jumpTo('alarm')">{{$t('overall.asset')}}</div></template>
<el-menu-item index="2-1">选项1</el-menu-item>
<el-menu-item index="2-2">选项2</el-menu-item>
<el-menu-item index="2-3">选项3</el-menu-item>
</el-submenu>
</el-menu> </el-menu>
</div> </div>
<div class="header-right"> <div class="header-right">
@@ -91,7 +97,7 @@ export default {
<style scoped> <style scoped>
.submenu{ .submenu{
padding-left: 50%; padding-left: 50%;
width: 300px; width: 400px;
float: left; float: left;
} }
.header { .header {
@@ -101,7 +107,7 @@ export default {
height: 60px; height: 60px;
font-size: 22px; font-size: 22px;
background-color: #ffffff; background-color: #ffffff;
z-index: 999; z-index: 500;
box-shadow: 0px 20px 13px -19px #5E5E5E; box-shadow: 0px 20px 13px -19px #5E5E5E;
} }
.header-right { .header-right {

View File

@@ -10,10 +10,10 @@
</template> </template>
<script> <script>
import Header from "./Header"; import Header from "./header";
import sideBar from "./SideBar"; import sideBar from "./sideBar";
export default { export default {
name: "Home.vue", name: "home",
components: {Header,sideBar} components: {Header,sideBar}
} }
@@ -34,6 +34,7 @@ export default {
height: calc(100% - 50px); height: calc(100% - 50px);
box-sizing: border-box; box-sizing: border-box;
transform: translateY(0); transform: translateY(0);
padding: 20px
} }
@media screen and (max-width: 1600px) { @media screen and (max-width: 1600px) {
.content-box { .content-box {

View File

@@ -5,6 +5,86 @@ const cn = {
project:'工程', project:'工程',
asset:'资产' asset:'资产'
}, },
asset:{
tableTitle:[
{
label: 'ID',
prop: 'ID',
show: true,
}, {
label: '资产类型',
prop: '资产类型',
show: true,
}, {
label: 'Device SN',
prop: 'Device SN',
show: true,
}, {
label: 'IP',
prop: 'IP',
show: true,
}, {
label: '资产状态',
prop: '资产状态',
show: true,
}, {
label: 'Module',
prop: 'Module',
show: true,
}, {
label: 'Alarm',
prop: 'Alarm',
show: true,
}, {
label: '数据中心',
prop: '数据中心',
show: true,
}, {
label: '机柜',
prop: '机柜',
show: true,
}, {
label: '型号',
prop: '型号',
show: true,
}, {
label: '厂商',
prop: '厂商',
show: true,
}, {
label: '采购日期',
prop: '采购日期',
show: true,
}, {
label: '保修截止期',
prop: '保修截止期',
show: true,
}, {
label: '设备责任人',
prop: '设备责任人',
show: true,
}
],
tagTableTitle: [
{
label: '项目名称',
prop: 'projectName',
show: true,
}, {
label: 'Module Name',
prop: 'moduleName',
show: true,
}, {
label: 'EndPoint',
prop: 'endPoint',
show: true,
}, {
label: 'Alarm',
prop: 'alarm',
show: true,
},
]
},
...zhLocale ...zhLocale
} }

View File

@@ -5,6 +5,86 @@ const en = {
project:'project', project:'project',
asset:'asset' asset:'asset'
}, },
asset:{
tableTitle:[
{
label: 'ID',
prop: 'ID',
show: true,
}, {
label: 'Asset Type',
prop: '资产类型',
show: true,
}, {
label: 'Device SN',
prop: 'Device SN',
show: true,
}, {
label: 'IP',
prop: 'IP',
show: true,
}, {
label: '资产状态',
prop: '资产状态',
show: true,
}, {
label: 'Module',
prop: 'Module',
show: true,
}, {
label: 'Alarm',
prop: 'Alarm',
show: true,
}, {
label: '数据中心',
prop: '数据中心',
show: true,
}, {
label: '机柜',
prop: '机柜',
show: true,
}, {
label: '型号',
prop: '型号',
show: true,
}, {
label: '厂商',
prop: '厂商',
show: true,
}, {
label: '采购日期',
prop: '采购日期',
show: true,
}, {
label: '保修截止期',
prop: '保修截止期',
show: true,
}, {
label: '设备责任人',
prop: '设备责任人',
show: true,
}
],
tagTableTitle: [
{
label: 'Project Name',
prop: 'projectName',
show: true,
}, {
label: 'Module Name',
prop: 'moduleName',
show: true,
}, {
label: 'EndPoint',
prop: 'endPoint',
show: true,
}, {
label: 'Alarm',
prop: 'alarm',
show: true,
},
]
},
...enLocale ...enLocale
} }

View File

@@ -0,0 +1,41 @@
<template>
<div>
<div>登录</div>
<el-input v-model="loginData.username" placeholder="请输入内容"></el-input>
<el-input v-model="loginData.password" placeholder="请输入内容"></el-input>
<button @click="login">登录</button>
</div>
</template>
<script>
export default {
name: "login",
data() {
return {
loginData: {
username: '',
password: '',
},
}
},
methods: {
login() {
this.$post('api/sys/login', (this.loginData)).then(res => {
if (res.code == 200) {
sessionStorage.setItem("token", res.data.token);
this.$router.push({
path: "/asset",
query: {
t: +new Date()
}
});
}
})
},
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,64 @@
<template>
<div class="pagination">
<el-pagination
ref="page"
background
@size-change="size"
@prev-click="prev"
@next-click="next"
@current-change="current"
:page-sizes="[20, 50, 100, 300]"
:page-size="20"
layout="prev, pager, next, jumper, sizes, total"
:total="this.pageObj.total"
></el-pagination>
</div>
</template>
<script>
export default {
name: "pagination",
props: ['pageObj'],
data() {
return {};
},
methods: {
background() {
this.backgroundColor();
},
//点击上一页箭头
prev() {
this.backgroundColor();
},
//点击下一页箭头
next(val) {
this.backgroundColor();
},
//currentPage 改变时会触发
current(val) {
this.$emit("pageNo", val);
this.backgroundColor();
},
size(val) {
this.$emit("pageSize", val);
this.backgroundColor();
},
//设置当前页的样式
backgroundColor() {
this.list = this.$refs.page.$el.children[2].children;
for (let i = 0; i < this.list.length; i++) {
const element = this.list[i];
}
},
}
};
</script>
<style>
.pagination {
display: inline-block;
margin-top: 10px;
margin-left: 50%;
transform: translate(-50%);
}
</style>

View File

@@ -3,9 +3,9 @@
<div class="cartTitle"> <div class="cartTitle">
<div>Project</div> <div>Project</div>
</div> </div>
<div v-for="{item} in arr" v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-distance="1"> <!-- <div v-for="{item} in arr" v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-distance="1">-->
<div class="projectCard" :id="gett(item)"></div> <!-- <div class="projectCard" :id="gett(item)"></div>-->
</div> <!-- </div>-->
</div> </div>
</template> </template>
@@ -14,20 +14,20 @@ export default {
name: "SiderBar", name: "SiderBar",
data(){ data(){
return{ return{
arr:[12,3,4,5,6,7,8,98,54] // arr:[12,3,4,5,6,7,8,98,54]
} }
}, },
methods: { methods: {
gett: function (index) { // gett: function (index) {
return "sdf" + index // return "sdf" + index
}, // },
loadMore() { // loadMore() {
this.busy = true // this.busy = true
setTimeout(() => { // setTimeout(() => {
this.page++ // this.page++
}, 1000) // }, 1000)
this.arr.push('1') // this.arr.push('1')
} // }
} }
} }

View File

@@ -1,15 +1,388 @@
<template> <template>
<div style="height:95%;overflow-y:auto">
<div> <div>
asset <el-input
style="width: 90px;"
placeholder="请输入内容"
v-model="input"
clearable>
</el-input>
</div>
<div>
<el-table
:data="this.tableData"
>
<el-table-column
v-for="(item, index) in tableTitle"
v-if="item.show"
min-width="120"
:key="`col_${index}`"
:label="item.label"
>
{{item}}
<template slot-scope="scope" :column="item">
<div v-if="item.prop=='ID'">
<p>
<span>{{scope.row['id']}}</span>
</p>
</div>
<div v-if="item.prop=='IP'">
<p>
<span>{{scope.row['host']}}</span>
</p>
</div>
</template>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="100">
<template slot-scope="scope">
<el-button type="text" size="small" @click.stop="tagShow('showAdd')">查看</el-button>
<el-button type="text" size="small" @click.stop="tagShow('showEdit')">编辑</el-button>
</template>
</el-table-column>
</el-table>
</div>
<Pagination :pageObj="pageObj" @pageNo='pageNo' @pageSize='pageSize' ref="Pagination"></Pagination>
<transition name="el-zoom-in-center" @click.stop>
<div class="right-menu" v-if="tabShow" v-clickoutside:tagHide="tagShow">
<div v-if="this.tagType=='add'">
<el-form ref="form" :model="form" label-width="120px">
<div class="right-box__top-btns">
<div class="right-box__top-btn right-box__top-btn_full">
<div class="right-box__btn-icon">
<i class="el-icon-close"></i>
</div>
<span>Esc</span>
</div>
<div class="right-box__top-btn right-box__top-btn_full">
<div class="right-box__btn-icon">
<i class="el-icon-edit-outline"></i>
</div>
<span>Save</span>
</div>
<div class="right-box__top-btn">
<div class="right-box__btn-icon">
<i class="el-icon-delete"></i>
</div>
<span>Delete</span>
</div>
</div>
<div class="el-form-style">
<el-form-item label="IP">
<el-input v-model="form.name"/>
</el-form-item>
<el-form-item label="SN">
<el-input v-model="form.name"/>
</el-form-item>
<el-form-item label="Asset Type">
<el-input v-model="form.name"/>
</el-form-item>
<el-form-item label="ModelId">
<el-input v-model="form.name"/>
</el-form-item>
<el-form-item label="IDC">
<el-input v-model="form.name"/>
</el-form-item>
<el-form-item label="Cabinet">
<el-input v-model="form.name"/>
</el-form-item>
<el-form-item label="Host">
<el-input v-model="form.name"/>
</el-form-item>
<el-form-item label="State">
<el-input v-model="form.name"/>
</el-form-item>
<el-form-item>
<el-button>取消</el-button>
</el-form-item>
</div>
</el-form>
</div>
<div v-if="this.tagType=='edit'">
<el-form ref="form" :model="form" label-width="120px" size="small">
<div class="right-box__top-btns">
<div class="right-box__top-btn right-box__top-btn_full">
<div class="right-box__btn-icon">
<i class="el-icon-close"></i>
</div>
<span>Esc</span>
</div>
<div class="right-box__top-btn right-box__top-btn_full">
<div class="right-box__btn-icon">
<i class="el-icon-edit-outline"></i>
</div>
<span>Save</span>
</div>
<div class="right-box__top-btn">
<div class="right-box__btn-icon">
<i class="el-icon-delete"></i>
</div>
<span>Delete</span>
</div>
</div>
<div class="el-form-style">
<el-form-item label="IP">
<span>192.168.100.255</span>
</el-form-item>
<el-form-item label="SN">
<span>AAQWEROIUOWENKOIZLNWEROFPIAN</span>
</el-form-item>
<el-form-item label="Asset Type">
<span>服务器</span>
</el-form-item>
<el-form-item label="ModelId">
<span>No1</span>
</el-form-item>
<el-form-item label="IDC">
<span>国内地区/北京市/1</span>
</el-form-item>
<el-form-item label="Cabinet">
<span>13排223机柜</span>
</el-form-item>
<el-form-item label="Host">
<span>192.158.22.22</span>
</el-form-item>
<el-form-item label="State">
<span>在库</span>
</el-form-item>
<el-form-item label="Alarm">
<div>111</div>
</el-form-item>
</div>
<div style="padding-top: 10px">
<span>endPoint:</span>
</div>
<div class="tag-table">
<el-table
:data="tagTableData"
:row-style="{height:'20px'}"
:cell-style="{padding:'2px'}"
>
<el-table-column
v-for="(item, index) in tagTableTitle"
v-if="item.show"
:key="`col_${index}`"
:label="item.label"
>
<template slot-scope="scope" :column="item">
<div v-if="item.prop=='projectName'">
<p>
<span>{{scope.row['projectName']}}</span>
</p>
</div>
<div v-if="item.prop=='moduleName'">
<p>
<span>{{scope.row['moduleName']}}</span>
</p>
</div>
<div v-if="item.prop=='endPoint'">
<div class="tableSquare">342</div>
</div>
<div v-if="item.prop=='alarm'">
<div class="tableSquare">{{11}}/{{111}}</div>
</div>
</template>
</el-table-column>
<el-table-column
fixed="right"
label=""
width="100">
<template slot-scope="scope">
<el-button type="text" size="small" @click.stop="tagShow('showAdd')">查看
</el-button>
<el-button type="text" size="small" @click.stop="tagShow('showEdit')">编辑
</el-button>
</template>
</el-table-column>
</el-table>
<!-- <Pagination :pageobj="pageObj" ref="Pagination"></Pagination>-->
<el-divider></el-divider>
<span>默认CLI账户</span>
<div style="padding-top: 10px">
<el-select v-model="form.region" placeholder="请选择活动区域" style="width: 90%">
<el-option label="区域一" value="shanghai">111111111111111111111</el-option>
<el-option label="区域二" value="beijing">111111111111111111111</el-option>
<el-option label="区域二" value="beijing">111111111111111111111</el-option>
<el-option label="区域二" value="beijing">111111111111111111111</el-option>
</el-select>
</div>
</div>
<div class="el-form-style">
<el-form-item label="IP">
<span>192.168.100.255</span>
</el-form-item>
<el-form-item label="SN">
<span>AAQWEROIUOWENKOIZLNWEROFPIAN</span>
</el-form-item>
<el-form-item label="Asset Type">
<span>服务器</span>
</el-form-item>
<el-form-item label="ModelId">
<span>No1</span>
</el-form-item>
<el-form-item label="IDC">
<span>国内地区/北京市/1</span>
</el-form-item>
</div>
</el-form>
</div>
</div>
</transition>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
name: "asset" name: "asset",
data() {
return {
tableTitle: this.$t('asset.tableTitle'),
tagTableTitle: this.$t('asset.tagTableTitle'),
tableData: [],
tagTableData: [
{
projectName: '2016-05-02',
moduleName: '王小虎',
endPoint: '上海市普陀区金沙江路 1518 弄'
}, {
projectName: '2016-05-04',
moduleName: '王小虎',
endPoint: '上海市普陀区金沙江路 1517 弄'
}, {
projectName: '2016-05-01',
moduleName: '王小虎',
endPoint: '上海市普陀区金沙江路 1519 弄'
}, {
projectName: '2016-05-03',
moduleName: '王小虎',
endPoint: '上海市普陀区金沙江路 1516 弄'
}, {
projectName: '2016-05-02',
moduleName: '王小虎',
endPoint: '上海市普陀区金沙江路 1518 弄'
},
],
pageObj: {
pageNo: 1,
pageSize: 20,
total:0
},
input: '',
tabShow: false,
tagType: 'add',
form: {
name: ''
},
}
},
methods: {
getListData() {
new Promise((resolve, reject) => {
this.$get('api/asset',this.pageObj).
then(response => {
if(response.code==200){
this.tableData = response.data.list
console.log(this.tableData)
this.pageObj.total = response.data.total
}
resolve(response.data)
}).catch(err => {
reject(err.response)
})
})
},
tagShow(t) {
this.tabShow = false
if (t === 'showAdd') {
this.tabShow = true
this.tagType = 'add'
}
if (t === 'showEdit') {
this.tabShow = true
this.tagType = 'edit'
}
},
pageNo(val) {
this.pageObj.pageNo = val;
this.getListData()
},
pageSize(val){
this.pageObj.pageSize = val;
this.getListData()
}
},
mounted() {
this.getListData()
}
} }
</script> </script>
<style>
.el-table{
font-size: 10px;
}
<style scoped> .el-form-style .el-form-item {
margin-bottom: 0px;
}
.el-form-style .el-form-item .el-form-item__content {
height: 25px;
font-size: 10px;
}
.el-table__body-wrapper::-webkit-scrollbar {
width: 6px;
height: 6px;
}
</style>
<style scoped>
.right-menu {
position: fixed;
top: 20px;
right: 0;
z-index: 500;
border-radius: 8px;
box-shadow: 0 0 15px #ccc;
background-color: white;
padding: 0 20px;
width: 580px;
height: calc(100% - 60px);
overflow-y: auto
}
.right-box__top-btn {
border-radius: 0 0 9px 9px;
float: right;
color: #656565;
height: 35px;
font-size: 12px;
padding: 3px 8px 1px 8px;
border: 1px solid #aaaaaa;
border-top: none;
cursor: pointer;
margin-left: 20px;
}
.right-box__top-btn_full {
background-color: #656565;
border: 1px solid #656565;
border-top: none;
color: white;
}
.el-form-style {
padding-top: 40px;
}
.tableSquare {
border: 1px solid #000;
height: 25px;
width: 90px;
border-radius: 8px;
text-align: center;
}
</style> </style>

View File

@@ -8,7 +8,7 @@ import Vue from 'vue'
import App from './App' import App from './App'
import router from './router' import router from './router'
import axios from 'axios'; import axios from 'axios';
import { post, get, patch, put, del } from './components/common/js/http.js' import { post, get} from './http.js'
import Pagination from "./components/common/pagination"; //引入全局分页组件 import Pagination from "./components/common/pagination"; //引入全局分页组件
Vue.component("Pagination", Pagination); Vue.component("Pagination", Pagination);
@@ -16,13 +16,45 @@ Vue.component("Pagination", Pagination);
Vue.prototype.$axios = axios Vue.prototype.$axios = axios
Vue.prototype.$post = post; Vue.prototype.$post = post;
Vue.prototype.$get = get; Vue.prototype.$get = get;
Vue.prototype.$patch = patch;
Vue.prototype.$put = put;
Vue.prototype.$delete = del;
Vue.config.productionTip = false Vue.config.productionTip = false
Vue.use(ElementUI) Vue.use(ElementUI)
const clickoutside = {
// 初始化指令
bind(el, binding, vnode) {
function documentHandler(e) {
// 这里判断点击的元素是否是本身,是本身,则返回
if (el.contains(e.target)) {
return false;
}
// 判断指令中是否绑定了函数
if (binding.expression) {
// 如果绑定了函数 则调用那个函数此处binding.value就是handleClose方法
if (binding.arg) {
binding.value(e, binding.arg);
} else {
binding.value(e);
}
}
}
// 给当前元素绑定个私有变量方便在unbind中可以解除事件监听
el.__vueClickOutside__ = documentHandler;
document.addEventListener('click', documentHandler);
},
unbind(el, binding) {
// 解除事件监听
document.removeEventListener('click', el.__vueClickOutside__);
delete el.__vueClickOutside__;
},
};
Vue.directive('clickoutside',
clickoutside
)
/* eslint-disable no-new */ /* eslint-disable no-new */
new Vue({ new Vue({
el: '#app', el: '#app',

View File

@@ -11,11 +11,11 @@ export default new Router({
}, },
{ {
path: '/login', path: '/login',
component: resolve => require(['../components/common/Login.vue'], resolve), component: resolve => require(['../components/common/login.vue'], resolve),
}, },
{ {
path: '/', path: '/',
component: resolve => require(['../components/common/Home.vue'], resolve), component: resolve => require(['../components/common/home.vue'], resolve),
children: [ children: [
{ {
path: '/dashboard', path: '/dashboard',
@@ -27,7 +27,11 @@ export default new Router({
}, },
{ {
path: '/asset', path: '/asset',
component: resolve => require(['../components/page/project/project.vue'], resolve), component: resolve => require(['../components/page/asset/asset.vue'], resolve),
},
{
path: '/alarm',
component: resolve => require(['../components/page/config/account.vue'], resolve),
} }
] ]
}, },