Compare commits

...

12 Commits

Author SHA1 Message Date
joylink_fanyuhong
dd6fd1ed80 Merge remote-tracking branch 'origin/develop' into local-test
All checks were successful
local-test分支构建发布 / Docker-Build (push) Successful in 1m53s
2024-11-20 17:22:47 +08:00
joylink_fanyuhong
dd7cb75ceb Merge branch 'develop' of https://gitea.joylink.club/joylink/xian-ncc-da-client into develop 2024-11-20 16:03:28 +08:00
joylink_fanyuhong
6252bf426c 故障时间展示调整 2024-11-20 16:03:25 +08:00
joylink_zhaoerwei
342aff6ebd 去掉手机列 2024-11-20 13:37:49 +08:00
joylink_fanyuhong
ca8a2fb279 报错调整 2024-11-20 10:53:36 +08:00
joylink_fanyuhong
718835302e 提示按钮调整 2024-11-20 10:42:51 +08:00
joylink_zhaoerwei
59ffd45dfb btn提示 2024-11-20 10:32:18 +08:00
joylink_fanyuhong
2070142e56 故障统计调整 2024-11-20 10:27:36 +08:00
joylink_fanyuhong
48c9adc9dc Merge branch 'develop' of https://gitea.joylink.club/joylink/xian-ncc-da-client into develop 2024-11-20 10:17:35 +08:00
joylink_fanyuhong
d02295b206 跳转ats判断逻辑调整 2024-11-20 10:17:32 +08:00
joylink_zhaoerwei
d142917797 微调 2024-11-20 09:53:19 +08:00
joylink_zhaoerwei
c514486354 语音报警btn加提示 2024-11-20 09:49:50 +08:00
7 changed files with 122 additions and 31 deletions

View File

@ -23,6 +23,7 @@ import { RunLineGraphicHitArea } from 'src/graphics/runLine/RunLineDrawAssistant
import { Dialog } from 'quasar';
import SetDashLineDialog from '../../components/draw-app/dialogs/SetDashLineDialog.vue';
import SetGaryLineDialog from '../../components/draw-app/dialogs/SetGaryLineDialog.vue';
import { useLineNetStore } from 'src/stores/line-net-store';
export class RunLineData extends GraphicDataBase implements IRunLineData {
constructor(data?: graphicData.RunLine) {
@ -235,7 +236,6 @@ export class DrawRunLinePlugin extends GraphicInteractionPlugin<RunLine> {
});
};
setGrayLineConfig.handler = () => {
console.log(runLine.datas, '11111');
Dialog.create({
title: '设置灰线段',
message: '',
@ -280,10 +280,22 @@ export class RunLineOperateInteraction extends GraphicInteractionPlugin<RunLine>
g.cursor = 'pointer';
g.lineBody.hitArea = new RunLineGraphicHitArea(g);
g.selectable = true;
g.on('_leftclick', this.leftClick, this);
}
unbind(g: RunLine): void {
g.selectable = false;
g.eventMode = 'none';
g.off('_leftclick', this.leftClick, this);
}
leftClick(e: FederatedMouseEvent) {
const target = e.target as DisplayObject;
const runLine = target.getGraphic() as RunLine;
const lineId = runLine.datas.lineId;
if (lineId) {
useLineNetStore().jumpLineCount++;
useLineNetStore().jumpLineId = lineId;
}
}
}

View File

@ -330,7 +330,7 @@ class codeGraph extends Container {
this.stopTime.visible = true;
this.stopTime.text = stateData.stopTime;
}
if (stateData.bizWaitTimeSec && useLineStore().faultStatistics) {
if (useLineStore().faultStatistics) {
const minutes = Math.floor(stateData.bizWaitTimeSec / 60);
const seconds = stateData.bizWaitTimeSec % 60;
let minutesString = '' + minutes;
@ -343,7 +343,9 @@ class codeGraph extends Container {
}
this.waitSec.visible = true;
this.waitSec.text = `乘客已经等待了${minutesString}:${secondsString}`;
this.waitSec.text = `${minutesString}:${secondsString}`;
} else {
this.waitSec.visible = false;
}
}
}

View File

@ -51,13 +51,26 @@
label="返回"
@click="backConfirm"
/>
<q-toggle
v-model="lineStore.faultStatistics"
checked-icon="check"
color="red"
label="故障信息统计"
unchecked-icon="clear"
/>
<q-btn
round
dense
flat
:color="lineStore.faultStatistics ? 'white' : 'red'"
:icon="lineStore.faultStatistics ? 'grid_on' : 'grid_off'"
@click="
() => {
lineStore.faultStatistics = !lineStore.faultStatistics;
}
"
>
<q-tooltip style="font-size: 14px">
{{
lineStore.faultStatistics
? '关闭故障信息统计'
: '开启故障信息统计'
}}
</q-tooltip>
</q-btn>
<q-btn
round
dense
@ -81,6 +94,9 @@
@click="$q.fullscreen.toggle()"
v-if="$q.screen.gt.sm"
>
<q-tooltip style="font-size: 14px">
{{ $q.fullscreen.isActive ? '关闭全屏' : '开启全屏' }}
</q-tooltip>
</q-btn>
<q-btn
flat
@ -89,7 +105,9 @@
icon="connected_tv"
:color="lineNetStore.connectButtonColor"
@click="openConnectInfoDialog"
/>
>
<q-tooltip style="font-size: 14px">与同方连接状态</q-tooltip>
</q-btn>
<q-btn-dropdown
flat
stretch

