修改了大部分会议中提出的问题
This commit is contained in:
parent
3cf8eaa543
commit
b502559b6e
@ -7,13 +7,17 @@ import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.exception.job.TaskException;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.framework.web.service.SysRegisterService;
|
||||
//import com.ruoyi.cms.task.HitTask;
|
||||
import com.ruoyi.quartz.controller.SysJobController;
|
||||
import com.ruoyi.quartz.domain.SysJob;
|
||||
import org.quartz.SchedulerException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -30,6 +34,12 @@ public class HitCompetitionStudentInfoController extends BaseController {
|
||||
@Autowired
|
||||
private IHitCompetitionStudentInfoService hitCompetitionStudentInfoService;
|
||||
|
||||
// @Autowired
|
||||
// private HitTask hitTask;
|
||||
|
||||
@Autowired
|
||||
private SysJobController sysJobController;
|
||||
|
||||
|
||||
/**
|
||||
* 查询大赛学生列表
|
||||
@ -136,4 +146,25 @@ public class HitCompetitionStudentInfoController extends BaseController {
|
||||
public AjaxResult getTeamMateInfoByStuId(){
|
||||
return AjaxResult.success(hitCompetitionStudentInfoService.selectTeamMateInfoByStuId());
|
||||
}
|
||||
|
||||
@Log(title = "修改个人赛时间", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/updateTime")
|
||||
public AjaxResult updateTime(@RequestBody LocalDateTime time) {
|
||||
System.out.println("接收到的时间"+time);
|
||||
SysJob job = new SysJob();
|
||||
job.setInvokeTarget("hitTask.scheduleTask");
|
||||
//将time转化为cron表达式,包含年
|
||||
job.setRemark("修改个人赛时间");
|
||||
job.setStatus("0");
|
||||
job.setJobId(4L);
|
||||
job.setCronExpression("0 "+time.getSecond()+" "+time.getMinute()+" "+time.getHour()+" * * ?");
|
||||
try {
|
||||
sysJobController.edit(job);
|
||||
} catch (SchedulerException e) {
|
||||
} catch (TaskException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
// hitTask.scheduleTask();
|
||||
return success(time);
|
||||
}
|
||||
}
|
||||
|
@ -50,4 +50,8 @@ public class BaseInfo extends BaseEntity
|
||||
|
||||
/** 是否可以报名 */
|
||||
private String registerStatus;
|
||||
|
||||
/** 技术支持手机号 */
|
||||
@Excel(name = "技术支持手机号")
|
||||
private String technologyNumber;
|
||||
}
|
||||
|
@ -65,4 +65,10 @@ public interface HitCompetitionStudentInfoMapper extends BaseMapper<HitCompetiti
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteHitCompetitionStudentInfoByIds(String[] ids);
|
||||
|
||||
/**
|
||||
* 将学校不足15名的参赛人员全部设置为可以参加地区选拔
|
||||
* @return
|
||||
*/
|
||||
public int updateStudentByLessThan();
|
||||
}
|
||||
|
@ -167,7 +167,10 @@ public class HitRegistrationTeachInfoServiceImpl implements IHitRegistrationTeac
|
||||
validateCaptcha(username, user.getCode(), user.getUuid());
|
||||
}
|
||||
|
||||
if (StringUtils.isEmpty(username)) {
|
||||
boolean validPhoneNumber = isValidPhoneNumber(username);
|
||||
if (!validPhoneNumber) {
|
||||
msg = "手机号码格式不正确";
|
||||
}else if (StringUtils.isEmpty(username)) {
|
||||
msg = "用户名不能为空";
|
||||
} else if (StringUtils.isEmpty(password)) {
|
||||
msg = "用户密码不能为空";
|
||||
@ -239,6 +242,13 @@ public class HitRegistrationTeachInfoServiceImpl implements IHitRegistrationTeac
|
||||
throw new CaptchaException();
|
||||
}
|
||||
}
|
||||
|
||||
// 方法用于判断是否是有效的手机号
|
||||
public static boolean isValidPhoneNumber(String phoneNumber) {
|
||||
// 中国手机号正则表达式
|
||||
String regex = "^1[3-9]\\d{9}$";
|
||||
return phoneNumber != null && phoneNumber.matches(regex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -6,9 +6,12 @@ spring:
|
||||
druid:
|
||||
# 主库数据源
|
||||
master:
|
||||
url: jdbc:mysql://61.156.90.46:3360/hgd_website?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&allowMultiQueries=true
|
||||
username: obrhgd
|
||||
password: Obr7890&*()
|
||||
# url: jdbc:mysql://61.156.90.46:3360/hgd_website?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&allowMultiQueries=true
|
||||
url: jdbc:mysql://localhost:3306/hgd_website?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&allowMultiQueries=true
|
||||
# username: obrhgd
|
||||
username: root
|
||||
# password: Obr7890&*()
|
||||
password: 123456
|
||||
# master:
|
||||
# url: jdbc:mysql://localhost:3306/ry-cms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||
# username: root
|
||||
|
@ -16,7 +16,7 @@ ruoyi:
|
||||
# 开发环境配置
|
||||
server:
|
||||
# 服务器的HTTP端口,默认为8080
|
||||
port: 8081
|
||||
port: 8080
|
||||
servlet:
|
||||
# 应用的访问路径
|
||||
context-path: /hgdWebsite
|
||||
@ -74,7 +74,7 @@ spring:
|
||||
# 数据库索引
|
||||
database: 9
|
||||
# 密码
|
||||
password:
|
||||
password: 123456
|
||||
# 连接超时时间
|
||||
timeout: 10s
|
||||
lettuce:
|
||||
|
@ -17,7 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectBaseInfoVo">
|
||||
select id, web_name, contact_number, contact_email, address, web_img, record_info, copyright_info, register_status from base_info
|
||||
select id, web_name, contact_number, contact_email, address, web_img, record_info, copyright_info, register_status, technology_number from base_info
|
||||
</sql>
|
||||
|
||||
|
||||
|
@ -133,6 +133,20 @@
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
<update id="updateStudentByLessThan">
|
||||
UPDATE hit_competition_student_info
|
||||
SET is_preliminary = 1
|
||||
WHERE school_name IN (
|
||||
SELECT school_name
|
||||
FROM (
|
||||
SELECT school_name
|
||||
FROM hit_competition_student_info
|
||||
GROUP BY school_name
|
||||
HAVING COUNT(*) < 15
|
||||
) AS temp
|
||||
);
|
||||
|
||||
</update>
|
||||
|
||||
<delete id="deleteHitCompetitionStudentInfoById" parameterType="String">
|
||||
delete from hit_competition_student_info where id = #{id}
|
||||
|
@ -6,9 +6,12 @@ spring:
|
||||
druid:
|
||||
# 主库数据源
|
||||
master:
|
||||
url: jdbc:mysql://122.51.230.86:3306/hgd_website?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||
username: hgdRoot
|
||||
password: qqzcy@1014
|
||||
# url: jdbc:mysql://61.156.90.46:3360/hgd_website?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&allowMultiQueries=true
|
||||
url: jdbc:mysql://localhost:3306/hgd_website?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&allowMultiQueries=true
|
||||
# username: obrhgd
|
||||
username: root
|
||||
# password: Obr7890&*()
|
||||
password: 123456
|
||||
# master:
|
||||
# url: jdbc:mysql://localhost:3306/ry-cms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||
# username: root
|
||||
|
@ -16,10 +16,10 @@ ruoyi:
|
||||
# 开发环境配置
|
||||
server:
|
||||
# 服务器的HTTP端口,默认为8080
|
||||
port: 8089
|
||||
port: 8080
|
||||
servlet:
|
||||
# 应用的访问路径
|
||||
context-path: /
|
||||
context-path: /hgdWebsite
|
||||
tomcat:
|
||||
# tomcat的URI编码
|
||||
uri-encoding: UTF-8
|
||||
@ -72,9 +72,9 @@ spring:
|
||||
# 端口,默认为6379
|
||||
port: 6379
|
||||
# 数据库索引
|
||||
database: 0
|
||||
database: 9
|
||||
# 密码
|
||||
password:
|
||||
password: 123456
|
||||
# 连接超时时间
|
||||
timeout: 10s
|
||||
lettuce:
|
||||
|
@ -35,6 +35,12 @@
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.ruoyi</groupId>-->
|
||||
<!-- <artifactId>ruoyi-admin</artifactId>-->
|
||||
<!-- <version>3.8.8</version>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
@ -0,0 +1,20 @@
|
||||
//package com.ruoyi.quartz.task;
|
||||
//
|
||||
//
|
||||
//import com.ruoyi.cms.mapper.HitCompetitionStudentInfoMapper;
|
||||
//import org.springframework.stereotype.Component;
|
||||
//
|
||||
//
|
||||
//@Component("hitTask")
|
||||
//public class HitTask {
|
||||
//
|
||||
// private HitCompetitionStudentInfoMapper hitCompetitionStudentInfoMapper;
|
||||
//
|
||||
//
|
||||
// public void scheduleTask() {
|
||||
// // 这里是你要执行的任务
|
||||
// System.out.println("用户选定的时间到了,执行任务...");
|
||||
//// hitCompetitionStudentInfoMapper.updateStudentByLessThan();
|
||||
//
|
||||
// }
|
||||
//}
|
@ -4,6 +4,8 @@ VUE_APP_TITLE = 虚拟仿真实验教学中心
|
||||
# 开发环境配置
|
||||
ENV = 'development'
|
||||
# 若依管理系统/开发环境
|
||||
VUE_APP_BASE_API = 'http://192.168.31.25:8080'
|
||||
# VUE_APP_BASE_API = 'http://192.168.31.25:8080'
|
||||
VUE_APP_BASE_API = 'http://localhost:8080/hgdWebsite'
|
||||
# VUE_APP_BASE_API = '/dev-api'
|
||||
# 路由懒加载
|
||||
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
||||
|
@ -42,3 +42,11 @@ export function delInfo(id) {
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
// 修改个人赛时间
|
||||
export function updateTime(time) {
|
||||
return request({
|
||||
url: '/system/hit_stu_info/updateTime',
|
||||
data: time,
|
||||
method: 'put'
|
||||
})
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div class="baseInfo">
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
|
||||
<el-form-item label="名称" prop="webName">
|
||||
<el-input v-model="form.webName" placeholder="请输入名称"/>
|
||||
</el-form-item>
|
||||
@ -11,6 +11,9 @@
|
||||
<el-form-item label="联系邮箱" prop="contactEmail">
|
||||
<el-input v-model="form.contactEmail" placeholder="请输入联系邮箱"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="技术支持手机号" prop="technologyNumber">
|
||||
<el-input v-model="form.technologyNumber" placeholder="请输入技术支持手机号"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="地址" prop="address">
|
||||
<el-input v-model="form.address" placeholder="请输入地址"/>
|
||||
</el-form-item>
|
||||
|
@ -3,21 +3,11 @@
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
|
||||
<el-form-item label="学生姓名" prop="stuName">
|
||||
<el-input
|
||||
v-model="queryParams.stuName"
|
||||
placeholder="请输入学生姓名"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.stuName" placeholder="请输入学生姓名" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="院系名称" prop="collegeName">
|
||||
<el-input
|
||||
v-model="queryParams.collegeName"
|
||||
placeholder="请输入院系名称"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.collegeName" placeholder="请输入院系名称" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
@ -25,30 +15,27 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<!-- <template> -->
|
||||
时间<el-date-picker v-model="selectedTime" type="datetime" placeholder="选择时间" @change="onTimeSelect"></el-date-picker>
|
||||
<!-- </template> -->
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
|
||||
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
|
||||
>删除</el-button>
|
||||
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple"
|
||||
@click="handleDelete">删除</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button-->
|
||||
<!-- type="warning"-->
|
||||
<!-- plain-->
|
||||
<!-- icon="el-icon-download"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- @click="handleExport"-->
|
||||
<!-- v-hasPermi="['system:info:export']"-->
|
||||
<!-- >导出</el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button-->
|
||||
<!-- type="warning"-->
|
||||
<!-- plain-->
|
||||
<!-- icon="el-icon-download"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- @click="handleExport"-->
|
||||
<!-- v-hasPermi="['system:info:export']"-->
|
||||
<!-- >导出</el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
@ -63,60 +50,40 @@
|
||||
<el-table-column label="所属赛区" align="center" prop="division" />
|
||||
<el-table-column label="手机号" align="center" prop="phoneNumber" />
|
||||
<el-table-column label="邮箱" align="center" prop="email" />
|
||||
<el-table-column label="学生证" align="center" prop="studentIdCard" >
|
||||
<el-table-column label="学生证" align="center" prop="studentIdCard">
|
||||
<template slot-scope="scope">
|
||||
<image-preview :src="scope.row.studentIdCard" :width="50" :height="50"/>
|
||||
<image-preview :src="scope.row.studentIdCard" :width="50" :height="50" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="个人选拔赛分数" align="center" prop="trialsScore" width="300">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number v-model="scope.row.trialsScore" :precision="2" :step="0.1" ></el-input-number>
|
||||
<el-input-number v-model="scope.row.trialsScore" :precision="2" :step="0.1"></el-input-number>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否进入初赛" align="center" prop="isPreliminary" >
|
||||
<el-table-column label="是否进入初赛" align="center" prop="isPreliminary">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="!scope.row.isPreliminary">待审核</div>
|
||||
<div v-else-if="scope.row.isPreliminary==1">已入选</div>
|
||||
<div v-else-if="scope.row.isPreliminary == 1">已入选</div>
|
||||
<div v-else>未入选</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
v-if="!scope.row.isPreliminary||scope.row.isPreliminary==0"
|
||||
@click="updateStatus(scope.row,1)"
|
||||
>入选</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-edit"
|
||||
v-if="!scope.row.isPreliminary || scope.row.isPreliminary == 0"
|
||||
@click="updateStatus(scope.row, 1)">入选</el-button>
|
||||
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
v-else
|
||||
icon="el-icon-edit"
|
||||
@click="updateStatus(scope.row,0)"
|
||||
>取消入选</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
|
||||
>删除</el-button>
|
||||
<el-button size="mini" type="text" v-else icon="el-icon-edit"
|
||||
@click="updateStatus(scope.row, 0)">取消入选</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
||||
@pagination="getList" />
|
||||
|
||||
<!-- 添加或修改大赛学生对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
@ -170,12 +137,13 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listInfo, getInfo, delInfo, addInfo, updateInfo } from "@/api/hit/stuInfo";
|
||||
import { listInfo, getInfo, delInfo, addInfo, updateInfo, updateTime } from "@/api/hit/stuInfo";
|
||||
|
||||
export default {
|
||||
name: "Info",
|
||||
data() {
|
||||
return {
|
||||
selectedTime: null, // 用户选择的个人赛截止时间
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
@ -302,7 +270,7 @@ export default {
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length!==1
|
||||
this.single = selection.length !== 1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
@ -322,7 +290,7 @@ export default {
|
||||
});
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
updateStatus(data,type) {
|
||||
updateStatus(data, type) {
|
||||
data.isPreliminary = type
|
||||
updateInfo(data).then(response => {
|
||||
this.$modal.msgSuccess("成功");
|
||||
@ -352,18 +320,47 @@ export default {
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除大赛学生编号为"' + ids + '"的数据项?').then(function() {
|
||||
this.$modal.confirm('是否确认删除大赛学生编号为"' + ids + '"的数据项?').then(function () {
|
||||
return delInfo(ids);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
}).catch(() => { });
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('system/info/export', {
|
||||
...this.queryParams
|
||||
}, `info_${new Date().getTime()}.xlsx`)
|
||||
},
|
||||
|
||||
// 当用户选择时间后调用该方法
|
||||
onTimeSelect() {
|
||||
|
||||
// const date = new Date(this.selectedTime);
|
||||
// const year = date.getFullYear();
|
||||
// const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||
// const day = String(date.getDate()).padStart(2, '0');
|
||||
// const hours = String(date.getHours()).padStart(2, '0');
|
||||
// const minutes = String(date.getMinutes()).padStart(2, '0');
|
||||
// const seconds = String(date.getSeconds()).padStart(2, '0');
|
||||
|
||||
// const formattedDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
||||
// this.selectedTime = formattedDate; // 去掉最后的 'Z'
|
||||
console.log("选择的时间", this.selectedTime);
|
||||
if (this.selectedTime) {
|
||||
this.sendTimeToBackend(this.selectedTime);
|
||||
}
|
||||
},
|
||||
// 向后端发送选定的时间
|
||||
sendTimeToBackend(time) {
|
||||
updateTime(time)
|
||||
.then(response => {
|
||||
this.$message.success('定时任务设置成功');
|
||||
})
|
||||
.catch(error => {
|
||||
this.$message.error('请求失败,请检查网络');
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
<template>
|
||||
<div class="index-footer">
|
||||
<div class="footer">
|
||||
@ -8,27 +7,32 @@
|
||||
<img :src="baseInfo.webImg" />
|
||||
</div>
|
||||
<div class="logo-size">
|
||||
{{this.baseInfo.webName}}
|
||||
{{ this.baseInfo.webName }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-contact">
|
||||
<div class="p">
|
||||
|
||||
<img src="../../../assets/gw/tel.png" alt="">
|
||||
<div class="pp">电话:{{this.baseInfo.contactNumber}}</div>
|
||||
<div class="pp">电话:{{ this.baseInfo.contactNumber }}</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="p">
|
||||
|
||||
<img src="../../../assets/gw/email.png" alt="">
|
||||
<div class="pp">邮箱:{{this.baseInfo.contactEmail}}</div>
|
||||
<div class="pp">邮箱:{{ this.baseInfo.contactEmail }}</div>
|
||||
|
||||
</div>
|
||||
<div class="p">
|
||||
|
||||
<img src="../../../assets/gw/address.png" alt="">
|
||||
<div class="pp">地址:{{ this.baseInfo.address }}</div>
|
||||
</div>
|
||||
|
||||
<div class="p" style="margin-top: 15px;">
|
||||
<img src="../../../assets/gw/tel.png" alt="">
|
||||
<div class="pp">技术支持:{{ this.baseInfo.technologyNumber }}</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -61,13 +65,13 @@ import { getBaseInfo, } from '@/api/gw/home'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
baseInfo:"",
|
||||
baseInfo: "",
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getWebBaseInfo()
|
||||
},
|
||||
methods:{
|
||||
methods: {
|
||||
getWebBaseInfo() {
|
||||
getBaseInfo().then(res => {
|
||||
this.baseInfo = res.data
|
||||
@ -75,7 +79,7 @@ export default {
|
||||
})
|
||||
|
||||
},
|
||||
toTop(){
|
||||
toTop() {
|
||||
window.scrollTo({ top: 0, behavior: 'smooth' });
|
||||
}
|
||||
}
|
||||
@ -100,8 +104,7 @@ export default {
|
||||
/* align-items: center; */
|
||||
}
|
||||
|
||||
.index-footer .footer .logo .footer-contact {
|
||||
}
|
||||
.index-footer .footer .logo .footer-contact {}
|
||||
|
||||
.index-footer .footer .logo .footer-contact .p {
|
||||
display: inline-block;
|
||||
@ -211,12 +214,14 @@ export default {
|
||||
line-height: 18px;
|
||||
|
||||
}
|
||||
|
||||
.logo-box {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
background: #fff;
|
||||
}
|
||||
.logo-box img{
|
||||
|
||||
.logo-box img {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
}
|
||||
@ -228,6 +233,7 @@ export default {
|
||||
margin-left: 20px;
|
||||
|
||||
}
|
||||
|
||||
.d-s {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
@ -48,7 +48,7 @@
|
||||
<div>
|
||||
<el-form :model="loginForm" ref="loginForm">
|
||||
<el-form-item prop="username">
|
||||
<el-input placeholder="学号" v-model="loginForm.username" ></el-input>
|
||||
<el-input placeholder="手机号" v-model="loginForm.username" ></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="password">
|
||||
<el-input placeholder="密码" v-model="loginForm.password" type="password"></el-input>
|
||||
@ -87,7 +87,7 @@
|
||||
<el-input placeholder="姓名" v-model="registerForm.nickName" type="text"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="username">
|
||||
<el-input placeholder="学号(登录账号)" v-model="registerForm.username" type="text"></el-input>
|
||||
<el-input placeholder="手机号(登录账号)" v-model="registerForm.username" type="text"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="password">
|
||||
@ -357,22 +357,32 @@ export default {
|
||||
submitRegister() {
|
||||
this.$refs.registerForm.validate(valid => {
|
||||
if (valid) {
|
||||
// 验证用户名是否为手机号
|
||||
const phoneRegex = /^1[3-9]\d{9}$/;
|
||||
if (!phoneRegex.test(this.registerForm.username)) {
|
||||
this.$alert("<font color='red'>请输入有效的手机号。</font>", '系统提示', {
|
||||
dangerouslyUseHTMLString: true,
|
||||
type: 'error'
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
register(this.registerForm).then(res => {
|
||||
const username = this.registerForm.username;
|
||||
this.registerDialog = false
|
||||
this.registerDialog = false;
|
||||
this.$alert("<font color='red'>恭喜你,您的账号 " + username + " 注册成功!</font>", '系统提示', {
|
||||
dangerouslyUseHTMLString: true,
|
||||
type: 'success'
|
||||
}).then(() => {
|
||||
this.$router.push("/virtually");
|
||||
}).catch(() => {});
|
||||
}).catch(() => { });
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
if (this.captchaEnabled) {
|
||||
this.getCode();
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
|
@ -27,15 +27,15 @@
|
||||
<div>
|
||||
<el-steps :active="active" finish-status="success" align-center>
|
||||
<el-step title="个人选拔赛报名"></el-step>
|
||||
<el-step title="初赛报名"></el-step>
|
||||
<el-step title="地区选拔赛报名"></el-step>
|
||||
<el-step title="确认报名团队"></el-step>
|
||||
<el-step title="初赛报名结果"></el-step>
|
||||
<el-step title="地区选拔赛报名结果"></el-step>
|
||||
<el-step title="比赛资料上传"></el-step>
|
||||
</el-steps>
|
||||
<div class="step-box" v-if="active == 0">
|
||||
<div class="step-box-title">
|
||||
<el-form label-width="80px" :model="signUpForm" :rules="rules" ref="form">
|
||||
<el-form-item label="学号" prop="studentId" >
|
||||
<el-form-item label="手机号" prop="studentId" >
|
||||
<el-input v-model="signUpForm.studentId" disabled></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名" prop="stuName">
|
||||
@ -84,7 +84,7 @@
|
||||
<el-form-item label="邮箱" prop="email">
|
||||
<el-input v-model="signUpForm.email"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="学生证" prop="studentIdCard">
|
||||
<el-form-item label="学生证、卡" prop="studentIdCard" label-width="95px">
|
||||
<image-upload :limit="1" v-model="signUpForm.studentIdCard"></image-upload>
|
||||
</el-form-item>
|
||||
|
||||
@ -95,12 +95,13 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="step-box" v-if="active == 1" style="position: relative" >
|
||||
<div class="step-box-title" style="font-size: 20px;margin-top: 8%" v-if="signUpForm.trialsScore == null">个人选拔赛成绩未出,请耐心等待</div>
|
||||
<!-- <div class="step-box-title" style="font-size: 20px;margin-top: 8%" v-if="signUpForm.trialsScore == null">个人选拔赛成绩未出,请耐心等待</div> -->
|
||||
<div class="step-box-title" style="font-size: 20px;margin-top: 8%" v-if="signUpForm.trialsScore == null">成绩仅供参考,最终选择由指导老师和领队老师做决定</div>
|
||||
<div class="step-box-title" style="font-size: 20px;margin-top: 8%" v-if="signUpForm.trialsScore != null && signUpForm.isPreliminary == false">
|
||||
很遗憾,个人选拔赛未通过,您的个人成绩为 : {{ signUpForm.trialsScore }}</div>
|
||||
<div style="position: absolute;left: 15%; top: 30%" v-if="signUpForm.trialsScore" >
|
||||
<div style="font-size: 24px">
|
||||
初赛成绩:
|
||||
地区选拔赛成绩:
|
||||
</div>
|
||||
<div style="font-size: 24px;color:#ff0000;margin-top: 15px" >
|
||||
{{ signUpForm.trialsScore }}
|
||||
@ -170,7 +171,8 @@
|
||||
<el-input v-model="preliminaryForm.sampleAddress"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="uploadFile">
|
||||
<file-upload :fileSize="20" :fileType="['doc','docx','pdf','zip']" v-model="preliminaryForm.uploadFile"></file-upload>
|
||||
<!-- <file-upload :fileSize="20" :fileType="['doc','docx','pdf','zip']" v-model="preliminaryForm.uploadFile"></file-upload> -->
|
||||
<file-upload :fileSize="20" :fileType="['pdf']" v-model="preliminaryForm.uploadFile"></file-upload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
@ -237,7 +239,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="step-box" v-if="active == 3">
|
||||
<div class="step-box-title" style="font-size: 20px;margin-top: 8%">初赛报名提交成功,请通过大赛通知获取通过信息</div>
|
||||
<div class="step-box-title" style="font-size: 20px;margin-top: 8%">地区选拔赛报名提交成功,请通过大赛通知获取通过信息</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -369,7 +371,7 @@ export default {
|
||||
{ required: true, message: "学校名称不能为空", trigger: "blur" }
|
||||
],
|
||||
studentId: [
|
||||
{ required: true, message: "学号不能为空", trigger: "blur" }
|
||||
{ required: true, message: "手机号不能为空", trigger: "blur" }
|
||||
],
|
||||
collegeName: [
|
||||
{ required: true, message: "院系名称不能为空", trigger: "blur" }
|
||||
@ -381,7 +383,7 @@ export default {
|
||||
{ required: true, message: "专业名称不能为空", trigger: "blur" }
|
||||
],
|
||||
studentIdCard: [
|
||||
{ required: true, message: "学生证不能为空", trigger: "blur" }
|
||||
{ required: true, message: "学生证、卡不能为空", trigger: "blur" }
|
||||
],
|
||||
phoneNumber: [
|
||||
{ required: true, message: "手机号不能为空", trigger: "blur" }
|
||||
@ -625,7 +627,7 @@ export default {
|
||||
if (valid) {
|
||||
PreliminaryRegistration(this.preliminaryForm).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.$modal.msgSuccess("初赛报名提交成功")
|
||||
this.$modal.msgSuccess("地区选拔赛报名提交成功")
|
||||
this.fetchRegistrationInformation()
|
||||
} else {
|
||||
this.$modal.msgError("报名失败")
|
||||
|
@ -35,7 +35,7 @@ module.exports = {
|
||||
proxy: {
|
||||
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
||||
[process.env.VUE_APP_BASE_API]: {
|
||||
target: `http://localhost:8080`,
|
||||
target: `http://localhost:8081`,
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
['^' + process.env.VUE_APP_BASE_API]: ''
|
||||
|
Loading…
Reference in New Issue
Block a user