This commit is contained in:
yyy 2025-02-07 14:06:43 +08:00
parent b08d79abe8
commit 21ef0251a6
15 changed files with 177 additions and 45 deletions

2
.env
View File

@ -1,5 +1,5 @@
# 标题
VITE_APP_TITLE=芋道管理系统
VITE_APP_TITLE=RCS智能设备调度系统
# 项目本地运行端口号
VITE_PORT=80

View File

@ -65,13 +65,13 @@
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint"
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[css]": {
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint"
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[less]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -59,7 +59,7 @@ export default defineComponent({
<Backtop></Backtop>
<Setting></Setting>
{<Setting></Setting>}
</section>
)
}

View File

@ -57,7 +57,7 @@ watch(
</script>
<template>
<div>
<div :style="{ 'background-color': appStore.getTheme.topHeaderBgColor }">
<router-link
:class="[
prefixCls,
@ -80,6 +80,7 @@ watch(
layout === 'topLeft' || layout === 'top' || layout === 'cutMenu'
}
]"
style="font-size: 14px"
>
{{ title }}
</div>

View File

@ -171,7 +171,8 @@ $prefix-cls: #{$namespace}-menu;
.#{$elNamespace}-menu {
.#{$elNamespace}-sub-menu__title,
.#{$elNamespace}-menu-item:not(.is-active) {
background-color: var(--left-menu-bg-light-color) !important;
// background-color: var(--left-menu-bg-light-color) !important;
background-color: #ffffff !important;
}
}
}

View File

