@@ -13732,6 +13747,14 @@
+ -
+
+
veops-department
+ #veops-department
+
+
-
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 62acbf8..1a67213 100644
--- a/cmdb-ui/src/modules/cmdb/views/ci_types/attributeCard.vue
+++ b/cmdb-ui/src/modules/cmdb/views/ci_types/attributeCard.vue
@@ -74,7 +74,8 @@
!property.is_password &&
!property.is_list &&
!property.is_reference &&
- !property.is_bool
+ !property.is_bool &&
+ !(Array.isArray(property.choice_value) ? property.choice_value.length > 0 : false)
"
:title="$t(isShowId ? 'cmdb.ciType.cancelSetAsShow' : 'cmdb.ciType.setAsShow')"
>
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 caa0caf..e6c71ec 100644
--- a/cmdb-ui/src/modules/cmdb/views/ci_types/attributeEditForm.vue
+++ b/cmdb-ui/src/modules/cmdb/views/ci_types/attributeEditForm.vue
@@ -73,7 +73,7 @@
>
@@ -367,7 +367,10 @@
ref="preValueArea"
:disabled="isShowComputedArea"
:CITypeId="CITypeId"
+ :enumValueType="enumValueType"
/>
+
+ {{ $t('reset') }}
@@ -442,6 +445,7 @@ import PreValueArea from './preValueArea.vue'
import FontArea from './fontArea.vue'
import RegSelect from '@/components/RegexSelect'
import ReferenceModelSelect from './attributeEdit/referenceModelSelect.vue'
+import { ENUM_VALUE_TYPE } from './preValueAttr/constants.js'
export default {
name: 'AttributeEditForm',
@@ -474,6 +478,7 @@ export default {
defaultForDatetime: '',
re_check: {},
+ enumValueType: ENUM_VALUE_TYPE.INPUT
}
},
@@ -686,6 +691,22 @@ export default {
}
const _find = attributes.find((item) => item.id === _record.id)
if (!['6', '7', '10', '11'].includes(_record.value_type)) {
+ switch (_record.value_type) {
+ case '0':
+ case '1':
+ this.enumValueType = ENUM_VALUE_TYPE.NUMBER
+ break
+ case '3':
+ this.enumValueType = ENUM_VALUE_TYPE.DATE_TIME
+ break
+ case '4':
+ this.enumValueType = ENUM_VALUE_TYPE.DATE
+ break
+ default:
+ this.enumValueType = ENUM_VALUE_TYPE.INPUT
+ break
+ }
+
this.$refs.preValueArea.setData({
choice_value: (_find || {}).choice_value || [],
choice_web_hook: _record.choice_web_hook,
@@ -715,8 +736,6 @@ export default {
})
}
- delete values['default_show']
- delete values['is_required']
const { default_value } = values
if (values.value_type === '10') {
values.default = { default: values.is_list ? default_value : Boolean(default_value) }
@@ -748,7 +767,6 @@ export default {
values.default = { default: null }
}
- delete values.default_value
if (values.is_computed) {
const computedAreaData = this.$refs.computedArea.getData()
values = { ...values, ...computedAreaData }
@@ -756,9 +774,18 @@ export default {
// If it is a non-computed attribute, check to see if there is a predefined value
if (!['6', '7', '10', '11'].includes(values.value_type)) {
const preValueAreaData = this.$refs.preValueArea.getData()
+ // 预定义值校验错误
+ if (preValueAreaData?.isError) {
+ return
+ }
values = { ...values, ...preValueAreaData }
}
}
+
+ delete values['default_show']
+ delete values['is_required']
+ delete values.default_value
+
const fontOptions = this.$refs.fontArea.getData()
if (!['6', '10', '11'].includes(values.value_type)) {
@@ -831,10 +858,19 @@ export default {
},
changeDefaultForDatetime(value) {
this.defaultForDatetime = value
- if (value === '$custom_time') {
- this.form.setFieldsValue({
- default_value: undefined,
- })
+ switch (value) {
+ case '$custom_time':
+ this.form.setFieldsValue({
+ default_value: undefined,
+ })
+ break
+ case '$updated_at':
+ this.form.setFieldsValue({
+ is_dynamic: true,
+ })
+ break
+ default:
+ break
}
},
onClick({ key }) {
@@ -862,6 +898,12 @@ export default {
}
return []
},
+
+ resetPreValue() {
+ if (this.$refs.preValueArea) {
+ this.$refs.preValueArea.resetData()
+ }
+ }
},
watch: {},
}
diff --git a/cmdb-ui/src/modules/cmdb/views/ci_types/ceateNewAttribute.vue b/cmdb-ui/src/modules/cmdb/views/ci_types/ceateNewAttribute.vue
index 9b42f0d..074326c 100644
--- a/cmdb-ui/src/modules/cmdb/views/ci_types/ceateNewAttribute.vue
+++ b/cmdb-ui/src/modules/cmdb/views/ci_types/ceateNewAttribute.vue
@@ -359,7 +359,10 @@
:canDefineScript="canDefineScript"
:disabled="isShowComputedArea"
:CITypeId="CITypeId"
+ :enumValueType="enumValueType"
/>
+
+ {{ $t('reset') }}
@@ -416,6 +419,7 @@ import FontArea from './fontArea.vue'
import RegSelect from '@/components/RegexSelect'
import { getPropertyIcon } from '../../utils/helper'
import ReferenceModelSelect from './attributeEdit/referenceModelSelect.vue'
+import { ENUM_VALUE_TYPE } from './preValueAttr/constants.js'
export default {
name: 'CreateNewAttribute',
@@ -458,6 +462,7 @@ export default {
defaultForDatetime: '',
re_check: {},
+ enumValueType: ENUM_VALUE_TYPE.INPUT
}
},
computed: {
@@ -485,8 +490,7 @@ export default {
console.log(values)
const { is_required, default_show, default_value, is_dynamic } = values
const data = { is_required, default_show, is_dynamic }
- delete values.is_required
- delete values.default_show
+
if (values.value_type === '10') {
values.default = { default: values.is_list ? (default_value || null) : Boolean(default_value) }
} else if (values.value_type === '0' && default_value) {
@@ -516,7 +520,7 @@ export default {
} else {
values.default = { default: null }
}
- delete values.default_value
+
if (values.is_computed) {
const computedAreaData = this.$refs.computedArea.getData()
values = { ...values, ...computedAreaData }
@@ -524,9 +528,18 @@ export default {
// If it is a non-computed attribute, check to see if there is a predefined value
if (!['6', '7', '10', '11'].includes(values.value_type)) {
const preValueAreaData = this.$refs.preValueArea.getData()
+ // 预定义值校验错误
+ if (preValueAreaData?.isError) {
+ return
+ }
values = { ...values, ...preValueAreaData }
}
}
+
+ delete values.is_required
+ delete values.default_show
+ delete values.default_value
+
const fontOptions = this.$refs.fontArea.getData()
// 索引
@@ -587,6 +600,28 @@ export default {
if (['6', '10', '11'].includes(value)) {
this.re_check = {}
}
+
+ switch (value) {
+ case '0':
+ case '1':
+ this.enumValueType = ENUM_VALUE_TYPE.NUMBER
+ break
+ case '3':
+ this.enumValueType = ENUM_VALUE_TYPE.DATE_TIME
+ break
+ case '4':
+ this.enumValueType = ENUM_VALUE_TYPE.DATE
+ break
+ default:
+ this.enumValueType = ENUM_VALUE_TYPE.INPUT
+ break
+ }
+ if (['0', '1', '3', '4'].includes(value)) {
+ if (this.$refs.preValueArea) {
+ this.$refs.preValueArea.initEnumValue()
+ }
+ }
+
this.handleSwitchType({ valueType: value })
})
},
@@ -660,10 +695,19 @@ export default {
},
changeDefaultForDatetime(value) {
this.defaultForDatetime = value
- if (value === '$custom_time') {
- this.form.setFieldsValue({
- default_value: undefined,
- })
+ switch (value) {
+ case '$custom_time':
+ this.form.setFieldsValue({
+ default_value: undefined,
+ })
+ break
+ case '$updated_at':
+ this.form.setFieldsValue({
+ is_dynamic: true,
+ })
+ break
+ default:
+ break
}
},
onClick({ key }) {
@@ -688,6 +732,12 @@ export default {
}
return []
},
+
+ resetPreValue() {
+ if (this.$refs.preValueArea) {
+ this.$refs.preValueArea.resetData()
+ }
+ }
},
}
diff --git a/cmdb-ui/src/modules/cmdb/views/ci_types/index.vue b/cmdb-ui/src/modules/cmdb/views/ci_types/index.vue
index a8b6cc1..e7611b0 100644
--- a/cmdb-ui/src/modules/cmdb/views/ci_types/index.vue
+++ b/cmdb-ui/src/modules/cmdb/views/ci_types/index.vue
@@ -545,7 +545,7 @@ export default {
},
showIdSelectOptions() {
const _showIdSelectOptions = this.currentTypeAttrs.filter(
- (item) => item.id !== this.unique_id && !['6'].includes(item.value_type) && !item.is_password && !item.is_list && !item.is_bool && !item.is_reference
+ (item) => item.id !== this.unique_id && !['6'].includes(item.value_type) && !item.is_password && !item.is_list && !item.is_bool && !item.is_reference && !item?.choice_value?.length
)
if (this.showIdFilterInput) {
return _showIdSelectOptions.filter(
diff --git a/cmdb-ui/src/modules/cmdb/views/ci_types/preValueArea.vue b/cmdb-ui/src/modules/cmdb/views/ci_types/preValueArea.vue
index 43137a9..08136e3 100644
--- a/cmdb-ui/src/modules/cmdb/views/ci_types/preValueArea.vue
+++ b/cmdb-ui/src/modules/cmdb/views/ci_types/preValueArea.vue
@@ -7,33 +7,22 @@
:tabBarStyle="{ borderBottom: 'none' }"
>
- {{ $t('define') }}
-
-
-
- {{ $t('add') }}
-
-
-
-
-
+ {{ $t('cmdb.ciType.enum') }}
+
+
+
+
+ {{ $t('cmdb.ciType.builtin') }}
+ Pro
+
+
- Webhook
+ Webhook
@@ -59,7 +48,7 @@
- {{ $t('cmdb.ciType.choiceOther') }}
+ {{ $t('cmdb.ciType.choiceOther') }}
- {{ $t('cmdb.ciType.code') }}
+ {{ $t('cmdb.ciType.code') }}
@@ -211,9 +200,11 @@
2. {{ $t('cmdb.ciType.computedAttrTip2') }}
-