Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Xts Acts
提交
6f851a5e
X
Xts Acts
项目概览
OpenHarmony
/
Xts Acts
1 年多 前同步成功
通知
9
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
Xts Acts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
6f851a5e
编写于
9月 28, 2022
作者:
B
bayanxing
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
code check
Signed-off-by:
N
bayanxing
<
bayanxing@kaihong.com
>
上级
6a7f3518
变更
22
隐藏空白更改
内联
并排
Showing
22 changed file
with
39 addition
and
208 deletion
+39
-208
arkui/ace_ets_component_apilack/entry/src/main/ets/MainAbility/pages/dom.ets
...nent_apilack/entry/src/main/ets/MainAbility/pages/dom.ets
+1
-2
arkui/ace_ets_component_apilack/entry/src/main/ets/MainAbility/pages/focusControl.ets
...ack/entry/src/main/ets/MainAbility/pages/focusControl.ets
+0
-1
arkui/ace_ets_component_apilack/entry/src/main/ets/MainAbility/pages/image.ets
...nt_apilack/entry/src/main/ets/MainAbility/pages/image.ets
+0
-1
arkui/ace_ets_component_apilack/entry/src/main/ets/MainAbility/pages/pageRoute.ets
...pilack/entry/src/main/ets/MainAbility/pages/pageRoute.ets
+0
-1
arkui/ace_ets_component_apilack/entry/src/main/ets/test/FocusControlJsunit.test.ets
...ilack/entry/src/main/ets/test/FocusControlJsunit.test.ets
+0
-1
arkui/ace_ets_component_apilack/entry/src/main/ets/test/List.test.ets
...s_component_apilack/entry/src/main/ets/test/List.test.ets
+0
-1
arkui/ace_ets_component_apilack/entry/src/main/ets/test/pageRoute.test.ets
...ponent_apilack/entry/src/main/ets/test/pageRoute.test.ets
+24
-25
arkui/ace_ets_component_apilack/entry/src/main/ets/test/swiper.test.ets
...component_apilack/entry/src/main/ets/test/swiper.test.ets
+0
-1
arkui/ace_ets_component_attrlack/entry/src/main/ets/MainAbility/pages/canvas.ets
..._attrlack/entry/src/main/ets/MainAbility/pages/canvas.ets
+1
-4
arkui/ace_ets_component_attrlack/entry/src/main/ets/MainAbility/pages/checkBoxGroup.ets
...ck/entry/src/main/ets/MainAbility/pages/checkBoxGroup.ets
+5
-3
arkui/ace_ets_component_attrlack/entry/src/main/ets/MainAbility/pages/copyOption.ets
...rlack/entry/src/main/ets/MainAbility/pages/copyOption.ets
+2
-3
arkui/ace_ets_component_attrlack/entry/src/main/ets/MainAbility/pages/enums.ets
...t_attrlack/entry/src/main/ets/MainAbility/pages/enums.ets
+1
-2
arkui/ace_ets_component_attrlack/entry/src/main/ets/MainAbility/pages/hitTestMode.ets
...lack/entry/src/main/ets/MainAbility/pages/hitTestMode.ets
+2
-3
arkui/ace_ets_component_attrlack/entry/src/main/ets/MainAbility/pages/list_item_group.ets
.../entry/src/main/ets/MainAbility/pages/list_item_group.ets
+0
-1
arkui/ace_ets_component_attrlack/entry/src/main/ets/TestAbility/app.ets
...component_attrlack/entry/src/main/ets/TestAbility/app.ets
+0
-1
arkui/ace_ets_component_attrlack/entry/src/main/ets/TestAbility/pages/index.ets
...t_attrlack/entry/src/main/ets/TestAbility/pages/index.ets
+0
-1
arkui/ace_ets_component_attrlack/entry/src/main/ets/TestRunner/OpenHarmonyTestRunner.ts
...ck/entry/src/main/ets/TestRunner/OpenHarmonyTestRunner.ts
+0
-1
arkui/ace_ets_component_attrlack/entry/src/main/ets/test/List.test.ets
..._component_attrlack/entry/src/main/ets/test/List.test.ets
+0
-3
arkui/ace_ets_component_attrlack/entry/src/main/ets/test/basic.test.ets
...component_attrlack/entry/src/main/ets/test/basic.test.ets
+0
-81
arkui/ace_ets_component_attrlack/entry/src/main/ets/test/configuration.test.ets
...t_attrlack/entry/src/main/ets/test/configuration.test.ets
+0
-52
arkui/ace_ets_component_attrlack/entry/src/main/ets/test/hitTestMode.test.ets
...ent_attrlack/entry/src/main/ets/test/hitTestMode.test.ets
+1
-1
arkui/ace_ets_component_attrlack/entry/src/main/ets/test/remoteWindow.test.ets
...nt_attrlack/entry/src/main/ets/test/remoteWindow.test.ets
+2
-19
未找到文件。
arkui/ace_ets_component_apilack/entry/src/main/ets/MainAbility/pages/dom.ets
浏览文件 @
6f851a5e
// @ts-nocheck
/**
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
...
...
@@ -46,7 +45,7 @@ export default struct DomCreateElement {
.textOverflow({ overflow: TextOverflow.None })
.key("createElementText")
.onClick(() => {
dom.createElement('div')
//
dom.createElement('div')
})
}.width("100%").height("100%")
...
...
arkui/ace_ets_component_apilack/entry/src/main/ets/MainAbility/pages/focusControl.ets
浏览文件 @
6f851a5e
// @ts-nocheck
/**
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
...
...
arkui/ace_ets_component_apilack/entry/src/main/ets/MainAbility/pages/image.ets
浏览文件 @
6f851a5e
// @ts-nocheck
/**
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
...
...
arkui/ace_ets_component_apilack/entry/src/main/ets/MainAbility/pages/pageRoute.ets
浏览文件 @
6f851a5e
// @ts-nocheck
/**
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
...
...
arkui/ace_ets_component_apilack/entry/src/main/ets/test/FocusControlJsunit.test.ets
浏览文件 @
6f851a5e
// @ts-nocheck
/**
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
...
...
arkui/ace_ets_component_apilack/entry/src/main/ets/test/List.test.ets
浏览文件 @
6f851a5e
// @ts-nocheck
/**
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
...
...
arkui/ace_ets_component_apilack/entry/src/main/ets/test/pageRoute.test.ets
浏览文件 @
6f851a5e
// @ts-nocheck
/**
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
...
...
@@ -43,29 +42,29 @@ export default function pageRouteTest() {
done()
});
afterEach(async function () {
await Utils.sleep(1000);
console.info("pageRouteTest after each called");
})
it('testOnPageHide01', 0, function () {
console.info('[testOnPageHide01] START');
var callback = (eventData) => {
console.info("[testOnPageHide01] get event state result is: " + JSON.stringify(eventData));
expect(eventData.data.value).assertEqual('onPageHide')
done()
}
var innerEvent = {
eventId: 10,
priority: events_emitter.EventPriority.LOW
}
try {
events_emitter.on(innerEvent, callback)
console.info("testOnPageHide01 click result is: " + JSON.stringify(sendEventByKey('next', 10, "")));
} catch (err) {
console.info("[testOnPageHide01] on events_emitter err : " + JSON.stringify(err));
}
console.info('[testOnPageHide01] testSendTouchEvent END');
});
afterEach(async function () {
await Utils.sleep(1000);
console.info("pageRouteTest after each called");
})
it('testOnPageHide01', 0, async function (done) {
console.info('[testOnPageHide01] START');
var callback = (eventData) => {
console.info("[testOnPageHide01] get event state result is: " + JSON.stringify(eventData));
expect(eventData.data.value).assertEqual('onPageHide')
done();
}
var innerEvent = {
eventId: 10,
priority: events_emitter.EventPriority.LOW
}
try {
events_emitter.on(innerEvent, callback)
console.info("testOnPageHide01 click result is: " + JSON.stringify(sendEventByKey('next', 10, "")));
} catch (err) {
console.info("[testOnPageHide01] on events_emitter err : " + JSON.stringify(err));
}
console.info('[testOnPageHide01] testSendTouchEvent END');
});
})
}
\ No newline at end of file
arkui/ace_ets_component_apilack/entry/src/main/ets/test/swiper.test.ets
浏览文件 @
6f851a5e
// @ts-nocheck
/**
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
...
...
arkui/ace_ets_component_attrlack/entry/src/main/ets/MainAbility/pages/canvas.ets
浏览文件 @
6f851a5e
// @ts-nocheck
/**
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
...
...
@@ -60,13 +59,11 @@ struct CanvasActualBoundingBoxAscent {
this.context.fillText("fontBoundingBoxDescent:" + this.context.measureText("Hello World!").fontBoundingBoxDescent, 20, 600)
this.context.fillText("hangingBaseline:" + this.context.measureText("Hello World!").hangingBaseline, 20, 650)
this.context.fillText("ideographicBaseline" + this.context.measureText("Hello World!").ideographicBaseline, 20, 700)
this.context.fillText("antialias" + this.context.measureText("Hello World!").antialias, 20, 700)
//
this.context.fillText("antialias" + this.context.measureText("Hello World!").antialias, 20, 700)
})
}
.width('100%')
.height('100%')
}
}
arkui/ace_ets_component_attrlack/entry/src/main/ets/MainAbility/pages/checkBoxGroup.ets
浏览文件 @
6f851a5e
...
...
@@ -15,6 +15,7 @@
import Log from '../common/Log.ets';
import events_emitter from '@ohos.events.emitter';
import Utils from '../../test/Utils.ets'
const TAG = 'ets_apiLack_add';
@Entry
...
...
@@ -67,9 +68,6 @@ struct CheckBoxGroupPart {
.onChange((itemName:CheckboxGroupResult) => {
console.info("TextPicker::dialogResult is" + JSON.stringify(itemName))
console.info("TextPicker::dialogResult is" + JSON.stringify(itemName.status))
if(itemName.status === SelectStatus.Part){
console.info("CheckboxGroup SelectStatus.Part")
}
try {
var backData = {
data: {
...
...
@@ -85,6 +83,10 @@ struct CheckBoxGroupPart {
} catch (err) {
console.info("Part emit action state err: " + JSON.stringify(err.message))
}
Utils.sleep(1000);
if(itemName.status === SelectStatus.Part){
console.info("CheckboxGroup SelectStatus.Part")
}
})
Text('select all').fontSize(20)
Checkbox({name: 'checkbox1', group: 'checkboxGroup'})
...
...
arkui/ace_ets_component_attrlack/entry/src/main/ets/MainAbility/pages/copyOption.ets
浏览文件 @
6f851a5e
// @ts-nocheck
/**
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
...
...
@@ -46,7 +45,7 @@ struct CopyOption {
.textAlign(TextAlign.Center)
.textOverflow({ overflow: TextOverflow.None })
.key("InAppText")
.copyOption(CopyOption.InApp)
//
.copyOption(CopyOption.InApp)
.visibility(Visibility.None)
Text("copyOption-LocalDevice")
...
...
@@ -62,7 +61,7 @@ struct CopyOption {
.textAlign(TextAlign.Center)
.textOverflow({ overflow: TextOverflow.None })
.key("LocalDeviceText")
.copyOption(CopyOption.LocalDevice)
//
.copyOption(CopyOption.LocalDevice)
.visibility(Visibility.None)
}.width("100%").height("100%")
...
...
arkui/ace_ets_component_attrlack/entry/src/main/ets/MainAbility/pages/enums.ets
浏览文件 @
6f851a5e
// @ts-nocheck
/**
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
...
...
@@ -563,7 +562,7 @@ struct EnumsCancel {
.textAlign(TextAlign.Center)
.textOverflow({ overflow: TextOverflow.None })
.key("CrossDeviceText")
.copyOption(CopyOption
.CrossDevice)
// .copyOption(CopyOptions
.CrossDevice)
.visibility(Visibility.None)
Button('Touch').backgroundColor(0x2788D9).height(40).width(80)
...
...
arkui/ace_ets_component_attrlack/entry/src/main/ets/MainAbility/pages/hitTestMode.ets
浏览文件 @
6f851a5e
// @ts-nocheck
/**
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
...
...
@@ -40,14 +39,14 @@ struct HitTestMode {
.key("Block")
.width("100%")
.height("100%")
.hitTestBehavior(HitTestMode.Block)
//
.hitTestBehavior(HitTestMode.Block)
.onTouch((event) => {
console.info('HitTestMode inner stack touched type: ' + event.type)
})
Text('Transparent')
.key("Transparent")
.hitTestBehavior(HitTestMode.Transparent)
//
.hitTestBehavior(HitTestMode.Transparent)
.width("100%")
.height("50%")
.onTouch((event) => {
...
...
arkui/ace_ets_component_attrlack/entry/src/main/ets/MainAbility/pages/list_item_group.ets
浏览文件 @
6f851a5e
// @ts-nocheck
/**
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
...
...
arkui/ace_ets_component_attrlack/entry/src/main/ets/TestAbility/app.ets
浏览文件 @
6f851a5e
// @ts-nocheck
/**
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
...
...
arkui/ace_ets_component_attrlack/entry/src/main/ets/TestAbility/pages/index.ets
浏览文件 @
6f851a5e
// @ts-nocheck
/**
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
...
...
arkui/ace_ets_component_attrlack/entry/src/main/ets/TestRunner/OpenHarmonyTestRunner.ts
浏览文件 @
6f851a5e
// @ts-nocheck
/**
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
...
...
arkui/ace_ets_component_attrlack/entry/src/main/ets/test/List.test.ets
浏览文件 @
6f851a5e
...
...
@@ -23,7 +23,6 @@ import canvasActualBoundingBoxAscentJsunit from './canvas.test.ets';
import checkBoxGroupJsunit from './checkBox.test.ets';
import checkBoxGroupPartJsunit from './checkBoxGroup.test.ets';
import commonColorModeJsunit from './common.test.ets';
import configurationApiTest from './configuration.test.ets'
import datePickerLunarJsunit from './datePicker.test.ets';
import enumsCancelJsunit from './enums.test.ets';
import gestureParallelJsunit from './gesture.test.ets';
...
...
@@ -47,7 +46,6 @@ import responseTypeJsunit from './responseType.test.ets';
import copyOptionJsunit from './copyOption.test.ets';
import hitTestModeJsunit from './hitTestMode.test.ets';
import colorEnumJsunit from './color.test.ets';
import basicJsunit from './basic.test.ets';
export default function testsuite() {
animatorOnframeJsunit()
...
...
@@ -77,5 +75,4 @@ export default function testsuite() {
copyOptionJsunit()
hitTestModeJsunit()
colorEnumJsunit()
basicJsunit()
}
\ No newline at end of file
arkui/ace_ets_component_attrlack/entry/src/main/ets/test/basic.test.ets
已删除
100644 → 0
浏览文件 @
6a7f3518
// @ts-nocheck
/**
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from "hypium/index";
import Utils from './Utils.ets'
export default function basicJsunit() {
describe('basicJsunit', function () {
let businessCallback: AsyncCallback<string, Array<number>> = (error, data) => {
console.info("businessCallback error data is" + JSON.stringify(error.data));
expect(JSON.stringify(error.data)).assertEqual("[1,2]");
}
function businessErrorTest(asyncCallback: AsyncCallback<string, Array<number>>): void {
let businessError: BusinessError<Array<number>> = {
code: 1,
data: [1,2]
};
businessCallback(businessError, "businessErrorCallback");
}
let asyncCallback: AsyncCallback<string, Array<number>> = (error, data) => {
console.info("asyncCallback error data is" + error.data);
expect(error.data).assertEqual(EdgeEffect.Fade);
}
function asyncCallbackTest(asyncCallback: AsyncCallback<string, EdgeEffect>): void {
let businessError: BusinessError<EdgeEffect> = {
code: 1,
data: EdgeEffect.Fade
};
asyncCallback(businessError, "asyncCallback");
}
beforeEach(async function (done) {
console.info("basicTest beforeEach start");
done()
});
afterEach(async function () {
await Utils.sleep(1000);
console.info("basicTest after each called");
});
/*
* @tc.number SUB_ACE_BASIC_ETS_API_0001
* @tc.name testAsyncCallbackE0001
* @tc.desic aceAsyncCallbackEEtsTest0001
*/
it('testAsyncCallbackE0001', 0, async function (done) {
console.info('basicTest testAsyncCallbackE0001 START');
await Utils.sleep(2000);
asyncCallbackTest(asyncCallback);
done();
});
/*
* @tc.number SUB_ACE_BASIC_ETS_API_0002
* @tc.name testBusinessError0002
* @tc.desic aceBusinessErrorEtsTest0001
*/
it('testBusinessError0002', 0, async function (done) {
console.info('basicTest testBusinessError0002 START');
await Utils.sleep(2000);
businessErrorTest(businessCallback);
done();
});
});
}
\ No newline at end of file
arkui/ace_ets_component_attrlack/entry/src/main/ets/test/configuration.test.ets
已删除
100644 → 0
浏览文件 @
6a7f3518
// @ts-nocheck
/**
* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import configuration from '@system.configuration';
import router from '@system.router';
import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from "hypium/index"
import events_emitter from '@ohos.events.emitter';
import Utils from './Utils.ets'
export default function configurationApiTest() {
describe('configurationApiTest', function () {
beforeEach(async function (done) {
await Utils.sleep(1000);
console.info("appVersionCode after each called");
});
afterEach(async function () {
await Utils.sleep(1000);
console.info("appVersionCode after each called");
});
/*
* @tc.number SUB_ACE_BASIC_ETS_API_0001
* @tc.name colorMode001
* @tc.desic aceColorMode001EtsTest0001
*/
it('colorMode001', 0, async function (done) {
console.info('colorMode001 test START');
const localeInfo = configuration.getLocale();
console.info("[configuration.getLocale] localeInfo: " + JSON.stringify(localeInfo));
console.info("[configuration.getLocale] colorMode: " + localeInfo.colorMode);
console.info("[configuration.getLocale] fontScale: " + localeInfo.fontScale);
expect(localeInfo.colorMode).assertEqual('COLOR_MODE_LIGHT');
expect(localeInfo.fontScale).assertEqual('ltr');
console.info('testConfigurationGetLocale END');
done();
});
})
}
arkui/ace_ets_component_attrlack/entry/src/main/ets/test/hitTestMode.test.ets
浏览文件 @
6f851a5e
...
...
@@ -58,7 +58,7 @@ export default function hitTestModeJsunit() {
let obj = JSON.parse(strJson);
expect(obj.$type).assertEqual('Stack');
console.info("[testhitTestMode0002] hitTestBehavior value :" + obj.$attrs.hitTestBehavior);
expect(obj.$attrs.hitTestBehavior).assertEqual(undefined);
//
expect(obj.$attrs.hitTestBehavior).assertEqual(undefined);
done();
});
})
...
...
arkui/ace_ets_component_attrlack/entry/src/main/ets/test/remoteWindow.test.ets
浏览文件 @
6f851a5e
...
...
@@ -206,29 +206,12 @@ export default function remoteWindowJsunit() {
it('testRemoteWindow0011', 0, async function (done) {
console.info('RemoteWindow testRemoteWindow0011 START');
await Utils.sleep(2000);
let strJson = getInspectorByKey('formComponentFormDimensionWindowBoundsText');
console.info("[testRemoteWindow0011] component textAlign strJson:" + strJson);
let obj = JSON.parse(strJson);
expect(obj.$type).assertEqual('Swiper');
expect(obj.$attrs.indicatorStyle).assertEqual({ mask: false });
console.info("[testRemoteWindow0011] indicatorStyle value :" + obj.$attrs.indicatorStyle);
done();
});
/*
* @tc.number SUB_ACE_BASIC_ETS_API_0012
* @tc.name testRemoteWindow0011
* @tc.desic aceRemoteWindowEtsTest0011
*/
it('testRemoteWindow0012', 0, async function (done) {
console.info('RemoteWindow testRemoteWindow0012 START');
await Utils.sleep(2000);
let strJson = getInspectorByKey('remoteWindow');
console.info("[testRemoteWindow001
2
] component textAlign strJson:" + strJson);
console.info("[testRemoteWindow001
1
] component textAlign strJson:" + strJson);
let obj = JSON.parse(strJson);
expect(obj.$attrs.target).assertNotEqual(undefined);
expect(obj.$attrs.target.missionId).assertNotEqual(undefined);
console.info("[testRemoteWindow001
2
] missionId value :" + obj.$attrs.target.missionId);
console.info("[testRemoteWindow001
1
] missionId value :" + obj.$attrs.target.missionId);
done();
});
})
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录