增删改查 数据下载 一键编辑 删除
index 首页
<template><div class="box"><el-card :style="{ width: treeButton ? '19.5%' : '35px', position: 'relative', transition: '1s' }"><el-tree v-if="treeButton" :data="treeData" :props="defaultProps" @node-click="handleNodeClick" ref="treeRef"style="width:100%;" /><!-- <el-tree class="filter-tree" :data="data" :props="defaultProps" default-expand-all:filter-node-method="filterNode" ref="tree"></el-tree> --></el-card><el-card :style="{ width: treeButton ? '79.5%' : '100%', overflow: 'auto', transition: '1s' }"><el-form ref="form" :model="form" label-width="80px" style="display: flex;"><!--搜索条件 --><el-form-item label="学号"><el-input v-model="form.studentId"></el-input></el-form-item><el-form-item label="姓名"><el-input v-model="form.name"></el-input></el-form-item><el-form-item label="身份证号"><el-input v-model="form.idCard"></el-input></el-form-item><el-form-item label="其他"><el-select v-model="form.region" placeholder="请选择活动区域"><el-option label="区域一" value="shanghai"></el-option><el-option label="区域二" value="beijing"></el-option></el-select></el-form-item></el-form><!--搜索按钮 --><div style="display: flex;margin-bottom:10px;"><el-button type="primary" @click="search()">查询</el-button><el-button type="primary" @click="handleExit()">重置</el-button><el-button type="success" @click="batchEdit()">批量编辑</el-button><el-button type="success" @click="downloadTemplate()" style="margin-left:20px;">数据下载</el-button><el-upload v-model:file-list="fileList" accept=".xlsx,.xls":action="`${this.$http.BASE_URL}/admissionInfo/importTecData`" :show-file-list="false":before-upload="beforeUpload" :disabled="progressShow" :on-success="handleSuccess"><el-button type="success" style="margin-left:20px;">导入</el-button></el-upload><!-- 成功提示 --><el-toast v-if="successMessage" :title="successMessage" type="success" :duration="3000" position="top-right" /><!-- 失败提示 --><el-toast v-if="errorMessage" :title="errorMessage" type="error" :duration="3000" position="top-right" /><el-button type="success" style="margin-left:20px;" @click="open">导入记录</el-button><!-- <el-button type="success" @click="add('add')" style="margin-left:20px;">新增</el-button> --><!-- <el-button type="primary" @click="deleteDatabase()">一键删库</el-button> --></div><el-progress :percentage="progressPercent" v-if="progressShow" style="margin-bottom:10px;" /><!-- 展示页面 --><el-table :data="tableData" border @select="tableSelect" @select-all="tableSelect" row-key="id" ref="table"table-layout="auto" style="width: 100%;" @selection-change="handleSelectionChange"><el-table-column type="selection" reserve-selection width="55" align="center" fixed="left" /><el-table-column v-for="j in tableHead" :key="j.prop" :prop="j.prop" :label="j.label" width="" align="center" /><el-table-column v-for="item in $myMethod.getCustom(tableData[0])" :key="item" :prop="item":label="item.slice(7)" width="100" align="center" /><!-- 插槽 操作 --><el-table-column fixed="right" label="操作" width="100"><template v-slot:default="scope"><el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button></template></el-table-column></el-table><!-- 分页 --><el-pagination v-model:current-page="currentPage" v-model:page-size="pageSize" :page-sizes="[10, 20, 30, 50]"layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="search" @current-change="search"style="margin-top: 20px; display:flex; justify-content: flex-end;" /></el-card></div><editForm ref="editForm" @search="handleExit" /><formVue ref="formVue" @search="handleExit" /><!-- <MyTablePrint ref="MyTablePrint" :tableHead="tableHead" :tableData="tableData" /> --><!-- 导入记录 弹出框的页面 --><el-dialog v-model="jilu" :title="导入记录" width="70%" center @close="cancel"><el-form label-position="left" label-width="130" :model="formItem" ref="jiluform" inline :rules="rules"><el-form ref="jiluform" :model="jiluform" label-width="80px" style="display: flex;"><el-form-item label="文件名称"><el-input v-model="jiluform.fileName"></el-input></el-form-item><div style="width: 20%;"><!-- <el-date-picker v-model="jiluform.jiluvalue" type="datetimerange" range-separator="至" start-placeholder="开始日期"end-placeholder="结束日期" value-format="YYYY-MM-DD HH:mm:ss"></el-date-picker> --><el-date-picker v-model='jiluvalue' type="datetimerange" range-separator="至" start-placeholder="开始日期"end-placeholder="结束日期" value-format="YYYY-MM-DD HH:mm:ss" @change="handleDateChange"></el-date-picker></div></el-form><!--搜索 按钮 --><el-button type="primary" @click="daorisearch()">查询</el-button><el-button type="primary" @click="handleExit()">重置</el-button><!-- 展示页面 --><el-table ref="multipleTable" :data="tableDatajilu" tooltip-effect="dark" style="width: 100%; margin-top: 2rem;"@selection-change="handleSelectionChange"><el-table-column type="selection" width="55"></el-table-column><el-table-column prop="fileName" label="附件名称" width="400"></el-table-column><el-table-column label="导入状态" width="250"><!-- 插槽 添加死值 --><template v-slot:default="scope"><span>失败</span></template></el-table-column><el-table-column label="失败原因" width="250"><template v-slot:default="scope"><span>类型不匹配</span></template></el-table-column><el-table-column prop="createTime" label="上传时间" width="220"></el-table-column><el-table-column fixed="right" label="操作" width="100"><template v-slot:default="scope"><el-button @click="downdaorujilu(scope.row)" type="text" size="small">下载</el-button></template></el-table-column></el-table><!-- 关闭 按钮 --><div class="dialog-footers"><el-button type="primary" @click="cancel">取消</el-button></div></el-form></el-dialog><!-- 编辑 功能的展示页面--><el-dialog v-model="dialogVisible" :title="dialogTitle" width="70%" center @close="cancel"><el-form label-position="left" label-width="130" :model="formItem" ref="form" inline :rules="rules"><h2 style="margin: 2rem 0 ;">学生档案</h2><el-form-item label="档号" prop="archivalNum" class="form-width"><el-input v-model="fromlist.archivalNum" :disabled="true"></el-input></el-form-item><el-form-item label="案卷题名" prop="caseTitle" class="form-width"><el-input v-model="fromlist.caseTitle" :disabled="true"></el-input></el-form-item><el-form-item label="文件标题" prop="fileTitle" class="form-width"><el-input v-model="fromlist.fileTitle" :disabled="true"></el-input></el-form-item><el-form-item label="存储位置" prop="saveLocation" class="form-width"><el-input v-model="fromlist.saveLocation" :disabled="true"></el-input></el-form-item><el-form-item label="所在页" prop="pageLocation" class="form-width"><el-input v-model="fromlist.pageLocation" :disabled="true"></el-input></el-form-item><el-form-item label="页面序号" prop="pageNum" class="form-width"><el-input v-model="fromlist.pageNum" :disabled="true"></el-input></el-form-item><el-form-item label="考生号" prop="examineeNum" class="form-width"><el-input v-model="fromlist.examineeNum" :disabled="true"></el-input></el-form-item><el-form-item label="准考证号" prop="admissionNum" class="form-width"><el-input v-model="fromlist.admissionNum" :disabled="true"></el-input></el-form-item><el-form-item label="学号" prop="studentId" class="form-width"><el-input-number v-model="fromlist.studentId" :min="1" :max="10" :disabled="true" /></el-form-item><el-form-item label="姓名" prop="name" class="form-width"><el-input v-model="fromlist.name" :disabled="true"></el-input></el-form-item><el-form-item label="性别" prop="gender" class="form-width"><el-input v-model="fromlist.gender" :disabled="true"></el-input></el-form-item><el-form-item label="出生日期" prop="birthday" class="form-width"><el-date-picker v-model="fromlist.birthday" :disabled="true" value-format="YYYY-MM-DD" type="date"style="width:100%;" /></el-form-item><el-form-item label="政治面貌" prop="politicalOutlook" class="form-width"><el-input v-model="fromlist.politicalOutlook" :disabled="true"></el-input></el-form-item><el-form-item label="民族" prop="nation" class="form-width"><el-input v-model="fromlist.nation" :disabled="true"></el-input></el-form-item><el-form-item label="身份证号码" prop="idCard" class="form-width"><el-input v-model="fromlist.idCard" :disabled="true"></el-input></el-form-item><el-form-item label="计划性质" prop="planNature" class="form-width"><el-input v-model="fromlist.planNature" :disabled="true"></el-input></el-form-item><el-form-item label="录取学校" prop="admissionSchools" class="form-width"><el-input v-model="fromlist.admissionSchools" :disabled="true"></el-input></el-form-item><el-form-item label="录取学院" prop="admissionAcademy" class="form-width"><el-input v-model="fromlist.admissionAcademy" :disabled="true"></el-input></el-form-item><el-form-item label="录取专业" prop="admissionMajor" class="form-width"><el-input v-model="fromlist.admissionMajor" :disabled="true"></el-input></el-form-item><el-form-item label="录取时间" prop="admissionTime" class="form-width"><el-date-picker v-model="fromlist.admissionTime" :disabled="true" value-format="YYYY-MM-DD" type="date"style="width:100%;" /></el-form-item><el-form-item label="层次" prop="gradation" class="form-width"><el-input v-model="fromlist.gradation" :disabled="true"></el-input></el-form-item><el-form-item label="学制" prop="educationalSystem" class="form-width"><el-input v-model="fromlist.educationalSystem" :disabled="true"></el-input></el-form-item><el-form-item label="学习形式" prop="learningForms" class="form-width"><el-input v-model="fromlist.learningForms" :disabled="true"></el-input></el-form-item><el-form-item label="考生类别" prop="examineeSort" class="form-width"><el-input v-model="fromlist.examineeSort" :disabled="true"></el-input></el-form-item><el-form-item label="科类" prop="category" class="form-width"><el-input v-model="fromlist.category" :disabled="true"></el-input></el-form-item><el-form-item label="批次" prop="batch" class="form-width"><el-input v-model="fromlist.batch" :disabled="true"></el-input></el-form-item><el-form-item label="毕业学校" prop="graduationSchool" class="form-width"><el-input v-model="fromlist.graduationSchool" :disabled="true"></el-input></el-form-item><el-form-item label="来源地区" prop="sourceArea" class="form-width"><el-input v-model="fromlist.sourceArea" :disabled="true"></el-input></el-form-item><el-form-item label="地区名称" prop="areaName" class="form-width"><el-input v-model="fromlist.areaName" :disabled="true"></el-input></el-form-item><el-form-item label="家庭(邮寄)地址" prop="homeAddress" class="form-width"><el-input v-model="fromlist.homeAddress" :disabled="true"></el-input></el-form-item><el-form-item label="邮政编码" prop="postalCode" class="form-width"><el-input v-model="fromlist.postalCode" :disabled="true"></el-input></el-form-item><el-form-item label="联系电话" prop="phoneNum" class="form-width"><el-input v-model="fromlist.phoneNum" :disabled="true"></el-input></el-form-item><el-form-item label="备注" prop="remarks" class="form-width"><el-input v-model="fromlist.remarks" :disabled="true"></el-input></el-form-item><h2 style="margin: 2rem 0 ;">教学档案</h2><div style="display: flex;margin-bottom:10px;"><el-form label-position="left" label-width="130" :model="fromlist" ref="form" inline :rules="rules"><el-form-item label="档案馆代码" prop="archiveCode" class="form-width"><el-input v-model="fromlist.archiveCode" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="全宗号" prop="fullSetCode" class="form-width"><el-input v-model="fromlist.fullSetCode" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="门类代码" prop="categoryCode" class="form-width"><el-input v-model="fromlist.categoryCode" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="类别号" prop="categoryId" class="form-width"><el-input v-model="fromlist.categoryId" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="项目号" prop="projectId" class="form-width"><el-input v-model="fromlist.projectId" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="目录号" prop="directoryCode" class="form-width"><el-input v-model="fromlist.directoryCode" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="年度" prop="annual" class="form-width"><el-input v-model="fromlist.annual" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="保管期限代码" prop="retentionPeriodCode" class="form-width"><el-input v-model="fromlist.retentionPeriodCode" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="机构(问题)" prop="institution" class="form-width"><el-input v-model="fromlist.institution" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="案卷号" prop="caseNumber" class="form-width"><el-input v-model="fromlist.caseNumber" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="件号" prop="itemNumber" class="form-width"><el-input v-model="fromlist.itemNumber" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="文件标题" prop="documentTitle" class="form-width"><el-input v-model="fromlist.documentTitle" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="日期" prop="dateTime" class="form-width"><el-date-picker v-model="fromlist.dateTime" :disabled="formDisabled" value-format="YYYY-MM-DD" type="date"style="width:100%;" /></el-form-item><el-form-item label="责任者" prop="responsiblePerson" class="form-width"><el-input v-model="fromlist.responsiblePerson" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="规格" prop="specification" class="form-width"><el-input v-model="fromlist.specification" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="件数" prop="itemCount" class="form-width"><el-input-number v-model="fromlist.itemCount" :min="1" :max="10" /></el-form-item><el-form-item label="页数" prop="pageCount" class="form-width"><el-input-number v-model="fromlist.pageCount" :min="1" :max="10" /></el-form-item><el-form-item label="保管期限" prop="retentionPeriod" class="form-width"><el-input v-model="fromlist.retentionPeriod" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="密级" prop="confidentialityLevel" class="form-width"><el-input v-model="fromlist.confidentialityLevel" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="公开属性" prop="disclosureAttribute" class="form-width"><el-input v-model="fromlist.disclosureAttribute" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="开放标识" prop="openFlag" class="form-width"><el-input-number v-model="fromlist.openFlag" :min="1" :max="10" /></el-form-item><el-form-item label="附注" prop="remark" class="form-width"><el-input v-model="fromlist.remark" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="主题词或关键词" prop="keywords" class="form-width"><el-input v-model="fromlist.keywords" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="存储位置" prop="storageLocation" class="form-width"><el-input v-model="fromlist.storageLocation" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="著录者" prop="cataloger" class="form-width"><el-input v-model="fromlist.cataloger" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="著录日期" prop="catalogDate" class="form-width"><el-date-picker v-model="fromlist.catalogDate" :disabled="formDisabled" value-format="YYYY-MM-DD"type="date" style="width:100%;" /></el-form-item><el-form-item label="归档单位" prop="archivingUnit" class="form-width"><el-input v-model="fromlist.archivingUnit" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="归档人" prop="archiver" class="form-width"><el-input v-model="fromlist.archiver" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="归档时间" prop="archiveTime" class="form-width"><el-date-picker v-model="fromlist.archiveTime" :disabled="formDisabled" value-format="YYYY-MM-DD"type="date" style="width:100%;" /></el-form-item><el-form-item label="电文文件" prop="electronicDocument" class="form-width"><el-input v-model="fromlist.electronicDocument" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="电文文件元数据" prop="electronicDocumentMetadata" class="form-width"><el-input v-model="fromlist.electronicDocumentMetadata" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="备注" prop="notes" class="form-width"><el-input v-model="fromlist.notes" :disabled="formDisabled"></el-input></el-form-item></el-form></div></el-form><template #footer v-if="dialogTitle != '查看'"><el-button type="primary" @click="bianjibaocun()">保存</el-button></template></el-dialog>
</template><script>
import allApi from '@/api/allApi.js';
import searchForm from '@/views/components/searchForm.vue';
import axios from "axios";
import editForm from "./edit.vue"
import formVue from './form.vue';export default {data() {return {// bianjirow: "",// ids: [],// valjiluformue2: '',// fileList: [],// taskId: null,// showAdditionalOptions: false, // 控制显示更多选项// defaultProps: {// children: 'children',// label: 'label',// },value111: '',tableDatajilu: [],successMessage: '', // 成功提示信息errorMessage: '', // 失败提示信息fromlist: '',dialogVisible: false,jilu: false,jiluvalue: ['', ''], // 初始值为两个空字符串,分别表示开始和结束时间jiluform: {fileName: '',startTime: '',endTime: ''},// jiluform: {// fileName: '',// jiluvalue: {// startTime: '',// endTime: ''// },// },form: {studentId: '',name: '',idCard: '',region: '',},currentPage: 1,pageSize: 10,total: 0,treeData: [],treeButton: true,tableData: [],webSocket: null,progressPercent: 0,progressShow: false,selectList: [],param: {admissionAcademy: '',admissionMajor: '',admissionTime: '',},officeId: this.$TOOL.data.get("USER_INFO").officeDTO.id,tableHead: [{ prop: 'archivalNum', label: '档号', },{ prop: 'caseTitle', label: '案卷题名', },{ prop: 'fileTitle', label: '文件标题', },{ prop: 'saveLocation', label: '存储位置', },{ prop: 'pageLocation', label: '所在页', },{ prop: 'pageNum', label: '页面序号', },{ prop: 'examineeNum', label: '考生号', },{ prop: 'admissionNum', label: '准考证号', },{ prop: 'classId', label: '班号', },{ prop: 'studentId', label: '学号', },{ prop: 'name', label: '姓名', },{ prop: 'gender', label: '性别', },{ prop: 'birthday', label: '出生日期', },{ prop: 'politicalOutlook', label: '政治面貌', },{ prop: 'nation', label: '民族', },{ prop: 'idCard', label: '身份证号码', },{ prop: 'planNature', label: '计划性质', },{ prop: 'admissionSchools', label: '录取学校', },{ prop: 'admissionAcademy', label: '录取学院', },{ prop: 'admissionMajor', label: '录取专业', },{ prop: 'admissionTime', label: '录取时间', },{ prop: 'gradation', label: '层次', },{ prop: 'educationalSystem', label: '学制', },{ prop: 'learningForms', label: '学习形式', },{ prop: 'examineeSort', label: '考生类别', },{ prop: 'category', label: '科类', },{ prop: 'batch', label: '批次', },{ prop: 'graduationSchool', label: '毕业学校', },{ prop: 'sourceArea', label: '来源地区', },{ prop: 'areaName', label: '地区名称', },{ prop: 'homeAddress', label: '家庭(邮寄)地址', },{ prop: 'postalCode', label: '邮政编码', },{ prop: 'phoneNum', label: '联系电话', },{ prop: 'infoSource', label: '信息源', },{ prop: 'remarks', label: '备注', },{ prop: 'archiveCode', label: '档案馆代码', },{ prop: 'fullSetCode', label: '全宗号', },{ prop: 'categoryCode', label: '门类代码', },{ prop: 'categoryId', label: '类别号', },{ prop: 'projectId', label: '项目号', },{ prop: 'directoryCode', label: '目录号', },{ prop: 'annual', label: '年度', },{ prop: 'retentionPeriodCode', label: '保管期限代码', },{ prop: 'institution', label: '机构问题', },{ prop: 'caseNumber', label: '案卷号', },{ prop: 'itemNumber', label: '件号', },{ prop: 'documentTitle', label: '文件标题', },{ prop: 'dateTime', label: '日期', },{ prop: 'responsiblePerson', label: '责任者', },{ prop: 'specification', label: '规格', },{ prop: 'itemCount', label: '件数', },{ prop: 'pageCount', label: '页数', },{ prop: 'retentionPeriod', label: '保管期限', },{ prop: 'confidentialityLevel', label: '密级', },{ prop: 'disclosureAttribute', label: '公开属性', },{ prop: 'openFlag', label: '开放标识', },{ prop: 'remark', label: '附注', },{ prop: 'keywords', label: '主题词或关键词', },{ prop: 'storageLocation', label: '存储位置', },{ prop: 'cataloger', label: '著录者', },{ prop: 'catalogDate', label: '著录日期', },{ prop: 'archivingUnit', label: '归档单位', },{ prop: 'archiver', label: '归档人', },{ prop: 'archiveTime', label: '归档时间', },{ prop: 'electronicDocument', label: '电文文件', },{ prop: 'electronicDocumentMetadata', label: '电文文件元数据', },{ prop: 'notes', label: '备注', },],};},components: {searchForm,editForm,formVue,},watch: {filterText(val) {this.$refs.tree.filter(val);}},mounted() {this.search();this.getTree();},beforeDestroy() {if (this.webSocket) {this.webSocket.close();}},methods: {// 获取 table的页面索引tableSelect(selection) {this.selectList = [];this.studentIds = [];for (let i = 0; i < selection.length; i++) {const e = selection[i];this.selectList.push(e.id);this.studentIds.push(e.studentId);}},// 编辑页面的 编辑按钮handleClick(row) {this.dialogVisible = truethis.fromlist = JSON.parse(JSON.stringify(row))},// 编辑里边的保存bianjibaocun() {allApi.batchEditAffairsEnrollInfo({studentIds: this.studentIds,...this.fromlist,}).then((res) => {if (res.code == '0000') {this.$message.success('操作成功')this.dialogVisible = falsethis.search()} else {this.$message.error(res.msg)this.dialogVisible = false}});},// 导入功能 handleSuccess(response, file, fileList) {if (response.msg === "成功!") {this.successMessage = "文件上传成功";this.errorMessage = ''; // 清除错误信息this.$message.success("文件上传成功")setTimeout(() => {this.search()// location.reload(true);}, 3000); // 3000毫秒 = 3秒} else {this.$message.error("文件上传失败")setTimeout(() => {this.search()// location.reload(true);}, 3000); // 3000毫秒 = 3秒this.errorMessage = "文件上传失败: " + (response.msg || "未知原因");this.successMessage = ''; // 清除成功信息}},// 导入记录的按钮 取消cancel() {this.jilu = falsethis.search()},// 导入记录 页面open() {this.jilu = trueallApi.daorujilu({pageNum: this.currentPage,pageSize: this.pageSize,}).then((res) => {this.tableDatajilu = res.data.records;this.search()});},//导入记录 里边的 下载downdaorujilu(row) {const params = {name: row.fileName,uploadPath: row.fileUrl};allApi.dowmshuju(params).then((res) => {console.log(res, '111');const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });// 创建下载链接const downloadUrl = window.URL.createObjectURL(blob);const link = document.createElement('a');link.href = downloadUrl;// 设置下载的文件名link.download = '导入模板.xlsx';// 触发点击事件,下载文件link.click();// 释放 URL 对象window.URL.revokeObjectURL(downloadUrl);}).catch(err => {console.error('Error downloading template:', err);});},// 列表树getTree() {var officeId = this.officeIdallApi.catalogTree({ officeId: officeId }).then(res => {this.treeData = res})},//树选中handleNodeClick(val) {let node = this.$refs.treeRef.getNode(val)if (node.level == 1) {this.param.admissionAcademy = val.labelthis.param.admissionMajor = ''this.param.admissionTime = ''} else if (node.level == 2) {this.param.admissionAcademy = node.parent.data.labelthis.param.admissionMajor = val.labelthis.param.admissionTime = ''} else if (node.level == 3) {this.param.admissionAcademy = node.parent.parent.data.labelthis.param.admissionMajor = node.parent.data.labelthis.param.admissionTime = val.label}this.search()},// 赋值时间handleDateChange(value) {this.jiluform.startTime = value[0];this.jiluform.endTime = value[1];// console.log('开始时间:', this.jiluform.startTime);// console.log('结束时间:', this.jiluform.endTime);},// 查询方法search() {allApi.listEnrollInfo({pageNum: this.currentPage,pageSize: this.pageSize,...this.form,...this.param,}).then((res) => {this.tableData = res.records;// console.log(res.records, 'this.tableData111111111111 ')this.total = res.total;});},// 导入记录 里边的 查询方法daorisearch() {allApi.daorujilu({pageNum: this.currentPage,pageSize: this.pageSize,...this.jiluform,...this.param,}).then((res) => {// console.log(res.data.records, ' res.data.records')this.tableDatajilu = res.data.records;});},// 批量删除deleteDatabase() {location.reload();axios.get(`${this.$http.BASE_URL}/excel/deleteDatabase`, {headers: {}}).then(response => {}).catch(error => {console.error('Error deleting database:', error);});},// 初始化 WebSocket 连接initializeWebSocket() {//无论是开发环境还是部署环境,都用VITE_APP_BASE_WSthis.webSocket = new WebSocket(import.meta.env.VITE_APP_BASE_WS);this.webSocket.onmessage = (event) => {const progress = JSON.parse(event.data).progress;this.progressPercent = progress;// console.log(this.progressPercent, ' this.progressPercent ')if (this.progressPercent >= 100) {this.progressShow = falsethis.$message.success("导入完成");this.search()this.getTree();}};},// 新增数据add(type) {this.$refs.formVue.init(type)},// 批量编辑batchEdit() {if (this.selectList.length === 0) {this.$message.error("请选择要编辑的数据")return}this.$refs.editForm.init(this.studentIds)},// 重置handleExit() {this.jiluform.fileName = '',this.jiluform.jiluvalue = '',this.form.studentId = '',this.form.name = '',this.form.idCard = '',this.form.region = '',this.param.admissionAcademy = ''this.param.admissionMajor = ''this.param.admissionTime = ''this.search();this.getTree();},filterNode(value, data) {if (!value) return true;return data.label.indexOf(value) !== -1;},// 下载模板的方法downloadTemplate() {if (this.selectList.length === 0) {this.$message.error("请先勾选要下载的数据,在进行下载!")return} else {const dowmids = this.selectList.map(item => item.toString());const dowm = JSON.parse(JSON.stringify(dowmids))// 调用 API 函数并直接传递数组allApi.dowmfrom(dowm).then((res) => {console.log(res, '111');const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });// 创建下载链接const downloadUrl = window.URL.createObjectURL(blob);const link = document.createElement('a');link.href = downloadUrl;// 设置下载的文件名link.download = '导入模板.xlsx';// 触发点击事件,下载文件link.click();// 释放 URL 对象window.URL.revokeObjectURL(downloadUrl);}).catch(err => {console.error('Error downloading template:', err);});}},//教务处导入模板downloadRegisyrarTemplate() {allApi.regisyrarEnrollInfo().then(res => {// 创建一个 Blob 对象const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });// 创建下载链接const downloadUrl = window.URL.createObjectURL(blob);const link = document.createElement('a');link.href = downloadUrl;// 设置下载的文件名link.download = '教务处导入模板.xlsx';// 触发点击事件,下载文件link.click();// 释放 URL 对象window.URL.revokeObjectURL(downloadUrl);})},//继续教育学院导入模板downloadEducation() {allApi.educationEnrollInfo().then(res => {// 创建一个 Blob 对象const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });// 创建下载链接const downloadUrl = window.URL.createObjectURL(blob);const link = document.createElement('a');link.href = downloadUrl;// 设置下载的文件名link.download = '继续教育学院导入模板.xlsx';// 触发点击事件,下载文件link.click();// 释放 URL 对象window.URL.revokeObjectURL(downloadUrl);})},//研究生导入模板downloadGraduationTemplate() {allApi.graduationEnrollInfo().then(res => {// 创建一个 Blob 对象const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });// 创建下载链接const downloadUrl = window.URL.createObjectURL(blob);const link = document.createElement('a');link.href = downloadUrl;// 设置下载的文件名link.download = '研究生院导入模板.xlsx';// 触发点击事件,下载文件link.click();// 释放 URL 对象window.URL.revokeObjectURL(downloadUrl);})},beforeUpload() {if (!this.progressShow) {this.progressPercent = 0this.progressShow = truethis.initializeWebSocket()} else {this.$message.warning("请等待导入完成")return false}},}
};
</script><style lang="less" scoped>
.dialog-footers {margin-top: 4rem;margin-left: 50%;
}.form-width {width: 30%;
}.box {width: 100%;height: calc(100% - 10px);margin-top: 10px;padding: 20px;background-color: #fff;position: relative;display: flex;justify-content: space-between;
}.el-progress {margin-top: 10px;
}:deep(.el-table .cell) {width: max-content;display: inline-block;
}.tree-button {position: absolute;right: 0;bottom: 50%;font-size: 25px;width: 0;
}
</style>
<!-- ----------------------------------------------------- --><!-- <template>录取信息页面<div class="box"><el-card :style="{width:treeButton? '19.5%':'35px',position: 'relative',transition: '1s'}"><el-tree v-if="treeButton" :data="treeData" :props="defaultProps" @node-click="handleNodeClick" ref="treeRef" style="width:100%;" /><el-button type="primary" text @click="this.treeButton = !this.treeButton" class="tree-button">{{ treeButton ? '<<' : '>>'}}</el-button></el-card><el-card :style="{width: treeButton?'79.5%':'100%',overflow:'auto',transition: '1s'}"><searchForm ref="searchForm" /><div style="display: flex;margin-bottom:10px;"><el-button type="primary" @click="search()">查询</el-button><el-button type="primary" @click="handleExit()">重置</el-button><el-button type="success" @click="add('add')" style="margin-left:20px;">新增</el-button><el-button type="success" @click="downloadTemplate()" style="margin-left:20px;">下载导入模板</el-button><el-upload v-model:file-list="fileList" accept=".xlsx,.xls" :action="`${this.$http.BASE_URL}/excel/importAdmission`" :show-file-list="false" :before-upload="beforeUpload" :disabled="progressShow"><el-button type="success" style="margin-left:20px;" :disabled="progressShow">导入</el-button></el-upload><el-button type="success" @click="this.$refs.MyTablePrint.dialogVisible = true" style="margin-left:20px;">打印</el-button></div>显示隐藏部分<el-button type="primary" @click="showAdditionalOptions = !showAdditionalOptions" style="position: relative; right: 20px;margin-left:20px;margin-bottom:10px;">{{ showAdditionalOptions ? '隐藏更多选项' : '显示更多选项' }}</el-button><div v-if="showAdditionalOptions" style="display: flex;margin-bottom:10px;"><el-button type="warning" @click="downloadRegisyrarTemplate()" :disabled="progressShow">下载教务处导入模板</el-button><el-button type="warning" @click="downloadEducation()" :disabled="progressShow">下载继续教育学院导入模板</el-button><el-button type="warning" style="margin-right:15px;" @click="downloadGraduationTemplate()" :disabled="progressShow">下载研究生导入模板</el-button><el-upload v-model:file-list="fileList" accept=".xlsx,.xls" :action="`${this.$http.BASE_URL}/excel/import`" :show-file-list="false" :before-upload="beforeUpload" :disabled="progressShow"><el-button type="success" style="margin-right:15px;" :disabled="progressShow">导入教务处数据</el-button></el-upload><el-upload v-model:file-list="fileList" accept=".xlsx,.xls" :action="`${this.$http.BASE_URL}/excel/importContinue`" :show-file-list="false" :before-upload="beforeUpload" :disabled="progressShow"><el-button type="success" style="margin-right:15px;" :disabled="progressShow">导入继续教育学院数据</el-button></el-upload><el-upload v-model:file-list="fileList" accept=".xlsx,.xls" :action="`${this.$http.BASE_URL}/excel/importEducation`" :show-file-list="false" :before-upload="beforeUpload" :disabled="progressShow"><el-button type="success" style="margin-right:15px;" :disabled="progressShow">导入研究生院数据</el-button></el-upload><el-button type="primary" @click="deleteDatabase()">一键删库</el-button><el-button type="primary" @click="batchEdit()">批量编辑</el-button></div><el-progress :percentage="progressPercent" v-if="progressShow" style="margin-bottom:10px;" />列表<el-table :data="tableData" border @select="tableSelect" @select-all="tableSelect" row-key="id" ref="table" table-layout="auto" style="width: 100%;"><el-table-column type="selection" reserve-selection width="55" align="center" fixed="left" /><el-table-column v-for="j in tableHead" :key="j.prop" :prop="j.prop" :label="j.label" width="" align="center" /><el-table-column v-for="item in $myMethod.getCustom(tableData[0])" :key="item" :prop="item" :label="item.slice(7)" width="100" align="center" /></el-table>分页<el-pagination v-model:current-page="currentPage" v-model:page-size="pageSize" :page-sizes="[10, 20, 30, 50]" layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="search" @current-change="search" style="margin-top: 20px; display:flex; justify-content: flex-end;" /></el-card></div><editForm ref="editForm" @search="handleExit" /><formVue ref="formVue" @search="handleExit" /><MyTablePrint ref="MyTablePrint" :tableHead="tableHead" :tableData="tableData" />
</template><script>
import allApi from '@/api/allApi.js';
import searchForm from '@/views/components/searchForm.vue';
import axios from "axios";
import editForm from "./edit.vue"
import formVue from './form.vue';export default {data() {return {showAdditionalOptions: false, // 控制显示更多选项currentPage: 1,pageSize: 10,total: 0,treeData: [],treeButton: true,defaultProps: {children: 'children',label: 'label',},tableData: [],// taskId: null,webSocket: null,progressPercent: 0,progressShow: false,selectList: [],param: {admissionAcademy: '',admissionMajor: '',admissionTime: '',},tableHead: [{ prop: 'archivalNum', label: '档号', },{ prop: 'caseTitle', label: '案卷题名', },{ prop: 'fileTitle', label: '文件标题', },{ prop: 'saveLocation', label: '存储位置', },{ prop: 'pageLocation', label: '所在页', },{ prop: 'pageNum', label: '页面序号', },{ prop: 'examineeNum', label: '考生号', },{ prop: 'admissionNum', label: '准考证号', },{ prop: 'classId', label: '班号', },{ prop: 'studentId', label: '学号', },{ prop: 'name', label: '姓名', },{ prop: 'gender', label: '性别', },{ prop: 'birthday', label: '出生日期', },{ prop: 'politicalOutlook', label: '政治面貌', },{ prop: 'nation', label: '民族', },{ prop: 'idCard', label: '身份证号码', },{ prop: 'planNature', label: '计划性质', },{ prop: 'admissionSchools', label: '录取学校', },{ prop: 'admissionAcademy', label: '录取学院', },{ prop: 'admissionMajor', label: '录取专业', },{ prop: 'admissionTime', label: '录取时间', },{ prop: 'gradation', label: '层次', },{ prop: 'educationalSystem', label: '学制', },{ prop: 'learningForms', label: '学习形式', },{ prop: 'examineeSort', label: '考生类别', },{ prop: 'category', label: '科类', },{ prop: 'batch', label: '批次', },{ prop: 'graduationSchool', label: '毕业学校', },{ prop: 'sourceArea', label: '来源地区', },{ prop: 'areaName', label: '地区名称', },{ prop: 'homeAddress', label: '家庭(邮寄)地址', },{ prop: 'postalCode', label: '邮政编码', },{ prop: 'phoneNum', label: '联系电话', },{ prop: 'infoSource', label: '信息源', },{ prop: 'remarks', label: '备注', },],};},components: {searchForm,editForm,formVue,},mounted() {this.search();this.getTree();// this.initializeWebSocket(); // Initialize WebSocket connection},beforeDestroy() {if (this.webSocket) {this.webSocket.close();}},methods: {getTree() {allApi.catalogTree().then(res => {this.treeData = res})},//树选中handleNodeClick(val) {let node = this.$refs.treeRef.getNode(val)if (node.level == 1) {this.param.admissionAcademy = val.labelthis.param.admissionMajor = ''this.param.admissionTime = ''} else if (node.level == 2) {this.param.admissionAcademy = node.parent.data.labelthis.param.admissionMajor = val.labelthis.param.admissionTime = ''} else if (node.level == 3) {this.param.admissionAcademy = node.parent.parent.data.labelthis.param.admissionMajor = node.parent.data.labelthis.param.admissionTime = val.label}this.search()},// 查询方法search() {allApi.listEnrollInfo({pageNum: this.currentPage,pageSize: this.pageSize,...this.$refs.searchForm.formItem,...this.param,}).then((res) => {this.tableData = res.records;this.total = res.total;});},tableSelect(selection) {this.selectList = []for (let i = 0; i < selection.length; i++) {const e = selection[i];this.selectList.push(e.id)}},deleteDatabase() {axios.get(`${this.$http.BASE_URL}/excel/deleteDatabase`, {headers: {}}).then(response => {}).catch(error => {});},//下载导入模版downloadTemplate() {allApi.downloadTemplateEnrollInfo().then(res => {// 创建一个 Blob 对象const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });// 创建下载链接const downloadUrl = window.URL.createObjectURL(blob);const link = document.createElement('a');link.href = downloadUrl;// 设置下载的文件名link.download = '导入模板.xlsx';// 触发点击事件,下载文件link.click();// 释放 URL 对象window.URL.revokeObjectURL(downloadUrl);})},//教务处导入模板downloadRegisyrarTemplate() {allApi.regisyrarEnrollInfo().then(res => {// 创建一个 Blob 对象const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });// 创建下载链接const downloadUrl = window.URL.createObjectURL(blob);const link = document.createElement('a');link.href = downloadUrl;// 设置下载的文件名link.download = '教务处导入模板.xlsx';// 触发点击事件,下载文件link.click();// 释放 URL 对象window.URL.revokeObjectURL(downloadUrl);})},//继续教育学院导入模板downloadEducation() {allApi.educationEnrollInfo().then(res => {// 创建一个 Blob 对象const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });// 创建下载链接const downloadUrl = window.URL.createObjectURL(blob);const link = document.createElement('a');link.href = downloadUrl;// 设置下载的文件名link.download = '继续教育学院导入模板.xlsx';// 触发点击事件,下载文件link.click();// 释放 URL 对象window.URL.revokeObjectURL(downloadUrl);})},//研究生导入模板downloadGraduationTemplate() {allApi.graduationEnrollInfo().then(res => {// 创建一个 Blob 对象const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });// 创建下载链接const downloadUrl = window.URL.createObjectURL(blob);const link = document.createElement('a');link.href = downloadUrl;// 设置下载的文件名link.download = '研究生院导入模板.xlsx';// 触发点击事件,下载文件link.click();// 释放 URL 对象window.URL.revokeObjectURL(downloadUrl);})},beforeUpload() {if (!this.progressShow) {this.progressPercent = 0this.progressShow = truethis.initializeWebSocket()} else {this.$message.warning("请等待导入完成")return false}},// 初始化 WebSocket 连接initializeWebSocket() {//无论是开发环境还是部署环境,都用VITE_APP_BASE_WSthis.webSocket = new WebSocket(import.meta.env.VITE_APP_BASE_WS);this.webSocket.onmessage = (event) => {const progress = JSON.parse(event.data).progress;this.progressPercent = progress;if (this.progressPercent >= 100) {this.progressShow = falsethis.$message.success("导入完成");this.search()this.getTree();}};},add(type) {this.$refs.formVue.init(type)},batchEdit() {if (this.selectList.length === 0) {this.$message.warning("请选择要编辑的数据")return}this.$refs.editForm.init(this.selectList)},// 重置handleExit() {this.param.admissionAcademy = ''this.param.admissionMajor = ''this.param.admissionTime = ''this.search();this.getTree();// this.progressPercent = 0; // 重置进度条this.$refs.searchForm.clear();},}
};
</script><style lang="less" scoped>
.box {width: 100%;height: calc(100% - 10px);margin-top: 10px;padding: 20px;background-color: #fff;position: relative;display: flex;justify-content: space-between;
}
.el-progress {margin-top: 10px;
}
:deep(.el-table .cell) {width: max-content;display: inline-block;
}
.tree-button {position: absolute;right: 0;bottom: 50%;font-size: 25px;width: 0;
}
</style> -->
首页 暂不使用
<!-- ----------------------------------------------------- --><!-- <template>录取信息页面<div class="box"><el-card :style="{width:treeButton? '19.5%':'35px',position: 'relative',transition: '1s'}"><el-tree v-if="treeButton" :data="treeData" :props="defaultProps" @node-click="handleNodeClick" ref="treeRef" style="width:100%;" /><el-button type="primary" text @click="this.treeButton = !this.treeButton" class="tree-button">{{ treeButton ? '<<' : '>>'}}</el-button></el-card><el-card :style="{width: treeButton?'79.5%':'100%',overflow:'auto',transition: '1s'}"><searchForm ref="searchForm" /><div style="display: flex;margin-bottom:10px;"><el-button type="primary" @click="search()">查询</el-button><el-button type="primary" @click="handleExit()">重置</el-button><el-button type="success" @click="add('add')" style="margin-left:20px;">新增</el-button><el-button type="success" @click="downloadTemplate()" style="margin-left:20px;">下载导入模板</el-button><el-upload v-model:file-list="fileList" accept=".xlsx,.xls" :action="`${this.$http.BASE_URL}/excel/importAdmission`" :show-file-list="false" :before-upload="beforeUpload" :disabled="progressShow"><el-button type="success" style="margin-left:20px;" :disabled="progressShow">导入</el-button></el-upload><el-button type="success" @click="this.$refs.MyTablePrint.dialogVisible = true" style="margin-left:20px;">打印</el-button></div>显示隐藏部分<el-button type="primary" @click="showAdditionalOptions = !showAdditionalOptions" style="position: relative; right: 20px;margin-left:20px;margin-bottom:10px;">{{ showAdditionalOptions ? '隐藏更多选项' : '显示更多选项' }}</el-button><div v-if="showAdditionalOptions" style="display: flex;margin-bottom:10px;"><el-button type="warning" @click="downloadRegisyrarTemplate()" :disabled="progressShow">下载教务处导入模板</el-button><el-button type="warning" @click="downloadEducation()" :disabled="progressShow">下载继续教育学院导入模板</el-button><el-button type="warning" style="margin-right:15px;" @click="downloadGraduationTemplate()" :disabled="progressShow">下载研究生导入模板</el-button><el-upload v-model:file-list="fileList" accept=".xlsx,.xls" :action="`${this.$http.BASE_URL}/excel/import`" :show-file-list="false" :before-upload="beforeUpload" :disabled="progressShow"><el-button type="success" style="margin-right:15px;" :disabled="progressShow">导入教务处数据</el-button></el-upload><el-upload v-model:file-list="fileList" accept=".xlsx,.xls" :action="`${this.$http.BASE_URL}/excel/importContinue`" :show-file-list="false" :before-upload="beforeUpload" :disabled="progressShow"><el-button type="success" style="margin-right:15px;" :disabled="progressShow">导入继续教育学院数据</el-button></el-upload><el-upload v-model:file-list="fileList" accept=".xlsx,.xls" :action="`${this.$http.BASE_URL}/excel/importEducation`" :show-file-list="false" :before-upload="beforeUpload" :disabled="progressShow"><el-button type="success" style="margin-right:15px;" :disabled="progressShow">导入研究生院数据</el-button></el-upload><el-button type="primary" @click="deleteDatabase()">一键删库</el-button><el-button type="primary" @click="batchEdit()">批量编辑</el-button></div><el-progress :percentage="progressPercent" v-if="progressShow" style="margin-bottom:10px;" />列表<el-table :data="tableData" border @select="tableSelect" @select-all="tableSelect" row-key="id" ref="table" table-layout="auto" style="width: 100%;"><el-table-column type="selection" reserve-selection width="55" align="center" fixed="left" /><el-table-column v-for="j in tableHead" :key="j.prop" :prop="j.prop" :label="j.label" width="" align="center" /><el-table-column v-for="item in $myMethod.getCustom(tableData[0])" :key="item" :prop="item" :label="item.slice(7)" width="100" align="center" /></el-table>分页<el-pagination v-model:current-page="currentPage" v-model:page-size="pageSize" :page-sizes="[10, 20, 30, 50]" layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="search" @current-change="search" style="margin-top: 20px; display:flex; justify-content: flex-end;" /></el-card></div><editForm ref="editForm" @search="handleExit" /><formVue ref="formVue" @search="handleExit" /><MyTablePrint ref="MyTablePrint" :tableHead="tableHead" :tableData="tableData" />
</template><script>
import allApi from '@/api/allApi.js';
import searchForm from '@/views/components/searchForm.vue';
import axios from "axios";
import editForm from "./edit.vue"
import formVue from './form.vue';export default {data() {return {showAdditionalOptions: false, // 控制显示更多选项currentPage: 1,pageSize: 10,total: 0,treeData: [],treeButton: true,defaultProps: {children: 'children',label: 'label',},tableData: [],// taskId: null,webSocket: null,progressPercent: 0,progressShow: false,selectList: [],param: {admissionAcademy: '',admissionMajor: '',admissionTime: '',},tableHead: [{ prop: 'archivalNum', label: '档号', },{ prop: 'caseTitle', label: '案卷题名', },{ prop: 'fileTitle', label: '文件标题', },{ prop: 'saveLocation', label: '存储位置', },{ prop: 'pageLocation', label: '所在页', },{ prop: 'pageNum', label: '页面序号', },{ prop: 'examineeNum', label: '考生号', },{ prop: 'admissionNum', label: '准考证号', },{ prop: 'classId', label: '班号', },{ prop: 'studentId', label: '学号', },{ prop: 'name', label: '姓名', },{ prop: 'gender', label: '性别', },{ prop: 'birthday', label: '出生日期', },{ prop: 'politicalOutlook', label: '政治面貌', },{ prop: 'nation', label: '民族', },{ prop: 'idCard', label: '身份证号码', },{ prop: 'planNature', label: '计划性质', },{ prop: 'admissionSchools', label: '录取学校', },{ prop: 'admissionAcademy', label: '录取学院', },{ prop: 'admissionMajor', label: '录取专业', },{ prop: 'admissionTime', label: '录取时间', },{ prop: 'gradation', label: '层次', },{ prop: 'educationalSystem', label: '学制', },{ prop: 'learningForms', label: '学习形式', },{ prop: 'examineeSort', label: '考生类别', },{ prop: 'category', label: '科类', },{ prop: 'batch', label: '批次', },{ prop: 'graduationSchool', label: '毕业学校', },{ prop: 'sourceArea', label: '来源地区', },{ prop: 'areaName', label: '地区名称', },{ prop: 'homeAddress', label: '家庭(邮寄)地址', },{ prop: 'postalCode', label: '邮政编码', },{ prop: 'phoneNum', label: '联系电话', },{ prop: 'infoSource', label: '信息源', },{ prop: 'remarks', label: '备注', },],};},components: {searchForm,editForm,formVue,},mounted() {this.search();this.getTree();// this.initializeWebSocket(); // Initialize WebSocket connection},beforeDestroy() {if (this.webSocket) {this.webSocket.close();}},methods: {getTree() {allApi.catalogTree().then(res => {this.treeData = res})},//树选中handleNodeClick(val) {let node = this.$refs.treeRef.getNode(val)if (node.level == 1) {this.param.admissionAcademy = val.labelthis.param.admissionMajor = ''this.param.admissionTime = ''} else if (node.level == 2) {this.param.admissionAcademy = node.parent.data.labelthis.param.admissionMajor = val.labelthis.param.admissionTime = ''} else if (node.level == 3) {this.param.admissionAcademy = node.parent.parent.data.labelthis.param.admissionMajor = node.parent.data.labelthis.param.admissionTime = val.label}this.search()},// 查询方法search() {allApi.listEnrollInfo({pageNum: this.currentPage,pageSize: this.pageSize,...this.$refs.searchForm.formItem,...this.param,}).then((res) => {this.tableData = res.records;this.total = res.total;});},tableSelect(selection) {this.selectList = []for (let i = 0; i < selection.length; i++) {const e = selection[i];this.selectList.push(e.id)}},deleteDatabase() {axios.get(`${this.$http.BASE_URL}/excel/deleteDatabase`, {headers: {}}).then(response => {}).catch(error => {});},//下载导入模版downloadTemplate() {allApi.downloadTemplateEnrollInfo().then(res => {// 创建一个 Blob 对象const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });// 创建下载链接const downloadUrl = window.URL.createObjectURL(blob);const link = document.createElement('a');link.href = downloadUrl;// 设置下载的文件名link.download = '导入模板.xlsx';// 触发点击事件,下载文件link.click();// 释放 URL 对象window.URL.revokeObjectURL(downloadUrl);})},//教务处导入模板downloadRegisyrarTemplate() {allApi.regisyrarEnrollInfo().then(res => {// 创建一个 Blob 对象const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });// 创建下载链接const downloadUrl = window.URL.createObjectURL(blob);const link = document.createElement('a');link.href = downloadUrl;// 设置下载的文件名link.download = '教务处导入模板.xlsx';// 触发点击事件,下载文件link.click();// 释放 URL 对象window.URL.revokeObjectURL(downloadUrl);})},//继续教育学院导入模板downloadEducation() {allApi.educationEnrollInfo().then(res => {// 创建一个 Blob 对象const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });// 创建下载链接const downloadUrl = window.URL.createObjectURL(blob);const link = document.createElement('a');link.href = downloadUrl;// 设置下载的文件名link.download = '继续教育学院导入模板.xlsx';// 触发点击事件,下载文件link.click();// 释放 URL 对象window.URL.revokeObjectURL(downloadUrl);})},//研究生导入模板downloadGraduationTemplate() {allApi.graduationEnrollInfo().then(res => {// 创建一个 Blob 对象const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });// 创建下载链接const downloadUrl = window.URL.createObjectURL(blob);const link = document.createElement('a');link.href = downloadUrl;// 设置下载的文件名link.download = '研究生院导入模板.xlsx';// 触发点击事件,下载文件link.click();// 释放 URL 对象window.URL.revokeObjectURL(downloadUrl);})},beforeUpload() {if (!this.progressShow) {this.progressPercent = 0this.progressShow = truethis.initializeWebSocket()} else {this.$message.warning("请等待导入完成")return false}},// 初始化 WebSocket 连接initializeWebSocket() {//无论是开发环境还是部署环境,都用VITE_APP_BASE_WSthis.webSocket = new WebSocket(import.meta.env.VITE_APP_BASE_WS);this.webSocket.onmessage = (event) => {const progress = JSON.parse(event.data).progress;this.progressPercent = progress;if (this.progressPercent >= 100) {this.progressShow = falsethis.$message.success("导入完成");this.search()this.getTree();}};},add(type) {this.$refs.formVue.init(type)},batchEdit() {if (this.selectList.length === 0) {this.$message.warning("请选择要编辑的数据")return}this.$refs.editForm.init(this.selectList)},// 重置handleExit() {this.param.admissionAcademy = ''this.param.admissionMajor = ''this.param.admissionTime = ''this.search();this.getTree();// this.progressPercent = 0; // 重置进度条this.$refs.searchForm.clear();},}
};
</script><style lang="less" scoped>
.box {width: 100%;height: calc(100% - 10px);margin-top: 10px;padding: 20px;background-color: #fff;position: relative;display: flex;justify-content: space-between;
}
.el-progress {margin-top: 10px;
}
:deep(.el-table .cell) {width: max-content;display: inline-block;
}
.tree-button {position: absolute;right: 0;bottom: 50%;font-size: 25px;width: 0;
}
</style> -->
子页面 formVue
<template><el-dialog v-model="dialogVisible" :title="dialogTitle" width="70%" center @close="cancel"><el-form label-position="left" label-width="130" :model="formItem" ref="form" inline :rules="rules"><h2 style="margin: 2rem 0 ;">学生档案</h2><el-form-item label="档号" prop="archivalNum" class="form-width"><el-input v-model="formItem.archivalNum" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="案卷题名" prop="caseTitle" class="form-width"><el-input v-model="formItem.caseTitle" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="文件标题" prop="fileTitle" class="form-width"><el-input v-model="formItem.fileTitle" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="存储位置" prop="saveLocation" class="form-width"><el-input v-model="formItem.saveLocation" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="所在页" prop="pageLocation" class="form-width"><el-input v-model="formItem.pageLocation" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="页面序号" prop="pageNum" class="form-width"><el-input v-model="formItem.pageNum" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="考生号" prop="examineeNum" class="form-width"><el-input v-model="formItem.examineeNum" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="准考证号" prop="admissionNum" class="form-width"><el-input v-model="formItem.admissionNum" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="学号" prop="studentId" class="form-width"><el-input-number v-model="formItem.studentId" :min="1" :max="10" /><!-- <el-input v-model="formItem.studentId" type="number" :disabled="formDisabled"></el-input> --></el-form-item><el-form-item label="姓名" prop="name" class="form-width"><el-input v-model="formItem.name" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="性别" prop="gender" class="form-width"><el-input v-model="formItem.gender" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="出生日期" prop="birthday" class="form-width"><el-date-picker v-model="formItem.birthday" :disabled="formDisabled" value-format="YYYY-MM-DD" type="date"style="width:100%;" /></el-form-item><el-form-item label="政治面貌" prop="politicalOutlook" class="form-width"><el-input v-model="formItem.politicalOutlook" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="民族" prop="nation" class="form-width"><el-input v-model="formItem.nation" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="身份证号码" prop="idCard" class="form-width"><el-input v-model="formItem.idCard" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="计划性质" prop="planNature" class="form-width"><el-input v-model="formItem.planNature" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="录取学校" prop="admissionSchools" class="form-width"><el-input v-model="formItem.admissionSchools" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="录取学院" prop="admissionAcademy" class="form-width"><el-input v-model="formItem.admissionAcademy" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="录取专业" prop="admissionMajor" class="form-width"><el-input v-model="formItem.admissionMajor" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="录取时间" prop="admissionTime" class="form-width"><el-date-picker v-model="formItem.admissionTime" :disabled="formDisabled" value-format="YYYY-MM-DD" type="date"style="width:100%;" /></el-form-item><el-form-item label="层次" prop="gradation" class="form-width"><el-input v-model="formItem.gradation" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="学制" prop="educationalSystem" class="form-width"><el-input v-model="formItem.educationalSystem" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="学习形式" prop="learningForms" class="form-width"><el-input v-model="formItem.learningForms" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="考生类别" prop="examineeSort" class="form-width"><el-input v-model="formItem.examineeSort" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="科类" prop="category" class="form-width"><el-input v-model="formItem.category" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="批次" prop="batch" class="form-width"><el-input v-model="formItem.batch" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="毕业学校" prop="graduationSchool" class="form-width"><el-input v-model="formItem.graduationSchool" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="来源地区" prop="sourceArea" class="form-width"><el-input v-model="formItem.sourceArea" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="地区名称" prop="areaName" class="form-width"><el-input v-model="formItem.areaName" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="家庭(邮寄)地址" prop="homeAddress" class="form-width"><el-input v-model="formItem.homeAddress" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="邮政编码" prop="postalCode" class="form-width"><el-input v-model="formItem.postalCode" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="联系电话" prop="phoneNum" class="form-width"><el-input v-model="formItem.phoneNum" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="备注" prop="remarks" class="form-width"><el-input v-model="formItem.remarks" :disabled="formDisabled"></el-input></el-form-item><h2 style="margin: 2rem 0 ;">教学档案</h2><div style="display: flex;margin-bottom:10px;"><el-form label-position="left" label-width="130" :model="formItem2" ref="form" inline :rules="rules"><el-form-item label="档案馆代码" prop="archiveCode" class="form-width"><el-input v-model="formItem2.archiveCode" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="全宗号" prop="fullSetCode" class="form-width"><el-input v-model="formItem2.fullSetCode" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="门类代码" prop="categoryCode" class="form-width"><el-input v-model="formItem2.categoryCode" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="类别号" prop="categoryId" class="form-width"><el-input v-model="formItem2.categoryId" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="项目号" prop="projectId" class="form-width"><el-input v-model="formItem2.projectId" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="目录号" prop="directoryCode" class="form-width"><el-input v-model="formItem2.directoryCode" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="年度" prop="annual" class="form-width"><el-input v-model="formItem2.annual" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="保管期限代码" prop="retentionPeriodCode" class="form-width"><el-input v-model="formItem2.retentionPeriodCode" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="机构问题" prop="institution" class="form-width"><el-input v-model="formItem2.institution" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="案卷号" prop="caseNumber" class="form-width"><el-input v-model="formItem2.caseNumber" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="件号" prop="itemNumber" class="form-width"><el-input v-model="formItem2.itemNumber" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="文件标题" prop="documentTitle" class="form-width"><el-input v-model="formItem2.documentTitle" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="日期" prop="dateTime" class="form-width"><el-date-picker v-model="formItem2.dateTime" :disabled="formDisabled" value-format="YYYY-MM-DD" type="date"style="width:100%;" /></el-form-item><el-form-item label="责任者" prop="responsiblePerson" class="form-width"><el-input v-model="formItem2.responsiblePerson" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="规格" prop="specification" class="form-width"><el-input v-model="formItem2.specification" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="件数" prop="itemCount" class="form-width"><el-input-number v-model="formItem2.itemCount" :min="1" :max="10" /><!-- <el-input v-model="formItem2.itemCount" type="number" :disabled="formDisabled"></el-input> --></el-form-item><el-form-item label="页数" prop="pageCount" class="form-width"><el-input-number v-model="formItem2.pageCount" :min="1" :max="10" /><!-- <el-input v-model="formItem2.pageCount" type="number" :disabled="formDisabled"></el-input> --></el-form-item><el-form-item label="保管期限" prop="retentionPeriod" class="form-width"><el-input v-model="formItem2.retentionPeriod" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="密级" prop="confidentialityLevel" class="form-width"><el-input v-model="formItem2.confidentialityLevel" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="公开属性" prop="disclosureAttribute" class="form-width"><el-input v-model="formItem2.disclosureAttribute" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="开放标识" prop="openFlag" class="form-width"><el-input-number v-model="formItem2.openFlag" :min="1" :max="10" /><!-- <el-input v-model="formItem2.openFlag" :disabled="formDisabled"></el-input> --></el-form-item><el-form-item label="附注" prop="remark" class="form-width"><el-input v-model="formItem2.remark" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="主题词或关键词" prop="keywords" class="form-width"><el-input v-model="formItem2.keywords" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="存储位置" prop="storageLocation" class="form-width"><el-input v-model="formItem2.storageLocation" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="著录者" prop="cataloger" class="form-width"><el-input v-model="formItem2.cataloger" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="著录日期" prop="catalogDate" class="form-width"><el-date-picker v-model="formItem2.catalogDate" :disabled="formDisabled" value-format="YYYY-MM-DD"type="date" style="width:100%;" /></el-form-item><el-form-item label="归档单位" prop="archivingUnit" class="form-width"><el-input v-model="formItem2.archivingUnit" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="归档人" prop="archiver" class="form-width"><el-input v-model="formItem2.archiver" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="归档时间" prop="archiveTime" class="form-width"><el-date-picker v-model="formItem2.archiveTime" :disabled="formDisabled" value-format="YYYY-MM-DD"type="date" style="width:100%;" /></el-form-item><el-form-item label="电文文件" prop="electronicDocument" class="form-width"><el-input v-model="formItem2.electronicDocument" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="电文文件元数据" prop="electronicDocumentMetadata" class="form-width"><el-input v-model="formItem2.electronicDocumentMetadata" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="备注" prop="notes" class="form-width"><el-input v-model="formItem2.notes" :disabled="formDisabled"></el-input></el-form-item></el-form></div></el-form><div v-if="this.dialogTitle == '新增'" style="text-align: center;"><div>当前{{ formNum + 1 }}/共计5条</div><el-button @click="pageTurning(0)" type="text">第一条</el-button><el-button @click="pageTurning(formNum - 1)" :disabled="formNum == 0" type="text">上一条</el-button><el-button @click="pageTurning(formNum + 1)" :disabled="formNum == 4" type="text">下一条</el-button><el-button @click="pageTurning(4)" type="text">最后一条</el-button><el-button @click="saveNext" type="text">保存并编辑下一条</el-button></div><template #footer v-if="dialogTitle != '查看'"><div class="dialog-footer"><el-button type="primary" @click="save">保存</el-button><el-button v-if="this.dialogTitle == '新增'" @click="this.$refs.form.resetFields()">重置</el-button></div></template></el-dialog>
</template>
<script>
import allApi from '@/api/allApi.js';
export default {props: [],data() {return {showAdditionalOptions: false, // 控制显示更多选项dialogVisible: false,dialogTitle: "",tableRow: {},formDisabled: false,formList: [],formNum: 0,formItem: {archivalNum: '',caseTitle: '',fileTitle: '',saveLocation: '',pageLocation: '',pageNum: '',examineeNum: '',admissionNum: '',studentId: '',name: '',gender: '',birthday: '',politicalOutlook: '',nation: '',idCard: '',planNature: '',admissionSchools: '',admissionAcademy: '',admissionMajor: '',admissionTime: '',gradation: '',educationalSystem: '',learningForms: '',examineeSort: '',category: '',batch: '',graduationSchool: '',sourceArea: '',areaName: '',homeAddress: '',postalCode: '',phoneNum: '',remarks: '',},formItem2: {archiveCode: '', //档案馆代码fullSetCode: '', //全宗号categoryCode: '', //门类代码categoryId: '', //类别号projectId: '', //项目号directoryCode: '',//目录号annual: '', // 年度retentionPeriodCode: '', //保管期限代码institution: '', // 机构(问题)caseNumber: '', // 案卷号itemNumber: '',// 件号documentTitle: '', // 文件标题dateTime: '', // 日期responsiblePerson: '', // 责任者specification: '',// 规格itemCount: 0, // 件数(记录文件件数)pageCount: 0, // 页数(记录文件页数)retentionPeriod: '', // 保管期限(描述文件的保管时长)confidentialityLevel: '',// 密级(记录文件的机密等级)disclosureAttribute: '',// 公开属性(记录文件的公开属性,如是否公开)openFlag: 0,// 开放标识(0表示不公开,1表示公开)remark: '', // 附注(存储关于档案的附加信息)keywords: '', // 主题词或关键词(用于档案的关键词索引)storageLocation: '',// 存储位置(记录档案存储的位置)cataloger: '', // 著录者(记录档案信息的人员)catalogDate: 0, // 著录日期(记录档案信息的日期)archivingUnit: '', // 归档单位(归档文件的部门或单位)archiver: '', // 归档人(执行归档操作的人员)archiveTime: '',// 归档时间(归档操作的日期)electronicDocument: '', // 电文文件(记录是否为电文文件,存储文件路径或名称)electronicDocumentMetadata: '',// 电文文件元数据(存储电文文件的元数据)notes: '', // 备注(存储其他额外信息)},rules: {studentId: [{ required: true, message: '必填项不能为空', trigger: 'blur' },],admissionAcademy: [{ required: true, message: '必填项不能为空', trigger: 'blur' },],// grade: [{ required: true, message: '必填项不能为空', trigger: 'blur' },],admissionMajor: [{ required: true, message: '必填项不能为空', trigger: 'blur' },],admissionTime: [{ required: true, message: '必填项不能为空', trigger: 'blur' },],},}},mounted() {},methods: {init(type, row) {this.dialogVisible = truethis.tableRow = rowif (type == 'view') {this.dialogTitle = '查看'this.formDisabled = truethis.$nextTick(() => {//行数据回显Object.keys(this.tableRow).forEach(key => {this.formItem[key] = this.tableRow[key]})})} else if (type == 'edit') {this.dialogTitle = '编辑'this.$nextTick(() => {//行数据回显Object.keys(this.tableRow).forEach(key => {this.formItem[key] = this.tableRow[key]})})} else if (type == 'add') {this.dialogTitle = '新增'//沿用数据回显// Object.keys(this.$store.state.follow.enrollInfoForm).forEach(key => {// this.formItem[key] = this.$store.state.follow.enrollInfoForm[key]// })}},// 最后一条pageTurning(num) {this.$refs.form.validate(val => {if (val) {this.formNum = num//formList数组里有数据说明是上一页,反显上一页数据,没有就是下一页,显示沿用数据this.formItem = { ...this.formList[num] ? this.formList[num] : this.$store.state.follow.enrollInfoForm }}})},//保存并编辑下一页saveNext() {this.$refs.form.validate(val => {if (val) {this.formList[this.formNum] = { ...this.formItem, ...this.formItem2 }this.saveFollow()//存储沿用数据this.formNum = this.formNum + 1this.pageTurning(this.formNum)}})},//存储沿用数据saveFollow() {this.$store.commit("getEnrollInfoForm", {archivalNum: this.formItem.archivalNum,caseTitle: this.formItem.caseTitle,fileTitle: this.formItem.fileTitle,saveLocation: this.formItem.saveLocation,pageLocation: this.formItem.pageLocation,pageNum: this.formItem.pageNum,studentId: Number(this.formItem.studentId) + 1,gender: this.formItem.gender,politicalOutlook: this.formItem.politicalOutlook,nation: this.formItem.nation,planNature: this.formItem.planNature,admissionSchools: this.formItem.admissionSchools,admissionAcademy: this.formItem.admissionAcademy,admissionMajor: this.formItem.admissionMajor,admissionTime: this.formItem.admissionTime,gradation: this.formItem.gradation,educationalSystem: this.formItem.educationalSystem,learningForms: this.formItem.learningForms,examineeSort: this.formItem.examineeSort,category: this.formItem.category,batch: this.formItem.batch,sourceArea: this.formItem.sourceArea,areaName: this.formItem.areaName,});},save() {this.$refs.form.validate(val => {if (val) {if (this.dialogTitle == '新增') {console.log('archiveTime:', this.formItem2.archiveTime);this.formList[this.formNum] = { ...this.formItem, ...this.formItem2 }console.log(this.formList[this.formNum] = { ...this.formItem, ...this.formItem2 })this.saveFollow()//存储沿用数据allApi.addEnrollInfo(this.formList).then((res) => {if (res.code == '0000') {this.$message.success('操作成功')this.$emit('search')this.cancel()location.reload();} else {this.$message.error(res.msg)}});} else if (this.dialogTitle == '编辑') {// allApi.saveArchivesInfo(this.formItem).then((res) => {// if (res.code == '0000') {// this.$message.success('操作成功')// this.$emit('search')// this.cancel()// } else {// this.$message.error(res.msg)// }// });}}})},cancel() {this.dialogVisible = falsethis.formDisabled = falsethis.formNum = 0this.formList = []this.$refs.form && this.$refs.form.resetFields()},}
};
</script>
<style lang="less" scoped>
.form-width {width: 30%;
}.el-card {margin-top: 10px;
}
</style>
子页面 editForm
<template><el-dialog v-model="dialogVisible" :title="dialogTitle" width="70%" center @close="cancel"><el-form label-position="left" label-width="110" :model="formItem" ref="form" inline :rules="rules"><!-- 班号 份数 移交人,接收人、移交时间、信息源 没有 --><el-form-item label="档号" prop="archivalNum" class="form-width"><el-input v-model="formItem.archivalNum" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="案卷题名" prop="caseTitle" class="form-width"><el-input v-model="formItem.caseTitle" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="文件标题" prop="documentTitle" class="form-width"><el-input v-model="formItem.documentTitle" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="存储位置" prop="storageLocation" class="form-width"><el-input v-model="formItem.storageLocation" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="所在页" prop="pageLocation" class="form-width"><el-input v-model="formItem.pageLocation" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="页面序号" prop="pageNum" class="form-width"><el-input v-model="formItem.pageNum" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="责任者" prop="responsiblePerson" class="form-width"><el-input v-model="formItem.responsiblePerson" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="日期" prop="dateTime" class="form-width"><el-date-picker v-model="formItem.dateTime" :disabled="formDisabled" value-format="YYYY-MM-DD" type="date"style="width:100%;" /></el-form-item><el-form-item label="规格" prop="specification" class="form-width"><el-input v-model="formItem.specification" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="页数" prop="pageCount" class="form-width"><el-input-number v-model="formItem.pageCount" :min="1" :max="10" /></el-form-item><el-form-item label="归档单位" prop="archivingUnit" class="form-width"><el-input v-model="formItem.archivingUnit" :disabled="formDisabled"></el-input></el-form-item><el-form-item label="备注" prop="remarks" class="form-width"><el-input v-model="formItem.remarks" :disabled="formDisabled"></el-input></el-form-item></el-form><template #footer><div class="dialog-footer"><el-button @click="cancel">取消</el-button><el-button type="primary" @click="save">确认</el-button></div></template></el-dialog>
</template>
<script>
import allApi from '@/api/allApi.js';
export default {props: [],data() {return {dialogVisible: false,dialogTitle: "",tableRow: {},formDisabled: false,ids: [],formItem: {archivalNum: '',caseTitle: '',documentTitle: '',storageLocation: '',pageLocation: "",pageNum: '',responsiblePerson: "",dateTime: '',specification: '',pageCount: '',archivingUnit: '',remarks: '',name: '',politicalOutlook: '',idCard: '',learningForms: '',classId: '',},rules: {},}},mounted() {},methods: {init(studentIds) {this.dialogVisible = truethis.ids = studentIdsconsole.log(studentIds, 'selectList5555')},save() {console.log(this.ids, 'selectList5555')this.$refs.form.validate(val => {if (val) {allApi.batchEditAffairsEnrollInfo({studentIds: this.ids,...this.formItem,}).then((res) => {if (res.code == '0000') {this.$message.success('操作成功')this.$emit('search')this.cancel()} else {this.$message.error(res.msg)}});}})},cancel() {this.dialogVisible = falsethis.formDisabled = falsethis.$refs.form && this.$refs.form.resetFields()},}
};
</script>
<style lang="less" scoped>
.form-width {width: 30%;
}.el-card {margin-top: 10px;
}
</style>
相关文章:

增删改查 数据下载 一键编辑 删除
index 首页 <template><div class"box"><el-card :style"{ width: treeButton ? 19.5% : 35px, position: relative, transition: 1s }"><el-tree v-if"treeButton" :data"treeData" :props"defaultPro…...

【Go学习实战】03-2-博客查询及登录
【Go学习实战】03-2-博客查询及登录 读取数据库数据初始化数据库首页真实数据分类查询分类查询测试 文章查询文章查询测试 分类文章列表测试 登录功能登录页面登录接口获取json参数登录失败测试 md5加密jwt工具 登录成功测试 文章详情测试 读取数据库数据 因为我们之前的数据都…...

回溯算法(C/C++)
目录 一、组合问题 组合 组合剪枝 组合总和 III编辑 组合总和编辑 组合总和 II 电话号码的字母组合编辑 二、分割问题 分割回文串 复原 IP 地址 三、集合问题 子集 子集 II 非递减子序列 四、排列问题 全排列 全排列 II 五、棋盘问题 N 皇后 课程&#x…...
物联网智慧农业一体化解决方案-可继续扩展更多使用场景
在智慧农业中,从种子、施肥、灌溉、锄地、农具管理、日常照料到蔬菜档案管理,以及与客户、供应商、市场的对接,可以通过物联网(IoT)、大数据、人工智能(AI)、区块链和云计算等技术,构建一个从生产到销售的全流程数字化、智能化农业生态系统。以下是实现方案和技术路径的…...
Jackson 详解
目录 前言 Jackson 是 Java 生态中最流行的 JSON 处理库之一,广泛应用于 RESTful API、数据存储和传输等场景。它提供了高效、灵活的 JSON 序列化和反序列化功能,支持注解、模块化设计和多种数据格式(如 XML、YAML)。本文将详细介…...

游戏引擎学习第143天
仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾并规划今天的内容 目前,我们正在进行声音混合的开发。我们已经写好了声音混合器,并且已经实现了一些功能,比如声音流播放和音量插值。过去一周我们做了很多工作,进展非常快。不…...

SLAM评估工具安装及使用EVO(Ubuntu20.04安装evo)--缺少 onnx 库还有Pandas 版本不兼容解决
介绍一下我的是ubuntu20.04.机载电脑是orinnx,通过源码烧写的系统。 首先打开终端,输入 pip install evo --upgrade --no-binary evo 安装过程中出现如下问题 缺少 onnx 库还有Pandas 版本不兼容, ONNX(Open Neural Network E…...
Nginx解决前端跨域问题
1. 理解 CORS 和同源策略 1.1 同源策略 同源策略是一种浏览器安全机制,用于阻止不同源(不同域名、协议或端口)的 Web 应用相互访问数据。它确保了 Web 应用的隔离性,防止恶意网站访问用户数据或执行不安全的操作。 同源策略下&…...

ReferenceError: assignment to undeclared variable xxx
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…...

国产编辑器EverEdit - 宏功能介绍
1 宏 1.1 应用场景 宏是一种重复执行简单工作的利器,可以让用户愉快的从繁琐的工作中解放出来,其本质是对键盘和菜单的操作序列的录制,并不会识别文件的内容,属于无差别无脑执行。 特别是对一些有规律的重复按键动作,…...

图像滑块对比功能的开发记录
背景介绍 最近,公司需要开发一款在线图像压缩工具,其中的一个关键功能是让用户直观地比较压缩前后的图像效果。因此,我们设计了一个对比组件,它允许用户通过拖动滑块,动态调整两张图像的显示区域,从而清晰…...
【计算机网络】Socket
Socket 是网络通信的核心技术之一,充当应用程序与网络协议栈之间的接口。 1. Socket 定义 Socket(套接字)是操作系统提供的 网络通信抽象层,允许应用程序通过标准接口(如 TCP/IP 或 UDP)进行数据传输。它…...
Electron应用中获取设备唯一ID和系统信息
让我创建一篇关于如何在Electron应用中获取设备唯一ID和系统信息,并在登录时使用这些信息的博客文章。我将确保步骤明确、条理清晰,适合初学者和有经验的开发者。 这篇博客应包含以下部分: 介绍 - 为什么需要获取设备信息前提条件和安装依赖…...

文件上传漏洞:upload-labs靶场11-20
目录 pass-11 pass-12 pass-13 pass-14 pass-15 pass-16 pass-17 pass-18 pass-19 pass-20 pass-11 分析源代码 ,发现上传文件的存放路径可控 if(isset($_POST[submit])){$ext_arr array(jpg,png,gif);$file_ext substr($_FILES[upload_file][name],st…...

国产化板卡设计原理图:2330-基于FMC接口的JFM7K325T PCIeX4 3U PXIe接口卡
基于FMC接口的JFM7K325T PCIeX4 3U PXIe接口卡 一、板卡概述 本板卡基于 FPGAJFM7K325T 芯片,pin_to_pin兼容FPGAXC7K410T-2FFG900 ,支持PCIeX8、64bit DDR3容量2GByte,HPC的FMC连接器,板卡支持PXIE标准协议,其中XJ3…...

使用Open WebUI下载的模型文件(Model)默认存放在哪里?
🏡作者主页:点击! 🤖Ollama部署LLM专栏:点击! ⏰️创作时间:2025年2月21日21点21分 🀄️文章质量:95分 文章目录 使用CMD安装存放位置 默认存放路径 Open WebUI下…...

FPGA 配置原理
用户编程控制的FPGA 是通过加载比特位流配置内部的存储单元实现的。该存储单元就是所谓的配置单元,它必须在器件上电后进行配置,从而设置查找表(LUT)的属性、连线方式、IOB 电压标准和其它的用户设计。 1.配置帧 以Xilinx 公司的…...

企业级虚拟化数据库基础平台自动化部署项目
一、项目简介及准备工作 1.1.虚拟化平台简介 1.1.1.ESXi 8 是什么? 定义: ESXi 8 是 VMware 推出的最新版本 裸机虚拟化管理程序(Hypervisor),属于 VMware vSphere 产品线的核心组件。 核心功能: 在物理…...
关于elementui的时间组件与后端时间和oracle数据库时间的对应格式
前端: <el-date-pickerv-model"formInline.startTime"type"date"value-format"yyyy-MM-dd"placeholder"选择日期"> </el-date-picker> 后端: private String startTime; private String endTime…...

一周学会Flask3 Python Web开发-WTForms表单验证
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 我们可以通过WTForms表单类属性的validators属性来实现表单验证。 常用的WTForms验证器 验证器说明DataRequired(messageNo…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...