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(); > 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 @@