Browse Source

部分样式修改

develop
fuguobin 1 year ago
parent
commit
59261ef4f1
  1. 8
      src/styles/index.scss
  2. 2
      src/types/auto-imports.d.ts
  3. 7
      src/views/monitoring/components/header.vue
  4. 61
      src/views/monitoring/components/menu.vue
  5. 76
      src/views/monitoring/devicemanage/index.scss
  6. 75
      src/views/monitoring/screen/components/main.vue
  7. 19
      src/views/monitoring/screen/components/showTree.vue
  8. 63
      src/views/monitoring/screen/index.scss
  9. 4
      vite.config.ts

8
src/styles/index.scss

@ -165,3 +165,11 @@
.el-overlay{ .el-overlay{
z-index: 99999 !important; z-index: 99999 !important;
} }
.el-notification{
border: none !important;
background-color: #0f2856 !important;
.el-notification__content{
color: #eee !important;
}
}

2
src/types/auto-imports.d.ts

@ -5,6 +5,7 @@ declare global {
const ElForm: typeof import('element-plus/es')['ElForm'] const ElForm: typeof import('element-plus/es')['ElForm']
const ElMessage: typeof import('element-plus/es')['ElMessage'] const ElMessage: typeof import('element-plus/es')['ElMessage']
const ElMessageBox: typeof import('element-plus/es')['ElMessageBox'] const ElMessageBox: typeof import('element-plus/es')['ElMessageBox']
const ElNotification: typeof import('element-plus/es')['ElNotification']
const NEllipsis: typeof import('naive-ui')['NEllipsis'] const NEllipsis: typeof import('naive-ui')['NEllipsis']
const asyncComputed: typeof import('@vueuse/core')['asyncComputed'] const asyncComputed: typeof import('@vueuse/core')['asyncComputed']
const autoResetRef: typeof import('@vueuse/core')['autoResetRef'] const autoResetRef: typeof import('@vueuse/core')['autoResetRef']
@ -275,6 +276,7 @@ declare module 'vue' {
readonly ElForm: UnwrapRef<typeof import('element-plus/es')['ElForm']> readonly ElForm: UnwrapRef<typeof import('element-plus/es')['ElForm']>
readonly ElMessage: UnwrapRef<typeof import('element-plus/es')['ElMessage']> readonly ElMessage: UnwrapRef<typeof import('element-plus/es')['ElMessage']>
readonly ElMessageBox: UnwrapRef<typeof import('element-plus/es')['ElMessageBox']> readonly ElMessageBox: UnwrapRef<typeof import('element-plus/es')['ElMessageBox']>
readonly ElNotification: UnwrapRef<typeof import('element-plus/es')['ElNotification']>
readonly NEllipsis: UnwrapRef<typeof import('naive-ui')['NEllipsis']> readonly NEllipsis: UnwrapRef<typeof import('naive-ui')['NEllipsis']>
readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']> readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']>
readonly autoResetRef: UnwrapRef<typeof import('@vueuse/core')['autoResetRef']> readonly autoResetRef: UnwrapRef<typeof import('@vueuse/core')['autoResetRef']>

7
src/views/monitoring/components/header.vue

@ -187,7 +187,14 @@ function returnBack() {
} }
function waringClick() { function waringClick() {
// //
if (waringData.value.length === 0) {
ElNotification({
message: '暂没有报警信息!',
type: 'info',
})
} else {
waringDrawer.value = true waringDrawer.value = true
}
} }
// function getWeatherData() { // function getWeatherData() {

61
src/views/monitoring/components/menu.vue

