Browse Source

处置流程完善

wangqin
zhangzhang 10 months ago
parent
commit
14e9539c0d
  1. 2
      ruoyi-ui/src/views/JiHeExpressway/components/TimeLine/TimeLine1/index.vue
  2. 27
      ruoyi-ui/src/views/JiHeExpressway/components/TimeLine/TimeLine2/DescCard.vue
  3. 57
      ruoyi-ui/src/views/JiHeExpressway/components/TimeLine/TimeLine2/index.vue
  4. 44
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DisposalProcess/index.vue

2
ruoyi-ui/src/views/JiHeExpressway/components/TimeLine/TimeLine1/index.vue

@ -230,7 +230,7 @@ div.auto-size {
.top-label { .top-label {
line-height: 12px; line-height: 12px;
height: 60px; height: 35px;
font-size: 12px; font-size: 12px;
text-align: center; text-align: center;
} }

27
ruoyi-ui/src/views/JiHeExpressway/components/TimeLine/TimeLine2/DescCard.vue

@ -1,5 +1,5 @@
<template> <template>
<div class='DescCard'> <div class="DescCard">
<span class="time">{{ data.time }}</span> <span class="time">{{ data.time }}</span>
<div class="info"> <div class="info">
<img src="./images/avatar.svg" /> <img src="./images/avatar.svg" />
@ -13,23 +13,22 @@
<script> <script>
export default { export default {
name: 'DescCard', name: "DescCard",
props: { props: {
data: { data: {
type: Object, type: Object,
default: () => ({}) default: () => ({}),
} },
} },
} };
</script> </script>
<style lang='scss' scoped> <style lang="scss" scoped>
.DescCard { .DescCard {
font-size: 14px; font-size: 14px;
// font-family: PingFang SC, PingFang SC; // font-family: PingFang SC, PingFang SC;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #ffffff;
line-height: 16px; line-height: 16px;
// -webkit-background-clip: text; // -webkit-background-clip: text;
// -webkit-text-fill-color: transparent; // -webkit-text-fill-color: transparent;
@ -37,14 +36,15 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 6px; gap: 6px;
background: #0D5F79; background: #0d5f79;
border-radius: 6px 6px 6px 6px; border-radius: 6px 6px 6px 6px;
opacity: 1; opacity: 1;
border: 1px solid #00B3CC; border: 1px solid #00b3cc;
padding: 9px 15px; padding: 9px 15px;
.time {} .time {
}
.info { .info {
display: flex; display: flex;
@ -57,7 +57,8 @@ export default {
line-height: 19px; line-height: 19px;
} }
.posts {} .posts {
}
} }
.desc { .desc {

57
ruoyi-ui/src/views/JiHeExpressway/components/TimeLine/TimeLine2/index.vue

@ -1,9 +1,10 @@
<template> <template>
<div class='TimeLine2'> <div class="TimeLine2">
<!-- { "time": "2024/4/16 11:30:07", "name": "1", "desc": "111", "source": 1 } -->
<div class="node" v-for="(item, index) in data" :key="index"> <div class="node" v-for="(item, index) in data" :key="index">
<div class="content" v-if="direction != 'right'"> <div class="content">
<!-- <template v-if="direction === 'auto' ? !!((index + 1) & 1) : true"> --> <template v-if="item.source == 2">
<template v-if="getDirection(item, index, 'left')"> <!-- <template v-if="direction === 'auto' ? !!((index + 1) & 1) : true"> -->
<span class="title" v-if="item.title">{{ item.title }}</span> <span class="title" v-if="item.title">{{ item.title }}</span>
<DescCard :data="item" /> <DescCard :data="item" />
</template> </template>
@ -12,13 +13,15 @@
<div class="circle"></div> <div class="circle"></div>
<div class="line"></div> <div class="line"></div>
</div> </div>
<div class="content" v-if="direction != 'left'"> <div class="content">
<!-- <template v-if="direction === 'auto' ? !((index + 1) & 1) : true"> --> <template v-if="item.source == 1">
<template v-if="getDirection(item, index, 'right')"> <!-- <template v-if="direction === 'auto' ? !((index + 1) & 1) : true"> -->
<!-- <template v-if="getDirection(item, index, 'right')"> -->
<span class="title" v-if="item.title">{{ item.title }}</span> <span class="title" v-if="item.title">{{ item.title }}</span>
<slot name="content" :data="item"> <slot name="content" :data="item">
<DescCard :data="item" /> <DescCard :data="item" />
</slot> </slot>
<!-- </template> -->
</template> </template>
</div> </div>
</div> </div>
@ -26,12 +29,12 @@
</template> </template>
<script> <script>
import DescCard from "./DescCard.vue" import DescCard from "./DescCard.vue";
export default { export default {
name: 'TimeLine2', name: "TimeLine2",
components: { components: {
DescCard DescCard,
}, },
props: { props: {
/** /**
@ -46,7 +49,7 @@ export default {
*/ */
data: { data: {
type: Array, type: Array,
default: () => [] default: () => [],
}, },
/** /**
* auto 左右 显示 * auto 左右 显示
@ -55,26 +58,26 @@ export default {
*/ */
direction: { direction: {
type: String, type: String,
default: "auto" default: "auto",
} },
}, },
methods: { methods: {
getDirection(item, index, position) { getDirection(item, index, position) {
if (this.direction != 'auto') return this.direction === position; if (this.direction != "auto") return this.direction === position;
if (item.direction) return item.direction === position; if (item.direction) return item.direction === position;
switch (position) { switch (position) {
case 'left': case "left":
return !!((index + 1) & 1) return !!((index + 1) & 1);
case 'right': case "right":
return !((index + 1) & 1) return !((index + 1) & 1);
} }
} },
} },
} };
</script> </script>
<style lang='scss' scoped> <style lang="scss" scoped>
.TimeLine2 { .TimeLine2 {
color: #fff; color: #fff;
overflow-y: auto; overflow-y: auto;
@ -90,7 +93,7 @@ export default {
margin-top: 24px; margin-top: 24px;
} }
>.content { > .content {
flex: 1; flex: 1;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -105,7 +108,7 @@ export default {
.title { .title {
font-size: 16px; font-size: 16px;
font-weight: 500; font-weight: 500;
color: #FFC368; color: #ffc368;
line-height: 19px; line-height: 19px;
} }
} }
@ -123,7 +126,7 @@ export default {
border-radius: 50%; border-radius: 50%;
opacity: 1; opacity: 1;
border: 1px solid var(--active-color, #39D5BF); border: 1px solid var(--active-color, #39d5bf);
position: relative; position: relative;
&::before { &::before {
@ -135,14 +138,14 @@ export default {
left: 50%; left: 50%;
top: 50%; top: 50%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
background-color: var(--active-color, #39D5BF); background-color: var(--active-color, #39d5bf);
} }
} }
.line { .line {
width: 2px; width: 2px;
min-height: 100%; min-height: 100%;
background: #00B3CC; background: #00b3cc;
border-radius: 0px 0px 0px 0px; border-radius: 0px 0px 0px 0px;
opacity: 1; opacity: 1;
} }

44
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DisposalProcess/index.vue

@ -31,7 +31,7 @@
<TimeLine2 :data="timeLine2List" style="flex: 1" /> <TimeLine2 :data="timeLine2List" style="flex: 1" />
<div v-if="!timeLine2List.length" class="no-data">暂无数据</div> <div v-if="!timeLine2List.length" class="no-data">暂无数据</div>
<div class="bottom"> <div class="bottom">
<ElSelect v-model="processId" placeholder="请选择关键点"> <ElSelect v-model="processId" clearable placeholder="请选择关键点">
<ElOption <ElOption
v-for="item in options" v-for="item in options"
:key="item.nodeNode" :key="item.nodeNode"
@ -67,6 +67,15 @@
> >
<el-button class="input">点击上传</el-button> <el-button class="input">点击上传</el-button>
</el-upload> </el-upload>
<ElSelect v-model="context" clearable placeholder="请选择常用语">
<ElOption
v-for="item in phrasesOptions"
:key="item"
:label="item"
:value="item"
>
</ElOption>
</ElSelect>
<ButtonGradient class="title-button special-button" @click="onSubmit"> <ButtonGradient class="title-button special-button" @click="onSubmit">
发送 发送
</ButtonGradient> </ButtonGradient>
@ -98,14 +107,14 @@ import {
postNoSkipClear, postNoSkipClear,
} from "@/api/commandDispatch"; } from "@/api/commandDispatch";
import { provideMixin } from "./../../mixin"; // import { provideMixin } from "./../../mixin";
import { timeLine2List } from "./data"; import { timeLine2List } from "./data";
import request from "@/utils/request"; import request from "@/utils/request";
export default { export default {
name: "DisposalProcess", name: "DisposalProcess",
inject: ["adpScale"], inject: ["adpScale"],
mixins: [provideMixin], // mixins: [provideMixin],
components: { components: {
Card, Card,
ButtonGradient, ButtonGradient,
@ -127,6 +136,7 @@ export default {
options: [], options: [],
processId: "", processId: "",
context: "", context: "",
phrasesOptions: [],
headers: { headers: {
Authorization: "Bearer " + getToken(), Authorization: "Bearer " + getToken(),
}, },
@ -136,6 +146,17 @@ export default {
imageUrl: "", imageUrl: "",
}; };
}, },
watch: {
processId(newVlaue, oldValue) {
this.options.forEach((element) => {
if (newVlaue == element.nodeNode) {
if (element.commonPhrases) {
this.phrasesOptions = element.commonPhrase.split(",");
}
}
});
},
},
methods: { methods: {
filterDistance(distance) { filterDistance(distance) {
return (1 / this.adpScale.scaleX) * distance; return (1 / this.adpScale.scaleX) * distance;
@ -158,15 +179,15 @@ export default {
isActive: item.status == 1 ? true : false, isActive: item.status == 1 ? true : false,
}; };
}); });
this.options = result.data.filter((item) => {
item.status == 0; let index = result.data.findLastIndex((item) => item.status == 1);
return item;
}); this.options = result.data.slice(index + 1);
}); });
}, },
// //
async detailChange(id) { async disposalRecords(id) {
let processIdMap = {}; let processIdMap = {};
getProcessList(id).then((result) => { getProcessList(id).then((result) => {
console.log("处置过程记录", result); console.log("处置过程记录", result);
@ -182,6 +203,7 @@ export default {
: null, : null,
name: item.operator, name: item.operator,
desc: item.context, desc: item.context,
source: item.source,
// posts: '' // posts: ''
}; };
}); });
@ -217,7 +239,7 @@ export default {
postProcess(data).then((result) => { postProcess(data).then((result) => {
if (result.code != 200) return []; if (result.code != 200) return [];
this.getProcess(); this.getProcess();
// this.detailChange(this.eventId); this.disposalRecords(this.eventId);
}); });
} else { } else {
this.$message.warning("调度指令不能为空"); this.$message.warning("调度指令不能为空");
@ -252,7 +274,7 @@ export default {
}, },
async mounted() { async mounted() {
this.getProcess(); this.getProcess();
// await this.detailChange(this.eventId); await this.disposalRecords(this.eventId);
}, },
}; };
</script> </script>
@ -279,7 +301,7 @@ export default {
.bottom { .bottom {
display: grid; display: grid;
grid-template-columns: 0.5fr auto 1fr 90px; grid-template-columns: 0.5fr auto 1fr 130px 90px;
width: 100%; width: 100%;
gap: 6px; gap: 6px;
} }

Loading…
Cancel
Save