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

feat:

优化时间格式方法
parent 38b4f01e
......@@ -37,4 +37,8 @@ export const GetRuleTypeOptions = () => {
export const Empty = (key, Obj) => {
let item = Obj[key]
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 @@
</Info>
</div>
<div class="tabs">
<Tab :tabs="tabs" />
<Tab :labels="tabLabels" :data="tabDatas" />
</div>
</div>
</template>
......@@ -27,10 +27,14 @@ const props = defineProps({
type: Object,
default: () => ({}),
},
tabs: {
tabLabels: {
type: Array,
default: () => [],
},
tabDatas: {
type: Object,
default: () => ({}),
},
});
</script>
......
<template>
<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
ref="listtable"
:headers="headers[item.prop]"
:rows="item.lists"
:rows="data[item.prop]"
height="100%"
:isIndex="true"
:stripe="true">
......@@ -31,10 +31,14 @@ import { STATUS_OBJ, PUSH_STATUS } from "./env.js";
import { METHODS } from "@/components/manual-distribution/env.js";
const activeTab = ref("push");
const props = defineProps({
tabs: {
labels: {
type: Array,
default: () => [],
},
data: {
type: Object,
default: () => ({}),
},
methodLists: {
type: Object,
default: METHODS,
......
......@@ -12,14 +12,10 @@
</span>
</template>
<template #create_time="{ valueData }">
<span>{{
valueData.create_time ? valueData.create_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-"
}}</span>
<span>{{ dateStringToDate(valueData.create_time) }}</span>
</template>
<template #update_time="{ valueData }">
<span>{{
valueData.update_time ? valueData.update_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-"
}}</span>
<span>{{ dateStringToDate(valueData.update_time) }}</span>
</template>
</Info>
</div>
......@@ -70,7 +66,7 @@ import gapTitle from "@/components/gap-title.vue";
import bgBreadcrumb from "@/components/bg-breadcrumb.vue";
import Info from "@/components/warn-detail/info.vue";
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 { id, type_name, target_name } = route.query;
const STATUS_OBJ = {
......
......@@ -73,7 +73,7 @@
v-model="row.is_enabled"></bg-switch>
</template>
<template v-slot:created_at="{ row }">
{{ row.created_at ? row.created_at.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }}
{{ dateStringToDate(row.created_at) }}
</template>
<template v-slot:action="{ row }">
<bg-table-btns2 :limit="3" :tableData="tableRows">
......@@ -113,6 +113,7 @@ import Slide from "./modules/slide.vue";
import { ElMessage } from "element-plus";
import axios from "@/request/http.js";
import { useRouter } from "vue-router";
import { dateStringToDate } from "@/components/env";
const router = useRouter();
const node = ref({});
watch(
......
......@@ -4,7 +4,7 @@
<bg-breadcrumb />
</div>
<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 }">
<span class="status-body">
<span class="status" :class="`status-${valueData.status}`"></span>
......@@ -23,6 +23,7 @@ import { useRoute } from "vue-router";
import { ElMessage } from "element-plus";
import axios from "@/request/http.js";
import { ref, onBeforeMount } from "vue";
import { dateStringToDate } from "@/components/env";
const route = useRoute();
const { id } = route.query;
const ruleTypeOptions = ref({});
......@@ -80,31 +81,17 @@ const labelData = [
],
];
const info = ref({});
const tabs = ref([
const tabLabels = [
{
label: "推送记录",
prop: "push",
lists: [],
},
{
label: "处置记录",
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 = {
1: "自动推送",
2: "手动推送",
......@@ -126,38 +113,29 @@ const getInfo = () => {
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 || ""),
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 @@
{{ row.alert_condition.thresholds_max }}{{ ruleTypeOptions[row.alert_rule_type]?.unit || "" }}
</template>
<template v-slot:alert_time="{ row }">
{{ row.alert_time ? row.alert_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }}
{{ dateStringToDate(row.alert_time) }}
</template>
<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 #status="{ row }">
<span :class="`circle status-${row.status}`"></span>
......@@ -176,7 +176,7 @@ import { Search } from "@element-plus/icons-vue";
import bgBreadcrumb from "@/components/bg-breadcrumb.vue";
import { useRouter } from "vue-router";
import ManualDistributionForm from "@/components/manual-distribution/form.vue";
import { GetRuleTypeOptions } from "@/components/env.js";
import { GetRuleTypeOptions, dateStringToDate } from "@/components/env";
const router = useRouter();
......
......@@ -92,7 +92,7 @@
v-model="row.is_enabled"></bg-switch>
</template>
<template v-slot:created_at="{ row }">
{{ row.created_at ? row.created_at.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }}
{{ dateStringToDate(row.created_at) }}
</template>
<template v-slot:action="{ row }">
<bg-table-btns2 :limit="3" :tableData="tableRows">
......@@ -131,6 +131,7 @@ import axios from "@/request/http.js";
import { Search } from "@element-plus/icons-vue";
import bgBreadcrumb from "@/components/bg-breadcrumb.vue";
import { useRouter } from "vue-router";
import { dateStringToDate } from "@/components/env";
const METHODS = {
dingtalk: "钉钉",
sms: "短信",
......
......@@ -48,6 +48,7 @@ import { ORDER_METHODS } from "@/components/manual-distribution/env.js";
import { useRoute } from "vue-router";
import { ElMessage } from "element-plus";
import axios from "@/request/http.js";
import { dateStringToDate } from "@/components/env";
const route = useRoute();
const { id } = route.query;
const ticketLevelOptions = ["", "紧急任务", "重要任务", "一般任务"];
......@@ -131,8 +132,8 @@ const getInfo = () => {
ticket_level: ticketLevelOptions[data.order_level],
create_by: data.create_user,
description: data.order_desc,
create_time: data.create_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-",
finish_time: data.complete_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-",
create_time: dateStringToDate(data.create_time),
finish_time: dateStringToDate(data.complete_time),
notification_method: data.push_obj.push_method == "3" ? ["1", "2"] : [data.push_obj.push_method],
};
rows.value = data.push_obj.user_obj?.map((e) => {
......@@ -147,7 +148,7 @@ const getInfo = () => {
status: e.order_state,
target: e.system_account,
feedback: e.result_feedback,
time: e.complete_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-",
time: dateStringToDate(e.complete_time),
};
});
}
......
......@@ -75,10 +75,10 @@
</span>
</template>
<template #create_time="{ row }">
{{ row.create_time ? row.create_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }}
{{ dateStringToDate(row.create_time) }}
</template>
<template #complete_time="{ row }">
{{ row.complete_time ? row.complete_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }}
{{ dateStringToDate(row.complete_time) }}
</template>
<template #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";
import { useRouter } from "vue-router";
import { ElMessage } from "element-plus";
import axios from "@/request/http.js";
import { dateStringToDate } from "@/components/env";
const router = useRouter();
const filter = reactive({
order_level: 0,
......
......@@ -9,8 +9,8 @@
<Info :labelData="labelData" :valueData="info">
<template #status="{ item, valueData }">
<span class="status-body">
<span class="status" :class="`status-${valueData.status}`"></span>
<span>{{ statusOptions[valueData[item.prop]] }}</span>
<span class="status" :class="`status_${valueData.status}`"></span>
<span>{{ timeStateOptions[valueData[item.prop]] }}</span>
</span>
</template>
</Info>
......@@ -64,10 +64,10 @@
</span>
</template>
<template #create_time="{ row }">
{{ row.create_time ? row.create_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }}
{{ dateStringToDate(row.create_time) }}
</template>
<template #complete_time="{ row }">
{{ row.complete_time ? row.complete_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }}
{{ dateStringToDate(row.complete_time) }}
</template>
<template #operation="{ row }">
<div class="table-operation">
......@@ -99,11 +99,13 @@ import { TIMEING_RULES } from "@/components/env.js";
import { useRouter, useRoute } from "vue-router";
import axios from "@/request/http.js";
import { ElMessage } from "element-plus";
import { dateStringToDate } from "@/components/env";
const route = useRoute();
const { id } = route.query;
const router = useRouter();
const ticketLevelOptions = ["", "紧急任务", "重要任务", "一般任务"];
const statusOptions = ["", "待处置", "已完成", "已关闭"];
const timeStateOptions = ["禁用", "启用"];
const weekDayOptions = {
1: "周一",
2: "周二",
......@@ -120,7 +122,7 @@ const labelData = [
prop: "ticket_name",
},
{
label: "状态",
label: "定时是否启用",
prop: "status",
},
],
......@@ -139,16 +141,10 @@ const labelData = [
label: "工单描述",
prop: "description",
},
],
[
{
label: "创建时间",
prop: "create_time",
},
{
label: "完成时间",
prop: "finish_time",
},
],
];
const info = ref({});
......@@ -251,8 +247,8 @@ const getInfoData = () => {
ticket_level: ticketLevelOptions[data.order_level],
create_by: data.create_user,
description: data.order_desc,
create_time: data.create_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-",
finish_time: data.create_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-",
create_time: dateStringToDate(data.create_time),
finish_time: dateStringToDate(data.create_time),
notification_method: data.push_obj.push_method == 3 ? ["1", "2"] : [`${data.push_obj.push_method}`],
timing_rules: +data.timing_type,
};
......@@ -361,13 +357,9 @@ onBeforeMount(() => {
height: 6px;
border-radius: 50%;
margin-right: 8px;
$statusObj: (
2: #48ad97,
3: #9e9e9e,
1: #3759be,
);
$statusObj: (-2: #48ad97, -3: #9e9e9e, -1: #3759be, _0: #d75138, _1: #48ad97);
@each $status, $color in $statusObj {
&-#{$status} {
&#{$status} {
background-color: $color;
}
}
......
......@@ -95,7 +95,7 @@
<span>{{ ruleOptions[row.timing_type] }}</span>
</template>
<template #create_time="{ row }">
{{ row.create_time ? row.create_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }}
{{ dateStringToDate(row.create_time) }}
</template>
<template #timing_state="{ row }">
<el-switch
......@@ -156,6 +156,7 @@ import ManualDistribution from "@/components/manual-distribution/index.vue";
import { ElMessage } from "element-plus";
import axios from "@/request/http.js";
import { useRouter } from "vue-router";
import { dateStringToDate } from "@/components/env";
const router = useRouter();
const filter = reactive({
order_level: "",
......
......@@ -48,6 +48,7 @@ import { ORDER_METHODS } from "@/components/manual-distribution/env.js";
import { useRoute } from "vue-router";
import { ElMessage } from "element-plus";
import axios from "@/request/http.js";
import { dateStringToDate } from "@/components/env";
const route = useRoute();
const { id } = route.query;
const ticketLevelOptions = ["", "紧急任务", "重要任务", "一般任务"];
......@@ -132,8 +133,8 @@ const getInfo = () => {
ticket_level: ticketLevelOptions[data.order_level],
create_by: data.create_user,
description: data.order_desc,
create_time: data.create_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-",
finish_time: data.complete_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-",
create_time: dateStringToDate(data.create_time),
finish_time: dateStringToDate(data.complete_time),
notification_method: data.push_obj.push_method == "3" ? ["1", "2"] : [data.push_obj.push_method],
};
rows.value = data.push_obj.user_obj.map((e) => {
......@@ -148,7 +149,7 @@ const getInfo = () => {
status: e.order_state,
target: e.system_account,
feedback: e.result_feedback,
time: e.complete_time?.split("+")[0].replace("T", " ").replace("Z", " ") || "-",
time: dateStringToDate(e.complete_time),
};
});
}
......
......@@ -74,10 +74,10 @@
</span>
</template>
<template #create_time="{ row }">
{{ row.create_time ? row.create_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }}
{{ dateStringToDate(row.create_time) }}
</template>
<template #complete_time="{ row }">
{{ row.complete_time ? row.complete_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }}
{{ dateStringToDate(row.complete_time) }}
</template>
<template #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";
import { useRouter } from "vue-router";
import { ElMessage } from "element-plus";
import axios from "@/request/http.js";
import { dateStringToDate } from "@/components/env";
const router = useRouter();
const filter = reactive({
order_level: 0,
......
......@@ -4,7 +4,7 @@
<bg-breadcrumb />
</div>
<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 }">
<span class="status-body">
<span class="status" :class="`status-${valueData.status}`"></span>
......@@ -23,6 +23,7 @@ import { useRoute } from "vue-router";
import { ElMessage } from "element-plus";
import axios from "@/request/http.js";
import { ref, onBeforeMount } from "vue";
import { dateStringToDate } from "@/components/env";
const route = useRoute();
const { id } = route.query;
const ruleTypeOptions = ref({});
......@@ -80,31 +81,17 @@ const labelData = [
],
];
const info = ref({});
const tabs = ref([
const tabLabels = [
{
label: "推送记录",
prop: "push",
lists: [],
},
{
label: "处置记录",
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 = {
1: "自动推送",
2: "手动推送",
......@@ -126,38 +113,29 @@ const getInfo = () => {
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 || ""),
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 @@
{{ row.alert_condition.thresholds_max }}{{ ruleTypeOptions[row.alert_rule_type]?.unit || "" }}
</template>
<template v-slot:alert_time="{ row }">
{{ row.alert_time ? row.alert_time.split("+")[0].replace("T", " ").replace("Z", " ") : "-" }}
{{ dateStringToDate(row.alert_time) }}
</template>
<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 #status="{ row }">
<span :class="`circle status-${row.status}`"></span>
......@@ -106,7 +106,7 @@ import axios from "@/request/http.js";
import bgBreadcrumb from "@/components/bg-breadcrumb.vue";
import FeedBack from "../modules/feedback.vue";
import { useRouter } from "vue-router";
import { GetRuleTypeOptions } from "@/components/env.js";
import { GetRuleTypeOptions, dateStringToDate } from "@/components/env.js";
const router = useRouter();
const filter = reactive({
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