@ -1,7 +1,9 @@
<template> <template>
<n-menu ref="menuInstRef" class="menu" :indent="0" :options="menuOptions" v-model:value="selectedKey" key-field="deptId" <div class="menuCantent">
label-field="deptName" :default-expand-all="false" :watch-props="['defaultExpandedKeys']" <n-menu ref="menuInstRef" class="menu" :indent="0" :options="menuOptions" v-model:value="selectedKey"
key-field="deptId" label-field="deptName" :default-expand-all="false" :watch-props="['defaultExpandedKeys']"
:render-label="renderMenuLabel" @update:value="menuUpdateValue" /> :render-label="renderMenuLabel" @update:value="menuUpdateValue" />
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
@ -106,7 +108,11 @@ function menuUpdateValue(key: string, item: MenuOption) {
--n-item-text-color-child-active: #fff; --n-item-text-color-child-active: #fff;
} }
.menu { .menuCantent {
height: -webkit-fill-available;
overflow: auto;
.menu {
text-align: center; text-align: center;
:deep(.n-submenu) { :deep(.n-submenu) {
@ -120,7 +126,8 @@ function menuUpdateValue(key: string, item: MenuOption) {
font-family: 'AlibabaPuHuiTiBold'; font-family: 'AlibabaPuHuiTiBold';
padding: 0 15px; padding: 0 15px;
} }
.n-menu-item-content__arrow{
.n-menu-item-content__arrow {
color: #B1E3FF; color: #B1E3FF;
} }
} }
@ -129,7 +136,8 @@ function menuUpdateValue(key: string, item: MenuOption) {
.n-menu-item-content-header { .n-menu-item-content-header {
color: #B1E3FF; color: #B1E3FF;
} }
.n-menu-item-content__arrow{
.n-menu-item-content__arrow {
color: #B1E3FF; color: #B1E3FF;
} }
} }
@ -208,5 +216,46 @@ function menuUpdateValue(key: string, item: MenuOption) {
right: 10px; right: 10px;
} }
} }
}
}
/*滚动条整体部分*/
.menuCantent::-webkit-scrollbar,
.tableGrid ::-webkit-scrollbar {
width: 8px;
height: 8px;
}
/*滚动条的轨道*/
.menuCantent::-webkit-scrollbar-track,
.tableGrid ::-webkit-scrollbar-track {
background-color: transparent;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
} }
</style>
/*滚动条里面的小方块,能向上向下移动*/
.menuCantent::-webkit-scrollbar-thumb,
.tableGrid ::-webkit-scrollbar-thumb {
background-color: rgb(147, 147, 153, 0.5);
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
}
.menuCantent::-webkit-scrollbar-thumb:hover,
.tableGrid ::-webkit-scrollbar-thumb:hover {
background-color: #a8a8a8;
}
.menuCantent::-webkit-scrollbar-thumb:active,
.tableGrid :-webkit-scrollbar-thumb:active {
background-color: #787878;
}
/*边角,即两个滚动条的交汇处*/
.menuCantent::-webkit-scrollbar-corner,
.tableGrid ::-webkit-scrollbar-corner {
background-color: transparent;
}</style>

76
src/views/monitoring/devicemanage/index.scss

