master
xy 1 year ago
parent 295a40397e
commit 462d7cfb40

@ -22,8 +22,22 @@
@click="isShowAdd = true" @click="isShowAdd = true"
>新增</el-button >新增</el-button
> >
<template v-if="isHasAuth('search')">
<el-date-picker v-model="select['filter[1][value]']" size="small" style="width: 110px;" type="year" value-format="yyyy" placeholder="年份.."></el-date-picker>
<el-cascader
size="small"
v-model="select['filter[0][value]']"
:options="school"
:props="{
emitPath: false,
value: 'id',
label: 'name',
}"></el-cascader>
<!-- <el-select style="width: 140px;" clearable v-model="select['filter[0][value]']" placeholder="学校.." size="small">-->
<!-- <el-option v-for="item in school" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
<!-- </el-select>-->
<el-button <el-button
v-if="isHasAuth('search')"
icon="el-icon-search" icon="el-icon-search"
type="primary" type="primary"
plain plain
@ -32,6 +46,7 @@
>搜索</el-button >搜索</el-button
> >
</template> </template>
</template>
</vxe-toolbar> </vxe-toolbar>
</slot> </slot>
</template> </template>
@ -95,7 +110,7 @@
<vxe-column <vxe-column
align="center" align="center"
field="school_id" field="school.name"
width="180" width="180"
title="所属学校" title="所属学校"
:edit-render="{ :edit-render="{
@ -104,7 +119,19 @@
props: { multiple: false }, props: { multiple: false },
optionProps: { value: 'id', label: 'name' }, optionProps: { value: 'id', label: 'name' },
}" }"
/> >
<template #edit="{ row }">
<el-cascader
size="small"
v-model="row['school_id']"
:options="school"
:props="{
emitPath: false,
value: 'id',
label: 'name',
}"></el-cascader>
</template>
</vxe-column>
<vxe-column <vxe-column
align="center" align="center"
@ -247,7 +274,7 @@ import AddScore from "./components/AddScore.vue";
import ShowScore from "./components/ShowScore.vue"; import ShowScore from "./components/ShowScore.vue";
import axios from "axios"; import axios from "axios";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { index as areaIndex } from "@/api/area/area";
import { index as schoolIndex } from "@/api/school/school"; import { index as schoolIndex } from "@/api/school/school";
export default { export default {
@ -270,7 +297,13 @@ export default {
page: 1, page: 1,
page_size: 20, page_size: 20,
keyword: "", keyword: "",
show_relation: [], show_relation: ['school'],
"filter[0][key]": 'school_id',
"filter[0][op]": 'eq',
"filter[0][value]": '',
"filter[1][key]": 'year',
"filter[1][op]": 'eq',
"filter[1][value]": ''
}, },
total: 0, total: 0,
allAlign: null, allAlign: null,
@ -295,6 +328,7 @@ export default {
validRules: {}, validRules: {},
school: [], school: [],
area: [],
}; };
}, },
computed: { computed: {
@ -312,6 +346,7 @@ export default {
}, },
}, },
created() { created() {
this.getArea();
this.getSchool(); this.getSchool();
this.getList(); this.getList();
@ -387,6 +422,20 @@ export default {
this.isShowDetail = true; this.isShowDetail = true;
}, },
async getArea() {
try {
const res = await areaIndex(
{
page: 1,
page_size: 999,
},
false
);
this.area = res.data;
} catch (err) {
console.error(err);
}
},
async getSchool() { async getSchool() {
try { try {
const res = await schoolIndex( const res = await schoolIndex(
@ -396,7 +445,11 @@ export default {
}, },
false false
); );
this.school = res.data;
this.school = this.area.map(area => ({
...area,
children: res.data.filter(school => school.area_id === area.id)
}))
} catch (err) { } catch (err) {
console.error(err); console.error(err);
} }
@ -526,6 +579,9 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
::v-deep .vxe-buttons--wrapper > * + * {
margin-left: 10px;
}
::v-deep .el-card__header { ::v-deep .el-card__header {
padding: 6px 20px; padding: 6px 20px;
} }

@ -30,19 +30,17 @@
</el-form-item> </el-form-item>
<el-form-item label="所属学校" prop="school_id" clearable> <el-form-item label="所属学校" prop="school_id" clearable>
<el-select <el-cascader
size="small"
v-model="form['school_id']" v-model="form['school_id']"
clearable
placeholder="请填写所属学校" placeholder="请填写所属学校"
:options="school"
style="width: 100%" style="width: 100%"
> :props="{
<el-option emitPath: false,
v-for="(option, optionIndex) in school" value: 'id',
:key="optionIndex" label: 'name',
:label="option['name']" }"></el-cascader>
:value="option['id']"
></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="年份" prop="year" clearable> <el-form-item label="年份" prop="year" clearable>
@ -51,7 +49,7 @@
clearable clearable
placeholder="请填写年份" placeholder="请填写年份"
type="year" type="year"
value-format="yyyy-MM-dd" value-format="yyyy"
style="width: 100%" style="width: 100%"
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>

@ -22,8 +22,12 @@
@click="isShowAdd = true" @click="isShowAdd = true"
>新增</el-button >新增</el-button
> >
<template v-if="isHasAuth('search')">
<el-input style="width: 120px;" clearable v-model="select['filter[0][value]']" placeholder="手机号.." size="small"></el-input>
<el-input style="width: 120px;" clearable v-model="select['filter[1][value]']" placeholder="昵称.." size="small"></el-input>
<el-input style="width: 120px;" clearable v-model="select['filter[2][value]']" placeholder="区域.." size="small"></el-input>
<el-button <el-button
v-if="isHasAuth('search')"
icon="el-icon-search" icon="el-icon-search"
type="primary" type="primary"
plain plain
@ -32,6 +36,7 @@
>搜索</el-button >搜索</el-button
> >
</template> </template>
</template>
</vxe-toolbar> </vxe-toolbar>
</slot> </slot>
</template> </template>
@ -353,6 +358,15 @@ export default {
page_size: 20, page_size: 20,
keyword: "", keyword: "",
show_relation: [], show_relation: [],
"filter[0][key]": "mobile",
"filter[0][op]": "like",
"filter[0][value]": "",
"filter[1][key]": "nickname",
"filter[1][op]": "like",
"filter[1][value]": "",
"filter[2][key]": "area",
"filter[2][op]": "like",
"filter[2][value]": "",
}, },
total: 0, total: 0,
allAlign: null, allAlign: null,
@ -635,6 +649,9 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
::v-deep .vxe-buttons--wrapper > * + * {
margin-left: 10px;
}
::v-deep .el-card__header { ::v-deep .el-card__header {
padding: 6px 20px; padding: 6px 20px;
} }

Loading…
Cancel
Save