fix: 资源路径调整
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 795 B After Width: | Height: | Size: 795 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -4,25 +4,25 @@
|
||||
<img src="../image/bg.jpg" />
|
||||
<div class="bulbBox">
|
||||
<div class="wh100 bulbLogo1">
|
||||
<img class="bulbImg" src="../../../../public/bulbLogo/组 22419@2x.png" alt="" />
|
||||
<img class="bulbImg" src="/asset/image/bulbLogo/22419@2x.png" alt="" />
|
||||
</div>
|
||||
<div class="wh100 bulbLogo2">
|
||||
<img class="bulbImg" src="../../../../public/bulbLogo/组 22419.png" alt="" />
|
||||
<img class="bulbImg" src="/asset/image/bulbLogo/22419.png" alt="" />
|
||||
</div>
|
||||
<div class="wh100 bulbLogo3">
|
||||
<img class="bulbImg" src="../../../../public/bulbLogo/组 22394@2x.png" alt="" />
|
||||
<img class="bulbImg" src="/asset/image/bulbLogo/22394@2x.png" alt="" />
|
||||
</div>
|
||||
<div class="wh100 bulbLogo4">
|
||||
<img class="bulbImg" src="../../../../public/bulbLogo/组 22396.png" alt="" />
|
||||
<img class="bulbImg" src="/asset/image/bulbLogo/22396.png" alt="" />
|
||||
</div>
|
||||
<div class="wh100 bulbLogo5">
|
||||
<img class="bulbImg" src="../../../../public/bulbLogo/组 22396@2x.png" alt="" />
|
||||
<img class="bulbImg" src="/asset/image/bulbLogo/22396@2x.png" alt="" />
|
||||
</div>
|
||||
<div class="wh100 bulbLogo6">
|
||||
<img class="bulbImg" src="../../../../public/bulbLogo/组 22400.png" alt="" />
|
||||
<img class="bulbImg" src="/asset/image/bulbLogo/22400.png" alt="" />
|
||||
</div>
|
||||
<div class="wh100 bulbLogo7">
|
||||
<img class="bulbImg" src="../../../../public/bulbLogo/组 22400@2x.png" alt="" />
|
||||
<img class="bulbImg" src="/asset/image/bulbLogo/22400@2x.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -40,8 +40,7 @@
|
||||
placement="right"
|
||||
:drawerStyle="{ background: 'rgba(0, 0, 0, 1)', opacity: 0.8 }"
|
||||
:closable="false"
|
||||
id="Odrawer"
|
||||
>
|
||||
id="Odrawer">
|
||||
<div>
|
||||
<a-tabs v-model:activeKey="activeKey">
|
||||
<a-tab-pane key="1" tab="控制面板">
|
||||
@@ -57,8 +56,7 @@
|
||||
v-for="(button, index) in buttons"
|
||||
:key="index"
|
||||
:class="{ btn: true, selected: button === selectedButton }"
|
||||
@click="selectButton(button)"
|
||||
>
|
||||
@click="selectButton(button)">
|
||||
{{ button.label }}
|
||||
</button>
|
||||
</div>
|
||||
@@ -71,8 +69,7 @@
|
||||
type="checkbox"
|
||||
class="custom-checkbox"
|
||||
v-model="selectAllCheckbox"
|
||||
@change="toggleAllSelection"
|
||||
/>
|
||||
@change="toggleAllSelection" />
|
||||
<span class="both" @click="selectAll">全选</span>
|
||||
<button class="openplan">启用面板</button>
|
||||
</div>
|
||||
@@ -83,8 +80,7 @@
|
||||
v-for="(button2, index) in buttons2"
|
||||
:key="index"
|
||||
:class="{ btn: true, selected: button2.selected }"
|
||||
@click="toggleSelection(button2)"
|
||||
>
|
||||
@click="toggleSelection(button2)">
|
||||
{{ button2.label }}
|
||||
</button>
|
||||
</div>
|
||||
@@ -100,8 +96,7 @@
|
||||
v-for="(button3, index) in controlbutton"
|
||||
:key="index"
|
||||
:class="{ btn: true, selected: button3.label === selectedButton3 }"
|
||||
@click="selectButton3(button3)"
|
||||
>
|
||||
@click="selectButton3(button3)">
|
||||
{{ button3.label }}
|
||||
</button>
|
||||
</div>
|
||||
@@ -118,8 +113,7 @@
|
||||
v-for="(button4, index) in controlscenebuttons"
|
||||
:key="index"
|
||||
:class="{ btn: true, selected: button4.label === selectedButton4 }"
|
||||
@click="selectButton4(button4)"
|
||||
>
|
||||
@click="selectButton4(button4)">
|
||||
{{ button4.label }}
|
||||
</button>
|
||||
</div>
|
||||
@@ -147,7 +141,7 @@
|
||||
<template v-if="column.dataIndex === 'name'">
|
||||
<div class="editable-cell">
|
||||
<span @click="showInfo(text)">
|
||||
{{ text || " " }}
|
||||
{{ text || ' ' }}
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
@@ -176,8 +170,7 @@
|
||||
<tr
|
||||
v-for="(row, index) in dataSource1"
|
||||
:key="index"
|
||||
@click="handleRowClick(row.id, row.name, row.age)"
|
||||
>
|
||||
@click="handleRowClick(row.id, row.name, row.age)">
|
||||
<td>{{ row.key }}</td>
|
||||
<td>{{ row.data }}</td>
|
||||
<td>{{ row.planname }}</td>
|
||||
@@ -199,8 +192,7 @@
|
||||
height: '792px',
|
||||
maxHeight: '792px',
|
||||
boxSizing: 'borderBox',
|
||||
}"
|
||||
>
|
||||
}">
|
||||
<div style="height: 792px">
|
||||
<div>
|
||||
<div class="div-operation"></div>
|
||||
@@ -208,13 +200,8 @@
|
||||
</div>
|
||||
<div class="journal" style="margin-top: 20px">
|
||||
<div class="imgText">
|
||||
<img src="../../../../public/bulbLogo/组 22549.png" alt="" />
|
||||
<span
|
||||
style="
|
||||
font-size: 20px;
|
||||
font-weight: 500;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
"
|
||||
<img src="/asset/image/bulbLogo/22549.png" alt="" />
|
||||
<span style="font-size: 20px; font-weight: 500; color: rgba(255, 255, 255, 1)"
|
||||
>站厅照明 1区</span
|
||||
>
|
||||
</div>
|
||||
@@ -236,24 +223,13 @@
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
>
|
||||
">
|
||||
控制模式
|
||||
</button>
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>手动</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>自动</span
|
||||
>
|
||||
</div>
|
||||
@@ -273,25 +249,14 @@
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
>
|
||||
">
|
||||
亮度
|
||||
</button>
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>100lux</span
|
||||
>
|
||||
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>30lux</span
|
||||
>
|
||||
</div>
|
||||
@@ -311,25 +276,14 @@
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
>
|
||||
">
|
||||
控制场景
|
||||
</button>
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>手动</span
|
||||
>
|
||||
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>自动</span
|
||||
>
|
||||
</div>
|
||||
@@ -349,25 +303,14 @@
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
>
|
||||
">
|
||||
色温
|
||||
</button>
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>4000k</span
|
||||
>
|
||||
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>3800k</span
|
||||
>
|
||||
</div>
|
||||
@@ -375,13 +318,8 @@
|
||||
</div>
|
||||
<div class="journal" style="margin-top: 20px">
|
||||
<div class="imgText">
|
||||
<img src="../../../../public/bulbLogo/组 22549.png" alt="" />
|
||||
<span
|
||||
style="
|
||||
font-size: 20px;
|
||||
font-weight: 500;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
"
|
||||
<img src="/asset/image/bulbLogo/22549.png" alt="" />
|
||||
<span style="font-size: 20px; font-weight: 500; color: rgba(255, 255, 255, 1)"
|
||||
>站厅照明 1区</span
|
||||
>
|
||||
</div>
|
||||
@@ -403,24 +341,13 @@
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
>
|
||||
">
|
||||
控制模式
|
||||
</button>
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>手动</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>自动</span
|
||||
>
|
||||
</div>
|
||||
@@ -440,25 +367,14 @@
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
>
|
||||
">
|
||||
亮度
|
||||
</button>
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>100lux</span
|
||||
>
|
||||
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>30lux</span
|
||||
>
|
||||
</div>
|
||||
@@ -478,25 +394,14 @@
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
>
|
||||
">
|
||||
控制场景
|
||||
</button>
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>手动</span
|
||||
>
|
||||
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>自动</span
|
||||
>
|
||||
</div>
|
||||
@@ -516,25 +421,14 @@
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
>
|
||||
">
|
||||
色温
|
||||
</button>
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>4000k</span
|
||||
>
|
||||
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>3800k</span
|
||||
>
|
||||
</div>
|
||||
@@ -542,13 +436,8 @@
|
||||
</div>
|
||||
<div class="journal" style="margin-top: 20px">
|
||||
<div class="imgText">
|
||||
<img src="../../../../public/bulbLogo/组 22549.png" alt="" />
|
||||
<span
|
||||
style="
|
||||
font-size: 20px;
|
||||
font-weight: 500;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
"
|
||||
<img src="/asset/image/bulbLogo/22549.png" alt="" />
|
||||
<span style="font-size: 20px; font-weight: 500; color: rgba(255, 255, 255, 1)"
|
||||
>站厅照明 1区</span
|
||||
>
|
||||
</div>
|
||||
@@ -570,24 +459,13 @@
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
>
|
||||
">
|
||||
控制模式
|
||||
</button>
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>手动</span
|
||||
>
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>自动</span
|
||||
>
|
||||
</div>
|
||||
@@ -607,25 +485,14 @@
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
>
|
||||
">
|
||||
亮度
|
||||
</button>
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>100lux</span
|
||||
>
|
||||
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>30lux</span
|
||||
>
|
||||
</div>
|
||||
@@ -645,25 +512,14 @@
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
>
|
||||
">
|
||||
控制场景
|
||||
</button>
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>手动</span
|
||||
>
|
||||
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>自动</span
|
||||
>
|
||||
</div>
|
||||
@@ -683,25 +539,14 @@
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
>
|
||||
">
|
||||
色温
|
||||
</button>
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>4000k</span
|
||||
>
|
||||
|
||||
<span
|
||||
style="
|
||||
color: rgba(255, 255, 255, 1);
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
"
|
||||
<span style="color: rgba(255, 255, 255, 1); font-size: 14px; font-weight: 400"
|
||||
>3800k</span
|
||||
>
|
||||
</div>
|
||||
@@ -732,17 +577,17 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from "vue";
|
||||
import { ref } from 'vue';
|
||||
const toggleDrawer = () => {
|
||||
visible.value = !visible.value;
|
||||
};
|
||||
// 照明区域按钮单选
|
||||
const buttons = ref([
|
||||
{ label: "A区", selected: false },
|
||||
{ label: "B区", selected: false },
|
||||
{ label: "C区", selected: false },
|
||||
{ label: "D区", selected: false },
|
||||
{ label: "计划启用", selected: false },
|
||||
{ label: 'A区', selected: false },
|
||||
{ label: 'B区', selected: false },
|
||||
{ label: 'C区', selected: false },
|
||||
{ label: 'D区', selected: false },
|
||||
{ label: '计划启用', selected: false },
|
||||
]);
|
||||
const selectedButton = ref<Button | null>(null);
|
||||
const selectButton = (button: Button) => {
|
||||
@@ -753,10 +598,10 @@ let singleSelection = true; // 默认为单选
|
||||
const selectAllCheckbox = ref(false);
|
||||
const showControlMode = ref(false);
|
||||
const buttons2 = ref([
|
||||
{ label: "1区", selected: false },
|
||||
{ label: "2区", selected: false },
|
||||
{ label: "3区", selected: false },
|
||||
{ label: "4区", selected: false },
|
||||
{ label: '1区', selected: false },
|
||||
{ label: '2区', selected: false },
|
||||
{ label: '3区', selected: false },
|
||||
{ label: '4区', selected: false },
|
||||
]);
|
||||
const selectAll = () => {
|
||||
singleSelection = !singleSelection;
|
||||
@@ -794,113 +639,113 @@ const toggleSelection = (button) => {
|
||||
};
|
||||
|
||||
// 控制模式按钮
|
||||
const selectedButton3 = ref("");
|
||||
const selectedButton3 = ref('');
|
||||
const showControlScene = ref(false);
|
||||
const controlbutton = ref([
|
||||
{ label: "托管", selected: false },
|
||||
{ label: "AI", selected: false },
|
||||
{ label: "手动", selected: false },
|
||||
{ label: '托管', selected: false },
|
||||
{ label: 'AI', selected: false },
|
||||
{ label: '手动', selected: false },
|
||||
]);
|
||||
// 控制场景按钮
|
||||
const selectedButton4 = ref("");
|
||||
const selectedButton4 = ref('');
|
||||
const controlscenebuttons = ref([
|
||||
{ label: "检修", selected: false },
|
||||
{ label: "午休", selected: false },
|
||||
{ label: "疏散", selected: false },
|
||||
{ label: "客流高峰", selected: false },
|
||||
{ label: '检修', selected: false },
|
||||
{ label: '午休', selected: false },
|
||||
{ label: '疏散', selected: false },
|
||||
{ label: '客流高峰', selected: false },
|
||||
]);
|
||||
const selectButton3 = (button3) => {
|
||||
selectedButton3.value = button3.label;
|
||||
showControlScene.value = button3.label === "手动";
|
||||
selectedButton4.value = ""; // 清空选中的控制场景按钮
|
||||
showControlScene.value = button3.label === '手动';
|
||||
selectedButton4.value = ''; // 清空选中的控制场景按钮
|
||||
};
|
||||
const selectButton4 = (button4) => {
|
||||
selectedButton4.value = button4.label;
|
||||
};
|
||||
const columns = [
|
||||
{
|
||||
title: "序号",
|
||||
dataIndex: "key",
|
||||
title: '序号',
|
||||
dataIndex: 'key',
|
||||
},
|
||||
{
|
||||
title: "执行时间",
|
||||
dataIndex: "data",
|
||||
title: '执行时间',
|
||||
dataIndex: 'data',
|
||||
},
|
||||
{
|
||||
title: "计划名称",
|
||||
dataIndex: "planname",
|
||||
title: '计划名称',
|
||||
dataIndex: 'planname',
|
||||
},
|
||||
{
|
||||
title: "状态",
|
||||
dataIndex: "status",
|
||||
title: '状态',
|
||||
dataIndex: 'status',
|
||||
},
|
||||
{
|
||||
title: "状态",
|
||||
dataIndex: "operation",
|
||||
title: '状态',
|
||||
dataIndex: 'operation',
|
||||
},
|
||||
];
|
||||
|
||||
const dataSource = ref([
|
||||
{
|
||||
key: "1",
|
||||
data: "2024-05-01",
|
||||
planname: "劳动节",
|
||||
status: "暂停中",
|
||||
key: '1',
|
||||
data: '2024-05-01',
|
||||
planname: '劳动节',
|
||||
status: '暂停中',
|
||||
},
|
||||
{
|
||||
key: "2",
|
||||
data: "2024-05-01",
|
||||
planname: "国庆节",
|
||||
status: "待执行",
|
||||
key: '2',
|
||||
data: '2024-05-01',
|
||||
planname: '国庆节',
|
||||
status: '待执行',
|
||||
},
|
||||
{
|
||||
key: "3",
|
||||
data: "2024-05-01",
|
||||
planname: "元旦",
|
||||
status: "待执行",
|
||||
key: '3',
|
||||
data: '2024-05-01',
|
||||
planname: '元旦',
|
||||
status: '待执行',
|
||||
},
|
||||
]);
|
||||
const columns1 = [
|
||||
{
|
||||
title: "序号",
|
||||
dataIndex: "key",
|
||||
title: '序号',
|
||||
dataIndex: 'key',
|
||||
},
|
||||
{
|
||||
title: "执行时间",
|
||||
dataIndex: "data",
|
||||
title: '执行时间',
|
||||
dataIndex: 'data',
|
||||
},
|
||||
{
|
||||
title: "操作内容",
|
||||
dataIndex: "planname",
|
||||
title: '操作内容',
|
||||
dataIndex: 'planname',
|
||||
},
|
||||
{
|
||||
title: "操作人",
|
||||
dataIndex: "status",
|
||||
title: '操作人',
|
||||
dataIndex: 'status',
|
||||
},
|
||||
];
|
||||
const dataSource1 = ref([
|
||||
{
|
||||
key: "1",
|
||||
data: "2024-05-01",
|
||||
planname: "计划再开",
|
||||
status: "张三111",
|
||||
key: '1',
|
||||
data: '2024-05-01',
|
||||
planname: '计划再开',
|
||||
status: '张三111',
|
||||
},
|
||||
{
|
||||
key: "2",
|
||||
data: "2024-05-01",
|
||||
planname: "检修模式",
|
||||
status: "李四12",
|
||||
key: '2',
|
||||
data: '2024-05-01',
|
||||
planname: '检修模式',
|
||||
status: '李四12',
|
||||
},
|
||||
{
|
||||
key: "3",
|
||||
data: "2024-05-01",
|
||||
planname: "设备变更",
|
||||
status: "王五33",
|
||||
key: '3',
|
||||
data: '2024-05-01',
|
||||
planname: '设备变更',
|
||||
status: '王五33',
|
||||
},
|
||||
]);
|
||||
// 抽屉默认显示
|
||||
const visible = ref(true);
|
||||
const activeKey = ref("1");
|
||||
const activeKey = ref('1');
|
||||
|
||||
const showDrawer = () => {
|
||||
visible.value = true;
|
||||
@@ -911,7 +756,7 @@ const logModalVisible = ref(false);
|
||||
|
||||
const handleRowClick = (record: any, index: number) => {
|
||||
// 处理行点击事件,例如选中行或者其他操作
|
||||
console.log(record, "=================", index);
|
||||
console.log(record, '=================', index);
|
||||
// 显示模态框
|
||||
logModalVisible.value = true;
|
||||
};
|
||||
@@ -984,11 +829,7 @@ const closeLogModal = () => {
|
||||
width: 110px;
|
||||
height: 23px;
|
||||
opacity: 1;
|
||||
background: linear-gradient(
|
||||
270deg,
|
||||
rgba(86, 221, 253, 0) 0%,
|
||||
rgba(25, 176, 255, 1) 100%
|
||||
);
|
||||
background: linear-gradient(270deg, rgba(86, 221, 253, 0) 0%, rgba(25, 176, 255, 1) 100%);
|
||||
}
|
||||
|
||||
.lightareatab,
|
||||
@@ -1072,11 +913,7 @@ p {
|
||||
}
|
||||
|
||||
.selected {
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
rgba(201, 245, 255, 1) 0%,
|
||||
rgba(138, 215, 255, 1) 100%
|
||||
);
|
||||
background: linear-gradient(180deg, rgba(201, 245, 255, 1) 0%, rgba(138, 215, 255, 1) 100%);
|
||||
color: rgba(0, 61, 90, 1);
|
||||
border: 1px solid rgba(255, 255, 255, 1);
|
||||
}
|
||||
@@ -1475,7 +1312,7 @@ p {
|
||||
}
|
||||
.journal {
|
||||
padding: 3% 10%;
|
||||
background-image: url("../../../../public/bulbLogo/bgsquare.png");
|
||||
background-image: url('/asset/image/bulbLogo/bgsquare.png');
|
||||
background-size: 482px 177px;
|
||||
width: 482px;
|
||||
height: 177px;
|
||||
@@ -1489,7 +1326,7 @@ p {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.bulbLogo1 {
|
||||
background-image: url("../../../../public/bulbLogo/bulbLogo1.png");
|
||||
background-image: url('/asset/image/bulbLogo/bulbLogo1.png');
|
||||
}
|
||||
.imgText {
|
||||
display: flex;
|
||||
|
||||
@@ -12,7 +12,7 @@ const proxy = {
|
||||
changeOrigin: true,
|
||||
},
|
||||
'/carbon-smart': {
|
||||
target: 'http://123.60.103.97:8224',
|
||||
target: 'http://192.168.112.144:8224',
|
||||
changeOrigin: true,
|
||||
rewrite: (path) => path.replace(/^\/carbon-smart/, ''),
|
||||
},
|
||||
|
||||
@@ -10,4 +10,5 @@ export enum enterPrise {
|
||||
freeze = `${BASE_URL}/admin/org/freeze`,
|
||||
getCode = `${BASE_URL}/admin/org/getCode`,
|
||||
queryRootAc = `${BASE_URL}/admin/org/queryRootAc`,
|
||||
permissionTree = `${BASE_URL}/api/dept/permissionTree`,
|
||||
}
|
||||
|
||||
@@ -9,7 +9,13 @@ import { enterPrise } from '/@/api/origanizemanage';
|
||||
type status = 'NORMAL' | 'FREEZE';
|
||||
export const formConfig = [
|
||||
{
|
||||
field: 'projectId',
|
||||
field: 'orgId',
|
||||
label: '企业ID',
|
||||
component: 'NsInput',
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
field: 'orgCode',
|
||||
label: '组织ID',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
@@ -18,29 +24,21 @@ export const formConfig = [
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入组织编号',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
field: 'jituanname',
|
||||
field: 'orgName',
|
||||
label: '企业名称',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
placeholder: '请输入企业名称',
|
||||
placeholder: '请输入',
|
||||
maxLength: 20,
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入企业名称',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
rules: [{ required: true }],
|
||||
},
|
||||
{
|
||||
field: 'jituanname',
|
||||
field: 'cliqueName',
|
||||
label: '集团名称',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
@@ -52,10 +50,11 @@ export const formConfig = [
|
||||
field: 'cityName',
|
||||
label: '省市区',
|
||||
component: 'NsCascader',
|
||||
fieldMap: ['province', 'city', 'county'],
|
||||
componentProps: {
|
||||
placeholder: '请选择',
|
||||
api: enterPrise.getArea,
|
||||
fieldNames: { label: 'regionName', value: 'regionCode' },
|
||||
fieldNames: { label: 'regionName', value: 'regionName' },
|
||||
showSearch: true,
|
||||
},
|
||||
rules: [
|
||||
@@ -104,11 +103,24 @@ export const formConfig = [
|
||||
message: '请输入联系电话',
|
||||
trigger: 'blur',
|
||||
},
|
||||
{
|
||||
pattern: /^1[3-9]\d{9}$/,
|
||||
message: '请输入正确的联系电话',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
export const tableConfig = (visible) => {
|
||||
export const tableConfig = ({
|
||||
visible,
|
||||
formData,
|
||||
opType,
|
||||
getOrgRandomCode,
|
||||
borderVisible,
|
||||
serviceVisible,
|
||||
server: { getTree },
|
||||
}: any) => {
|
||||
return {
|
||||
// title: '企业管理',
|
||||
api: enterPrise.list,
|
||||
@@ -118,6 +130,9 @@ export const tableConfig = (visible) => {
|
||||
name: 'RoleTypeAdd',
|
||||
type: 'primary',
|
||||
handle: () => {
|
||||
formData.value = {};
|
||||
opType.value = 'add';
|
||||
getOrgRandomCode && getOrgRandomCode();
|
||||
visible.value = true;
|
||||
},
|
||||
},
|
||||
@@ -135,15 +150,19 @@ export const tableConfig = (visible) => {
|
||||
},
|
||||
{
|
||||
title: '组织ID',
|
||||
dataIndex: 'projectId',
|
||||
dataIndex: 'orgCode',
|
||||
},
|
||||
{
|
||||
title: '集团名称',
|
||||
dataIndex: 'cliqueName',
|
||||
textNumber: 8,
|
||||
textEllipsis: true,
|
||||
},
|
||||
{
|
||||
title: '组织名称',
|
||||
dataIndex: 'orgName',
|
||||
textNumber: 8,
|
||||
textEllipsis: true,
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
@@ -157,12 +176,16 @@ export const tableConfig = (visible) => {
|
||||
dataIndex: 'area',
|
||||
customRender: ({ record }) => {
|
||||
const { province = '', city = '', county = '' } = record;
|
||||
return `${province}/${city}/${county}`;
|
||||
const result = [province, city];
|
||||
county && result.push(county);
|
||||
return result.join('/');
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '地址',
|
||||
dataIndex: 'address',
|
||||
textNumber: 8,
|
||||
textEllipsis: true,
|
||||
},
|
||||
{
|
||||
title: '联系人',
|
||||
@@ -181,12 +204,11 @@ export const tableConfig = (visible) => {
|
||||
label: '编辑',
|
||||
name: 'RoleTypeEdit',
|
||||
handle: (record: any) => {
|
||||
console.log(record, 'record');
|
||||
const { province, city, county } = record;
|
||||
formData.value = record;
|
||||
opMap.type = 'edit';
|
||||
opMap.fuc = (formData: any) => {
|
||||
Object.assign(mockData.value.filter((item) => item.id === record.id)[0], formData);
|
||||
};
|
||||
formData.value.cityName = [province, city];
|
||||
county && formData.value.cityName.push(county);
|
||||
opType.value = 'edit';
|
||||
visible.value = true;
|
||||
},
|
||||
},
|
||||
@@ -201,6 +223,8 @@ export const tableConfig = (visible) => {
|
||||
label: '服务',
|
||||
handle: (record: any) => {
|
||||
console.log(record, 'record');
|
||||
const { projectId } = record;
|
||||
getTree({ projectId: 'beijingDQ' });
|
||||
serviceVisible.value = true;
|
||||
},
|
||||
},
|
||||
@@ -278,28 +302,19 @@ export const tableConfig = (visible) => {
|
||||
formConfig: {
|
||||
schemas: [
|
||||
{
|
||||
field: 'zuzhibianhao',
|
||||
field: 'orgCode',
|
||||
label: '组织ID',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
maxLength: 20,
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'jituanname',
|
||||
field: 'cliqueName',
|
||||
label: '集团名称',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
maxLength: 20,
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'zuzhiname',
|
||||
field: 'orgName',
|
||||
label: '组织名称',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
maxLength: 20,
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'status',
|
||||
|
||||
@@ -5,54 +5,38 @@
|
||||
<ns-drawer v-bind="addDrawerConfig">
|
||||
<ns-form ref="formRef" :schemas="formSchema" :model="formData" formLayout="vertical" />
|
||||
<template #footer>
|
||||
<a-button style="margin-right: 8px" @click="onClose">取消</a-button>
|
||||
<a-button type="primary" @click="onEdit">确定</a-button>
|
||||
<ns-button style="margin-right: 8px" @click="onClose">取消</ns-button>
|
||||
<ns-button type="primary" @click="operateForm" :disabled="!formDisabled">确定</ns-button>
|
||||
</template>
|
||||
</ns-drawer>
|
||||
<a-drawer
|
||||
<ns-drawer
|
||||
:width="600"
|
||||
:visible="borderVisible"
|
||||
:body-style="{ paddingBottom: '80px' }"
|
||||
:footer-style="{ textAlign: 'right' }"
|
||||
destroyOnClose
|
||||
@close="onClose">
|
||||
<a-button type="primary" @click="borderAdd">新增</a-button>
|
||||
<a-button type="primary" style="margin-left: 10px; margin-bottom: 10px" @click="borderAddSon"
|
||||
>新增子集</a-button
|
||||
<ns-button type="primary" @click="borderAdd">新增</ns-button>
|
||||
<ns-button type="primary" style="margin-left: 10px; margin-bottom: 10px" @click="borderAddSon"
|
||||
>新增子集</ns-button
|
||||
>
|
||||
<a-directory-tree @select="handleSelect" multiple :tree-data="treeData">
|
||||
<template #title="{ title, key }">
|
||||
{{ title }}
|
||||
<a-button type="link" @click="editTree(title, key)">编辑</a-button>
|
||||
<a-button type="link" danger @click="deleteTree(title, key)">删除</a-button>
|
||||
<ns-button type="link" @click="editTree(title, key)">编辑</ns-button>
|
||||
<ns-button type="link" danger @click="deleteTree(title, key)">删除</ns-button>
|
||||
</template>
|
||||
</a-directory-tree>
|
||||
</a-drawer>
|
||||
</ns-drawer>
|
||||
|
||||
<a-drawer
|
||||
:width="600"
|
||||
:visible="serviceVisible"
|
||||
:body-style="{ paddingBottom: '80px' }"
|
||||
:footer-style="{ textAlign: 'right' }"
|
||||
destroyOnClose
|
||||
@close="onClose">
|
||||
<a-input-search
|
||||
<ns-drawer v-bind="serverDrawer">
|
||||
<ns-input-search
|
||||
placeholder="请选择开通模块"
|
||||
v-model:value="searchValue"
|
||||
style="margin-bottom: 8px"
|
||||
@search="onSearch" />
|
||||
<a-tree
|
||||
:tree-data="treeData"
|
||||
v-model:checkedKeys="checkedKeys"
|
||||
checkable
|
||||
@select="ServiceSelect">
|
||||
<template #title="{ title }">
|
||||
{{ title }}
|
||||
</template>
|
||||
</a-tree>
|
||||
<ns-button style="margin: 20px" type="primary" @click="onClose">取消</ns-button>
|
||||
<ns-button type="primary" @click="Sure">确定</ns-button>
|
||||
</a-drawer>
|
||||
<a-tree v-if="treeData?.length" v-model:checkedKeys="checkedKeys" v-bind="serverTree" />
|
||||
</ns-drawer>
|
||||
|
||||
<TreeAdd ref="treeAdd" />
|
||||
</template>
|
||||
@@ -85,17 +69,98 @@
|
||||
const serviceVisible = ref(false);
|
||||
const treeAddVisible = ref(false);
|
||||
const formSchema = formConfig;
|
||||
const opType = ref<string>('add');
|
||||
const calMap = {
|
||||
add: enterPrise.save,
|
||||
edit: enterPrise.edit,
|
||||
};
|
||||
const comApi = computed(() => {
|
||||
return calMap[opType.value as keyof typeof calMap];
|
||||
});
|
||||
const tableConfig = computed(() => {
|
||||
return insertConfig(visible);
|
||||
return insertConfig({
|
||||
visible,
|
||||
formData,
|
||||
opType,
|
||||
getOrgRandomCode,
|
||||
borderVisible,
|
||||
serviceVisible,
|
||||
server: {
|
||||
getTree,
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
const getOrgRandomCode = () => {
|
||||
http.post(enterPrise.getCode).then((res) => {
|
||||
formData.value.projectId = res.data;
|
||||
formData.value.orgCode = res.data;
|
||||
});
|
||||
};
|
||||
getOrgRandomCode();
|
||||
|
||||
const onClose = () => {
|
||||
visible.value = false;
|
||||
borderVisible.value = false;
|
||||
serviceVisible.value = false;
|
||||
};
|
||||
|
||||
// 企业表单drawer
|
||||
const addDrawerConfig = ref({
|
||||
width: '520',
|
||||
visible: visible,
|
||||
footerStyle: { textAlign: 'right' },
|
||||
destroyOnClose: true,
|
||||
onClose: onClose,
|
||||
});
|
||||
|
||||
const formDisabled = computed(() => {
|
||||
return formRef.value?.validateResult;
|
||||
});
|
||||
|
||||
//企业表单数据操作
|
||||
const operateForm = () => {
|
||||
formRef.value?.triggerSubmit().then((res) => {
|
||||
console.log(formData.value, 'formData.value');
|
||||
http.post(comApi.value, res).then(() => {
|
||||
NsMessage.success('操作成功');
|
||||
visible.value = false;
|
||||
mainRef.value?.nsTableRef.reload();
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// 服务操作逻辑区域
|
||||
const serverOK = () => {
|
||||
serviceVisible.value = false;
|
||||
};
|
||||
const ServiceSelect = (selectedKeys: any, info: any) => {
|
||||
console.log(selectedKeys, 'selectedKeys');
|
||||
console.log(info, 'info');
|
||||
};
|
||||
|
||||
const serverTree = ref({
|
||||
checkable: true,
|
||||
onSelect: ServiceSelect,
|
||||
defaultExpandAll: true,
|
||||
treeData: treeData,
|
||||
fieldNames: { children: 'menus', title: 'label', key: 'code' },
|
||||
});
|
||||
|
||||
const getTree = (params) => {
|
||||
http.post(enterPrise.permissionTree, params).then((res) => {
|
||||
treeData.value = res.data.data;
|
||||
});
|
||||
};
|
||||
|
||||
// 开通服务模块drawer
|
||||
const serverDrawer = ref({
|
||||
width: '450',
|
||||
visible: serviceVisible,
|
||||
footerStyle: { textAlign: 'right' },
|
||||
ok: serverOK,
|
||||
cancel: onClose,
|
||||
});
|
||||
|
||||
// drawer form
|
||||
const opMap: any = {
|
||||
type: 'add',
|
||||
@@ -112,25 +177,6 @@
|
||||
console.log(info, 'info');
|
||||
};
|
||||
|
||||
const ServiceSelect = (selectedKeys: any, info: any) => {
|
||||
console.log(selectedKeys, 'selectedKeys');
|
||||
console.log(info, 'info');
|
||||
};
|
||||
|
||||
const onClose = () => {
|
||||
visible.value = false;
|
||||
borderVisible.value = false;
|
||||
serviceVisible.value = false;
|
||||
};
|
||||
|
||||
const addDrawerConfig = ref({
|
||||
width: '520',
|
||||
visible: visible,
|
||||
footerStyle: { textAlign: 'right' },
|
||||
destroyOnClose: true,
|
||||
onClose: onClose,
|
||||
});
|
||||
|
||||
const borderAdd = () => {
|
||||
treeAddVisible.value = true;
|
||||
treeAdd.value?.toggle();
|
||||
@@ -140,18 +186,6 @@
|
||||
treeAddVisible.value = true;
|
||||
};
|
||||
|
||||
const onEdit = () => {
|
||||
formRef.value?.triggerSubmit().then(() => {
|
||||
console.log(formData.value, 'formData.value');
|
||||
opMap.fuc && opMap.fuc(formData.value);
|
||||
visible.value = false;
|
||||
});
|
||||
};
|
||||
|
||||
const Sure = () => {
|
||||
serviceVisible.value = false;
|
||||
};
|
||||
|
||||
const editTree = (title: any, key: any) => {
|
||||
console.log(title, 'title');
|
||||
console.log(key, 'key');
|
||||
|
||||
@@ -74,7 +74,7 @@ export class NSAxios {
|
||||
}
|
||||
return config;
|
||||
}, undefined);
|
||||
const errCodeArr = [13, 1, 3005];
|
||||
|
||||
const errCodeMap = new Map([
|
||||
[13, ''],
|
||||
[1, ''],
|
||||
@@ -91,7 +91,7 @@ export class NSAxios {
|
||||
NsMessage.error({
|
||||
content: msg,
|
||||
key: this.errorMsgKey,
|
||||
onClose: JSON.parse(errCodeMap.get(code)!),
|
||||
onClose: errCodeMap.get(code) && JSON.parse(errCodeMap.get(code)!)(),
|
||||
});
|
||||
return Promise.reject(res);
|
||||
}
|
||||
|
||||