Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
093475ee50 | ||
|
cb3578e5c3 | ||
|
fe25c4d96b | ||
|
7fef8568c2 | ||
|
0dfa56c73e | ||
|
642d48e372 | ||
|
021c147b31 | ||
|
04d9b849dd |
@@ -49,7 +49,7 @@ module.exports = {
|
|||||||
{
|
{
|
||||||
test: /\.js$/,
|
test: /\.js$/,
|
||||||
loader: 'babel-loader?cacheDirectory',
|
loader: 'babel-loader?cacheDirectory',
|
||||||
include: [resolve('src'), resolve('test')]
|
include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.svg$/,
|
test: /\.svg$/,
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "vue-element-admin",
|
"name": "vue-element-admin",
|
||||||
"version": "3.4.0",
|
"version": "3.4.1",
|
||||||
"description": "A magical vue admin. Typical templates for enterprise applications. Newest development stack of vue. Lots of awesome features",
|
"description": "A magical vue admin. Typical templates for enterprise applications. Newest development stack of vue. Lots of awesome features",
|
||||||
"author": "Pan <panfree23@gmail.com>",
|
"author": "Pan <panfree23@gmail.com>",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@@ -60,7 +60,6 @@
|
|||||||
"eslint-friendly-formatter": "3.0.0",
|
"eslint-friendly-formatter": "3.0.0",
|
||||||
"eslint-loader": "1.9.0",
|
"eslint-loader": "1.9.0",
|
||||||
"eslint-plugin-html": "4.0.1",
|
"eslint-plugin-html": "4.0.1",
|
||||||
"eventsource-polyfill": "0.9.6",
|
|
||||||
"extract-text-webpack-plugin": "3.0.2",
|
"extract-text-webpack-plugin": "3.0.2",
|
||||||
"file-loader": "1.1.5",
|
"file-loader": "1.1.5",
|
||||||
"friendly-errors-webpack-plugin": "1.6.1",
|
"friendly-errors-webpack-plugin": "1.6.1",
|
||||||
|
@@ -25,7 +25,7 @@ const tagsView = {
|
|||||||
for (const i of state.cachedViews) {
|
for (const i of state.cachedViews) {
|
||||||
if (i === view.name) {
|
if (i === view.name) {
|
||||||
const index = state.cachedViews.indexOf(i)
|
const index = state.cachedViews.indexOf(i)
|
||||||
state.cachedViews.splice(index, 1)
|
state.cachedViews.splice(index, index + 1)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,9 @@
|
|||||||
//覆盖一些element-ui样式
|
//覆盖一些element-ui样式
|
||||||
|
|
||||||
|
.el-breadcrumb__inner, .el-breadcrumb__inner a{
|
||||||
|
font-weight: 400!important;
|
||||||
|
}
|
||||||
|
|
||||||
.el-upload {
|
.el-upload {
|
||||||
input[type="file"] {
|
input[type="file"] {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
<el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleFilter">搜索</el-button>
|
<el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleFilter">搜索</el-button>
|
||||||
<el-button class="filter-item" style="margin-left: 10px;" @click="handleCreate" type="primary" icon="el-icon-edit">添加</el-button>
|
<el-button class="filter-item" style="margin-left: 10px;" @click="handleCreate" type="primary" icon="el-icon-edit">添加</el-button>
|
||||||
<el-button class="filter-item" type="primary" v-waves icon="el-icon-download" @click="handleDownload">导出</el-button>
|
<el-button class="filter-item" type="primary" :loading="downloadLoading" v-waves icon="el-icon-download" @click="handleDownload">导出</el-button>
|
||||||
<el-checkbox class="filter-item" style='margin-left:15px;' @change='tableKey=tableKey+1' v-model="showAuditor">显示审核人</el-checkbox>
|
<el-checkbox class="filter-item" style='margin-left:15px;' @change='tableKey=tableKey+1' v-model="showAuditor">显示审核人</el-checkbox>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -196,7 +196,8 @@ export default {
|
|||||||
type: [{ required: true, message: 'type is required', trigger: 'change' }],
|
type: [{ required: true, message: 'type is required', trigger: 'change' }],
|
||||||
timestamp: [{ type: 'date', required: true, message: 'timestamp is required', trigger: 'change' }],
|
timestamp: [{ type: 'date', required: true, message: 'timestamp is required', trigger: 'change' }],
|
||||||
title: [{ required: true, message: 'title is required', trigger: 'blur' }]
|
title: [{ required: true, message: 'title is required', trigger: 'blur' }]
|
||||||
}
|
},
|
||||||
|
downloadLoading: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
filters: {
|
filters: {
|
||||||
@@ -330,12 +331,13 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDownload() {
|
handleDownload() {
|
||||||
require.ensure([], () => {
|
this.downloadLoading = true
|
||||||
const { export_json_to_excel } = require('@/vendor/Export2Excel')
|
import('@/vendor/Export2Excel').then(excel => {
|
||||||
const tHeader = ['时间', '地区', '类型', '标题', '重要性']
|
const tHeader = ['时间', '地区', '类型', '标题', '重要性']
|
||||||
const filterVal = ['timestamp', 'province', 'type', 'title', 'importance']
|
const filterVal = ['timestamp', 'province', 'type', 'title', 'importance']
|
||||||
const data = this.formatJson(filterVal, this.list)
|
const data = this.formatJson(filterVal, this.list)
|
||||||
export_json_to_excel(tHeader, data, 'table数据')
|
excel.export_json_to_excel(tHeader, data, 'table数据')
|
||||||
|
this.downloadLoading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
formatJson(filterVal, jsonData) {
|
formatJson(filterVal, jsonData) {
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container calendar-list-container">
|
<div class="app-container calendar-list-container">
|
||||||
|
<!-- Note that row-key is necessary to get a correct row order. -->
|
||||||
<el-table :data="list" v-loading.body="listLoading" border fit highlight-current-row style="width: 100%">
|
<el-table :data="list" row-key="id" v-loading.body="listLoading" border fit highlight-current-row style="width: 100%">
|
||||||
|
|
||||||
<el-table-column align="center" label="序号" width="65">
|
<el-table-column align="center" label="序号" width="65">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
@@ -27,9 +27,9 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column width="80px" label="重要性">
|
<el-table-column width="100px" label="重要性">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<svg-icon v-for="n in +scope.row.importance" icon-class="star" class="meta-item__icon" :key="n"></svg-icon>
|
<svg-icon v-for="n in +scope.row.importance" icon-class="star" class="icon-star" :key="n"></svg-icon>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column align="center" label="拖拽" width="95">
|
<el-table-column align="center" label="拖拽" width="80">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<svg-icon class='drag-handler' icon-class="drag"></svg-icon>
|
<svg-icon class='drag-handler' icon-class="drag"></svg-icon>
|
||||||
</template>
|
</template>
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
|
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<div class='show-d'>默认顺序 {{ olderList}}</div>
|
<div class='show-d'>默认顺序 {{ oldList}}</div>
|
||||||
<div class='show-d'>拖拽后顺序{{newList}}</div>
|
<div class='show-d'>拖拽后顺序{{newList}}</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -75,7 +75,7 @@ export default {
|
|||||||
limit: 10
|
limit: 10
|
||||||
},
|
},
|
||||||
sortable: null,
|
sortable: null,
|
||||||
olderList: [],
|
oldList: [],
|
||||||
newList: []
|
newList: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -99,8 +99,8 @@ export default {
|
|||||||
this.list = response.data.items
|
this.list = response.data.items
|
||||||
this.total = response.data.total
|
this.total = response.data.total
|
||||||
this.listLoading = false
|
this.listLoading = false
|
||||||
this.olderList = this.list.map(v => v.id)
|
this.oldList = this.list.map(v => v.id)
|
||||||
this.newList = this.olderList.slice()
|
this.newList = this.oldList.slice()
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.setSort()
|
this.setSort()
|
||||||
})
|
})
|
||||||
@@ -109,7 +109,12 @@ export default {
|
|||||||
setSort() {
|
setSort() {
|
||||||
const el = document.querySelectorAll('.el-table__body-wrapper > table > tbody')[0]
|
const el = document.querySelectorAll('.el-table__body-wrapper > table > tbody')[0]
|
||||||
this.sortable = Sortable.create(el, {
|
this.sortable = Sortable.create(el, {
|
||||||
|
ghostClass: 'sortable-ghost', // Class name for the drop placeholder,
|
||||||
onEnd: evt => {
|
onEnd: evt => {
|
||||||
|
const targetRow = this.list.splice(evt.oldIndex, 1)[0]
|
||||||
|
this.list.splice(evt.newIndex, 0, targetRow)
|
||||||
|
|
||||||
|
// for show the changes, you can delete in you code
|
||||||
const tempIndex = this.newList.splice(evt.oldIndex, 1)[0]
|
const tempIndex = this.newList.splice(evt.oldIndex, 1)[0]
|
||||||
this.newList.splice(evt.newIndex, 0, tempIndex)
|
this.newList.splice(evt.newIndex, 0, tempIndex)
|
||||||
}
|
}
|
||||||
@@ -119,10 +124,21 @@ export default {
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.sortable-ghost{
|
||||||
|
opacity: .8;
|
||||||
|
color: #fff!important;
|
||||||
|
background: #42b983!important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
.icon-star{
|
||||||
|
margin-right:2px;
|
||||||
|
}
|
||||||
.drag-handler{
|
.drag-handler{
|
||||||
width: 30px;
|
width: 20px;
|
||||||
height: 30px;
|
height: 20px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.show-d{
|
.show-d{
|
||||||
|
@@ -60,13 +60,12 @@ export default {
|
|||||||
},
|
},
|
||||||
handleDownload() {
|
handleDownload() {
|
||||||
this.downloadLoading = true
|
this.downloadLoading = true
|
||||||
require.ensure([], () => {
|
import('@/vendor/Export2Excel').then(excel => {
|
||||||
const { export_json_to_excel } = require('@/vendor/Export2Excel')
|
|
||||||
const tHeader = ['序号', '文章标题', '作者', '阅读数', '发布时间']
|
const tHeader = ['序号', '文章标题', '作者', '阅读数', '发布时间']
|
||||||
const filterVal = ['id', 'title', 'author', 'pageviews', 'display_time']
|
const filterVal = ['id', 'title', 'author', 'pageviews', 'display_time']
|
||||||
const list = this.list
|
const list = this.list
|
||||||
const data = this.formatJson(filterVal, list)
|
const data = this.formatJson(filterVal, list)
|
||||||
export_json_to_excel(tHeader, data, this.filename)
|
excel.export_json_to_excel(tHeader, data, this.filename)
|
||||||
this.downloadLoading = false
|
this.downloadLoading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@@ -66,16 +66,15 @@ export default {
|
|||||||
handleDownload() {
|
handleDownload() {
|
||||||
if (this.multipleSelection.length) {
|
if (this.multipleSelection.length) {
|
||||||
this.downloadLoading = true
|
this.downloadLoading = true
|
||||||
require.ensure([], () => {
|
import('@/vendor/Export2Excel').then(excel => {
|
||||||
const { export_json_to_excel } = require('@/vendor/Export2Excel')
|
const tHeader = ['序号', '文章标题', '作者', '阅读数', '发布时间']
|
||||||
const tHeader = ['序号', '文章标题', '作者', '阅读数', '发布时间']
|
const filterVal = ['id', 'title', 'author', 'pageviews', 'display_time']
|
||||||
const filterVal = ['id', 'title', 'author', 'pageviews', 'display_time']
|
const list = this.multipleSelection
|
||||||
const list = this.multipleSelection
|
const data = this.formatJson(filterVal, list)
|
||||||
const data = this.formatJson(filterVal, list)
|
excel.export_json_to_excel(tHeader, data, this.filename)
|
||||||
export_json_to_excel(tHeader, data, this.filename)
|
this.$refs.multipleTable.clearSelection()
|
||||||
this.$refs.multipleTable.clearSelection()
|
this.downloadLoading = false
|
||||||
this.downloadLoading = false
|
})
|
||||||
})
|
|
||||||
} else {
|
} else {
|
||||||
this.$message({
|
this.$message({
|
||||||
message: '请至少选择一条记录',
|
message: '请至少选择一条记录',
|
||||||
|
@@ -161,6 +161,3 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -59,13 +59,12 @@ export default {
|
|||||||
},
|
},
|
||||||
handleDownload() {
|
handleDownload() {
|
||||||
this.downloadLoading = true
|
this.downloadLoading = true
|
||||||
require.ensure([], () => {
|
import('@/vendor/Export2Zip').then(zip => {
|
||||||
const { export_txt_to_zip } = require('@/vendor/Export2Zip')
|
|
||||||
const tHeader = ['序号', '文章标题', '作者', '阅读数', '发布时间']
|
const tHeader = ['序号', '文章标题', '作者', '阅读数', '发布时间']
|
||||||
const filterVal = ['id', 'title', 'author', 'pageviews', 'display_time']
|
const filterVal = ['id', 'title', 'author', 'pageviews', 'display_time']
|
||||||
const list = this.list
|
const list = this.list
|
||||||
const data = this.formatJson(filterVal, list)
|
const data = this.formatJson(filterVal, list)
|
||||||
export_txt_to_zip(tHeader, data, this.filename, this.filename)
|
zip.export_txt_to_zip(tHeader, data, this.filename, this.filename)
|
||||||
this.downloadLoading = false
|
this.downloadLoading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user