自主修改邮箱
This commit is contained in:
@@ -2,14 +2,14 @@
|
|||||||
//记得切换
|
//记得切换
|
||||||
|
|
||||||
//正式
|
//正式
|
||||||
const mediaUrl = '/public/';
|
// const mediaUrl = '/public/';
|
||||||
const baseUrl = '/';
|
// const baseUrl = '/';
|
||||||
|
|
||||||
//正式环境
|
//正式环境
|
||||||
|
|
||||||
// const mediaUrl = 'https://submission.tmrjournals.com/public/';
|
const mediaUrl = 'https://submission.tmrjournals.com/public/';
|
||||||
// // const mediaUrl = 'http://zmzm.tougao.dev.com/public/';
|
// const mediaUrl = 'http://zmzm.tougao.dev.com/public/';
|
||||||
// const baseUrl = '/api'
|
const baseUrl = '/api'
|
||||||
|
|
||||||
//测试环境
|
//测试环境
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,13 @@ const en = {
|
|||||||
info: {
|
info: {
|
||||||
realname: 'English names can only contain uppercase and lowercase letters, "-", and spaces'
|
realname: 'English names can only contain uppercase and lowercase letters, "-", and spaces'
|
||||||
},
|
},
|
||||||
|
articleAdd: {
|
||||||
|
qqEmailAlertLine1: 'The publisher does not currently accept submissions from QQ Mail.',
|
||||||
|
qqEmailAlertLine2Before: 'Please go to',
|
||||||
|
qqEmailDashboardLink: 'Personal Center (Dashboard)',
|
||||||
|
qqEmailAlertLine2After: ' to change your registered email.',
|
||||||
|
qqEmailSubmitBlockedMsg: 'QQ Mail is not supported for submission. Please go to Personal Center (Dashboard) and change your email.'
|
||||||
|
},
|
||||||
total: {
|
total: {
|
||||||
author: 'author',
|
author: 'author',
|
||||||
editor: 'editor',
|
editor: 'editor',
|
||||||
|
|||||||
@@ -19,6 +19,13 @@ const zh = {
|
|||||||
}, info: {
|
}, info: {
|
||||||
realname: '英文名字只能包含大小写英文字母、"-" 、和 空格'
|
realname: '英文名字只能包含大小写英文字母、"-" 、和 空格'
|
||||||
},
|
},
|
||||||
|
articleAdd: {
|
||||||
|
qqEmailAlertLine1: '出版社暂不支持qq邮箱投稿。',
|
||||||
|
qqEmailAlertLine2Before: '请前往',
|
||||||
|
qqEmailDashboardLink: '个人中心(Dashboard)',
|
||||||
|
qqEmailAlertLine2After: '更换邮箱账号。',
|
||||||
|
qqEmailSubmitBlockedMsg: '出版社暂不支持qq邮箱投稿,请去个人中心更换邮箱账号'
|
||||||
|
},
|
||||||
total: {
|
total: {
|
||||||
author: '作者',
|
author: '作者',
|
||||||
editor: '编辑',
|
editor: '编辑',
|
||||||
|
|||||||
@@ -859,8 +859,8 @@
|
|||||||
<el-form-item label="Account :" prop="account">
|
<el-form-item label="Account :" prop="account">
|
||||||
<span>{{ coreForm.account }}</span>
|
<span>{{ coreForm.account }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Email :">
|
<el-form-item label="Email :" prop="email">
|
||||||
<span>{{ coreForm.email }}</span>
|
<el-input type="text" placeholder="Please enter email..." v-model="coreForm.email" style="width: 320px" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="Real name :" prop="realname">
|
<el-form-item label="Real name :" prop="realname">
|
||||||
@@ -1610,6 +1610,14 @@ this.applyCvitaTable = data;
|
|||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
this.coreTable = res.data.baseInfo;
|
this.coreTable = res.data.baseInfo;
|
||||||
|
try {
|
||||||
|
if (this.coreTable && this.coreTable.email != null && this.coreTable.email !== undefined) {
|
||||||
|
localStorage.setItem('U_email', String(this.coreTable.email));
|
||||||
|
}
|
||||||
|
if (this.coreTable && this.coreTable.realname != null && this.coreTable.realname !== undefined) {
|
||||||
|
localStorage.setItem('U_relname', String(this.coreTable.realname));
|
||||||
|
}
|
||||||
|
} catch (e) {}
|
||||||
this.majorsList=res.data.baseInfo.majors;
|
this.majorsList=res.data.baseInfo.majors;
|
||||||
this.cvitaForm.user_id = res.data.baseInfo.user_id;
|
this.cvitaForm.user_id = res.data.baseInfo.user_id;
|
||||||
this.reviewForm.user_id = res.data.baseInfo.user_id;
|
this.reviewForm.user_id = res.data.baseInfo.user_id;
|
||||||
@@ -1901,6 +1909,14 @@ this.applyCvitaTable = data;
|
|||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
this.$message.success('Personal information modified successfully!');
|
this.$message.success('Personal information modified successfully!');
|
||||||
|
try {
|
||||||
|
if (this.coreForm.email != null && this.coreForm.email !== undefined) {
|
||||||
|
localStorage.setItem('U_email', String(this.coreForm.email));
|
||||||
|
}
|
||||||
|
if (this.coreForm.realname != null && this.coreForm.realname !== undefined) {
|
||||||
|
localStorage.setItem('U_relname', String(this.coreForm.realname));
|
||||||
|
}
|
||||||
|
} catch (e) {}
|
||||||
this.coreVisible = false;
|
this.coreVisible = false;
|
||||||
this.tipVisible = false;
|
this.tipVisible = false;
|
||||||
this.getPersonData();
|
this.getPersonData();
|
||||||
|
|||||||
@@ -810,9 +810,37 @@
|
|||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<el-alert
|
||||||
|
v-if="articleAddQqEmailSubmitBlocked"
|
||||||
|
type="warning"
|
||||||
|
:closable="false"
|
||||||
|
show-icon
|
||||||
|
style="max-width: 720px; margin: 24px auto 0"
|
||||||
|
>
|
||||||
|
<template slot="title">
|
||||||
|
<div class="qq-email-alert-body">
|
||||||
|
<div class="qq-email-alert-line1">{{ $t('articleAdd.qqEmailAlertLine1') }}</div>
|
||||||
|
<div class="qq-email-alert-line2">
|
||||||
|
<span>{{ $t('articleAdd.qqEmailAlertLine2Before') }}</span>
|
||||||
|
<router-link to="/dashboard" class="qq-email-dashboard-link">
|
||||||
|
<i class="el-icon-user-solid"></i>
|
||||||
|
{{ $t('articleAdd.qqEmailDashboardLink') }}
|
||||||
|
</router-link>
|
||||||
|
<span>{{ $t('articleAdd.qqEmailAlertLine2After') }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-alert>
|
||||||
<div style="text-align: center; margin: 40px 0 0 0">
|
<div style="text-align: center; margin: 40px 0 0 0">
|
||||||
<el-button type="warning" @click="onStagingSave(4)" class="pro_stage">Save as draft </el-button>
|
<el-button type="warning" @click="onStagingSave(4)" class="pro_stage">Save as draft </el-button>
|
||||||
<el-button type="primary" @click="onSubmit(1)" class="pro_ceed">Confirm Submit </el-button>
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
@click="onSubmit(1)"
|
||||||
|
class="pro_ceed"
|
||||||
|
:disabled="articleAddQqEmailSubmitBlocked"
|
||||||
|
>
|
||||||
|
Confirm Submit
|
||||||
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1612,6 +1640,17 @@ export default {
|
|||||||
},
|
},
|
||||||
upload_qualifications: function () {
|
upload_qualifications: function () {
|
||||||
return this.baseUrl + 'api/Admin/up_file';
|
return this.baseUrl + 'api/Admin/up_file';
|
||||||
|
},
|
||||||
|
/** 投稿页第四步:登录邮箱为 QQ 邮箱时不允许正式提交 */
|
||||||
|
articleAddQqEmailSubmitBlocked() {
|
||||||
|
try {
|
||||||
|
const raw = localStorage.getItem('U_email') || '';
|
||||||
|
const email = String(raw).trim().toLowerCase();
|
||||||
|
if (!email || !email.includes('@')) return false;
|
||||||
|
return /@qq\.com$/i.test(email) || /@vip\.qq\.com$/i.test(email);
|
||||||
|
} catch (e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -1907,6 +1946,10 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
async onSubmit() {
|
async onSubmit() {
|
||||||
|
if (this.articleAddQqEmailSubmitBlocked) {
|
||||||
|
this.$message.warning(this.$t('articleAdd.qqEmailSubmitBlockedMsg'));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
// 1. 校验协议勾选
|
// 1. 校验协议勾选
|
||||||
if (!this.agreechecked) {
|
if (!this.agreechecked) {
|
||||||
this.$message.error(
|
this.$message.error(
|
||||||
@@ -4063,6 +4106,28 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
.qq-email-alert-body {
|
||||||
|
line-height: 1.55;
|
||||||
|
}
|
||||||
|
.qq-email-alert-line1 {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
}
|
||||||
|
.qq-email-alert-line2 {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.qq-email-dashboard-link {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
|
margin: 0 4px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #cf9236;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
.qq-email-dashboard-link:hover {
|
||||||
|
color: #b8822f;
|
||||||
|
}
|
||||||
/deep/.apc_content a{
|
/deep/.apc_content a{
|
||||||
color: rgb(81, 127, 213) !important; cursor: pointer !important; text-decoration: underline !important;
|
color: rgb(81, 127, 213) !important; cursor: pointer !important; text-decoration: underline !important;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -198,8 +198,8 @@
|
|||||||
<el-form-item label="Account :" prop="account">
|
<el-form-item label="Account :" prop="account">
|
||||||
<span>{{coreForm.account}}</span>
|
<span>{{coreForm.account}}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Email :">
|
<el-form-item label="Email :" prop="email">
|
||||||
<span>{{coreForm.email}}</span>
|
<el-input type="text" placeholder="Please enter email..." v-model="coreForm.email" clearable></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="head portrait :">
|
<el-form-item label="head portrait :">
|
||||||
<el-upload class="avatar-uploader" :action="baseUrl+'master/Journal/up_topic_file'"
|
<el-upload class="avatar-uploader" :action="baseUrl+'master/Journal/up_topic_file'"
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
<!-- <div class="mini-label">{{ $t('autoPromotion.factoryJournal') }}</div> -->
|
<!-- <div class="mini-label">{{ $t('autoPromotion.factoryJournal') }}</div> -->
|
||||||
<div class="journal-grid-compact">
|
<div class="journal-grid-compact">
|
||||||
<div
|
<div
|
||||||
v-for="j in journalList"
|
v-for="j in journalListForDisplay"
|
||||||
:key="String(j.journal_id)"
|
:key="String(j.journal_id)"
|
||||||
class="journal-card-mini"
|
class="journal-card-mini"
|
||||||
:class="{ 'is-active': selectedJournalId === j.journal_id, 'is-disabled': isEditMode }"
|
:class="{ 'is-active': selectedJournalId === j.journal_id, 'is-disabled': isEditMode }"
|
||||||
@@ -455,6 +455,17 @@
|
|||||||
const current = String(this.expertType || '').trim();
|
const current = String(this.expertType || '').trim();
|
||||||
return this.expertOptions.filter((opt) => String(opt.value) === current);
|
return this.expertOptions.filter((opt) => String(opt.value) === current);
|
||||||
},
|
},
|
||||||
|
/** 编辑任务时期刊不可切换:列表只展示当前任务所属期刊 */
|
||||||
|
journalListForDisplay() {
|
||||||
|
const list = Array.isArray(this.journalList) ? this.journalList : [];
|
||||||
|
if (!this.isEditMode) return list;
|
||||||
|
const id = this.selectedJournalId != null && this.selectedJournalId !== '' ? String(this.selectedJournalId) : '';
|
||||||
|
if (!id) return list;
|
||||||
|
const rows = list.filter(function (j) {
|
||||||
|
return String(j.journal_id) === id;
|
||||||
|
});
|
||||||
|
return rows.length ? rows : list;
|
||||||
|
},
|
||||||
isEditMode() {
|
isEditMode() {
|
||||||
const task = this.initialTask;
|
const task = this.initialTask;
|
||||||
return !!(task && typeof task === 'object' && Object.keys(task).length);
|
return !!(task && typeof task === 'object' && Object.keys(task).length);
|
||||||
|
|||||||
Reference in New Issue
Block a user