Commit 81be0d18912900e60acd4cd278bc390263bfec91

Authored by fengtao
1 parent 688fb037

feat:mock模拟阿里云后端数据,物模型,新增编辑回显数据大致完成

... ... @@ -20,13 +20,13 @@
20 20 </Typography>
21 21 </div>
22 22 <Tabs type="card" v-model:activeKey="activeKey" :size="size">
23   - <TabPane key="1" tab="属性">
  23 + <TabPane forceRender key="1" tab="属性">
24 24 <Attribute v-show="activeKey === '1'" ref="AttrRef" />
25 25 </TabPane>
26   - <TabPane key="2" tab="服务">
  26 + <TabPane forceRender key="2" tab="服务">
27 27 <Service v-show="activeKey === '2'" ref="ServiceRef" />
28 28 </TabPane>
29   - <TabPane key="3" v-show="activeKey === '3'" tab="事件">
  29 + <TabPane forceRender key="3" v-show="activeKey === '3'" tab="事件">
30 30 <Events v-show="activeKey === '3'" ref="EventsRef" />
31 31 </TabPane>
32 32 </Tabs>
... ... @@ -79,9 +79,11 @@
79 79 setModalProps({ title, showOkBtn: true, showCancelBtn: true });
80 80 } else {
81 81 setModalProps({ showOkBtn: false, showCancelBtn: false, title: '查看物模型' });
82   - AttrRef.value?.setFormData(mockData.properties);
83   - ServiceRef.value?.setFormData(mockData.services);
84   - EventsRef.value?.setFormData(mockData.events);
  82 + nextTick(() => {
  83 + AttrRef.value?.setFormData(mockData.properties);
  84 + ServiceRef.value?.setFormData(mockData.services);
  85 + EventsRef.value?.setFormData(mockData.events);
  86 + });
85 87 }
86 88 setModalProps({ loading: false });
87 89 });
... ...
... ... @@ -50,11 +50,9 @@
50 50 import InputParamItem from './components/InputParamItem.vue';
51 51 import AddParamsModal from './components/AddParamsModal.vue';
52 52 import { Input } from 'ant-design-vue';
53   - // import { useMessage } from '/@/hooks/web/useMessage';
54   - import { validateValueRangeAndStep } from '../hook/useValidateParital';
  53 + import { validateValueRangeAndStep, validateValueBool } from '../hook/useValidateParital';
55 54 import { buildUUID } from '/@/utils/uuid';
56 55
57   - // const { createMessage } = useMessage();
58 56 const outputParamData: any = ref([]);
59 57 const minMaxObj = reactive({
60 58 min: '',
... ... @@ -94,7 +92,7 @@
94 92 openModal(true, {
95 93 isUpdate: true,
96 94 flag: 'output',
97   - excludeStruct: false,
  95 + excludeStruct: true,
98 96 });
99 97 };
100 98
... ... @@ -106,13 +104,24 @@
106 104 isUpdate: false,
107 105 record: item,
108 106 flag: 'output',
109   - excludeStruct: false,
  107 + excludeStruct: true,
110 108 });
111 109 };
112 110
113 111 //回显数据
114 112 const setFormData = (v) => {
115 113 setFieldsValue(v[0]);
  114 + setFieldsValue({
  115 + ...v[0].dataSpecs,
  116 + boolClose:
  117 + v[0].dataSpecsList !== undefined || v[0].dataSpecsList !== null
  118 + ? v[0].dataSpecsList[0].name
  119 + : '',
  120 + boolOpen:
  121 + v[0].dataSpecsList !== undefined || v[0].dataSpecsList !== null
  122 + ? v[0].dataSpecsList[1].name
  123 + : '',
  124 + });
116 125 const { dataSpecsList } = v[0];
117 126 if (dataSpecsList !== undefined) {
118 127 outputParamData.value = [...new Array(dataSpecsList.length).keys()];
... ... @@ -130,13 +139,26 @@
130 139 if (!values) return;
131 140 const dataSpecsList = getStructList();
132 141 validateValueRangeAndStep(Number(minMaxObj.min), Number(values.step), Number(minMaxObj.max));
133   - const isStruct = values.dataType === 'STRUCT';
  142 + validateValueBool(Number(values.boolClose), Number(values.boolOpen));
134 143 const dataSpecs = {
135 144 ...minMaxObj,
136 145 ...{ step: values.step },
137 146 ...{ unit: values.unit },
138 147 ...{ dataType: values.dataType },
  148 + ...{ length: values.length },
139 149 };
  150 + const dataSpecsListBool = [
  151 + {
  152 + dataType: values.dataType,
  153 + name: '0',
  154 + value: values.boolClose,
  155 + },
  156 + {
  157 + dataType: values.dataType,
  158 + name: '1',
  159 + value: values.boolOpen,
  160 + },
  161 + ];
140 162 const { valueRange, step, unit, outputParam, ...value } = values;
141 163 console.log(valueRange);
142 164 console.log(step);
... ... @@ -144,8 +166,20 @@
144 166 console.log(outputParam);
145 167 return {
146 168 ...value,
147   - ...{ dataSpecs: isStruct ? null : dataSpecs },
148   - ...{ dataSpecsList: isStruct ? dataSpecsList : null },
  169 + ...{
  170 + dataSpecs:
  171 + values.dataType === 'INT' || values.dataType === 'DOUBLE' || values.dataType === 'TEXT'
  172 + ? dataSpecs
  173 + : null,
  174 + },
  175 + ...{
  176 + dataSpecsList:
  177 + values.dataType === 'STRUCT'
  178 + ? dataSpecsList
  179 + : values.dataType === 'BOOL'
  180 + ? dataSpecsListBool
  181 + : null,
  182 + },
149 183 };
150 184 }
151 185 //清空数据
... ...
... ... @@ -74,6 +74,7 @@
74 74 isUpdate: false,
75 75 record: item,
76 76 flag: 'output',
  77 + excludeStruct: false,
77 78 });
78 79 };
79 80 //回显数据
... ...
... ... @@ -114,6 +114,7 @@
114 114 isUpdate: false,
115 115 record: item,
116 116 flag: 'input',
  117 + excludeStruct: false,