@ -52,6 +52,7 @@ export default defineComponent({
'h-[var(--top-tool-height)] relative px-[var(--top-tool-p-x)] flex items-center justify-between',
'dark:bg-[var(--el-bg-color)]'
]}
style="height:60px"
>
{layout.value !== 'top' ? (
<div class="h-full flex items-center">

View File

@ -55,7 +55,8 @@ export const useRenderLayout = () => {
'w-[var(--left-menu-max-width)]': !appStore.getCollapse
}
]}
style="transition: all var(--transition-time-02);"
style="transition: all var(--transition-time-02);height:60px;display: flex;
align-items: center;"
></Logo>
) : undefined}
<Menu class={[{ '!h-[calc(100%-var(--logo-height))]': logo.value }]}></Menu>
@ -106,9 +107,9 @@ export const useRenderLayout = () => {
]}
></ToolHeader>
{tagsView.value ? (
{/* {tagsView.value ? (
<TagsView class="layout-border__top layout-border__bottom"></TagsView>
) : undefined}
) : undefined} */}
</div>
<AppView></AppView>

View File

@ -20,7 +20,6 @@ import { setupElementPlus } from '@/plugins/elementPlus'
import { setupFormCreate } from '@/plugins/formCreate'
// 引入全局样式
import '@/styles/element/index.scss'
import '@/styles/index.scss'
// 引入动画

View File

@ -47,7 +47,6 @@ export const useAppStore = defineStore('app', {
mobile: false, // 是否是移动端
title: import.meta.env.VITE_APP_TITLE, // 标题
pageLoading: false, // 路由跳转loading
breadcrumb: true, // 面包屑
breadcrumbIcon: true, // 面包屑图标
collapse: false, // 折叠菜单
@ -58,7 +57,7 @@ export const useAppStore = defineStore('app', {
size: true, // 尺寸图标
locale: true, // 多语言图标
message: true, // 消息图标
tagsView: true, // 标签页
tagsView: false, // 标签页
tagsViewImmerse: false, // 标签页沉浸
tagsViewIcon: true, // 是否显示标签图标
logo: true, // logo
@ -66,39 +65,38 @@ export const useAppStore = defineStore('app', {
footer: true, // 显示页脚
greyMode: false, // 是否开始灰色模式,用于特殊悼念日
fixedMenu: wsCache.get('fixedMenu') || false, // 是否固定菜单
layout: wsCache.get(CACHE_KEY.LAYOUT) || 'classic', // layout布局
isDark: wsCache.get(CACHE_KEY.IS_DARK) || false, // 是否是暗黑模式
currentSize: wsCache.get('default') || 'default', // 组件尺寸
theme: wsCache.get(CACHE_KEY.THEME) || {
// 主题色
elColorPrimary: '#409eff',
elColorPrimary: '#00329F',
// 左侧菜单边框颜色
leftMenuBorderColor: 'inherit',
// 左侧菜单背景颜色
leftMenuBgColor: '#001529',
leftMenuBgColor: '#ffffff',
// 左侧菜单浅色背景颜色
leftMenuBgLightColor: '#0f2438',
// 左侧菜单选中背景颜色
leftMenuBgActiveColor: 'var(--el-color-primary)',
leftMenuBgActiveColor: '#EBF1FF',
// 左侧菜单收起选中背景颜色
leftMenuCollapseBgActiveColor: 'var(--el-color-primary)',
leftMenuCollapseBgActiveColor: '#EBF1FF',
// 左侧菜单字体颜色
leftMenuTextColor: '#bfcbd9',
leftMenuTextColor: '#98A4BF',
// 左侧菜单选中字体颜色
leftMenuTextActiveColor: '#fff',
leftMenuTextActiveColor: '#00329F',
// logo字体颜色
logoTitleTextColor: '#fff',
// logo边框颜色
logoBorderColor: 'inherit',
// 头部背景颜色
topHeaderBgColor: '#fff',
topHeaderBgColor: '#00329F',
// 头部字体颜色
topHeaderTextColor: 'inherit',
topHeaderTextColor: '#ffffff',
// 头部悬停颜色
topHeaderHoverColor: '#f6f6f6',
// 头部边框颜色
topToolBorderColor: '#eee'
topToolBorderColor: '#E2E7F5'
}
}
},

View File

@ -1,8 +0,0 @@
// @forward 'element-plus/theme-chalk/src/common/var.scss' with (
// $colors: (
// 'primary': (
// 'base': #00329f
// )
// )
// );
// @use 'element-plus/theme-chalk/src/index.scss' as *;

View File

@ -1,13 +1,15 @@
:root {
--el-color-primary: #00329f;
--login-bg-color: #293146;
--left-menu-max-width: 200px;
--left-menu-max-width: 220px;
--left-menu-min-width: 64px;
--left-menu-bg-color: #001529;
--left-menu-bg-color: #ffffff;
--left-menu-bg-light-color: #0f2438;
--left-menu-bg-light-color: #ffffff;
--left-menu-bg-active-color: var(--el-color-primary);
@ -35,7 +37,8 @@
--top-tool-p-x: 0;
--tags-view-height: 35px;
/* --tags-view-height: 35px; 开启面包屑时 */
--tags-view-height: 8px;
/* header start */
/* tab menu start */

View File

@ -1,14 +1,104 @@
<template>
<div>
<ContentWrap>
<div>
<el-button type="primary" @click="saveMap" :disabled="formLoading"> 保存 </el-button>
<el-button type="primary" @click="backPreviousStep" :disabled="formLoading">
撤销
</el-button>
<el-button type="primary" @click="backNextStep" :disabled="formLoading"> 重做 </el-button>
<el-button type="primary" @click="drawNodes" :disabled="formLoading"> 绘制节点 </el-button>
<div class="tool-list">
<div class="tool-item">
<Icon icon="ep:folder-add" :size="24" />
<div class="name"> 打开 </div>
</div>
<div class="tool-item" @click="saveMap">
<Icon icon="ep:folder-checked" :size="24" />
<div class="name"> 保存 </div>
</div>
<div class="tool-item">
<Icon icon="ep:folder-opened" :size="24" />
<div class="name"> 另存为 </div>
</div>
<div class="line"></div>
<div class="tool-item">
<Icon icon="ep:position" :size="24" />
<div class="name"> 选择 </div>
</div>
<div class="tool-item">
<Icon icon="ep:rank" :size="24" />
<div class="name"> 移动 </div>
</div>
<div class="tool-item">
<Icon icon="ep:folder-add" :size="24" />
<div class="name"> 旋转 </div>
</div>
<div class="tool-item">
<Icon icon="ep:document" :size="24" />
<div class="name"> 复制 </div>
</div>
<div class="tool-item">
<Icon icon="ep:copy-document" :size="24" />
<div class="name"> 粘贴 </div>
</div>
<div class="tool-item">
<Icon icon="ep:delete" :size="24" />
<div class="name"> 删除 </div>
</div>
<div class="line"></div>
<div class="tool-item">
<Icon icon="ep:briefcase" :size="24" />
<div class="name"> 工具 </div>
</div>
<div class="tool-item">
<Icon icon="ep:folder-add" :size="24" />
<div class="name"> 线库 </div>
</div>
<div class="tool-item">
<Icon icon="ep:folder-add" :size="24" />
<div class="name"> 区域 </div>
</div>
<div class="tool-item">
<Icon icon="ep:folder-add" :size="24" />
<div class="name"> 文字 </div>
</div>
<div class="tool-item">
<Icon icon="ep:folder-add" :size="24" />
<div class="name"> 设备 </div>
</div>
<div class="tool-item">
<Icon icon="ep:folder-add" :size="24" />
<div class="name"> 车辆 </div>
</div>
<div class="tool-item">
<Icon icon="ep:folder-add" :size="24" />
<div class="name"> 测距 </div>
</div>
<div class="tool-item">
<Icon icon="ep:folder-add" :size="24" />
<div class="name"> 图层 </div>
</div>
<div class="tool-item">
<Icon icon="ep:folder-add" :size="24" />
<div class="name"> 标记 </div>
</div>
<div class="tool-item">
<Icon icon="ep:folder-add" :size="24" />
<div class="name"> 网格 </div>
</div>
<div class="line"></div>
<div class="tool-item">
<Icon icon="ep:folder-add" :size="24" />
<div class="name"> 放大 </div>
</div>
<div class="tool-item">
<Icon icon="ep:folder-add" :size="24" />
<div class="name"> 缩小 </div>
</div>
<div class="tool-item" @click="backPreviousStep">
<Icon icon="ep:folder-add" :size="24" />
<div class="name"> 撤回 </div>
</div>
<div class="tool-item" @click="backNextStep">
<Icon icon="ep:folder-add" :size="24" />
<div class="name"> 重做 </div>
</div>
</div>
<!-- <el-button type="primary" @click="drawNodes" :disabled="formLoading"> 绘制节点 </el-button> -->
</ContentWrap>
<div class="map-box" ref="imgWrap" @mousewheel.prevent="rollImg" style="overflow: hidden">
<div class="map-box-inner" ref="image" @mousedown.prevent="moveImg">
@ -312,4 +402,33 @@ onMounted(() => {
width: 100%;
height: 100%;
}
.tool-list {
display: flex;
align-items: center;
text-align: center;
.tool-item {
width: 50px;
}
.name {
font-family:
PingFangSC,
PingFang SC;
font-weight: 400;
font-size: 14px;
color: #0d162a;
line-height: 20px;
text-align: center;
font-style: normal;
}
.line {
margin: 0 14px;
width: 1px;
height: 47px;
border: 1px solid #cccccc;
}
}
</style>

View File

@ -1,8 +1,8 @@
<template>
<ContentWrap>
<el-button type="success" @click="createTask">新建任务</el-button>
<el-button type="danger" @click="emergencyStop">一键急停</el-button>
<el-button type="primary" @click="editMap">地图编辑</el-button>
<el-button type="danger" @click="emergencyStop">一键急停</el-button>
</ContentWrap>
<div class="main-content">

View File

@ -73,7 +73,12 @@
prop="doMoveAll"
label-width="146"
>
<el-switch v-model="formData.doMoveAll" :active-value="1" :inactive-value="0" />
<el-switch
v-model="formData.doMoveAll"
:active-value="1"
:inactive-value="0"
@change="doMoveAllChange"
/>
</el-form-item>
</el-col>
</el-row>
@ -153,7 +158,7 @@
:rules="{ required: true, message: '任务类型不能为空', trigger: 'change' }"
>
<el-select
:disabled="formData.doCycle == 1 && index == 0"
:disabled="formData.doCycle == 1 || formData.doMoveAll == 1"
v-model="detailItem.taskType"
placeholder="请选择"
@change="taskTypeChange(detailItem, index)"
@ -968,6 +973,15 @@ const taskTypeChange = (item, index) => {
}
}
//
const doMoveAllChange = (e) => {
if (e === 1) {
formData.value.taskDetailList.forEach((item) => {
item.taskType = 1
})
}
}
//
const montageNumberChange = (currentValue: number, oldValue: number) => {
if (currentValue > oldValue) {
@ -1007,8 +1021,11 @@ const doCycleChange = (e) => {
formData.value.cycleNumber = 0
} else {
formData.value.cycleNumber = 1
formData.value.montageNumber = 1
formData.value.taskDetailList = formData.value.taskDetailList.slice(0, 1)
formData.value.taskDetailList[0].taskType = 1
formData.value.taskDetailList.forEach((item) => {
item.taskType = 1
})
}
}