Commit 60e7c543 authored by 张耀's avatar 张耀

feat:

优化时间格式方法
parent 38b4f01e
...@@ -37,4 +37,8 @@ export const GetRuleTypeOptions = () => { ...@@ -37,4 +37,8 @@ export const GetRuleTypeOptions = () => {
export const Empty = (key, Obj) => { export const Empty = (key, Obj) => {
let item = Obj[key] let item = Obj[key]
return !item || item.label == '' return !item || item.label == ''
}
export const dateStringToDate = (str) => {
if (!str || typeof str != 'string') return str || "-";
return str.split("+")[0].replace("T", " ").replace("Z", " ")
} }
\ No newline at end of file
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
</Info> </Info>
</div> </div>
<div class="tabs"> <div class="tabs">
<Tab :tabs="tabs" /> <Tab :labels="tabLabels" :data="tabDatas" />
</div> </div>
</div> </div>
</template> </template>
...@@ -27,10 +27,14 @@ const props = defineProps({ ...@@ -27,10 +27,14 @@ const props = defineProps({
type: Object, type: Object,
default: () => ({}), default: () => ({}),
}, },
tabs: { tabLabels: {
type: Array, type: Array,
default: () => [], default: () => [],
}, },
tabDatas: {
type: Object,
default: () => ({}),
},
}); });
</script> </script>
......
<template> <template>
<el-tabs v-model="activeTab" tab-position="top"> <el-tabs v-model="activeTab" tab-position="top">
<el-tab-pane v-for="item in tabs" :key="item.prop" :label="item.label" :name="item.prop"> <el-tab-pane v-for="item in labels" :key="item.prop" :label="item.label" :name="item.prop">
<bg-table <bg-table
ref="listtable" ref="listtable"
:headers="headers[item.prop]" :headers="headers[item.prop]"
:rows="item.lists" :rows="data[item.prop]"
height="100%" height="100%"
:isIndex="true" :isIndex="true"
:stripe="true"> :stripe="true">
...@@ -31,10 +31,14 @@ import { STATUS_OBJ, PUSH_STATUS } from "./env.js"; ...@@ -31,10 +31,14 @@ import { STATUS_OBJ, PUSH_STATUS } from "./env.js";
import { METHODS } from "@/components/manual-distribution/env.js"; import { METHODS } from "@/components/manual-distribution/env.js";
const activeTab = ref("push"); const activeTab = ref("push");
const props = defineProps({ const props = defineProps({
tabs: { labels: {
type: Array, type: Array,
default: () => [], default: () => [],
}, },
data: {
type: Object,
default: () => ({}),
},
methodLists: { methodLists: {
type: Object, type: Object,
default: METHODS, default: METHODS,
......
...@@ -12,14 +12,10 @@ ...@@ -12,14 +12,10 @@
</span> </span>
</template> </template>
<template #create_time="{ valueData }"> <template #create_time="{ valueData }">
<span>{{ <span>{{ dateStringToDate(valueData.create_time) }}</span>
valueData.create_time ? valueData.create_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-"
}}</span>
</template> </template>
<template #update_time="{ valueData }"> <template #update_time="{ valueData }">
<span>{{ <span>{{ dateStringToDate(valueData.update_time) }}</span>
valueData.update_time ? valueData.update_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-"
}}</span>
</template> </template>
</Info> </Info>
</div> </div>
...@@ -70,7 +66,7 @@ import gapTitle from "@/components/gap-title.vue"; ...@@ -70,7 +66,7 @@ import gapTitle from "@/components/gap-title.vue";
import bgBreadcrumb from "@/components/bg-breadcrumb.vue"; import bgBreadcrumb from "@/components/bg-breadcrumb.vue";
import Info from "@/components/warn-detail/info.vue"; import Info from "@/components/warn-detail/info.vue";
import { METHODS } from "@/components/manual-distribution/env.js"; import { METHODS } from "@/components/manual-distribution/env.js";
import { GetRuleTypeOptions, Empty } from "@/components/env.js"; import { GetRuleTypeOptions, Empty, dateStringToDate } from "@/components/env.js";
const route = useRoute(); const route = useRoute();
const { id, type_name, target_name } = route.query; const { id, type_name, target_name } = route.query;
const STATUS_OBJ = { const STATUS_OBJ = {
......
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
v-model="row.is_enabled"></bg-switch> v-model="row.is_enabled"></bg-switch>
</template> </template>
<template v-slot:created_at="{ row }"> <template v-slot:created_at="{ row }">
{{ row.created_at ? row.created_at.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }} {{ dateStringToDate(row.created_at) }}
</template> </template>
<template v-slot:action="{ row }"> <template v-slot:action="{ row }">
<bg-table-btns2 :limit="3" :tableData="tableRows"> <bg-table-btns2 :limit="3" :tableData="tableRows">
...@@ -113,6 +113,7 @@ import Slide from "./modules/slide.vue"; ...@@ -113,6 +113,7 @@ import Slide from "./modules/slide.vue";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import axios from "@/request/http.js"; import axios from "@/request/http.js";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { dateStringToDate } from "@/components/env";
const router = useRouter(); const router = useRouter();
const node = ref({}); const node = ref({});
watch( watch(
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<bg-breadcrumb /> <bg-breadcrumb />
</div> </div>
<div class="content bg-scroll"> <div class="content bg-scroll">
<warn-detail :label-data="labelData" :value-data="info" :tabs="tabs"> <warn-detail :label-data="labelData" :value-data="info" :tabLabels="tabLabels" :tabDatas="tabDatas">
<template #status="{ item, valueData }"> <template #status="{ item, valueData }">
<span class="status-body"> <span class="status-body">
<span class="status" :class="`status-${valueData.status}`"></span> <span class="status" :class="`status-${valueData.status}`"></span>
...@@ -23,6 +23,7 @@ import { useRoute } from "vue-router"; ...@@ -23,6 +23,7 @@ import { useRoute } from "vue-router";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import axios from "@/request/http.js"; import axios from "@/request/http.js";
import { ref, onBeforeMount } from "vue"; import { ref, onBeforeMount } from "vue";
import { dateStringToDate } from "@/components/env";
const route = useRoute(); const route = useRoute();
const { id } = route.query; const { id } = route.query;
const ruleTypeOptions = ref({}); const ruleTypeOptions = ref({});
...@@ -80,31 +81,17 @@ const labelData = [ ...@@ -80,31 +81,17 @@ const labelData = [
], ],
]; ];
const info = ref({}); const info = ref({});
const tabs = ref([ const tabLabels = [
{ {
label: "推送记录", label: "推送记录",
prop: "push", prop: "push",
lists: [],
}, },
{ {
label: "处置记录", label: "处置记录",
prop: "dispose", prop: "dispose",
lists: [
{
status: "error",
feedback: "暂时无法处理,需要时间",
feedback_time: "2022-07-29 10:23:59",
feedback_person: "张三",
},
{
status: "success",
feedback: "暂时无法处理,需要时间",
feedback_time: "2022-07-29 10:23:59",
feedback_person: "张三",
},
],
}, },
]); ];
const tabDatas = ref({});
const pushType = { const pushType = {
1: "自动推送", 1: "自动推送",
2: "手动推送", 2: "手动推送",
...@@ -126,38 +113,29 @@ const getInfo = () => { ...@@ -126,38 +113,29 @@ const getInfo = () => {
ruleTypeOptions.value[data.alert_rule_type]?.unit || "" ruleTypeOptions.value[data.alert_rule_type]?.unit || ""
}-${data.alert_condition.thresholds_max}${ruleTypeOptions.value[data.alert_rule_type]?.unit || ""}`, }-${data.alert_condition.thresholds_max}${ruleTypeOptions.value[data.alert_rule_type]?.unit || ""}`,
current_alarm_value: data.current_value + (ruleTypeOptions.value[data.alert_rule_type]?.unit || ""), current_alarm_value: data.current_value + (ruleTypeOptions.value[data.alert_rule_type]?.unit || ""),
warning_time: data.alert_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-", warning_time: dateStringToDate(data.alert_time),
};
tabDatas.value = {
push:
data.push_records?.map((e) => {
return {
method: e.notify_method,
person: e.system_account,
push_time: dateStringToDate(e.push_time),
push_type: pushType[e.push_type],
status: e.status,
};
}) || [],
dispose:
data.disposed_list?.map((e) => {
return {
status: e.is_disposed,
feedback: e.disposal_content,
feedback_time: dateStringToDate(e.disposal_time),
feedback_person: e.disposal_user,
};
}) || [],
}; };
//
tabs.value = [
{
label: "推送记录",
prop: "push",
lists:
data.push_records?.map((e) => {
return {
method: e.notify_method,
person: e.system_account,
push_time: e.push_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-",
push_type: pushType[e.push_type],
status: e.status,
};
}) || [],
},
{
label: "处置记录",
prop: "dispose",
lists:
data.disposed_list?.map((e) => {
return {
status: e.is_disposed,
feedback: e.disposal_content,
feedback_time: e.disposal_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-",
feedback_person: e.disposal_user,
};
}) || [],
},
];
} }
}); });
}; };
......
...@@ -86,10 +86,10 @@ ...@@ -86,10 +86,10 @@
{{ row.alert_condition.thresholds_max }}{{ ruleTypeOptions[row.alert_rule_type]?.unit || "" }} {{ row.alert_condition.thresholds_max }}{{ ruleTypeOptions[row.alert_rule_type]?.unit || "" }}
</template> </template>
<template v-slot:alert_time="{ row }"> <template v-slot:alert_time="{ row }">
{{ row.alert_time ? row.alert_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }} {{ dateStringToDate(row.alert_time) }}
</template> </template>
<template v-slot:last_push_time="{ row }"> <template v-slot:last_push_time="{ row }">
{{ row.last_push_time ? row.last_push_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }} {{ dateStringToDate(row.last_push_time) }}
</template> </template>
<template #status="{ row }"> <template #status="{ row }">
<span :class="`circle status-${row.status}`"></span> <span :class="`circle status-${row.status}`"></span>
...@@ -176,7 +176,7 @@ import { Search } from "@element-plus/icons-vue"; ...@@ -176,7 +176,7 @@ import { Search } from "@element-plus/icons-vue";
import bgBreadcrumb from "@/components/bg-breadcrumb.vue"; import bgBreadcrumb from "@/components/bg-breadcrumb.vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import ManualDistributionForm from "@/components/manual-distribution/form.vue"; import ManualDistributionForm from "@/components/manual-distribution/form.vue";
import { GetRuleTypeOptions } from "@/components/env.js"; import { GetRuleTypeOptions, dateStringToDate } from "@/components/env";
const router = useRouter(); const router = useRouter();
......
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
v-model="row.is_enabled"></bg-switch> v-model="row.is_enabled"></bg-switch>
</template> </template>
<template v-slot:created_at="{ row }"> <template v-slot:created_at="{ row }">
{{ row.created_at ? row.created_at.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }} {{ dateStringToDate(row.created_at) }}
</template> </template>
<template v-slot:action="{ row }"> <template v-slot:action="{ row }">
<bg-table-btns2 :limit="3" :tableData="tableRows"> <bg-table-btns2 :limit="3" :tableData="tableRows">
...@@ -131,6 +131,7 @@ import axios from "@/request/http.js"; ...@@ -131,6 +131,7 @@ import axios from "@/request/http.js";
import { Search } from "@element-plus/icons-vue"; import { Search } from "@element-plus/icons-vue";
import bgBreadcrumb from "@/components/bg-breadcrumb.vue"; import bgBreadcrumb from "@/components/bg-breadcrumb.vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { dateStringToDate } from "@/components/env";
const METHODS = { const METHODS = {
dingtalk: "钉钉", dingtalk: "钉钉",
sms: "短信", sms: "短信",
......
...@@ -48,6 +48,7 @@ import { ORDER_METHODS } from "@/components/manual-distribution/env.js"; ...@@ -48,6 +48,7 @@ import { ORDER_METHODS } from "@/components/manual-distribution/env.js";
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import axios from "@/request/http.js"; import axios from "@/request/http.js";
import { dateStringToDate } from "@/components/env";
const route = useRoute(); const route = useRoute();
const { id } = route.query; const { id } = route.query;
const ticketLevelOptions = ["", "紧急任务", "重要任务", "一般任务"]; const ticketLevelOptions = ["", "紧急任务", "重要任务", "一般任务"];
...@@ -131,8 +132,8 @@ const getInfo = () => { ...@@ -131,8 +132,8 @@ const getInfo = () => {
ticket_level: ticketLevelOptions[data.order_level], ticket_level: ticketLevelOptions[data.order_level],
create_by: data.create_user, create_by: data.create_user,
description: data.order_desc, description: data.order_desc,
create_time: data.create_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-", create_time: dateStringToDate(data.create_time),
finish_time: data.complete_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-", finish_time: dateStringToDate(data.complete_time),
notification_method: data.push_obj.push_method == "3" ? ["1", "2"] : [data.push_obj.push_method], notification_method: data.push_obj.push_method == "3" ? ["1", "2"] : [data.push_obj.push_method],
}; };
rows.value = data.push_obj.user_obj?.map((e) => { rows.value = data.push_obj.user_obj?.map((e) => {
...@@ -147,7 +148,7 @@ const getInfo = () => { ...@@ -147,7 +148,7 @@ const getInfo = () => {
status: e.order_state, status: e.order_state,
target: e.system_account, target: e.system_account,
feedback: e.result_feedback, feedback: e.result_feedback,
time: e.complete_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-", time: dateStringToDate(e.complete_time),
}; };
}); });
} }
......
...@@ -75,10 +75,10 @@ ...@@ -75,10 +75,10 @@
</span> </span>
</template> </template>
<template #create_time="{ row }"> <template #create_time="{ row }">
{{ row.create_time ? row.create_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }} {{ dateStringToDate(row.create_time) }}
</template> </template>
<template #complete_time="{ row }"> <template #complete_time="{ row }">
{{ row.complete_time ? row.complete_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }} {{ dateStringToDate(row.complete_time) }}
</template> </template>
<template #operation="{ row }"> <template #operation="{ row }">
<el-button type="primary" :disabled="row.order_state != 1" link size="small" @click="operation(row)"> <el-button type="primary" :disabled="row.order_state != 1" link size="small" @click="operation(row)">
...@@ -110,6 +110,7 @@ import CloseTicket from "./close-ticket.vue"; ...@@ -110,6 +110,7 @@ import CloseTicket from "./close-ticket.vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import axios from "@/request/http.js"; import axios from "@/request/http.js";
import { dateStringToDate } from "@/components/env";
const router = useRouter(); const router = useRouter();
const filter = reactive({ const filter = reactive({
order_level: 0, order_level: 0,
......
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
<Info :labelData="labelData" :valueData="info"> <Info :labelData="labelData" :valueData="info">
<template #status="{ item, valueData }"> <template #status="{ item, valueData }">
<span class="status-body"> <span class="status-body">
<span class="status" :class="`status-${valueData.status}`"></span> <span class="status" :class="`status_${valueData.status}`"></span>
<span>{{ statusOptions[valueData[item.prop]] }}</span> <span>{{ timeStateOptions[valueData[item.prop]] }}</span>
</span> </span>
</template> </template>
</Info> </Info>
...@@ -64,10 +64,10 @@ ...@@ -64,10 +64,10 @@
</span> </span>
</template> </template>
<template #create_time="{ row }"> <template #create_time="{ row }">
{{ row.create_time ? row.create_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }} {{ dateStringToDate(row.create_time) }}
</template> </template>
<template #complete_time="{ row }"> <template #complete_time="{ row }">
{{ row.complete_time ? row.complete_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }} {{ dateStringToDate(row.complete_time) }}
</template> </template>
<template #operation="{ row }"> <template #operation="{ row }">
<div class="table-operation"> <div class="table-operation">
...@@ -99,11 +99,13 @@ import { TIMEING_RULES } from "@/components/env.js"; ...@@ -99,11 +99,13 @@ import { TIMEING_RULES } from "@/components/env.js";
import { useRouter, useRoute } from "vue-router"; import { useRouter, useRoute } from "vue-router";
import axios from "@/request/http.js"; import axios from "@/request/http.js";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { dateStringToDate } from "@/components/env";
const route = useRoute(); const route = useRoute();
const { id } = route.query; const { id } = route.query;
const router = useRouter(); const router = useRouter();
const ticketLevelOptions = ["", "紧急任务", "重要任务", "一般任务"]; const ticketLevelOptions = ["", "紧急任务", "重要任务", "一般任务"];
const statusOptions = ["", "待处置", "已完成", "已关闭"]; const statusOptions = ["", "待处置", "已完成", "已关闭"];
const timeStateOptions = ["禁用", "启用"];
const weekDayOptions = { const weekDayOptions = {
1: "周一", 1: "周一",
2: "周二", 2: "周二",
...@@ -120,7 +122,7 @@ const labelData = [ ...@@ -120,7 +122,7 @@ const labelData = [
prop: "ticket_name", prop: "ticket_name",
}, },
{ {
label: "状态", label: "定时是否启用",
prop: "status", prop: "status",
}, },
], ],
...@@ -139,16 +141,10 @@ const labelData = [ ...@@ -139,16 +141,10 @@ const labelData = [
label: "工单描述", label: "工单描述",
prop: "description", prop: "description",
}, },
],
[
{ {
label: "创建时间", label: "创建时间",
prop: "create_time", prop: "create_time",
}, },
{
label: "完成时间",
prop: "finish_time",
},
], ],
]; ];
const info = ref({}); const info = ref({});
...@@ -251,8 +247,8 @@ const getInfoData = () => { ...@@ -251,8 +247,8 @@ const getInfoData = () => {
ticket_level: ticketLevelOptions[data.order_level], ticket_level: ticketLevelOptions[data.order_level],
create_by: data.create_user, create_by: data.create_user,
description: data.order_desc, description: data.order_desc,
create_time: data.create_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-", create_time: dateStringToDate(data.create_time),
finish_time: data.create_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-", finish_time: dateStringToDate(data.create_time),
notification_method: data.push_obj.push_method == 3 ? ["1", "2"] : [`${data.push_obj.push_method}`], notification_method: data.push_obj.push_method == 3 ? ["1", "2"] : [`${data.push_obj.push_method}`],
timing_rules: +data.timing_type, timing_rules: +data.timing_type,
}; };
...@@ -361,13 +357,9 @@ onBeforeMount(() => { ...@@ -361,13 +357,9 @@ onBeforeMount(() => {
height: 6px; height: 6px;
border-radius: 50%; border-radius: 50%;
margin-right: 8px; margin-right: 8px;
$statusObj: ( $statusObj: (-2: #48ad97, -3: #9e9e9e, -1: #3759be, _0: #d75138, _1: #48ad97);
2: #48ad97,
3: #9e9e9e,
1: #3759be,
);
@each $status, $color in $statusObj { @each $status, $color in $statusObj {
&-#{$status} { &#{$status} {
background-color: $color; background-color: $color;
} }
} }
......
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
<span>{{ ruleOptions[row.timing_type] }}</span> <span>{{ ruleOptions[row.timing_type] }}</span>
</template> </template>
<template #create_time="{ row }"> <template #create_time="{ row }">
{{ row.create_time ? row.create_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }} {{ dateStringToDate(row.create_time) }}
</template> </template>
<template #timing_state="{ row }"> <template #timing_state="{ row }">
<el-switch <el-switch
...@@ -156,6 +156,7 @@ import ManualDistribution from "@/components/manual-distribution/index.vue"; ...@@ -156,6 +156,7 @@ import ManualDistribution from "@/components/manual-distribution/index.vue";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import axios from "@/request/http.js"; import axios from "@/request/http.js";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { dateStringToDate } from "@/components/env";
const router = useRouter(); const router = useRouter();
const filter = reactive({ const filter = reactive({
order_level: "", order_level: "",
......
...@@ -48,6 +48,7 @@ import { ORDER_METHODS } from "@/components/manual-distribution/env.js"; ...@@ -48,6 +48,7 @@ import { ORDER_METHODS } from "@/components/manual-distribution/env.js";
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import axios from "@/request/http.js"; import axios from "@/request/http.js";
import { dateStringToDate } from "@/components/env";
const route = useRoute(); const route = useRoute();
const { id } = route.query; const { id } = route.query;
const ticketLevelOptions = ["", "紧急任务", "重要任务", "一般任务"]; const ticketLevelOptions = ["", "紧急任务", "重要任务", "一般任务"];
...@@ -132,8 +133,8 @@ const getInfo = () => { ...@@ -132,8 +133,8 @@ const getInfo = () => {
ticket_level: ticketLevelOptions[data.order_level], ticket_level: ticketLevelOptions[data.order_level],
create_by: data.create_user, create_by: data.create_user,
description: data.order_desc, description: data.order_desc,
create_time: data.create_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-", create_time: dateStringToDate(data.create_time),
finish_time: data.complete_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-", finish_time: dateStringToDate(data.complete_time),
notification_method: data.push_obj.push_method == "3" ? ["1", "2"] : [data.push_obj.push_method], notification_method: data.push_obj.push_method == "3" ? ["1", "2"] : [data.push_obj.push_method],
}; };
rows.value = data.push_obj.user_obj.map((e) => { rows.value = data.push_obj.user_obj.map((e) => {
...@@ -148,7 +149,7 @@ const getInfo = () => { ...@@ -148,7 +149,7 @@ const getInfo = () => {
status: e.order_state, status: e.order_state,
target: e.system_account, target: e.system_account,
feedback: e.result_feedback, feedback: e.result_feedback,
time: e.complete_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-", time: dateStringToDate(e.complete_time),
}; };
}); });
} }
......
...@@ -74,10 +74,10 @@ ...@@ -74,10 +74,10 @@
</span> </span>
</template> </template>
<template #create_time="{ row }"> <template #create_time="{ row }">
{{ row.create_time ? row.create_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }} {{ dateStringToDate(row.create_time) }}
</template> </template>
<template #complete_time="{ row }"> <template #complete_time="{ row }">
{{ row.complete_time ? row.complete_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }} {{ dateStringToDate(row.complete_time) }}
</template> </template>
<template #operation="{ row }"> <template #operation="{ row }">
<el-button type="primary" :disabled="row.order_state != 1" link size="small" @click="operation(row)"> <el-button type="primary" :disabled="row.order_state != 1" link size="small" @click="operation(row)">
...@@ -108,6 +108,7 @@ import FeedBack from "../modules/feedback.vue"; ...@@ -108,6 +108,7 @@ import FeedBack from "../modules/feedback.vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import axios from "@/request/http.js"; import axios from "@/request/http.js";
import { dateStringToDate } from "@/components/env";
const router = useRouter(); const router = useRouter();
const filter = reactive({ const filter = reactive({
order_level: 0, order_level: 0,
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<bg-breadcrumb /> <bg-breadcrumb />
</div> </div>
<div class="content bg-scroll"> <div class="content bg-scroll">
<warn-detail :label-data="labelData" :value-data="info" :tabs="tabs"> <warn-detail :label-data="labelData" :value-data="info" :tabLabels="tabLabels" :tabDatas="tabDatas">
<template #status="{ item, valueData }"> <template #status="{ item, valueData }">
<span class="status-body"> <span class="status-body">
<span class="status" :class="`status-${valueData.status}`"></span> <span class="status" :class="`status-${valueData.status}`"></span>
...@@ -23,6 +23,7 @@ import { useRoute } from "vue-router"; ...@@ -23,6 +23,7 @@ import { useRoute } from "vue-router";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import axios from "@/request/http.js"; import axios from "@/request/http.js";
import { ref, onBeforeMount } from "vue"; import { ref, onBeforeMount } from "vue";
import { dateStringToDate } from "@/components/env";
const route = useRoute(); const route = useRoute();
const { id } = route.query; const { id } = route.query;
const ruleTypeOptions = ref({}); const ruleTypeOptions = ref({});
...@@ -80,31 +81,17 @@ const labelData = [ ...@@ -80,31 +81,17 @@ const labelData = [
], ],
]; ];
const info = ref({}); const info = ref({});
const tabs = ref([ const tabLabels = [
{ {
label: "推送记录", label: "推送记录",
prop: "push", prop: "push",
lists: [],
}, },
{ {
label: "处置记录", label: "处置记录",
prop: "dispose", prop: "dispose",
lists: [
{
status: "error",
feedback: "暂时无法处理,需要时间",
feedback_time: "2022-07-29 10:23:59",
feedback_person: "张三",
},
{
status: "success",
feedback: "暂时无法处理,需要时间",
feedback_time: "2022-07-29 10:23:59",
feedback_person: "张三",
},
],
}, },
]); ];
const tabDatas = ref({});
const pushType = { const pushType = {
1: "自动推送", 1: "自动推送",
2: "手动推送", 2: "手动推送",
...@@ -126,38 +113,29 @@ const getInfo = () => { ...@@ -126,38 +113,29 @@ const getInfo = () => {
ruleTypeOptions.value[data.alert_rule_type]?.unit || "" ruleTypeOptions.value[data.alert_rule_type]?.unit || ""
}-${data.alert_condition.thresholds_max}${ruleTypeOptions.value[data.alert_rule_type]?.unit || ""}`, }-${data.alert_condition.thresholds_max}${ruleTypeOptions.value[data.alert_rule_type]?.unit || ""}`,
current_alarm_value: data.current_value + (ruleTypeOptions.value[data.alert_rule_type]?.unit || ""), current_alarm_value: data.current_value + (ruleTypeOptions.value[data.alert_rule_type]?.unit || ""),
warning_time: data.alert_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-", warning_time: dateStringToDate(data.alert_time),
};
tabDatas.value = {
push:
data.push_records?.map((e) => {
return {
method: e.notify_method,
person: e.system_account,
push_time: dateStringToDate(e.push_time),
push_type: pushType[e.push_type],
status: e.status,
};
}) || [],
dispose:
data.disposed_list?.map((e) => {
return {
status: e.is_disposed,
feedback: e.disposal_content,
feedback_time: dateStringToDate(e.disposal_time),
feedback_person: e.disposal_user,
};
}) || [],
}; };
//
tabs.value = [
{
label: "推送记录",
prop: "push",
lists:
data.push_records?.map((e) => {
return {
method: e.notify_method,
person: e.system_account,
push_time: e.push_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-",
push_type: pushType[e.push_type],
status: e.status,
};
}) || [],
},
{
label: "处置记录",
prop: "dispose",
lists:
data.disposed_list?.map((e) => {
return {
status: e.is_disposed,
feedback: e.disposal_content,
feedback_time: e.disposal_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-",
feedback_person: e.disposal_user,
};
}) || [],
},
];
} }
}); });
}; };
......
...@@ -68,10 +68,10 @@ ...@@ -68,10 +68,10 @@
{{ row.alert_condition.thresholds_max }}{{ ruleTypeOptions[row.alert_rule_type]?.unit || "" }} {{ row.alert_condition.thresholds_max }}{{ ruleTypeOptions[row.alert_rule_type]?.unit || "" }}
</template> </template>
<template v-slot:alert_time="{ row }"> <template v-slot:alert_time="{ row }">
{{ row.alert_time ? row.alert_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }} {{ dateStringToDate(row.alert_time) }}
</template> </template>
<template v-slot:last_push_time="{ row }"> <template v-slot:last_push_time="{ row }">
{{ row.last_push_time ? row.last_push_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }} {{ dateStringToDate(row.last_push_time) }}
</template> </template>
<template #status="{ row }"> <template #status="{ row }">
<span :class="`circle status-${row.status}`"></span> <span :class="`circle status-${row.status}`"></span>
...@@ -106,7 +106,7 @@ import axios from "@/request/http.js"; ...@@ -106,7 +106,7 @@ import axios from "@/request/http.js";
import bgBreadcrumb from "@/components/bg-breadcrumb.vue"; import bgBreadcrumb from "@/components/bg-breadcrumb.vue";
import FeedBack from "../modules/feedback.vue"; import FeedBack from "../modules/feedback.vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { GetRuleTypeOptions } from "@/components/env.js"; import { GetRuleTypeOptions, dateStringToDate } from "@/components/env.js";
const router = useRouter(); const router = useRouter();
const filter = reactive({ const filter = reactive({
risk_level: "", // 风险等级 risk_level: "", // 风险等级
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment