master
parent
b37caa4abf
commit
a7897d5d0d
@ -0,0 +1,122 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<vxe-modal :value="isShow" show-footer title="导入预览" show-confirm-button :width="defaultModalSize.sWidth"
|
||||||
|
:height="defaultModalSize.sHeight" transfer :fullscreen="$store.getters.device === 'mobile'"
|
||||||
|
@input="(e) => $emit('update:isShow', e)">
|
||||||
|
<div v-if="errList.length>0">
|
||||||
|
学校库暂无<span style="color:red;margin-right:10px" v-for="item in errList">{{item}}</span>
|
||||||
|
</div>
|
||||||
|
<vxe-table ref="table" stripe style="margin-top: 10px" :loading="loading" :height="tableHeight" keep-source
|
||||||
|
show-overflow :row-config="{ isCurrent: true, isHover: true }" :column-config="{ resizable: true }"
|
||||||
|
:edit-config="{
|
||||||
|
trigger: 'manual',
|
||||||
|
mode: 'row',
|
||||||
|
showStatus: true,
|
||||||
|
isHover: true,
|
||||||
|
autoClear: false,
|
||||||
|
}" :data="list">
|
||||||
|
<vxe-column type="seq" width="58" align="center" />
|
||||||
|
<vxe-column align="center" field="year" width="180" title="年份">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-date-picker style="width: 100%;" size="small" type="year" format="yyyy" value-format="yyyy" v-model="row['year']"></el-date-picker>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
<vxe-column align="center" field="school.name" title="学校">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-cascader size="small" filterable v-model="row['school_id']" :options="school" :props="{
|
||||||
|
emitPath: false,
|
||||||
|
value: 'id',
|
||||||
|
label: 'name',
|
||||||
|
}"></el-cascader>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
<vxe-column header-align="center" align="right" field="total" width="160" title="学籍数">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input type="number" v-model="row['total']"></el-input>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
<vxe-column header-align="center" align="right" field="details_name" width="160" title="分配学校">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input v-model="row['details_name']"></el-input>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
<vxe-column header-align="center" align="right" field="details_total" width="160" title="名额">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input type="number" v-model="row['details_total']"></el-input>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
</vxe-table>
|
||||||
|
|
||||||
|
<template #footer>
|
||||||
|
<el-button type="primary" :loading="loading" @click="submit">确认</el-button>
|
||||||
|
</template>
|
||||||
|
</vxe-modal>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
importData
|
||||||
|
} from "@/api/middle-school-indicator/middle-school-indicator";
|
||||||
|
import {
|
||||||
|
defaultModalSize
|
||||||
|
} from "@/settings";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
isShow: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
school: {
|
||||||
|
type: Array,
|
||||||
|
default: () => [],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading: false,
|
||||||
|
defaultModalSize,
|
||||||
|
list: [],
|
||||||
|
errList:[],
|
||||||
|
tableHeight: 400,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.calcTableHeight();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
calcTableHeight() {
|
||||||
|
let clientHeight = document.documentElement.clientHeight;
|
||||||
|
let padding = 160;
|
||||||
|
let margin = 20;
|
||||||
|
this.tableHeight =
|
||||||
|
clientHeight -
|
||||||
|
padding -
|
||||||
|
margin;
|
||||||
|
},
|
||||||
|
async submit() {
|
||||||
|
try {
|
||||||
|
this.loading = true
|
||||||
|
console.log(this.list)
|
||||||
|
// return
|
||||||
|
await importData({
|
||||||
|
data:this.list
|
||||||
|
}, false)
|
||||||
|
this.$message.success("添加成功")
|
||||||
|
this.$emit('update:isShow', false)
|
||||||
|
this.$emit("success")
|
||||||
|
this.list = []
|
||||||
|
} catch (err) {
|
||||||
|
console.error(err)
|
||||||
|
} finally {
|
||||||
|
this.loading = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss"></style>
|
||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,130 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<vxe-modal :value="isShow" show-footer title="导入预览" show-confirm-button :width="defaultModalSize.sWidth"
|
||||||
|
:height="defaultModalSize.sHeight" transfer :fullscreen="$store.getters.device === 'mobile'"
|
||||||
|
@input="(e) => $emit('update:isShow', e)">
|
||||||
|
<div v-if="errList.length>0">
|
||||||
|
学校库暂无<span style="color:red;margin-right:10px" v-for="item in errList">{{item}}</span>
|
||||||
|
</div>
|
||||||
|
<vxe-table ref="table" stripe style="margin-top: 10px" :loading="loading" :height="tableHeight" keep-source
|
||||||
|
show-overflow :row-config="{ isCurrent: true, isHover: true }" :column-config="{ resizable: true }"
|
||||||
|
:edit-config="{
|
||||||
|
trigger: 'manual',
|
||||||
|
mode: 'row',
|
||||||
|
showStatus: true,
|
||||||
|
isHover: true,
|
||||||
|
autoClear: false,
|
||||||
|
}" :data="list">
|
||||||
|
<vxe-column type="seq" width="58" align="center" />
|
||||||
|
<vxe-column align="center" field="school.name" width="180" title="所属学校">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-cascader size="small" filterable v-model="row['school_id']" :options="school" :props="{
|
||||||
|
emitPath: false,
|
||||||
|
value: 'id',
|
||||||
|
label: 'name',
|
||||||
|
}"></el-cascader>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
<vxe-column align="center" field="year" width="180" title="年份">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-date-picker style="width: 100%;" size="small" type="year" format="yyyy" value-format="yyyy" v-model="row['year']"></el-date-picker>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
|
||||||
|
<vxe-column header-align="center" align="right" field="total_score" width="160" title="统招总分">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input type="number" v-model="row['total_score']"></el-input>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
|
||||||
|
<vxe-column header-align="center" align="right" field="main_score" width="160" title="统招语数外">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input type="number" v-model="row['main_score']"></el-input>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
|
||||||
|
<vxe-column header-align="center" align="right" field="area_total_score" width="160" title="跨区总分">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input type="number" v-model="row['area_total_score']"></el-input>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
<vxe-column header-align="center" align="right" field="area_main_score" width="160" title="跨区语数外">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-input type="number" v-model="row['area_main_score']"></el-input>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
</vxe-table>
|
||||||
|
|
||||||
|
<template #footer>
|
||||||
|
<el-button type="primary" :loading="loading" @click="submit">确认</el-button>
|
||||||
|
</template>
|
||||||
|
</vxe-modal>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
importData
|
||||||
|
} from "@/api/score/score";
|
||||||
|
import {
|
||||||
|
defaultModalSize
|
||||||
|
} from "@/settings";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
isShow: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
school: {
|
||||||
|
type: Array,
|
||||||
|
default: () => [],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading: false,
|
||||||
|
defaultModalSize,
|
||||||
|
list: [],
|
||||||
|
errList:[],
|
||||||
|
tableHeight: 400,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.calcTableHeight();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
calcTableHeight() {
|
||||||
|
let clientHeight = document.documentElement.clientHeight;
|
||||||
|
let padding = 160;
|
||||||
|
let margin = 20;
|
||||||
|
this.tableHeight =
|
||||||
|
clientHeight -
|
||||||
|
padding -
|
||||||
|
margin;
|
||||||
|
},
|
||||||
|
async submit() {
|
||||||
|
try {
|
||||||
|
this.loading = true
|
||||||
|
console.log(this.list)
|
||||||
|
// return
|
||||||
|
await importData({
|
||||||
|
data:this.list
|
||||||
|
}, false)
|
||||||
|
this.$message.success("添加成功")
|
||||||
|
this.$emit('update:isShow', false)
|
||||||
|
this.$emit("success")
|
||||||
|
this.list = []
|
||||||
|
} catch (err) {
|
||||||
|
console.error(err)
|
||||||
|
} finally {
|
||||||
|
this.loading = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss"></style>
|
||||||
Loading…
Reference in new issue