Commit 806534aa967f7f6b5ad309fa2d382498e9a2efc7

Authored by loveumiko
1 parent 5b3085cb

fix: 修改参数设置的问题i

... ... @@ -91,6 +91,7 @@ export interface DeviceInfoType {
91 91 export interface NodeDataDataSourceJsonType {
92 92 deviceId: string
93 93 deviceProfileId: string
  94 + deviceProfileTemplateId?: string
94 95 attr: string
95 96 attrInfo: ThingsModelItemType
96 97
... ...
... ... @@ -29,7 +29,7 @@ const loading = ref<boolean>(false)
29 29 const dataSourceJson = ref<any>({})
30 30 const thingsModelElRef = ref()
31 31
32   -const isInputData = ref<boolean>(false)// 判断使用那个表单
  32 +const isInputData = ref<boolean>(false)// 判断使用那个表单 true: 用封装的表单 false:用自己写的表单
33 33
34 34 const zoomFactorValue = ref<number>(1) // 缩放因子
35 35 const isShowMultiply = ref<boolean>(false) // 只有tcp --> int和double类型才相乘缩放因子
... ... @@ -100,7 +100,7 @@ const open = async (_data: SingleClickEventDataType) => {
100 100 const { type } = dataType || {}
101 101
102 102 const { code, transportType, deviceProfileId, alias, name: deviceName } = await getDeviceDetail(deviceId) || {}// 设备信息
103   - deviceTitle.value = alias || deviceName
  103 + deviceTitle.value = alias || deviceName// 产品名称
104 104 const { registerAddress, actionType, zoomFactor } = extensionDesc || {} // 获取扩展描述内容
105 105
106 106 const schemas = [{ dataType, identifier, functionName: name } as StructJSON]
... ... @@ -117,7 +117,7 @@ const open = async (_data: SingleClickEventDataType) => {
117 117 visible.value = true
118 118
119 119 if (transportType === TransportTypeEnum.TCP) {
120   - if (commandWay === CommandDeliveryWayEnum.SERVICE) { // 命令下发方式是服务或则自定义调用
  120 + if (commandWay === CommandDeliveryWayEnum.SERVICE) { // 判断命令下发方式是服务或者自定义调用 服务调用用封装的组件 自定义和modbus就用输入框
121 121 getServiceInfo(deviceProfileId, service, serviceCommand)
122 122 }
123 123 else if (commandWay === CommandDeliveryWayEnum.CUSTOM) { // 自定义
... ... @@ -132,7 +132,7 @@ const open = async (_data: SingleClickEventDataType) => {
132 132 ])
133 133 setFieldsValue({ sendValue: customCommand })
134 134 }
135   - else {
  135 + else { // modBus调用
136 136 isShowModBUS.value = true
137 137 modBUSForm.value = {
138 138 crc: 'CRC_16_LOWER',
... ... @@ -174,7 +174,7 @@ const error = () => {
174 174 }
175 175
176 176 const handleSubmit = async () => {
177   - unref(isPasswordInfo)?.checked && await validatePassword()
  177 + unref(isPasswordInfo)?.checked && await validatePassword()// 操作密码
178 178 !unref(isInputData) && await validate()
179 179 unref(isInputData) && await unref(thingsModelElRef).validate()
180 180
... ...
... ... @@ -7,6 +7,7 @@ import { CommandWayEnum, CommandWayNameEnum } from '@/enums/commandEnum'
7 7 import { CommandDeliveryWayEnum, CommandDeliveryWayNameEnum, DeviceTypeEnum, EventActionTypeEnum, EventActionTypeNameEnum, EventTypeEnum, EventTypeNameEnum, TransportTypeEnum } from '@/enums/datasource'
8 8 import type { ThingsModel } from '@/api/device/model'
9 9 import { PackageCategoryEnum } from '@/core/Library/enum'
  10 +import { useContentDataStoreWithOut } from '@/store/modules/contentData'
10 11
11 12 export enum FormFieldsEnum {
12 13 ACTION_TYPE = 'actionType',
... ... @@ -31,13 +32,15 @@ export enum FormFieldsNameEnum {
31 32 SERVICE = '服务',
32 33 }
33 34
  35 +const contentDataStore = useContentDataStoreWithOut()
  36 +
34 37 export const getFormSchemas = (event: EventTypeEnum): FormSchema[] => {
35 38 const { getNodeData, getCellInfo } = usePublicFormContext()
36 39 const { dataSourceJson } = unref(getNodeData) || {}
37 40 const { deviceProfileId, deviceInfo } = dataSourceJson || {}
38 41 // transportType:判断是什么类型的设备 code:设备地址码 deviceType:设备类型
39   - const { transportType, deviceType } = deviceInfo || {}
40   -
  42 + const { transportType, deviceType, codeType } = deviceInfo || {}
  43 + const isTemplate = contentDataStore.isTemplate // 判断是否是模板
41 44 return [
42 45 {
43 46 field: 'eventName',
... ... @@ -115,11 +118,25 @@ export const getFormSchemas = (event: EventTypeEnum): FormSchema[] => {
115 118 { label: CommandDeliveryWayNameEnum.MODBUS, value: CommandDeliveryWayEnum.MODBUS },
116 119 ]
117 120 let options = [...values]
118   - if (deviceType === DeviceTypeEnum.SENSOR && transportType === TransportTypeEnum.TCP)
119   - options = values.filter(item => item.value !== CommandDeliveryWayEnum.SERVICE)
  121 + if (transportType === TransportTypeEnum.TCP) { // 只有TCP类型的才有MODBUS
  122 + if (codeType === CommandDeliveryWayEnum.CUSTOM) {
  123 + if (deviceType !== DeviceTypeEnum.SENSOR)
  124 + options = values.filter(item => item.value !== CommandDeliveryWayEnum.MODBUS)
120 125
121   - if (transportType !== TransportTypeEnum.TCP)
  126 + else
  127 + options = values.filter(item => item.value === CommandDeliveryWayEnum.CUSTOM)
  128 + }
  129 + else {
  130 + if (deviceType === DeviceTypeEnum.SENSOR)
  131 + options = values.filter(item => item.value !== CommandDeliveryWayEnum.SERVICE)
  132 + }
  133 + }
  134 + else {
122 135 options = values.filter(item => item.value !== CommandDeliveryWayEnum.MODBUS)
  136 + }
  137 +
  138 + if (isTemplate)// 是模板的话选择不到设备标识符类型所以就判断为放开自定义命令
  139 + options = values.filter(item => item.value === CommandDeliveryWayEnum.CUSTOM)
123 140
124 141 return {
125 142 options,
... ...
... ... @@ -43,7 +43,7 @@ const setFieldsValue = (record: Partial<Record<EventTypeEnum, boolean>>) => {
43 43 }
44 44
45 45 const getDisabledStatus = (key: EventTypeEnum) => {
46   - const data = unref(getNodeData)?.eventJson[key]
  46 + const data = unref(getNodeData)?.eventJson?.[key]
47 47 return !data
48 48 }
49 49
... ...
... ... @@ -30,7 +30,7 @@ export const formSchemas = (componentKey?: string): FormSchema[] => {
30 30 placeholder: '请选择产品',
31 31 onSelect(value: string, option: any) {
32 32 formModel[ContentDataFieldsEnum.DEVICE_PROFILE_ID] = value
33   - formModel[ContentDataFieldsEnum.DEVICE_INFO] = value && option ? { transportType: option.transportType, deviceType: option.deviceType } : null
  33 + formModel[ContentDataFieldsEnum.DEVICE_INFO] = value && option ? { transportType: option.transportType, deviceType: option.deviceType, codeType: option?.codeType } : null
34 34 },
35 35 getPopupContainer: () => document.body,
36 36 }
... ... @@ -56,11 +56,13 @@ export const formSchemas = (componentKey?: string): FormSchema[] => {
56 56 fieldNames: { label: 'name', value: 'tbDeviceId' },
57 57 onSelect(value: string, option: DeviceItemType) {
58 58 formModel[ContentDataFieldsEnum.DEVICE_PROFILE_ID] = value ? option.deviceProfileId : null
59   - formModel[ContentDataFieldsEnum.DEVICE_INFO] = value && option ? { code: option.code, transportType: option.transportType, deviceType: option.deviceType, deviceProfileId: option.deviceProfileId, deviceName: option.alias || option.name } : null
  59 + formModel[ContentDataFieldsEnum.DEVICE_INFO] = value && option ? { code: option.code, transportType: option.transportType, deviceType: option.deviceType, deviceProfileId: option.deviceProfileId, deviceName: option.alias || option.name, codeType: option?.codeType } : null
60 60 formModel[ContentDataFieldsEnum.ATTR] = null
61 61 },
62   - filterOption: (inputValue: string, option: DeviceItemType) =>
63   - option.alias?.includes?.(inputValue) || option.name?.includes?.(inputValue),
  62 + filterOption: (inputValue: string, option: DeviceItemType) => {
  63 + option.alias?.includes?.(inputValue) || option.name?.includes?.(inputValue)
  64 + },
  65 +
64 66 }
65 67 },
66 68 },
... ...
... ... @@ -95,7 +95,7 @@ const handleSave = async () => {
95 95 if (operationPassword.checked)
96 96 await validatePassword()
97 97 if (contentDataStore.getIsTemplate)// 判断组态是不是模板
98   - dataSourceJson = { ...value, deviceProfileId: value?.deviceProfileTemplateId, deviceId: null, deviceInfo: null }
  98 + dataSourceJson = { ...value, deviceProfileId: value?.deviceProfileTemplateId, deviceId: null }
99 99 await saveNodeAllData({ dataSourceJson, eventJson: { ...eventJson, OPERATION_PASSWORD: unref(getCellInfo).category === PackageCategoryEnum.CONTROL ? operationPassword : undefined }, actJson })
100 100 createMessage.success('操作成功~')
101 101 savePageContent()
... ...
... ... @@ -51,9 +51,9 @@ const handleSubmit = async () => {
51 51
52 52 const handleSetFormValues = async () => {
53 53 const { dataSourceJson } = unref(getNodeData) || {}
54   - const { deviceId, attr, chartOption, deviceProfileId, attrInfo } = dataSourceJson || {}
  54 + const { deviceId, attr, chartOption, deviceProfileId, deviceProfileTemplateId, attrInfo } = dataSourceJson || {}
55 55 await nextTick()
56   - unref(dataSourceElRef)?.setFieldsValue({ deviceId, attr, deviceProfileId, attrInfo })
  56 + unref(dataSourceElRef)?.setFieldsValue({ deviceId, attr, deviceProfileId, attrInfo, deviceProfileTemplateId })
57 57 setFieldsValue({ ...chartOption })
58 58 }
59 59
... ...
... ... @@ -12,6 +12,7 @@ import type { ConfigComponentProps } from '@/core/Library/types'
12 12 import { createPublicFormContext } from '@/core/Library/components/PublicForm/usePublicFormContext'
13 13 import { useMessage } from '@/hooks/web/useMessage'
14 14 import { useSavePageContent } from '@/core/Library/hook/useSavePageContent'
  15 +import { useContentDataStoreWithOut } from '@/store/modules/contentData'
15 16
16 17 const props = defineProps<ConfigComponentProps>()
17 18
... ... @@ -28,6 +29,7 @@ const [register, { getFieldsValue, setFieldsValue, validate }] = useForm({
28 29 labelWidth: 70,
29 30 })
30 31
  32 +const contentDataStore = useContentDataStoreWithOut()
31 33 const loading = ref(false)
32 34 const { createMessage } = useMessage()
33 35 const { savePageContent } = useSavePageContent()
... ... @@ -38,7 +40,11 @@ const handleSubmit = async () => {
38 40 await validate()
39 41 const value = unref(dataSourceElRef)?.getFieldsValue()
40 42 const values = getFieldsValue()
41   - await saveNodeAllData({ dataSourceJson: { ...value, chartOption: values } })
  43 + let dataSourceJson = value
  44 + if (contentDataStore.getIsTemplate)
  45 + dataSourceJson = { ...value, deviceProfileId: value?.deviceProfileTemplateId, deviceId: null }
  46 +
  47 + await saveNodeAllData({ dataSourceJson: { ...dataSourceJson, chartOption: values } })
42 48 createMessage.success('操作成功~')
43 49 savePageContent()
44 50 }
... ... @@ -49,9 +55,9 @@ const handleSubmit = async () => {
49 55
50 56 const handleSetFormValues = async () => {
51 57 const { dataSourceJson } = unref(getNodeData) || {}
52   - const { deviceId, attr, chartOption, deviceProfileId, attrInfo } = dataSourceJson || {}
  58 + const { deviceId, attr, chartOption, deviceProfileId, attrInfo, deviceProfileTemplateId } = dataSourceJson || {}
53 59 await nextTick()
54   - unref(dataSourceElRef)?.setFieldsValue({ deviceId, attr, deviceProfileId, attrInfo })
  60 + unref(dataSourceElRef)?.setFieldsValue({ deviceId, attr, deviceProfileId, attrInfo, deviceProfileTemplateId })
55 61 setFieldsValue({ ...chartOption })
56 62 }
57 63
... ...
... ... @@ -32,9 +32,9 @@ const dataSourceElRef = ref<Nullable<InstanceType<typeof DataSourceForm>>>()
32 32
33 33 const handleSetFormValues = async () => {
34 34 const { dataSourceJson } = unref(getNodeData) || {}
35   - const { deviceId, attr, chartOption, deviceProfileId, attrInfo } = dataSourceJson || {}
  35 + const { deviceId, attr, chartOption, deviceProfileId, deviceProfileTemplateId, attrInfo } = dataSourceJson || {}
36 36 await nextTick()
37   - unref(dataSourceElRef)?.setFieldsValue({ deviceId, attr, deviceProfileId, attrInfo })
  37 + unref(dataSourceElRef)?.setFieldsValue({ deviceId, attr, deviceProfileId, deviceProfileTemplateId, attrInfo })
38 38 setFieldsValue({ ...chartOption })
39 39 }
40 40
... ...