[admin] filter improve & fix ad link

This commit is contained in:
xiaomlove
2022-03-04 16:16:56 +08:00
parent b9d5df232b
commit 0665770ca5
51 changed files with 218 additions and 71 deletions
+3
View File
@@ -79,6 +79,9 @@ const api = {
listExam: (params = {}) => {
return axios.get('exams', {params: params});
},
listExamAll: (params = {}) => {
return axios.get('exams-all', {params: params});
},
listExamIndex: (params = {}) => {
return axios.get('exam-indexes', {params: params});
},
+2 -1
View File
@@ -23,6 +23,7 @@
<el-table-column
prop="added"
label="Added"
width="180"
></el-table-column>
</el-table>
</el-card>
@@ -52,7 +53,7 @@
<el-table-column
prop="added"
label="Added"
width="160"
width="180"
></el-table-column>
</el-table>
</el-card>
+53 -3
View File
@@ -3,7 +3,36 @@
<template #header>
<div class="nexus-table-header">
<div class="left">
<el-form :inline="true" :model="query">
<el-form-item label="">
<el-select v-model="query.exam_id" filterable placeholder="Exam" clearable>
<el-option
v-for="item in extraData.exams"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="">
<el-select v-model="query.is_done" filterable placeholder="IsDone" clearable>
<el-option label="Yes" value="1"></el-option>
<el-option label="No" value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item label="">
<el-select v-model="query.status" filterable placeholder="Status" clearable>
<el-option label="Avoided" value="-1"></el-option>
<el-option label="Normal" value="0"></el-option>
<el-option label="Finished" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="fetchTableData">Query</el-button>
<el-button type="primary" @click="handleReset">Reset</el-button>
</el-form-item>
</el-form>
</div>
<div class="right">
<!-- <el-button type="primary" size="small" icon="el-icon-plus" @click="handleAdd">Add</el-button>-->
@@ -26,7 +55,7 @@
<el-table-column
prop="id"
label="Id"
width="60"
width="100"
sortable="custom"
></el-table-column>
@@ -47,6 +76,11 @@
label="Is done"
></el-table-column>
<el-table-column
prop="status_text"
label="Status"
></el-table-column>
<el-table-column
prop="created_at"
label="Created At"
@@ -97,7 +131,14 @@ export default {
const state = useTable()
let extraData = reactive({
exams: []
});
onMounted(() => {
api.listExamAll().then(res => {
extraData.exams = res.data
})
fetchTableData()
})
const fetchTableData = async () => {
@@ -147,9 +188,17 @@ export default {
const formatColumnDownloaded = (row, column) => {
return row.downloaded_text
}
const handleReset = () => {
state.query.is_done = '';
state.query.status = '';
state.query.exam_id = '';
}
return {
...toRefs(state),
multipleTable,
extraData,
handleSelectionChange,
handleAdd,
handleEdit,
@@ -160,7 +209,8 @@ export default {
handleSortChange,
formatColumnUser,
formatColumnExam,
formatColumnDownloaded
formatColumnDownloaded,
handleReset
}
}
}
+38 -2
View File
@@ -13,9 +13,20 @@
<el-form-item label="">
<el-input placeholder="Email" v-model="query.email"></el-input>
</el-form-item>
<el-form-item label="">
<el-select v-model="query.class" filterable placeholder="Class">
<el-option
v-for="(item, index) in extraData.classes"
:key="index"
:label="item"
:value="index"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleReset">Reset</el-button>
<el-button type="primary" @click="fetchTableData">Query</el-button>
<el-button type="primary" @click="handleReset">Reset</el-button>
</el-form-item>
</el-form>
</div>
@@ -53,12 +64,14 @@
<el-table-column
prop="email"
label="Email"
width="200"
></el-table-column>
<el-table-column
prop="class"
label="Class"
sortable="custom"
width="120"
:formatter="formatColumnClass"
></el-table-column>
@@ -81,14 +94,27 @@
label="Bonus"
></el-table-column>
<el-table-column
prop="seed_points"
label="Seed points"
></el-table-column>
<el-table-column
prop="status"
label="Status"
width="100"
></el-table-column>
<el-table-column
prop="enabled"
label="Enabled"
width="100"
></el-table-column>
<el-table-column
prop="added"
label="Added"
width="150"
>
</el-table-column>
@@ -136,8 +162,14 @@ export default {
const state = useTable()
let extraData = reactive({
classes: []
});
onMounted(() => {
console.log('UserTable onMounted');
api.listClass().then(function (res) {
extraData.classes = res.data
})
fetchTableData()
})
const fetchTableData = async () => {
@@ -175,6 +207,9 @@ export default {
state.query.id = '';
state.query.username = '';
state.query.email = '';
state.query.class = '';
state.query.sort_field = '';
state.query.sort_type = '';
}
const handleDetail = (id) => {
@@ -197,6 +232,7 @@ export default {
return {
...toRefs(state),
multipleTable,
extraData,
handleSelectionChange,
handleAdd,
handleEdit,