117 118 });
118 119 };
119 120 const deleteOutParItem = (index) => {
... ... @@ -124,12 +125,12 @@
124 125 isUpdate: false,
125 126 record: item,
126 127 flag: 'output',
  128 + excludeStruct: false,
127 129 });
128 130 };
129 131
130 132 //回显数据
131 133 const setFormData = (v) => {
132   - console.log(v[0]);
133 134 setFieldsValue(v[0]);
134 135 const { inputParams, outputParams } = v[0];
135 136 if (outputParams !== undefined) {
... ...
... ... @@ -40,11 +40,10 @@
40 40 import InputParamItem from './InputParamItem.vue';
41 41 import AddParamsModal from './AddParamsModal.vue';
42 42 import { findDictItemByCode } from '/@/api/system/dict';
43   - // import { useMessage } from '/@/hooks/web/useMessage';
44   - import { validateValueRangeAndStep } from '../../hook/useValidateParital';
  43 + import { validateValueRangeAndStep, validateValueBool } from '../../hook/useValidateParital';
  44 + import { buildUUID } from '/@/utils/uuid';
45 45
46 46 defineEmits(['register']);
47   - // const { createMessage } = useMessage();
48 47 const outputParamData: any = ref([]);
49 48 const dynamicBindRef = {
50 49 outputParamItemRef: ref([]),
... ... @@ -70,10 +69,11 @@
70 69
71 70 const getData = (d, f) => {
72 71 if (f == 'output') {
73   - unref(outputParamData).push(d);
74 72 if (d.id !== null) {
75   - const findIndex = unref(outputParamData).findIndex((f) => f.id !== d.id);
76   - if (findIndex !== -1) unref(outputParamData).splice(findIndex, 1);
  73 + const findIndex = unref(outputParamData).findIndex((f) => f.id == d.id);
  74 + if (findIndex !== -1) unref(outputParamData).splice(findIndex, 1, d);
  75 + } else {
  76 + unref(outputParamData).push({ ...d, id: buildUUID() });
77 77 }
78 78 }
79 79 };
... ... @@ -94,6 +94,7 @@
94 94 isUpdate: false,
95 95 record: item,
96 96 flag: 'output',
  97 + excludeStruct: true,
97 98 });
98 99 };
99 100
... ... @@ -124,26 +125,74 @@
124 125 });
125 126 };
126 127
  128 + const getOutputStructList = () => {
  129 + const val = unref(dynamicBindRef.outputParamItemRef)?.map((item: any) => item.getFormData());
  130 + return val;
  131 + };
