bug fix
This commit is contained in:
@ -48,11 +48,11 @@
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-vue": "2.3.3",
|
||||
"@vue/compiler-sfc": "3.2.36",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"postcss": "^8.4.26",
|
||||
"autoprefixer": "^10.4.19",
|
||||
"postcss": "^8.4.38",
|
||||
"prettier": "^2.8.8",
|
||||
"sass": "1.52.1",
|
||||
"tailwindcss": "^3.3.3",
|
||||
"tailwindcss": "^3.4.3",
|
||||
"unplugin-auto-import": "0.8.5",
|
||||
"vite": "2.9.16",
|
||||
"vite-plugin-compression": "0.5.1",
|
||||
|
6
postcss.config.js
Normal file
6
postcss.config.js
Normal file
@ -0,0 +1,6 @@
|
||||
module.exports = {
|
||||
plugins: {
|
||||
tailwindcss: {},
|
||||
autoprefixer: {},
|
||||
},
|
||||
}
|
@ -6,7 +6,11 @@ export const listNews = (params) =>
|
||||
method: "GET",
|
||||
params,
|
||||
});
|
||||
|
||||
export const listCategory = () =>
|
||||
request({
|
||||
url: "/app/news/category",
|
||||
method: "GET",
|
||||
});
|
||||
export const getNewsInfo = (id) =>
|
||||
request({
|
||||
url: `/app/news/${id}`,
|
||||
|
BIN
src/assets/icons/identity/专家.png
Normal file
BIN
src/assets/icons/identity/专家.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 103 KiB |
BIN
src/assets/icons/identity/企业.jpg
Normal file
BIN
src/assets/icons/identity/企业.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 145 KiB |
BIN
src/assets/icons/identity/实验室.jpg
Normal file
BIN
src/assets/icons/identity/实验室.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 59 KiB |
BIN
src/assets/icons/identity/科研机构.jpg
Normal file
BIN
src/assets/icons/identity/科研机构.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 118 KiB |
BIN
src/assets/icons/identity/经纪人.jpg
Normal file
BIN
src/assets/icons/identity/经纪人.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
@ -5,6 +5,7 @@
|
||||
@import "./sidebar.scss";
|
||||
@import "./btn.scss";
|
||||
@import "./ruoyi.scss";
|
||||
@import "./tailwindcss";
|
||||
|
||||
body {
|
||||
height: 100%;
|
||||
@ -12,8 +13,7 @@ body {
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
font-family:
|
||||
Helvetica Neue,
|
||||
font-family: Helvetica Neue,
|
||||
Helvetica,
|
||||
PingFang SC,
|
||||
Hiragino Sans GB,
|
||||
@ -211,16 +211,19 @@ aside {
|
||||
width: 1000px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.conter1400 {
|
||||
width: 1400px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
// 1行文本省略号
|
||||
.ellipsis {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
// 2行文本省略号
|
||||
.text_hidden {
|
||||
overflow: hidden;
|
||||
@ -229,24 +232,30 @@ aside {
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.x_btns {
|
||||
font-size: 16px !important;
|
||||
color: #fff !important;
|
||||
border-radius: 0 !important;
|
||||
background-color: #0054ff !important;
|
||||
}
|
||||
|
||||
.x16 {
|
||||
font-size: 16px !important;
|
||||
}
|
||||
|
||||
.x_fff {
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.x_blue {
|
||||
color: #0054ff !important;
|
||||
}
|
||||
|
||||
.x_border_blue {
|
||||
border: 1px solid #0054ff !important;
|
||||
}
|
||||
|
||||
.x_bg_blue {
|
||||
background-color: #0054ff !important;
|
||||
}
|
||||
|
23
src/assets/styles/tailwindcss.scss
Normal file
23
src/assets/styles/tailwindcss.scss
Normal file
@ -0,0 +1,23 @@
|
||||
.h-screen {
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
.flex {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.flex-col {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.flex-1 {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.items-center {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.justify-center {
|
||||
justify-content: center;
|
||||
}
|
@ -106,10 +106,10 @@ export const seeLogTypeDict = [
|
||||
export const orderTypeDict = [
|
||||
{
|
||||
value: "1",
|
||||
label: "创新币充值",
|
||||
label: "技术交易",
|
||||
i18n: "coinRecharge",
|
||||
elTagType: "primary",
|
||||
zh: "创新币充值",
|
||||
zh: "技术交易",
|
||||
ru: "Пополнение монеты инноваций",
|
||||
},
|
||||
{
|
||||
|
@ -118,5 +118,14 @@ const form = {
|
||||
productField: "Область продукта",
|
||||
// 成熟度证明材料
|
||||
maturityProofMaterial: "Материалы подтверждения зрелости",
|
||||
achievementIntroduction:`Презентация продукта:
|
||||
● Рыночный спрос: Описание рыночного спроса или проблемы, решаемой данной технологической разработкой.
|
||||
● Описание продукта: Краткое описание продукта, сравнение с конкурентами, область применения.
|
||||
Технические параметры:
|
||||
● Основная технология: Подробное описание основных принципов и технологий разработки.
|
||||
● Технические параметры: Предоставление ключевых технических параметров и показателей производительности.
|
||||
Сценарии применения:
|
||||
● Практическое применение: Описание случаев практического применения данной технологической разработки.
|
||||
● Потенциальные клиенты: Описание других типов целевых клиентов и их наименований.`
|
||||
};
|
||||
export default form;
|
||||
|
@ -116,6 +116,15 @@ const form = {
|
||||
productField: "产品领域",
|
||||
// 成熟度证明材料
|
||||
maturityProofMaterial: "成熟度证明材料",
|
||||
achievementIntroduction:`产品介绍:
|
||||
●市场需求:描述该科技成果解决的市场需求或问题。
|
||||
●产品描述:产品简介,竞品对比,适用范围。
|
||||
技术参数:
|
||||
●核心技术:详细介绍科技成果的核心原理和技术。
|
||||
●技术参数:提供关键的技术参数和性能指标。
|
||||
应用场景:
|
||||
●实际应用:描述该科技成果在实际中的应用案例。
|
||||
●潜在客户:描述产品其他重点客户类型及客户名称。`
|
||||
};
|
||||
|
||||
export default form;
|
||||
|
@ -9,7 +9,7 @@ const dict = {
|
||||
expert: "专家",
|
||||
researchProject: "科研项目",
|
||||
paper: "论文",
|
||||
coinRecharge: "创新币充值",
|
||||
coinRecharge: "技术交易",
|
||||
activityRegistration: "活动报名",
|
||||
notApplied: "未申请",
|
||||
applied: "已申请",
|
||||
|
@ -0,0 +1,3 @@
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
@ -1,12 +1,14 @@
|
||||
import { createApp } from "vue";
|
||||
|
||||
// import "@/index.css";
|
||||
import Cookies from "js-cookie";
|
||||
|
||||
import ElementPlus from "element-plus";
|
||||
import locale from "element-plus/lib/locale/lang/zh-cn"; // 中文语言
|
||||
|
||||
|
||||
import "@/assets/styles/index.scss"; // global css
|
||||
|
||||
import "@/index.css";
|
||||
// import {createI18n} from "vue-i18n";
|
||||
// import {messages} from '@/i18n'
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { createRouter, createWebHistory } from "vue-router";
|
||||
import {createRouter, createWebHistory} from "vue-router";
|
||||
/* Layout */
|
||||
import Layout from "@/layout";
|
||||
import basicInfo from "../views/admin/enterprise/account/basicInfo.vue";
|
||||
@ -25,7 +25,7 @@ import i18n from "@/i18n";
|
||||
activeMenu: '/system/user' // 当路由设置了该属性,则会高亮相对应的侧边栏。
|
||||
}
|
||||
*/
|
||||
const { t } = i18n.global;
|
||||
const {t} = i18n.global;
|
||||
// 公共路由
|
||||
export const constantRoutes = [
|
||||
{
|
||||
@ -251,37 +251,37 @@ export const constantRoutes = [
|
||||
path: "index",
|
||||
component: () => import("@/views/identity/index"),
|
||||
name: "index",
|
||||
meta: { title: "身份选择" },
|
||||
meta: {title: "身份选择"},
|
||||
},
|
||||
{
|
||||
path: "enterprise",
|
||||
component: () => import("@/views/identity/enterprise"),
|
||||
name: "enterprise",
|
||||
meta: { title: "企业入驻" },
|
||||
meta: {title: "企业入驻"},
|
||||
},
|
||||
{
|
||||
path: "expert",
|
||||
component: () => import("@/views/identity/expert"),
|
||||
name: "expert",
|
||||
meta: { title: "专家入驻" },
|
||||
meta: {title: "专家入驻"},
|
||||
},
|
||||
{
|
||||
path: "research",
|
||||
component: () => import("@/views/identity/research"),
|
||||
name: "research",
|
||||
meta: { title: "研究机构入驻" },
|
||||
meta: {title: "研究机构入驻"},
|
||||
},
|
||||
{
|
||||
path: "laboratory",
|
||||
component: () => import("@/views/identity/laboratory"),
|
||||
name: "laboratory",
|
||||
meta: { title: "实验室入驻" },
|
||||
meta: {title: "实验室入驻"},
|
||||
},
|
||||
{
|
||||
path: "agent",
|
||||
component: () => import("@/views/identity/agent"),
|
||||
name: "agent",
|
||||
meta: { title: "科技经纪人入驻" },
|
||||
meta: {title: "科技经纪人入驻"},
|
||||
},
|
||||
],
|
||||
}, //TODO:
|
||||
@ -309,7 +309,7 @@ export const constantRoutes = [
|
||||
path: "profile",
|
||||
component: () => import("@/views/system/user/profile/index"),
|
||||
name: "Profile",
|
||||
meta: { title: "个人中心", icon: "user" },
|
||||
meta: {title: "个人中心", icon: "user"},
|
||||
},
|
||||
],
|
||||
},
|
||||
@ -831,28 +831,16 @@ export const laboratoryRoutes = [
|
||||
redirect: "/admin/research/patent",
|
||||
children: [
|
||||
{
|
||||
path: "patent",
|
||||
path: "expert",
|
||||
component: () =>
|
||||
import("@/views/admin/laboratory/research/patent/index.vue"),
|
||||
name: "Patent",
|
||||
import("@/views/admin/laboratory/research/expert/index.vue"),
|
||||
name: "Expert",
|
||||
meta: {
|
||||
title: "专利列表",
|
||||
title: "专家列表",
|
||||
icon: "list",
|
||||
i18nStr: "routes.lab.patentList",
|
||||
i18nStr: "routes.lab.expertList",
|
||||
},
|
||||
},
|
||||
// {
|
||||
// path: "achievement",
|
||||
// component: () =>
|
||||
// import("@/views/admin/laboratory/research/achievement/index.vue"),
|
||||
// name: "Achievement",
|
||||
// meta: {
|
||||
// title: "成果列表",
|
||||
// icon: "list",
|
||||
// i18nStr: "routes.lab.achievementList",
|
||||
// },
|
||||
// },
|
||||
{
|
||||
}, {
|
||||
path: "expert-achievement",
|
||||
component: () =>
|
||||
import("@/views/admin/laboratory/research/achievement/index.vue"),
|
||||
@ -874,6 +862,68 @@ export const laboratoryRoutes = [
|
||||
},
|
||||
name: "LabAchievement",
|
||||
},
|
||||
{
|
||||
path: "laboratory-equipment",
|
||||
component: () =>
|
||||
import(
|
||||
"@/views/admin/laboratory/research/laboratory-equipment/index.vue"
|
||||
),
|
||||
name: "LaboratoryEquipment",
|
||||
meta: {
|
||||
title: "实验设备",
|
||||
icon: "list",
|
||||
i18nStr: "routes.lab.experimentalEquipment",
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "paper",
|
||||
component: () =>
|
||||
import("@/views/admin/laboratory/research/paper/index.vue"),
|
||||
name: "Paper",
|
||||
meta: {
|
||||
title: "论文列表",
|
||||
icon: "list",
|
||||
i18nStr: "routes.lab.paperList",
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "research-project",
|
||||
component: () =>
|
||||
import(
|
||||
"@/views/admin/laboratory/research/research-project/index.vue"
|
||||
),
|
||||
name: "ResearchProject",
|
||||
meta: {
|
||||
title: "科研项目列表",
|
||||
icon: "list",
|
||||
i18nStr: "routes.lab.researchProjectList",
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
path: "patent",
|
||||
component: () =>
|
||||
import("@/views/admin/laboratory/research/patent/index.vue"),
|
||||
name: "Patent",
|
||||
meta: {
|
||||
title: "专利列表",
|
||||
icon: "list",
|
||||
i18nStr: "routes.lab.patentList",
|
||||
},
|
||||
},
|
||||
// {
|
||||
// path: "achievement",
|
||||
// component: () =>
|
||||
// import("@/views/admin/laboratory/research/achievement/index.vue"),
|
||||
// name: "Achievement",
|
||||
// meta: {
|
||||
// title: "成果列表",
|
||||
// icon: "list",
|
||||
// i18nStr: "routes.lab.achievementList",
|
||||
// },
|
||||
// },
|
||||
|
||||
|
||||
{
|
||||
path: "release",
|
||||
component: () =>
|
||||
@ -909,41 +959,8 @@ export const laboratoryRoutes = [
|
||||
i18nStr: "routes.lab.viewDemand",
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "expert",
|
||||
component: () =>
|
||||
import("@/views/admin/laboratory/research/expert/index.vue"),
|
||||
name: "Expert",
|
||||
meta: {
|
||||
title: "专家列表",
|
||||
icon: "list",
|
||||
i18nStr: "routes.lab.expertList",
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "research-project",
|
||||
component: () =>
|
||||
import(
|
||||
"@/views/admin/laboratory/research/research-project/index.vue"
|
||||
),
|
||||
name: "ResearchProject",
|
||||
meta: {
|
||||
title: "科研项目列表",
|
||||
icon: "list",
|
||||
i18nStr: "routes.lab.researchProjectList",
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "paper",
|
||||
component: () =>
|
||||
import("@/views/admin/laboratory/research/paper/index.vue"),
|
||||
name: "Paper",
|
||||
meta: {
|
||||
title: "论文列表",
|
||||
icon: "list",
|
||||
i18nStr: "routes.lab.paperList",
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
path: "paper/unit-info",
|
||||
component: () =>
|
||||
@ -956,19 +973,7 @@ export const laboratoryRoutes = [
|
||||
i18nStr: "routes.lab.viewUnitInformation",
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "laboratory-equipment",
|
||||
component: () =>
|
||||
import(
|
||||
"@/views/admin/laboratory/research/laboratory-equipment/index.vue"
|
||||
),
|
||||
name: "LaboratoryEquipment",
|
||||
meta: {
|
||||
title: "实验设备",
|
||||
icon: "list",
|
||||
i18nStr: "routes.lab.experimentalEquipment",
|
||||
},
|
||||
},
|
||||
|
||||
],
|
||||
},
|
||||
];
|
||||
@ -1351,7 +1356,7 @@ const router = createRouter({
|
||||
if (savedPosition) {
|
||||
return savedPosition;
|
||||
} else {
|
||||
return { top: 0 };
|
||||
return {top: 0};
|
||||
}
|
||||
},
|
||||
});
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { login, logout, getInfo } from "@/api/login";
|
||||
import { getToken, setToken, removeToken } from "@/utils/auth";
|
||||
import {login, logout, getInfo} from "@/api/login";
|
||||
import {getToken, setToken, removeToken} from "@/utils/auth";
|
||||
// import defAva from "@/assets/images/profile.jpg";
|
||||
import defAva from "@/assets/logo/avatar.png";
|
||||
|
||||
@ -14,6 +14,7 @@ const useUserStore = defineStore("user", {
|
||||
userId: "",
|
||||
nickName: "",
|
||||
enterprise: {},
|
||||
vip: null
|
||||
}),
|
||||
actions: {
|
||||
// 登录
|
||||
@ -41,6 +42,7 @@ const useUserStore = defineStore("user", {
|
||||
.then((res) => {
|
||||
const user = res.data.user;
|
||||
const enterprise = res.data.enterprise;
|
||||
const vip = res.data.vip;
|
||||
const userId = user.userId;
|
||||
const avatar =
|
||||
/* user.avatar == "" || user.avatar == null
|
||||
@ -59,6 +61,7 @@ const useUserStore = defineStore("user", {
|
||||
this.userId = userId;
|
||||
this.nickName = user.nickName;
|
||||
this.enterprise = enterprise;
|
||||
this.vip = vip;
|
||||
resolve(res);
|
||||
})
|
||||
.catch((error) => {
|
||||
|
@ -55,8 +55,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="contact">
|
||||
{{ t("webContact.phone") }}:<a href="tel:18156053255">18156053255</a>
|
||||
({{ t("webSearch.wechat") }})
|
||||
{{ t("webSearch.contactInformation") }}:<a href="tel:(+86)18156053255">(+86)18156053255, zkxh2024@qq.com</a>
|
||||
<!-- ({{ t("webSearch.wechat") }})-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -102,7 +102,7 @@
|
||||
{{ t("admin.common.delete") }}
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="queryParams.status == 1"
|
||||
v-if="queryParams.status == 1 && vip && vip.vipType != '0'"
|
||||
size="small"
|
||||
type="text"
|
||||
icon="View"
|
||||
@ -156,6 +156,8 @@ import modal from "@/plugins/modal";
|
||||
import { useRouter } from "vue-router";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { getCurrentInstance, reactive, ref, toRefs } from "vue";
|
||||
import useUserStore from "../../../../store/modules/user";
|
||||
import {storeToRefs} from "pinia";
|
||||
|
||||
const { t } = useI18n();
|
||||
const { proxy } = getCurrentInstance();
|
||||
@ -175,6 +177,9 @@ const data = reactive({
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
const userStore = useUserStore()
|
||||
const {vip} = storeToRefs(userStore)
|
||||
|
||||
/** 查询列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true;
|
||||
|
@ -30,7 +30,7 @@
|
||||
</el-radio-group>
|
||||
|
||||
<el-table v-loading="loading" :data="dataList" style="margin-top: 20px">
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id" />
|
||||
<el-table-column :label="t('admin.common.dataNumber')" prop="id"/>
|
||||
<el-table-column
|
||||
:label="t('admin.form.name', { type: t('admin.form.product') })"
|
||||
prop="title"
|
||||
@ -85,7 +85,7 @@
|
||||
{{ t("admin.common.delete") }}
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="queryParams.status == 1"
|
||||
v-if="queryParams.status == 1 && vip && vip.vipType != '0'"
|
||||
size="small"
|
||||
type="text"
|
||||
icon="View"
|
||||
@ -136,19 +136,22 @@ import {
|
||||
getEnterpriseProduct,
|
||||
updateEnterpriseProduct,
|
||||
} from "@/api/admin/enterprise/product";
|
||||
import { ElMessage } from "element-plus";
|
||||
import {ElMessage} from "element-plus";
|
||||
import modal from "@/plugins/modal";
|
||||
import { onActivated, reactive, ref, toRefs } from "vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import {onActivated, reactive, ref, toRefs} from "vue";
|
||||
import {useRouter} from "vue-router";
|
||||
import {useI18n} from "vue-i18n";
|
||||
import useUserStore from "../../../../store/modules/user";
|
||||
import {storeToRefs} from "pinia";
|
||||
|
||||
const { t } = useI18n();
|
||||
const {t} = useI18n();
|
||||
const router = useRouter();
|
||||
const dataList = ref([]);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const total = ref(0);
|
||||
|
||||
const userStore = useUserStore()
|
||||
const {vip} = storeToRefs(userStore)
|
||||
const data = reactive({
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
@ -157,7 +160,7 @@ const data = reactive({
|
||||
},
|
||||
});
|
||||
|
||||
const { queryParams } = toRefs(data);
|
||||
const {queryParams} = toRefs(data);
|
||||
|
||||
/** 查询列表 */
|
||||
const getList = async () => {
|
||||
@ -206,7 +209,7 @@ const releaseCancel = (id) => {
|
||||
}),
|
||||
)
|
||||
.then(async () => {
|
||||
await updateEnterpriseProduct({ id, status: 3 });
|
||||
await updateEnterpriseProduct({id, status: 3});
|
||||
ElMessage.success(t("tips.cancelReleaseSuccess"));
|
||||
getList();
|
||||
})
|
||||
@ -229,16 +232,17 @@ const handleShelf = (row) => {
|
||||
)
|
||||
.then(function () {
|
||||
let status = row.shelfStatus == 1 ? 2 : 1;
|
||||
return updateEnterpriseProduct({ id: row.id, shelfStatus: status });
|
||||
return updateEnterpriseProduct({id: row.id, shelfStatus: status});
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
ElMessage.success(t("admin.common.success", { action: text }));
|
||||
ElMessage.success(t("admin.common.success", {action: text}));
|
||||
})
|
||||
.catch(() => {});
|
||||
.catch(() => {
|
||||
});
|
||||
};
|
||||
const handleResults = (row) => {
|
||||
router.push({ path: "./results", query: { keyword: row.title } });
|
||||
router.push({path: "./results", query: {keyword: row.title}});
|
||||
};
|
||||
const handleDetails = (id) => {
|
||||
router.push({
|
||||
@ -249,7 +253,7 @@ const handleDetails = (id) => {
|
||||
});
|
||||
};
|
||||
const checkEnterpriseInfo = (id) => {
|
||||
router.push({ path: "./business" });
|
||||
router.push({path: "./business"});
|
||||
};
|
||||
|
||||
onActivated(() => {
|
||||
|
@ -240,8 +240,9 @@
|
||||
>
|
||||
<el-input
|
||||
v-model="modelValue.description"
|
||||
:autosize="{ minRows: 6, maxRows: 8 }"
|
||||
:autosize="{ minRows: 10 }"
|
||||
type="textarea"
|
||||
:placeholder="t('admin.form.achievementIntroduction')"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -293,10 +294,10 @@ import {
|
||||
leadOptions,
|
||||
maturityOptions,
|
||||
} from "@/utils/parameter";
|
||||
import { computed, reactive, ref, toRefs } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import {computed, reactive, ref, toRefs} from "vue";
|
||||
import {useI18n} from "vue-i18n";
|
||||
|
||||
const { t, locale } = useI18n();
|
||||
const {t, locale} = useI18n();
|
||||
const props = defineProps({
|
||||
modelValue: Object,
|
||||
isAdd: {
|
||||
@ -312,7 +313,7 @@ const props = defineProps({
|
||||
default: 120,
|
||||
},
|
||||
});
|
||||
const { modelValue, isAdd, showTitle, labelWidth } = toRefs(props);
|
||||
const {modelValue, isAdd, showTitle, labelWidth} = toRefs(props);
|
||||
const data = reactive({
|
||||
rules: {
|
||||
title: [
|
||||
@ -343,7 +344,7 @@ const data = reactive({
|
||||
{
|
||||
required: true,
|
||||
message: computed(() =>
|
||||
t("admin.form.placeholder", { type: t("admin.form.country") }),
|
||||
t("admin.form.placeholder", {type: t("admin.form.country")}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
@ -385,14 +386,14 @@ const data = reactive({
|
||||
{
|
||||
required: true,
|
||||
message: computed(() =>
|
||||
t("admin.form.placeholder", { type: t("webSearch.unit") }),
|
||||
t("admin.form.placeholder", {type: t("webSearch.unit")}),
|
||||
),
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
const { rules } = toRefs(data);
|
||||
const {rules} = toRefs(data);
|
||||
// import { researchSelect, laboratorySelect } from "@/api/identity/index";
|
||||
const formRef = ref();
|
||||
const fieldFormRef = ref();
|
||||
|
@ -48,25 +48,8 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- <el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item :label="t('webSearch.unit')" prop="researchId">
|
||||
<el-select
|
||||
v-model="modelValue.researchId"
|
||||
filterable
|
||||
:placeholder="t('admin.form.pleaseSelect')"
|
||||
@change="setLaboratory"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in researchOptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!--
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所属实验室:">
|
||||
<el-select
|
||||
@ -152,7 +135,29 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item :label="t('webSearch.unit')" prop="workplace">
|
||||
<el-input v-model="modelValue.workplace" :placeholder="t('admin.form.placeholder', {
|
||||
name: t('webSearch.unit'),
|
||||
})"/>
|
||||
<!-- <el-select-->
|
||||
<!-- v-model="modelValue.researchId"-->
|
||||
<!-- filterable-->
|
||||
<!-- :placeholder="t('admin.form.pleaseSelect')"-->
|
||||
<!-- @change="setLaboratory"-->
|
||||
<!-- >-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in researchOptions"-->
|
||||
<!-- :key="item.id"-->
|
||||
<!-- :label="item.name"-->
|
||||
<!-- :value="item.id"-->
|
||||
<!-- >-->
|
||||
<!-- </el-option>-->
|
||||
<!-- </el-select>-->
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item :label="t('admin.form.position')" prop="job">
|
||||
@ -240,11 +245,11 @@
|
||||
<script name="ExpertForm" setup>
|
||||
import FieldOptions from "@/views/components/FieldOptions";
|
||||
import InputBoxAdd from "@/views/components/InputBoxAdd";
|
||||
import { countryOptions, educationOptions } from "@/utils/parameter";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { computed, onActivated, reactive, ref, toRefs } from "vue";
|
||||
import {countryOptions, educationOptions} from "@/utils/parameter";
|
||||
import {useI18n} from "vue-i18n";
|
||||
import {computed, onActivated, reactive, ref, toRefs} from "vue";
|
||||
|
||||
const { t, locale } = useI18n();
|
||||
const {t, locale} = useI18n();
|
||||
|
||||
const props = defineProps({
|
||||
modelValue: Object,
|
||||
@ -261,7 +266,7 @@ const props = defineProps({
|
||||
default: 120,
|
||||
},
|
||||
});
|
||||
const { modelValue, isAdd, showTitle, labelWidth } = toRefs(props);
|
||||
const {modelValue, isAdd, showTitle, labelWidth} = toRefs(props);
|
||||
const data = reactive({
|
||||
rules: {
|
||||
product: [
|
||||
@ -373,7 +378,7 @@ const data = reactive({
|
||||
{
|
||||
required: true,
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", { type: t("admin.form.workingTime") }),
|
||||
t("admin.validation.required", {type: t("admin.form.workingTime")}),
|
||||
),
|
||||
trigger: ["change", "blur"],
|
||||
},
|
||||
@ -392,10 +397,17 @@ const data = reactive({
|
||||
trigger: ["change", "blur"],
|
||||
},
|
||||
],
|
||||
workplace: [
|
||||
{
|
||||
required: true,
|
||||
message: computed(() => t("admin.form.placeholder")),
|
||||
trigger: ["blur"],
|
||||
}
|
||||
]
|
||||
},
|
||||
});
|
||||
|
||||
const { rules } = toRefs(data);
|
||||
const {rules} = toRefs(data);
|
||||
const researchOptions = ref([]);
|
||||
const options = ref([]);
|
||||
const formRef = ref();
|
||||
@ -403,7 +415,8 @@ const cityFormRef = ref();
|
||||
const fieldFormRef = ref();
|
||||
const keywordsFormRef = ref();
|
||||
const researchsFormRef = ref();
|
||||
const setLaboratory = () => {};
|
||||
const setLaboratory = () => {
|
||||
};
|
||||
const validateForm = async () => {
|
||||
let formValid;
|
||||
try {
|
||||
|
@ -202,6 +202,15 @@
|
||||
>
|
||||
<el-input
|
||||
type="textarea"
|
||||
placeholder="产品介绍:
|
||||
 ●市场需求:描述该科技成果解决的市场需求或问题。
|
||||
 ●产品描述:产品简介,竞品对比,适用范围。
|
||||
技术参数:
|
||||
 ●核心技术:详细介绍科技成果的核心原理和技术。
|
||||
 ●技术参数:提供关键的技术参数和性能指标。
|
||||
应用场景:
|
||||
 ●实际应用:描述该科技成果在实际中的应用案例。
|
||||
 ●潜在客户:描述产品其他重点客户类型及客户名称。"
|
||||
v-model="modelValue.introduce"
|
||||
:autosize="{ minRows: 6, maxRows: 8 }"
|
||||
></el-input>
|
||||
@ -211,7 +220,7 @@
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item :label="t('admin.form.productPicture')" prop="image">
|
||||
<ImageUpload v-model="modelValue.image" :limit="1" />
|
||||
<ImageUpload v-model="modelValue.image" :limit="1"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -240,11 +249,11 @@ import {
|
||||
leadOptions,
|
||||
maturityOptions,
|
||||
} from "@/utils/parameter";
|
||||
import { computed, reactive, toRefs } from "vue"; // import VideoUpload from "@/components/VideoUpload";
|
||||
import {computed, reactive, toRefs} from "vue"; // import VideoUpload from "@/components/VideoUpload";
|
||||
// import { researchSelect, laboratorySelect } from "@/api/identity/index";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import {useI18n} from "vue-i18n";
|
||||
|
||||
const { t, locale } = useI18n();
|
||||
const {t, locale} = useI18n();
|
||||
const props = defineProps({
|
||||
modelValue: Object,
|
||||
isAdd: {
|
||||
@ -260,7 +269,7 @@ const props = defineProps({
|
||||
default: 120,
|
||||
},
|
||||
});
|
||||
const { modelValue, isAdd, showTitle, labelWidth } = toRefs(props);
|
||||
const {modelValue, isAdd, showTitle, labelWidth} = toRefs(props);
|
||||
|
||||
const data = reactive({
|
||||
rules: {
|
||||
@ -362,7 +371,7 @@ const data = reactive({
|
||||
{
|
||||
required: true,
|
||||
message: computed(() =>
|
||||
t("admin.validation.required", { type: t("admin.form.workingTime") }),
|
||||
t("admin.validation.required", {type: t("admin.form.workingTime")}),
|
||||
),
|
||||
trigger: ["change", "blur"],
|
||||
},
|
||||
@ -397,7 +406,7 @@ const data = reactive({
|
||||
],
|
||||
},
|
||||
});
|
||||
const { rules } = toRefs(data);
|
||||
const {rules} = toRefs(data);
|
||||
const formRef = ref(null);
|
||||
const fieldFormRef = ref(null);
|
||||
const customerFormRef = ref(null);
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div v-if="identityList.length" class="app-container">
|
||||
<div v-if="identityList.length" class="app-container h-screen flex flex-col">
|
||||
<el-row>
|
||||
<el-col :span="2">
|
||||
<el-button
|
||||
@ -23,14 +23,13 @@
|
||||
></el-alert>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-card shadow="always">
|
||||
<el-card v-if="false" shadow="always">
|
||||
<el-row :gutter="20" justify="center">
|
||||
<!-- v-show="item.id <= 2"-->
|
||||
<el-col
|
||||
v-for="item in identityList"
|
||||
:key="item.id"
|
||||
:span="4"
|
||||
@click="handleStatus(item)"
|
||||
>
|
||||
<el-card style="text-align: center; height: 100%">
|
||||
<el-image
|
||||
@ -39,7 +38,7 @@
|
||||
style="height: 100px"
|
||||
></el-image>
|
||||
<h3>
|
||||
{{ t("admin.identity.entrance.settleIn", { type: item.title }) }}
|
||||
{{ t("admin.identity.entrance.settleIn", {type: item.title}) }}
|
||||
</h3>
|
||||
<p v-if="item.status === '0'">
|
||||
{{
|
||||
@ -62,7 +61,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div v-else-if="item.status === '4'">
|
||||
<el-link type="primary">
|
||||
<el-link type="primary" @click="handleStatus(item)">
|
||||
<!-- 申请-->
|
||||
{{ t("admin.identity.entrance.apply") }}
|
||||
</el-link>
|
||||
@ -71,47 +70,86 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
|
||||
<el-card class="mt20" shadow="always">
|
||||
<div class="flex-1 flex justify-center flex-col">
|
||||
<el-card shadow="always">
|
||||
<el-row :gutter="20" justify="center">
|
||||
<!-- v-show="item.id <= 2"-->
|
||||
<el-col v-for="item in identityList" :key="item.id" :span="4">
|
||||
<el-col v-for="(item,idx) in identityList" :key="item.id" :span="4">
|
||||
<el-card style="text-align: center; height: 100%">
|
||||
<el-image
|
||||
fit="cover"
|
||||
src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg"
|
||||
:src="iconList[idx]"
|
||||
style="height: 100px"
|
||||
></el-image>
|
||||
<h3>
|
||||
{{ t("admin.identity.entrance.backstage", { type: item.title }) }}
|
||||
{{ t("admin.identity.entrance.backstage", {type: item.title}) }}
|
||||
</h3>
|
||||
<p v-if="item.status === '1'">
|
||||
<p v-if="item.status === '0'">
|
||||
{{
|
||||
// 审核中
|
||||
t("admin.identity.entrance.underReview")
|
||||
}}
|
||||
</p>
|
||||
<p v-else-if="item.status === '1'">
|
||||
<!-- <p> -->
|
||||
<el-link type="primary" @click="handlePage(item)">
|
||||
<el-link type="danger" class="!text-red-500" @click="handlePage(item,$event)">
|
||||
<!-- 进入-->
|
||||
{{ t("admin.identity.entrance.enter") }}
|
||||
</el-link>
|
||||
</p>
|
||||
<div v-else-if="item.status === '2'">
|
||||
<p class="text-danger">
|
||||
<!-- 审核拒绝-->
|
||||
{{ t("admin.identity.entrance.rejected") }}
|
||||
</p>
|
||||
<p
|
||||
class="text-navy"
|
||||
style="cursor: pointer"
|
||||
@click.stop="reason(item)"
|
||||
>
|
||||
<!-- 查看拒绝原因-->
|
||||
{{ t("admin.identity.entrance.viewReasonsForRejection") }}
|
||||
</p>
|
||||
</div>
|
||||
<div v-else-if="item.status === '4'">
|
||||
<el-link type="primary" @click="handleStatus(item)">
|
||||
<!-- 申请-->
|
||||
{{ t("admin.identity.entrance.apply") }}
|
||||
</el-link>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
// import store from "@/store";
|
||||
import { identity } from "@/api/identity";
|
||||
import { useRouter } from "vue-router";
|
||||
import {identity} from "@/api/identity";
|
||||
import {useRouter} from "vue-router";
|
||||
import usePermissionStore from "@/store/modules/permission";
|
||||
import useUserStore from "@/store/modules/user";
|
||||
import { ElMessageBox } from "element-plus";
|
||||
import { ArrowLeftBold } from "@element-plus/icons-vue";
|
||||
import { computed, onMounted, reactive, ref } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import {ElMessageBox} from "element-plus";
|
||||
import {ArrowLeftBold} from "@element-plus/icons-vue";
|
||||
import {computed, onMounted, reactive, ref} from "vue";
|
||||
import {useI18n} from "vue-i18n";
|
||||
import enterpriseIcon from '@/assets/icons/identity/企业.jpg'
|
||||
import expertIcon from '@/assets/icons/identity/专家.png'
|
||||
import labIcon from '@/assets/icons/identity/实验室.jpg'
|
||||
import researchIcon from '@/assets/icons/identity/科研机构.jpg'
|
||||
import agentIcon from '@/assets/icons/identity/经纪人.jpg'
|
||||
|
||||
const router = useRouter();
|
||||
const { t } = useI18n();
|
||||
const {t} = useI18n();
|
||||
const userStore = useUserStore();
|
||||
const iconList = [
|
||||
enterpriseIcon,
|
||||
expertIcon,
|
||||
labIcon,
|
||||
researchIcon,
|
||||
agentIcon
|
||||
]
|
||||
const identityList = ref([]);
|
||||
const identityDict = reactive({
|
||||
1: computed(() => t("admin.identity.entrance.company")),
|
||||
@ -161,19 +199,19 @@ function handleStatus(item) {
|
||||
if (item.status === "4" || item.status === "2") {
|
||||
if (item.id === 1) {
|
||||
// 企业
|
||||
router.push({ path: "/identity/enterprise" });
|
||||
router.push({path: "/identity/enterprise"});
|
||||
} else if (item.id === 2) {
|
||||
// 专家
|
||||
router.push({ path: "/identity/expert" });
|
||||
router.push({path: "/identity/expert"});
|
||||
} else if (item.id === 3) {
|
||||
// 实验室
|
||||
router.push({ path: "/identity/laboratory" });
|
||||
router.push({path: "/identity/laboratory"});
|
||||
} else if (item.id === 4) {
|
||||
// 研究机构
|
||||
router.push({ path: "/identity/research" });
|
||||
router.push({path: "/identity/research"});
|
||||
} else if (item.id === 5) {
|
||||
// 科技经纪人
|
||||
router.push({ path: "/identity/agent" });
|
||||
router.push({path: "/identity/agent"});
|
||||
}
|
||||
} else if (item.status === 1) {
|
||||
alert("您已入驻,请进入后台");
|
||||
@ -181,23 +219,24 @@ function handleStatus(item) {
|
||||
}
|
||||
}
|
||||
|
||||
const handlePage = async (item) => {
|
||||
const handlePage = async (item, ev) => {
|
||||
ev.stopPropagation()
|
||||
let routeData = "";
|
||||
if (item.id === 1) {
|
||||
// 企业
|
||||
routeData = router.resolve({ path: "/admin" });
|
||||
routeData = router.resolve({path: "/admin"});
|
||||
} else if (item.id === 2) {
|
||||
// 专家
|
||||
routeData = router.resolve({ path: "/admin" });
|
||||
routeData = router.resolve({path: "/admin"});
|
||||
} else if (item.id === 3) {
|
||||
// 研究机构
|
||||
routeData = router.resolve({ path: "/admin" });
|
||||
routeData = router.resolve({path: "/admin"});
|
||||
} else if (item.id === 4) {
|
||||
// 实验室
|
||||
routeData = router.resolve({ path: "/admin" });
|
||||
routeData = router.resolve({path: "/admin"});
|
||||
} else if (item.id === 5) {
|
||||
// 科技经纪人
|
||||
routeData = router.resolve({ path: "/admin" });
|
||||
routeData = router.resolve({path: "/admin"});
|
||||
}
|
||||
// return window.open(routeData.href, "_blank");
|
||||
// TODO ...... 切换身份待处理
|
||||
@ -215,3 +254,4 @@ const handlePage = async (item) => {
|
||||
// });
|
||||
};
|
||||
</script>
|
||||
|
||||
|
@ -381,7 +381,7 @@ function config(params) {
|
||||
const publicActivity = async () => {
|
||||
// const { data } = await config({ key: "mobile" });
|
||||
const data = {
|
||||
mobile: { name: t("activity.contactInformation"), value: "18156053255" },
|
||||
mobile: { name: t("activity.contactInformation"), value: "(+86)18156053255, zkxh2024@qq.com" },
|
||||
};
|
||||
mobile.value = data.mobile.value;
|
||||
dialogVisible.value = true;
|
||||
|
@ -1,15 +1,15 @@
|
||||
<script setup>
|
||||
import { reactive, ref, toRefs } from "vue";
|
||||
import { listNews } from "@/api/website/home/news";
|
||||
import {reactive, ref, toRefs} from "vue";
|
||||
import {listCategory, listNews} from "@/api/website/home/news";
|
||||
import Pagination from "@/components/Pagination/index.vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import {useI18n} from "vue-i18n";
|
||||
import dayjs from "dayjs";
|
||||
|
||||
const { t, locale } = useI18n();
|
||||
const {t, locale} = useI18n();
|
||||
const file_base_url = `${import.meta.env.VITE_APP_BASE_API}/file`;
|
||||
const total = ref(0);
|
||||
const categoryList = ref([])
|
||||
const newsList = ref([]);
|
||||
|
||||
const data = reactive({
|
||||
latestNews: {},
|
||||
queryParams: {
|
||||
@ -19,7 +19,7 @@ const data = reactive({
|
||||
},
|
||||
});
|
||||
|
||||
const { queryParams, latestNews } = toRefs(data);
|
||||
const {queryParams, latestNews} = toRefs(data);
|
||||
const getList = () => {
|
||||
listNews(queryParams.value).then((resp) => {
|
||||
newsList.value = resp.rows;
|
||||
@ -27,8 +27,14 @@ const getList = () => {
|
||||
});
|
||||
};
|
||||
|
||||
const getCategoryList = () => {
|
||||
listCategory().then((resp) => {
|
||||
categoryList.value = resp.data;
|
||||
});
|
||||
}
|
||||
|
||||
const getLatestNews = () => {
|
||||
listNews({ pageNum: 1, pageSize: 1 }).then((resp) => {
|
||||
listNews({pageNum: 1, pageSize: 1}).then((resp) => {
|
||||
if (resp.total) {
|
||||
latestNews.value = resp.rows[0];
|
||||
}
|
||||
@ -41,12 +47,13 @@ const handleTabChange = (tab) => {
|
||||
getList();
|
||||
};
|
||||
getList();
|
||||
getCategoryList()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="news-container" style="height: 100%">
|
||||
<div class="left">
|
||||
<img class="cover-image" :src="`${file_base_url}${latestNews?.cover}`" />
|
||||
<img class="cover-image" :src="`${file_base_url}${latestNews?.cover}`"/>
|
||||
<p class="title">{{ latestNews?.title }}</p>
|
||||
</div>
|
||||
<div class="right">
|
||||
@ -54,9 +61,14 @@ getList();
|
||||
@tab-change="handleTabChange"
|
||||
v-model="queryParams.classification"
|
||||
>
|
||||
<el-tab-pane name="0" :label="t('home.news')"></el-tab-pane>
|
||||
<el-tab-pane name="1" :label="t('home.policyAnalyzing')"></el-tab-pane>
|
||||
<el-tab-pane name="2" :label="t('home.announcement')"></el-tab-pane>
|
||||
<el-tab-pane v-for="item in categoryList" :name="item.id" :label="locale === 'zh'
|
||||
? item.categoryName
|
||||
: locale === 'ru'
|
||||
? item.categoryNameRu
|
||||
: ''"></el-tab-pane>
|
||||
<!-- <el-tab-pane name="0" :label="t('home.news')"></el-tab-pane>-->
|
||||
<!-- <el-tab-pane name="1" :label="t('home.policyAnalyzing')"></el-tab-pane>-->
|
||||
<!-- <el-tab-pane name="2" :label="t('home.announcement')"></el-tab-pane>-->
|
||||
</el-tabs>
|
||||
<ul class="news-list">
|
||||
<li class="news-item" v-for="news in newsList" :key="news.id">
|
||||
|
@ -20,11 +20,11 @@
|
||||
>{{ state.data[descriptionField] }}
|
||||
</el-tag>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<el-button class="x_btns">
|
||||
{{ t("innovation.buyService") }}
|
||||
</el-button>
|
||||
</div>
|
||||
<!-- <div class="text-right">-->
|
||||
<!-- <el-button class="x_btns">-->
|
||||
<!-- {{ t("innovation.buyService") }}-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
<div class="_info">
|
||||
<div class="_l">
|
||||
|
@ -49,8 +49,8 @@
|
||||
<span>{{ t("webSearch.zhongkeyunPlatform") }}</span>
|
||||
</div>
|
||||
<div class="line">
|
||||
{{ t("webSearch.contactInformation") }}({{ t("webSearch.wechat") }}):
|
||||
<span>18156053255</span>
|
||||
{{ t("webSearch.contactInformation") }}<!--({{ t("webSearch.wechat") }})-->:
|
||||
<span>(+86)18156053255, zkxh2024@qq.com</span>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
|
@ -8,7 +8,7 @@
|
||||
>
|
||||
<p>如需对接,请联系我们</p>
|
||||
<p>联系人:中科云平台</p>
|
||||
<p>联系电话:18156053255(微信同号)</p>
|
||||
<p>{{ t("webSearch.contactInformation") }}:(+86)18156053255, zkxh2024@qq.com</p>
|
||||
<template #footer>
|
||||
<el-button type="primary" @click="closeDialog">
|
||||
{{ t("common.close") }}</el-button
|
||||
|
@ -32,12 +32,12 @@
|
||||
</div>
|
||||
<div class="line">
|
||||
<!-- 联系方式-->
|
||||
{{ t("webSearch.contactInformation") }}
|
||||
(
|
||||
<!-- 微信同号-->
|
||||
{{ t("webSearch.wechat") }}
|
||||
):
|
||||
<span>18156053255</span>
|
||||
{{ t("webSearch.contactInformation") }}:
|
||||
<!-- (-->
|
||||
<!-- <!– 微信同号–>-->
|
||||
<!-- {{ t("webSearch.wechat") }}-->
|
||||
<!-- )-->
|
||||
<span>(+86)18156053255, zkxh2024@qq.com</span>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
|
@ -60,9 +60,9 @@
|
||||
</div>
|
||||
<div class="line">
|
||||
<!-- 联系方式-->
|
||||
{{ t("webSearch.contactInformation") }}
|
||||
({{ t("webSearch.wechat") }}):
|
||||
<span>18156053255</span>
|
||||
{{ t("webSearch.contactInformation") }}:
|
||||
<!-- ({{ t("webSearch.wechat") }})-->
|
||||
<span>(+86)18156053255, zkxh2024@qq.com</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="keywords" style="flex: 1">
|
||||
|
12
tailwind.config.js
Normal file
12
tailwind.config.js
Normal file
@ -0,0 +1,12 @@
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
module.exports = {
|
||||
content: [
|
||||
"./index.html",
|
||||
"./src/**/*.{vue,js,ts,jsx,tsx}",
|
||||
],
|
||||
theme: {
|
||||
extend: {},
|
||||
},
|
||||
plugins: [],
|
||||
}
|
||||
|
@ -1,11 +1,11 @@
|
||||
import { defineConfig, loadEnv } from "vite";
|
||||
import {defineConfig, loadEnv} from "vite";
|
||||
import path from "path";
|
||||
import createVitePlugins from "./vite/plugins";
|
||||
|
||||
// https://vitejs.dev/config/
|
||||
export default defineConfig(({ mode, command }) => {
|
||||
export default defineConfig(({mode, command}) => {
|
||||
const env = loadEnv(mode, process.cwd());
|
||||
const { VITE_APP_ENV } = env;
|
||||
const {VITE_APP_ENV} = env;
|
||||
return {
|
||||
// 部署生产环境和开发环境下的URL。
|
||||
// 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上
|
||||
@ -32,7 +32,7 @@ export default defineConfig(({ mode, command }) => {
|
||||
// https://cn.vitejs.dev/config/#server-proxy
|
||||
"/dev-api": {
|
||||
// target: "http://101.34.131.16:1618",
|
||||
// target: "http://129.211.170.150/api",
|
||||
// target: "http://129.211.170.150:82/api",
|
||||
target: "http://127.0.0.1:1619",
|
||||
// target: 'http://172.18.3.127:1618',
|
||||
changeOrigin: true,
|
||||
@ -54,6 +54,8 @@ export default defineConfig(({ mode, command }) => {
|
||||
},
|
||||
},
|
||||
},
|
||||
require("tailwindcss"),
|
||||
require("autoprefixer"),
|
||||
],
|
||||
},
|
||||
},
|
||||
|
Reference in New Issue
Block a user