diff --git a/src/api/index.js b/src/api/index.js index 1b0354d..055e3b4 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -79,6 +79,7 @@ export default { saveOrg: `occupationlab/occupationlab/architecture/save`, // 新增组织架构 updateOrg: `occupationlab/occupationlab/architecture/update`, // 编辑组织架构 deleteOrg: `occupationlab/occupationlab/architecture/delete`, // 删除组织架构 + generate: `users/users/batchProcessing/users/generate`, studentTemplate: `https://www.occupationlab.com/template/学生导入模板.xlsx`, // 学生导入模板 // 测评管理 diff --git a/src/pages/student/list/index.vue b/src/pages/student/list/index.vue index c571316..6b7073b 100644 --- a/src/pages/student/list/index.vue +++ b/src/pages/student/list/index.vue @@ -65,11 +65,12 @@
+ 一键批量生成账号 新增学生 批量导入 批量删除 @@ -80,10 +81,13 @@ @selection-change="handleSelectionChange" :row-key="getRowKeys"> + + + @@ -112,12 +116,15 @@ - + - + + {{ form.account }} + + 学生 @@ -127,9 +134,6 @@ - - - @@ -180,6 +184,22 @@ 确 定 + + + + + + + + + + + + + 取 消 + 确 定 + +
@@ -189,6 +209,7 @@ import Util from "@/libs/util"; import Setting from "@/setting"; import OrgTree from "@/components/org-tree/src/tree"; import { mapState } from "vuex"; +import _ from 'lodash' export default { components: { OrgTree }, data () { @@ -266,7 +287,6 @@ export default { } ], workNumber: [ - { required: true, message: "请输入学号", trigger: 'blur' }, { pattern: /^[A-Za-z0-9]*$/, message: "请输入正确的学号", @@ -312,7 +332,21 @@ export default { token: Util.local.get(Setting.tokenKey) }, disableds: false, - submiting: false // 新增编辑防抖标识 + submiting: false, // 新增编辑防抖标识 + + generateVisible: false, + generateForm: { + classId: [], + numberOfUsers: '', + }, + generateRules: { + classId: [ + { required: true, message: '请选择所属班级', trigger: 'change' } + ], + numberOfUsers: [ + { required: true, message: '请输入账号数', trigger: 'blur' } + ], + }, }; }, computed: { @@ -652,6 +686,35 @@ export default { }).catch(res => { }); }, + // 批量生成账号 + batchGenerate () { + this.generateForm = { + classId: [], + numberOfUsers: '', + } + this.generateVisible = true + }, + // 批量生成账号提交 + generateSubmit () { + this.$refs.generateForm.validate(async (valid) => { + if (valid) { + const form = _.cloneDeep(this.generateForm) + const { classId } = form + if (classId && classId.length) form.classId = classId[classId.length - 1] + debugger + await this.$post(this.api.generate, { + ...form, + platformId: Setting.platformId, + type: 1, + }) + this.generateVisible = false + Util.successMsg('批量生成成功!') + this.initData() + } else { + return false; + } + }) + }, addStudent () { // 添加学生 this.isAdd = true; this.showTree = true; @@ -667,54 +730,6 @@ export default { this.originWorkNumber = data.workNumber this.showTree = true }, - // 组合账号 - renderAccount () { - const form = this.form - // 平台id-端id-schoolId-workNumber组成账号 - form.account = `${Setting.platformId}-1-${this.schoolId}-${form.workNumber}` - }, - async workNumberChange () { - const { form, isAdd, originWorkNumber: origin } = this - const { workNumber } = form - if (workNumber && /^[A-Za-z0-9]*$/.test(workNumber)) { - // 编辑的时候,修改后的学号跟原学号相同则不用判重 - if (origin === workNumber && !isAdd) { - this.workNumberReapeat = false - } else { - const { data } = await this.$post(`${this.api.getDetailByAccount}?workNumber=${workNumber}&platformId=${Setting.platformId}&type=1`) - if (data) { - if (isAdd) { - this.showTree = true - const classId = data.classList.map(e => e.id).toString() - this.form = data - this.form.classId = classId - this.renderAccount() - // 无指定范围的classId为1,即没有班级,如果没有班级则直接清空班级选择 - if (classId === '1') { - this.$refs.classTree.setCheckedKeys([]) - } else { - this.defaultCheckedKeys = classId.split(",").map(i => Number(i)) - } - this.$refs.form.clearValidate() - } else { - Util.errorMsg('该学生学号已存在') - this.workNumberReapeat = true - } - } else { - if (isAdd) { - // 如果该学号没有对应的学生,则清空所有信息,除了学号 - this.form = JSON.parse(JSON.stringify(this.originForm)) - this.form.workNumber = workNumber - this.renderAccount() - this.$refs.classTree.setCheckedKeys([]) - } - this.workNumberReapeat = false - } - } - } else { - this.renderAccount() - } - }, phoneChange () { let regex = /^1[3456789]\d{9}$/; if (regex.test(this.form.phone)) { diff --git a/src/pages/system/list/staff.vue b/src/pages/system/list/staff.vue index d446f16..811d7bf 100644 --- a/src/pages/system/list/staff.vue +++ b/src/pages/system/list/staff.vue @@ -1,9 +1,7 @@