|
@@ -18,23 +18,51 @@
|
|
|
</Select>
|
|
|
</FormItem>
|
|
|
<FormItem>
|
|
|
- <Select v-model="scoreFilter.areaCode" placeholder="考点">
|
|
|
- <Option value=""></Option>
|
|
|
+ <Select
|
|
|
+ v-model="scoreFilter.areaCode"
|
|
|
+ @on-change="areaChange"
|
|
|
+ placeholder="考点"
|
|
|
+ >
|
|
|
+ <Option
|
|
|
+ v-for="area in cascadeList"
|
|
|
+ :key="area.areaCode"
|
|
|
+ :value="area.areaCode"
|
|
|
+ :label="area.areaName"
|
|
|
+ ></Option>
|
|
|
</Select>
|
|
|
</FormItem>
|
|
|
<FormItem>
|
|
|
- <Select v-model="scoreFilter.schoolId" placeholder="学校">
|
|
|
- <Option value=""></Option>
|
|
|
+ <Select
|
|
|
+ v-model="scoreFilter.school"
|
|
|
+ @on-change="schoolChange"
|
|
|
+ placeholder="学校"
|
|
|
+ >
|
|
|
+ <Option
|
|
|
+ v-for="(item, index) in schools"
|
|
|
+ :key="index"
|
|
|
+ :value="item.school"
|
|
|
+ :label="item.school"
|
|
|
+ ></Option>
|
|
|
</Select>
|
|
|
</FormItem>
|
|
|
<FormItem>
|
|
|
<Select v-model="scoreFilter.examRoom" placeholder="考场">
|
|
|
- <Option value=""></Option>
|
|
|
+ <Option
|
|
|
+ v-for="(room, index) in rooms"
|
|
|
+ :key="index"
|
|
|
+ :value="room"
|
|
|
+ :label="room"
|
|
|
+ ></Option>
|
|
|
</Select>
|
|
|
</FormItem>
|
|
|
<FormItem>
|
|
|
- <Select v-model="scoreFilter.subjectId" placeholder="科目">
|
|
|
- <Option value=""></Option>
|
|
|
+ <Select v-model="scoreFilter.subject" placeholder="科目">
|
|
|
+ <Option
|
|
|
+ v-for="(subject, index) in subjects"
|
|
|
+ :key="index"
|
|
|
+ :value="subject.subject"
|
|
|
+ :label="subject.name"
|
|
|
+ ></Option>
|
|
|
</Select>
|
|
|
</FormItem>
|
|
|
<FormItem>
|
|
@@ -94,12 +122,22 @@
|
|
|
</FormItem>
|
|
|
<FormItem>
|
|
|
<Select v-model="renameFilter.areaCode" placeholder="考点">
|
|
|
- <Option value=""></Option>
|
|
|
+ <Option
|
|
|
+ v-for="area in cascadeList"
|
|
|
+ :key="area.areaCode"
|
|
|
+ :value="area.areaCode"
|
|
|
+ :label="area.areaName"
|
|
|
+ ></Option>
|
|
|
</Select>
|
|
|
</FormItem>
|
|
|
<FormItem>
|
|
|
- <Select v-model="renameFilter.subjectId" placeholder="科目">
|
|
|
- <Option value=""></Option>
|
|
|
+ <Select v-model="renameFilter.subject" placeholder="科目">
|
|
|
+ <Option
|
|
|
+ v-for="(subject, index) in subjects"
|
|
|
+ :key="index"
|
|
|
+ :value="subject.subject"
|
|
|
+ :label="subject.name"
|
|
|
+ ></Option>
|
|
|
</Select>
|
|
|
</FormItem>
|
|
|
<br />
|
|
@@ -118,18 +156,20 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import { subjectList, areaSchoolRoomCascadeList } from "@/api";
|
|
|
import { IMAGE_TYPE, EXPORT_IMAGE_NAME_TYPE } from "@/constants/enumerate";
|
|
|
|
|
|
export default {
|
|
|
name: "export-paper",
|
|
|
data() {
|
|
|
return {
|
|
|
+ workId: this.$route.params.workId,
|
|
|
scoreFilter: {
|
|
|
imageType: "",
|
|
|
areaCode: "",
|
|
|
examRoom: "",
|
|
|
- schoolID: "",
|
|
|
- subjectId: "",
|
|
|
+ school: "",
|
|
|
+ subject: "",
|
|
|
nameRule: "",
|
|
|
startNumber: null,
|
|
|
endNumber: null
|
|
@@ -137,13 +177,48 @@ export default {
|
|
|
renameFilter: {
|
|
|
imageType: "",
|
|
|
areaCode: "",
|
|
|
- subjectId: ""
|
|
|
+ subject: ""
|
|
|
},
|
|
|
IMAGE_TYPE,
|
|
|
- EXPORT_IMAGE_NAME_TYPE
|
|
|
+ EXPORT_IMAGE_NAME_TYPE,
|
|
|
+ subjects: [],
|
|
|
+ cascadeList: [],
|
|
|
+ schools: [],
|
|
|
+ rooms: []
|
|
|
};
|
|
|
},
|
|
|
+ mounted() {
|
|
|
+ this.getAreaList();
|
|
|
+ this.getSubjects();
|
|
|
+ },
|
|
|
methods: {
|
|
|
+ async getAreaList() {
|
|
|
+ this.cascadeList = await areaSchoolRoomCascadeList(this.workId);
|
|
|
+ },
|
|
|
+ async getSubjects() {
|
|
|
+ const data = await subjectList(this.workId);
|
|
|
+ this.subjects = data.filter(item => item.enable);
|
|
|
+ },
|
|
|
+ areaChange() {
|
|
|
+ const curArea = this.cascadeList.find(
|
|
|
+ item => item.areaCode === this.scoreFilter.areaCode
|
|
|
+ );
|
|
|
+ this.schools = curArea.schools;
|
|
|
+ this.rooms = [];
|
|
|
+ this.scoreFilter.examRoom = null;
|
|
|
+ this.scoreFilter.school = null;
|
|
|
+ if (curArea.schools.length === 1) {
|
|
|
+ this.scoreFilter.school = curArea.schools[0].school;
|
|
|
+ this.schoolChange();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ schoolChange() {
|
|
|
+ const curSchool = this.schools.find(
|
|
|
+ item => item.school === this.scoreFilter.school
|
|
|
+ );
|
|
|
+ this.rooms = curSchool.rooms;
|
|
|
+ this.scoreFilter.examRoom = null;
|
|
|
+ },
|
|
|
toExport(type) {
|
|
|
console.log(this[`${type}Filter`]);
|
|
|
}
|