@next-libs/cmdb-instances 7.0.18 → 7.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ModelAttributeForm.js","names":["DEFAULT_ATTRIBUTE_TAG","RefCmdbInstancesSelectPanel","React","forwardRef","CmdbInstancesSelectPanel","ModelAttributeForm","Component","getFeildTag","field","tag","left_tags","__isRelation","constructor","props","labelCol","span","wrapperCol","setState","fixedStyle","getFixedStyle","cardRect","getBoundingClientRect","cardRectData","heightDifferenceBetweenCardRectAndViewPort","top","bottom","window","innerHeight","height","Object","keys","state","length","resizeUpdate","key","includes","permissionListMapOfApp","values","appPermissionAuthorizers","forEach","r","selectedUser","concat","selectedUserGroup","deleteAuthorizers","readAuthorizers","updateAuthorizers","objectId","operateAuthorizers","err","type","continueCreating","sending","result","onSubmit","enabledWhiteList","permissionList","valuesProcess","form","resetFields","setTimeout","e","preventDefault","scrollToFirstError","validateFieldsAndScroll","scroll","offsetTop","offsetBottom","validateFieldsCallback","validateFields","target","checked","relation","InitialRelationValue","get","attributeFormControlInitialValueMap","left_id","initialValue","map","instanceData","instanceId","objectRelations","modelRelations","filter","v","index","relation_list","findIndex","_relation","left_object_id","right_object_id","left_name","formItemProps","getFieldDecorator","rules","relationRules","objectMap","keyBy","isFilterView","modelMap","i18n","t","NS_LIBS_CMDB_INSTANCES","K","ADD","left_max","showDetailUrl","onCancel","objectList","modelData","modifyModelData","hideModelData","view","hide_columns","AttrListGroupByTag","fieldsByTag","items","fields","item","name","getFieldsByTag","basicInfoAttrList","basicInfoAttr","groupTag","attrs","find","isNil","blackList","id","push","attrCategoryOrder","attr_category_order","compact","attrListGroupByTag","showError","defaultValueTemplateIndex","componentDidMount","cardRectResize","ResizeObserver","handleResize","observe","addEventListener","componentWillUnmount","removeEventListener","disconnect","getDerivedStateFromProps","setFieldsValue","getFieldsValue","pickBy","attributeList","Map","has","set","appendAttr","__fieldList","__field","__id","undefined","Array","from","sortAttributeList","tagList","store","prop","handleFormErrors","fieldsError","some","disabled","tagsValidator","attribute","rule","value","callback","isArray","NOT_MEET_REGEX","isValidAll","every","ModelAttributeFormControl","computePattern","test","urlValidator","url","AttributeFormControlUrl","breakDownValue","left_required","leftRequired","getRules","required","requireRule","message","ATTRIBUTE_NAME_REQUIRED","attribute_name","right_description","requiredRule","ModelAttributeValueType","IP","STRING","JSON","whitespace","computeFormControlType","regex","INTEGER","ENUMS","FormControlTypeEnum","URL","validator","TAGS","pattern","error","render","Panel","Collapse","brickList","allowContinueCreate","showCancelButton","cancelText","confirmText","cancelType","defaultUserOrUserGroup","defaultActiveKey","brick","collapse","styles","collapseStyle","list","renderRelationFormControl","description","padding","color","_","isString","stringify","isCreate","header","label","element","options","PERMISSION_WHITELIST","remark","permissionAttrProcess","action","objectListOfUser","submitContainer","generalFormFooter","borderTop","paddingTop","paddingLeft","handleCheckContinueCreating","CREATE_ANOTHER","handleSubmit","SAVE","hasRelateId","isApprove","submitAndContinueBtn","SAVE_AND_CONTINUE","marginLeft","handleCancel","CANCEL","InstanceModelAttributeForm","Form","create"],"sources":["../../../src/model-attribute-form/ModelAttributeForm.tsx"],"sourcesContent":["import React, { Component, FormEvent } from \"react\";\nimport { Form } from \"@ant-design/compatible\";\nimport { Button, Checkbox, Collapse, Tooltip } from \"antd\";\nimport { ButtonType } from \"antd/lib/button\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport {\n CmdbModels,\n InstanceApi_GetDefaultValueTemplateResponseBody,\n InstanceApi_GetDetailResponseBody,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport {\n FormComponentProps,\n FormItemProps,\n ValidationRule,\n} from \"@ant-design/compatible/lib/form\";\nimport {\n FormControlTypeEnum,\n ModelAttributeFormControl,\n ModelAttributeValueType,\n} from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { AttributeFormControlUrl } from \"../attribute-form-control-url/AttributeFormControlUrl\";\nimport _, { get, isNil, keyBy, pickBy, compact } from \"lodash\";\n\nimport { CmdbInstancesSelectPanel } from \"../cmdb-instances-select-panel/CmdbInstancesSelectPanel\";\nimport {\n ModifiedModelCmdbObject,\n ModifiedModelObjectAttr,\n ModifiedModelObjectField,\n ModifiedModelObjectRelation,\n modifyModelData,\n getFixedStyle,\n} from \"@next-libs/cmdb-utils\";\nimport styles from \"./ModelAttributeForm.module.css\";\nimport { UserOrUserGroupSelect } from \"../components\";\nimport { permissionListMapOfApp } from \"./constants\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nconst DEFAULT_ATTRIBUTE_TAG = \"基本信息\";\nexport interface ModelAttributeFormChildren {\n header: string;\n name: string;\n label: string;\n options?: { [key: string]: any };\n}\n\nexport interface FieldsByTag {\n name: string;\n fields: string[];\n}\n\ninterface ModelAttributeFormProps extends FormComponentProps {\n isCreate?: boolean;\n disabled?: boolean;\n objectId?: string;\n allowContinueCreate?: boolean;\n blackList?: string[]; // 黑名单\n brickList?: ModelAttributeFormChildren[];\n fieldsByTag?: FieldsByTag[];\n formItemProps?: FormItemProps;\n onSubmit(data: any): Promise<any>;\n basicInfoAttrList?: Partial<CmdbModels.ModelObjectAttr>[];\n objectList?: Partial<CmdbModels.ModelCmdbObject>[];\n modelRelations?: Partial<CmdbModels.ModelCmdbObject>[];\n modelData?: Partial<CmdbModels.ModelCmdbObject>;\n attributeFormControlInitialValueMap:\n | InstanceApi_GetDefaultValueTemplateResponseBody\n | Partial<InstanceApi_GetDetailResponseBody>;\n showCancelButton?: boolean;\n confirmText?: string;\n cancelText?: string;\n cancelType?: ButtonType;\n onCancel?(): void;\n showDetailUrl?: boolean;\n isFilterView?: boolean;\n objectListOfUser?: Partial<CmdbModels.ModelCmdbObject>[];\n permissionList?: Record<string, any>[];\n enabledWhiteList?: boolean;\n scrollToFirstError?: boolean;\n offsetTop?: number;\n offsetBottom?: number;\n cardRect?: any;\n isApprove?: boolean;\n hasRelateId?: boolean;\n defaultUserOrUserGroup?: {\n selectedUser?: string[];\n selectedUserGroup?: string[];\n };\n}\n\nexport type attributesFieldsByTag = [string, ModifiedModelObjectField[]];\n\nconst RefCmdbInstancesSelectPanel = React.forwardRef(CmdbInstancesSelectPanel);\n\ninterface ModelAttributeFormState {\n sending: boolean;\n attrListGroupByTag: attributesFieldsByTag[];\n continueCreating: boolean;\n showError?: Record<string, any>;\n fixedStyle?: Record<string, any>;\n defaultValueTemplateIndex?: number;\n}\n\nexport class ModelAttributeForm extends Component<\n ModelAttributeFormProps,\n ModelAttributeFormState\n> {\n private modelMap: Record<string, Partial<CmdbModels.ModelCmdbObject>> = {};\n private modelData: Partial<CmdbModels.ModelCmdbObject> = null;\n private cardRectResize: ResizeObserver;\n static defaultProps = {\n showCancelButton: true,\n cancelType: \"default\" as ButtonType,\n };\n\n formItemProps: FormItemProps = {\n labelCol: { span: 6 },\n wrapperCol: { span: 18 },\n };\n\n getFeildTag(field: any) {\n return (\n field?.tag?.[0] ||\n (field as any)?.left_tags?.[0] ||\n (field?.__isRelation ? \"\" : DEFAULT_ATTRIBUTE_TAG)\n );\n }\n\n constructor(props: ModelAttributeFormProps) {\n super(props);\n if (this.props.objectList) {\n this.modelMap = keyBy(this.props.objectList, \"objectId\");\n }\n // istanbul ignore else\n if (this.props.modelData) {\n this.modelData = modifyModelData(this.props.modelData);\n } else {\n if (this.props.objectList) {\n this.modelData = modifyModelData(this.modelMap[this.props.objectId]);\n }\n }\n\n const hideModelData: string[] = this.modelData.view.hide_columns || [];\n let AttrListGroupByTag: attributesFieldsByTag[] = [];\n let fieldsByTag;\n if (props.formItemProps) {\n this.formItemProps = props.formItemProps;\n }\n if (props.fieldsByTag) {\n fieldsByTag = this.props.fieldsByTag.map((items) => {\n let fields;\n if (items.fields) {\n fields = items.fields.filter(\n (item) => item && !hideModelData.includes(item)\n );\n }\n return {\n name: items.name,\n fields,\n };\n });\n AttrListGroupByTag = ModelAttributeForm.getFieldsByTag(\n this.props.basicInfoAttrList,\n fieldsByTag,\n this.modelData\n );\n } else {\n props.basicInfoAttrList.forEach((basicInfoAttr: any) => {\n const groupTag = this.getFeildTag(basicInfoAttr);\n // 关系的情况下,为了避免在模型管理的视图里删除后还会在编辑里出现,去掉默认分组\n\n const attrs = AttrListGroupByTag.find(([key]) => key === groupTag);\n // 判断是否为黑名单内的属性\n if (\n isNil(props.blackList) ||\n !props.blackList.includes(basicInfoAttr.id)\n ) {\n if (attrs) {\n attrs[1].push(basicInfoAttr);\n } else {\n AttrListGroupByTag.push([groupTag, [basicInfoAttr]]);\n }\n }\n });\n // 用于处理分类排序失效的问题\n const attrCategoryOrder = this.modelData?.view?.attr_category_order || [];\n AttrListGroupByTag = attrCategoryOrder?.length\n ? compact(\n attrCategoryOrder.map((v) =>\n AttrListGroupByTag.find(([key]) => key === v)\n )\n )\n : AttrListGroupByTag;\n }\n\n this.state = {\n sending: false,\n attrListGroupByTag: AttrListGroupByTag,\n continueCreating: false,\n showError: {},\n fixedStyle: {},\n defaultValueTemplateIndex: 1,\n };\n }\n\n resizeUpdate = () =>\n this.setState({\n fixedStyle: getFixedStyle(this.props.cardRect?.getBoundingClientRect()),\n });\n handleResize = (): void => {\n const cardRectData = this.props.cardRect?.getBoundingClientRect();\n const heightDifferenceBetweenCardRectAndViewPort =\n cardRectData?.top > 0\n ? cardRectData?.bottom - window.innerHeight\n : cardRectData?.height - window.innerHeight;\n if (\n heightDifferenceBetweenCardRectAndViewPort < 0 &&\n !!Object.keys(this.state.fixedStyle).length\n ) {\n this.setState({ fixedStyle: {} });\n } else if (heightDifferenceBetweenCardRectAndViewPort > 0) {\n this.resizeUpdate();\n }\n };\n componentDidMount(): void {\n if (this.props.cardRect) {\n this.cardRectResize = new ResizeObserver(this.handleResize);\n this.cardRectResize.observe(this.props.cardRect);\n }\n const top =\n this.props.cardRect?.getBoundingClientRect()?.bottom - window.innerHeight;\n if (top > 0) {\n this.setState({\n fixedStyle: getFixedStyle(this.props.cardRect?.getBoundingClientRect()),\n });\n }\n this.props.cardRect && window.addEventListener(\"resize\", this.handleResize);\n }\n\n componentWillUnmount() {\n // 离开页面时移除监听事件\n window.removeEventListener(\"resize\", this.handleResize);\n this.cardRectResize?.disconnect();\n }\n\n static getDerivedStateFromProps(props: any, state: any): any {\n if (props.defaultValueTemplateIndex !== state.defaultValueTemplateIndex) {\n props.form.setFieldsValue({\n ...props.form.getFieldsValue(),\n ...pickBy(props.attributeFormControlInitialValueMap),\n });\n return {\n defaultValueTemplateIndex: props.defaultValueTemplateIndex,\n };\n }\n return null;\n }\n\n static getFieldsByTag(\n attributeList: Partial<CmdbModels.ModelObjectAttr>[],\n fieldsByTag: FieldsByTag[],\n modelData?: Partial<ModifiedModelCmdbObject>\n ): attributesFieldsByTag[] {\n const map = new Map<string, Partial<CmdbModels.ModelObjectAttr>[]>([]);\n\n fieldsByTag.forEach(({ name, fields }) => {\n if (!map.has(name)) {\n map.set(name, []);\n fields.forEach((field) => {\n const appendAttr = modelData\n ? modelData.__fieldList.find((__field) => __field.__id === field)\n : attributeList.find(({ id }) => id === field);\n if (appendAttr !== undefined) {\n map.set(name, [...map.get(name), appendAttr]);\n }\n });\n }\n });\n\n return Array.from(map);\n }\n\n static sortAttributeList(\n attributeList: { [s: string]: Partial<CmdbModels.ModelObjectAttr>[] },\n tagList: { [s: string]: string[] }\n ): { [s: string]: Partial<CmdbModels.ModelObjectAttr>[] } {\n const store: { [s: string]: Partial<CmdbModels.ModelObjectAttr>[] } = {};\n /* istanbul ignore next */\n for (const tag in tagList) {\n if (!store[tag]) {\n store[tag] = [];\n }\n\n tagList[tag].forEach((prop) => {\n const result = attributeList[tag].find((v) => v.id === prop);\n store[tag].push(result);\n });\n }\n\n return store;\n }\n\n handleFormErrors(fieldsError: Record<string, string[] | undefined>) {\n return Object.keys(fieldsError).some((field) => fieldsError[field]);\n }\n permissionAttrProcess = (key: string) => {\n if (key.includes(\"instance_access\")) return \"readAuthorizers\";\n if (key.includes(\"instance_delete\")) return \"deleteAuthorizers\";\n if (key.includes(\"instance_update\")) return \"updateAuthorizers\";\n // HOST特有\n if (key.includes(\"instance_operate\")) return \"operateAuthorizers\";\n // APP特有\n return permissionListMapOfApp[key] || key;\n };\n\n valuesProcess = (values: Record<string, any>) => {\n const appPermissionAuthorizers: Record<string, any> = {};\n Object.values(permissionListMapOfApp).forEach((r) => {\n appPermissionAuthorizers[r] = values[r]\n ? values[r].selectedUser.concat(values[r].selectedUserGroup)\n : [];\n });\n return {\n ...values,\n deleteAuthorizers: values.deleteAuthorizers\n ? values.deleteAuthorizers.selectedUser.concat(\n values.deleteAuthorizers.selectedUserGroup\n )\n : [],\n readAuthorizers: values.readAuthorizers\n ? values.readAuthorizers.selectedUser.concat(\n values.readAuthorizers.selectedUserGroup\n )\n : [],\n updateAuthorizers: values.updateAuthorizers\n ? values.updateAuthorizers.selectedUser.concat(\n values.updateAuthorizers.selectedUserGroup\n )\n : [],\n ...(this.props.objectId === \"HOST\"\n ? {\n operateAuthorizers: values.operateAuthorizers\n ? values.operateAuthorizers.selectedUser.concat(\n values.operateAuthorizers.selectedUserGroup\n )\n : [],\n }\n : {}),\n ...(this.props.objectId === \"APP\" ? appPermissionAuthorizers : {}),\n };\n };\n /* istanbul ignore next */\n validateFieldsCallback = async (err: any, values: any, type?: string) => {\n if (!err) {\n const { continueCreating } = this.state;\n this.setState({ sending: true });\n const result = await this.props.onSubmit({\n continueCreating,\n values:\n this.props.enabledWhiteList && this.props.permissionList\n ? this.valuesProcess(values)\n : values,\n type,\n });\n if (result !== \"error\" && continueCreating) {\n this.props.form.resetFields();\n }\n if (result === \"error\") {\n this.setState({ sending: false });\n }\n if (result !== \"error\" && type === \"continue\") {\n this.props.form.resetFields();\n setTimeout(() => {\n this.setState({ sending: false });\n }, 2500);\n }\n }\n };\n /* istanbul ignore next */\n handleSubmit = (e: FormEvent, type?: string) => {\n e.preventDefault();\n this.props.scrollToFirstError\n ? this.props.form.validateFieldsAndScroll(\n {\n scroll: {\n offsetTop: this.props.offsetTop || 60,\n offsetBottom: this.props.offsetBottom || 100,\n },\n },\n async (err, values) => {\n await this.validateFieldsCallback(err, values, type);\n }\n )\n : this.props.form.validateFields(async (err, values) => {\n await this.validateFieldsCallback(err, values, type);\n });\n };\n\n get disabled(): boolean {\n const { sending } = this.state;\n // const { getFieldsError } = this.props.form;\n return sending;\n }\n\n // get submitBtnText() {\n // return this.props.isCreate\n // ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SAVE}`)\n // : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MODIFICATION}`);\n // }\n\n static tagsValidator(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): (rule: any, value: string[], callback: (msg?: string) => void) => void {\n return (rule: any, value: string[], callback: (msg?: string) => void) => {\n if (!value) {\n return callback();\n }\n if (!Array.isArray(value)) {\n return callback(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_REGEX}`)\n );\n }\n\n const isValidAll = value.every((v) =>\n ModelAttributeFormControl.computePattern(attribute).test(v)\n );\n\n isValidAll\n ? callback()\n : callback(i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_REGEX}`));\n };\n }\n\n static urlValidator(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): (rule: any, value: string, callback: (msg?: string) => void) => void {\n return (rule: any, value: string, callback: (msg?: string) => void) => {\n const { url } = AttributeFormControlUrl.breakDownValue(value);\n ModelAttributeFormControl.computePattern(attribute).test(url)\n ? callback()\n : callback(i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_REGEX}`));\n };\n }\n\n // 关联模型form的rules\n relationRules(\n attribute: Partial<ModifiedModelObjectRelation>\n ): ValidationRule[] {\n const { left_required: leftRequired } = attribute;\n // 获取validationRule规则\n const getRules = (required: boolean, name: string): ValidationRule[] => {\n const requireRule = {\n required,\n message: i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ATTRIBUTE_NAME_REQUIRED}`,\n { attribute_name: name }\n ),\n };\n return [requireRule];\n };\n\n if (leftRequired) {\n return getRules(leftRequired, attribute.right_description);\n }\n\n return [];\n }\n\n rules(attribute: Partial<CmdbModels.ModelObjectAttr>): ValidationRule[] {\n // historical issues: 如果是INTEGER和URL类型暂时不用正则表达式验证\n const required = attribute.required !== \"false\";\n const requiredRule = [\n ModelAttributeValueType.IP,\n ModelAttributeValueType.STRING,\n ModelAttributeValueType.JSON,\n ].includes(attribute.value.type as ModelAttributeValueType)\n ? {\n required,\n whitespace: required,\n message: i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ATTRIBUTE_NAME_REQUIRED}`,\n { attribute_name: attribute.name }\n ),\n }\n : {\n required,\n message: i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ATTRIBUTE_NAME_REQUIRED}`,\n { attribute_name: attribute.name }\n ),\n };\n try {\n const type = ModelAttributeFormControl.computeFormControlType(attribute);\n if (\n attribute.value.regex === null ||\n attribute.value.type === ModelAttributeValueType.INTEGER ||\n attribute.value.type === ModelAttributeValueType.ENUMS\n ) {\n return [requiredRule];\n }\n\n if (type === FormControlTypeEnum.URL) {\n return [\n requiredRule,\n { validator: ModelAttributeForm.urlValidator(attribute) },\n ];\n }\n\n if (type === FormControlTypeEnum.TAGS) {\n return [\n requiredRule,\n { validator: ModelAttributeForm.tagsValidator(attribute) },\n ];\n }\n\n return [\n requiredRule,\n {\n pattern: ModelAttributeFormControl.computePattern(attribute),\n message: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_REGEX}`),\n },\n ];\n } catch (error) {\n // 例如无枚举值、结构体未添加字段等\n return [requiredRule];\n }\n }\n\n handleCheckContinueCreating = (e: any) => {\n this.setState({ continueCreating: e.target.checked });\n };\n\n renderRelationFormControl = (\n relation: Partial<ModifiedModelObjectRelation>\n ) => {\n const InitialRelationValue = get(\n this.props.attributeFormControlInitialValueMap,\n relation.left_id\n );\n const initialValue = InitialRelationValue\n ? InitialRelationValue.map((instanceData: any) => instanceData.instanceId)\n : [];\n\n // 用于获取与当前模型相关联的模型\n const objectRelations = (this.props.modelRelations || []).filter((v) => {\n const index = v.relation_list.findIndex(\n (_relation) =>\n _relation.left_object_id === relation.right_object_id ||\n _relation.right_object_id === relation.right_object_id\n );\n return index > -1;\n });\n\n return (\n <Form.Item\n label={relation.left_name}\n key={relation.left_id}\n {...this.formItemProps}\n >\n {this.props.form.getFieldDecorator(relation.left_id, {\n rules: this.relationRules(relation),\n initialValue,\n })(\n <RefCmdbInstancesSelectPanel\n {...(this.props.modelRelations\n ? { objectMap: keyBy(objectRelations, \"objectId\") }\n : {})}\n isFilterView={this.props.isFilterView}\n modelData={this.modelMap[relation.right_object_id]}\n objectId={relation.right_object_id}\n addTitle={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ADD}`)}\n singleSelect={relation.left_max === 1}\n isOperate={true}\n showDetailUrl={this.props.showDetailUrl}\n relation={relation}\n showSizeChanger={true}\n showPagination={true}\n />\n )}\n </Form.Item>\n );\n };\n\n handleCancel = () => {\n this.setState({ sending: true });\n this.props.onCancel?.();\n };\n\n render(): React.ReactNode {\n const Panel = Collapse.Panel;\n const {\n form,\n attributeFormControlInitialValueMap,\n brickList,\n allowContinueCreate,\n showCancelButton,\n cancelText,\n confirmText,\n cancelType,\n defaultUserOrUserGroup,\n } = this.props;\n const { getFieldDecorator } = form;\n\n let defaultActiveKey = this.state.attrListGroupByTag.map(([key]) => key);\n\n if (Array.isArray(brickList)) {\n defaultActiveKey = [\n ...defaultActiveKey,\n ...brickList.map((brick) => brick.name),\n ];\n }\n if (defaultUserOrUserGroup) {\n defaultActiveKey = [...defaultActiveKey, \"permission\"];\n }\n const collapse = this.state.attrListGroupByTag && (\n <Collapse\n bordered={false}\n defaultActiveKey={defaultActiveKey}\n className={styles.collapseStyle}\n >\n {this.state.attrListGroupByTag.map(([tag, list]) => (\n <Panel header={tag} key={tag} forceRender={true}>\n {list.map((attribute, index) => {\n if (attribute.__isRelation) {\n return this.renderRelationFormControl(attribute);\n } else if (attribute.__isRelation === false) {\n return (\n <Form.Item\n label={\n <span>\n <span>{attribute.name}</span>\n {attribute.description && attribute.description !== \"\" && (\n <Tooltip title={attribute.description}>\n <InfoCircleOutlined\n style={{\n padding: \"0 2px\",\n color: \"var(--theme-blue-color)\",\n }}\n />\n </Tooltip>\n )}\n </span>\n }\n key={attribute.name}\n {...this.formItemProps}\n >\n {getFieldDecorator(attribute.id, {\n rules: this.rules(attribute),\n //默认值为string,但是新建时接口转成了object,故编辑时后台返回的也是object\n initialValue:\n attribute.value.type === \"json\" &&\n !_.isString(\n attributeFormControlInitialValueMap[attribute.id]\n )\n ? JSON.stringify(\n attributeFormControlInitialValueMap[attribute.id],\n null,\n 2\n )\n : attributeFormControlInitialValueMap[attribute.id],\n })(\n <ModelAttributeFormControl\n isCreate={this.props.isCreate}\n attribute={attribute}\n multiSelect={\n attribute?.value?.type ===\n ModelAttributeValueType.ENUMS\n }\n objectId={this.props.objectId}\n jsonValidateCollection={(err: any) => {\n const showError = { ...this.state.showError };\n showError[tag + index] = err;\n this.setState({ showError });\n }}\n />\n )}\n </Form.Item>\n );\n }\n })}\n </Panel>\n ))}\n\n {brickList &&\n brickList.map((brick) => (\n <Panel header={brick.header} key={brick.name}>\n <Form.Item\n label={brick.label}\n key={brick.name}\n {...this.formItemProps}\n >\n <brick.name\n ref={(element: any) => {\n element &&\n ((element[\"value\"] = this.props.form.getFieldsValue()),\n (element[\"options\"] = brick.options));\n }}\n />\n </Form.Item>\n </Panel>\n ))}\n\n {this.props.enabledWhiteList && this.props.permissionList && (\n <Panel\n header={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PERMISSION_WHITELIST}`\n )}\n key={\"permission\"}\n >\n {this.props.permissionList.map((r) => {\n return (\n <Form.Item label={r.remark} key={r.id} {...this.formItemProps}>\n {getFieldDecorator(\n this.permissionAttrProcess(r.action) as string,\n {\n initialValue: defaultUserOrUserGroup,\n }\n )(\n <UserOrUserGroupSelect\n objectMap={keyBy(this.props.objectListOfUser, \"objectId\")}\n optionsMode=\"all\"\n ></UserOrUserGroupSelect>\n )}\n </Form.Item>\n );\n })}\n </Panel>\n )}\n </Collapse>\n );\n const submitContainer = (\n <div\n className={styles.generalFormFooter}\n style={{\n ...this.state.fixedStyle,\n borderTop: \"none\",\n paddingTop: \"16px\",\n paddingLeft: \"20px\",\n }}\n >\n <div className=\"ant-collapse-content-box\">\n <Form.Item {...this.formItemProps} label=\" \" colon={false}>\n {allowContinueCreate && (\n <Checkbox onChange={this.handleCheckContinueCreating}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_ANOTHER}`)}\n </Checkbox>\n )}\n\n <Button\n type=\"primary\"\n onClick={(e) => this.handleSubmit(e)}\n disabled={\n this.disabled ||\n Object.values(this.state.showError).includes(true)\n }\n data-testid=\"submit-btn\"\n >\n {confirmText ?? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SAVE}`)}\n </Button>\n {this.props.isCreate &&\n !this.props.hasRelateId &&\n !this.props.isApprove && (\n <Button\n onClick={(e) => this.handleSubmit(e, \"continue\")}\n className={styles.submitAndContinueBtn}\n disabled={\n this.disabled ||\n Object.values(this.state.showError).includes(true)\n }\n data-testid=\"submit-and-continue-btn\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SAVE_AND_CONTINUE}`)}\n </Button>\n )}\n {showCancelButton && (\n <Button\n type={cancelType}\n style={{ marginLeft: 8 }}\n onClick={this.handleCancel}\n >\n {cancelText ?? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`)}\n </Button>\n )}\n </Form.Item>\n </div>\n </div>\n );\n\n return (\n <Form>\n {collapse}\n {submitContainer}\n </Form>\n );\n }\n}\n\nexport const InstanceModelAttributeForm =\n Form.create<ModelAttributeFormProps>()(ModelAttributeForm);\n"],"mappings":"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"}
1
+ {"version":3,"file":"ModelAttributeForm.js","names":["DEFAULT_ATTRIBUTE_TAG","RefCmdbInstancesSelectPanel","React","forwardRef","CmdbInstancesSelectPanel","ATTRIBUTE_ID_PREFIX","ModelAttributeForm","Component","getFeildTag","field","tag","left_tags","__isRelation","constructor","props","labelCol","span","wrapperCol","setState","fixedStyle","getFixedStyle","cardRect","getBoundingClientRect","cardRectData","heightDifferenceBetweenCardRectAndViewPort","top","bottom","window","innerHeight","height","Object","keys","state","length","resizeUpdate","key","includes","permissionListMapOfApp","values","appPermissionAuthorizers","forEach","r","selectedUser","concat","selectedUserGroup","deleteAuthorizers","readAuthorizers","updateAuthorizers","objectId","operateAuthorizers","err","type","continueCreating","sending","actualValues","fromEntries","entries","map","attrId","value","replace","result","onSubmit","enabledWhiteList","permissionList","valuesProcess","form","resetFields","setTimeout","e","preventDefault","scrollToFirstError","validateFieldsAndScroll","scroll","offsetTop","offsetBottom","validateFieldsCallback","validateFields","target","checked","relation","InitialRelationValue","get","attributeFormControlInitialValueMap","left_id","initialValue","instanceData","instanceId","objectRelations","modelRelations","filter","v","index","relation_list","findIndex","_relation","left_object_id","right_object_id","left_name","formItemProps","getFieldDecorator","rules","relationRules","objectMap","keyBy","isFilterView","modelMap","i18n","t","NS_LIBS_CMDB_INSTANCES","K","ADD","left_max","showDetailUrl","onCancel","objectList","modelData","modifyModelData","hideModelData","view","hide_columns","AttrListGroupByTag","fieldsByTag","items","fields","item","name","getFieldsByTag","basicInfoAttrList","basicInfoAttr","groupTag","attrs","find","isNil","blackList","id","push","attrCategoryOrder","attr_category_order","compact","attrListGroupByTag","showError","defaultValueTemplateIndex","componentDidMount","cardRectResize","ResizeObserver","handleResize","observe","addEventListener","componentWillUnmount","removeEventListener","disconnect","getDerivedStateFromProps","setFieldsValue","getFieldsValue","pickBy","attributeList","Map","has","set","appendAttr","__fieldList","__field","__id","undefined","Array","from","sortAttributeList","tagList","store","prop","handleFormErrors","fieldsError","some","disabled","tagsValidator","attribute","rule","callback","isArray","NOT_MEET_REGEX","isValidAll","every","ModelAttributeFormControl","computePattern","test","urlValidator","url","AttributeFormControlUrl","breakDownValue","left_required","leftRequired","getRules","required","requireRule","message","ATTRIBUTE_NAME_REQUIRED","attribute_name","right_description","requiredRule","ModelAttributeValueType","IP","STRING","JSON","whitespace","computeFormControlType","regex","INTEGER","ENUMS","FormControlTypeEnum","URL","validator","TAGS","pattern","error","render","Panel","Collapse","brickList","allowContinueCreate","showCancelButton","cancelText","confirmText","cancelType","defaultUserOrUserGroup","defaultActiveKey","brick","collapse","styles","collapseStyle","list","renderRelationFormControl","description","padding","color","_","isString","stringify","isCreate","header","label","element","options","PERMISSION_WHITELIST","remark","permissionAttrProcess","action","objectListOfUser","submitContainer","generalFormFooter","borderTop","paddingTop","paddingLeft","handleCheckContinueCreating","CREATE_ANOTHER","handleSubmit","SAVE","hasRelateId","isApprove","submitAndContinueBtn","SAVE_AND_CONTINUE","marginLeft","handleCancel","CANCEL","InstanceModelAttributeForm","Form","create"],"sources":["../../../src/model-attribute-form/ModelAttributeForm.tsx"],"sourcesContent":["import React, { Component, FormEvent } from \"react\";\nimport { Form } from \"@ant-design/compatible\";\nimport { Button, Checkbox, Collapse, Tooltip } from \"antd\";\nimport { ButtonType } from \"antd/lib/button\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport {\n CmdbModels,\n InstanceApi_GetDefaultValueTemplateResponseBody,\n InstanceApi_GetDetailResponseBody,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport {\n FormComponentProps,\n FormItemProps,\n ValidationRule,\n} from \"@ant-design/compatible/lib/form\";\nimport {\n FormControlTypeEnum,\n ModelAttributeFormControl,\n ModelAttributeValueType,\n} from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { AttributeFormControlUrl } from \"../attribute-form-control-url/AttributeFormControlUrl\";\nimport _, { get, isNil, keyBy, pickBy, compact } from \"lodash\";\n\nimport { CmdbInstancesSelectPanel } from \"../cmdb-instances-select-panel/CmdbInstancesSelectPanel\";\nimport {\n ModifiedModelCmdbObject,\n ModifiedModelObjectAttr,\n ModifiedModelObjectField,\n ModifiedModelObjectRelation,\n modifyModelData,\n getFixedStyle,\n} from \"@next-libs/cmdb-utils\";\nimport styles from \"./ModelAttributeForm.module.css\";\nimport { UserOrUserGroupSelect } from \"../components\";\nimport { permissionListMapOfApp } from \"./constants\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nconst DEFAULT_ATTRIBUTE_TAG = \"基本信息\";\nexport interface ModelAttributeFormChildren {\n header: string;\n name: string;\n label: string;\n options?: { [key: string]: any };\n}\n\nexport interface FieldsByTag {\n name: string;\n fields: string[];\n}\n\ninterface ModelAttributeFormProps extends FormComponentProps {\n isCreate?: boolean;\n disabled?: boolean;\n objectId?: string;\n allowContinueCreate?: boolean;\n blackList?: string[]; // 黑名单\n brickList?: ModelAttributeFormChildren[];\n fieldsByTag?: FieldsByTag[];\n formItemProps?: FormItemProps;\n onSubmit(data: any): Promise<any>;\n basicInfoAttrList?: Partial<CmdbModels.ModelObjectAttr>[];\n objectList?: Partial<CmdbModels.ModelCmdbObject>[];\n modelRelations?: Partial<CmdbModels.ModelCmdbObject>[];\n modelData?: Partial<CmdbModels.ModelCmdbObject>;\n attributeFormControlInitialValueMap:\n | InstanceApi_GetDefaultValueTemplateResponseBody\n | Partial<InstanceApi_GetDetailResponseBody>;\n showCancelButton?: boolean;\n confirmText?: string;\n cancelText?: string;\n cancelType?: ButtonType;\n onCancel?(): void;\n showDetailUrl?: boolean;\n isFilterView?: boolean;\n objectListOfUser?: Partial<CmdbModels.ModelCmdbObject>[];\n permissionList?: Record<string, any>[];\n enabledWhiteList?: boolean;\n scrollToFirstError?: boolean;\n offsetTop?: number;\n offsetBottom?: number;\n cardRect?: any;\n isApprove?: boolean;\n hasRelateId?: boolean;\n defaultUserOrUserGroup?: {\n selectedUser?: string[];\n selectedUserGroup?: string[];\n };\n}\n\nexport type attributesFieldsByTag = [string, ModifiedModelObjectField[]];\n\nconst RefCmdbInstancesSelectPanel = React.forwardRef(CmdbInstancesSelectPanel);\nconst ATTRIBUTE_ID_PREFIX = \"__ATTRIBUTE_ID_PREFIX__\";\ninterface ModelAttributeFormState {\n sending: boolean;\n attrListGroupByTag: attributesFieldsByTag[];\n continueCreating: boolean;\n showError?: Record<string, any>;\n fixedStyle?: Record<string, any>;\n defaultValueTemplateIndex?: number;\n}\n\nexport class ModelAttributeForm extends Component<\n ModelAttributeFormProps,\n ModelAttributeFormState\n> {\n private modelMap: Record<string, Partial<CmdbModels.ModelCmdbObject>> = {};\n private modelData: Partial<CmdbModels.ModelCmdbObject> = null;\n private cardRectResize: ResizeObserver;\n static defaultProps = {\n showCancelButton: true,\n cancelType: \"default\" as ButtonType,\n };\n\n formItemProps: FormItemProps = {\n labelCol: { span: 6 },\n wrapperCol: { span: 18 },\n };\n\n getFeildTag(field: any) {\n return (\n field?.tag?.[0] ||\n (field as any)?.left_tags?.[0] ||\n (field?.__isRelation ? \"\" : DEFAULT_ATTRIBUTE_TAG)\n );\n }\n\n constructor(props: ModelAttributeFormProps) {\n super(props);\n if (this.props.objectList) {\n this.modelMap = keyBy(this.props.objectList, \"objectId\");\n }\n // istanbul ignore else\n if (this.props.modelData) {\n this.modelData = modifyModelData(this.props.modelData);\n } else {\n if (this.props.objectList) {\n this.modelData = modifyModelData(this.modelMap[this.props.objectId]);\n }\n }\n\n const hideModelData: string[] = this.modelData.view.hide_columns || [];\n let AttrListGroupByTag: attributesFieldsByTag[] = [];\n let fieldsByTag;\n if (props.formItemProps) {\n this.formItemProps = props.formItemProps;\n }\n if (props.fieldsByTag) {\n fieldsByTag = this.props.fieldsByTag.map((items) => {\n let fields;\n if (items.fields) {\n fields = items.fields.filter(\n (item) => item && !hideModelData.includes(item)\n );\n }\n return {\n name: items.name,\n fields,\n };\n });\n AttrListGroupByTag = ModelAttributeForm.getFieldsByTag(\n this.props.basicInfoAttrList,\n fieldsByTag,\n this.modelData\n );\n } else {\n props.basicInfoAttrList.forEach((basicInfoAttr: any) => {\n const groupTag = this.getFeildTag(basicInfoAttr);\n // 关系的情况下,为了避免在模型管理的视图里删除后还会在编辑里出现,去掉默认分组\n\n const attrs = AttrListGroupByTag.find(([key]) => key === groupTag);\n // 判断是否为黑名单内的属性\n if (\n isNil(props.blackList) ||\n !props.blackList.includes(basicInfoAttr.id)\n ) {\n if (attrs) {\n attrs[1].push(basicInfoAttr);\n } else {\n AttrListGroupByTag.push([groupTag, [basicInfoAttr]]);\n }\n }\n });\n // 用于处理分类排序失效的问题\n const attrCategoryOrder = this.modelData?.view?.attr_category_order || [];\n AttrListGroupByTag = attrCategoryOrder?.length\n ? compact(\n attrCategoryOrder.map((v) =>\n AttrListGroupByTag.find(([key]) => key === v)\n )\n )\n : AttrListGroupByTag;\n }\n\n this.state = {\n sending: false,\n attrListGroupByTag: AttrListGroupByTag,\n continueCreating: false,\n showError: {},\n fixedStyle: {},\n defaultValueTemplateIndex: 1,\n };\n }\n\n resizeUpdate = () =>\n this.setState({\n fixedStyle: getFixedStyle(this.props.cardRect?.getBoundingClientRect()),\n });\n handleResize = (): void => {\n const cardRectData = this.props.cardRect?.getBoundingClientRect();\n const heightDifferenceBetweenCardRectAndViewPort =\n cardRectData?.top > 0\n ? cardRectData?.bottom - window.innerHeight\n : cardRectData?.height - window.innerHeight;\n if (\n heightDifferenceBetweenCardRectAndViewPort < 0 &&\n !!Object.keys(this.state.fixedStyle).length\n ) {\n this.setState({ fixedStyle: {} });\n } else if (heightDifferenceBetweenCardRectAndViewPort > 0) {\n this.resizeUpdate();\n }\n };\n componentDidMount(): void {\n if (this.props.cardRect) {\n this.cardRectResize = new ResizeObserver(this.handleResize);\n this.cardRectResize.observe(this.props.cardRect);\n }\n const top =\n this.props.cardRect?.getBoundingClientRect()?.bottom - window.innerHeight;\n if (top > 0) {\n this.setState({\n fixedStyle: getFixedStyle(this.props.cardRect?.getBoundingClientRect()),\n });\n }\n this.props.cardRect && window.addEventListener(\"resize\", this.handleResize);\n }\n\n componentWillUnmount() {\n // 离开页面时移除监听事件\n window.removeEventListener(\"resize\", this.handleResize);\n this.cardRectResize?.disconnect();\n }\n\n static getDerivedStateFromProps(props: any, state: any): any {\n if (props.defaultValueTemplateIndex !== state.defaultValueTemplateIndex) {\n props.form.setFieldsValue({\n ...props.form.getFieldsValue(),\n ...pickBy(props.attributeFormControlInitialValueMap),\n });\n return {\n defaultValueTemplateIndex: props.defaultValueTemplateIndex,\n };\n }\n return null;\n }\n\n static getFieldsByTag(\n attributeList: Partial<CmdbModels.ModelObjectAttr>[],\n fieldsByTag: FieldsByTag[],\n modelData?: Partial<ModifiedModelCmdbObject>\n ): attributesFieldsByTag[] {\n const map = new Map<string, Partial<CmdbModels.ModelObjectAttr>[]>([]);\n\n fieldsByTag.forEach(({ name, fields }) => {\n if (!map.has(name)) {\n map.set(name, []);\n fields.forEach((field) => {\n const appendAttr = modelData\n ? modelData.__fieldList.find((__field) => __field.__id === field)\n : attributeList.find(({ id }) => id === field);\n if (appendAttr !== undefined) {\n map.set(name, [...map.get(name), appendAttr]);\n }\n });\n }\n });\n\n return Array.from(map);\n }\n\n static sortAttributeList(\n attributeList: { [s: string]: Partial<CmdbModels.ModelObjectAttr>[] },\n tagList: { [s: string]: string[] }\n ): { [s: string]: Partial<CmdbModels.ModelObjectAttr>[] } {\n const store: { [s: string]: Partial<CmdbModels.ModelObjectAttr>[] } = {};\n /* istanbul ignore next */\n for (const tag in tagList) {\n if (!store[tag]) {\n store[tag] = [];\n }\n\n tagList[tag].forEach((prop) => {\n const result = attributeList[tag].find((v) => v.id === prop);\n store[tag].push(result);\n });\n }\n\n return store;\n }\n\n handleFormErrors(fieldsError: Record<string, string[] | undefined>) {\n return Object.keys(fieldsError).some((field) => fieldsError[field]);\n }\n permissionAttrProcess = (key: string) => {\n if (key.includes(\"instance_access\")) return \"readAuthorizers\";\n if (key.includes(\"instance_delete\")) return \"deleteAuthorizers\";\n if (key.includes(\"instance_update\")) return \"updateAuthorizers\";\n // HOST特有\n if (key.includes(\"instance_operate\")) return \"operateAuthorizers\";\n // APP特有\n return permissionListMapOfApp[key] || key;\n };\n\n valuesProcess = (values: Record<string, any>) => {\n const appPermissionAuthorizers: Record<string, any> = {};\n Object.values(permissionListMapOfApp).forEach((r) => {\n appPermissionAuthorizers[r] = values[r]\n ? values[r].selectedUser.concat(values[r].selectedUserGroup)\n : [];\n });\n return {\n ...values,\n deleteAuthorizers: values.deleteAuthorizers\n ? values.deleteAuthorizers.selectedUser.concat(\n values.deleteAuthorizers.selectedUserGroup\n )\n : [],\n readAuthorizers: values.readAuthorizers\n ? values.readAuthorizers.selectedUser.concat(\n values.readAuthorizers.selectedUserGroup\n )\n : [],\n updateAuthorizers: values.updateAuthorizers\n ? values.updateAuthorizers.selectedUser.concat(\n values.updateAuthorizers.selectedUserGroup\n )\n : [],\n ...(this.props.objectId === \"HOST\"\n ? {\n operateAuthorizers: values.operateAuthorizers\n ? values.operateAuthorizers.selectedUser.concat(\n values.operateAuthorizers.selectedUserGroup\n )\n : [],\n }\n : {}),\n ...(this.props.objectId === \"APP\" ? appPermissionAuthorizers : {}),\n };\n };\n /* istanbul ignore next */\n validateFieldsCallback = async (err: any, values: any, type?: string) => {\n if (!err) {\n const { continueCreating } = this.state;\n this.setState({ sending: true });\n const actualValues = Object.fromEntries(\n Object.entries(values).map(([attrId, value]) => [\n attrId.replace(ATTRIBUTE_ID_PREFIX, \"\"),\n value,\n ])\n );\n\n const result = await this.props.onSubmit({\n continueCreating,\n values:\n this.props.enabledWhiteList && this.props.permissionList\n ? this.valuesProcess(actualValues)\n : actualValues,\n type,\n });\n if (result !== \"error\" && continueCreating) {\n this.props.form.resetFields();\n }\n if (result === \"error\") {\n this.setState({ sending: false });\n }\n if (result !== \"error\" && type === \"continue\") {\n this.props.form.resetFields();\n setTimeout(() => {\n this.setState({ sending: false });\n }, 2500);\n }\n }\n };\n /* istanbul ignore next */\n handleSubmit = (e: FormEvent, type?: string) => {\n e.preventDefault();\n this.props.scrollToFirstError\n ? this.props.form.validateFieldsAndScroll(\n {\n scroll: {\n offsetTop: this.props.offsetTop || 60,\n offsetBottom: this.props.offsetBottom || 100,\n },\n },\n async (err, values) => {\n await this.validateFieldsCallback(err, values, type);\n }\n )\n : this.props.form.validateFields(async (err, values) => {\n await this.validateFieldsCallback(err, values, type);\n });\n };\n\n get disabled(): boolean {\n const { sending } = this.state;\n // const { getFieldsError } = this.props.form;\n return sending;\n }\n\n // get submitBtnText() {\n // return this.props.isCreate\n // ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SAVE}`)\n // : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MODIFICATION}`);\n // }\n\n static tagsValidator(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): (rule: any, value: string[], callback: (msg?: string) => void) => void {\n return (rule: any, value: string[], callback: (msg?: string) => void) => {\n if (!value) {\n return callback();\n }\n if (!Array.isArray(value)) {\n return callback(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_REGEX}`)\n );\n }\n\n const isValidAll = value.every((v) =>\n ModelAttributeFormControl.computePattern(attribute).test(v)\n );\n\n isValidAll\n ? callback()\n : callback(i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_REGEX}`));\n };\n }\n\n static urlValidator(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): (rule: any, value: string, callback: (msg?: string) => void) => void {\n return (rule: any, value: string, callback: (msg?: string) => void) => {\n const { url } = AttributeFormControlUrl.breakDownValue(value);\n ModelAttributeFormControl.computePattern(attribute).test(url)\n ? callback()\n : callback(i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_REGEX}`));\n };\n }\n\n // 关联模型form的rules\n relationRules(\n attribute: Partial<ModifiedModelObjectRelation>\n ): ValidationRule[] {\n const { left_required: leftRequired } = attribute;\n // 获取validationRule规则\n const getRules = (required: boolean, name: string): ValidationRule[] => {\n const requireRule = {\n required,\n message: i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ATTRIBUTE_NAME_REQUIRED}`,\n { attribute_name: name }\n ),\n };\n return [requireRule];\n };\n\n if (leftRequired) {\n return getRules(leftRequired, attribute.right_description);\n }\n\n return [];\n }\n\n rules(attribute: Partial<CmdbModels.ModelObjectAttr>): ValidationRule[] {\n // historical issues: 如果是INTEGER和URL类型暂时不用正则表达式验证\n const required = attribute.required !== \"false\";\n const requiredRule = [\n ModelAttributeValueType.IP,\n ModelAttributeValueType.STRING,\n ModelAttributeValueType.JSON,\n ].includes(attribute.value.type as ModelAttributeValueType)\n ? {\n required,\n whitespace: required,\n message: i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ATTRIBUTE_NAME_REQUIRED}`,\n { attribute_name: attribute.name }\n ),\n }\n : {\n required,\n message: i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ATTRIBUTE_NAME_REQUIRED}`,\n { attribute_name: attribute.name }\n ),\n };\n try {\n const type = ModelAttributeFormControl.computeFormControlType(attribute);\n if (\n attribute.value.regex === null ||\n attribute.value.type === ModelAttributeValueType.INTEGER ||\n attribute.value.type === ModelAttributeValueType.ENUMS\n ) {\n return [requiredRule];\n }\n\n if (type === FormControlTypeEnum.URL) {\n return [\n requiredRule,\n { validator: ModelAttributeForm.urlValidator(attribute) },\n ];\n }\n\n if (type === FormControlTypeEnum.TAGS) {\n return [\n requiredRule,\n { validator: ModelAttributeForm.tagsValidator(attribute) },\n ];\n }\n\n return [\n requiredRule,\n {\n pattern: ModelAttributeFormControl.computePattern(attribute),\n message: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_REGEX}`),\n },\n ];\n } catch (error) {\n // 例如无枚举值、结构体未添加字段等\n return [requiredRule];\n }\n }\n\n handleCheckContinueCreating = (e: any) => {\n this.setState({ continueCreating: e.target.checked });\n };\n\n renderRelationFormControl = (\n relation: Partial<ModifiedModelObjectRelation>\n ) => {\n const InitialRelationValue = get(\n this.props.attributeFormControlInitialValueMap,\n relation.left_id\n );\n const initialValue = InitialRelationValue\n ? InitialRelationValue.map((instanceData: any) => instanceData.instanceId)\n : [];\n\n // 用于获取与当前模型相关联的模型\n const objectRelations = (this.props.modelRelations || []).filter((v) => {\n const index = v.relation_list.findIndex(\n (_relation) =>\n _relation.left_object_id === relation.right_object_id ||\n _relation.right_object_id === relation.right_object_id\n );\n return index > -1;\n });\n\n return (\n <Form.Item\n label={relation.left_name}\n key={relation.left_id}\n {...this.formItemProps}\n >\n {this.props.form.getFieldDecorator(relation.left_id, {\n rules: this.relationRules(relation),\n initialValue,\n })(\n <RefCmdbInstancesSelectPanel\n {...(this.props.modelRelations\n ? { objectMap: keyBy(objectRelations, \"objectId\") }\n : {})}\n isFilterView={this.props.isFilterView}\n modelData={this.modelMap[relation.right_object_id]}\n objectId={relation.right_object_id}\n addTitle={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ADD}`)}\n singleSelect={relation.left_max === 1}\n isOperate={true}\n showDetailUrl={this.props.showDetailUrl}\n relation={relation}\n showSizeChanger={true}\n showPagination={true}\n />\n )}\n </Form.Item>\n );\n };\n\n handleCancel = () => {\n this.setState({ sending: true });\n this.props.onCancel?.();\n };\n\n render(): React.ReactNode {\n const Panel = Collapse.Panel;\n const {\n form,\n attributeFormControlInitialValueMap,\n brickList,\n allowContinueCreate,\n showCancelButton,\n cancelText,\n confirmText,\n cancelType,\n defaultUserOrUserGroup,\n } = this.props;\n const { getFieldDecorator } = form;\n\n let defaultActiveKey = this.state.attrListGroupByTag.map(([key]) => key);\n\n if (Array.isArray(brickList)) {\n defaultActiveKey = [\n ...defaultActiveKey,\n ...brickList.map((brick) => brick.name),\n ];\n }\n if (defaultUserOrUserGroup) {\n defaultActiveKey = [...defaultActiveKey, \"permission\"];\n }\n const collapse = this.state.attrListGroupByTag && (\n <Collapse\n bordered={false}\n defaultActiveKey={defaultActiveKey}\n className={styles.collapseStyle}\n >\n {this.state.attrListGroupByTag.map(([tag, list]) => (\n <Panel header={tag} key={tag} forceRender={true}>\n {list.map((attribute, index) => {\n if (attribute.__isRelation) {\n return this.renderRelationFormControl(attribute);\n } else if (attribute.__isRelation === false) {\n return (\n <Form.Item\n label={\n <span>\n <span>{attribute.name}</span>\n {attribute.description && attribute.description !== \"\" && (\n <Tooltip title={attribute.description}>\n <InfoCircleOutlined\n style={{\n padding: \"0 2px\",\n color: \"var(--theme-blue-color)\",\n }}\n />\n </Tooltip>\n )}\n </span>\n }\n key={attribute.name}\n {...this.formItemProps}\n >\n {getFieldDecorator(\n `${ATTRIBUTE_ID_PREFIX + attribute.id}`,\n {\n rules: this.rules(attribute),\n //默认值为string,但是新建时接口转成了object,故编辑时后台返回的也是object\n initialValue:\n attribute.value.type === \"json\" &&\n !_.isString(\n attributeFormControlInitialValueMap[attribute.id]\n )\n ? JSON.stringify(\n attributeFormControlInitialValueMap[\n attribute.id\n ],\n null,\n 2\n )\n : attributeFormControlInitialValueMap[attribute.id],\n }\n )(\n <ModelAttributeFormControl\n isCreate={this.props.isCreate}\n attribute={{\n ...attribute,\n id: `${ATTRIBUTE_ID_PREFIX + attribute.id}`,\n }}\n multiSelect={\n attribute?.value?.type ===\n ModelAttributeValueType.ENUMS\n }\n objectId={this.props.objectId}\n jsonValidateCollection={(err: any) => {\n const showError = { ...this.state.showError };\n showError[tag + index] = err;\n this.setState({ showError });\n }}\n />\n )}\n </Form.Item>\n );\n }\n })}\n </Panel>\n ))}\n\n {brickList &&\n brickList.map((brick) => (\n <Panel header={brick.header} key={brick.name}>\n <Form.Item\n label={brick.label}\n key={brick.name}\n {...this.formItemProps}\n >\n <brick.name\n ref={(element: any) => {\n element &&\n ((element[\"value\"] = this.props.form.getFieldsValue()),\n (element[\"options\"] = brick.options));\n }}\n />\n </Form.Item>\n </Panel>\n ))}\n\n {this.props.enabledWhiteList && this.props.permissionList && (\n <Panel\n header={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PERMISSION_WHITELIST}`\n )}\n key={\"permission\"}\n >\n {this.props.permissionList.map((r) => {\n return (\n <Form.Item label={r.remark} key={r.id} {...this.formItemProps}>\n {getFieldDecorator(\n this.permissionAttrProcess(r.action) as string,\n {\n initialValue: defaultUserOrUserGroup,\n }\n )(\n <UserOrUserGroupSelect\n objectMap={keyBy(this.props.objectListOfUser, \"objectId\")}\n optionsMode=\"all\"\n ></UserOrUserGroupSelect>\n )}\n </Form.Item>\n );\n })}\n </Panel>\n )}\n </Collapse>\n );\n const submitContainer = (\n <div\n className={styles.generalFormFooter}\n style={{\n ...this.state.fixedStyle,\n borderTop: \"none\",\n paddingTop: \"16px\",\n paddingLeft: \"20px\",\n }}\n >\n <div className=\"ant-collapse-content-box\">\n <Form.Item {...this.formItemProps} label=\" \" colon={false}>\n {allowContinueCreate && (\n <Checkbox onChange={this.handleCheckContinueCreating}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_ANOTHER}`)}\n </Checkbox>\n )}\n\n <Button\n type=\"primary\"\n onClick={(e) => this.handleSubmit(e)}\n disabled={\n this.disabled ||\n Object.values(this.state.showError).includes(true)\n }\n data-testid=\"submit-btn\"\n >\n {confirmText ?? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SAVE}`)}\n </Button>\n {this.props.isCreate &&\n !this.props.hasRelateId &&\n !this.props.isApprove && (\n <Button\n onClick={(e) => this.handleSubmit(e, \"continue\")}\n className={styles.submitAndContinueBtn}\n disabled={\n this.disabled ||\n Object.values(this.state.showError).includes(true)\n }\n data-testid=\"submit-and-continue-btn\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SAVE_AND_CONTINUE}`)}\n </Button>\n )}\n {showCancelButton && (\n <Button\n type={cancelType}\n style={{ marginLeft: 8 }}\n onClick={this.handleCancel}\n >\n {cancelText ?? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`)}\n </Button>\n )}\n </Form.Item>\n </div>\n </div>\n );\n\n return (\n <Form>\n {collapse}\n {submitContainer}\n </Form>\n );\n }\n}\n\nexport const InstanceModelAttributeForm =\n Form.create<ModelAttributeFormProps>()(ModelAttributeForm);\n"],"mappings":"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"}
@@ -561,10 +561,10 @@ export class AdvancedSearchForm extends React.Component {
561
561
  showKeys.forEach((showKey, index) => {
562
562
  var _find$name, _find;
563
563
  var nameOfShowKey = (_find$name = (_find = find(relationObject === null || relationObject === void 0 ? void 0 : relationObject.attrList, ["id", showKey])) === null || _find === void 0 ? void 0 : _find.name) !== null && _find$name !== void 0 ? _find$name : showKey;
564
- var id = "_".concat(relation["".concat(sides.this, "_id")], ".").concat(showKey);
564
+ var id = "".concat(relation["".concat(sides.this, "_id")], ".").concat(showKey);
565
565
  var type = ModelAttributeValueType.STRING;
566
566
  fields.push(_objectSpread({
567
- id,
567
+ id: "_".concat(id),
568
568
  name: "".concat(relation["".concat(sides.this, "_name")], "(").concat(nameOfShowKey, ")"),
569
569
  attrValue: {
570
570
  type
@@ -1 +1 @@
1
- {"version":3,"file":"AdvancedSearch.js","names":["React","update","isEqual","find","startsWith","findKey","isNil","flatten","isString","isArray","Form","Button","Col","Input","Row","Select","ComparisonOperators","ElementOperators","forEachAvailableFields","getInstanceNameKeys","LogicalOperators","clusterMap","styles","i18n","NS_LIBS_CMDB_INSTANCES","K","FormControlTypeEnum","ModelAttributeFormControl","ModelAttributeValueType","processAttrValueWithQuote","ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE","ConditionType","FieldTypeConditionTypesMap","STRING","Contain","NotContain","Equal","NotEqual","Empty","NotEmpty","INTEGER","Between","FLOAT","DATE","DATETIME","ENUM","ENUMS","ARR","STRUCT","IP","BOOLEAN","JSON","multiValueSearchOperators","comparisonOperator","Like","logicalOperator","Or","NotLike","And","STRUCT_LIST","getCondition","conditionType","fieldType","label","operations","t","OPERATOR_EQUAL_DEFINE","operator","In","OPERATOR_NOT_EQUAL_DEFINE","NotIn","OPERATOR_CONTAIN_DEFINE","prefix","suffix","OPERATOR_NOT_CONTAIN_DEFINE","OPERATOR_IS_EMPTY_DEFINE","Exists","fixedValue","OPERATOR_IS_NOT_EMPTY_DEFINE","True","False","GreaterThanOrEqual","LessThanOrEqual","OPERATOR_BETWEEN_DEFINE_TEXT_INT","OPERATOR_BETWEEN_DEFINE_TEXT_TIME","OPERATOR_BETWEEN_DEFINE_TEXT","OPERATOR_BETWEEN_DEFINE_TEXT_THE","type","convertValue","valueType","value","parseInt","parseFloat","getFieldConditionsAndValues","fieldQueryOperatorExpressionsMap","id","isRelation","relationSideId","objectId","attrId","isRelationWithNoExpression","expressions","expressionsKeys","relatedKey","v","k","relatedExpressions","Object","keys","currentCondition","availableConditions","map","condition","length","operatorsStr","isFixedValueEqual","every","operation","push","undefined","toString","includes","queryValuesStr","values","i","multiValueSearchOperator","trim","split","join","slice","endsWith","disabled","AdvancedSearchForm","Component","constructor","props","valueIndex","field","fieldIndex","setState","fields","state","$set","hasFixedValues","some","newValues","newFields","relatedFieldIndex","findIndex","f","relatedField","relatedCondition","setFormFieldValues","e","preventDefault","autoSearch","onSearch","queries","queriesToShow","fieldToShow","forEach","fieldQuery","fieldQueryToShow","hasValue","structQueryId","isStruct","attrValue","struct_define","struct_item","index","fieldId","fieldIdToShow","Array","structId","q","form","resetFields","computeState","componentDidUpdate","prevProps","newState","query","entries","key","firstSubQuery","compareOperators","compareOperator","subQueryValue","targetField","fieldItem","item","targetValue","modelData","attr","regex","name","relation","sides","relationObject","idObjectMap","that","showKeys","showKey","nameOfShowKey","attrList","this","fieldIds","reduce","acc","setFieldsValue","getFields","getFieldDecorator","hasBetween","style","multiSelect","SELECT","minWidth","conditionInputGroup","onConditionChange","separatorInput","initialValue","onValueChange","conditionInput","render","advancedSearch","advancedSearchForm","handleSearch","textAlign","SEARCH","marginLeft","handleReset","RESET","AdvancedSearch","create"],"sources":["../../../src/instance-list-table/AdvancedSearch.tsx"],"sourcesContent":["import React, { ChangeEvent, FormEvent } from \"react\";\nimport update from \"immutability-helper\";\nimport {\n isEqual,\n find,\n startsWith,\n findKey,\n isNil,\n flatten,\n isString,\n isArray,\n} from \"lodash\";\nimport { Form } from \"@ant-design/compatible\";\nimport { Button, Col, Input, Row, Select } from \"antd\";\nimport { FormComponentProps } from \"@ant-design/compatible/lib/form\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport {\n ComparisonOperators,\n ElementOperators,\n forEachAvailableFields,\n getInstanceNameKeys,\n LogicalOperators,\n Query,\n QueryOperatorExpressions,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n} from \"@next-libs/cmdb-utils\";\nimport { clusterMap } from \"./constants\";\nimport styles from \"./AdvancedSearch.module.css\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport {\n FormControlTypeEnum,\n ModelAttributeFormControl,\n ModelAttributeValueType,\n} from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport {\n processAttrValueWithQuote,\n ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE,\n} from \"../processors\";\n\nexport enum ConditionType {\n Equal = \"equal\",\n NotEqual = \"notEqual\",\n Contain = \"contain\",\n NotContain = \"notContain\",\n Empty = \"empty\",\n NotEmpty = \"notEmpty\",\n Between = \"between\",\n True = \"true\",\n False = \"false\",\n}\n\ninterface ConditionOperation {\n operator: ComparisonOperators | ElementOperators;\n fixedValue?: any;\n prefix?: string;\n suffix?: string;\n}\n\ninterface Condition {\n type: ConditionType;\n label: string;\n operations: ConditionOperation[];\n}\n\nconst FieldTypeConditionTypesMap: Record<string, ConditionType[]> = {\n [ModelAttributeValueType.STRING]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.INTEGER]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.FLOAT]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.DATE]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.DATETIME]: [\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.ENUM]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.ENUMS]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.ARR]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.STRUCT]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.IP]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.BOOLEAN]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.JSON]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n};\n\nconst multiValueSearchOperators = [\n {\n comparisonOperator: ComparisonOperators.Like,\n logicalOperator: LogicalOperators.Or,\n },\n {\n comparisonOperator: ComparisonOperators.NotLike,\n logicalOperator: LogicalOperators.And,\n },\n {\n comparisonOperator: ComparisonOperators.Equal,\n logicalOperator: LogicalOperators.Or,\n },\n {\n comparisonOperator: ComparisonOperators.NotEqual,\n logicalOperator: LogicalOperators.And,\n },\n];\nFieldTypeConditionTypesMap[ModelAttributeValueType.STRUCT_LIST] =\n FieldTypeConditionTypesMap[ModelAttributeValueType.STRUCT];\n\nexport function getCondition(\n conditionType: ConditionType,\n fieldType: ModelAttributeValueType\n): Condition {\n let label: string;\n let operations: ConditionOperation[];\n\n switch (conditionType) {\n case ConditionType.Equal:\n label = i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_EQUAL_DEFINE}`);\n switch (fieldType) {\n case ModelAttributeValueType.ARR:\n operations = [\n {\n operator: ComparisonOperators.In,\n },\n ];\n break;\n default:\n operations = [\n {\n operator: ComparisonOperators.Equal,\n },\n ];\n }\n break;\n case ConditionType.NotEqual:\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_NOT_EQUAL_DEFINE}`\n );\n switch (fieldType) {\n case ModelAttributeValueType.ARR:\n operations = [\n {\n operator: ComparisonOperators.NotIn,\n },\n ];\n break;\n default:\n operations = [\n {\n operator: ComparisonOperators.NotEqual,\n },\n ];\n }\n break;\n case ConditionType.Contain:\n label = i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_CONTAIN_DEFINE}`);\n switch (fieldType) {\n case ModelAttributeValueType.ENUMS:\n operations = [\n {\n operator: ComparisonOperators.In,\n },\n ];\n break;\n default:\n operations = [\n {\n operator: ComparisonOperators.Like,\n prefix: \"%\",\n suffix: \"%\",\n },\n ];\n }\n break;\n case ConditionType.NotContain:\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_NOT_CONTAIN_DEFINE}`\n );\n switch (fieldType) {\n case ModelAttributeValueType.ENUMS:\n operations = [\n {\n operator: ComparisonOperators.NotIn,\n },\n ];\n break;\n default:\n operations = [\n {\n operator: ComparisonOperators.NotLike,\n prefix: \"%\",\n suffix: \"%\",\n },\n ];\n }\n break;\n case ConditionType.Empty:\n label = i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_IS_EMPTY_DEFINE}`);\n operations = [\n {\n operator: ElementOperators.Exists,\n fixedValue: false,\n },\n ];\n break;\n case ConditionType.NotEmpty:\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_IS_NOT_EMPTY_DEFINE}`\n );\n operations = [\n {\n operator: ElementOperators.Exists,\n fixedValue: true,\n },\n ];\n break;\n case ConditionType.True:\n label = \"true\";\n operations = [\n {\n operator: ComparisonOperators.Equal,\n fixedValue: true,\n },\n ];\n break;\n case ConditionType.False:\n label = \"false\";\n operations = [\n {\n operator: ComparisonOperators.Equal,\n fixedValue: false,\n },\n ];\n break;\n case ConditionType.Between:\n operations = [\n {\n operator: ComparisonOperators.GreaterThanOrEqual,\n },\n {\n operator: ComparisonOperators.LessThanOrEqual,\n },\n ];\n switch (fieldType) {\n case ModelAttributeValueType.INTEGER:\n case ModelAttributeValueType.FLOAT:\n // label = \"在此区间\";\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_BETWEEN_DEFINE_TEXT_INT}`\n );\n break;\n case ModelAttributeValueType.DATE:\n case ModelAttributeValueType.DATETIME:\n // label = \"在此期间\";\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_BETWEEN_DEFINE_TEXT_TIME}`\n );\n break;\n case ModelAttributeValueType.IP:\n // label = \"范围\";\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_BETWEEN_DEFINE_TEXT}`\n );\n break;\n default:\n // label = \"在此之间\";\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_BETWEEN_DEFINE_TEXT_THE}`\n );\n }\n break;\n }\n\n return {\n type: conditionType,\n label,\n operations,\n };\n}\n\nexport function convertValue(valueType: string, value: any): any {\n if (typeof value !== \"boolean\") {\n switch (valueType) {\n case ModelAttributeValueType.INTEGER:\n return parseInt(value);\n case ModelAttributeValueType.FLOAT:\n return parseFloat(value);\n case ModelAttributeValueType.BOOLEAN:\n return value === \"true\";\n }\n }\n return value;\n}\n\nexport function getFieldConditionsAndValues(\n fieldQueryOperatorExpressionsMap: Record<string, QueryOperatorExpressions>,\n id: string,\n valueType: ModelAttributeValueType,\n isRelation?: boolean,\n relationSideId?: string,\n objectId?: string,\n attrId?: string\n) {\n let isRelationWithNoExpression = false;\n let expressions = fieldQueryOperatorExpressionsMap[id];\n let expressionsKeys: string[];\n if (!expressions && isRelation) {\n isRelationWithNoExpression = true;\n const relatedKey = findKey(\n fieldQueryOperatorExpressionsMap,\n (v, k) => startsWith(k, `${relationSideId}.`) || k === relationSideId\n );\n const relatedExpressions = fieldQueryOperatorExpressionsMap[relatedKey];\n if (\n relatedExpressions &&\n !isNil(relatedExpressions[ElementOperators.Exists])\n ) {\n expressions = fieldQueryOperatorExpressionsMap[relatedKey];\n }\n }\n\n if (expressions) {\n expressionsKeys = Object.keys(expressions);\n }\n let currentCondition: Condition;\n const availableConditions = FieldTypeConditionTypesMap[valueType].map(\n (conditionType) => {\n const condition = getCondition(conditionType, valueType);\n\n if (expressionsKeys?.length) {\n const operatorsStr: string[] = [];\n // 由于当 ConditionType.Between ,operations 有两个,当用户只填选一个时,currentCondition会默认第一个选择器。与实际不符\n const isFixedValueEqual = condition.operations.every((operation) => {\n operatorsStr.push(operation.operator);\n\n if (operation.fixedValue !== undefined) {\n return (\n operation.fixedValue?.toString() ===\n expressions[operation?.operator]?.toString()\n );\n } else {\n return true;\n }\n });\n if (\n isFixedValueEqual &&\n expressionsKeys.every((operator) => operatorsStr.includes(operator))\n ) {\n currentCondition = condition;\n }\n }\n\n return condition;\n }\n );\n if (!currentCondition) {\n currentCondition = availableConditions[0];\n }\n let queryValuesStr = \"\";\n const values = currentCondition.operations.map((operation) => {\n let value: any;\n // istanbul ignore else ElementOperators.Exists时直接返回fixedValue\n if (\n expressions?.[operation.operator] !== undefined &&\n operation.operator !== ElementOperators.Exists\n ) {\n value = expressions[operation.operator];\n let values = [expressions[operation.operator]];\n const i = multiValueSearchOperators.find(\n (multiValueSearchOperator) =>\n multiValueSearchOperator.comparisonOperator === operation.operator\n );\n if (i) {\n if (\n valueType === ModelAttributeValueType.ENUM ||\n typeof expressions[operation.operator] === \"string\"\n ) {\n values = expressions[operation.operator]\n .trim()\n .split(/\\s+/)\n .map((value: string) => convertValue(valueType, value));\n if (objectId === \"CLUSTER\" && attrId === \"type\") {\n values = values.map((value) => clusterMap[value]);\n }\n }\n }\n if (\n typeof values[0] === \"string\" ||\n typeof values[0] === \"number\" ||\n typeof values[0] === \"boolean\"\n ) {\n queryValuesStr = values.join(\" \");\n values = values.map((value: string) => {\n if (operation.prefix && value.startsWith(operation.prefix)) {\n value = value.slice(operation.prefix.length);\n }\n if (operation.suffix && value.endsWith(operation.suffix)) {\n value = value.slice(0, value.length - operation.suffix.length);\n }\n return value;\n });\n value = [\n ModelAttributeValueType.ENUM,\n ModelAttributeValueType.ARR,\n ].includes(valueType)\n ? values\n : values.join(\" \");\n }\n } else {\n value = operation.fixedValue !== undefined ? operation.fixedValue : null;\n }\n\n return value;\n });\n const disabled = false;\n return {\n availableConditions,\n currentCondition,\n values,\n queryValuesStr,\n disabled,\n };\n}\n\nexport interface Field {\n id: string;\n name: string;\n attrValue: Partial<CmdbModels.ModelObjectAttrValue>;\n values: any[];\n availableConditions: Condition[];\n currentCondition: Condition;\n isRelation: boolean;\n relationSideId?: string;\n disabled?: boolean;\n}\n\nexport interface AdvancedSearchFormProps extends FormComponentProps {\n fieldIds?: string[];\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n q?: Query[];\n placeholder?: string;\n onSearch?(\n queries: Query[],\n queriesToShow?: Query[],\n fieldToShow?: Record<string, any[]>[]\n ): void;\n autoSearch?: (fields: Field[]) => void;\n fieldToShow?: Record<string, any[]>[]; // 回填高级搜索的field值(根据query回填丢失了引号信息)\n onChange?(e: ChangeEvent<HTMLInputElement>): void;\n}\n\nexport interface AdvancedSearchFormState {\n fields: Field[];\n}\n\nexport class AdvancedSearchForm extends React.Component<\n AdvancedSearchFormProps,\n AdvancedSearchFormState\n> {\n constructor(props: AdvancedSearchFormProps) {\n super(props);\n\n this.state = this.computeState();\n }\n\n componentDidUpdate(prevProps: Readonly<AdvancedSearchFormProps>): void {\n if (!isEqual(this.props.q, prevProps.q)) {\n const newState = this.computeState();\n this.setState(newState);\n\n this.setFormFieldValues(newState.fields);\n }\n }\n\n computeState(): { fields: Field[] } {\n const fieldQueryOperatorExpressionsMap: Record<\n string,\n QueryOperatorExpressions\n > = {};\n const fields: Field[] = [];\n if (this.props.q) {\n this.props.q.forEach((query) => {\n Object.entries(query).forEach(([key, expressions]) => {\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n const firstSubQuery = (expressions as Query[])[0];\n const fieldId = Object.keys(firstSubQuery)[0];\n // 由于 ConditionType.Between 这边的 operator 是两个,由于需要支持选择一个的时候也要显示出来,这边不能将选择器合并成str吐出去\n const compareOperators = Object.keys(firstSubQuery[fieldId]);\n const compareOperator =\n compareOperators.length > 1\n ? compareOperators\n : compareOperators.join(\"\");\n let subQueryValue = \"\";\n let targetField;\n if (ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE) {\n targetField = this.props.fieldToShow?.find(\n (fieldItem) => Object.keys(fieldItem)[0] === fieldId\n );\n }\n if (!isNil(targetField)) {\n // 二维数组会有问题,\n subQueryValue = isArray(targetField[fieldId])\n ? targetField[fieldId]\n .map((item) => (isArray(item) ? item.join(\" \") : item))\n .join(\"\")\n : (targetField[fieldId] as any);\n } else {\n subQueryValue = (expressions as Query[])\n .map((query) => {\n const targetValue = (\n query[fieldId] as Record<ComparisonOperators, any>\n )[compareOperator as ComparisonOperators];\n if (\n compareOperator === ComparisonOperators.Like ||\n compareOperator === ComparisonOperators.NotLike\n ) {\n return isString(targetValue) && targetValue.includes(\" \")\n ? `${targetValue[0]}\"${targetValue.slice(\n 1,\n targetValue.length - 1\n )}\"${targetValue[targetValue.length - 1]}`\n : targetValue;\n }\n // 对于时间选择器有两个的,不用特意将值转换成str,因为不需要这里的值\n else {\n return isString(targetValue) && targetValue.includes(\" \")\n ? `\"${targetValue}\"`\n : targetValue;\n }\n })\n .join(\" \");\n }\n key = fieldId;\n expressions = Array.isArray(compareOperator)\n ? firstSubQuery[fieldId]\n : {\n [compareOperator]: subQueryValue,\n };\n }\n\n fieldQueryOperatorExpressionsMap[key] =\n expressions as QueryOperatorExpressions;\n });\n });\n }\n forEachAvailableFields(\n this.props.modelData,\n (attr) => {\n const attrValue: Partial<CmdbModels.ModelObjectAttrValue> & {\n isStruct?: boolean;\n } & { isClusterType?: boolean } = {};\n\n switch (attr.value.type) {\n case ModelAttributeValueType.STRUCT:\n case ModelAttributeValueType.STRUCT_LIST:\n attrValue.type = ModelAttributeValueType.STRING;\n attrValue.struct_define = attr.value.struct_define;\n attrValue.isStruct = true;\n break;\n case ModelAttributeValueType.ENUM:\n case ModelAttributeValueType.ENUMS:\n attrValue.type = attr.value.type;\n attrValue.regex = attr.value.regex;\n break;\n default:\n attrValue.type = attr.value.type;\n }\n\n fields.push({\n id: `_${attr.id}`,\n name: attr.name,\n attrValue,\n isRelation: false,\n ...getFieldConditionsAndValues(\n fieldQueryOperatorExpressionsMap,\n attr.id,\n attr.value.type as ModelAttributeValueType\n ),\n });\n },\n (relation, sides) => {\n const relationObject =\n this.props.idObjectMap[\n relation[`${sides.that}_object_id` as RelationObjectIdKeys]\n ];\n const showKeys = getInstanceNameKeys(relationObject);\n showKeys.forEach((showKey, index) => {\n const nameOfShowKey =\n find(relationObject?.attrList, [\"id\", showKey])?.name ?? showKey;\n const id = `_${\n relation[`${sides.this}_id` as RelationIdKeys]\n }.${showKey}`;\n const type = ModelAttributeValueType.STRING;\n\n fields.push({\n id,\n name: `${\n relation[`${sides.this}_name` as RelationNameKeys]\n }(${nameOfShowKey})`,\n attrValue: { type },\n isRelation: true,\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n ...getFieldConditionsAndValues(\n fieldQueryOperatorExpressionsMap,\n id,\n type,\n true,\n relation[`${sides.this}_id` as RelationNameKeys]\n ),\n });\n });\n },\n this.props.fieldIds\n );\n return { fields };\n }\n\n setFormFieldValues(fields: Field[]): void {\n const values = fields.reduce<{ [key: string]: any }>((acc, field) => {\n field.values.map((value, valueIndex) => {\n const operation = field.currentCondition.operations[valueIndex];\n acc[`${field.id}[${valueIndex}]`] =\n operation.fixedValue === undefined ? value : \"\";\n });\n return acc;\n }, {});\n this.props.form.setFieldsValue(values);\n }\n\n onValueChange = (\n value: any,\n valueIndex: number,\n field: Field,\n fieldIndex: number\n ) => {\n this.setState({\n fields: update(this.state.fields, {\n [fieldIndex]: { values: { [valueIndex]: { $set: value } } },\n }),\n });\n };\n\n onConditionChange = (\n value: ConditionType,\n field: Field,\n fieldIndex: number\n ) => {\n const hasFixedValues = field.currentCondition.operations.some(\n (operation) => operation.fixedValue !== undefined\n );\n\n const condition = field.availableConditions.find(\n (condition) => condition.type === value\n );\n let newValues = condition.operations.map((operation) =>\n operation.fixedValue !== undefined ? operation.fixedValue : null\n );\n if (\n newValues.every((value) => value === null) &&\n !hasFixedValues &&\n this.state.fields[fieldIndex].values.length === newValues.length\n ) {\n newValues = this.state.fields[fieldIndex].values;\n }\n\n let newFields = update(this.state.fields, {\n [fieldIndex]: {\n currentCondition: { $set: condition },\n values: {\n $set: newValues,\n },\n },\n });\n\n const relatedFieldIndex = newFields.findIndex(\n (f) =>\n f.isRelation &&\n f.relationSideId === field.relationSideId &&\n f.id !== field.id\n );\n if (relatedFieldIndex !== -1) {\n const relatedField = newFields[relatedFieldIndex];\n const relatedCondition = relatedField.availableConditions.find(\n (condition) => condition.type === value\n );\n if (condition.operations[0].operator === ElementOperators.Exists) {\n newFields = update(newFields, {\n [relatedFieldIndex]: {\n currentCondition: { $set: relatedCondition },\n values: {\n $set: [null],\n },\n },\n });\n } else if (\n relatedField.currentCondition.operations[0].operator ===\n ElementOperators.Exists\n ) {\n newFields = update(newFields, {\n [relatedFieldIndex]: {\n currentCondition: { $set: relatedField.availableConditions[0] },\n values: {\n $set: [null],\n },\n },\n });\n }\n }\n\n this.setState({\n fields: newFields,\n });\n\n this.setFormFieldValues(newFields);\n };\n\n getFields() {\n const { getFieldDecorator } = this.props.form;\n const hasBetween = this.state.fields.some((field) =>\n [\n ModelAttributeValueType.IP,\n ModelAttributeValueType.DATE,\n ModelAttributeValueType.DATETIME,\n ].includes(field.attrValue.type as ModelAttributeValueType)\n );\n return this.state.fields.map((field, fieldIndex) => {\n let type: string;\n let style: React.CSSProperties;\n let attrValue: any = field.attrValue;\n let multiSelect = false;\n switch (field.attrValue.type) {\n case ModelAttributeValueType.INTEGER:\n case ModelAttributeValueType.FLOAT:\n attrValue = {\n type: ModelAttributeValueType.STRING,\n };\n break;\n case ModelAttributeValueType.ENUM:\n case ModelAttributeValueType.ENUMS:\n type = FormControlTypeEnum.SELECT;\n multiSelect = true;\n break;\n case ModelAttributeValueType.DATETIME:\n style = { minWidth: \"auto\" };\n break;\n }\n //高级搜索这里即使是json格式,也用input输入框进行搜索\n if ((attrValue as any).type === \"json\") {\n attrValue = { ...attrValue, type: \"str\" };\n }\n return (\n <Col span={hasBetween ? 12 : 8} key={field.id}>\n <Form.Item label={field.name}>\n <Input.Group className={styles.conditionInputGroup} compact>\n <Select\n dropdownMatchSelectWidth={false}\n value={field.currentCondition.type}\n onChange={(value: ConditionType) =>\n this.onConditionChange(value, field, fieldIndex)\n }\n disabled={field.disabled}\n >\n {field.availableConditions.map((condition) => (\n <Select.Option value={condition.type} key={condition.type}>\n {condition.label}\n </Select.Option>\n ))}\n </Select>\n {field.values.map((value, valueIndex) => {\n const operation = field.currentCondition.operations[valueIndex];\n\n return (\n <React.Fragment\n key={`${field.currentCondition.type}-${operation.operator}`}\n >\n {valueIndex > 0 && (\n <Input\n className={styles.separatorInput}\n placeholder=\"~\"\n disabled\n />\n )}\n {getFieldDecorator(`${field.id}[${valueIndex}]`, {\n initialValue:\n operation.fixedValue === undefined ? value : \"\",\n })(\n operation.fixedValue === undefined && !field.disabled ? (\n <ModelAttributeFormControl\n type={type}\n attribute={{\n id: field.id,\n name: field.name,\n value: attrValue,\n }}\n objectId={this.props.modelData.objectId}\n multiSelect={multiSelect}\n onChange={(value: any) =>\n this.onValueChange(\n value,\n valueIndex,\n field,\n fieldIndex\n )\n }\n className={styles.conditionInput}\n style={style}\n />\n ) : (\n <Input disabled />\n )\n )}\n </React.Fragment>\n );\n })}\n </Input.Group>\n </Form.Item>\n </Col>\n );\n });\n }\n\n handleSearch = (e: FormEvent<any>): void => {\n e.preventDefault();\n const fields = this.state.fields.map((v) => ({ ...v, id: v.id.slice(1) }));\n if (this.props?.autoSearch) this.props.autoSearch(fields);\n if (this.props.onSearch) {\n // 当过滤字段为relation并且过滤条件为ElementOperators.Exists的时候,发起后台请求的搜索queries与负责前端展示的query不同。需要额外处理。\n let queries: Query[] = [];\n let queriesToShow: Query[] = [];\n const fieldToShow: Record<string, any[]>[] = [];\n fields.forEach((field) => {\n const expressions: QueryOperatorExpressions = {};\n let fieldQuery: Query = { [field.id]: expressions };\n let fieldQueryToShow: Query = { [field.id]: expressions };\n let hasValue = false;\n let structQueryId: string[];\n const isStruct = !!(field.attrValue as any).isStruct;\n if (isStruct) {\n structQueryId = field.attrValue.struct_define.map(\n (struct_item) => `${field.id}.${struct_item.id}`\n );\n }\n field.values.forEach((value, index) => {\n const operation = field.currentCondition.operations[index];\n const fieldId =\n field.isRelation && ElementOperators.Exists === operation.operator\n ? field.relationSideId\n : field.id;\n fieldQuery = { [fieldId]: expressions };\n\n const fieldIdToShow = field.id;\n fieldQueryToShow = { [fieldIdToShow]: expressions };\n\n if (\n value !== null &&\n value !== \"\" &&\n !(Array.isArray(value) && value.length === 0)\n ) {\n const multiValueSearchOperator = multiValueSearchOperators.find(\n (operator) => operator.comparisonOperator === operation.operator\n );\n if (multiValueSearchOperator) {\n let values: any[];\n if (\n field.attrValue.type === ModelAttributeValueType.ENUM ||\n field.attrValue.type === ModelAttributeValueType.ARR\n ) {\n values = value;\n } else if (typeof value === \"string\") {\n if (\n !ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE ||\n !value.includes('\"')\n ) {\n values = value\n .trim()\n .split(/\\s+/)\n .map((value) => convertValue(field.attrValue.type, value));\n } else {\n values = processAttrValueWithQuote(value, []);\n }\n } else {\n values = [value];\n }\n if (values.length) {\n if (isStruct) {\n fieldQuery = {\n [multiValueSearchOperator.logicalOperator]: flatten(\n values.map((value) => {\n if (operation.prefix) {\n value = operation.prefix + value;\n }\n if (operation.suffix) {\n value += operation.suffix;\n }\n\n return structQueryId.map(\n (structId: string | number) => ({\n [structId]: {\n [operation.operator]: value,\n },\n })\n );\n })\n ),\n };\n } else {\n fieldQuery = {\n [multiValueSearchOperator.logicalOperator]: values.map(\n (value) => {\n if (operation.prefix) {\n value = operation.prefix + value;\n }\n if (operation.suffix) {\n value += operation.suffix;\n }\n return {\n [fieldId]: {\n [operation.operator]: value,\n },\n };\n }\n ),\n };\n }\n fieldQueryToShow = {\n [multiValueSearchOperator.logicalOperator]: values.map(\n (value) => {\n if (operation.prefix) {\n value = operation.prefix + value;\n }\n if (operation.suffix) {\n value += operation.suffix;\n }\n return {\n [fieldIdToShow]: {\n [operation.operator]: value,\n },\n };\n }\n ),\n };\n hasValue = true;\n fieldToShow.push({ [field.id]: field.values });\n }\n } else {\n value = convertValue(field.attrValue.type, value);\n if (operation.prefix) {\n value = operation.prefix + value;\n }\n if (operation.suffix) {\n value += operation.suffix;\n }\n expressions[operation.operator] = value;\n hasValue = true;\n fieldToShow.push({ [field.id]: field.values });\n }\n }\n });\n if (hasValue) {\n queries.push(fieldQuery);\n queriesToShow.push(fieldQueryToShow);\n }\n });\n if (queries.length === 0) {\n queries = undefined;\n queriesToShow = undefined;\n }\n if (!isEqual(this.props.q, queries)) {\n this.props.onSearch(queries, queriesToShow, fieldToShow);\n }\n }\n };\n\n handleReset = () => {\n if (this.props.autoSearch) this.props.autoSearch([]);\n this.props.onSearch([], [], []);\n this.props.form.resetFields();\n };\n\n render(): React.ReactNode {\n return (\n <div className={styles.advancedSearch}>\n <Form\n layout=\"vertical\"\n className={styles.advancedSearchForm}\n onSubmit={this.handleSearch}\n >\n <Row gutter={50}>{this.getFields()}</Row>\n <Row>\n <Col span={24} style={{ textAlign: \"right\" }}>\n <Button\n type=\"primary\"\n htmlType=\"submit\"\n data-testid=\"submit-button\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH}`)}\n </Button>\n <Button\n style={{ marginLeft: 8 }}\n onClick={this.handleReset}\n data-testid=\"reset-button\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n </Col>\n </Row>\n </Form>\n </div>\n );\n }\n}\n\nexport const AdvancedSearch = Form.create<AdvancedSearchFormProps>({\n name: \"advanced_search\",\n})(AdvancedSearchForm);\n"],"mappings":"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"}
1
+ {"version":3,"file":"AdvancedSearch.js","names":["React","update","isEqual","find","startsWith","findKey","isNil","flatten","isString","isArray","Form","Button","Col","Input","Row","Select","ComparisonOperators","ElementOperators","forEachAvailableFields","getInstanceNameKeys","LogicalOperators","clusterMap","styles","i18n","NS_LIBS_CMDB_INSTANCES","K","FormControlTypeEnum","ModelAttributeFormControl","ModelAttributeValueType","processAttrValueWithQuote","ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE","ConditionType","FieldTypeConditionTypesMap","STRING","Contain","NotContain","Equal","NotEqual","Empty","NotEmpty","INTEGER","Between","FLOAT","DATE","DATETIME","ENUM","ENUMS","ARR","STRUCT","IP","BOOLEAN","JSON","multiValueSearchOperators","comparisonOperator","Like","logicalOperator","Or","NotLike","And","STRUCT_LIST","getCondition","conditionType","fieldType","label","operations","t","OPERATOR_EQUAL_DEFINE","operator","In","OPERATOR_NOT_EQUAL_DEFINE","NotIn","OPERATOR_CONTAIN_DEFINE","prefix","suffix","OPERATOR_NOT_CONTAIN_DEFINE","OPERATOR_IS_EMPTY_DEFINE","Exists","fixedValue","OPERATOR_IS_NOT_EMPTY_DEFINE","True","False","GreaterThanOrEqual","LessThanOrEqual","OPERATOR_BETWEEN_DEFINE_TEXT_INT","OPERATOR_BETWEEN_DEFINE_TEXT_TIME","OPERATOR_BETWEEN_DEFINE_TEXT","OPERATOR_BETWEEN_DEFINE_TEXT_THE","type","convertValue","valueType","value","parseInt","parseFloat","getFieldConditionsAndValues","fieldQueryOperatorExpressionsMap","id","isRelation","relationSideId","objectId","attrId","isRelationWithNoExpression","expressions","expressionsKeys","relatedKey","v","k","relatedExpressions","Object","keys","currentCondition","availableConditions","map","condition","length","operatorsStr","isFixedValueEqual","every","operation","push","undefined","toString","includes","queryValuesStr","values","i","multiValueSearchOperator","trim","split","join","slice","endsWith","disabled","AdvancedSearchForm","Component","constructor","props","valueIndex","field","fieldIndex","setState","fields","state","$set","hasFixedValues","some","newValues","newFields","relatedFieldIndex","findIndex","f","relatedField","relatedCondition","setFormFieldValues","e","preventDefault","autoSearch","onSearch","queries","queriesToShow","fieldToShow","forEach","fieldQuery","fieldQueryToShow","hasValue","structQueryId","isStruct","attrValue","struct_define","struct_item","index","fieldId","fieldIdToShow","Array","structId","q","form","resetFields","computeState","componentDidUpdate","prevProps","newState","query","entries","key","firstSubQuery","compareOperators","compareOperator","subQueryValue","targetField","fieldItem","item","targetValue","modelData","attr","regex","name","relation","sides","relationObject","idObjectMap","that","showKeys","showKey","nameOfShowKey","attrList","this","fieldIds","reduce","acc","setFieldsValue","getFields","getFieldDecorator","hasBetween","style","multiSelect","SELECT","minWidth","conditionInputGroup","onConditionChange","separatorInput","initialValue","onValueChange","conditionInput","render","advancedSearch","advancedSearchForm","handleSearch","textAlign","SEARCH","marginLeft","handleReset","RESET","AdvancedSearch","create"],"sources":["../../../src/instance-list-table/AdvancedSearch.tsx"],"sourcesContent":["import React, { ChangeEvent, FormEvent } from \"react\";\nimport update from \"immutability-helper\";\nimport {\n isEqual,\n find,\n startsWith,\n findKey,\n isNil,\n flatten,\n isString,\n isArray,\n} from \"lodash\";\nimport { Form } from \"@ant-design/compatible\";\nimport { Button, Col, Input, Row, Select } from \"antd\";\nimport { FormComponentProps } from \"@ant-design/compatible/lib/form\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport {\n ComparisonOperators,\n ElementOperators,\n forEachAvailableFields,\n getInstanceNameKeys,\n LogicalOperators,\n Query,\n QueryOperatorExpressions,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n} from \"@next-libs/cmdb-utils\";\nimport { clusterMap } from \"./constants\";\nimport styles from \"./AdvancedSearch.module.css\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport {\n FormControlTypeEnum,\n ModelAttributeFormControl,\n ModelAttributeValueType,\n} from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport {\n processAttrValueWithQuote,\n ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE,\n} from \"../processors\";\n\nexport enum ConditionType {\n Equal = \"equal\",\n NotEqual = \"notEqual\",\n Contain = \"contain\",\n NotContain = \"notContain\",\n Empty = \"empty\",\n NotEmpty = \"notEmpty\",\n Between = \"between\",\n True = \"true\",\n False = \"false\",\n}\n\ninterface ConditionOperation {\n operator: ComparisonOperators | ElementOperators;\n fixedValue?: any;\n prefix?: string;\n suffix?: string;\n}\n\ninterface Condition {\n type: ConditionType;\n label: string;\n operations: ConditionOperation[];\n}\n\nconst FieldTypeConditionTypesMap: Record<string, ConditionType[]> = {\n [ModelAttributeValueType.STRING]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.INTEGER]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.FLOAT]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.DATE]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.DATETIME]: [\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.ENUM]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.ENUMS]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.ARR]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.STRUCT]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.IP]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.BOOLEAN]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.JSON]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n};\n\nconst multiValueSearchOperators = [\n {\n comparisonOperator: ComparisonOperators.Like,\n logicalOperator: LogicalOperators.Or,\n },\n {\n comparisonOperator: ComparisonOperators.NotLike,\n logicalOperator: LogicalOperators.And,\n },\n {\n comparisonOperator: ComparisonOperators.Equal,\n logicalOperator: LogicalOperators.Or,\n },\n {\n comparisonOperator: ComparisonOperators.NotEqual,\n logicalOperator: LogicalOperators.And,\n },\n];\nFieldTypeConditionTypesMap[ModelAttributeValueType.STRUCT_LIST] =\n FieldTypeConditionTypesMap[ModelAttributeValueType.STRUCT];\n\nexport function getCondition(\n conditionType: ConditionType,\n fieldType: ModelAttributeValueType\n): Condition {\n let label: string;\n let operations: ConditionOperation[];\n\n switch (conditionType) {\n case ConditionType.Equal:\n label = i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_EQUAL_DEFINE}`);\n switch (fieldType) {\n case ModelAttributeValueType.ARR:\n operations = [\n {\n operator: ComparisonOperators.In,\n },\n ];\n break;\n default:\n operations = [\n {\n operator: ComparisonOperators.Equal,\n },\n ];\n }\n break;\n case ConditionType.NotEqual:\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_NOT_EQUAL_DEFINE}`\n );\n switch (fieldType) {\n case ModelAttributeValueType.ARR:\n operations = [\n {\n operator: ComparisonOperators.NotIn,\n },\n ];\n break;\n default:\n operations = [\n {\n operator: ComparisonOperators.NotEqual,\n },\n ];\n }\n break;\n case ConditionType.Contain:\n label = i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_CONTAIN_DEFINE}`);\n switch (fieldType) {\n case ModelAttributeValueType.ENUMS:\n operations = [\n {\n operator: ComparisonOperators.In,\n },\n ];\n break;\n default:\n operations = [\n {\n operator: ComparisonOperators.Like,\n prefix: \"%\",\n suffix: \"%\",\n },\n ];\n }\n break;\n case ConditionType.NotContain:\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_NOT_CONTAIN_DEFINE}`\n );\n switch (fieldType) {\n case ModelAttributeValueType.ENUMS:\n operations = [\n {\n operator: ComparisonOperators.NotIn,\n },\n ];\n break;\n default:\n operations = [\n {\n operator: ComparisonOperators.NotLike,\n prefix: \"%\",\n suffix: \"%\",\n },\n ];\n }\n break;\n case ConditionType.Empty:\n label = i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_IS_EMPTY_DEFINE}`);\n operations = [\n {\n operator: ElementOperators.Exists,\n fixedValue: false,\n },\n ];\n break;\n case ConditionType.NotEmpty:\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_IS_NOT_EMPTY_DEFINE}`\n );\n operations = [\n {\n operator: ElementOperators.Exists,\n fixedValue: true,\n },\n ];\n break;\n case ConditionType.True:\n label = \"true\";\n operations = [\n {\n operator: ComparisonOperators.Equal,\n fixedValue: true,\n },\n ];\n break;\n case ConditionType.False:\n label = \"false\";\n operations = [\n {\n operator: ComparisonOperators.Equal,\n fixedValue: false,\n },\n ];\n break;\n case ConditionType.Between:\n operations = [\n {\n operator: ComparisonOperators.GreaterThanOrEqual,\n },\n {\n operator: ComparisonOperators.LessThanOrEqual,\n },\n ];\n switch (fieldType) {\n case ModelAttributeValueType.INTEGER:\n case ModelAttributeValueType.FLOAT:\n // label = \"在此区间\";\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_BETWEEN_DEFINE_TEXT_INT}`\n );\n break;\n case ModelAttributeValueType.DATE:\n case ModelAttributeValueType.DATETIME:\n // label = \"在此期间\";\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_BETWEEN_DEFINE_TEXT_TIME}`\n );\n break;\n case ModelAttributeValueType.IP:\n // label = \"范围\";\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_BETWEEN_DEFINE_TEXT}`\n );\n break;\n default:\n // label = \"在此之间\";\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_BETWEEN_DEFINE_TEXT_THE}`\n );\n }\n break;\n }\n\n return {\n type: conditionType,\n label,\n operations,\n };\n}\n\nexport function convertValue(valueType: string, value: any): any {\n if (typeof value !== \"boolean\") {\n switch (valueType) {\n case ModelAttributeValueType.INTEGER:\n return parseInt(value);\n case ModelAttributeValueType.FLOAT:\n return parseFloat(value);\n case ModelAttributeValueType.BOOLEAN:\n return value === \"true\";\n }\n }\n return value;\n}\n\nexport function getFieldConditionsAndValues(\n fieldQueryOperatorExpressionsMap: Record<string, QueryOperatorExpressions>,\n id: string,\n valueType: ModelAttributeValueType,\n isRelation?: boolean,\n relationSideId?: string,\n objectId?: string,\n attrId?: string\n) {\n let isRelationWithNoExpression = false;\n let expressions = fieldQueryOperatorExpressionsMap[id];\n let expressionsKeys: string[];\n if (!expressions && isRelation) {\n isRelationWithNoExpression = true;\n const relatedKey = findKey(\n fieldQueryOperatorExpressionsMap,\n (v, k) => startsWith(k, `${relationSideId}.`) || k === relationSideId\n );\n const relatedExpressions = fieldQueryOperatorExpressionsMap[relatedKey];\n if (\n relatedExpressions &&\n !isNil(relatedExpressions[ElementOperators.Exists])\n ) {\n expressions = fieldQueryOperatorExpressionsMap[relatedKey];\n }\n }\n\n if (expressions) {\n expressionsKeys = Object.keys(expressions);\n }\n let currentCondition: Condition;\n const availableConditions = FieldTypeConditionTypesMap[valueType].map(\n (conditionType) => {\n const condition = getCondition(conditionType, valueType);\n\n if (expressionsKeys?.length) {\n const operatorsStr: string[] = [];\n // 由于当 ConditionType.Between ,operations 有两个,当用户只填选一个时,currentCondition会默认第一个选择器。与实际不符\n const isFixedValueEqual = condition.operations.every((operation) => {\n operatorsStr.push(operation.operator);\n\n if (operation.fixedValue !== undefined) {\n return (\n operation.fixedValue?.toString() ===\n expressions[operation?.operator]?.toString()\n );\n } else {\n return true;\n }\n });\n if (\n isFixedValueEqual &&\n expressionsKeys.every((operator) => operatorsStr.includes(operator))\n ) {\n currentCondition = condition;\n }\n }\n\n return condition;\n }\n );\n if (!currentCondition) {\n currentCondition = availableConditions[0];\n }\n let queryValuesStr = \"\";\n const values = currentCondition.operations.map((operation) => {\n let value: any;\n // istanbul ignore else ElementOperators.Exists时直接返回fixedValue\n if (\n expressions?.[operation.operator] !== undefined &&\n operation.operator !== ElementOperators.Exists\n ) {\n value = expressions[operation.operator];\n let values = [expressions[operation.operator]];\n const i = multiValueSearchOperators.find(\n (multiValueSearchOperator) =>\n multiValueSearchOperator.comparisonOperator === operation.operator\n );\n if (i) {\n if (\n valueType === ModelAttributeValueType.ENUM ||\n typeof expressions[operation.operator] === \"string\"\n ) {\n values = expressions[operation.operator]\n .trim()\n .split(/\\s+/)\n .map((value: string) => convertValue(valueType, value));\n if (objectId === \"CLUSTER\" && attrId === \"type\") {\n values = values.map((value) => clusterMap[value]);\n }\n }\n }\n if (\n typeof values[0] === \"string\" ||\n typeof values[0] === \"number\" ||\n typeof values[0] === \"boolean\"\n ) {\n queryValuesStr = values.join(\" \");\n values = values.map((value: string) => {\n if (operation.prefix && value.startsWith(operation.prefix)) {\n value = value.slice(operation.prefix.length);\n }\n if (operation.suffix && value.endsWith(operation.suffix)) {\n value = value.slice(0, value.length - operation.suffix.length);\n }\n return value;\n });\n value = [\n ModelAttributeValueType.ENUM,\n ModelAttributeValueType.ARR,\n ].includes(valueType)\n ? values\n : values.join(\" \");\n }\n } else {\n value = operation.fixedValue !== undefined ? operation.fixedValue : null;\n }\n\n return value;\n });\n const disabled = false;\n return {\n availableConditions,\n currentCondition,\n values,\n queryValuesStr,\n disabled,\n };\n}\n\nexport interface Field {\n id: string;\n name: string;\n attrValue: Partial<CmdbModels.ModelObjectAttrValue>;\n values: any[];\n availableConditions: Condition[];\n currentCondition: Condition;\n isRelation: boolean;\n relationSideId?: string;\n disabled?: boolean;\n}\n\nexport interface AdvancedSearchFormProps extends FormComponentProps {\n fieldIds?: string[];\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n q?: Query[];\n placeholder?: string;\n onSearch?(\n queries: Query[],\n queriesToShow?: Query[],\n fieldToShow?: Record<string, any[]>[]\n ): void;\n autoSearch?: (fields: Field[]) => void;\n fieldToShow?: Record<string, any[]>[]; // 回填高级搜索的field值(根据query回填丢失了引号信息)\n onChange?(e: ChangeEvent<HTMLInputElement>): void;\n}\n\nexport interface AdvancedSearchFormState {\n fields: Field[];\n}\n\nexport class AdvancedSearchForm extends React.Component<\n AdvancedSearchFormProps,\n AdvancedSearchFormState\n> {\n constructor(props: AdvancedSearchFormProps) {\n super(props);\n\n this.state = this.computeState();\n }\n\n componentDidUpdate(prevProps: Readonly<AdvancedSearchFormProps>): void {\n if (!isEqual(this.props.q, prevProps.q)) {\n const newState = this.computeState();\n this.setState(newState);\n\n this.setFormFieldValues(newState.fields);\n }\n }\n\n computeState(): { fields: Field[] } {\n const fieldQueryOperatorExpressionsMap: Record<\n string,\n QueryOperatorExpressions\n > = {};\n const fields: Field[] = [];\n if (this.props.q) {\n this.props.q.forEach((query) => {\n Object.entries(query).forEach(([key, expressions]) => {\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n const firstSubQuery = (expressions as Query[])[0];\n const fieldId = Object.keys(firstSubQuery)[0];\n // 由于 ConditionType.Between 这边的 operator 是两个,由于需要支持选择一个的时候也要显示出来,这边不能将选择器合并成str吐出去\n const compareOperators = Object.keys(firstSubQuery[fieldId]);\n const compareOperator =\n compareOperators.length > 1\n ? compareOperators\n : compareOperators.join(\"\");\n let subQueryValue = \"\";\n let targetField;\n if (ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE) {\n targetField = this.props.fieldToShow?.find(\n (fieldItem) => Object.keys(fieldItem)[0] === fieldId\n );\n }\n if (!isNil(targetField)) {\n // 二维数组会有问题,\n subQueryValue = isArray(targetField[fieldId])\n ? targetField[fieldId]\n .map((item) => (isArray(item) ? item.join(\" \") : item))\n .join(\"\")\n : (targetField[fieldId] as any);\n } else {\n subQueryValue = (expressions as Query[])\n .map((query) => {\n const targetValue = (\n query[fieldId] as Record<ComparisonOperators, any>\n )[compareOperator as ComparisonOperators];\n if (\n compareOperator === ComparisonOperators.Like ||\n compareOperator === ComparisonOperators.NotLike\n ) {\n return isString(targetValue) && targetValue.includes(\" \")\n ? `${targetValue[0]}\"${targetValue.slice(\n 1,\n targetValue.length - 1\n )}\"${targetValue[targetValue.length - 1]}`\n : targetValue;\n }\n // 对于时间选择器有两个的,不用特意将值转换成str,因为不需要这里的值\n else {\n return isString(targetValue) && targetValue.includes(\" \")\n ? `\"${targetValue}\"`\n : targetValue;\n }\n })\n .join(\" \");\n }\n key = fieldId;\n expressions = Array.isArray(compareOperator)\n ? firstSubQuery[fieldId]\n : {\n [compareOperator]: subQueryValue,\n };\n }\n\n fieldQueryOperatorExpressionsMap[key] =\n expressions as QueryOperatorExpressions;\n });\n });\n }\n forEachAvailableFields(\n this.props.modelData,\n (attr) => {\n const attrValue: Partial<CmdbModels.ModelObjectAttrValue> & {\n isStruct?: boolean;\n } & { isClusterType?: boolean } = {};\n\n switch (attr.value.type) {\n case ModelAttributeValueType.STRUCT:\n case ModelAttributeValueType.STRUCT_LIST:\n attrValue.type = ModelAttributeValueType.STRING;\n attrValue.struct_define = attr.value.struct_define;\n attrValue.isStruct = true;\n break;\n case ModelAttributeValueType.ENUM:\n case ModelAttributeValueType.ENUMS:\n attrValue.type = attr.value.type;\n attrValue.regex = attr.value.regex;\n break;\n default:\n attrValue.type = attr.value.type;\n }\n\n fields.push({\n id: `_${attr.id}`,\n name: attr.name,\n attrValue,\n isRelation: false,\n ...getFieldConditionsAndValues(\n fieldQueryOperatorExpressionsMap,\n attr.id,\n attr.value.type as ModelAttributeValueType\n ),\n });\n },\n (relation, sides) => {\n const relationObject =\n this.props.idObjectMap[\n relation[`${sides.that}_object_id` as RelationObjectIdKeys]\n ];\n const showKeys = getInstanceNameKeys(relationObject);\n showKeys.forEach((showKey, index) => {\n const nameOfShowKey =\n find(relationObject?.attrList, [\"id\", showKey])?.name ?? showKey;\n const id = `${\n relation[`${sides.this}_id` as RelationIdKeys]\n }.${showKey}`;\n const type = ModelAttributeValueType.STRING;\n\n fields.push({\n id: `_${id}`,\n name: `${\n relation[`${sides.this}_name` as RelationNameKeys]\n }(${nameOfShowKey})`,\n attrValue: { type },\n isRelation: true,\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n ...getFieldConditionsAndValues(\n fieldQueryOperatorExpressionsMap,\n id,\n type,\n true,\n relation[`${sides.this}_id` as RelationNameKeys]\n ),\n });\n });\n },\n this.props.fieldIds\n );\n return { fields };\n }\n\n setFormFieldValues(fields: Field[]): void {\n const values = fields.reduce<{ [key: string]: any }>((acc, field) => {\n field.values.map((value, valueIndex) => {\n const operation = field.currentCondition.operations[valueIndex];\n acc[`${field.id}[${valueIndex}]`] =\n operation.fixedValue === undefined ? value : \"\";\n });\n return acc;\n }, {});\n this.props.form.setFieldsValue(values);\n }\n\n onValueChange = (\n value: any,\n valueIndex: number,\n field: Field,\n fieldIndex: number\n ) => {\n this.setState({\n fields: update(this.state.fields, {\n [fieldIndex]: { values: { [valueIndex]: { $set: value } } },\n }),\n });\n };\n\n onConditionChange = (\n value: ConditionType,\n field: Field,\n fieldIndex: number\n ) => {\n const hasFixedValues = field.currentCondition.operations.some(\n (operation) => operation.fixedValue !== undefined\n );\n\n const condition = field.availableConditions.find(\n (condition) => condition.type === value\n );\n let newValues = condition.operations.map((operation) =>\n operation.fixedValue !== undefined ? operation.fixedValue : null\n );\n if (\n newValues.every((value) => value === null) &&\n !hasFixedValues &&\n this.state.fields[fieldIndex].values.length === newValues.length\n ) {\n newValues = this.state.fields[fieldIndex].values;\n }\n\n let newFields = update(this.state.fields, {\n [fieldIndex]: {\n currentCondition: { $set: condition },\n values: {\n $set: newValues,\n },\n },\n });\n\n const relatedFieldIndex = newFields.findIndex(\n (f) =>\n f.isRelation &&\n f.relationSideId === field.relationSideId &&\n f.id !== field.id\n );\n if (relatedFieldIndex !== -1) {\n const relatedField = newFields[relatedFieldIndex];\n const relatedCondition = relatedField.availableConditions.find(\n (condition) => condition.type === value\n );\n if (condition.operations[0].operator === ElementOperators.Exists) {\n newFields = update(newFields, {\n [relatedFieldIndex]: {\n currentCondition: { $set: relatedCondition },\n values: {\n $set: [null],\n },\n },\n });\n } else if (\n relatedField.currentCondition.operations[0].operator ===\n ElementOperators.Exists\n ) {\n newFields = update(newFields, {\n [relatedFieldIndex]: {\n currentCondition: { $set: relatedField.availableConditions[0] },\n values: {\n $set: [null],\n },\n },\n });\n }\n }\n\n this.setState({\n fields: newFields,\n });\n\n this.setFormFieldValues(newFields);\n };\n\n getFields() {\n const { getFieldDecorator } = this.props.form;\n const hasBetween = this.state.fields.some((field) =>\n [\n ModelAttributeValueType.IP,\n ModelAttributeValueType.DATE,\n ModelAttributeValueType.DATETIME,\n ].includes(field.attrValue.type as ModelAttributeValueType)\n );\n return this.state.fields.map((field, fieldIndex) => {\n let type: string;\n let style: React.CSSProperties;\n let attrValue: any = field.attrValue;\n let multiSelect = false;\n switch (field.attrValue.type) {\n case ModelAttributeValueType.INTEGER:\n case ModelAttributeValueType.FLOAT:\n attrValue = {\n type: ModelAttributeValueType.STRING,\n };\n break;\n case ModelAttributeValueType.ENUM:\n case ModelAttributeValueType.ENUMS:\n type = FormControlTypeEnum.SELECT;\n multiSelect = true;\n break;\n case ModelAttributeValueType.DATETIME:\n style = { minWidth: \"auto\" };\n break;\n }\n //高级搜索这里即使是json格式,也用input输入框进行搜索\n if ((attrValue as any).type === \"json\") {\n attrValue = { ...attrValue, type: \"str\" };\n }\n return (\n <Col span={hasBetween ? 12 : 8} key={field.id}>\n <Form.Item label={field.name}>\n <Input.Group className={styles.conditionInputGroup} compact>\n <Select\n dropdownMatchSelectWidth={false}\n value={field.currentCondition.type}\n onChange={(value: ConditionType) =>\n this.onConditionChange(value, field, fieldIndex)\n }\n disabled={field.disabled}\n >\n {field.availableConditions.map((condition) => (\n <Select.Option value={condition.type} key={condition.type}>\n {condition.label}\n </Select.Option>\n ))}\n </Select>\n {field.values.map((value, valueIndex) => {\n const operation = field.currentCondition.operations[valueIndex];\n\n return (\n <React.Fragment\n key={`${field.currentCondition.type}-${operation.operator}`}\n >\n {valueIndex > 0 && (\n <Input\n className={styles.separatorInput}\n placeholder=\"~\"\n disabled\n />\n )}\n {getFieldDecorator(`${field.id}[${valueIndex}]`, {\n initialValue:\n operation.fixedValue === undefined ? value : \"\",\n })(\n operation.fixedValue === undefined && !field.disabled ? (\n <ModelAttributeFormControl\n type={type}\n attribute={{\n id: field.id,\n name: field.name,\n value: attrValue,\n }}\n objectId={this.props.modelData.objectId}\n multiSelect={multiSelect}\n onChange={(value: any) =>\n this.onValueChange(\n value,\n valueIndex,\n field,\n fieldIndex\n )\n }\n className={styles.conditionInput}\n style={style}\n />\n ) : (\n <Input disabled />\n )\n )}\n </React.Fragment>\n );\n })}\n </Input.Group>\n </Form.Item>\n </Col>\n );\n });\n }\n\n handleSearch = (e: FormEvent<any>): void => {\n e.preventDefault();\n const fields = this.state.fields.map((v) => ({ ...v, id: v.id.slice(1) }));\n if (this.props?.autoSearch) this.props.autoSearch(fields);\n if (this.props.onSearch) {\n // 当过滤字段为relation并且过滤条件为ElementOperators.Exists的时候,发起后台请求的搜索queries与负责前端展示的query不同。需要额外处理。\n let queries: Query[] = [];\n let queriesToShow: Query[] = [];\n const fieldToShow: Record<string, any[]>[] = [];\n fields.forEach((field) => {\n const expressions: QueryOperatorExpressions = {};\n let fieldQuery: Query = { [field.id]: expressions };\n let fieldQueryToShow: Query = { [field.id]: expressions };\n let hasValue = false;\n let structQueryId: string[];\n const isStruct = !!(field.attrValue as any).isStruct;\n if (isStruct) {\n structQueryId = field.attrValue.struct_define.map(\n (struct_item) => `${field.id}.${struct_item.id}`\n );\n }\n field.values.forEach((value, index) => {\n const operation = field.currentCondition.operations[index];\n const fieldId =\n field.isRelation && ElementOperators.Exists === operation.operator\n ? field.relationSideId\n : field.id;\n fieldQuery = { [fieldId]: expressions };\n\n const fieldIdToShow = field.id;\n fieldQueryToShow = { [fieldIdToShow]: expressions };\n\n if (\n value !== null &&\n value !== \"\" &&\n !(Array.isArray(value) && value.length === 0)\n ) {\n const multiValueSearchOperator = multiValueSearchOperators.find(\n (operator) => operator.comparisonOperator === operation.operator\n );\n if (multiValueSearchOperator) {\n let values: any[];\n if (\n field.attrValue.type === ModelAttributeValueType.ENUM ||\n field.attrValue.type === ModelAttributeValueType.ARR\n ) {\n values = value;\n } else if (typeof value === \"string\") {\n if (\n !ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE ||\n !value.includes('\"')\n ) {\n values = value\n .trim()\n .split(/\\s+/)\n .map((value) => convertValue(field.attrValue.type, value));\n } else {\n values = processAttrValueWithQuote(value, []);\n }\n } else {\n values = [value];\n }\n if (values.length) {\n if (isStruct) {\n fieldQuery = {\n [multiValueSearchOperator.logicalOperator]: flatten(\n values.map((value) => {\n if (operation.prefix) {\n value = operation.prefix + value;\n }\n if (operation.suffix) {\n value += operation.suffix;\n }\n\n return structQueryId.map(\n (structId: string | number) => ({\n [structId]: {\n [operation.operator]: value,\n },\n })\n );\n })\n ),\n };\n } else {\n fieldQuery = {\n [multiValueSearchOperator.logicalOperator]: values.map(\n (value) => {\n if (operation.prefix) {\n value = operation.prefix + value;\n }\n if (operation.suffix) {\n value += operation.suffix;\n }\n return {\n [fieldId]: {\n [operation.operator]: value,\n },\n };\n }\n ),\n };\n }\n fieldQueryToShow = {\n [multiValueSearchOperator.logicalOperator]: values.map(\n (value) => {\n if (operation.prefix) {\n value = operation.prefix + value;\n }\n if (operation.suffix) {\n value += operation.suffix;\n }\n return {\n [fieldIdToShow]: {\n [operation.operator]: value,\n },\n };\n }\n ),\n };\n hasValue = true;\n fieldToShow.push({ [field.id]: field.values });\n }\n } else {\n value = convertValue(field.attrValue.type, value);\n if (operation.prefix) {\n value = operation.prefix + value;\n }\n if (operation.suffix) {\n value += operation.suffix;\n }\n expressions[operation.operator] = value;\n hasValue = true;\n fieldToShow.push({ [field.id]: field.values });\n }\n }\n });\n if (hasValue) {\n queries.push(fieldQuery);\n queriesToShow.push(fieldQueryToShow);\n }\n });\n if (queries.length === 0) {\n queries = undefined;\n queriesToShow = undefined;\n }\n if (!isEqual(this.props.q, queries)) {\n this.props.onSearch(queries, queriesToShow, fieldToShow);\n }\n }\n };\n\n handleReset = () => {\n if (this.props.autoSearch) this.props.autoSearch([]);\n this.props.onSearch([], [], []);\n this.props.form.resetFields();\n };\n\n render(): React.ReactNode {\n return (\n <div className={styles.advancedSearch}>\n <Form\n layout=\"vertical\"\n className={styles.advancedSearchForm}\n onSubmit={this.handleSearch}\n >\n <Row gutter={50}>{this.getFields()}</Row>\n <Row>\n <Col span={24} style={{ textAlign: \"right\" }}>\n <Button\n type=\"primary\"\n htmlType=\"submit\"\n data-testid=\"submit-button\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH}`)}\n </Button>\n <Button\n style={{ marginLeft: 8 }}\n onClick={this.handleReset}\n data-testid=\"reset-button\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n </Col>\n </Row>\n </Form>\n </div>\n );\n }\n}\n\nexport const AdvancedSearch = Form.create<AdvancedSearchFormProps>({\n name: \"advanced_search\",\n})(AdvancedSearchForm);\n"],"mappings":"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"}