dev_review V2.5.3
yujialong 6 months ago
parent c11eb9ca6b
commit 6c2437e6f3
  1. 8
      src/views/match/add/step3.vue
  2. 4
      src/views/match/manage/abnormalTeam.vue
  3. 15
      src/views/match/manage/matchSignup.vue
  4. 356
      src/views/user/AddUser.vue

@ -99,8 +99,10 @@
<el-dialog title="提示" :visible.sync="tipsVisible" width="500px" :close-on-click-modal="false" <el-dialog title="提示" :visible.sync="tipsVisible" width="500px" :close-on-click-modal="false"
custom-class="tips-dia"> custom-class="tips-dia">
<p style="margin-bottom: 15px;line-height: 1.6"> <p style="font-size: 17px;text-align: center;color: #9076ff;">编辑发布成功</p>
团队赛发布成功若有修改报名时间赛程与规则修改不会影响已经分配的阶段参赛人员但后面加入报名的将不再自动分配如需将已分配的重新分配和新加入报名的进行分配请前往报名人员列表设置全部重新分配</p> <p style="margin: 5px 0px 10px;line-height: 1.6">
温馨提示报名结束后更改报名时间或赛程规则不影响已分配的阶段参赛人员且后续添加的人员不会自动分配如需重新自动分配所有团队请到报名列表执行全员重新分配操作
</p>
<el-checkbox v-model="closeStatus">不再提示</el-checkbox> <el-checkbox v-model="closeStatus">不再提示</el-checkbox>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
@ -346,7 +348,7 @@ export default {
const now = await Util.getNow() const now = await Util.getNow()
// //
if (new Date(this.$parent.$refs.step1.form.signUpEndTime) > now) { if (new Date(this.$parent.$refs.step1.form.signUpEndTime) > now) {
this.$confirm('<p>团队赛发布成功,是否要自动分配阶段参赛人员?</p><p style="margin-top: 10px;color: #a9a9a9;">(点击“是”将会在报名结束后给报名的团队自动分配阶段参赛人员</p>', '提示', { this.$confirm('<p>团队赛发布成功,是否要启用自动分配阶段参赛人员功能?</p><p style="margin-top: 10px;color: #a9a9a9;">(点击“是”将会在报名截止时清空已有分配,并为所有团队重新自动分配。)</p>', '提示', {
confirmButtonText: '是', confirmButtonText: '是',
cancelButtonText: '否', cancelButtonText: '否',
type: 'success', type: 'success',

@ -157,7 +157,9 @@ export default {
token: sessionStorage.getItem('token'), token: sessionStorage.getItem('token'),
id: +this.$route.query.id, id: +this.$route.query.id,
info: { info: {
completeCompetitionSetup: {} completeCompetitionSetup: {
competitionType: 1,
}
}, },
isDisable: this.$route.query.isDisable ? +this.$route.query.isDisable : '', isDisable: this.$route.query.isDisable ? +this.$route.query.isDisable : '',
statusList: [ statusList: [

@ -17,10 +17,9 @@
</li> </li>
</ul> </ul>
<div> <div>
<el-button v-if="loaded && info.completeCompetitionSetup.competitionType" type="primary" round <el-button v-show="loaded && info.completeCompetitionSetup.competitionType" type="primary" round
:disabled="hasReport" :loading="allocating" @click="autoAllocationConfirm">{{ !notBeginSign && allocated ? :disabled="hasReport" :loading="allocating" @click="autoAllocationConfirm">{{ !notBeginSign && allocated ?
'取消' : '' '取消' : '' }}自动分配阶段成员</el-button>
}}重新自动分配阶段成员</el-button>
<el-button type="primary" round @click="batchImport">导入</el-button> <el-button type="primary" round @click="batchImport">导入</el-button>
<el-button type="primary" round @click="add" v-auth="'/match:管理:报名人员:新增'">新增</el-button> <el-button type="primary" round @click="add" v-auth="'/match:管理:报名人员:新增'">新增</el-button>
<el-button type="primary" round :loading="exporting" @click="exportAll" <el-button type="primary" round :loading="exporting" @click="exportAll"
@ -195,7 +194,9 @@ export default {
token: sessionStorage.getItem('token'), token: sessionStorage.getItem('token'),
id: +this.$route.query.id, id: +this.$route.query.id,
info: { info: {
completeCompetitionSetup: {} completeCompetitionSetup: {
competitionType: 1,
}
}, },
isDisable: this.$route.query.isDisable ? +this.$route.query.isDisable : '', isDisable: this.$route.query.isDisable ? +this.$route.query.isDisable : '',
statusList: [ statusList: [
@ -386,14 +387,14 @@ export default {
async autoAllocationConfirm () { async autoAllocationConfirm () {
// //
if (this.notBeginSign) { if (this.notBeginSign) {
this.$confirm('确定立即给所有报名的团队重新自动分配阶段成员?', '提示', { this.$confirm('<p>您确定要立即为所有已报名团队自动分配阶段参赛人员吗?</p><p style="font-size: 13px;color: #f00;">此操作将清除现有分配,并为所有团队重新分配。</p>', '提示', {
type: 'success',
closeOnClickModal: false, closeOnClickModal: false,
dangerouslyUseHTMLString: true,
}).then(async () => { }).then(async () => {
await this.$post(`${this.api.automaticAllocation}?competitionId=${this.id}`) // await this.$post(`${this.api.automaticAllocation}?competitionId=${this.id}`) //
}).catch(() => { }) }).catch(() => { })
} else { } else {
this.$confirm(this.allocated ? '确定取消重新自动分配阶段成员?' : '<p style="margin-bottom: 5px;font-size: 16px;color: #f00;">确定开启重新自动分配阶段成员?</p><p>开启后,将在报名结束后给所有报名的团队重新自动分配阶段参赛人员</p>', { this.$confirm(this.allocated ? '您确定取消自动分配阶段参赛人员功能吗?<p style="margin-top: 5px;font-size: 13px;color: #f00;">取消后,报名截止时将不再自动分配。</p>' : '<p>您确定启用自动分配阶段参赛人员功能吗?</p><p style="margin-top: 5px;font-size: 13px;color: #f00;line-height: 1.6;">启用后,报名截止时系统将清空已有分配,并为所有团队重新自动分配。</p>', {
type: 'success', type: 'success',
closeOnClickModal: false, closeOnClickModal: false,
dangerouslyUseHTMLString: true, dangerouslyUseHTMLString: true,

@ -2,11 +2,9 @@
<div> <div>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="24"> <el-col :span="24">
<el-card shadow="hover" <el-card shadow="hover" class="mgb20">
class="mgb20">
<div class="flex-between"> <div class="flex-between">
<div class="per_title" <div class="per_title" @click="goback">
@click="goback">
<i class="el-icon-arrow-left"></i> <i class="el-icon-arrow-left"></i>
<span class="per_back">返回</span> <span class="per_back">返回</span>
<span class="per_school">{{ isDetail ? '查看' : '编辑' }}用户信息</span> <span class="per_school">{{ isDetail ? '查看' : '编辑' }}用户信息</span>
@ -15,8 +13,7 @@
</el-card> </el-card>
<!-- 账号信息 --> <!-- 账号信息 -->
<el-card shadow="hover" <el-card shadow="hover" class="mgb20">
class="mgb20">
<div> <div>
<div class="flex-between mgb20 user_header"> <div class="flex-between mgb20 user_header">
<div class="flex-center"> <div class="flex-center">
@ -26,33 +23,20 @@
</div> </div>
<div> <div>
<el-form ref="form" <el-form ref="form" :model="form" :rules="rules" label-width="120px" :disabled="isDetail">
:model="form"
:rules="rules"
label-width="120px"
:disabled="isDetail">
<el-col :span="24"> <el-col :span="24">
<el-col :span="6" <el-col :span="6" :offset="5">
:offset="5"> <el-form-item prop="phone" label="个人手机">
<el-form-item prop="phone" <el-input v-model="form.phone" placeholder="请输入手机号" maxlength="11"></el-input>
label="个人手机">
<el-input v-model="form.phone"
placeholder="请输入手机号"
maxlength="11"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="email" <el-form-item prop="email" label="邮箱">
label="邮箱"> <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="11"></el-input>
<el-input v-model="form.email"
placeholder="请输入邮箱"
maxlength="11"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6" <el-col :span="6" :offset="2">
:offset="2">
<el-form-item label="唯一识别码"> <el-form-item label="唯一识别码">
<el-input v-model="form.uniqueIdentification" <el-input v-model="form.uniqueIdentification" disabled></el-input>
disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-col> </el-col>
@ -62,8 +46,7 @@
</el-card> </el-card>
<!-- 个人信息 --> <!-- 个人信息 -->
<el-card shadow="hover" <el-card shadow="hover" class="mgb20">
class="mgb20">
<div> <div>
<div class="flex-between mgb20 user_header"> <div class="flex-between mgb20 user_header">
<div class="flex-center"> <div class="flex-center">
@ -73,45 +56,26 @@
</div> </div>
<div> <div>
<el-form ref="form" <el-form ref="form" :model="form" :rules="rules" label-width="120px" :disabled="isDetail">
:model="form" <el-col :span="6" :offset="5">
:rules="rules" <el-form-item prop="userName" label="用户姓名">
label-width="120px" <el-input v-model="form.userName" placeholder="请输入"></el-input>
:disabled="isDetail">
<el-col :span="6"
:offset="5">
<el-form-item prop="userName"
label="用户姓名">
<el-input v-model="form.userName"
placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="证件类型" <el-form-item label="证件类型" prop="documentType">
prop="documentType"> <el-select value="1" clearable placeholder="请选择证件类型" style="width: 100%">
<el-select value="1" <el-option label="身份证" value="1"></el-option>
clearable
placeholder="请选择证件类型"
style="width: 100%">
<el-option label="身份证"
value="1"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6" <el-col :span="6" :offset="2">
:offset="2"> <el-form-item prop="phone" label="手机号">
<el-form-item prop="phone" <el-input v-model="form.phone" placeholder="请输入手机号" maxlength="11"></el-input>
label="手机号">
<el-input v-model="form.phone"
placeholder="请输入手机号"
maxlength="11"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="idNumber" <el-form-item prop="idNumber" label="证件号码">
label="证件号码"> <el-input v-model="form.idNumber" placeholder="请输入证件号码" maxlength="18"></el-input>
<el-input v-model="form.idNumber"
placeholder="请输入证件号码"
maxlength="18"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
@ -120,8 +84,7 @@
</el-card> </el-card>
<!-- 已绑定系统 --> <!-- 已绑定系统 -->
<el-card shadow="hover" <el-card shadow="hover" class="mgb20">
class="mgb20">
<div class="flex-between mgb20"> <div class="flex-between mgb20">
<div class="flex-center"> <div class="flex-center">
<p class="addhr_tag"></p> <p class="addhr_tag"></p>
@ -129,54 +92,23 @@
</div> </div>
</div> </div>
<el-table :data="platformList" <el-table :data="platformList" class="table" stripe header-align="center" row-key="accountId">
class="table" <el-table-column type="index" width="100" label="序号" align="center"></el-table-column>
stripe <el-table-column prop="platformName" label="平台名称" align="center"></el-table-column>
header-align="center" <el-table-column prop="schoolName" label="绑定组织名称" align="center"></el-table-column>
row-key="accountId"> <el-table-column prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column type="index" <el-table-column prop="workNumber" label="工号/学号" align="center"></el-table-column>
width="100" <el-table-column prop="roleName" label="角色" align="center"></el-table-column>
label="序号" <el-table-column prop="phoneBindingTime" label="绑定时间" align="center"></el-table-column>
align="center"></el-table-column> <el-table-column prop="logInNumber" label="登录次数" align="center"></el-table-column>
<el-table-column prop="platformName" <el-table-column prop="lastLoginTime" label="上一次的登录时间" align="center"></el-table-column>
label="平台名称" <el-table-column label="操作" align="center">
align="center"></el-table-column>
<el-table-column prop="schoolName"
label="绑定组织名称"
align="center"></el-table-column>
<el-table-column prop="userName"
label="姓名"
align="center"></el-table-column>
<el-table-column prop="workNumber"
label="工号/学号"
align="center"></el-table-column>
<el-table-column prop="roleName"
label="角色"
align="center"></el-table-column>
<el-table-column prop="phoneBindingTime"
label="绑定时间"
align="center"></el-table-column>
<el-table-column prop="logInNumber"
label="登录次数"
align="center"></el-table-column>
<el-table-column prop="lastLoginTime"
label="上一次的登录时间"
align="center"></el-table-column>
<el-table-column label="操作"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" <el-button type="text" @click="show(scope.row)">查看</el-button>
@click="show(scope.row)">查看</el-button> <el-button type="text" @click="del(scope.row)">删除</el-button>
<el-button type="text" <el-switch v-if="scope.row.userId !== 1" v-model="scope.row.isEnable" :active-value="1"
@click="del(scope.row)">删除</el-button> :inactive-value="0" style="margin: 0 10px 0 5px" :active-text="scope.row.isEnable ? '启用' : '禁用'"
<el-switch v-if="scope.row.userId!==1" @change="switchUser($event, scope.row, scope.$index)" v-auth="'/user:启用'"></el-switch>
v-model="scope.row.isEnable"
:active-value="1"
:inactive-value="0"
style="margin: 0 10px 0 5px"
:active-text="scope.row.isEnable ? '启用' : '禁用'"
@change="switchUser($event,scope.row,scope.$index)"
v-auth="'/user:启用'"></el-switch>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -215,8 +147,8 @@ export default {
methods: { methods: {
getdata () { getdata () {
this.$get(this.api.viewUserDetailsforNakadai, { userId: this.userId }).then(({ result }) => { this.$get(this.api.viewUserDetailsforNakadai, { userId: this.userId }).then(({ result }) => {
const info = result.hrUserInfo const info = result.hrUserInfo || {}
info.phone = result.userAccount.phone if (result.userAccount) info.phone = result.userAccount.phone
// MD51313 // MD51313
if (info.phone) info.uniqueIdentification = md5(info.phone).slice(0, 13) if (info.phone) info.uniqueIdentification = md5(info.phone).slice(0, 13)
this.form = info this.form = info
@ -245,9 +177,9 @@ export default {
this.$confirm('确定要删除吗?', '提示', { this.$confirm('确定要删除吗?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
this.$post(this.api.delUserAccounts, [row.userId]).then(res => { this.$post(this.api.delUserAccountsByNakadai, [row.accountId]).then(res => {
this.$message.success('删除成功') this.$message.success('删除成功')
this.getData() this.getdata()
}).catch(res => { }) }).catch(res => { })
}).catch(() => { }) }).catch(() => { })
}, },
@ -258,150 +190,184 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.fold { .fold {
margin-top: 20px; margin-top: 20px;
text-align: center; text-align: center;
img {
cursor: pointer; img {
&:hover { cursor: pointer;
opacity: 0.8;
} &:hover {
opacity: 0.8;
} }
}
} }
.arrowTransform { .arrowTransform {
transition: 0.5s; transition: 0.5s;
transform-origin: center; transform-origin: center;
transform: rotateZ(180deg); transform: rotateZ(180deg);
} }
.arrowTransformReturn { .arrowTransformReturn {
transition: 0.5s; transition: 0.5s;
transform-origin: center; transform-origin: center;
transform: rotateZ(0deg); transform: rotateZ(0deg);
} }
// //
.card ::v-deep .el-card { .card ::v-deep .el-card {
border-radius: 15px; border-radius: 15px;
} }
.card_m { .card_m {
margin: 10px 0 20px 0; margin: 10px 0 20px 0;
} }
::v-deep .el-dialog__title { ::v-deep .el-dialog__title {
font-weight: 600; font-weight: 600;
} }
.region ::v-deep .el-form-item__label { .region ::v-deep .el-form-item__label {
font-weight: 600; font-weight: 600;
} }
.region ::v-deep .el-input { .region ::v-deep .el-input {
width: 30%; width: 30%;
} }
.numberInput { .numberInput {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
span {
white-space: nowrap; span {
} white-space: nowrap;
}
} }
.numberInput ::v-deep .el-input { .numberInput ::v-deep .el-input {
width: 80%; width: 80%;
} }
.stu_input ::v-deep .el-input { .stu_input ::v-deep .el-input {
width: 80%; width: 80%;
} }
.radio { .radio {
margin: 0 15px 0 30px; margin: 0 15px 0 30px;
font-weight: 600; font-weight: 600;
} }
.jobNumber { .jobNumber {
margin: 10px 0; margin: 10px 0;
} }
.jobNumber ::v-deep .el-input { .jobNumber ::v-deep .el-input {
margin-left: 20px; margin-left: 20px;
} }
.icon_btn { .icon_btn {
margin: 5px 5px 15px 0; margin: 5px 5px 15px 0;
} }
.flex_start { .flex_start {
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
align-items: center; align-items: center;
} }
.flex_end { .flex_end {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
align-items: center; align-items: center;
} }
.flex { .flex {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.from_card { .from_card {
margin-bottom: 20px; margin-bottom: 20px;
} }
.mgb20_top { .mgb20_top {
margin-top: 400px; margin-top: 400px;
} }
.mag { .mag {
margin-right: 20px; margin-right: 20px;
} }
.magr50 { .magr50 {
margin-left: 50px; margin-left: 50px;
} }
.font_same { .font_same {
margin-left: 40px; margin-left: 40px;
color: rgb(155, 179, 245); color: rgb(155, 179, 245);
font-size: 14px; font-size: 14px;
} }
.school-item { .school-item {
margin-bottom: 20px; margin-bottom: 20px;
.school-name {
font-size: 16px; .school-name {
font-weight: bold; font-size: 16px;
font-weight: bold;
}
.port {
.port-name {
margin: 10px 0;
font-size: 15px;
color: #9076ff;
} }
.port {
.port-name { .fields {
margin: 10px 0; .line {
font-size: 15px; display: flex;
color: #9076ff; margin-bottom: 10px;
}
.fields { li {
.line { display: flex;
display: flex; align-items: center;
margin-bottom: 10px; margin-right: 80px;
li {
display: flex; .name {
align-items: center; font-size: 14px;
margin-right: 80px; }
.name {
font-size: 14px; .val {
} font-size: 14px;
.val { font-weight: bold;
font-size: 14px; }
font-weight: bold;
}
}
}
} }
}
} }
}
} }
// //
.scrollbar ::-webkit-scrollbar { .scrollbar ::-webkit-scrollbar {
width: 2px; // width: 2px; //
height: 6px; // height: 6px; //
} }
// //
.scrollbar ::-webkit-scrollbar-thumb { .scrollbar ::-webkit-scrollbar-thumb {
background-color: #9278ff; background-color: #9278ff;
border-radius: 3px; border-radius: 3px;
box-shadow: inset 0 0 5px #dddddd; box-shadow: inset 0 0 5px #dddddd;
} }
.scrollbar ::-webkit-scrollbar-track { .scrollbar ::-webkit-scrollbar-track {
/*滚动条里面轨道*/ /*滚动条里面轨道*/
box-shadow: inset 0 0 5px #dddddd; box-shadow: inset 0 0 5px #dddddd;
border-radius: 0; border-radius: 0;
background: #dddddd; background: #dddddd;
} }
/deep/.el-input__inner { /deep/.el-input__inner {
height: 40px !important; height: 40px !important;
} }
</style> </style>
Loading…
Cancel
Save