You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

165 lines
3.7 KiB

3 years ago
<template>
<div>
<lx-header
icon="md-apps"
style="margin-bottom: 10px; border: 0px; margin-top: 15px"
text="题库管理"
>
<div slot="content"></div>
<slot>
<div class="selects">
<div>
<span style="padding: 0 6px; word-break: keep-all"> 关键字 </span>
<Input
v-model="select.keyword"
placeholder="请输入关键字"
style="width: 180px"
></Input>
</div>
<Button
style="margin-left: 10px"
type="primary"
@click="select = { page: 1, keyword: '' }"
>重置
</Button>
<Button style="margin-left: 10px" type="primary" @click="doSearch"
>查询</Button
>
<Button
style="margin-left: 10px"
type="primary"
@click="$refs['addQuestions'].show()"
>新增</Button
>
</div>
</slot>
</lx-header>
<xy-table
:list="list"
:total="total"
:table-item="table"
@delete="deleteitem"
@editor="
(row) => {
$refs['addQuestions'].setId(row.id);
$refs['addQuestions'].setType('editor')
$refs['addQuestions'].show();
}
"
3 years ago
@pageSizeChange="pageSizeChange"
@pageIndexChange="pageChange"
3 years ago
>
<template v-slot:btns v-if="type == 0"> </template>
</xy-table>
<addQuestions ref="addQuestions" @refresh="load"></addQuestions>
</div>
</template>
<script>
import { index, destroy, show } from "@/api/party/studyQuestion";
import { index as activityIndex } from "@/api/activity/index";
import addQuestions from "@/views/PartyshistoryRecoder/components/addQuestions.vue";
export default {
components: {
addQuestions,
},
data() {
return {
select: {
page: 1,
page_size: 20,
keyword: "",
activity_list_id: 7,
},
listActivity: [],
total: 0,
list: [],
table: [
{
prop: "title",
label: "题目",
minWidth: 220,
align: "left",
},
{
prop: "created_at",
label: "创建信息",
width: 190,
formatter: (v1, v2, value) => {
return this.$moment(value).format("YYYY-MM-DD HH:mm:ss");
},
},
{
prop: "updated_at",
label: "更新时间",
align: "left",
width: 190,
formatter: (v1, v2, value) => {
return this.$moment(value).format("YYYY-MM-DD HH:mm:ss");
},
},
],
};
},
methods: {
async loadActivity() {
const res = await activityIndex({
page: 1,
page_size: 999,
});
this.listActivity = res.data;
},
doSearch() {
this.select.page = 1;
this.load();
},
pageSizeChange(e) {
this.select.page_size = e;
this.select.page = 1;
this.load();
},
async load() {
const res = await index(this.select);
this.total = res.total;
this.list = res.data;
},
deleteitem(row) {
destroy({
id: row.id,
}).then((res) => {
this.load();
this.$Message.success("操作成功");
});
},
pageChange(e) {
this.select.page = e;
this.load();
},
},
mounted() {
this.load();
this.loadActivity();
},
created() {
let type = parseInt(this.$route.path.split("_")[1] || 0);
this.type = this.select.is_auth = type;
},
};
</script>
<style lang="scss" scoped>
.selects {
display: flex;
flex-wrap: wrap;
& > div {
margin-bottom: 6px;
}
}
</style>