|
@@ -1,5 +1,6 @@
|
|
<template>
|
|
<template>
|
|
<div class="marker-header">
|
|
<div class="marker-header">
|
|
|
|
+ <!-- left action -->
|
|
<div class="header-group">
|
|
<div class="header-group">
|
|
<div class="header-part">
|
|
<div class="header-part">
|
|
<Dropdown
|
|
<Dropdown
|
|
@@ -27,76 +28,70 @@
|
|
<div v-if="showStatistics" class="header-part" @click="toStatistics">
|
|
<div v-if="showStatistics" class="header-part" @click="toStatistics">
|
|
<p>统计分析 <Icon type="ios-arrow-down"></Icon></p>
|
|
<p>统计分析 <Icon type="ios-arrow-down"></Icon></p>
|
|
</div>
|
|
</div>
|
|
- <div class="header-part">
|
|
|
|
- <Poptip
|
|
|
|
- popper-class="marker-popper"
|
|
|
|
|
|
+ </div>
|
|
|
|
+ <!-- header-page -->
|
|
|
|
+ <div class="header-group header-page">
|
|
|
|
+ <div class="page-total">共{{ page.total }}张</div>
|
|
|
|
+ <div class="page-item" @click="toFirstPage" title="首页">
|
|
|
|
+ <Icon type="ios-skip-backward" />
|
|
|
|
+ </div>
|
|
|
|
+ <div class="page-item" @click="toPrevPage" title="上一页">
|
|
|
|
+ <Icon type="md-arrow-dropleft" />
|
|
|
|
+ </div>
|
|
|
|
+ <Poptip
|
|
|
|
+ popper-class="marker-popper"
|
|
|
|
+ placement="bottom"
|
|
|
|
+ trigger="hover"
|
|
|
|
+ transfer
|
|
|
|
+ >
|
|
|
|
+ <div class="page-item page-cpage">
|
|
|
|
+ <span>{{ page.current }}</span
|
|
|
|
+ ><span>/</span><span>{{ page.totalPage }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="marker-page" slot="content">
|
|
|
|
+ <div class="marker-page-set">
|
|
|
|
+ <span>页面跳转:</span>
|
|
|
|
+ <InputNumber
|
|
|
|
+ size="small"
|
|
|
|
+ :min="1"
|
|
|
|
+ :max="page.totalPage"
|
|
|
|
+ :step="1"
|
|
|
|
+ :precision="0"
|
|
|
|
+ v-model="pageNo"
|
|
|
|
+ ></InputNumber>
|
|
|
|
+ <div class="marker-page-btn" @click="pageNoSet">跳转</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </Poptip>
|
|
|
|
+ <div class="page-item" @click="toNextPage" title="下一页">
|
|
|
|
+ <Icon type="md-arrow-dropright" />
|
|
|
|
+ </div>
|
|
|
|
+ <div class="page-item" @click="toLastPage" title="尾页">
|
|
|
|
+ <Icon type="ios-skip-forward" />
|
|
|
|
+ </div>
|
|
|
|
+ <div class="page-item page-size">
|
|
|
|
+ <Dropdown
|
|
placement="bottom"
|
|
placement="bottom"
|
|
- width="312"
|
|
|
|
transfer
|
|
transfer
|
|
- v-model="pageVisible"
|
|
|
|
|
|
+ trigger="click"
|
|
|
|
+ transfer-class-name="marker-dropdown"
|
|
|
|
+ @on-click="pageSizeChange"
|
|
>
|
|
>
|
|
- <p v-if="showPaperRelateCount">
|
|
|
|
- 当前页:<span>{{ page.current }}</span
|
|
|
|
- >/<span>{{ page.totalPage }} </span>
|
|
|
|
- <Icon type="ios-arrow-down"></Icon>
|
|
|
|
- </p>
|
|
|
|
- <p v-else>
|
|
|
|
- <span>翻页操作</span>
|
|
|
|
- <Icon type="ios-arrow-down"></Icon>
|
|
|
|
- </p>
|
|
|
|
-
|
|
|
|
- <div class="marker-page" slot="content">
|
|
|
|
- <div class="marker-page-shortcut">
|
|
|
|
- <div class="shortcut-item" @click="toFirstPage">首页</div>
|
|
|
|
- <div class="shortcut-item" @click="toPrevPage">上一页</div>
|
|
|
|
- <div class="shortcut-item" @click="toNextPage">下一页</div>
|
|
|
|
- <div class="shortcut-item" @click="toLastPage">尾页</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="marker-page-size">
|
|
|
|
- <h4>每页张数:</h4>
|
|
|
|
- <div class="page-size-list">
|
|
|
|
- <div
|
|
|
|
- :class="[
|
|
|
|
- 'page-size-item',
|
|
|
|
- { 'page-size-item-act': page.size === item }
|
|
|
|
- ]"
|
|
|
|
- v-for="item in pageSizeList"
|
|
|
|
- :key="item"
|
|
|
|
- @click="pageSizeChange(item)"
|
|
|
|
- >
|
|
|
|
- {{ item }}
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div v-if="showPaperRelateCount" class="marker-page-set">
|
|
|
|
- <span>当前页:</span>
|
|
|
|
- <p>
|
|
|
|
- <span>{{ page.current }}</span
|
|
|
|
- >/<span>{{ page.totalPage }} </span>
|
|
|
|
- </p>
|
|
|
|
- </div>
|
|
|
|
- <div v-if="showPaperRelateCount" class="marker-page-set">
|
|
|
|
- <span>总张数:</span>
|
|
|
|
- <p>
|
|
|
|
- <span>{{ page.total }}</span>
|
|
|
|
- </p>
|
|
|
|
- </div>
|
|
|
|
- <div class="marker-page-set">
|
|
|
|
- <span>页面跳转:</span>
|
|
|
|
- <InputNumber
|
|
|
|
- size="small"
|
|
|
|
- :min="1"
|
|
|
|
- :max="page.totalPage"
|
|
|
|
- :step="1"
|
|
|
|
- :precision="0"
|
|
|
|
- v-model="pageNo"
|
|
|
|
- ></InputNumber>
|
|
|
|
- <div class="marker-page-btn" @click="pageNoSet">跳转</div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </Poptip>
|
|
|
|
|
|
+ <span class="el-dropdown-link">
|
|
|
|
+ {{ page.size }}张/页 <Icon type="ios-arrow-down"></Icon>
|
|
|
|
+ </span>
|
|
|
|
+ <DropdownMenu slot="list">
|
|
|
|
+ <DropdownItem
|
|
|
|
+ v-for="item in pageSizeList"
|
|
|
|
+ :key="item"
|
|
|
|
+ :name="item"
|
|
|
|
+ >{{ item }}</DropdownItem
|
|
|
|
+ >
|
|
|
|
+ </DropdownMenu>
|
|
|
|
+ </Dropdown>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <!-- right action -->
|
|
<div class="header-group">
|
|
<div class="header-group">
|
|
<div
|
|
<div
|
|
v-if="showSelectAll"
|
|
v-if="showSelectAll"
|
|
@@ -258,6 +253,7 @@ export default {
|
|
this.filter.workId = subjectId[0];
|
|
this.filter.workId = subjectId[0];
|
|
this.filter.subject = subjectId[1];
|
|
this.filter.subject = subjectId[1];
|
|
this.getAreaList();
|
|
this.getAreaList();
|
|
|
|
+ document.addEventListener("keydown", this.keyEvent);
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
...mapMutations("marker", ["setPage", "setAreas"]),
|
|
...mapMutations("marker", ["setPage", "setAreas"]),
|
|
@@ -276,6 +272,29 @@ export default {
|
|
this.$emit("area-change", areas[0]);
|
|
this.$emit("area-change", areas[0]);
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ keyEvent(e) {
|
|
|
|
+ e.preventDefault();
|
|
|
|
+ if (!e.altKey && !e.shiftKey && !e.repeat) {
|
|
|
|
+ // 左右键切换分页
|
|
|
|
+ if (e.code === "ArrowLeft") {
|
|
|
|
+ if (e.ctrlKey) {
|
|
|
|
+ this.toFirstPage();
|
|
|
|
+ } else {
|
|
|
|
+ this.toPrevPage();
|
|
|
|
+ }
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (e.code === "ArrowRight") {
|
|
|
|
+ if (e.ctrlKey) {
|
|
|
|
+ this.toLastPage();
|
|
|
|
+ } else {
|
|
|
|
+ this.toNextPage();
|
|
|
|
+ }
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
areaClick(val) {
|
|
areaClick(val) {
|
|
if (this.curArea.id === val) return;
|
|
if (this.curArea.id === val) return;
|
|
const curArea = this.areas.find(item => item.id === val);
|
|
const curArea = this.areas.find(item => item.id === val);
|
|
@@ -304,6 +323,7 @@ export default {
|
|
this.$emit("to-statistics");
|
|
this.$emit("to-statistics");
|
|
},
|
|
},
|
|
pageNoSet() {
|
|
pageNoSet() {
|
|
|
|
+ this.pageNo = this.pageNo || 1;
|
|
this.setPage({ current: this.pageNo });
|
|
this.setPage({ current: this.pageNo });
|
|
this.pageSetChange();
|
|
this.pageSetChange();
|
|
},
|
|
},
|
|
@@ -345,6 +365,9 @@ export default {
|
|
this.$ls.clear();
|
|
this.$ls.clear();
|
|
this.$router.push({ name: "Login" });
|
|
this.$router.push({ name: "Login" });
|
|
}
|
|
}
|
|
|
|
+ },
|
|
|
|
+ beforeDestroy() {
|
|
|
|
+ document.removeEventListener("keydown", this.keyEvent);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|