bug fix and performance improvements
This commit is contained in:
1
src/assets/world-outline-low-precision.json
Normal file
1
src/assets/world-outline-low-precision.json
Normal file
File diff suppressed because one or more lines are too long
111599
src/assets/world.json
Normal file
111599
src/assets/world.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -216,7 +216,7 @@ watch(
|
||||
pagePath.value = route.path;
|
||||
|
||||
const switchLocale = () => {
|
||||
settingsStore.toggleLocale()
|
||||
settingsStore.toggleLocale();
|
||||
// if (settingsStore.locale === "zh") {
|
||||
// settingsStore.setLocale("ru");
|
||||
// } else if (settingsStore.locale === "ru") {
|
||||
|
||||
@ -15,13 +15,16 @@
|
||||
|
||||
<script setup>
|
||||
import { getCodeImg } from "@/api/login";
|
||||
import { computed } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
|
||||
const { t } = useI18n();
|
||||
const props = defineProps({
|
||||
mobile: String,
|
||||
});
|
||||
|
||||
const disabled = ref(true);
|
||||
const buttonName = ref("获取验证码");
|
||||
const buttonName = ref(t("login.getVerificationCode"));
|
||||
const isDisabled = ref(false);
|
||||
const time = ref(60);
|
||||
|
||||
@ -56,11 +59,13 @@ function getCode() {
|
||||
width: 30%;
|
||||
height: 38px;
|
||||
float: right;
|
||||
|
||||
img {
|
||||
cursor: pointer;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
.login-code-img {
|
||||
height: 36px;
|
||||
}
|
||||
|
||||
@ -866,7 +866,8 @@ export const laboratoryRoutes = [
|
||||
},
|
||||
{
|
||||
path: "release",
|
||||
component: () => import("@/views/admin/laboratory/research/achievement/release"),
|
||||
component: () =>
|
||||
import("@/views/admin/laboratory/research/achievement/release"),
|
||||
hidden: true,
|
||||
name: "Release",
|
||||
meta: {
|
||||
|
||||
@ -362,3 +362,36 @@ export const cooperationOptions = [
|
||||
ru: "Другие",
|
||||
},
|
||||
];
|
||||
|
||||
export const countryOptions = [
|
||||
{
|
||||
key: "zh",
|
||||
zh: "中国",
|
||||
ru: "Китай",
|
||||
},
|
||||
{
|
||||
key: "ru",
|
||||
zh: "俄罗斯",
|
||||
ru: "Россия",
|
||||
},
|
||||
{
|
||||
key: "tj",
|
||||
zh: "塔吉克斯坦",
|
||||
ru: "Таджикистан",
|
||||
},
|
||||
{
|
||||
key: "kg",
|
||||
zh: "土库曼斯坦",
|
||||
ru: "Туркменистан",
|
||||
},
|
||||
{
|
||||
key: "uz",
|
||||
zh: "乌兹别克斯坦",
|
||||
ru: "Узбекистан",
|
||||
},
|
||||
{
|
||||
key: "kz",
|
||||
zh: "哈萨克斯坦",
|
||||
ru: "Казахстан",
|
||||
},
|
||||
];
|
||||
|
||||
@ -86,6 +86,7 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- COMPLETED:-->
|
||||
<!-- <CityOptions
|
||||
v-model="form"
|
||||
:labelWidth="labelWidth"
|
||||
@ -341,4 +342,4 @@ onMounted(() => {
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</script>
|
||||
|
||||
@ -90,6 +90,21 @@
|
||||
:labelWidth="labelWidth"
|
||||
ref="cityFormRef"
|
||||
></city-options>-->
|
||||
<!-- TODO:-->
|
||||
<!-- <el-form-item :label="t('admin.form.country')" prop="country">
|
||||
<el-select
|
||||
v-model="form.country"
|
||||
:placeholder="
|
||||
t('admin.form.pleaseSelect', { type: t('admin.form.country') })
|
||||
"
|
||||
>
|
||||
<el-option
|
||||
v-for="option in countryOptions"
|
||||
:label="option[locale]"
|
||||
:value="option.key"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>-->
|
||||
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
@ -241,8 +256,9 @@ import {
|
||||
updateTechnologyDemand,
|
||||
} from "@/api/admin/enterprise/demand";
|
||||
import tab from "@/plugins/tab";
|
||||
import { countryOptions } from "@/utils/parameter";
|
||||
|
||||
const { t } = useI18n();
|
||||
const { t, locale } = useI18n();
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const data = reactive({
|
||||
|
||||
@ -92,15 +92,15 @@
|
||||
@click="handleResults(row)"
|
||||
>{{ t("webSearch.viewMatchingResults") }}
|
||||
</el-button>
|
||||
<!-- <el-button-->
|
||||
<!-- v-if="queryParams.status == 1"-->
|
||||
<!-- disabled-->
|
||||
<!-- size="small"-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="View"-->
|
||||
<!-- @click="checkEnterpriseInfo(row.id)"-->
|
||||
<!-- >{{ t("tips.browseEnterpriseInformation") }}-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <el-button-->
|
||||
<!-- v-if="queryParams.status == 1"-->
|
||||
<!-- disabled-->
|
||||
<!-- size="small"-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="View"-->
|
||||
<!-- @click="checkEnterpriseInfo(row.id)"-->
|
||||
<!-- >{{ t("tips.browseEnterpriseInformation") }}-->
|
||||
<!-- </el-button>-->
|
||||
<el-button
|
||||
v-if="queryParams.status == 0"
|
||||
size="small"
|
||||
@ -241,4 +241,4 @@ const checkEnterpriseInfo = (id) => {
|
||||
onActivated(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
</script>
|
||||
|
||||
@ -98,20 +98,21 @@
|
||||
:title="t('webSearch.applicationCustomers')"
|
||||
/>
|
||||
|
||||
<!-- <CityOptions-->
|
||||
<!-- ref="cityFormRef"-->
|
||||
<!-- v-model="modelValue"-->
|
||||
<!-- :labelWidth="labelWidth"-->
|
||||
<!-- ></CityOptions>-->
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item :label="t('admin.form.country')" prop="country">
|
||||
<el-input
|
||||
<el-select
|
||||
v-model="modelValue.country"
|
||||
:placeholder="
|
||||
t('admin.form.placeholder', { type: t('admin.form.country') })
|
||||
t('admin.form.pleaseSelect', { type: t('admin.form.country') })
|
||||
"
|
||||
></el-input>
|
||||
>
|
||||
<el-option
|
||||
v-for="option in countryOptions"
|
||||
:label="option[locale]"
|
||||
:value="option.key"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -288,6 +289,7 @@ import FieldOptions from "@/views/components/FieldOptions";
|
||||
import InputBoxAdd from "@/views/components/InputBoxAdd";
|
||||
import {
|
||||
cooperationOptions,
|
||||
countryOptions,
|
||||
leadOptions,
|
||||
maturityOptions,
|
||||
} from "@/utils/parameter";
|
||||
|
||||
@ -85,11 +85,21 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- <CityOptions
|
||||
v-model="formData"
|
||||
:labelWidth="labelWidth"
|
||||
ref="cityFormRef"
|
||||
/> -->
|
||||
<!--COMPLETED-->
|
||||
<!-- <el-form-item :label="t('admin.form.country')" prop="country">
|
||||
<el-select
|
||||
v-model="formData.country"
|
||||
:placeholder="
|
||||
t('admin.form.pleaseSelect', { type: t('admin.form.country') })
|
||||
"
|
||||
>
|
||||
<el-option
|
||||
v-for="option in countryOptions"
|
||||
:label="option[locale]"
|
||||
:value="option.key"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>-->
|
||||
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
@ -153,7 +163,7 @@ import {
|
||||
insertDemand,
|
||||
updateDemand,
|
||||
} from "@/api/admin/expert/demand";
|
||||
import { demandCategoryList } from "@/utils/parameter";
|
||||
import { countryOptions, demandCategoryList } from "@/utils/parameter";
|
||||
import { uniqueId } from "lodash";
|
||||
import tab from "@/plugins/tab"; // import CityOptions from "@/views/components/CityOptions";
|
||||
import { ElMessage } from "element-plus";
|
||||
@ -331,4 +341,4 @@ if (route.query.id) {
|
||||
tab.updatePage(obj);
|
||||
getDetail();
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
|
||||
@ -116,6 +116,7 @@
|
||||
"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- COMPLETED -->
|
||||
<!-- <div class="hide_required">
|
||||
<CityOptions v-model="form" :labelWidth="100" :is_required="false" />
|
||||
</div> -->
|
||||
|
||||
@ -31,7 +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";
|
||||
import { updateAchievement } from "@/api/admin/laboratory/achievement";
|
||||
|
||||
const labelWidth = 140;
|
||||
|
||||
|
||||
@ -1,63 +1,63 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-card style="width: 55%; margin: 0 auto">
|
||||
<!-- <p>-->
|
||||
<!-- <b> {{ t("admin.form.basicData") }}</b>-->
|
||||
<!-- </p>-->
|
||||
<!-- <el-form-->
|
||||
<!-- ref="personFormRef"-->
|
||||
<!-- :model="personForm"-->
|
||||
<!-- :rules="rules"-->
|
||||
<!-- label-width="100px"-->
|
||||
<!-- >-->
|
||||
<!-- <el-form-item :label="t('admin.form.fullName')" prop="nickName">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="personForm.nickName"-->
|
||||
<!-- :placeholder="-->
|
||||
<!-- t('admin.form.placeholder', { type: t('admin.form.fullName') })-->
|
||||
<!-- "-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item :label="t('admin.form.mobile')" prop="mobile">-->
|
||||
<!-- <!– :maxlength="11"–>-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="personForm.mobile"-->
|
||||
<!-- oninput="value = value.replace(/\D/,'')"-->
|
||||
<!-- :placeholder="-->
|
||||
<!-- t('admin.form.placeholder', { type: t('admin.form.mobile') })-->
|
||||
<!-- "-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item :label="t('admin.form.email')" prop="email">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="personForm.email"-->
|
||||
<!-- :placeholder="-->
|
||||
<!-- t('admin.form.placeholder', { type: t('admin.form.email') })-->
|
||||
<!-- "-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item :label="t('admin.form.position')" prop="post">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="personForm.post"-->
|
||||
<!-- :placeholder="-->
|
||||
<!-- t('admin.form.placeholder', { type: t('admin.form.position') })-->
|
||||
<!-- "-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item :label="t('admin.form.phone')" prop="phone">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="personForm.phone"-->
|
||||
<!-- :placeholder="-->
|
||||
<!-- t('admin.form.placeholder', { type: t('admin.form.phone') })-->
|
||||
<!-- "-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item>-->
|
||||
<!-- <el-button type="primary" @click="submitPersonalInfo"-->
|
||||
<!-- >{{ t("admin.common.submit") }}-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-form>-->
|
||||
<!-- <p>-->
|
||||
<!-- <b> {{ t("admin.form.basicData") }}</b>-->
|
||||
<!-- </p>-->
|
||||
<!-- <el-form-->
|
||||
<!-- ref="personFormRef"-->
|
||||
<!-- :model="personForm"-->
|
||||
<!-- :rules="rules"-->
|
||||
<!-- label-width="100px"-->
|
||||
<!-- >-->
|
||||
<!-- <el-form-item :label="t('admin.form.fullName')" prop="nickName">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="personForm.nickName"-->
|
||||
<!-- :placeholder="-->
|
||||
<!-- t('admin.form.placeholder', { type: t('admin.form.fullName') })-->
|
||||
<!-- "-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item :label="t('admin.form.mobile')" prop="mobile">-->
|
||||
<!-- <!– :maxlength="11"–>-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="personForm.mobile"-->
|
||||
<!-- oninput="value = value.replace(/\D/,'')"-->
|
||||
<!-- :placeholder="-->
|
||||
<!-- t('admin.form.placeholder', { type: t('admin.form.mobile') })-->
|
||||
<!-- "-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item :label="t('admin.form.email')" prop="email">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="personForm.email"-->
|
||||
<!-- :placeholder="-->
|
||||
<!-- t('admin.form.placeholder', { type: t('admin.form.email') })-->
|
||||
<!-- "-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item :label="t('admin.form.position')" prop="post">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="personForm.post"-->
|
||||
<!-- :placeholder="-->
|
||||
<!-- t('admin.form.placeholder', { type: t('admin.form.position') })-->
|
||||
<!-- "-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item :label="t('admin.form.phone')" prop="phone">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="personForm.phone"-->
|
||||
<!-- :placeholder="-->
|
||||
<!-- t('admin.form.placeholder', { type: t('admin.form.phone') })-->
|
||||
<!-- "-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item>-->
|
||||
<!-- <el-button type="primary" @click="submitPersonalInfo"-->
|
||||
<!-- >{{ t("admin.common.submit") }}-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-form>-->
|
||||
<p>
|
||||
<b>{{ t("admin.form.data", { type: t("admin.common.lab") }) }}</b>
|
||||
</p>
|
||||
|
||||
@ -350,4 +350,4 @@ const handleAdd = () => {
|
||||
};
|
||||
|
||||
getList();
|
||||
</script>
|
||||
</script>
|
||||
|
||||
@ -64,12 +64,20 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- <CityOptions-->
|
||||
<!-- ref="cityForm"-->
|
||||
<!-- v-model="formData"-->
|
||||
<!-- :labelWidth="labelWidth"-->
|
||||
<!-- />-->
|
||||
|
||||
<!-- <el-form-item :label="t('admin.form.country')" prop="country">
|
||||
<el-select
|
||||
v-model="formData.country"
|
||||
:placeholder="
|
||||
t('admin.form.pleaseSelect', { type: t('admin.form.country') })
|
||||
"
|
||||
>
|
||||
<el-option
|
||||
v-for="option in countryOptions"
|
||||
:label="option[locale]"
|
||||
:value="option.key"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>-->
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item :label="t('admin.form.demandContact')" prop="name">
|
||||
@ -133,8 +141,9 @@ import { useRoute } from "vue-router";
|
||||
import tab from "@/plugins/tab";
|
||||
import { serviceDemandInfo } from "@/api/admin/laboratory/service-demand";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { countryOptions } from "@/utils/parameter";
|
||||
|
||||
const { t } = useI18n();
|
||||
const { t, locale } = useI18n();
|
||||
|
||||
const data = reactive({
|
||||
formData: {
|
||||
|
||||
@ -1,66 +1,66 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-card style="width: 55%; margin: 0 auto">
|
||||
<p>
|
||||
<b> {{ t("admin.form.basicData") }}</b>
|
||||
</p>
|
||||
<el-form
|
||||
ref="personFormRef"
|
||||
:model="personForm"
|
||||
:rules="rules"
|
||||
label-width="100px"
|
||||
>
|
||||
<el-form-item :label="t('admin.form.fullName')" prop="nickName">
|
||||
<el-input
|
||||
v-model="personForm.nickName"
|
||||
:placeholder="
|
||||
t('admin.form.placeholder', { type: t('admin.form.fullName') })
|
||||
"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="t('admin.form.mobile')" prop="mobile">
|
||||
<el-input
|
||||
v-model="personForm.mobile"
|
||||
:placeholder="
|
||||
t('admin.form.placeholder', { type: t('admin.form.mobile') })
|
||||
"
|
||||
/>
|
||||
<!-- oninput="value=value.replace(/\D/,'')"-->
|
||||
</el-form-item>
|
||||
<el-form-item :label="t('admin.form.email')" prop="email">
|
||||
<el-input
|
||||
v-model="personForm.email"
|
||||
:placeholder="
|
||||
t('admin.form.placeholder', { type: t('admin.form.email') })
|
||||
"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="t('admin.form.position')" prop="post">
|
||||
<el-input
|
||||
v-model="personForm.post"
|
||||
:placeholder="
|
||||
t('admin.form.placeholder', { type: t('admin.form.position') })
|
||||
"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="t('admin.form.phone')" prop="phone">
|
||||
<el-input
|
||||
v-model="personForm.phone"
|
||||
:placeholder="
|
||||
t('admin.form.placeholder', { type: t('admin.form.phone') })
|
||||
"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submitPersonalInfo"
|
||||
>{{ t("admin.common.submit") }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- <p>-->
|
||||
<!-- <b> {{ t("admin.form.basicData") }}</b>-->
|
||||
<!-- </p>-->
|
||||
<!-- <el-form-->
|
||||
<!-- ref="personFormRef"-->
|
||||
<!-- :model="personForm"-->
|
||||
<!-- :rules="rules"-->
|
||||
<!-- label-width="100px"-->
|
||||
<!-- >-->
|
||||
<!-- <el-form-item :label="t('admin.form.fullName')" prop="nickName">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="personForm.nickName"-->
|
||||
<!-- :placeholder="-->
|
||||
<!-- t('admin.form.placeholder', { type: t('admin.form.fullName') })-->
|
||||
<!-- "-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item :label="t('admin.form.mobile')" prop="mobile">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="personForm.mobile"-->
|
||||
<!-- :placeholder="-->
|
||||
<!-- t('admin.form.placeholder', { type: t('admin.form.mobile') })-->
|
||||
<!-- "-->
|
||||
<!-- />-->
|
||||
<!-- <!– oninput="value=value.replace(/\D/,'')"–>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item :label="t('admin.form.email')" prop="email">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="personForm.email"-->
|
||||
<!-- :placeholder="-->
|
||||
<!-- t('admin.form.placeholder', { type: t('admin.form.email') })-->
|
||||
<!-- "-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item :label="t('admin.form.position')" prop="post">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="personForm.post"-->
|
||||
<!-- :placeholder="-->
|
||||
<!-- t('admin.form.placeholder', { type: t('admin.form.position') })-->
|
||||
<!-- "-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item :label="t('admin.form.phone')" prop="phone">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="personForm.phone"-->
|
||||
<!-- :placeholder="-->
|
||||
<!-- t('admin.form.placeholder', { type: t('admin.form.phone') })-->
|
||||
<!-- "-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item>-->
|
||||
<!-- <el-button type="primary" @click="submitPersonalInfo"-->
|
||||
<!-- >{{ t("admin.common.submit") }}-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-form>-->
|
||||
<p>
|
||||
<b>{{ t("admin.form.data", { type: t("admin.common.research") }) }}</b>
|
||||
</p>
|
||||
<research-form ref="researchFormRef" v-model="form" :is-add="false" />
|
||||
<research-form ref="researchFormRef" v-model="form" :is-add="true" />
|
||||
<div :style="{ marginLeft: labelWidth + 'px' }">
|
||||
<el-button type="primary" @click="submitExpertForm"
|
||||
>{{ t("admin.common.submit") }}
|
||||
|
||||
@ -65,11 +65,21 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<CityOptions
|
||||
ref="cityForm"
|
||||
v-model="formData"
|
||||
:labelWidth="labelWidth"
|
||||
/>
|
||||
<!--COMPLETED-->
|
||||
<el-form-item :label="t('admin.form.country')" prop="country">
|
||||
<el-select
|
||||
v-model="formData.country"
|
||||
:placeholder="
|
||||
t('admin.form.pleaseSelect', { type: t('admin.form.country') })
|
||||
"
|
||||
>
|
||||
<el-option
|
||||
v-for="option in countryOptions"
|
||||
:label="option[locale]"
|
||||
:value="option.key"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
@ -135,8 +145,9 @@ import { useRoute } from "vue-router";
|
||||
import tab from "@/plugins/tab";
|
||||
import { serviceDemandInfo } from "@/api/admin/research/service-demand";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { countryOptions } from "@/utils/parameter";
|
||||
|
||||
const { t } = useI18n();
|
||||
const { t, locale } = useI18n();
|
||||
const data = reactive({
|
||||
formData: {
|
||||
check: [],
|
||||
|
||||
@ -111,12 +111,18 @@
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item :label="t('admin.form.country')" prop="country">
|
||||
<el-input
|
||||
<el-select
|
||||
v-model="modelValue.country"
|
||||
:placeholder="
|
||||
t('admin.form.placeholder', { type: t('admin.form.country') })
|
||||
t('admin.form.pleaseSelect', { type: t('admin.form.country') })
|
||||
"
|
||||
></el-input>
|
||||
>
|
||||
<el-option
|
||||
v-for="option in countryOptions"
|
||||
:label="option[locale]"
|
||||
:value="option.key"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -216,7 +222,7 @@
|
||||
import FieldOptions from "../FieldOptions";
|
||||
import InputBoxAdd from "../InputBoxAdd";
|
||||
// import { researchSelect, laboratorySelect } from "@/api/identity/index";
|
||||
import { enterpriseOptions } from "@/utils/parameter";
|
||||
import { countryOptions, enterpriseOptions } from "@/utils/parameter";
|
||||
import { computed, reactive, ref, toRefs } from "vue";
|
||||
import ImageUpload from "@/components/ImageUpload/index.vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
|
||||
@ -68,13 +68,19 @@
|
||||
</el-col>
|
||||
</el-row> -->
|
||||
|
||||
<!-- <CityOptions-->
|
||||
<!-- v-model="modelValue"-->
|
||||
<!-- :labelWidth="labelWidth"-->
|
||||
<!-- ref="cityFormRef"-->
|
||||
<!-- />-->
|
||||
<el-form-item :label="t('admin.form.country')" prop="country">
|
||||
<el-input v-model="modelValue.country"></el-input>
|
||||
<el-select
|
||||
v-model="modelValue.country"
|
||||
:placeholder="
|
||||
t('admin.form.pleaseSelect', { type: t('admin.form.country') })
|
||||
"
|
||||
>
|
||||
<el-option
|
||||
v-for="option in countryOptions"
|
||||
:label="option[locale]"
|
||||
:value="option.key"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
@ -216,7 +222,7 @@
|
||||
<script name="ExpertForm" setup>
|
||||
import FieldOptions from "@/views/components/FieldOptions";
|
||||
import InputBoxAdd from "@/views/components/InputBoxAdd";
|
||||
import { educationOptions } from "@/utils/parameter";
|
||||
import { countryOptions, educationOptions } from "@/utils/parameter";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { computed, toRefs } from "vue";
|
||||
|
||||
|
||||
@ -75,11 +75,21 @@
|
||||
:title="t('admin.form.keywords')"
|
||||
/>
|
||||
|
||||
<!-- <CityOptions-->
|
||||
<!-- ref="cityFormRef"-->
|
||||
<!-- v-model="modelValue"-->
|
||||
<!-- :labelWidth="labelWidth"-->
|
||||
<!-- />-->
|
||||
<!-- COMPLETED-->
|
||||
<!-- <el-form-item :label="t('admin.form.country')" prop="country">
|
||||
<el-select
|
||||
v-model="modelValue.country"
|
||||
:placeholder="
|
||||
t('admin.form.pleaseSelect', { type: t('admin.form.country') })
|
||||
"
|
||||
>
|
||||
<el-option
|
||||
v-for="option in countryOptions"
|
||||
:label="option[locale]"
|
||||
:value="option.key"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>-->
|
||||
|
||||
<!-- <el-row>-->
|
||||
<!-- <el-col :span="24">-->
|
||||
@ -215,8 +225,9 @@ import FieldOptions from "@/views/components/FieldOptions";
|
||||
import InputBoxAdd from "@/views/components/InputBoxAdd";
|
||||
import { computed, reactive, ref, toRefs } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { countryOptions } from "@/utils/parameter";
|
||||
|
||||
const { t } = useI18n();
|
||||
const { t, locale } = useI18n();
|
||||
const props = defineProps({
|
||||
modelValue: Object,
|
||||
isAdd: {
|
||||
|
||||
@ -60,21 +60,22 @@
|
||||
:labelWidth="labelWidth"
|
||||
ref="fieldFormRef"
|
||||
/>
|
||||
<!-- <city-options-->
|
||||
<!-- v-model="modelValue"-->
|
||||
<!-- :labelWidth="labelWidth"-->
|
||||
<!-- ref="cityFormRef"-->
|
||||
<!-- ></city-options>-->
|
||||
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item :label="t('admin.form.country')" prop="country">
|
||||
<el-input
|
||||
<el-select
|
||||
v-model="modelValue.country"
|
||||
:placeholder="
|
||||
t('admin.form.placeholder', { type: t('admin.form.country') })
|
||||
t('admin.form.pleaseSelect', { type: t('admin.form.country') })
|
||||
"
|
||||
></el-input>
|
||||
>
|
||||
<el-option
|
||||
v-for="option in countryOptions"
|
||||
:label="option[locale]"
|
||||
:value="option.key"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -215,6 +216,7 @@ import FieldOptions from "@/views/components/FieldOptions";
|
||||
import InputBoxAdd from "@/views/components/InputBoxAdd";
|
||||
import {
|
||||
cooperationOptions,
|
||||
countryOptions,
|
||||
leadOptions,
|
||||
maturityOptions,
|
||||
} from "@/utils/parameter";
|
||||
|
||||
@ -43,11 +43,20 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- <CityOptions-->
|
||||
<!-- ref="cityFormRef"-->
|
||||
<!-- v-model="modelValue"-->
|
||||
<!-- :labelWidth="labelWidth"-->
|
||||
<!-- />-->
|
||||
<el-form-item :label="t('admin.form.country')" prop="country">
|
||||
<el-select
|
||||
v-model="modelValue.country"
|
||||
:placeholder="
|
||||
t('admin.form.pleaseSelect', { type: t('admin.form.country') })
|
||||
"
|
||||
>
|
||||
<el-option
|
||||
v-for="option in countryOptions"
|
||||
:label="option[locale]"
|
||||
:value="option.key"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
@ -113,8 +122,9 @@ import { computed, reactive, ref } from "vue";
|
||||
import FieldOptions from "../FieldOptions";
|
||||
import InputBoxAdd from "../InputBoxAdd";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { countryOptions } from "@/utils/parameter";
|
||||
|
||||
const { t } = useI18n();
|
||||
const { t, locale } = useI18n();
|
||||
const formRef = ref();
|
||||
// const cityFormRef = ref();
|
||||
const fieldFormRef = ref();
|
||||
@ -160,6 +170,17 @@ const rules = reactive({
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
country: [
|
||||
{
|
||||
required: true,
|
||||
message: computed(() =>
|
||||
t("admin.form.pleaseSelect", {
|
||||
type: t("admin.form.country"),
|
||||
})
|
||||
),
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
code: [
|
||||
{
|
||||
required: true,
|
||||
|
||||
@ -21,7 +21,7 @@ import RegionPagine from "@/views/website/home/comp/RegionPagine.vue";
|
||||
import html2canvas from "html2canvas";
|
||||
import anime from "animejs";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import geoJSONRU from "@/assets/custom.geo.json";
|
||||
import geoJSONRU from "@/assets/world.json";
|
||||
|
||||
const { t, locale } = useI18n();
|
||||
const leftBoxPageNum = ref(1);
|
||||
@ -205,7 +205,15 @@ const loadChinaDistrict = (adcode) => {
|
||||
};
|
||||
|
||||
const loadRussiaDistrict = () => {
|
||||
mapData.value = geoJSONRU.features.map((el) => {
|
||||
const areaProp = el.properties;
|
||||
return {
|
||||
name: areaProp.name,
|
||||
value: 0,
|
||||
};
|
||||
});
|
||||
registerMap("map", { geoJSON: geoJSONRU, specialAreas: {} });
|
||||
options.series[0].data = mapData.value;
|
||||
myEcharts.value.setOption(options);
|
||||
// TODO:get count
|
||||
};
|
||||
@ -216,14 +224,14 @@ const backMap = () => {
|
||||
};
|
||||
|
||||
onMounted(async () => {
|
||||
await loadAMap();
|
||||
// await loadAMap();
|
||||
myEcharts.value = init(mapRef.value);
|
||||
myEcharts.value.on("click", mapClick);
|
||||
if (locale.value === "zh") {
|
||||
loadChinaDistrict("100000");
|
||||
} else {
|
||||
loadRussiaDistrict();
|
||||
}
|
||||
// myEcharts.value.on("click", mapClick);
|
||||
// if (locale.value === "zh") {
|
||||
// loadChinaDistrict("100000");
|
||||
// } else {
|
||||
// }
|
||||
loadRussiaDistrict();
|
||||
});
|
||||
|
||||
/**
|
||||
@ -317,21 +325,21 @@ watch(mapIndex, (newVal, oldVal) => {
|
||||
isScrolling.value = true;
|
||||
const direction = newVal > oldVal ? "down" : "up";
|
||||
playScrollAnimation(direction, () => {});
|
||||
if (locale.value === "zh") {
|
||||
loadChinaDistrict("100000");
|
||||
} else {
|
||||
loadRussiaDistrict();
|
||||
}
|
||||
// if (locale.value === "zh") {
|
||||
// loadChinaDistrict("100000");
|
||||
// } else {
|
||||
loadRussiaDistrict();
|
||||
// }
|
||||
});
|
||||
|
||||
watch(locale, (newVal) => {
|
||||
console.log(newVal);
|
||||
if (newVal === "zh") {
|
||||
loadChinaDistrict("100000");
|
||||
} else if (newVal === "ru") {
|
||||
loadRussiaDistrict();
|
||||
}
|
||||
});
|
||||
// watch(locale, (newVal) => {
|
||||
// console.log(newVal);
|
||||
// // if (newVal === "zh") {
|
||||
// // loadChinaDistrict("100000");
|
||||
// // } else if (newVal === "ru") {
|
||||
// loadRussiaDistrict();
|
||||
// // }
|
||||
// });
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@ -341,7 +349,7 @@ watch(locale, (newVal) => {
|
||||
<div class="title">{{ methods[mapIndex].title.value }}</div>
|
||||
<div v-if="loading" class="loading-modal"></div>
|
||||
<!-- 返回上一级按钮 -->
|
||||
<div class="back-btn" @click="backMap">
|
||||
<div class="back-btn" @click="">
|
||||
<img :src="backBtnPng" alt="back" />
|
||||
</div>
|
||||
<!-- 人数表格 -->
|
||||
@ -470,7 +478,7 @@ watch(locale, (newVal) => {
|
||||
|
||||
> .title {
|
||||
position: absolute;
|
||||
top: 75px;
|
||||
top: 20px;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
font-size: 36px;
|
||||
|
||||
@ -138,7 +138,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 底部 -->
|
||||
<div class="foot">Copyright © 2007-2021 {{ t('footer.copyRight') }}</div>
|
||||
<div class="foot">Copyright © 2007-2021 {{ t("footer.copyRight") }}</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -146,6 +146,7 @@
|
||||
import Cookies from "js-cookie"; // import { encrypt, decrypt } from "@/utils/jsencrypt";
|
||||
import md5 from "js-md5";
|
||||
import Retrieve from "../retrieve";
|
||||
import Register from "../register";
|
||||
import WebGetCode from "@/components/webGetCode";
|
||||
import useUserStore from "@/store/modules/user";
|
||||
import { useRouter } from "vue-router";
|
||||
|
||||
@ -185,4 +185,4 @@ function createdData(arr) {
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
<industrySelect @industryChange="industryChange"></industrySelect>
|
||||
<div class="total">
|
||||
{{ t("webSearch.findNum") }}
|
||||
<span>{{ state.total }}</span> {{t('webSearch.findLabNum')}}
|
||||
<span>{{ state.total }}</span> {{ t("webSearch.findLabNum") }}
|
||||
</div>
|
||||
<div v-loading="loading">
|
||||
<section v-for="item in state.list" :key="item.id">
|
||||
|
||||
@ -11,7 +11,8 @@
|
||||
<div style="position: relative">
|
||||
<!-- <industrySelect @industryChange="industryChange"></industrySelect> -->
|
||||
<div class="total">
|
||||
{{ t("webSearch.findNum") }} <span>{{ total }}</span> {{t('webSearch.findLabNum')}}
|
||||
{{ t("webSearch.findNum") }} <span>{{ total }}</span>
|
||||
{{ t("webSearch.findLabNum") }}
|
||||
</div>
|
||||
<div v-loading="loading">
|
||||
<section v-for="item in searchResults" :key="item.id">
|
||||
|
||||
@ -216,4 +216,4 @@ const getDataList = async () => {
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@ -122,8 +122,9 @@
|
||||
</div>
|
||||
<section>
|
||||
{{
|
||||
patentOptions.find((el) => el.key == state.patentDetail.kind)
|
||||
?.[locale]
|
||||
patentOptions.find(
|
||||
(el) => el.key == state.patentDetail.kind
|
||||
)?.[locale]
|
||||
}}
|
||||
</section>
|
||||
<div style="padding: 20px 0">
|
||||
@ -233,7 +234,7 @@ import { useRoute, useRouter } from "vue-router";
|
||||
import docking from "./components/docking.vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
const showDocking = ref(false);
|
||||
const { t,locale } = useI18n();
|
||||
const { t, locale } = useI18n();
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const loading = ref(true);
|
||||
|
||||
@ -384,4 +384,4 @@ function getDataList() {
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user