update i18n

This commit is contained in:
2023-07-17 15:47:45 +08:00
parent 2bc08f4a39
commit 1f3f9d7b31
94 changed files with 1215 additions and 478 deletions

View File

@ -57,7 +57,7 @@
</el-form-item>
</el-form>
<p>
<b>{{ t("admin.form.data", { type: t("admin.common.lab") }) }}</b>
<b>{{ t("admin.form.data", { type: t("admin.common.broker") }) }}</b>
</p>
<!-- <laboratory-form ref="labFormRef" v-model="form" :is-add="false"/>-->
<agent-form ref="agentFormRef" v-model="form" :is-add="false" />

View File

@ -254,7 +254,9 @@ getList();
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="default" @click="handleCancel">{{ t("admin.common.cancel") }}</el-button>
<el-button type="default" @click="handleCancel">{{
t("admin.common.cancel")
}}</el-button>
<el-button type="primary" @click="submit">{{
t("admin.common.submit")
}}</el-button>

View File

@ -1,4 +1,7 @@
<script setup>
import { useI18n } from "vue-i18n";
const { t } = useI18n();
import { reactive, toRefs } from "vue";
const data = reactive({
@ -22,7 +25,7 @@ const handleSave = () => {};
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
</el-form-item>
<el-form-item label="身份证号">
<el-form-item :label="t('admin.form.idCard')">
<el-input v-model="form.number" placeholder="请输入" />
</el-form-item>
<el-form-item label="银行卡号">

View File

@ -8,6 +8,7 @@ import {
listBrokerEnterprise,
} from "@/api/admin/agent/service/enterprise";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const router = useRouter();
@ -97,7 +98,8 @@ const cancel = () => {
};
function handleDelete(id) {
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的项目?')
modal
.confirm('是否确认删除数据编号为"' + id + '"的项目?')
.then(() => {
return deleteBrokerEnterprise(id);
})
@ -236,7 +238,9 @@ getList();
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>

View File

@ -53,7 +53,10 @@
<el-row>
<el-col :span="24">
<el-form-item label="需求描述:" prop="introduce">
<el-form-item
:label="t('webSearch.demandDescription')"
prop="introduce"
>
<wangEditor
v-model="form.introduce"
min-height="150px"
@ -120,7 +123,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="需求联系人:" prop="name">
<el-form-item :label="t('admin.form.demandContact')" prop="name">
<el-input
v-model="form.name"
placeholder="请输入需求联系人"
@ -128,7 +131,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人手机号:" prop="mobile">
<el-form-item :label="t('admin.form.contactPhone')" prop="mobile">
<el-input
v-model="form.mobile"
maxlength="11"

View File

@ -3,7 +3,8 @@ import { reactive, ref, toRefs } from "vue";
import dayjs from "dayjs";
import { useRoute, useRouter } from "vue-router";
import { technologyDemandList } from "@/api/admin/agent/service/technology-demand";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const router = useRouter();
const route = useRoute();
const dataList = ref([]);
@ -97,7 +98,11 @@ if (route.query.id) {
:label="t('admin.form.mobile')"
prop="mobile"
/>
<el-table-column align="center" label="发布时间" prop="name">
<el-table-column
align="center"
:label="t('admin.table.publishTime')"
prop="name"
>
<template #default="{ row }">
{{ dayjs(row.createTime).format("YYYY-MM-DD HH:mm:ss") }}
</template>

View File

@ -8,6 +8,9 @@ import {
import { useRoute, useRouter } from "vue-router";
import { ElMessage } from "element-plus";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const active = ref(0); /*active step index*/
const updateStatusList = ref([]); /*update status list*/
const route = useRoute();
@ -56,7 +59,6 @@ const getUpdateStatus = async (demandId) => {
const reverseIndex = updateStatusList.value.findLastIndex(
(item) => item.status === "1"
);
console.log(updateStatusList.value.length, reverseIndex);
active.value = reverseIndex === -1 ? 0 : reverseIndex;
};
@ -76,13 +78,35 @@ const close = () => {
router.go(-1);
};
const submit = () => {
console.log(updateStatusList.value[active.value]);
// 当前步骤的表单
const form = updateStatusList.value[active.value];
console.log(active.value);
console.log(form);
// 当active.value !== 4 时, files 字段不能为空
// 当 active.value ===2 或 3 时remark 字段不能为空
if (active.value !== 4 && !form.files) {
ElMessage.error("请上传文件");
return;
}
if ((active.value === 2 || active.value === 3) && !form.remark) {
ElMessage.error("请填写金额");
return;
}
if (active.value === 4 && !form.remark) {
ElMessage.error("请填写未结题原因");
return;
}
updateDemandProcess({
...updateStatusList.value[active.value],
status: "1",
})
.then((resp) => {
ElMessage.success("操作成功");
// if (active.value <= 3) {
// active.value += 1;
// }
})
.catch(() => {})
.finally(() => {
@ -178,8 +202,39 @@ if (route.query.id) {
"
type="primary"
@click="submit"
>{{ t("admin.common.submit") }}
>{{ t("admin.broker.saveCurrentStep") }}
</el-button>
<template v-if="updateStatusList[active]?.status === '1'">
<el-button
v-if="active <= 1"
@click="
() => {
active += 1;
}
"
>
{{ t("admin.common.nextStep") }}
</el-button>
<el-button
v-if="active === 2"
@click="
() => {
active = 3;
}
"
>结题
</el-button>
<el-button
v-if="active === 2"
@click="
() => {
active = 4;
}
"
>未结题
</el-button>
</template>
</div>
</div>
</div>

View File

@ -21,7 +21,10 @@
<el-row>
<el-col :span="24">
<el-form-item label="需求描述:" prop="introduce">
<el-form-item
:label="t('webSearch.demandDescription')"
prop="introduce"
>
<wangEditor
v-model="form.introduce"
min-height="150px"

View File

@ -178,7 +178,9 @@ const cancel = () => {
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>

View File

@ -22,7 +22,9 @@ import { updateEnterprise } from "@/api/admin/enterprise";
import EnterpriseForm from "@/views/components/EnterpriseForm";
import { ElMessage } from "element-plus";
import { reactive, ref, toRefs } from "vue";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const data = reactive({
PersonalInfoForm: {}, // 个人基本资料
enterpriseInfoForm: {},

View File

@ -184,7 +184,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
@ -200,6 +202,7 @@ import {
deleteCasDealLog,
} from "@/api/admin/enterprise";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { reactive } from "vue";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
@ -333,13 +336,13 @@ const submitForm = async () => {
/** 删除按钮操作 */
const handleDelete = (id) => {
const orderIds = id || ids.value;
ElMessageBox.confirm('是否确认删除订单号为"' + orderIds + '"的数据项?').then(
async () => {
modal
.confirm('是否确认删除订单号为"' + orderIds + '"的数据项?')
.then(async () => {
await deleteCasDealLog(id);
getList();
ElMessage.success("删除成功");
}
);
});
};
/** 导出按钮操作 */
// function handleExport() {

View File

@ -13,7 +13,7 @@
<!-- <el-row>
<el-col :span="24">
<el-form-item label="需求名称:" prop="title">
<el-form-item :label="t('admin.form.name', {type:t('admin.common.demand')})" prop="title">
<el-input v-model="form.title"></el-input>
</el-form-item>
</el-col>
@ -31,8 +31,8 @@
v-for="item in checkList"
:key="item.id"
:label="item.name"
>{{ item.name }}</el-checkbox
>
>{{ item.name }}
</el-checkbox>
<!-- <el-checkbox label="0" @change="handleCheck">其他</el-checkbox> -->
</el-checkbox-group>
<el-row :gutter="20">
@ -52,7 +52,10 @@
<el-row>
<el-col :span="24">
<el-form-item label="需求描述:" prop="description">
<el-form-item
:label="t('webSearch.demandDescription')"
prop="description"
>
<!-- <Editor v-model="form.description" :minHeight="150" /> -->
<wangEditor
v-model="form.description"
@ -72,7 +75,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="需求联系人:" prop="name">
<el-form-item :label="t('admin.form.demandContact')" prop="name">
<el-input
v-model="form.name"
placeholder="请输入需求联系人"
@ -80,7 +83,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人手机号:" prop="mobile">
<el-form-item :label="t('admin.form.contactPhone')" prop="mobile">
<el-input
v-model="form.mobile"
placeholder="请输入联系人手机号"
@ -109,10 +112,12 @@
</el-row>
</el-form>
<div :style="{ marginLeft: labelWidth + 'px' }">
<el-button @click="backToList">{{ t("admin.common.cancel") }}</el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.submit")
}}</el-button>
<el-button @click="backToList"
>{{ t("admin.common.cancel") }}
</el-button>
<el-button type="primary" @click="submitForm"
>{{ t("admin.common.submit") }}
</el-button>
</div>
</el-card>
</div>
@ -127,12 +132,14 @@ import {
} from "@/api/admin/enterprise/demand";
// import CityOptions from "@/views/components/CityOptions";
import { ElMessage } from "element-plus";
import { onActivated } from "vue";
import { onActivated, onMounted, reactive, toRefs } from "vue";
import { demandCategoryList } from "@/utils/parameter";
// import { onActivated } from "vue";
import { useRoute, useRouter } from "vue-router";
import { updateCount } from "../../../../api/admin/count";
import { updateCount } from "@/api/admin/count";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const router = useRouter();
const route = useRoute();
const data = reactive({
@ -192,6 +199,7 @@ const submitForm = () => {
const backToList = () => {
tab.closeOpenPage({ path: "/demand/serviceDemand" });
};
// 添加需求类别时验证
function addCheck() {
if (!checkInput.value.trim().length) return ElMessage.error("请输入");

View File

@ -48,7 +48,10 @@
<el-row>
<el-col :span="24">
<el-form-item label="需求描述:" prop="introduce">
<el-form-item
:label="t('webSearch.demandDescription')"
prop="introduce"
>
<wangEditor
v-model="form.introduce"
placeholder="请输入技术需求内容和详细的技术指标"
@ -115,7 +118,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="需求联系人:" prop="name">
<el-form-item :label="t('admin.form.demandContact')" prop="name">
<el-input
v-model="form.name"
placeholder="请输入需求联系人"
@ -123,7 +126,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人手机号:" prop="mobile">
<el-form-item :label="t('admin.form.contactPhone')" prop="mobile">
<el-input
v-model="form.mobile"
maxlength="11"
@ -181,20 +184,21 @@
</template>
<script setup>
// import { expert } from "@/api/identity/index";
// import { insertTechnologyDemand } from "@/api/admin/enterprise";
import tab from "@/plugins/tab";
import { insertTechnologyDemand } from "@/api/admin/enterprise";
import { useI18n } from "vue-i18n";
import CityOptions from "@/views/components/CityOptions";
import { useRoute, useRouter } from "vue-router";
import FieldOptions from "@/views/components/FieldOptions";
import InputBoxAdd from "@/views/components/InputBoxAdd";
import { onMounted, reactive, toRefs } from "vue";
import { ElMessage } from "element-plus";
import { useRoute, useRouter } from "vue-router";
import { updateCount } from "@/api/admin/count";
import {
getTechnologyDemand,
updateTechnologyDemand,
insertTechnologyDemand,
} from "@/api/admin/enterprise/demand";
import { onMounted } from "vue";
import { updateCount } from "../../../../api/admin/count";
import tab from "@/plugins/tab";
const { t } = useI18n();
const router = useRouter();
const route = useRoute();
const data = reactive({

View File

@ -38,7 +38,7 @@
/>
<el-table-column label="手机号" align="center" prop="mobile" />
<el-table-column
label="发布时间"
:label="t('admin.table.publishTime')"
align="center"
prop="createTime"
width="180"
@ -103,6 +103,7 @@
import { demandList } from "@/api/admin/enterprise";
import { updateDemand } from "@/api/admin/enterprise/demand";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { getCurrentInstance, onActivated } from "vue";
import { useRouter } from "vue-router";
import { useI18n } from "vue-i18n";
@ -171,7 +172,8 @@ function resetQuery() {
}
/** 删除按钮操作 */
function handleDelete(id) {
ElMessageBox.confirm('是否确认删除订单号为"' + id + '"的数据项?')
modal
.confirm('是否确认删除订单号为"' + id + '"的数据项?')
.then(function () {
return demandDelete(postIds);
})
@ -187,7 +189,8 @@ function handleEdit(id) {
// 修改为完成状态
const complete = (id) => {
ElMessageBox.confirm(`是否确认结束编号为${id}的数据项?`)
modal
.confirm(`是否确认结束编号为${id}的数据项?`)
.then(async () => {
await updateDemand({ id, status: 4 });
getList();

View File

@ -40,7 +40,7 @@
<el-table-column label="手机号" prop="mobile" align="center" />
<!-- <el-zh-column label="浏览量" prop="visit_count" align="center" /> -->
<el-table-column
label="发布时间"
:label="t('admin.table.publishTime')"
prop="createTime"
align="center"
width="180"
@ -125,8 +125,10 @@ import {
updateTechnologyDemand,
} from "@/api/admin/enterprise/demand";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { useRouter } from "vue-router";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const { proxy } = getCurrentInstance();
const router = useRouter();
@ -191,7 +193,8 @@ function handleQuery() {
// }
/** 删除按钮操作 */
function handleDelete(id) {
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的需求项?')
modal
.confirm('是否确认删除数据编号为"' + id + '"的需求项?')
.then(function () {
console.log("delete");
return deleteTechnologyDemand(id);
@ -206,7 +209,8 @@ function handleDelete(id) {
}
function handleShelf(row) {
let text = row.shelf_status == 2 ? "上架" : "下架";
ElMessageBox.confirm('确认要"' + text + '""' + row.id + '"的需求吗?')
modal
.confirm('确认要"' + text + '""' + row.id + '"的需求吗?')
.then(function () {
let status = row.shelf_status == 1 ? 2 : 1;
return achievementShelf({ id: row.id, status });
@ -228,7 +232,8 @@ function handleResults(row) {
// 修改为完成状态
const complete = (id) => {
ElMessageBox.confirm(`是否确认结束编号为${id}的数据项?`)
modal
.confirm(`是否确认结束编号为${id}的数据项?`)
.then(async () => {
await updateTechnologyDemand({ id, status: 4 });
getList();
@ -237,7 +242,8 @@ const complete = (id) => {
.catch(() => {});
};
const cancelPub = (id) => {
ElMessageBox.confirm(`是否确认取消发布编号为${id}的数据项?`)
modal
.confirm(`是否确认取消发布编号为${id}的数据项?`)
.then(async () => {
await updateTechnologyDemand({ id, status: 3 });
getList();

View File

@ -27,7 +27,11 @@
/>
<el-table-column label="产品领域" prop="industryStr" />
<!-- <el-zh-column label="浏览量" prop="visit_count" /> -->
<el-table-column label="发布时间" prop="createTime" width="180">
<el-table-column
:label="t('admin.table.publishTime')"
prop="createTime"
width="180"
>
<template #default="{ row }">
<span>{{ row.createTime }}</span>
</template>
@ -107,6 +111,7 @@ import {
updateEnterpriseProduct,
} from "@/api/admin/enterprise/product";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { onActivated } from "vue";
import { useRouter } from "vue-router";
import useUserStore from "@/store/modules/user";
@ -142,7 +147,7 @@ const getList = async () => {
// 处理删除
const handleDelete = (id) => {
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的产品项?')
modal.confirm('是否确认删除数据编号为"' + id + '"的产品项?')
.then(async () => {
await deleteEnterpriseProduct(id);
ElMessage.success("删除成功");
@ -160,7 +165,7 @@ function handleQuery() {
}
// 取消发布
const releaseCancel = (id) => {
ElMessageBox.confirm('确认要取消发布id为"' + id + '"的产品吗?')
modal.confirm('确认要取消发布id为"' + id + '"的产品吗?')
.then(async () => {
await updateEnterpriseProduct({ id, status: 3 });
ElMessage.success("取消发布成功");
@ -173,7 +178,7 @@ const releaseCancel = (id) => {
// 下架和上架
const handleShelf = (row) => {
let text = row.shelfStatus == 2 ? "上架" : "下架";
ElMessageBox.confirm('确认要"' + text + '""' + row.id + '"的产品吗?')
modal.confirm('确认要"' + text + '""' + row.id + '"的产品吗?')
.then(function () {
let status = row.shelfStatus == 1 ? 2 : 1;
return updateEnterpriseProduct({ id: row.id, shelfStatus: status });

View File

@ -28,6 +28,9 @@ import {
} from "@/api/admin/enterprise/product";
import { reactive, toRefs } from "vue";
import { updateCount } from "@/api/admin/count";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const route = useRoute();
// const router = useRouter();
const labelWidth = 140;

View File

@ -162,7 +162,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
@ -188,6 +190,7 @@ import {
import { search } from "@/api/website/home";
import dayjs from "dayjs";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { paperList } from "@/api/admin/expert/technology";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
@ -305,7 +308,7 @@ const changePattent = (val) => {
// }
/** 删除按钮操作 */
function handleDelete(id) {
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的数据项?')
modal.confirm('是否确认删除数据编号为"' + id + '"的数据项?')
.then(function () {
return deleteExpertCooperateEnterpriseByIds(id);
})

View File

@ -12,7 +12,10 @@
</p>
<el-row>
<el-col :span="24">
<el-form-item label="需求名称:" prop="title">
<el-form-item
:label="t('admin.form.name', { type: t('admin.common.demand') })"
prop="title"
>
<el-input v-model="formData.title"></el-input>
</el-form-item>
</el-col>
@ -51,7 +54,10 @@
<el-row>
<el-col :span="24">
<el-form-item label="需求描述:" prop="description">
<el-form-item
:label="t('webSearch.demandDescription')"
prop="description"
>
<!-- <Editor v-model="formData.description" :minHeight="150" /> -->
<wangEditor
ref="wangEditorRef"
@ -72,7 +78,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="需求联系人:" prop="name">
<el-form-item :label="t('admin.form.demandContact')" prop="name">
<el-input
v-model="formData.name"
placeholder="请输入需求联系人"
@ -80,7 +86,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人手机号:" prop="mobile">
<el-form-item :label="t('admin.form.contactPhone')" prop="mobile">
<el-input
v-model="formData.mobile"
placeholder="请输入联系人手机号"

View File

@ -54,7 +54,7 @@
<el-table-column align="center" label="手机号" prop="mobile" />
<el-table-column
align="center"
label="发布时间"
:label="t('admin.table.publishTime')"
prop="createTime"
width="180"
>
@ -203,7 +203,7 @@ function handleEdit(id) {
// 修改为完成状态
const complete = (id) => {
ElMessageBox.confirm(`是否确认结束编号为${id}的数据项?`)
modal.confirm(`是否确认结束编号为${id}的数据项?`)
.then(async () => {
await updateCasDemand({ id, status: 4 });
getList();

View File

@ -60,7 +60,7 @@
<!-- province--city--district -->
<el-table-column label="所属领域" prop="territoryStr" />
<el-table-column :label="t('admin.form.contact')" prop="contactUser" />
<el-table-column label="联系电话" prop="contactPhone" />
<el-table-column :label="t('webContact.phone')" prop="contactPhone" />
<!-- <el-zh-column label="创建日期" align="center" prop="created_at">
<template #default="{ row }">
<span>{{ dayjs(row.created_at).format("YYYY-MM-DD HH:mm:ss") }}</span>
@ -143,7 +143,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
@ -166,6 +168,7 @@ import {
// import dayjs from "dayjs";
import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { cloneDeep } from "lodash-unified";
const dataList = ref([]);
@ -219,7 +222,7 @@ function handleQuery() {
// }
/** 删除按钮操作 */
function handleDelete(id) {
ElMessageBox.confirm(`是否确认删除数据编号为"${id}"的数据项?`).then(
modal.confirm(`是否确认删除数据编号为"${id}"的数据项?`).then(
async () => {
await deleteExpertWantEnterpriseByIds({ ids: [id] });
getList();

View File

@ -25,9 +25,13 @@
:label="t('admin.form.name', { type: t('admin.common.achievement') })"
prop="title"
/>
<el-table-column label="成果领域" prop="industryStr" />
<el-table-column :label="t('admin.table.achievementIndustry')" prop="industryStr" />
<!-- <el-zh-column label="浏览量" prop="visitCount" /> -->
<el-table-column label="发布时间" prop="createTime" width="180">
<el-table-column
:label="t('admin.table.publishTime')"
prop="createTime"
width="180"
>
<template #default="{ row }">
<span>
{{ dayjs(row.createTime).format("YYYY-MM-DD HH:mm:ss") }}</span
@ -100,6 +104,7 @@ import {
} from "@/api/admin/expert/achievement";
import dayjs from "dayjs";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
// import { update } from "lodash-unified";
import { useRouter } from "vue-router";
import { updateExpertAchievement } from "@/api/admin/expert/achievement";
@ -141,7 +146,7 @@ const handleQuery = () => {
// }
/** 删除按钮操作 */
const handleDelete = (id) => {
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的成果项?').then(
modal.confirm('是否确认删除数据编号为"' + id + '"的成果项?').then(
async () => {
await deleteAchievementByIds({ ids: [id] });
getList();
@ -152,7 +157,7 @@ const handleDelete = (id) => {
// 上架和下架
function handleShelf(row) {
let text = row.shelfStatus == 2 ? "上架" : "下架";
ElMessageBox.confirm('确认要"' + text + '""' + row.id + '"的成果吗?').then(
modal.confirm('确认要"' + text + '""' + row.id + '"的成果吗?').then(
async () => {
const shelfStatus = row.shelfStatus == 1 ? 2 : 1;
await updateExpertAchievement({ id: row.id, shelfStatus });
@ -163,7 +168,7 @@ function handleShelf(row) {
}
// 取消发布
const handleCancelPublish = (id) => {
ElMessageBox.confirm(`确认要取消发布编号为"${id}"的成果吗?`).then(
modal.confirm(`确认要取消发布编号为"${id}"的成果吗?`).then(
async () => {
await updateExpertAchievement({ id, status: "3" });
ElMessage.success("取消发布成功");

View File

@ -31,7 +31,7 @@
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="发明人" prop="roleName">
<el-form-item :label="t('admin.form.inventor')" prop="roleName">
<el-input
v-model="queryParams.roleName"
placeholder="请输入发明人"
@ -65,13 +65,17 @@
:show-overflow-tooltip="true"
/>
<el-table-column
label="申请号"
:label="t('webSearch.applicationNumber')"
prop="applyCode"
:show-overflow-tooltip="true"
/>
<el-table-column label="发明人" prop="inventor" />
<el-table-column label="申请(专利权)人" prop="applyName" />
<el-table-column label="申请日期" align="center" prop="applyAt">
<el-table-column :label="t('admin.form.inventor')" prop="inventor" />
<el-table-column :label="t('webSearch.applicant')" prop="applyName" />
<el-table-column
:label="t('admin.form.applicationDate')"
align="center"
prop="applyAt"
>
<template #default="scope">
<span>{{ parseTime(scope.row.applyAt) }}</span>
</template>

View File

@ -7,7 +7,7 @@
:inline="true"
@submit.prevent
>
<el-form-item label="论文题目" prop="title">
<el-form-item :label="t('admin.form.paperTitle')" prop="title">
<el-input
v-model="queryParams.title"
placeholder="请输入论文题目"
@ -53,14 +53,22 @@
<el-table v-loading="loading" :data="dataList">
<el-table-column :label="t('admin.common.dataNumber')" prop="id" />
<el-table-column
label="论文题目"
:label="t('admin.form.paperTitle')"
prop="title"
:show-overflow-tooltip="true"
/>
<el-table-column label="刊物" prop="ext" :show-overflow-tooltip="true" />
<el-table-column
:label="t('admin.form.publication')"
prop="ext"
:show-overflow-tooltip="true"
/>
<el-table-column label="作者" prop="author" />
<el-table-column label="关键词" align="center" prop="keyword" />
<el-table-column label="出版日期" align="center">
<el-table-column
:label="t('admin.form.keywords')"
align="center"
prop="keyword"
/>
<el-table-column :label="t('admin.form.publishDate')" align="center">
<template #default="{ row }">
<span>{{ dayjs(row.publishTime).format("YYYY-MM-DD") }}</span>
</template>
@ -149,7 +157,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
@ -169,6 +179,7 @@ import dayjs from "dayjs";
import { cloneDeep } from "lodash";
import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const router = useRouter();
@ -234,7 +245,7 @@ function resetQuery() {
}
/** 删除按钮操作 */
function handleDelete(id) {
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的数据项?').then(
modal.confirm('是否确认删除数据编号为"' + id + '"的数据项?').then(
async () => {
await deleteCasPaper(id);
getList();

View File

@ -32,7 +32,7 @@
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="发明人" prop="inventor">
<el-form-item :label="t('admin.form.inventor')" prop="inventor">
<el-input
v-model="queryParams.inventor"
placeholder="请输入发明人"
@ -91,13 +91,17 @@
:show-overflow-tooltip="true"
/>
<el-table-column
label="申请号"
:label="t('webSearch.applicationNumber')"
prop="applyCode"
:show-overflow-tooltip="true"
/>
<el-table-column label="发明人" prop="inventor" />
<el-table-column label="申请(专利权)人" prop="applyName" />
<el-table-column label="申请日期" align="center" prop="applyAt">
<el-table-column :label="t('admin.form.inventor')" prop="inventor" />
<el-table-column :label="t('webSearch.applicant')" prop="applyName" />
<el-table-column
:label="t('admin.form.applicationDate')"
align="center"
prop="applyAt"
>
<template #default="{ row }">
<span>{{ dayjs(row.applyAt).format("YYYY-MM-DD") }}</span>
</template>
@ -164,7 +168,10 @@
"
/>
</el-form-item>
<el-form-item label="申请号:" prop="applyCode">
<el-form-item
:label="t('webSearch.applicationNumber')"
prop="applyCode"
>
<el-input v-model="form.applyCode" placeholder="请输入申请号" />
</el-form-item>
<el-form-item label="公开号:" prop="openCode">
@ -245,7 +252,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
@ -264,6 +273,7 @@ import { cloneDeep } from "lodash";
import { getInfo } from "@/api/admin/expert/account";
import dayjs from "dayjs";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { patentOptions } from "@/utils/parameter";
import { useRouter } from "vue-router";
import { useI18n } from "vue-i18n";
@ -346,7 +356,7 @@ function resetQuery() {
}
/** 删除按钮操作 */
function handleDelete(id) {
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的专利项?')
modal.confirm('是否确认删除数据编号为"' + id + '"的专利项?')
.then(function () {
return deleteCasPatentByIds(id);
})

View File

@ -69,13 +69,13 @@
:show-overflow-tooltip="true"
/>
<el-table-column :label="t('admin.common.type')" prop="kind" />
<el-table-column label="课题角色" prop="role">
<el-table-column :label="t('admin.table.topicRole')" prop="role">
<template #default="scope">
<div v-if="scope.row.role == 1">承担单位</div>
<div v-else-if="scope.row.role == 2">参与单位</div>
</template>
</el-table-column>
<el-table-column label="课题负责人" prop="director" />
<el-table-column :label="t('admin.form.topicLeader')" prop="director" />
<el-table-column label="发布日期" align="center" prop="created_at">
<template #default="scope">
<span>{{
@ -220,7 +220,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
@ -237,6 +239,7 @@ import {
} from "@/api/admin/expert/research";
import dayjs from "dayjs";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { cloneDeep } from "lodash-unified";
import { useRouter } from "vue-router";
import { useI18n } from "vue-i18n";
@ -312,7 +315,7 @@ function resetQuery() {
}
function handleShelf(row) {
const text = row.shelfStatus == 2 ? "上架" : "下架";
ElMessageBox.confirm(`确认要${text}"${row.id}"的数据吗?`)
modal.confirm(`确认要${text}"${row.id}"的数据吗?`)
.then(() => {
const shelfStatus = row.shelfStatus == 1 ? 2 : 1;
return updateTechnologyProject({ id: row.id, shelfStatus });
@ -327,7 +330,7 @@ function handleShelf(row) {
}
/** 删除按钮操作 */
function handleDelete(id) {
ElMessageBox.confirm(`是否确认删除数据编号为"${id}"的数据项?`).then(
modal.confirm(`是否确认删除数据编号为"${id}"的数据项?`).then(
async () => {
await deleteTechnologyProjectByIds({ ids: [id] });
getList();

View File

@ -1,7 +1,120 @@
<script setup></script>
<script setup>
import { User } from "@element-plus/icons-vue";
</script>
<template>
<div class="app-container">实验室后台</div>
<div class="app-container">
<!-- 数据统计, 使用不同颜色卡片展示 -->
<div class="count-cards">
<el-row :gutter="16">
<el-col :span="6">
<el-card class="count-card">
<div class="card-icon">
<el-icon>
<User />
</el-icon>
</div>
<div class="card-content">
<span class="fl">用户总数</span>
<span class="fr">123</span>
</div>
</el-card>
</el-col>
<el-col :span="6">
<el-card class="count-card">
<div class="card-icon">
<el-icon>
<User />
</el-icon>
</div>
<div class="card-content">
<span class="fl">用户总数</span>
<span class="fr">123</span>
</div>
</el-card>
</el-col>
<el-col :span="6">
<el-card class="count-card">
<div class="card-icon">
<el-icon>
<User />
</el-icon>
</div>
<div class="card-content">
<span class="fl">用户总数</span>
<span class="fr">123</span>
</div>
</el-card>
</el-col>
<el-col :span="6">
<el-card class="count-card">
<div class="card-icon">
<el-icon>
<User />
</el-icon>
</div>
<div class="card-content">
<span class="fl">用户总数</span>
<span class="fr">123</span>
</div>
</el-card>
</el-col>
</el-row>
</div>
</div>
</template>
<style lang="scss" scoped></style>
<style lang="scss" scoped>
.count-cards {
:deep(.count-card) {
.el-card__body {
display: flex;
.card-icon {
flex: 1;
aspect-ratio: 1/1;
display: flex;
justify-content: center;
align-items: center;
font-size: 24px;
}
.card-content {
flex: 6;
display: flex;
justify-content: space-between;
align-items: start;
flex-direction: column;
height: 72px;
.fl {
//靠左对齐 加大 加粗
//align-self: start;
font-size: 20px;
font-weight: 600;
}
.fr {
}
}
}
}
// 不同颜色
& .el-col:nth-child(1) .count-card {
background-color: #409eff;
}
& .el-col:nth-child(2) .count-card {
background-color: #67c23a;
}
& .el-col:nth-child(3) .count-card {
background-color: #e6a23c;
}
& .el-col:nth-child(4) .count-card {
background-color: #f56c6c;
}
}
</style>

View File

@ -53,12 +53,19 @@
/>
<el-table-column
:show-overflow-tooltip="true"
label="成果领域"
:label="t('admin.table.achievementIndustry')"
prop="industryStr"
/>
<el-table-column label="所属专家" prop="expertName" />
<el-table-column
:label="t('admin.form.belongExpert')"
prop="expertName"
/>
<!-- <el-zh-column label="浏览量" prop="visitCount"/>-->
<el-table-column align="center" label="发布时间" prop="createTime">
<el-table-column
align="center"
:label="t('admin.table.publishTime')"
prop="createTime"
>
<template #default="{ row }">
<span>{{ dayjs(row.createTime).format("YYYY-MM-DD") }}</span>
</template>
@ -102,6 +109,8 @@
<script setup>
import dayjs from "dayjs";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { useRouter } from "vue-router";
import { getCurrentInstance, reactive, ref, toRefs } from "vue";
import {
@ -109,6 +118,7 @@ import {
deleteAchievements,
} from "@/api/admin/laboratory/achievement";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const router = useRouter();
@ -164,7 +174,14 @@ function resetQuery() {
* @param id
*/
function handleDelete(id) {
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的成果项?')
modal
.confirm(
t("admin.common.confirmAction", {
number: id,
action: t("admin.common.delete"),
type: t("admin.common.achievement"),
})
)
.then(function () {
return deleteAchievements(id);
})

View File

@ -37,9 +37,11 @@
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">-->
<!-- <el-button icon="plus" size="small" type="primary"> {{ t('admin.common.add') }}</el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button icon="plus" size="small" type="primary">
{{ t("admin.table.relatedExperts") }}
</el-button>
</el-col>
<right-toolbar
v-model:showSearch="showSearch"
@queryTable="getList"
@ -54,10 +56,17 @@
:label="t('admin.form.name', { type: t('admin.common.expert') })"
prop="title"
/>
<el-table-column label="联系电话" prop="mobile" />
<el-table-column label="研究领域" prop="industryStr" />
<!-- <el-zh-column label="申请(专利权)人" prop="applyName"/>-->
<el-table-column align="center" label="入驻时间" prop="workTime">
<el-table-column :label="t('webContact.phone')" prop="mobile" />
<el-table-column
:label="t('admin.table.researchIndustry')"
prop="industryStr"
/>
<!-- <el-zh-column :label="t('webSearch.applicant')" prop="applyName"/>-->
<el-table-column
align="center"
:label="t('admin.table.enterTime')"
prop="workTime"
>
<template #default="{ row }">
<span>{{ dayjs(row.workTime).format("YYYY-MM-DD") }}</span>
</template>
@ -81,7 +90,7 @@
size="small"
type="text"
@click="handleDeleteBind(row.id)"
>{{ t("admin.common.cancel") }}关联
>{{ t("admin.table.cancelRelation") }}
</el-button>
</template>
</el-table-column>
@ -119,7 +128,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm"
>{{ t("admin.common.confirm") }}
</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
@ -131,11 +142,13 @@
import { labPatentList } from "@/api/admin/laboratory/patent";
import dayjs from "dayjs";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { useRouter } from "vue-router";
import { reactive, ref, toRefs } from "vue";
import { computed, reactive, ref, toRefs } from "vue";
import InputBoxAdd from "@/views/components/InputBoxAdd/index.vue";
import { deleteBindExpert, expertList } from "@/api/admin/laboratory/expert";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const router = useRouter();
@ -189,7 +202,14 @@ function resetQuery() {
/** 删除按钮操作 */
function handleDeleteBind(id) {
ElMessageBox.confirm(`是否确认取消关联数据编号为"${id}"的专家?`)
modal
.confirm(
t("admin.common.confirmAction", {
number: id,
action: t("admin.table.cancelRelation"),
type: t("admin.common.expert"),
})
)
.then(function () {
return deleteBindExpert(id);
})

View File

@ -69,10 +69,14 @@
<el-table-column
:show-overflow-tooltip="true"
align="center"
label="型号"
:label="t('admin.form.model')"
prop="model"
/>
<el-table-column align="center" label="购买日期" prop="buyDate">
<el-table-column
align="center"
:label="t('admin.form.buyDate')"
prop="buyDate"
>
<template #default="{ row }">
<span>{{ dayjs(row.buyDate).format("YYYY-MM-DD") }}</span>
</template>
@ -126,10 +130,10 @@
"
/>
</el-form-item>
<el-form-item label="型号:" prop="model">
<el-form-item :label="t('admin.form.model')" prop="model">
<el-input v-model="form.model" placeholder="请输入型号" />
</el-form-item>
<el-form-item label="购买时间:" prop="buyDate">
<el-form-item :label="t('admin.form.buyDate')" prop="buyDate">
<el-date-picker
v-model="form.buyDate"
placeholder="请选择购买时间"
@ -137,20 +141,32 @@
value-format="YYYY-MM-DD HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item label="成果参数:" prop="param">
<el-form-item
:label="t('admin.form.achievementParameter')"
prop="param"
>
<el-input v-model="form.param" placeholder="请输入成果参数" />
</el-form-item>
<el-form-item label="设备描述:" prop="description">
<el-form-item
:label="t('admin.form.deviceDescription')"
prop="description"
>
<el-input
v-model="form.description"
placeholder="请输入设备描述"
:placeholder="
t('admin.form.placeholder', {
type: t('admin.form.deviceDescription'),
})
"
type="textarea"
></el-input>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
@ -163,6 +179,7 @@
import { reactive, ref, toRefs } from "vue";
import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import {
deleteEquipment,
equipmentList,
@ -231,7 +248,7 @@ function resetQuery() {
/** 删除按钮操作 */
function handleDelete(row) {
ElMessageBox.confirm('是否确认删除数据编号为"' + row.deviceId + '"的数据项?')
modal.confirm('是否确认删除数据编号为"' + row.deviceId + '"的数据项?')
.then(function () {
return deleteEquipment([row.deviceId]);
})

View File

@ -48,14 +48,26 @@
<el-table-column :label="t('admin.common.dataNumber')" prop="id" />
<el-table-column
:show-overflow-tooltip="true"
label="论文题目"
:label="t('admin.form.paperTitle')"
prop="title"
/>
<el-table-column :show-overflow-tooltip="true" label="刊物" prop="ext" />
<el-table-column label="所属专家" prop="author" />
<el-table-column align="center" label="关键词" prop="keyword" />
<el-table-column
:show-overflow-tooltip="true"
:label="t('admin.form.publication')"
prop="ext"
/>
<el-table-column :label="t('admin.form.belongExpert')" prop="author" />
<el-table-column
align="center"
:label="t('admin.form.keywords')"
prop="keyword"
/>
<!-- <el-zh-column align="center" label="浏览量" prop="readCount"/>-->
<el-table-column align="center" label="出版日期" prop="publishTime">
<el-table-column
align="center"
:label="t('admin.form.publishDate')"
prop="publishTime"
>
<template #default="{ row }">
<span>{{ dayjs(row.publishTime).format("YYYY-MM-DD") }}</span>
</template>
@ -99,7 +111,7 @@
<el-form-item label="论文题目:" prop="title">
<el-input v-model="form.title" placeholder="请输入论文题目" />
</el-form-item>
<el-form-item label="刊物:" prop="ext">
<el-form-item :label="t('admin.form.publication')" prop="ext">
<el-input v-model="form.ext" placeholder="请输入刊物" />
</el-form-item>
<el-form-item label="作者:" prop="author">
@ -131,7 +143,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm"
>{{ t("admin.common.confirm") }}
</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
@ -142,12 +156,14 @@
<script setup>
import dayjs from "dayjs";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import InputBoxAdd from "@/views/components/InputBoxAdd";
import { useRouter } from "vue-router";
import { getCurrentInstance, reactive, ref, toRefs } from "vue";
import { cloneDeep } from "lodash";
import { deletePaper, paperList } from "@/api/admin/laboratory/paper";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const router = useRouter();
@ -215,7 +231,14 @@ function resetQuery() {
/** 删除按钮操作 */
function handleDelete(id) {
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的论文项?')
modal
.confirm(
t("admin.common.confirmAction", {
number: id,
action: t("admin.common.delete"),
type: t("admin.common.paper"),
})
)
.then(function () {
return deletePaper(id);
})

View File

@ -73,12 +73,16 @@
/>
<el-table-column
:show-overflow-tooltip="true"
label="申请号"
:label="t('webSearch.applicationNumber')"
prop="applyCode"
/>
<el-table-column label="发明人" prop="inventor" />
<el-table-column label="申请(专利权)人" prop="applyName" />
<el-table-column align="center" label="申请日期" prop="applyAt">
<el-table-column :label="t('admin.form.inventor')" prop="inventor" />
<el-table-column :label="t('webSearch.applicant')" prop="applyName" />
<el-table-column
align="center"
:label="t('admin.form.applicationDate')"
prop="applyAt"
>
<template #default="{ row }">
<span>{{ dayjs(row.applyAt).format("YYYY-MM-DD") }}</span>
</template>
@ -141,7 +145,7 @@
<!-- <el-form-item label="专利名称:" prop="title">-->
<!-- <el-input v-model="form.title" :placeholder="t('admin.form.placeholder', {type: t('admin.common.patent')})"/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="申请号:" prop="applyCode">-->
<!-- <el-form-item :label="t('webSearch.applicationNumber')" prop="applyCode">-->
<!-- <el-input v-model="form.applyCode" placeholder="请输入申请号"/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="公开号:" prop="openCode">-->
@ -222,7 +226,7 @@
<!-- </el-form>-->
<!-- <template #footer>-->
<!-- <div class="dialog-footer">-->
<!-- <el-button type="primary" @click="submitForm"> </el-button>-->
<!-- <el-button type="primary" @click="submitForm">{{t("admin.common.confirm")}}</el-button>-->
<!-- <el-button @click="cancel"> </el-button>-->
<!-- </div>-->
<!-- </template>-->
@ -237,6 +241,7 @@ import {
} from "@/api/admin/laboratory/patent";
import dayjs from "dayjs";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { useRouter } from "vue-router";
import { getCurrentInstance, reactive, ref, toRefs } from "vue";
import { useI18n } from "vue-i18n";
@ -322,7 +327,11 @@ function resetQuery() {
/** 删除按钮操作 */
function handleDelete(id) {
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的专利项?')
modal.confirm(t("admin.common.confirmAction", {
number: id,
action: t("admin.common.delete"),
type: t("admin.common.patent"),
}))
.then(function () {
return deleteLabPatentByIds(id);
})

View File

@ -29,7 +29,7 @@
type="primary"
@click="handleQuery"
>
{{ t() }}
{{ t("admin.common.search") }}
</el-button>
<el-button icon="Refresh" size="small" @click="resetQuery">
{{ t("admin.common.reset") }}
@ -60,14 +60,18 @@
:label="t('admin.common.type')"
prop="kind"
/>
<!-- <el-zh-column label="所属专家" prop="inventor" />-->
<el-table-column label="课题角色">
<!-- <el-zh-column :label="t('admin.form.belongExpert')" prop="inventor" />-->
<el-table-column :label="t('admin.table.topicRole')">
<template #default="{ row }">
{{ subjectRoleDict.find((item) => item.value === row.role)?.label }}
</template>
</el-table-column>
<el-table-column label="课题负责人" prop="director" />
<el-table-column align="center" label="发布时间" prop="applyAt">
<el-table-column :label="t('admin.form.topicLeader')" prop="director" />
<el-table-column
align="center"
:label="t('admin.table.publishTime')"
prop="applyAt"
>
<template #default="{ row }">
<span>{{ dayjs(row.applyAt).format("YYYY-MM-DD") }}</span>
</template>
@ -110,6 +114,7 @@
<script setup>
import dayjs from "dayjs";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { useRouter } from "vue-router";
import { getCurrentInstance, reactive, ref, toRefs } from "vue";
import {
@ -170,7 +175,11 @@ function resetQuery() {
/** 删除按钮操作 */
function handleDelete(id) {
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的科研项目?')
modal.confirm(t("admin.common.confirmAction", {
number: id,
action: t("admin.common.delete"),
type: t("admin.common.researchProject"),
}))
.then(function () {
return deleteTechnologyProject(id);
})

View File

@ -9,7 +9,10 @@
<el-row>
<el-col :span="24">
<el-form-item label="需求名称:" prop="title">
<el-form-item
:label="t('admin.form.name', { type: t('admin.common.demand') })"
prop="title"
>
<el-input v-model="formData.title"></el-input>
</el-form-item>
</el-col>
@ -47,7 +50,10 @@
<el-row>
<el-col :span="24">
<el-form-item label="需求描述:" prop="description">
<el-form-item
:label="t('webSearch.demandDescription')"
prop="description"
>
<editor v-model="formData.description" :minHeight="150" />
</el-form-item>
</el-col>
@ -61,7 +67,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="需求联系人:" prop="name">
<el-form-item :label="t('admin.form.demandContact')" prop="name">
<el-input
v-model="formData.name"
placeholder="请输入需求联系人"
@ -69,7 +75,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人手机号:" prop="mobile">
<el-form-item :label="t('admin.form.contactPhone')" prop="mobile">
<el-input
v-model="formData.mobile"
placeholder="请输入联系人手机号"
@ -99,7 +105,9 @@
</el-form>
<el-row justify="center">
<el-col :span="1.5">
<el-button type="primary" @click="cancel">{{ t("identity.entrance.back") }}</el-button>
<el-button type="primary" @click="cancel"
>{{ t("admin.identity.entrance.back") }}
</el-button>
</el-col>
</el-row>
</el-card>
@ -112,6 +120,9 @@ import { ElMessage } from "element-plus";
import { useRoute } from "vue-router";
import tab from "@/plugins/tab";
import { serviceDemandInfo } from "@/api/admin/research/service-demand";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const data = reactive({
formData: {

View File

@ -75,7 +75,7 @@
:label="t('admin.form.mobile')"
prop="mobile"
/>
<el-table-column align="center" label="发布时间">
<el-table-column align="center" :label="t('admin.table.publishTime')">
<template #default="{ row }">
<span>{{ dayjs(row.createTime).format("YYYY-MM-DD") }}</span>
</template>
@ -87,14 +87,16 @@
>
<template #default="{ row }">
<el-button icon="FolderRemove" size="small" type="text" @click=""
>{{ t("admin.common.cancel") }}发布
>{{ t("admin.table.cancelPublish") }}
</el-button>
<el-button
icon="view"
size="small"
type="text"
@click="handleDetail(row.id)"
>查看
>{{
t('admin.common.view')
}}
</el-button>
</template>
</el-table-column>
@ -114,6 +116,7 @@
import { deleteLabPatentByIds } from "@/api/admin/laboratory/patent";
import dayjs from "dayjs";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { useRouter } from "vue-router";
import { getCurrentInstance, reactive, ref, toRefs } from "vue";
import { serviceDemandList } from "@/api/admin/laboratory/service-demand";
@ -173,7 +176,7 @@ function resetQuery() {
/** 删除按钮操作 */
function handleDelete(id) {
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的专利项?')
modal.confirm('是否确认删除数据编号为"' + id + '"的专利项?')
.then(function () {
return deleteLabPatentByIds(id);
})

View File

@ -96,14 +96,14 @@ getList();
:label="t('admin.form.name')"
prop="typeName"
></el-table-column>
<el-table-column
:label="t('admin.form.contact')"
prop="nickname"
></el-table-column>
<el-table-column
:label="t('admin.form.mobile')"
prop="phone"
></el-table-column>
<!-- <el-table-column-->
<!-- :label="t('admin.form.contact')"-->
<!-- prop="nickname"-->
<!-- ></el-table-column>-->
<!-- <el-table-column-->
<!-- :label="t('admin.form.mobile')"-->
<!-- prop="phone"-->
<!-- ></el-table-column>-->
<el-table-column label="浏览次数" prop="seeCount"></el-table-column>
<el-table-column label="浏览时间" prop="updateTime"></el-table-column>
</el-table>

View File

@ -53,12 +53,19 @@
/>
<el-table-column
:show-overflow-tooltip="true"
label="成果领域"
:label="t('admin.table.achievementIndustry')"
prop="industryStr"
/>
<el-table-column label="所属专家" prop="expertName" />
<el-table-column
:label="t('admin.form.belongExpert')"
prop="expertName"
/>
<!-- <el-zh-column label="浏览量" prop="visitCount"/>-->
<el-table-column align="center" label="发布时间" prop="createTime">
<el-table-column
align="center"
:label="t('admin.table.publishTime')"
prop="createTime"
>
<template #default="{ row }">
<span>{{ dayjs(row.createTime).format("YYYY-MM-DD") }}</span>
</template>
@ -104,11 +111,14 @@ import dayjs from "dayjs";
import { useRouter } from "vue-router";
import { reactive, ref, toRefs } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import {
achievementList,
deleteAchievements,
} from "@/api/admin/research/achievement";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const router = useRouter();
@ -162,7 +172,8 @@ function resetQuery() {
* @param id
*/
function handleDelete(id) {
ElMessageBox.confirm(`是否确认删除数据编号为"${id}"的成果项?'`)
modal
.confirm(`是否确认删除数据编号为"${id}"的成果项?'`)
.then(function () {
return deleteAchievements(id);
})

View File

@ -56,10 +56,17 @@
:label="t('admin.form.name', { type: t('admin.common.expert') })"
prop="name"
/>
<el-table-column label="联系电话" prop="mobile" />
<el-table-column label="研究领域" prop="industryStr" />
<!-- <el-zh-column label="申请(专利权)人" prop="applyName"/>-->
<el-table-column align="center" label="入驻时间" prop="workTime">
<el-table-column :label="t('webContact.phone')" prop="mobile" />
<el-table-column
:label="t('admin.table.researchIndustry')"
prop="industryStr"
/>
<!-- <el-zh-column :label="t('webSearch.applicant')" prop="applyName"/>-->
<el-table-column
align="center"
:label="t('admin.table.enterTime')"
prop="workTime"
>
<template #default="{ row }">
<span>{{ dayjs(row.workTime).format("YYYY-MM-DD") }}</span>
</template>
@ -121,7 +128,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
@ -132,6 +141,7 @@
<script setup>
import dayjs from "dayjs";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { useRouter } from "vue-router";
import { reactive, ref, toRefs } from "vue";
import InputBoxAdd from "@/views/components/InputBoxAdd/index.vue";
@ -190,7 +200,7 @@ function resetQuery() {
/** 删除按钮操作 */
function handleDeleteBind(id) {
ElMessageBox.confirm(`是否确认取消关联数据编号为"${id}"的专家?`)
modal.confirm(`是否确认取消关联数据编号为"${id}"的专家?`)
.then(function () {
return deleteBindExpert(id);
})

View File

@ -69,10 +69,14 @@
<el-table-column
:show-overflow-tooltip="true"
align="center"
label="型号"
:label="t('admin.form.model')"
prop="model"
/>
<el-table-column align="center" label="购买日期" prop="buyDate">
<el-table-column
align="center"
:label="t('admin.form.buyDate')"
prop="buyDate"
>
<template #default="{ row }">
<span>{{ dayjs(row.buyDate).format("YYYY-MM-DD") }}</span>
</template>
@ -126,10 +130,10 @@
"
/>
</el-form-item>
<el-form-item label="型号:" prop="model">
<el-form-item :label="t('admin.form.model')" prop="model">
<el-input v-model="form.model" placeholder="请输入型号" />
</el-form-item>
<el-form-item label="购买时间:" prop="buyDate">
<el-form-item :label="t('admin.form.buyDate')" prop="buyDate">
<el-date-picker
v-model="form.buyDate"
placeholder="请选择购买时间"
@ -137,20 +141,32 @@
value-format="YYYY-MM-DD HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item label="成果参数:" prop="param">
<el-form-item
:label="t('admin.form.achievementParameter')"
prop="param"
>
<el-input v-model="form.param" placeholder="请输入成果参数" />
</el-form-item>
<el-form-item label="设备描述:" prop="description">
<el-form-item
:label="t('admin.form.deviceDescription')"
prop="description"
>
<el-input
v-model="form.description"
placeholder="请输入设备描述"
:placeholder="
t('admin.form.placeholder', {
type: t('admin.form.deviceDescription'),
})
"
type="textarea"
></el-input>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
@ -163,6 +179,7 @@
import { reactive, ref, toRefs } from "vue";
import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import {
deleteEquipment,
equipmentList,
@ -231,7 +248,7 @@ function resetQuery() {
/** 删除按钮操作 */
function handleDelete(row) {
ElMessageBox.confirm('是否确认删除数据编号为"' + row.deviceId + '"的数据项?')
modal.confirm('是否确认删除数据编号为"' + row.deviceId + '"的数据项?')
.then(function () {
return deleteEquipment([row.deviceId]);
})

View File

@ -5,7 +5,9 @@
<el-col :span="12">
<el-row :gutter="12" justify="center">
<el-col :span="1.5">
<el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>
<el-button @click="cancel">{{
t("admin.common.cancel")
}}</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" @click="submit">{{

View File

@ -65,10 +65,14 @@
<el-table-column
:show-overflow-tooltip="true"
align="center"
label="研究领域"
:label="t('admin.table.researchIndustry')"
prop="industryStr"
/>
<el-table-column align="center" label="联系电话" prop="phone" />
<el-table-column
align="center"
:label="t('webContact.phone')"
prop="phone"
/>
<el-table-column align="center" label="实验室网址" prop="url" />
<el-table-column align="center" label="添加日期" prop="createTime">
<template #default="{ row }">
@ -122,10 +126,10 @@
"
/>
</el-form-item>
<el-form-item label="型号:" prop="model">
<el-form-item :label="t('admin.form.model')" prop="model">
<el-input v-model="form.model" placeholder="请输入型号" />
</el-form-item>
<el-form-item label="购买时间:" prop="buyDate">
<el-form-item :label="t('admin.form.buyDate')" prop="buyDate">
<el-date-picker
v-model="form.buyDate"
placeholder="请选择购买时间"
@ -133,20 +137,32 @@
value-format="YYYY-MM-DD HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item label="成果参数:" prop="param">
<el-form-item
:label="t('admin.form.achievementParameter')"
prop="param"
>
<el-input v-model="form.param" placeholder="请输入成果参数" />
</el-form-item>
<el-form-item label="设备描述:" prop="description">
<el-form-item
:label="t('admin.form.deviceDescription')"
prop="description"
>
<el-input
v-model="form.description"
placeholder="请输入设备描述"
:placeholder="
t('admin.form.placeholder', {
type: t('admin.form.deviceDescription'),
})
"
type="textarea"
></el-input>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
@ -158,6 +174,7 @@
import { reactive, ref, toRefs } from "vue";
import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import {
deleteEquipment,
insertEquipment,
@ -228,7 +245,7 @@ function resetQuery() {
/** 删除按钮操作 */
function handleDelete(row) {
ElMessageBox.confirm('是否确认删除数据编号为"' + row.deviceId + '"的数据项?')
modal.confirm('是否确认删除数据编号为"' + row.deviceId + '"的数据项?')
.then(function () {
return deleteEquipment([row.deviceId]);
})
@ -290,7 +307,7 @@ function submitForm() {
}
const handleCancelBind = (row) => {
ElMessageBox.confirm(`是否确认解绑实验室 : ${row.name}`, "解绑实验室")
modal.confirm(`是否确认解绑实验室 : ${row.name}`, "解绑实验室")
.then(() => {
return delBindLaboratory(row.id);
})

View File

@ -48,14 +48,26 @@
<el-table-column :label="t('admin.common.dataNumber')" prop="id" />
<el-table-column
:show-overflow-tooltip="true"
label="论文题目"
:label="t('admin.form.paperTitle')"
prop="title"
/>
<el-table-column :show-overflow-tooltip="true" label="刊物" prop="ext" />
<el-table-column label="所属专家" prop="author" />
<el-table-column align="center" label="关键词" prop="keyword" />
<el-table-column
:show-overflow-tooltip="true"
:label="t('admin.form.publication')"
prop="ext"
/>
<el-table-column :label="t('admin.form.belongExpert')" prop="author" />
<el-table-column
align="center"
:label="t('admin.form.keywords')"
prop="keyword"
/>
<!-- <el-zh-column align="center" label="浏览量" prop="readCount"/>-->
<el-table-column align="center" label="出版日期" prop="publishTime">
<el-table-column
align="center"
:label="t('admin.form.publishDate')"
prop="publishTime"
>
<template #default="{ row }">
<span>{{ dayjs(row.publishTime).format("YYYY-MM-DD") }}</span>
</template>
@ -100,7 +112,7 @@
<el-form-item label="论文题目:" prop="title">
<el-input v-model="form.title" placeholder="请输入论文题目" />
</el-form-item>
<el-form-item label="刊物:" prop="ext">
<el-form-item :label="t('admin.form.publication')" prop="ext">
<el-input v-model="form.ext" placeholder="请输入刊物" />
</el-form-item>
<el-form-item label="作者:" prop="author">
@ -132,7 +144,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
@ -143,6 +157,7 @@
<script setup>
import dayjs from "dayjs";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import InputBoxAdd from "@/views/components/InputBoxAdd";
import { useRouter } from "vue-router";
import { getCurrentInstance, reactive, ref, toRefs } from "vue";
@ -216,7 +231,7 @@ function resetQuery() {
/** 删除按钮操作 */
function handleDelete(id) {
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的论文项?')
modal.confirm('是否确认删除数据编号为"' + id + '"的论文项?')
.then(function () {
return deletePaper(id);
})

View File

@ -53,12 +53,16 @@
/>
<el-table-column
:show-overflow-tooltip="true"
label="申请号"
:label="t('webSearch.applicationNumber')"
prop="applyCode"
/>
<el-table-column label="发明人" prop="inventor" />
<el-table-column label="申请(专利权)人" prop="applyName" />
<el-table-column align="center" label="申请日期" prop="applyAt">
<el-table-column :label="t('admin.form.inventor')" prop="inventor" />
<el-table-column :label="t('webSearch.applicant')" prop="applyName" />
<el-table-column
align="center"
:label="t('admin.form.applicationDate')"
prop="applyAt"
>
<template #default="{ row }">
<span>{{ dayjs(row.applyAt).format("YYYY-MM-DD") }}</span>
</template>
@ -96,6 +100,7 @@ import dayjs from "dayjs";
import { useRouter } from "vue-router";
import { reactive, ref, toRefs } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import {
deleteResearchPatentByIds,
researchPatentList,
@ -151,7 +156,7 @@ function resetQuery() {
/** 删除按钮操作 */
function handleDelete(id) {
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的专利项?')
modal.confirm('是否确认删除数据编号为"' + id + '"的专利项?')
.then(function () {
return deleteResearchPatentByIds(id);
})

View File

@ -66,16 +66,24 @@
:label="t('admin.common.type')"
prop="kind"
/>
<!-- <el-zh-column label="所属专家" prop="inventor" />-->
<el-table-column align="center" label="课题角色">
<!-- <el-zh-column :label="t('admin.form.belongExpert')" prop="inventor" />-->
<el-table-column align="center" :label="t('admin.table.topicRole')">
<template #default="{ row }">
<span>{{
subjectRoleDict.find((item) => item.value === row.role)?.label
}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="课题负责人" prop="director" />
<el-table-column align="center" label="发布时间" prop="applyAt">
<el-table-column
align="center"
:label="t('admin.form.topicLeader')"
prop="director"
/>
<el-table-column
align="center"
:label="t('admin.table.publishTime')"
prop="applyAt"
>
<template #default="{ row }">
<span>{{ dayjs(row.applyAt).format("YYYY-MM-DD") }}</span>
</template>
@ -118,6 +126,7 @@
<script setup>
import dayjs from "dayjs";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { useRouter } from "vue-router";
import { getCurrentInstance, reactive, ref, toRefs } from "vue";
import {
@ -178,7 +187,8 @@ function resetQuery() {
/** 删除按钮操作 */
function handleDelete(id) {
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的科研项目?')
modal
.confirm('是否确认删除数据编号为"' + id + '"的科研项目?')
.then(function () {
return deleteTechnologyProject(id);
})

View File

@ -9,7 +9,10 @@
<el-row>
<el-col :span="24">
<el-form-item label="需求名称:" prop="title">
<el-form-item
:label="t('admin.form.name', { type: t('admin.common.demand') })"
prop="title"
>
<el-input v-model="formData.title"></el-input>
</el-form-item>
</el-col>
@ -47,7 +50,7 @@
<el-row>
<el-col :span="24">
<el-form-item label="需求描述:" prop="add">
<el-form-item :label="t('webSearch.demandDescription')" prop="add">
<editor v-model="formData.add" :minHeight="150" />
</el-form-item>
</el-col>
@ -61,7 +64,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="需求联系人:" prop="name">
<el-form-item :label="t('admin.form.demandContact')" prop="name">
<el-input
v-model="formData.name"
placeholder="请输入需求联系人"
@ -69,7 +72,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人手机号:" prop="mobile">
<el-form-item :label="t('admin.form.contactPhone')" prop="mobile">
<el-input
v-model="formData.mobile"
placeholder="请输入联系人手机号"
@ -99,7 +102,9 @@
</el-form>
<el-row justify="center">
<el-col :span="1.5">
<el-button type="primary" @click="cancel">{{ t("identity.entrance.back") }}</el-button>
<el-button type="primary" @click="cancel">{{
t("admin.identity.entrance.back")
}}</el-button>
</el-col>
</el-row>
</el-card>

View File

@ -75,7 +75,7 @@
:label="t('admin.form.mobile')"
prop="mobile"
/>
<el-table-column align="center" label="发布时间">
<el-table-column align="center" :label="t('admin.table.publishTime')">
<template #default="{ row }">
<span>{{ dayjs(row.createTime).format("YYYY-MM-DD") }}</span>
</template>
@ -114,6 +114,7 @@
import { deleteLabPatentByIds } from "@/api/admin/laboratory/patent";
import dayjs from "dayjs";
import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal";
import { useRouter } from "vue-router";
import { getCurrentInstance, reactive, ref, toRefs } from "vue";
import { serviceDemandList } from "@/api/admin/research/service-demand";
@ -173,7 +174,8 @@ function resetQuery() {
/** 删除按钮操作 */
function handleDelete(id) {
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的专利项?')
modal
.confirm('是否确认删除数据编号为"' + id + '"的专利项?')
.then(function () {
return deleteLabPatentByIds(id);
})

View File

@ -11,7 +11,7 @@
<el-row v-if="isAdd">
<el-col :span="24">
<el-form-item label="姓名:" prop="name">
<el-form-item :label="t('admin.form.fullName')" prop="name">
<el-input v-model="modelValue.name"></el-input>
</el-form-item>
</el-col>
@ -19,7 +19,7 @@
<el-row v-if="isAdd">
<el-col :span="24">
<el-form-item label="手机号:" prop="mobile">
<el-form-item :label="t('admin.form.mobile')" prop="mobile">
<el-input v-model="modelValue.mobile"></el-input>
</el-form-item>
</el-col>
@ -27,7 +27,7 @@
<el-row v-if="isAdd">
<el-col :span="24">
<el-form-item label="身份证号:" prop="idCard">
<el-form-item :label="t('admin.form.idCard')" prop="idCard">
<el-input v-model="modelValue.idCard"></el-input>
</el-form-item>
</el-col>
@ -60,8 +60,8 @@
v-model="modelValue"
:labelWidth="labelWidth"
fieldKey="keywords"
placeholder="应用场景关键词+技术产品关键词"
title="关键词"
:placeholder="t('admin.form.inputKeywords')"
:title="t('admin.form.keywords')"
/>
<el-row v-if="isAdd">

View File

@ -1,9 +1,9 @@
<template>
<el-form
ref="formRef"
:label-width="labelWidth + 'px'"
:model="modelValue"
:rules="rules"
ref="formRef"
:label-width="labelWidth + 'px'"
:model="modelValue"
:rules="rules"
>
<div v-if="showTitle" class="form_title">
{{ t("admin.form.basicInfo") }}
@ -13,7 +13,7 @@
<el-row>
<el-col :span="24">
<el-form-item label="企业logo:">
<ImageUpload v-model="modelValue.image" :limit="1"/>
<ImageUpload v-model="modelValue.image" :limit="1" />
</el-form-item>
</el-col>
</el-row>
@ -36,9 +36,9 @@
<el-col :span="24">
<el-form-item label="联系方式" prop="phone">
<el-input
v-model="modelValue.phone"
:maxlength="11"
oninput="
v-model="modelValue.phone"
:maxlength="11"
oninput="
value = value
.replace(/[^\d.]/g, '')
.replace(/\.{2,}/g, '.')
@ -79,10 +79,10 @@
<el-form-item label="企业类型:" prop="kind">
<el-select v-model="modelValue.kind" placeholder="请选择">
<el-option
v-for="item in enterpriseOptions"
:key="item.key"
:label="item.value"
:value="item.key"
v-for="item in enterpriseOptions"
:key="item.key"
:label="item.value"
:value="item.key"
>
</el-option>
</el-select>
@ -96,9 +96,9 @@
</el-row>
<CityOptions
ref="cityFormRef"
v-model="modelValue"
:labelWidth="labelWidth"
ref="cityFormRef"
v-model="modelValue"
:labelWidth="labelWidth"
/>
<el-row>
@ -110,27 +110,27 @@
</el-row>
<FieldOptions
ref="fieldFormRef"
v-model="modelValue"
:labelWidth="labelWidth"
ref="fieldFormRef"
v-model="modelValue"
:labelWidth="labelWidth"
/>
<InputBoxAdd
ref="keywordsFormRef"
v-model="modelValue"
:labelWidth="labelWidth"
fieldKey="keywords"
placeholder="应用场景关键词+技术产品关键词"
title="关键词"
ref="keywordsFormRef"
v-model="modelValue"
:labelWidth="labelWidth"
fieldKey="keywords"
placeholder="应用场景关键词+技术产品关键词"
title="关键词"
/>
<InputBoxAdd
v-if="isAdd"
ref="directionsFormRef"
v-model="modelValue"
:labelWidth="labelWidth"
fieldKey="directions"
placeholder="请输入生产方向"
title="生产方向"
v-if="isAdd"
ref="directionsFormRef"
v-model="modelValue"
:labelWidth="labelWidth"
fieldKey="directions"
placeholder="请输入生产方向"
title="生产方向"
/>
<el-row>
@ -149,9 +149,9 @@
<el-col :span="24">
<el-form-item :label="t('admin.form.businessLicense')" prop="license">
<image-upload
v-model="modelValue.license"
:isShowTip="false"
:limit="1"
v-model="modelValue.license"
:isShowTip="false"
:limit="1"
/>
</el-form-item>
</el-col>
@ -172,9 +172,9 @@
<el-col :span="24">
<el-form-item label="单位简介" prop="introduce">
<WangEditor
v-model="modelValue.introduce"
:minHeight="300"
@blur="formRef.validateField(`introduce`)"
v-model="modelValue.introduce"
:minHeight="300"
@blur="formRef.validateField(`introduce`)"
/>
</el-form-item>
</el-col>
@ -188,12 +188,12 @@ import FieldOptions from "../FieldOptions";
import InputBoxAdd from "../InputBoxAdd";
// import { researchSelect, laboratorySelect } from "@/api/identity/index";
import WangEditor from "@/components/WangEditor";
import {enterpriseOptions} from "@/utils/parameter";
import {reactive, ref, toRefs} from "vue";
import { enterpriseOptions } from "@/utils/parameter";
import { reactive, ref, toRefs } from "vue";
import ImageUpload from "@/components/ImageUpload/index.vue";
import {useI18n} from "vue-i18n";
import { useI18n } from "vue-i18n";
const {t} = useI18n();
const { t } = useI18n();
const props = defineProps({
modelValue: Object,
isAdd: {
@ -209,7 +209,7 @@ const props = defineProps({
default: 120,
},
});
const {modelValue, isAdd, showTitle, labelWidth} = toRefs(props);
const { modelValue, isAdd, showTitle, labelWidth } = toRefs(props);
const vNumber = {
mounted: (el, _binding, vnode, _prevVnode) => {
@ -243,9 +243,9 @@ const data = reactive({
trigger: "blur",
},
],
username: [{required: true, message: "请输入联系人", trigger: "blur"}],
username: [{ required: true, message: "请输入联系人", trigger: "blur" }],
phone: [
{required: true, message: "请输入联系方式", trigger: "blur"},
{ required: true, message: "请输入联系方式", trigger: "blur" },
{
pattern: /^1[3456789]\d{9}$/,
message: "手机号格式不正确",
@ -253,7 +253,7 @@ const data = reactive({
},
],
email: [
{required: true, message: "请输入邮箱", trigger: "blur"},
{ required: true, message: "请输入邮箱", trigger: "blur" },
{
pattern: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
message: "邮箱格式不正确",
@ -358,7 +358,7 @@ const data = reactive({
],
},
});
const {rules} = toRefs(data);
const { rules } = toRefs(data);
const formRef = ref();
const cityFormRef = ref();
@ -383,11 +383,11 @@ const validateForm = async () => {
if (isAdd.value) {
const directionsFormValid = await directionsFormRef.value.validateForm();
return (
formValid &&
cityFormValid &&
fieldFormValid &&
keywordsFormValid &&
directionsFormValid
formValid &&
cityFormValid &&
fieldFormValid &&
keywordsFormValid &&
directionsFormValid
);
} else {
return formValid && cityFormValid && fieldFormValid && keywordsFormValid;

View File

@ -18,7 +18,7 @@
</el-col>
</el-row>
<el-row v-if="isAdd">
<el-row v-if="isAdd && false">
<el-col :span="24">
<el-form-item :label="t('admin.form.organizationCode')" prop="code">
<el-row justify="space-between" type="flex">
@ -52,8 +52,8 @@
v-model="modelValue"
:labelWidth="labelWidth"
fieldKey="keywords"
placeholder="应用场景关键词+技术产品关键词"
title="关键词"
:placeholder="t('admin.form.inputKeywords')"
:title="t('admin.form.keywords')"
/>
<el-row>
<el-col :span="24">
@ -89,12 +89,92 @@
v-model="modelValue"
:labelWidth="labelWidth"
fieldKey="researchs"
placeholder="请输入研究方向"
title="研究方向"
:placeholder="
t('admin.form.placeholder', { type: t('admin.form.researchDirection') })
"
:title="t('admin.form.researchDirection')"
/>
<el-row>
<el-col :span="24">
<el-form-item label="实验室简介" prop="introduction">
<el-form-item
:label="t('webSearch.technicalApplication')"
prop="primaryTechnology"
>
<el-input
v-model="modelValue.primaryTechnology"
:autosize="{ minRows: 4 }"
:placeholder="
t('admin.form.placeholder', {
type: t('webSearch.technicalApplication'),
})
"
type="textarea"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item
:label="t('webSearch.researchProject')"
prop="researchProject"
>
<el-input
v-model="modelValue.researchProject"
:autosize="{ minRows: 4 }"
:placeholder="
t('admin.form.placeholder', {
type: t('webSearch.researchProject'),
})
"
type="textarea"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item
:label="t('webSearch.representativeAchievements')"
prop="achievement"
>
<el-input
v-model="modelValue.achievement"
:autosize="{ minRows: 4 }"
:placeholder="
t('admin.form.placeholder', {
type: t('webSearch.representativeAchievements'),
})
"
type="textarea"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="t('webContact.phone')" prop="phone">
<el-input
v-model="modelValue.phone"
:maxlength="11"
oninput="value = value.replace(/\D+/, '')"
:placeholder="
t('admin.form.placeholder', { type: t('webContact.phone') })
"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item
:label="
t('admin.form.introduction', {
type: t('admin.common.lab'),
})
"
prop="introduction"
>
<editor
ref="introduceRef"
v-model="modelValue.introduction"

View File

@ -3,8 +3,12 @@
<el-card shadow="always" style="width: 55%; margin: 0 auto">
<agent-form ref="agentFormRef" v-model="form" is-add />
<div :style="{ marginLeft: labelWidth + 'px' }">
<el-button @click="$router.go(-1)">{{ t("admin.common.cancel") }}</el-button>
<el-button type="primary" @click="submitForm">{{ t("admin.common.submit") }}</el-button>
<el-button @click="$router.go(-1)">{{
t("admin.common.cancel")
}}</el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.submit")
}}</el-button>
</div>
</el-card>
</div>

View File

@ -8,8 +8,12 @@
ref="enterpriseFormRef"
/>
<div :style="{ marginLeft: labelWidth + 'px' }">
<el-button @click="$router.go(-1)">{{ t("admin.common.cancel") }}</el-button>
<el-button type="primary" @click="submitForm">{{ t("admin.common.submit") }}</el-button>
<el-button @click="$router.go(-1)">{{
t("admin.common.cancel")
}}</el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.submit")
}}</el-button>
</div>
</el-card>
</div>
@ -17,11 +21,11 @@
<script setup>
import { insertEnterprise } from "@/api/identity/index";
import { ElMessage } from "element-plus";
import {reactive, ref, toRefs} from "vue";
import { reactive, ref, toRefs } from "vue";
import { useRouter } from "vue-router";
import EnterpriseForm from "../components/EnterpriseForm/index.vue";
import {useI18n} from "vue-i18n";
const {t} = useI18n();
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const router = useRouter();
const labelWidth = 140;

View File

@ -8,8 +8,12 @@
ref="expertFormRef"
/>
<div :style="{ marginLeft: labelWidth + 'px' }">
<el-button @click="$router.go(-1)">{{ t("admin.common.cancel") }}</el-button>
<el-button type="primary" @click="submitForm">{{ t("admin.common.submit") }}</el-button>
<el-button @click="$router.go(-1)">{{
t("admin.common.cancel")
}}</el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.submit")
}}</el-button>
</div>
</el-card>
</div>

View File

@ -3,8 +3,12 @@
<el-card shadow="always" style="width: 55%; margin: 0 auto">
<laboratory-form ref="laboratoryFormRef" v-model="form" is-add />
<div :style="{ marginLeft: labelWidth + 'px' }">
<el-button @click="$router.go(-1)">{{ t("admin.common.cancel") }}</el-button>
<el-button type="primary" @click="submitForm">{{ t("admin.common.submit") }}</el-button>
<el-button @click="$router.go(-1)">{{
t("admin.common.cancel")
}}</el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.submit")
}}</el-button>
</div>
</el-card>
</div>
@ -15,7 +19,9 @@ import LaboratoryForm from "@/views/components/LaboratoryForm";
import { reactive, ref, toRefs } from "vue";
import { ElMessage } from "element-plus";
import { useRouter } from "vue-router";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const props = defineProps({
labelWidth: {
type: Number,

View File

@ -3,8 +3,12 @@
<el-card shadow="always" style="width: 55%; margin: 0 auto">
<research-form ref="researchFormRef" v-model="form" is-add />
<div :style="{ marginLeft: labelWidth + 'px' }">
<el-button @click="router.push('/identity/index')">{{ t("admin.common.cancel") }}</el-button>
<el-button type="primary" @click="submitForm">{{ t("admin.common.submit") }}</el-button>
<el-button @click="router.push('/identity/index')">{{
t("admin.common.cancel")
}}</el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.submit")
}}</el-button>
</div>
</el-card>
</div>

View File

@ -306,7 +306,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</template>

View File

@ -222,7 +222,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>

View File

@ -167,7 +167,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话" prop="phone">
<el-form-item :label="t('webContact.phone')" prop="phone">
<el-input
v-model="form.phone"
placeholder="请输入联系电话"
@ -200,7 +200,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>

View File

@ -229,7 +229,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>

View File

@ -226,7 +226,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>

View File

@ -370,7 +370,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>

View File

@ -215,7 +215,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>

View File

@ -187,7 +187,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>

View File

@ -281,7 +281,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
@ -342,7 +344,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitDataScope"> </el-button>
<el-button type="primary" @click="submitDataScope">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancelDataScope"> </el-button>
</div>
</template>

View File

@ -86,7 +86,9 @@
</el-row>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="handleSelectUser"> </el-button>
<el-button type="primary" @click="handleSelectUser">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="visible = false"> </el-button>
</div>
</template>

View File

@ -59,8 +59,12 @@
<el-form label-width="100px">
<div style="text-align: center; margin-left: -120px; margin-top: 30px">
<el-button type="primary" @click="submitForm()">{{ t("admin.common.submit") }}</el-button>
<el-button @click="close()">{{ t("identity.entrance.back") }}</el-button>
<el-button type="primary" @click="submitForm()">{{
t("admin.common.submit")
}}</el-button>
<el-button @click="close()">{{
t("admin.identity.entrance.back")
}}</el-button>
</div>
</el-form>
</div>

View File

@ -428,7 +428,9 @@
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submitForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
@ -475,7 +477,9 @@
</el-upload>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitFileForm"> </el-button>
<el-button type="primary" @click="submitFileForm">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="upload.open = false"> </el-button>
</div>
</template>

View File

@ -1,67 +1,69 @@
<template>
<div class="user-info-head" @click="editCropper()">
<img :src="options.img" title="点击上传头像" class="img-circle img-lg" />
<div>
<div class="user-info-head" @click="editCropper()">
<img :src="options.img" title="点击上传头像" class="img-circle img-lg" />
</div>
<el-dialog
:title="title"
v-model="open"
width="800px"
append-to-body
@opened="modalOpened"
@close="closeDialog"
>
<el-row>
<el-col :xs="24" :md="12" :style="{ height: '350px' }">
<vue-cropper
ref="cropper"
:img="options.img"
:info="true"
:autoCrop="options.autoCrop"
:autoCropWidth="options.autoCropWidth"
:autoCropHeight="options.autoCropHeight"
:fixedBox="options.fixedBox"
@realTime="realTime"
v-if="visible"
/>
</el-col>
<el-col :xs="24" :md="12" :style="{ height: '350px' }">
<div class="avatar-upload-preview">
<img :src="options.previews.url" :style="options.previews.img" />
</div>
</el-col>
</el-row>
<br />
<el-row>
<el-col :lg="2" :md="2">
<el-upload
action="#"
:http-request="requestUpload"
:show-file-list="false"
:before-upload="beforeUpload"
>
<el-button>
选择
<el-icon class="el-icon--right"><Upload /></el-icon>
</el-button>
</el-upload>
</el-col>
<el-col :lg="{ span: 1, offset: 2 }" :md="2">
<el-button icon="Plus" @click="changeScale(1)"></el-button>
</el-col>
<el-col :lg="{ span: 1, offset: 1 }" :md="2">
<el-button icon="Minus" @click="changeScale(-1)"></el-button>
</el-col>
<el-col :lg="{ span: 1, offset: 1 }" :md="2">
<el-button icon="RefreshLeft" @click="rotateLeft()"></el-button>
</el-col>
<el-col :lg="{ span: 1, offset: 1 }" :md="2">
<el-button icon="RefreshRight" @click="rotateRight()"></el-button>
</el-col>
<el-col :lg="{ span: 2, offset: 6 }" :md="2">
<el-button type="primary" @click="uploadImg()"> </el-button>
</el-col>
</el-row>
</el-dialog>
</div>
<el-dialog
:title="title"
v-model="open"
width="800px"
append-to-body
@opened="modalOpened"
@close="closeDialog"
>
<el-row>
<el-col :xs="24" :md="12" :style="{ height: '350px' }">
<vue-cropper
ref="cropper"
:img="options.img"
:info="true"
:autoCrop="options.autoCrop"
:autoCropWidth="options.autoCropWidth"
:autoCropHeight="options.autoCropHeight"
:fixedBox="options.fixedBox"
@realTime="realTime"
v-if="visible"
/>
</el-col>
<el-col :xs="24" :md="12" :style="{ height: '350px' }">
<div class="avatar-upload-preview">
<img :src="options.previews.url" :style="options.previews.img" />
</div>
</el-col>
</el-row>
<br />
<el-row>
<el-col :lg="2" :md="2">
<el-upload
action="#"
:http-request="requestUpload"
:show-file-list="false"
:before-upload="beforeUpload"
>
<el-button>
选择
<el-icon class="el-icon--right"><Upload /></el-icon>
</el-button>
</el-upload>
</el-col>
<el-col :lg="{ span: 1, offset: 2 }" :md="2">
<el-button icon="Plus" @click="changeScale(1)"></el-button>
</el-col>
<el-col :lg="{ span: 1, offset: 1 }" :md="2">
<el-button icon="Minus" @click="changeScale(-1)"></el-button>
</el-col>
<el-col :lg="{ span: 1, offset: 1 }" :md="2">
<el-button icon="RefreshLeft" @click="rotateLeft()"></el-button>
</el-col>
<el-col :lg="{ span: 1, offset: 1 }" :md="2">
<el-button icon="RefreshRight" @click="rotateRight()"></el-button>
</el-col>
<el-col :lg="{ span: 2, offset: 6 }" :md="2">
<el-button type="primary" @click="uploadImg()"> </el-button>
</el-col>
</el-row>
</el-dialog>
</template>
<script setup>
@ -147,6 +149,10 @@ function closeDialog() {
options.img = userStore.avatar;
options.visible = false;
}
defineExpose({
editCropper,
});
</script>
<style lang="scss" scoped>

View File

@ -147,8 +147,12 @@
</el-tabs>
<el-form label-width="100px">
<div style="text-align: center; margin-left: -100px; margin-top: 10px">
<el-button type="primary" @click="submitForm()">{{ t("admin.common.submit") }}</el-button>
<el-button @click="close()">{{ t("identity.entrance.back") }}</el-button>
<el-button type="primary" @click="submitForm()">{{
t("admin.common.submit")
}}</el-button>
<el-button @click="close()">{{
t("admin.identity.entrance.back")
}}</el-button>
</div>
</el-form>
</el-card>

View File

@ -63,7 +63,9 @@
</el-row>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="handleImportTable"> </el-button>
<el-button type="primary" @click="handleImportTable">{{
t("admin.common.confirm")
}}</el-button>
<el-button @click="visible = false"> </el-button>
</div>
</template>

View File

@ -55,7 +55,14 @@
</template>
<script setup>
import { defineComponent, getCurrentInstance, onMounted, reactive } from "vue";
import {
defineComponent,
getCurrentInstance,
onMounted,
reactive,
ref,
shallowRef,
} from "vue";
import {
countExpertByArea,
countExpertByCity,
@ -243,7 +250,7 @@ onMounted(() => {
};
state.district = new AMap.DistrictSearch(state.opts); //注意:需要使用插件同步下发功能才能这样直接使用
state.district.search("中国", (status, result) => {
if (status == "complete") {
if (status === "complete") {
getData(result.districtList[0], "", 100000);
}
});
@ -254,7 +261,7 @@ function goBack() {
state.isShowGoBack = false;
loading.value = true;
state.district.search("中国", async (status, result) => {
if (status == "complete") {
if (status === "complete") {
await getData(result.districtList[0], "", 100000);
// snapTree.value = formatData(treeData.count);
snapTree.value = treeData.count;

View File

@ -63,6 +63,7 @@ import {
countDemandByProvince,
countDemandByCity,
countDemandByArea,
banner,
} from "@/api/website/home/index";
import RegionPagine from "./RegionPagine.vue";
import { useI18n } from "vue-i18n";
@ -174,6 +175,7 @@ const state = reactive({
loading: false,
isShowGoBack: false,
nameType: "",
banner: "",
// cityName: "中国",
cityName: "china",
areaCode: 10000,
@ -460,6 +462,7 @@ function loadMap(mapName, data) {
width: 100%;
height: 100%;
position: relative;
background: linear-gradient(0deg, #010101, #041744);
.tit {
position: absolute;
@ -467,16 +470,16 @@ function loadMap(mapName, data) {
width: 100%;
text-align: center;
font-size: 36px;
font-family: Source Han Sans CN;
font-family: Source Han Sans CN, sans-serif;
font-weight: 300;
color: #333333;
color: #fff;
}
}
.map {
width: 100%;
height: 100%;
// background-image: url(./img/lightEffect.png);
background-image: url(./img/lightEffect.png);
background-size: 644px 272px;
background-repeat: no-repeat;
background-position: center top;
@ -523,21 +526,21 @@ function loadMap(mapName, data) {
min-width: 200px;
max-height: 256px;
// overflow: hidden;
border: 1px solid #dcdcdc;
color: #666666;
border: 1px solid #0054ff;
color: rgba(161, 192, 255, 1);
& > div {
display: flex;
}
.head {
border-bottom: 1px solid #dcdcdc;
color: #333333;
border-bottom: 1px solid #0054ff;
color: #ffffff;
}
.a {
flex: 1;
border-right: 1px solid #dcdcdc;
border-right: 1px solid #0054ff;
text-align: center;
line-height: 42px;
overflow: hidden;