Commit 37ec2a16 authored by 杨梦雪's avatar 杨梦雪

比对

parent c5e32e8a
<template> <template>
<div id="app"> <div id="app">
<router-view /> <router-view v-if="isRouterAlive"/>
</div> </div>
</template> </template>
<script> <script>
...@@ -8,13 +8,17 @@ ...@@ -8,13 +8,17 @@
export default { export default {
name: "app", name: "app",
data() { data() {
return {}; return { isRouterAlive: true
};
}, },
created() { created() {
this.$store.commit('setActiveIndex', this.$route.path) this.$store.commit('setActiveIndex', this.$route.path)
}, },
methods: { methods: {
reload () {
this.isRouterAlive = false
this.$nextTick(() => (this.isRouterAlive = true))
}
}, },
watch: { watch: {
'$route.path'(val) { '$route.path'(val) {
......
.btn { .btn {
padding-bottom: 0 !important; padding-bottom: 0 !important;
} }
.referInfo { .referInfo {
padding: 0 50px 110px 50px; padding: 0 50px 110px 50px;
.checkForm { .checkForm {
flex: 1; flex: 1;
.cont_title { .cont_title {
height: 48px; height: 48px;
line-height: 48px; line-height: 48px;
...@@ -13,6 +15,7 @@ ...@@ -13,6 +15,7 @@
font-weight: 500; font-weight: 500;
color: #12141c; color: #12141c;
} }
.tipsMsg { .tipsMsg {
padding: 0 10px; padding: 0 10px;
margin-bottom: 15px; margin-bottom: 15px;
...@@ -22,8 +25,18 @@ ...@@ -22,8 +25,18 @@
color: #a7a2a6; color: #a7a2a6;
} }
.school .el-form-item {
margin-bottom: 5px !important;
height: 85px !important;
}
::v-deep .multiform .el-form-item__label {
font-size: 15px !important;
}
::v-deep .el-form-item { ::v-deep .el-form-item {
margin-bottom: 20px; margin-bottom: 20px;
height: 70px;
.el-form-item__label { .el-form-item__label {
height: 32px; height: 32px;
...@@ -32,19 +45,24 @@ ...@@ -32,19 +45,24 @@
font-family: PingFang SC; font-family: PingFang SC;
font-weight: 500; font-weight: 500;
color: #12141c; color: #12141c;
} }
&.no_label .el-form-item__label:before { &.no_label .el-form-item__label:before {
content: "" !important; content: "" !important;
} }
.el-form-item__content { .el-form-item__content {
// height: 40px; // height: 40px;
// line-height: 40px; // line-height: 40px;
.el-input { .el-input {
height: 40px; height: 40px;
.el-input--small .el-input__inner { .el-input--small .el-input__inner {
min-height: 40px !important; min-height: 40px !important;
} }
.el-input__inner { .el-input__inner {
min-height: 40px; min-height: 40px;
line-height: 40px; line-height: 40px;
...@@ -61,6 +79,20 @@ ...@@ -61,6 +79,20 @@
} }
} }
} }
.el-textarea .el-input__count{
right: 15px!important;
}
.el-textarea__inner {
padding: 5px 17px 59px 10px!important;
&:hover {
border-color: var(--color);
}
&:focus {
border-color: var(--color);
}
}
// 圆 // 圆
.el-radio-group { .el-radio-group {
.el-radio { .el-radio {
...@@ -74,6 +106,7 @@ ...@@ -74,6 +106,7 @@
height: 20px; height: 20px;
line-height: 20px; line-height: 20px;
border-radius: 50%; border-radius: 50%;
&:hover { &:hover {
border-color: var(--color); border-color: var(--color);
} }
...@@ -103,10 +136,11 @@ ...@@ -103,10 +136,11 @@
} }
&.bgPic { &.bgPic {
// height: 260px;
.el-form-item__label { .el-form-item__label {
font-size: 14px; font-size: 14px;
} }
.bgInfo { .bgInfo {
font-size: 12px; font-size: 12px;
font-family: PingFang SC; font-family: PingFang SC;
...@@ -115,22 +149,27 @@ ...@@ -115,22 +149,27 @@
line-height: 24px; line-height: 24px;
} }
} }
.el-select { .el-select {
width: 100%; width: 100%;
} }
.image_add { .image_add {
position: relative; position: relative;
margin-top: 24px; margin-top: 24px;
.image_in { .image_in {
.limit_10 { .limit_10 {
display: none; display: none;
} }
.el-upload-list--picture-card { .el-upload-list--picture-card {
.item_img { .item_img {
width: 100%; width: 100%;
} }
} }
} }
//去除upload组件过渡效果 css //去除upload组件过渡效果 css
.el-upload-list__item { .el-upload-list__item {
transition: none !important; transition: none !important;
...@@ -138,15 +177,19 @@ ...@@ -138,15 +177,19 @@
.is-ready { .is-ready {
display: none; display: none;
} }
div { div {
height: 100%; height: 100%;
} }
} }
.el-upload--picture-card { .el-upload--picture-card {
display: inline-block; display: inline-block;
} }
.el-upload { .el-upload {
position: relative; position: relative;
.el-icon-circle-plus { .el-icon-circle-plus {
font-size: 52px; font-size: 52px;
color: var(--color); color: var(--color);
...@@ -156,10 +199,12 @@ ...@@ -156,10 +199,12 @@
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
} }
} }
i { i {
font-size: 22px; font-size: 22px;
color: #ffffff; color: #ffffff;
} }
.text { .text {
font-size: 14px; font-size: 14px;
color: #a7a2a6; color: #a7a2a6;
...@@ -168,4 +213,4 @@ ...@@ -168,4 +213,4 @@
} }
} }
} }
} }
\ No newline at end of file
.flex{
display: flex;
}
.referHome {
::v-deep .readForm {
flex: 1;
.cont_title {
position: relative;
height: 38px;
line-height: 38px;
font-size: 16px;
font-family: PingFang SC;
font-weight: 500;
color: #12141c;
padding-left: 10px;
margin-top: 10px;
span {
margin-right: 15px;
}
.line {
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
width: 3px;
height: 14px;
background-color: #12141c;
opacity: 0.4;
}
}
.cont_title_2 {
height: 28px;
line-height: 28px;
font-size: 14px;
font-family: PingFang SC;
font-weight: 500;
color: #12141c;
padding: 0 10px;
}
.cont_info {
line-height: 20px;
font-size: 12px;
font-family: PingFang SC;
font-weight: 500;
color: #999999;
padding: 0 10px 10px 10px;
}
.fj_info {
line-height: 24px;
font-size: 12px;
font-family: PingFang SC;
font-weight: 500;
color: #999999;
}
.el-form-item {
margin-bottom: 15px;
padding: 0 10px;
.el-form-item__label {
height: 32px;
line-height: 32px;
font-size: 12px;
font-family: PingFang SC;
font-weight: 500;
color: #12141c;
}
.el-form-item__content {
.el-input,
.el-input-number {
width: 100%;
height: 36px;
.el-input__inner {
text-align: left;
height: 36px;
border-radius: 4px;
border: 1px solid #e1e3e6;
background-color: #ffffff;
color: #656872;
&:hover {
border-color: #4d75f3;
}
&:focus {
border-color: #4d75f3;
}
}
}
.el-textarea__inner {
min-height: 100px !important;
}
}
&.btn {
margin-top: 50px;
.el-form-item__content {
text-align: center;
}
}
}
.image_add {
position: relative;
margin-top: 24px;
.image_in {
.limit_10 {
display: none;
}
.el-upload-list--picture-card {
.item_img {
width: 100%;
}
}
}
//去除upload组件过渡效果 css
.el-upload-list__item {
transition: none !important;
.is-ready {
display: none;
}
div {
height: 100%;
}
}
.el-upload--picture-card {
display: inline-block;
}
.el-upload {
position: relative;
.el-icon-circle-plus {
font-size: 52px;
color: var(--color);
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
i {
font-size: 22px;
color: #ffffff;
}
.text {
font-size: 14px;
color: #a7a2a6;
text-align: center;
}
}
.upload_box {
.img_list {
position: relative;
float: left;
width: 160px;
height: 120px;
text-align: center;
background: transparent;
border-radius: 4px;
border: 2px dashed #e1e3e6;
margin: 0 8px 8px 0;
padding: 5px;
display: flex;
flex-flow: column;
justify-content: center;
align-items: center;
> div {
width: 100%;
// .home_icon {
// width: 30px;
// height: 30px;
// display: block;
// margin: 0 auto;
.el-image{
width: 30px;
height: 30px;
display: block;
margin: 0 auto;
img {
width: auto;
height: auto;
max-width: 100% !important;
max-height: 100% !important;
}
}
.item_name {
font-size: 12px;
color: #999999;
line-height: 16px;
word-wrap: break-word;
margin: 5px 0 10px;
}
.item_remove {
// width: 40px;
font-size: 12px;
color: #999999;
font-weight: bold;
line-height: 16px;
margin: 0 auto;
&:hover {
cursor: pointer;
color: red;
}
}
}
}
.el-upload {
width: 160px !important;
height: 120px !important;
line-height: 120px !important;
background: transparent;
border-radius: 4px;
border: 2px dashed #e1e3e6;
text-align: center !important;
}
}
}
}
\ No newline at end of file
...@@ -80,9 +80,7 @@ export function getDate(fmt, dt = new Date()) { ...@@ -80,9 +80,7 @@ export function getDate(fmt, dt = new Date()) {
export function timeSpan(d1, d2) { export function timeSpan(d1, d2) {
let dateBegin = new Date(d1.replace(/-/g, "/")); //将-转化为/,使用new Date let dateBegin = new Date(d1.replace(/-/g, "/")); //将-转化为/,使用new Date
let dateEnd = new Date(d2.replace(/-/g, "/")); //将-转化为/,使用new Date let dateEnd = new Date(d2.replace(/-/g, "/")); //将-转化为/,使用new Date
let dateDiff = dateEnd.getTime() - dateBegin.getTime(); //时间差的毫秒数 let dateDiff = dateEnd.getTime() - dateBegin.getTime(); //时间差的毫秒数
return Math.round(dateDiff / 1000); return Math.round(dateDiff / 1000);
} }
......
...@@ -14,6 +14,7 @@ const emailReg = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/ ...@@ -14,6 +14,7 @@ const emailReg = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/
const phoneReg = /^1(3|4|5|6|7|8|9)\d{9}$/ const phoneReg = /^1(3|4|5|6|7|8|9)\d{9}$/
export default { export default {
//手机号验证 //手机号验证
validatePhone: function (rule, value, callback) { validatePhone: function (rule, value, callback) {
if (!phoneReg.test(value) || value.length !== 11) { if (!phoneReg.test(value) || value.length !== 11) {
...@@ -25,10 +26,13 @@ export default { ...@@ -25,10 +26,13 @@ export default {
validateid_card: function (rule, value, callback) { validateid_card: function (rule, value, callback) {
// console.log(value, 'sss') // console.log(value, 'sss')
if (value) {
if (!/(^\d{15}$)|(^\d{17}(\d|X|x)$)/.test(value)) { if (!/(^\d{15}$)|(^\d{17}(\d|X|x)$)/.test(value)) {
callback(new Error("你输入的身份证长度或格式错误")); return callback(new Error("你输入的身份证长度或格式错误"));
}
} }
callback(); callback();
}, },
// 数字验证 // 数字验证
validateNumber: function (rule, value, callback) { validateNumber: function (rule, value, callback) {
...@@ -48,7 +52,7 @@ export default { ...@@ -48,7 +52,7 @@ export default {
}, },
// 邮箱验证 // 邮箱验证
validateEmail: function (rule, value, callback) { validateEmail: function (rule, value, callback) {
console.log(value,'ssss') console.log(value, 'ssss')
if (!emailReg.test(value)) { if (!emailReg.test(value)) {
callback(new Error('邮箱格式错误!')) callback(new Error('邮箱格式错误!'))
} else { } else {
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
<div class="footer"> <div class="footer">
<div class="com-container content"> <div class="com-container content">
<ul class="contact_list"> <ul class="contact_list">
<li> <li v-if="$store.state.human != 1">
<i class="el-icon-message"></i> <i class="el-icon-message"></i>
<span>联系邮箱</span>ydhdservice@163.com <span>联系邮箱</span>service@campcenter.cn
</li> </li>
<!-- <li> <!-- <li>
<i class="el-icon-phone-outline"></i> <i class="el-icon-phone-outline"></i>
...@@ -43,6 +43,7 @@ export default { ...@@ -43,6 +43,7 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
@import "a/scss/common"; @import "a/scss/common";
.footer { .footer {
margin-top: 20px;
font-family: PingFang SC; font-family: PingFang SC;
font-size: 14px; font-size: 14px;
height: 169px; height: 169px;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="Header"> <div class="Header">
<div class="H_content com-container"> <div class="H_content com-container">
<div class="image"> <div class="image">
<img :src="system_logo" alt=""/> <img :src="system_logo" alt="" />
</div> </div>
<div class="right" v-if="!isLogin"> <div class="right" v-if="!isLogin">
<span <span
...@@ -21,19 +21,18 @@ ...@@ -21,19 +21,18 @@
<div class="right alreadyLogin" v-else> <div class="right alreadyLogin" v-else>
<el-dropdown @command="handleCommand" trigger="click"> <el-dropdown @command="handleCommand" trigger="click">
<div class="el-dropdown-link"> <div class="el-dropdown-link">
<img src="@/assets/img/default.svg" class="img_user"/> <img src="@/assets/img/default.svg" class="img_user" />
<span class="phone">{{ phone }}</span> <span class="phone">{{ phone }}</span>
<i class="el-icon-arrow-down el-icon--right"></i> <i class="el-icon-arrow-down el-icon--right"></i>
</div> </div>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item command="1" @click="toCenter"> <!-- <el-dropdown-item command="1" @click="toCenter">
<i class="el-icon-user"></i>个人中心 <i class="el-icon-user"></i>个人中心
</el-dropdown-item </el-dropdown-item
> > -->
<el-dropdown-item command="2" @click="logout"> <el-dropdown-item command="2" @click="logout">
<i class="el-icon-switch-button"></i>退出 <i class="el-icon-switch-button"></i>退出
</el-dropdown-item </el-dropdown-item>
>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</div> </div>
...@@ -41,11 +40,10 @@ ...@@ -41,11 +40,10 @@
</div> </div>
</template> </template>
<script> <script>
/* eslint-disable */ /* eslint-disable */
import Cookie from "js-cookie"; import { logout } from "r/index/login";
import {logout} from "r/index/login";
export default { export default {
name: "Header", name: "Header",
data() { data() {
return { return {
...@@ -93,11 +91,10 @@ ...@@ -93,11 +91,10 @@
}).catch((err) => err); }).catch((err) => err);
if (confirmResult !== "confirm") if (confirmResult !== "confirm")
return this.$message.info("您取消了退出"); return this.$message.info("您取消了退出");
// 清除本地缓存除了大学logo // 清除本地缓存除了大学logo
// window.localStorage.clear(); // window.localStorage.clear();]
this.reload()
let code = this.$store.state.indexIdentity; let code = this.$store.state.indexIdentity;
window.localStorage.removeItem("doubt_code" + code); window.localStorage.removeItem("doubt_code" + code);
window.localStorage.removeItem("doubt_info" + code); window.localStorage.removeItem("doubt_info" + code);
window.localStorage.removeItem("doubt_check" + code); window.localStorage.removeItem("doubt_check" + code);
...@@ -113,26 +110,49 @@ ...@@ -113,26 +110,49 @@
window.localStorage.removeItem("bk_pic" + code); window.localStorage.removeItem("bk_pic" + code);
window.localStorage.removeItem("examine_status" + code); window.localStorage.removeItem("examine_status" + code);
window.localStorage.removeItem("examine_reason" + code); window.localStorage.removeItem("examine_reason" + code);
window.localStorage.removeItem("sign_up_file_18355151517" + code); window.localStorage.removeItem(
"sign_up_file_18355151517" +
window.localStorage.getItem("phone" + code) +
code
);
window.localStorage.removeItem("schoolName" + code); window.localStorage.removeItem("schoolName" + code);
window.localStorage.removeItem("camp_statement" + code); window.localStorage.removeItem("camp_statement" + code);
// window.localStorage.removeItem("restet_code_time" + code, ) window.localStorage.removeItem("transfer_account" + code);
window.localStorage.removeItem("payee" + code);
window.localStorage.removeItem("bank_first" + code);
window.localStorage.removeItem("bank_idcard" + code);
window.localStorage.removeItem(
"bank_info" + window.localStorage.getItem("phone" + code) + code
);
this.isLogin = false; this.isLogin = false;
this.$message.success('退出成功'); this.reload()
console.log(this.$store.state.human)
if (this.$store.state.human == 1) {
console.log(222)
await this.$router.replace({
path: "/login",
query: {
code: code,
},
});
} else {
console.log(code)
await this.$router.replace("/" + code);
}
this.$message.success("退出成功");
await logout({}); await logout({});
}, },
onMouserEnter(val) { onMouserEnter(val) {
this.isHover = val; this.isHover = val;
}, },
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "a/scss/common"; @import "a/scss/common";
.Header { .Header {
font-family: PingFang SC; font-family: PingFang SC;
height: 80px; height: 80px;
box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.12); box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.12);
...@@ -201,5 +221,5 @@ ...@@ -201,5 +221,5 @@
} }
} }
} }
} }
</style> </style>
<template>
<div class="Header">
<div class="H_content com-container">
<div class="image" @click="toRecruit">
<img :src="system_logo" alt="" />
</div>
<div class="right">
<el-dropdown @command="handleCommand" trigger="click">
<div class="el-dropdown-link">
<img src="@/assets/img/default.svg" class="img_user" />
<span class="phone">{{ phone }}</span>
<i class="el-icon-arrow-down el-icon--right"></i>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="1">
<i class="el-icon-switch-button"></i>退出
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
</div>
</template>
<script>
/* eslint-disable */
import Cookie from "js-cookie";
import { logout } from "r/index/login";
export default {
name: "Header",
data() {
return {
phone: window.localStorage.getItem(
"phone" + this.$store.state.indexIdentity
),
system_logo: window.localStorage.getItem(
"system_logo" + this.$store.state.indexIdentity
),
};
},
methods: {
handleCommand(command) {
if (command == 1) {
this.logout();
}
},
// 退出
async logout() {
const confirmResult = await this.$confirm(`确认退出登录?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
closeOnClickModal: false,
type: "warning",
}).catch((err) => err);
if (confirmResult !== "confirm")
return this.$message.info("您取消了退出");
// 清除本地缓存除了大学logo
window.localStorage.clear();
let code = this.$store.state.indexIdentity;
await this.$router.replace("/" + code);
this.$message.success("退出成功");
await logout({});
},
// 点击图片跳转到招生简章页面
toRecruit() {
// 清除本地缓存除了大学logo
let code = this.$store.state.indexIdentity;
this.$router.replace("/" + code);
},
},
};
</script>
<style lang="scss" scoped>
@import "a/scss/common";
.Header {
font-family: PingFang SC;
height: 80px;
box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.12);
.H_content {
height: 100%;
display: flex;
flex-flow: row;
align-items: center;
justify-content: space-between;
.image img {
// width: 318px;
height: 62px;
}
.right {
height: 80px;
::v-deep .el-dropdown {
height: 80px;
.el-dropdown-link {
height: 80px;
display: flex;
flex-flow: row;
align-items: center;
.img_user {
width: 34px;
height: 34px;
background-color: #d8d8d8;
border-radius: 50%;
}
.phone {
margin: 0 10px 0 12px;
}
}
&:hover {
cursor: pointer;
}
}
}
}
}
</style>
<template> <template>
<el-dialog <el-dialog
title="微信支付" title="微信支付"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
...@@ -9,16 +9,18 @@ ...@@ -9,16 +9,18 @@
@close="cancelBtn()" @close="cancelBtn()"
> >
<div class="pay_code"> <div class="pay_code">
<div v-if="isShowqr"> <div v-show="isShowqr == 1">
<!-- <div class="pay_time">支付剩余时间<span>15分30秒</span></div> --> <!-- <div class="pay_time">支付剩余时间<span>15分30秒</span></div> -->
<div class="money">{{ has_amount }}</div> <div class="money">{{ has_amount }}</div>
<div class="img_qr"> <div class="img_qr">
<div class="qrcode" ref="qrCodeUrl"></div> <div class="qrcode" ref="qrCodeUrl"></div>
</div> </div>
<div>请使用<span>微信</span>扫一扫,扫描二维码支付</div> <div>请使用<span>微信</span>扫一扫,扫描二维码支付</div>
<div>付款码为动态码,仅支持通过本页面进行扫描付款操作,不支持另存图片后扫描支付。</div> <div>
付款码为动态码,仅支持通过本页面进行扫描付款操作,不支持另存图片后扫描支付。
</div> </div>
<div v-if="!isShowqr"> </div>
<div v-show="isShowqr == 2">
<div class="info_2" style="color: #000; font-size: 18px"> <div class="info_2" style="color: #000; font-size: 18px">
<i class="el-icon-warning"></i>{{ message }} <i class="el-icon-warning"></i>{{ message }}
</div> </div>
...@@ -35,7 +37,6 @@ ...@@ -35,7 +37,6 @@
<script> <script>
/* eslint-disable */ /* eslint-disable */
import Cookie from "js-cookie"
import { getWxConfig } from "r/index/pay"; import { getWxConfig } from "r/index/pay";
import { SERVER_WS_URL } from "config/server"; import { SERVER_WS_URL } from "config/server";
import QRCode from "qrcodejs2"; import QRCode from "qrcodejs2";
...@@ -48,7 +49,7 @@ export default { ...@@ -48,7 +49,7 @@ export default {
return { return {
dialogVisible: this.confirmSignUpDialogFu, dialogVisible: this.confirmSignUpDialogFu,
message: "", message: "",
isShowqr: true, // 展示支付二维码 isShowqr: 0, // 展示支付二维码
token: "", token: "",
websocket: null, //websocket连接 websocket: null, //websocket连接
lockReconnect: false, //是否真正建立连接 lockReconnect: false, //是否真正建立连接
...@@ -60,26 +61,32 @@ export default { ...@@ -60,26 +61,32 @@ export default {
}; };
}, },
created() { created() {
this.token = window.localStorage.getItem("index-token"+this.$store.state.indexIdentity); this.token = window.localStorage.getItem(
this.has_amount = window.localStorage.getItem("has_amount"+this.$store.state.indexIdentity); "index-token" + this.$store.state.indexIdentity
);
this.has_amount = window.localStorage.getItem(
"has_amount" + this.$store.state.indexIdentity
);
}, },
methods: { methods: {
async confirm() { async confirm() {
// console.log(SERVER_WS_URL); // console.log(SERVER_WS_URL);
let { data: res } = await getWxConfig({ let { data: res } = await getWxConfig({
// exam_uuid: this.examuuid, pay_type: 3,
pay_type: 1,
}); });
// console.log(res); // console.log(res);
if (res.code !== 200) { if (res.code !== 200) {
if (res.code == 400801) { if (res.code == 400801) {
return this.cancelBtn(); return this.cancelBtn();
} }
this.isShowqr = 2;
this.message = res.message; this.message = res.message;
this.isShowqr = false;
return; return;
} }
this.isShowqr = true; this.isShowqr = 1;
console.log(res.code_url);
this.createQrCode(res.code_url); this.createQrCode(res.code_url);
//初始化 websocket 链接 //初始化 websocket 链接
this.initWebSocket(); this.initWebSocket();
...@@ -129,9 +136,9 @@ export default { ...@@ -129,9 +136,9 @@ export default {
} else if (!this.dialogVisible) { } else if (!this.dialogVisible) {
return; return;
} else { } else {
let code=this.$store.state.indexIdentity let code = this.$store.state.indexIdentity;
if (!this.token || this.token == "") { if (!this.token || this.token == "") {
this.token = window.localStorage.getItem("index-token"+code); this.token = window.localStorage.getItem("index-token" + code);
} }
let token = this.token; let token = this.token;
const wssURL = SERVER_WS_URL + "/order?token=" + token + "&channel=pc"; const wssURL = SERVER_WS_URL + "/order?token=" + token + "&channel=pc";
...@@ -216,15 +223,19 @@ export default { ...@@ -216,15 +223,19 @@ export default {
websocketSend() { websocketSend() {
//数据发送 //数据发送
let sendData = { let sendData = {
order_no: window.localStorage.getItem("order_no"+this.$store.state.indexIdentity), order_no: window.localStorage.getItem(
cam_id: window.localStorage.getItem("campsite_id"+this.$store.state.indexIdentity), "order_no" + this.$store.state.indexIdentity
),
cam_id: window.localStorage.getItem(
"campsite_id" + this.$store.state.indexIdentity
),
token: this.token, token: this.token,
}; };
this.websocket.send(JSON.stringify(sendData)); this.websocket.send(JSON.stringify(sendData));
}, },
// 接收到消息的回调方法 // 接收到消息的回调方法
websocketOnmessage(event) { websocketOnmessage(event) {
// console.log(event, "event"); console.log(event, "event");
if (event.data !== "Opened") { if (event.data !== "Opened") {
//const data = JSON.parse(event.data); //const data = JSON.parse(event.data);
// console.log("接收到消息的回调方法", event.data); // console.log("接收到消息的回调方法", event.data);
...@@ -237,7 +248,7 @@ export default { ...@@ -237,7 +248,7 @@ export default {
// status=6,跳转到报名成功页面 // status=6,跳转到报名成功页面
// this.$emit("getstatus", res.data.status.status); // this.$emit("getstatus", res.data.status.status);
let code = this.$store.state.indexIdentity; let code = this.$store.state.indexIdentity;
this.$router.push("/signUp/success?code="+code); this.$router.push("/signUp/success?code=" + code);
} else { } else {
//收到服务器信息,心跳重置 //收到服务器信息,心跳重置
this.reset(); this.reset();
......
...@@ -2,20 +2,22 @@ ...@@ -2,20 +2,22 @@
<div class="Header"> <div class="Header">
<div class="H_content com-container"> <div class="H_content com-container">
<div class="image" @click="toRecruit"> <div class="image" @click="toRecruit">
<img :src="system_logo" alt=""/> <img :src="system_logo" alt="" />
</div> </div>
<div class="right"> <div class="right">
<el-dropdown @command="handleCommand" trigger="click"> <el-dropdown @command="handleCommand" trigger="click">
<div class="el-dropdown-link"> <div class="el-dropdown-link">
<img src="@/assets/img/default.svg" class="img_user"/> <img src="@/assets/img/default.svg" class="img_user" />
<span class="phone">{{ phone }}</span> <span class="phone">{{ phone }}</span>
<i class="el-icon-arrow-down el-icon--right"></i> <i class="el-icon-arrow-down el-icon--right"></i>
</div> </div>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item command="1"> <!-- <el-dropdown-item command="1">
<i class="el-icon-user"></i>个人资料
</el-dropdown-item> -->
<el-dropdown-item command="2">
<i class="el-icon-switch-button"></i>退出 <i class="el-icon-switch-button"></i>退出
</el-dropdown-item </el-dropdown-item>
>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</div> </div>
...@@ -23,21 +25,28 @@ ...@@ -23,21 +25,28 @@
</div> </div>
</template> </template>
<script> <script>
/* eslint-disable */ /* eslint-disable */
import Cookie from "js-cookie" import Cookie from "js-cookie";
import {logout} from "r/index/login"; import { logout } from "r/index/login";
export default { export default {
name: "Header", name: "Header",
data() { data() {
return { return {
phone: window.localStorage.getItem("phone" + this.$store.state.indexIdentity), phone: window.localStorage.getItem(
system_logo: window.localStorage.getItem("system_logo" + this.$store.state.indexIdentity), "phone" + this.$store.state.indexIdentity
),
system_logo: window.localStorage.getItem(
"system_logo" + this.$store.state.indexIdentity
),
}; };
}, },
methods: { methods: {
handleCommand(command) { handleCommand(command) {
if (command == 1) { if (command == 1) {
let code = this.$store.state.indexIdentity;
this.$router.push("/Info/personalInfo?code=" + code);
} else if (command == 2) {
this.logout(); this.logout();
} }
}, },
...@@ -55,8 +64,18 @@ ...@@ -55,8 +64,18 @@
// 清除本地缓存除了大学logo // 清除本地缓存除了大学logo
window.localStorage.clear(); window.localStorage.clear();
let code = this.$store.state.indexIdentity; let code = this.$store.state.indexIdentity;
if (this.$store.state.human == 1) {
await this.$router.replace({
path: "/login",
query: {
code: code,
},
});
} else {
await this.$router.replace("/" + code); await this.$router.replace("/" + code);
this.$message.success('退出成功'); }
// await this.$router.replace("/" + code);
this.$message.success("退出成功");
await logout({}); await logout({});
}, },
// 点击图片跳转到招生简章页面 // 点击图片跳转到招生简章页面
...@@ -66,12 +85,12 @@ ...@@ -66,12 +85,12 @@
this.$router.replace("/" + code); this.$router.replace("/" + code);
}, },
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "a/scss/common"; @import "a/scss/common";
.Header { .Header {
font-family: PingFang SC; font-family: PingFang SC;
height: 80px; height: 80px;
box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.12); box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.12);
...@@ -83,10 +102,15 @@ ...@@ -83,10 +102,15 @@
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
.image img { .image {
img {
// width: 318px; // width: 318px;
height: 62px; height: 62px;
} }
&:hover {
cursor: pointer;
}
}
.right { .right {
height: 80px; height: 80px;
...@@ -118,5 +142,5 @@ ...@@ -118,5 +142,5 @@
} }
} }
} }
} }
</style> </style>
...@@ -2,7 +2,29 @@ ...@@ -2,7 +2,29 @@
<!--底部--> <!--底部-->
<div class="confirm"> <div class="confirm">
<div class="title">{{ info.name }}报名须知</div> <div class="title">{{ info.name }}报名须知</div>
<el-form
ref="referRef"
:model="referForm"
label-position="top"
class="checkForm"
:rules="referInfoRules"
>
<el-form-item v-if="is_multiform == 1"
label="活动形式"
prop="multiform"
class="multiform"
style="height: 100%"
:rules="
is_multiform == 1 ? referInfoRules.multiform : [{ required: false }]
"
>
<el-radio-group ref="multiform" v-model="referForm.multiform">
<div v-for="item in multiform" :key="item.id">
<el-radio :label="item.id.toString()">{{item.multiform_name}}</el-radio>
</div>
</el-radio-group>
</el-form-item>
</el-form>
<div v-html="info.exam_instructions"></div> <div v-html="info.exam_instructions"></div>
<!-- <p> <!-- <p>
南开大学是教育部直属重点综合性大学,是敬爱的周恩来总理的母校。新中国成立以来,学校发展始终得到党和国家的亲切关怀。毛泽东主席题写校名、亲临视察;周恩来总理三回母校指导;邓小平同志会见数学大师陈省身,批示成立南开数学研究所;江泽民同志、胡锦涛同志先后视察南开。特别是党的十八大以来,习近平总书记多次对南开的发展给予肯定,并对相关工作回信和勉励,更在百年校庆之际亲临南开视察。 南开大学是教育部直属重点综合性大学,是敬爱的周恩来总理的母校。新中国成立以来,学校发展始终得到党和国家的亲切关怀。毛泽东主席题写校名、亲临视察;周恩来总理三回母校指导;邓小平同志会见数学大师陈省身,批示成立南开数学研究所;江泽民同志、胡锦涛同志先后视察南开。特别是党的十八大以来,习近平总书记多次对南开的发展给予肯定,并对相关工作回信和勉励,更在百年校庆之际亲临南开视察。
...@@ -27,58 +49,85 @@ ...@@ -27,58 +49,85 @@
</template> </template>
<script> <script>
/* eslint-disable */ /* eslint-disable */
import Cookie from "js-cookie"; import Cookie from "js-cookie";
import { setSignShould } from "r/index/signUp"; import {setSignShould} from "r/index/signUp";
import { getCam } from "r/index/login"; import {getCam} from "r/index/login";
export default {
export default {
name: "Confirm", name: "Confirm",
// props: { statusNum: [String, Number] }, //进度参数 // props: { statusNum: [String, Number] }, //进度参数
data() { data() {
return { return {
checked: false, checked: false,
info: {}, info: {},
}; referForm: {multiform: null,},
//是否开启多形式报名
is_multiform: 0,
multiform: [],
referInfoRules: {
multiform: [{required: true, message: '请选择活动形式', trigger: 'change'}],
},
}
}, },
created() { created() {
this.getCams(); this.getCams();
const code = this.$store.state.indexIdentity;
//是否开启多形式报名
this.is_multiform = this.$store.state.isMultiform;
if (this.is_multiform == 1) {
this.multiform = JSON.parse(window.localStorage.getItem("multiform" + code));
}
let multiform_id = window.localStorage.getItem("multiform_id" + code);
if (multiform_id && multiform_id !== null) {
this.referForm.multiform = multiform_id;
}
}, },
methods: { methods: {
next() { next() {
// console.log(this.checked); if (this.referForm.multiform == 0 && this.is_multiform == 1) {
setSignShould({}).then((res) => { return this.$message.error('请选择活动形式')
// console.log(res, "setSignShould"); } else {
let _this = this;
let obj = {};
//是否选择活动形式
obj.multiform_id = _this.referForm.multiform;
setSignShould(obj).then((res) => {
if (res.data.code !== 200) return this.$message.error(res.data.message); if (res.data.code !== 200) return this.$message.error(res.data.message);
this.$emit("getstatus", res.data.status); this.$emit("getstatus", res.data.status);
this.$message.success(res.data.message); this.$message.success(res.data.message);
// let code = this.$store.state.indexIdentity;
// this.$router.push("/signUp/invitation?code="+code);
}); });
}
}, },
getCams() { getCams() {
getCam(this.$store.state.indexIdentity).then((res) => { getCam(this.$store.state.indexIdentity).then((res) => {
// console.log(res, "res");
if (res.data.code != 200) { if (res.data.code != 200) {
return this.$message.error(res.data.message); return this.$message.error(res.data.message);
} }
// this.$message.success(res.data.message);
this.info = res.data; this.info = res.data;
}); });
}, }
}, ,
}; }
,
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "a/scss/btn"; @import "a/scss/btn";
.btn {
.btn {
padding-bottom: 34px !important; padding-bottom: 34px !important;
} }
.confirm {
.confirm {
padding: 0 50px 60px; padding: 0 50px 60px;
.line { .line {
border-bottom: 1px solid #d4d0d4; border-bottom: 1px solid #d4d0d4;
} }
.title { .title {
font-size: 20px; font-size: 20px;
font-weight: 600; font-weight: 600;
...@@ -87,6 +136,7 @@ export default { ...@@ -87,6 +136,7 @@ export default {
text-align: center; text-align: center;
margin: 0 0 24px 0; margin: 0 0 24px 0;
} }
p { p {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
...@@ -99,9 +149,73 @@ export default { ...@@ -99,9 +149,73 @@ export default {
margin-top: 42px; margin-top: 42px;
} }
::v-deep .multiform .el-form-item__label {
font-size: 15px !important;
}
::v-deep .el-form-item {
margin-bottom: 20px;
height: 70px;
.el-form-item__label {
height: 32px;
line-height: 32px;
font-size: 12px;
font-family: PingFang SC;
font-weight: 500;
color: #12141c;
}
&.no_label .el-form-item__label:before {
content: "" !important;
}
.el-form-item__content {
// 圆
.el-radio-group {
.el-radio {
.el-radio__label {
color: #656872;
}
.el-radio__input {
.el-radio__inner {
width: 20px;
height: 20px;
line-height: 20px;
border-radius: 50%;
&:hover {
border-color: var(--color);
}
}
&.is-checked {
.el-radio__inner {
background: #ffffff !important;
border-color: var(--color);
&::after {
width: 7.5px;
height: 7.5px;
background: var(--color) !important;
}
}
}
}
}
}
}
}
::v-deep .el-checkbox__inner:hover { ::v-deep .el-checkbox__inner:hover {
border-color: var(--color); border-color: var(--color);
} }
::v-deep .el-checkbox__input.is-checked { ::v-deep .el-checkbox__input.is-checked {
.el-checkbox__inner { .el-checkbox__inner {
background-color: var(--color); background-color: var(--color);
...@@ -112,5 +226,5 @@ export default { ...@@ -112,5 +226,5 @@ export default {
color: var(--color); color: var(--color);
} }
} }
} }
</style> </style>
<template>
<!-- 确认收货地址对话框 -->
<el-dialog
title="确认收货地址"
:visible.sync="dialogVisible"
width="40%"
@open="open()"
@close="cancelBtn()"
>
<el-form ref="addressRef" :model="addressForm" :rules="addressRules">
<el-form-item label="收件人" prop="certificate_name">
<el-input
v-model="addressForm.certificate_name"
placeholder="填写真实姓名"
clearable
></el-input>
</el-form-item>
<el-form-item label="收件人电话" prop="certificate_phone">
<el-input
v-model="addressForm.certificate_phone"
placeholder="填写真实电话"
clearable
></el-input>
</el-form-item>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="收货地址" prop="certificate_province">
<el-select
ref="certificate_province"
v-model="addressForm.certificate_province"
clearable
placeholder="选择省份"
@change="changeProvince($event)"
>
<el-option
v-for="item in selectProvince"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="no_label" label=" " prop="certificate_city">
<el-select
ref="certificate_city"
v-model="addressForm.certificate_city"
clearable
placeholder="选择城市"
>
<el-option
v-for="item in selectCitySchool"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="no_label" label=" " prop="county">
<!-- <el-select
ref="school"
v-model="addressForm.school"
clearable
placeholder="选择所在区县"
>
<el-option
v-for="item in selectSchoolList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select> -->
<el-input
v-model="county"
placeholder="选择所在区县"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="" prop="certificate_address">
<el-input
ref="certificate_address"
v-model="certificate_address"
placeholder="填写详细地址"
clearable
></el-input>
</el-form-item>
</el-form>
<div class="btn">
<el-button type="primary" @click="setAddress()">确 定</el-button>
</div>
</el-dialog>
</template>
<script>
/* eslint-disable */
import { getProAndCity } from "r/index/signUp";
import { setAddress, getAddress } from "r/index/certificate";
import validator from "common/validator";
export default {
name: "deliveryAddress",
props: {
dialogVisibleAddress: Boolean,
},
data() {
return {
dialogVisible: false, //确认收货地址对话框
addressRules: {
certificate_name: [
{ required: true, message: "姓名不能为空!", trigger: "blur" },
],
certificate_phone: [
{
required: true,
message: "手机号不能为空!",
trigger: "blur",
},
{ validator: validator.validatePhone, trigger: "blur" },
],
certificate_province: [
{
required: true,
message: "请选择所在省份!",
trigger: "change",
},
],
certificate_city: [
{
required: true,
message: "请选择所在城市!",
trigger: "change",
},
],
// county: [
// { required: true, message: "请选择所在区县!", trigger: "blur" },
// ],
certificate_address: [
{ required: true, message: "详细地址不能为空!", trigger: "blur" },
],
},
addressForm: {
certificate_name: "",
certificate_phone: "",
certificate_province: null,
certificate_city: null,
certificate_address: "",
},
county: "", //区县
certificate_address: "", //详细地址
selectProvince: [], //省份
CityName: {}, //根据省份筛选出所有城市的对象
selectCityJiguan: [], //籍贯城市列表
selectCitySchool: [], //就读中学-城市列表
jgProvinceCode: "", //省份id
jiguan_city: "", //城市id(和省份id拼接)
};
},
created() {
// this.getProAndCity();
},
watch: {
dialogVisibleAddress() {
this.dialogVisible = this.dialogVisibleAddress;
},
},
methods: {
// 确认,关闭弹框,修改父组件的值
cancelBtn() {
this.dialogVisible = false;
this.$emit("closeAddressDialog", this.dialogVisible, false);
},
open() {
this.getProAndCity();
this.getAddress();
},
getAddress() {
console.log(111111)
getAddress({}).then((res) => {
// console.log(res, "getAddress");
if (res.data.code != 200) {
return this.$message.error(res.data.message);
}
console.log(res.data.info)
console.log(res.data.info.length==0 )
if (res.data.info.length==0) {
console.log(111111)
return;
} else {
// console.log(Object.keys(res.data.info),'info')
// if (Object.keys(res.data.info).length != 0) {
// return this.$message.error("已保存地址");
// }
// this.dialogVisible = true;
this.addressForm.certificate_name = res.data.info.certificate_name;
this.addressForm.certificate_phone = res.data.info.certificate_phone;
this.addressForm.certificate_province =
res.data.info.certificate_province;
this.addressForm.certificate_city = res.data.info.certificate_city;
this.selectCitySchool = this.getCurrentCityLists(
this.addressForm.certificate_province
);
if (res.data.info.certificate_address) {
this.county = res.data.info.certificate_address.split("-")[0];
this.certificate_address =
res.data.info.certificate_address.split("-")[1];
}
}
});
},
// 获取省份城市
getProAndCity() {
getProAndCity({}).then((res) => {
// console.log(res, "getProAndCity");
if (res.data.code != 200) {
return this.$message.error(res.data.message);
}
this.selectProvince = res.data.province_list;
this.CityName = res.data.city_list;
});
},
//选择籍贯省份change事件
changeProvince(val, status) {
console.log(val);
this.selectCitySchool = [];
this.selectCitySchool = this.getCurrentCityLists(val); //在此调用城市筛选列表
if (!status) {
this.addressForm.certificate_city = "";
}
},
//返回当前省份下的城市列表
getCurrentCityLists(val) {
console.log(val);
let currentCity = [];
if (
this.CityName == null ||
!this.CityName ||
Object.values(this.CityName).length == 0
) {
getProAndCity({})
.then((res) => {
if (res.data.code === 200) {
this.CityName = res.data.city_list;
for (let key in this.CityName) {
if (this.CityName[key].parent_id == val) {
currentCity.push(this.CityName[key]);
}
}
return currentCity;
} else {
this.$message.error(res.data.message);
}
})
.catch((err) => {
this.$message.error(err);
});
} else {
for (let key in this.CityName) {
if (this.CityName[key].parent_id == val) {
currentCity.push(this.CityName[key]);
}
}
return currentCity;
}
return currentCity;
},
// 提交
setAddress() {
this.addressForm.certificate_address =
this.county.toString() + "-" + this.certificate_address.toString();
this.$refs["addressRef"].validate((valid, object) => {
console.log(valid, "valid");
if (!valid) {
return false;
}
});
setAddress(this.addressForm).then((res) => {
// console.log(res, "setAddress");
if (res.data.code != 200) {
return this.$message.error(res.data.message);
}
this.$message.success(res.data.message);
this.dialogVisible = false;
});
},
},
};
</script>
<style lang="scss" scoped>
::v-deep.el-form-item {
margin-bottom: 20px;
// item的验证红点点
.el-form-item__label {
height: 32px;
line-height: 32px;
font-size: 12px;
font-family: PingFang SC;
font-weight: 500;
color: #12141c;
}
&.no_label .el-form-item__label {
width: 0 !important;
}
&.no_label .el-form-item__label::before {
content: "" !important;
}
&.no_label .el-form-item__content {
margin-left: 0 !important;
}
}
</style>
\ No newline at end of file
...@@ -62,15 +62,20 @@ ...@@ -62,15 +62,20 @@
<div class="btn"> <div class="btn">
<el-button @click="next()">提交/跳过</el-button> <el-button @click="next()">提交/跳过</el-button>
</div> </div>
<!-- 多形式报名邀请码报错弹框 -->
<cueDialog :dialogVisible="dialogVisible" :msg="msg"></cueDialog>
</div> </div>
</template> </template>
<script> <script>
/* eslint-disable */ /* eslint-disable */
import { setInviteCode } from "r/index/signUp"; import {setInviteCode} from "r/index/signUp";
export default { import cueDialog from "c/index/cueDialog";
export default {
name: "Invitation", name: "Invitation",
props: { invitation_code: String }, props: {invitation_code: String},
components:{cueDialog},
data() { data() {
return { return {
invatation1: "", invatation1: "",
...@@ -78,6 +83,8 @@ export default { ...@@ -78,6 +83,8 @@ export default {
invatation3: "", invatation3: "",
invatation4: "", invatation4: "",
inputFlag: true, inputFlag: true,
dialogVisible: false,
msg: null,
}; };
}, },
created() { created() {
...@@ -121,17 +128,14 @@ export default { ...@@ -121,17 +128,14 @@ export default {
}, },
}, },
methods: { methods: {
// next() {
// this.$router.push("/signUp/referInfo");
// },
//第一个输入框 //第一个输入框
changeValue1(e) { changeValue1(e) {
const code = e.trim(); const code = e.trim();
console.log(code, "输入111"); // console.log(code, "输入111");
if (code.indexOf("-") !== -1) { if (code.indexOf("-") !== -1) {
//如果是复制过来的带'-'邀请码 //如果是复制过来的带'-'邀请码
let copyCode = code.split("-"); let copyCode = code.split("-");
console.log(copyCode, "输入222"); // console.log(copyCode, "输入222");
this.invatation1 = copyCode[0]; this.invatation1 = copyCode[0];
this.invatation2 = copyCode[1]; this.invatation2 = copyCode[1];
this.invatation3 = copyCode[2]; this.invatation3 = copyCode[2];
...@@ -198,6 +202,7 @@ export default { ...@@ -198,6 +202,7 @@ export default {
getFocus(index, e) { getFocus(index, e) {
this.currentIndex = index; this.currentIndex = index;
}, },
// 下一步 // 下一步
async next() { async next() {
// console.log(111); // console.log(111);
...@@ -224,27 +229,35 @@ export default { ...@@ -224,27 +229,35 @@ export default {
this.invatation4; this.invatation4;
} }
setInviteCode({ code: code }).then((res) => { setInviteCode({code: code}).then((res) => {
// console.log(res, "code"); // console.log(res, "code");
if (res.data.code !== 200) { if (res.data.code !== 200) {
return this.$message.error(res.data.message); return this.$message.error(res.data.message);
} }
if (res.data.code == 4000346 || res.data.code == 4000347) {
this.dialogVisible = true;
this.msg = res.data.message
return;
}
this.$emit("getstatus", res.data.status); this.$emit("getstatus", res.data.status);
}); });
}, },
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "a/scss/btn"; @import "a/scss/btn";
.flex {
.flex {
display: flex; display: flex;
} }
.invitation {
.invitation {
.iv_content { .iv_content {
justify-content: center; justify-content: center;
height: 44px; height: 44px;
::v-deep .el-input__inner { ::v-deep .el-input__inner {
width: 110px; width: 110px;
height: 38px; height: 38px;
...@@ -252,6 +265,7 @@ export default { ...@@ -252,6 +265,7 @@ export default {
border: 2px solid var(--color); border: 2px solid var(--color);
margin-right: 15px; margin-right: 15px;
} }
.code_titile { .code_titile {
height: 16px; height: 16px;
font-size: 16px; font-size: 16px;
...@@ -260,10 +274,12 @@ export default { ...@@ -260,10 +274,12 @@ export default {
line-height: 48px; line-height: 48px;
margin-right: 10px; margin-right: 10px;
} }
.errorCode { .errorCode {
margin-top: 10px; margin-top: 10px;
} }
} }
.tips { .tips {
font-size: 14px; font-size: 14px;
font-weight: 500; font-weight: 500;
...@@ -277,11 +293,14 @@ export default { ...@@ -277,11 +293,14 @@ export default {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.errorCode { .errorCode {
font-size: 12px; font-size: 12px;
font-weight: 400; font-weight: 400;
color: #d7373f; color: #d7373f;
line-height: 12px; line-height: 12px;
} }
} }
</style> </style>
...@@ -15,12 +15,23 @@ ...@@ -15,12 +15,23 @@
报名费用 :<span>{{ has_amount }} </span> 报名费用 :<span>{{ has_amount }} </span>
</div> </div>
<div class="btn"> <div class="btn">
<el-button @click="paying()">立即支付 </el-button> <el-button v-if="$store.state.human == 1" @click="paying()"
>上传缴费截图
</el-button>
<el-button v-else @click="paying()">立即支付 </el-button>
</div> </div>
</div> </div>
<div class="pay_bottom" v-if="$store.state.indexIdentity == '6c6884d1c83040ee8ca17736a8d67b93'"> <div>
<div>注意事项:</div> <!-- 清华大学人文学院 “中国现当代文学经典研读”学分课程 -->
<div
class="pay_bottom"
v-if="
$store.state.human == 1 &&
$store.state.indexIdentity == '6c6884d1c83040ee8ca17736a8d67b93'
"
>
<div class="cc"><span class="starIcon">*</span>注意事项:</div>
<div> <div>
请参照清华大学人文学院“中国现当代文学经典研读”学分课程简章中缴费方式。 请参照清华大学人文学院“中国现当代文学经典研读”学分课程简章中缴费方式。
<span class="cc">汇款或扫码支付后请务必保留付款截图</span> <span class="cc">汇款或扫码支付后请务必保留付款截图</span>
...@@ -28,40 +39,33 @@ ...@@ -28,40 +39,33 @@
<div> <div>
1、银行转账汇款时,请在附言/用途栏中注明 "21069363022 +学员姓名"。 1、银行转账汇款时,请在附言/用途栏中注明 "21069363022 +学员姓名"。
</div> </div>
<div> <div>2、扫码支付时,请在备注栏中注明“学员姓名”。</div>
2、扫码支付时,请在备注栏中注明“学员姓名”。 <div>3、未满18岁的学员,缴费请由家长支付。</div>
</div>
<div>
3、未满18岁的学员,缴费请由家长支付。
</div>
</div>
<div class="pay_bottom" v-else-if="$store.state.indexIdentity == '479205eb2dbf48fcbbeaee710a9b9d24'">
<div>注意事项:</div>
<div>
1、支付成功后请务必保留付款截图。
</div> </div>
<!-- 清华历史课“中国历史通解”(第二期)学分课程 -->
<div
class="pay_bottom"
v-else-if="
$store.state.human == 1 &&
$store.state.indexIdentity == '479205eb2dbf48fcbbeaee710a9b9d24'
"
>
<div class="cc"><span class="starIcon">*</span>注意事项:</div>
<div>1、支付成功后请务必保留付款截图。</div>
<div> <div>
2、银行转账汇款时,请在附言/用途栏中注明“22069363005+学员姓名”。 2、银行转账汇款时,请在附言/用途栏中注明“22069363005+学员姓名”。
</div> </div>
<div> <div>3、未满18岁的学员,缴费请由家长支付。</div>
3、未满18岁的学员,缴费请由家长支付。 <div class="cc" style="margin-top: 10px">
</div> <span class="starIcon">*</span>汇款信息:
<div style="margin-top: 10px;">汇款信息:</div>
<div>
收款单位:清华大学
</div>
<div>
帐号:0200004509089131550
</div>
<div>
开户行:工行北京分行海淀西区支行
</div>
<div>
附言/用途:请在附言栏中注明“22069363005+学员姓名”
</div> </div>
<div>收款单位:清华大学</div>
<div>帐号:0200004509089131550</div>
<div>开户行:工行北京分行海淀西区支行</div>
<div>附言/用途:请在附言栏中注明“22069363005+学员姓名”</div>
</div> </div>
<div class="pay_bottom" v-else> <div v-else class="pay_bottom">
<div>注意事项:</div> <div class="cc"><span class="starIcon">*</span>注意事项:</div>
<div> <div>
1、学生支付完成后请不要立即关闭浏览器,等待支付完成返回本页面,以确认支付完成。 1、学生支付完成后请不要立即关闭浏览器,等待支付完成返回本页面,以确认支付完成。
</div> </div>
...@@ -72,11 +76,12 @@ ...@@ -72,11 +76,12 @@
3、如果在完成支付后,状态许久未更新为“报名成功”,请仔细核查自己支付账号是否已扣费。 3、如果在完成支付后,状态许久未更新为“报名成功”,请仔细核查自己支付账号是否已扣费。
</div> </div>
<div> <div>
4、对于多次缴费的考生,除生效一笔之外其他重复支付的得用会在缴费结束阶段统一退款 4、对于多次缴费的学生,除生效一笔之外其他重复支付的费用会在缴费结束阶段统一退费
</div> </div>
<!-- <div>5、网上缴费如有问题,请致电项目组工作人员:XXX-XXXXXXXXX。</div> --> <!-- <div>5、网上缴费如有问题,请致电项目组工作人员:XXX-XXXXXXXXX。</div> -->
</div> </div>
</div> </div>
</div>
<!-- 支付扫码框 --> <!-- 支付扫码框 -->
<!-- <el-dialog title="微信支付" :visible.sync="dialogVisible" width="20%"> <!-- <el-dialog title="微信支付" :visible.sync="dialogVisible" width="20%">
<div class="pay_code"> <div class="pay_code">
...@@ -94,19 +99,148 @@ ...@@ -94,19 +99,148 @@
</div> </div>
</span> </span>
</el-dialog> --> </el-dialog> -->
<!-- 提示:打开电脑端后不能切换手机端 -->
<el-dialog
title="提示"
:visible.sync="dialogPayingVisible"
width="30%"
:before-close="handleClose"
>
<div class="margin1">
如您使用手机报名:点击“确认”后将直接发起微信支付,按照指引完成支付即可。
</div>
<div class="margin1">
如您使用电脑报名:点击“确认”后系统将出现支付二维码,使用手机微信或支付宝扫码,按照指引完成支付即可。
</div>
<div>
<div>为保障支付顺利,请注意:</div>
<div>1、请确保支付账户余额充足。</div>
<div>
2、如因支付失败需再次支付时,务必使用和第一次支付时相同的微信或支付宝账号进行操作。
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogPayingVisible = false">取 消</el-button>
<el-button type="primary" @click="toPaying">确 定</el-button>
</span>
</el-dialog>
<!-- 微信支付宝2选1 -->
<el-dialog
title="支付方式"
:visible.sync="dialogChoose"
width="600px"
:before-close="handleClose"
>
<div class="choose">
<div class="flex img_choose">
<img
src="../../../assets/img/paying/weichat.png"
alt=""
@click="toWeichat"
/>
<img
src="../../../assets/img/paying/paybao.png"
alt=""
@click="toPaybao"
/>
</div>
<div class="text_choose">请选择支付方式</div>
</div>
</el-dialog>
<!-- 微信支付 -->
<confirm-sign-up <confirm-sign-up
:confirmSignUpDialogFu="confirmSignUpDialogFu" :confirmSignUpDialogFu="confirmSignUpDialogFu"
@closeCFSUDialog="closeCFSUDialog" @closeCFSUDialog="closeCFSUDialog"
></confirm-sign-up> ></confirm-sign-up>
<!-- 上传付款材料 -->
<el-dialog
title="银行卡支付"
:visible.sync="bankDialogVisible"
width="30%"
:before-close="handleClose"
>
<div>收款单位:{{ payee }}</div>
<div>账号:{{ bank_idcard }}</div>
<div>开户行:{{ bank_first }}</div>
<div>上传转账截图</div>
<div class="image_add">
<div class="image_in">
<el-upload
:class="{ hide: hideUpload }"
ref="imgUrl"
name="multipartFile"
list-type="picture-card"
:disabled="isUploading || fileList.length >= 1"
action="#"
accept=".jpg,.jpeg,.png"
:limit="1"
:file-list="fileList"
:before-upload="beforeAvatarUpload"
:on-progress="handleUploadProgress"
:on-success="uploadSuccess"
:http-request="uploadPicture"
>
<div slot="file" slot-scope="{ file }">
<div v-for="(item, idx) in fileList" :key="idx">
<img
class="el-upload-list__item-thumbnail"
:src="file.url"
alt=""
/>
<span class="el-upload-list__item-actions">
<span
class="el-upload-list__item-preview"
@click="handlePictureCardPreview(file)"
>
<i class="el-icon-zoom-in"></i>
</span>
<span
v-if="!disabled"
class="el-upload-list__item-delete"
@click="handleDownload(file)"
>
<i class="el-icon-download"></i>
</span>
<span
v-if="!disabled"
class="el-upload-list__item-delete"
@click="handleRemove(file)"
>
<i class="el-icon-delete"></i>
</span>
</span>
</div>
</div>
<i style="font-size: 44px" class="el-icon-circle-plus"> </i>
</el-upload>
</div>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="resultPicture" alt="" />
</el-dialog>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="bankDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="uploadConfirm">确 定</el-button>
</span>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
/* eslint-disable */ /* eslint-disable */
import ConfirmSignUp from "c/index/SignUp/ConfirmSignUp"; import ConfirmSignUp from "c/index/SignUp/ConfirmSignUp";
import { getAccount } from "r/index/signUp"; import { SERVER_WS_URL } from "@/config/server";
import { signUpInit } from "r/index/signUp"; import {
signUpInit,
getAccount,
getBankInfoOss,
delPayingPic,
} from "r/index/signUp";
import { getWxConfig } from "r/index/pay"; import { getWxConfig } from "r/index/pay";
import { upload } from "r/index/network";
export default { export default {
name: "Paying", name: "Paying",
...@@ -115,58 +249,292 @@ export default { ...@@ -115,58 +249,292 @@ export default {
}, },
data() { data() {
return { return {
dialogPayingVisible: false, //支付时候tip
dialogChoose: false, //付款方式选择
confirmSignUpDialogFu: false, // 控制确认报名弹框的显示与隐藏 confirmSignUpDialogFu: false, // 控制确认报名弹框的显示与隐藏
bankDialogVisible: false, //上传银行截图弹框的显示与隐藏
personalInfo: {}, personalInfo: {},
camp_name: "", //营地名称 camp_name: "", //营地名称
has_amount: "", //支付金额 has_amount: "", //支付金额
status: "", //状态 status: "", //状态
status_wx: "", //状态 status_wx: "", //状态
type: "", //状态 type: "", //状态
//支付状态判断
transfer_account: window.localStorage.getItem(
"transfer_account" + this.$store.state.indexIdentity
),
payee: window.localStorage.getItem(
"payee" + this.$store.state.indexIdentity
),
bank_first: window.localStorage.getItem(
"bank_first" + this.$store.state.indexIdentity
),
bank_idcard: window.localStorage.getItem(
"bank_idcard" + this.$store.state.indexIdentity
),
isUploading: false, // 图片上传蒙层
dialogVisible: false,
fileList: [],
file: "",
file_image: {},
resultPicture: "",
disabled: false, //限制输入框
hideUpload: false,
limitCount: 1,
isBank_infoFile:false,
}; };
}, },
created() { created() {
const code = this.$store.state.indexIdentity; const code = this.$store.state.indexIdentity;
this.camp_name = window.localStorage.getItem("camp_name" + code); this.camp_name = window.localStorage.getItem("camp_name" + code);
this.has_amount = window.localStorage.getItem("has_amount" + code); this.has_amount = window.localStorage.getItem("has_amount" + code);
// 已上传的银行付款图片
let bank_infoFile = window.localStorage.getItem(
"bank_info" + window.localStorage.getItem("phone" + code) + code
);
JSON.parse(bank_infoFile).map((i)=>{
if(i.url!=''){
this.isBank_infoFile=true
}
})
if (bank_infoFile &&this.isBank_infoFile==true&& JSON.parse(bank_infoFile).length > 0) {
console.log(JSON.parse(bank_infoFile));
this.fileList = JSON.parse(bank_infoFile);
}
this.getAccount(); this.getAccount();
this.commonApi(33)
}, },
methods: { methods: {
handleClose(done) {
this.$confirm("确认关闭?")
.then((_) => {
done();
})
.catch((_) => {});
},
// 子组件触发,关闭确认报名弹框 // 子组件触发,关闭确认报名弹框
closeCFSUDialog(val, type) { closeCFSUDialog(val) {
console.log(val, "val");
this.confirmSignUpDialogFu = val; this.confirmSignUpDialogFu = val;
if (type) {
clearInterval(this.timer);
}
}, },
toWeichat() {
paying() { // this.dialogChoose = false;
console.log(111) this.confirmSignUpDialogFu = true;
},
toPaybao() {
getWxConfig({ getWxConfig({
pay_type: 1, pay_type: 2,
}).then((res) => { }).then((res) => {
console.log(res, "getWxConfig"); console.log(res, "getWxConfig");
// this.status_wx = res.data.status; if (res.data.code != 200) {
this.$emit("getstatus", res.data.status); return this.$message.error(res.data.message);
console.log(this.status_wx, " this.status_wx"); }
this.signUpInit(this.status_wx); /* 此处form就是后台返回接收到的数据 */
let form = res.data.data;
console.log(form);
// return
let div = document.createElement("div");
div.innerHTML = form;
document.body.appendChild(div);
document.forms[0].acceptCharset = "GBK"; //保持与支付宝默认编码格式一致,如果不一致将会出现:调试错误,请回到请求来源地.
// 重新发起请求,错误代码 invalid-signature 错误原因: 验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配
document.forms[0].submit(); //
let alipay_submit = document.getElementById("alipay_submit");
div.removeChild(alipay_submit);
//初始化 websocket 链接
this.initWebSocket();
}); });
// return;
}, },
signUpInit(status_wx) { // 初始化 webSocket
signUpInit({}).then((res) => { initWebSocket() {
if (typeof WebSocket == "undefined") {
this.$message({
showClose: true,
message: "您的浏览器不支持WebSocket",
type: "error",
});
} else if (!this.dialogChoose) {
return;
} else {
let code = this.$store.state.indexIdentity;
if (!this.token || this.token == "") {
this.token = window.localStorage.getItem("index-token" + code);
}
let token = this.token;
var wssURL = SERVER_WS_URL + "/order?token=" + token + "&channel=pc";
console.log(wssURL);
this.websocket = new WebSocket(wssURL);
console.log(this.websocket);
// 连接发生错误的回调方法
this.websocket.onerror = this.websocketOnerror;
// 连接成功建立的回调方法
this.websocket.onopen = this.websocketOnopen;
// 接收到消息的回调方法
this.websocket.onmessage = this.websocketOnmessage;
// 连接关闭的回调方法
this.websocket.onclose = this.websocketOnclose;
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
this.websocket.onbeforeunload = this.websocketOnbeforeunload;
// this.websocketSend();
// setTimeout(() => {
// this.websocketSend();
// }, 1000);
}
},
reconnect() {
//重新连接
let that = this;
if (!that.dialogChoose) {
return;
}
if (that.lockReconnect) {
return;
}
that.lockReconnect = true;
//没连接上会一直重连,设置延迟避免请求过多
that.timeoutnum && clearTimeout(that.timeoutnum);
that.timeoutnum = setTimeout(function () {
//新连接
that.initWebSocket();
that.lockReconnect = false;
}, 5000);
},
reset() {
//重置心跳
let that = this;
//清除时间
clearTimeout(that.timeoutObj);
clearTimeout(that.serverTimeoutObj);
//重启心跳
that.start();
},
start() {
//开启心跳
let self = this;
self.timeoutObj && clearTimeout(self.timeoutObj);
self.serverTimeoutObj && clearTimeout(self.serverTimeoutObj);
self.timeoutObj = setTimeout(function () {
//这里发送一个心跳,后端收到后,返回一个心跳消息,
if (self.websocket.readyState == 1) {
//如果连接正常
self.websocket.send("heartCheck");
} else {
//否则重连
self.reconnect();
}
self.serverTimeoutObj = setTimeout(function () {
//超时关闭
self.websocket.close();
}, self.timeout);
}, self.timeout);
},
// 连接发生错误的回调方法
websocketOnerror() {
this.$message.error("WebSocket连接发生错误");
//重连
this.reconnect();
},
// 连接成功建立的回调方法
websocketOnopen() {
this.websocketSend();
// console.log("连接成功建立的回调方法");
//开启心跳
this.start();
},
websocketSend() {
//数据发送
let sendData = {
order_no: window.localStorage.getItem(
"order_no" + this.$store.state.indexIdentity
),
cam_id: window.localStorage.getItem(
"campsite_id" + this.$store.state.indexIdentity
),
token: this.token,
};
this.websocket.send(JSON.stringify(sendData));
},
// 接收到消息的回调方法
websocketOnmessage(event) {
console.log(event, "event");
if (event.data !== "Opened") {
//const data = JSON.parse(event.data);
// console.log("接收到消息的回调方法", event.data);
if (event.data == 1) {
this.lockReconnect = false;
this.closeWebSocket();
// this.dialogVisible = false;
// this.$emit("closeCFSUDialog", this.dialogVisible, true);
} else {
//收到服务器信息,心跳重置
this.reset();
}
}
},
// 连接关闭的回调方法
websocketOnclose() {
// console.log("连接关闭的回调方法");
//重连
this.reconnect();
},
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常
websocketOnbeforeunload() {
this.closeWebSocket();
// console.log('监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常');
},
// 关闭WebSocket连接
closeWebSocket() {
this.websocket && this.websocket.close();
},
// 立即支付-按钮
paying() {
console.log(this.$store.state);
let code = this.$store.state.indexIdentity;
console.log(code == "3c7e84455750447799e4b70bda5f4493")
if (code == "3c7e84455750447799e4b70bda5f4493") {
console.log('1111')
this.toPaying();
} else {
this.dialogPayingVisible = true;
}
},
toPaying() {
this.commonApi(34)
this.dialogPayingVisible = false;
if (this.has_amount == 0) {
getWxConfig({ pay_type: 3 }).then((res) => {
console.log(res, "signUpInit"); console.log(res, "signUpInit");
if (res.data.code != 200) { if (res.data.code != 200) {
return this.$message.error(res.data.message); return this.$message.error(res.data.message);
} }
// this.status = res.data.status; this.$message.success(res.data.err_msg);
// 点击下一步传值给status,更新 });
if (status_wx) { this.$emit("getstatus", 6);
this.status = status_wx;
console.log(this.status, "status_wx");
} else { } else {
this.status = res.data.status; // transfer_account 判断微信支付宝或者银行卡支付
// console.log(this.status, "11111"); if (this.transfer_account == 0) {
this.dialogChoose = true;
} else {
this.bankDialogVisible = true;
console.log(this.fileList);
console.log(this.fileList != []);
if (this.fileList.length >= 1) {
this.hideUpload = true;
}
}
} }
// setTimeout(this.signUpInit(this.status_wx), 1000);
},
signUpInit() {
signUpInit({}).then((res) => {
console.log(res, "signUpInit");
if (res.data.code != 200) {
return this.$message.error(res.data.message);
}
this.status = res.data.status;
// return; // return;
// 点击下一步传值给status,更新 // 点击下一步传值给status,更新
if (this.status == 4) { if (this.status == 4) {
...@@ -182,13 +550,41 @@ export default { ...@@ -182,13 +550,41 @@ export default {
this.status = 2; this.status = 2;
} }
} }
this.confirmSignUpDialogFu = true; if (res.data.pay_amount == 0) {
getWxConfig({ pay_type: 3 }).then((res) => {
console.log(res, "signUpInit");
if (res.data.code != 200) {
return this.$message.error(res.data.message);
}
this.$message.success(res.data.err_msg);
});
}
// pay_amount支付金额等于0,直接跳到成功页面
} else if (this.status == 5) { } else if (this.status == 5) {
this.type = "pay"; this.type = "pay";
this.confirmSignUpDialogFu = true; // pay_amount支付金额等于0,直接跳到成功页面
} else if (this.status == 6) { if (res.data.pay_amount == 0) {
this.type = "success"; this.type = "success";
this.$emit("getstatus", 6);
} else {
// transfer_account 判断微信支付宝或者银行卡支付
if (this.transfer_account == 0) {
this.dialogChoose = true;
} else {
this.bankDialogVisible = true;
console.log(this.fileList);
console.log(this.fileList != []);
if (this.fileList.length >= 1) {
this.hideUpload = true;
} }
}
}
}
// else if (this.status == 6) {
// this.type = "success";
// }
this.$emit("getstatus", res.data.status);
}); });
}, },
getAccount() { getAccount() {
...@@ -201,6 +597,192 @@ export default { ...@@ -201,6 +597,192 @@ export default {
// this.personalInfo.create_time = parseTime(res.data.info.create_time); // this.personalInfo.create_time = parseTime(res.data.info.create_time);
}); });
}, },
// 图片上传成功前钩子
beforeAvatarUpload(file) {
// console.log(file, "beforeImage");
const isJPG = file.type === "image/jpg";
const isPng = file.type === "image/png";
const isJPEG = file.type === "image/jpeg";
const isLt10M = file.size / 1024 / 1024 < 10;
// console.log(isLt10M)
if (!isJPG && !isPng && !isJPEG) {
this.$message.info("上传图片只能是 JPG,JPEG或png 格式!");
}
if (!isLt10M) {
this.$message.info("上传图片大小不能超过 10MB!");
}
return (isJPG || isPng || isJPEG) && isLt10M;
},
handlePictureCardPreview(file) {
console.log(file, "11111111");
this.resultPicture = file.url;
this.dialogVisible = true;
},
// 文件上传中处理
handleUploadProgress(event, file, fileList) {
// console.log(fileList);
this.isUploading = true;
if (this.fileList.length < 1) {
return this.$message.info("超过上传数量");
}
},
uploadSuccess(res, file, fileList) {
// console.log(res, "res");
// console.log(file, "file");
// console.log(fileList, "fileList");
this.referForm.achievementPath = res;
this.fileList = {
name: file.name,
url: res,
};
this.$refs["imgUrl"].clearFiles(); //上传成功之后清除历史记录
},
uploadPicture(params) {
// console.log("已经准备好上传图片", params);
this.file = params.file;
let raw = params.file;
let image = {
name: raw.name,
size: raw.size,
type: raw.type,
};
this.file_image = image;
this.getOssConfigs(this.file_image, params.file);
},
// 上传截图
uploadConfirm() {
this.bankDialogVisible = false;
// this.$message.success("你的支付信息已提交,请留意短信通知。");
// this.getOssConfigs(this.file_image, this.file);
},
async changeStatus() {
// console.log(SERVER_WS_URL);
let { data: res } = await getWxConfig({
pay_type: 4,
});
},
async getOssConfigs(image, file) {
let obj = {
url: "",
savefile: "",
};
await getBankInfoOss({ image: image })
.then((res) => {
console.log(res, "开始上传图片");
if (res.data.code === 200) {
let oss_url = res.data.config.host;
let filename = res.data.config.file;
let formData = new FormData();
formData.append("OSSAccessKeyId", res.data.config.accessid);
formData.append("policy", res.data.config.policy);
formData.append("signature", res.data.config.signature);
formData.append("filename", res.data.config.file);
formData.append("key", res.data.config.savefile);
formData.append("callback", res.data.config.callback);
formData.append("success_action_status", 200);
formData.append("file", file);
// console.log(formData);
upload(oss_url, formData)
.then((ress) => {
console.log(555555555);
console.log(ress, "ress");
if (ress.data.code != 200) {
return this.$message.error(ress.data.message);
}
this.resultPicture = filename + "?t=" + Date.parse(new Date());
// this.$forceUpdate();
obj = {
url: ress.data.picture_path,
savefile: res.data.config.savefile,
};
this.fileList.push(obj);
let code = this.$store.state.indexIdentity;
window.localStorage.setItem(
"sign_up_payfile_" +
+window.localStorage.getItem("phone" + code) +
code,
JSON.stringify(this.fileList)
);
this.$message.success({
message:
"您已上传成功,等待短信通知,审核通过后登录报名网址。",
duration: 5000,
});
this.changeStatus();
this.hideUpload = this.fileList.length >= this.limitCount;
})
.catch((err) => {
this.$message.error(err);
});
} else {
this.$message.error(res.data.message);
}
})
.catch((err) => {
// console.log(err);
});
},
// 下载证明资料图片
handleDownload(file) {
// console.log(file,'file22');
window.location.href = file.url;
},
//删除图片
handleRemove(file) {
console.log(file, "file");
this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
let getfile = file.url;
// console.log(savefile.match(/^(?:[^\/]|\/\/)*/),'222222');//获取域名
let str = getfile.split(
"https://yingdi-bank-info.oss-cn-beijing.aliyuncs.com/"
); //https://yingdi-achievement.oss-cn-beijing.aliyuncs.com/进行分割,
// console.log(str, "str");
let savefile = str[1];
// console.log(savefile, "savefile");
delPayingPic({ object: savefile }).then((res) => {
// console.log(res, "delpic");
if (res.data.code != 200) {
return this.$message.error(res.data.message);
}
this.fileList.forEach((item, idx) => {
// console.log(item.url == file.url);
if (item.url == file.url) {
this.fileList.splice(idx, 1);
let code = this.$store.state.indexIdentity;
window.localStorage.setItem(
"sign_up_payfile_" +
window.localStorage.getItem("phone" + code) +
code,
JSON.stringify(this.fileList)
);
this.$message.success("删除成功");
this.hideUpload = this.fileList.length >= this.limitCount;
window.localStorage.removeItem(
"bank_info" +
window.localStorage.getItem("phone" + code) +
code
);
}
});
// console.log(this.fileList);
});
})
.catch((err) => {
this.$message({
type: "info",
message: "取消删除",
});
});
},
}, },
}; };
</script> </script>
...@@ -213,6 +795,20 @@ export default { ...@@ -213,6 +795,20 @@ export default {
.flex { .flex {
display: flex; display: flex;
} }
.margin1 {
margin-bottom: 1rem;
}
::v-deep .hide {
.el-upload--picture-card {
display: none;
}
.el-upload-list__item div {
height: 100%;
}
}
.paying { .paying {
padding: 0 56px 65px 56px; padding: 0 56px 65px 56px;
.pay_titile { .pay_titile {
...@@ -251,41 +847,66 @@ export default { ...@@ -251,41 +847,66 @@ export default {
font-weight: 500; font-weight: 500;
color: #999999; color: #999999;
line-height: 21px; line-height: 21px;
.cc {
font-weight: 600;
color: black;
} }
} .starIcon {
.pay_code { color: red;
text-align: center;
:nth-child(1) {
font-size: 14px;
font-weight: 500;
color: #12141c;
line-height: 14px;
span {
font-size: 13px !important;
color: var(--color);
} }
} }
:nth-child(2) { }
font-size: 14px; .choose {
font-weight: 500; text-align: center;
color: var(--color); .img_choose {
line-height: 24px; justify-content: space-around;
img {
width: 38%;
cursor: pointer;
} }
:nth-child(4) {
font-size: 14px;
font-weight: 500;
color: #333333;
line-height: 16px;
span {
font-size: 17px !important;
color: var(--color);
} }
.text_choose {
font-size: 15px;
margin: 20px 0 50px 0;
} }
:nth-child(5) { .btn .el-button {
font-size: 12px; width: 120px !important;
font-weight: 500;
color: #666666;
line-height: 12px;
} }
} }
// .pay_code {
// text-align: center;
// :nth-child(1) {
// font-size: 14px;
// font-weight: 500;
// color: #12141c;
// line-height: 14px;
// span {
// font-size: 13px !important;
// color: var(--color);
// }
// }
// :nth-child(2) {
// font-size: 14px;
// font-weight: 500;
// color: var(--color);
// line-height: 24px;
// }
// :nth-child(4) {
// font-size: 14px;
// font-weight: 500;
// color: #333333;
// line-height: 16px;
// span {
// font-size: 17px !important;
// color: var(--color);
// }
// }
// :nth-child(5) {
// font-size: 12px;
// font-weight: 500;
// color: #666666;
// line-height: 12px;
// }
// }
</style> </style>
<template> <template>
<div class="referInfo"> <div class="referInfo">
<!-- 测试 -->
<el-form <el-form
ref="referRef" ref="referRef"
:model="referForm" :model="referForm"
...@@ -9,8 +10,16 @@ ...@@ -9,8 +10,16 @@
> >
<div class="cont_title">个人信息</div> <div class="cont_title">个人信息</div>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <!-- 姓名 -->
<el-form-item label="姓名" prop="name"> <el-col :span="12" v-show="configJson.name == 1">
<el-form-item
label="姓名"
prop="name"
style="height: 73px"
:rules="
configJson.name == 1 ? referInfoRules.name : [{ required: false }]
"
>
<el-input <el-input
ref="name" ref="name"
v-model="referForm.name" v-model="referForm.name"
...@@ -20,8 +29,18 @@ ...@@ -20,8 +29,18 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <!-- 性别 -->
<el-form-item label="性别" prop="gender"> <el-col :span="12" v-show="configJson.gender == 1">
<el-form-item
label="性别"
prop="gender"
style="height: 73px"
:rules="
configJson.gender == 1
? referInfoRules.gender
: [{ required: false }]
"
>
<el-radio-group <el-radio-group
v-model="referForm.gender" v-model="referForm.gender"
ref="gender" ref="gender"
...@@ -32,22 +51,232 @@ ...@@ -32,22 +51,232 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 年龄 -->
<el-col :span="12" v-show="configJson.age == 1">
<el-form-item
label="年龄"
prop="age"
style="height: 70px"
:rules="
configJson.age == 1 ? referInfoRules.age : [{ required: false }]
"
>
<el-input
ref="age"
v-model="referForm.age"
placeholder="填写年龄"
size="small"
clearable
/>
</el-form-item>
</el-col>
<!--国籍-->
<el-col :span="12" v-show="configJson.country == 1">
<el-form-item
label="国籍"
prop="country"
style="height: 70px"
:rules="
configJson.country == 1
? referInfoRules.country
: [{ required: false }]
"
>
<el-select
v-model="referForm.country"
placeholder="国籍"
:popper-append-to-body="false"
filterable
>
<el-option
v-for="(item, index) in countryList"
:key="index"
:label="item.label"
:value="item.label"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<!-- 入学年份 -->
<!--<el-col :span="12">
<el-form-item label="入学年份" prop="start_school_date">
<el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="身份证号" prop="id_card"> <el-select
v-model="start_grade"
placeholder="年级"
:popper-append-to-body="false"
clearable
>
<el-option
v-for="(item, index) in gradeArrs"
:key="index"
:label="item"
:value="item"
>
</el-option>
</el-select>
</el-col>
<el-col :span="24">
<el-select
ref="start_school_date"
v-model="start_year"
placeholder="年份"
clearable
:popper-append-to-body="false"
@change="getyear()"
>
<el-option
v-for="(item, index) in yearArrs"
:key="index"
:label="item"
:value="item"
>
</el-option>
</el-select>
</el-col>
</el-row>
</el-form-item>
</el-col>-->
<!-- 身份证号 -->
<el-col :span="12" v-show="configJson.idCard == 1">
<el-form-item
label="身份证号"
prop="id_card"
style="height: 70px"
:rules="
configJson.idCard == 1
? referInfoRules.idCard
: [{ required: false }]
"
>
<el-input <el-input
ref="id_card" ref="id_card"
v-model="referForm.id_card" v-model="referForm.id_card"
placeholder="填写真实身份证号" placeholder="填写真实身份证号"
size="small" size="small"
/>
</el-form-item>
</el-col>
<!-- 手机号 -->
<el-col :span="12" v-show="configJson.phone == 1">
<el-form-item
label="手机号"
style="height: 70px"
:rules="
configJson.phone == 1
? referInfoRules.phone
: [{ required: false }]
"
>
<el-input
v-model="referForm.phone"
placeholder="请输入手机号"
size="small"
:disabled="true"
/>
</el-form-item>
</el-col>
<!-- 学历 -->
<el-col :span="12" v-show="configJson.education == 1">
<el-form-item
label="学历"
prop="education"
style="height: 70px"
:rules="
configJson.education == 1
? referInfoRules.education
: [{ required: false }]
"
>
<el-select
v-model="referForm.education"
placeholder="请选择学历"
:popper-append-to-body="false"
clearable clearable
>
<el-option
v-for="(item, index) in EducationArrs"
:key="index"
:label="item"
:value="item"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<!-- 单位名称 -->
<el-col :span="12" v-show="configJson.unitandIdentity == 1">
<el-form-item
label="单位名称及身份"
prop="unit_and_identity"
style="height: 70px"
:rules="
configJson.unitandIdentity == 1
? referInfoRules.unit_and_identity
: [{ required: false }]
"
>
<el-input
v-model="referForm.unit_and_identity"
placeholder="请输入单位名称及身份"
size="small"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <!-- 电子邮箱 -->
<el-form-item label="出生日期" prop="birthday"> <el-col :span="12" v-show="configJson.email == 1">
<el-form-item
label="电子邮箱"
prop="email"
style="height: 73px"
:rules="
configJson.email == 1
? referInfoRules.email
: [{ required: false }]
"
>
<el-input
v-model="referForm.email"
placeholder="填写电子邮箱"
size="small"
/>
</el-form-item>
</el-col>
<!-- 推荐人(非必填) -->
<el-col :span="12" v-show="configJson.recommend == 1">
<el-form-item
label="什么渠道了解的该项目(或推荐人是)?"
style="height: 73px"
>
<el-input
v-model="referForm.recommend"
placeholder="填写推荐人或渠道(选填)"
size="small"
/>
</el-form-item>
</el-col>
<!-- 出生日期 -->
<el-col :span="12" v-show="configJson.birthday == 1">
<el-form-item
label="出生日期"
prop="birthday"
style="height: 73px"
:rules="
configJson.birthday == 1
? referInfoRules.birthday
: [{ required: false }]
"
>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-select v-model="bdYear" placeholder="年"> <el-select
v-model="bdYear"
placeholder="年"
:popper-append-to-body="false"
>
<el-option <el-option
v-for="(item, index) in yearArrs" v-for="(item, index) in yearArrs"
:key="index" :key="index"
...@@ -58,7 +287,11 @@ ...@@ -58,7 +287,11 @@
</el-select> </el-select>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-select v-model="bdMonth" placeholder="月"> <el-select
v-model="bdMonth"
placeholder="月"
:popper-append-to-body="false"
>
<el-option <el-option
v-for="(item, index) in monthArrs" v-for="(item, index) in monthArrs"
:key="index" :key="index"
...@@ -73,6 +306,7 @@ ...@@ -73,6 +306,7 @@
ref="birthday" ref="birthday"
v-model="bdDay" v-model="bdDay"
placeholder="日" placeholder="日"
:popper-append-to-body="false"
@change="getTime" @change="getTime"
> >
<el-option <el-option
...@@ -87,15 +321,25 @@ ...@@ -87,15 +321,25 @@
</el-row> </el-row>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 籍贯 -->
<el-col :span="12"> <el-col :span="12" v-show="configJson.jiguanCity == 1">
<el-form-item label="籍贯" prop="jiguan_code"> <el-form-item
label="籍贯"
prop="jiguan_code"
style="height: 73px"
:rules="
configJson.jiguanCity == 1
? referInfoRules.jiguan_code
: [{ required: false }]
"
>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<!-- @keyup.enter.native="selsectProvince" --> <!-- @keyup.enter.native="selsectProvince" -->
<el-select <el-select
v-model="jgProvinceCode" v-model="jgProvinceCode"
placeholder="省" placeholder="省"
:popper-append-to-body="false"
@change="changeProvince(1, $event)" @change="changeProvince(1, $event)"
> >
<el-option <el-option
...@@ -112,6 +356,7 @@ ...@@ -112,6 +356,7 @@
ref="jiguan_code" ref="jiguan_code"
v-model="jiguan_city" v-model="jiguan_city"
placeholder="市" placeholder="市"
:popper-append-to-body="false"
@change="getJiguan()" @change="getJiguan()"
> >
<el-option <el-option
...@@ -126,8 +371,18 @@ ...@@ -126,8 +371,18 @@
</el-row> </el-row>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <!-- 民族 -->
<el-form-item label="民族" prop="nation"> <el-col :span="12" v-show="configJson.nation == 1">
<el-form-item
label="民族"
prop="nation"
style="height: 73px"
:rules="
configJson.nation == 1
? referInfoRules.nation
: [{ required: false }]
"
>
<el-input <el-input
ref="nation" ref="nation"
v-model="referForm.nation" v-model="referForm.nation"
...@@ -137,11 +392,26 @@ ...@@ -137,11 +392,26 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <!-- 入学年份 -->
<el-form-item label="入学年份" prop="start_school_date"> <el-col :span="12" v-show="configJson.startSchoolDate == 1">
<el-form-item
label="入学年份"
prop="start_school_date"
style="height: 73px"
:rules="
configJson.startSchoolDate == 1
? referInfoRules.start_school_date
: [{ required: false }]
"
>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <!-- <el-col :span="12">
<el-select v-model="start_grade" placeholder="年级" clearable> <el-select
v-model="start_grade"
placeholder="年级"
:popper-append-to-body="false"
clearable
>
<el-option <el-option
v-for="(item, index) in gradeArrs" v-for="(item, index) in gradeArrs"
:key="index" :key="index"
...@@ -150,13 +420,14 @@ ...@@ -150,13 +420,14 @@
> >
</el-option> </el-option>
</el-select> </el-select>
</el-col> </el-col> -->
<el-col :span="12"> <!-- <el-col :span="12"> -->
<el-select <el-select
ref="start_school_date" ref="start_school_date"
v-model="start_year" v-model="start_year"
placeholder="年份" placeholder="年份"
clearable clearable
:popper-append-to-body="false"
@change="getyear()" @change="getyear()"
> >
<el-option <el-option
...@@ -167,16 +438,27 @@ ...@@ -167,16 +438,27 @@
> >
</el-option> </el-option>
</el-select> </el-select>
</el-col> <!-- </el-col> -->
</el-row> </el-row>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <!-- 政治面貌 -->
<el-form-item label="政治面貌" prop="political_status"> <el-col :span="12" v-show="configJson.politicalStatus == 1">
<el-form-item
label="政治面貌"
prop="political_status"
style="height: 73px"
:rules="
configJson.politicalStatus == 1
? referInfoRules.political_status
: [{ required: false }]
"
>
<el-select <el-select
ref="political_status" ref="political_status"
v-model="referForm.political_status" v-model="referForm.political_status"
placeholder="填写政治面貌" placeholder="填写政治面貌"
:popper-append-to-body="false"
clearable clearable
> >
<el-option <el-option
...@@ -189,37 +471,295 @@ ...@@ -189,37 +471,295 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <!-- 在读年级 -->
<el-form-item label="手机号"> <el-col :span="12" v-show="configJson.grade == 1">
<el-form-item
label="在读年级"
prop="grade"
style="height: 73px"
:rules="
configJson.grade == 1
? referInfoRules.grade
: [{ required: false }]
"
>
<el-select
v-model="referForm.grade"
placeholder="在读年级"
:popper-append-to-body="false"
clearable
>
<el-option
v-for="(item, index) in gradeArrs"
:key="index"
:label="item"
:value="item"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<!-- 选科情况 -->
<el-col :span="12" v-show="configJson.electSubjectSituation == 1">
<el-form-item
label="选科情况"
prop="subjectState"
style="height: 73px"
:rules="
configJson.electSubjectSituation == 1
? referInfoRules.subjectState
: [{ required: false }]
"
>
<el-select
v-model="referForm.subjectState"
placeholder="请选科"
:popper-append-to-body="false"
@change="changeSubjectState"
clearable
>
<el-option
v-for="(item, index) in electSubjectArrs"
:key="index"
:label="item"
:value="item"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<!--已选科-->
<el-col :span="12" v-if="configJson.electSubjectSituation == 1&& showSubject == 1">
<el-form-item
label="选科(最多选三科)"
prop="chooseSubject"
style="height: 73px"
:rules="
showSubject == 1
? referInfoRules.chooseSubject
: [{ required: false }]
"
>
<el-select
v-model="referForm.chooseSubject"
multiple
placeholder="请选科"
:popper-append-to-body="false"
:multiple-limit="3"
@change="changeSubjectList"
clearable
>
<el-option
v-for="(item, index) in SubjectArrs"
:key="index"
:label="item"
:value="item"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<!-- 既往病史或过敏史 -->
<el-col :span="12" v-show="configJson.pastMedicalHistory == 1&&isOffline==true">
<el-form-item
label="既往病史或过敏史"
prop="past_medical_history"
style="height: 73px"
:rules="
(configJson.pastMedicalHistory == 1?true:false)&&isOffline==true
? referInfoRules.clothesSize
: [{ required: false }]
"
>
<el-input <el-input
v-model="referForm.phone" ref="code"
placeholder="请输入手机号" v-model="referForm.past_medical_history"
placeholder="填写既往病史或过敏史"
size="small" size="small"
:disabled="true" clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <!-- 备注或其它 -->
<el-form-item label="电子邮箱" prop="email"> <el-col :span="12" v-show="configJson.noteOther == 1&&isOffline==true">
<el-form-item
label="备注或其它"
prop="clothes_size"
style="height: 73px"
:rules="
(configJson.noteOther == 1?true:false)&&isOffline==true
? referInfoRules.clothesSize
: [{ required: false }]
"
>
<el-input <el-input
v-model="referForm.email" ref="code"
placeholder="填写电子邮箱" v-model="referForm.note_other"
placeholder="填写备注或其它"
size="small" size="small"
:disabled="true" clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> <!-- 衣服尺码-->
<el-col :span="12" v-show="configJson.clothesSize == 1&&isOffline==true">
<el-form-item
label="衣服尺码"
prop="clothes_size"
style="height: 73px"
:rules="
(configJson.clothesSize == 1?true:false)&&isOffline==true
? referInfoRules.clothesSize
: [{ required: false }]
"
>
<el-select
ref="clothes_size"
v-model="referForm.clothes_size"
placeholder="填写衣服尺码"
:popper-append-to-body="false"
clearable
>
<el-option
v-for="item in clothesSize"
:key="item.id"
:label="item.name"
:value="item.name"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<!-- 邀请码 -->
<el-col :span="12" v-show="configJson.code == 1">
<el-form-item
prop="code"
label="邀请码"
style="height: 73px"
>
<el-input
ref="code"
v-model="referForm.code"
placeholder="邀请码"
size="small"
:disabled="isCode"
@change="changeCode"
clearable
/>
</el-form-item>
<div class="tipsMsg">
每个邀请码仅能绑定一个用户
</div>
</el-col>
<!-- 自我介绍 -->
<el-col :span="12" v-show="configJson.introduceMyself == 1" >
<el-form-item
prop="introduce"
label="自我介绍"
style="height:100%"
:rules="
configJson.introduceMyself == 1
? referInfoRules.introduceMyself
: [{ required: false }]
"
>
<el-input
ref="code"
v-model="referForm.introduce"
placeholder="自我介绍"
type="textarea"
:rows="6"
maxlength="200"
size="small"
@change="changeIntroduce"
show-word-limit/>
</el-form-item>
<div class="tipsMsg">
用清晰、简洁的语言介绍自己对科学和创新的兴趣、经验和动机,以及为什么希望参加“强国有我”复旦大学信息科学与工程学院青少年科学营
</div>
</el-col>
</el-row>
<!-- 紧急联系人-->
<div
v-show="
configJson.emergency == 1 ||
configJson.emergencyPhone == 1
"
>
<div class="cont_title">紧急联系人</div>
<el-row :gutter="20">
<!-- 紧急联系人 -->
<el-col :span="12" v-show="configJson.emergency == 1">
<el-form-item
label="紧急联系人"
prop="emergency"
:rules="
configJson.emergency == 1
? referInfoRules.emergency
: [{ required: false }]
"
>
<el-input
ref="code"
v-model="referForm.emergency"
placeholder="填写紧急联系人"
size="small"
clearable
/>
</el-form-item>
</el-col>
<!-- 紧急联系人电话 -->
<el-col :span="12" v-show="configJson.emergencyPhone == 1">
<el-form-item
label="紧急联系人电话"
prop="emergency_phone"
:rules="
configJson.emergencyPhone == 1
? referInfoRules.emergency_phone
: [{ required: false }]
"
>
<el-input
ref="code"
v-model="referForm.emergency_phone"
placeholder="填写紧急联系人电话"
size="small"
clearable
/>
</el-form-item>
</el-col>
</el-row>
</div>
<!-- 学校信息 -->
<div
v-show="
configJson.school == 1 ||
configJson.schoolContacts == 1 ||
configJson.schoolPhone == 1
"
>
<div class="cont_title">学校信息</div> <div class="cont_title">学校信息</div>
<div class="school">
<el-row :gutter="20"> <el-row :gutter="20">
<div class="school_info" v-show="configJson.school == 1">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="就读中学" prop="school_province"> <el-form-item
label="就读中学"
prop="school_province"
:rules="
configJson.school == 1
? referInfoRules.school_province
: [{ required: false }]
"
>
<el-select <el-select
ref="school_province" ref="school_province"
v-model="referForm.school_province" v-model="referForm.school_province"
clearable clearable
placeholder="省" placeholder="省"
:popper-append-to-body="false"
@change="changeProvince(2, $event)" @change="changeProvince(2, $event)"
> >
<el-option <el-option
...@@ -233,12 +773,22 @@ ...@@ -233,12 +773,22 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item class="no_label" label=" " prop="school_city"> <el-form-item
class="no_label"
label=" "
prop="school_city"
:rules="
configJson.school == 1
? referInfoRules.school_city
: [{ required: false }]
"
>
<el-select <el-select
ref="school_city" ref="school_city"
v-model="referForm.school_city" v-model="referForm.school_city"
clearable clearable
placeholder="市" placeholder="市"
:popper-append-to-body="false"
@change="changeCity($event)" @change="changeCity($event)"
> >
<el-option <el-option
...@@ -252,12 +802,23 @@ ...@@ -252,12 +802,23 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item class="no_label" label=" " prop="school"> <el-form-item
class="no_label"
label=" "
prop="school"
:rules="
configJson.school == 1
? referInfoRules.school
: [{ required: false }]
"
>
<el-select <el-select
filterable
ref="school" ref="school"
v-model="referForm.school" v-model="referForm.school"
clearable clearable
placeholder="中学" placeholder="中学"
:popper-append-to-body="false"
> >
<el-option <el-option
v-for="item in selectSchoolList" v-for="item in selectSchoolList"
...@@ -268,13 +829,25 @@ ...@@ -268,13 +829,25 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<div class="tipsMsg" v-show="$store.state.baseSchool == 1">
如果没有您所在的学校,请选填其他
</div>
<div class="tipsMsg" v-show="$store.state.baseSchool == 0">
如果没有您所在学校,请联系邮箱:service@campcenter.cn
</div>
</el-col> </el-col>
<div class="tipsMsg">
如果没有您所在学校,请联系邮箱:ydhdservice@163.com
</div> </div>
<el-col :span="12">
<el-form-item label="中学联系人" prop="school_contacts"> <el-col :span="12" v-show="configJson.schoolContacts == 1">
<el-form-item
label="中学联系人"
prop="school_contacts"
:rules="
configJson.schoolContacts == 1
? referInfoRules.school_contacts
: [{ required: false }]
"
>
<el-input <el-input
ref="school_contacts" ref="school_contacts"
v-model="referForm.school_contacts" v-model="referForm.school_contacts"
...@@ -284,8 +857,16 @@ ...@@ -284,8 +857,16 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12" v-show="configJson.schoolPhone == 1">
<el-form-item label="中学联系人电话(手机)" prop="school_phone"> <el-form-item
label="中学联系人电话(手机)"
prop="school_phone"
:rules="
configJson.schoolPhone == 1
? referInfoRules.school_phone
: [{ required: false }]
"
>
<el-input <el-input
ref="school_phone" ref="school_phone"
v-model="referForm.school_phone" v-model="referForm.school_phone"
...@@ -296,11 +877,15 @@ ...@@ -296,11 +877,15 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</div>
</div>
<!-- 学习成绩证明材料 -->
<div v-show="configJson.achievementPath == 1">
<div class="cont_title">学习成绩证明材料</div> <div class="cont_title">学习成绩证明材料</div>
<el-form-item <el-form-item
label="上传申请资料图片" label="上传申请资料图片"
prop="backgroundPicture" prop="backgroundPicture"
style="height: 100%"
class="bgPic" class="bgPic"
> >
<div class="bgInfo"> <div class="bgInfo">
...@@ -328,7 +913,7 @@ ...@@ -328,7 +913,7 @@
<i style="font-size: 44px" class="el-icon-circle-plus"> </i> <i style="font-size: 44px" class="el-icon-circle-plus"> </i>
<!-- <div class="text">上传材料</div> --> <!-- <div class="text">上传材料</div> -->
<div slot="file" slot-scope="{ file }"> <div slot="file" slot-scope="{ file }">
<!-- <div v-for="(item, idx) in fileList" :key="idx"> --> <div v-for="(item, idx) in fileList" :key="idx">
<img <img
class="el-upload-list__item-thumbnail" class="el-upload-list__item-thumbnail"
:src="file.url" :src="file.url"
...@@ -357,6 +942,7 @@ ...@@ -357,6 +942,7 @@
</span> </span>
</span> </span>
</div> </div>
</div>
</el-upload> </el-upload>
</div> </div>
...@@ -365,17 +951,20 @@ ...@@ -365,17 +951,20 @@
</el-dialog> </el-dialog>
</div> </div>
</el-form-item> </el-form-item>
</div>
<el-form-item class="btn"> <div class="btn">
<el-button @click="confirm">提交资料</el-button> <el-button @click="confirm">提交资料</el-button>
</el-form-item> </div>
</el-form> </el-form>
<!-- 多形式报名邀请码报错弹框 -->
<cueDialog :dialogVisible="cueDialogVisible" :msg="msg"></cueDialog>
</div> </div>
</template> </template>
<script> <script>
/* eslint-disable */ /* eslint-disable */
import Cookie from "js-cookie"; import {setInviteCode} from "r/index/signUp";
import { import {
getAccount, getAccount,
getAchievementOss, getAchievementOss,
...@@ -386,10 +975,13 @@ ...@@ -386,10 +975,13 @@
} from "r/index/signUp"; } from "r/index/signUp";
import {upload} from "r/index/network"; import {upload} from "r/index/network";
import validator from "common/validator"; import validator from "common/validator";
import area from "config/area";
import cueDialog from "c/index/cueDialog";
export default { export default {
name: "CheckForm", name: "referInfo",
props: {invitation_code: String},
components: {cueDialog},
data() { data() {
const validateContent = (rule, value, callback) => { const validateContent = (rule, value, callback) => {
if (!this.referForm.birthday) { if (!this.referForm.birthday) {
...@@ -405,26 +997,58 @@ ...@@ -405,26 +997,58 @@
callback(); callback();
} }
}; };
const validateSubject = (rule, value, callback) => {
if (!this.elect_subject_situation) {
callback(new Error("选科不能为空!"));
} else {
callback();
}
};
return { return {
cueDialogVisible: false,
msg: null,
configJson: {},
isUploading: false, // 图片上传蒙层 isUploading: false, // 图片上传蒙层
isCode: false, // 邀请码是否禁用
showSubject: 0,//是否展示选科(多选)
subjectState: '',
elect_subject_situation: null,
referForm: { referForm: {
name: null, name: null,
gender: null, gender: null,
age: null,
id_card: null, id_card: null,
education: null,
birthday: null, birthday: null,
jiguan_code: null, jiguan_code: null,
address: null,
country: null,
nation: null, nation: null,
start_school_date: null, start_school_date: null,
political_status: null, political_status: null,
phone: null, phone: null,
grade: null,
unit_and_identity: null,
email: null, email: null,
recommend: null,
subjectState: null,
chooseSubject: [],
past_medical_history: null,
note_other: null,
clothes_size: null,
emergency: null,
emergency_phone: null,
introduce: null,
school_province: null, school_province: null,
school_city: null, school_city: null,
school: null, school: null,
school_contacts: null, school_contacts: null,
school_phone: null, school_phone: null,
code: null
}, },
// doubt_code: window.localStorage.getItem(
// "doubt_code" + this.$store.state.indexIdentity
// ),//是否填写邀请码
schoolName: {}, schoolName: {},
referInfoRules: { referInfoRules: {
name: [{required: true, message: "姓名不能为空!", trigger: "blur"}], name: [{required: true, message: "姓名不能为空!", trigger: "blur"}],
...@@ -432,7 +1056,7 @@ ...@@ -432,7 +1056,7 @@
{required: true, message: "性别不能为空!", trigger: "change"}, {required: true, message: "性别不能为空!", trigger: "change"},
], ],
id_card: [ id_card: [
{required: true, message: "身份证号不能为空!", trigger: "blur"}, // { required: true, message: "身份证号不能为空!", trigger: "blur" },
{validator: validator.validateid_card, trigger: "blur"}, {validator: validator.validateid_card, trigger: "blur"},
], ],
birthday: [ birthday: [
...@@ -445,9 +1069,17 @@ ...@@ -445,9 +1069,17 @@
jiguan_code: [ jiguan_code: [
{required: true, validator: validateContents, trigger: "change"}, {required: true, validator: validateContents, trigger: "change"},
], ],
nation: [ nation: [
{required: true, message: "民族不能为空!", trigger: "change"}, {required: true, message: "民族不能为空!", trigger: "change"},
], ],
country: [
{
required: true,
message: "国籍不能为空!",
trigger: "change",
},
],
start_school_date: [ start_school_date: [
{ {
required: true, required: true,
...@@ -458,10 +1090,104 @@ ...@@ -458,10 +1090,104 @@
political_status: [ political_status: [
{required: true, message: "政治面貌不能为空!", trigger: "blur"}, {required: true, message: "政治面貌不能为空!", trigger: "blur"},
], ],
// email: [ email: [
// { required: true, message: "电子邮箱不能为空!", trigger: "blur" }, {required: true, message: "电子邮箱不能为空!", trigger: "blur"},
// { validator: validator.validateEmail, trigger: "blur" }, {validator: validator.validateEmail, trigger: "blur"},
],
grade: [
{required: true, message: "在读年级不能为空!", trigger: "blur"},
],
age: [
{required: true, message: "年龄不能为空!", trigger: "blur"},
{validator: validator.validateNumber, trigger: "blur"},
],
education: [
{required: true, message: "学历不能为空!", trigger: "change"},
],
idCard: [
{
required: true,
message: "身份证号不能为空!",
trigger: "blur",
},
{validator: validator.validateid_card, trigger: "blur"},
],
// address: [
// { required: true, message: "详细地址不能为空!", trigger: "blur" },
// ], // ],
unit_and_identity: [
{
required: true,
message: "单位名称及身份不能为空!",
trigger: "blur",
},
],
subjectState: [
{
required: true,
message: "选科情况不能为空!",
trigger: "change",
},
],
phone: [
{
required: true,
message: "手机号不能为空!",
trigger: "blur",
},
{validator: validator.validatePhone, trigger: "blur"},
],
chooseSubject: [
{
required: true,
validator: validateSubject,
trigger: "change",
},
],
past_medical_history: [
{
required: true,
message: "既往病史或过敏史不能为空!",
trigger: "blur",
},
],
note_other: [
{
required: true,
message: "备注或其它不能为空!",
trigger: "blur",
},
],
emergency: [
{
required: true,
message: "紧急联系人不能为空!",
trigger: "blur",
},
],
emergency_phone: [
{
required: true,
message: "紧急联系人电话不能为空!",
trigger: "blur",
},
{validator: validator.validatePhone, trigger: "blur"},
],
clothesSize: [
{
required: true,
message: "衣服尺码不能为空!",
trigger: "change",
},
],
introduce: [
{
required: true,
message: "自我介绍不能为空!",
trigger: "blur",
},
],
school_province: [ school_province: [
{ {
required: true, required: true,
...@@ -492,6 +1218,7 @@ ...@@ -492,6 +1218,7 @@
], ],
// backgroundPicture: [{ required: true, message: "请上传图片" }], // backgroundPicture: [{ required: true, message: "请上传图片" }],
}, },
countryList: area.country, //国籍
selectProvince: [], //省份 selectProvince: [], //省份
CityName: {}, //根据省份筛选出所有城市的对象 CityName: {}, //根据省份筛选出所有城市的对象
selectCityJiguan: [], //籍贯城市列表 selectCityJiguan: [], //籍贯城市列表
...@@ -499,6 +1226,9 @@ ...@@ -499,6 +1226,9 @@
selectSchoolList: [], //就读中学-中学列表 selectSchoolList: [], //就读中学-中学列表
jgProvinceCode: "", //省份id jgProvinceCode: "", //省份id
jiguan_city: "", //城市id(和省份id拼接) jiguan_city: "", //城市id(和省份id拼接)
electSubjectArrs: ["未选科", "已选科", "文科", '理科'],
SubjectArrs: ["物理", "历史", "化学", "地理", "生物", "政治",],
EducationArrs: ["初中", "高中", "大学", "硕士", "博士"],
yearArrs: [], //生日涉及的近10年的年份 yearArrs: [], //生日涉及的近10年的年份
monthArrs: [ monthArrs: [
"01", "01",
...@@ -551,21 +1281,7 @@ ...@@ -551,21 +1281,7 @@
bdMonth: "", //选择的生日月份 bdMonth: "", //选择的生日月份
bdDay: "", //选择的生日日期 bdDay: "", //选择的生日日期
//入学年份(初中高中) //入学年份(初中高中)
gradeArrs: [ gradeArrs: ["初一", "初二", "初三", "高一", "高二", "高三"],
// "初一",
// "初二",
// "初三",
// "高一",
// "高二",
// "高三",
// "大一",
// "大二",
// "大三",
// "大四",
"初中",
"高中",
"大学",
],
//选择年级 //选择年级
start_grade: "", start_grade: "",
start_year: "", start_year: "",
...@@ -573,32 +1289,108 @@ ...@@ -573,32 +1289,108 @@
political_status: [ political_status: [
{ {
id: 1, id: 1,
name: "党员", name: "中共党员",
}, },
{ {
id: 2, id: 2,
name: "", name: "中共预备党",
}, },
{ {
id: 3, id: 3,
name: "共青团员",
},
{
id: 4,
name: "民革党员",
},
{
id: 5,
name: "民盟盟员",
},
{
id: 6,
name: "民建会员",
},
{
id: 7,
name: "民进会员",
},
{
id: 8,
name: "农工党党员",
},
{
id: 9,
name: "致公党党员",
},
{
id: 10,
name: "九三学社社员",
},
{
id: 11,
name: "台盟盟员",
},
{
id: 12,
name: "无党派人士",
},
{
id: 13,
name: "群众", name: "群众",
}, },
],
//衣服尺码
clothesSize: [
{
id: 1,
name: "S",
},
{
id: 2,
name: "M",
},
{
id: 3,
name: "L",
},
{
id: 4,
name: "XL",
},
{
id: 5,
name: "XXL",
},
{
id: 6,
name: "XXXL",
},
{
id: 7,
name: "XXXXL",
},
], ],
// 中学(模糊搜索)
// timeout: null,
// school: "",
// 上传的图片 // 上传的图片
dialogImageUrl: "", dialogImageUrl: "",
dialogVisible: false, dialogVisible: false,
fileList: [], fileList: [],
resultPicture: "", resultPicture: "",
disabled: false, //限制输入框 disabled: false, //限制输入框
isOffline: false, //活动形式是否包含线下字段
}; };
}, },
mounted() {
},
created() { created() {
const code = this.$store.state.indexIdentity; const code = this.$store.state.indexIdentity;
this.referForm.phone = window.localStorage.getItem("phone" + code); //本地取用户手机号 this.referForm.phone = window.localStorage.getItem("phone" + code); //本地取用户手机号
this.referForm.email = window.localStorage.getItem("email" + code); //本地取用户邮箱 this.referForm.email = window.localStorage.getItem("email" + code); //本地取用户邮箱
console.log(this.referForm.email, " this.referForm.email"); // console.log(this.referForm.email, " this.referForm.email");
let signUpFile = window.localStorage.getItem( let signUpFile = window.localStorage.getItem(
"sign_up_file_" + window.localStorage.getItem("phone" + code) + code "sign_up_file_" + window.localStorage.getItem("phone" + code) + code
); );
...@@ -607,14 +1399,28 @@ ...@@ -607,14 +1399,28 @@
this.fileList = JSON.parse(signUpFile); this.fileList = JSON.parse(signUpFile);
} }
this.getSchool(); this.getSchool();
this.getProAndCity(); // this.getProAndCity();
this.getTenYear(); this.getTenYear();
this.getAccount(); // 页面信息个人获取 this.getAccount(); // 页面信息个人获取
this.configJson = this.$store.state.configJson;
if (this.configJson.jiguanCity == 1 || this.configJson.school == 1) {
this.getProAndCity();
}
;
//若线下形式(既往病史或过敏史,备注或其它,衣服尺码)为必填项,否则为选填。
let multiform = JSON.parse(window.localStorage.getItem("multiform" + code));
let multiform_id = window.localStorage.getItem("multiform_id" + code);
multiform.forEach((i) => {
if (i.id == multiform_id) {
let reg = /[\u7ebf][\u4e0b]/
this.isOffline = reg.test(i.multiform_name)
}
})
}, },
watch: { watch: {
referForm(val) { referForm(val) {
// console.log(val, "val"); console.log(val, "val");
for (var k in val) { for (let k in val) {
if (val[k] == null || !val[k]) { if (val[k] == null || !val[k]) {
val[k] = this.referForm[k]; val[k] = this.referForm[k];
} }
...@@ -636,54 +1442,61 @@ ...@@ -636,54 +1442,61 @@
this.start_grade = val.start_school_date.slice(5, 8); //年级 this.start_grade = val.start_school_date.slice(5, 8); //年级
} }
//籍贯 //籍贯
if (val.jiguan_city !== null && val.jiguan_province !== null) { if (
val.jiguan_city !== null &&
val.jiguan_province !== null &&
this.configJson.jiguanCity == 1
) {
if (this.referForm.jiguan_city) { if (this.referForm.jiguan_city) {
} }
this.jgProvinceCode = Number(val.jiguan_province); this.jgProvinceCode = Number(val.jiguan_province);
this.changeProvince(1, this.jgProvinceCode, true); this.changeProvince(1, this.jgProvinceCode, true);
this.jiguan_city = Number(val.jiguan_city); this.jiguan_city = Number(val.jiguan_city);
} }
// console.log(val.school_province, val.school_city, val.school);
//学校 //学校
if ( if (
val.school_province !== null && val.school_province !== null &&
val.school_city !== null && val.school_city !== null &&
val.school !== null val.school !== null &&
this.configJson.school == 1
) { ) {
this.referForm.school_province = Number(val.school_province); this.referForm.school_province = Number(val.school_province);
this.referForm.school_city = Number(val.school_city); this.referForm.school_city = Number(val.school_city);
this.referForm.school = Number(val.school); this.referForm.school = Number(val.school);
// console.log(
// this.referForm.school_province,
// this.referForm.school_city,
// this.referForm.school
// );
this.changeProvince(2, this.referForm.school_province, true); this.changeProvince(2, this.referForm.school_province, true);
// console.log(this.referForm.school_city, 12322);
this.changeCity(this.referForm.school_city, true); this.changeCity(this.referForm.school_city, true);
} }
},
}, if (val.elect_subject_situation == '文科' || val.elect_subject_situation == '理科') {
methods: { this.referForm.subjectState = val.elect_subject_situation;
//获取近10年的年份 this.showSubject = 0;
getTenYear() { } else if (val.elect_subject_situation != null &&
let nowDate = new Date(); val.elect_subject_situation !== '' &&
let currentYear = nowDate.getFullYear(); val.elect_subject_situation !== '-') {
// console.log(nowDate, currentYear); this.referForm.subjectState = '已选科';
let yearArr = []; this.showSubject = 1;
let rxYearArr = []; this.referForm.chooseSubject = val.elect_subject_situation.split('#');
for (let i = 0; i < 42; i++) { this.elect_subject_situation = val.elect_subject_situation;
let year = currentYear - i; } else {
yearArr.push(year); this.referForm.subjectState = '未选科';
this.showSubject = 0;
this.elect_subject_situation = '-';
this.referForm.chooseSubject = [];
} }
// console.log(yearArr, "yearArr"); if (this.invitation_code != null) {
for (let i = 0; i < 10; i++) { this.referForm.code = this.invitation_code;
let year = currentYear - i; this.isCode = true;
rxYearArr.push(year);
} }
this.yearArrs = yearArr; //自我介绍
this.rxYearArrs = rxYearArr; let introduce = this.$store.state.signUpInfo.introduce
if (introduce != null) {
this.referForm.introduce = introduce
}
},
}, },
mounted() {
},
methods: {
// 页面信息个人获取 // 页面信息个人获取
getAccount() { getAccount() {
getAccount({}).then((res) => { getAccount({}).then((res) => {
...@@ -691,7 +1504,45 @@ ...@@ -691,7 +1504,45 @@
if (res.data.code != 200) { if (res.data.code != 200) {
return this.$message.error(res.data.message); return this.$message.error(res.data.message);
} }
this.referForm = res.data.info; let info = res.data.info;
info['code'] = null
let referForm = {
name: null,
gender: null,
age: null,
id_card: null,
education: null,
birthday: null,
jiguan_code: null,
address: null,
country: null,
nation: null,
start_school_date: null,
political_status: null,
phone: null,
grade: null,
unit_and_identity: null,
email: null,
recommend: null,
subjectState: null,
chooseSubject: [],
past_medical_history: null,
note_other: null,
clothes_size: null,
emergency: null,
emergency_phone: null,
introduce: null,
school_province: null,
school_city: null,
school: null,
school_contacts: null,
school_phone: null,
code: null
}
for (let k in info) {
referForm[k] = info[k];
}
this.referForm = referForm;
if (res.data.info.jiguan_province && res.data.info.jiguan_city) { if (res.data.info.jiguan_province && res.data.info.jiguan_city) {
this.referForm.jiguan_code = this.referForm.jiguan_code =
res.data.info.jiguan_province.toString() + res.data.info.jiguan_province.toString() +
...@@ -703,18 +1554,66 @@ ...@@ -703,18 +1554,66 @@
} }
}); });
}, },
//获取近10年的年份
getTenYear() {
let nowDate = new Date();
let currentYear = nowDate.getFullYear();
// console.log(nowDate, currentYear);
let yearArr = [];
let rxYearArr = [];
for (let i = 0; i < 73; i++) {
let year = currentYear - i;
yearArr.push(year);
}
// console.log(yearArr, "yearArr");
this.yearArrs = yearArr;
},
//邀请码
changeCode(val) {
console.log(val)
console.log(this.referForm.chooseSubject)
},
//组装出生日期 //组装出生日期
getTime() { getTime() {
this.referForm.birthday = this.referForm.birthday =
this.bdYear.toString() + this.bdYear.toString() +
this.bdMonth.toString() + this.bdMonth.toString() +
this.bdDay.toString(); this.bdDay.toString();
// console.log(this.referForm.birthday);
}, },
// 国籍
//组装入学年份 //组装入学年份
getyear() { getyear() {
this.referForm.start_school_date = this.referForm.start_school_date = this.start_year.toString();
this.start_year.toString() + "-" + this.start_grade.toString(); // + "-" +
// this.start_grade.toString();
},
// 选科情况
changeSubjectState(val) {
// this.referForm.subjectState = val
if (val == '已选科') {
this.referForm.subjectState = val
this.showSubject = 1;
this.elect_subject_situation = '';
// console.log(this.elect_subject_situation)
} else if (val == '未选科') {
this.showSubject = 0
this.referForm.subjectState = val
this.elect_subject_situation = '-'
// console.log(this.referForm.subjectState)
} else {
//文科理科
this.elect_subject_situation = val
this.showSubject = 0
}
},
changeSubjectList(val) {
this.referForm.chooseSubject = val;
this.elect_subject_situation = val.join("#");
this.$forceUpdate();
},
//自我介绍
changeIntroduce(val) {
this.referForm.introduce = val
}, },
// 获取省份城市 // 获取省份城市
getProAndCity() { getProAndCity() {
...@@ -728,7 +1627,6 @@ ...@@ -728,7 +1627,6 @@
// console.log(this.selectProvince, this.CityName); // console.log(this.selectProvince, this.CityName);
}); });
}, },
//选择籍贯省份change事件 //选择籍贯省份change事件
changeProvince(type, val, status) { changeProvince(type, val, status) {
// console.log(type, val); // console.log(type, val);
...@@ -749,7 +1647,6 @@ ...@@ -749,7 +1647,6 @@
} }
} }
}, },
//返回当前省份下的城市列表 //返回当前省份下的城市列表
getCurrentCityLists(val) { getCurrentCityLists(val) {
let currentCity = []; let currentCity = [];
...@@ -764,7 +1661,6 @@ ...@@ -764,7 +1661,6 @@
if (res.data.code === 200) { if (res.data.code === 200) {
// this.selectProvince = res.data.province_list; // this.selectProvince = res.data.province_list;
this.CityName = res.data.city_list; this.CityName = res.data.city_list;
for (let key in this.CityName) { for (let key in this.CityName) {
if (this.CityName[key].parent_id == val) { if (this.CityName[key].parent_id == val) {
currentCity.push(this.CityName[key]); currentCity.push(this.CityName[key]);
...@@ -810,10 +1706,24 @@ ...@@ -810,10 +1706,24 @@
if (!status) { if (!status) {
this.referForm.school = ""; this.referForm.school = "";
} }
// let data = this.selectSchoolList.map((item) => {
// return {
// name: item.id,
// value: item.name,
// };
// });
// this.restaurants = data; //中学(模糊搜索)
}, },
// 返回当前城市下的学校列表 // 返回当前城市下的学校列表
getCurrentSchoolLists(val) { getCurrentSchoolLists(val) {
let currentSchool = []; let currentSchool = [];
let baseSchool = this.$store.state.baseSchool;
if (baseSchool && baseSchool == 1) {
currentSchool.unshift({
id: 0,
name: "其他",
});
}
// console.log(this.schoolName); // console.log(this.schoolName);
if ( if (
this.schoolName == null || this.schoolName == null ||
...@@ -825,6 +1735,7 @@ ...@@ -825,6 +1735,7 @@
// console.log(res) // console.log(res)
if (res.data.code === 200) { if (res.data.code === 200) {
this.schoolName = res.data.school_list; this.schoolName = res.data.school_list;
// console.log( this.schoolName)
let code = this.$store.state.indexIdentity; let code = this.$store.state.indexIdentity;
window.localStorage.setItem( window.localStorage.setItem(
"schoolName" + code, "schoolName" + code,
...@@ -856,7 +1767,6 @@ ...@@ -856,7 +1767,6 @@
} }
return currentSchool; return currentSchool;
}, },
// 图片上传成功前钩子 // 图片上传成功前钩子
beforeAvatarUpload(file) { beforeAvatarUpload(file) {
// console.log(file, "beforeImage"); // console.log(file, "beforeImage");
...@@ -873,9 +1783,7 @@ ...@@ -873,9 +1783,7 @@
} }
return (isJPG || isPng || isJPEG) && isLt10M; return (isJPG || isPng || isJPEG) && isLt10M;
}, },
handlePictureCardPreview(file) { handlePictureCardPreview(file) {
console.log(file, "11111111");
this.resultPicture = file.url; this.resultPicture = file.url;
this.dialogVisible = true; this.dialogVisible = true;
}, },
...@@ -888,9 +1796,6 @@ ...@@ -888,9 +1796,6 @@
} }
}, },
uploadSuccess(res, file, fileList) { uploadSuccess(res, file, fileList) {
// console.log(res, "res");
// console.log(file, "file");
// console.log(fileList, "fileList");
this.referForm.achievementPath = res; this.referForm.achievementPath = res;
this.fileList = { this.fileList = {
name: file.name, name: file.name,
...@@ -934,7 +1839,6 @@ ...@@ -934,7 +1839,6 @@
.then((ress) => { .then((ress) => {
// console.log(ress, "ress"); // console.log(ress, "ress");
if (ress.data.code != 200) { if (ress.data.code != 200) {
console.log(ress, "ress");
return this.$message.error(ress.data.message); return this.$message.error(ress.data.message);
} }
this.resultPicture = filename + "?t=" + Date.parse(new Date()); this.resultPicture = filename + "?t=" + Date.parse(new Date());
...@@ -1004,7 +1908,6 @@ ...@@ -1004,7 +1908,6 @@
); );
} }
}); });
// console.log(this.fileList);
this.$message.success(res.data.message); this.$message.success(res.data.message);
}); });
}) })
...@@ -1017,7 +1920,6 @@ ...@@ -1017,7 +1920,6 @@
}, },
// 滚动到固定地方 // 滚动到固定地方
scrollView(object) { scrollView(object) {
// console.log(object, "object");
for (let i in object) { for (let i in object) {
if (!i) { if (!i) {
continue; continue;
...@@ -1048,8 +1950,104 @@ ...@@ -1048,8 +1950,104 @@
this.scrollView(object); this.scrollView(object);
return false; return false;
} }
let _this = this;
let obj = {};
if (this.configJson.name == 1) {
obj.name = _this.referForm.name;
}
if (this.configJson.gender == 1) {
obj.gender = _this.referForm.gender;
}
if (this.configJson.idCard == 1) {
obj.id_card = _this.referForm.id_card;
}
if (this.configJson.age == 1) {
obj.age = _this.referForm.age;
}
if (this.configJson.education == 1) {
obj.education = _this.referForm.education;
}
if (this.configJson.postAddress == 1) {
obj.address = _this.referForm.address;
}
if (this.configJson.country == 1) {
obj.country = _this.referForm.country;
}
if (this.configJson.nation == 1) {
obj.nation = _this.referForm.nation;
}
if (this.configJson.startSchoolDate == 1) {
obj.start_school_date = _this.start_year;
}
if (this.configJson.politicalStatus == 1) {
obj.political_status = _this.referForm.political_status;
}
if (this.configJson.phone == 1) {
obj.phone = _this.referForm.phone;
}
if (this.configJson.grade == 1) {
obj.grade = _this.referForm.grade;
}
if (this.configJson.unitandIdentity == 1) {
obj.unit_and_identity = _this.referForm.unit_and_identity;
}
if (this.configJson.email == 1) {
obj.email = _this.referForm.email;
}
if (this.configJson.jiguanCity == 1) {
obj.jiguan_code = _this.referForm.jiguan_code;
}
if (this.configJson.recommend == 1) {
obj.recommend = _this.referForm.recommend;
}
if (this.configJson.start_school_date == 1) {
obj.start_school_date = _this.referForm.start_school_date;
}
setAccount(this.referForm).then((res) => { if (this.configJson.birthday == 1) {
obj.birthday = _this.referForm.birthday;
}
if (this.configJson.electSubjectSituation == 1) {
obj.elect_subject_situation = _this.elect_subject_situation;
}
if (this.configJson.pastMedicalHistory == 1) {
obj.past_medical_history = _this.referForm.past_medical_history;
}
if (this.configJson.noteOther == 1) {
obj.note_other = _this.referForm.note_other;
}
if (this.configJson.emergency == 1) {
obj.emergency = _this.referForm.emergency;
}
if (this.configJson.emergencyPhone == 1) {
obj.emergency_phone = _this.referForm.emergency_phone;
}
//衣服尺码
if (this.configJson.clothesSize == 1) {
obj.clothes_size = _this.referForm.clothes_size;
}
//自我介绍
if (this.configJson.introduceMyself == 1) {
obj.introduce = _this.referForm.introduce;
}
if (this.configJson.school == 1) {
obj.school_province = _this.referForm.school_province;
obj.school_city = _this.referForm.school_city;
obj.school = _this.referForm.school;
}
if (this.configJson.schoolContacts == 1) {
obj.school_contacts = _this.referForm.school_contacts;
}
if (this.configJson.schoolPhone == 1) {
obj.school_phone = _this.referForm.school_phone;
}
//是否需要填写邀请码
// if (this.doubt_code == 1 && this.code != '') {
if (this.configJson.code == 1) {
obj.code = _this.referForm.code;
}
setAccount(obj).then((res) => {
if (res.data.code != 200) { if (res.data.code != 200) {
if (res.data.code == 400068) { if (res.data.code == 400068) {
this.$parent.statuss(); this.$parent.statuss();
...@@ -1057,10 +2055,16 @@ ...@@ -1057,10 +2055,16 @@
} }
return this.$message.error(res.data.message); return this.$message.error(res.data.message);
} }
if (res.data.code == 4000346 || res.data.code == 4000347) {
this.dialogVisible = true;
this.msg = res.data.message
return;
}
this.$emit("getstatus", res.data.status); this.$emit("getstatus", res.data.status);
this.$message.success(res.data.message); this.$message.success(res.data.message);
this.referForm = res.data.data; this.referForm = res.data.data;
}); });
}); });
}, },
}, },
......
<template> <template>
<div class="sucess"> <div class="sucess">
<div class="p_content"> <div v-if="$store.state.human == 1" class="p_content">
<div class="top"> <div class="top">
<div class="p_title">恭喜你!成功报名</div> <div class="p_title">恭喜你!成功报名</div>
<div> <div>
<img src="@/assets/img/signUp/offer.png" alt="" /> <img src="@/assets/img/signUp/offer.jpg" alt="" />
</div> </div>
<div class="lips">
<!-- <div>提醒事项:</div> -->
<div>
<span></span>
:请及时完成入营通知书内的要求事项。
</div>
</div>
<div class="flex btnList">
<div class="btn"> <div class="btn">
<el-button @click="handleDownload">下载入营通知书</el-button> <el-button @click="handleDownload">下载课程通知书</el-button>
</div>
<div class="btn">
<el-button @click="openAddress">输入邮寄地址</el-button>
</div>
</div>
</div> </div>
</div> </div>
<div v-else class="p_content">
<div class="top">
<div class="p_title">恭喜你!成功报名</div>
<div class="offer_img">
<img src="@/assets/img/signUp/offer.jpg" alt="" />
</div>
<div class="lips"> <div class="lips">
<div>提醒事项:</div> <!-- <div>提醒事项:</div> -->
<div>报名成功后,请及时下载入营通知书,以便提前做好入营准备。</div> <div>
<span></span>
:请及时完成入营通知书内的要求事项。
</div> </div>
</div> </div>
<div class="flex btnList">
<div class="btn">
<el-button @click="handleDownload">下载入营通知书</el-button>
</div>
<div class="btn">
<el-button @click="openAddress">输入邮寄地址</el-button>
</div>
</div>
</div>
</div>
<!-- 收货地址 -->
<delivery-address
:dialogVisibleAddress="dialogVisibleAddress"
@closeAddressDialog="closeAddressDialog"
>
</delivery-address>
</div> </div>
</template> </template>
<script> <script>
/* eslint-disable */ /* eslint-disable */
import { signUpInit } from "r/index/signUp"; import { signUpInit } from "r/index/signUp";
import deliveryAddress from "@/components/index/SignUp/deliveryAddress.vue";
export default { export default {
name: "Sucess", name: "Sucess",
components: {
deliveryAddress,
},
data() { data() {
return {}; return {
dialogVisibleAddress: false,
};
},
created() {
// console.log(123);
// var url = location.search;
// console.log(url);
}, },
created() {},
methods: { methods: {
handleDownload() { handleDownload() {
signUpInit({}).then((res) => { signUpInit({}).then((res) => {
...@@ -44,6 +92,14 @@ export default { ...@@ -44,6 +92,14 @@ export default {
} }
}); });
}, },
openAddress() {
this.dialogVisibleAddress = true;
},
// 子组件触发,关闭确认报名弹框
closeAddressDialog(val) {
console.log(val, "val");
this.dialogVisibleAddress = val;
},
}, },
}; };
</script> </script>
...@@ -71,6 +127,15 @@ export default { ...@@ -71,6 +127,15 @@ export default {
color: #666666; color: #666666;
line-height: 18px; line-height: 18px;
} }
.offer_img img {
width: 500px;
}
}
.btnList {
justify-content: center;
div {
padding: 0 30px;
}
} }
} }
// 注意事项 // 注意事项
...@@ -82,6 +147,10 @@ export default { ...@@ -82,6 +147,10 @@ export default {
color: #999999; color: #999999;
line-height: 21px; line-height: 21px;
} }
span {
color: red;
font-weight: 600;
}
} }
} }
</style> </style>
<template>
<el-dialog
:visible.sync="dialogVisibleFU"
width="30%"
:before-close="handleClose">
<div class="multiform">
<img src="../../assets/img/cue.png"/>
<span>{{msgFU}}</span>
</div>
</el-dialog>
</template>
<script>
export default {
name: "cueDialog",
props: {dialogVisible: Boolean , msg: String,},
data() {
return {
dialogVisibleFU: this.dialogVisible,
msgFU: this.msg,
};
},
methods: {
handleClose(done) {
done();
},
},
watch: {
dialogVisible() {
this.dialogVisibleFU = this.dialogVisible;
},
signTitle() {
this.msgFU = this.msg;
},
}
}
</script>
<style lang="scss" scoped>
.multiform {
display: flex;
flex-direction: column;
align-items: center;
img {
width: 35px;
height: 35px;
margin-bottom: 16px;
}
}
::v-deep .el-dialog__body {
padding: 10px 30px 35px 30px;
}
</style>
export default {
country: [{
value: 'Angola',
label: '安哥拉'
},
{
value: 'Afghanistan',
label: '阿富汗'
},
{
value: 'Albania',
label: '阿尔巴尼亚'
},
{
value: 'Algeria',
label: '阿尔及利亚'
},
{
value: 'Andorra',
label: '安道尔共和国'
},
{
value: 'Anguilla',
label: '安圭拉岛'
},
{
value: 'Antigua and Barbuda',
label: '安提瓜和巴布达'
},
{
value: 'Argentina',
label: '阿根廷'
},
{
value: 'Armenia',
label: '亚美尼亚'
},
{
value: 'Ascension',
label: '阿森松'
},
{
value: 'Australia',
label: '澳大利亚'
},
{
value: 'Austria',
label: '奥地利'
},
{
value: 'Azerbaijan',
label: '阿塞拜疆'
},
{
value: 'Bahamas',
label: '巴哈马'
},
{
value: 'Bahrain',
label: '巴林'
},
{
value: 'Bangladesh',
label: '孟加拉国'
},
{
value: 'Barbados',
label: '巴巴多斯'
},
{
value: 'Belarus',
label: '白俄罗斯'
},
{
value: 'Belgium',
label: '比利时'
},
{
value: 'Belize',
label: '伯利兹'
},
{
value: 'Benin',
label: '贝宁'
},
{
value: 'Bermuda Is',
label: '百慕大群岛'
},
{
value: 'Bolivia',
label: '玻利维亚'
},
{
value: 'Botswana',
label: '博茨瓦纳'
},
{
value: 'Brazil',
label: '巴西'
},
{
value: 'Brunei',
label: '文莱'
},
{
value: 'Bulgaria',
label: '保加利亚'
},
{
value: 'Burkina Faso',
label: '布基纳法索'
},
{
value: 'Burma',
label: '缅甸'
},
{
value: 'Burundi',
label: '布隆迪'
},
{
value: 'Cameroon',
label: '喀麦隆'
},
{
value: 'Canada',
label: '加拿大'
},
{
value: 'Cayman Is',
label: '开曼群岛'
},
{
value: 'Central African Republic',
label: '中非共和国'
},
{
value: 'Chad',
label: '乍得'
},
{
value: 'Chile',
label: '智利'
},
{
value: 'China',
label: '中国'
},
{
value: 'Colombia',
label: '哥伦比亚'
},
{
value: 'Congo',
label: '刚果'
},
{
value: 'Cook Is',
label: '库克群岛'
},
{
value: 'Costa Rica',
label: '哥斯达黎加'
},
{
value: 'Cuba',
label: '古巴'
},
{
value: 'Cyprus',
label: '塞浦路斯'
},
{
value: 'Czech Republic',
label: '捷克'
},
{
value: 'Denmark',
label: '丹麦'
},
{
value: 'Djibouti',
label: '吉布提'
},
{
value: 'Dominica Rep',
label: '多米尼加共和国'
},
{
value: 'Ecuador',
label: '厄瓜多尔'
},
{
value: 'Egypt',
label: '埃及'
},
{
value: 'EI Salvador',
label: '萨尔瓦多'
},
{
value: 'Estonia',
label: '爱沙尼亚'
},
{
value: 'Ethiopia',
label: '埃塞俄比亚'
},
{
value: 'Fiji',
label: '斐济'
},
{
value: 'Finland',
label: '芬兰'
},
{
value: 'France',
label: '法国'
},
{
value: 'French Guiana',
label: '法属圭亚那'
},
{
value: 'French Polynesia',
label: '法属玻利尼西亚'
},
{
value: 'Gabon',
label: '加蓬'
},
{
value: 'Gambia',
label: '冈比亚'
},
{
value: 'Georgia',
label: '格鲁吉亚'
},
{
value: 'Germany',
label: '德国'
},
{
value: 'Ghana',
label: '加纳'
},
{
value: 'Gibraltar',
label: '直布罗陀'
},
{
value: 'Greece',
label: '希腊'
},
{
value: 'Grenada',
label: '格林纳达'
},
{
value: 'Guam',
label: '关岛'
},
{
value: 'Guatemala',
label: '危地马拉'
},
{
value: 'Guinea',
label: '几内亚'
},
{
value: 'Guyana',
label: '圭亚那'
},
{
value: 'Haiti',
label: '海地'
},
{
value: 'Honduras',
label: '洪都拉斯'
},
{
value: 'Hungary',
label: '匈牙利'
},
{
value: 'Iceland',
label: '冰岛'
},
{
value: 'India',
label: '印度'
},
{
value: 'Indonesia',
label: '印度尼西亚'
},
{
value: 'Iran',
label: '伊朗'
},
{
value: 'Iraq',
label: '伊拉克'
},
{
value: 'Ireland',
label: '爱尔兰'
},
{
value: 'Israel',
label: '以色列'
},
{
value: 'Italy',
label: '意大利'
},
{
value: 'Ivory Coast',
label: '科特迪瓦'
},
{
value: 'Jamaica',
label: '牙买加'
},
{
value: 'Japan',
label: '日本'
},
{
value: 'Jordan',
label: '约旦'
},
{
value: 'Kampuchea (Cambodia )',
label: '柬埔寨'
},
{
value: 'Kazakstan',
label: '哈萨克斯坦'
},
{
value: 'Kenya',
label: '肯尼亚'
},
{
value: 'Korea',
label: '韩国'
},
{
value: 'Kuwait',
label: '科威特'
},
{
value: 'Kyrgyzstan',
label: '吉尔吉斯坦'
},
{
value: 'Laos',
label: '老挝'
},
{
value: 'Latvia',
label: '拉脱维亚'
},
{
value: 'Lebanon',
label: '黎巴嫩'
},
{
value: 'Lesotho',
label: '莱索托'
},
{
value: 'Liberia',
label: '利比里亚'
},
{
value: 'Libya',
label: '利比亚'
},
{
value: 'Liechtenstein',
label: '列支敦士登'
},
{
value: 'Lithuania',
label: '立陶宛'
},
{
value: 'Luxembourg',
label: '卢森堡'
},
{
value: 'Madagascar',
label: '马达加斯加'
},
{
value: 'Malawi',
label: '马拉维'
},
{
value: 'Malaysia',
label: '马来西亚'
},
{
value: 'Maldives',
label: '马尔代夫'
},
{
value: 'Mali',
label: '马里'
},
{
value: 'Malta',
label: '马耳他'
},
{
value: 'Mariana Is',
label: '马里亚那群岛'
},
{
value: 'Martinique',
label: '马提尼克'
},
{
value: 'Mauritius',
label: '毛里求斯'
},
{
value: 'Mexico',
label: '墨西哥'
},
{
value: 'Moldova',
label: '摩尔多瓦'
},
{
value: 'Monaco',
label: '摩纳哥'
},
{
value: 'Mongolia',
label: '蒙古'
},
{
value: 'Montserrat Is',
label: '蒙特塞拉特岛'
},
{
value: 'Morocco',
label: '摩洛哥'
},
{
value: 'Mozambique',
label: '莫桑比克'
},
{
value: 'Namibia',
label: '纳米比亚'
},
{
value: 'Nauru',
label: '瑙鲁'
},
{
value: 'Nepal',
label: '尼泊尔'
},
{
value: 'Netheriands Antilles',
label: '荷属安的列斯'
},
{
value: 'Netherlands',
label: '荷兰'
},
{
value: 'New Zealand',
label: '新西兰'
},
{
value: 'Nicaragua',
label: '尼加拉瓜'
},
{
value: 'Niger',
label: '尼日尔'
},
{
value: 'Nigeria',
label: '尼日利亚'
},
{
value: 'North Korea',
label: '朝鲜'
},
{
value: 'Norway',
label: '挪威'
},
{
value: 'Oman',
label: '阿曼'
},
{
value: 'Pakistan',
label: '巴基斯坦'
},
{
value: 'Panama',
label: '巴拿马'
},
{
value: 'Papua New Cuinea',
label: '巴布亚新几内亚'
},
{
value: 'Paraguay',
label: '巴拉圭'
},
{
value: 'Peru',
label: '秘鲁'
},
{
value: 'Philippines',
label: '菲律宾'
},
{
value: 'Poland',
label: '波兰'
},
{
value: 'Portugal',
label: '葡萄牙'
},
{
value: 'Puerto Rico',
label: '波多黎各'
},
{
value: 'Qatar',
label: '卡塔尔'
},
{
value: 'Reunion',
label: '留尼旺'
},
{
value: 'Romania',
label: '罗马尼亚'
},
{
value: 'Russia',
label: '俄罗斯'
},
{
value: 'Saint Lueia',
label: '圣卢西亚'
},
{
value: 'Saint Vincent',
label: '圣文森特岛'
},
{
value: 'Samoa Eastern',
label: '东萨摩亚(美)'
},
{
value: 'Samoa Western',
label: '西萨摩亚'
},
{
value: 'San Marino',
label: '圣马力诺'
},
{
value: 'Sao Tome and Principe',
label: '圣多美和普林西比'
},
{
value: 'Saudi Arabia',
label: '沙特阿拉伯'
},
{
value: 'Senegal',
label: '塞内加尔'
},
{
value: 'Seychelles',
label: '塞舌尔'
},
{
value: 'Sierra Leone',
label: '塞拉利昂'
},
{
value: 'Singapore',
label: '新加坡'
},
{
value: 'Slovakia',
label: '斯洛伐克'
},
{
value: 'Slovenia',
label: '斯洛文尼亚'
},
{
value: 'Solomon Is',
label: '所罗门群岛'
},
{
value: 'Somali',
label: '索马里'
},
{
value: 'South Africa',
label: '南非'
},
{
value: 'Spain',
label: '西班牙'
},
{
value: 'SriLanka',
label: '斯里兰卡'
},
{
value: 'St.Lucia',
label: '圣卢西亚'
},
{
value: 'St.Vincent',
label: '圣文森特'
},
{
value: 'Sudan',
label: '苏丹'
},
{
value: 'Suriname',
label: '苏里南'
},
{
value: 'Swaziland',
label: '斯威士兰'
},
{
value: 'Sweden',
label: '瑞典'
},
{
value: 'Switzerland',
label: '瑞士'
},
{
value: 'Syria',
label: '叙利亚'
},
{
value: 'Tajikstan',
label: '塔吉克斯坦'
},
{
value: 'Tanzania',
label: '坦桑尼亚'
},
{
value: 'Thailand',
label: '泰国'
},
{
value: 'Togo',
label: '多哥'
},
{
value: 'Tonga',
label: '汤加'
},
{
value: 'Trinidad and Tobago',
label: '特立尼达和多巴哥'
},
{
value: 'Tunisia',
label: '突尼斯'
},
{
value: 'Turkey',
label: '土耳其'
},
{
value: 'Turkmenistan',
label: '土库曼斯坦'
},
{
value: 'Uganda',
label: '乌干达'
},
{
value: 'Ukraine',
label: '乌克兰'
},
{
value: 'United Arab Emirates',
label: '阿拉伯联合酋长国'
},
{
value: 'United Kiongdom',
label: '英国'
},
{
value: 'United States of America',
label: '美国'
},
{
value: 'Uruguay',
label: '乌拉圭'
},
{
value: 'Uzbekistan',
label: '乌兹别克斯坦'
},
{
value: 'Venezuela',
label: '委内瑞拉'
},
{
value: 'Vietnam',
label: '越南'
},
{
value: 'Yemen',
label: '也门'
},
{
value: 'Yugoslavia',
label: '南斯拉夫'
},
{
value: 'Zimbabwe',
label: '津巴布韦'
},
{
value: 'Zaire',
label: '扎伊尔'
},
{
value: 'Zambia',
label: '赞比亚'
}
]
};
//bus.js
import Vue from 'vue'
export default new Vue()
...@@ -6,11 +6,17 @@ ...@@ -6,11 +6,17 @@
// export const DEVELOPMENT_SERVER_URL = "http://123.56.237.167:20202"; //测试环境 // export const DEVELOPMENT_SERVER_URL = "http://123.56.237.167:20202"; //测试环境
// export const SERVER_WS_URL = "wss://123.56.237.167:20202"; // websocket // export const SERVER_WS_URL = "wss://123.56.237.167:20202"; // websocket
// 正式 // 正式(暂时不用)
// export const SERVER_URL = 'https://api1.testgate.cn' // 正式环境 // export const SERVER_URL = 'https://api1.testgate.cn' // 正式环境
// export const DEVELOPMENT_SERVER_URL = 'https://api1.testgate.cn' // 开发环境 // export const DEVELOPMENT_SERVER_URL = 'https://api1.testgate.cn' // 开发环境
// export const SERVER_WS_URL = 'wss://api1.testgate.cn' // websocket // export const SERVER_WS_URL = 'wss://api1.testgate.cn' // websocket
// 线上测试
export const SERVER_URL = "http://api.campcenter.cn/"; // 正式环境 // 正式
export const DEVELOPMENT_SERVER_URL = "http://api.campcenter.cn/"; //开发环境 export const SERVER_URL = "https://apiy.thuers.com/"; // 正式环境
export const SERVER_WS_URL = "ws://api.campcenter.cn"; // websocket export const DEVELOPMENT_SERVER_URL = "http://192.168.1.145:9212/"; //开发环境
export const SERVER_WS_URL = "wss://apiy.thuers.com"; // websocket
// 测试
// export const SERVER_URL = "https://ying-test.campcenter.cn"; // 正式环境
// export const DEVELOPMENT_SERVER_URL = "https://ying-test.campcenter.cn/"; //开发环境
// export const SERVER_WS_URL = "wss://ying-test.campcenter.cn"; // websocket
...@@ -7,12 +7,34 @@ import store from './store' ...@@ -7,12 +7,34 @@ import store from './store'
import ElementUI from 'element-ui' import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css' import 'element-ui/lib/theme-chalk/index.css'
import '@/assets/scss/index.scss' import '@/assets/scss/index.scss'
import {
download,
upload
} from "r/index/network.js";
import 'default-passive-events'
Vue.config.devtools = true;
Vue.config.productionTip = false Vue.config.productionTip = false
// 弹出框的时候滚动条隐藏和出现导致页面抖动问题
ElementUI.Dialog.props.lockScroll.default = false;
Vue.use(ElementUI) Vue.use(ElementUI)
Vue.prototype.download = download
Vue.prototype.upload = upload
// 防止重复点击自定义属性
import preventReClick from './utils/preventRepeatClick.js'
Vue.use(preventReClick);
//埋点公共方法
import {commonApi}from './utils/common'
Vue.prototype.commonApi = commonApi;
// 禁止浏览器前进后退 另一部本在router的index.js中
window.addEventListener('popstate', function() {
history.pushState(null, null, document.URL)
})
Vue.prototype.$errorScroll = function errorScroll(callback) { Vue.prototype.$errorScroll = function errorScroll(callback) {
this.$nextTick(() => { this.$nextTick(() => {
...@@ -29,7 +51,7 @@ Vue.prototype.$errorScroll = function errorScroll(callback) { ...@@ -29,7 +51,7 @@ Vue.prototype.$errorScroll = function errorScroll(callback) {
// }) // })
if(document.getElementsByClassName('el-form-item__error').length>0){ if (document.getElementsByClassName('el-form-item__error').length > 0) {
this.$notify.error({ this.$notify.error({
title: '提示', title: '提示',
message: document.getElementsByClassName('el-form-item__error')[0].innerText message: document.getElementsByClassName('el-form-item__error')[0].innerText
......
/* eslint-disable */
import {
request
} from './network'
import store from '@/store'
// 登录
export function login(data) {
return request({
method: 'post',
url: '/web/auth/login',
params: data
})
}
// 退出
export function logout(data) {
return request({
method: 'post',
url: '/web/auth/loginOut',
data
})
}
// 通过旧密码找回密码
export function changePassOld(data) {
return request({
method: 'post',
url: '/web/auth/changePassOld',
data
})
}
// 通过验证码找回密码
export function changePassCode(data) {
return request({
method: 'post',
url: '/web/auth/changePassCode',
data
})
}
/* eslint-disable */
import axios from 'axios'
import store from '@/store'
import {
SERVER_URL,
DEVELOPMENT_SERVER_URL
} from '@/config/server'
import {
Notification,
Message,
Loading
} from 'element-ui'
import router from '@/router'
const instance = axios.create({
baseURL: 'http://192.168.1.145:9212',
timeout: 60000,
method: "post",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
withCredentials: false,
});
instance.interceptors.request.use(
(config) => {
if (config.method === "post" && !config.notQs) {
config.data = qs.stringify(config.data);
}
if (config.url.indexOf(SERVER_URL) === -1) {
// console.log("upload");
config.headers["Content-Type"] = "multipart/form-data";
} else {
config.headers["Content-Type"] = "application/x-www-form-urlencoded";
}
// 调用接口请求添加token认证信息
// let token = localStorage.getItem("index-token");
const token = localStorage.getItem('index-token' + store.state.indexIdentity)
//
config.headers.token = token
if (token) config.headers.authorization = token;
return config;
},
(error) => {
return Promise.reject(error);
}
);
// instance.interceptors.response.use(
// (response) => {
// return response.data;
// },
// (error) => {
// return Promise.reject(error);
// }
// );
export default instance;
// 正在进行中的请求列表
const reqList = []
/**
* 阻止重复请求
* @param {array} reqList - 请求缓存列表
* @param {string} url - 当前请求地址
* @param {function} cancel - 请求中断函数
* @param {string} errorMessage - 请求中断时需要显示的错误信息
*/
const stopRepeatRequest = function (reqList, url, cancel, errorMessage) {
const errorMsg = errorMessage || ''
for (let i = 0; i < reqList.length; i++) {
if (reqList[i] === url) {
// cancel(errorMsg);
return
}
}
reqList.push(url)
}
/**
* 允许某个请求可以继续进行
* @param {array} reqList 全部请求列表
* @param {string} url 请求地址
*/
const allowRequest = function (reqList, url) {
for (let i = 0; i < reqList.length; i++) {
if (reqList[i] === url) {
reqList.splice(i, 1)
break
}
}
}
let loadingInstance = null
export function request(config) {
const instance = axios.create({
baseURL: process.env.NODE_ENV === 'development' ?
'http://192.168.1.145:9212' : 'http://192.168.1.145:9212 ',
timeout: 60 * 1000
})
instance.interceptors.request.use(
(config) => {
const loginUrl = '/web/auth/login';
const setAccountInfo = '/web/register/setAccountInfo';
const passMsgOld = '/web/auth/changePassOld';
const getCam = '/web/auth/getCam';
const registerCode = '/web/code/registerCode';
const registerEmailCode = 'web/code/registerEmailCode';
const passwordEmailCode = 'web/code/passwordEmailCode';
const passwordCode = '/web/code/passwordCode';
const changePassCode = '/web/auth/changePassCode';
const loginOut = '/web/auth/loginOut';
// console.log(config)
if (
config.url.indexOf(loginUrl) != -1 ||
config.url.indexOf(setAccountInfo) != -1 ||
config.url.indexOf(passMsgOld) != -1 ||
config.url.indexOf(getCam) != -1 ||
config.url.indexOf(registerCode) != -1 ||
config.url.indexOf(registerEmailCode) != -1 ||
config.url.indexOf(passwordEmailCode) != -1 ||
config.url.indexOf(changePassCode) != -1 ||
config.url.indexOf(passwordCode) != -1 ||
config.url.indexOf(loginOut) != -1
) {
return config
}
const token = localStorage.getItem('index-token' + store.state.indexIdentity)
if (token) {
// console.log(token,'11')
config.headers.token = token
} else {
window.localStorage.clear()
router.push({
path: '/login',
query: {
redirect: router.currentRoute.fullPath
} // 从哪个页面跳转
})
const error = new Error('请登录!')
return Promise.reject(error)
}
let cancel
// 设置cancelToken对象
config.cancelToken = new axios.CancelToken(function (c) {
cancel = c
})
if (
config.url.indexOf('/web/config/getUniversity') == -1 &&
config.url.indexOf('/web/config/getProfession') == -1
) {
// 阻止重复请求。当上个请求未完成时,相同的请求不会进行
stopRepeatRequest(
reqList,
config.url,
cancel,
`${config.url} 请求被中断`
)
}
if (config.hasLoading) {
const loadingText = config.loadingText ? config.loadingText : '请求中'
loadingInstance = Loading.service({
lock: true,
fullscreen: true,
text: loadingText,
// spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.25)'
})
}
return config
},
(error) => {
return Promise.reject(error)
}
)
instance.interceptors.response.use(
(res) => {
// console.log(res, '11111')
// console.log(res.data.code, 'res.data.code')
if (res.data.code == 400034 ||
res.data.code == 400035 ||
// res.data.code == 400001 ||
res.data.code == 400002 ||
res.data.code == 400003) {
router.push({
path: '/' + store.state.indexIdentity,
})
Notification({
message: res.data.message,
duration: 1000,
});
return
}
if (res.data.code == 400023) {
console.log(res)
// console.log(store.state.indexIdentity, 'store.state.indexIdentity')
let code = store.state.indexIdentity;
let isLogout = res.config.url =='/web/auth/loginOut';
window.localStorage.removeItem("doubt_code" + code);
window.localStorage.removeItem("doubt_info" + code);
window.localStorage.removeItem("doubt_check" + code);
window.localStorage.removeItem("index-token" + code);
window.localStorage.removeItem("phone" + code);
window.localStorage.removeItem("camp_name" + code);
window.localStorage.removeItem("system_color" + code);
window.localStorage.removeItem("system_logo" + code);
window.localStorage.removeItem("has_amount" + code);
window.localStorage.removeItem("campsite_id" + code);
window.localStorage.removeItem("order_no" + code);
window.localStorage.removeItem("campindex_type" + code);
window.localStorage.removeItem("bk_pic" + code);
window.localStorage.removeItem("examine_status" + code);
window.localStorage.removeItem("examine_reason" + code);
window.localStorage.removeItem("sign_up_file_18355151517" + code);
window.localStorage.removeItem("schoolName" + code);
window.localStorage.removeItem("restet_code_time" + code);
window.localStorage.removeItem("camp_statement" + code)
router.push({
path: '/' + store.state.indexIdentity,
})
if(!isLogout){
Notification({
message: res.data.message,
duration: 3000,
});
}
return
}
if (res.data.code == 400003) {
let code = this.$store.state.indexIdentity;
window.localStorage.removeItem("doubt_code" + code);
window.localStorage.removeItem("doubt_info" + code);
window.localStorage.removeItem("doubt_check" + code);
window.localStorage.removeItem("index-token" + code);
window.localStorage.removeItem("phone" + code);
window.localStorage.removeItem("camp_name" + code);
window.localStorage.removeItem("system_color" + code);
window.localStorage.removeItem("system_logo" + code);
window.localStorage.removeItem("has_amount" + code);
window.localStorage.removeItem("campsite_id" + code);
window.localStorage.removeItem("order_no" + code);
window.localStorage.removeItem("campindex_type" + code);
window.localStorage.removeItem("bk_pic" + code);
window.localStorage.removeItem("examine_status" + code);
window.localStorage.removeItem("examine_reason" + code);
window.localStorage.removeItem("sign_up_file_18355151517" + code);
window.localStorage.removeItem("schoolName" + code);
router.push({
path: '/login',
query: {
redirect: router.currentRoute.fullPath
} // 从哪个页面跳转
})
}
// else if (
// res.data.code == 400801 ||
// res.data.code == 400910 ||
// res.data.code == 4002132 ||
// res.data.code == 40068
// ) {
// store.state.showDialog = true
// store.state.dialogType = 1
// }
loadingInstance && loadingInstance.close()
setTimeout(() => {
allowRequest(reqList, res.config.url)
}, 1000)
return res
},
(error) => {
// console.log(error, 'err')
// console.log(error.response.status, '5555')
Message.closeAll()
if (error.response.status === 404) {
// return this.$message.error("营地报名已结束")
// 未登录
Notification({
message: "营地报名已关闭",
duration: 3000,
// onClose() {
// console.log('error');
// router.push("/admin/login");
// },
});
return false;
}
if (axios.isCancel(error)) {
console.log(error.message)
} else {
// 增加延迟,相同请求不得在短时间内重复发送
setTimeout(() => {
allowRequest(reqList, error.config.url)
}, 1000)
}
loadingInstance && loadingInstance.close()
return Promise.reject(error)
}
)
return instance(config)
}
/**
* axios:upload 文件上传方法
* @param url
* @param data
* @returns {Promise}
*/
export function upload(url, data = {}) {
// console.log(11111)
return new Promise((resolve, reject) => {
axios.post(url, data).then(
(response) => {
console.log(url)
// console.log(11111)
resolve(response);
},
(err) => {
console.log(11111)
reject(err);
}
);
});
}
// 合并多个请求
export function allRequest(arrRequest) {
return axios.all(arrRequest)
}
/* eslint-disable */
import {
request
} from './network'
import store from '@/store'
// 添加地址
export function setAddress(data) {
data['identity'] = store.state.indexIdentity;
return request({
method: 'post',
url: '/web/download/setAddress ',
data
})
}
// 获取地址
export function getAddress(data) {
data['identity'] = store.state.indexIdentity;
return request({
method: 'post',
url: '/web/download/getAddress ',
data
})
}
/* eslint-disable */
import {
request
} from './network'
import store from '@/store'
// 获取营地作业列表
export function getTeacherWork(data) {
data['identity'] = store.state.indexIdentity;
return request({
method: 'post',
url: '/web/download/getTeacherWork',
params: data
})
}
// 获取学生上传作业的oss
export function PostWorkStudentOss(data) {
data['identity'] = store.state.indexIdentity;
return request({
method: 'post',
url: '/web/download/getPostWorkStudent',
data
})
}
//下载
export function downloadTeacherWork(data) {
data['identity'] = store.state.indexIdentity;
return request({
method: 'post',
url: 'web/download/downloadTeacherWork',
params: data
})
}
//删除图片
export function delPic(data) {
data['identity'] = store.state.indexIdentity;
return request({
method: 'post',
url: '/web/download/delPic',
params: data
})
}
// 获取学生提交营地作业
export function getStudentWork(data) {
data['identity'] = store.state.indexIdentity;
return request({
method: 'post',
url: '/web/download/getStudentWork',
params: data
})
}
// 提交营地作业
export function subStudentWork(data) {
data['identity'] = store.state.indexIdentity;
return request({
method: 'post',
url: '/web/download/subStudentWork',
params: data
})
}
/* eslint-disable */
import {
request
} from './network'
import store from '@/store'
// 获取资料(个人信息)
export function getAccountInfo(data) {
data['identity'] = store.state.indexIdentity;
return request({
method: 'post',
url: '/web/signUp/getAccountInfo',
data
})
}
// 保存个人资料
export function setAccountInfo(data) {
data['identity'] = store.state.indexIdentity;
return request({
method: 'post',
url: '/web/signUp/setAccountInfo',
data
})
}
\ No newline at end of file
...@@ -41,7 +41,16 @@ export function login(data) { ...@@ -41,7 +41,16 @@ export function login(data) {
}) })
} }
// 获取登录验证码
export function loginCode(data) {
data['identity'] = store.state.indexIdentity;
return request({
method: 'post',
url: '/web/code/loginCode',
params: data
})
}
// 退出 // 退出
export function logout(data) { export function logout(data) {
data['identity'] = store.state.indexIdentity; data['identity'] = store.state.indexIdentity;
......
/* eslint-disable */ /* eslint-disable */
import axios from 'axios' import axios from 'axios'
import store from '@/store' import store from '@/store'
import qs from 'qs'
import {tansParams} from '@/store/common.js'
import { import {
SERVER_URL, SERVER_URL,
DEVELOPMENT_SERVER_URL DEVELOPMENT_SERVER_URL
...@@ -15,7 +17,7 @@ import router from '@/router' ...@@ -15,7 +17,7 @@ import router from '@/router'
const instance = axios.create({ const instance = axios.create({
baseURL: SERVER_URL, baseURL: DEVELOPMENT_SERVER_URL,
timeout: 60000, timeout: 60000,
method: "post", method: "post",
headers: { headers: {
...@@ -28,7 +30,9 @@ const instance = axios.create({ ...@@ -28,7 +30,9 @@ const instance = axios.create({
instance.interceptors.request.use( instance.interceptors.request.use(
(config) => { (config) => {
if (config.method === "post" && !config.notQs) { if (config.method === "post" && !config.notQs) {
console.log(config)
config.data = qs.stringify(config.data); config.data = qs.stringify(config.data);
// config.data = config.data;
} }
if (config.url.indexOf(SERVER_URL) === -1) { if (config.url.indexOf(SERVER_URL) === -1) {
// console.log("upload"); // console.log("upload");
...@@ -37,11 +41,7 @@ instance.interceptors.request.use( ...@@ -37,11 +41,7 @@ instance.interceptors.request.use(
config.headers["Content-Type"] = "application/x-www-form-urlencoded"; config.headers["Content-Type"] = "application/x-www-form-urlencoded";
} }
// 调用接口请求添加token认证信息 // 调用接口请求添加token认证信息
// let token = localStorage.getItem("index-token");
const token = localStorage.getItem('index-token' + store.state.indexIdentity) const token = localStorage.getItem('index-token' + store.state.indexIdentity)
//
config.headers.token = token config.headers.token = token
if (token) config.headers.authorization = token; if (token) config.headers.authorization = token;
return config; return config;
...@@ -50,14 +50,6 @@ instance.interceptors.request.use( ...@@ -50,14 +50,6 @@ instance.interceptors.request.use(
return Promise.reject(error); return Promise.reject(error);
} }
); );
// instance.interceptors.response.use(
// (response) => {
// return response.data;
// },
// (error) => {
// return Promise.reject(error);
// }
// );
export default instance; export default instance;
...@@ -108,25 +100,29 @@ export function request(config) { ...@@ -108,25 +100,29 @@ export function request(config) {
const setAccountInfo = '/web/register/setAccountInfo'; const setAccountInfo = '/web/register/setAccountInfo';
const passMsgOld = '/web/auth/changePassOld'; const passMsgOld = '/web/auth/changePassOld';
const getCam = '/web/auth/getCam'; const getCam = '/web/auth/getCam';
const LoginCode = '/web/code/loginCode';
const registerCode = '/web/code/registerCode'; const registerCode = '/web/code/registerCode';
const registerEmailCode = 'web/code/registerEmailCode'; const registerEmailCode = 'web/code/registerEmailCode';
const passwordEmailCode = 'web/code/passwordEmailCode'; const passwordEmailCode = 'web/code/passwordEmailCode';
const passwordCode = '/web/code/passwordCode'; const passwordCode = '/web/code/passwordCode';
const changePassCode = '/web/auth/changePassCode'; const changePassCode = '/web/auth/changePassCode';
const loginOut = '/web/auth/loginOut'; const loginOut = '/web/auth/loginOut';
const setLog = '/web/auth/setLog';
// console.log(config) // console.log(config)
if ( if (
config.url.indexOf(loginUrl) != -1 || (config.url.indexOf(loginUrl) != -1 && config.url.indexOf(loginOut) == -1) ||
config.url.indexOf(setAccountInfo) != -1 || config.url.indexOf(setAccountInfo) != -1 ||
config.url.indexOf(passMsgOld) != -1 || config.url.indexOf(passMsgOld) != -1 ||
config.url.indexOf(getCam) != -1 || config.url.indexOf(getCam) != -1 ||
config.url.indexOf(LoginCode) != -1 ||
config.url.indexOf(registerCode) != -1 || config.url.indexOf(registerCode) != -1 ||
config.url.indexOf(registerEmailCode) != -1 || config.url.indexOf(registerEmailCode) != -1 ||
config.url.indexOf(passwordEmailCode) != -1 || config.url.indexOf(passwordEmailCode) != -1 ||
config.url.indexOf(changePassCode) != -1 || config.url.indexOf(changePassCode) != -1 ||
config.url.indexOf(passwordCode) != -1 || config.url.indexOf(passwordCode) != -1 ||
config.url.indexOf(loginOut) != -1 config.url.indexOf(setLog) != -1
) { ) {
return config return config
} }
...@@ -138,7 +134,6 @@ export function request(config) { ...@@ -138,7 +134,6 @@ export function request(config) {
config.headers.token = token config.headers.token = token
} else { } else {
window.localStorage.clear()
router.push({ router.push({
path: '/login', path: '/login',
query: { query: {
...@@ -193,15 +188,12 @@ export function request(config) { ...@@ -193,15 +188,12 @@ export function request(config) {
// res.data.code == 400001 || // res.data.code == 400001 ||
res.data.code == 400002 || res.data.code == 400002 ||
res.data.code == 400003) { res.data.code == 400003) {
router.push({ router.push({
path: '/' + store.state.indexIdentity, path: '/' + store.state.indexIdentity,
}) })
Notification({ Notification({
message: res.data.message, message: res.data.message,
duration: 1000, duration: 1000,
}); });
return return
} }
...@@ -209,7 +201,7 @@ export function request(config) { ...@@ -209,7 +201,7 @@ export function request(config) {
console.log(res) console.log(res)
// console.log(store.state.indexIdentity, 'store.state.indexIdentity') // console.log(store.state.indexIdentity, 'store.state.indexIdentity')
let code = store.state.indexIdentity; let code = store.state.indexIdentity;
let isLogout = res.config.url =='/web/auth/loginOut'; let isLogout = res.config.url == '/web/auth/loginOut';
window.localStorage.removeItem("doubt_code" + code); window.localStorage.removeItem("doubt_code" + code);
window.localStorage.removeItem("doubt_info" + code); window.localStorage.removeItem("doubt_info" + code);
window.localStorage.removeItem("doubt_check" + code); window.localStorage.removeItem("doubt_check" + code);
...@@ -225,14 +217,25 @@ export function request(config) { ...@@ -225,14 +217,25 @@ export function request(config) {
window.localStorage.removeItem("bk_pic" + code); window.localStorage.removeItem("bk_pic" + code);
window.localStorage.removeItem("examine_status" + code); window.localStorage.removeItem("examine_status" + code);
window.localStorage.removeItem("examine_reason" + code); window.localStorage.removeItem("examine_reason" + code);
window.localStorage.removeItem("sign_up_file_18355151517" + code); window.localStorage.removeItem(
"sign_up_file_18355151517" +
window.localStorage.getItem("phone" + code) +
code
);
window.localStorage.removeItem("schoolName" + code); window.localStorage.removeItem("schoolName" + code);
window.localStorage.removeItem("restet_code_time" + code); window.localStorage.removeItem("restet_code_time" + code);
window.localStorage.removeItem("camp_statement" + code) window.localStorage.removeItem("camp_statement" + code)
window.localStorage.removeItem("transfer_account" + code);
window.localStorage.removeItem("payee" + code);
window.localStorage.removeItem("bank_first" + code);
window.localStorage.removeItem("bank_idcard" + code);
window.localStorage.removeItem(
"bank_info" + window.localStorage.getItem("phone" + code) + code
);
router.push({ router.push({
path: '/' + store.state.indexIdentity, path: '/' + store.state.indexIdentity,
}) })
if(!isLogout){ if (!isLogout) {
Notification({ Notification({
message: res.data.message, message: res.data.message,
duration: 3000, duration: 3000,
...@@ -257,8 +260,19 @@ export function request(config) { ...@@ -257,8 +260,19 @@ export function request(config) {
window.localStorage.removeItem("bk_pic" + code); window.localStorage.removeItem("bk_pic" + code);
window.localStorage.removeItem("examine_status" + code); window.localStorage.removeItem("examine_status" + code);
window.localStorage.removeItem("examine_reason" + code); window.localStorage.removeItem("examine_reason" + code);
window.localStorage.removeItem("sign_up_file_18355151517" + code); window.localStorage.removeItem(
"sign_up_file_18355151517" +
window.localStorage.getItem("phone" + code) +
code
);
window.localStorage.removeItem("schoolName" + code); window.localStorage.removeItem("schoolName" + code);
window.localStorage.removeItem("transfer_account" + code);
window.localStorage.removeItem("payee" + code);
window.localStorage.removeItem("bank_first" + code);
window.localStorage.removeItem("bank_idcard" + code);
window.localStorage.removeItem(
"bank_info" + window.localStorage.getItem("phone" + code) + code
);
router.push({ router.push({
path: '/login', path: '/login',
query: { query: {
...@@ -266,16 +280,6 @@ export function request(config) { ...@@ -266,16 +280,6 @@ export function request(config) {
} // 从哪个页面跳转 } // 从哪个页面跳转
}) })
} }
// else if (
// res.data.code == 400801 ||
// res.data.code == 400910 ||
// res.data.code == 4002132 ||
// res.data.code == 40068
// ) {
// store.state.showDialog = true
// store.state.dialogType = 1
// }
loadingInstance && loadingInstance.close() loadingInstance && loadingInstance.close()
setTimeout(() => { setTimeout(() => {
allowRequest(reqList, res.config.url) allowRequest(reqList, res.config.url)
...@@ -283,27 +287,31 @@ export function request(config) { ...@@ -283,27 +287,31 @@ export function request(config) {
return res return res
}, },
(error) => { (error) => {
// console.log(error, 'err') // console.log(window.localStorage.getItem(), 'id')
console.log(error, 'err')
console.log(error == 'Error: 请登录!', 'err')
console.log(error.message == '请登录!', 'err')
// console.log(error.response.status, '5555') // console.log(error.response.status, '5555')
Message.closeAll() Message.closeAll()
if (error.response.status === 404) { if (error.message == '请登录!') {
// return this.$message.error("营地报名已结束") // router.push({
// 未登录 // path: "/login?code=" + store.state.indexIdentity,
// })
}
if(error.response.status == 404)
{
Notification({ Notification({
message: "营地报名已关闭", message: "营地报名已关闭",
duration: 3000, duration: 3000,
// onClose() {
// console.log('error');
// router.push("/admin/login");
// },
}); });
return false;
} }
if (axios.isCancel(error)) { if (axios.isCancel(error)) {
console.log(error.message) console.log(error.message)
} else { } else {
// 增加延迟,相同请求不得在短时间内重复发送 // 增加延迟,相同请求不得在短时间内重复发送
setTimeout(() => { setTimeout(() => {
console.log(error.config)
console.log(error)
allowRequest(reqList, error.config.url) allowRequest(reqList, error.config.url)
}, 1000) }, 1000)
} }
...@@ -338,6 +346,43 @@ export function upload(url, data = {}) { ...@@ -338,6 +346,43 @@ export function upload(url, data = {}) {
); );
}); });
} }
// 通用下载方法
export function download(url, params, filename) {
console.log(url, params, filename)
return instance.post(url, params, {
transformRequest: [
params => {
return tansParams(params);
}
],
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
responseType: "blob"
})
.then(data => {
const content = data;
console.log(content)
const blob = new Blob([content]);
if ("download" in document.createElement("a")) {
const elink = document.createElement("a");
elink.download = filename;
elink.style.display = "none";
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
URL.revokeObjectURL(elink.href);
document.body.removeChild(elink);
} else {
navigator.msSaveBlob(blob, filename);
}
})
.catch(r => {
console.error(r);
});
}
// 合并多个请求 // 合并多个请求
export function allRequest(arrRequest) { export function allRequest(arrRequest) {
return axios.all(arrRequest) return axios.all(arrRequest)
......
...@@ -74,6 +74,26 @@ export function delPic(data) { ...@@ -74,6 +74,26 @@ export function delPic(data) {
}) })
} }
// 上传缴费图片
export function getBankInfoOss(data) {
data['identity'] = store.state.indexIdentity;
return request({
method: 'post',
url: '/web/signUp/getBankInfoOss',
data
})
}
// 删除缴费图片
export function delPayingPic(data) {
data['identity'] = store.state.indexIdentity;
return request({
method: 'post',
url: '/web/signUp/delPic',
params: data
})
}
// 页面个人信息保存 // 页面个人信息保存
export function setAccount(data) { export function setAccount(data) {
data['identity'] = store.state.indexIdentity; data['identity'] = store.state.indexIdentity;
...@@ -103,3 +123,14 @@ export function getSchool(data) { ...@@ -103,3 +123,14 @@ export function getSchool(data) {
params: data params: data
}) })
} }
//埋点
export function setLog(data) {
data['identity'] = store.state.indexIdentity;
return request({
method: 'post',
url: '/web/auth/setLog',
params: data
})
}
export default [{
path: '/baseLogin',
name: 'base-login',
component: () => import(/* webpackChunkName: "login" */ 'v/base/login/Login.vue'),
meta: {
title: '登录'
}
},
{
path: '/baseRegister',
name: 'base-register',
component: () => import(/* webpackChunkName: "reset" */ 'v/base/login/Register.vue'),
meta: {
title: '新用户注册'
}
},
{
path: '/reset',
name: 'base-reset',
component: () => import(/* webpackChunkName: "reset" */ 'v/base/login/Reset.vue'),
meta: {
title: '重置密码'
}
}
]
...@@ -5,9 +5,12 @@ import VueRouter from 'vue-router'; ...@@ -5,9 +5,12 @@ import VueRouter from 'vue-router';
import store from '@/store'; import store from '@/store';
import indexLogin from './index/login'; import indexLogin from './index/login';
import baseLogin from './base/login';
import indexHome from './base/home'; import indexHome from './base/home';
import indexActive from './base/active'; import indexActive from './base/active';
import {getCam} from "r/index/login"; import indexCamp from './index/camp'
import personalInfo from './index/personalInfo'
import {getCam,getCamInfo} from "r/index/login";
import {Message} from 'element-ui'; import {Message} from 'element-ui';
Vue.prototype.$message = Message; Vue.prototype.$message = Message;
...@@ -27,13 +30,13 @@ const routes = [ ...@@ -27,13 +30,13 @@ const routes = [
children: [...indexHome, ...indexActive] children: [...indexHome, ...indexActive]
}, },
{ {
path: '/login', path: '/baseLogin',
name: 'loginIndex', name: 'loginBase',
meta: { meta: {
title: '登录' title: '登录'
}, },
component: () => import('v/index/login/Index.vue'), component: () => import('v/base/login/Index.vue'),
children: [...indexLogin] children: [...baseLogin]
}, },
{ {
path: '/myInfo', path: '/myInfo',
...@@ -51,30 +54,52 @@ const routes = [ ...@@ -51,30 +54,52 @@ const routes = [
} }
}] }]
}, },
// { {
// path: '/', path: '/login',
// name: 'cerificateIndex', name: 'loginIndex',
// meta: { meta: {
// title: '营地报名' title: '登录'
// }, },
// // redirect: '/cerificate/signUp', component: () => import('v/index/login/Index.vue'),
// component: () => import('v/index/camp/Index.vue'), children: [...indexLogin]
// children: [...indexCamp] },
// }, {
path: '/Info',
name: 'Info',
meta: {
title: '个人信息'
},
// redirect: '/Info/personalInfo',
component: () =>
import('v/index/Info/Index.vue'),
children: [...personalInfo]
},
{
path: '/',
name: 'cerificateIndex',
meta: {
title: '营地报名'
},
// redirect: '/cerificate/signUp',
component: () =>
import('v/index/camp/Index.vue'),
children: [...indexCamp]
},
{ {
path: '/:code', path: '/:code',
name: 'recruit', name: 'recruit',
meta: { meta: {
title: '' title: ''
}, },
component: () => import('v/index/recruit/Index.vue') component: () =>
import('v/index/recruit/Index.vue')
}, },
{ {
path: "/404", path: "/404",
name: "notFound", name: "notFound",
component: () => import('v/index/notFound.vue'), component: () =>
}, import('v/index/notFound.vue'),
{ }, {
path: "*", // 此处需特别注意置于最底部 path: "*", // 此处需特别注意置于最底部
redirect: "/404" redirect: "/404"
} }
...@@ -84,7 +109,12 @@ const routes = [ ...@@ -84,7 +109,12 @@ const routes = [
const router = new VueRouter({ const router = new VueRouter({
mode: 'history', mode: 'history',
// base: process.env.BASE_URL, // base: process.env.BASE_URL,
routes: routes //原因 routes,
// 禁止浏览器 前进和后退,另一部分在main.js中
scrollBehavior: () => {
history.pushState(null, null, document.URL)
}
}) })
...@@ -135,7 +165,33 @@ function checkCam(code, cb) { ...@@ -135,7 +165,33 @@ function checkCam(code, cb) {
"doubt_check" + code, "doubt_check" + code,
res.data.audit_individual_information res.data.audit_individual_information
); //是否审核个人资料 ); //是否审核个人资料
// 判断使用微信二维码付款/上传转账截图
window.localStorage.setItem("transfer_account" + code, res.data.transfer_account);
if (res.data.transfer_account == 1) {
window.localStorage.setItem("payee" + code, res.data.payee); //收款单位
window.localStorage.setItem("bank_first" + code, res.data.bank_first); //开户行
window.localStorage.setItem("bank_idcard" + code, res.data.bank_idcard); //银行卡号
}
store.state.info = res.data; store.state.info = res.data;
if (res.data.is_qinghua == 1) {
store.state.human = 1;
}
if (res.data.base_school == 1) {
store.state.baseSchool = 1;
}
// 分营地填写资料字段
if (res.data.config_json != null) {
store.state.configJson = res.data.config_json;
}
//是否开启多形式报名
if (res.data.is_multiform != null) {
store.state.isMultiform = res.data.is_multiform;
}
window.localStorage.setItem("multiform" + code, JSON.stringify(res.data.multiform));
//是否开启报名人数显示
if (res.data.is_display_num != null) {
store.state.isDisplay_num = res.data.is_display_num;
}
cb && cb(true); cb && cb(true);
}).catch(() => { }).catch(() => {
cb && cb(false); cb && cb(false);
...@@ -146,6 +202,7 @@ router.beforeEach((to, from, next) => { ...@@ -146,6 +202,7 @@ router.beforeEach((to, from, next) => {
console.log(to) console.log(to)
let let
toLogin = "/login", toLogin = "/login",
toBaseLogin = "/baseLogin",
toRegister = "/register", toRegister = "/register",
toReset = "/reset", toReset = "/reset",
toHome = "/home", toHome = "/home",
...@@ -168,7 +225,7 @@ router.beforeEach((to, from, next) => { ...@@ -168,7 +225,7 @@ router.beforeEach((to, from, next) => {
// } // }
// }); // });
return next(); return next();
} else if (to.path == toMyInfo || to.path == toHome || to.path == toActive || to.path.indexOf(toActive) != -1) { } else if (to.path == toBaseLogin || to.path == toMyInfo || to.path == toHome || to.path == toActive || to.path.indexOf(toActive) != -1) {
return next(); return next();
} else if (to.name == "recruit") { } else if (to.name == "recruit") {
code = to.params.code; code = to.params.code;
......
export default [{ export default [{
path: '/signUp/:type', path: '/signUp/:type',
name: 'index-signUp', name: 'index-signUp',
component: () => import(/* webpackChunkName: "login" */ 'v/index/camp/SignUp.vue'), component: () => import('v/index/camp/SignUp.vue'),
meta: { meta: {
title: '营地报名' title: '营地报名'
} }
}, },
{ {
path: '/homework', path: 'homework',
name: 'index-homework', name: 'index-homework',
component: () => import(/* webpackChunkName: "reset" */ 'v/index/camp/Homework.vue'), component: () => import('v/index/camp/Homework.vue'),
meta: { meta: {
title: '营地作业' title: '营地作业'
} }
},
{ },
// {
// path: '/homework/refer',
// name: 'homework-refer',
// component: () => import('v/index/camp/homework/refer.vue'),
// meta: {
// title: '提交作业'
// },
// },
{
path: '/certificate', path: '/certificate',
name: 'index-certificate', name: 'index-certificate',
component: () => import(/* webpackChunkName: "reset" */ 'v/index/camp/Certificate.vue'), component: () => import('v/index/camp/Certificate.vue'),
meta: { meta: {
title: '营地证书' title: '营地证书'
} }
} }
] ]
export default [{
path: 'personalInfo',
name: 'info-personalInfo',
component: () => import('v/index/Info/personalInfo.vue'),
meta: {
title: '个人资料'
}
},
{
path: 'password',
name: 'info-password',
component: () => import('v/index/Info/password.vue'),
meta: {
title: '修改密码'
}
},
]
export function tansParams(params) {
// let result = ''
let result = params
// Object.keys(params).forEach((key) => {
// if (!Object.is(params, undefined) && !Object.is(params, null) && !Object.is(JSON.stringify(params), '{}')) {
// result += encodeURIComponent(key) + '=' + encodeURIComponent(params[key]) + '&'
// }
// })
return result
}
\ No newline at end of file
...@@ -13,10 +13,16 @@ let state = { ...@@ -13,10 +13,16 @@ let state = {
// 数据 // 数据
data: [], data: [],
token: '', token: '',
indexIdentity: "", indexIdentity:"",
// showDialog: false, human:0,//清华人文学院
// dialogType: 0, baseSchool:0,//基地
info: {}, configJson: {}, //分营地填写资料字段
work_context:"",
enclosure_url:"",
isDisplay_num:null,//是否开启报名人数显示
info:{},
isCloseCamp:0,//是否关闭营地
signUpInfo:{},
isLogin: localStorage.getItem("isLogin") || "0", // 只有1为已登录 isLogin: localStorage.getItem("isLogin") || "0", // 只有1为已登录
activeIndex: window.localStorage.getItem('index-active-path') || "0", activeIndex: window.localStorage.getItem('index-active-path') || "0",
}; };
......
...@@ -8,6 +8,7 @@ export default { ...@@ -8,6 +8,7 @@ export default {
setData(state, city) { setData(state, city) {
state.data = city; state.data = city;
}, },
login(state) { login(state) {
state.isLogin = "1"; state.isLogin = "1";
localStorage.setItem("isLogin", "1"); localStorage.setItem("isLogin", "1");
......
import {setLog} from "../request/index/signUp";
//埋点
export function commonApi(number) {
console.log(number, "number");
setLog({type:number}).then((res) => {
console.log(number, "number");
console.log(res, "signBack");
if (res.data.code != 200) {
return
}
}).catch(err=>{
console.log(err, "err");
});
}
export default {
install (Vue) {
Vue.directive('preventReClick', {
inserted(el, binding) {
el.addEventListener('click', () => {
if(!el.disabled) {
el.disabled = true;
setTimeout(() => {
el.disabled = false;
}, binding.value || 1000);
}
})
}
})
}
}
\ No newline at end of file
<template> <template>
<div class="login-index"> <div class="login-index">
<div class="big-img" @click="toHome">
<img :src="bigImg" />
</div>
<div class="big-right"> <div class="big-right">
<div class="info-box"> <div class="info-box">
<router-view /> <router-view />
...@@ -15,18 +12,12 @@ ...@@ -15,18 +12,12 @@
import Cookie from "js-cookie" import Cookie from "js-cookie"
export default { export default {
name: "loginIndex", name: "loginBase",
data() { data() {
return { return {
bigImg: window.localStorage.getItem("bk_pic"+this.$store.state.indexIdentity),
}; };
}, },
created() { created() {
let code = this.$store.state.indexIdentity;
let bk_pic = window.localStorage.getItem("bk_pic"+code);
if (bk_pic) {
this.bigImg = bk_pic;
}
this.$emit("getStatus", false); this.$emit("getStatus", false);
}, },
......
...@@ -65,11 +65,11 @@ ...@@ -65,11 +65,11 @@
<script> <script>
/* eslint-disable */ /* eslint-disable */
import Cookie from "js-cookie"; import Cookie from "js-cookie";
import { login } from "r/index/login"; import { login } from "r/base/login";
import { mobileCheck } from "@/common/utils.js"; import { mobileCheck } from "@/common/utils.js";
export default { export default {
name: "index-login", name: "base-login",
data() { data() {
return { return {
isShowPwd: true, // 控制密码显示隐藏 isShowPwd: true, // 控制密码显示隐藏
......
...@@ -39,8 +39,8 @@ ...@@ -39,8 +39,8 @@
<script> <script>
/* eslint-disable */ /* eslint-disable */
import Header from "@/components/index/SignUp/Header.vue"; import Header from "@/components/base/Header.vue";
import Footer from "@/components/index/Footer.vue"; import Footer from "@/components/base/Footer.vue";
import svg1 from '@/assets/img/signUp/icon.svg'; import svg1 from '@/assets/img/signUp/icon.svg';
import signUpList from '../myInfo/signUp.vue'; import signUpList from '../myInfo/signUp.vue';
......
<template>
<div class="camp-index">
<el-header height="104px">
<Header></Header>
<!-- <div class="bg-top"></div> -->
<div class="bg-top">
<el-breadcrumb separator="/">
<el-breadcrumb-item
:to="{
path: '/signUp/examInfo?code=' + $store.state.indexIdentity,
}"
>首页</el-breadcrumb-item
>
<el-breadcrumb-item>个人信息</el-breadcrumb-item>
</el-breadcrumb>
</div>
</el-header>
<div class="com-container">
<div class="index-container">
<div class="camp_left" ref="leftBoxFu">
<ul
class="camp_left_box"
ref="leftBox"
:class="{
'is-fixed': isPosition == 1,
'is-absolute': isPosition == 2,
}"
>
<li
v-for="(item, index) in tabs"
:key="index"
:class="{ active: campindex_type === index }"
@click="ToSignUp(index)"
>
<img :src="item.url" />
{{ item.desc }}
</li>
</ul>
</div>
<div class="camp_right" ref="rightBox">
<!-- <router-view @getStatus="getStatus" /> -->
<personalInfo v-if="this.campindex_type == 0"> </personalInfo>
<!-- <password v-if="this.campindex_type == 1"> </password> -->
</div>
</div>
</div>
<Footer></Footer>
</div>
</template>
<script>
/* eslint-disable */
import Header from "@/components/index/Homework/Header.vue";
import Footer from "@/components/index/Footer.vue";
import svg1 from "@/assets/img/signUp/icon.svg";
import svg2 from "@/assets/img/signUp/icon-1.svg";
import personalInfo from "v/index/Info/personalInfo";
import password from "v/index/Info/password";
export default {
name: "Info",
components: {
Header,
Footer,
personalInfo,
password,
},
data() {
return {
index: 0,
isPosition: 0, // 左侧box是否浮动
pageYOffset: 0, // 左侧box浮动时,滚动的高度
scorllHeight: 0, // 最大滚动高度
tabs: [
{
id: "0",
desc: "个人信息",
icon: "icon-icon1",
url: svg1,
},
// {
// id: "1",
// desc: "修改密码",
// icon: "icon-icon-1",
// url: svg2,
// },
],
campindex_type: 0,
index_status: "",
};
},
watch: {},
created() {
// this.ToSignUp(this.index);
this.ToSignUp(this.index);
// this.$refs.child.signUpInit();
},
mounted() {
window.addEventListener("scroll", this.handleScrollX, true);
window.addEventListener("resize", this.onResize, true);
},
beforeDestroy() {
window.removeEventListener("scroll", this.handleScrollX, true);
window.removeEventListener("resize", this.onResize, true);
},
methods: {
ToSignUp(index) {
console.log(index, "index");
let code = this.$store.state.indexIdentity;
this.campindex_type = index;
// if (this.campindex_type == 0) {
// this.$router.push("Info/personalInfo?code=" + code);
// } else
// if (this.campindex_type == 1) {
// this.$router.push("/password?code=" + code);
// }
},
onResize() {
const refLeft = this.$refs["leftBox"];
const leftBoxFu = this.$refs["leftBoxFu"];
refLeft.style.width = leftBoxFu.offsetWidth + "px";
},
// 页面滚动事件
handleScrollX() {
const top = document.documentElement.scrollTop || document.body.scrollTop;
const refLeft = this.$refs["leftBox"];
const leftBoxFu = this.$refs["leftBoxFu"];
const refRight = this.$refs["rightBox"];
if (top > 0) {
if (this.isPosition == 0) {
this.scorllHeight = refRight.offsetHeight - refLeft.offsetHeight;
refLeft.style.width = leftBoxFu.offsetWidth + "px";
}
this.isPosition = 1;
} else {
if ((this.isPosition = 1)) {
this.isPosition = 0;
}
}
if (top >= this.scorllHeight) {
if (this.isPosition == 1) {
this.isPosition = 2;
}
} else if (top < this.scorllHeight) {
if (this.isPosition == 2) {
this.isPosition = 1;
refLeft.style.width = leftBoxFu.offsetWidth + "px";
}
}
},
},
};
</script>
<style lang="scss" scoped>
@import "a/scss/common";
@import "a/scss/index";
@import "a/style";
@font-face {
font-family: "icomoon";
src: url("../../../assets/fonts/icomoon.eot?dcunb6");
src: url("../../../assets/fonts/icomoon.eot?dcunb6#iefix")
format("embedded-opentype"),
url("../../../assets/fonts/icomoon.ttf?dcunb6") format("truetype"),
url("../../../assets/fonts/icomoon.woff?dcunb6") format("woff"),
url("../../../assets/fonts/icomoon.svg?dcunb6#icomoon") format("svg");
font-weight: normal;
font-style: normal;
font-display: block;
}
.camp_left i {
font-family: "icomoon";
}
.camp-index {
background: #f8f8f8;
.el-header {
position: fixed;
width: 100%;
padding: 0;
background-color: #ffffff;
z-index: 2000; //消息提示框z-index=2019
.bg-top {
height: 24px;
background-color: #f8f8f8;
padding: 30px 0 0 0;
padding-left: 50px;
}
}
// .com-container {
// height: calc(100% - 100px);
// }
.index-container {
padding: 130px 0 70px 0;
display: flex;
flex-flow: row;
.camp_left {
// width: 100px;
height: 100%;
position: relative;
width: 22%;
max-width: 280px;
min-width: 200px;
// width: calc(100% - 100px);
height: 300px;
background-color: #ffffff;
border-radius: 8px;
padding: 20px 0;
margin-right: 25px;
.camp_left_box {
padding-inline-start: 0 !important;
}
&.is-fixed {
position: fixed;
top: 104px;
/*width: 14.4%;*/
max-width: 280px;
min-width: 216px;
}
&.is-absolute {
position: absolute;
bottom: 0;
width: 100%;
}
}
li {
position: relative;
padding: 0 23px 0 51px;
height: 44px;
line-height: 44px;
margin: 10px 0;
font-size: 15px;
list-style: none;
img {
vertical-align: middle;
margin: -3px 8px 0 0;
width: 20px;
position: absolute;
left: -1000px;
filter: drop-shadow(var(--color) 1023px 13px) !important;
}
&.active,
&:hover {
cursor: pointer;
background-color: #f8f8f8;
}
}
}
.camp_right {
flex: 1;
// width: calc(100% - 100px);
// height: 100%;
// overflow: auto;
border-radius: 8px;
background-color: #ffffff;
}
}
</style>
<template>
<div class="camp-index">aaaa</div>
</template>
\ No newline at end of file
<template>
<div class="referInfo">
<el-form
ref="referRef"
:model="referForm"
label-position="top"
class="checkForm"
:rules="referInfoRules"
>
<!-- 个人信息 -->
<div class="cont_title">个人信息</div>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input
ref="name"
v-model="referForm.name"
placeholder="填写真实姓名"
size="small"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="性别" prop="gender">
<el-radio-group
v-model="referForm.gender"
ref="gender"
size="small"
>
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="id_card">
<el-input
ref="id_card"
v-model="referForm.id_card"
placeholder="填写真实身份证号"
size="small"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="出生日期" prop="birthday">
<el-row :gutter="20">
<el-col :span="8">
<el-select v-model="bdYear" placeholder="年">
<el-option
v-for="(item, index) in yearArrs"
:key="index"
:label="item"
:value="item"
>
</el-option>
</el-select>
</el-col>
<el-col :span="8">
<el-select v-model="bdMonth" placeholder="月">
<el-option
v-for="(item, index) in monthArrs"
:key="index"
:label="item"
:value="item"
>
</el-option>
</el-select>
</el-col>
<el-col :span="8">
<el-select
ref="birthday"
v-model="bdDay"
placeholder="日"
@change="getTime"
>
<el-option
v-for="(item, index) in dayArrs"
:key="index"
:label="item"
:value="item"
>
</el-option>
</el-select>
</el-col>
</el-row>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="籍贯" prop="jiguan_code">
<el-row :gutter="20">
<el-col :span="12">
<!-- @keyup.enter.native="selsectProvince" -->
<el-select
v-model="jgProvinceCode"
placeholder="省"
@change="changeProvince(1, $event)"
>
<el-option
v-for="item in selectProvince"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-col>
<el-col :span="12">
<el-select
ref="jiguan_code"
v-model="jiguan_city"
placeholder="市"
@change="getJiguan()"
>
<el-option
v-for="item in selectCityJiguan"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-col>
</el-row>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="民族" prop="nation">
<el-input
ref="nation"
v-model="referForm.nation"
placeholder="填写民族"
size="small"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="入学年份" prop="start_school_date">
<el-row :gutter="20">
<el-col :span="12">
<el-select
v-model="start_grade"
placeholder="年级"
clearable
@change="getyear()"
>
<el-option
v-for="(item, index) in gradeArrs"
:key="index"
:label="item"
:value="item"
>
</el-option>
</el-select>
</el-col>
<el-col :span="12">
<el-select
ref="start_school_date"
v-model="start_year"
placeholder="年份"
clearable
@change="getyear()"
>
<el-option
v-for="(item, index) in yearArrs"
:key="index"
:label="item"
:value="item"
>
</el-option>
</el-select>
</el-col>
</el-row>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="政治面貌" prop="political_status">
<el-select
ref="political_status"
v-model="referForm.political_status"
placeholder="填写政治面貌"
clearable
>
<el-option
v-for="item in political_status"
:key="item.id"
:label="item.name"
:value="item.name"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="手机号">
<el-input
v-model="referForm.phone"
placeholder="请输入手机号"
size="small"
:disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="电子邮箱" prop="email">
<el-input
v-model="referForm.email"
placeholder="填写电子邮箱"
size="small"
:disabled="true"
/>
</el-form-item>
</el-col>
</el-row>
<!-- 收件信息 (不可编辑) -->
<div class="cont_title">收件信息</div>
<el-form :model="addressForm">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="收件人" prop="certificate_name">
<el-input
v-model="addressForm.certificate_name"
placeholder="填写真实姓名"
size="small"
:disabled="true"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="收件人电话" prop="certificate_phone">
<el-input
v-model="addressForm.certificate_phone"
placeholder="填写真实电话"
size="small"
:disabled="true"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="收货地址" prop="certificate_province">
<el-select
ref="certificate_province"
v-model="addressForm.certificate_province"
:disabled="true"
placeholder="选择省份"
@change="changeProvince(3, $event)"
>
<el-option
v-for="item in selectProvince"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="no_label" label=" " prop="certificate_city">
<el-select
ref="certificate_city"
v-model="addressForm.certificate_city"
:disabled="true"
placeholder="选择城市"
>
<el-option
v-for="item in selectCitySchool"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="no_label" label=" " prop="county">
<!-- <el-select
ref="school"
v-model="addressForm.school"
clearable
placeholder="选择所在区县"
>
<el-option
v-for="item in selectSchoolList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select> -->
<el-input
v-model="county"
placeholder="选择所在区县"
size="small"
:disabled="true"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="" prop="certificate_address">
<el-input
ref="certificate_address"
v-model="certificate_address"
placeholder="填写详细地址"
size="small"
:disabled="true"
></el-input>
</el-form-item>
</el-form>
<el-form-item class="btn">
<el-button @click="confirm">提交资料</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
/* eslint-disable */
import { getProAndCity, getSchool } from "r/index/signUp";
import { getAccountInfo, setAccountInfo } from "r/index/info";
import { getAddress } from "r/index/certificate";
import validator from "common/validator";
export default {
name: "CheckForm",
data() {
const validateContent = (rule, value, callback) => {
if (!this.referForm.birthday) {
callback(new Error("出生日期不能为空!"));
} else {
callback();
}
};
const validateContents = (rule, value, callback) => {
if (!this.referForm.jiguan_code) {
callback(new Error("籍贯不能为空!"));
} else {
callback();
}
};
return {
isUploading: false, // 图片上传蒙层
referForm: {
name: null,
gender: null,
id_card: null,
birthday: null,
jiguan_code: null,
nation: null,
start_school_date: null,
political_status: null,
phone: null,
email: null,
school_province: null,
school_city: null,
school: null,
school_contacts: null,
school_phone: null,
},
schoolName: {},
referInfoRules: {
name: [{ required: true, message: "姓名不能为空!", trigger: "blur" }],
gender: [
{ required: true, message: "性别不能为空!", trigger: "change" },
],
id_card: [
{ required: true, message: "身份证号不能为空!", trigger: "blur" },
{ validator: validator.validateid_card, trigger: "blur" },
],
birthday: [
{
required: true,
validator: validateContent,
trigger: "change",
},
],
jiguan_code: [
{ required: true, validator: validateContents, trigger: "change" },
],
nation: [
{ required: true, message: "民族不能为空!", trigger: "change" },
],
start_school_date: [
{
required: true,
message: "入学年份不能为空!",
trigger: "change",
},
],
political_status: [
{ required: true, message: "政治面貌不能为空!", trigger: "blur" },
],
// email: [
// { required: true, message: "电子邮箱不能为空!", trigger: "blur" },
// { validator: validator.validateEmail, trigger: "blur" },
// ],
school_province: [
{
required: true,
message: "请选择所在学校省份!",
trigger: "change",
},
],
school_city: [
{
required: true,
message: "请选择所在学校城市!",
trigger: "change",
},
],
school: [
{ required: true, message: "请选择所在学校!", trigger: "change" },
],
school_contacts: [
{ required: true, message: "请填写中学联系人!", trigger: "blur" },
],
school_phone: [
{
required: true,
message: "中学联系人电话(手机)不能为空!",
trigger: "blur",
},
{ validator: validator.validatePhone, trigger: "blur" },
],
// backgroundPicture: [{ required: true, message: "请上传图片" }],
},
selectProvince: [], //省份
CityName: {}, //根据省份筛选出所有城市的对象
selectCityJiguan: [], //籍贯城市列表
selectCitySchool: [], //就读中学-城市列表
selectSchoolList: [], //就读中学-中学列表
jgProvinceCode: "", //省份id
jiguan_city: "", //城市id(和省份id拼接)
yearArrs: [], //生日涉及的近10年的年份
monthArrs: [
"01",
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11",
"12",
],
dayArrs: [
"01",
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
"19",
"20",
"21",
"22",
"23",
"24",
"25",
"26",
"27",
"28",
"29",
"30",
"31",
],
bdYear: "", //选择的生日年份
bdMonth: "", //选择的生日月份
bdDay: "", //选择的生日日期
//入学年份(初中高中)
gradeArrs: ["初中", "高中", "大学"],
//选择年级
start_grade: "",
start_year: "",
// 政治面貌
political_status: [
{
id: 1,
name: "党员",
},
{
id: 2,
name: "团员",
},
{
id: 3,
name: "群众",
},
],
// 上传的图片
dialogImageUrl: "",
dialogVisible: false,
fileList: [],
resultPicture: "",
dialogVisible: false,
disabled: false, //限制输入框
// 收货信息模块
// 收件地址-地址栏
addressForm: {
certificate_name: "",
certificate_phone: "",
certificate_province: null,
certificate_city: null,
certificate_address: "",
},
county: "", //区县
certificate_address: "", //详细地址
};
},
mounted() {},
created() {
const code = this.$store.state.indexIdentity;
this.referForm.phone = window.localStorage.getItem("phone" + code); //本地取用户手机号
this.referForm.email = window.localStorage.getItem("email" + code); //本地取用户邮箱
console.log(this.referForm.email, " this.referForm.email");
let signUpFile = window.localStorage.getItem(
"sign_up_file_" + window.localStorage.getItem("phone" + code) + code
);
// console.log(signUpFile);
if (signUpFile && JSON.parse(signUpFile).length > 0) {
this.fileList = JSON.parse(signUpFile);
}
this.getSchool();
this.getProAndCity();
this.getTenYear();
this.getAccount(); // 页面信息个人获取
this.getAddress(); //收件信息获取
},
watch: {
referForm(val) {
console.log(val, "val");
for (var k in val) {
if (val[k] == null || !val[k]) {
val[k] = this.referForm[k];
}
}
this.selfInfo = val;
if (val.gender && val.gender !== "") {
// console.log(val.gender)
this.referForm.gender = val.gender;
}
//出生日期
if (val.birthday && val.birthday !== "") {
this.bdYear = val.birthday.slice(0, 4); //前4位取年
this.bdMonth = val.birthday.slice(4, 6); //中2位取月
this.bdDay = val.birthday.slice(6, 8); //后2位取日
}
//入学年份
if (val.start_school_date && val.start_school_date !== "") {
this.start_year = val.start_school_date.slice(0, 4); //年份
this.start_grade = val.start_school_date.slice(5, 8); //年级
}
//籍贯
if (val.jiguan_city !== null && val.jiguan_province !== null) {
if (this.referForm.jiguan_city) {
}
this.jgProvinceCode = Number(val.jiguan_province);
this.changeProvince(1, this.jgProvinceCode, true);
this.jiguan_city = Number(val.jiguan_city);
}
// console.log(val.school_province, val.school_city, val.school);
//学校
if (
val.school_province !== null &&
val.school_city !== null &&
val.school !== null
) {
this.referForm.school_province = Number(val.school_province);
this.referForm.school_city = Number(val.school_city);
this.referForm.school = Number(val.school);
// console.log(
// this.referForm.school_province,
// this.referForm.school_city,
// this.referForm.school
// );
this.changeProvince(2, this.referForm.school_province, true);
// console.log(this.referForm.school_city, 12322);
this.changeCity(this.referForm.school_city, true);
}
},
},
methods: {
// 收件信息获取
getAddress() {
// console.log(111111)
getAddress({}).then((res) => {
// console.log(res, "getAddress");
if (res.data.code != 200) {
return this.$message.error(res.data.message);
}
this.addressForm.certificate_name = res.data.info.certificate_name;
this.addressForm.certificate_phone = res.data.info.certificate_phone;
this.addressForm.certificate_province =
res.data.info.certificate_province;
this.addressForm.certificate_city = res.data.info.certificate_city;
this.selectCitySchool = this.getCurrentCityLists(
this.addressForm.certificate_province
);
if (res.data.info.certificate_address) {
this.county = res.data.info.certificate_address.split("-")[0];
this.certificate_address =
res.data.info.certificate_address.split("-")[1];
// console.log(res.data.info.certificate_address.split("-"))
}
});
},
//获取近10年的年份
getTenYear() {
let nowDate = new Date();
let currentYear = nowDate.getFullYear();
// console.log(nowDate, currentYear);
let yearArr = [];
let rxYearArr = [];
for (let i = 0; i < 42; i++) {
let year = currentYear - i;
yearArr.push(year);
}
// console.log(yearArr, "yearArr");
for (let i = 0; i < 10; i++) {
let year = currentYear - i;
rxYearArr.push(year);
}
this.yearArrs = yearArr;
this.rxYearArrs = rxYearArr;
},
// 页面信息个人获取
getAccount() {
getAccountInfo({}).then((res) => {
console.log(res, "getAccountInfo");
if (res.data.code != 200) {
return this.$message.error(res.data.message);
}
this.referForm = res.data.info;
if (res.data.info.jiguan_province && res.data.info.jiguan_city) {
this.referForm.jiguan_code =
res.data.info.jiguan_province.toString() +
res.data.info.jiguan_city.toString();
}
if (res.data.info.email == null) {
const code = this.$store.state.indexIdentity;
this.referForm.email = window.localStorage.getItem("email" + code); //本地取用户邮箱
}
});
},
//组装出生日期
getTime() {
this.referForm.birthday =
this.bdYear.toString() +
this.bdMonth.toString() +
this.bdDay.toString();
// console.log(this.referForm.birthday);
},
//组装入学年份
getyear() {
this.referForm.start_school_date =
this.start_year.toString() + "-" + this.start_grade.toString();
console.log(this.referForm.start_school_date);
},
// 获取省份城市
getProAndCity() {
getProAndCity({}).then((res) => {
// console.log(res, "getProAndCity");
if (res.data.code != 200) {
return this.$message.error(res.data.message);
}
this.selectProvince = res.data.province_list;
// this.CityName = res.data.city_list;
// console.log(this.selectProvince, this.CityName);
});
},
//选择籍贯省份change事件
changeProvince(type, val, status) {
// console.log(type, val);
if (type == 1) {
this.selectCityJiguan = [];
this.selectCityJiguan = this.getCurrentCityLists(val);
if (!status) {
this.jiguan_city = "";
this.referForm.jiguan_code = "";
}
} else {
this.selectCitySchool = [];
this.selectCitySchool = this.getCurrentCityLists(val); //在此调用城市筛选列表
if (!status) {
this.referForm.school_city = "";
this.referForm.school = "";
this.selectSchoolList = []; //重新选择省份时候,学校list清空
}
}
},
//返回当前省份下的城市列表
getCurrentCityLists(val) {
let currentCity = [];
if (
this.CityName == null ||
!this.CityName ||
Object.values(this.CityName).length == 0
) {
getProAndCity({})
.then((res) => {
// console.log(res, "getProAndCity");
if (res.data.code === 200) {
// this.selectProvince = res.data.province_list;
this.CityName = res.data.city_list;
for (let key in this.CityName) {
if (this.CityName[key].parent_id == val) {
currentCity.push(this.CityName[key]);
}
}
return currentCity;
} else {
this.$message.error(res.data.message);
}
})
.catch((err) => {
this.$message.error(err);
});
} else {
for (let key in this.CityName) {
if (this.CityName[key].parent_id == val) {
currentCity.push(this.CityName[key]);
}
}
return currentCity;
}
return currentCity;
},
// 籍贯城市change事件
getJiguan() {
this.referForm.jiguan_code =
this.jgProvinceCode.toString() + this.jiguan_city.toString();
},
getSchool() {
getSchool({}).then((res) => {
// console.log(res, "getSchool");
if (res.data.code != 200) {
return this.$message.error(res.data.message);
}
this.schoolName = res.data.school_list;
});
},
// 学校城市change事件
changeCity(val, status) {
// console.log(12345333,val,status)
this.selectSchoolList = [];
this.selectSchoolList = this.getCurrentSchoolLists(val);
if (!status) {
this.referForm.school = "";
}
},
// 返回当前城市下的学校列表
getCurrentSchoolLists(val) {
let currentSchool = [];
// console.log(this.schoolName);
if (
this.schoolName == null ||
!this.schoolName ||
Object.values(this.schoolName).length == 0
) {
getSchool({})
.then((res) => {
// console.log(res)
if (res.data.code === 200) {
this.schoolName = res.data.school_list;
let code = this.$store.state.indexIdentity;
window.localStorage.setItem(
"schoolName" + code,
JSON.stringify(res.data.list)
);
for (let key in this.schoolName) {
if (this.schoolName[key].city_id == val) {
currentSchool.push(this.schoolName[key]);
}
}
return currentSchool;
} else {
this.$message.error(res.data.message);
}
})
.catch((err) => {
this.$message.error(err);
});
} else {
// console.log(this.schoolName, 111);
for (let key in this.schoolName) {
// console.log(key, this.schoolName[key]);
if (this.schoolName[key].city_id == val) {
currentSchool.push(this.schoolName[key]);
}
}
// console.log(currentSchool, 222);
return currentSchool;
}
return currentSchool;
},
// 滚动到固定地方
scrollView(object) {
// console.log(object, "object");
for (let i in object) {
if (!i) {
continue;
}
let dom = this.$refs[i];
// console.log(i, dom);
if (!dom) {
continue;
}
// 这里是针对遍历的情况(多个输入框),取值为数组
if (Object.prototype.toString.call(dom) !== "[object Object]") {
dom = dom[0];
}
// 第一种方法(包含动画效果)
dom.$el.scrollIntoView({
// 滚动到指定节点
// 值有start,center,end,nearest,当前显示在视图区域中间
block: "center",
// 值有auto、instant,smooth,缓动动画(当前是慢速的)
behavior: "smooth",
});
break; // 因为我们只需要检测一项,所以就可以跳出循环了
}
},
confirm() {
// console.log(111);
// console.log(this.referForm.birthday);
this.$refs["referRef"].validate((valid, object) => {
// console.log(valid, "valid");
if (!valid) {
this.scrollView(object);
return false;
}
setAccountInfo(this.referForm).then((res) => {
// console.log(res, "setAccount");
if (res.data.code != 200) {
if (res.data.code == 400068) {
this.$parent.statuss();
return this.$message.error(res.data.message);
}
return this.$message.error(res.data.message);
}
// console.log(3333);
this.$emit("getstatus", res.data.status);
this.$message.success(res.data.message);
// let code = this.$store.state.indexIdentity;
// this.$router.push("/signUp/check?code=" + code);
this.referForm = res.data.data;
// this.getAccount(); // 页面信息个人获取(刷新)
});
});
},
},
};
</script>
<style scoped lang="scss">
@import "a/scss/btn";
@import "a/scss/SignUp/referInfo";
</style>
<template> <template>
<div class="certificate"> <div class="certificate">
<div class="title"> <div class="title">
<div class="homework_titile">营地证书</div> <div v-if="$store.state.human == 1" class="homework_titile">课程证书</div>
<div v-else class="homework_titile">营地证书</div>
</div> </div>
<div class="content"> <!-- <div class="content_empty"> -->
<div> <!-- <div>
<img src="@/assets/img/homework/homework.png" alt="" /> <img src="@/assets/img/homework/homework.png" alt="" />
</div> </div>
<p>同学你好,老师暂未发布作业</p> <p>同学你好,老师暂未发布作业</p>
<p>请于2021年XX年XX月XX日 前往网站查看作业</p> <p>请于2021年XX年XX月XX日 前往网站查看作业</p> -->
<!-- </div> -->
<div class="content">
<div class="top">
<div>
<p v-if="$store.state.human == 1" class="p_title">
&emsp;&emsp;
恭喜你顺利完成所有课程,点击【填写/修改收货地址】以便确认收货地址,证书将以纸质形式邮寄。
</p>
<p v-else class="p_title">
&emsp;&emsp;
恭喜你顺利完成所有营地课程,点击【填写/修改收货地址】以便确认收货地址,证书将以纸质形式邮寄。
</p>
</div>
<div>
<div v-if="$store.state.human == 1">
<img
src="@/assets/img/certificate_left.jpg"
alt=""
style="width: 25%"
/>
<img
src="@/assets/img/certificate_right.jpg"
alt=""
style="width: 25%"
/>
</div>
<div v-else>
<img src="@/assets/img/certificate.jpg" alt="" style="width: 25%" />
</div>
</div>
<div class="btn">
<el-button @click="getCertifi">填写/修改收货地址</el-button>
</div> </div>
</div> </div>
<!--
<div class="pay_bottom">
<div>注意事项:</div>
<div>
1、学生支付完成后请不要立即关闭浏览器,等待支付完成返回本页面,以确认支付完成。
</div>
<div>
2、支付确认后,将不能再修改姓名和身份证号,请在支付前核对信息。
</div>
</div> -->
</div>
<!-- 收货地址 -->
<delivery-address
:dialogVisibleAddress="dialogVisibleAddress"
@closeAddressDialog="closeAddressDialog"
>
</delivery-address>
</div>
</template> </template>
<script> <script>
/* eslint-disable */ /* eslint-disable */
import deliveryAddress from "@/components/index/SignUp/deliveryAddress.vue";
export default { export default {
name: "certificate", name: "certificate",
components: {
deliveryAddress,
},
data() { data() {
return { return {
dialogVisibleAddress: false,
}; };
}, },
created() { created() {},
// this.$emit("getStatus", false, 2); watch: {},
methods: {
getCertifi() {
this.dialogVisibleAddress = true;
}, },
watch: { // 子组件触发,关闭确认报名弹框
closeAddressDialog(val) {
console.log(val, "val");
this.dialogVisibleAddress = val;
}, },
methods: {
}, },
}; };
</script> </script>
<style lang="scss" > <style lang="scss" >
@import "a/scss/btn";
.btn {
padding-bottom: 0 !important;
padding-top: 20px !important;
.el-button {
width: 160px !important;
}
}
.flex { .flex {
display: flex; display: flex;
} }
...@@ -50,7 +116,7 @@ export default { ...@@ -50,7 +116,7 @@ export default {
// width: 856px; // width: 856px;
.title { .title {
padding: 50px; padding: 50px 50px 0 50px;
.homework_titile { .homework_titile {
font-size: 24px; font-size: 24px;
font-weight: 500; font-weight: 500;
...@@ -60,13 +126,70 @@ export default { ...@@ -60,13 +126,70 @@ export default {
text-align: center; text-align: center;
} }
} }
// 空状态
// .content_empty {
// padding-bottom: 200px;
// p,
// div {
// text-align: center;
// }
// }
// 有证书时候
.content { .content {
padding-bottom: 200px; padding: 0 30px 80px 30px;
p, .top {
padding-bottom: 80px;
.p_title {
font-size: 18px;
font-weight: 500;
color: #12141c;
line-height: 28px;
margin: 10px 0 30px 0;
}
div { div {
text-align: center; text-align: center;
font-size: 16px;
font-weight: 500;
color: #666666;
line-height: 18px;
}
img {
margin-right: 10px;
} }
}
}
// 注意事项
.pay_bottom {
font-size: 12px;
font-weight: 500;
color: #999999;
line-height: 21px;
}
.el-form-item {
margin-bottom: 20px;
// item的验证红点点
.el-form-item__label {
height: 32px;
line-height: 32px;
font-size: 12px;
font-family: PingFang SC;
font-weight: 500;
color: #12141c;
}
&.no_label .el-form-item__label {
width: 0 !important;
}
&.no_label .el-form-item__label::before {
content: "" !important;
}
&.no_label .el-form-item__content {
margin-left: 0 !important;
}
} }
} }
</style> </style>
<template> <template>
<div class="homework"> <div class="homework">
<div class="title"> <div class="title">
<div class="homework_titile">营地作业</div> <div
class="homework_titile"
v-if="$store.state.human == 1"
>
作业
</div> </div>
<div class="content"> <div class="homework_titile" v-else>营地作业</div>
</div>
<div class="content_empty" v-if="total <= 0">
<div> <div>
<img src="@/assets/img/homework/homework.png" alt="" /> <img alt="" src="@/assets/img/homework/homework.png"/>
</div>
<p v-if="isShowinfo">同学你好,老师暂未发布作业</p>
</div>
<div class="home_content" v-if="total > 0">
<div :key="item.id" class="each_content" v-for="item in homeworkList">
<div class="top flex">
<div class="homework_name flex">
<div class="work_name">{{ item.work_name }}</div>
<span class="status_0" v-if="item.student_status == 0">未完成</span>
<span class="status_1" v-if="item.student_status == 1">待评阅</span>
<span class="status_2" v-if="item.student_status == 2">已评阅</span>
</div>
<!-- <el-button class="btn_refer" @click="toRefer(item)"
>查看作业</el-button
> -->
<el-button
:disabled="
!(
(item.is_submit == 0 && !item.disabled) ||
(item.is_submit == 1 && item.disabled)
)
"
@click="toRefer(item)"
class="btn_refer"
>查看作业
</el-button
>
<!-- <el-button type="info" plain disabled>警告按钮</el-button> -->
</div> </div>
<div class="line"></div>
<div class="bottom">
<div v-html="item.work_context"></div>
<p>同学你好,老师暂未发布作业</p> <div class="time flex">
<p>请于2021年XX年XX月XX日 前往网站查看作业</p> <div>发布时间:{{ item.start_time }}</div>
<div>截止日期:{{ item.end_time }}</div>
</div> </div>
</div> </div>
</div>
</div>
<div class="pagination" v-if="total > 0">
<el-pagination
:current-page="currentPage"
:page-size="pageSize"
:total="total"
@current-change="handleCurrentChange"
@size-change="handleSizeChange"
layout="prev, pager, next"
>
</el-pagination>
</div>
<!-- 下载作业 -->
<refer
:dialogVisibleFu="dialogVisibleFu"
:enclosure_urls="enclosure_url"
:end_time="end_time"
:order_nums="order_num"
:student_status="student_status"
:timeOut="time_out"
:workName="workName"
:work_contexts="work_context"
:work_nums="work_num"
@closeDialog="closeDialog"
></refer>
</div>
</template> </template>
<script> <script>
/* eslint-disable */ /* eslint-disable */
import refer from "v/index/camp/homework/refer";
import {getTeacherWork} from "r/index/homework";
export default { export default {
name: "homework", name: "homework",
components: {
refer,
},
data() { data() {
return {}; return {
isShowinfo: false,
pageSize: 10,
currentPage: 1,
total: 0,
homeworkList: [],
dialogVisibleFu: false,
timeOut: 1, //提交作业时间状态
work_context: "",
enclosure_url: "",
time_out: 0,
work_num: 0,
workName: "",
order_num: 0,
student_status: 0,
end_time: null,
disabled: false,
};
}, },
created() { created() {
// this.$emit("getStatus", false, 1); this.getTeacherWork();
}, },
watch: {}, watch: {},
methods: {}, methods: {
}; handleSizeChange(val) {
this.pageSize = val;
// console.log(`每页 ${val} 条`);
},
handleCurrentChange(val) {
this.currentPage = val;
// console.log(`当前页: ${val}`);
this.getTeacherWork();
},
// 子组件触发,关闭确认报名弹框
closeDialog(val, type) {
this.dialogVisibleFu = val;
this.getTeacherWork();
},
toRefer(item) {
//time_out:提交作业时间状态
if (item.time_out == 1 || 3) {
// if (item.is_submit == 1) {
// }
if (item.time_out == 3) {
this.time_out = item.time_out;
console.log(this.timeOut, "this.timeOut ");
}
this.dialogVisibleFu = true;
// console.log(item.work_num,'val')
this.work_context = item.work_context;
this.enclosure_url = item.enclosure_url;
this.work_num = item.id;
this.workName = item.work_name; //作业名字
this.order_num = item.work_num;
this.student_status = item.student_status;
//作业截止时间
let endTime = new Date((item.end_time).replace(/-/g, "/")).getTime()
let nowDate = new Date().getTime()
this.end_time = nowDate < endTime ? true : false
} else if (item.time_out == 2) {
return this.$message.error("填写作业时间未开始");
}
// else if (item.time_out == 3) {
// return this.$message.error("填写作业时间已截止");
// }
},
getTeacherWork() {
getTeacherWork({page: this.currentPage}).then((res) => {
// console.log(res, "getTeacherWork");
if (res.data.code == 400001) {
this.isShowinfo = false;
return this.$message.error(res.data.message);
}
if (res.data.code != 200) {
this.isShowinfo = true;
return this.$message.error(res.data.message);
}
this.homeworkList = res.data.data.list;
this.homeworkList.forEach((item) => {
if (res.data.data.type.indexOf(item.type) != -1) {
//在数组中没找到指定元素则返回 -1
item.disabled = true;
} else {
item.disabled = false;
}
console.log(this.homeworkList)
});
this.isShowinfo = true;
this.total = res.data.data.count;
// this.$message.success(res.data.message);
});
},
},
};
</script> </script>
<style lang="scss" > <style lang="scss">
.flex { @import "a/scss/btn";
.flex {
display: flex; display: flex;
} }
.homework { .homework {
font-family: PingFangSC-Medium, PingFang SC;
// background: #ffffff; // background: #ffffff;
// width: 856px; // width: 856px;
// 空状态
.title { .title {
padding: 50px; padding: 50px;
.homework_titile { .homework_titile {
font-size: 24px; font-size: 24px;
font-weight: 500; font-weight: 500;
...@@ -51,14 +214,135 @@ export default { ...@@ -51,14 +214,135 @@ export default {
text-align: center; text-align: center;
} }
} }
.content {
.content_empty {
padding-bottom: 200px; padding-bottom: 200px;
p, p,
div { div {
text-align: center; text-align: center;
} }
}
// 有作业时候F
.title {
padding: 50px 50px 20px 50px;
.homework_titile {
font-size: 24px;
font-weight: 500;
color: #1b1419;
line-height: 24px;
text-align: center;
}
}
.home_content {
padding-bottom: 20px;
font-size: 13px;
.each_content {
padding: 25px 30px;
background-color: #f7f7f7;
margin: 0 30px 20px 30px;
// border-radius: 25px;
.top {
margin-bottom: 10px;
justify-content: space-between;
.homework_name {
.work_name {
padding: 7px 20px 7px 0;
font-size: 14px;
font-weight: 500;
color: #333333;
line-height: 20px;
}
span {
width: 65px;
line-height: 34px;
text-align: center;
border-radius: 10px;
font-size: 12px;
font-weight: 500;
}
.status_0 {
background: #ffebf9;
color: #60194a;
}
.status_1 {
background: #fff0e5;
color: #ff6f00;
}
.status_2 {
background: #e4fff9;
color: #0a9071;
}
}
.btn_refer {
// width: 88px;
background: var(--color);
border-radius: 4px;
border-color: var(--color);
opacity: 0.9;
font-size: 14px;
text-align: center;
font-weight: 400;
color: #ffffff;
// line-height: 33px;
// cursor: pointer;
&.is-disabled {
color: #fff;
background-color: #c8c9cc;
border-color: #c8c9cc;
}
}
}
.line {
border-bottom: 1px solid #d8d8d8;
}
.bottom {
//+ 相邻选择器
// p+div{
// font-size: 20px;
// }
:first-child {
margin-bottom: 10px;
font-size: 14px;
font-weight: 400;
color: #333333;
line-height: 20px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
.time > div {
margin-right: 20px;
font-size: 12px;
font-weight: 400;
color: #999999;
line-height: 12px;
}
}
}
}
.pagination {
position: relative;
float: right;
}
} }
}
</style> </style>
...@@ -6,31 +6,60 @@ ...@@ -6,31 +6,60 @@
</el-header> </el-header>
<div class="com-container"> <div class="com-container">
<div class="index-container"> <div class="index-container">
<div class="camp_left" ref="leftBoxFu"> <div>
<div
class="camp_left"
ref="leftBoxFu"
v-if="$store.state.human == 1"
>
<ul <ul
:class="{
'is-fixed': isPosition == 1,
'is-absolute': isPosition == 2,
}"
class="camp_left_box" class="camp_left_box"
ref="leftBox" ref="leftBox"
>
<li
:class="{ active: campindex_type === index }"
:key="index"
@click="ToSignUp(index)"
v-for="(item, index) in qinghuaTabs"
>
<img :src="item.url"/>
{{ item.desc }}
</li>
</ul>
</div>
<div class="camp_left" ref="leftBoxFu" v-else>
<ul
:class="{ :class="{
'is-fixed': isPosition == 1, 'is-fixed': isPosition == 1,
'is-absolute': isPosition == 2, 'is-absolute': isPosition == 2,
}" }"
class="camp_left_box"
ref="leftBox"
> >
<li <li
v-for="(item, index) in tabs"
:key="index"
:class="{ active: campindex_type === index }" :class="{ active: campindex_type === index }"
:key="index"
@click="ToSignUp(index)" @click="ToSignUp(index)"
v-for="(item, index) in tabs"
> >
<img :src="item.url" /> <img :src="item.url"/>
{{ item.desc }} {{ item.desc }}
</li> </li>
</ul> </ul>
</div> </div>
</div>
<div class="camp_right" ref="rightBox"> <div class="camp_right" ref="rightBox">
<router-view <!-- <router-view @getStatus="getStatus" /> -->
@getStatus="getStatus" <SignUp @getStatus="getStatus" v-if="this.campindex_type == 0">
/> </SignUp>
<Homework v-if="this.campindex_type == 1"></Homework>
<Certificate v-if="this.campindex_type == 2"></Certificate>
<!-- <homeRefer v-if="this.homework_val == 3"> </homeRefer> -->
</div> </div>
</div> </div>
</div> </div>
...@@ -39,24 +68,32 @@ ...@@ -39,24 +68,32 @@
</template> </template>
<script> <script>
/* eslint-disable */ /* eslint-disable */
import Cookie from "js-cookie";
import Header from "@/components/index/SignUp/Header.vue";
import Footer from "@/components/index/Footer.vue";
import svg1 from '@/assets/img/signUp/icon.svg';
import svg2 from '@/assets/img/signUp/icon-1.svg';
import svg3 from '@/assets/img/signUp/icon-2.svg';
export default { import Header from "@/components/index/SignUp/Header.vue";
import Footer from "@/components/index/Footer.vue";
import svg1 from "@/assets/img/signUp/icon.svg";
import svg2 from "@/assets/img/signUp/icon-1.svg";
import svg3 from "@/assets/img/signUp/icon-2.svg";
import SignUp from "v/index/camp/SignUp";
import Homework from "v/index/camp/Homework";
import Certificate from "v/index/camp/Certificate";
// import homeRefer from "v/index/camp/homework/refer";
export default {
name: "campIndex", name: "campIndex",
components: { components: {
Header, Header,
Footer, Footer,
SignUp,
Homework,
Certificate,
// homeRefer,
}, },
// props:{} // props:{}
data() { data() {
return { return {
index: 0, index: "",
isPosition: 0, // 左侧box是否浮动 isPosition: 0, // 左侧box是否浮动
pageYOffset: 0, // 左侧box浮动时,滚动的高度 pageYOffset: 0, // 左侧box浮动时,滚动的高度
scorllHeight: 0, // 最大滚动高度 scorllHeight: 0, // 最大滚动高度
...@@ -65,36 +102,51 @@ export default { ...@@ -65,36 +102,51 @@ export default {
id: "0", id: "0",
desc: "营地报名", desc: "营地报名",
icon: "icon-icon1", icon: "icon-icon1",
url: svg1 url: svg1,
}, },
{ {
id: "1", id: "1",
desc: "营地作业", desc: "营地作业",
icon: "icon-icon-1", icon: "icon-icon-1",
url: svg2 url: svg2,
}, },
{ {
id: "2", id: "2",
desc: "营地证书", desc: "营地证书",
icon: "icon-icon-2", icon: "icon-icon-2",
url: svg3 url: svg3,
},
],
qinghuaTabs: [
{
id: "0",
desc: "课程报名",
icon: "icon-icon1",
url: svg1,
},
{
id: "1",
desc: "课程作业",
icon: "icon-icon-1",
url: svg2,
},
{
id: "2",
desc: "课程证书",
icon: "icon-icon-2",
url: svg3,
}, },
], ],
campindex_type: 0, campindex_type: 0,
index_status: "", index_status: "",
// homework_val: "",
}; };
}, },
watch: { watch: {},
// type(val) {
// console.log(val,'val')
// window.localStorage.setItem("campindex_type", val);
// },
},
created() { created() {
// this.ToSignUp(this.index);
this.getStatus(); this.getStatus();
// this.$refs.child.signUpInit(); // this.torefer();
}, },
mounted() { mounted() {
window.addEventListener("scroll", this.handleScrollX, true); window.addEventListener("scroll", this.handleScrollX, true);
...@@ -105,6 +157,10 @@ export default { ...@@ -105,6 +157,10 @@ export default {
window.removeEventListener("resize", this.onResize, true); window.removeEventListener("resize", this.onResize, true);
}, },
methods: { methods: {
// torefer(val) {
// console.log(val, "val");
// this.homework_val = val;
// },
getStatus(val) { getStatus(val) {
// console.log(val, "index_type"); // console.log(val, "index_type");
this.index_status = val; this.index_status = val;
...@@ -116,7 +172,9 @@ export default { ...@@ -116,7 +172,9 @@ export default {
this.campindex_type = index; this.campindex_type = index;
if (this.campindex_type == 0) { if (this.campindex_type == 0) {
this.$router.push("/signUp/" + this.index_status + "?code=" + code); this.$router.push("/signUp/" + this.index_status + "?code=" + code);
this.homework_val == "";
} else if (this.campindex_type == 1) { } else if (this.campindex_type == 1) {
console.log(this.$route);
this.$router.push("/homework?code=" + code); this.$router.push("/homework?code=" + code);
} else if (this.campindex_type == 2) { } else if (this.campindex_type == 2) {
this.$router.push("/certificate?code=" + code); this.$router.push("/certificate?code=" + code);
...@@ -156,29 +214,31 @@ export default { ...@@ -156,29 +214,31 @@ export default {
} }
}, },
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "a/scss/common"; @import "a/scss/common";
@import "a/scss/index"; @import "a/scss/index";
@import "a/style"; @import "a/style";
@font-face {
@font-face {
font-family: "icomoon"; font-family: "icomoon";
src: url("../../../assets/fonts/icomoon.eot?dcunb6"); src: url("../../../assets/fonts/icomoon.eot?dcunb6");
src: url("../../../assets/fonts/icomoon.eot?dcunb6#iefix") src: url("../../../assets/fonts/icomoon.eot?dcunb6#iefix") format("embedded-opentype"),
format("embedded-opentype"),
url("../../../assets/fonts/icomoon.ttf?dcunb6") format("truetype"), url("../../../assets/fonts/icomoon.ttf?dcunb6") format("truetype"),
url("../../../assets/fonts/icomoon.woff?dcunb6") format("woff"), url("../../../assets/fonts/icomoon.woff?dcunb6") format("woff"),
url("../../../assets/fonts/icomoon.svg?dcunb6#icomoon") format("svg"); url("../../../assets/fonts/icomoon.svg?dcunb6#icomoon") format("svg");
font-weight: normal; font-weight: normal;
font-style: normal; font-style: normal;
font-display: block; font-display: block;
} }
.camp_left i {
.camp_left i {
font-family: "icomoon"; font-family: "icomoon";
} }
.camp-index {
.camp-index {
background: #f8f8f8; background: #f8f8f8;
.el-header { .el-header {
...@@ -193,6 +253,7 @@ export default { ...@@ -193,6 +253,7 @@ export default {
background-color: #f8f8f8; background-color: #f8f8f8;
} }
} }
// .com-container { // .com-container {
// height: calc(100% - 100px); // height: calc(100% - 100px);
// } // }
...@@ -215,9 +276,11 @@ export default { ...@@ -215,9 +276,11 @@ export default {
border-radius: 8px; border-radius: 8px;
padding: 20px 0; padding: 20px 0;
margin-right: 25px; margin-right: 25px;
.camp_left_box { .camp_left_box {
padding-inline-start: 0 !important; padding-inline-start: 0 !important;
} }
&.is-fixed { &.is-fixed {
position: fixed; position: fixed;
top: 104px; top: 104px;
...@@ -261,11 +324,11 @@ export default { ...@@ -261,11 +324,11 @@ export default {
.camp_right { .camp_right {
flex: 1; flex: 1;
// width: calc(100% - 100px); width: calc(100% - 100px);
// height: 100%; // height: 100%;
// overflow: auto; // overflow: auto;
border-radius: 8px; border-radius: 8px;
background-color: #ffffff; background-color: #ffffff;
} }
} }
</style> </style>
...@@ -12,14 +12,18 @@ ...@@ -12,14 +12,18 @@
this.status == 5 this.status == 5
" "
> >
<el-button @click="lasStep()">上一步 </el-button> <el-button @click="lasStep()">上一步</el-button>
</div>
<div>
<div v-if="$store.state.human == 1" class="signUp_titile">
课程报名
</div>
<div v-else class="signUp_titile">营地报名</div>
</div> </div>
<div class="signUp_titile">营地报名</div>
</div> </div>
<div> <div>
<Breadcrumb :statusNum="status"> </Breadcrumb> <Breadcrumb :statusNum="status"></Breadcrumb>
</div> </div>
</div> </div>
<Confirm v-if="type == 'examInfo'" @getstatus="statuss"></Confirm> <Confirm v-if="type == 'examInfo'" @getstatus="statuss"></Confirm>
...@@ -28,7 +32,10 @@ ...@@ -28,7 +32,10 @@
@getstatus="statuss" @getstatus="statuss"
:invitation_code="invitation_code" :invitation_code="invitation_code"
></Invitation> ></Invitation>
<ReferInfo v-else-if="type == 'referInfo'" @getstatus="statuss"></ReferInfo> <ReferInfo v-else-if="type == 'referInfo'"
@getstatus="statuss"
:invitation_code="invitation_code"
></ReferInfo>
<Pass <Pass
v-else-if="type == 'check'" v-else-if="type == 'check'"
@is_next="is_nextevent" @is_next="is_nextevent"
...@@ -36,8 +43,42 @@ ...@@ -36,8 +43,42 @@
></Pass> ></Pass>
<Paying v-else-if="type == 'pay'" @getstatus="statuss"></Paying> <Paying v-else-if="type == 'pay'" @getstatus="statuss"></Paying>
<Success v-else-if="type == 'success'" @getstatus="statuss"></Success> <Success v-else-if="type == 'success'" @getstatus="statuss"></Success>
<!-- <el-dialog
v-if="$store.state.indexIdentity != '03874948cc2b4b2d8a5eb57c09ebfb2c'"
style="font-size: 26px"
class="info"
title="营地声明"
:visible.sync="dialogVisible"
width="520px"
center
> -->
<el-dialog <!-- 营地通知 消息列表 -->
<!-- <el-dialog
v-if="!$store.state.human == 1"
style="font-size: 26px"
class="infoList"
title="营地通知"
:visible.sync="dialogVisibleList"
width="520px"
center
>
<div class="msg" @click="toMsgDetail">
<el-badge is-dot class="item title" >通知栏标题 邀请您的参与</el-badge>
<div class="time">2022-8-1</div>
<div class="msg_content">
近日,营地工作组收到部分中学师生反映有机构及个人以高出营地费用的价格出售营地活动名额。
对此,营地工作组严正声明如下:营地工作组从未授权任何单位、媒体、机构或个人举办营利性商业讲座、培训班、训练营或其他形式的营地招生活动。工作组对有违规操作行为的机构或个人保留追究法律责任的权利。
</div>
</div>
<el-checkbox v-model="checked">不再提示</el-checkbox>
</el-dialog> -->
<!-- 营地通知 详情内容 -->
<!-- <el-dialog
v-if="!$store.state.human == 1"
style="font-size: 26px" style="font-size: 26px"
class="info" class="info"
title="营地声明" title="营地声明"
...@@ -45,33 +86,84 @@ ...@@ -45,33 +86,84 @@
width="520px" width="520px"
center center
> >
<div class="time">2022-8-1</div>
<div> <div>
近日,营地工作组收到部分中学师生反映有机构及个人以高出营地费用的价格出售营地活动名额。 &emsp;&emsp;近日,营地工作组收到部分中学师生反映有机构及个人以高出营地费用的价格出售营地活动名额。
对此,营地工作组严正声明如下:营地工作组从未授权任何单位、媒体、机构或个人举办营利性商业讲座、培训班、训练营或其他形式的营地招生活动。工作组对有违规操作行为的机构或个人保留追究法律责任的权利。 对此,营地工作组严正声明如下:营地工作组从未授权任何单位、媒体、机构或个人举办营利性商业讲座、培训班、训练营或其他形式的营地招生活动。工作组对有违规操作行为的机构或个人保留追究法律责任的权利。
</div> </div>
<div> <div>
希望广大师生以营地招生简章为准,不要轻信有关宣传,以免自身利益受损。如遇类似上述情况,可发送邮件至campcenter@163.com反映核实。特此声明! &emsp;&emsp;希望广大师生以营地招生简章为准,不要轻信有关宣传,以免自身利益受损。如遇类似上述情况,可发送邮件至service@campcenter.cn反映核实。特此声明!
</div>
<div class="btn">
<el-button @click="toBackList">返回营地通知列表</el-button>
</div> </div>
</el-dialog> -->
<!-- 营地通知 详情内容 -->
<el-dialog
v-if="!$store.state.human == 1"
style="font-size: 26px"
class="info"
title="营地声明"
:visible.sync="dialogVisible"
width="520px"
center
>
<div>
&emsp;&emsp;近日,营地工作组收到部分中学师生反映有机构及个人以高出营地费用的价格出售营地活动名额。
对此,营地工作组严正声明如下:营地工作组从未授权任何单位、媒体、机构或个人举办营利性商业讲座、培训班、训练营或其他形式的营地招生活动。工作组对有违规操作行为的机构或个人保留追究法律责任的权利。
</div>
<div>
&emsp;&emsp;希望广大师生以营地招生简章为准,不要轻信有关宣传,以免自身利益受损。如遇类似上述情况,可发送邮件至service@campcenter.cn反映核实。特此声明!
</div>
<div class="btn"> <div class="btn">
<el-button @click="dialogVisible = false">确 定</el-button> <el-button @click="dialogVisible = false">确 定</el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- <el-dialog
v-if="$store.state.indexIdentity == '03874948cc2b4b2d8a5eb57c09ebfb2c'"
style="font-size: 26px"
class="info"
title="活动通知"
:visible.sync="dialogVisible"
width="770px"
center
>
<div>
&emsp;&emsp;
南开大学历史学院和历史学高中基础人才培养与教学实践计划执行委员会将于2022年2月开展中国近代史专题研究性学习。本次研学活动将由南开大学历史学院侯杰教授及优秀博士生主讲。
</div>
<div>
&emsp;&emsp;
在1月历史寒假营的基础上,本次研学活动将进一步开阔学生史学视野,更有针对性地学习和拓展中国近代史方向知识,多层次提高对史学资料的分析能力,养成自主探究的学习方式。
</div>
<div>
&emsp;&emsp;本次活动名额有限,欢迎各中学及学生报名参加。详细内容可点击链接
<a :href="yingdiHref">查看报名简章</a>
</div>
<div class="btn">
<el-button @click="dialogVisible = false">确 定</el-button>
</div>
</el-dialog> -->
</div> </div>
</template> </template>
<script> <script>
/* eslint-disable */ /* eslint-disable */
import Breadcrumb from "c/breadcrumb"; import {HREF_URL} from "@/config/server";
import Confirm from "c/index/SignUp/confirm"; import Breadcrumb from "c/breadcrumb";
import Invitation from "c/index/SignUp/invitation"; import Confirm from "c/index/SignUp/confirm";
import ReferInfo from "c/index/SignUp/referInfo"; import Invitation from "c/index/SignUp/invitation";
import Pass from "c/index/SignUp/pass"; import ReferInfo from "c/index/SignUp/referInfo";
import Paying from "c/index/SignUp/paying"; import Pass from "c/index/SignUp/pass";
import Success from "c/index/SignUp/success"; import Paying from "c/index/SignUp/paying";
import { signUpInit, signBack } from "r/index/signUp"; import Success from "c/index/SignUp/success";
import {signUpInit, signBack} from "r/index/signUp";
export default { import store from '@/store'
export default {
name: "signUp", name: "signUp",
components: { components: {
Breadcrumb, Breadcrumb,
...@@ -101,17 +193,28 @@ export default { ...@@ -101,17 +193,28 @@ export default {
signBackStatus: "", signBackStatus: "",
invitation_code: "", //邀请码 invitation_code: "", //邀请码
dialogVisible: false, //营地声明弹窗 dialogVisible: false, //营地声明弹窗
yingdiHref: "", //营地声明链接
dialogVisibleList: true, //营地通知列表弹窗
checked: false, //不再提示(选框)
}; };
}, },
created() { created() {
this.yingdiHref =
"http://ying.testgate.cn/b4ce2ee5068848e1a91ab7d5de34ba90";
// console.log(this.yingdiHref);
this.type = this.$route.params.type; this.type = this.$route.params.type;
let camp_statement = window.localStorage.getItem('camp_statement'+ this.$store.state.indexIdentity); let camp_statement = window.localStorage.getItem(
if(!camp_statement){ "camp_statement" + this.$store.state.indexIdentity
this.dialogVisible = true; //营地声明弹窗 );
window.localStorage.setItem('camp_statement'+ this.$store.state.indexIdentity, '1'); if (!camp_statement) {
this.dialogVisible = true; //营地通知列表弹窗
window.localStorage.setItem(
"camp_statement" + this.$store.state.indexIdentity,
"1"
);
} }
this.statuss(); this.statuss();
// this.signUpInit(); this.signUpInit();
}, },
...@@ -131,6 +234,16 @@ export default { ...@@ -131,6 +234,16 @@ export default {
}, },
}, },
methods: { methods: {
// 营地通知 详情内容
// toMsgDetail() {
// this.dialogVisibleList = false;
// this.dialogVisible = true;
// },
// 返回营地通知列表
// toBackList() {
// this.dialogVisibleList = true;
// this.dialogVisible = false;
// },
// 上一步回退 // 上一步回退
lasStep() { lasStep() {
signBack({}).then((res) => { signBack({}).then((res) => {
...@@ -185,6 +298,7 @@ export default { ...@@ -185,6 +298,7 @@ export default {
} else if (this.status == 1) { } else if (this.status == 1) {
// 是否填写邀请码 // 是否填写邀请码
if (this.doubt_code == 0) { if (this.doubt_code == 0) {
this.type = "referInfo"; this.type = "referInfo";
this.status = 2; this.status = 2;
} else { } else {
...@@ -268,19 +382,61 @@ export default { ...@@ -268,19 +382,61 @@ export default {
JSON.stringify(fileList) JSON.stringify(fileList)
); //上传的图片 ); //上传的图片
} }
// 银行截图
const bank_Path = res.data.bank_info;
if (bank_Path != null) {
let arr = bank_Path.split(",");
// console.log(arr)
let fileList = [];
fileList = arr.map((item) => {
let obj = {
url: item,
};
return obj;
});
// console.log(fileList)
// console.log(JSON.stringify(fileList))
// let code = this.$store.state.indexIdentity;
window.localStorage.setItem(
"bank_info" + window.localStorage.getItem("phone" + code) + code,
JSON.stringify(fileList)
); //上传的图片
} else {
window.localStorage.setItem(
"bank_info" + window.localStorage.getItem("phone" + code) + code,
"[]"
);
}
//多活動形式
window.localStorage.setItem("multiform_id" + code, res.data.multiform_id);
//vuex-个人信息
store.state.signUpInfo = res.data
}); });
}, },
}, },
};
};
</script> </script>
<style lang="scss" > <style lang="scss">
@import "a/scss/lastBtn"; @import "a/scss/lastBtn";
.flex {
.flex {
display: flex; display: flex;
} }
.item {
margin-top: 10px;
margin-right: 40px;
}
.btn { .el-dialog__wrapper {
transition-duration: 0.3s;
}
.btn {
text-align: center; text-align: center;
// padding-bottom: 224px; // padding-bottom: 224px;
.el-button { .el-button {
...@@ -297,8 +453,9 @@ export default { ...@@ -297,8 +453,9 @@ export default {
padding: 0; padding: 0;
margin: 30px 0 0 0; margin: 30px 0 0 0;
} }
} }
.signUp {
.signUp {
/*background: #ffffff;*/ /*background: #ffffff;*/
/*width: 856px;*/ /*width: 856px;*/
.signUp_titile { .signUp_titile {
...@@ -309,22 +466,79 @@ export default { ...@@ -309,22 +466,79 @@ export default {
margin-bottom: 40px; margin-bottom: 40px;
text-align: center; text-align: center;
} }
.content { .content {
padding: 50px 55px; padding: 50px 55px;
} }
} }
// 声明
.info { // 营地通知列表
.infoList {
.el-dialog__header { .el-dialog__header {
padding: 30px 20px 0 20px; margin: 30px 20px 0 20px;
.el-dialog__title { .el-dialog__title {
font-size: 24px; font-size: 24px;
} }
} }
.el-dialog__body {
padding: 0;
}
div {
// font-size: 16px;
line-height: 27px;
}
.msg {
background-color: #f2f2f2;
padding: 10px 15px;
.title {
width: 100%;
font-size: 17px;
font-weight: 600;
}
.time {
font-size: 15px;
color: #a9a9a9;
}
.msg_content {
font-size: 15px;
white-space: nowrap;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
overflow: hidden;
}
}
}
// 营地通知声明
.info {
.el-dialog__header {
margin: 30px 20px 0 20px;
.el-dialog__title {
font-size: 24px;
}
}
.el-dialog__body {
padding: 0 25px 25px 30px;
}
div { div {
font-size: 17px; font-size: 17px;
line-height: 30px; line-height: 30px;
} }
}
.time {
text-align: center;
font-size: 15px;
color: #a9a9a9;
}
}
</style> </style>
<template>
<div>
<el-dialog
:title="work_name"
:visible.sync="dialogVisible"
width="650px"
top="0"
:before-close="cancelBtn"
:close-on-click-modal="false"
@open="open"
>
<div class="referHome">
<el-form
:model="formData"
:rules="referRules"
ref="formRef_stu"
label-position="top"
class="readForm"
>
<!-- 老师布置的作业 -->
<div class="cont_title">
<div class="line"></div>
<div class="lf">
<span>作业要求</span>
</div>
</div>
<div class="cont_title_2">作业内容</div>
<div v-html="work_contexts" class="cont_info">}</div>
<div class="cont_title_2">相关附件</div>
<div class="upload_box">
<div v-if="teaFileList.length > 0">
<div
class="img_list"
v-for="(item, index) in teaFileList"
:key="index"
>
<div>
<el-image :src="fileImg"></el-image>
<div class="item_name">{{ item.name }}</div>
<div class="item_remove" @click="downloadStuFile(item.url)">
下载
</div>
</div>
</div>
</div>
<div v-if="teaFileList.length <= 0" class="img_list">
<div>
<div class="item_name">暂无相关附件</div>
</div>
</div>
<div style="clear: both"></div>
</div>
<!-- 我的作业(未提交) -->
<div class="cont_title">
<div class="line"></div>
我的作业
</div>
<el-form-item
label="文字描述(如超过300字,建议以附件形式上传)"
prop="stu_answer"
>
<el-input
ref="stu_answer"
type="textarea"
v-model="formData.stu_answer"
placeholder="请输入300字以内的描述"
size="small"
:maxlength="300"
show-word-limit
:disabled="is_end===false"
/>
</el-form-item>
<!-- 上传相关附件 -->
<el-form-item label="相关附件" prop="stu_enclosure_url">
<div class="fj_info">1、请上传1-10份相关附件;</div>
<div class="fj_info">
2、单个附件大小不超过100M,支持JPG、JPEG、PNG、docx、doc、pdf、mp4等格式;
</div>
<div class="upload_box">
<div
class="img_list"
v-for="(item, index) in stu_fileList"
:key="index"
>
<div>
<el-image class="home_icon" :src="fileImg"></el-image>
<div class="item_name">{{ item.name }}</div>
<div class="flex">
<div
class="item_remove"
v-show="is_end===true"
@click="handleRemove(item)"
>
删除
</div>
<div
class="item_remove"
@click="handleCheck(item.url_open)"
>
查看作业
</div>
</div>
</div>
</div>
<!-- <div v-if="stu_fileList.length <= 0" class="img_list">-->
<!-- <div>-->
<!-- <div class="item_name">暂无相关附件</div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<el-upload
v-if="stu_fileList.length < 10 "
ref="formData.stu_enclosure_url"
name="multipartFile"
action="#"
:file-list="stu_fileList"
:disabled="isUploading || stu_fileList.length >= 10"
:limit="10"
list-type="picture-card"
:show-file-list="false"
:before-upload="beforeAvatarUpload"
:http-request="uploadPicture"
>
<i
v-if="!isUploading"
class="el-icon-plus avatar-uploader-icon"
></i>
<i
v-if="isUploading"
class="el-icon-loading avatar-uploader-icon"
></i>
</el-upload>
</div>
<!-- </div> -->
</el-form-item>
<!-- 我的作业(已提交待评分 -不可编辑 )-->
<!-- <div v-if="student_status == 1 || student_status == 2">
<div class="cont_title">
<div class="line"></div>
我的作业
</div>
<el-form-item label="文字描述(如超过300字,建议以附件形式上传)">
<el-input
type="textarea"
v-model="formData.stu_answer"
placeholder="请输入300字以内的描述"
size="small"
:maxlength="300"
show-word-limit
:disabled="true"
/>
</el-form-item>
<el-form-item label="相关附件">
<div class="fj_info">1、请上传1-10份相关附件;</div>
<div class="fj_info">
2、单个附件大小不超过100M,支持JPG、JPEG、PNG、docx、doc、pdf、mp4等格式;
</div>
<div class="upload_box">
<div
class="img_list"
v-for="(item, index) in stu_fileList"
:key="index"
>
<div>
<el-image :src="fileImg"></el-image>
<div class="item_name">{{ item.name }}</div>
</div>
</div>
<div v-if="stu_fileList.length <= 0" class="img_list">
<div>
<div class="item_name">暂无相关附件</div>
</div>
</div>
</div>
</el-form-item>
</div> -->
<!-- 评阅结果 -->
<div v-if="student_status == 2" style="height: 350px">
<div class="cont_title">
<div class="line"></div>
<div class="lf">
<span>评阅结果</span>
</div>
</div>
<div v-if="this.time_out != 3" class="cont_title_2">导师评分</div>
<div v-if="this.time_out != 3" class="cont_info">{{ score }}</div>
<div v-if="this.time_out == 3" class="cont_title_2">导师评语</div>
<div v-if="this.time_out == 3" v-html="teacher_commment" class="cont_info">}</div>
<div v-if="this.time_out != 3" class="cont_title_2">相关附件</div>
<div v-if="this.time_out != 3" class="upload_box">
<div v-if="tea_scoreFileList.length > 0">
<div
class="img_list"
v-for="(item, index) in tea_scoreFileList"
:key="index"
>
<div>
<el-image :src="fileImg"></el-image>
<div class="item_name">{{ item.name }}</div>
<div
class="item_remove"
@click="downloadScoreFile(item.url)"
>
下载
</div>
</div>
</div>
</div>
<div v-if="tea_scoreFileList.length <= 0" class="img_list">
<div>
<div class="item_name">暂无相关附件</div>
</div>
</div>
</div>
</div>
<el-form-item class="btn">
<el-button type="primary" v-preventReClick="1000" @click="confirm"
>提交
</el-button
>
</el-form-item>
</el-form>
</div>
</el-dialog>
<!--查看作业图片 -->
<el-dialog
title="作业"
:visible.sync="dialogVisibleImage"
width="30%"
:before-close="handleImageClose"
append-to-body
>
<el-image
:lazy='true'
:src="srcList_url_open"
:preview-src-list="srcList"
></el-image>
</el-dialog>
</div>
</template>
<script>
import {delPic, downloadTeacherWork, getStudentWork, PostWorkStudentOss, subStudentWork,} from "r/index/homework";
import fileImg from "@/assets/img/homework/file_img.png";
import {parseTime} from "@/common/utils";
export default {
name: "ReadForm",
props: {
dialogVisibleFu: Boolean,
timeOut: [Number, String], //判断是超时
work_contexts: [Number, String], //作业内容
enclosure_urls: [Object, String], //老师作业地址
work_nums: [Number],
workName: [String], //作业名字
student_status: [Number], //作业审核状态
order_nums: [Number], //作业状态
end_time: [Boolean], //作业截止时间
},
data() {
var validateNum = (rule, value, callback) => {
console.log(value, "value");
// let code = this.$store.state.indexIdentity;
// this.formData.stu_enclosure_url = window.localStorage.getItem(
// "student_file_" + window.localStorage.getItem("phone" + code) + code
// );
// console.log(
// this.stu_fileList,' this.stu_fileList'
// );
// return
// this.formData.stu_enclosure_url = this.stu_fileList
console.log(this.formData.stu_answer);
console.log(this.formData.stu_enclosure_url);
if (
this.formData.stu_answer == "" &&
this.formData.stu_enclosure_url == ""
) {
callback(new Error("请至少填写一项"));
} else {
callback();
}
};
return {
dialogVisible: this.dialogVisibleFu,
dialogVisibleImage: false,
referRules: {
stu_answer: [
{required: true, validator: validateNum, trigger: "blur"},
],
stu_enclosure_url: [
{required: true, validator: validateNum, trigger: "blur"},
],
},
titleName: "",
isUploading: false, // 图片上传蒙层
work_context: "", //简介
work_name: "", //作业名称
is_end: '',//是否营地截止
time_out: 1,
fileImg: fileImg,
loading: false,
formData: {
teacher_id: "",
stu_answer: "",
stu_enclosure_url: "",
}, // 老师-评阅结果
disabled: false, //限制输入框
stu_enclosure_url: "",//学生的已经提交的相关附件
stu_fileListoss: "", // 学生-上传相关附件(展示-存在缓存)
teaFileList: [], // 老师-布置作业附件
stu_fileList: [], //学生上传的文件(传给接口的格式)
score: "", //老师评分
teacher_commment: "", //老师评语
tea_scoreFileList: [], //老师评语的附件
srcList_url_open: '',//打开的图片url_open
srcList: [], //在线预览图片-放大
fileList: [],//传给后端的url
};
},
created() {
// console.log(this.formData.stu_enclosure_url);
let code = this.$store.state.indexIdentity;
let stu_fileListoss = window.localStorage.getItem(
"student_file_" + window.localStorage.getItem("phone" + code) + code
);
console.log(stu_fileListoss);
if (stu_fileListoss && JSON.parse(stu_fileListoss).length > 0) {
this.stu_fileListoss = JSON.parse(stu_fileListoss);
}
},
methods: {
open() {
this.titleName = this.order_nums;
this.getTeachList();
if (this.student_status == 0) {
this.formData = {};
} else if (this.student_status == 1) {
this.getStudentWork(this.student_status);
} else if (this.student_status == 2) {
this.getStudentWork(this.student_status);
}
},
//老师作业展示
getTeachList() {
let url = this.enclosure_urls;
// console.log(this.enclosure_urls);
if (this.enclosure_urls) {
let arr = url.split(",");
arr.forEach((item) => {
this.teaFileList.push({
url: item,
name: item.split("work/")[1],
status: "success",
});
});
} else {
this.stu_fileList = [];
}
},
// 下载老师附件
downloadStuFile(url) {
// this.download(
// "http://api.campcenter.cn/web/download/downloadTeacherWork",
// {
// enclosure_url: url,
// identity: this.$store.state.indexIdentity
// },
// ""
// );
downloadTeacherWork({enclosure_url: url}).then((res) => {
// console.log(res, "res");
if (res.data.code != 200) {
return this.$message.error(res.data.message);
}
let url = res.data.url;
let reg = /^.+(\.pdf|\.txt|\.mp3|\.mp4)$/;
if (reg.test(url)) {
window.open(url, "_black");
} else {
window.open(url, "_self");
}
this.$message.success("下载成功");
});
},
// 下载老师评分结果
downloadScoreFile(url) {
downloadTeacherWork({enclosure_url: url}).then((res) => {
// console.log(res, "res");
if (res.data.code != 200) {
return this.$message.error(res.data.message);
}
let url = res.data.url;
let reg = /^.+(\.pdf|\.txt|\.mp3|\.mp4)$/;
if (reg.test(url)) {
window.open(url, "_black");
} else {
window.open(url, "_self");
}
this.$message.success("下载成功");
});
},
// 学生作业回显
getStudentWork(student_status) {
// console.log(student_status, "student_status");
let stu_work_num = this.work_nums;
// console.log(stu_work_num);
// console.log(this.formData);
// return
getStudentWork({teacher_id: stu_work_num}).then((res) => {
// console.log(res, "getStudentWork");
if (res.data.code != 200) {
return this.$message.error(res.data.message);
}
this.$message.success(res.data.message);
if (student_status == 1) {
// 学生已提交
this.formData.stu_answer = res.data.data.stu_answer;
// console.log(this.formData);
//学生的已经提交的相关附件
this.formData.stu_enclosure_url = res.data.data.stu_enclosure_url;
console.log(this.formData.stu_enclosure_url)
let gotfileList = res.data.data.work;
if (gotfileList) {
this.stu_fileList = gotfileList.map((item) => {
return {
name: item.url.split("/work/")[1],
url: item.url,
url_open: item.url_open,
type: item.type,
};
});
//
this.fileList = gotfileList.map((item) => {
return {
url_open: item.url_open,
};
});
console.log(this.stu_fileList);
console.log(this.fileList);
}
this.$forceUpdate();
} else if (student_status == 2) {
//老师已评阅
this.formData.stu_answer = res.data.data.stu_answer;
let gotfileList = res.data.data.work;
if (gotfileList) {
this.stu_fileList = gotfileList.map((item) => {
return {
name: item.url.split("/work/")[1],
url: item.url,
url_open: item.url_open,
type: item.type,
};
});
}
this.score = res.data.data.score; //老师评分
this.teacher_commment = res.data.data.teacher_commment; //老师评语
// console.log(res.data.data.teacher_commment, " this.teacher_commment");
let scoreFileList = res.data.data.teacher_url;
if (scoreFileList) {
let arr = scoreFileList.split(",");
// console.log(arr, "arr");
this.tea_scoreFileList = arr.map((item) => {
return {
name: item.split("workforstudent/")[1],
url: item,
};
});
}
this.$forceUpdate(); //强制刷新
}
});
},
// 成功确认取消,关闭弹框,修改父组件的值
cancelBtnTrue() {
let code = this.$store.state.indexIdentity;
window.localStorage.removeItem(
"student_file_" + window.localStorage.getItem("phone" + code) + code
);
this.stu_fileList = [];
this.stu_fileListoss = "";
this.teaFileList = [];
this.$refs["formRef_stu"].resetFields();
this.dialogVisible = false;
this.$emit("closeDialog", this.dialogVisible, true);
// this.$parent.getTeacherWork();
// location.reload();
},
// 取消,关闭弹框,修改父组件的值
cancelBtn() {
let code = this.$store.state.indexIdentity;
window.localStorage.removeItem(
"student_file_" + window.localStorage.getItem("phone" + code) + code
);
this.stu_fileList = [];
this.stu_fileListoss = "";
this.teaFileList = [];
this.dialogVisible = false;
this.$emit("closeDialog", this.dialogVisible, false);
},
//上传前
beforeAvatarUpload(file) {
const isLt500M = file.size / 1024 / 1024 < 500;
if (!isLt500M) {
this.$message.info("上传图片大小不能超过 500MB!");
}
return isLt500M;
},
uploadPicture(params) {
this.isUploading = true;
// console.log("已经准备好上传图片", params);
this.file = params.file;
// console.log(this.file, "1111");
console.log(this.file, "1111");
let raw = params.file;
let image = {
name: raw.name,
size: raw.size,
type: raw.type,
};
this.getOssConfigs(image, params.file);
},
async getOssConfigs(image, file) {
let obj = {
url: "",
savefile: "",
};
await PostWorkStudentOss({
image: image,
teacher_id: this.work_nums,
})
.then((res) => {
// console.log(res, "开始上传图片");
if (res.data.code === 200) {
let oss_url = res.data.config.host;
let filename = res.data.config.file;
let formData = new FormData();
formData.append("OSSAccessKeyId", res.data.config.accessid);
formData.append("policy", res.data.config.policy);
formData.append("signature", res.data.config.signature);
formData.append("filename", res.data.config.file);
formData.append("key", res.data.config.savefile);
formData.append("callback", res.data.config.callback);
formData.append("success_action_status", 200);
formData.append("file", file);
// console.log(formData);
this.upload(oss_url, formData)
.then((ress) => {
console.log(ress, "ress");
if (ress.data.code != 200) {
// console.log(ress, "ress");
this.isUploading = false;
return this.$message.error(ress.data.message);
}
this.resultPicture = filename + "?t=" + Date.parse(new Date());
this.$forceUpdate();
this.$message.success("上传成功");
obj = {
url_open: ress.data.picture_path,
savefile: res.data.config.savefile,
name: res.data.config.savefile.split("/work/")[1],
};
console.log(this.stu_fileList, "this.stu_fileList");
this.stu_fileList.push(obj);
this.fileList.push(obj);
console.log(this.fileList, 'this.fileList')
this.stu_fileListoss = this.stu_fileList
.map((item) => {
return item.url_open;
})
.join(",");
console.log(this.stu_fileListoss, "stu_fileListoss");
// this.formData.stu_enclosure_url = this.stu_fileListoss;
let code = this.$store.state.indexIdentity;
console.log(typeof (this.stu_fileListoss))
window.localStorage.setItem(
"student_file_" +
+window.localStorage.getItem("phone" + code) +
code,
JSON.stringify(this.stu_fileListoss)
);
console.log('student_file_')
this.isUploading = false;
})
.catch((err) => {
this.isUploading = false;
this.$message.error(err);
});
} else {
this.isUploading = false;
this.$message.error(res.data.message);
}
})
.catch((err) => {
this.isUploading = false;
// console.log(err);
});
},
// 下载证明资料图片
handleDownload(file) {
// console.log(file,'file22');
window.location.href = file.url;
},
//删除图片
handleRemove(file) {
console.log(file, "file");
this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
let getfile = file.url_open;
// console.log(savefile.match(/^(?:[^\/]|\/\/)*/),'222222');//获取域名
let str = getfile.split(
"https://campiste.oss-cn-beijing.aliyuncs.com/"
); //https://yingdi-achievement.oss-cn-beijing.aliyuncs.com/进行分割,
console.log(str, "str");
let savefile = str[1];
let stu_work_num = this.work_nums;
delPic({object: savefile, teacher_id: stu_work_num}).then((res) => {
// console.log(res, "delpic");
if (res.data.code != 200) {
return this.$message.error(res.data.message);
}
this.stu_fileList.forEach((item, idx) => {
if (item.url_open == file.url_open) {
this.stu_fileList.splice(idx, 1);
// this.fileList.splice(idx, 1);
console.log( this.fileList);
let code = this.$store.state.indexIdentity;
this.stu_fileListoss = this.stu_fileList
.map(function (item, index) {
return item.url;
})
.join(",");
console.log(this.stu_fileListoss);
console.log(this.stu_fileList);
this.$message.success(res.data.message);
window.localStorage.setItem(
"student_file_" +
window.localStorage.getItem("phone" + code) +
code,
this.stu_fileListoss
);
}
});
});
console.log(this.stu_fileListoss);
console.log(this.stu_fileList);
})
.catch((err) => {
// console.log(err, "err");
this.$message({
type: "info",
message: "取消删除",
});
});
},
// 查看已上传的学生作业
handleCheck(url) {
console.log(url, "url");
console.log(this.srcList, "fileList");
// console.log(url.match(/\.(jpeg|jpg|gif|png)$/) != null)
// 是否为图片
if (url.match(/\.(jpeg|jpg|gif|png)$/) != null) {
this.dialogVisibleImage = true;
console.log(url.split(" "), '111')
// this.srcList = url.split(" ");
this.srcList_url_open = url
this.srcList = this.stu_fileList.map((item) => {
return item.url_open
})
} else {
let onlineViewType = [
"doc",
"docx",
"xls",
"xlsx",
"xlsm",
"ppt",
"pptx",
];
let fileTypeName = url
.substring(url.lastIndexOf(".") + 1, url.length)
.split("?")[0];
let isWord = onlineViewType.find((type) => type === fileTypeName);
console.log(isWord,'isWord')
if (isWord=='ppt'||isWord=='pptx') {
url = "http://view.officeapps.live.com/op/view.aspx?src=" + url;
}else {
url = url;
}
window.open(url, "_blank");
}
}
,
handleImageClose(done) {
this.$confirm("确认关闭?")
.then((_) => {
done();
})
.catch((_) => {
});
}
,
// 未完成
notReadHandle() {
this.formData.teacher_id = this.work_nums;
console.log(this.stu_fileList)
this.formData.stu_enclosure_url = this.stu_fileList.map((item) => {
return item.url_open;
})
.join(",");
console.log(this.formData.stu_enclosure_url)
subStudentWork(this.formData)
.then((response) => {
// console.log(response);
//作业无修改
if (response.data.code == 4000343) {
this.cancelBtn()
return this.$message.error(response.data.message);
}
if (response.data.code != 200) {
return this.$message.error(response.data.message);
}
this.$message.success(response.data.message);
this.cancelBtnTrue();
})
.catch((error) => {
console.log(error);
});
}
,
// 提交按钮
confirm() {
if (this.stu_fileList.length == 0) {
return this.$message.success('请上传相关附件再提交')
}
this.$confirm(
"提交后不可以填写其他作业,但在截止日期前仍可以修改本次作业,将以最后一次提交的为准。您确认要提交本次作业吗?",
"提示",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
)
.then(() => {
this.$refs["formRef_stu"].validate((valid) => {
if (!valid) return;
// console.log(valid, "valid");
// 未完成
// return
this.notReadHandle();
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消",
});
});
}
,
},
watch: {
dialogVisibleFu() {
this.dialogVisible = this.dialogVisibleFu;
},
work_nums() {
this.formData.teacher_id = this.work_nums;
},
workName() {
this.work_name = this.workName;
},
timeOut() {
this.time_out = this.timeOut;
console.log(this.time_out, "timeout");
},
end_time() {
this.is_end = this.end_time;
console.log(this.is_end, "is_end");
},
},
};
</script>
<style scoped lang="scss">
@import "a/scss/btn";
@import "a/scss/homework/refer";
.flex {
display: flex;
}
</style>
<template> <template>
<div class="container"> <div class="container">
<div class="title">账号密码登录</div> <div class="title_Login">
<div class="line"></div> <div v-if="changeLogin == 1">
<div class="title" @click="toCodeLogin">
<div :class="changeLogin == 2 ? 'change_login' : ''">验证码登录</div>
</div>
<div class="title" @click="toLogin">
<div :class="changeLogin == 1 ? 'change_login' : ''">
账号密码登录
</div>
</div>
</div>
<div v-else-if="changeLogin == 2">
<div class="title" @click="toLogin">
<div :class="changeLogin == 1 ? 'change_login' : ''">
账号密码登录
</div>
</div>
<div class="title" @click="toCodeLogin">
<div :class="changeLogin == 2 ? 'change_login' : ''">验证码登录</div>
</div>
</div>
</div>
<div>
<el-form <el-form
:model="loginForm" :model="loginForm"
:rules="loginFormRules" :rules="loginFormRules"
ref="loginFormRef" ref="loginFormRef"
class="demo-ruleForm" class="demo-ruleForm"
> >
<el-form-item prop="phone"> <el-form-item ref="phone" prop="phone">
<img <img
class="img_l" class="img_l"
src="../../../assets/img/login/username.png" src="../../../assets/img/login/username.png"
...@@ -20,7 +42,11 @@ ...@@ -20,7 +42,11 @@
maxlength="11" maxlength="11"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="password"> <el-form-item
v-if="changeLogin == 1"
:prop="changeLogin == 1 ? 'password' : ''"
ref="password"
>
<img <img
class="img_l" class="img_l"
src="../../../assets/img/login/password.png" src="../../../assets/img/login/password.png"
...@@ -47,35 +73,63 @@ ...@@ -47,35 +73,63 @@
alt="" alt=""
/> />
</el-form-item> </el-form-item>
<el-form-item
v-else-if="changeLogin == 2"
:prop="changeLogin == 2 ? 'code' : ''"
ref="code"
>
<img class="img_l" src="@/assets/img/reset/code.png" alt="" />
<el-input
v-model="loginForm.code"
placeholder="请输入短信验证码"
maxlength="20"
></el-input>
<!-- 短信验证码 -->
<div class="phoneCode">
<span class="code" v-show="showCode" @click="getCode"
>获取验证码</span
>
<span v-show="!showCode" class="count">{{ count }} s</span>
</div>
</el-form-item>
<el-form-item style="margin: 40px 0 0 0"></el-form-item> <el-form-item style="margin: 40px 0 0 0"></el-form-item>
<el-form-item> <el-form-item>
<el-button @click="submitForm()">登 录</el-button> <el-button @click="submitForm()">登 录</el-button>
</el-form-item> </el-form-item>
<div class="box"> <div v-if="changeLogin == 1" class="box">
<div> <div>
<div class="fr" @click="register()">还没有账号?立即注册</div> <div class="fr" @click="register()">还没有账号?立即注册</div>
<div class="fl" @click="forgetPwd()">忘记密码?</div> <div class="fl" @click="forgetPwd()">忘记密码?</div>
</div> </div>
<!-- <div class="fc">忘记密码请联系管理员邮箱:ydhdservice@163.com</div> --> <!-- <div class="fc">忘记密码请联系管理员邮箱:service@campcenter.cn</div> -->
</div> </div>
</el-form> </el-form>
</div> </div>
</div>
</template> </template>
<script> <script>
/* eslint-disable */ /* eslint-disable */
import Cookie from "js-cookie"; import Cookie from "js-cookie";
import { login } from "r/index/login"; import { login, loginCode } from "r/index/login";
import { mobileCheck } from "@/common/utils.js"; import { mobileCheck } from "@/common/utils.js";
import { intervalTime } from "store/time";
export default { export default {
name: "index-login", name: "index-login",
data() { data() {
return { return {
isShowPwd: true, // 控制密码显示隐藏 isShowPwd: true, // 控制密码显示隐藏
// 手机验证短信
showCode: true,
count: "",
timer: null,
codeTime: "", //手机验证码倒计时时间
loginForm: { loginForm: {
phone: "", phone: null,
password: "", password: null,
code: null,
}, },
// 表单验证规则对象 // 表单验证规则对象
loginFormRules: { loginFormRules: {
...@@ -126,13 +180,73 @@ export default { ...@@ -126,13 +180,73 @@ export default {
}, },
}, },
], ],
// 对验证码进行校验
code: [
{ required: true, message: "请输入验证码", trigger: "blur" },
{ min: 6, max: 20, message: "请输入正确的验证码", trigger: "blur" },
],
}, },
changeLogin: 2,
}; };
}, },
created() { created() {
this.$emit("getStatus", false); this.$emit("getStatus", false);
const code = this.$store.state.indexIdentity;
const endTime = window.localStorage.getItem("login_code_time" + code);
if (endTime && Number(endTime) > new Date().getTime()) {
this.loginForm.phone = phone;
this.intervalHandle(new Date(), Number(endTime));
}
this.commonApi(31)
}, },
methods: { methods: {
// 定时器倒计时
intervalHandle(startTime, endTime) {
// 时间差
const timeLag = intervalTime(startTime, endTime);
console.log(timeLag);
if (!this.timer) {
this.count = timeLag - 1;
this.showCode = false;
this.timer = setInterval(() => {
if (this.count > 0 && this.count <= timeLag) {
this.count--;
} else {
this.showCode = true;
clearInterval(this.timer);
this.timer = null;
}
}, 1000);
}
},
// 获取手机验证短信
getCode() {
if (!this.loginForm.phone) {
return this.$message.error("请输入手机号");
}
// if (!this.codeTime) {
// return this.$message.error("您已经获取验证码,请去邮箱中进行查看");
// }
// 接口获得验证码
loginCode({
phone: this.loginForm.phone,
}).then((res) => {
console.log(res, "passwordCode");
if (res.data.code != 200) {
return this.$message.error(res.data.message);
}
this.$message.success(res.data.message);
this.codeTime = res.data.data.now * 1000;
// console.log(this.codeTime)
let code = this.$store.state.indexIdentity;
window.localStorage.setItem(
"login_code_time" + code,
res.data.data.now * 1000
);
this.intervalHandle(new Date(), res.data.data.now * 1000);
});
},
// 忘记账号/密码 // 忘记账号/密码
forgetPwd() { forgetPwd() {
let code = this.$store.state.indexIdentity; let code = this.$store.state.indexIdentity;
...@@ -148,14 +262,34 @@ export default { ...@@ -148,14 +262,34 @@ export default {
changePwdStatus() { changePwdStatus() {
this.isShowPwd = !this.isShowPwd; this.isShowPwd = !this.isShowPwd;
}, },
toLogin() {
this.loginForm = {};
this.changeLogin = 1;
this.$nextTick(() => {
this.$refs["loginFormRef"].clearValidate();
});
},
toCodeLogin() {
this.loginForm = {};
this.changeLogin = 2;
this.$nextTick(() => {
this.$refs["loginFormRef"].clearValidate();
});
},
// 登录 // 登录
submitForm() { submitForm() {
this.$refs["loginFormRef"].validate((valid) => { this.$refs["loginFormRef"].validate((valid) => {
if (!valid) return; if (!valid) return;
login({ let obj = {};
phone: this.loginForm.phone, if (this.changeLogin == 1) {
password: this.loginForm.password, obj.phone = this.loginForm.phone;
}).then((res) => { obj.password = this.loginForm.password;
} else {
obj.phone = this.loginForm.phone;
obj.code = this.loginForm.code;
}
console.log(obj);
login(obj).then((res) => {
console.log(res, "login"); console.log(res, "login");
if (res.data.code != 200) { if (res.data.code != 200) {
return this.$message.error(res.data.message); return this.$message.error(res.data.message);
...@@ -184,28 +318,37 @@ export default { ...@@ -184,28 +318,37 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.flex {
display: flex;
}
.container { .container {
height: 440px;
background: #ffffff; background: #ffffff;
box-shadow: 0px 1px 18px 0px rgba(0, 0, 0, 0.06); box-shadow: 0px 1px 18px 0px rgba(0, 0, 0, 0.06);
border-radius: 8px; border-radius: 8px;
padding: 40px 60px; padding: 40px 60px;
margin-top: 0; margin-top: 0;
overflow: hidden; overflow: hidden;
.title_Login {
position: relative;
margin: 19px 0 0 0;
text-align: center;
.title { .title {
margin: 19px 0 6px 0;
width: 132px;
height: 20px; height: 20px;
font-size: 22px; font-size: 16px;
font-weight: 500; font-weight: 500;
color: var(--color); color: var(--color);
line-height: 20px; line-height: 20px;
text-align: right;
}
.change_login {
font-size: 22px;
margin-top: 32px;
color: black;
text-align: center;
} }
.line {
width: 125px;
height: 3px;
background: var(--color);
border-radius: 2px;
} }
.el-form { .el-form {
margin-top: 60px; margin-top: 60px;
.el-form-item { .el-form-item {
...@@ -214,7 +357,20 @@ export default { ...@@ -214,7 +357,20 @@ export default {
&:last-child { &:last-child {
margin: 0; margin: 0;
} }
.phoneCode {
position: absolute;
z-index: 999;
top: 50%;
right: 25px;
transform: translate(0, -50%);
cursor: pointer;
.code {
font-size: 14px;
font-weight: 600;
color: var(--color);
}
}
img.img_l { img.img_l {
position: absolute; position: absolute;
left: 25px; left: 25px;
......
...@@ -16,26 +16,26 @@ ...@@ -16,26 +16,26 @@
v-model="registerForm.phone" v-model="registerForm.phone"
placeholder="请输入手机号" placeholder="请输入手机号"
maxlength="11" maxlength="11"
autocomplete="off"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="email"> <!-- <el-form-item prop="email">
<img class="img_l" src="@/assets/img/reset/username.png" alt="" /> <img class="img_l" src="@/assets/img/reset/username.png" alt="" />
<el-input <el-input
v-model="registerForm.email" v-model="registerForm.email"
placeholder="请输入邮箱" placeholder="请输入邮箱"
autocomplete="off"
></el-input> ></el-input>
</el-form-item> </el-form-item> -->
<!-- <el-form-item prop="code"> <el-form-item prop="code">
<img class="img_l" src="@/assets/img/reset/code.png" alt="" /> <img class="img_l" src="@/assets/img/reset/code.png" alt="" />
<el-input <el-input
v-model="registerForm.code" v-model="registerForm.code"
placeholder="请输入短信验证码" placeholder="请输入短信验证码"
maxlength="20" maxlength="20"
autocomplete="off"
></el-input> --> ></el-input>
<!-- 短信验证码 --> <!-- 短信验证码 -->
<!-- <div class="phoneCode"> <!-- <div class="phoneCode">
<span class="code" v-show="show" @click="getCode" <span class="code" v-show="show" @click="getCode"
...@@ -44,18 +44,18 @@ ...@@ -44,18 +44,18 @@
<span v-show="!show" class="count">{{ count }} s</span> <span v-show="!show" class="count">{{ count }} s</span>
</div> </div>
</el-form-item> --> </el-form-item> -->
<el-form-item prop="code"> <!-- <el-form-item prop="code">
<img class="img_l" src="@/assets/img/reset/code.png" alt="" /> <img class="img_l" src="@/assets/img/reset/code.png" alt="" />
<el-input <el-input
v-model="registerForm.code" v-model="registerForm.code"
placeholder="请输入邮箱注册验证码" placeholder="请输入邮箱注册验证码"
maxlength="6" maxlength="6"
autocomplete="off"
></el-input> ></el-input> -->
<!-- 短信验证码 --> <!-- 短信验证码 -->
<div class="phoneCode"> <div class="phoneCode">
<span class="code" v-show="showCode" @click="getCode" <span class="code" v-show="showCode" @click="getCode"
>获取邮箱验证码</span >获取验证码</span
> >
<span v-show="!showCode" class="count">{{ count }} s</span> <span v-show="!showCode" class="count">{{ count }} s</span>
</div> </div>
...@@ -89,7 +89,7 @@ ...@@ -89,7 +89,7 @@
v-model="registerForm.rq_password" v-model="registerForm.rq_password"
placeholder="请再次输入登录密码" placeholder="请再次输入登录密码"
maxlength="20" maxlength="20"
autocomplete="off"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item style="margin: 40px 0 0 0"></el-form-item> <el-form-item style="margin: 40px 0 0 0"></el-form-item>
...@@ -139,7 +139,7 @@ export default { ...@@ -139,7 +139,7 @@ export default {
isShowPwd: true, // 控制密码显示隐藏 isShowPwd: true, // 控制密码显示隐藏
registerForm: { registerForm: {
phone: "", phone: "",
email: "", // email: "",
code: "", code: "",
password: "", password: "",
rq_password: "", rq_password: "",
...@@ -161,13 +161,13 @@ export default { ...@@ -161,13 +161,13 @@ export default {
}, },
], ],
// 对邮箱验证 // 对邮箱验证
email: [ // email: [
{ required: true, message: "请输入邮箱", trigger: "blur" }, // { required: true, message: "请输入邮箱", trigger: "blur" },
{ // {
validator: validator.validateEmail, // validator: validator.validateEmail,
trigger: "blur", // trigger: "blur",
}, // },
], // ],
// 对验证码进行校验 // 对验证码进行校验
code: [ code: [
{ required: true, message: "请输入验证码", trigger: "blur" }, { required: true, message: "请输入验证码", trigger: "blur" },
...@@ -225,6 +225,7 @@ export default { ...@@ -225,6 +225,7 @@ export default {
this.resetForm.phone = phone; this.resetForm.phone = phone;
this.intervalHandle(new Date(), Number(endTime)); this.intervalHandle(new Date(), Number(endTime));
} }
this.commonApi(30)
}, },
methods: { methods: {
// 去注册 // 去注册
...@@ -257,16 +258,15 @@ export default { ...@@ -257,16 +258,15 @@ export default {
}, },
// 获取手机验证短信 // 获取手机验证短信
getCode() { getCode() {
if (!this.registerForm.email) { if (!this.registerForm.phone) {
return this.$message.error("请输入邮箱"); return this.$message.error("请输入邮箱");
} }
// if (!this.codeTime) { // if (!this.codeTime) {
// return this.$message.error("您已经获取验证码,请去邮箱中进行查看"); // return this.$message.error("您已经获取验证码,请去邮箱中进行查看");
// } // }
// 接口获得验证码 // 接口获得验证码
registerEmailCode({ registerCode({
phone: this.registerForm.phone,
email: this.registerForm.email,
}).then((res) => { }).then((res) => {
console.log(res, "passwordCode"); console.log(res, "passwordCode");
if (res.data.code != 200) { if (res.data.code != 200) {
...@@ -290,7 +290,7 @@ export default { ...@@ -290,7 +290,7 @@ export default {
if (!valid) return; if (!valid) return;
setAccountInfo({ setAccountInfo({
phone: this.registerForm.phone, phone: this.registerForm.phone,
email: this.registerForm.email, // email: this.registerForm.email,
code: this.registerForm.code, code: this.registerForm.code,
password: this.registerForm.password, password: this.registerForm.password,
rq_password: this.registerForm.rq_password, rq_password: this.registerForm.rq_password,
...@@ -304,7 +304,7 @@ export default { ...@@ -304,7 +304,7 @@ export default {
// token存储 // token存储
window.localStorage.setItem("index-token" + code, res.data.token); window.localStorage.setItem("index-token" + code, res.data.token);
window.localStorage.setItem("phone" + code, this.registerForm.phone); window.localStorage.setItem("phone" + code, this.registerForm.phone);
window.localStorage.setItem("email" + code, this.registerForm.email);//邮箱 // window.localStorage.setItem("email" + code, this.registerForm.email);
// 报名信息 // 报名信息
window.localStorage.setItem("camp_name" + code, res.data.cam.name); window.localStorage.setItem("camp_name" + code, res.data.cam.name);
//获取主题色 //获取主题色
...@@ -315,7 +315,7 @@ export default { ...@@ -315,7 +315,7 @@ export default {
// 跳转到报名 // 跳转到报名
this.$router.push("/signUp/examInfo?code=" + code); this.$router.replace("/signUp/examInfo?code=" + code);
}); });
}); });
}, },
...@@ -334,8 +334,8 @@ export default { ...@@ -334,8 +334,8 @@ export default {
overflow: hidden; overflow: hidden;
.title { .title {
margin: 19px 0 6px 0; // margin: 19px 0 6px 0;
width: 132px; // width: 132px;
height: 20px; height: 20px;
font-size: 22px; font-size: 22px;
font-weight: 500; font-weight: 500;
...@@ -343,12 +343,12 @@ export default { ...@@ -343,12 +343,12 @@ export default {
line-height: 20px; line-height: 20px;
} }
.line { // .line {
width: 103px; // width: 103px;
height: 3px; // height: 3px;
background: var(--color); // background: var(--color);
border-radius: 2px; // border-radius: 2px;
} // }
::v-deep .el-form { ::v-deep .el-form {
margin-top: 60px; margin-top: 60px;
......
...@@ -16,25 +16,23 @@ ...@@ -16,25 +16,23 @@
v-model="resetForm.phone" v-model="resetForm.phone"
placeholder="请输入手机号" placeholder="请输入手机号"
maxlength="11" maxlength="11"
autocomplete="off"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="email"> <!-- <el-form-item prop="email">
<img class="img_l" src="@/assets/img/reset/username.png" alt="" /> <img class="img_l" src="@/assets/img/reset/username.png" alt="" />
<el-input <el-input
v-model="resetForm.email" v-model="resetForm.email"
placeholder="请输入邮箱" placeholder="请输入邮箱"
autocomplete="off"
></el-input> ></el-input>
</el-form-item> </el-form-item> -->
<!-- <el-form-item prop="code"> <el-form-item prop="code">
<img class="img_l" src="@/assets/img/reset/code.png" alt="" /> <img class="img_l" src="@/assets/img/reset/code.png" alt="" />
<el-input <el-input
v-model="resetForm.code" v-model="resetForm.code"
placeholder="请输入短信验证码" placeholder="请输入短信验证码"
maxlength="20" maxlength="20"
autocomplete="off" ></el-input>
></el-input> -->
<!-- 短信验证码 --> <!-- 短信验证码 -->
<!-- <div class="phoneCode"> <!-- <div class="phoneCode">
<span class="code" v-show="showCode" @click="getCode" <span class="code" v-show="showCode" @click="getCode"
...@@ -43,18 +41,18 @@ ...@@ -43,18 +41,18 @@
<span v-show="!showCode" class="count">{{ count }} s</span> <span v-show="!showCode" class="count">{{ count }} s</span>
</div> </div>
</el-form-item> --> </el-form-item> -->
<el-form-item prop="code"> <!-- <el-form-item prop="code">
<img class="img_l" src="@/assets/img/reset/code.png" alt="" /> <img class="img_l" src="@/assets/img/reset/code.png" alt="" />
<el-input <el-input
v-model="resetForm.code" v-model="resetForm.code"
placeholder="请输入邮箱验证码" placeholder="请输入邮箱验证码"
maxlength="6" maxlength="6"
autocomplete="off"
></el-input> ></el-input> -->
<!-- 短信验证码 --> <!-- 短信验证码 -->
<div class="phoneCode"> <div class="phoneCode">
<span class="code" v-show="showCode" @click="getCode" <span class="code" v-show="showCode" @click="getCode"
>获取邮箱验证码</span >获取验证码</span
> >
<span v-show="!showCode" class="count">{{ count }} s</span> <span v-show="!showCode" class="count">{{ count }} s</span>
</div> </div>
...@@ -88,7 +86,6 @@ ...@@ -88,7 +86,6 @@
v-model="resetForm.rq_password" v-model="resetForm.rq_password"
placeholder="请再次输入新的登录密码" placeholder="请再次输入新的登录密码"
maxlength="20" maxlength="20"
autocomplete="off"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item style="margin: 40px 0 0 0"></el-form-item> <el-form-item style="margin: 40px 0 0 0"></el-form-item>
...@@ -107,7 +104,7 @@ ...@@ -107,7 +104,7 @@
<script> <script>
/* eslint-disable */ /* eslint-disable */
// 请求接口 // 请求接口
import { passwordEmailCode } from "r/index/register"; import { passwordCode } from "r/index/register";
import { changePassCode } from "r/index/login"; import { changePassCode } from "r/index/login";
import { mobileCheck } from "@/common/utils.js"; import { mobileCheck } from "@/common/utils.js";
import { intervalTime } from "store/time"; import { intervalTime } from "store/time";
...@@ -132,7 +129,7 @@ export default { ...@@ -132,7 +129,7 @@ export default {
isShowPwd: true, // 控制密码显示隐藏 isShowPwd: true, // 控制密码显示隐藏
resetForm: { resetForm: {
phone: "", phone: "",
email: "", // email: "",
code: "", code: "",
password: "", password: "",
rq_password: "", rq_password: "",
...@@ -154,13 +151,13 @@ export default { ...@@ -154,13 +151,13 @@ export default {
}, },
], ],
// 对邮箱验证 // 对邮箱验证
email: [ // email: [
{ required: true, message: "请输入邮箱", trigger: "blur" }, // { required: true, message: "请输入邮箱", trigger: "blur" },
{ // {
validator: validator.validateEmail, // validator: validator.validateEmail,
trigger: "blur", // trigger: "blur",
}, // },
], // ],
// 对验证码进行校验 // 对验证码进行校验
code: [ code: [
{ required: true, message: "请输入验证码", trigger: "blur" }, { required: true, message: "请输入验证码", trigger: "blur" },
...@@ -250,16 +247,16 @@ export default { ...@@ -250,16 +247,16 @@ export default {
}, },
// 获取手机验证短信 // 获取手机验证短信
getCode() { getCode() {
if (!this.resetForm.email) { if (!this.resetForm.phone) {
return this.$message.error("请输入邮箱"); return this.$message.error("请输入手机号");
} }
// if (!this.codeTime) { // if (!this.codeTime) {
// return this.$message.error("您已经获取验证码,请去邮箱中进行查看"); // return this.$message.error("您已经获取验证码,请去邮箱中进行查看");
// } // }
// 接口获得验证码 // 接口获得验证码
passwordEmailCode({ passwordCode({
phone: this.resetForm.phone, phone: this.resetForm.phone,
email: this.resetForm.email, // email: this.resetForm.email,
}).then((res) => { }).then((res) => {
console.log(res, "passwordCode"); console.log(res, "passwordCode");
if (res.data.code != 200) { if (res.data.code != 200) {
...@@ -300,7 +297,7 @@ export default { ...@@ -300,7 +297,7 @@ export default {
"restet_code_phone" + code, "restet_code_phone" + code,
this.resetForm.phone this.resetForm.phone
); );
this.$router.push("/login?code=" + code); this.$router.replace("/login?code=" + code);
}); });
}); });
}, },
...@@ -319,21 +316,22 @@ export default { ...@@ -319,21 +316,22 @@ export default {
overflow: hidden; overflow: hidden;
.title { .title {
margin: 19px 0 6px 0; // margin: 19px 0 6px 0;
width: 132px; // width: 132px;
height: 20px; height: 20px;
font-size: 22px; font-size: 22px;
font-weight: 500; font-weight: 500;
color: var(--color); color: var(--color);
line-height: 20px; line-height: 20px;
text-align: center;
} }
.line { // .line {
width: 83px; // width: 83px;
height: 3px; // height: 3px;
background: var(--color); // background: var(--color);
border-radius: 2px; // border-radius: 2px;
} // }
::v-deep .el-form { ::v-deep .el-form {
margin-top: 60px; margin-top: 60px;
......
...@@ -2,8 +2,15 @@ ...@@ -2,8 +2,15 @@
<div class="recruit"> <div class="recruit">
<el-header height="104px"> <el-header height="104px">
<Header></Header> <Header></Header>
<div class="notify flex" v-if="$store.state.isDisplay_num == 1">
<div class="flex">
<img class="notify_img" src="../../../assets/img/notify.png" alt=""/>
</div>
<div>注意:本次活动报名有人数限制,当前共有{{ info.order_num }}人申请,剩余名额为{{info.student_num}}</div>
</div>
<div class="bg-top"></div> <div class="bg-top"></div>
</el-header> </el-header>
<div class="com-container content"> <div class="com-container content">
<div class="title">{{ info.name }}</div> <div class="title">{{ info.name }}</div>
<!-- <div class="time">发布时间:{{ info.update_time }}</div> --> <!-- <div class="time">发布时间:{{ info.update_time }}</div> -->
...@@ -45,15 +52,15 @@ ...@@ -45,15 +52,15 @@
</div> </div>
</template> </template>
<script> <script>
/* eslint-disable */ /* eslint-disable */
import Cookie from "js-cookie";
import Header from "@/components/index/Header.vue"; import Header from "@/components/index/Header.vue";
import Footer from "@/components/index/Footer.vue"; import Footer from "@/components/index/Footer.vue";
import { import {getCamInfo} from "r/index/login";
import {setLogs} from "@/common/utils";
getCamInfo import {Notification} from "element-ui";
} from "r/index/login";
export default { export default {
name: "recruit", name: "recruit",
data() { data() {
return { return {
...@@ -62,13 +69,17 @@ export default { ...@@ -62,13 +69,17 @@ export default {
}, },
created() { created() {
this.info = this.$store.state.info; this.info = this.$store.state.info;
let code =this.$store.state.indexIdentity console.log(this.$store.state.indexIdentity)
let code = this.$store.state.indexIdentity;
//判断是否关闭了营地(关闭了不需要调用setlog)
let isCloseCamp = this.$store.state.info.on_off
if (isCloseCamp == 1) {
getCamInfo(code).then((res) => { getCamInfo(code).then((res) => {
// console.log(res, '33333') document.title = res.data.name;
// console.log(res.data.name, 'res.name')
document.title = res.data.name
return false; return false;
}) });
this.commonApi(29)
}
}, },
methods: { methods: {
toLogin() { toLogin() {
...@@ -85,13 +96,18 @@ export default { ...@@ -85,13 +96,18 @@ export default {
Header, Header,
Footer, Footer,
}, },
}; };
</script> </script>
<style lang="scss"> <style lang="scss">
@import "a/scss/common"; @import "a/scss/common";
.flex {
display: flex;
}
.recruit { .recruit {
font-family: PingFang SC; font-family: PingFang SC;
.el-header { .el-header {
position: fixed; position: fixed;
width: 100%; width: 100%;
...@@ -104,6 +120,19 @@ export default { ...@@ -104,6 +120,19 @@ export default {
// // background-color: #f8f8f8; // // background-color: #f8f8f8;
// } // }
} }
.notify {
background-color: #fbf8fb;
height: 38px;
align-items: center;
padding-left: 5%;
}
.notify_img {
width: 20px;
margin-right: 5px;
}
.content { .content {
.title { .title {
padding: 170px 0 20px 0; padding: 170px 0 20px 0;
...@@ -121,6 +150,7 @@ export default { ...@@ -121,6 +150,7 @@ export default {
.paper { .paper {
text-align: center; text-align: center;
margin: 8px 0 24px 0; margin: 8px 0 24px 0;
img { img {
width: 654px; width: 654px;
height: 368px; height: 368px;
...@@ -161,5 +191,5 @@ export default { ...@@ -161,5 +191,5 @@ export default {
} }
} }
} }
} }
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment