@@ -1,7 +1,7 @@ | |||||
<!-- | <!-- | ||||
* @Date: 2021-11-29 11:14:13 | * @Date: 2021-11-29 11:14:13 | ||||
* @LastEditors: JinxuChen | * @LastEditors: JinxuChen | ||||
* @LastEditTime: 2021-12-08 16:55:53 | |||||
* @LastEditTime: 2021-12-10 10:56:47 | |||||
* @FilePath: \GpsCardAdmin\README.md | * @FilePath: \GpsCardAdmin\README.md | ||||
* @description: | * @description: | ||||
--> | --> | ||||
@@ -57,4 +57,11 @@ FIX | |||||
FEATURE | FEATURE | ||||
- 增加 localStorage存储 src\store\localStorage.js | - 增加 localStorage存储 src\store\localStorage.js | ||||
- 增加 页面显示用户名 | - 增加 页面显示用户名 | ||||
- 修改 首页背景图 | |||||
- 修改 首页背景图 | |||||
## v1.0.6F | |||||
`2021年12月10日` | |||||
- 增加 标签栏头部logo | |||||
- 增加 移动端分页页码跳转按钮 | |||||
- 增加 移动端表格弹窗适配 | |||||
- 增加 头部固定配置 |
@@ -1,7 +1,7 @@ | |||||
<!-- | <!-- | ||||
* @Date: 2021-11-29 11:20:34 | * @Date: 2021-11-29 11:20:34 | ||||
* @LastEditors: JinxuChen | * @LastEditors: JinxuChen | ||||
* @LastEditTime: 2021-11-30 15:13:57 | |||||
* @LastEditTime: 2021-12-10 10:42:56 | |||||
* @FilePath: \GpsCardAdmin\src\App.vue | * @FilePath: \GpsCardAdmin\src\App.vue | ||||
* @description: | * @description: | ||||
--> | --> | ||||
@@ -34,7 +34,7 @@ export default { | |||||
}); | }); | ||||
}, | }, | ||||
debug() { | debug() { | ||||
if (process.env.NODE_ENV !== "production") { | |||||
if (process.env.NODE_ENV !== "production" && document.body.clientWidth - 1 < 991) { | |||||
const script = document.createElement("script"); | const script = document.createElement("script"); | ||||
script.src = "//cdn.jsdelivr.net/npm/eruda"; | script.src = "//cdn.jsdelivr.net/npm/eruda"; | ||||
document.body.appendChild(script); | document.body.appendChild(script); | ||||
@@ -1,102 +1,194 @@ | |||||
<template> | <template> | ||||
<div :class="{'hidden':hidden}" class="pagination-container"> | |||||
<el-pagination | |||||
:background="background" | |||||
:current-page.sync="currentPage" | |||||
:page-size.sync="pageSize" | |||||
:layout="layout" | |||||
:page-sizes="pageSizes" | |||||
:total="total" | |||||
v-bind="$attrs" | |||||
@size-change="handleSizeChange" | |||||
@current-change="handleCurrentChange" | |||||
/> | |||||
</div> | |||||
<div :class="{'hidden':hidden}" class="pagination-container"> | |||||
<el-row class="pagination-row"> | |||||
<el-col :xs="20" :sm="20" :md="20" :lg="16" :xl="12"> | |||||
<el-pagination | |||||
:background="background" | |||||
:current-page.sync="currentPage" | |||||
:page-size.sync="pageSize" | |||||
:layout="layout" | |||||
:page-sizes="pageSizes" | |||||
small | |||||
ref="pagination" | |||||
:total="total" | |||||
v-bind="$attrs" | |||||
@size-change="handleSizeChange" | |||||
@current-change="handleCurrentChange" | |||||
/> | |||||
</el-col> | |||||
<el-col :span="4" class="jump-button" v-show="isMobile"> | |||||
<el-button type="primary" @click="onJump">跳转</el-button> | |||||
</el-col> | |||||
</el-row> | |||||
</div> | |||||
</template> | </template> | ||||
<script> | <script> | ||||
import { scrollTo } from '@/utils/scroll-to' | |||||
import { scrollTo } from "@/utils/scroll-to"; | |||||
const { body } = document; | |||||
export default { | export default { | ||||
name: 'Pagination', | |||||
props: { | |||||
total: { | |||||
required: true, | |||||
type: Number | |||||
name: "Pagination", | |||||
data() { | |||||
return { | |||||
screenWidth: document.body.clientWidth, | |||||
/* isMobile: false */ | |||||
}; | |||||
}, | }, | ||||
page: { | |||||
type: Number, | |||||
default: 1 | |||||
props: { | |||||
total: { | |||||
required: true, | |||||
type: Number | |||||
}, | |||||
page: { | |||||
type: Number, | |||||
default: 1 | |||||
}, | |||||
limit: { | |||||
type: Number, | |||||
default: 20 | |||||
}, | |||||
pageSizes: { | |||||
type: Array, | |||||
default() { | |||||
return [10, 20, 30, 50]; | |||||
} | |||||
}, | |||||
layout: { | |||||
type: String, | |||||
default: "total, sizes, prev, pager, next, jumper" //total, sizes, prev, pager, next, jumper | |||||
}, | |||||
background: { | |||||
type: Boolean, | |||||
default: true | |||||
}, | |||||
autoScroll: { | |||||
type: Boolean, | |||||
default: true | |||||
}, | |||||
hidden: { | |||||
type: Boolean, | |||||
default: false | |||||
} | |||||
}, | }, | ||||
limit: { | |||||
type: Number, | |||||
default: 20 | |||||
computed: { | |||||
currentPage: { | |||||
get() { | |||||
return this.page; | |||||
}, | |||||
set(val) { | |||||
this.$emit("update:page", val); | |||||
} | |||||
}, | |||||
pageSize: { | |||||
get() { | |||||
return this.limit; | |||||
}, | |||||
set(val) { | |||||
this.$emit("update:limit", val); | |||||
} | |||||
}, | |||||
// 防止在移动端刷新按钮消失 | |||||
isMobile: { | |||||
get() { | |||||
if(this.screenWidth < 991) { | |||||
return true | |||||
} else { | |||||
return false | |||||
} | |||||
}, | |||||
set(val) { | |||||
this.screenWidth | |||||
} | |||||
} | |||||
}, | }, | ||||
pageSizes: { | |||||
type: Array, | |||||
default() { | |||||
return [10, 20, 30, 50] | |||||
} | |||||
watch: { | |||||
// 监听浏览器可视窗口变化 | |||||
screenWidth(val){ | |||||
console.log(val); | |||||
const IWIDTH = 991; | |||||
if(val - 1 < IWIDTH) { | |||||
this.isMobile = true; | |||||
} else { | |||||
this.isMobile = false; | |||||
} | |||||
} | |||||
}, | }, | ||||
layout: { | |||||
type: String, | |||||
default: 'total, sizes, prev, pager, next, jumper' | |||||
mounted() { | |||||
this.getScreenWidth(); | |||||
}, | }, | ||||
background: { | |||||
type: Boolean, | |||||
default: true | |||||
}, | |||||
autoScroll: { | |||||
type: Boolean, | |||||
default: true | |||||
}, | |||||
hidden: { | |||||
type: Boolean, | |||||
default: false | |||||
} | |||||
}, | |||||
computed: { | |||||
currentPage: { | |||||
get() { | |||||
return this.page | |||||
}, | |||||
set(val) { | |||||
this.$emit('update:page', val) | |||||
} | |||||
}, | |||||
pageSize: { | |||||
get() { | |||||
return this.limit | |||||
}, | |||||
set(val) { | |||||
this.$emit('update:limit', val) | |||||
} | |||||
methods: { | |||||
handleSizeChange(val) { | |||||
this.$emit("pagination", { page: this.currentPage, limit: val }); | |||||
if (this.autoScroll) { | |||||
scrollTo(0, 800); | |||||
} | |||||
}, | |||||
handleCurrentChange(val) { | |||||
this.$emit("pagination", { page: val, limit: this.pageSize }); | |||||
if (this.autoScroll) { | |||||
scrollTo(0, 800); | |||||
} | |||||
}, | |||||
// 跳转确认 | |||||
onJump() { | |||||
let evtObj; | |||||
let elevatorDiv = document.getElementsByClassName( | |||||
"el-pagination__editor" | |||||
); | |||||
if (elevatorDiv && elevatorDiv.length > 0) { | |||||
let pageInput = elevatorDiv[0].getElementsByTagName("input")[0]; | |||||
if (window.KeyEvent) { | |||||
//firefox 浏览器下模拟事件 | |||||
evtObj = document.createEvent("KeyEvents"); | |||||
evtObj.initKeyEvent( | |||||
"keyup", | |||||
true, | |||||
true, | |||||
window, | |||||
true, | |||||
false, | |||||
false, | |||||
false, | |||||
13, | |||||
0 | |||||
); | |||||
} else { | |||||
//chrome 浏览器下模拟事件 | |||||
evtObj = document.createEvent("UIEvents"); | |||||
evtObj.initUIEvent("keyup", true, true, window, 1); | |||||
delete evtObj.keyCode; | |||||
if (typeof evtObj.keyCode === "undefined") { | |||||
//为了模拟keycode | |||||
Object.defineProperty(evtObj, "keyCode", { value: 13 }); | |||||
} else { | |||||
evtObj.key = String.fromCharCode(13); | |||||
} | |||||
} | |||||
pageInput.dispatchEvent(evtObj); | |||||
} | |||||
}, | |||||
// 获取浏览器可视化宽度 | |||||
getScreenWidth() { | |||||
let that = this; | |||||
window.onresize = () => { | |||||
return (() => { | |||||
window.screenWidth = document.body.clientWidth; | |||||
that.screenWidth = window.screenWidth; | |||||
})(); | |||||
}; | |||||
} | |||||
} | } | ||||
}, | |||||
methods: { | |||||
handleSizeChange(val) { | |||||
this.$emit('pagination', { page: this.currentPage, limit: val }) | |||||
if (this.autoScroll) { | |||||
scrollTo(0, 800) | |||||
} | |||||
}, | |||||
handleCurrentChange(val) { | |||||
this.$emit('pagination', { page: val, limit: this.pageSize }) | |||||
if (this.autoScroll) { | |||||
scrollTo(0, 800) | |||||
} | |||||
} | |||||
} | |||||
} | |||||
}; | |||||
</script> | </script> | ||||
<style scoped> | |||||
<style scoped lang="scss"> | |||||
.pagination-container { | .pagination-container { | ||||
width: 50%; | |||||
background: #fff; | |||||
padding: 32px 16px; | |||||
width: 100%; | |||||
background: #fff; | |||||
padding: 32px 16px; | |||||
} | } | ||||
.pagination-container.hidden { | .pagination-container.hidden { | ||||
display: none; | |||||
display: none; | |||||
} | } | ||||
</style> | </style> |
@@ -1,7 +1,7 @@ | |||||
<!-- | <!-- | ||||
* @Date: 2021-11-29 11:20:35 | * @Date: 2021-11-29 11:20:35 | ||||
* @LastEditors: JinxuChen | * @LastEditors: JinxuChen | ||||
* @LastEditTime: 2021-11-29 16:59:54 | |||||
* @LastEditTime: 2021-12-09 18:00:28 | |||||
* @FilePath: \GpsCardAdmin\src\layout\components\Sidebar\Logo.vue | * @FilePath: \GpsCardAdmin\src\layout\components\Sidebar\Logo.vue | ||||
* @description: | * @description: | ||||
--> | --> | ||||
@@ -32,7 +32,7 @@ export default { | |||||
data() { | data() { | ||||
return { | return { | ||||
title: '禁入区域告警系统', | title: '禁入区域告警系统', | ||||
logo: 'https://wpimg.wallstcn.com/69a1c46c-eb1c-4b46-8bd4-e9e686ef5251.png' | |||||
logo: require('@/assets/telpo.png') | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -53,7 +53,7 @@ export default { | |||||
width: 100%; | width: 100%; | ||||
height: 50px; | height: 50px; | ||||
line-height: 50px; | line-height: 50px; | ||||
background: #2b2f3a; | |||||
background: #304156; | |||||
text-align: center; | text-align: center; | ||||
overflow: hidden; | overflow: hidden; | ||||
@@ -1,8 +1,14 @@ | |||||
/* | |||||
* @Date: 2021-11-30 15:34:45 | |||||
* @LastEditors: JinxuChen | |||||
* @LastEditTime: 2021-12-10 10:19:10 | |||||
* @FilePath: \GpsCardAdmin\src\layout\mixin\ResizeHandler.js | |||||
* @description: | |||||
*/ | |||||
import store from '@/store' | import store from '@/store' | ||||
const { body } = document | const { body } = document | ||||
const WIDTH = 992 // refer to Bootstrap's responsive design | const WIDTH = 992 // refer to Bootstrap's responsive design | ||||
export default { | export default { | ||||
watch: { | watch: { | ||||
$route(route) { | $route(route) { | ||||
@@ -1,7 +1,7 @@ | |||||
/* | /* | ||||
* @Date: 2021-11-29 11:20:34 | * @Date: 2021-11-29 11:20:34 | ||||
* @LastEditors: JinxuChen | * @LastEditors: JinxuChen | ||||
* @LastEditTime: 2021-11-29 17:01:03 | |||||
* @LastEditTime: 2021-12-10 10:53:56 | |||||
* @FilePath: \GpsCardAdmin\src\settings.js | * @FilePath: \GpsCardAdmin\src\settings.js | ||||
* @description: | * @description: | ||||
*/ | */ | ||||
@@ -13,11 +13,11 @@ module.exports = { | |||||
* @type {boolean} true | false | * @type {boolean} true | false | ||||
* @description Whether fix the header | * @description Whether fix the header | ||||
*/ | */ | ||||
fixedHeader: false, | |||||
fixedHeader: true, | |||||
/** | /** | ||||
* @type {boolean} true | false | * @type {boolean} true | false | ||||
* @description Whether show the logo in sidebar | * @description Whether show the logo in sidebar | ||||
*/ | */ | ||||
sidebarLogo: false | |||||
sidebarLogo: true | |||||
} | } |
@@ -1,7 +1,7 @@ | |||||
/* | /* | ||||
* @Date: 2021-12-08 16:13:09 | * @Date: 2021-12-08 16:13:09 | ||||
* @LastEditors: JinxuChen | * @LastEditors: JinxuChen | ||||
* @LastEditTime: 2021-12-08 16:24:19 | |||||
* @LastEditTime: 2021-12-10 10:19:33 | |||||
* @FilePath: \GpsCardAdmin\src\store\localStore.js | * @FilePath: \GpsCardAdmin\src\store\localStore.js | ||||
* @description: store 使用local Storage | * @description: store 使用local Storage | ||||
*/ | */ | ||||
@@ -22,8 +22,17 @@ | |||||
left: 0; | left: 0; | ||||
position: relative; | position: relative; | ||||
margin: 0 auto; | margin: 0 auto; | ||||
width: 50%; | |||||
min-width: 375px; | |||||
} | } | ||||
.el-pagination { | |||||
white-space: pre-wrap; | |||||
padding: 2px 5px; | |||||
color: #303133; | |||||
font-weight: 700; | |||||
width: 100%; | |||||
} | |||||
// refine element ui upload | // refine element ui upload | ||||
.upload-container { | .upload-container { | ||||
.el-upload { | .el-upload { | ||||
@@ -62,4 +62,7 @@ div:focus { | |||||
// main-container global css | // main-container global css | ||||
.app-container { | .app-container { | ||||
padding: 20px 10px; | padding: 20px 10px; | ||||
.filter-container { | |||||
margin: 30px 10px; | |||||
} | |||||
} | } |
@@ -1,8 +1,8 @@ | |||||
/* | /* | ||||
* @Date: 2021-11-30 15:09:25 | * @Date: 2021-11-30 15:09:25 | ||||
* @LastEditors: JinxuChen | * @LastEditors: JinxuChen | ||||
* @LastEditTime: 2021-12-08 14:55:27 | |||||
* @LastEditTime: 2021-12-10 10:57:51 | |||||
* @FilePath: \GpsCardAdmin\src\utils\model.js | * @FilePath: \GpsCardAdmin\src\utils\model.js | ||||
* @description: 版本号 | * @description: 版本号 | ||||
*/ | */ | ||||
export const VersionModel = '1.0.5'; | |||||
export const VersionModel = '1.0.6'; |
@@ -1,10 +1,10 @@ | |||||
<!-- | <!-- | ||||
* @Author: your name | * @Author: your name | ||||
* @Date: 2021-12-07 15:14:51 | * @Date: 2021-12-07 15:14:51 | ||||
* @LastEditTime: 2021-12-08 15:43:52 | |||||
* @LastEditors: Please set LastEditors | |||||
* @LastEditTime: 2021-12-09 14:10:49 | |||||
* @LastEditors: JinxuChen | |||||
* @Description: 自动报警分类 | * @Description: 自动报警分类 | ||||
* @FilePath: \GpsCardAdmin\src\views\off-limits-manage\off-limits-main\off-limits-type\newIndex.vue | |||||
* @FilePath: \GpsCardAdmin\src\views\off-limits-manage\off-limits-main\off-limits-type\index.vue | |||||
--> | --> | ||||
<template> | <template> | ||||
@@ -25,6 +25,7 @@ | |||||
:rules="[{ required: true, message: '类别不能为空' }]" | :rules="[{ required: true, message: '类别不能为空' }]" | ||||
> | > | ||||
<el-input | <el-input | ||||
:xs="24" :sm="24" :lg="8" | |||||
v-model="currentAddType.typeLabel" | v-model="currentAddType.typeLabel" | ||||
placeholder="请输入类别" | placeholder="请输入类别" | ||||
></el-input> | ></el-input> | ||||
@@ -1,7 +1,7 @@ | |||||
<!-- | <!-- | ||||
* @Date: 2021-11-30 09:44:24 | * @Date: 2021-11-30 09:44:24 | ||||
* @LastEditors: JinxuChen | * @LastEditors: JinxuChen | ||||
* @LastEditTime: 2021-12-08 15:13:12 | |||||
* @LastEditTime: 2021-12-09 16:49:54 | |||||
* @FilePath: \GpsCardAdmin\src\views\off-limits-manage\user-exception\index.vue | * @FilePath: \GpsCardAdmin\src\views\off-limits-manage\user-exception\index.vue | ||||
* @description: | * @description: | ||||
--> | --> | ||||
@@ -10,7 +10,7 @@ | |||||
<div class="filter-container"> | <div class="filter-container"> | ||||
<el-button | <el-button | ||||
class="filter-item" | class="filter-item" | ||||
style="margin-left: 10px;" | |||||
style="margin-left: 10px" | |||||
type="primary" | type="primary" | ||||
icon="el-icon-circle-plus" | icon="el-icon-circle-plus" | ||||
@click="onAdd" | @click="onAdd" | ||||
@@ -52,14 +52,16 @@ | |||||
@transform="onTransform" | @transform="onTransform" | ||||
></TTable> | ></TTable> | ||||
<!-- 分页 --> | <!-- 分页 --> | ||||
<pagination | |||||
v-show="total>0" | |||||
:total="total" | |||||
ref="pages" | |||||
:page.sync="page" | |||||
:limit.sync="limit" | |||||
@pagination="getList" | |||||
/> | |||||
<!-- <div class="page-container"> --> | |||||
<pagination | |||||
v-show="total>0" | |||||
:total="total" | |||||
ref="pages" | |||||
:page.sync="page" | |||||
:limit.sync="limit" | |||||
@pagination="getList" | |||||
/> | |||||
<!-- </div> --> | |||||
<!-- 修改弹窗 --> | <!-- 修改弹窗 --> | ||||
<el-dialog :visible.sync="dialogPvVisible" :title="dialogTitle"> | <el-dialog :visible.sync="dialogPvVisible" :title="dialogTitle"> | ||||
<el-form | <el-form | ||||