|
@@ -7,23 +7,41 @@
|
|
</li>
|
|
</li>
|
|
</ul>
|
|
</ul>
|
|
<div class="card-content">
|
|
<div class="card-content">
|
|
- <RenWuGenZong v-if="activeTab === '任务跟踪'" :eventId="eventId" />
|
|
|
|
- <div v-else-if="activeTab === '预案通知'" class="custom-table">
|
|
|
|
|
|
+ <!-- 任务跟踪部分 -->
|
|
|
|
+ <RenWuGenZong v-if="activeTab === '任务跟踪'" :event-id="eventId" />
|
|
|
|
+
|
|
|
|
+ <!-- 预案通知部分修改为卡片式布局 -->
|
|
|
|
+ <div v-else-if="activeTab === '预案通知'" class="preplan-notification">
|
|
<div class="table-content">
|
|
<div class="table-content">
|
|
- <div v-for="(notification, index) in notifications" :key="index" class="tr">
|
|
|
|
- <div class="td">
|
|
|
|
- <div class="unit-date">
|
|
|
|
- <span class="unit">{{ notification.unit }}</span>
|
|
|
|
- <span class="date">{{ notification.date }}</span>
|
|
|
|
- <span :class="['status', { error: notification.status === '发送失败', success: notification.status === '已发送' }]">
|
|
|
|
- {{ notification.status === '发送失败' ? '发送失败' : `接收人:${notification.receiver}` }}
|
|
|
|
- </span>
|
|
|
|
|
|
+ <div v-for="(notification, index) in notifications" :key="index" class="box1">
|
|
|
|
+ <div :class="notification.status === '发送失败' ? 'error-icon' : 'success-icon'"></div>
|
|
|
|
+ <div class="box2">
|
|
|
|
+ <div class="box-header">
|
|
|
|
+ <div class="header-left">
|
|
|
|
+ <div class="box-title">{{ notification.unit }}</div>
|
|
|
|
+ <div class="time">{{ notification.date }}</div>
|
|
|
|
+ <div :class="notification.status === '发送失败' ? 'status error' : 'status success'">
|
|
|
|
+ {{ notification.status === '发送失败' ? '发送失败' : `接收人:${notification.receiver}` }}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 如果需要更新按钮,可以取消注释以下代码 -->
|
|
|
|
+ <!--
|
|
|
|
+ <div class="btn" @click="openUpdateDialog(notification)">
|
|
|
|
+ 更新
|
|
|
|
+ </div>
|
|
|
|
+ -->
|
|
</div>
|
|
</div>
|
|
- <div class="content">{{ notification.content }}</div>
|
|
|
|
|
|
+ <div class="box-content">{{ notification.content }}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
|
|
+ <!-- 资源调度部分保持不变 -->
|
|
|
|
+ <div v-else-if="activeTab === '资源调度'" class="resource-scheduling">
|
|
|
|
+ <!-- 资源调度内容,可以根据需要进行填充 -->
|
|
|
|
+ <p>资源调度内容正在开发中...</p>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
@@ -67,10 +85,10 @@ const fetchData = async () => {
|
|
const response = await taskList({ eventId: props.eventId });
|
|
const response = await taskList({ eventId: props.eventId });
|
|
|
|
|
|
if (response.code === 200) {
|
|
if (response.code === 200) {
|
|
- console.log('查询成功:', response.data);
|
|
|
|
|
|
+ console.log('查询成功预案:', response.data);
|
|
updateTaskList(response.data);
|
|
updateTaskList(response.data);
|
|
} else {
|
|
} else {
|
|
- console.error('查询失败:', response.msg);
|
|
|
|
|
|
+ console.error('预案查询失败:', response.msg);
|
|
}
|
|
}
|
|
} catch (error) {
|
|
} catch (error) {
|
|
console.error('请求失败:', error);
|
|
console.error('请求失败:', error);
|
|
@@ -106,9 +124,11 @@ onMounted(() => {
|
|
padding: 0;
|
|
padding: 0;
|
|
margin-left: 80px;
|
|
margin-left: 80px;
|
|
margin-top: 75px;
|
|
margin-top: 75px;
|
|
|
|
+
|
|
.active {
|
|
.active {
|
|
background: url('@/assets/images/emergencyCommandMap/tabActive.png') no-repeat;
|
|
background: url('@/assets/images/emergencyCommandMap/tabActive.png') no-repeat;
|
|
}
|
|
}
|
|
|
|
+
|
|
li {
|
|
li {
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
padding: 20px;
|
|
padding: 20px;
|
|
@@ -121,54 +141,114 @@ onMounted(() => {
|
|
justify-content: center;
|
|
justify-content: center;
|
|
align-items: flex-end;
|
|
align-items: flex-end;
|
|
font-family: YouSheBiaoTiHei;
|
|
font-family: YouSheBiaoTiHei;
|
|
|
|
+
|
|
&:hover {
|
|
&:hover {
|
|
background: url('@/assets/images/emergencyCommandMap/tabActive.png') no-repeat;
|
|
background: url('@/assets/images/emergencyCommandMap/tabActive.png') no-repeat;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-.custom-table {
|
|
|
|
|
|
+.preplan-notification {
|
|
width: 100%;
|
|
width: 100%;
|
|
|
|
+
|
|
.table-content {
|
|
.table-content {
|
|
height: 600px;
|
|
height: 600px;
|
|
overflow-y: auto;
|
|
overflow-y: auto;
|
|
- .tr {
|
|
|
|
|
|
+
|
|
|
|
+ .box1 {
|
|
display: flex;
|
|
display: flex;
|
|
- align-items: center;
|
|
|
|
- .td {
|
|
|
|
|
|
+ align-items: flex-start;
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
+
|
|
|
|
+ &:last-child {
|
|
|
|
+ margin-bottom: 0;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .success-icon,
|
|
|
|
+ .error-icon {
|
|
|
|
+ width: 123px;
|
|
|
|
+ height: 79px;
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
+ background-size: contain;
|
|
|
|
+ margin-right: 20px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .success-icon {
|
|
|
|
+ background-image: url('@/assets/images/taskTracking/success.png');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .error-icon {
|
|
|
|
+ background-image: url('@/assets/images/taskTracking/processing.png');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .box2 {
|
|
flex: 1;
|
|
flex: 1;
|
|
- padding: 10px;
|
|
|
|
- font-size: 36px;
|
|
|
|
- .unit-date {
|
|
|
|
|
|
+ background-image: url('@/assets/images/taskTracking/box1.png');
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
+ background-size: 100% 377px; /* 适应容器宽度 */
|
|
|
|
+ padding: 20px 60px 20px 20px;
|
|
|
|
+ position: relative;
|
|
|
|
+
|
|
|
|
+ .box-header {
|
|
display: flex;
|
|
display: flex;
|
|
- align-items: center; /* 确保垂直居中 */
|
|
|
|
- justify-content: space-between; /* 使 status 靠右对齐 */
|
|
|
|
- span {
|
|
|
|
- white-space: nowrap;
|
|
|
|
- &.unit {
|
|
|
|
- font-size: 36px; /* 调整字体大小 */
|
|
|
|
- margin-right: 5px; /* 减小单位与日期之间的间距 */
|
|
|
|
- }
|
|
|
|
- &.date {
|
|
|
|
- font-size: 36px; /* 调整字体大小 */
|
|
|
|
- margin-right: auto; /* 使用 auto 推动 status 靠右 */
|
|
|
|
- }
|
|
|
|
- &.status {
|
|
|
|
- font-size: 36px; /* 调整字体大小 */
|
|
|
|
- text-align: right; /* 可选:如果需要进一步对齐内部文本 */
|
|
|
|
- }
|
|
|
|
- &.error {
|
|
|
|
- color: #ff4d4f; /* 发送失败时使用红色 */
|
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ align-items: center;
|
|
|
|
+
|
|
|
|
+ .header-left {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+
|
|
|
|
+ .box-title {
|
|
|
|
+ font-size: 38px;
|
|
|
|
+ font-family: YouSheBiaoTiHei;
|
|
|
|
+ color: #ffffff;
|
|
|
|
+ background-image: url('@/assets/images/taskTracking/titleBox.png');
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
+ background-size: 311px 56px;
|
|
|
|
+ background-position: bottom left;
|
|
|
|
+ padding-left: 50px;
|
|
}
|
|
}
|
|
- &.success {
|
|
|
|
- color: #fff; /* 发送成功时使用黑色 */
|
|
|
|
|
|
+
|
|
|
|
+ .time {
|
|
|
|
+ font-size: 32px;
|
|
|
|
+ color: #00e8ff;
|
|
|
|
+ margin-left: 70px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ .status {
|
|
|
|
+ width: 154px;
|
|
|
|
+ height: 56px;
|
|
|
|
+ line-height: 56px;
|
|
|
|
+ font-size: 32px;
|
|
|
|
+ color: #ffffff;
|
|
|
|
+ border-radius: 10px;
|
|
|
|
+ text-align: center;
|
|
|
|
+ margin-left: 30px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .success {
|
|
|
|
+ background-color: #38c95a;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .error {
|
|
|
|
+ background-color: #ff4d4f;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /* 如果需要更新按钮,可以添加样式 */
|
|
|
|
+ /*
|
|
|
|
+ .btn {
|
|
|
|
+ background-color: #247dff;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ }
|
|
|
|
+ */
|
|
}
|
|
}
|
|
- .content {
|
|
|
|
|
|
+
|
|
|
|
+ .box-content {
|
|
|
|
+ color: #fff;
|
|
|
|
+ font-size: 38px;
|
|
|
|
+ line-height: 1.5;
|
|
margin-top: 10px;
|
|
margin-top: 10px;
|
|
- font-size: 36px; /* 内容字体大小 */
|
|
|
|
- line-height: 1.5; /* 增加行高以适应较大的字体 */
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -181,6 +261,7 @@ onMounted(() => {
|
|
background: url('@/assets/images/commandDynamic/dialog.png') no-repeat;
|
|
background: url('@/assets/images/commandDynamic/dialog.png') no-repeat;
|
|
position: relative;
|
|
position: relative;
|
|
color: #fff;
|
|
color: #fff;
|
|
|
|
+
|
|
.card-content {
|
|
.card-content {
|
|
display: flex;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
flex-wrap: wrap;
|
|
@@ -188,10 +269,20 @@ onMounted(() => {
|
|
width: 2500px;
|
|
width: 2500px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
.title {
|
|
.title {
|
|
position: absolute;
|
|
position: absolute;
|
|
top: 6px;
|
|
top: 6px;
|
|
left: 141px;
|
|
left: 141px;
|
|
font-size: 60px;
|
|
font-size: 60px;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+.resource-scheduling {
|
|
|
|
+ width: 100%;
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ align-items: center;
|
|
|
|
+ font-size: 36px;
|
|
|
|
+ color: #fff;
|
|
|
|
+}
|
|
</style>
|
|
</style>
|