forked from liweijie/education
1 line
38 KiB
JSON
1 line
38 KiB
JSON
{"remainingRequest":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\studentRecords\\index.vue?vue&type=style&index=0&id=2f3b0e64&scoped=true&lang=scss","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\studentRecords\\index.vue","mtime":1787314165380},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\css-loader\\dist\\cjs.js","mtime":1787309792478},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\loaders\\stylePostLoader.js","mtime":1787309794547},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\postcss-loader\\src\\index.js","mtime":1787309793084},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\sass-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js","mtime":1787309793790}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKLnN0dWRlbnQtcmVjb3Jkcy1wYWdlIHsKICAuc2VhcmNoLWNhcmQgewogICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICB9CgogIC5zZWFyY2gtZm9ybSB7CiAgICA6OnYtZGVlcCAuZWwtZm9ybS1pdGVtIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMThweDsKICAgIH0KCiAgICAuc2VhcmNoLWFjdGlvbnMtcm93IHsKICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkICNlYmVlZjU7CiAgICAgIHBhZGRpbmctdG9wOiAxNHB4OwogICAgfQoKICAgIC5zZWFyY2gtYWN0aW9ucyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIGdhcDogMTJweDsKICAgIH0KICB9CgogIC50YWJsZS1jYXJkIHsKICAgIC50YWJsZS1oZWFkZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CgogICAgICAudGFibGUtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAjMzAzMTMzOwogICAgICB9CgogICAgICAudGFibGUtYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgfQogICAgfQoKICAgIC5wYWdpbmF0aW9uLXdyYXBwZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgfQogIH0KCiAgLmZvcm0tZGlhbG9nLWZvcm0gewogICAgbWF4LWhlaWdodDogNjJ2aDsKICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7CgogICAgOjp2LWRlZXAgLmVsLWRpdmlkZXItLWhvcml6b250YWwgewogICAgICBtYXJnaW46IDRweCAwIDE2cHg7CiAgICB9CiAgfQoKICAudGV4dC1kYW5nZXIgewogICAgY29sb3I6ICNmNTZjNmM7CiAgICBwYWRkaW5nOiAwOwogIH0KfQo="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAosBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/views/studentRecords","sourcesContent":["<template>\n <div class=\"app-container student-records-page\">\n <!-- ==================== 1. 查询条件 ==================== -->\n <el-card shadow=\"never\" class=\"search-card\">\n <el-form ref=\"searchFormRef\" :model=\"searchForm\" label-width=\"90px\" class=\"search-form\">\n <el-row :gutter=\"24\">\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"8\" :xl=\"8\">\n <el-form-item label=\"学号\">\n <el-input v-model=\"searchForm.xh\" placeholder=\"请输入学号\" clearable @keyup.enter.native=\"handleSearch\" />\n </el-form-item>\n </el-col>\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"8\" :xl=\"8\">\n <el-form-item label=\"姓名\">\n <el-input v-model=\"searchForm.xm\" placeholder=\"请输入姓名(模糊查询)\" clearable @keyup.enter.native=\"handleSearch\" />\n </el-form-item>\n </el-col>\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"8\" :xl=\"8\">\n <el-form-item label=\"联系电话\">\n <el-input v-model=\"searchForm.lxdh\" placeholder=\"请输入联系电话(模糊查询)\" clearable @keyup.enter.native=\"handleSearch\" />\n </el-form-item>\n </el-col>\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"8\" :xl=\"8\">\n <el-form-item label=\"通信地址\">\n <el-input v-model=\"searchForm.txdz\" placeholder=\"请输入通信地址(模糊查询)\" clearable @keyup.enter.native=\"handleSearch\" />\n </el-form-item>\n </el-col>\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"8\" :xl=\"8\">\n <el-form-item label=\"性别\">\n <el-input v-model=\"searchForm.xb\" placeholder=\"请输入性别\" clearable @keyup.enter.native=\"handleSearch\" />\n </el-form-item>\n </el-col>\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"8\" :xl=\"8\">\n <el-form-item label=\"学员类别\">\n <el-input v-model=\"searchForm.xylb\" placeholder=\"请输入学员类别\" clearable @keyup.enter.native=\"handleSearch\" />\n </el-form-item>\n </el-col>\n </el-row>\n <el-row class=\"search-actions-row\">\n <el-col :span=\"24\" class=\"search-actions\">\n <el-button type=\"primary\" icon=\"el-icon-search\" @click=\"handleSearch\">查询</el-button>\n <el-button icon=\"el-icon-refresh\" @click=\"handleReset\">重置</el-button>\n </el-col>\n </el-row>\n </el-form>\n </el-card>\n\n <!-- ==================== 2. 列表 ==================== -->\n <el-card shadow=\"never\" class=\"table-card\">\n <div class=\"table-header\">\n <span class=\"table-title\">学员信息列表:</span>\n <div class=\"table-actions\">\n <el-button type=\"primary\" icon=\"el-icon-plus\" @click=\"handleAdd\">新增学员</el-button>\n </div>\n </div>\n <el-table v-loading=\"loading\" :data=\"tableData\" stripe border highlight-current-row>\n <el-table-column type=\"index\" label=\"序号\" width=\"60\" align=\"center\" />\n <el-table-column prop=\"xh\" label=\"学号\" width=\"130\" show-overflow-tooltip />\n <el-table-column prop=\"xm\" label=\"姓名\" width=\"100\" show-overflow-tooltip />\n <el-table-column prop=\"xb\" label=\"性别\" width=\"70\" align=\"center\" />\n <el-table-column prop=\"csrq\" label=\"出生日期\" width=\"110\" align=\"center\" />\n <el-table-column prop=\"zjhm\" label=\"证件号码\" min-width=\"140\" show-overflow-tooltip />\n <el-table-column prop=\"zzmm\" label=\"政治面貌\" width=\"100\" align=\"center\" />\n <el-table-column prop=\"mz\" label=\"民族\" width=\"80\" align=\"center\" />\n <el-table-column prop=\"jg\" label=\"籍贯\" width=\"100\" show-overflow-tooltip />\n <el-table-column prop=\"whcd\" label=\"文化程度\" width=\"100\" align=\"center\" />\n <el-table-column prop=\"xylb\" label=\"学员类别\" width=\"100\" align=\"center\" />\n <el-table-column prop=\"lxdh\" label=\"联系电话\" width=\"120\" show-overflow-tooltip />\n <el-table-column label=\"已注册\" width=\"80\" align=\"center\">\n <template slot-scope=\"scope\">\n <el-tag :type=\"scope.row.yzc === '1' || scope.row.yzc === 1 ? 'success' : 'info'\" size=\"mini\">\n {{ scope.row.yzc === '1' || scope.row.yzc === 1 ? '是' : '否' }}\n </el-tag>\n </template>\n </el-table-column>\n <el-table-column label=\"操作\" width=\"180\" align=\"center\" fixed=\"right\">\n <template slot-scope=\"scope\">\n <el-button type=\"text\" size=\"small\" icon=\"el-icon-view\" @click=\"handleView(scope.row)\">详情</el-button>\n <el-button type=\"text\" size=\"small\" icon=\"el-icon-edit\" @click=\"handleEdit(scope.row)\">编辑</el-button>\n <el-button type=\"text\" size=\"small\" icon=\"el-icon-delete\" class=\"text-danger\" @click=\"handleDelete(scope.row)\">删除</el-button>\n </template>\n </el-table-column>\n </el-table>\n\n <el-pagination\n :current-page=\"pageNum\"\n :page-size=\"pageSize\"\n :total=\"total\"\n :page-sizes=\"[10, 20, 50, 100]\"\n layout=\"total, sizes, prev, pager, next, jumper\"\n class=\"pagination-wrapper\"\n @current-change=\"handlePageChange\"\n @size-change=\"handleSizeChange\"\n />\n </el-card>\n\n <!-- ==================== 3. 新增/编辑学员信息对话框 ==================== -->\n <el-dialog\n :title=\"formTitle\"\n :visible.sync=\"formDialogVisible\"\n width=\"1000px\"\n :close-on-click-modal=\"false\"\n >\n <el-form ref=\"formRef\" :model=\"form\" :rules=\"formRules\" label-width=\"130px\" class=\"form-dialog-form\">\n <el-divider content-position=\"left\">基本信息</el-divider>\n <el-row :gutter=\"16\">\n <el-col :span=\"12\">\n <el-form-item label=\"学号\" prop=\"xh\">\n <el-input v-model=\"form.xh\" placeholder=\"请输入学号\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"姓名\" prop=\"xm\">\n <el-input v-model=\"form.xm\" placeholder=\"请输入姓名\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"性别\" prop=\"xb\">\n <el-input v-model=\"form.xb\" placeholder=\"请输入性别\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"出生日期\" prop=\"csrq\">\n <el-date-picker v-model=\"form.csrq\" type=\"date\" placeholder=\"请选择出生日期\" value-format=\"yyyy-MM-dd\" style=\"width: 100%\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"证件号码\" prop=\"zjhm\">\n <el-input v-model=\"form.zjhm\" placeholder=\"请输入证件号码\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"军人证件类型\" prop=\"jrzjlx\">\n <el-input v-model=\"form.jrzjlx\" placeholder=\"请输入军人证件类型\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"身份证号\">\n <el-input v-model=\"form.sfzh\" placeholder=\"请输入身份证号\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"曾用名\">\n <el-input v-model=\"form.cym\" placeholder=\"请输入曾用名\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"民族\" prop=\"mz\">\n <el-input v-model=\"form.mz\" placeholder=\"请输入民族\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"籍贯\" prop=\"jg\">\n <el-input v-model=\"form.jg\" placeholder=\"请输入籍贯\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"出生地\">\n <el-input v-model=\"form.csd\" placeholder=\"请输入出生地\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"生源地\">\n <el-input v-model=\"form.syd\" placeholder=\"请输入生源地\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"入伍地\">\n <el-input v-model=\"form.rwd\" placeholder=\"请输入入伍地\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"拼音\">\n <el-input v-model=\"form.py\" placeholder=\"请输入拼音\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"政治面貌\" prop=\"zzmm\">\n <el-input v-model=\"form.zzmm\" placeholder=\"请输入政治面貌\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"党团时间\">\n <el-date-picker v-model=\"form.dtsj\" type=\"date\" placeholder=\"请选择党团时间\" value-format=\"yyyy-MM-dd\" style=\"width: 100%\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"入伍年月日\">\n <el-date-picker v-model=\"form.rwynr\" type=\"date\" placeholder=\"请选择入伍年月日\" value-format=\"yyyy-MM-dd\" style=\"width: 100%\" />\n </el-form-item>\n </el-col>\n </el-row>\n\n <el-divider content-position=\"left\">学员信息</el-divider>\n <el-row :gutter=\"16\">\n <el-col :span=\"12\">\n <el-form-item label=\"学员队期编号\" prop=\"xydqbh\">\n <el-input v-model=\"form.xydqbh\" placeholder=\"请输入学员队期编号\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"学员类别\" prop=\"xylb\">\n <el-input v-model=\"form.xylb\" placeholder=\"请输入学员类别\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"所属军区\" prop=\"ssjq\">\n <el-input v-model=\"form.ssjq\" placeholder=\"请输入所属军区\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"国防生\" prop=\"gfs\">\n <el-input v-model=\"form.gfs\" placeholder=\"请输入国防生\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"考生号\" prop=\"ksh\">\n <el-input v-model=\"form.ksh\" placeholder=\"请输入考生号\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"当前班次编号\" prop=\"dqbzbh\">\n <el-input v-model=\"form.dqbzbh\" placeholder=\"请输入当前班次编号\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"军衔文职\">\n <el-input v-model=\"form.jxwz\" placeholder=\"请输入军衔文职\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"骨干任职\">\n <el-input v-model=\"form.ggrz\" placeholder=\"请输入骨干任职\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"本科毕业院校\">\n <el-input v-model=\"form.bkbyyx\" placeholder=\"请输入本科毕业院校\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"原部职别\">\n <el-input v-model=\"form.ybzb\" placeholder=\"请输入原部职别\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"邮政编码\">\n <el-input v-model=\"form.yzbm\" placeholder=\"请输入邮政编码\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"学位\">\n <el-input v-model=\"form.xw\" placeholder=\"请输入学位\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"文化程度\" prop=\"whcd\">\n <el-input v-model=\"form.whcd\" placeholder=\"请输入文化程度\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"登录信息编号\">\n <el-input v-model=\"form.dlxxbh\" placeholder=\"请输入登录信息编号\" />\n </el-form-item>\n </el-col>\n </el-row>\n\n <el-divider content-position=\"left\">状态与联系</el-divider>\n <el-row :gutter=\"16\">\n <el-col :span=\"12\">\n <el-form-item label=\"退学状态\" prop=\"txzt\">\n <el-input v-model=\"form.txzt\" placeholder=\"请输入退学状态\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"留级状态\" prop=\"ljzt\">\n <el-input v-model=\"form.ljzt\" placeholder=\"请输入留级状态\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"分班状态\" prop=\"fbzt\">\n <el-input v-model=\"form.fbzt\" placeholder=\"请输入分班状态\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"已注册\" prop=\"yzc\">\n <el-input v-model=\"form.yzc\" placeholder=\"请输入已注册\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"允许查看成绩\" prop=\"yxckcj\">\n <el-input v-model=\"form.yxckcj\" placeholder=\"请输入允许查看成绩\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"标签\">\n <el-input v-model=\"form.bq\" placeholder=\"请输入标签\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"联系电话\">\n <el-input v-model=\"form.lxdh\" placeholder=\"请输入联系电话\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"通信地址\">\n <el-input v-model=\"form.txdz\" placeholder=\"请输入通信地址\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"单位联络人信息\">\n <el-input v-model=\"form.dwllrxx\" type=\"textarea\" :rows=\"2\" placeholder=\"请输入单位联络人信息\" />\n </el-form-item>\n </el-col>\n </el-row>\n\n <el-divider content-position=\"left\">论文信息</el-divider>\n <el-row :gutter=\"16\">\n <el-col :span=\"12\">\n <el-form-item label=\"论文编号\">\n <el-input v-model=\"form.lwbh\" placeholder=\"请输入论文编号\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"论文题目\">\n <el-input v-model=\"form.lwtm\" placeholder=\"请输入论文题目\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"成绩报告单编号\">\n <el-input v-model=\"form.cjbgdbh\" placeholder=\"请输入成绩报告单编号\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"论文答辩文档编号\">\n <el-input v-model=\"form.lwdbwdbh\" placeholder=\"请输入论文答辩文档编号\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"论文摘要\">\n <el-input v-model=\"form.lwzy\" type=\"textarea\" :rows=\"2\" placeholder=\"请输入论文摘要\" />\n </el-form-item>\n </el-col>\n </el-row>\n\n <el-divider content-position=\"left\">其他信息</el-divider>\n <el-row :gutter=\"16\">\n <el-col :span=\"12\">\n <el-form-item label=\"上一个学员队期编号\">\n <el-input v-model=\"form.previousDept\" placeholder=\"请输入上一个学员队期编号\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"json字典\">\n <el-input v-model=\"form.jsonzd\" placeholder=\"请输入json字典\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"奖励处分情况\">\n <el-input v-model=\"form.jlcfqk\" type=\"textarea\" :rows=\"2\" placeholder=\"请输入奖励处分情况\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"异动历史JSON数组\">\n <el-input v-model=\"form.transferHistory\" type=\"textarea\" :rows=\"2\" placeholder=\"请输入异动历史JSON数组\" />\n </el-form-item>\n </el-col>\n <el-col :span=\"24\">\n <el-form-item label=\"备注\">\n <el-input v-model=\"form.bz\" type=\"textarea\" :rows=\"2\" placeholder=\"请输入备注\" />\n </el-form-item>\n </el-col>\n </el-row>\n </el-form>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"formDialogVisible = false\">取 消</el-button>\n <el-button type=\"primary\" :loading=\"formSaving\" @click=\"handleFormSubmit\">确 定</el-button>\n </div>\n </el-dialog>\n\n <!-- ==================== 4. 详情对话框 ==================== -->\n <el-dialog title=\"学员信息详情\" :visible.sync=\"viewDialogVisible\" width=\"900px\" :close-on-click-modal=\"false\">\n <div v-loading=\"viewLoading\" class=\"detail-body\">\n <el-descriptions :column=\"2\" border>\n <el-descriptions-item label=\"编号\">{{ viewForm.bh || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"学号\">{{ viewForm.xh || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"姓名\">{{ viewForm.xm || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"性别\">{{ viewForm.xb || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"出生日期\">{{ viewForm.csrq || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"证件号码\">{{ viewForm.zjhm || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"军人证件类型\">{{ viewForm.jrzjlx || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"身份证号\">{{ viewForm.sfzh || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"曾用名\">{{ viewForm.cym || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"民族\">{{ viewForm.mz || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"籍贯\">{{ viewForm.jg || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"出生地\">{{ viewForm.csd || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"生源地\">{{ viewForm.syd || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"入伍地\">{{ viewForm.rwd || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"拼音\">{{ viewForm.py || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"政治面貌\">{{ viewForm.zzmm || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"党团时间\">{{ viewForm.dtsj || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"入伍年月日\">{{ viewForm.rwynr || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"学员队期编号\">{{ viewForm.xydqbh || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"学员类别\">{{ viewForm.xylb || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"所属军区\">{{ viewForm.ssjq || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"国防生\">{{ viewForm.gfs || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"考生号\">{{ viewForm.ksh || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"当前班次编号\">{{ viewForm.dqbzbh || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"军衔文职\">{{ viewForm.jxwz || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"骨干任职\">{{ viewForm.ggrz || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"本科毕业院校\">{{ viewForm.bkbyyx || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"原部职别\">{{ viewForm.ybzb || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"邮政编码\">{{ viewForm.yzbm || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"学位\">{{ viewForm.xw || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"文化程度\">{{ viewForm.whcd || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"登录信息编号\">{{ viewForm.dlxxbh || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"退学状态\">{{ viewForm.txzt || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"留级状态\">{{ viewForm.ljzt || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"分班状态\">{{ viewForm.fbzt || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"已注册\">{{ viewForm.yzc || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"允许查看成绩\">{{ viewForm.yxckcj || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"标签\">{{ viewForm.bq || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"联系电话\">{{ viewForm.lxdh || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"通信地址\">{{ viewForm.txdz || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"论文编号\">{{ viewForm.lwbh || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"论文题目\">{{ viewForm.lwtm || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"成绩报告单编号\">{{ viewForm.cjbgdbh || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"论文答辩文档编号\">{{ viewForm.lwdbwdbh || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"上一个学员队期编号\">{{ viewForm.previousDept || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"json字典\">{{ viewForm.jsonzd || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"单位联络人信息\" :span=\"2\">{{ viewForm.dwllrxx || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"论文摘要\" :span=\"2\">{{ viewForm.lwzy || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"奖励处分情况\" :span=\"2\">{{ viewForm.jlcfqk || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"异动历史JSON数组\" :span=\"2\">{{ viewForm.transferHistory || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"备注\" :span=\"2\">{{ viewForm.bz || '-' }}</el-descriptions-item>\n </el-descriptions>\n </div>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"viewDialogVisible = false\">关 闭</el-button>\n </div>\n </el-dialog>\n </div>\n</template>\n\n<script>\nimport {\n listStudentRecord,\n getStudentRecord,\n addStudentRecord,\n updateStudentRecord,\n delStudentRecord\n} from \"@/api/studentRecords/studentRecords\"\n\nexport default {\n name: \"StudentRecords\",\n data() {\n return {\n // ==================== 查询条件 ====================\n searchForm: {\n xh: '',\n xm: '',\n lxdh: '',\n txdz: '',\n xb: '',\n xylb: ''\n },\n\n // ==================== 列表数据 ====================\n loading: false,\n tableData: [],\n total: 0,\n pageNum: 1,\n pageSize: 20,\n\n // ==================== 新增/编辑 ====================\n formDialogVisible: false,\n formTitle: '新增学员',\n isAdd: true,\n formSaving: false,\n form: this.createEmptyForm(),\n formRules: {\n xh: [{ required: true, message: \"学号不能为空\", trigger: \"blur\" }],\n xm: [{ required: true, message: \"姓名不能为空\", trigger: \"blur\" }],\n xb: [{ required: true, message: \"性别不能为空\", trigger: \"blur\" }],\n csrq: [{ required: true, message: \"出生日期不能为空\", trigger: \"change\" }],\n zjhm: [{ required: true, message: \"证件号码不能为空\", trigger: \"blur\" }],\n jrzjlx: [{ required: true, message: \"军人证件类型不能为空\", trigger: \"blur\" }],\n mz: [{ required: true, message: \"民族不能为空\", trigger: \"blur\" }],\n jg: [{ required: true, message: \"籍贯不能为空\", trigger: \"blur\" }],\n zzmm: [{ required: true, message: \"政治面貌不能为空\", trigger: \"blur\" }],\n xydqbh: [{ required: true, message: \"学员队期编号不能为空\", trigger: \"blur\" }],\n xylb: [{ required: true, message: \"学员类别不能为空\", trigger: \"blur\" }],\n ssjq: [{ required: true, message: \"所属军区不能为空\", trigger: \"blur\" }],\n gfs: [{ required: true, message: \"国防生不能为空\", trigger: \"blur\" }],\n ksh: [{ required: true, message: \"考生号不能为空\", trigger: \"blur\" }],\n dqbzbh: [{ required: true, message: \"当前班次编号不能为空\", trigger: \"blur\" }],\n whcd: [{ required: true, message: \"文化程度不能为空\", trigger: \"blur\" }],\n txzt: [{ required: true, message: \"退学状态不能为空\", trigger: \"blur\" }],\n ljzt: [{ required: true, message: \"留级状态不能为空\", trigger: \"blur\" }],\n fbzt: [{ required: true, message: \"分班状态不能为空\", trigger: \"blur\" }],\n yzc: [{ required: true, message: \"已注册不能为空\", trigger: \"blur\" }],\n yxckcj: [{ required: true, message: \"允许查看成绩不能为空\", trigger: \"blur\" }]\n },\n\n // ==================== 详情 ====================\n viewDialogVisible: false,\n viewLoading: false,\n viewForm: {}\n }\n },\n created() {\n this.fetchList()\n },\n methods: {\n /** 创建空表单 */\n createEmptyForm() {\n return {\n bh: '',\n xh: '',\n xm: '',\n dlxxbh: '',\n xydqbh: '',\n zjhm: '',\n zzmm: '',\n dtsj: null,\n rwynr: null,\n xb: '',\n csrq: null,\n mz: '',\n jg: '',\n ybzb: '',\n yzbm: '',\n whcd: '',\n xw: '',\n xylb: '',\n jxwz: '',\n ssjq: '',\n ggrz: '',\n bkbyyx: '',\n gfs: '',\n ksh: '',\n bz: '',\n sfzh: '',\n txzt: '',\n ljzt: '',\n fbzt: '',\n lwbh: '',\n lwtm: '',\n lwzy: '',\n py: '',\n cjbgdbh: '',\n yxckcj: '',\n jsonzd: '',\n dqbzbh: '',\n lwdbwdbh: '',\n bq: '',\n lxdh: '',\n txdz: '',\n dwllrxx: '',\n jlcfqk: '',\n yzc: '',\n jrzjlx: '',\n cym: '',\n rwd: '',\n csd: '',\n syd: '',\n previousDept: '',\n transferHistory: ''\n }\n },\n\n // ==================== 查询列表 ====================\n fetchList() {\n this.loading = true\n const params = {\n pageNum: this.pageNum,\n pageSize: this.pageSize\n }\n // 文本条件非空时才传\n ;['xh', 'xm', 'lxdh', 'txdz', 'xb', 'xylb'].forEach(key => {\n if (this.searchForm[key] !== '' && this.searchForm[key] !== null && this.searchForm[key] !== undefined) {\n params[key] = this.searchForm[key].trim()\n }\n })\n listStudentRecord(params).then(response => {\n const data = response.data || {}\n this.tableData = data.records || []\n this.total = data.total || 0\n this.loading = false\n }).catch(() => {\n this.tableData = []\n this.total = 0\n this.loading = false\n })\n },\n\n handleSearch() {\n this.pageNum = 1\n this.fetchList()\n },\n\n handleReset() {\n this.searchForm = {\n xh: '',\n xm: '',\n lxdh: '',\n txdz: '',\n xb: '',\n xylb: ''\n }\n this.pageNum = 1\n this.fetchList()\n },\n\n handlePageChange(current) {\n this.pageNum = current\n this.fetchList()\n },\n\n handleSizeChange(size) {\n this.pageSize = size\n this.pageNum = 1\n this.fetchList()\n },\n\n // ==================== 新增/编辑 ====================\n handleAdd() {\n this.isAdd = true\n this.formTitle = '新增学员'\n this.form = this.createEmptyForm()\n this.formDialogVisible = true\n this.$nextTick(() => {\n this.$refs.formRef && this.$refs.formRef.clearValidate()\n })\n },\n\n handleEdit(row) {\n this.isAdd = false\n this.formTitle = '编辑学员'\n this.form = this.createEmptyForm()\n this.formDialogVisible = true\n this.$nextTick(() => {\n this.$refs.formRef && this.$refs.formRef.clearValidate()\n })\n getStudentRecord(row.bh).then(response => {\n const data = response.data || {}\n this.form = this.assignForm(data)\n }).catch(() => {})\n },\n\n /** 将后端详情数据回填到表单 */\n assignForm(data) {\n const form = this.createEmptyForm()\n Object.keys(form).forEach(key => {\n if (data[key] !== undefined && data[key] !== null) {\n form[key] = data[key]\n }\n })\n return form\n },\n\n handleFormSubmit() {\n this.$refs.formRef.validate(valid => {\n if (!valid) return\n this.formSaving = true\n const payload = { ...this.form }\n const request = this.isAdd ? addStudentRecord(payload) : updateStudentRecord(payload)\n request.then(() => {\n this.$message.success(this.isAdd ? '新增成功' : '修改成功')\n this.formDialogVisible = false\n this.fetchList()\n }).catch(() => {\n }).finally(() => {\n this.formSaving = false\n })\n })\n },\n\n // ==================== 删除 ====================\n handleDelete(row) {\n this.$confirm(`确定要删除学员「${row.xm || row.xh || '该学员'}」吗?`, '系统提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(() => {\n return delStudentRecord(row.bh)\n }).then(() => {\n this.$message.success('删除成功')\n this.fetchList()\n }).catch(() => {})\n },\n\n // ==================== 详情 ====================\n handleView(row) {\n this.viewDialogVisible = true\n this.viewLoading = true\n this.viewForm = {}\n getStudentRecord(row.bh).then(response => {\n this.viewForm = response.data || {}\n this.viewLoading = false\n }).catch(() => {\n this.viewLoading = false\n })\n }\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.student-records-page {\n .search-card {\n margin-bottom: 16px;\n }\n\n .search-form {\n ::v-deep .el-form-item {\n margin-bottom: 18px;\n }\n\n .search-actions-row {\n margin-top: 2px;\n border-top: 1px dashed #ebeef5;\n padding-top: 14px;\n }\n\n .search-actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 12px;\n }\n }\n\n .table-card {\n .table-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 16px;\n\n .table-title {\n font-size: 16px;\n font-weight: 600;\n color: #303133;\n }\n\n .table-actions {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n }\n\n .pagination-wrapper {\n display: flex;\n justify-content: flex-end;\n margin-top: 16px;\n }\n }\n\n .form-dialog-form {\n max-height: 62vh;\n overflow-y: auto;\n padding-right: 6px;\n\n ::v-deep .el-divider--horizontal {\n margin: 4px 0 16px;\n }\n }\n\n .text-danger {\n color: #f56c6c;\n padding: 0;\n }\n}\n</style>\n"]}]} |