Commit a293ae510427918c3c987de35a569ecbe492c73e
Merge branch 'ft' into 'main_dev'
pref: 优化脚本管理格式化换行 See merge request yunteng/thingskit-front!568
Showing
2 changed files
with
84 additions
and
36 deletions
@@ -47,7 +47,7 @@ | @@ -47,7 +47,7 @@ | ||
47 | </a-space> | 47 | </a-space> |
48 | </a-form-item> | 48 | </a-form-item> |
49 | <a-form-item label="脚本内容" :name="ifAdd ? 'convertJs' : 'script'"> | 49 | <a-form-item label="脚本内容" :name="ifAdd ? 'convertJs' : 'script'"> |
50 | - <Card title="脚本内容" :bodyStyle="{ padding: 0, height: '280px' }"> | 50 | + <Card title="脚本内容" :bodyStyle="{ padding: 0 }"> |
51 | <template #extra> | 51 | <template #extra> |
52 | <Button | 52 | <Button |
53 | v-show="ifAdd && !view" | 53 | v-show="ifAdd && !view" |
@@ -69,7 +69,7 @@ | @@ -69,7 +69,7 @@ | ||
69 | <QuestionCircleOutlined style="font-size: 1rem" /> | 69 | <QuestionCircleOutlined style="font-size: 1rem" /> |
70 | </Tooltip> | 70 | </Tooltip> |
71 | </template> | 71 | </template> |
72 | - <div ref="aceRef" class="overflow-hidden"></div> | 72 | + <div ref="aceRef"></div> |
73 | </Card> | 73 | </Card> |
74 | <Button @click="handleCopy" class="mt-4"> | 74 | <Button @click="handleCopy" class="mt-4"> |
75 | <template #icon> | 75 | <template #icon> |
@@ -180,7 +180,7 @@ | @@ -180,7 +180,7 @@ | ||
180 | // 初始化编辑器 | 180 | // 初始化编辑器 |
181 | const initEditor = () => { | 181 | const initEditor = () => { |
182 | aceEditor.value = ace.edit(aceRef.value, { | 182 | aceEditor.value = ace.edit(aceRef.value, { |
183 | - maxLines: 12, // 最大行数,超过会自动出现滚动条 | 183 | + maxLines: 16, // 最大行数,超过会自动出现滚动条 |
184 | minLines: 12, // 最小行数,还未到最大行数时,编辑器会自动伸缩大小 | 184 | minLines: 12, // 最小行数,还未到最大行数时,编辑器会自动伸缩大小 |
185 | fontSize: 14, // 编辑器内字体大小 | 185 | fontSize: 14, // 编辑器内字体大小 |
186 | theme: 'ace/theme/chrome', // 默认设置的主题 | 186 | theme: 'ace/theme/chrome', // 默认设置的主题 |
@@ -191,6 +191,8 @@ | @@ -191,6 +191,8 @@ | ||
191 | aceEditor.value.setOptions({ | 191 | aceEditor.value.setOptions({ |
192 | enableBasicAutocompletion: true, | 192 | enableBasicAutocompletion: true, |
193 | enableLiveAutocompletion: true, | 193 | enableLiveAutocompletion: true, |
194 | + enableSnippets: true, | ||
195 | + enableEmmet: true, | ||
194 | theme: getAceClass.value === 'dark' ? 'ace/theme/terminal' : 'ace/theme/chrome', | 196 | theme: getAceClass.value === 'dark' ? 'ace/theme/terminal' : 'ace/theme/chrome', |
195 | }); | 197 | }); |
196 | aceEditor.value.setValue(''); | 198 | aceEditor.value.setValue(''); |
@@ -201,6 +203,7 @@ | @@ -201,6 +203,7 @@ | ||
201 | const handleScriptType = ({ target }) => { | 203 | const handleScriptType = ({ target }) => { |
202 | const { value } = target; | 204 | const { value } = target; |
203 | scriptForm.scriptType = value; | 205 | scriptForm.scriptType = value; |
206 | + if (convertJsContent.value) return; | ||
204 | switchScriptTypeGetContent(value); | 207 | switchScriptTypeGetContent(value); |
205 | }; | 208 | }; |
206 | 209 | ||
@@ -273,6 +276,8 @@ | @@ -273,6 +276,8 @@ | ||
273 | 276 | ||
274 | const getRecordId = ref(''); | 277 | const getRecordId = ref(''); |
275 | 278 | ||
279 | + const convertJsContent = ref(''); | ||
280 | + | ||
276 | const setFormData = (v) => { | 281 | const setFormData = (v) => { |
277 | if (v) { | 282 | if (v) { |
278 | getRecordId.value = v?.id; | 283 | getRecordId.value = v?.id; |
@@ -280,6 +285,7 @@ | @@ -280,6 +285,7 @@ | ||
280 | Reflect.set(scriptForm, i, v[i]); | 285 | Reflect.set(scriptForm, i, v[i]); |
281 | } | 286 | } |
282 | aceEditor.value.setValue(v.convertJs); | 287 | aceEditor.value.setValue(v.convertJs); |
288 | + convertJsContent.value = v.convertJs; | ||
283 | handleFormat(); | 289 | handleFormat(); |
284 | } | 290 | } |
285 | }; | 291 | }; |
@@ -300,8 +306,10 @@ | @@ -300,8 +306,10 @@ | ||
300 | }; | 306 | }; |
301 | 307 | ||
302 | const handleFormat = () => { | 308 | const handleFormat = () => { |
309 | + let oldValue = aceEditor.value?.getValue() || ''; | ||
310 | + oldValue = oldValue.replaceAll(/;(\n+)?/g, ';\n'); | ||
311 | + aceEditor.value?.setValue(oldValue); | ||
303 | beautify(aceEditor.value.session); | 312 | beautify(aceEditor.value.session); |
304 | - aceEditor.value.getSession().setUseWrapMode(true); | ||
305 | }; | 313 | }; |
306 | 314 | ||
307 | const [registerModal, { openModal }] = useModal(); | 315 | const [registerModal, { openModal }] = useModal(); |
@@ -86,48 +86,88 @@ export const defaultUpTitle = h('div', { style: 'background:#404040' }, [ | @@ -86,48 +86,88 @@ export const defaultUpTitle = h('div', { style: 'background:#404040' }, [ | ||
86 | 86 | ||
87 | // TRANSPORT_TCP_DOWN: 'out.datas = "";out.deviceName = "sensor";', | 87 | // TRANSPORT_TCP_DOWN: 'out.datas = "";out.deviceName = "sensor";', |
88 | export const defaultScriptTypeContent = { | 88 | export const defaultScriptTypeContent = { |
89 | - TRANSPORT_TCP_UP: | ||
90 | - 'var attrData = {};var teleData = {};teleData.source= params;out.datas = teleData;out.telemetry =true;out.ackMsg = params;out.deviceName = "sensor";out.ts = Date.now();', | ||
91 | - TRANSPORT_TCP_AUTH: 'out.password = params;out.success = params;', | 89 | + TRANSPORT_TCP_UP: `var teleData = {}; |
90 | +/* | ||
91 | +物模型数据(可选):原始数据 | ||
92 | +*/ | ||
93 | +teleData.source= params; | ||
94 | +/* | ||
95 | +直连/网关子设备设备:temperature是产品物模型中所定义属性的标识符 | ||
96 | +*/ | ||
97 | +tempVal = params; | ||
98 | +teleData.temperature= tempVal; | ||
99 | +/* | ||
100 | +网关设备:变量slaveDevice是网关子设备的“设备标识” | ||
101 | +*/ | ||
102 | +slaveDevice = params.substr(0,2); | ||
103 | +teleData[slaveDevice]= params; | ||
104 | +out.datas = teleData; | ||
105 | +/* | ||
106 | +必填:true表示设备上报的遥测数据,false表示命令下发的响应数据 | ||
107 | +*/ | ||
108 | +out.telemetry = true; | ||
109 | +/* | ||
110 | +必填:设备或命令下发的唯一标识,设备的唯一标识必须与设备信息的“设备名称/SN码”一致 | ||
111 | +*/ | ||
112 | +out.identifier = "01"; | ||
113 | +/* | ||
114 | +可选:服务端收到设备数据后,响应的消息内容 | ||
115 | +*/ | ||
116 | +out.ackMsg = params; | ||
117 | +/* | ||
118 | +可选:默认使用服务器时间,可以使用数据内的时间 | ||
119 | +*/ | ||
120 | +out.ts = Date.now();`, | ||
121 | + TRANSPORT_TCP_AUTH: `/* | ||
122 | + 必填:设备的访问令牌 | ||
123 | + */ | ||
124 | + out.password = params; | ||
125 | + /* | ||
126 | + 选填:设备鉴权成功后响应给设备的信息 | ||
127 | + */ | ||
128 | + out.success = params; | ||
129 | + `, | ||
92 | }; | 130 | }; |
93 | 131 | ||
94 | -export const defaultTestUpExample = ` | ||
95 | -var teleData = {}; | ||
96 | -/** | ||
97 | - * 物模型数据(可选):原始数据 | ||
98 | - */ | 132 | +export const defaultTestUpExample = `var teleData = {}; |
133 | +/* | ||
134 | +物模型数据(可选):原始数据 | ||
135 | +*/ | ||
99 | teleData.source= params; | 136 | teleData.source= params; |
100 | -/** | ||
101 | - * 直连设备:sensor是产品物模型中所定义属性的标识符 | ||
102 | - * 网关设备:sensor是网关子设备的设备名称/SN码 | ||
103 | - */ | ||
104 | -teleData.sensor= params+123; | 137 | +/* |
138 | +直连/网关子设备设备:temperature是产品物模型中所定义属性的标识符 | ||
139 | +*/ | ||
140 | +tempVal = params; | ||
141 | +teleData.temperature= tempVal; | ||
142 | +/* | ||
143 | +网关设备:变量slaveDevice是网关子设备的“设备标识” | ||
144 | +*/ | ||
145 | +slaveDevice = params.substr(0,2); | ||
146 | +teleData[slaveDevice]= params; | ||
105 | out.datas = teleData; | 147 | out.datas = teleData; |
106 | -/** | ||
107 | - * 必填:true表示设备上报的遥测数据,false表示命令下发的响应数据 | ||
108 | - */ | 148 | +/* |
149 | +必填:true表示设备上报的遥测数据,false表示命令下发的响应数据 | ||
150 | +*/ | ||
109 | out.telemetry = true; | 151 | out.telemetry = true; |
110 | -/** | ||
111 | - * 必填:设备或命令下发的唯一标识,设备的唯一标识必须与设备信息的设备名称/SN码一致 | ||
112 | - */ | 152 | +/* |
153 | +必填:设备或命令下发的唯一标识,设备的唯一标识必须与设备信息的“设备名称/SN码”一致 | ||
154 | +*/ | ||
113 | out.identifier = "01"; | 155 | out.identifier = "01"; |
114 | -/** | ||
115 | - * 可选:服务端收到设备数据后,响应的消息内容 | ||
116 | - */ | 156 | +/* |
157 | +可选:服务端收到设备数据后,响应的消息内容 | ||
158 | +*/ | ||
117 | out.ackMsg = params; | 159 | out.ackMsg = params; |
118 | -/** | ||
119 | - * 可选:默认使用服务器时间,可以使用数据内的时间 | ||
120 | - */ | ||
121 | -out.ts = Date.now(); | ||
122 | -`; | 160 | +/* |
161 | +可选:默认使用服务器时间,可以使用数据内的时间 | ||
162 | +*/ | ||
163 | +out.ts = Date.now();`; | ||
123 | 164 | ||
124 | -export const defaultTestAuthExample = ` | ||
125 | -/** | ||
126 | - * 必填:设备的访问令牌 | 165 | +export const defaultTestAuthExample = `/* |
166 | + 必填:设备的访问令牌 | ||
127 | */ | 167 | */ |
128 | out.password = params; | 168 | out.password = params; |
129 | -/** | ||
130 | - * 选填:设备鉴权成功后响应给设备的信息 | 169 | +/* |
170 | + 选填:设备鉴权成功后响应给设备的信息 | ||
131 | */ | 171 | */ |
132 | out.success = params; | 172 | out.success = params; |
133 | `; | 173 | `; |