From 7958e4851228848bda134c4df58c4234eb45ca55 Mon Sep 17 00:00:00 2001
From: quantulr <35954003+quantulr@users.noreply.github.com>
Date: Fri, 4 Aug 2023 17:26:52 +0800
Subject: [PATCH] bugfix and performance improvements
---
Caddyfile | 6 +-
index.html | 2 +-
src/api/admin/laboratory/achievement.js | 27 ++
src/api/website/home/index.js | 28 ++
src/components/Breadcrumb/index.vue | 2 +-
src/components/ImageUpload/index.vue | 10 +-
src/components/WebsiteHeader/index.vue | 13 +-
src/constant/dict.js | 46 +--
src/i18n/message.js | 5 +-
src/i18n/message/admin/table/ru.js | 2 +-
src/i18n/message/admin/table/zh.js | 2 +-
src/i18n/message/webSearch/ru.js | 9 +
src/i18n/message/webSearch/zh.js | 9 +
src/layout/components/Navbar.vue | 2 +-
src/router/index.js | 11 +
src/store/modules/settings.js | 1 +
src/utils/parameter.js | 285 ++++++++++++++----
.../admin/agent/bill/bill-list/index.vue | 7 +-
.../enterprise/account/joinMembership.vue | 2 +-
.../enterprise/demand/releaseService.vue | 24 +-
.../admin/enterprise/extension/product.vue | 47 ++-
src/views/admin/enterprise/index.vue | 4 +-
.../expert/components/ReleaseForm/index.vue | 8 +-
src/views/admin/expert/demand/release.vue | 23 +-
.../admin/expert/technology/achievement.vue | 1 +
src/views/admin/expert/technology/patent.vue | 4 +-
src/views/admin/expert/technology/release.vue | 3 +-
.../admin/laboratory/account/basic-info.vue | 118 ++++----
.../laboratory/research/achievement/index.vue | 48 ++-
.../research/achievement/release.vue | 81 +++++
.../laboratory/research/expert/index.vue | 41 +--
.../research/research-project/index.vue | 9 +-
.../research/service-demand/detail.vue | 2 +-
.../research/service-demand/index.vue | 11 +-
.../research/research-project/index.vue | 4 +-
src/views/components/EnterpriseForm/index.vue | 4 +-
src/views/components/ExpertForm/index.vue | 8 +-
src/views/components/FieldSingle/index.vue | 11 +-
src/views/components/LaboratoryForm/index.vue | 3 +-
src/views/components/ReleaseForm/index.vue | 8 +-
src/views/website/home/comp/index0.vue | 39 ++-
src/views/website/home/comp/index1.vue | 2 +-
src/views/website/login/index.vue | 2 +-
.../website/searchList/achievementDetail.vue | 169 ++++++-----
.../searchList/components/achievementItem.vue | 2 +-
.../components/technologyDemandItem.vue | 6 +-
src/views/website/searchList/enterprise.vue | 7 +-
.../website/searchList/enterpriseDetail.vue | 9 +-
src/views/website/searchList/expert.vue | 10 +-
src/views/website/searchList/expertDetail.vue | 9 +-
src/views/website/searchList/index2.vue | 4 +-
src/views/website/searchList/lab.vue | 4 +-
src/views/website/searchList/patent.vue | 74 +++--
src/views/website/searchList/patentDetail.vue | 4 +-
.../website/searchList/productDetail.vue | 190 ++++++------
.../searchList/serviceDemandDetail.vue | 282 ++++++++---------
.../website/searchList/technologyDemand.vue | 58 ++--
.../searchList/technologyDemandDetail.vue | 168 ++++++-----
58 files changed, 1200 insertions(+), 770 deletions(-)
create mode 100644 src/views/admin/laboratory/research/achievement/release.vue
diff --git a/Caddyfile b/Caddyfile
index ba12f28..b7427b6 100644
--- a/Caddyfile
+++ b/Caddyfile
@@ -1,6 +1,6 @@
-:8007 {
- handle_path /api/* {
- reverse_proxy http://192.168.0.201:1618
+:8006 {
+ handle /api/* {
+ reverse_proxy http://101.34.251.155
}
handle {
root * "/Volumes/iMac Doc/WebstormProjects/cas_cloud_web_i18n/dist"
diff --git a/index.html b/index.html
index 49cc848..4113191 100644
--- a/index.html
+++ b/index.html
@@ -222,7 +222,7 @@
- 正在加载系统资源,请耐心等待
+
diff --git a/src/api/admin/laboratory/achievement.js b/src/api/admin/laboratory/achievement.js
index f24b27c..ff739d3 100644
--- a/src/api/admin/laboratory/achievement.js
+++ b/src/api/admin/laboratory/achievement.js
@@ -24,3 +24,30 @@ export const deleteAchievements = (ids) => {
method: "DELETE",
});
};
+
+// 实验室成果详情
+export const achievementInfo = (params) => {
+ return request({
+ url: `/app/laboratory/achievementInfo`,
+ method: "GET",
+ params,
+ });
+};
+
+// 实验室成果新增
+export const insertAchievement = (data) => {
+ return request({
+ url: `/app/laboratory/insertAchievement`,
+ method: "POST",
+ data,
+ });
+};
+
+// 实验室成果修改
+export const updateAchievement = (data) => {
+ return request({
+ url: `/app/laboratory/updateAchievement`,
+ method: "PUT",
+ data,
+ });
+};
diff --git a/src/api/website/home/index.js b/src/api/website/home/index.js
index 2921351..320e538 100644
--- a/src/api/website/home/index.js
+++ b/src/api/website/home/index.js
@@ -7,6 +7,7 @@ export function getAllCount() {
method: "get",
});
}
+
// 分布专家信息
export function getExpert() {
return request({
@@ -14,6 +15,7 @@ export function getExpert() {
method: "get",
});
}
+
// 分布实验室信息
export function laboratory() {
return request({
@@ -62,6 +64,7 @@ export function industry() {
method: "get",
});
}
+
// 客户端搜索
export function search(params) {
return request({
@@ -70,6 +73,7 @@ export function search(params) {
params,
});
}
+
// 客户端专利搜索结果详情
export function searchPatentDetail(id) {
return request({
@@ -77,6 +81,7 @@ export function searchPatentDetail(id) {
method: "get",
});
}
+
// 客户端企业搜索结果详情
export function searchEnterpriseDetail(id) {
return request({
@@ -84,6 +89,7 @@ export function searchEnterpriseDetail(id) {
method: "get",
});
}
+
// 客户端成果搜索结果详情
export function searchAchievementDetail(id) {
return request({
@@ -91,6 +97,14 @@ export function searchAchievementDetail(id) {
method: "get",
});
}
+
+export function searchProductDetail(id) {
+ return request({
+ url: `/search/enterpriseProduct/${id}`,
+ method: "get",
+ });
+}
+
// 客户端实验室搜索结果详情
export function searchLaboratoryDetail(id) {
return request({
@@ -98,6 +112,7 @@ export function searchLaboratoryDetail(id) {
method: "get",
});
}
+
// 客户端专家搜索结果详情
export function searchExpertDetail(id) {
return request({
@@ -105,6 +120,7 @@ export function searchExpertDetail(id) {
method: "get",
});
}
+
// 客户端服务需求搜索结果详情
export function searchServiceDemandDetail(id) {
return request({
@@ -128,6 +144,7 @@ export function countExpertByProvince() {
method: "get",
});
}
+
// 获取[市]专家分布
export function countExpertByCity(provinceCode) {
return request({
@@ -138,6 +155,7 @@ export function countExpertByCity(provinceCode) {
},
});
}
+
// 获取[县]专家分布
export function countExpertByArea(cityCode) {
return request({
@@ -148,6 +166,7 @@ export function countExpertByArea(cityCode) {
},
});
}
+
// 获取[省]企业分布
export function countEnterpriseByProvince() {
return request({
@@ -155,6 +174,7 @@ export function countEnterpriseByProvince() {
method: "get",
});
}
+
// 获取[市]企业分布
export function countEnterpriseByCity(provinceCode) {
return request({
@@ -165,6 +185,7 @@ export function countEnterpriseByCity(provinceCode) {
},
});
}
+
// 获取[县]企业分布
export function countEnterpriseByArea(cityCode) {
return request({
@@ -175,6 +196,7 @@ export function countEnterpriseByArea(cityCode) {
},
});
}
+
// 获取[省]需求分布
export function countDemandByProvince() {
return request({
@@ -182,6 +204,7 @@ export function countDemandByProvince() {
method: "get",
});
}
+
// 获取[市]需求分布
export function countDemandByCity(provinceCode) {
return request({
@@ -192,6 +215,7 @@ export function countDemandByCity(provinceCode) {
},
});
}
+
// 获取[县]需求分布
export function countDemandByArea(cityCode) {
return request({
@@ -202,6 +226,7 @@ export function countDemandByArea(cityCode) {
},
});
}
+
// 获取[省]成果分布
export function countAchievementByProvince() {
return request({
@@ -209,6 +234,7 @@ export function countAchievementByProvince() {
method: "get",
});
}
+
// 获取[市]成果分布
export function countAchievementByCity(provinceCode) {
return request({
@@ -219,6 +245,7 @@ export function countAchievementByCity(provinceCode) {
},
});
}
+
// 获取[县]成果分布
export function countAchievementByArea(cityCode) {
return request({
@@ -229,6 +256,7 @@ export function countAchievementByArea(cityCode) {
},
});
}
+
// 获取尾部导航
export function getCasNavigation() {
return request({
diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue
index 2b9faad..0dbb971 100644
--- a/src/components/Breadcrumb/index.vue
+++ b/src/components/Breadcrumb/index.vue
@@ -84,4 +84,4 @@ getBreadcrumb();
cursor: text;
}
}
-
\ No newline at end of file
+
diff --git a/src/components/ImageUpload/index.vue b/src/components/ImageUpload/index.vue
index 50f0623..4ca1156 100644
--- a/src/components/ImageUpload/index.vue
+++ b/src/components/ImageUpload/index.vue
@@ -98,7 +98,10 @@ watch(
fileList.value = list.map((item) => {
if (typeof item === "string") {
if (item.indexOf(baseUrl) === -1) {
- item = { name: baseUrl + item, url: baseUrl + item };
+ item = {
+ name: baseUrl + "/file" + item,
+ url: baseUrl + "/file" + item,
+ };
} else {
item = { name: item, url: item };
}
@@ -120,7 +123,10 @@ function handleRemove(file, files) {
// 上传成功回调
function handleUploadSuccess(res) {
- uploadList.value.push({ name: res.fileName, url: res.url });
+ uploadList.value.push({
+ name: res.fileName,
+ url: res.fileName,
+ });
if (uploadList.value.length === number.value) {
fileList.value = fileList.value
.filter((f) => f.url !== undefined)
diff --git a/src/components/WebsiteHeader/index.vue b/src/components/WebsiteHeader/index.vue
index ad3fb19..6b99695 100644
--- a/src/components/WebsiteHeader/index.vue
+++ b/src/components/WebsiteHeader/index.vue
@@ -174,7 +174,7 @@
- {{ locale === "zh" ? "Русский" : "简体中文" }}
+ {{ locale === "zh" ? "ru" : "zh" }}
@@ -216,11 +216,12 @@ watch(
pagePath.value = route.path;
const switchLocale = () => {
- if (settingsStore.locale === "zh") {
- settingsStore.setLocale("ru");
- } else if (settingsStore.locale === "ru") {
- settingsStore.setLocale("zh");
- }
+ settingsStore.toggleLocale()
+ // if (settingsStore.locale === "zh") {
+ // settingsStore.setLocale("ru");
+ // } else if (settingsStore.locale === "ru") {
+ // settingsStore.setLocale("zh");
+ // }
};
function handlePage() {
diff --git a/src/constant/dict.js b/src/constant/dict.js
index de1654c..e4c0705 100644
--- a/src/constant/dict.js
+++ b/src/constant/dict.js
@@ -33,7 +33,7 @@ export const serviceDemandStatusDict = [
* 技术需求dict
* @type {[{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string},{label: string, value: string, elTagType: string}]}
*/
-export const technologyDemandStatusDict = [
+/*export const technologyDemandStatusDict = [
{
value: "0",
label: "待受理",
@@ -59,7 +59,7 @@ export const technologyDemandStatusDict = [
label: "已结束",
elTagType: "warning",
},
-];
+];*/
// 1->专利|2->成果|3->服务需求|4->专家|5->科研项目|6->论文
export const seeLogTypeDict = [
@@ -109,12 +109,16 @@ export const orderTypeDict = [
label: "创新币充值",
i18n: "coinRecharge",
elTagType: "primary",
+ zh: "创新币充值",
+ ru: "Пополнение монеты инноваций",
},
{
value: "2",
label: "活动报名",
i18n: "activityRegistration",
elTagType: "success",
+ zh: "活动报名",
+ ru: "Регистрация на мероприятие",
},
];
@@ -147,46 +151,20 @@ export const subjectRoleDict = [
label: "承担单位",
i18n: "undertakingUnit",
elTagType: "primary",
+ zh: "承担单位",
+ ru: "Исполнительная единица",
},
{
value: "2",
label: "参与单位",
i18n: "participatingUnit",
elTagType: "success",
+ zh: "参与单位",
+ ru: "Участвующая единица",
},
];
-export const localeDict = [
- {
- value: "zh",
- label: "简体中文",
- },
- {
- value: "en",
- label: "English",
- },
- {
- value: "ru",
- label: "русский",
- },
- {
- value: "fr",
- label: "français",
- },
- {
- value: "ja",
- label: "日本語",
- },
-];
-
-const countryDict = [
- {
- zh: "中国",
- ru: "Китай",
- },
-];
-
-// 成果推广 关键成果解决 对接专家院士 上市辅导
+/*// 成果推广 关键成果解决 对接专家院士 上市辅导
export const achievementPromotionDict = [
{
value: 1,
@@ -208,7 +186,7 @@ export const achievementPromotionDict = [
label: "上市辅导",
i18n: "listingGuidance",
},
-];
+];*/
// 成果难题解决 成果储备/项目投资 新成果开发 检验检测
export const techinicalDemandTypeDict = [
diff --git a/src/i18n/message.js b/src/i18n/message.js
index 1c39efe..4298d8f 100644
--- a/src/i18n/message.js
+++ b/src/i18n/message.js
@@ -92,6 +92,7 @@ const messages = {
noData: "暂无",
serviceSite: "全国服务站点",
more: "查看更多",
+ people: "人数",
},
activity: activity_zh,
innovation: {
@@ -162,7 +163,7 @@ const messages = {
changeAvatar: "Сменить аватар",
},
footer: {
- copyRight: "Все права защищены",
+ copyRight: "Чжункейун Авторское право",
},
webSearch: webSearch_ru,
webContact: webContact_ru,
@@ -213,6 +214,8 @@ const messages = {
noData: "Нет данных",
serviceSite: "Сервисный сайт по всей стране",
more: "Подробнее",
+ // 人数
+ people: "человек",
},
activity: activity_ru,
innovation: {
diff --git a/src/i18n/message/admin/table/ru.js b/src/i18n/message/admin/table/ru.js
index f557eac..3f70505 100644
--- a/src/i18n/message/admin/table/ru.js
+++ b/src/i18n/message/admin/table/ru.js
@@ -38,7 +38,7 @@ const table = {
draftBox: "Черновик",
quickFunction: "Быстрые функции",
putOn: "В продаже",
- pullOff: "Снять с продажи",
+ putOff: "Снять с продажи",
claim: "Претензия",
startDate: "Дата начала",
endDate: "Дата окончания",
diff --git a/src/i18n/message/admin/table/zh.js b/src/i18n/message/admin/table/zh.js
index 0983605..ab9b176 100644
--- a/src/i18n/message/admin/table/zh.js
+++ b/src/i18n/message/admin/table/zh.js
@@ -38,7 +38,7 @@ const table = {
draftBox: "草稿箱",
quickFunction: "快捷功能",
putOn: "上架",
- pullOff: "下架",
+ putOff: "下架",
claim: "认领",
startDate: "开始日期",
endDate: "结束日期",
diff --git a/src/i18n/message/webSearch/ru.js b/src/i18n/message/webSearch/ru.js
index 1a68e73..f803951 100644
--- a/src/i18n/message/webSearch/ru.js
+++ b/src/i18n/message/webSearch/ru.js
@@ -37,6 +37,7 @@ const webSearch = {
expertIntroduction: "Описание экспертов",
expertLeadership: "Ведущие эксперты",
expertLibrary: "Библиотека экспертов",
+ productLibrary: "Библиотека продуктов",
findAchievement: "Найти достижение",
findAchievementNum: "достижений",
findCompany: "Найти компанию",
@@ -51,7 +52,11 @@ const webSearch = {
findPatent: "Найти патент",
findPatentNum: "патентов",
findServiceDemand: "Найти потребность в услугах",
+ findServiceDemandNum: "потребностей в услугах",
findTechnologyDemand: "Найти потребность в технологиях",
+ findTechnologyDemandNum: "потребностей в технологиях",
+ findProduct: "Найти продукт",
+ findProductNum: "продуктов",
findTechnologyNum: "технологий",
industry: "Отрасль",
industryField: "Отраслевая область",
@@ -60,6 +65,8 @@ const webSearch = {
ipc: "Классификационный номер IPC",
lab: "Лаборатория",
labDetails: "Детали лабораторий",
+ productDetails: "Детали продуктов",
+ productIntroduction: "Описание продуктов",
labIntroduction: "Описание лабораторий",
labLeadership: "Ведущие лаборатории",
labLibrary: "Библиотека лабораторий",
@@ -112,6 +119,8 @@ const webSearch = {
patentStatus: "Статус патента",
// 后台暂未提供
noDataFromBackground: "Нет данных из фона",
+ // 中科云平台
+ zhongkeyunPlatform: "Платформа Чжункейюнь",
};
export default webSearch;
diff --git a/src/i18n/message/webSearch/zh.js b/src/i18n/message/webSearch/zh.js
index 15a2dbe..4e5071c 100644
--- a/src/i18n/message/webSearch/zh.js
+++ b/src/i18n/message/webSearch/zh.js
@@ -37,6 +37,7 @@ const webSearch = {
expertIntroduction: "专家简介",
expertLeadership: "专家领先性",
expertLibrary: "专家库",
+ productLibrary: "产品库",
findAchievement: "找成果",
findAchievementNum: "项成果",
findCompany: "找企业",
@@ -51,7 +52,11 @@ const webSearch = {
findPatent: "找专利",
findPatentNum: "项专利",
findServiceDemand: "找服务需求",
+ findServiceDemandNum: "项服务需求",
findTechnologyDemand: "找技术需求",
+ findTechnologyDemandNum: "项技术需求",
+ findProduct: "找产品",
+ findProductNum: "项产品",
findTechnologyNum: "项技术",
industry: "所属领域",
industryField: "所属行业领域",
@@ -60,6 +65,8 @@ const webSearch = {
ipc: "IPC分类号",
lab: "实验室",
labDetails: "实验室详情",
+ productDetails: "产品详情",
+ productIntroduction: "产品简介",
labIntroduction: "实验室简介",
labLeadership: "实验室领先性",
labLibrary: "实验室库",
@@ -112,5 +119,7 @@ const webSearch = {
patentStatus: "专利状态",
// 后台暂未提供
noDataFromBackground: "后台暂未提供",
+ // 中科云平台
+ zhongkeyunPlatform: "中科云平台",
};
export default webSearch;
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index aff11bc..ab66e31 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -68,7 +68,7 @@
{{
// ru zh
- locale === "zh" ? "Русский" : "简体中文"
+ locale === "zh" ? "ru" : "zh"
}}
diff --git a/src/router/index.js b/src/router/index.js
index 7357256..7ca48c4 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -864,6 +864,17 @@ export const laboratoryRoutes = [
},
name: "LabAchievement",
},
+ {
+ path: "release",
+ component: () => import("@/views/admin/laboratory/research/achievement/release"),
+ hidden: true,
+ name: "Release",
+ meta: {
+ title: "发布成果",
+ icon: "list",
+ i18nStr: "routes.expert.publishAchievement",
+ },
+ },
{
path: "service-demand",
component: () =>
diff --git a/src/store/modules/settings.js b/src/store/modules/settings.js
index 51ae3a1..b76c77e 100644
--- a/src/store/modules/settings.js
+++ b/src/store/modules/settings.js
@@ -57,6 +57,7 @@ const useSettingsStore = defineStore("settings", {
},
toggleLocale() {
this.locale = this.locale === "zh" ? "ru" : "zh";
+ window.location.reload();
},
},
persist: [
diff --git a/src/utils/parameter.js b/src/utils/parameter.js
index 16bcf23..4133b1a 100644
--- a/src/utils/parameter.js
+++ b/src/utils/parameter.js
@@ -1,5 +1,5 @@
// 归属导航
-export const modeOptions = [
+/*export const modeOptions = [
{
value: 101,
label: "中小企业服务",
@@ -16,45 +16,86 @@ export const modeOptions = [
value: 104,
label: "科研院所服务",
},
-];
+];*/
// 学历
export const educationOptions = [
- { key: 1, text: "小学" },
- { key: 2, text: "初中" },
- { key: 3, text: "高中" },
- { key: 4, text: "大专" },
- { key: 5, text: "本科" },
- { key: 6, text: "研究生" },
- { key: 7, text: "博士" },
+ {
+ key: 1,
+ text: "小学",
+ zh: "小学",
+ ru: "Начальная школа",
+ },
+ {
+ key: 2,
+ text: "初中",
+ zh: "初中",
+ ru: "Средняя школа",
+ },
+ {
+ key: 3,
+ text: "高中",
+ zh: "高中",
+ ru: "Старшая школа",
+ },
+ {
+ key: 4,
+ text: "大专",
+ zh: "大专",
+ ru: "Колледж",
+ },
+ {
+ key: 5,
+ text: "本科",
+ zh: "本科",
+ ru: "Бакалавр",
+ },
+ {
+ key: 6,
+ text: "研究生",
+ zh: "研究生",
+ ru: "Аспирант",
+ },
+ {
+ key: 7,
+ text: "博士",
+ zh: "博士",
+ ru: "Доктор",
+ },
];
// 企业类型
export const enterpriseOptions = [
- { key: "101", value: "上市企业" },
- { key: "102", value: "独角兽企业" },
- { key: "103", value: "国家级专精特新企业" },
- { key: "104", value: "高新技术企业" },
- { key: "105", value: "科技企业" },
+ {
+ key: "101",
+ value: "上市企业",
+ zh: "上市企业",
+ ru: "Публичное предприятие",
+ },
+ {
+ key: "102",
+ value: "独角兽企业",
+ zh: "独角兽企业",
+ ru: "Единорог предприятие",
+ },
+ {
+ key: "103",
+ value: "国家级专精特新企业",
+ zh: "国家级专精特新企业",
+ ru: "Национальный уровень специализированных и новых предприятий",
+ },
+ {
+ key: "104",
+ value: "高新技术企业",
+ zh: "高新技术企业",
+ ru: "Предприятие высоких технологий",
+ },
+ {
+ key: "105",
+ value: "科技企业",
+ zh: "科技企业",
+ ru: "Научно - техническое предприятие",
+ },
];
-// 基金对接-Фонд стыкуется
-// 委托研发-Поручить разработку
-// 海外留学生培养-Обучение иностранных студентов
-// 贷款-Кредиты
-// 对接专家院士-Академик - специалист по стыковке
-// 人才培养-Подготовка кадров
-// 一带一路国际合作-Международное сотрудничество
-// 上市辅导-Консультирование по листингу
-// 成果产业化-Индустриализация результатов
-// 国家级科研平台合作-Сотрудничество национальных научно - исследовательских платформ
-// 研发项目立项评估-Оценка проектов НИОКР
-// 科技查新-Новые технологии.
-// 产业链上下游对接-Промышленная цепочка вверх и вниз по течению
-// 知识产权布局-Распределение интеллектуальной собственности
-// 高价值专利培育-Высокая стоимость патентов
-// 技术咨询-Технические консультации
-// 对接政府项目落地-Посадка на правительственный проект
-// 设立院士工作站-Создание академической рабочей станции
-
// 需求类型
export const demandCategoryList = [
{
@@ -155,35 +196,169 @@ export const demandCategoryList = [
// ]
// 成果成熟度 技术
export const maturityOptions = [
- { key: "1", value: "正在研发" },
- { key: "2", value: "小试阶段" },
- { key: "3", value: "通过小试" },
- { key: "4", value: "中试阶段" },
- { key: "5", value: "通过中试" },
- { key: "6", value: "可规模生产" },
+ {
+ key: "1",
+ value: "正在研发",
+ valueRu: "В процессе разработки",
+ zh: "正在研发",
+ ru: "В процессе разработки",
+ },
+ {
+ key: "2",
+ value: "小试阶段",
+ valueRu: "Этап малого тестирования",
+ zh: "小试阶段",
+ ru: "Этап малого тестирования",
+ },
+ {
+ key: "3",
+ value: "通过小试",
+ valueRu: "Прошел малый тест",
+ zh: "通过小试",
+ ru: "Прошел малый тест",
+ },
+ {
+ key: "4",
+ value: "中试阶段",
+ valueRu: "Этап среднего тестирования",
+ zh: "中试阶段",
+ ru: "Этап среднего тестирования",
+ },
+ {
+ key: "5",
+ value: "通过中试",
+ valueRu: "Прошел средний тест",
+ zh: "通过中试",
+ ru: "Прошел средний тест",
+ },
+ {
+ key: "6",
+ value: "可规模生产",
+ valueRu: "Может быть массовым производством",
+ zh: "可规模生产",
+ ru: "Может быть массовым производством",
+ },
];
// 成果领先型 领先标准
export const leadOptions = [
- { key: "1", value: "国内先进" },
- { key: "2", value: "国内领先" },
- { key: "3", value: "国际先进" },
- { key: "4", value: "国际领先" },
+ {
+ key: "1",
+ value: "国内先进",
+ valueRu: "Национально ведущий",
+ zh: "国内先进",
+ ru: "Национально ведущий",
+ // value: this[locale],
+ },
+ {
+ key: "2",
+ value: "国内领先",
+ valueRu: "Национально ведущий",
+ zh: "国内领先",
+ ru: "Национально ведущий",
+ },
+ {
+ key: "3",
+ value: "国际先进",
+ valueRu: "Международно ведущий",
+ zh: "国际先进",
+ ru: "Международно ведущий",
+ },
+ {
+ key: "4",
+ value: "国际领先",
+ valueRu: "Международно ведущий",
+ zh: "国际领先",
+ ru: "Международно ведущий",
+ },
];
// 专利类型
export const patentOptions = [
- { key: "1", value: "发明专利" },
- { key: "2", value: "外观设计" },
- { key: "3", value: "实用新型" },
+ {
+ key: "1",
+ value: "发明专利",
+ valueRu: "Изобретение",
+ zh: "发明专利",
+ ru: "Изобретение",
+ },
+ {
+ key: "2",
+ value: "外观设计",
+ valueRu: "Дизайн",
+ zh: "外观设计",
+ ru: "Дизайн",
+ },
+ {
+ key: "3",
+ value: "实用新型",
+ valueRu: "Полезная модель",
+ zh: "实用新型",
+ ru: "Полезная модель",
+ },
];
// 合作模式
export const cooperationOptions = [
- { key: "101", value: "技术转让" },
- { key: "102", value: "技术许可" },
- { key: "103", value: "技术入股" },
- { key: "104", value: "合作开发" },
- { key: "105", value: "融资" },
- { key: "106", value: "公司" },
- { key: "107", value: "代理加盟" },
- { key: "108", value: "市场推广" },
- { key: "109", value: "其他" },
+ {
+ key: "101",
+ value: "技术转让",
+ valueRu: "Технологический трансфер",
+ zh: "技术转让",
+ ru: "Технологический трансфер",
+ },
+ {
+ key: "102",
+ value: "技术许可",
+ valueRu: "Техническая лицензия",
+ zh: "技术许可",
+ ru: "Техническая лицензия",
+ },
+
+ {
+ key: "103",
+ value: "技术入股",
+ valueRu: "Технические акции",
+ zh: "技术入股",
+ ru: "Технические акции",
+ },
+ {
+ key: "104",
+ value: "合作开发",
+ valueRu: "Совместная разработка",
+ zh: "合作开发",
+ ru: "Совместная разработка",
+ },
+ {
+ key: "105",
+ value: "融资",
+ valueRu: "Финансирование",
+ zh: "融资",
+ ru: "Финансирование",
+ },
+ {
+ key: "106",
+ value: "公司",
+ valueRu: "Компания",
+ zh: "公司",
+ ru: "Компания",
+ },
+ {
+ key: "107",
+ value: "代理加盟",
+ valueRu: "Агентство",
+ zh: "代理加盟",
+ ru: "Агентство",
+ },
+ {
+ key: "108",
+ value: "市场推广",
+ valueRu: "Маркетинг",
+ zh: "市场推广",
+ ru: "Маркетинг",
+ },
+ {
+ key: "109",
+ value: "其他",
+ valueRu: "Другие",
+ zh: "其他",
+ ru: "Другие",
+ },
];
diff --git a/src/views/admin/agent/bill/bill-list/index.vue b/src/views/admin/agent/bill/bill-list/index.vue
index 00d87c7..e0077a0 100644
--- a/src/views/admin/agent/bill/bill-list/index.vue
+++ b/src/views/admin/agent/bill/bill-list/index.vue
@@ -10,7 +10,7 @@ import RightToolbar from "@/components/RightToolbar/index.vue";
import { useI18n } from "vue-i18n";
-const { t } = useI18n();
+const { t, locale } = useI18n();
const showSearch = ref(true);
const tableData = ref([]); // 表格数据
const total = ref(0); // 总条数
@@ -231,8 +231,9 @@ getList();
>
{{
- orderTypeDict.find((item) => item.value === row.orderType)?.label ??
- "-"
+ orderTypeDict.find((item) => item.value === row.orderType)?.[
+ locale
+ ] ?? "-"
}}
diff --git a/src/views/admin/enterprise/account/joinMembership.vue b/src/views/admin/enterprise/account/joinMembership.vue
index b7d9065..aec857c 100644
--- a/src/views/admin/enterprise/account/joinMembership.vue
+++ b/src/views/admin/enterprise/account/joinMembership.vue
@@ -131,4 +131,4 @@ const advanceVipMember = ref([
text-align: end;
}
}
-
\ No newline at end of file
+
diff --git a/src/views/admin/enterprise/demand/releaseService.vue b/src/views/admin/enterprise/demand/releaseService.vue
index 5e34b66..10a2717 100644
--- a/src/views/admin/enterprise/demand/releaseService.vue
+++ b/src/views/admin/enterprise/demand/releaseService.vue
@@ -30,14 +30,14 @@
locale === 'zh'
? item.name
: locale === 'ru'
- ? item.nameRu
+ ? item[labelField]
: null
"
>{{
locale === "zh"
? item.name
: locale === "ru"
- ? item.nameRu
+ ? item[labelField]
: null
}}
@@ -260,6 +260,10 @@ const data = reactive({
const { form, rules } = toRefs(data);
+const labelField = computed(() => {
+ return locale.value === "zh" ? "name" : `name${toTitleCase(locale.value)}`;
+});
+
const labelWidth = 140;
const checkList = reactive([...demandCategoryList]);
const checkInput = ref("");
@@ -294,14 +298,12 @@ const backToList = () => {
function addCheck() {
if (!checkInput.value.trim().length) return ElMessage.error(t("input.input"));
const flag = checkList.some((item) => {
- return item.name.trim() == checkInput.value.trim();
+ return item[labelField.value].trim() == checkInput.value.trim();
});
if (!flag) {
- const nameField =
- locale.value === "zh" ? "name" : `name${toTitleCase(locale.value)}`;
checkList.push({
id: checkList.length + 1,
- [nameField]: checkInput.value,
+ [labelField.value]: checkInput.value,
});
checkInput.value = "";
}
@@ -317,16 +319,12 @@ onMounted(() => {
});
tab.updatePage(obj);
getDemand({ id: route.query.id }).then((resp) => {
- // const nameField = locale === "zh" ? "name" : "nameRu";
- console.log(locale.value);
- const nameField =
- locale.value === "zh" ? "name" : `name${toTitleCase(locale.value)}`;
if (resp.data.kinds) {
resp.data.kinds.forEach((el, index) => {
- if (!checkList.find((item) => item[nameField] === el)) {
+ if (!checkList.find((item) => item[labelField.value] === el)) {
checkList.push({
id: index,
- [nameField]: el,
+ [labelField.value]: el,
});
}
});
@@ -343,4 +341,4 @@ onMounted(() => {
}
}
});
-
+
\ No newline at end of file
diff --git a/src/views/admin/enterprise/extension/product.vue b/src/views/admin/enterprise/extension/product.vue
index 28fde77..bc78689 100644
--- a/src/views/admin/enterprise/extension/product.vue
+++ b/src/views/admin/enterprise/extension/product.vue
@@ -63,19 +63,18 @@
- {{
- row.shelfStatus == 2
- ? t("admin.table.putOn")
- : t("admin.table.putOff")
- }}
- ) }}
-
+
+
+
+
+
+
+
+
+
+
+
+
{{ t("webSearch.viewMatchingResults") }}
- {{ t("tips.browseEnterpriseInformation") }}
-
+
+
+
+
+
+
+
+
+
{
onActivated(() => {
getList();
});
-
+
\ No newline at end of file
diff --git a/src/views/admin/enterprise/index.vue b/src/views/admin/enterprise/index.vue
index 2e568ea..1a7c134 100644
--- a/src/views/admin/enterprise/index.vue
+++ b/src/views/admin/enterprise/index.vue
@@ -19,8 +19,8 @@
style="margin-top: 50px"
v-if="vipData.vipType == 1 || vipData.vipType == 2"
>
- {{ vipData.vipType == 1 ? "VIP" : "SVIP"
- }} {{ t("home.expirationTime") }}:{{ vipData.expireTime }}
+ {{ vipData.vipType == 1 ? "VIP" : "SVIP" }}
+ {{ t("home.expirationTime") }}:{{ vipData.expireTime }}
diff --git a/src/views/admin/expert/components/ReleaseForm/index.vue b/src/views/admin/expert/components/ReleaseForm/index.vue
index d02956f..c944b8d 100644
--- a/src/views/admin/expert/components/ReleaseForm/index.vue
+++ b/src/views/admin/expert/components/ReleaseForm/index.vue
@@ -134,7 +134,7 @@
@@ -160,7 +160,7 @@
@@ -183,7 +183,7 @@
@@ -294,7 +294,7 @@ import {
import { computed, reactive, ref, toRefs } from "vue";
import { useI18n } from "vue-i18n";
-const { t } = useI18n();
+const { t, locale } = useI18n();
const props = defineProps({
modelValue: Object,
isAdd: {
diff --git a/src/views/admin/expert/demand/release.vue b/src/views/admin/expert/demand/release.vue
index f473b3f..77849f8 100644
--- a/src/views/admin/expert/demand/release.vue
+++ b/src/views/admin/expert/demand/release.vue
@@ -33,8 +33,8 @@
{{ item.name }}
+ :label="locale === 'zh' ? item.name : item[labelField]"
+ >{{ locale === "zh" ? item.name : item[labelField] }}
@@ -155,15 +155,15 @@ import {
} from "@/api/admin/expert/demand";
import { demandCategoryList } from "@/utils/parameter";
import { uniqueId } from "lodash";
-import tab from "@/plugins/tab";
-// import CityOptions from "@/views/components/CityOptions";
+import tab from "@/plugins/tab"; // import CityOptions from "@/views/components/CityOptions";
import { ElMessage } from "element-plus";
import { useRoute } from "vue-router";
import { updateCount } from "@/api/admin/count.js";
import { computed, reactive, ref, toRefs } from "vue";
import { useI18n } from "vue-i18n";
+import { toTitleCase } from "@/utils/string";
-const { t } = useI18n();
+const { t, locale } = useI18n();
const data = reactive({
formData: {
check: [],
@@ -273,6 +273,9 @@ const { queryParams, formData, rules } = toRefs(data);
const route = useRoute();
const formRef = ref();
+const labelField = computed(() => {
+ return locale.value === "zh" ? "name" : `name${toTitleCase(locale.value)}`;
+});
const back = () => {
tab.closeOpenPage({ path: "/demand/serviceDemand" });
};
@@ -299,12 +302,12 @@ async function submitForm() {
function addCheck() {
if (!checkInput.value.trim().length) return ElMessage.error(t("input.input"));
const flag = checkList.some((item) => {
- return item.name.trim() == checkInput.value.trim();
+ return item[labelField.value].trim() == checkInput.value.trim();
});
if (!flag) {
checkList.push({
id: checkList.length + 1,
- name: checkInput.value,
+ [labelField.value]: checkInput.value,
});
checkInput.value = "";
}
@@ -314,8 +317,8 @@ const getDetail = async () => {
const resp = await getDemandById(route.query.id);
formData.value = resp.data;
for (const item of resp.data.kinds) {
- if (!checkList.find((el) => el.name === item)) {
- checkList.push({ id: uniqueId("unq-"), name: item });
+ if (!checkList.find((el) => el[labelField.value] === item)) {
+ checkList.push({ id: uniqueId("unq-"), [labelField.value]: item });
}
}
};
@@ -328,4 +331,4 @@ if (route.query.id) {
tab.updatePage(obj);
getDetail();
}
-
+
\ No newline at end of file
diff --git a/src/views/admin/expert/technology/achievement.vue b/src/views/admin/expert/technology/achievement.vue
index 75ee12d..20873a5 100644
--- a/src/views/admin/expert/technology/achievement.vue
+++ b/src/views/admin/expert/technology/achievement.vue
@@ -37,6 +37,7 @@
/>
+
@@ -334,7 +334,7 @@ import { useRouter } from "vue-router";
import { useI18n } from "vue-i18n";
import { computed, getCurrentInstance, reactive, ref, toRefs } from "vue";
-const { t } = useI18n();
+const { t, locale } = useI18n();
const router = useRouter();
const { proxy } = getCurrentInstance();
diff --git a/src/views/admin/expert/technology/release.vue b/src/views/admin/expert/technology/release.vue
index 04d786f..9250317 100644
--- a/src/views/admin/expert/technology/release.vue
+++ b/src/views/admin/expert/technology/release.vue
@@ -31,6 +31,7 @@ import { useRoute, useRouter } from "vue-router";
import { updateCount } from "@/api/admin/count";
import ReleaseForm from "../components/ReleaseForm";
import { useI18n } from "vue-i18n";
+import {updateAchievement} from "@/api/admin/laboratory/achievement";
const labelWidth = 140;
@@ -64,7 +65,7 @@ if (id) {
const submitForm = async (status) => {
if (await releaseFormRef.value.validateForm()) {
if (id) {
- await updateExpertAchievement({ ...form.value, status });
+ await updateAchievement({ ...form.value, status });
ElMessage.success(t("admin.common.editSuccess"));
// router.back();
} else {
diff --git a/src/views/admin/laboratory/account/basic-info.vue b/src/views/admin/laboratory/account/basic-info.vue
index 919663d..29ede1c 100644
--- a/src/views/admin/laboratory/account/basic-info.vue
+++ b/src/views/admin/laboratory/account/basic-info.vue
@@ -1,63 +1,63 @@
-
- {{ t("admin.form.basicData") }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ t("admin.common.submit") }}
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ t("admin.form.data", { type: t("admin.common.lab") }) }}
@@ -102,7 +102,7 @@ const data = reactive({
});
const { form, personForm, rules } = toRefs(data);
const labFormRef = ref();
-const personFormRef = ref();
+// const personFormRef = ref();
const labelWidth = ref(140);
// 获取基础信息用于回显
@@ -117,7 +117,7 @@ const getBasicInfo = async () => {
const submitPersonalInfo = async () => {
try {
- await personFormRef.value.validate();
+ // await personFormRef.value.validate();
await insertClientUser(personForm.value);
ElMessage.success(t("admin.common.updatePersonalInformationSuccess"));
const { data } = await getInfo();
diff --git a/src/views/admin/laboratory/research/achievement/index.vue b/src/views/admin/laboratory/research/achievement/index.vue
index 5d2afb6..bf4314e 100644
--- a/src/views/admin/laboratory/research/achievement/index.vue
+++ b/src/views/admin/laboratory/research/achievement/index.vue
@@ -40,13 +40,22 @@
+
+
+
+
+
+
+
+
+
- {{ t("admin.form.importAchievement") }}
+ {{
+ t("admin.form.add", {
+ type: t("admin.common.achievement"),
+ })
+ }}
{
+ router.push({
+ path: "./release",
+ // query: {
+ // id: "",
+ // },
+ });
+};
+
getList();
-
+
\ No newline at end of file
diff --git a/src/views/admin/laboratory/research/achievement/release.vue b/src/views/admin/laboratory/research/achievement/release.vue
new file mode 100644
index 0000000..aee086a
--- /dev/null
+++ b/src/views/admin/laboratory/research/achievement/release.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+ {{ t("admin.common.submitAudit") }}
+
+
+
+
+
+
diff --git a/src/views/admin/laboratory/research/expert/index.vue b/src/views/admin/laboratory/research/expert/index.vue
index c4c1c73..4322174 100644
--- a/src/views/admin/laboratory/research/expert/index.vue
+++ b/src/views/admin/laboratory/research/expert/index.vue
@@ -8,7 +8,7 @@
@submit.prevent
>
{
* @param id
*/
const submitBind = (id) => {
- ElMessageBox.confirm(
- /*"是否确认关联该专家?"*/
- t("admin.common.confirmAction", {
- action: t("admin.table.relation"),
- type: t("admin.common.expert"),
- number: id,
- })
- )
+ modal
+ .confirm(
+ /*"是否确认关联该专家?"*/
+ t("admin.common.confirmAction", {
+ action: t("admin.table.relation"),
+ type: t("admin.common.expert"),
+ number: id,
+ })
+ )
.then(function () {
return bindExpert(id);
})
diff --git a/src/views/admin/laboratory/research/research-project/index.vue b/src/views/admin/laboratory/research/research-project/index.vue
index 7500501..76ec459 100644
--- a/src/views/admin/laboratory/research/research-project/index.vue
+++ b/src/views/admin/laboratory/research/research-project/index.vue
@@ -63,7 +63,9 @@
- {{ subjectRoleDict.find((item) => item.value === row.role)?.label }}
+ {{
+ subjectRoleDict.find((item) => item.value === row.role)?.[locale]
+ }}
@@ -113,7 +115,7 @@