From 44f051dac9ceb59774e1ead06706e97e4aea4d52 Mon Sep 17 00:00:00 2001
From: wang-liang0615 <53748875+wang-liang0615@users.noreply.github.com>
Date: Mon, 11 Sep 2023 19:16:05 +0800
Subject: [PATCH] =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=B1=9E=E6=80=A7=20?=
=?UTF-8?q?=E8=A7=A6=E5=8F=91=E8=AE=A1=E7=AE=97=20(#174)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
cmdb-ui/src/modules/cmdb/api/CITypeAttr.js | 7 ++++
.../cmdb/views/ci_types/attributeCard.vue | 17 +++++++-
.../cmdb/views/ci_types/attributeEditForm.vue | 39 ++++++++++++-------
.../cmdb/views/ci_types/computedArea.vue | 22 +++++++++++
4 files changed, 70 insertions(+), 15 deletions(-)
diff --git a/cmdb-ui/src/modules/cmdb/api/CITypeAttr.js b/cmdb-ui/src/modules/cmdb/api/CITypeAttr.js
index dd8aa99..3720c52 100644
--- a/cmdb-ui/src/modules/cmdb/api/CITypeAttr.js
+++ b/cmdb-ui/src/modules/cmdb/api/CITypeAttr.js
@@ -153,3 +153,10 @@ export function canDefineComputed() {
method: 'HEAD',
})
}
+
+export function calcComputedAttribute(attr_id) {
+ return axios({
+ url: `/v0.1/attributes/${attr_id}/calc_computed_attribute`,
+ method: 'PUT',
+ })
+}
diff --git a/cmdb-ui/src/modules/cmdb/views/ci_types/attributeCard.vue b/cmdb-ui/src/modules/cmdb/views/ci_types/attributeCard.vue
index b4ae78e..ab7144e 100644
--- a/cmdb-ui/src/modules/cmdb/views/ci_types/attributeCard.vue
+++ b/cmdb-ui/src/modules/cmdb/views/ci_types/attributeCard.vue
@@ -51,6 +51,9 @@
+
+
+
@@ -59,7 +62,7 @@
diff --git a/cmdb-ui/src/modules/cmdb/views/ci_types/attributeEditForm.vue b/cmdb-ui/src/modules/cmdb/views/ci_types/attributeEditForm.vue
index ab8fbfc..21a3e27 100644
--- a/cmdb-ui/src/modules/cmdb/views/ci_types/attributeEditForm.vue
+++ b/cmdb-ui/src/modules/cmdb/views/ci_types/attributeEditForm.vue
@@ -10,7 +10,7 @@
:headerStyle="{ borderBottom: 'none' }"
wrapClassName="attribute-edit-form"
>
-
+
基础设置
@@ -343,7 +343,13 @@
name="is_password"
v-decorator="['is_computed', { rules: [], valuePropName: 'checked' }]"
/>
-
+
@@ -353,7 +359,7 @@
@@ -366,6 +372,7 @@ import {
updateAttributeById,
updateCITypeAttributesById,
canDefineComputed,
+ calcComputedAttribute,
} from '@/modules/cmdb/api/CITypeAttr'
import { valueTypeMap } from '../../utils/const'
import ComputedArea from './computedArea.vue'
@@ -576,15 +583,14 @@ export default {
})
},
- handleSubmit(e) {
- e.preventDefault()
- this.form.validateFields((err, values) => {
+ async handleSubmit(isCalcComputed = false) {
+ await this.form.validateFields(async (err, values) => {
if (!err) {
console.log('Received values of form: ', values)
if (this.record.is_required !== values.is_required || this.record.default_show !== values.default_show) {
console.log('changed is_required')
- updateCITypeAttributesById(this.CITypeId, {
+ await updateCITypeAttributesById(this.CITypeId, {
attributes: [
{ attr_id: this.record.id, is_required: values.is_required, default_show: values.default_show },
],
@@ -630,19 +636,21 @@ export default {
const fontOptions = this.$refs.fontArea.getData()
if (values.id) {
- this.updateAttribute(values.id, { ...values, option: { fontOptions } })
+ await this.updateAttribute(values.id, { ...values, option: { fontOptions } }, isCalcComputed)
} else {
// this.createAttribute(values)
}
}
})
},
- updateAttribute(attrId, data) {
- updateAttributeById(attrId, data).then((res) => {
- this.$message.success(`更新成功`)
- this.handleOk()
- this.onClose()
- })
+ async updateAttribute(attrId, data, isCalcComputed = false) {
+ await updateAttributeById(attrId, data)
+ if (isCalcComputed) {
+ await calcComputedAttribute(attrId)
+ }
+ this.$message.success(`更新成功`)
+ this.handleOk()
+ this.onClose()
},
handleOk() {
this.$emit('ok')
@@ -682,6 +690,9 @@ export default {
default_value: key,
})
},
+ async handleCalcComputed() {
+ await this.handleSubmit(true)
+ },
},
watch: {},
}
diff --git a/cmdb-ui/src/modules/cmdb/views/ci_types/computedArea.vue b/cmdb-ui/src/modules/cmdb/views/ci_types/computedArea.vue
index 0cc2e8e..0f06347 100644
--- a/cmdb-ui/src/modules/cmdb/views/ci_types/computedArea.vue
+++ b/cmdb-ui/src/modules/cmdb/views/ci_types/computedArea.vue
@@ -8,6 +8,14 @@
代码
+
+
+ 应用
+
+
+
+
+
@@ -25,6 +33,10 @@ export default {
type: Boolean,
default: true,
},
+ showCalcComputed: {
+ type: Boolean,
+ default: false,
+ }
},
data() {
return {
@@ -62,6 +74,16 @@ export default {
this.activeKey = 'expr'
}
},
+ handleCalcComputed() {
+ const that = this
+ this.$confirm({
+ title: '警告',
+ content: `确认触发将保存当前配置及触发所有CI的计算?`,
+ onOk() {
+ that.$emit('handleCalcComputed')
+ },
+ })
+ },
},
}