@ -5,8 +5,8 @@
background: url(@/assets/images/screen.png); background: url(@/assets/images/screen.png);
// background-color: var(--tableBg); // background-color: var(--tableBg);
background-size: 100% 100%; background-size: 100% 100%;
background-color: rgba(0, 0, 0, 0.3); // background-color: rgba(0, 0, 0, 0.3);
background-blend-mode: multiply; // background-blend-mode: multiply;
padding: 0 25px; padding: 0 25px;
overflow: hidden; overflow: hidden;
@ -15,13 +15,16 @@
.sidebar { .sidebar {
width: 12%; width: 12%;
height: calc(100vh - 5.7rem - 60px); height: calc(100vh - 95px - 30px); //屏幕高度-头部header高度-底部高度
flex-shrink: 0; flex-shrink: 0;
border: 2px solid #1e60a6; border: 1px solid #0D55B0;
padding: 10px; padding: 10px 0;
box-shadow: inset 0px 0px 10px 0px rgb(36, 90, 12); // box-shadow: inset 0px 0px 10px 0px rgb(36, 90, 12);
margin-right: 1%; margin-right: 1vw;
overflow: scroll; position: relative;
overflow: hidden;
transition: width 0.28s;
background-color: rgba(2, 8, 46, 0.8);
// .menu { // .menu {
// text-align: center; // text-align: center;
@ -99,10 +102,21 @@
// } // }
} }
.sidebar::after {
content: '';
position: absolute;
bottom: 0;
width: 100%;
height: 18rem;
background: url(@/assets/images/menu_bg.png) no-repeat;
background-size: 100% 100%;
}
.main { .main {
width: 87%; width: 87%;
border: 2px solid #1e60a6; border: 2px solid #1e60a6;
box-shadow: inset 0px 0px 10px 0px rgb(36, 90, 124); box-shadow: inset 0px 0px 10px 0px rgb(36, 90, 124);
background-color: rgba(2, 8, 46, 0.8);
:deep(.devicePrt) { :deep(.devicePrt) {
.deviceImg { .deviceImg {
@ -423,7 +437,7 @@
.item { .item {
width: 49%; width: 49%;
height: calc(100vh - 150px - 52rem); height: calc(100vh - 150px - 53rem);
padding: 15px 0; padding: 15px 0;
background: -webkit-linear-gradient(top, #052266 0%, #011341 100%); background: -webkit-linear-gradient(top, #052266 0%, #011341 100%);
overflow: auto; overflow: auto;
@ -465,8 +479,9 @@
color: #41a5d7; color: #41a5d7;
} }
} }
.content.pump{
span{ .content.pump {
span {
flex: auto; flex: auto;
} }
} }
@ -483,12 +498,13 @@
.colItem:not(:first-child) { .colItem:not(:first-child) {
border-top: none border-top: none
} }
.colItem:not(:first-child)::before{
.colItem:not(:first-child)::before {
display: block; display: block;
content: ''; content: '';
width: 100%; width: 100%;
height: 1px; height: 1px;
background: linear-gradient(90deg, rgba(31,225,255,0) 0%, rgba(189,220,255,0.94) 50%, rgba(31,225,255,0) 97%); background: linear-gradient(90deg, rgba(31, 225, 255, 0) 0%, rgba(189, 220, 255, 0.94) 50%, rgba(31, 225, 255, 0) 97%);
} }
} }
} }
@ -620,14 +636,12 @@
} }
/*滚动条整体部分*/ /*滚动条整体部分*/
.sidebar::-webkit-scrollbar,
.tableGrid ::-webkit-scrollbar { .tableGrid ::-webkit-scrollbar {
width: 8px; width: 8px;
height: 8px; height: 8px;
} }
/*滚动条的轨道*/ /*滚动条的轨道*/
.sidebar::-webkit-scrollbar-track,
.tableGrid ::-webkit-scrollbar-track { .tableGrid ::-webkit-scrollbar-track {
background-color: transparent; background-color: transparent;
-webkit-border-radius: 8px; -webkit-border-radius: 8px;
@ -636,7 +650,6 @@
} }
/*滚动条里面的小方块,能向上向下移动*/ /*滚动条里面的小方块,能向上向下移动*/
.sidebar::-webkit-scrollbar-thumb,
.tableGrid ::-webkit-scrollbar-thumb { .tableGrid ::-webkit-scrollbar-thumb {
background-color: rgb(147, 147, 153, 0.5); background-color: rgb(147, 147, 153, 0.5);
-webkit-border-radius: 8px; -webkit-border-radius: 8px;
@ -644,20 +657,45 @@
border-radius: 8px; border-radius: 8px;
} }
.sidebar::-webkit-scrollbar-thumb:hover,
.tableGrid ::-webkit-scrollbar-thumb:hover { .tableGrid ::-webkit-scrollbar-thumb:hover {
background-color: #a8a8a8; background-color: #a8a8a8;
} }
.sidebar::-webkit-scrollbar-thumb:active,
.tableGrid :-webkit-scrollbar-thumb:active { .tableGrid :-webkit-scrollbar-thumb:active {
background-color: #787878; background-color: #787878;
} }
/*边角,即两个滚动条的交汇处*/ /*边角,即两个滚动条的交汇处*/
.sidebar::-webkit-scrollbar-corner,
.tableGrid ::-webkit-scrollbar-corner { .tableGrid ::-webkit-scrollbar-corner {
background-color: transparent; background-color: transparent;
} }
} }
} }
.dark {
.devicemanage {
background-color: rgba(29, 30, 31, 0.8);
background-blend-mode: multiply;
.layout {
.sidebar {
background-color: rgba(29, 30, 31, 0.8);
}
.main {
background-color: rgba(29, 30, 31, 0.8);
.devicePrt {
:deep(.devicInfo) {
.infoPanel {
.item {
background: -webkit-linear-gradient(top, rgba(29, 30, 31, 0.8) 0%, rgba(28, 32, 37, 0.8) 100%);
}
}
}
}
}
}
}
}

75
src/views/monitoring/screen/components/main.vue