View File

@ -5,19 +5,73 @@
</q-page-container>
<div
v-if="faultInfo"
style="position: fixed; right: 0; top: 10%; background: white"
style="
position: absolute;
right: 0;
top: 10px;
background: white;
width: 400px;
"
>
<div style="width: 100%; text-align: right" class="bg-primary q-pa-ms">
<q-icon
name="close"
size="xs"
name="add_circle"
size="md"
v-if="faultInfoMin"
style="cursor: pointer"
@click="() => (faultInfoMin = false)"
/>
<q-icon
name="remove_circle"
size="md"
v-if="!faultInfoMin"
style="cursor: pointer"
@click="() => (faultInfoMin = true)"
/>
<q-icon
name="cancel"
size="md"
style="cursor: pointer"
@click="() => (faultInfo = false)"
/>
</div>
<div class="q-pa-ms column" style="background: white; max-width: 400px">
<div
v-if="!faultInfoMin"
class="q-pa-ms"
style="
background: white;
max-width: 400px;
height: 268px;
overflow-y: scroll;
"
>
<template v-for="(item, index) in timeInfoLabel" :key="index">
<q-chip
<div
class="row justify-between q-ma-sm bg-blue text-white"
style="border-radius: 5px; padding: 5px"
>
<div
style="
max-width: 250px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
"
>
{{ item.split('--')[0] }}
<q-tooltip>{{ item.split('--')[0] }}</q-tooltip>
</div>
<div>
<span>{{ item.split('--')[1] }}</span>
<q-icon
name="cancel"
size="xs"
style="cursor: pointer; margin-left: 10px"
@click="handleRemoveInfo(index)"
/>
</div>
</div>
<!-- <q-chip
removable
@remove="handleRemoveInfo(index)"
color="primary"
@ -26,7 +80,7 @@
:label="item"
>
<q-tooltip v-if="item.length > 34"> {{ item }} </q-tooltip>
</q-chip>
</q-chip> -->
</template>
</div>
</div>
@ -39,6 +93,7 @@ import { useLineStore } from 'src/stores/line-store';
import { useRoute } from 'vue-router';
import { AlarmInfo, useLineNetStore } from 'src/stores/line-net-store';
import { showAlertTypeData } from 'src/components/alarm/alarmInfoEnum';
import { Platform } from 'src/graphics/platform/Platform';
const props = withDefaults(
defineProps<{
@ -51,6 +106,7 @@ const route = useRoute();
const lineStore = useLineStore();
const lineNetStore = useLineNetStore();
const faultInfo = ref(false);
const faultInfoMin = ref(false);
const alarmInfoList: AlarmInfo[] = reactive([]);
let timeInterval = null;
let timeInfoLabel: string[] = reactive([]);
@ -124,6 +180,18 @@ watch(
}
);
watch(
() => lineStore.faultStatistics,
() => {
const platfroms = lineStore
.getLineApp()
.queryStore.queryByType<Platform>(Platform.Type);
platfroms.forEach((platfrom) => {
platfrom.changeState();
});
}
);
const lineId = Number(route.params.lineId);
const lineApp = lineStore.initLineApp(lineId);

View File

@ -9,7 +9,6 @@
<script setup lang="ts">
import { onMounted, onUnmounted, watch } from 'vue';
import { useLineNetStore } from 'src/stores/line-net-store';
import { RunLine } from 'src/graphics/runLine/RunLine';
import { useRouter } from 'vue-router';
const props = withDefaults(
@ -35,13 +34,10 @@ watch(
}
);
watch(
() => lineNetStore.selectedGraphic,
() => lineNetStore.jumpLineCount,
(val) => {
if (val && lineNetStore.selectedGraphicType == RunLine.Type) {
const lineId = (val as RunLine)?.datas.lineId;
if (lineId) {
router.replace(`/line/monitor/${lineId}`);
}
if (val) {
router.replace(`/line/monitor/${lineNetStore.jumpLineId}`);
}
}
);

View File

@ -151,12 +151,6 @@ const columnDefs: QTableColumn[] = [
field: 'registerTime',
align: 'center',
},
{
name: 'mobile',
label: '手机号',
field: 'mobile',
align: 'center',
},
];
const tableRef = ref();
@ -237,7 +231,6 @@ function getAllRole() {
function edieUserData(row: User) {
userInfo.id = row.id;
userInfo.name = row.name;
userInfo.mobile = row.mobile;
userInfo.registerTime = row.registerTime;
if (row?.roleList) {
userInfo.roleList = row.roleList;

View File

@ -38,6 +38,8 @@ export const useLineNetStore = defineStore('lineNet', {
closeAllAlarmInfoDialog: false,
connectButtonColor: 'green',
connectInfo: null as state.WarnLineMessage | null,
jumpLineCount: 0,
jumpLineId: '',
}),
getters: {
untreatedNum: (state) => {