diff --git a/src/bg-ui/bg-code-editor.vue b/src/bg-ui/bg-code-editor.vue index 827c959a8affdfe8d5b0a563b98b3caaeb921b89..7ecb6c65bdab91a110d80d9333bb372febd82f20 100644 --- a/src/bg-ui/bg-code-editor.vue +++ b/src/bg-ui/bg-code-editor.vue @@ -82,20 +82,28 @@ const states = reactive({ const codeChange = () => { emit("update:modelValue", states.content); }; - -onMounted(() => { +const init = (n) => { let obj = ""; // console.log(typeof JSON.parse(this.datas)); try { - if (typeof JSON.parse(props.modelValue) == "object") { - obj = JSON.stringify(JSON.parse(props.modelValue), null, "\t"); + if (typeof JSON.parse(n) == "object") { + obj = JSON.stringify(JSON.parse(n), null, "\t"); } else { - obj = props.modelValue; + obj = n; } } catch (e) { - obj = props.modelValue; + obj = n; } states.content = obj; +}; +watch( + () => props.modelValue, + (n) => { + init(n); + } +); +onMounted(() => { + init(props.modelValue); }); const { content } = toRefs(states); diff --git a/src/bg-ui/bg-table.vue b/src/bg-ui/bg-table.vue index 38ec75b35fed71ea4e02d3da0d83c62fb24c7f03..601448cc7cde85d213250caf4c13bb749a459bfc 100644 --- a/src/bg-ui/bg-table.vue +++ b/src/bg-ui/bg-table.vue @@ -24,7 +24,7 @@ import { watch, ref, nextTick } from "vue"; import { selectTableMixin } from "./hook/mixin-select-table"; -const { - nowSelectData, - allSelectData, - initAllSelectData, - selectData, - initSelectTableData, - runPage, - dealSelectData, -} = selectTableMixin(); +const { nowSelectData, allSelectData, initAllSelectData, selectData, initSelectTableData, runPage, dealSelectData } = + selectTableMixin(); const props = defineProps({ height: { @@ -112,6 +105,11 @@ const props = defineProps({ type: Array, default: () => [], }, + // 自定义返回值用来决定这一行的 CheckBox 是否可以勾选 + selectable: { + type: Function, + default: null, + }, }); const table = ref(null); @@ -198,6 +196,10 @@ const tableRowClassName = ({ row, rowIndex }) => { } }; const selectable = (row, index) => { + // 判断是否传入自定义返回值用来决定这一行的 CheckBox 是否可以勾选,否则使用默认勾选逻辑 + if (props.selectable) { + return props.selectable(row, index); + } if (props.canEdit) { if (row[props.canEditFlag] && row[props.canEditFlag] == 1) { return false; diff --git a/src/components/env.js b/src/components/env.js index b8697a2b9cdd816954712c0dde3044fb87f90fa1..a29f352e70f8c4b24acdd0270ecd1127c254964a 100644 --- a/src/components/env.js +++ b/src/components/env.js @@ -2,4 +2,8 @@ export const TIMEING_RULES = { 1: '手动下发', 2: '按周', 3: '自定义时间' +} +export const MAX_DAY = 7; +export const ONLY_INPUT_NUM = (value) => { + return value.replace(/[^\d]/g, '') } \ No newline at end of file diff --git a/src/components/manual-distribution/form.vue b/src/components/manual-distribution/form.vue index 3dbc95071313d528485f9e9880d4a93df4ecd71b..fa455bea4dc705f03aa6f0f3406f4c2171a69ad5 100644 --- a/src/components/manual-distribution/form.vue +++ b/src/components/manual-distribution/form.vue @@ -268,7 +268,6 @@ defineExpose({ } } .user-table { - max-height: 345px; :deep(.el-table thead th) { background-color: #f5f6f9; } diff --git a/src/components/warn-detail/info.vue b/src/components/warn-detail/info.vue index c14dc02f54d91065120ca2ad68644307ff740ea3..dc9afec6b8bcb8b2eb228f41b0a617eb8e5e804e 100644 --- a/src/components/warn-detail/info.vue +++ b/src/components/warn-detail/info.vue @@ -2,7 +2,7 @@
-
+
{{ item.label }}
@@ -13,7 +13,7 @@ {{ STATUS_OBJ[valueData[item.prop]] }} - {{ valueData[item.prop] }} + {{ valueData[item.prop] }}
@@ -60,7 +60,7 @@ const status_obj = computed(() => { align-items: center; flex: 1; height: 48px; - line-height: 46px; + line-height: 48px; font-size: 14px; color: #404a62; .label { diff --git a/src/page/main/forewarning/indicator-config/add/index.vue b/src/page/main/forewarning/indicator-config/add/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..9f6050d65c66016f0b396fd99e12db9396ad13dc --- /dev/null +++ b/src/page/main/forewarning/indicator-config/add/index.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/src/page/main/forewarning/indicator-config/detail/index.vue b/src/page/main/forewarning/indicator-config/detail/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..09859075608fffc38f081388459fe1839f759e39 --- /dev/null +++ b/src/page/main/forewarning/indicator-config/detail/index.vue @@ -0,0 +1,7 @@ + + + + + diff --git a/src/page/main/forewarning/indicator-config/edit/index.vue b/src/page/main/forewarning/indicator-config/edit/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..3a60c526281aad120711652ecbfcd545d124f3c6 --- /dev/null +++ b/src/page/main/forewarning/indicator-config/edit/index.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/src/page/main/forewarning/indicator-config/index.vue b/src/page/main/forewarning/indicator-config/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..e4379d79e90e875401b21d90f5fdc4cc9eb2dd74 --- /dev/null +++ b/src/page/main/forewarning/indicator-config/index.vue @@ -0,0 +1,384 @@ + + + + + diff --git a/src/page/main/forewarning/indicator-config/modules/add-form.vue b/src/page/main/forewarning/indicator-config/modules/add-form.vue new file mode 100644 index 0000000000000000000000000000000000000000..bf8dcf6c39c88952d7a4e871705cc09c911495c1 --- /dev/null +++ b/src/page/main/forewarning/indicator-config/modules/add-form.vue @@ -0,0 +1,469 @@ + + + + + + diff --git a/src/page/main/forewarning/indicator-config/modules/interface.js b/src/page/main/forewarning/indicator-config/modules/interface.js new file mode 100644 index 0000000000000000000000000000000000000000..37edbf1ffb2a6ba7cff7c90110536f604bc71ac1 --- /dev/null +++ b/src/page/main/forewarning/indicator-config/modules/interface.js @@ -0,0 +1,39 @@ +import { ElMessage } from "element-plus"; +const setParams = (res, { id, class_id }) => { + let params = { + class_id, + metric_name: res.name, + expr: res.indicator_expression, + alert_range: res.warningScopeRows.map((e) => { + return { + variable_name: e.key, + metric_name: e.indicator_scope, + metric_label: e.indicator_tag, + chinese_name: e.cname, + is_required: e.is_required == 1, + is_linked: e.is_linkage == 1, + }; + }) || [], + duration: res.time, + duration_unit: res.unit, + check_period: res.inspection_cycle, + is_enabled: res.state, + alert_rule_type: res.rule_type, + } + if (id) { + params.id = id + } + return params; +} +export const URL = "https://so.wodcloud.co/v1/api/metric_config" +export const Save = (res, p) => { + let params = setParams(res, p); + console.log("params: ", params); + // axios[id ? 'put' : 'post'](URL, params).then(res => { + // if(res.data.code == 200){ + // console.log('success'); + // }else{ + // ElMessage.error(res.data.data) + // } + // }) +} \ No newline at end of file diff --git a/src/page/main/forewarning/indicator-config/modules/slide.vue b/src/page/main/forewarning/indicator-config/modules/slide.vue new file mode 100644 index 0000000000000000000000000000000000000000..4178c045eafd87bd6572e1d261655b41820e7c71 --- /dev/null +++ b/src/page/main/forewarning/indicator-config/modules/slide.vue @@ -0,0 +1,418 @@ + + + + + + diff --git a/src/page/main/forewarning/list/index.vue b/src/page/main/forewarning/list/index.vue index a425c7f9a81cb561affe4f6c09ec2d171ed331d7..adc6888c0d320a2c4ec47e3c2b449d74153693e3 100644 --- a/src/page/main/forewarning/list/index.vue +++ b/src/page/main/forewarning/list/index.vue @@ -87,6 +87,7 @@ :headers="headers" :rows="tableRows" @selectAc="selectRows" + :selectable="selectable" :isIndex="true" :select="true" :stripe="true"> @@ -398,7 +399,9 @@ const filterClear = () => { }; changePage(1); }; // 重置筛选项 - +const selectable = (row, index) => { + return row.state === 0; +}; const getTableRows = () => { let params = { ...state.filter }; // axios diff --git a/src/page/main/forewarning/rule-set/add/index.vue b/src/page/main/forewarning/rule-set/add/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..61d336b31e2f763f976f22ebd2a96c525f092ad9 --- /dev/null +++ b/src/page/main/forewarning/rule-set/add/index.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/src/page/main/forewarning/rule-set/detail/index.vue b/src/page/main/forewarning/rule-set/detail/index.vue index d0315ee59ba3ca0dccff2f06da76cebd1ecced2c..7f702da8eade14bfa437f977da45e7e57e76f378 100644 --- a/src/page/main/forewarning/rule-set/detail/index.vue +++ b/src/page/main/forewarning/rule-set/detail/index.vue @@ -1,7 +1,257 @@ - + - + diff --git a/src/page/main/forewarning/rule-set/edit/index.vue b/src/page/main/forewarning/rule-set/edit/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..ea05c630af2ab21472364879787d3428cd1065f0 --- /dev/null +++ b/src/page/main/forewarning/rule-set/edit/index.vue @@ -0,0 +1,210 @@ + + + + + diff --git a/src/page/main/forewarning/rule-set/index.vue b/src/page/main/forewarning/rule-set/index.vue index 768d19f0468f14b202f3f56da4f603281d62a8db..8a974028df5ef7a7b9909d9a43dac30b45e61d80 100644 --- a/src/page/main/forewarning/rule-set/index.vue +++ b/src/page/main/forewarning/rule-set/index.vue @@ -69,6 +69,7 @@ :headers="headers" :rows="tableRows" @selectAc="selectRows" + :selectable="selectable" :isIndex="true" :select="true" :stripe="true"> @@ -243,7 +244,12 @@ const batchDelete = () => { const goDetail = (row) => { console.log("去详情"); - router.push(`/forewarning/rule-set/detail?id=${row.id}`); + router.push({ + path: "/forewarning/rule-set/detail", + query: { + id: row.id, + }, + }); }; // 查看详情 const changeSearch = (val) => { @@ -267,6 +273,9 @@ const filterClear = () => { changePage(1); }; // 重置筛选项 +const selectable = (row, index) => { + return row.state === 0; +}; const getTableRows = () => { let params = { ...state.filter }; // axios @@ -349,12 +358,19 @@ const stateChange = (row) => { const addRule = () => { console.log("新增"); - // router.push(`/xxx/xxx`); + router.push({ + path: `/forewarning/rule-set/add`, + }); }; // 新增规则 const editRow = (row) => { console.log("编辑"); - // router.push(`/xxx/xxx?id=${row.id}`); + router.push({ + path: `/forewarning/rule-set/edit`, + query: { + id: row.id, + }, + }); }; // 编辑 const deleteRow = (row) => { diff --git a/src/page/main/forewarning/rule-set/modules/add-form.vue b/src/page/main/forewarning/rule-set/modules/add-form.vue new file mode 100644 index 0000000000000000000000000000000000000000..b3f9d11eb884150a21635ee4f87a07061b6ecec0 --- /dev/null +++ b/src/page/main/forewarning/rule-set/modules/add-form.vue @@ -0,0 +1,264 @@ + + + + + + diff --git a/src/page/main/forewarning/rule-set/modules/common-com.vue b/src/page/main/forewarning/rule-set/modules/common-com.vue new file mode 100644 index 0000000000000000000000000000000000000000..364d273f2cbedadcfba5e2758fd29e4e1a1e1fe0 --- /dev/null +++ b/src/page/main/forewarning/rule-set/modules/common-com.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/src/page/main/forewarning/rule-set/modules/custom.vue b/src/page/main/forewarning/rule-set/modules/custom.vue new file mode 100644 index 0000000000000000000000000000000000000000..e2f34e515c3865bc48df7e60049565a3b53ffd76 --- /dev/null +++ b/src/page/main/forewarning/rule-set/modules/custom.vue @@ -0,0 +1,440 @@ + + + + + diff --git a/src/page/main/forewarning/rule-set/modules/gateway.vue b/src/page/main/forewarning/rule-set/modules/gateway.vue new file mode 100644 index 0000000000000000000000000000000000000000..b510074fc4c6c0b465d2264ee352591b309f044b --- /dev/null +++ b/src/page/main/forewarning/rule-set/modules/gateway.vue @@ -0,0 +1,286 @@ + + + + + diff --git a/src/page/main/forewarning/rule-set/modules/static.vue b/src/page/main/forewarning/rule-set/modules/static.vue new file mode 100644 index 0000000000000000000000000000000000000000..2999a0f4bdfd436b4e49a7568a2aa1e223d5e7ea --- /dev/null +++ b/src/page/main/forewarning/rule-set/modules/static.vue @@ -0,0 +1,412 @@ + + + + + diff --git a/src/page/main/ticket/business-ticket-manage/add/index.vue b/src/page/main/ticket/business-ticket-manage/add/index.vue index 142dc23134cfef7bd8c1ea1301866b7741588027..af2b567852c7e8f82e9011c29b6d9440927940e3 100644 --- a/src/page/main/ticket/business-ticket-manage/add/index.vue +++ b/src/page/main/ticket/business-ticket-manage/add/index.vue @@ -63,6 +63,7 @@ const Distribute = async () => { align-items: center; justify-content: flex-end; border-top: 1px solid #ddd; + padding: 0 24px; } } }