This commit is contained in:
2025-02-12 17:58:57 +08:00
parent d11b02b06b
commit a178d5ffbe
5 changed files with 712 additions and 588 deletions

View File

@@ -56,8 +56,9 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="Major :" :required="true" prop="major_a"> <el-form-item label="Research areas :" prop="major">
<el-select <common-major-list :list="majorValueList" @load="(e)=>this.majorValueList=e"></common-major-list>
<!-- <el-select
v-model="form.major_a" v-model="form.major_a"
placeholder="Please select major" placeholder="Please select major"
@change="majorChange(1)" @change="majorChange(1)"
@@ -99,7 +100,7 @@
:label="item.major_title" :label="item.major_title"
:value="item.major_id" :value="item.major_id"
></el-option> ></el-option>
</el-select> </el-select> -->
</el-form-item> </el-form-item>
<el-form-item label="Manuscript Title :" prop="title"> <el-form-item label="Manuscript Title :" prop="title">
<el-input v-model="form.title" placeholder="Please enter title"></el-input> <el-input v-model="form.title" placeholder="Please enter title"></el-input>
@@ -966,6 +967,7 @@
export default { export default {
data() { data() {
return { return {
majorValueList:[],
baseUrl: this.Common.baseUrl, baseUrl: this.Common.baseUrl,
usercap: localStorage.getItem('U_role'), usercap: localStorage.getItem('U_role'),
ms_alias: localStorage.getItem('ms_journal_alias'), ms_alias: localStorage.getItem('ms_journal_alias'),
@@ -1196,9 +1198,19 @@ export default {
major: [ major: [
{ {
required: true, required: true,
message: 'Please select major', validator: (rule, value, callback) => {
trigger: 'blur' console.log('value at line 1202:', this.form);
var major=this.majorValueList.map(item => item.selectedValue[item.selectedValue.length - 1]).toString(',')
if (major=='') {
callback(new Error('Please select the Research areas'));
} else {
callback();
} }
// 如果你需要在此处使用 this 访问 Vue 实例的数据,使用箭头函数保持上下文
// 其他逻辑
}
}
], ],
abstrart: [ abstrart: [
{ {
@@ -2599,6 +2611,10 @@ export default {
// 点击进行下一步 // 点击进行下一步
onStep(e) { onStep(e) {
console.log('this.majorValueList at line 2604:', this.majorValueList)
console.log('this.form at line 2622:', this.form)
this.$refs.articleform.validate((valid) => { this.$refs.articleform.validate((valid) => {
if (valid) { if (valid) {
if (e == 1) { if (e == 1) {
@@ -2617,7 +2633,13 @@ export default {
} }
} }
this.form.keyWords = fstr == '' ? '' : fstr.substring(0, fstr.length - 1); this.form.keyWords = fstr == '' ? '' : fstr.substring(0, fstr.length - 1);
this.form.major=this.majorValueList.map(item => item.selectedValue[item.selectedValue.length - 1]).toString(',')
if(this.form.major==''){
this.$message.error('Please select the Research areas')
return false
}
this.$api.post('api/Article/addArticlePart1', this.form).then((res) => { this.$api.post('api/Article/addArticlePart1', this.form).then((res) => {
if (res.code == 0) { if (res.code == 0) {
this.stagingID = res.data.article_id; this.stagingID = res.data.article_id;
this.form.article_id = res.data.article_id; this.form.article_id = res.data.article_id;
@@ -2702,8 +2724,15 @@ export default {
fstr += flist[fu].ke.trim() + ','; fstr += flist[fu].ke.trim() + ',';
} }
} }
console.log('this.form at line 2707:', this.form)
this.form.keyWords = fstr == '' ? '' : fstr.substring(0, fstr.length - 1); this.form.keyWords = fstr == '' ? '' : fstr.substring(0, fstr.length - 1);
this.form.major=this.majorValueList.map(item => item.selectedValue[item.selectedValue.length - 1]).toString(',')
if(this.form.major==''){
this.$message.error('Please select the Research areas')
return false
}
this.$api.post('api/Article/addArticlePart1', this.form).then((res) => { this.$api.post('api/Article/addArticlePart1', this.form).then((res) => {
if (res.code == 0) { if (res.code == 0) {
this.stagingID = res.data.article_id; this.stagingID = res.data.article_id;
this.form.article_id = res.data.article_id; this.form.article_id = res.data.article_id;
@@ -2840,44 +2869,48 @@ export default {
console.log(res.data.base); console.log(res.data.base);
// this.form.topics = res.data.base.topics // this.form.topics = res.data.base.topics
// 领域 // 领域
this.$api this.majorValueList = res.data.majors.map(item => ({
.post('api/Major/getMajorForAddArticle', {
journal_id: this.form.journal, selectedValue: Array.isArray(item.major) ? item.major : (typeof item.major === 'string' ? item.major.split(',').map(Number) : [item.major])
major_id: 1 })); console.log('this.majorValueList at line 2853:', this.majorValueList)
}) // this.$api
.then((res) => { // .post('api/Major/getMajorForAddArticle', {
this.majors_a = res.data.majors; // journal_id: this.form.journal,
}); // major_id: 1
this.form.major_a = res.data.major.major_id; // })
this.$api // .then((res) => {
.post('api/Major/getMajorForAddArticle', { // this.majors_a = res.data.majors;
journal_id: this.form.journal, // });
major_id: this.form.major_a // this.form.major_a = res.data.major.major_id;
}) // this.$api
.then((ref) => { // .post('api/Major/getMajorForAddArticle', {
this.majors_b = ref.data.majors; // journal_id: this.form.journal,
this.majors_c = []; // major_id: this.form.major_a
this.form.major_b = ''; // })
this.form.major_c = ''; // .then((ref) => {
this.majorChange_panduan(); // this.majors_b = ref.data.majors;
if (res.data.major.child != undefined) { // this.majors_c = [];
this.form.major_b = res.data.major.child.major_id; // this.form.major_b = '';
this.$api // this.form.major_c = '';
.post('api/Major/getMajorForAddArticle', { // this.majorChange_panduan();
journal_id: this.form.journal, // if (res.data.major.child != undefined) {
major_id: this.form.major_b // this.form.major_b = res.data.major.child.major_id;
}) // this.$api
.then((ref) => { // .post('api/Major/getMajorForAddArticle', {
this.majors_c = ref.data.majors; // journal_id: this.form.journal,
this.form.major_c = ''; // major_id: this.form.major_b
this.majorChange_panduan(); // })
if (res.data.major.child.child != undefined) { // .then((ref) => {
this.form.major_c = res.data.major.child.child.major_id; // this.majors_c = ref.data.majors;
this.majorChange_panduan(); // this.form.major_c = '';
} // this.majorChange_panduan();
}); // if (res.data.major.child.child != undefined) {
} // this.form.major_c = res.data.major.child.child.major_id;
}); // this.majorChange_panduan();
// }
// });
// }
// });
// 关键词 // 关键词
let keyList = res.data.base.keywords.split(','); let keyList = res.data.base.keywords.split(',');
this.keywordsList = []; this.keywordsList = [];

View File

@@ -57,7 +57,42 @@
<p v-if="form.special_num > 0"> <p v-if="form.special_num > 0">
<font>Special Issues :</font><b>{{ form.special_title }}</b> <font>Special Issues :</font><b>{{ form.special_title }}</b>
</p> </p>
<el-collapse class="auth_colla auth_collna_ew" style="margin-bottom: 0;">
<el-collapse-item title="Research areas" name="1" >
<div style="position: relative;height: 30px;">
<common-major
:articleId="editform.articleId"
@load="initMajor()"
style="position: absolute; top: 10px; right: 10px"
></common-major>
</div>
<div style="margin: 12px 20px 30px 0px; line-height: 24px; font-size: 14px; position: relative">
<div>
<!-- 统计数据 -->
<div class="join_link">
<!-- 如果你想投稿 请点击 -->
<p style="" v-for="(v, i) in majorsList">
<span style="color: #006699; font-weight: bold; margin-right: 10px"
>Field {{ i + 1 }}:</span
>{{ v.str
}}<i
class="el-icon-delete-solid"
style="color: #f56c6c !important; margin-left: 10px"
@click="handleDeleteMajor(v)"
></i>
</p>
<!-- 查看已投稿件列表 -->
</div>
</div>
</div>
</el-collapse-item>
</el-collapse>
<el-collapse class="auth_colla auth_collna_ew"> <el-collapse class="auth_colla auth_collna_ew">
<el-collapse-item :title="authorList_name" name="1"> <el-collapse-item :title="authorList_name" name="1">
<div v-for="(item, index) in form.authorList" class="auth_mess"> <div v-for="(item, index) in form.authorList" class="auth_mess">
@@ -108,6 +143,7 @@
</div> </div>
</el-collapse-item> </el-collapse-item>
</el-collapse> </el-collapse>
<el-collapse class="auth_colla auth_collna_ew" style="margin-top: -15px"> <el-collapse class="auth_colla auth_collna_ew" style="margin-top: -15px">
<el-collapse-item name="2"> <el-collapse-item name="2">
<template slot="title"> <template slot="title">
@@ -126,6 +162,7 @@
</p> </p>
</el-collapse-item> </el-collapse-item>
</el-collapse> </el-collapse>
</div> </div>
<div class="art_file_"> <div class="art_file_">
@@ -193,7 +230,7 @@
<i class="el-icon-download download"></i> <i class="el-icon-download download"></i>
</a> </a>
</a> --> </a> -->
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url" > <a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png" /> <img src="../../assets/img/icon_0.png" />
<span> <span>
<font>Uploader : </font>{{ form.username }} <font>Uploader : </font>{{ form.username }}
@@ -241,12 +278,8 @@
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
<common-word-html
:articleId="$route.query.id"
style=" box-sizing: border-box"
<common-word-html :articleId="$route.query.id" style="box-sizing: border-box"></common-word-html>
></common-word-html>
</div> </div>
<!-- 被拒稿件操作 ---> <!-- 被拒稿件操作 --->
<div class="art_caozuo_" v-if="opname == 'rejectArticles'"> <div class="art_caozuo_" v-if="opname == 'rejectArticles'">
@@ -626,6 +659,7 @@ export default {
ad_content: '' ad_content: ''
}, },
talkMsgs: [], talkMsgs: [],
majorsList: [],
opname: '', // 稿件详细类型 opname: '', // 稿件详细类型
editorJournalList: [], // 编辑期刊列表 editorJournalList: [], // 编辑期刊列表
resubmitJournal: { resubmitJournal: {
@@ -805,7 +839,7 @@ export default {
}); });
}, },
openDrawer(data, url) { openDrawer(data, url) {
console.log('url at line 799:',data, url) console.log('url at line 799:', data, url);
this.previewData = { this.previewData = {
...data, ...data,
previewUrl: url, previewUrl: url,
@@ -899,7 +933,29 @@ export default {
return { status: status, msg: msg }; return { status: status, msg: msg };
}, },
handleDeleteMajor(v) {
console.log('v at line 925:', v);
this.$confirm('Are you sure you want to delete this Field ?', 'Tip', {
type: 'warning'
})
.then(() => {
this.$api
.post('api/Major/delMajorByArticleIdForEditor', {
mta_id: v.mta_id
})
.then((res) => {
if (res.code == 0) {
this.initMajor();
} else {
this.$message.error(res.msg);
}
})
.catch((err) => {
this.$message.error(err);
});
})
.catch(() => {});
},
//修改文章状态 //修改文章状态
async saveEdit() { async saveEdit() {
if (this.form.state == 0) { if (this.form.state == 0) {
@@ -948,7 +1004,16 @@ export default {
this.$router.go(0); this.$router.go(0);
}); });
}, },
initMajor() {
this.$api
.post('api/Major/getMajorByArticleId', {
article_id: this.editform.articleId
})
.then((res) => {
console.log('res at line 978:', res);
this.majorsList = res.data.majors;
});
},
//初始化期刊信息 //初始化期刊信息
initarticle() { initarticle() {
this.now_year = new Date().getFullYear(); this.now_year = new Date().getFullYear();
@@ -957,7 +1022,9 @@ export default {
articleId: this.editform.articleId, articleId: this.editform.articleId,
human: 'editor' human: 'editor'
}) })
.then((res) => { .then((res) => {
this.initMajor();
this.form.username = res.article.account; this.form.username = res.article.account;
this.form.title = res.article.title; this.form.title = res.article.title;
this.form.journal = res.article.journal_id; this.form.journal = res.article.journal_id;

View File

@@ -4,7 +4,7 @@
<el-breadcrumb separator="/"> <el-breadcrumb separator="/">
<el-breadcrumb-item> <el-breadcrumb-item>
<i class="el-icon-lx-calendar"></i> <i class="el-icon-lx-calendar"></i>
<router-link :to="{path:'/articleList'}"> <router-link :to="{ path: '/articleList' }">
<span class="top_dao"> Manuscript list</span> <span class="top_dao"> Manuscript list</span>
</router-link> </router-link>
>> Manuscript process >> Manuscript process
@@ -12,68 +12,86 @@
</el-breadcrumb> </el-breadcrumb>
</div> </div>
<div class="container_state"> <div class="container_state">
<p style="color: #888;margin: 10px 0 5px 0;">ID : {{artMes.accept_sn}}</p> <p style="color: #888; margin: 10px 0 5px 0">ID : {{ artMes.accept_sn }}</p>
<p style="font-size: 16px;font-weight: bolder;letter-spacing: -0.5px;"> <p style="font-size: 16px; font-weight: bolder; letter-spacing: -0.5px">
<!-- <span class="art_type">{{ellType(artMes.type)}}</span> --> <!-- <span class="art_type">{{ellType(artMes.type)}}</span> -->
{{artMes.title}} {{ artMes.title }}
</p> </p>
<!-- <p style="color: #7f8790;margin: 10px 0 0 0;">Follow the progress of your submission.</p> --> <!-- <p style="color: #7f8790;margin: 10px 0 0 0;">Follow the progress of your submission.</p> -->
<div class="tit_head"> <div class="tit_head">
Status : <b style="margin: 0 50px 0 0;">{{statetostr(artMes.laststate)}}</b> Status : <b style="margin: 0 50px 0 0">{{ statetostr(artMes.laststate) }}</b> Journal : <b>{{ artMes.journalname }}</b>
Journal : <b>{{artMes.journalname}}</b> </div>
<div class="tit_head" v-if="artMes.majors&&artMes.majors.length>0">
<b style="margin: 0 50px 0 0;font-size: 20px;">Research areas</b>
<div style="margin-top: 10px;">
<p style="" v-for="(v, i) in artMes.majors">
<span style="color: #333; margin-right: 10px">Field {{ i + 1 }}:</span>{{ v.str
}}
</p>
</div>
</div> </div>
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="15"> <el-col :span="15">
<div class="process_new"> <div class="process_new">
<!-- <p style="width: 100%;height: 1px;background-color: #eee;margin: 35px 0 30px 0;"></p> --> <!-- <p style="width: 100%;height: 1px;background-color: #eee;margin: 35px 0 30px 0;"></p> -->
<h2 style="font-size: 18px;margin: 0 0 10px 0;float: left;letter-spacing: -0.8px;">Manuscript <h2 style="font-size: 18px; margin: 0 0 10px 0; float: left; letter-spacing: -0.8px">Manuscript Tracking</h2>
Tracking</h2>
<!-- <div class="radio" style="float: right;"> <!-- <div class="radio" style="float: right;">
<el-radio-group v-model="reverse"> <el-radio-group v-model="reverse">
<el-radio-button :label="false">Ascending</el-radio-button> <el-radio-button :label="false">Ascending</el-radio-button>
<el-radio-button :label="true">Descending</el-radio-button> <el-radio-button :label="true">Descending</el-radio-button>
</el-radio-group> </el-radio-group>
</div> --> </div> -->
<br clear="both"> <br clear="both" />
<el-timeline :reverse="reverse" class="author_tree"> <el-timeline :reverse="reverse" class="author_tree">
<el-timeline-item v-for="(item, index) in prossMsgs" :icon="item.icon" :color="item.color" <el-timeline-item
size="large" :key="index" :timestamp="formatDate(item.ctime)" placement="top" v-if="item.ftype == 0"> v-for="(item, index) in prossMsgs"
:icon="item.icon"
:color="item.color"
size="large"
:key="index"
:timestamp="formatDate(item.ctime)"
placement="top"
v-if="item.ftype == 0"
>
<el-card> <el-card>
<p> <p>
<font>{{ statetostr(item.state_to) }}</font> <font>{{ statetostr(item.state_to) }}</font>
<!-- 提交 --> <!-- 提交 -->
<font v-if="item.state_to==-1"> <font v-if="item.state_to == -1">
<!-- : <font style="margin-left: 5px;">First submitted to <b>{{artMes.journalname}}</b></font> --> <!-- : <font style="margin-left: 5px;">First submitted to <b>{{artMes.journalname}}</b></font> -->
</font> </font>
<!-- 给编辑 --> <!-- 给编辑 -->
<font v-if="item.state_to==1"> <font v-if="item.state_to == 1">
<!-- : <b style="margin-left: 5px;"> Submission checks complete</b> --> <!-- : <b style="margin-left: 5px;"> Submission checks complete</b> -->
</font> </font>
<!-- 审查中 --> <!-- 审查中 -->
<font v-if="item.state_to==2"> <font v-if="item.state_to == 2">
<!-- : <b style="margin-left: 5px;"> Editor assigned</b> --> <!-- : <b style="margin-left: 5px;"> Editor assigned</b> -->
</font> </font>
<!-- 拒绝 --> <!-- 拒绝 -->
<font v-if="item.state_to==3"> <font v-if="item.state_to == 3">
<!-- : <b> Reject manuscript</b> --> <!-- : <b> Reject manuscript</b> -->
</font> </font>
<!-- 修改 --> <!-- 修改 -->
<font v-if="item.state_to==4"> <font v-if="item.state_to == 4">
: :
<router-link <router-link
:to="{path:'/articleProcessRevision',query:{id:artMes.article_id}}" :to="{ path: '/articleProcessRevision', query: { id: artMes.article_id } }"
v-if="item.back==1"> v-if="item.back == 1"
<b style="margin-left: 5px;color: #006699;text-decoration: underline;">Upload >
Major Revision</b> <b style="margin-left: 5px; color: #006699; text-decoration: underline"
>Upload Major Revision</b
>
</router-link> </router-link>
<b style="margin-left: 5px;color: #888;text-decoration: underline;" <b style="margin-left: 5px; color: #888; text-decoration: underline" v-if="item.back == 0">
v-if="item.back==0">
Upload Major Revision (Completed) Upload Major Revision (Completed)
</b> </b>
</font> </font>
<!-- 接收 --> <!-- 接收 -->
<font v-if="item.state_to==5"> <font v-if="item.state_to == 5">
<!-- : <b style="margin-left: 5px;"> Successfully received manuscript</b> --> <!-- : <b style="margin-left: 5px;"> Successfully received manuscript</b> -->
</font> </font>
</p> </p>
@@ -102,88 +120,76 @@
<!-- 对话列表 --> <!-- 对话列表 -->
<div class="kuang_communtion"> <div class="kuang_communtion">
<h2> <h2>Communication</h2>
Communication
</h2>
<div v-for="item in talkMsgs" class="kuang_communtion_conmt"> <div v-for="item in talkMsgs" class="kuang_communtion_conmt">
<div v-if="item.user_id != artMes.user_id" class="talk_aued"> <div v-if="item.user_id != artMes.user_id" class="talk_aued">
<p> <p>Editor :</p>
Editor :
</p>
<el-card> <el-card>
<p style="white-space: pre-wrap;">{{ item.ad_content }}</p> <p style="white-space: pre-wrap">{{ item.ad_content }}</p>
</el-card> </el-card>
<b>{{formatDate(item.ad_ctime)}}</b> <b>{{ formatDate(item.ad_ctime) }}</b>
</div> </div>
<div v-if="item.user_id == artMes.user_id" class="talk_aued talk_edit"> <div v-if="item.user_id == artMes.user_id" class="talk_aued talk_edit">
<p> <p>Author :</p>
Author :
</p>
<el-card> <el-card>
<p style="white-space: pre-wrap;">{{ item.ad_content }}</p> <p style="white-space: pre-wrap">{{ item.ad_content }}</p>
</el-card> </el-card>
<b>{{formatDate(item.ad_ctime)}}</b> <b>{{ formatDate(item.ad_ctime) }}</b>
</div> </div>
</div> </div>
<div class="kuang_communtion_input"> <div class="kuang_communtion_input">
<p v-if="talkMsgs"></p> <p v-if="talkMsgs"></p>
<span class="text_bor_ghu"> <span class="text_bor_ghu">
<el-input type="textarea" rows="3" v-model="msgform.ad_content" <el-input
placeholder="You can initiate short conversations with the editor." resize="none"> type="textarea"
rows="3"
v-model="msgform.ad_content"
placeholder="You can initiate short conversations with the editor."
resize="none"
>
</el-input> </el-input>
<el-button type="primary" @click="saveMsg">Send</el-button> <el-button type="primary" @click="saveMsg">Send</el-button>
</span> </span>
<font style="font-size: 12px;color: #999;padding:12px 5px 0 5px;display: block;"> <font style="font-size: 12px; color: #999; padding: 12px 5px 0 5px; display: block">
This column is served as an instant correspondence between the editor and authors, This column is served as an instant correspondence between the editor and authors, aiming to acquire a
aiming to acquire a faster faster way of communication than E-Mail. If you have any questions, please start the instant corresponding,
way of communication than E-Mail. If you have any questions, please start the instant and the editors will reply to you in 24 hours.
corresponding, and the <br />
editors will reply to you in 24 hours. <font style="color: #006699">Please Attention</font>
<br> <br />
<font style="color: #006699;">Please Attention</font> <font style="color: #006699">1.</font> If you need to send files as attachments, please send them to
<br>
<font style="color: #006699;">1.</font> If you need to send files as attachments, please
send them to
tmr@tmrjournals.com tmr@tmrjournals.com
<br> <br />
<font style="color: #006699;">2.</font> Please do not upload the primary documents like <font style="color: #006699">2.</font> Please do not upload the primary documents like the cover letter, the
the cover letter, the reply to the reviewer comments, etc.
reply to the reviewer comments,
etc.
</font> </font>
</div> </div>
</div> </div>
<p style="line-height: 20px;color: #999;padding: 0 15px 0 15px;"> <p style="line-height: 20px; color: #999; padding: 0 15px 0 15px">
We encourage authors to upload a Cover Letter file and make sure the Highlights part in the main We encourage authors to upload a Cover Letter file and make sure the Highlights part in the main manuscript is after
manuscript is the abstract and keywords. That will help authors let editors quickly obtain information and evaluate the scientific
after the abstract and keywords. That will help authors let editors quickly obtain information value of their research correctly.
and evaluate the <br />Please remind our editor in the cover letter if you want your manuscript processed quickly. <br />Please note
scientific value of their research correctly. that manuscripts with at least one of the following characteristics will be included in the journal's manuscript
<br>Please remind our editor in the cover letter if you want your manuscript processed quickly. fast track:
<br>Please note that manuscripts with at least one of the following characteristics will be <br />
included in the <font style="color: #006699">1.Interest:</font> This manuscript has a novel perspective.
journal's manuscript fast track: <br />
<br> <font style="color: #006699">2.Importance:</font> This manuscript belongs to the focus area.
<font style="color: #006699;">1.Interest:</font> This manuscript has a novel perspective. <br />
<br> <font style="color: #006699">3.Value:</font> This manuscript belongs to the advanced topic and can attract wide
<font style="color: #006699;">2.Importance:</font> This manuscript belongs to the focus area.
<br>
<font style="color: #006699;">3.Value:</font> This manuscript belongs to the advanced topic and
can attract wide
attention. attention.
</p> </p>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
<el-dialog title="Message" :visible.sync="editVisible" width="40%"> <el-dialog title="Message" :visible.sync="editVisible" width="40%">
<el-form ref="msgform" :model="msgform" label-width="80px"> <el-form ref="msgform" :model="msgform" label-width="80px">
<el-form-item label="Message"> <el-form-item label="Message">
<el-input type="textarea" rows="5" v-model="msgform.content" placeholder="Author messages"> <el-input type="textarea" rows="5" v-model="msgform.content" placeholder="Author messages"> </el-input>
</el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
@@ -194,7 +200,7 @@
</template> </template>
<script> <script>
export default { export default {
data() { data() {
return { return {
baseUrl: this.Common.baseUrl, baseUrl: this.Common.baseUrl,
@@ -224,12 +230,10 @@
saveloading: false saveloading: false
}; };
}, },
created: function() { created: function () {
this.initarticle(); this.initarticle();
}, },
computed: { computed: {},
},
methods: { methods: {
//初始化文章信息 //初始化文章信息
initarticle() { initarticle() {
@@ -239,45 +243,45 @@
human: 'author' human: 'author'
}) })
.then((res) => { .then((res) => {
let back_num = 0 let back_num = 0;
// 添加投递稿件条目 // 添加投递稿件条目
res.msg.unshift({ res.msg.unshift({
state_to: -1, state_to: -1,
ctime: res.article.ctime, ctime: res.article.ctime,
color: '#B5C334', color: '#B5C334',
icon: 'el-icon-collection-tag', icon: 'el-icon-collection-tag',
ftype: 0, ftype: 0
}); });
for (let i = res.msg.length - 1; i >= 0; i--) { for (let i = res.msg.length - 1; i >= 0; i--) {
if (res.msg[i].state_to == 4 && res.msg[i + 1] == undefined && back_num == 0) { if (res.msg[i].state_to == 4 && res.msg[i + 1] == undefined && back_num == 0) {
res.msg[i].back = 1; res.msg[i].back = 1;
back_num = 1 back_num = 1;
} else { } else {
res.msg[i].back = 0; res.msg[i].back = 0;
} }
if (res.msg[i].state_to == 1) { if (res.msg[i].state_to == 1) {
res.msg[i].color = '#f75822' res.msg[i].color = '#f75822';
res.msg[i].icon = 'el-icon-document-checked' res.msg[i].icon = 'el-icon-document-checked';
} }
if (res.msg[i].state_to == 2) { if (res.msg[i].state_to == 2) {
res.msg[i].color = '#0ebee1' res.msg[i].color = '#0ebee1';
res.msg[i].icon = 'el-icon-document' res.msg[i].icon = 'el-icon-document';
} }
if (res.msg[i].state_to == 3) { if (res.msg[i].state_to == 3) {
res.msg[i].color = '#888' res.msg[i].color = '#888';
res.msg[i].icon = 'el-icon-close' res.msg[i].icon = 'el-icon-close';
} }
if (res.msg[i].state_to == 4) { if (res.msg[i].state_to == 4) {
res.msg[i].color = '#5a90e1' res.msg[i].color = '#5a90e1';
res.msg[i].icon = 'el-icon-edit-outline' res.msg[i].icon = 'el-icon-edit-outline';
} }
if (res.msg[i].state_to == 5) { if (res.msg[i].state_to == 5) {
res.msg[i].color = '#91cc75' res.msg[i].color = '#91cc75';
res.msg[i].icon = 'el-icon-check' res.msg[i].icon = 'el-icon-check';
} }
if (res.msg[i].state_to == 6) { if (res.msg[i].state_to == 6) {
res.msg[i].color = '#27727B' res.msg[i].color = '#27727B';
res.msg[i].icon = 'el-icon-star-off' res.msg[i].icon = 'el-icon-star-off';
} }
} }
this.artMes = res.article; this.artMes = res.article;
@@ -335,11 +339,10 @@
return false; return false;
} }
this.loading = true; this.loading = true;
this.$api.post('api/Article/pushArticleDialog', this.msgform) this.$api.post('api/Article/pushArticleDialog', this.msgform).then((res) => {
.then((res) => {
this.loading = false; this.loading = false;
this.$message.success('Sent successfully'); this.$message.success('Sent successfully');
this.initarticle() this.initarticle();
}); });
}, },
@@ -379,7 +382,7 @@
ellType(e) { ellType(e) {
let frag = ''; let frag = '';
switch (e) { switch (e) {
case "A": case 'A':
frag = 'Article'; frag = 'Article';
break; break;
case 'B': case 'B':
@@ -446,121 +449,117 @@
frag = 'Others'; frag = 'Others';
} }
return frag; return frag;
},
},
filters: {
} }
}; },
filters: {}
};
</script> </script>
<style> <style>
.top_dao:hover { .top_dao:hover {
text-decoration: underline; text-decoration: underline;
cursor: pointer; cursor: pointer;
} }
.process_new { .process_new {
border: 1px solid #dcdfe6; border: 1px solid #dcdfe6;
padding: 20px; padding: 20px;
background-color: #fff; background-color: #fff;
border-radius: 5px; border-radius: 5px;
} }
.art_type { .art_type {
/* background-color: #ddeef7; */ /* background-color: #ddeef7; */
color: #006699; color: #006699;
padding: 2px 5px; padding: 2px 5px;
border-radius: 5px; border-radius: 5px;
font-size: 12px; font-size: 12px;
margin: 0 10px 0 0; margin: 0 10px 0 0;
} }
.tit_head { .tit_head {
border-radius: 5px; border-radius: 5px;
border: 1px solid #EBEEF5; border: 1px solid #ebeef5;
padding: 20px; padding: 20px;
font-size: 15px; font-size: 15px;
margin: 20px 0 30px 0; margin: 20px 0 30px 0;
background-color: #fff; background-color: #fff;
/* background-color: #fcfcfc; */ /* background-color: #fcfcfc; */
} }
.tit_head b { .tit_head b {
color: #006699; color: #006699;
/* text-decoration: underline; */ /* text-decoration: underline; */
} }
.el-radio-button__orig-radio:checked+.el-radio-button__inner { .el-radio-button__orig-radio:checked + .el-radio-button__inner {
background-color: #006699; background-color: #006699;
border-color: #006699; border-color: #006699;
} }
.author_tree { .author_tree {
margin: 40px 0 0 10px; margin: 40px 0 0 10px;
} }
.author_tree .el-timeline-item { .author_tree .el-timeline-item {
padding-bottom: 1px; padding-bottom: 1px;
} }
.author_tree .el-timeline-item__node--large { .author_tree .el-timeline-item__node--large {
left: 155px; left: 155px;
width: 30px; width: 30px;
height: 30px; height: 30px;
} }
.author_tree .el-timeline-item__wrapper { .author_tree .el-timeline-item__wrapper {
padding-left: 0; padding-left: 0;
margin: 0 0 50px 0; margin: 0 0 50px 0;
} }
.author_tree .el-timeline-item__timestamp.is-top { .author_tree .el-timeline-item__timestamp.is-top {
padding-top: 10px; padding-top: 10px;
margin-bottom: 13px; margin-bottom: 13px;
font-size: 14px; font-size: 14px;
} }
.author_tree .el-timeline-item__content { .author_tree .el-timeline-item__content {
margin: -50px 0 0 210px; margin: -50px 0 0 210px;
} }
.author_tree .el-timeline-item__tail { .author_tree .el-timeline-item__tail {
height: auto; height: auto;
bottom: 15px; bottom: 15px;
top: 45px; top: 45px;
border-left: 3px solid #E4E7ED; border-left: 3px solid #e4e7ed;
/* border-left: 2px solid #66a3c2; */ /* border-left: 2px solid #66a3c2; */
left: 168px; left: 168px;
} }
.art_process_ { .art_process_ {
margin-bottom: 30px; margin-bottom: 30px;
border: 1px solid #dcdfe6; border: 1px solid #dcdfe6;
padding: 20px; padding: 20px;
background-color: #fff; background-color: #fff;
border-radius: 5px; border-radius: 5px;
} }
.art_process_>h2 { .art_process_ > h2 {
font-size: 18px; font-size: 18px;
margin: 0 0 2px 0; margin: 0 0 2px 0;
letter-spacing: -0.8px; letter-spacing: -0.8px;
} }
.art_process_list { .art_process_list {
border-bottom: 1px solid #dcdfe6; border-bottom: 1px solid #dcdfe6;
padding: 15px 0 25px 10px; padding: 15px 0 25px 10px;
} }
.art_process_ .art_process_list:last-child { .art_process_ .art_process_list:last-child {
border-bottom: 0; border-bottom: 0;
padding-bottom: 5px; padding-bottom: 5px;
} }
.art_process_list b { .art_process_list b {
background-color: #006699; background-color: #006699;
color: #fff; color: #fff;
display: inline-block; display: inline-block;
@@ -569,15 +568,14 @@
line-height: 18px; line-height: 18px;
text-align: center; text-align: center;
margin: 0 10px 0 0; margin: 0 10px 0 0;
}
} .art_process_list span {
.art_process_list span {
color: #888; color: #888;
margin: 0 0 0 15px; margin: 0 0 0 15px;
} }
.art_process_list p { .art_process_list p {
margin: 10px 0 0 28px; margin: 10px 0 0 28px;
} }
</style> </style>

View File

@@ -49,6 +49,10 @@ export default {
userId: { userId: {
type: String, type: String,
default: '' default: ''
},
articleId: {
type: String,
default: ''
} }
}, },
data() { data() {
@@ -87,10 +91,17 @@ this.coreForm1.majorList = this.fields[i].selectedValue;
} }
this.$refs.core_Form1.validate((valid) => { this.$refs.core_Form1.validate((valid) => {
if (valid) { if (valid) {
this.$api var data={
.post('api/User/addUserMajor', {
user_id: this.userId,
major_id: this.coreForm1.majorList[this.coreForm1.majorList.length - 1] major_id: this.coreForm1.majorList[this.coreForm1.majorList.length - 1]
}
if(this.userId){
data.user_id = this.userId;
}else{
data.article_id = this.articleId;
}
this.$api
.post(this.userId?'api/User/addUserMajor':'api/Major/addMajorByArticleIdForEditor', {
...data
}) })
.then((res) => { .then((res) => {

View File

@@ -49,8 +49,21 @@ export default {
userId: { userId: {
type: String, type: String,
default: '' default: ''
},
list: {
type: Array,
default: []
} }
}, },
watch: {
list: {
handler(e) {
this.fields=[...this.list]
},
immediate: true
},
},
data() { data() {
return { return {
rules1:{}, rules1:{},
@@ -58,7 +71,7 @@ export default {
coreForm1: { coreForm1: {
majorList: [] majorList: []
}, },
fields: [{}], // 用于存储多个领域的选项数据 fields: [], // 用于存储多个领域的选项数据
options: [] // 用于存储级联选择的选项数据 options: [] // 用于存储级联选择的选项数据
}; };
}, },
@@ -74,7 +87,7 @@ export default {
this.$refs[`cascader${i}`][0].dropDownVisible = false; this.$refs[`cascader${i}`][0].dropDownVisible = false;
this.coreForm1.majorList = this.fields[i].selectedValue; this.coreForm1.majorList = this.fields[i].selectedValue;
this.$emit('load',this.fields.map(item => item.selectedValue[item.selectedValue.length - 1])) this.$emit('load',this.fields)
this.$forceUpdate(); this.$forceUpdate();
}); });
@@ -117,6 +130,7 @@ this.coreForm1.majorList = this.fields[i].selectedValue;
this.$nextTick(() => { this.$nextTick(() => {
// this.fields=[] // this.fields=[]
this.fields.push({ selectedValue: [] }); // 添加一个新的字段 this.fields.push({ selectedValue: [] }); // 添加一个新的字段
this.$emit('load',this.fields)
// this.coreVisible1 = true; // this.coreVisible1 = true;
}); });
}, },
@@ -124,6 +138,7 @@ this.coreForm1.majorList = this.fields[i].selectedValue;
// 删除指定的 Cascader // 删除指定的 Cascader
handleDelete(index) { handleDelete(index) {
this.fields.splice(index, 1); // 删除指定索引的字段 this.fields.splice(index, 1); // 删除指定索引的字段
this.$emit('load',this.fields)
}, },
// 获取 Cascader 配置 // 获取 Cascader 配置