|
@@ -21,11 +21,11 @@
|
|
|
<span>在校经历 :</span>
|
|
<span>在校经历 :</span>
|
|
|
<el-select
|
|
<el-select
|
|
|
clearable
|
|
clearable
|
|
|
- v-model="searchInput.year"
|
|
|
|
|
|
|
+ v-model="searchInput.educationId"
|
|
|
placeholder="请选择在校经历"
|
|
placeholder="请选择在校经历"
|
|
|
>
|
|
>
|
|
|
<el-option
|
|
<el-option
|
|
|
- v-for="i in yearData"
|
|
|
|
|
|
|
+ v-for="i in educationData"
|
|
|
:key="i.id"
|
|
:key="i.id"
|
|
|
:label="i.name"
|
|
:label="i.name"
|
|
|
:value="i.id"
|
|
:value="i.id"
|
|
@@ -36,11 +36,11 @@
|
|
|
<span>审核状态 :</span>
|
|
<span>审核状态 :</span>
|
|
|
<el-select
|
|
<el-select
|
|
|
clearable
|
|
clearable
|
|
|
- v-model="searchInput.college"
|
|
|
|
|
|
|
+ v-model="searchInput.isPass"
|
|
|
placeholder="请选择审核状态"
|
|
placeholder="请选择审核状态"
|
|
|
>
|
|
>
|
|
|
<el-option
|
|
<el-option
|
|
|
- v-for="i in collegeData"
|
|
|
|
|
|
|
+ v-for="i in passData"
|
|
|
:key="i.id"
|
|
:key="i.id"
|
|
|
:label="i.name"
|
|
:label="i.name"
|
|
|
:value="i.id"
|
|
:value="i.id"
|
|
@@ -61,15 +61,16 @@
|
|
|
placeholder="请选择日期"
|
|
placeholder="请选择日期"
|
|
|
/>
|
|
/>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+
|
|
|
<div class="condition">
|
|
<div class="condition">
|
|
|
- <span>入学年 :</span>
|
|
|
|
|
|
|
+ <span>毕业年 :</span>
|
|
|
<el-select
|
|
<el-select
|
|
|
clearable
|
|
clearable
|
|
|
- v-model="searchInput.major"
|
|
|
|
|
- placeholder="请选择入学年"
|
|
|
|
|
|
|
+ v-model="searchInput.graduateId"
|
|
|
|
|
+ placeholder="请选择毕业年"
|
|
|
>
|
|
>
|
|
|
<el-option
|
|
<el-option
|
|
|
- v-for="i in majorData"
|
|
|
|
|
|
|
+ v-for="i in graduateData"
|
|
|
:key="i.id"
|
|
:key="i.id"
|
|
|
:label="i.name"
|
|
:label="i.name"
|
|
|
:value="i.id"
|
|
:value="i.id"
|
|
@@ -77,14 +78,15 @@
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="condition">
|
|
<div class="condition">
|
|
|
- <span>毕业年 :</span>
|
|
|
|
|
|
|
+ <span>学院 :</span>
|
|
|
<el-select
|
|
<el-select
|
|
|
clearable
|
|
clearable
|
|
|
- v-model="searchInput.class"
|
|
|
|
|
- placeholder="请选择毕业年"
|
|
|
|
|
|
|
+ v-model="searchInput.collegeId"
|
|
|
|
|
+ placeholder="请选择学院"
|
|
|
|
|
+ @change="collegeChange"
|
|
|
>
|
|
>
|
|
|
<el-option
|
|
<el-option
|
|
|
- v-for="i in classData"
|
|
|
|
|
|
|
+ v-for="i in collegeData"
|
|
|
:key="i.id"
|
|
:key="i.id"
|
|
|
:label="i.name"
|
|
:label="i.name"
|
|
|
:value="i.id"
|
|
:value="i.id"
|
|
@@ -92,14 +94,15 @@
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="condition">
|
|
<div class="condition">
|
|
|
- <span>学院 :</span>
|
|
|
|
|
|
|
+ <span>入学年 :</span>
|
|
|
<el-select
|
|
<el-select
|
|
|
clearable
|
|
clearable
|
|
|
- v-model="searchInput.major"
|
|
|
|
|
- placeholder="请选择学院"
|
|
|
|
|
|
|
+ v-model="searchInput.periodId"
|
|
|
|
|
+ placeholder="请选择入学年"
|
|
|
|
|
+ @change="periodChange"
|
|
|
>
|
|
>
|
|
|
<el-option
|
|
<el-option
|
|
|
- v-for="i in majorData"
|
|
|
|
|
|
|
+ v-for="i in periodData"
|
|
|
:key="i.id"
|
|
:key="i.id"
|
|
|
:label="i.name"
|
|
:label="i.name"
|
|
|
:value="i.id"
|
|
:value="i.id"
|
|
@@ -110,11 +113,11 @@
|
|
|
<span>专业 :</span>
|
|
<span>专业 :</span>
|
|
|
<el-select
|
|
<el-select
|
|
|
clearable
|
|
clearable
|
|
|
- v-model="searchInput.class"
|
|
|
|
|
|
|
+ v-model="searchInput.majorId"
|
|
|
placeholder="请选择专业"
|
|
placeholder="请选择专业"
|
|
|
>
|
|
>
|
|
|
<el-option
|
|
<el-option
|
|
|
- v-for="i in classData"
|
|
|
|
|
|
|
+ v-for="i in majorData"
|
|
|
:key="i.id"
|
|
:key="i.id"
|
|
|
:label="i.name"
|
|
:label="i.name"
|
|
|
:value="i.id"
|
|
:value="i.id"
|
|
@@ -153,33 +156,55 @@
|
|
|
align="center"
|
|
align="center"
|
|
|
width="60"
|
|
width="60"
|
|
|
/>
|
|
/>
|
|
|
- <el-table-column align="center" prop="school" label="姓名" />
|
|
|
|
|
- <el-table-column width="100" align="center" label="性别">
|
|
|
|
|
|
|
+ <el-table-column align="center" prop="userName" label="姓名" />
|
|
|
|
|
+ <el-table-column align="center" prop="genderStr" label="性别">
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column
|
|
|
|
|
+ align="center"
|
|
|
|
|
+ prop="educationBackground"
|
|
|
|
|
+ label="在校经历"
|
|
|
|
|
+ />
|
|
|
|
|
+ <el-table-column align="center" prop="graduateName" label="毕业年" />
|
|
|
|
|
+ <el-table-column align="center" prop="collegeName" label="学院" />
|
|
|
|
|
+ <el-table-column align="center" prop="periodName" label="入学年" />
|
|
|
|
|
+ <el-table-column align="center" prop="majorName" label="专业" />
|
|
|
|
|
+ <el-table-column align="center" prop="headImage" label="照片">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
- <span v-if="row.retentionState == 2">是</span>
|
|
|
|
|
- <span v-if="row.retentionState == 1">否</span>
|
|
|
|
|
|
|
+ <div class="img-preview-list" v-if="row.headImage">
|
|
|
|
|
+ <div
|
|
|
|
|
+ class="img-item"
|
|
|
|
|
+ style="width: 60px; height: 60px; margin: 10px 0"
|
|
|
|
|
+ >
|
|
|
|
|
+ <img
|
|
|
|
|
+ :src="row.headImage"
|
|
|
|
|
+ alt="图片预览"
|
|
|
|
|
+ class="preview-img"
|
|
|
|
|
+ v-viewer
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" prop="dormitory" label="在校经历" />
|
|
|
|
|
- <el-table-column align="center" prop="dormitory" label="入学年" />
|
|
|
|
|
- <el-table-column align="center" prop="sex" label="毕业年" />
|
|
|
|
|
- <el-table-column align="center" prop="college" label="学院" />
|
|
|
|
|
- <el-table-column align="center" prop="major" label="专业" />
|
|
|
|
|
- <el-table-column align="center" prop="major" label="照片" />
|
|
|
|
|
- <el-table-column align="center" prop="major" label="编号" />
|
|
|
|
|
- <el-table-column align="center" prop="status" label="审核状态">
|
|
|
|
|
|
|
+ <el-table-column align="center" prop="phone" label="编号" />
|
|
|
|
|
+ <el-table-column align="center" prop="passName" label="审核状态">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
- <span v-if="row.status == 1">满员</span>
|
|
|
|
|
- <span v-if="row.status == 2">全空</span>
|
|
|
|
|
- <span v-if="row.status == 3">缺额</span>
|
|
|
|
|
|
|
+ <span v-if="row.passName == '已通过'" style="color: #67c23a">{{
|
|
|
|
|
+ row.passName
|
|
|
|
|
+ }}</span>
|
|
|
|
|
+ <span v-if="row.passName == '待审核'" style="color: #409eff">{{
|
|
|
|
|
+ row.passName
|
|
|
|
|
+ }}</span>
|
|
|
|
|
+ <span v-if="row.passName == '已拒绝'" style="color: #f56c6c">{{
|
|
|
|
|
+ row.passName
|
|
|
|
|
+ }}</span>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
|
+ <el-table-column align="center" prop="freeBedNumber" label="审核人" />
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
align="center"
|
|
align="center"
|
|
|
prop="freeBedNumber"
|
|
prop="freeBedNumber"
|
|
|
- label="审核人"
|
|
|
|
|
|
|
+ label="审核时间"
|
|
|
/>
|
|
/>
|
|
|
- <el-table-column align="center" prop="freeBedNumber" label="审核时间" />
|
|
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
align="center"
|
|
align="center"
|
|
|
label="操作"
|
|
label="操作"
|
|
@@ -187,18 +212,23 @@
|
|
|
width="200"
|
|
width="200"
|
|
|
>
|
|
>
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
- <el-button type="primary" @click="updateS(row)" link
|
|
|
|
|
|
|
+ <el-button type="primary" @click="infoClick(row)" link
|
|
|
>详情</el-button
|
|
>详情</el-button
|
|
|
>
|
|
>
|
|
|
- <el-button type="primary" @click="updateS(row)" link
|
|
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ v-if="row.passName == '待审核'"
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ @click="operationPassChange(row)"
|
|
|
|
|
+ link
|
|
|
>通过</el-button
|
|
>通过</el-button
|
|
|
>
|
|
>
|
|
|
- <el-button type="danger" @click="deleteS(row)" link
|
|
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ v-if="row.passName == '待审核'"
|
|
|
|
|
+ type="danger"
|
|
|
|
|
+ @click="operationRefuseChange(row)"
|
|
|
|
|
+ link
|
|
|
>拒绝</el-button
|
|
>拒绝</el-button
|
|
|
>
|
|
>
|
|
|
- <el-button type="danger" @click="deleteS(row)" link
|
|
|
|
|
- >删除</el-button
|
|
|
|
|
- >
|
|
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
</el-table>
|
|
</el-table>
|
|
@@ -226,7 +256,7 @@
|
|
|
:close-on-press-escape="false"
|
|
:close-on-press-escape="false"
|
|
|
:title="dialongTitle"
|
|
:title="dialongTitle"
|
|
|
align-center
|
|
align-center
|
|
|
- width="560"
|
|
|
|
|
|
|
+ width="540"
|
|
|
:before-close="cancelAdd"
|
|
:before-close="cancelAdd"
|
|
|
destroy-on-close
|
|
destroy-on-close
|
|
|
draggable
|
|
draggable
|
|
@@ -235,107 +265,22 @@
|
|
|
ref="ruleFormRef"
|
|
ref="ruleFormRef"
|
|
|
:model="ruleForm"
|
|
:model="ruleForm"
|
|
|
:rules="rules"
|
|
:rules="rules"
|
|
|
- label-width="100px"
|
|
|
|
|
|
|
+ label-width="90px"
|
|
|
class="demo-ruleForm"
|
|
class="demo-ruleForm"
|
|
|
:size="formSize"
|
|
:size="formSize"
|
|
|
label-position="right"
|
|
label-position="right"
|
|
|
status-icon
|
|
status-icon
|
|
|
>
|
|
>
|
|
|
- <el-form-item label="校区名称 :" prop="school">
|
|
|
|
|
- <el-select
|
|
|
|
|
- :disabled="dialongTitle == '编辑寝室信息'"
|
|
|
|
|
- @change="schoolFormChange"
|
|
|
|
|
- v-model="ruleForm.school"
|
|
|
|
|
- clearable
|
|
|
|
|
- placeholder="请选择校区名称"
|
|
|
|
|
- >
|
|
|
|
|
- <el-option
|
|
|
|
|
- v-for="i in schoolData"
|
|
|
|
|
- :key="i.id"
|
|
|
|
|
- :label="i.school"
|
|
|
|
|
- :value="`${i.school},${i.id}`"
|
|
|
|
|
- />
|
|
|
|
|
- </el-select>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="楼栋名称 :" prop="build">
|
|
|
|
|
- <el-select
|
|
|
|
|
- :disabled="dialongTitle == '编辑寝室信息'"
|
|
|
|
|
- clearable
|
|
|
|
|
- v-model="ruleForm.build"
|
|
|
|
|
- placeholder="请选择楼栋名称"
|
|
|
|
|
- @change="buildFormChange"
|
|
|
|
|
- >
|
|
|
|
|
- <el-option
|
|
|
|
|
- v-for="i in buildFormData"
|
|
|
|
|
- :key="i.id"
|
|
|
|
|
- :label="i.build"
|
|
|
|
|
- :value="`${i.build},${i.id}`"
|
|
|
|
|
- />
|
|
|
|
|
- </el-select>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="寝室号 :" prop="dormitory">
|
|
|
|
|
- <el-input
|
|
|
|
|
- clearable
|
|
|
|
|
- v-model.trim="ruleForm.dormitory"
|
|
|
|
|
- class="w-50 m-2"
|
|
|
|
|
- placeholder="请输入寝室号"
|
|
|
|
|
- />
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="寝室性别 :" prop="sex">
|
|
|
|
|
- <el-select
|
|
|
|
|
- disabled
|
|
|
|
|
- v-model="ruleForm.sex"
|
|
|
|
|
- placeholder="请选择寝室性别"
|
|
|
|
|
- >
|
|
|
|
|
- <el-option label="男" value="男" />
|
|
|
|
|
- <el-option label="女" value="女" />
|
|
|
|
|
- </el-select>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="所属学院 :" prop="college">
|
|
|
|
|
- <el-select
|
|
|
|
|
- @change="collegeFormChange"
|
|
|
|
|
- v-model="ruleForm.college"
|
|
|
|
|
- clearable
|
|
|
|
|
- multiple
|
|
|
|
|
- collapse-tags
|
|
|
|
|
- collapse-tags-tooltip
|
|
|
|
|
- :max-collapse-tags="2"
|
|
|
|
|
- placeholder="请选择所属学院"
|
|
|
|
|
- >
|
|
|
|
|
- <el-option
|
|
|
|
|
- v-for="i in collegeData"
|
|
|
|
|
- :key="i.id"
|
|
|
|
|
- :label="i.name"
|
|
|
|
|
- :value="`${i.name},${i.id}`"
|
|
|
|
|
- />
|
|
|
|
|
- </el-select>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <!-- <el-form-item label="专业 :" prop="major">
|
|
|
|
|
- <el-select
|
|
|
|
|
- clearable
|
|
|
|
|
- v-model="ruleForm.major"
|
|
|
|
|
- placeholder="请选择专业"
|
|
|
|
|
- >
|
|
|
|
|
- <el-option
|
|
|
|
|
- v-for="i in majorFormData"
|
|
|
|
|
- :key="i.id"
|
|
|
|
|
- :label="i.name"
|
|
|
|
|
- :value="`${i.name},${i.id}`"
|
|
|
|
|
- />
|
|
|
|
|
- </el-select>
|
|
|
|
|
- </el-form-item> -->
|
|
|
|
|
- <el-form-item label="床位数 :" prop="bedNumber">
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model.trim="ruleForm.bedNumber"
|
|
|
|
|
- placeholder="请输入床位数"
|
|
|
|
|
- clearable
|
|
|
|
|
- />
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="备注 :" prop="remark">
|
|
|
|
|
|
|
+ <el-form-item
|
|
|
|
|
+ label="审批意见 :"
|
|
|
|
|
+ :prop="dialongTitle == '拒绝审批' ? 'passValue' : ''"
|
|
|
|
|
+ >
|
|
|
<el-input
|
|
<el-input
|
|
|
- v-model.trim="ruleForm.remark"
|
|
|
|
|
- placeholder="请输入备注"
|
|
|
|
|
|
|
+ v-model.trim="ruleForm.passValue"
|
|
|
|
|
+ placeholder="请输入审批意见"
|
|
|
clearable
|
|
clearable
|
|
|
|
|
+ :autosize="{ minRows: 4 }"
|
|
|
|
|
+ type="textarea"
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item class="options">
|
|
<el-form-item class="options">
|
|
@@ -351,52 +296,68 @@
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
- <!-- 项目导入 -->
|
|
|
|
|
|
|
+ <!-- 详情 -->
|
|
|
<el-dialog
|
|
<el-dialog
|
|
|
class="projectImport"
|
|
class="projectImport"
|
|
|
- v-model="buildImportVisible"
|
|
|
|
|
|
|
+ v-model="infoVisible"
|
|
|
:close-on-click-modal="false"
|
|
:close-on-click-modal="false"
|
|
|
:close-on-press-escape="false"
|
|
:close-on-press-escape="false"
|
|
|
- title="寝室信息导入"
|
|
|
|
|
|
|
+ title="详情"
|
|
|
align-center
|
|
align-center
|
|
|
width="600"
|
|
width="600"
|
|
|
- :before-close="cancelProjectImport"
|
|
|
|
|
|
|
+ :before-close="cancelInfo"
|
|
|
|
|
+ draggable
|
|
|
>
|
|
>
|
|
|
- <!-- <p class="title">当前只支持项目类型为“非装配式建筑项目”的项目导入</p> -->
|
|
|
|
|
- <p class="down">
|
|
|
|
|
- <span>寝室信息导入模板下载</span
|
|
|
|
|
- ><span @click="templateDown">模板下载</span>
|
|
|
|
|
- </p>
|
|
|
|
|
- <el-upload
|
|
|
|
|
- class="avatar-uploader"
|
|
|
|
|
- action="#"
|
|
|
|
|
- :auto-upload="false"
|
|
|
|
|
- :on-remove="projectImportRemove"
|
|
|
|
|
- :on-change="projectImportChange"
|
|
|
|
|
- :before-upload="beforeAvatarProImport"
|
|
|
|
|
- ref="buildRef"
|
|
|
|
|
- :limit="1"
|
|
|
|
|
- :on-exceed="projectImportExceed"
|
|
|
|
|
- >
|
|
|
|
|
- <template #trigger>
|
|
|
|
|
- <el-button class="queding" type="primary">
|
|
|
|
|
- 导入文件
|
|
|
|
|
- </el-button>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-upload>
|
|
|
|
|
- <div class="options">
|
|
|
|
|
- <el-button
|
|
|
|
|
- color="rgba(9, 101, 98, 1)"
|
|
|
|
|
- class="queding"
|
|
|
|
|
- type="primary"
|
|
|
|
|
- @click="projectImportConfirm(buildRef)"
|
|
|
|
|
- :loading="buildImportLoading"
|
|
|
|
|
- >
|
|
|
|
|
- 确认导入
|
|
|
|
|
- </el-button>
|
|
|
|
|
- <el-button @click="cancelProjectImport"
|
|
|
|
|
- > 取消导入 </el-button
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <div style="margin-bottom: 15px">
|
|
|
|
|
+ <el-descriptions :column="1">
|
|
|
|
|
+ <el-descriptions-item label="姓名 :">{{
|
|
|
|
|
+ infoData.userName
|
|
|
|
|
+ }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="性别 :">{{
|
|
|
|
|
+ infoData.genderStr
|
|
|
|
|
+ }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="在校经历 :">{{
|
|
|
|
|
+ infoData.educationBackground
|
|
|
|
|
+ }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="毕业年 :">{{
|
|
|
|
|
+ infoData.graduateName
|
|
|
|
|
+ }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="学院 :">{{
|
|
|
|
|
+ infoData.collegeName
|
|
|
|
|
+ }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="入学年 :">{{
|
|
|
|
|
+ infoData.periodName
|
|
|
|
|
+ }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="专业 :">{{
|
|
|
|
|
+ infoData.majorName
|
|
|
|
|
+ }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="照片 :">
|
|
|
|
|
+ <div class="img-preview-list" v-if="infoData.headImage">
|
|
|
|
|
+ <div
|
|
|
|
|
+ class="img-item"
|
|
|
|
|
+ style="width: 60px; height: 60px; margin: 10px 0"
|
|
|
|
|
+ >
|
|
|
|
|
+ <img
|
|
|
|
|
+ :src="infoData.headImage"
|
|
|
|
|
+ alt="图片预览"
|
|
|
|
|
+ class="preview-img"
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="编号 :">{{
|
|
|
|
|
+ infoData.phone
|
|
|
|
|
+ }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="审核状态 :">{{
|
|
|
|
|
+ infoData.passName
|
|
|
|
|
+ }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="审核人 :">{{
|
|
|
|
|
+ infoData.applyUserName
|
|
|
|
|
+ }}</el-descriptions-item>
|
|
|
|
|
+ <el-descriptions-item label="审核时间 :">{{
|
|
|
|
|
+ infoData.passTime
|
|
|
|
|
+ }}</el-descriptions-item>
|
|
|
|
|
+ </el-descriptions>
|
|
|
</div>
|
|
</div>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
</div>
|
|
</div>
|
|
@@ -419,6 +380,17 @@ import lodash from "lodash";
|
|
|
import { storeToRefs } from "pinia";
|
|
import { storeToRefs } from "pinia";
|
|
|
import { useCounterStore } from "@/stores/index";
|
|
import { useCounterStore } from "@/stores/index";
|
|
|
|
|
|
|
|
|
|
+import {
|
|
|
|
|
+ queryEUsersPage,
|
|
|
|
|
+ toExamineUser,
|
|
|
|
|
+ queryEducations,
|
|
|
|
|
+ queryPassTypes,
|
|
|
|
|
+ queryGraduate,
|
|
|
|
|
+ queryColleges,
|
|
|
|
|
+ queryPeriods,
|
|
|
|
|
+ queryMajors,
|
|
|
|
|
+} from "@/api/alumni-card.js";
|
|
|
|
|
+
|
|
|
const router = useRouter();
|
|
const router = useRouter();
|
|
|
const store = useCounterStore();
|
|
const store = useCounterStore();
|
|
|
|
|
|
|
@@ -430,15 +402,17 @@ const loading = ref(false);
|
|
|
const tableData = reactive({
|
|
const tableData = reactive({
|
|
|
list: [{}],
|
|
list: [{}],
|
|
|
});
|
|
});
|
|
|
-const activeIndex = ref(); // 默认跳转路由
|
|
|
|
|
const dialongTitle = ref("新增账号"); // 弹窗标题
|
|
const dialongTitle = ref("新增账号"); // 弹窗标题
|
|
|
|
|
|
|
|
const searchInput = reactive({
|
|
const searchInput = reactive({
|
|
|
name: "",
|
|
name: "",
|
|
|
- year: null,
|
|
|
|
|
- college: null,
|
|
|
|
|
- major: null,
|
|
|
|
|
- class: null,
|
|
|
|
|
|
|
+ educationId: "",
|
|
|
|
|
+ isPass: "",
|
|
|
|
|
+ createTime: "",
|
|
|
|
|
+ collegeId: "",
|
|
|
|
|
+ periodId: "",
|
|
|
|
|
+ majorId: "",
|
|
|
|
|
+ graduateId: "",
|
|
|
}); // 搜索按钮数据
|
|
}); // 搜索按钮数据
|
|
|
|
|
|
|
|
const currentPage = ref(1); // 当前页
|
|
const currentPage = ref(1); // 当前页
|
|
@@ -452,42 +426,29 @@ const addDialogVisible = ref(false); // 控制添加账号弹窗
|
|
|
const formSize = ref("default");
|
|
const formSize = ref("default");
|
|
|
const ruleFormRef = ref();
|
|
const ruleFormRef = ref();
|
|
|
const ruleForm = reactive({
|
|
const ruleForm = reactive({
|
|
|
- school: "靖安校区", //校区名称
|
|
|
|
|
- build: "", //楼栋名称
|
|
|
|
|
- dormitory: "", //寝室号
|
|
|
|
|
- sex: "男", //寝室性别
|
|
|
|
|
- college: "", //所属学院
|
|
|
|
|
- major: "", //所属专业
|
|
|
|
|
- bedNumber: "", //床位数
|
|
|
|
|
- // "gradestr": "", //所属年级
|
|
|
|
|
- remark: "", //备注
|
|
|
|
|
|
|
+ passValue: "",
|
|
|
id: "",
|
|
id: "",
|
|
|
});
|
|
});
|
|
|
// 表单验证
|
|
// 表单验证
|
|
|
const rules = reactive({
|
|
const rules = reactive({
|
|
|
- school: [{ required: true, message: "校区名称不能为空", trigger: "blur" }],
|
|
|
|
|
- build: [{ required: true, message: "楼栋名称不能为空", trigger: "blur" }],
|
|
|
|
|
- dormitory: [{ required: true, message: "寝室号不能为空", trigger: "blur" }],
|
|
|
|
|
- sex: [{ required: true, message: "寝室性别不能为空", trigger: "blur" }],
|
|
|
|
|
- college: [{ required: true, message: "所属学院不能为空", trigger: "blur" }],
|
|
|
|
|
- major: [{ required: true, message: "专业不能为空", trigger: "blur" }],
|
|
|
|
|
- bedNumber: [{ required: true, message: "床位数不能为空", trigger: "blur" }],
|
|
|
|
|
|
|
+ passValue: [{ required: true, message: "审批意见不能为空", trigger: "blur" }],
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
-// 导入
|
|
|
|
|
-const buildImportVisible = ref(false);
|
|
|
|
|
-const buildRef = ref();
|
|
|
|
|
-const buildFile = ref();
|
|
|
|
|
-const buildImportLoading = ref(false);
|
|
|
|
|
|
|
+const infoVisible = ref(false);
|
|
|
|
|
+const infoData = ref({});
|
|
|
|
|
|
|
|
-// 入学年
|
|
|
|
|
-const yearData = ref([]);
|
|
|
|
|
// 学院
|
|
// 学院
|
|
|
const collegeData = ref([]);
|
|
const collegeData = ref([]);
|
|
|
|
|
+// 入学年
|
|
|
|
|
+const periodData = ref([]);
|
|
|
// 专业
|
|
// 专业
|
|
|
const majorData = ref([]);
|
|
const majorData = ref([]);
|
|
|
-// 班级
|
|
|
|
|
-const classData = ref([]);
|
|
|
|
|
|
|
+// 毕业年份下拉
|
|
|
|
|
+const graduateData = ref();
|
|
|
|
|
+// 在校经历下拉列表数据
|
|
|
|
|
+const educationData = ref();
|
|
|
|
|
+// 审核状态下拉列表数据
|
|
|
|
|
+const passData = ref();
|
|
|
|
|
|
|
|
// 获取账户列表
|
|
// 获取账户列表
|
|
|
const getList = async () => {
|
|
const getList = async () => {
|
|
@@ -495,57 +456,108 @@ const getList = async () => {
|
|
|
let params = {
|
|
let params = {
|
|
|
currentPage: currentPage.value, // 当前页
|
|
currentPage: currentPage.value, // 当前页
|
|
|
pageCount: pageSize.value, // 一页数据条数
|
|
pageCount: pageSize.value, // 一页数据条数
|
|
|
- schoolId: searchInput.schoolId,
|
|
|
|
|
- buildId: searchInput.buildId,
|
|
|
|
|
|
|
+ name: searchInput.name,
|
|
|
|
|
+ educationId: searchInput.educationId,
|
|
|
|
|
+ isPass: searchInput.isPass,
|
|
|
|
|
+ collegeId: searchInput.collegeId,
|
|
|
|
|
+ periodId: searchInput.periodId,
|
|
|
|
|
+ majorId: searchInput.majorId,
|
|
|
|
|
+ graduateId: searchInput.graduateId,
|
|
|
};
|
|
};
|
|
|
|
|
+ if (searchInput.createTime) {
|
|
|
|
|
+ params.pstartTime = searchInput.createTime[0];
|
|
|
|
|
+ params.pendTime = searchInput.createTime[1];
|
|
|
|
|
+ }
|
|
|
|
|
+ queryEUsersPage(params).then((res) => {
|
|
|
|
|
+ console.log(res, "校友分页列表数据");
|
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
|
+ tableData.list = res.data.list;
|
|
|
|
|
+ total.value = res.data.totalCount;
|
|
|
|
|
+ loading.value = false;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ loading.value = false;
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 搜索功能
|
|
// 搜索功能
|
|
|
-const searchBtn = lodash.debounce(async () => {}, 300);
|
|
|
|
|
-const resetBtn = lodash.debounce(async () => {}, 300);
|
|
|
|
|
|
|
+const searchBtn = lodash.debounce(async () => {
|
|
|
|
|
+ currentPage.value = 1;
|
|
|
|
|
+ getList();
|
|
|
|
|
+}, 300);
|
|
|
|
|
+const resetBtn = lodash.debounce(async () => {
|
|
|
|
|
+ searchInput.name = "";
|
|
|
|
|
+ searchInput.collegeId = "";
|
|
|
|
|
+ searchInput.periodId = "";
|
|
|
|
|
+ searchInput.majorId = "";
|
|
|
|
|
+
|
|
|
|
|
+ searchInput.educationId = "";
|
|
|
|
|
+ searchInput.isPass = "";
|
|
|
|
|
+ searchInput.createTime = "";
|
|
|
|
|
+ searchInput.graduateId = "";
|
|
|
|
|
+ currentPage.value = 1;
|
|
|
|
|
+ getList();
|
|
|
|
|
+}, 300);
|
|
|
|
|
+
|
|
|
|
|
+const infoClick = (row) => {
|
|
|
|
|
+ console.log(row);
|
|
|
|
|
|
|
|
-// 添加账号
|
|
|
|
|
-const addlist = () => {
|
|
|
|
|
- dialongTitle.value = "新增寝室信息";
|
|
|
|
|
- addDialogVisible.value = true;
|
|
|
|
|
- ruleForm.school = null;
|
|
|
|
|
|
|
+ infoVisible.value = true;
|
|
|
|
|
+ infoData.value = row;
|
|
|
};
|
|
};
|
|
|
-// 添加账号
|
|
|
|
|
-const updateS = (row) => {
|
|
|
|
|
- console.log(row);
|
|
|
|
|
- dialongTitle.value = "编辑寝室信息";
|
|
|
|
|
- addDialogVisible.value = true;
|
|
|
|
|
|
|
+
|
|
|
|
|
+const cancelInfo = () => {
|
|
|
|
|
+ infoVisible.value = false;
|
|
|
};
|
|
};
|
|
|
-const deleteS = async (row) => {
|
|
|
|
|
- ElMessageBox.confirm("是否删除此数据?", "提示!!!", {
|
|
|
|
|
- confirmButtonText: "确认",
|
|
|
|
|
- cancelButtonText: "取消",
|
|
|
|
|
- type: "warning",
|
|
|
|
|
- })
|
|
|
|
|
- .then(async () => {
|
|
|
|
|
- loading.value = true;
|
|
|
|
|
- let data = {
|
|
|
|
|
- dormitoryId: row.id, // 当前页
|
|
|
|
|
- };
|
|
|
|
|
- })
|
|
|
|
|
- .catch(() => {
|
|
|
|
|
- loading.value = false;
|
|
|
|
|
- });
|
|
|
|
|
|
|
+
|
|
|
|
|
+// 通过
|
|
|
|
|
+const operationPassChange = async (row) => {
|
|
|
|
|
+ dialongTitle.value = "通过审批";
|
|
|
|
|
+ addDialogVisible.value = true;
|
|
|
|
|
+ ruleForm.passValue = null;
|
|
|
|
|
+ ruleForm.id = row.id;
|
|
|
};
|
|
};
|
|
|
-// 保留
|
|
|
|
|
-const retainS = async (row, flag) => {
|
|
|
|
|
- let data = {
|
|
|
|
|
- dormitoryIds: [row.id], // 当前页
|
|
|
|
|
- retentionState: flag, //保留状态 1:开放,2:保留
|
|
|
|
|
- };
|
|
|
|
|
|
|
+// 拒绝
|
|
|
|
|
+const operationRefuseChange = async (row) => {
|
|
|
|
|
+ dialongTitle.value = "拒绝审批";
|
|
|
|
|
+ addDialogVisible.value = true;
|
|
|
|
|
+ ruleForm.passValue = null;
|
|
|
|
|
+ ruleForm.id = row.id;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-// 确认添加员工
|
|
|
|
|
const submitAdd = lodash.debounce(async (formEl) => {
|
|
const submitAdd = lodash.debounce(async (formEl) => {
|
|
|
if (!formEl) return;
|
|
if (!formEl) return;
|
|
|
await formEl.validate(async (valid, fields) => {
|
|
await formEl.validate(async (valid, fields) => {
|
|
|
if (valid) {
|
|
if (valid) {
|
|
|
- console.log(data);
|
|
|
|
|
|
|
+ let data = {
|
|
|
|
|
+ id: ruleForm.id,
|
|
|
|
|
+ isPass: dialongTitle.value == "通过审批" ? 2 : 3,
|
|
|
|
|
+ passValue: ruleForm.passValue,
|
|
|
|
|
+ };
|
|
|
|
|
+ let res = await toExamineUser(data);
|
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
|
+ addDialogVisible.value = false;
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "success",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ getList();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
console.log("error submit!", fields);
|
|
console.log("error submit!", fields);
|
|
|
}
|
|
}
|
|
@@ -576,118 +588,126 @@ const tableRowClassName = ({ row, rowIndex }) => {
|
|
|
const handleSizeChange = (value) => {
|
|
const handleSizeChange = (value) => {
|
|
|
console.log(value, "每页显示条数");
|
|
console.log(value, "每页显示条数");
|
|
|
pageSize.value = value;
|
|
pageSize.value = value;
|
|
|
|
|
+ getList();
|
|
|
};
|
|
};
|
|
|
// 分页
|
|
// 分页
|
|
|
const handleCurrentChange = (value) => {
|
|
const handleCurrentChange = (value) => {
|
|
|
// console.log(value);
|
|
// console.log(value);
|
|
|
currentPage.value = value;
|
|
currentPage.value = value;
|
|
|
|
|
+ getList();
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-// 楼栋导出
|
|
|
|
|
-const exportbtn = async () => {
|
|
|
|
|
|
|
+// 学院下拉列表数据
|
|
|
|
|
+const collegeList = async () => {
|
|
|
|
|
+ let res = await queryColleges();
|
|
|
|
|
+ console.log(res, "学院下拉列表数据");
|
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
|
+ collegeData.value = res.data;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// 入学年下拉列表数据
|
|
|
|
|
+const collegeChange = async (val) => {
|
|
|
let params = {
|
|
let params = {
|
|
|
- accountId: sessionStorage.getItem("accountId"),
|
|
|
|
|
- schoolId: searchInput.schoolId,
|
|
|
|
|
- buildId: searchInput.buildId,
|
|
|
|
|
- dormitoryId: searchInput.dormitoryId,
|
|
|
|
|
- sex: searchInput.sex,
|
|
|
|
|
- status: searchInput.status,
|
|
|
|
|
- collegeId: searchInput.collegeId ? searchInput.collegeId : "",
|
|
|
|
|
- retentionState: searchInput.retentionState,
|
|
|
|
|
|
|
+ collegeId: val,
|
|
|
};
|
|
};
|
|
|
- // let res = await https.getBlob(
|
|
|
|
|
- // "/welcome/api/welcome-dormitory/welcomeDormitoryExport",
|
|
|
|
|
- // "params",
|
|
|
|
|
- // params
|
|
|
|
|
- // );
|
|
|
|
|
- // console.log(res, "寝室导出");
|
|
|
|
|
- // let name = `寝室信息管理`;
|
|
|
|
|
- // var content = res;
|
|
|
|
|
- // var datas = new Blob([content]);
|
|
|
|
|
- // var downloadUrl = window.URL.createObjectURL(datas);
|
|
|
|
|
- // var anchor = document.createElement("a");
|
|
|
|
|
- // anchor.href = downloadUrl;
|
|
|
|
|
- // anchor.download = name + ".xlsx";
|
|
|
|
|
- // anchor.click();
|
|
|
|
|
- // window.URL.revokeObjectURL(datas);
|
|
|
|
|
- // ElMessage({
|
|
|
|
|
- // type: "success",
|
|
|
|
|
- // showClose: true,
|
|
|
|
|
- // message: "导出成功",
|
|
|
|
|
- // center: true,
|
|
|
|
|
- // });
|
|
|
|
|
-};
|
|
|
|
|
-// 楼栋导入 (--------------------------------------------------)
|
|
|
|
|
-const importBtn = () => {
|
|
|
|
|
- buildImportVisible.value = true;
|
|
|
|
|
-};
|
|
|
|
|
-// 模板下载
|
|
|
|
|
-const templateDown = async () => {
|
|
|
|
|
- // let res = await https.get(
|
|
|
|
|
- // "/welcome/api/welcome-dormitory/downloadDormitoryExcel",
|
|
|
|
|
- // "params"
|
|
|
|
|
- // );
|
|
|
|
|
- // console.log(res, "模板下载");
|
|
|
|
|
- // if (res.code == 200) {
|
|
|
|
|
- // window.location.href = res.data;
|
|
|
|
|
- // } else {
|
|
|
|
|
- // ElMessage({
|
|
|
|
|
- // type: "error",
|
|
|
|
|
- // showClose: true,
|
|
|
|
|
- // message: res.message,
|
|
|
|
|
- // center: true,
|
|
|
|
|
- // });
|
|
|
|
|
- // }
|
|
|
|
|
|
|
+ let res = await queryPeriods(params);
|
|
|
|
|
+ console.log(res, "入学年下拉列表数据");
|
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
|
+ periodData.value = res.data;
|
|
|
|
|
+
|
|
|
|
|
+ searchInput.periodId = ""; // 入学年
|
|
|
|
|
+ majorData.value = []; // 专业
|
|
|
|
|
+ searchInput.majorId = ""; // 专业
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
};
|
|
};
|
|
|
-// 移出照片
|
|
|
|
|
-const projectImportRemove = (uploadFile, uploadFiles) => {
|
|
|
|
|
- console.log(uploadFile, uploadFiles);
|
|
|
|
|
- buildFile.value = "";
|
|
|
|
|
|
|
+
|
|
|
|
|
+// 专业下拉列表数据
|
|
|
|
|
+const periodChange = async (val) => {
|
|
|
|
|
+ let params = {
|
|
|
|
|
+ periodId: val,
|
|
|
|
|
+ };
|
|
|
|
|
+ let res = await queryMajors(params);
|
|
|
|
|
+ console.log(res, "专业下拉列表数据");
|
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
|
+ majorData.value = res.data;
|
|
|
|
|
+ searchInput.majorId = ""; // 班级
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-// 导入项目
|
|
|
|
|
-const projectImportConfirm = async () => {
|
|
|
|
|
- buildImportLoading.value = true;
|
|
|
|
|
- let data = new FormData();
|
|
|
|
|
- data.set("file", buildFile.value);
|
|
|
|
|
- // let res = await https.post(
|
|
|
|
|
- // "/welcome/api/welcome-dormitory/importDormitoryExcel",
|
|
|
|
|
- // "data",
|
|
|
|
|
- // data
|
|
|
|
|
- // );
|
|
|
|
|
- // console.log(res, "导入项目");
|
|
|
|
|
- // if (res.code == 200) {
|
|
|
|
|
- // buildImportVisible.value = false;
|
|
|
|
|
-
|
|
|
|
|
- // buildImportLoading.value = false;
|
|
|
|
|
- // getList();
|
|
|
|
|
- // ElMessage({
|
|
|
|
|
- // type: "success",
|
|
|
|
|
- // showClose: true,
|
|
|
|
|
- // message: res.message,
|
|
|
|
|
- // center: true,
|
|
|
|
|
- // });
|
|
|
|
|
- // } else {
|
|
|
|
|
- // ElMessage({
|
|
|
|
|
- // type: "error",
|
|
|
|
|
- // showClose: true,
|
|
|
|
|
- // message: res.message,
|
|
|
|
|
- // center: true,
|
|
|
|
|
- // });
|
|
|
|
|
- // }
|
|
|
|
|
|
|
+// 在校经历下拉列表数据
|
|
|
|
|
+const educationList = async () => {
|
|
|
|
|
+ let res = await queryEducations();
|
|
|
|
|
+ console.log(res, "在校经历下拉列表数据");
|
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
|
+ educationData.value = res.data;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+// 审核状态下拉列表数据
|
|
|
|
|
+const passList = async () => {
|
|
|
|
|
+ let res = await queryPassTypes();
|
|
|
|
|
+ console.log(res, "审核状态下拉列表数据");
|
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
|
+ passData.value = res.data;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
};
|
|
};
|
|
|
-const cancelProjectImport = () => {
|
|
|
|
|
- buildImportVisible.value = false;
|
|
|
|
|
- if (buildRef.value) {
|
|
|
|
|
- buildRef.value.clearFiles();
|
|
|
|
|
- buildFile.value = null;
|
|
|
|
|
|
|
+// 毕业年份下拉列表数据
|
|
|
|
|
+const graduateList = async () => {
|
|
|
|
|
+ let res = await queryGraduate();
|
|
|
|
|
+ console.log(res, "毕业年份下拉列表数据");
|
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
|
+ graduateData.value = res.data;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
onBeforeMount(() => {
|
|
onBeforeMount(() => {
|
|
|
- // getList();
|
|
|
|
|
- // schoolList();
|
|
|
|
|
- // collegeList();
|
|
|
|
|
|
|
+ getList();
|
|
|
|
|
+ collegeList();
|
|
|
|
|
+ educationList();
|
|
|
|
|
+ passList();
|
|
|
|
|
+ graduateList();
|
|
|
});
|
|
});
|
|
|
onUnmounted(() => {
|
|
onUnmounted(() => {
|
|
|
// document.removeEventListener("keyup", Enters);
|
|
// document.removeEventListener("keyup", Enters);
|