Merge remote-tracking branch 'origin/dev_xd' into dev_xd

dev_xd
lj7788@126.com 2025-06-12 18:42:14 +08:00
commit a1b6d9c173
3 changed files with 294 additions and 65 deletions

View File

@ -3,55 +3,175 @@
<el-row> <el-row>
<el-col :span="8" style="margin-left: 20px; width: calc(33.33% - 20px)"> <el-col :span="8" style="margin-left: 20px; width: calc(33.33% - 20px)">
<div class="head-title-tab"> <div class="head-title-tab">
<div :class="nav == 1 ? 'head-nav active' : 'head-nav'" @click="doNav(1)" v-if="1 == 2"></div> <div
<div :class="nav == 2 ? 'head-nav active' : 'head-nav'" @click="doNav(2)" v-if="1 == 2"></div> :class="nav == 1 ? 'head-nav active' : 'head-nav'"
<div :class="nav == 7 ? 'head-nav active' : 'head-nav'" @click="doNav(7)" v-if="1 == 2"></div> @click="doNav(1)"
v-if="1 == 2"
>
项目概况
</div>
<div
:class="nav == 2 ? 'head-nav active' : 'head-nav'"
@click="doNav(2)"
v-if="1 == 2"
>
项目详情
</div>
<div
:class="nav == 7 ? 'head-nav active' : 'head-nav'"
@click="doNav(7)"
v-if="1 == 2"
>
劳务管理
</div>
<div :class="(nav >= 100 && nav < 200) || nav == 1 ? 'head-nav active' : 'head-nav'" style="position: relative" class="has-submenu"> <div
:class="
(nav >= 100 && nav < 200) || nav == 1
? 'head-nav active'
: 'head-nav'
"
style="position: relative"
class="has-submenu"
>
<div>项目概况</div> <div>项目概况</div>
<div class="header-btn-list"> <div class="header-btn-list">
<div class="header-btn-list-arrow"></div> <div class="header-btn-list-arrow"></div>
<div class="header-btn-list-item" style> <div class="header-btn-list-item" style>
<div class="header-btn-list-padding menu-row1" style="text-align: left"> <div
<button type="button" :class="nav == 101 ? 'active' : ''" class="sub-btn" @click="doNav(101)"></button> class="header-btn-list-padding menu-row1"
<button type="button" :class="nav == 102 ? 'active' : ''" class="sub-btn" @click="doNav(102)"></button> style="text-align: left"
>
<button
type="button"
:class="nav == 101 ? 'active' : ''"
class="sub-btn"
@click="doNav(101)"
>
项目详情
</button>
<button
type="button"
:class="nav == 102 ? 'active' : ''"
class="sub-btn"
@click="doNav(102)"
>
劳务管理
</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div :class="(nav >= 300 && nav < 400) || nav == 3 ? 'head-nav active' : 'head-nav'" style="position: relative" class="has-submenu"> <div
:class="
(nav >= 300 && nav < 400) || nav == 3
? 'head-nav active'
: 'head-nav'
"
style="position: relative"
class="has-submenu"
>
<div>安全管理</div> <div>安全管理</div>
<div class="header-btn-list"> <div class="header-btn-list">
<div class="header-btn-list-arrow"></div> <div class="header-btn-list-arrow"></div>
<div class="header-btn-list-item" style> <div class="header-btn-list-item" style>
<div class="header-btn-list-padding menu-row1" style="text-align: left"> <div
<button type="button" :class="nav == 301 ? 'active' : ''" class="sub-btn" @click="doNav(301)"></button> class="header-btn-list-padding menu-row1"
style="text-align: left"
>
<button
type="button"
:class="nav == 301 ? 'active' : ''"
class="sub-btn"
@click="doNav(301)"
>
安全隐患排查
</button>
<!-- <button type="button" :class="nav == 302 ? 'active' : ''" class="sub-btn" @click="doNav(302)"></button> --> <!-- <button type="button" :class="nav == 302 ? 'active' : ''" class="sub-btn" @click="doNav(302)"></button> -->
<button type="button" :class="nav == 303 ? 'active' : ''" class="sub-btn" @click="doNav(303)"></button> <button
<button type="button" :class="nav == 304 ? 'active' : ''" class="sub-btn" @click="doNav(304)"></button> type="button"
:class="nav == 303 ? 'active' : ''"
class="sub-btn"
@click="doNav(303)"
>
基坑监测
</button>
<button
type="button"
:class="nav == 304 ? 'active' : ''"
class="sub-btn"
@click="doNav(304)"
>
塔机监测
</button>
</div> </div>
<div class="header-btn-list-padding menu-row1" style="text-align: left"> <div
class="header-btn-list-padding menu-row1"
style="text-align: left"
>
<!-- <button type="button" :class="nav == 305 ? 'active' : ''" class="sub-btn" @click="doNav(305)"></button> --> <!-- <button type="button" :class="nav == 305 ? 'active' : ''" class="sub-btn" @click="doNav(305)"></button> -->
<button type="button" :class="nav == 306 ? 'active' : ''" class="sub-btn" @click="doNav(306)"></button> <button
type="button"
:class="nav == 306 ? 'active' : ''"
class="sub-btn"
@click="doNav(306)"
>
配电箱监测
</button>
<!-- <button type="button" :class="nav == 307 ? 'active' : ''" class="sub-btn" @click="doNav(307)"></button> <!-- <button type="button" :class="nav == 307 ? 'active' : ''" class="sub-btn" @click="doNav(307)"></button>
<button type="button" :class="nav == 308 ? 'active' : ''" class="sub-btn" @click="doNav(308)"></button>--> <button type="button" :class="nav == 308 ? 'active' : ''" class="sub-btn" @click="doNav(308)"></button>-->
</div> </div>
<div class="header-btn-list-padding menu-row1" style="text-align: left"> <div
<button type="button" :class="nav == 309 ? 'active' : ''" class="sub-btn" @click="doNav(309)"></button> class="header-btn-list-padding menu-row1"
<button type="button" :class="nav == 310 ? 'active' : ''" class="sub-btn" @click="doNav(310)">AI</button> style="text-align: left"
>
<button
type="button"
:class="nav == 309 ? 'active' : ''"
class="sub-btn"
@click="doNav(309)"
>
视频监控
</button>
<button
type="button"
:class="nav == 310 ? 'active' : ''"
class="sub-btn"
@click="doNav(310)"
>
AI预警
</button>
<!-- <button type="button" :class="nav == 311 ? 'active' : ''" class="sub-btn" @click="doNav(311)"></button> --> <!-- <button type="button" :class="nav == 311 ? 'active' : ''" class="sub-btn" @click="doNav(311)"></button> -->
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div :class="(nav >= 400 && nav < 500) || nav == 4 ? 'head-nav active' : 'head-nav'" style="position: relative" class="has-submenu"> <div
:class="
(nav >= 400 && nav < 500) || nav == 4
? 'head-nav active'
: 'head-nav'
"
style="position: relative"
class="has-submenu"
>
<div>质量管理</div> <div>质量管理</div>
<div class="header-btn-list"> <div class="header-btn-list">
<div class="header-btn-list-arrow"></div> <div class="header-btn-list-arrow"></div>
<div class="header-btn-list-item" style> <div class="header-btn-list-item" style>
<div class="header-btn-list-padding menu-row1" style="text-align: left"> <div
<button type="button" :class="nav == 401 ? 'active' : ''" class="sub-btn" @click="doNav(401)"></button> class="header-btn-list-padding menu-row1"
style="text-align: left"
>
<button
type="button"
:class="nav == 401 ? 'active' : ''"
class="sub-btn"
@click="doNav(401)"
>
质量隐患排查
</button>
<!-- <!--
<button type="button" :class="nav == 402 ? 'active' : ''" class="sub-btn" @click="doNav(402)"></button> <button type="button" :class="nav == 402 ? 'active' : ''" class="sub-btn" @click="doNav(402)"></button>
<button type="button" :class="nav == 403 ? 'active' : ''" class="sub-btn" @click="doNav(403)"></button> <button type="button" :class="nav == 403 ? 'active' : ''" class="sub-btn" @click="doNav(403)"></button>
@ -66,14 +186,39 @@
</div> </div>
</div> </div>
</div> </div>
<div :class="(nav >= 500 && nav < 600) || nav == 5 ? 'head-nav active' : 'head-nav'" style="position: relative" class="has-submenu"> <div
:class="
(nav >= 500 && nav < 600) || nav == 5
? 'head-nav active'
: 'head-nav'
"
style="position: relative"
class="has-submenu"
>
<div>进度管理</div> <div>进度管理</div>
<div class="header-btn-list"> <div class="header-btn-list">
<div class="header-btn-list-arrow"></div> <div class="header-btn-list-arrow"></div>
<div class="header-btn-list-item" style> <div class="header-btn-list-item" style>
<div class="header-btn-list-padding menu-row1" style="text-align: left"> <div
<button type="button" :class="nav == 502 ? 'active' : ''" class="sub-btn" @click="doNav(502)"></button> class="header-btn-list-padding menu-row1"
<button type="button" :class="nav == 501 ? 'active' : ''" class="sub-btn" @click="doNav(501)"></button> style="text-align: left"
>
<button
type="button"
:class="nav == 502 ? 'active' : ''"
class="sub-btn"
@click="doNav(502)"
>
进度管理
</button>
<button
type="button"
:class="nav == 501 ? 'active' : ''"
class="sub-btn"
@click="doNav(501)"
>
延时摄影
</button>
</div> </div>
</div> </div>
</div> </div>
@ -81,34 +226,90 @@
</div> </div>
</el-col> </el-col>
<el-col :span="8" class="header-center"> <el-col :span="8" class="header-center">
<img class="prj-logo" :src="selProject.setting.orgLogo" v-if="selProject && selProject.setting && selProject.setting.orgLogo" /> <img
<span class="sp-title">{{ selProject?.setting?.orgName || selProject?.projectName || "数字建安施工管理平台" }}</span> class="prj-logo"
:src="selProject.setting.orgLogo"
v-if="selProject && selProject.setting && selProject.setting.orgLogo"
/>
<span class="sp-title">{{
selProject?.setting?.orgName ||
selProject?.projectName ||
"数字建安施工管理平台"
}}</span>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="head-title-tab" style="display: inline-flex"> <div class="head-title-tab" style="display: inline-block">
<div :class="nav == 6 ? 'head-nav active' : 'head-nav'" @click="doNav(6)">绿</div> <div
<div :class="nav == 7 ? 'head-nav active' : 'head-nav'" @click="doNav(7)">BIM</div> :class="nav == 6 ? 'head-nav active' : 'head-nav'"
@click="doNav(6)"
>
绿碳中心
</div>
</div> </div>
<div class="header-title-user-info" style="display: inline-block; float: right"> <div
<el-select v-model="selProjectId" popper-class="header-sel-project-pop" @change="doProjectSelect"> class="header-title-user-info"
<el-option v-for="it in projects" :key="it.id" :label="it.projectName" :value="it.id"></el-option> style="display: inline-block; float: right"
>
<el-select
v-model="selProjectId"
popper-class="header-sel-project-pop"
@change="doProjectSelect"
>
<el-option
v-for="it in projects"
:key="it.id"
:label="it.projectName"
:value="it.id"
></el-option>
</el-select> </el-select>
<span class="command" @click="doLogout"> <span class="command" @click="doLogout">
{{ nickName }} {{ nickName }}
<i class="el-icon-switch-button"></i> <i class="el-icon-switch-button"></i>
</span> </span>
</div> </div>
<i class="set-fullscreen set-font-size" style="margin-left: 16px; position: absolute; top: 0px; right: 24px" @click="toggleFullScreen"> <i
<svg class="icon" v-if="!isFullScreen" style="width: 20px; vertical-align: middle; fill: currentColor; overflow: hidden" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3304"> class="set-fullscreen set-font-size"
style="margin-left: 16px; position: absolute; top: 0px; right: 24px"
@click="toggleFullScreen"
>
<svg
class="icon"
v-if="!isFullScreen"
style="
width: 20px;
vertical-align: middle;
fill: currentColor;
overflow: hidden;
"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="3304"
>
<path <path
d="M145.066667 85.333333h153.6c25.6 0 42.666667-17.066667 42.666666-42.666666S324.266667 0 298.666667 0H34.133333C25.6 0 17.066667 8.533333 8.533333 17.066667 0 25.6 0 34.133333 0 42.666667v256c0 25.6 17.066667 42.666667 42.666667 42.666666s42.666667-17.066667 42.666666-42.666666V145.066667l230.4 230.4c17.066667 17.066667 42.666667 17.066667 59.733334 0 17.066667-17.066667 17.066667-42.666667 0-59.733334L145.066667 85.333333z m170.666666 563.2L162.133333 802.133333l-76.8 76.8V725.333333C85.333333 699.733333 68.266667 682.666667 42.666667 682.666667s-42.666667 17.066667-42.666667 42.666666v256c0 25.6 17.066667 42.666667 42.666667 42.666667h256c25.6 0 42.666667-17.066667 42.666666-42.666667s-17.066667-42.666667-42.666666-42.666666H145.066667l76.8-76.8 153.6-153.6c17.066667-17.066667 17.066667-42.666667 0-59.733334-17.066667-17.066667-42.666667-17.066667-59.733334 0z m665.6 34.133334c-25.6 0-42.666667 17.066667-42.666666 42.666666v153.6l-76.8-76.8-153.6-153.6c-17.066667-17.066667-42.666667-17.066667-59.733334 0-17.066667 17.066667-17.066667 42.666667 0 59.733334l153.6 153.6 76.8 76.8H725.333333c-25.6 0-42.666667 17.066667-42.666666 42.666666s17.066667 42.666667 42.666666 42.666667h256c25.6 0 42.666667-17.066667 42.666667-42.666667v-256c0-25.6-17.066667-42.666667-42.666667-42.666666z m0-682.666667h-256c-25.6 0-42.666667 17.066667-42.666666 42.666667s17.066667 42.666667 42.666666 42.666666h153.6l-76.8 76.8-153.6 153.6c-17.066667 17.066667-17.066667 42.666667 0 59.733334 17.066667 17.066667 42.666667 17.066667 59.733334 0l153.6-153.6 76.8-76.8v153.6c0 25.6 17.066667 42.666667 42.666666 42.666666s42.666667-17.066667 42.666667-42.666666v-256c0-25.6-17.066667-42.666667-42.666667-42.666667z" d="M145.066667 85.333333h153.6c25.6 0 42.666667-17.066667 42.666666-42.666666S324.266667 0 298.666667 0H34.133333C25.6 0 17.066667 8.533333 8.533333 17.066667 0 25.6 0 34.133333 0 42.666667v256c0 25.6 17.066667 42.666667 42.666667 42.666666s42.666667-17.066667 42.666666-42.666666V145.066667l230.4 230.4c17.066667 17.066667 42.666667 17.066667 59.733334 0 17.066667-17.066667 17.066667-42.666667 0-59.733334L145.066667 85.333333z m170.666666 563.2L162.133333 802.133333l-76.8 76.8V725.333333C85.333333 699.733333 68.266667 682.666667 42.666667 682.666667s-42.666667 17.066667-42.666667 42.666666v256c0 25.6 17.066667 42.666667 42.666667 42.666667h256c25.6 0 42.666667-17.066667 42.666666-42.666667s-17.066667-42.666667-42.666666-42.666666H145.066667l76.8-76.8 153.6-153.6c17.066667-17.066667 17.066667-42.666667 0-59.733334-17.066667-17.066667-42.666667-17.066667-59.733334 0z m665.6 34.133334c-25.6 0-42.666667 17.066667-42.666666 42.666666v153.6l-76.8-76.8-153.6-153.6c-17.066667-17.066667-42.666667-17.066667-59.733334 0-17.066667 17.066667-17.066667 42.666667 0 59.733334l153.6 153.6 76.8 76.8H725.333333c-25.6 0-42.666667 17.066667-42.666666 42.666666s17.066667 42.666667 42.666666 42.666667h256c25.6 0 42.666667-17.066667 42.666667-42.666667v-256c0-25.6-17.066667-42.666667-42.666667-42.666666z m0-682.666667h-256c-25.6 0-42.666667 17.066667-42.666666 42.666667s17.066667 42.666667 42.666666 42.666666h153.6l-76.8 76.8-153.6 153.6c-17.066667 17.066667-17.066667 42.666667 0 59.733334 17.066667 17.066667 42.666667 17.066667 59.733334 0l153.6-153.6 76.8-76.8v153.6c0 25.6 17.066667 42.666667 42.666666 42.666666s42.666667-17.066667 42.666667-42.666666v-256c0-25.6-17.066667-42.666667-42.666667-42.666667z"
fill fill
p-id="3305" /> p-id="3305"
/>
</svg> </svg>
<svg class="icon" v-else style="width: 24px; vertical-align: middle; fill: currentColor; overflow: hidden" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3952"> <svg
class="icon"
v-else
style="
width: 24px;
vertical-align: middle;
fill: currentColor;
overflow: hidden;
"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="3952"
>
<path <path
d="M384 597.333333h-256c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667h153.6L17.066667 947.2c-17.066667 17.066667-17.066667 42.666667 0 59.733333 17.066667 17.066667 42.666667 17.066667 59.733333 0L341.333333 742.4v153.6c0 25.6 17.066667 42.666667 42.666667 42.666667s42.666667-17.066667 42.666667-42.666667v-256c0-25.6-17.066667-42.666667-42.666667-42.666667z m358.4 85.333334h153.6c25.6 0 42.666667-17.066667 42.666667-42.666667s-17.066667-42.666667-42.666667-42.666667h-256c-25.6 0-42.666667 17.066667-42.666667 42.666667v256c0 25.6 17.066667 42.666667 42.666667 42.666667s42.666667-17.066667 42.666667-42.666667V742.4l264.533333 264.533333c17.066667 17.066667 42.666667 17.066667 59.733333 0 17.066667-17.066667 17.066667-42.666667 0-59.733333L742.4 682.666667zM640 426.666667h256c25.6 0 42.666667-17.066667 42.666667-42.666667s-17.066667-42.666667-42.666667-42.666667H742.4L1006.933333 76.8c17.066667-17.066667 17.066667-42.666667 0-59.733333-17.066667-17.066667-42.666667-17.066667-59.733333 0L682.666667 281.6V128c0-25.6-17.066667-42.666667-42.666667-42.666667s-42.666667 17.066667-42.666667 42.666667v256c0 25.6 17.066667 42.666667 42.666667 42.666667z m-256-341.333334c-25.6 0-42.666667 17.066667-42.666667 42.666667v153.6L76.8 8.533333C59.733333 0 25.6 0 8.533333 8.533333 0 25.6 0 59.733333 8.533333 76.8L281.6 341.333333H128c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667h256c25.6 0 42.666667-17.066667 42.666667-42.666667v-256c0-25.6-17.066667-42.666667-42.666667-42.666667z" d="M384 597.333333h-256c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667h153.6L17.066667 947.2c-17.066667 17.066667-17.066667 42.666667 0 59.733333 17.066667 17.066667 42.666667 17.066667 59.733333 0L341.333333 742.4v153.6c0 25.6 17.066667 42.666667 42.666667 42.666667s42.666667-17.066667 42.666667-42.666667v-256c0-25.6-17.066667-42.666667-42.666667-42.666667z m358.4 85.333334h153.6c25.6 0 42.666667-17.066667 42.666667-42.666667s-17.066667-42.666667-42.666667-42.666667h-256c-25.6 0-42.666667 17.066667-42.666667 42.666667v256c0 25.6 17.066667 42.666667 42.666667 42.666667s42.666667-17.066667 42.666667-42.666667V742.4l264.533333 264.533333c17.066667 17.066667 42.666667 17.066667 59.733333 0 17.066667-17.066667 17.066667-42.666667 0-59.733333L742.4 682.666667zM640 426.666667h256c25.6 0 42.666667-17.066667 42.666667-42.666667s-17.066667-42.666667-42.666667-42.666667H742.4L1006.933333 76.8c17.066667-17.066667 17.066667-42.666667 0-59.733333-17.066667-17.066667-42.666667-17.066667-59.733333 0L682.666667 281.6V128c0-25.6-17.066667-42.666667-42.666667-42.666667s-42.666667 17.066667-42.666667 42.666667v256c0 25.6 17.066667 42.666667 42.666667 42.666667z m-256-341.333334c-25.6 0-42.666667 17.066667-42.666667 42.666667v153.6L76.8 8.533333C59.733333 0 25.6 0 8.533333 8.533333 0 25.6 0 59.733333 8.533333 76.8L281.6 341.333333H128c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667h256c25.6 0 42.666667-17.066667 42.666667-42.666667v-256c0-25.6-17.066667-42.666667-42.666667-42.666667z"
p-id="3953" /> p-id="3953"
/>
</svg> </svg>
</i> </i>
</el-col> </el-col>
@ -141,6 +342,14 @@ export default {
}, },
}, },
mounted() { mounted() {
if (location.href.includes("#/detail?prjId=")) {
const urlParams = new URLSearchParams(location.href.split("?")[1]);
const prjId = urlParams.get("prjId");
localStorage.setItem("selProj", prjId);
setTimeout(() => {
location.hash = "#/detail";
}, 800);
}
window.xapp = this; window.xapp = this;
let prjTitle = localStorage.getItem("prj_title"); let prjTitle = localStorage.getItem("prj_title");
document.title = prjTitle || document.title; document.title = prjTitle || document.title;
@ -218,9 +427,6 @@ export default {
case 6: case 6:
this.$router.push("/greenCarbon"); this.$router.push("/greenCarbon");
break; break;
case 7:
this.$router.push("/bimManage");
break;
case 102: case 102:
this.$router.push("/labor"); this.$router.push("/labor");
break; break;
@ -260,7 +466,7 @@ export default {
margin-right: 30px; margin-right: 30px;
position: relative; position: relative;
top: -5px; top: -5px;
width: 200px; width: 250px;
right: 10px; right: 10px;
} }
} }
@ -340,9 +546,6 @@ export default {
top: 60px !important; top: 60px !important;
} }
@media (min-width: 1921px) and (max-width: 2560px) { @media (min-width: 1921px) and (max-width: 2560px) {
.header-sel-project-pop {
top: 68px !important;
}
.div-header { .div-header {
.head-nav { .head-nav {
font-size: 18px; font-size: 18px;
@ -376,7 +579,7 @@ export default {
transform: scale(1.5) !important; transform: scale(1.5) !important;
margin-right: 60px !important; margin-right: 60px !important;
width: 220px !important; width: 260px !important;
right: 10px !important; right: 10px !important;
} }
} }
@ -404,9 +607,6 @@ export default {
} }
@media (min-width: 2561px) { @media (min-width: 2561px) {
.header-sel-project-pop {
top: 78px !important;
}
.header-center { .header-center {
font-size: 52px !important; font-size: 52px !important;
padding: 0px 60px; padding: 0px 60px;

View File

@ -1,12 +1,28 @@
<template> <template>
<div :class="{ 'has-logo': showLogo }" :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }"> <div
:class="{ 'has-logo': showLogo }"
:style="{
backgroundColor:
sideTheme === 'theme-dark'
? variables.menuBackground
: variables.menuLightBackground,
}"
>
<logo v-if="showLogo" :collapse="isCollapse" /> <logo v-if="showLogo" :collapse="isCollapse" />
<el-scrollbar :class="sideTheme" wrap-class="scrollbar-wrapper"> <el-scrollbar :class="sideTheme" wrap-class="scrollbar-wrapper">
<el-menu <el-menu
:default-active="activeMenu" :default-active="activeMenu"
:collapse="isCollapse" :collapse="isCollapse"
:background-color="sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground" :background-color="
:text-color="sideTheme === 'theme-dark' ? variables.menuColor : variables.menuLightColor" sideTheme === 'theme-dark'
? variables.menuBackground
: variables.menuLightBackground
"
:text-color="
sideTheme === 'theme-dark'
? variables.menuColor
: variables.menuLightColor
"
:unique-opened="true" :unique-opened="true"
:active-text-color="theme" :active-text-color="theme"
:collapse-transition="false" :collapse-transition="false"
@ -24,19 +40,29 @@
</template> </template>
<script setup> <script setup>
import Logo from './Logo' import Logo from "./Logo";
import SidebarItem from './SidebarItem' import SidebarItem from "./SidebarItem";
import variables from '@/assets/styles/variables.module.scss' import variables from "@/assets/styles/variables.module.scss";
import useAppStore from '@/store/modules/app' import useAppStore from "@/store/modules/app";
import useSettingsStore from '@/store/modules/settings' import useSettingsStore from "@/store/modules/settings";
import usePermissionStore from '@/store/modules/permission' import usePermissionStore from "@/store/modules/permission";
import useUserStore from "@/store/modules/user";
const route = useRoute(); const route = useRoute();
const appStore = useAppStore() const appStore = useAppStore();
const settingsStore = useSettingsStore() const settingsStore = useSettingsStore();
const permissionStore = usePermissionStore() const permissionStore = usePermissionStore();
const userStore = useUserStore();
const sidebarRouters = computed(() => permissionStore.sidebarRouters); const sidebarRouters = computed(() => {
let tmps = permissionStore.sidebarRouters;
tmps.forEach((item) => {
if (item.meta && item.meta.title == "项目大屏") {
item.name += "?prjId=" + userStore.currentPrjId;
item.path += "?prjId=" + userStore.currentPrjId;
}
});
return tmps;
});
const showLogo = computed(() => settingsStore.sidebarLogo); const showLogo = computed(() => settingsStore.sidebarLogo);
const sideTheme = computed(() => settingsStore.sideTheme); const sideTheme = computed(() => settingsStore.sideTheme);
const theme = computed(() => settingsStore.theme); const theme = computed(() => settingsStore.theme);
@ -49,6 +75,5 @@ const activeMenu = computed(() => {
return meta.activeMenu; return meta.activeMenu;
} }
return path; return path;
}) });
</script> </script>

View File

@ -77,6 +77,7 @@ import { ElMessage, ElMessageBox } from "element-plus";
import { emitter } from "@/router/index.js"; import { emitter } from "@/router/index.js";
import { devicePositionGet, devicePositionAddItems, devicePositionUpdateItems } from "@/api/bim/bim.js"; import { devicePositionGet, devicePositionAddItems, devicePositionUpdateItems } from "@/api/bim/bim.js";
import icons from "./icons.js"; import icons from "./icons.js";
import { debounce } from "lodash-es";
export default { export default {
name: "SandTableSetting", name: "SandTableSetting",
components: { components: {
@ -120,7 +121,10 @@ export default {
this.initEngine(); this.initEngine();
}, },
methods: { methods: {
doSave() { doSave: debounce(function () {
this.toSave();
}, 300),
toSave() {
this.$confirm("确认保存修改?", "提示", { this.$confirm("确认保存修改?", "提示", {
type: "warning", type: "warning",
confirmButtonText: "确 认", confirmButtonText: "确 认",