127 132 const getFormData = async () => {
128 133 const values = await validate();
129 134 if (!values) return;
130 135 validateValueRangeAndStep(Number(minMaxObj.min), Number(values.step), Number(minMaxObj.max));
  136 + validateValueBool(Number(values.boolClose), Number(values.boolOpen));
  137 + const outputParams = getOutputStructList();
  138 + outputParams.forEach((f) => {
  139 + f.dataType = 'STRUCT';
  140 + });
  141 + //int double类型
131 142 const childSpecsDTO = {
132 143 dataType: values.dataType,
133 144 max: minMaxObj.max,
134 145 min: minMaxObj.min,
135 146 step: values.step,
136 147 unit: values.unit,
  148 + length: values.length,
137 149 };
138 150 const dataSpecs = childSpecsDTO;
139   - const { step, unit, valueRange, ...value } = values;
  151 + //bool类型
  152 + const childEnumSpecsDTO = [
  153 + {
  154 + dataType: values.dataType,
  155 + name: '0',
  156 + value: values.boolClose,
  157 + },
  158 + {
  159 + dataType: values.dataType,
  160 + name: '1',
  161 + value: values.boolOpen,
  162 + },
  163 + ];
  164 + const dataSpecsList = childEnumSpecsDTO;
  165 + //text类型
  166 + //其他类型
  167 + const { boolClose, boolOpen, step, unit, valueRange, ...value } = values;
140 168 console.log(valueRange);
141 169 console.log(step);
142 170 console.log(unit);
  171 + console.log(boolClose);
  172 + console.log(boolOpen);
143 173 return {
144 174 ...value,
145   - ...{ dataSpecs },
146   - ...{ childSpecsDTO },
  175 + ...{
  176 + dataSpecs:
  177 + values.dataType === 'INT' || values.dataType === 'DOUBLE' || values.dataType === 'TEXT'
  178 + ? dataSpecs
  179 + : null,
  180 + },
  181 + ...{
  182 + childSpecsDTO:
  183 + values.dataType === 'INT' || values.dataType === 'DOUBLE' || values.dataType === 'TEXT'
  184 + ? childSpecsDTO
  185 + : null,
  186 + },
  187 + ...{
  188 + dataSpecsList:
  189 + values.dataType === 'BOOL'
  190 + ? dataSpecsList
  191 + : values.dataType === 'STRUCT'
  192 + ? outputParams
  193 + : null,
  194 + },
  195 + ...{ childEnumSpecsDTO: values.dataType === 'BOOL' ? childEnumSpecsDTO : null },
147 196 ...{
148 197 childDataType: values.dataType,
149 198 childName: values.name,
... ... @@ -151,10 +200,35 @@
151 200 };
152 201 };
153 202 const setFormData = (v) => {
  203 + console.log(v);
154 204 setFieldsValue(v);
155 205 setFieldsValue({
156 206 ...v.dataSpecs,
157 207 });
  208 + try {
  209 + setFieldsValue({
  210 + boolClose: v.dataType == 'BOOL' ? v.dataSpecsList[0].name : '',
  211 + boolOpen: v.dataType == 'BOOL' ? v.dataSpecsList[1].name : '',
  212 + });
  213 + } catch (e) {
  214 + console.log(e);
  215 + }
  216 + const { dataSpecsList, dataType, childDataType } = v;
  217 + if (childDataType == 'BOOL') {
  218 + setFieldsValue({
  219 + dataType: childDataType,
  220 + boolClose: dataSpecsList[0].name,
  221 + boolOpen: dataSpecsList[1].name,
  222 + });
  223 + }
  224 + try {
  225 + if (dataType == 'BOOL' || dataType == 'STRUCT') {
  226 + outputParamData.value = [...new Array(dataSpecsList.length).keys()];
  227 + outputParamData.value = dataSpecsList;
  228 + }
  229 + } catch (e) {
  230 + console.log(e);
  231 + }
158 232 nextTick(() => {
159 233 minMaxObj.min = v?.dataSpecs?.min;
160 234 minMaxObj.max = v?.dataSpecs?.max;
... ...
1 1 import { buildUUID } from '/@/utils/uuid';
2 2
  3 +//模拟阿里云属性服务事件服务端格式
3 4 export const mockData = {
4 5 _ppk: {},
5 6 events: [
6 7 {
7   - createTs: 1666344382193,
  8 + createTs: 1666596472189,
8 9 custom: true,
9   - description: '33',
10   - eventName: '事件1',
11   - eventType: 'ALERT_EVENT_TYPE',
12   - identifier: 'i1',
  10 + description: '监播动作结果上报事件',
  11 + eventName: '监播动作结果上报事件',
  12 + eventType: 'INFO_EVENT_TYPE',
  13 + identifier: 'MonitorActionEvent',
13 14 outputData: [
14 15 {
15 16 id: buildUUID(),
16 17 custom: true,
17 18 dataSpecs: {
18 19 dataType: 'INT',
19   - max: '20',
20   - min: '10',
21   - step: '3',
22   - unit: 'W/㎡',
23   - unitName: '太阳总辐射',
  20 + max: '1024',
  21 + min: '-1024',
  22 + precise: 0,
  23 + step: '1',
  24 + unit: '',
  25 + unitName: '无',
24 26 },
25 27 dataType: 'INT',
26 28 direction: 'PARAM_OUTPUT',
27   - identifier: 'i1',
28   - name: '参数1',
  29 + identifier: 'ActionType',
  30 + name: '监播操作类型',
29 31 paraOrder: 0,
30 32 },
  33 + {
  34 + id: buildUUID(),
  35 + custom: true,
  36 + dataSpecs: {
  37 + dataType: 'TEXT',
  38 + length: 1024,
  39 + },
  40 + dataType: 'TEXT',
  41 + direction: 'PARAM_OUTPUT',
  42 + identifier: 'FileKey',
  43 + name: '上传文件ossKey',
  44 + paraOrder: 1,
  45 + },
  46 + {
  47 + id: buildUUID(),
  48 + custom: true,
  49 + dataSpecsList: [
  50 + {
  51 + id: buildUUID(),
  52 + dataType: 'BOOL',
  53 + name: '1',
  54 + value: 0,
  55 + },
  56 + {
  57 + id: buildUUID(),
  58 + dataType: 'BOOL',
  59 + name: '0',
  60 + value: 1,
  61 + },
  62 + ],
  63 + dataType: 'BOOL',
  64 + direction: 'PARAM_OUTPUT',
  65 + identifier: 'Extension',
  66 + name: '扩展信息',
  67 + paraOrder: 2,
  68 + },
  69 + {
  70 + id: buildUUID(),
  71 + custom: true,
  72 + dataSpecsList: [
  73 + {
  74 + id: buildUUID(),
  75 + childDataType: 'DOUBLE',
  76 + childName: '峰值',
  77 + childSpecsDTO: {
  78 + dataType: 'DOUBLE',
  79 + max: '33',
  80 + min: '22',
  81 + step: '2',
  82 + unit: 'm³/s',
  83 + unitName: '立方米每秒',
  84 + },
  85 + custom: true,
  86 + dataSpecs: {
  87 + dataType: 'DOUBLE',
  88 + max: '33',
  89 + min: '22',
  90 + step: '2',
  91 + unit: 'm³/s',
  92 + unitName: '立方米每秒',
  93 + },
  94 + dataType: 'STRUCT',
  95 + identifier: 'bass',
  96 + isStd: 0,
  97 + name: '峰值',
  98 + },
  99 + {
  100 + id: buildUUID(),
  101 + childDataType: 'BOOL',
  102 + childEnumSpecsDTO: [
  103 + {
  104 + dataType: 'BOOL',
  105 + name: '1',
  106 + value: 0,
  107 + },
  108 + {
  109 + dataType: 'BOOL',
  110 + name: '0',
  111 + value: 1,
  112 + },
  113 + ],
  114 + childName: '平均速率',
  115 + custom: true,
  116 + dataSpecsList: [
  117 + {
  118 + id: buildUUID(),
  119 + dataType: 'BOOL',
  120 + name: '1',
  121 + value: 0,
  122 + },
  123 + {
  124 + id: buildUUID(),
  125 + dataType: 'BOOL',
  126 + name: '0',
  127 + value: 1,
  128 + },
  129 + ],
  130 + dataType: 'STRUCT',
  131 + identifier: 'average',
  132 + isStd: 0,
  133 + name: '平均速率',
  134 + },
  135 + ],
  136 + dataType: 'STRUCT',
  137 + direction: 'PARAM_OUTPUT',
  138 + identifier: 'ceshi',
  139 + name: '网速',
  140 + paraOrder: 3,
  141 + },
31 142 ],
32 143 productKey: 'hsrnXEfGFDv',
33 144 required: false,
... ... @@ -36,67 +147,123 @@ export const mockData = {
36 147 productKey: 'hsrnXEfGFDv',
37 148 properties: [
38 149 {
39   - createTs: 1666259889029,
  150 + createTs: 1666604372638,
40 151 custom: true,
41 152 customFlag: true,
42 153 dataSpecsList: [
43 154 {
44   - id: buildUUID(),
  155 + childDataType: 'BOOL',
  156 + childEnumSpecsDTO: [
  157 + {
  158 + dataType: 'BOOL',
  159 + name: '左眼',
  160 + value: 0,
  161 + },
  162 + {
  163 + dataType: 'BOOL',
  164 + name: '右眼',
  165 + value: 1,
  166 + },
  167 + ],
  168 + childName: '眼睛',
  169 + custom: true,
  170 + dataSpecsList: [
  171 + {
  172 + dataType: 'BOOL',
  173 + name: '左眼',
  174 + value: 0,
  175 + },
  176 + {
  177 + dataType: 'BOOL',
  178 + name: '右眼',
  179 + value: 1,
  180 + },
  181 + ],
  182 + dataType: 'STRUCT',
  183 + identifier: 'Eye',
  184 + isStd: 0,
  185 + name: '眼睛',
  186 + },
  187 + {
45 188 childDataType: 'INT',
46   - childName: '测试参数1',
  189 + childName: '鼻子',
47 190 childSpecsDTO: {
48 191 dataType: 'INT',
49   - max: '30',
50   - min: '20',
51   - step: '1',
52   - unit: 'mm/hour',
53   - unitName: '降雨量',
  192 + max: '22',
  193 + min: '12',
  194 + step: '5',
  195 + unit: '只',
  196 + unitName: '只',
54 197 },
55 198 custom: true,
56 199 dataSpecs: {
57 200 dataType: 'INT',
58   - max: '30',
59   - min: '20',
60   - step: '1',
61   - unit: 'mm/hour',
62   - unitName: '降雨量',
  201 + max: '22',
  202 + min: '12',
  203 + step: '5',
  204 + unit: '只',
  205 + unitName: '只',
63 206 },
64 207 dataType: 'STRUCT',
65   - identifier: 'iden2',
  208 + identifier: 'Boless',
66 209 isStd: 0,
67   - name: '测试参数1',
  210 + name: '鼻子',
68 211 },
69 212 {
70   - id: buildUUID(),
71   - childDataType: 'INT',
72   - childName: '测试参数2',
  213 + childDataType: 'TEXT',
  214 + childName: '脸颊',
73 215 childSpecsDTO: {
74   - dataType: 'INT',
75   - max: '40',
76   - min: '30',
77   - step: '2',
78   - unit: 'pH',
79   - unitName: 'PH值',
  216 + dataType: 'TEXT',
  217 + length: 10240,
80 218 },
81 219 custom: true,
82 220 dataSpecs: {
83   - dataType: 'INT',
84   - max: '40',
85   - min: '30',
86   - step: '2',
87   - unit: 'pH',
88   - unitName: 'PH值',
  221 + dataType: 'TEXT',
  222 + length: 10240,
89 223 },
90 224 dataType: 'STRUCT',
91   - identifier: 'idne2',
  225 + identifier: 'Facebook',
92 226 isStd: 0,
93   - name: '测试参数2',
  227 + name: '脸颊',
  228 + },
  229 + {
  230 + childDataType: 'BOOL',
  231 + childEnumSpecsDTO: [
  232 + {
  233 + dataType: 'BOOL',
  234 + name: '左耳',
  235 + value: 0,
  236 + },
  237 + {
  238 + dataType: 'BOOL',
  239 + name: '右耳',
  240 + value: 1,
  241 + },
  242 + ],
  243 + childName: '耳朵',
  244 + custom: true,
  245 + dataSpecsList: [
  246 + {
  247 + dataType: 'BOOL',
  248 + name: '左耳',
  249 + value: 0,
  250 + },
  251 + {
  252 + dataType: 'BOOL',
  253 + name: '右耳',
  254 + value: 1,
  255 + },
  256 + ],
  257 + dataType: 'STRUCT',
  258 + identifier: 'Eyear',
  259 + isStd: 0,
  260 + name: '耳朵',
94 261 },
95 262 ],
96 263 dataType: 'STRUCT',
97   - description: '21212',
98   - identifier: 'iden1',
99   - name: '测试功能',
  264 + description: '用于人脸特征下发,基于人脸门禁1.0物模型\n设备级开关',
  265 + identifier: 'SupportFaceFeature',
  266 + name: '支持人脸特征下发',
100 267 productKey: 'hsrnXEfGFDv',
101 268 required: false,
102 269 rwFlag: 'READ_WRITE',
... ... @@ -105,249 +272,329 @@ export const mockData = {
105 272 ],
106 273 services: [
107 274 {
108   - callType: 'ASYNC',
109   - createTs: 1666343456853,
  275 + callType: 'SYNC',
  276 + createTs: 1666603858325,
110 277 custom: true,
111   - description: '4343',
112   - identifier: 'Iide1',
  278 + description: '更新模型',
  279 + identifier: 'UpdateModel',
113 280 inputParams: [
114 281 {
115 282 id: buildUUID(),
116 283 custom: true,
117 284 dataSpecs: {
  285 + dataType: 'TEXT',
  286 + length: 128,
  287 + },
  288 + dataType: 'TEXT',
  289 + direction: 'PARAM_INPUT',
  290 + identifier: 'UpdateTaskID',
  291 + name: '更新任务ID',
  292 + paraOrder: 0,
  293 + },
  294 + {
  295 + id: buildUUID(),
  296 + custom: true,
  297 + dataSpecs: {
  298 + dataType: 'TEXT',
  299 + length: 128,
  300 + },
  301 + dataType: 'TEXT',
  302 + direction: 'PARAM_INPUT',
  303 + identifier: 'AlgorithmID',
  304 + name: '算法任务唯一标识',
  305 + paraOrder: 1,
  306 + },
  307 + {
  308 + id: buildUUID(),
  309 +
  310 + custom: true,
  311 + dataSpecs: {
  312 + dataType: 'TEXT',
  313 + length: 64,
  314 + },
  315 + dataType: 'TEXT',
  316 + direction: 'PARAM_INPUT',
  317 + identifier: 'AlgorithmName',
  318 + name: '算法名称',
  319 + paraOrder: 2,
  320 + },
  321 + {
  322 + id: buildUUID(),
  323 +
  324 + custom: true,
  325 + dataSpecs: {
118 326 dataType: 'INT',
119   - max: '20',
120   - min: '10',
121   - step: '2',
122   - unit: 'dS/m',
123   - unitName: '土壤EC值',
  327 + max: '128',
  328 + min: '0',
  329 + precise: 0,
  330 + step: '1',
  331 + unit: '',
  332 + unitName: '无',
124 333 },
125 334 dataType: 'INT',
126 335 direction: 'PARAM_INPUT',
127   - identifier: 'i1',
128   - name: '参数名字1',
129   - paraOrder: 0,
  336 + identifier: 'NumThreads',
  337 + name: '使用线程数',
  338 + paraOrder: 4,
  339 + },
  340 + {
  341 + id: buildUUID(),
  342 +
  343 + custom: true,
  344 + dataSpecs: {
  345 + dataType: 'TEXT',
  346 + length: 128,
  347 + },
  348 + dataType: 'TEXT',
  349 + direction: 'PARAM_INPUT',
  350 + identifier: 'ModelID',
  351 + name: '模型唯一标识',
  352 + paraOrder: 5,
  353 + },
  354 + {
  355 + id: buildUUID(),
  356 +
  357 + custom: true,
  358 + dataSpecs: {
  359 + dataType: 'TEXT',
  360 + length: 64,
  361 + },
  362 + dataType: 'TEXT',
  363 + direction: 'PARAM_INPUT',
  364 + identifier: 'ModelName',
  365 + name: '模型名称',
  366 + paraOrder: 6,
  367 + },
  368 + {
  369 + id: buildUUID(),
  370 +
  371 + custom: true,
  372 + dataSpecs: {
  373 + dataType: 'TEXT',
  374 + length: 64,
  375 + },
  376 + dataType: 'TEXT',
  377 + direction: 'PARAM_INPUT',
  378 + identifier: 'ModelVersion',
  379 + name: '模型版本',
  380 + paraOrder: 7,
  381 + },
  382 + {
  383 + id: buildUUID(),
  384 +
  385 + custom: true,
  386 + dataSpecs: {
  387 + dataType: 'TEXT',
  388 + length: 1024,
  389 + },
  390 + dataType: 'TEXT',
  391 + direction: 'PARAM_INPUT',
  392 + identifier: 'ModelURL',
  393 + name: '模型地址',
  394 + paraOrder: 8,
  395 + },
  396 + {
  397 + id: buildUUID(),
  398 +
  399 + custom: true,
  400 + dataSpecs: {
  401 + dataType: 'TEXT',
  402 + length: 128,
  403 + },
  404 + dataType: 'TEXT',
  405 + direction: 'PARAM_INPUT',
  406 + identifier: 'ModelMD5',
  407 + name: '模型文件MD5',
  408 + paraOrder: 9,
  409 + },
  410 + {
  411 + id: buildUUID(),
  412 +
  413 + custom: true,
  414 + dataSpecs: {
  415 + dataType: 'TEXT',
  416 + length: 64,
  417 + },
  418 + dataType: 'TEXT',
  419 + direction: 'PARAM_INPUT',
  420 + identifier: 'ModelPlatform',
  421 + name: '模型平台',
  422 + paraOrder: 10,
  423 + },
  424 + {
  425 + id: buildUUID(),
  426 +
  427 + custom: true,
  428 + dataSpecs: {
  429 + dataType: 'TEXT',
  430 + length: 128,
  431 + },
  432 + dataType: 'TEXT',
  433 + direction: 'PARAM_INPUT',
  434 + identifier: 'ModelTaskID',
  435 + name: '模型生成任务ID',
  436 + paraOrder: 11,
  437 + },
  438 + {
  439 + id: buildUUID(),
  440 +
  441 + custom: true,
  442 + dataSpecs: {
  443 + dataType: 'TEXT',
  444 + length: 64,
  445 + },
  446 + dataType: 'TEXT',
  447 + direction: 'PARAM_INPUT',
  448 + identifier: 'ModelEncryptType',
  449 + name: '模型加密方式',
  450 + paraOrder: 12,
  451 + },
  452 + {
  453 + id: buildUUID(),
  454 +
  455 + custom: true,
  456 + dataSpecs: {
  457 + dataType: 'TEXT',
  458 + length: 2048,
  459 + },
  460 + dataType: 'TEXT',
  461 + direction: 'PARAM_INPUT',
  462 + identifier: 'ModelExtension',
  463 + name: '扩展信息',
  464 + paraOrder: 13,
  465 + },
  466 + {
  467 + id: buildUUID(),
  468 +
  469 + custom: true,
  470 + dataSpecsList: [
  471 + {
  472 + id: buildUUID(),
  473 +
  474 + childDataType: 'TEXT',
  475 + childName: '模型结构体参数1',
  476 + childSpecsDTO: {
  477 + dataType: 'TEXT',
  478 + length: 10240,
  479 + },
  480 + custom: true,
  481 + dataSpecs: {
  482 + dataType: 'TEXT',
  483 + length: 10240,
  484 + },
  485 + dataType: 'STRUCT',
  486 + identifier: 'ModelParams1',
  487 + isStd: 0,
  488 + name: '模型结构体参数1',
  489 + },
  490 + {
  491 + id: buildUUID(),
  492 +
  493 + childDataType: 'BOOL',
  494 + childEnumSpecsDTO: [
  495 + {
  496 + dataType: 'BOOL',
  497 + name: '1',
  498 + value: 0,
  499 + },
  500 + {
  501 + dataType: 'BOOL',
  502 + name: '0',
  503 + value: 1,
  504 + },
  505 + ],
  506 + childName: '模型结构体参数2',
  507 + custom: true,
  508 + dataSpecsList: [
  509 + {
  510 + id: buildUUID(),
  511 +
  512 + dataType: 'BOOL',
  513 + name: '1',
  514 + value: 0,
  515 + },
  516 + {
  517 + id: buildUUID(),
  518 +
  519 + dataType: 'BOOL',
  520 + name: '0',
  521 + value: 1,
  522 + },
  523 + ],
  524 + dataType: 'STRUCT',
  525 + identifier: 'ModelParams2',
  526 + isStd: 0,
  527 + name: '模型结构体参数2',
  528 + },
  529 + ],
  530 + dataType: 'STRUCT',
  531 + direction: 'PARAM_INPUT',
  532 + identifier: 'ModelStruct',
  533 + name: '模型结构体',
  534 + paraOrder: 3,
130 535 },
131 536 ],
132 537 outputParams: [
133 538 {
134 539 id: buildUUID(),
  540 +
  541 + custom: true,
  542 + dataSpecs: {
  543 + dataType: 'TEXT',
  544 + length: 10240,
  545 + },
  546 + dataType: 'TEXT',
  547 + direction: 'PARAM_OUTPUT',
  548 + identifier: 'Django',
  549 + name: 'django',
  550 + paraOrder: 0,
  551 + },
  552 + {
  553 + id: buildUUID(),
  554 +
  555 + custom: true,
  556 + dataSpecsList: [
  557 + {
  558 + id: buildUUID(),
  559 +
  560 + dataType: 'BOOL',
  561 + name: '1',
  562 + value: 0,
  563 + },
  564 + {
  565 + id: buildUUID(),
  566 + dataType: 'BOOL',
  567 + name: '0',
  568 + value: 1,
  569 + },
  570 + ],
  571 + dataType: 'BOOL',
  572 + direction: 'PARAM_OUTPUT',
  573 + identifier: 'Flask',
  574 + name: 'flask',
  575 + paraOrder: 1,
  576 + },
  577 + {
  578 + id: buildUUID(),
135 579 custom: true,
136 580 dataSpecs: {
137 581 dataType: 'INT',
138   - max: '20',
139   - min: '10',
  582 + max: '22',
  583 + min: '11',
140 584 step: '3',
141   - unit: 'pH',
142   - unitName: 'PH值',
  585 + unit: '只',
  586 + unitName: '只',
143 587 },
144 588 dataType: 'INT',
145 589 direction: 'PARAM_OUTPUT',
146   - identifier: 'i2',
147   - name: '输出参数2',
148   - paraOrder: 0,
  590 + identifier: 'Tornado',
  591 + name: 'tornado',
  592 + paraOrder: 2,
149 593 },
150 594 ],
151 595 productKey: 'hsrnXEfGFDv',
152 596 required: false,
153   - serviceName: '服务1',
  597 + serviceName: '更新模型',
154 598 },
155 599 ],
156 600 };
157   -
158   -// {
159   -// _ppk: {},
160   -// events: [],
161   -// productKey: 'hsrnXEfGFDv',
162   -// properties: [
163   -// {
164   -// createTs: 1666259889029,
165   -// custom: true,
166   -// customFlag: true,
167   -// dataSpecsList: [
168   -// {
169   -// id: buildUUID(),
170   -// childDataType: 'INT',
171   -// childName: '测试参数1',
172   -// childSpecsDTO: {
173   -// dataType: 'INT',
174   -// max: '30',
175   -// min: '20',
176   -// step: '1',
177   -// unit: 'mm/hour',
178   -// unitName: '降雨量',
179   -// },
180   -// custom: true,
181   -// dataSpecs: {
182   -// dataType: 'INT',
183   -// max: '30',
184   -// min: '20',
185   -// step: '1',
186   -// unit: 'mm/hour',
187   -// unitName: '降雨量',
188   -// },
189   -// dataType: 'STRUCT',
190   -// identifier: 'iden2',
191   -// isStd: 0,
192   -// name: '测试参数1',
193   -// },
194   -// {
195   -// id: buildUUID(),
196   -// childDataType: 'INT',
197   -// childName: '测试参数2',
198   -// childSpecsDTO: {
199   -// dataType: 'INT',
200   -// max: '40',
201   -// min: '30',
202   -// step: '2',
203   -// unit: 'pH',
204   -// unitName: 'PH值',
205   -// },
206   -// custom: true,
207   -// dataSpecs: {
208   -// dataType: 'INT',
209   -// max: '40',
210   -// min: '30',
211   -// step: '2',
212   -// unit: 'pH',
213   -// unitName: 'PH值',
214   -// },
215   -// dataType: 'STRUCT',
216   -// identifier: 'idne2',
217   -// isStd: 0,
218   -// name: '测试参数2',
219   -// },
220   -// ],
221   -// dataType: 'STRUCT',
222   -// description: '21212',
223   -// identifier: 'iden1',
224   -// name: '测试功能',
225   -// productKey: 'hsrnXEfGFDv',
226   -// required: false,
227   -// rwFlag: 'READ_WRITE',
228   -// std: false,
229   -// },
230   -// ],
231   -// services: [],
232   -// };
233   -
234   -// {
235   -// "_ppk": {},
236   -// "events": [],
237   -// "productKey": "hsrnXEfGFDv",
238   -// "properties": [
239   -// {
240   -// "createTs": 1666259889029,
241   -// "custom": true,
242   -// "customFlag": true,
243   -// "dataSpecsList": [
244   -// {
245   -// "childDataType": "INT",
246   -// "childName": "测试参数1",
247   -// "childSpecsDTO": {
248   -// "dataType": "INT",
249   -// "max": "30",
250   -// "min": "20",
251   -// "step": "1",
252   -// "unit": "mm/hour",
253   -// "unitName": "降雨量"
254   -// },
255   -// "custom": true,
256   -// "dataSpecs": {
257   -// "dataType": "INT",
258   -// "max": "30",
259   -// "min": "20",
260   -// "step": "1",
261   -// "unit": "mm/hour",
262   -// "unitName": "降雨量"
263   -// },
264   -// "dataType": "STRUCT",
265   -// "identifier": "iden2",
266   -// "isStd": 0,
267   -// "name": "测试参数1"
268   -// },
269   -// {
270   -// "childDataType": "INT",
271   -// "childName": "测试参数2",
272   -// "childSpecsDTO": {
273   -// "dataType": "INT",
274   -// "max": "40",
275   -// "min": "30",
276   -// "step": "2",
277   -// "unit": "pH",
278   -// "unitName": "PH值"
279   -// },
280   -// "custom": true,
281   -// "dataSpecs": {
282   -// "dataType": "INT",
283   -// "max": "40",
284   -// "min": "30",
285   -// "step": "2",
286   -// "unit": "pH",
287   -// "unitName": "PH值"
288   -// },
289   -// "dataType": "STRUCT",
290   -// "identifier": "idne2",
291   -// "isStd": 0,
292   -// "name": "测试参数2"
293   -// }
294   -// ],
295   -// "dataType": "STRUCT",
296   -// "description": "21212",
297   -// "identifier": "iden1",
298   -// "name": "测试功能",
299   -// "productKey": "hsrnXEfGFDv",
300   -// "required": false,
301   -// "rwFlag": "READ_WRITE",
302   -// "std": false
303   -// }
304   -// ],
305   -// "services": [
306   -// {
307   -// "callType": "ASYNC",
308   -// "createTs": 1666343456853,
309   -// "custom": true,
310   -// "description": "4343",
311   -// "identifier": "Iide1",
312   -// "inputParams": [
313   -// {
314   -// "custom": true,
315   -// "dataSpecs": {
316   -// "dataType": "INT",
317   -// "max": "20",
318   -// "min": "10",
319   -// "step": "2",
320   -// "unit": "dS/m",
321   -// "unitName": "土壤EC值"
322   -// },
323   -// "dataType": "INT",
324   -// "direction": "PARAM_INPUT",
325   -// "identifier": "i1",
326   -// "name": "参数名字1",
327   -// "paraOrder": 0
328   -// }
329   -// ],
330   -// "outputParams": [
331   -// {
332   -// "custom": true,
333   -// "dataSpecs": {
334   -// "dataType": "INT",
335   -// "max": "20",
336   -// "min": "10",
337   -// "step": "3",
338   -// "unit": "pH",
339   -// "unitName": "PH值"
340   -// },
341   -// "dataType": "INT",
342   -// "direction": "PARAM_OUTPUT",
343   -// "identifier": "i2",
344   -// "name": "输出参数2",
345   -// "paraOrder": 0
346   -// }
347   -// ],
348   -// "productKey": "hsrnXEfGFDv",
349   -// "required": false,
350   -// "serviceName": "服务1"
351   -// }
352   -// ]
353   -// }
... ...
... ... @@ -139,14 +139,17 @@ export const attrSchemas: FormSchema[] = [
139 139 },
140 140 {
141 141 field: 'length',
142   - component: 'Input',
  142 + component: 'InputNumber',
143 143 required: true,
144 144 label: '数据长度',
145   - defaultValue: '10240',
  145 + defaultValue: 10240,
146 146 colProps: {
147   - span: 18,
  147 + span: 8,
  148 + },
  149 + componentProps: {
  150 + max: 10240,
  151 + min: 1,
148 152 },
149   - suffix: '字节',
150 153 ifShow: ({ values }) => isString(values.dataType),
151 154 },
152 155 {
... ... @@ -224,7 +227,7 @@ export const serviceSchemas: FormSchema[] = [
224 227 colProps: {
225 228 span: 24,
226 229 },
227   - defaultValue: 'asynchronous',
  230 + defaultValue: 'ASYNC',
228 231 componentProps: {
229 232 placeholder: '请选择调用方式',
230 233 api: findDictItemByCode,
... ... @@ -296,7 +299,7 @@ export const eventSchemas: FormSchema[] = [
296 299 colProps: {
297 300 span: 24,
298 301 },
299   - defaultValue: 'message',
  302 + defaultValue: 'INFO_EVENT_TYPE',
300 303 componentProps: {
301 304 placeholder: '请选择事件类型',
302 305 api: findDictItemByCode,
... ... @@ -400,7 +403,7 @@ export const addParamsSchemas: FormSchema[] = [
400 403 {
401 404 field: 'structSlot',
402 405 label: 'JSON 对象',
403   - required: true,
  406 + // required: true,
404 407 component: 'Input',
405 408 slot: 'structSlot',
406 409 colProps: {
... ... @@ -436,14 +439,17 @@ export const addParamsSchemas: FormSchema[] = [
436 439 },
437 440 {
438 441 field: 'length',
439   - component: 'Input',
  442 + component: 'InputNumber',
440 443 required: true,
441 444 label: '数据长度',
442   - defaultValue: '10240',
  445 + defaultValue: 10240,
443 446 colProps: {
444   - span: 24,
  447 + span: 8,
  448 + },
  449 + componentProps: {
  450 + max: 50000,
  451 + min: 1,
445 452 },
446   - suffix: '字节',
447 453 ifShow: ({ values }) => isString(values.dataType),
448 454 },
449 455 {
... ...
... ... @@ -14,3 +14,10 @@ export const validateValueRangeAndStep = (min, step, max) => {
14 14 throw '步长不能大于取值范围的差值';
15 15 }
16 16 };
  17 +
  18 +export const validateValueBool = (boolClose, boolOpen) => {
  19 + if (boolClose == boolOpen) {
  20 + createMessage.error('布尔值不能相同');
  21 + throw '布尔值不能相同';
  22 + }
  23 +};
... ...