@ -13,10 +13,10 @@
> --> > -->
<div class="mainTable" :style="{ height: `${sidebarHeight}px` }"> <div class="mainTable" :style="{ height: `${sidebarHeight}px` }">
<n-spin :show="loadingShow"> <n-spin :show="loadingShow">
<vxe-grid ref="tableRef" class="tableGrid" align="center" auto-resize :height="sidebarHeight - 4" <vxe-grid ref="tableRef" class="tableGrid" align="center" auto-resize keep-source :height="sidebarHeight - 4"
header-row-class-name="headerRowClass" header-cell-class-name="headerCellClass" row-class-name="tableRowClass" header-row-class-name="headerRowClass" header-cell-class-name="headerCellClass" row-class-name="tableRowClass"
cell-class-name="tableCellClass" :sort-config="{ multiple: true, trigger: 'cell' }" stripe border="outer" cell-class-name="tableCellClass" :sort-config="{ multiple: true, trigger: 'cell' }" :stripe="true" :border="false"
:column-config="{ resizable: true, useKey: true }" :row-config="{ useKey: true }" :columns="tableColumn" :column-config="{ resizable: true, useKey: true }" :row-config="{ useKey: true }" :span-method="mergeRowMethod" :columns="tableColumn"
:data="tableData" @cell-dblclick="cellDBLClickEvent"> :data="tableData" @cell-dblclick="cellDBLClickEvent">
<template #deviceuuid_default="{ row }"> <template #deviceuuid_default="{ row }">
<div class="title"> <div class="title">
@ -83,7 +83,10 @@ const menuKey = ref(0);
const tableColumn = ref([]); const tableColumn = ref([]);
const tableData = ref<TableVo[]>([]); const tableData = ref<TableVo[]>([]);
const tableRef = ref<VxeGridInstance<TableVo>>(); const tableRef = ref<VxeGridInstance<TableVo>>();
const fields = ref(['deviceuuid']) // const cellRow = ref({})
const cellColumn = ref()
const cellField = ref();
// const fields = ref(['deviceuuid']) //
// const waringArrow = ref([]) // const waringArrow = ref([])
interface FormDataVO { interface FormDataVO {
@ -187,6 +190,7 @@ mitt.on('treeData', (res: any) => {
const params = res; const params = res;
editConfig(params).then((res: any) => { editConfig(params).then((res: any) => {
if (res.code === 200) { if (res.code === 200) {
mitt.emit('treeClose', true);
} }
}); });
// tableColumn.value=res // tableColumn.value=res
@ -252,7 +256,7 @@ function tableHeader() {
field: 'id', field: 'id',
type: 'html', type: 'html',
formatter: formatRole, formatter: formatRole,
visible:false visible: false
}, },
]; ];
console.log(tableCessText) console.log(tableCessText)
@ -315,14 +319,17 @@ function tableDatas() {
const cellDBLClickEvent: VxeTableEvents.CellDblclick<TableVo> = ({ row, column }) => { const cellDBLClickEvent: VxeTableEvents.CellDblclick<TableVo> = ({ row, column }) => {
// //
console.log(row, column); console.log("cellData--", row, column);
const cellFiled = row[column.field]; const cellField = row[column.field];
const data = row.data; const data = row.data;
if (cellFiled.canBeControl === '1') { cellRow.value = row
cellColumn.value = column
cellField.value = cellField
if (cellField.canBeControl === '1') {
modalTitle.value = column.title; modalTitle.value = column.title;
formData.value.url = data.url; formData.value.url = data.url;
formData.value.deviceName = cellFiled.deviceName; formData.value.deviceName = cellField.deviceName;
formData.value.value = cellFiled.val; formData.value.value = cellField.val;
editModal.value = true; editModal.value = true;
} }
console.log(row[column.field]); console.log(row[column.field]);
@ -332,33 +339,35 @@ const formatRole: VxeColumnPropTypes.Formatter<HeaderVo> = ({ cellValue }) => {
//object //object
// const iconFont=cellValue.changeProp===-1?'<i class="iconfont icon-decline" />':(cellValue.changeProp===1?'<i class="iconfont icon-rise" />':'<i/>') // const iconFont=cellValue.changeProp===-1?'<i class="iconfont icon-decline" />':(cellValue.changeProp===1?'<i class="iconfont icon-rise" />':'<i/>')
// const cellData = `<span class="cellClass ${cellValue.alertProp===1?'warning':''}">${cellValue.val}</span>${iconFont}`; // const cellData = `<span class="cellClass ${cellValue.alertProp===1?'warning':''}">${cellValue.val}</span>${iconFont}`;
const cellData = `<span class="cellClass ${cellValue.alertProp === 1 ? 'warning' : ''}">${cellValue.val}</span><i class="iconfont ${cellValue.changeProp === -1 ? 'icon-decline' : (cellValue.changeProp === 1 ? 'icon-rise' : '')}" ></i>${cellValue.canBeControl === '1' ? '<i class="iconfont icon-edit-icon"></i>' : ''}`; const cellData = `<span class="cellClass ${cellValue.alertProp === 1 ? 'warning' : (cellValue.canBeControl === '1' ? 'cellEdit' : '')}">${cellValue.val}</span><i class="iconfont ${cellValue.changeProp === -1 ? 'icon-decline' : (cellValue.changeProp === 1 ? 'icon-rise' : '')}" ></i>${cellValue.canBeControl === '1' ? '<i class="iconfont icon-edit-icon"></i>' : ''}`;
return cellData; return cellData;
}; };
// //
// const mergeRowMethod: VxeTablePropTypes.SpanMethod = ({ row, _rowIndex, column, visibleData }) => { const mergeRowMethod: VxeTablePropTypes.SpanMethod<TableVo> = ({ row, _rowIndex, column, visibleData }) => {
// const cellValue = row[column.field] const fields = ['title']
// if (cellValue && fields.value.includes(column.field)) { const cellValue = row[column.field]
// const prevRow = visibleData[_rowIndex - 1] if (cellValue && fields.includes(column.field)) {
// let nextRow = visibleData[_rowIndex + 1] const prevRow = visibleData[_rowIndex - 1]
// if (prevRow && prevRow[column.field] === cellValue) { let nextRow = visibleData[_rowIndex + 1]
// return { rowspan: 0, colspan: 0 } if (prevRow && prevRow[column.field] === cellValue) {
// } else { return { rowspan: 0, colspan: 0 }
// let countRowspan = 1 } else {
// while (nextRow && nextRow[column.field] === cellValue) { let countRowspan = 1
// nextRow = visibleData[++countRowspan + _rowIndex] while (nextRow && nextRow[column.field] === cellValue) {
// } nextRow = visibleData[++countRowspan + _rowIndex]
// if (countRowspan > 1) { }
// return { rowspan: countRowspan, colspan: 1 } if (countRowspan > 1) {
// } return { rowspan: countRowspan, colspan: 1 }
// } }
// } }
// } }
}
const submitEvent: VxeFormEvents.Submit = () => { const submitEvent: VxeFormEvents.Submit = () => {
//websocket //websocket
formLoading.value = true; formLoading.value = true;
const $table = tableRef.value;
const submitData = { const submitData = {
code: 'W01', code: 'W01',
data: { data: {
@ -371,6 +380,14 @@ const submitEvent: VxeFormEvents.Submit = () => {
socket.send(submitData); socket.send(submitData);
formLoading.value = false; formLoading.value = false;
editModal.value = false; editModal.value = false;
if ($table) {
const row = cellRow.value
const field = cellColumn.value.field;
row[field].val = formData.value.value
$table.reloadRow(row, null, field)
}
// VXETable.modal.message({ content: '', status: 'success' }); // VXETable.modal.message({ content: '', status: 'success' });
}; };

19
src/views/monitoring/screen/components/showTree.vue

@ -9,19 +9,19 @@
</span> </span>
<div class="weight" v-if="!data.children"> <div class="weight" v-if="!data.children">
<span>宽度(px):</span> <span>宽度(px):</span>
<el-input v-model="data.width" size="small" placeholder="请输入宽度" /> <el-input v-model="data.width" size="small" :disabled="data.disabled" placeholder="请输入宽度" />
</div> </div>
</template> </template>
</el-tree> </el-tree>
<div class="treeBtn"> <div class="treeBtn">
<el-button @click="cancelClick">取消</el-button> <el-button @click="cancelClick">取消</el-button>
<el-button type="primary" @click="confirmClick">确认</el-button> <el-button type="primary" :loading="treeLoading" @click="confirmClick">{{ treeLoading ? '确认' : '确认' }}</el-button>
</div> </div>
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { getCurrentInstance,ComponentInternalInstance } from 'vue'; import { getCurrentInstance, ComponentInternalInstance } from 'vue';
import mitt from '@/plugins/bus'; import mitt from '@/plugins/bus';
const { proxy } = getCurrentInstance() as ComponentInternalInstance const { proxy } = getCurrentInstance() as ComponentInternalInstance
const defaultCheckedKeys = ref([]); // const defaultCheckedKeys = ref([]); //
@ -39,6 +39,7 @@ interface TreeVo {
controlValue?: number; controlValue?: number;
children?: TreeVo[]; children?: TreeVo[];
} }
const treeLoading = ref(false)
const treeData = ref<TreeVo[]>(); const treeData = ref<TreeVo[]>();
const emit = defineEmits(['cancelClick', 'confirmClick']); const emit = defineEmits(['cancelClick', 'confirmClick']);
@ -51,7 +52,7 @@ const props: any = defineProps({
onMounted(() => { onMounted(() => {
treeData.value = props.headerData; treeData.value = props.headerData;
const checkData:any = []; const checkData: any = [];
props.headerData.map((item: TreeVo) => { props.headerData.map((item: TreeVo) => {
if (item.visible) { if (item.visible) {
checkData.push(item.id); checkData.push(item.id);
@ -73,6 +74,12 @@ onMounted(() => {
// console.log(res) // console.log(res)
// }); // });
mitt.on('treeClose', (res: any) => {
//
emit('cancelClick', '');
treeLoading.value = false
});
const defaultProps = { const defaultProps = {
children: 'children', children: 'children',
label: 'title', label: 'title',
@ -255,7 +262,7 @@ const defaultProps = {
// }, // },
// ]; // ];
function allowDrop(draggingNode:any, dropNode:any, type:any) { function allowDrop(draggingNode: any, dropNode: any, type: any) {
// //
if (type !== 'inner') { if (type !== 'inner') {
let control = draggingNode.level === dropNode.level ? true : false; let control = draggingNode.level === dropNode.level ? true : false;
@ -283,7 +290,7 @@ function cancelClick() {
} }
function confirmClick() { function confirmClick() {
// //
emit('cancelClick', ''); treeLoading.value = true
mitt.emit('treeData', treeData.value); mitt.emit('treeData', treeData.value);
} }
</script> </script>

63
src/views/monitoring/screen/index.scss

@ -7,7 +7,7 @@
background: url(@/assets/images/screen.png) no-repeat; background: url(@/assets/images/screen.png) no-repeat;
// background-color: var(--tableBg); // background-color: var(--tableBg);
background-size: 100% 100%; background-size: 100% 100%;
// background-color: rgba(0, 0, 0, 0.5); // background-color: rgba(29,30,31,0.8);
// background-blend-mode: multiply; // background-blend-mode: multiply;
padding: 0 25px; padding: 0 25px;
overflow: hidden; overflow: hidden;
@ -318,7 +318,8 @@
--vxe-table-header-background-color: none; --vxe-table-header-background-color: none;
--vxe-table-body-background-color: none; --vxe-table-body-background-color: none;
--vxe-table-footer-background-color: none; --vxe-table-footer-background-color: none;
--vxe-table-border-color: none; --vxe-table-border-color: rgba(12, 80, 166, 0.3);
// --vxe-table-border-color: none;
--vxe-font-color: #5beff9; --vxe-font-color: #5beff9;
--vxe-table-header-font-color: #ffffffb3; --vxe-table-header-font-color: #ffffffb3;
border: 1px solid #0D55B0; border: 1px solid #0D55B0;
@ -336,6 +337,10 @@
color: #eee; color: #eee;
border: 1px solid rgba(12, 80, 166, 1) !important; border: 1px solid rgba(12, 80, 166, 1) !important;
border-left: none !important; border-left: none !important;
.vxe-resizable.is--line:before {
content: none
}
} }
// .headerCellClass:nth-child(1){ // .headerCellClass:nth-child(1){
@ -356,11 +361,12 @@
font-family: 'AlibabaPuHuiTiRegular'; font-family: 'AlibabaPuHuiTiRegular';
color: #B1E3FF; color: #B1E3FF;
.title{ .title {
display: flex; display: flex;
align-items: center; align-items: center;
text-align: left; text-align: left;
.svg-icon{
.svg-icon {
flex-shrink: 0; flex-shrink: 0;
} }
} }
@ -377,6 +383,10 @@
color: red; color: red;
} }
.cellEdit {
cursor: pointer;
}
.iconfont { .iconfont {
font-size: 18px; font-size: 18px;
} }
@ -392,6 +402,7 @@
.iconfont.icon-edit-icon { .iconfont.icon-edit-icon {
font-size: 16px; font-size: 16px;
margin-left: 5px; margin-left: 5px;
cursor: pointer;
} }
} }
} }
@ -537,14 +548,12 @@
} }
/*滚动条整体部分*/ /*滚动条整体部分*/
.sidebar::-webkit-scrollbar,
.tableGrid ::-webkit-scrollbar { .tableGrid ::-webkit-scrollbar {
width: 8px; width: 8px;
height: 8px; height: 8px;
} }
/*滚动条的轨道*/ /*滚动条的轨道*/
.sidebar::-webkit-scrollbar-track,
.tableGrid ::-webkit-scrollbar-track { .tableGrid ::-webkit-scrollbar-track {
background-color: transparent; background-color: transparent;
-webkit-border-radius: 8px; -webkit-border-radius: 8px;
@ -553,7 +562,6 @@
} }
/*滚动条里面的小方块,能向上向下移动*/ /*滚动条里面的小方块,能向上向下移动*/
.sidebar::-webkit-scrollbar-thumb,
.tableGrid ::-webkit-scrollbar-thumb { .tableGrid ::-webkit-scrollbar-thumb {
background-color: rgb(147, 147, 153, 0.5); background-color: rgb(147, 147, 153, 0.5);
-webkit-border-radius: 8px; -webkit-border-radius: 8px;
@ -561,18 +569,15 @@
border-radius: 8px; border-radius: 8px;
} }
.sidebar::-webkit-scrollbar-thumb:hover,
.tableGrid ::-webkit-scrollbar-thumb:hover { .tableGrid ::-webkit-scrollbar-thumb:hover {
background-color: #a8a8a8; background-color: #a8a8a8;
} }
.sidebar::-webkit-scrollbar-thumb:active,
.tableGrid :-webkit-scrollbar-thumb:active { .tableGrid :-webkit-scrollbar-thumb:active {
background-color: #787878; background-color: #787878;
} }
/*边角,即两个滚动条的交汇处*/ /*边角,即两个滚动条的交汇处*/
.sidebar::-webkit-scrollbar-corner,
.tableGrid ::-webkit-scrollbar-corner { .tableGrid ::-webkit-scrollbar-corner {
background-color: transparent; background-color: transparent;
} }
@ -602,3 +607,41 @@
} }
// } // }
.dark {
.screen {
background-color: rgba(29, 30, 31, 0.8);
background-blend-mode: multiply;
.layout {
.sidebar {
background-color: rgba(29, 30, 31, 0.8);
}
.main {
background-color: rgba(29, 30, 31, 0.8);
.mainTable {
.tableGrid {
:deep(.vxe-table) {
.vxe-table--fixed-left-wrapper.scrolling--middle {
background: -webkit-linear-gradient(top, rgba(21, 21, 25, 1) 0%, rgba(21, 21, 25, 1) 100%);
box-shadow: inset 0px 0px 10px rgb(36, 90, 124) !important;
}
}
}
}
}
.infoPanel {
:deep(.swiper) {
.item {
.content {
background-color: rgba(29, 30, 31, 0.8);
}
}
}
}
}
}
}

4
vite.config.ts

@ -45,9 +45,9 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => {
hmr: true,//配置HMR hmr: true,//配置HMR
proxy: { proxy: {
[env.VITE_APP_BASE_API]: { [env.VITE_APP_BASE_API]: {
target: 'http://172.1.2.106:9000/',//本地接口地址 // target: 'http://172.1.2.106:9000/',//本地接口地址
// target: 'http://172.1.2.48:9000/',//本地接口地址 // target: 'http://172.1.2.48:9000/',//本地接口地址
// target: 'http://board.heatiot.cn:8001/prod-api/',//线上接口地址 target: 'http://board.heatiot.cn:8001/prod-api/',//线上接口地址
changeOrigin: true, changeOrigin: true,
rewrite: path => rewrite: path =>
path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '') path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '')

Loading…
Cancel
Save