完成管理后台页面调整

dev
truthhun 1 year ago
parent 83b6b608c1
commit a6a41b4077

@ -43,6 +43,10 @@ export default {
type: Object,
default: () => {},
},
placeholder: {
type: String,
default: '请输入评论内容',
},
},
data() {
return {

@ -119,10 +119,12 @@ export default {
'$route.query': {
immediate: true,
handler() {
this.search.page = parseInt(this.$route.query.page) || 1
this.search.size = parseInt(this.$route.query.size) || 10
this.search.wd = this.$route.query.wd || ''
this.search = {
...this.search,
...this.$route.query,
page: parseInt(this.$route.query.page) || 1,
size: parseInt(this.$route.query.size) || 10,
}
this.listArticle()
},
},
@ -159,7 +161,7 @@ export default {
// this.listArticle()
},
onSearch(search) {
this.search = { ...this.search, page: 1, ...search }
this.search = { ...this.search, ...search, page: 1 }
this.$router.push({
query: this.search,
})

@ -43,7 +43,7 @@
</div>
</el-card>
<el-dialog title="编辑附件" width="640px" :visible.sync="formVisible">
<el-dialog title="编辑附件" width="520px" :visible.sync="formVisible">
<FormAttachment :init-attachment="attachment" @success="formSuccess" />
</el-dialog>
</div>
@ -59,6 +59,7 @@ import TableList from '~/components/TableList.vue'
import FormSearch from '~/components/FormSearch.vue'
import FormAttachment from '~/components/FormAttachment.vue'
import { attachmentTypeOptions } from '~/utils/enum'
import { parseQueryIntArray } from '~/utils/utils'
import { mapGetters } from 'vuex'
export default {
components: { TableList, FormSearch, FormAttachment },
@ -93,28 +94,13 @@ export default {
'$route.query': {
immediate: true,
handler() {
this.search.page = parseInt(this.$route.query.page) || 1
this.search.size = parseInt(this.$route.query.size) || 10
this.search.wd = this.$route.query.wd || ''
// enable
if (typeof this.$route.query.enable === 'object') {
this.search.enable = (this.$route.query.enable || []).map((item) =>
parseInt(item)
)
} else if (this.$route.query.enable) {
this.search.enable = [parseInt(this.$route.query.enable) || 0]
}
// type
if (typeof this.$route.query.type === 'object') {
this.search.type = (this.$route.query.type || []).map((item) =>
parseInt(item)
)
} else if (this.$route.query.type) {
this.search.type = [parseInt(this.$route.query.type) || 0]
this.search = {
...this.search,
...this.$route.query,
page: parseInt(this.$route.query.page) || 1,
size: parseInt(this.$route.query.size) || 10,
...parseQueryIntArray(this.$route.query, ['enable', 'type']),
}
this.listAttachment()
},
},
@ -151,7 +137,7 @@ export default {
// this.listAttachment()
},
onSearch(search) {
this.search = { ...this.search, page: 1, ...search }
this.search = { ...this.search, ...search, page: 1 }
this.$router.push({
query: this.search,
})

@ -46,7 +46,7 @@
</el-card>
<el-dialog
width="640px"
width="520px"
:title="banner.id > 0 ? '编辑横幅' : '新增横幅'"
:visible.sync="formVisible"
>
@ -65,6 +65,7 @@ import TableList from '~/components/TableList.vue'
import FormSearch from '~/components/FormSearch.vue'
import FormBanner from '~/components/FormBanner.vue'
import { bannerTypeOptions } from '~/utils/enum'
import { parseQueryIntArray } from '~/utils/utils'
import { mapGetters } from 'vuex'
export default {
components: { TableList, FormSearch, FormBanner },
@ -99,28 +100,13 @@ export default {
'$route.query': {
immediate: true,
handler() {
this.search.page = parseInt(this.$route.query.page) || 1
this.search.size = parseInt(this.$route.query.size) || 10
this.search.wd = this.$route.query.wd || ''
// enable
if (typeof this.$route.query.enable === 'object') {
this.search.enable = (this.$route.query.enable || []).map((item) =>
parseInt(item)
)
} else if (this.$route.query.enable) {
this.search.enable = [parseInt(this.$route.query.enable) || 0]
}
// type
if (typeof this.$route.query.type === 'object') {
this.search.type = (this.$route.query.type || []).map((item) =>
parseInt(item)
)
} else if (this.$route.query.type) {
this.search.type = [parseInt(this.$route.query.type) || 0]
this.search = {
...this.search,
...this.$route.query,
page: parseInt(this.$route.query.page) || 1,
size: parseInt(this.$route.query.size) || 10,
...parseQueryIntArray(this.$route.query, ['enable', 'type']),
}
this.listBanner()
},
},
@ -128,7 +114,6 @@ export default {
async created() {
this.initSearchForm()
this.initTableListFields()
// await this.listBanner()
},
methods: {
async listBanner() {
@ -147,21 +132,18 @@ export default {
this.$router.push({
query: this.search,
})
// this.listBanner()
},
handlePageChange(val) {
this.search.page = val
this.$router.push({
query: this.search,
})
// this.listBanner()
},
onSearch(search) {
this.search = { ...this.search, page: 1, ...search }
this.search = { ...this.search, ...search, page: 1 }
this.$router.push({
query: this.search,
})
// this.listBanner()
},
onCreate() {
this.banner = {}

@ -64,7 +64,7 @@
v-if="comment.id > 0"
title="评论编审"
:visible.sync="formCommentVisible"
width="640px"
width="520px"
>
<FormCommentCheck
ref="formComment"
@ -84,6 +84,7 @@ import {
} from '~/api/comment'
import TableList from '~/components/TableList.vue'
import FormSearch from '~/components/FormSearch.vue'
import { parseQueryIntArray } from '~/utils/utils'
export default {
components: { TableList, FormSearch },
layout: 'admin',
@ -120,15 +121,12 @@ export default {
'$route.query': {
immediate: true,
handler() {
this.search.page = parseInt(this.$route.query.page) || 1
this.search.size = parseInt(this.$route.query.size) || 10
this.search.wd = this.$route.query.wd || ''
if (typeof this.$route.query.status === 'object') {
this.search.status = (this.$route.query.status || []).map((item) =>
parseInt(item)
)
} else if (this.$route.query.status) {
this.search.status = [parseInt(this.$route.query.status) || 0]
this.search = {
...this.search,
...this.$route.query,
page: parseInt(this.$route.query.page) || 1,
size: parseInt(this.$route.query.size) || 10,
...parseQueryIntArray(this.$route.query, ['status']),
}
this.listComment()
},
@ -137,7 +135,6 @@ export default {
async created() {
this.initSearchForm()
this.initTableListFields()
// await this.listComment()
},
methods: {
async listComment() {
@ -159,21 +156,18 @@ export default {
this.$router.push({
query: this.search,
})
// this.listComment()
},
handlePageChange(val) {
this.search.page = val
this.$router.push({
query: this.search,
})
// this.listComment()
},
onSearch(search) {
this.search = { ...this.search, page: 1, ...search }
this.search = { ...this.search, ...search, page: 1 }
this.$router.push({
query: this.search,
})
// this.listComment()
},
onCreate() {
this.comment = { id: 0 }

@ -85,9 +85,6 @@ export default {
immediate: true,
},
},
// created() {
// this.loadConfig()
// },
methods: {
handleClick(tab) {
this.activeName = tab.name
@ -96,7 +93,6 @@ export default {
tab: tab.name,
},
})
// this.loadConfig()
},
async loadConfig() {
const res = await listConfig({ category: [this.activeName] })

@ -126,12 +126,12 @@
empty-text="您暂无权限查看环境依赖情况"
>
<el-table-column prop="name" label="名称" width="100"> </el-table-column
><el-table-column prop="is_required" label="是否必" width="100">
><el-table-column prop="is_required" label="是否必" width="100">
<template slot-scope="scope">
<el-tag v-if="scope.row.is_required" effect="danger" size="small"
>安装</el-tag
>安装</el-tag
>
<el-tag effect="info" size="small" v-else></el-tag>
<el-tag effect="info" size="small" v-else></el-tag>
</template>
</el-table-column>
<el-table-column prop="is_installed" label="安装" width="100">

@ -31,7 +31,7 @@
<el-dialog
:title="category.id ? '编辑分类' : '新增分类'"
:visible.sync="formVisible"
:width="'640px'"
:width="'520px'"
>
<FormCategory
ref="categoryForm"
@ -48,7 +48,7 @@ import { listCategory, deleteCategory, getCategory } from '~/api/category'
import TableList from '~/components/TableList.vue'
import FormSearch from '~/components/FormSearch.vue'
import FormCategory from '~/components/FormCategory.vue'
import { categoryToTrees } from '~/utils/utils'
import { categoryToTrees, parseQueryIntArray } from '~/utils/utils'
import { mapGetters } from 'vuex'
export default {
components: { TableList, FormSearch, FormCategory },
@ -82,22 +82,11 @@ export default {
'$route.query': {
immediate: true,
async handler() {
let search = { ...this.$route.query }
//
// search.page = parseInt(this.$route.query.page) || 1
// search.size = parseInt(this.$route.query.size) || 10
// enable
if (typeof this.$route.query.enable === 'object') {
this.search.enable = (this.$route.query.enable || []).map((item) =>
parseInt(item)
)
} else if (this.$route.query.enable) {
this.search.enable = [parseInt(this.$route.query.enable) || 0]
this.search = {
...this.search,
...this.$route.query,
...parseQueryIntArray(this.$route.query, ['enable']),
}
this.search = search
await this.initTableListFields()
this.listCategory()
},
@ -105,8 +94,6 @@ export default {
},
async created() {
this.initSearchForm()
// this.initTableListFields()
// await this.listCategory()
},
methods: {
async listCategory() {

@ -97,7 +97,7 @@
</el-pagination>
</div>
</el-card>
<el-dialog title="编辑文档" width="640px" :visible.sync="formVisible">
<el-dialog title="编辑文档" width="520px" :visible.sync="formVisible">
<FormUpdateDocument
:category-trees="trees"
:init-document="document"
@ -108,7 +108,7 @@
<el-dialog
title="推荐设置"
:visible.sync="formDocumentRecommendVisible"
width="640px"
width="520px"
>
<FormDocumentRecommend :init-document="document" @success="formSuccess" />
</el-dialog>
@ -125,7 +125,11 @@ import {
} from '~/api/document'
import TableList from '~/components/TableList.vue'
import FormSearch from '~/components/FormSearch.vue'
import { categoryToTrees } from '~/utils/utils'
import {
categoryToTrees,
parseQueryIntArray,
parseQueryBoolArray,
} from '~/utils/utils'
import { documentStatusOptions, boolOptions } from '~/utils/enum'
import FormUpdateDocument from '~/components/FormUpdateDocument.vue'
import { mapGetters } from 'vuex'
@ -165,39 +169,21 @@ export default {
'$route.query': {
immediate: true,
async handler() {
this.search.page = parseInt(this.$route.query.page) || 1
this.search.size = parseInt(this.$route.query.size) || 10
this.search.wd = this.$route.query.wd || ''
if (typeof this.$route.query.category_id === 'object') {
this.search.category_id = (this.$route.query.category_id || []).map((item) =>
parseInt(item)
)
} else if (this.$route.query.category_id) {
this.search.category_id = [parseInt(this.$route.query.category_id) || 0]
}
if (typeof this.$route.query.status === 'object') {
this.search.status = (this.$route.query.status || []).map((item) =>
parseInt(item)
)
} else if (this.$route.query.status) {
this.search.status = [parseInt(this.$route.query.status) || 0]
}
if (typeof this.$route.query.is_recommend === 'object') {
this.search.is_recommend = (this.$route.query.is_recommend || []).map((item) =>
item=="true"
)
} else if (this.$route.query.is_recommend) {
this.search.is_recommend = [this.$route.query.is_recommend==="true" || false]
let search = { ...this.search, ...this.$route.query }
search.page = parseInt(this.$route.query.page) || 1
search.size = parseInt(this.$route.query.size) || 10
search.wd = this.$route.query.wd || ''
this.search = {
...search,
...parseQueryIntArray(this.$route.query, ['category_id', 'status']),
...parseQueryBoolArray(this.$route.query, ['is_recommend']),
}
//
if (this.trees.length === 0) {
await this.listCategory()
}
await this.listDocument()
},
},
@ -205,9 +191,6 @@ export default {
async created() {
this.initSearchForm()
this.initTableListFields()
// //
// await this.listCategory()
// await this.listDocument()
},
methods: {
async listCategory() {

@ -91,7 +91,7 @@ import {
} from '~/api/document'
import TableList from '~/components/TableList.vue'
import FormSearch from '~/components/FormSearch.vue'
import { categoryToTrees } from '~/utils/utils'
import { categoryToTrees, parseQueryIntArray } from '~/utils/utils'
import { documentStatusOptions } from '~/utils/enum'
import { mapGetters } from 'vuex'
export default {
@ -128,27 +128,14 @@ export default {
'$route.query': {
immediate: true,
async handler() {
this.search.page = parseInt(this.$route.query.page) || 1
this.search.size = parseInt(this.$route.query.size) || 10
this.search.wd = this.$route.query.wd || ''
if (typeof this.$route.query.category_id === 'object') {
this.search.category_id = (this.$route.query.category_id || []).map((item) =>
parseInt(item)
)
} else if (this.$route.query.category_id) {
this.search.category_id = [parseInt(this.$route.query.category_id) || 0]
this.search = {
...this.search,
...this.$route.query,
page: parseInt(this.$route.query.page) || 1,
size: parseInt(this.$route.query.size) || 10,
...parseQueryIntArray(this.$route.query, ['category_id', 'status']),
}
if (typeof this.$route.query.status === 'object') {
this.search.status = (this.$route.query.status || []).map((item) =>
parseInt(item)
)
} else if (this.$route.query.status) {
this.search.status = [parseInt(this.$route.query.status) || 0]
}
//
if (this.trees.length === 0) {
await this.listCategory()
@ -210,19 +197,19 @@ export default {
handleSizeChange(val) {
this.search.size = val
this.$router.push({
query: this.search
query: this.search,
})
},
handlePageChange(val) {
this.search.page = val
this.$router.push({
query: this.search
query: this.search,
})
},
onSearch(search) {
this.search = { ...this.search, ...search, page: 1 }
this.$router.push({
query: this.search
query: this.search,
})
},
recoverRow(row) {

@ -47,7 +47,7 @@
<el-dialog
:title="friendlink.id ? '编辑友链' : '新增友链'"
:visible.sync="formFriendlinkVisible"
width="640px"
width="520px"
>
<FormFriendlink
ref="friendlinkForm"
@ -64,6 +64,7 @@ import {
deleteFriendlink,
getFriendlink,
} from '~/api/friendlink'
import { parseQueryIntArray } from '~/utils/utils'
import TableList from '~/components/TableList.vue'
import FormSearch from '~/components/FormSearch.vue'
import FormFriendlink from '~/components/FormFriendlink.vue'
@ -101,15 +102,12 @@ export default {
'$route.query': {
immediate: true,
handler() {
this.search.page = parseInt(this.$route.query.page) || 1
this.search.size = parseInt(this.$route.query.size) || 10
this.search.wd = this.$route.query.wd || ''
if (typeof this.$route.query.enable === 'object') {
this.search.enable = (this.$route.query.enable || []).map((item) =>
parseInt(item)
)
} else if (this.$route.query.enable) {
this.search.enable = [parseInt(this.$route.query.enable) || 0]
this.search = {
...this.search,
...this.$route.query,
page: parseInt(this.$route.query.page) || 1,
size: parseInt(this.$route.query.size) || 10,
...parseQueryIntArray(this.$route.query, ['enable']),
}
this.listFriendlink()
},
@ -135,23 +133,20 @@ export default {
handleSizeChange(val) {
this.search.size = val
this.$router.push({
query: this.search
query: this.search,
})
// this.listFriendlink()
},
handlePageChange(val) {
this.search.page = val
this.$router.push({
query: this.search
query: this.search,
})
// this.listFriendlink()
},
onSearch(search) {
this.search = { ...this.search, page: 1, ...search }
this.search = { ...this.search, ...search, page: 1 }
this.$router.push({
query: this.search
query: this.search,
})
// this.listFriendlink()
},
onCreate() {
this.friendlink = { id: 0 }

@ -47,7 +47,7 @@
<el-dialog
:title="report.id ? '编辑举报' : '新增举报'"
:visible.sync="formReportVisible"
width="640px"
width="520px"
>
<FormReport
ref="reportForm"
@ -62,6 +62,7 @@
<script>
import { listReport, deleteReport } from '~/api/report'
import { reportOptions } from '~/utils/enum'
import { parseQueryIntArray } from '~/utils/utils'
import TableList from '~/components/TableList.vue'
import FormSearch from '~/components/FormSearch.vue'
import FormReport from '~/components/FormReport.vue'
@ -99,22 +100,16 @@ export default {
async created() {
this.initSearchForm()
this.initTableListFields()
// await this.listReport()
},
watch: {
'$route.query': {
handler() {
this.search.page = parseInt(this.$route.query.page) || 1
this.search.size = parseInt(this.$route.query.size) || 10
this.search.wd = this.$route.query.wd || ''
// this.$route.query.status
if (typeof this.$route.query.status === 'object') {
this.search.status = (this.$route.query.status || []).map((item) =>
parseInt(item)
)
} else if (this.$route.query.status) {
this.search.status = [parseInt(this.$route.query.status) || 0]
this.search = {
...this.search,
...this.$route.query,
page: parseInt(this.$route.query.page) || 1,
size: parseInt(this.$route.query.size) || 10,
...parseQueryIntArray(this.$route.query, ['status']),
}
this.listReport()
},
@ -138,18 +133,15 @@ export default {
this.$router.push({
query: this.search,
})
// this.listReport()
},
handlePageChange(val) {
this.search.page = val
this.$router.push({
query: this.search,
})
// this.listReport()
},
onSearch(search) {
this.search = { ...this.search, page: 1, ...search }
// this.listReport()
this.search = { ...this.search, ...search, page: 1 }
this.$router.push({
query: this.search,
})

@ -58,7 +58,7 @@
<el-dialog
:title="group.id ? '编辑分组' : '新增分组'"
:visible.sync="formGroupVisible"
width="640px"
width="520px"
>
<FormGroup :init-group="group" @success="success" />
</el-dialog>
@ -95,8 +95,6 @@ export default {
search: {
wd: '',
page: 1,
// status: [],
// group_id: [],
size: 10,
},
groups: [],
@ -119,10 +117,12 @@ export default {
'$route.query': {
immediate: true,
handler() {
let search = { ...this.$route.query }
search.page = parseInt(this.$route.query.page) || 1
search.size = parseInt(this.$route.query.size) || 10
this.search = search
this.search = {
...this.search,
...this.$route.query,
page: parseInt(this.$route.query.page) || 1,
size: parseInt(this.$route.query.size) || 10,
}
this.listGroup()
},
},

@ -59,7 +59,7 @@
<el-dialog
:title="user.id ? '设置用户' : '新增用户'"
:visible.sync="formUserVisible"
width="640px"
width="520px"
>
<FormUser
ref="formUser"
@ -71,7 +71,7 @@
<el-dialog
title="编辑用户"
:visible.sync="formUserProfileVisible"
width="640px"
width="520px"
>
<FormUserProfile
ref="formUserProfile"
@ -86,6 +86,7 @@
import { deleteUser, getUser, listUser } from '~/api/user'
import { listGroup } from '~/api/group'
import { userStatusOptions } from '~/utils/enum'
import { parseQueryIntArray } from '~/utils/utils'
import TableList from '~/components/TableList.vue'
import FormSearch from '~/components/FormSearch.vue'
import FormUser from '~/components/FormUser.vue'
@ -127,29 +128,14 @@ export default {
'$route.query': {
immediate: true,
async handler() {
let search = { ...this.$route.query }
search.page = parseInt(this.$route.query.page) || 1
search.size = parseInt(this.$route.query.size) || 10
// group_id
if (typeof this.$route.query.group_id === 'object') {
search.group_id = (this.$route.query.group_id || []).map((item) =>
parseInt(item)
)
} else if (this.$route.query.group_id) {
search.group_id = [parseInt(this.$route.query.group_id) || 0]
}
// status
if (typeof this.$route.query.status === 'object') {
search.status = (this.$route.query.status || []).map((item) =>
parseInt(item)
)
} else if (this.$route.query.status) {
search.status = [parseInt(this.$route.query.status) || 0]
this.search = {
...this.search,
...this.$route.query,
page: parseInt(this.$route.query.page) || 1,
size: parseInt(this.$route.query.size) || 10,
...parseQueryIntArray(this.$route.query, ['group_id', 'status']),
}
this.search = search
//
await this.initTableListFields()
this.listUser()
@ -195,7 +181,7 @@ export default {
})
},
onSearch(search) {
this.search = { ...this.search, page: 1, ...search }
this.search = { ...this.search, ...search, page: 1 }
this.$router.push({
query: this.search,
})

@ -41,7 +41,7 @@
</div>
</el-card>
<el-dialog title="编辑附件" width="640px" :visible.sync="formVisible">
<el-dialog title="编辑附件" width="520px" :visible.sync="formVisible">
<FormPermission :init-permission="permission" @success="formSuccess" />
</el-dialog>
</div>
@ -87,10 +87,12 @@ export default {
'$route.query': {
immediate: true,
handler() {
let search = { ...this.$route.query }
search.page = parseInt(this.$route.query.page) || 1
search.size = parseInt(this.$route.query.size) || 10
this.search = search
this.search = {
...this.search,
...this.$route.query,
page: parseInt(this.$route.query.page) || 1,
size: parseInt(this.$route.query.size) || 10,
}
this.listPermission()
},
},
@ -124,7 +126,7 @@ export default {
})
},
onSearch(search) {
this.search = { ...this.search, page: 1, ...search }
this.search = { ...this.search, ...search, page: 1 }
this.$router.push({
query: this.search,
})

@ -177,3 +177,28 @@ const extMapIcon = {
export function getIcon(ext) {
return extMapIcon[ext] || 'other'
}
// 解析 $route.query 中的数组
export function parseQueryIntArray(query, keys) {
const result = {}
keys.forEach((key) => {
if (typeof query[key] === 'object') {
result[key] = (query[key] || []).map((item) => parseInt(item))
} else if (query[key]) {
result[key] = [parseInt(query[key]) || 0]
}
})
return result
}
export function parseQueryBoolArray(query, keys) {
const result = {}
keys.forEach((key) => {
if (typeof query[key] === 'object') {
result[key] = (query[key] || []).map((item) => item === 'true')
} else if (query[key]) {
result[key] = [query[key] === 'true']
}
})
return result
}

Loading…
Cancel
Save