update i18n

This commit is contained in:
2023-07-17 17:31:42 +08:00
parent 1f3f9d7b31
commit 248c57b338
64 changed files with 504 additions and 196 deletions

View File

@ -131,7 +131,7 @@ const rules = ref({
{ required: true, message: "联系电话不能为空", trigger: "blur" }, { required: true, message: "联系电话不能为空", trigger: "blur" },
{ {
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码", message: computed(()=>t("admin.validation.pleaseEnterTheCorrectFormatOfThePhoneNumber")),
trigger: "blur", trigger: "blur",
}, },
], ],

View File

@ -25,14 +25,11 @@ const messages = {
activity: "活动报名", activity: "活动报名",
aboutUs: "关于我们", aboutUs: "关于我们",
loginRegister: "登录注册", loginRegister: "登录注册",
// 个人中心
personalCenter: "个人中心", personalCenter: "个人中心",
// 退出登录
logout: "退出登录", logout: "退出登录",
// 切换系统
switchSystem: "切换系统", switchSystem: "切换系统",
// 布局设置
layoutSettings: "布局设置", layoutSettings: "布局设置",
changeAvatar: "更换头像",
}, },
footer: { footer: {
copyRight: "中科云 版权所有", copyRight: "中科云 版权所有",
@ -146,14 +143,11 @@ const messages = {
activity: "Регистрация на мероприятие", activity: "Регистрация на мероприятие",
aboutUs: "О нас", aboutUs: "О нас",
loginRegister: "Войти в систему", loginRegister: "Войти в систему",
// 个人中心
personalCenter: "Личный кабинет", personalCenter: "Личный кабинет",
// 退出登录
logout: "Выйти из системы", logout: "Выйти из системы",
// 切换系统
switchSystem: "Переключить систему", switchSystem: "Переключить систему",
// 布局设置
layoutSettings: "Настройки макета", layoutSettings: "Настройки макета",
changeAvatar: "Сменить аватар",
}, },
footer: { footer: {
copyRight: "Все права защищены", copyRight: "Все права защищены",

View File

@ -47,5 +47,17 @@ const form = {
contactPhone: "Номер мобильного телефона контактного лица", contactPhone: "Номер мобильного телефона контактного лица",
// 申请日期 // 申请日期
applicationDate: "Дата подачи заявки", applicationDate: "Дата подачи заявки",
// 新增{type}
add: "Добавить {type}",
// 修改{type}
edit: "Изменить {type}",
// 添加数据
addData: "Добавить данные",
// 修改数据
editData: "Изменить данные",
// 所属院所或单位
institute: "Институт или организация",
// 从业时间
workingTime: "Время работы",
}; };
export default form; export default form;

View File

@ -46,6 +46,18 @@ const form = {
contactPhone: "联系人手机号", contactPhone: "联系人手机号",
// 申请日期 // 申请日期
applicationDate: "申请日期", applicationDate: "申请日期",
// 新增{type}
add: "新增{type}",
// 修改{type}
edit: "修改{type}",
// 添加数据
addData: "添加数据",
// 修改数据
editData: "修改数据",
// 所属院所或单位
institute: "所属院所或单位",
// 从业时间
workingTime: "从业时间",
}; };
export default form; export default form;

View File

@ -8,6 +8,8 @@ import broker_zh from "./broker/zh";
import broker_ru from "./broker/ru"; import broker_ru from "./broker/ru";
import table_zh from "./table/zh"; import table_zh from "./table/zh";
import table_ru from "./table/ru"; import table_ru from "./table/ru";
import validation_zh from "./validation/zh";
import validation_ru from "./validation/ru";
export const admin_zh = { export const admin_zh = {
identity: { identity: {
@ -17,7 +19,9 @@ export const admin_zh = {
form: form_zh, form: form_zh,
broker: broker_zh, broker: broker_zh,
table: table_zh, table: table_zh,
validation: validation_zh,
}; };
export const admin_ru = { export const admin_ru = {
identity: { identity: {
entrance: entrance_ru, entrance: entrance_ru,
@ -26,4 +30,5 @@ export const admin_ru = {
form: form_ru, form: form_ru,
broker: broker_ru, broker: broker_ru,
table: table_ru, table: table_ru,
validation: validation_ru,
}; };

View File

@ -13,8 +13,20 @@ const table = {
achievementIndustry: "Область достижений", achievementIndustry: "Область достижений",
// 取消关联 // 取消关联
cancelRelation: "Отменить связь", cancelRelation: "Отменить связь",
// 取消发布 // 取消发布
cancelPublish: "Отменить публикацию", cancelPublish: "Отменить публикацию",
// 浏览单位信息
viewUnitInfo: "Просмотреть информацию об учреждении",
// 浏览次数
viewCount: "Количество просмотров",
// 浏览时间
viewTime: "Время просмотра",
// 浏览类别
viewCategory: "Категория просмотра",
// 实验室网址
labWebsite: "Веб-сайт лаборатории",
// 添加日期
addDate: "Дата добавления",
}; };
export default table; export default table;

View File

@ -14,6 +14,18 @@ const table = {
// 取消关联 // 取消关联
cancelRelation: "取消关联", cancelRelation: "取消关联",
// 取消发布 // 取消发布
cancelPublish: "取消发布", cancelPublish: "取消发布",
// 浏览单位信息
viewUnitInfo: "浏览单位信息",
// 浏览次数
viewCount: "浏览次数",
// 浏览时间
viewTime: "浏览时间",
// 浏览类别
viewCategory: "浏览类别",
// 实验室网址
labWebsite: "实验室网址",
// 添加日期
addDate: "添加日期",
}; };
export default table; export default table;

View File

@ -0,0 +1,10 @@
const validation = {
// {type}不能为空
required: "{type} не может быть пустым",
// 请上传
pleaseUpload: "Пожалуйста, загрузите",
// 请输入正确格式的手机号码
pleaseEnterTheCorrectFormatOfThePhoneNumber:
"Пожалуйста, введите правильный формат номера телефона",
};
export default validation;

View File

@ -0,0 +1,10 @@
const validation = {
// {type}不能为空
required: "{type}不能为空",
// 请上传
pleaseUpload: "请上传",
// 请输入正确格式的手机号码
pleaseEnterTheCorrectFormatOfThePhoneNumber: "请输入正确格式的手机号码",
};
export default validation;

View File

@ -14,5 +14,9 @@ const common = {
congratulations: "Поздравляем", congratulations: "Поздравляем",
title: "Цифровой мозг науки и технологий", title: "Цифровой мозг науки и технологий",
status: "{type} статус", status: "{type} статус",
// 选择
select: "Выбрать",
// 提交
submit: "Представить",
}; };
export default common; export default common;

View File

@ -14,6 +14,10 @@ export const common = {
congratulations: "恭喜你", congratulations: "恭喜你",
title: "数字科创大脑", title: "数字科创大脑",
status: "{type}状态", status: "{type}状态",
// 选择
select: "选择",
// 提交
submit: "提交",
}; };
export default common; export default common;

View File

@ -25,6 +25,7 @@ const lab = {
browseInformation: "Информация о просмотре", browseInformation: "Информация о просмотре",
// 实验设备 // 实验设备
experimentalEquipment: "Экспериментальное оборудование", experimentalEquipment: "Экспериментальное оборудование",
viewUnitInformation: "Информация о просмотре",
}; };
export default lab; export default lab;

View File

@ -25,6 +25,7 @@ const lab = {
browseInformation: "浏览单位信息", browseInformation: "浏览单位信息",
// 实验设备 // 实验设备
experimentalEquipment: "实验设备", experimentalEquipment: "实验设备",
viewUnitInformation: "浏览单位信息",
}; };
export default lab; export default lab;

View File

@ -58,7 +58,7 @@
</el-dropdown-item> </el-dropdown-item>
</router-link> </router-link>
<el-dropdown-item command="setAvatar"> <el-dropdown-item command="setAvatar">
<span> 修改头像 </span> <span> {{ t("headerMenu.changeAvatar") }} </span>
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item command="setLocale"> <el-dropdown-item command="setLocale">
<span>{{ <span>{{

View File

@ -154,7 +154,9 @@ getList();
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleQuery">查询</el-button> <el-button type="primary" @click="handleQuery">{{
t("admin.common.search")
}}</el-button>
<el-button @click="resetQuery"> <el-button @click="resetQuery">
{{ t("admin.common.reset") }}</el-button {{ t("admin.common.reset") }}</el-button
> >

View File

@ -90,7 +90,9 @@ const getById = (id) => {};
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleQuery">查询</el-button> <el-button type="primary" @click="handleQuery">{{
t("admin.common.search")
}}</el-button>
<!-- 重置--> <!-- 重置-->
<el-button type="danger" @click="resetQuery"> <el-button type="danger" @click="resetQuery">
{{ t("admin.common.reset") }}</el-button {{ t("admin.common.reset") }}</el-button

View File

@ -42,7 +42,9 @@ const handleQuery = () => {
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleQuery">查询</el-button> <el-button type="primary" @click="handleQuery">{{
t("admin.common.search")
}}</el-button>
<el-button @click="resetQuery"> {{ t("admin.common.reset") }}</el-button> <el-button @click="resetQuery"> {{ t("admin.common.reset") }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>

View File

@ -49,7 +49,9 @@ const handleDelete = (id) => {};
<el-input v-model="queryParams.timeRange"></el-input> <el-input v-model="queryParams.timeRange"></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="getList">查询</el-button> <el-button type="primary" @click="getList">{{
t("admin.common.search")
}}</el-button>
<el-button @click="resetQuery"> <el-button @click="resetQuery">
{{ t("admin.common.reset") }}</el-button {{ t("admin.common.reset") }}</el-button
> >

View File

@ -241,7 +241,7 @@ getList();
<el-button type="primary" @click="submitForm">{{ <el-button type="primary" @click="submitForm">{{
t("admin.common.confirm") t("admin.common.confirm")
}}</el-button> }}</el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>

View File

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

View File

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

View File

@ -147,7 +147,8 @@ const getList = async () => {
// 处理删除 // 处理删除
const handleDelete = (id) => { const handleDelete = (id) => {
modal.confirm('是否确认删除数据编号为"' + id + '"的产品项?') modal
.confirm('是否确认删除数据编号为"' + id + '"的产品项?')
.then(async () => { .then(async () => {
await deleteEnterpriseProduct(id); await deleteEnterpriseProduct(id);
ElMessage.success("删除成功"); ElMessage.success("删除成功");
@ -165,7 +166,8 @@ function handleQuery() {
} }
// 取消发布 // 取消发布
const releaseCancel = (id) => { const releaseCancel = (id) => {
modal.confirm('确认要取消发布id为"' + id + '"的产品吗?') modal
.confirm('确认要取消发布id为"' + id + '"的产品吗?')
.then(async () => { .then(async () => {
await updateEnterpriseProduct({ id, status: 3 }); await updateEnterpriseProduct({ id, status: 3 });
ElMessage.success("取消发布成功"); ElMessage.success("取消发布成功");
@ -178,7 +180,8 @@ const releaseCancel = (id) => {
// 下架和上架 // 下架和上架
const handleShelf = (row) => { const handleShelf = (row) => {
let text = row.shelfStatus == 2 ? "上架" : "下架"; let text = row.shelfStatus == 2 ? "上架" : "下架";
modal.confirm('确认要"' + text + '""' + row.id + '"的产品吗?') modal
.confirm('确认要"' + text + '""' + row.id + '"的产品吗?')
.then(function () { .then(function () {
let status = row.shelfStatus == 1 ? 2 : 1; let status = row.shelfStatus == 1 ? 2 : 1;
return updateEnterpriseProduct({ id: row.id, shelfStatus: status }); return updateEnterpriseProduct({ id: row.id, shelfStatus: status });

View File

@ -165,7 +165,7 @@
<el-button type="primary" @click="submitForm">{{ <el-button type="primary" @click="submitForm">{{
t("admin.common.confirm") t("admin.common.confirm")
}}</el-button> }}</el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -308,7 +308,8 @@ const changePattent = (val) => {
// } // }
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(id) { function handleDelete(id) {
modal.confirm('是否确认删除数据编号为"' + id + '"的数据项?') modal
.confirm('是否确认删除数据编号为"' + id + '"的数据项?')
.then(function () { .then(function () {
return deleteExpertCooperateEnterpriseByIds(id); return deleteExpertCooperateEnterpriseByIds(id);
}) })
@ -336,7 +337,7 @@ function reset() {
function handleAdd() { function handleAdd() {
reset(); reset();
open.value = true; open.value = true;
title.value = "添加数据"; title.value = t("admin.form.addData");
} }
/** 修改数据 */ /** 修改数据 */
function handleUpdate(row) { function handleUpdate(row) {
@ -379,7 +380,7 @@ function handleUpdate(row) {
patentOptions.value = patents; patentOptions.value = patents;
form.value = formData; form.value = formData;
open.value = true; open.value = true;
title.value = "修改数据"; title.value = t("admin.form.editData");
nextTick(() => { nextTick(() => {
// console.log(proxy.$refs["selectDom"]); // .cachedOptions // console.log(proxy.$refs["selectDom"]); // .cachedOptions

View File

@ -203,7 +203,8 @@ function handleEdit(id) {
// 修改为完成状态 // 修改为完成状态
const complete = (id) => { const complete = (id) => {
modal.confirm(`是否确认结束编号为${id}的数据项?`) modal
.confirm(`是否确认结束编号为${id}的数据项?`)
.then(async () => { .then(async () => {
await updateCasDemand({ id, status: 4 }); await updateCasDemand({ id, status: 4 });
getList(); getList();

View File

@ -146,7 +146,7 @@
<el-button type="primary" @click="submitForm">{{ <el-button type="primary" @click="submitForm">{{
t("admin.common.confirm") t("admin.common.confirm")
}}</el-button> }}</el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -222,13 +222,11 @@ function handleQuery() {
// } // }
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(id) { function handleDelete(id) {
modal.confirm(`是否确认删除数据编号为"${id}"的数据项?`).then( modal.confirm(`是否确认删除数据编号为"${id}"的数据项?`).then(async () => {
async () => { await deleteExpertWantEnterpriseByIds({ ids: [id] });
await deleteExpertWantEnterpriseByIds({ ids: [id] }); getList();
getList(); ElMessage.success("删除成功");
ElMessage.success("删除成功"); });
}
);
} }
/** 重置新增的表单以及其他数据 */ /** 重置新增的表单以及其他数据 */
@ -250,7 +248,7 @@ function reset() {
function handleAdd() { function handleAdd() {
reset(); reset();
showEditDialog.value = true; showEditDialog.value = true;
title.value = "添加数据"; title.value = t("admin.form.addData");
} }
/** 修改数据 */ /** 修改数据 */
function handleUpdate(row) { function handleUpdate(row) {
@ -262,7 +260,7 @@ function handleUpdate(row) {
.filter((el) => el != "") .filter((el) => el != "")
.map((el) => parseInt(el)) ?? []; .map((el) => parseInt(el)) ?? [];
showEditDialog.value = true; showEditDialog.value = true;
title.value = "修改数据"; title.value = t("admin.form.editData");
} }
/** 提交按钮 */ /** 提交按钮 */

View File

@ -25,7 +25,10 @@
:label="t('admin.form.name', { type: t('admin.common.achievement') })" :label="t('admin.form.name', { type: t('admin.common.achievement') })"
prop="title" prop="title"
/> />
<el-table-column :label="t('admin.table.achievementIndustry')" prop="industryStr" /> <el-table-column
:label="t('admin.table.achievementIndustry')"
prop="industryStr"
/>
<!-- <el-zh-column label="浏览量" prop="visitCount" /> --> <!-- <el-zh-column label="浏览量" prop="visitCount" /> -->
<el-table-column <el-table-column
:label="t('admin.table.publishTime')" :label="t('admin.table.publishTime')"
@ -146,35 +149,33 @@ const handleQuery = () => {
// } // }
/** 删除按钮操作 */ /** 删除按钮操作 */
const handleDelete = (id) => { const handleDelete = (id) => {
modal.confirm('是否确认删除数据编号为"' + id + '"的成果项?').then( modal
async () => { .confirm('是否确认删除数据编号为"' + id + '"的成果项?')
.then(async () => {
await deleteAchievementByIds({ ids: [id] }); await deleteAchievementByIds({ ids: [id] });
getList(); getList();
ElMessage.success("删除成功"); ElMessage.success("删除成功");
} });
);
}; };
// 上架和下架 // 上架和下架
function handleShelf(row) { function handleShelf(row) {
let text = row.shelfStatus == 2 ? "上架" : "下架"; let text = row.shelfStatus == 2 ? "上架" : "下架";
modal.confirm('确认要"' + text + '""' + row.id + '"的成果吗?').then( modal
async () => { .confirm('确认要"' + text + '""' + row.id + '"的成果吗?')
.then(async () => {
const shelfStatus = row.shelfStatus == 1 ? 2 : 1; const shelfStatus = row.shelfStatus == 1 ? 2 : 1;
await updateExpertAchievement({ id: row.id, shelfStatus }); await updateExpertAchievement({ id: row.id, shelfStatus });
getList(); getList();
ElMessage.success(text + "成功"); ElMessage.success(text + "成功");
} });
);
} }
// 取消发布 // 取消发布
const handleCancelPublish = (id) => { const handleCancelPublish = (id) => {
modal.confirm(`确认要取消发布编号为"${id}"的成果吗?`).then( modal.confirm(`确认要取消发布编号为"${id}"的成果吗?`).then(async () => {
async () => { await updateExpertAchievement({ id, status: "3" });
await updateExpertAchievement({ id, status: "3" }); ElMessage.success("取消发布成功");
ElMessage.success("取消发布成功"); getList();
getList(); });
}
);
// queryParams.value.status = "3"; // queryParams.value.status = "3";
// handleQuery(); // handleQuery();
}; };

View File

@ -160,7 +160,7 @@
<el-button type="primary" @click="submitForm">{{ <el-button type="primary" @click="submitForm">{{
t("admin.common.confirm") t("admin.common.confirm")
}}</el-button> }}</el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -245,13 +245,13 @@ function resetQuery() {
} }
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(id) { function handleDelete(id) {
modal.confirm('是否确认删除数据编号为"' + id + '"的数据项?').then( modal
async () => { .confirm('是否确认删除数据编号为"' + id + '"的数据项?')
.then(async () => {
await deleteCasPaper(id); await deleteCasPaper(id);
getList(); getList();
ElMessage.success("删除成功"); ElMessage.success("删除成功");
} });
);
} }
/** 重置新增的表单以及其他数据 */ /** 重置新增的表单以及其他数据 */

View File

@ -255,7 +255,7 @@
<el-button type="primary" @click="submitForm">{{ <el-button type="primary" @click="submitForm">{{
t("admin.common.confirm") t("admin.common.confirm")
}}</el-button> }}</el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -356,7 +356,8 @@ function resetQuery() {
} }
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(id) { function handleDelete(id) {
modal.confirm('是否确认删除数据编号为"' + id + '"的专利项?') modal
.confirm('是否确认删除数据编号为"' + id + '"的专利项?')
.then(function () { .then(function () {
return deleteCasPatentByIds(id); return deleteCasPatentByIds(id);
}) })
@ -392,7 +393,7 @@ function reset() {
const handleAdd = () => { const handleAdd = () => {
reset(); reset();
open.value = true; open.value = true;
title.value = "添加数据"; title.value = t("admin.form.addData");
}; };
/** 修改数据 */ /** 修改数据 */
const handleUpdate = (row) => { const handleUpdate = (row) => {
@ -401,7 +402,7 @@ const handleUpdate = (row) => {
// patentDetail({ id }).then((res) => { // patentDetail({ id }).then((res) => {
form.value = data; form.value = data;
open.value = true; open.value = true;
title.value = "修改数据"; title.value = t("admin.form.editData");
// }); // });
}; };

View File

@ -223,7 +223,7 @@
<el-button type="primary" @click="submitForm">{{ <el-button type="primary" @click="submitForm">{{
t("admin.common.confirm") t("admin.common.confirm")
}}</el-button> }}</el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -315,7 +315,8 @@ function resetQuery() {
} }
function handleShelf(row) { function handleShelf(row) {
const text = row.shelfStatus == 2 ? "上架" : "下架"; const text = row.shelfStatus == 2 ? "上架" : "下架";
modal.confirm(`确认要${text}"${row.id}"的数据吗?`) modal
.confirm(`确认要${text}"${row.id}"的数据吗?`)
.then(() => { .then(() => {
const shelfStatus = row.shelfStatus == 1 ? 2 : 1; const shelfStatus = row.shelfStatus == 1 ? 2 : 1;
return updateTechnologyProject({ id: row.id, shelfStatus }); return updateTechnologyProject({ id: row.id, shelfStatus });
@ -330,13 +331,11 @@ function handleShelf(row) {
} }
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(id) { function handleDelete(id) {
modal.confirm(`是否确认删除数据编号为"${id}"的数据项?`).then( modal.confirm(`是否确认删除数据编号为"${id}"的数据项?`).then(async () => {
async () => { await deleteTechnologyProjectByIds({ ids: [id] });
await deleteTechnologyProjectByIds({ ids: [id] }); getList();
getList(); ElMessage.success("删除成功");
ElMessage.success("删除成功"); });
}
);
} }
/** 重置新增的表单以及其他数据 */ /** 重置新增的表单以及其他数据 */
@ -360,14 +359,14 @@ function reset() {
function handleAdd() { function handleAdd() {
reset(); reset();
showEditDialog.value = true; showEditDialog.value = true;
title.value = "添加数据"; title.value = t("admin.form.addData");
} }
/** 修改数据 */ /** 修改数据 */
function handleUpdate(row) { function handleUpdate(row) {
reset(); reset();
form.value = cloneDeep(row); form.value = cloneDeep(row);
showEditDialog.value = true; showEditDialog.value = true;
title.value = "修改数据"; title.value = t("admin.form.editData");
} }
/** 提交按钮 */ /** 提交按钮 */
function submitForm() { function submitForm() {

View File

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

View File

@ -122,7 +122,10 @@
:rules="rules" :rules="rules"
label-width="100px" label-width="100px"
> >
<el-form-item label="设备名称:" prop="name"> <el-form-item
:label="t('admin.form.name', { type: t('admin.common.equipment') })"
prop="name"
>
<el-input <el-input
v-model="form.name" v-model="form.name"
:placeholder=" :placeholder="
@ -131,12 +134,21 @@
/> />
</el-form-item> </el-form-item>
<el-form-item :label="t('admin.form.model')" prop="model"> <el-form-item :label="t('admin.form.model')" prop="model">
<el-input v-model="form.model" placeholder="请输入型号" /> <el-input
v-model="form.model"
:placeholder="
t('admin.form.placeholder', { type: t('admin.form.model') })
"
/>
</el-form-item> </el-form-item>
<el-form-item :label="t('admin.form.buyDate')" prop="buyDate"> <el-form-item :label="t('admin.form.buyDate')" prop="buyDate">
<el-date-picker <el-date-picker
v-model="form.buyDate" v-model="form.buyDate"
placeholder="请选择购买时间" :placeholder="
t('admin.form.placeholder', {
type: t('admin.form.buyDate'),
})
"
type="date" type="date"
value-format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
></el-date-picker> ></el-date-picker>
@ -145,7 +157,14 @@
:label="t('admin.form.achievementParameter')" :label="t('admin.form.achievementParameter')"
prop="param" prop="param"
> >
<el-input v-model="form.param" placeholder="请输入成果参数" /> <el-input
v-model="form.param"
:placeholder="
t('admin.form.placeholder', {
type: t('admin.form.achievementParameter'),
})
"
/>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
:label="t('admin.form.deviceDescription')" :label="t('admin.form.deviceDescription')"
@ -164,10 +183,10 @@
</el-form> </el-form>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button type="primary" @click="submitForm">{{ <el-button type="primary" @click="submitForm"
t("admin.common.confirm") >{{ t("admin.common.confirm") }}
}}</el-button> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -176,7 +195,7 @@
<script setup> <script setup>
// import {expertPaper, paperAdd, paperDelete, paperEdit,} from "@/api/admin/expert/technology"; // import {expertPaper, paperAdd, paperDelete, paperEdit,} from "@/api/admin/expert/technology";
import { reactive, ref, toRefs } from "vue"; import { computed, reactive, ref, toRefs } from "vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus"; import { ElMessage, ElMessageBox } from "element-plus";
import modal from "@/plugins/modal"; import modal from "@/plugins/modal";
@ -190,6 +209,7 @@ import {
import dayjs from "dayjs"; import dayjs from "dayjs";
import { useI18n } from "vue-i18n"; import { useI18n } from "vue-i18n";
const { t } = useI18n(); const { t } = useI18n();
const router = useRouter(); const router = useRouter();
@ -208,13 +228,48 @@ const data = reactive({
name: undefined, name: undefined,
}, },
rules: { rules: {
name: [{ required: true, message: "设备名称不能为空", trigger: "blur" }], name: [
model: [{ required: true, message: "型号不能为空", trigger: "blur" }], {
param: [{ required: true, message: "成果参数不能为空", trigger: "blur" }], required: true,
message: computed(() =>
t("admin.validation.required", {
type: t("admin.form.name", { type: t("admin.common.equipment") }),
})
),
trigger: "blur",
},
],
model: [
{
required: true,
message: computed(() =>
t("admin.validation.required", {
type: t("admin.form.name", { type: t("admin.form.model") }),
})
),
trigger: "blur",
},
],
param: [
{
required: true,
message: computed(() =>
t("admin.validation.required", {
type: t("admin.form.achievementParameter"),
})
),
trigger: "blur",
},
],
buyDate: [ buyDate: [
{ {
required: true, required: true,
message: "请选择购买时间", // message: "请选择购买时间",
message: computed(() =>
t("admin.form.placeholder", {
type: t("admin.form.buyDate"),
})
),
trigger: ["blur", "change"], trigger: ["blur", "change"],
}, },
], ],
@ -248,7 +303,14 @@ function resetQuery() {
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(row) { function handleDelete(row) {
modal.confirm('是否确认删除数据编号为"' + row.deviceId + '"的数据项?') modal
.confirm(
t("admin.common.confirmAction", {
number: row.deviceId,
action: t("admin.common.delete"),
type: t("admin.common.equipment"),
})
)
.then(function () { .then(function () {
return deleteEquipment([row.deviceId]); return deleteEquipment([row.deviceId]);
}) })
@ -275,7 +337,7 @@ function reset() {
function handleAdd() { function handleAdd() {
reset(); reset();
open.value = true; open.value = true;
title.value = "添加数据"; title.value = t("admin.form.addData");
} }
/** 修改数据 */ /** 修改数据 */
@ -283,7 +345,7 @@ async function handleUpdate(row) {
const resp = await getEquipment(row.deviceId); const resp = await getEquipment(row.deviceId);
form.value = resp.data; form.value = resp.data;
open.value = true; open.value = true;
title.value = "修改数据"; title.value = t("admin.form.editData");
} }
/** 提交按钮 */ /** 提交按钮 */
@ -292,13 +354,13 @@ function submitForm() {
if (valid) { if (valid) {
if (form.value.deviceId) { if (form.value.deviceId) {
updateEquipment(form.value).then((response) => { updateEquipment(form.value).then((response) => {
ElMessage.success("修改成功"); ElMessage.success(t("admin.common.editSuccess"));
open.value = false; open.value = false;
getList(); getList();
}); });
} else { } else {
insertEquipment(form.value).then((response) => { insertEquipment(form.value).then((response) => {
ElMessage.success("新增成功"); ElMessage.success(t("admin.common.addSuccess"));
open.value = false; open.value = false;
getList(); getList();
}); });

View File

@ -91,7 +91,7 @@
size="small" size="small"
type="text" type="text"
@click="handleBrowseUnitInfo(row)" @click="handleBrowseUnitInfo(row)"
>浏览单位信息 >{{ t("admin.table.viewUnitInfo") }}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -146,7 +146,7 @@
<el-button type="primary" @click="submitForm" <el-button type="primary" @click="submitForm"
>{{ t("admin.common.confirm") }} >{{ t("admin.common.confirm") }}
</el-button> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -274,7 +274,7 @@ function cancel() {
const handleEdit = (row) => { const handleEdit = (row) => {
form.value = cloneDeep(row); form.value = cloneDeep(row);
open.value = true; open.value = true;
title.value = "修改数据"; title.value = t("admin.form.editData");
}; };
/** 提交按钮 */ /** 提交按钮 */

View File

@ -4,7 +4,8 @@ import { reactive, ref, toRefs } from "vue";
import { seeLogTypeDict } from "@/constant/dict"; import { seeLogTypeDict } from "@/constant/dict";
import { useRoute, useRouter } from "vue-router"; import { useRoute, useRouter } from "vue-router";
import { seeLogList } from "@/api/admin/laboratory/paper"; import { seeLogList } from "@/api/admin/laboratory/paper";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
const data = reactive({ const data = reactive({
@ -75,7 +76,9 @@ getList();
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleQuery">查询</el-button> <el-button type="primary" @click="handleQuery">{{
t("admin.common.search")
}}</el-button>
<el-button @click="resetQuery"> <el-button @click="resetQuery">
{{ t("admin.common.reset") }}</el-button {{ t("admin.common.reset") }}</el-button
> >
@ -88,7 +91,7 @@ getList();
:label="t('admin.form.name', { type: t('admin.common.company') })" :label="t('admin.form.name', { type: t('admin.common.company') })"
prop="enterpriseName" prop="enterpriseName"
></el-table-column> ></el-table-column>
<el-table-column label="浏览类别" prop="type"> <el-table-column :label="t('admin.table.viewCategory')" prop="type">
<template #default="{ row }"> <template #default="{ row }">
<span>{{ <span>{{
seeLogTypeDict.find((item) => item.value === row.type)?.label seeLogTypeDict.find((item) => item.value === row.type)?.label
@ -107,8 +110,14 @@ getList();
:label="t('admin.form.mobile')" :label="t('admin.form.mobile')"
prop="phone" prop="phone"
></el-table-column> ></el-table-column>
<el-table-column label="浏览次数" prop="seeCount"></el-table-column> <el-table-column
<el-table-column label="浏览时间" prop="updateTime"></el-table-column> :label="t('admin.table.viewCount')"
prop="seeCount"
></el-table-column>
<el-table-column
:label="t('admin.table.viewTime')"
prop="updateTime"
></el-table-column>
</el-table> </el-table>
<!-- 分页 --> <!-- 分页 -->
<pagination <pagination

View File

@ -227,7 +227,7 @@
<!-- <template #footer>--> <!-- <template #footer>-->
<!-- <div class="dialog-footer">--> <!-- <div class="dialog-footer">-->
<!-- <el-button type="primary" @click="submitForm">{{t("admin.common.confirm")}}</el-button>--> <!-- <el-button type="primary" @click="submitForm">{{t("admin.common.confirm")}}</el-button>-->
<!-- <el-button @click="cancel"> </el-button>--> <!-- <el-button @click="cancel">{{t('admin.common.cancel')}}</el-button>-->
<!-- </div>--> <!-- </div>-->
<!-- </template>--> <!-- </template>-->
<!-- </el-dialog>--> <!-- </el-dialog>-->
@ -327,17 +327,20 @@ function resetQuery() {
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(id) { function handleDelete(id) {
modal.confirm(t("admin.common.confirmAction", { modal
number: id, .confirm(
action: t("admin.common.delete"), t("admin.common.confirmAction", {
type: t("admin.common.patent"), number: id,
})) action: t("admin.common.delete"),
type: t("admin.common.patent"),
})
)
.then(function () { .then(function () {
return deleteLabPatentByIds(id); return deleteLabPatentByIds(id);
}) })
.then(() => { .then(() => {
getList(); getList();
ElMessage.success("删除成功"); ElMessage.success(t("admin.common.deleteSuccess"));
}) })
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
@ -368,7 +371,7 @@ function handleDelete(id) {
// const handleAdd = () => { // const handleAdd = () => {
// reset(); // reset();
// open.value = true; // open.value = true;
// title.value = "添加数据"; // title.value= t('admin.form.addData');
// }; // };
// /** 修改数据 */ // /** 修改数据 */
// const handleUpdate = (row) => { // const handleUpdate = (row) => {
@ -377,7 +380,7 @@ function handleDelete(id) {
// // patentDetail({ id }).then((res) => { // // patentDetail({ id }).then((res) => {
// form.value = data; // form.value = data;
// open.value = true; // open.value = true;
// title.value = "修改数据"; // title.value= t('admin.form.editData');
// // }); // // });
// }; // };
// //

View File

@ -175,11 +175,14 @@ function resetQuery() {
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(id) { function handleDelete(id) {
modal.confirm(t("admin.common.confirmAction", { modal
number: id, .confirm(
action: t("admin.common.delete"), t("admin.common.confirmAction", {
type: t("admin.common.researchProject"), number: id,
})) action: t("admin.common.delete"),
type: t("admin.common.researchProject"),
})
)
.then(function () { .then(function () {
return deleteTechnologyProject(id); return deleteTechnologyProject(id);
}) })

View File

@ -94,9 +94,7 @@
size="small" size="small"
type="text" type="text"
@click="handleDetail(row.id)" @click="handleDetail(row.id)"
>{{ >{{ t("admin.common.view") }}
t('admin.common.view')
}}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -176,7 +174,8 @@ function resetQuery() {
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(id) { function handleDelete(id) {
modal.confirm('是否确认删除数据编号为"' + id + '"的专利项?') modal
.confirm('是否确认删除数据编号为"' + id + '"的专利项?')
.then(function () { .then(function () {
return deleteLabPatentByIds(id); return deleteLabPatentByIds(id);
}) })

View File

@ -85,7 +85,7 @@ getList();
:label="t('admin.form.name', { type: t('admin.common.company') })" :label="t('admin.form.name', { type: t('admin.common.company') })"
prop="enterpriseName" prop="enterpriseName"
></el-table-column> ></el-table-column>
<el-table-column label="浏览类别" prop="type"> <el-table-column :label="t('admin.table.viewCategory')" prop="type">
<template #default="{ row }"> <template #default="{ row }">
<span>{{ <span>{{
seeLogTypeDict.find((item) => item.value === row.type)?.label seeLogTypeDict.find((item) => item.value === row.type)?.label
@ -104,8 +104,14 @@ getList();
<!-- :label="t('admin.form.mobile')"--> <!-- :label="t('admin.form.mobile')"-->
<!-- prop="phone"--> <!-- prop="phone"-->
<!-- ></el-table-column>--> <!-- ></el-table-column>-->
<el-table-column label="浏览次数" prop="seeCount"></el-table-column> <el-table-column
<el-table-column label="浏览时间" prop="updateTime"></el-table-column> :label="t('admin.table.viewCount')"
prop="seeCount"
></el-table-column>
<el-table-column
:label="t('admin.table.viewTime')"
prop="updateTime"
></el-table-column>
</el-table> </el-table>
<!-- 分页 --> <!-- 分页 -->
<pagination <pagination

View File

@ -131,7 +131,7 @@
<el-button type="primary" @click="submitForm">{{ <el-button type="primary" @click="submitForm">{{
t("admin.common.confirm") t("admin.common.confirm")
}}</el-button> }}</el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -200,7 +200,8 @@ function resetQuery() {
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDeleteBind(id) { function handleDeleteBind(id) {
modal.confirm(`是否确认取消关联数据编号为"${id}"的专家?`) modal
.confirm(`是否确认取消关联数据编号为"${id}"的专家?`)
.then(function () { .then(function () {
return deleteBindExpert(id); return deleteBindExpert(id);
}) })

View File

@ -131,7 +131,12 @@
/> />
</el-form-item> </el-form-item>
<el-form-item :label="t('admin.form.model')" prop="model"> <el-form-item :label="t('admin.form.model')" prop="model">
<el-input v-model="form.model" placeholder="请输入型号" /> <el-input
v-model="form.model"
:placeholder="
t('admin.form.placeholder', { type: t('admin.form.model') })
"
/>
</el-form-item> </el-form-item>
<el-form-item :label="t('admin.form.buyDate')" prop="buyDate"> <el-form-item :label="t('admin.form.buyDate')" prop="buyDate">
<el-date-picker <el-date-picker
@ -145,7 +150,14 @@
:label="t('admin.form.achievementParameter')" :label="t('admin.form.achievementParameter')"
prop="param" prop="param"
> >
<el-input v-model="form.param" placeholder="请输入成果参数" /> <el-input
v-model="form.param"
:placeholder="
t('admin.form.placeholder', {
type: t('admin.form.achievementParameter'),
})
"
/>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
:label="t('admin.form.deviceDescription')" :label="t('admin.form.deviceDescription')"
@ -167,7 +179,7 @@
<el-button type="primary" @click="submitForm">{{ <el-button type="primary" @click="submitForm">{{
t("admin.common.confirm") t("admin.common.confirm")
}}</el-button> }}</el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -248,7 +260,8 @@ function resetQuery() {
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(row) { function handleDelete(row) {
modal.confirm('是否确认删除数据编号为"' + row.deviceId + '"的数据项?') modal
.confirm('是否确认删除数据编号为"' + row.deviceId + '"的数据项?')
.then(function () { .then(function () {
return deleteEquipment([row.deviceId]); return deleteEquipment([row.deviceId]);
}) })
@ -275,7 +288,7 @@ function reset() {
function handleAdd() { function handleAdd() {
reset(); reset();
open.value = true; open.value = true;
title.value = "添加数据"; title.value = t("admin.form.addData");
} }
/** 修改数据 */ /** 修改数据 */
@ -283,7 +296,7 @@ async function handleUpdate(row) {
const resp = await getEquipment(row.deviceId); const resp = await getEquipment(row.deviceId);
form.value = resp.data; form.value = resp.data;
open.value = true; open.value = true;
title.value = "修改数据"; title.value = t("admin.form.editData");
} }
/** 提交按钮 */ /** 提交按钮 */

View File

@ -29,7 +29,8 @@ import { reactive, ref, toRefs } from "vue";
import tab from "@/plugins/tab"; import tab from "@/plugins/tab";
import LaboratoryForm from "@/views/components/LaboratoryForm"; import LaboratoryForm from "@/views/components/LaboratoryForm";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const data = reactive({ const data = reactive({
form: {}, form: {},
}); });

View File

@ -73,8 +73,16 @@
:label="t('webContact.phone')" :label="t('webContact.phone')"
prop="phone" prop="phone"
/> />
<el-table-column align="center" label="实验室网址" prop="url" /> <el-table-column
<el-table-column align="center" label="添加日期" prop="createTime"> align="center"
:label="t('admin.table.labWebsite')"
prop="url"
/>
<el-table-column
align="center"
:label="t('admin.table.addDate')"
prop="createTime"
>
<template #default="{ row }"> <template #default="{ row }">
<span>{{ dayjs(row.createTime).format("YYYY-MM-DD") }}</span> <span>{{ dayjs(row.createTime).format("YYYY-MM-DD") }}</span>
</template> </template>
@ -127,7 +135,12 @@
/> />
</el-form-item> </el-form-item>
<el-form-item :label="t('admin.form.model')" prop="model"> <el-form-item :label="t('admin.form.model')" prop="model">
<el-input v-model="form.model" placeholder="请输入型号" /> <el-input
v-model="form.model"
:placeholder="
t('admin.form.placeholder', { type: t('admin.form.model') })
"
/>
</el-form-item> </el-form-item>
<el-form-item :label="t('admin.form.buyDate')" prop="buyDate"> <el-form-item :label="t('admin.form.buyDate')" prop="buyDate">
<el-date-picker <el-date-picker
@ -141,7 +154,14 @@
:label="t('admin.form.achievementParameter')" :label="t('admin.form.achievementParameter')"
prop="param" prop="param"
> >
<el-input v-model="form.param" placeholder="请输入成果参数" /> <el-input
v-model="form.param"
:placeholder="
t('admin.form.placeholder', {
type: t('admin.form.achievementParameter'),
})
"
/>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
:label="t('admin.form.deviceDescription')" :label="t('admin.form.deviceDescription')"
@ -160,10 +180,10 @@
</el-form> </el-form>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button type="primary" @click="submitForm">{{ <el-button type="primary" @click="submitForm"
t("admin.common.confirm") >{{ t("admin.common.confirm") }}
}}</el-button> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -188,6 +208,7 @@ import dayjs from "dayjs";
import SvgIcon from "@/components/SvgIcon/index.vue"; import SvgIcon from "@/components/SvgIcon/index.vue";
import { useI18n } from "vue-i18n"; import { useI18n } from "vue-i18n";
const { t } = useI18n(); const { t } = useI18n();
const router = useRouter(); const router = useRouter();
@ -245,7 +266,8 @@ function resetQuery() {
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(row) { function handleDelete(row) {
modal.confirm('是否确认删除数据编号为"' + row.deviceId + '"的数据项?') modal
.confirm('是否确认删除数据编号为"' + row.deviceId + '"的数据项?')
.then(function () { .then(function () {
return deleteEquipment([row.deviceId]); return deleteEquipment([row.deviceId]);
}) })
@ -272,7 +294,7 @@ function reset() {
function handleAdd() { function handleAdd() {
reset(); reset();
open.value = true; open.value = true;
title.value = "添加数据"; title.value = t("admin.form.addData");
} }
/** 修改数据 */ /** 修改数据 */
@ -307,7 +329,8 @@ function submitForm() {
} }
const handleCancelBind = (row) => { const handleCancelBind = (row) => {
modal.confirm(`是否确认解绑实验室 : ${row.name}`, "解绑实验室") modal
.confirm(`是否确认解绑实验室 : ${row.name}`, "解绑实验室")
.then(() => { .then(() => {
return delBindLaboratory(row.id); return delBindLaboratory(row.id);
}) })

View File

@ -147,7 +147,7 @@
<el-button type="primary" @click="submitForm">{{ <el-button type="primary" @click="submitForm">{{
t("admin.common.confirm") t("admin.common.confirm")
}}</el-button> }}</el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -231,7 +231,8 @@ function resetQuery() {
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(id) { function handleDelete(id) {
modal.confirm('是否确认删除数据编号为"' + id + '"的论文项?') modal
.confirm('是否确认删除数据编号为"' + id + '"的论文项?')
.then(function () { .then(function () {
return deletePaper(id); return deletePaper(id);
}) })
@ -267,7 +268,7 @@ function cancel() {
const handleEdit = (row) => { const handleEdit = (row) => {
form.value = cloneDeep(row); form.value = cloneDeep(row);
open.value = true; open.value = true;
title.value = "修改数据"; title.value = t("admin.form.editData");
}; };
/** 提交按钮 */ /** 提交按钮 */

View File

@ -156,7 +156,8 @@ function resetQuery() {
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(id) { function handleDelete(id) {
modal.confirm('是否确认删除数据编号为"' + id + '"的专利项?') modal
.confirm('是否确认删除数据编号为"' + id + '"的专利项?')
.then(function () { .then(function () {
return deleteResearchPatentByIds(id); return deleteResearchPatentByIds(id);
}) })

View File

@ -176,7 +176,9 @@ const rules = {
{ required: true, message: "请输入手机号码", trigger: "blur" }, { required: true, message: "请输入手机号码", trigger: "blur" },
{ {
pattern: /^1[3-9]\d{9}$/, pattern: /^1[3-9]\d{9}$/,
message: "请输入正确的手机号码", message: computed(() =>
t("admin.validation.pleaseEnterTheCorrectFormatOfThePhoneNumber")
),
trigger: "blur", trigger: "blur",
}, },
], ],
@ -204,28 +206,28 @@ const rules = {
"idImage.0": [ "idImage.0": [
{ {
required: true, required: true,
message: "请上传", message: computed(() => t("admin.validation.pleaseUpload")),
trigger: ["blur", "change"], trigger: ["blur", "change"],
}, },
], ],
"idImage.1": [ "idImage.1": [
{ {
required: true, required: true,
message: "请上传", message: computed(() => t("admin.validation.pleaseUpload")),
trigger: ["blur", "change"], trigger: ["blur", "change"],
}, },
], ],
"idImage.2": [ "idImage.2": [
{ {
required: true, required: true,
message: "请上传", message: computed(() => t("admin.validation.pleaseUpload")),
trigger: ["blur", "change"], trigger: ["blur", "change"],
}, },
], ],
certificatePics: [ certificatePics: [
{ {
required: true, required: true,
message: "请上传", message: computed(() => t("admin.validation.pleaseUpload")),
trigger: ["blur", "change"], trigger: ["blur", "change"],
}, },
], ],

View File

@ -282,7 +282,9 @@ const data = reactive({
}, },
{ {
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码", message: computed(() =>
t("admin.validation.pleaseEnterTheCorrectFormatOfThePhoneNumber")
),
trigger: "blur", trigger: "blur",
}, },
], ],
@ -345,7 +347,7 @@ const data = reactive({
license: [ license: [
{ {
required: true, required: true,
message: "请上传", message: computed(() => t("admin.validation.pleaseUpload")),
trigger: ["blur", "change"], trigger: ["blur", "change"],
}, },
], ],

View File

@ -256,7 +256,9 @@ const data = reactive({
}, },
{ {
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码", message: computed(() =>
t("admin.validation.pleaseEnterTheCorrectFormatOfThePhoneNumber")
),
trigger: "blur", trigger: "blur",
}, },
], ],
@ -326,7 +328,7 @@ const data = reactive({
license: [ license: [
{ {
required: true, required: true,
message: "请上传", message: computed(() => t("admin.validation.pleaseUpload")),
trigger: ["blur", "change"], trigger: ["blur", "change"],
}, },
], ],

View File

@ -12,7 +12,10 @@
<el-row v-if="isAdd"> <el-row v-if="isAdd">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="实验室名称" prop="name"> <el-form-item
:label="t('admin.form.name', { type: t('admin.common.lab') })"
prop="name"
>
<el-input v-model="modelValue.name"></el-input> <el-input v-model="modelValue.name"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -32,10 +35,12 @@
<el-row v-if="isAdd"> <el-row v-if="isAdd">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="所属院所或单位" prop="school"> <el-form-item :label="t('admin.form.institute')" prop="school">
<el-input <el-input
v-model="modelValue.school" v-model="modelValue.school"
placeholder="请输入所属院所或单位" :placeholder="
t('admin.form.placeholder', { type: t('admin.form.institute') })
"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -57,10 +62,12 @@
/> />
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="实验室网站:"> <el-form-item :label="t('admin.table.labWebsite')">
<el-input <el-input
v-model="modelValue.url" v-model="modelValue.url"
placeholder="请输入实验室网站" :placeholder="
t('admin.form.placeholder', { type: t('admin.table.labWebsite') })
"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -190,7 +197,7 @@ import Editor from "@/components/WangEditor";
import CityOptions from "@/views/components/CityOptions"; import CityOptions from "@/views/components/CityOptions";
import FieldOptions from "@/views/components/FieldOptions"; import FieldOptions from "@/views/components/FieldOptions";
import InputBoxAdd from "@/views/components/InputBoxAdd"; import InputBoxAdd from "@/views/components/InputBoxAdd";
import { reactive, ref, toRefs } from "vue"; import { computed, reactive, ref, toRefs } from "vue";
import { useI18n } from "vue-i18n"; import { useI18n } from "vue-i18n";
const { t } = useI18n(); const { t } = useI18n();
@ -219,15 +226,48 @@ const introduceRef = ref();
const data = reactive({ const data = reactive({
rules: { rules: {
name: [{ required: true, message: "请输入实验室名称", trigger: "blur" }], name: [
code: [{ required: true, message: "请输入组织机构代码", trigger: "blur" }], {
required: true,
message: computed(() =>
t("admin.form.placeholder", {
type: t("admin.form.name", { type: t("admin.common.lab") }),
})
),
trigger: "blur",
},
],
code: [
{
required: true,
message: computed(() =>
t("admin.form.placeholder", {
type: t("admin.form.organizationCode"),
})
),
trigger: "blur",
},
],
school: [ school: [
{ required: true, message: "请输入所属院所或单位", trigger: "blur" }, {
required: true,
message: computed(() =>
t("admin.form.placeholder", { type: t("admin.form.institute") })
),
trigger: "blur",
},
], ],
introduction: [ introduction: [
{ {
required: true, required: true,
message: "请输入实验室简介", // message: "请输入实验室简介",
message: computed(() =>
t("admin.form.placeholder", {
type: t("admin.form.introduction", {
type: t("admin.common.lab"),
}),
})
),
trigger: ["change", "blur"], trigger: ["change", "blur"],
}, },
], ],
@ -254,7 +294,9 @@ const data = reactive({
}, },
{ {
pattern: /^1[3-9]\d{9}$/, pattern: /^1[3-9]\d{9}$/,
message: "请输入正确的手机号码", message: computed(() =>
t("admin.validation.pleaseEnterTheCorrectFormatOfThePhoneNumber")
),
trigger: "blur", trigger: "blur",
}, },
], ],
@ -303,14 +345,16 @@ const data = reactive({
work_at: [ work_at: [
{ {
required: true, required: true,
message: "从业时间不能为空", message: computed(() =>
t("admin.form.placeholder", { type: t("admin.form.workTime") })
),
trigger: ["change", "blur"], trigger: ["change", "blur"],
}, },
], ],
license: [ license: [
{ {
required: true, required: true,
message: "请上传", message: computed(() => t("admin.validation.pleaseUpload")),
trigger: ["blur", "change"], trigger: ["blur", "change"],
}, },
], ],

View File

@ -235,7 +235,7 @@ const data = reactive({
// { required: true, message: computed(()=>t("admin.form.placeholder")), trigger: "blur" }, // { required: true, message: computed(()=>t("admin.form.placeholder")), trigger: "blur" },
// { // {
// pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, // pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
// message: "请输入正确的手机号码", // message: computed(()=>t("admin.validation.pleaseEnterTheCorrectFormatOfThePhoneNumber")),
// trigger: "blur", // trigger: "blur",
// }, // },
// ], // ],
@ -268,7 +268,7 @@ const data = reactive({
leadStandard: [ leadStandard: [
{ {
required: true, required: true,
message: "请上传", message: computed(() => t("admin.validation.pleaseUpload")),
trigger: ["blur", "change"], trigger: ["blur", "change"],
}, },
], ],
@ -282,14 +282,14 @@ const data = reactive({
image: [ image: [
{ {
required: true, required: true,
message: "请上传", message: computed(() => t("admin.validation.pleaseUpload")),
trigger: ["change", "blur"], trigger: ["change", "blur"],
}, },
], ],
video: [ video: [
{ {
required: true, required: true,
message: "请上传", message: computed(() => t("admin.validation.pleaseUpload")),
trigger: ["change", "blur"], trigger: ["change", "blur"],
}, },
], ],

View File

@ -177,7 +177,9 @@ const rules = {
}, },
{ {
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码", message: computed(() =>
t("admin.validation.pleaseEnterTheCorrectFormatOfThePhoneNumber")
),
trigger: "blur", trigger: "blur",
}, },
], ],
@ -240,7 +242,7 @@ const rules = {
license: [ license: [
{ {
required: true, required: true,
message: "请上传", message: computed(() => t("admin.validation.pleaseUpload")),
trigger: ["blur", "change"], trigger: ["blur", "change"],
}, },
], ],

View File

@ -309,7 +309,7 @@
<el-button type="primary" @click="submitForm">{{ <el-button type="primary" @click="submitForm">{{
t("admin.common.confirm") t("admin.common.confirm")
}}</el-button> }}</el-button>
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>

View File

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

View File

@ -203,7 +203,7 @@
<el-button type="primary" @click="submitForm">{{ <el-button type="primary" @click="submitForm">{{
t("admin.common.confirm") t("admin.common.confirm")
}}</el-button> }}</el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -258,7 +258,9 @@ const data = reactive({
phone: [ phone: [
{ {
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码", message: computed(() =>
t("admin.validation.pleaseEnterTheCorrectFormatOfThePhoneNumber")
),
trigger: "blur", trigger: "blur",
}, },
], ],

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -284,7 +284,7 @@
<el-button type="primary" @click="submitForm">{{ <el-button type="primary" @click="submitForm">{{
t("admin.common.confirm") t("admin.common.confirm")
}}</el-button> }}</el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -347,7 +347,9 @@
<el-button type="primary" @click="submitDataScope">{{ <el-button type="primary" @click="submitDataScope">{{
t("admin.common.confirm") t("admin.common.confirm")
}}</el-button> }}</el-button>
<el-button @click="cancelDataScope"> </el-button> <el-button @click="cancelDataScope">{{
t("admin.common.cancel")
}}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>

View File

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

View File

@ -431,7 +431,7 @@
<el-button type="primary" @click="submitForm">{{ <el-button type="primary" @click="submitForm">{{
t("admin.common.confirm") t("admin.common.confirm")
}}</el-button> }}</el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -480,7 +480,9 @@
<el-button type="primary" @click="submitFileForm">{{ <el-button type="primary" @click="submitFileForm">{{
t("admin.common.confirm") t("admin.common.confirm")
}}</el-button> }}</el-button>
<el-button @click="upload.open = false"> </el-button> <el-button @click="upload.open = false">{{
t("admin.common.cancel")
}}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -590,7 +592,9 @@ const data = reactive({
phonenumber: [ phonenumber: [
{ {
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码", message: computed(() =>
t("admin.validation.pleaseEnterTheCorrectFormatOfThePhoneNumber")
),
trigger: "blur", trigger: "blur",
}, },
], ],

View File

@ -41,8 +41,10 @@
:before-upload="beforeUpload" :before-upload="beforeUpload"
> >
<el-button> <el-button>
选择 {{ t("common.select") }}
<el-icon class="el-icon--right"><Upload /></el-icon> <el-icon class="el-icon--right">
<Upload />
</el-icon>
</el-button> </el-button>
</el-upload> </el-upload>
</el-col> </el-col>
@ -59,7 +61,9 @@
<el-button icon="RefreshRight" @click="rotateRight()"></el-button> <el-button icon="RefreshRight" @click="rotateRight()"></el-button>
</el-col> </el-col>
<el-col :lg="{ span: 2, offset: 6 }" :md="2"> <el-col :lg="{ span: 2, offset: 6 }" :md="2">
<el-button type="primary" @click="uploadImg()"> </el-button> <el-button type="primary" @click="uploadImg()">{{
t("common.submit")
}}</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-dialog> </el-dialog>
@ -71,13 +75,16 @@ import "vue-cropper/dist/index.css";
import { VueCropper } from "vue-cropper"; import { VueCropper } from "vue-cropper";
import { uploadAvatar } from "@/api/system/user"; import { uploadAvatar } from "@/api/system/user";
import useUserStore from "@/store/modules/user"; import useUserStore from "@/store/modules/user";
import { computed } from "vue";
import { useI18n } from "vue-i18n";
const { t } = useI18n();
const userStore = useUserStore(); const userStore = useUserStore();
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const open = ref(false); const open = ref(false);
const visible = ref(false); const visible = ref(false);
const title = ref("修改头像"); const title = computed(() => t("headerMenu.changeAvatar"));
//图片裁剪数据 //图片裁剪数据
const options = reactive({ const options = reactive({
@ -93,25 +100,31 @@ const options = reactive({
function editCropper() { function editCropper() {
open.value = true; open.value = true;
} }
/** 打开弹出层结束时的回调 */ /** 打开弹出层结束时的回调 */
function modalOpened() { function modalOpened() {
visible.value = true; visible.value = true;
} }
/** 覆盖默认上传行为 */ /** 覆盖默认上传行为 */
function requestUpload() {} function requestUpload() {}
/** 向左旋转 */ /** 向左旋转 */
function rotateLeft() { function rotateLeft() {
proxy.$refs.cropper.rotateLeft(); proxy.$refs.cropper.rotateLeft();
} }
/** 向右旋转 */ /** 向右旋转 */
function rotateRight() { function rotateRight() {
proxy.$refs.cropper.rotateRight(); proxy.$refs.cropper.rotateRight();
} }
/** 图片缩放 */ /** 图片缩放 */
function changeScale(num) { function changeScale(num) {
num = num || 1; num = num || 1;
proxy.$refs.cropper.changeScale(num); proxy.$refs.cropper.changeScale(num);
} }
/** 上传预处理 */ /** 上传预处理 */
function beforeUpload(file) { function beforeUpload(file) {
if (file.type.indexOf("image/") == -1) { if (file.type.indexOf("image/") == -1) {
@ -126,6 +139,7 @@ function beforeUpload(file) {
}; };
} }
} }
/** 上传图片 */ /** 上传图片 */
function uploadImg() { function uploadImg() {
proxy.$refs.cropper.getCropBlob((data) => { proxy.$refs.cropper.getCropBlob((data) => {
@ -140,10 +154,12 @@ function uploadImg() {
}); });
}); });
} }
/** 实时预览 */ /** 实时预览 */
function realTime(data) { function realTime(data) {
options.previews = data; options.previews = data;
} }
/** 关闭窗口 */ /** 关闭窗口 */
function closeDialog() { function closeDialog() {
options.img = userStore.avatar; options.img = userStore.avatar;

View File

@ -47,7 +47,9 @@ const rules = ref({
{ required: true, message: "手机号码不能为空", trigger: "blur" }, { required: true, message: "手机号码不能为空", trigger: "blur" },
{ {
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码", message: computed(() =>
t("admin.validation.pleaseEnterTheCorrectFormatOfThePhoneNumber")
),
trigger: "blur", trigger: "blur",
}, },
], ],

View File

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

View File

@ -105,7 +105,7 @@
</div> </div>
</section> </section>
<div style="padding: 20px 0"> <div style="padding: 20px 0">
<div class="pointTit">从业时间</div> <div class="pointTit">{{ t("admin.form.workingTime") }}</div>
</div> </div>
<section> <section>
<div> <div>
@ -517,6 +517,7 @@ function getDataList() {
color: #666666; color: #666666;
font-size: 14px; font-size: 14px;
} }
.el-tabs__item:hover { .el-tabs__item:hover {
opacity: 0.8; opacity: 0.8;
} }
@ -527,6 +528,7 @@ function getDataList() {
font-weight: bold; font-weight: bold;
color: #333333; color: #333333;
} }
.el-tabs__active-bar { .el-tabs__active-bar {
background-color: #333333; background-color: #333333;
height: 4px; height: 4px;
@ -536,18 +538,22 @@ function getDataList() {
background-color: transparent; background-color: transparent;
} }
} }
.head { .head {
padding: 15px 0px; padding: 15px 0px;
span { span {
font-size: 16px; font-size: 16px;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: 400; font-weight: 400;
color: #666666; color: #666666;
} }
.one { .one {
color: #333333; color: #333333;
} }
} }
.r { .r {
display: inline-block; display: inline-block;
width: 325px; width: 325px;
@ -576,6 +582,7 @@ function getDataList() {
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: 500; font-weight: 500;
color: #333333; color: #333333;
&:before { &:before {
content: ""; content: "";
top: 8px; top: 8px;
@ -594,6 +601,7 @@ function getDataList() {
width: 100%; width: 100%;
background-color: #fff; background-color: #fff;
margin-top: -20px; margin-top: -20px;
div { div {
text-align: center; text-align: center;
float: right; float: right;
@ -606,16 +614,19 @@ function getDataList() {
font-weight: 400; font-weight: 400;
line-height: 36px; line-height: 36px;
box-sizing: border-box; box-sizing: border-box;
&:hover { &:hover {
opacity: 0.7; opacity: 0.7;
} }
} }
.share { .share {
color: #333333; color: #333333;
background: #f2f6ff; background: #f2f6ff;
border: 1px solid #dcdcdc; border: 1px solid #dcdcdc;
margin-right: 10px; margin-right: 10px;
} }
.order { .order {
background: #0054ff; background: #0054ff;
color: #ffffff; color: #ffffff;
@ -628,6 +639,7 @@ function getDataList() {
padding: 20px; padding: 20px;
background-color: #fff; background-color: #fff;
margin-bottom: 10px; margin-bottom: 10px;
.tit { .tit {
margin-left: -8px; margin-left: -8px;
font-size: 16px; font-size: 16px;
@ -635,6 +647,7 @@ function getDataList() {
font-weight: bold; font-weight: bold;
color: #333333; color: #333333;
} }
.line { .line {
margin: 10px 0; margin: 10px 0;
font-size: 14px; font-size: 14px;
@ -648,12 +661,14 @@ function getDataList() {
padding: 20px; padding: 20px;
background-color: #fff; background-color: #fff;
margin-bottom: 10px; margin-bottom: 10px;
.tit { .tit {
font-size: 16px; font-size: 16px;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: bold; font-weight: bold;
color: #333333; color: #333333;
} }
.line { .line {
padding-left: 8px; padding-left: 8px;
margin: 10px 0; margin: 10px 0;