From 205e09ecd8feb9e87314597306ba631fb699467f Mon Sep 17 00:00:00 2001 From: gaoxq <376340421@qq.com> Date: Sat, 21 Mar 2026 12:28:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/biz/dao/MyScreenInfoDao.java | 15 ++ .../modules/biz/entity/MyScreenInfo.java | 89 +++++++ .../biz/service/MyScreenInfoService.java | 134 ++++++++++ .../biz/web/MyScreenInfoController.java | 157 +++++++++++ .../mappings/modules/biz/MyScreenInfoDao.xml | 15 ++ web-vue/packages/biz/api/biz/myScreenInfo.ts | 55 ++++ .../biz/views/biz/myScreenInfo/form.vue | 151 +++++++++++ .../biz/views/biz/myScreenInfo/list.vue | 249 ++++++++++++++++++ .../biz/views/biz/myScreenInfo/select.ts | 151 +++++++++++ .../packages/core/layouts/screen/index.vue | 46 ++-- .../views/screen/welcome/Erp/index.vue | 8 + .../screen/welcome}/Home/index.vue | 0 .../{analysis => welcome/Sys}/index.vue | 0 .../views/screen/welcome/Work/index.vue | 8 + .../layouts/views/screen/welcome/index.vue | 8 + .../core/locales/lang/en/routes/screen.ts | 4 + .../core/locales/lang/zh_CN/routes/screen.ts | 4 + web-vue/packages/core/router/routes/index.ts | 48 +++- 18 files changed, 1107 insertions(+), 35 deletions(-) create mode 100644 web-api/src/main/java/com/jeesite/modules/biz/dao/MyScreenInfoDao.java create mode 100644 web-api/src/main/java/com/jeesite/modules/biz/entity/MyScreenInfo.java create mode 100644 web-api/src/main/java/com/jeesite/modules/biz/service/MyScreenInfoService.java create mode 100644 web-api/src/main/java/com/jeesite/modules/biz/web/MyScreenInfoController.java create mode 100644 web-api/src/main/resources/mappings/modules/biz/MyScreenInfoDao.xml create mode 100644 web-vue/packages/biz/api/biz/myScreenInfo.ts create mode 100644 web-vue/packages/biz/views/biz/myScreenInfo/form.vue create mode 100644 web-vue/packages/biz/views/biz/myScreenInfo/list.vue create mode 100644 web-vue/packages/biz/views/biz/myScreenInfo/select.ts create mode 100644 web-vue/packages/core/layouts/views/screen/welcome/Erp/index.vue rename web-vue/packages/core/layouts/{screen => views/screen/welcome}/Home/index.vue (100%) rename web-vue/packages/core/layouts/views/screen/{analysis => welcome/Sys}/index.vue (100%) create mode 100644 web-vue/packages/core/layouts/views/screen/welcome/Work/index.vue create mode 100644 web-vue/packages/core/layouts/views/screen/welcome/index.vue create mode 100644 web-vue/packages/core/locales/lang/en/routes/screen.ts create mode 100644 web-vue/packages/core/locales/lang/zh_CN/routes/screen.ts diff --git a/web-api/src/main/java/com/jeesite/modules/biz/dao/MyScreenInfoDao.java b/web-api/src/main/java/com/jeesite/modules/biz/dao/MyScreenInfoDao.java new file mode 100644 index 0000000..1d2d52d --- /dev/null +++ b/web-api/src/main/java/com/jeesite/modules/biz/dao/MyScreenInfoDao.java @@ -0,0 +1,15 @@ +package com.jeesite.modules.biz.dao; + +import com.jeesite.common.dao.CrudDao; +import com.jeesite.common.mybatis.annotation.MyBatisDao; +import com.jeesite.modules.biz.entity.MyScreenInfo; + +/** + * 大屏看板 DAO 接口 + * @author gaoxq + * @version 2026-03-21 + */ +@MyBatisDao(dataSourceName="work") +public interface MyScreenInfoDao extends CrudDao { + +} \ No newline at end of file diff --git a/web-api/src/main/java/com/jeesite/modules/biz/entity/MyScreenInfo.java b/web-api/src/main/java/com/jeesite/modules/biz/entity/MyScreenInfo.java new file mode 100644 index 0000000..20659c6 --- /dev/null +++ b/web-api/src/main/java/com/jeesite/modules/biz/entity/MyScreenInfo.java @@ -0,0 +1,89 @@ +package com.jeesite.modules.biz.entity; + +import java.io.Serializable; +import java.util.Date; +import com.jeesite.common.mybatis.annotation.JoinTable; +import com.jeesite.common.mybatis.annotation.JoinTable.Type; +import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.constraints.Size; + +import com.jeesite.common.entity.DataEntity; +import com.jeesite.common.mybatis.annotation.Column; +import com.jeesite.common.mybatis.annotation.Table; +import com.jeesite.common.mybatis.mapper.query.QueryType; +import com.jeesite.common.utils.excel.annotation.ExcelField; +import com.jeesite.common.utils.excel.annotation.ExcelField.Align; +import com.jeesite.common.utils.excel.annotation.ExcelFields; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 大屏看板 Entity + * @author gaoxq + * @version 2026-03-21 + */ +@EqualsAndHashCode(callSuper = true) +@Table(name="my_screen_info", alias="a", label="大屏信息", columns={ + @Column(name="create_time", attrName="createTime", label="记录时间", isUpdate=false, isUpdateForce=true), + @Column(name="screen_id", attrName="screenId", label="唯一主键", isPK=true), + @Column(name="screen_name", attrName="screenName", label="大屏名称", queryType=QueryType.LIKE), + @Column(name="screen_code", attrName="screenCode", label="大屏编码"), + @Column(name="screen_title", attrName="screenTitle", label="大屏标题", queryType=QueryType.LIKE), + @Column(name="path", attrName="path", label="路由地址"), + @Column(name="remark", attrName="remark", label="说明描述", isQuery=false), + @Column(name="ustatus", attrName="ustatus", label="状态"), + @Column(name="update_time", attrName="updateTime", label="更新时间", isInsert=false, isQuery=false, isUpdateForce=true), + }, orderBy="a.screen_id DESC" +) +@Data +public class MyScreenInfo extends DataEntity implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + private Date createTime; // 记录时间 + private String screenId; // 唯一主键 + private String screenName; // 大屏名称 + private String screenCode; // 大屏编码 + private String screenTitle; // 大屏标题 + private String path; // 路由地址 + private String remark; // 说明描述 + private String ustatus; // 状态 + private Date updateTime; // 更新时间 + + @ExcelFields({ + @ExcelField(title="记录时间", attrName="createTime", align=Align.CENTER, sort=10, dataFormat="yyyy-MM-dd hh:mm"), + @ExcelField(title="唯一主键", attrName="screenId", align=Align.CENTER, sort=20), + @ExcelField(title="大屏名称", attrName="screenName", align=Align.CENTER, sort=30), + @ExcelField(title="大屏编码", attrName="screenCode", align=Align.CENTER, sort=40), + @ExcelField(title="大屏标题", attrName="screenTitle", align=Align.CENTER, sort=50), + @ExcelField(title="路由地址", attrName="path", align=Align.CENTER, sort=60), + @ExcelField(title="说明描述", attrName="remark", align=Align.CENTER, sort=70), + @ExcelField(title="状态", attrName="ustatus", dictType="biz_status", align=Align.CENTER, sort=80), + @ExcelField(title="更新时间", attrName="updateTime", align=Align.CENTER, sort=90, dataFormat="yyyy-MM-dd hh:mm"), + }) + public MyScreenInfo() { + this(null); + } + + public MyScreenInfo(String id){ + super(id); + } + public Date getCreateTime_gte() { + return sqlMap.getWhere().getValue("create_time", QueryType.GTE); + } + + public void setCreateTime_gte(Date createTime) { + sqlMap.getWhere().and("create_time", QueryType.GTE, createTime); + } + + public Date getCreateTime_lte() { + return sqlMap.getWhere().getValue("create_time", QueryType.LTE); + } + + public void setCreateTime_lte(Date createTime) { + sqlMap.getWhere().and("create_time", QueryType.LTE, createTime); + } + +} \ No newline at end of file diff --git a/web-api/src/main/java/com/jeesite/modules/biz/service/MyScreenInfoService.java b/web-api/src/main/java/com/jeesite/modules/biz/service/MyScreenInfoService.java new file mode 100644 index 0000000..67ee10f --- /dev/null +++ b/web-api/src/main/java/com/jeesite/modules/biz/service/MyScreenInfoService.java @@ -0,0 +1,134 @@ +package com.jeesite.modules.biz.service; + +import java.util.List; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.jeesite.common.entity.Page; +import com.jeesite.common.service.CrudService; +import com.jeesite.modules.biz.entity.MyScreenInfo; +import com.jeesite.modules.biz.dao.MyScreenInfoDao; +import com.jeesite.common.service.ServiceException; +import com.jeesite.common.config.Global; +import com.jeesite.common.validator.ValidatorUtils; +import com.jeesite.common.utils.excel.ExcelImport; +import org.springframework.web.multipart.MultipartFile; +import jakarta.validation.ConstraintViolation; +import jakarta.validation.ConstraintViolationException; + +/** + * 大屏看板 Service + * @author gaoxq + * @version 2026-03-21 + */ +@Service +public class MyScreenInfoService extends CrudService { + + /** + * 获取单条数据 + * @param myScreenInfo 主键 + */ + @Override + public MyScreenInfo get(MyScreenInfo myScreenInfo) { + return super.get(myScreenInfo); + } + + /** + * 查询分页数据 + * @param myScreenInfo 查询条件 + * @param myScreenInfo page 分页对象 + */ + @Override + public Page findPage(MyScreenInfo myScreenInfo) { + return super.findPage(myScreenInfo); + } + + /** + * 查询列表数据 + * @param myScreenInfo 查询条件 + */ + @Override + public List findList(MyScreenInfo myScreenInfo) { + return super.findList(myScreenInfo); + } + + /** + * 保存数据(插入或更新) + * @param myScreenInfo 数据对象 + */ + @Override + @Transactional + public void save(MyScreenInfo myScreenInfo) { + super.save(myScreenInfo); + } + + /** + * 导入数据 + * @param file 导入的数据文件 + */ + @Transactional + public String importData(MultipartFile file) { + if (file == null){ + throw new ServiceException(text("请选择导入的数据文件!")); + } + int successNum = 0; int failureNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + try(ExcelImport ei = new ExcelImport(file, 2, 0)){ + List list = ei.getDataList(MyScreenInfo.class); + for (MyScreenInfo myScreenInfo : list) { + try{ + ValidatorUtils.validateWithException(myScreenInfo); + this.save(myScreenInfo); + successNum++; + successMsg.append("
" + successNum + "、编号 " + myScreenInfo.getId() + " 导入成功"); + } catch (Exception e) { + failureNum++; + String msg = "
" + failureNum + "、编号 " + myScreenInfo.getId() + " 导入失败:"; + if (e instanceof ConstraintViolationException){ + ConstraintViolationException cve = (ConstraintViolationException)e; + for (ConstraintViolation violation : cve.getConstraintViolations()) { + msg += Global.getText(violation.getMessage()) + " ("+violation.getPropertyPath()+")"; + } + }else{ + msg += e.getMessage(); + } + failureMsg.append(msg); + logger.error(msg, e); + } + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + failureMsg.append(e.getMessage()); + return failureMsg.toString(); + } + if (failureNum > 0) { + failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); + throw new ServiceException(failureMsg.toString()); + }else{ + successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); + } + return successMsg.toString(); + } + + /** + * 更新状态 + * @param myScreenInfo 数据对象 + */ + @Override + @Transactional + public void updateStatus(MyScreenInfo myScreenInfo) { + super.updateStatus(myScreenInfo); + } + + /** + * 删除数据 + * @param myScreenInfo 数据对象 + */ + @Override + @Transactional + public void delete(MyScreenInfo myScreenInfo) { + super.delete(myScreenInfo); + } + +} \ No newline at end of file diff --git a/web-api/src/main/java/com/jeesite/modules/biz/web/MyScreenInfoController.java b/web-api/src/main/java/com/jeesite/modules/biz/web/MyScreenInfoController.java new file mode 100644 index 0000000..7668890 --- /dev/null +++ b/web-api/src/main/java/com/jeesite/modules/biz/web/MyScreenInfoController.java @@ -0,0 +1,157 @@ +package com.jeesite.modules.biz.web; + +import java.util.List; + +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.jeesite.common.config.Global; +import com.jeesite.common.collect.ListUtils; +import com.jeesite.common.entity.Page; +import com.jeesite.common.lang.DateUtils; +import com.jeesite.common.utils.excel.ExcelExport; +import com.jeesite.common.utils.excel.annotation.ExcelField.Type; +import org.springframework.web.multipart.MultipartFile; +import com.jeesite.common.web.BaseController; +import com.jeesite.modules.biz.entity.MyScreenInfo; +import com.jeesite.modules.biz.service.MyScreenInfoService; + +/** + * 大屏看板 Controller + * + * @author gaoxq + * @version 2026-03-21 + */ +@Controller +@RequestMapping(value = "${adminPath}/biz/myScreenInfo") +public class MyScreenInfoController extends BaseController { + + private final MyScreenInfoService myScreenInfoService; + + public MyScreenInfoController(MyScreenInfoService myScreenInfoService) { + this.myScreenInfoService = myScreenInfoService; + } + + /** + * 获取数据 + */ + @ModelAttribute + public MyScreenInfo get(String screenId, boolean isNewRecord) { + return myScreenInfoService.get(screenId, isNewRecord); + } + + /** + * 查询列表 + */ + @RequiresPermissions("biz:myScreenInfo:view") + @RequestMapping(value = {"list", ""}) + public String list(MyScreenInfo myScreenInfo, Model model) { + model.addAttribute("myScreenInfo", myScreenInfo); + return "modules/biz/myScreenInfoList"; + } + + /** + * 查询列表数据 + */ + @RequiresPermissions("biz:myScreenInfo:view") + @RequestMapping(value = "listData") + @ResponseBody + public Page listData(MyScreenInfo myScreenInfo, HttpServletRequest request, HttpServletResponse response) { + myScreenInfo.setPage(new Page<>(request, response)); + Page page = myScreenInfoService.findPage(myScreenInfo); + return page; + } + + /** + * 查看编辑表单 + */ + @RequiresPermissions("biz:myScreenInfo:view") + @RequestMapping(value = "form") + public String form(MyScreenInfo myScreenInfo, Model model) { + model.addAttribute("myScreenInfo", myScreenInfo); + return "modules/biz/myScreenInfoForm"; + } + + /** + * 保存数据 + */ + @RequiresPermissions("biz:myScreenInfo:edit") + @PostMapping(value = "save") + @ResponseBody + public String save(@Validated MyScreenInfo myScreenInfo) { + myScreenInfoService.save(myScreenInfo); + return renderResult(Global.TRUE, text("保存大屏成功!")); + } + + /** + * 导出数据 + */ + @RequiresPermissions("biz:myScreenInfo:view") + @RequestMapping(value = "exportData") + public void exportData(MyScreenInfo myScreenInfo, HttpServletResponse response) { + List list = myScreenInfoService.findList(myScreenInfo); + String fileName = "大屏" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx"; + try (ExcelExport ee = new ExcelExport("大屏", MyScreenInfo.class)) { + ee.setDataList(list).write(response, fileName); + } + } + + /** + * 下载模板 + */ + @RequiresPermissions("biz:myScreenInfo:view") + @RequestMapping(value = "importTemplate") + public void importTemplate(HttpServletResponse response) { + MyScreenInfo myScreenInfo = new MyScreenInfo(); + List list = ListUtils.newArrayList(myScreenInfo); + String fileName = "大屏模板.xlsx"; + try (ExcelExport ee = new ExcelExport("大屏", MyScreenInfo.class, Type.IMPORT)) { + ee.setDataList(list).write(response, fileName); + } + } + + /** + * 导入数据 + */ + @ResponseBody + @RequiresPermissions("biz:myScreenInfo:edit") + @PostMapping(value = "importData") + public String importData(MultipartFile file) { + try { + String message = myScreenInfoService.importData(file); + return renderResult(Global.TRUE, "posfull:" + message); + } catch (Exception ex) { + return renderResult(Global.FALSE, "posfull:" + ex.getMessage()); + } + } + + /** + * 删除数据 + */ + @RequiresPermissions("biz:myScreenInfo:edit") + @RequestMapping(value = "delete") + @ResponseBody + public String delete(MyScreenInfo myScreenInfo) { + myScreenInfoService.delete(myScreenInfo); + return renderResult(Global.TRUE, text("删除大屏成功!")); + } + + /** + * 列表数据 + */ + @RequestMapping(value = "listAll") + @ResponseBody + public List listAll(MyScreenInfo myScreenInfo) { + return myScreenInfoService.findList(myScreenInfo); + } + +} \ No newline at end of file diff --git a/web-api/src/main/resources/mappings/modules/biz/MyScreenInfoDao.xml b/web-api/src/main/resources/mappings/modules/biz/MyScreenInfoDao.xml new file mode 100644 index 0000000..02b7f32 --- /dev/null +++ b/web-api/src/main/resources/mappings/modules/biz/MyScreenInfoDao.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/web-vue/packages/biz/api/biz/myScreenInfo.ts b/web-vue/packages/biz/api/biz/myScreenInfo.ts new file mode 100644 index 0000000..b1704ea --- /dev/null +++ b/web-vue/packages/biz/api/biz/myScreenInfo.ts @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013-Now https://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + * @author gaoxq + */ +import { defHttp } from '@jeesite/core/utils/http/axios'; +import { useGlobSetting } from '@jeesite/core/hooks/setting'; +import { BasicModel, Page } from '@jeesite/core/api/model/baseModel'; +import { UploadApiResult } from '@jeesite/core/api/sys/upload'; +import { UploadFileParams } from '@jeesite/types/axios'; +import { AxiosProgressEvent } from 'axios'; + +const { ctxPath, adminPath } = useGlobSetting(); + +export interface MyScreenInfo extends BasicModel { + createTime?: string; // 记录时间 + screenId: string; // 唯一主键 + screenName?: string; // 大屏名称 + screenCode?: string; // 大屏编码 + screenTitle?: string; // 大屏标题 + path?: string; // 路由地址 + remark?: string; // 说明描述 + ustatus?: string; // 状态 + updateTime?: string; // 更新时间 +} + +export const myScreenInfoList = (params?: MyScreenInfo | any) => + defHttp.get({ url: adminPath + '/biz/myScreenInfo/list', params }); + +export const myScreenInfoListAll = (params?: MyScreenInfo | any) => + defHttp.get({ url: adminPath + '/biz/myScreenInfo/listAll', params }); + +export const myScreenInfoListData = (params?: MyScreenInfo | any) => + defHttp.post>({ url: adminPath + '/biz/myScreenInfo/listData', params }); + +export const myScreenInfoForm = (params?: MyScreenInfo | any) => + defHttp.get({ url: adminPath + '/biz/myScreenInfo/form', params }); + +export const myScreenInfoSave = (params?: any, data?: MyScreenInfo | any) => + defHttp.postJson({ url: adminPath + '/biz/myScreenInfo/save', params, data }); + +export const myScreenInfoImportData = ( + params: UploadFileParams, + onUploadProgress: (progressEvent: AxiosProgressEvent) => void, +) => + defHttp.uploadFile( + { + url: ctxPath + adminPath + '/biz/myScreenInfo/importData', + onUploadProgress, + }, + params, + ); + +export const myScreenInfoDelete = (params?: MyScreenInfo | any) => + defHttp.get({ url: adminPath + '/biz/myScreenInfo/delete', params }); diff --git a/web-vue/packages/biz/views/biz/myScreenInfo/form.vue b/web-vue/packages/biz/views/biz/myScreenInfo/form.vue new file mode 100644 index 0000000..edc0758 --- /dev/null +++ b/web-vue/packages/biz/views/biz/myScreenInfo/form.vue @@ -0,0 +1,151 @@ + + + diff --git a/web-vue/packages/biz/views/biz/myScreenInfo/list.vue b/web-vue/packages/biz/views/biz/myScreenInfo/list.vue new file mode 100644 index 0000000..58b1faf --- /dev/null +++ b/web-vue/packages/biz/views/biz/myScreenInfo/list.vue @@ -0,0 +1,249 @@ + + + diff --git a/web-vue/packages/biz/views/biz/myScreenInfo/select.ts b/web-vue/packages/biz/views/biz/myScreenInfo/select.ts new file mode 100644 index 0000000..e71ecbe --- /dev/null +++ b/web-vue/packages/biz/views/biz/myScreenInfo/select.ts @@ -0,0 +1,151 @@ +import { useI18n } from '@jeesite/core/hooks/web/useI18n'; +import { BasicColumn, BasicTableProps, FormProps } from '@jeesite/core/components/Table'; +import { myScreenInfoListData } from '@jeesite/biz/api/biz/myScreenInfo'; + +const { t } = useI18n('biz.myScreenInfo'); + +const modalProps = { + title: t('大屏选择'), +}; + +const searchForm: FormProps = { + baseColProps: { md: 8, lg: 6 }, + labelWidth: 90, + schemas: [ + { + label: t('记录时间起'), + field: 'createTime_gte', + component: 'DatePicker', + componentProps: { + format: 'YYYY-MM-DD HH:mm', + showTime: { format: 'HH:mm' }, + }, + }, + { + label: t('记录时间止'), + field: 'createTime_lte', + component: 'DatePicker', + componentProps: { + format: 'YYYY-MM-DD HH:mm', + showTime: { format: 'HH:mm' }, + }, + }, + { + label: t('大屏名称'), + field: 'screenName', + component: 'Input', + }, + { + label: t('大屏编码'), + field: 'screenCode', + component: 'Input', + }, + { + label: t('大屏标题'), + field: 'screenTitle', + component: 'Input', + }, + { + label: t('路由地址'), + field: 'path', + component: 'Input', + }, + { + label: t('状态'), + field: 'ustatus', + component: 'Select', + componentProps: { + dictType: 'biz_status', + allowClear: true, + }, + }, + ], +}; + +const tableColumns: BasicColumn[] = [ + { + title: t('记录时间'), + dataIndex: 'createTime', + key: 'a.create_time', + sorter: true, + width: 230, + align: 'left', + slot: 'firstColumn', + }, + { + title: t('大屏名称'), + dataIndex: 'screenName', + key: 'a.screen_name', + sorter: true, + width: 130, + align: 'left', + }, + { + title: t('大屏编码'), + dataIndex: 'screenCode', + key: 'a.screen_code', + sorter: true, + width: 130, + align: 'left', + }, + { + title: t('大屏标题'), + dataIndex: 'screenTitle', + key: 'a.screen_title', + sorter: true, + width: 130, + align: 'left', + }, + { + title: t('路由地址'), + dataIndex: 'path', + key: 'a.path', + sorter: true, + width: 130, + align: 'left', + }, + { + title: t('说明描述'), + dataIndex: 'remark', + key: 'a.remark', + sorter: true, + width: 130, + align: 'left', + }, + { + title: t('状态'), + dataIndex: 'ustatus', + key: 'a.ustatus', + sorter: true, + width: 130, + align: 'center', + dictType: 'biz_status', + }, + { + title: t('更新时间'), + dataIndex: 'updateTime', + key: 'a.update_time', + sorter: true, + width: 130, + align: 'center', + }, +]; + +const tableProps: BasicTableProps = { + api: myScreenInfoListData, + beforeFetch: (params) => { + params['isAll'] = true; + return params; + }, + columns: tableColumns, + formConfig: searchForm, + rowKey: 'screenId', +}; + +export default { + modalProps, + tableProps, + itemCode: 'screenId', + itemName: 'screenId', + isShowCode: false, +}; diff --git a/web-vue/packages/core/layouts/screen/index.vue b/web-vue/packages/core/layouts/screen/index.vue index d869a01..3f22ed1 100644 --- a/web-vue/packages/core/layouts/screen/index.vue +++ b/web-vue/packages/core/layouts/screen/index.vue @@ -16,11 +16,11 @@
- {{ item.moduleName }} + {{ item.screenName }}
@@ -36,22 +36,18 @@
-
- -
-
+
- + + \ No newline at end of file diff --git a/web-vue/packages/core/layouts/screen/Home/index.vue b/web-vue/packages/core/layouts/views/screen/welcome/Home/index.vue similarity index 100% rename from web-vue/packages/core/layouts/screen/Home/index.vue rename to web-vue/packages/core/layouts/views/screen/welcome/Home/index.vue diff --git a/web-vue/packages/core/layouts/views/screen/analysis/index.vue b/web-vue/packages/core/layouts/views/screen/welcome/Sys/index.vue similarity index 100% rename from web-vue/packages/core/layouts/views/screen/analysis/index.vue rename to web-vue/packages/core/layouts/views/screen/welcome/Sys/index.vue diff --git a/web-vue/packages/core/layouts/views/screen/welcome/Work/index.vue b/web-vue/packages/core/layouts/views/screen/welcome/Work/index.vue new file mode 100644 index 0000000..02409e3 --- /dev/null +++ b/web-vue/packages/core/layouts/views/screen/welcome/Work/index.vue @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/web-vue/packages/core/layouts/views/screen/welcome/index.vue b/web-vue/packages/core/layouts/views/screen/welcome/index.vue new file mode 100644 index 0000000..48d48ea --- /dev/null +++ b/web-vue/packages/core/layouts/views/screen/welcome/index.vue @@ -0,0 +1,8 @@ + + + + + diff --git a/web-vue/packages/core/locales/lang/en/routes/screen.ts b/web-vue/packages/core/locales/lang/en/routes/screen.ts new file mode 100644 index 0000000..66ccc80 --- /dev/null +++ b/web-vue/packages/core/locales/lang/en/routes/screen.ts @@ -0,0 +1,4 @@ +export default { + bigScreen: 'BigScreen', + bigSetting: 'BigSetting', +}; \ No newline at end of file diff --git a/web-vue/packages/core/locales/lang/zh_CN/routes/screen.ts b/web-vue/packages/core/locales/lang/zh_CN/routes/screen.ts new file mode 100644 index 0000000..254cc7e --- /dev/null +++ b/web-vue/packages/core/locales/lang/zh_CN/routes/screen.ts @@ -0,0 +1,4 @@ +export default { + bigScreen: '大屏可视化', + bigSetting: '大屏设置', +}; \ No newline at end of file diff --git a/web-vue/packages/core/router/routes/index.ts b/web-vue/packages/core/router/routes/index.ts index d0ff3ba..d0fbcd1 100644 --- a/web-vue/packages/core/router/routes/index.ts +++ b/web-vue/packages/core/router/routes/index.ts @@ -51,26 +51,58 @@ const BigScreenRoute: AppRouteRecordRaw = { path: '/bigScreen', name: 'BigScreen', component: SCREEN_LAYOUT, - redirect: '/bigScreen/screenAnalysis', + redirect: '/bigScreen/welcome', meta: { - title: t('routes.dashboard.bigScreen'), + title: t('routes.screen.bigScreen'), ignoreAuth: false, }, children: [ { - path: 'screenAnalysis', - name: 'ScreenAnalysis', - component: () => import('@jeesite/core/layouts/views/screen/analysis/index.vue'), + path: 'welcome', + name: 'ScreenWelcome', + component: () => import('@jeesite/core/layouts/views/screen/welcome/index.vue'), meta: { - title: t('routes.dashboard.bigScreen'), + title: t('routes.screen.bigScreen'), }, }, + { + path: 'home', + name: 'ScreenHome', + component: () => import('@jeesite/core/layouts/views/screen/welcome/Home/index.vue'), + meta: { + title: t('routes.screen.bigScreen'), + }, + }, + { + path: 'work', + name: 'ScreenWork', + component: () => import('@jeesite/core/layouts/views/screen/welcome/Work/index.vue'), + meta: { + title: t('routes.screen.bigScreen'), + }, + }, + { + path: 'erp', + name: 'ScreenErp', + component: () => import('@jeesite/core/layouts/views/screen/welcome/Erp/index.vue'), + meta: { + title: t('routes.screen.bigScreen'), + }, + }, + { + path: 'sys', + name: 'ScreenSys', + component: () => import('@jeesite/core/layouts/views/screen/welcome/Sys/index.vue'), + meta: { + title: t('routes.screen.bigScreen'), + }, + }, { - path: 'screenSetting', + path: 'setting', name: 'ScreenSetting', component: () => import('@jeesite/core/layouts/views/screen/setting/index.vue'), meta: { - title: t('routes.dashboard.bigSetting'), + title: t('routes.screen.bigSetting'), }, }, ],