@@ -6,12 +6,10 @@ import $to from 'await-to-js'
6
6
import ErrorModal from ' @/components/ErrorModal.vue' ;
7
7
import EmbeddedAppDrawer from ' @/components/EmbeddedAppDrawer.vue' ;
8
8
// @ts-ignore
9
- import { exec } from ' kernelsu' ;
10
- import { NButton , createDiscreteApi , type DataTableColumns , type MessageApi } from ' naive-ui'
9
+ import { NButton , createDiscreteApi , type DataTableColumns } from ' naive-ui'
11
10
import * as ksuApi from ' @/apis/ksuApi'
12
11
import { useDeviceStore } from ' @/stores/device' ;
13
12
import * as xmlFormat from ' @/utils/xmlFormat' ;
14
- import axios from ' axios' ;
15
13
import { useEmbeddedStore } from ' @/stores/embedded' ;
16
14
type EmbeddedAppDrawerInstance = InstanceType <typeof EmbeddedAppDrawer >;
17
15
@@ -20,11 +18,7 @@ const embeddedStore = useEmbeddedStore()
20
18
const addEmbeddedApp = ref <EmbeddedAppDrawerInstance | null >(null );
21
19
const updateEmbeddedApp = ref <EmbeddedAppDrawerInstance | null >(null );
22
20
const { message, modal } = createDiscreteApi ([' message' , ' modal' ])
23
- const testMsg = ref <any >({})
24
- const testXml = ref <any >(' ' )
25
21
const columns = createColumns ()
26
- const activeDrawer = ref (false )
27
- const sourceEmbeddedRulesList = ref <string >()
28
22
const showErrorModal = ref (false )
29
23
30
24
watch (
@@ -55,6 +49,15 @@ const pagination = reactive({
55
49
})
56
50
57
51
const openAddEmbeddedApp = async () => {
52
+ if (deviceStore .androidTargetSdk && ! [32 , 33 , 34 ].includes (deviceStore .androidTargetSdk )) {
53
+ modal .create ({
54
+ title: ' 不兼容说明' ,
55
+ type: ' warning' ,
56
+ preset: ' dialog' ,
57
+ content : () => (<p >该功能尚未对 Android 11 或 Android 15+ 做兼容,请等待后续更新情况!</p >)
58
+ })
59
+ return ;
60
+ }
58
61
if (addEmbeddedApp .value ) {
59
62
const [addEmbeddedAppErr, addEmbeddedAppRes] = await $to (addEmbeddedApp .value .openDrawer ())
60
63
if (addEmbeddedAppErr ) {
@@ -210,55 +213,16 @@ const openUpdateEmbeddedApp = async (row: EmbeddedMergeRuleItem, index: number)
210
213
}
211
214
}
212
215
213
- const testAction = async () => {
214
- const [err, res] = await $to (ksuApi .updateEmbeddedApp ({
215
- customEmbeddedRulesListXML: xmlFormat .objectToXML (embeddedStore .sourceEmbeddedRulesList ),
216
- customFixedOrientationListXML: xmlFormat .objectToXML (embeddedStore .sourceFixedOrientationList ),
217
- settingConfigXML: ' ' ,
218
- switchAction: {
219
- name: ' com.tencent.mobileqq' ,
220
- action: ' disable'
221
- }
222
- }))
223
-
224
- if (err ) {
225
- errorTest .value = err ;
226
- } else {
227
- successTest .value = res ;
228
- }
229
-
230
- message .info (' 成功了' )
231
-
232
- }
233
-
234
- const successTest = ref <any >([]);
235
-
236
- const errorTest = ref <any >([]);
237
-
238
- onMounted (async () => {
239
- // // 测试获取XML文件
240
- const [
241
- getCustomConfigEmbeddedRulesListErr,
242
- getCustomConfigEmbeddedRulesListRes,
243
- ] = await $to (ksuApi .getCustomConfigEmbeddedRulesList ());
244
- if (! getCustomConfigEmbeddedRulesListErr ) {
245
- testXml .value = xmlFormat .testXMLToObject <any >(
246
- getCustomConfigEmbeddedRulesListRes ,
247
- ' package_config' ,
248
- ' package' ,
249
- true
250
- );
251
- // testXml.value = xml;
252
- }
253
- // const [sourceEmbeddedRulesListErr,sourceEmbeddedRulesListData] = await $to(ksuApi.getSourceEmbeddedRulesList())
254
- // if (sourceEmbeddedRulesListErr) {
255
- // message.error(`报错了,呜呜呜`)
256
- // }
257
- // sourceEmbeddedRulesList.value = sourceEmbeddedRulesListData
258
-
259
- })
260
-
261
216
const handleRuleMode = (row : EmbeddedMergeRuleItem , index : number , ruleMode : EmbeddedMergeRuleItem [" ruleMode" ]) => {
217
+ if (deviceStore .androidTargetSdk && ! [32 , 33 , 34 ].includes (deviceStore .androidTargetSdk )) {
218
+ modal .create ({
219
+ title: ' 不兼容说明' ,
220
+ type: ' warning' ,
221
+ preset: ' dialog' ,
222
+ content : () => (<p >该功能尚未对 Android 11 或 Android 15+ 做兼容,请等待后续更新情况!</p >)
223
+ })
224
+ return ;
225
+ }
262
226
if (ruleMode === ' module' ) {
263
227
modal .create ({
264
228
title: ' 模块规则说明' ,
@@ -276,8 +240,24 @@ const handleRuleMode = (row: EmbeddedMergeRuleItem, index: number, ruleMode: Emb
276
240
content : () => (<p >清除自定义规则后,你对 <span class = " font-bold text-gray-600" >{ row .name } </span > 所做的所有自定义配置将丢失,如果该应用同时还存在 <span class = " font-bold text-gray-600" >模块规则</span > ,将会还原回模块自身的适配规则。确定要继续吗?</p >),
277
241
positiveText: ' 确定清除' ,
278
242
negativeText: ' 我再想想' ,
279
- onPositiveClick : () => {
280
- message .info (' 该功能尚在开发中,请等待后续消息' )
243
+ onPositiveClick : async () => {
244
+ if (embeddedStore .customConfigEmbeddedRulesList [row .name ]) {
245
+ delete embeddedStore .customConfigEmbeddedRulesList [row .name ]
246
+ }
247
+ if (embeddedStore .customConfigFixedOrientationList [row .name ]) {
248
+ delete embeddedStore .customConfigFixedOrientationList [row .name ]
249
+ }
250
+ const [submitUpdateEmbeddedAppErr, submitUpdateEmbeddedAppRes] = await $to (ksuApi .updateEmbeddedApp ({
251
+ customEmbeddedRulesListXML: xmlFormat .objectToXML (embeddedStore .customConfigEmbeddedRulesList ),
252
+ customFixedOrientationListXML: xmlFormat .objectToXML (embeddedStore .customConfigFixedOrientationList ),
253
+ settingConfigXML: xmlFormat .objectToXML (embeddedStore .embeddedSettingConfig )
254
+ }))
255
+ if (submitUpdateEmbeddedAppErr ) {
256
+ message .error (' 清除自定义规则失败' )
257
+ } else {
258
+ message .info (' 清除自定义规则成功' )
259
+ embeddedStore .updateMergeRuleList ()
260
+ }
281
261
}
282
262
})
283
263
}
@@ -313,32 +293,64 @@ function createColumns(): DataTableColumns<EmbeddedMergeRuleItem> {
313
293
type: ' success' ,
314
294
name: ' 平行窗口' ,
315
295
onClick(row : EmbeddedMergeRuleItem , index : number ) {
296
+ if (deviceStore .androidTargetSdk && ! [32 , 33 , 34 ].includes (deviceStore .androidTargetSdk )) {
297
+ modal .create ({
298
+ title: ' 不兼容说明' ,
299
+ type: ' warning' ,
300
+ preset: ' dialog' ,
301
+ content : () => (<p >该功能尚未对 Android 11 或 Android 15+ 做兼容,请等待后续更新情况!</p >)
302
+ })
303
+ return ;
304
+ }
316
305
openUpdateEmbeddedApp (row , index )
317
- testMsg .value = row ;
318
306
}
319
307
},
320
308
fullScreen: {
321
309
type: ' info' ,
322
310
name: ' 全屏' ,
323
311
onClick(row : EmbeddedMergeRuleItem , index : number ) {
312
+ if (deviceStore .androidTargetSdk && ! [32 , 33 , 34 ].includes (deviceStore .androidTargetSdk )) {
313
+ modal .create ({
314
+ title: ' 不兼容说明' ,
315
+ type: ' warning' ,
316
+ preset: ' dialog' ,
317
+ content : () => (<p >该功能尚未对 Android 11 或 Android 15+ 做兼容,请等待后续更新情况!</p >)
318
+ })
319
+ return ;
320
+ }
324
321
openUpdateEmbeddedApp (row , index )
325
- testMsg .value = row ;
326
322
}
327
323
},
328
324
fixedOrientation: {
329
325
type: ' warning' ,
330
326
name: ' 居中布局' ,
331
327
onClick(row : EmbeddedMergeRuleItem , index : number ) {
328
+ if (deviceStore .androidTargetSdk && ! [32 , 33 , 34 ].includes (deviceStore .androidTargetSdk )) {
329
+ modal .create ({
330
+ title: ' 不兼容说明' ,
331
+ type: ' warning' ,
332
+ preset: ' dialog' ,
333
+ content : () => (<p >该功能尚未对 Android 11 或 Android 15+ 做兼容,请等待后续更新情况!</p >)
334
+ })
335
+ return ;
336
+ }
332
337
openUpdateEmbeddedApp (row , index )
333
- testMsg .value = row ;
334
338
}
335
339
},
336
340
disabled: {
337
341
type: ' error' ,
338
342
name: ' 原始布局' ,
339
343
onClick(row : EmbeddedMergeRuleItem , index : number ) {
344
+ if (deviceStore .androidTargetSdk && ! [32 , 33 , 34 ].includes (deviceStore .androidTargetSdk )) {
345
+ modal .create ({
346
+ title: ' 不兼容说明' ,
347
+ type: ' warning' ,
348
+ preset: ' dialog' ,
349
+ content : () => (<p >该功能尚未对 Android 11 或 Android 15+ 做兼容,请等待后续更新情况!</p >)
350
+ })
351
+ return ;
352
+ }
340
353
openUpdateEmbeddedApp (row , index )
341
- testMsg .value = row ;
342
354
}
343
355
}
344
356
}
@@ -357,49 +369,6 @@ function createColumns(): DataTableColumns<EmbeddedMergeRuleItem> {
357
369
发生错误,无法加载
358
370
</template >
359
371
<main class =" mb-10" >
360
- <div >
361
- <!-- <p class="text-blue-600 text-2xl text-center text-indigo-600">完美横屏应用计划 Web UI 管理后台正在开发中,敬请期待~</p>
362
- <div class="text-center mt-10 mb-10">
363
- <n-button @click="activeDrawer = true">
364
- 这是一个测试用的抽屉~内容是小米的往年标语~
365
- </n-button>
366
- </div> -->
367
- <n-drawer v-model:show =" activeDrawer" :width =" 502" placement =" right" >
368
- <n-drawer-content title =" 测试抽屉" closable >
369
- <p >测试成功信息</p >
370
- {{ successTest }}
371
- <p >测试失败信息</p >
372
- {{ errorTest }}
373
- <p >获取设备信息</p >
374
- <p >{{ deviceStore.deviceCharacteristics }}</p >
375
- <p >获取设备Android Target</p >
376
- <p >{{ deviceStore.androidTargetSdk }}</p >
377
- <p >获取设备Soc类型</p >
378
- <p >{{ deviceStore.deviceSocModel }}</p >
379
- <p >获取设备Soc名称</p >
380
- <p >{{ deviceStore.deviceSocName }}</p >
381
- <p >点击获取到的信息</p >
382
- <p >{{ testMsg }}</p >
383
- <p >测试xml</p >
384
- <p >{{ testXml }}</p >
385
- <p >错误信息收集</p >
386
- <p >{{ embeddedStore.errorLogging }}</p >
387
- <p >自定义平行窗口配置</p >
388
- <p >{{ embeddedStore.customConfigEmbeddedRulesList }}</p >
389
- <p >自定义信息模式配置</p >
390
- <p >{{ embeddedStore.customConfigFixedOrientationList }}</p >
391
- <!-- <p>{{ embeddedStore.customConfigEmbeddedRulesList }}</p> -->
392
- <p >模块平行窗口配置</p >
393
- <p >{{ embeddedStore.sourceEmbeddedRulesList }}</p >
394
- <p >模块信箱模式配置</p >
395
- <p >{{ embeddedStore.sourceFixedOrientationList }}</p >
396
- <p >模块横屏配置</p >
397
- <p >{{ embeddedStore.embeddedSettingConfig }}</p >
398
- <p >模块合并配置</p >
399
- <p >{{ embeddedStore.mergeRuleList }}</p >
400
- </n-drawer-content >
401
- </n-drawer >
402
- </div >
403
372
<div class =" mt-5" >
404
373
<div class =" px-4 sm:px-0 mb-5" >
405
374
<h3 class =" text-base font-semibold leading-7 text-gray-900" >应用横屏配置</h3 >
@@ -413,12 +382,6 @@ function createColumns(): DataTableColumns<EmbeddedMergeRuleItem> {
413
382
<n-button class =" mb-3 mr-3" type =" success" @click =" () => reloadPage()" >
414
383
刷新 Web UI
415
384
</n-button >
416
- <n-button class =" mb-3 mr-3" @click =" activeDrawer = true" >
417
- 测试专用按钮
418
- </n-button >
419
- <n-button class =" mb-3" @click =" testAction" >
420
- 测试提交
421
- </n-button >
422
385
<n-input-group >
423
386
<n-input size =" large" v-model:value =" embeddedStore.searchKeyWord" placeholder =" 搜索应用包名" autosize
424
387
style =" min-width : 80% " />
0 commit comments