From 0c9ff0fe68f25dd8bf31baf3c325ffc493be5edb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=8B=E4=BA=8E=E5=88=9D=E8=A7=81?= <752204717@qq.com> Date: Tue, 28 Apr 2026 11:12:15 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E4=B8=93=E5=AE=B6=E5=BA=93=E9=80=80?= =?UTF-8?q?=E8=AE=A2=E7=8A=B6=E6=80=81+=E4=BF=AE=E6=94=B9=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E9=A1=B5=E6=95=B0=E6=8D=AE=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/index.js | 4 +- src/components/common/langs/en.js | 12 ++- src/components/common/langs/zh.js | 12 ++- src/components/page/autoPromotionLogs.vue | 4 +- src/components/page/expertDatabase.vue | 101 ++++++++++++++++++++++ 5 files changed, 125 insertions(+), 8 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index 487fb66..525753d 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -19,8 +19,8 @@ const service = axios.create({ // baseURL: 'https://submission.tmrjournals.com/', //正式 记得切换 // baseURL: 'http://www.tougao.com/', //测试本地 记得切换 // baseURL: 'http://192.168.110.110/tougao/public/index.php/', - baseURL: '/api', //本地 - // baseURL: '/', //正式 + // baseURL: '/api', //本地 + baseURL: '/', //正式 }); diff --git a/src/components/common/langs/en.js b/src/components/common/langs/en.js index adbad11..1496380 100644 --- a/src/components/common/langs/en.js +++ b/src/components/common/langs/en.js @@ -310,7 +310,8 @@ const en = { baseInfo: 'Base Information', country: 'Country', affiliation: 'Affiliation', - researchAreas: 'Research areas' + researchAreas: 'Research areas', + unsubscribeStatus: 'Subscription status' }, emptyMark: '-', fields: { @@ -327,7 +328,14 @@ const en = { detailCellEmpty: 'N/A', noFieldDetail: 'No publication details for these fields', exportWarn: 'Please select a research area, enter a keyword, or enter a field before exporting.', - exportFailed: 'Export failed' + exportFailed: 'Export failed', + unsubscribeNormal: 'Subscribed', + unsubscribeUnsubscribed: 'Unsubscribed', + unsubscribeSwitchOn: 'Unsub', + unsubscribeSwitchOff: 'Subscribed', + unsubscribeMissingId: 'Missing expert ID, unable to switch unsubscribe status', + unsubscribeUpdateSuccess: 'Unsubscribe status updated', + unsubscribeUpdateFailed: 'Failed to update unsubscribe status' }, countryManagement: { title: 'Country Management', diff --git a/src/components/common/langs/zh.js b/src/components/common/langs/zh.js index 3358a51..08dc441 100644 --- a/src/components/common/langs/zh.js +++ b/src/components/common/langs/zh.js @@ -299,7 +299,8 @@ const zh = { baseInfo: '基础信息', country: '国家', affiliation: '单位', - researchAreas: '研究领域' + researchAreas: '研究领域', + unsubscribeStatus: '订阅状态' }, emptyMark: '-', fields: { @@ -316,7 +317,14 @@ const zh = { detailCellEmpty: '暂无', noFieldDetail: '暂无领域对应的文献信息', exportWarn: '请选择研究领域或输入关键词或领域 field 后再导出。', - exportFailed: '导出失败' + exportFailed: '导出失败', + unsubscribeNormal: '已订阅', + unsubscribeUnsubscribed: '已退订', + unsubscribeSwitchOn: '退订', + unsubscribeSwitchOff: '已订阅', + unsubscribeMissingId: '缺少专家 ID,无法切换退订状态', + unsubscribeUpdateSuccess: '退订状态更新成功', + unsubscribeUpdateFailed: '退订状态更新失败' }, countryManagement: { title: '国家信息维护', diff --git a/src/components/page/autoPromotionLogs.vue b/src/components/page/autoPromotionLogs.vue index 0635b9a..c5cf550 100644 --- a/src/components/page/autoPromotionLogs.vue +++ b/src/components/page/autoPromotionLogs.vue @@ -381,7 +381,7 @@ export default { selectedStyleName: '', // 列表数据 - query: { keyword: '', state: 'all', pageIndex: 1, pageSize: 15 }, + query: { keyword: '', state: 'all', pageIndex: 1, pageSize: 10 }, list: [], total: 0, @@ -1035,7 +1035,7 @@ export default { journal_id: String(this.selectedJournalId || ''), factory_id: String(this.routePromotionFactoryId || ''), page: Number(this.query.pageIndex || 1), - per_page: Number(this.query.pageSize || 15) + per_page: Number(this.query.pageSize || 10) }; if (this.query.state !== 'all' && this.query.state !== '' && this.query.state != null) { params.state = String(this.query.state); diff --git a/src/components/page/expertDatabase.vue b/src/components/page/expertDatabase.vue index 8ed496a..71e6b4f 100644 --- a/src/components/page/expertDatabase.vue +++ b/src/components/page/expertDatabase.vue @@ -77,6 +77,32 @@ + + + diff --git a/src/components/common/common.vue b/src/components/common/common.vue index a1781ec..9bac70a 100644 --- a/src/components/common/common.vue +++ b/src/components/common/common.vue @@ -2,14 +2,14 @@ //记得切换 //正式 -// const mediaUrl = '/public/'; -// const baseUrl = '/'; +const mediaUrl = '/public/'; +const baseUrl = '/'; //正式环境 -const mediaUrl = 'https://submission.tmrjournals.com/public/'; -// const mediaUrl = 'http://zmzm.tougao.dev.com/public/'; -const baseUrl = '/api' +// const mediaUrl = 'https://submission.tmrjournals.com/public/'; +// // const mediaUrl = 'http://zmzm.tougao.dev.com/public/'; +// const baseUrl = '/api' //测试环境 diff --git a/src/components/page/JournalManagement/JournalManagement/common.vue b/src/components/page/JournalManagement/JournalManagement/common.vue index 0ae93f0..9ff0bfb 100644 --- a/src/components/page/JournalManagement/JournalManagement/common.vue +++ b/src/components/page/JournalManagement/JournalManagement/common.vue @@ -263,7 +263,39 @@ + + +
+
+
+ + + + +
+
+ +
+ + Add - - + +
+
+ +
+ +
@@ -657,6 +694,17 @@ export default { this.$message.error(res.msg); } }, + async handleAvatarSuccessYboard(res, file) { + if (res.code == 0) { + this.detailForm.wechat_yboard_qrcode = res.upurl; + this.$forceUpdate(); + } else { + this.$message.error(res.msg); + } + }, + handleAvatarErrorYboard(res, file) { + // no-op + }, handleAvatarError2(res, file) { // this.$message.error(res); }, @@ -883,7 +931,9 @@ export default { epassword: data.epassword, kfen: data.kfen, fee: data.fee, + databases: data.databases || data.database_inclusion || '', editor_qrcode: data.editor_qrcode, + wechat_yboard_qrcode: data.wechat_yboard_qrcode || data.yboard_qrcode, scope: data.scope, abstract_chinese: data.abstract_chinese, publish_author: data.publish_author, @@ -1369,6 +1419,29 @@ export default { border-radius: 110px; } +/* Wechat Name + Apply Youth Board QR:两列对齐到右侧 */ +.wechat-name-split__inner { + display: flex; + align-items: flex-start; + gap: 16px; +} + +.wechat-name-split__left { + flex: 1; + min-width: 200px; +} + +.wechat-name-split__right { + width: 160px; +} + +.yboard-qrcode-side__label { + font-size: 12px; + color: #666; + text-align: center; + margin-bottom: 8px; +} + .portrait .ptmark { position: absolute; top: 0; diff --git a/src/components/page/YouthBoardSubmitSuccess.vue b/src/components/page/YouthBoardSubmitSuccess.vue new file mode 100644 index 0000000..928d110 --- /dev/null +++ b/src/components/page/YouthBoardSubmitSuccess.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/components/page/YouthEditorialBoardRegistration.vue b/src/components/page/YouthEditorialBoardRegistration.vue new file mode 100644 index 0000000..73b02bd --- /dev/null +++ b/src/components/page/YouthEditorialBoardRegistration.vue @@ -0,0 +1,598 @@ + + + + + diff --git a/src/components/page/youthApplyList.vue b/src/components/page/youthApplyList.vue index 9b84261..390ac1c 100644 --- a/src/components/page/youthApplyList.vue +++ b/src/components/page/youthApplyList.vue @@ -187,6 +187,7 @@