未找到

未发布 超强的.NET图像工具包VintaSoftImaging.NET SDK更新至v8.6丨75折优惠
by Harriet666 keys 分享 1519722650099
VintaSoftImaging.NET SDK是一个为.NET开发人员开发的,强大而易于使用的图像工具包。它可以让你加载、查看、处理、打印和保存数字图像,可将它们转换为不同的图像格式,可用多种TIFF和动态GIF文件提高您的工作效率。目前VintaSoftImaging.NET SDK在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
 
 
Version 8.6更新内容
在WinForms中查看图像:
  • 新增了多页查看模式以在图像查看器中显示图像:
    · 支持以下预定义的图像显示模式:单列、单列连续列、两列、两列连续列、三列、三列连续列。
    · 支持指定用户定义的图像显示模式功能。
  • 为以下可视化工具添加了以多页面视图模式工作的功能:
    · ZoomTool
    · ZoomSelectionTool
    · MagnifierTool
    · ImageMapTool
    · RectangularSelectionTool
    · OverlayImageTool
    · MultiRectangularSelectionTool
    · CustomSelectionTool
  • 可视化工具放大镜:
    · 增加了处理放大镜显示图像的功能。
    · 增加了为放大镜使用椭圆轮廓的功能。
  • 增加了辅助类,允许存储和管理可视化工具(InteractionAreaAppearanceManager类)的交互区域设置。
在WPF中查看图像:
  • 添加了多页查看模式以在图像查看器中显示图像:
    · 支持以下预定义的图像显示模式:单列、单列连续列、两列、两列连续列、三列、三列连续列。
    · 支持指定用户定义的图像显示模式功能。
  • 为以下可视化工具添加了以多页面视图模式工作的功能:
    · ZoomTool
    · ZoomSelectionTool
    · MagnifierTool
    · ImageMapTool
    · RectangularSelectionTool
    · OverlayImageTool
    · MultiRectangularSelectionTool
    · CustomSelectionTool
  • 现在可视化工具Zoom和Pan可以与触摸屏一起使用。
  • 可视化工具放大镜:
    · 增加了处理放大镜显示图像的功能。
    · 增加了为放大镜使用椭圆轮廓的功能。
  • 增加了辅助类,允许存储和管理可视工具(WpfInteractionAreaAppearanceManager类)的交互区域设置。
  • 修复了可视化工具WpfCompositeVisualTool中的一些非关键性错误。
Web图像查看器:
  • 提高了HTML5和SVG图像查看器的性能。
  • 优化HTML5和SVG图像查看器中的动画显示功能。
数据存储:
  • 创建数据存储:CompositeDataStorage,StreamDataStorageOnDisk,CloneableObjectStorageInMemory,CompressedImageStorageInMemory,CompressedImageStorageOnDisk。
  • 改进了数据存储的体系结构。
  • 增加了在数据存储中缓存图像的功能。
用于图像处理的Web服务:
  • 重构Web服务的体系结构。
  • 增加了在缓存管理器中使用数据存储的功能。
  • 现在可以从服务器下载图像文件作为二进制流。
编解码器:
  • 修复了GIF编解码器中的一些错误。
  • 修复了TIFF编解码器中的一些错误。
演示应用程序:
  • 演示ASP.NET WebForms和ASP.NET MVC的应用程序:
    · 增加了本地化演示应用程序界面的功能(使用l20n库)。演示应用程序的界面已经本地化为英语和俄语。
    · 增加了以二进制流的形式从服务器下载图像文件的功能。
    · 增加了在显示图像和PDF文档时使用色彩管理的功能。
    · 演示应用程序的代码已被重构。
  • 演示ASP.NET MVC的应用程序:
    · 增加了显示视频流并从HTML5网络摄像头捕获图像的功能。
  • 为WinForms和WPF创建了以下迷你演示应用程序:
    · “文档查看器”迷你演示应用程序。
    · “加载、查看和保存图像”迷你演示应用程序。
    · “注释图像”迷你演示应用程序。
    · “缩略图查看器定制”迷你演示应用程序。
    · “缩略图查看器拖放”小型演示应用程序。
    · “图像处理”迷你演示应用程序。
未发布 AutoVue 21.0.1新版本特性:支持在没有Applets的浏览器中运行
by Harriet666 keys 分享 1490257298040

21.0.1版本的AutoVue中的一大特色就是可以在没有Applet的浏览器中支持AutoVue。Chrome前一段时间删除了对Applet的支持。Firefox也即将推出。所以这是一个非常重要的功能,允许人们继续使用AutoVue作为Web环境的一部分。

【AutoVue系列产品包含:AutoVue 3D Professional AdvancedAutoVue Electro-Mechanical ProfessionalAutoVue EDAAutoVue OfficeAutoVue 2D Professional

AutoVue 21.0.1增加了对Java Web Start Framework的支持,这允许浏览器轻松运行java应用程序。使用此框架,AutoVue客户端可以作为浏览器之外的单独的应用程序运行,这提供了更高的安全性,并且可以在没有Applet支持的浏览器中使用。

对于用户来说,体验将与以前版本的AutoVue非常相似,你可以在浏览器中单击文档或模型,AutoVue客户端将启动并显示相应的文档或客户端。  

未发布 Microsoft为其Visual Studio和.Net Core添加了新的工具
by Harriet666 keys 分享 1489634333886
微软正在改进其Visual Studio IDE和.Net Core开源运行的工具。用于Visual Studio和.Net Core Tools的Power Productivity Tools添加了功能,包含突出错误显示和Docker功能。
Visual Studio 2017下载地址>>
未发布 解析企业使用开源软件的潜在风险
by Harriet666 keys 分享 1509608088587

很多企业都选择使用开源软件(OSS)构建更加灵活的产品,但其中也存在潜在的风险,软件供应商和IoT制造商都有必要去了解一下隐藏在软件供应链中的风险。

已知风险

例如,犯罪分子就完全可以利用Apache Struts CVE-2017-5638漏洞来获取Equifax客户的个人资料。众所周知,Apache Struts是一种广泛使用的开源组件 – Web服务器的框架,它可以用于接收和提供公司内部系统中的商业数据。归根到底,还是因为这个开源组件所存在的漏洞以致于使其成为网络攻击的主要目标。

主要发现

根据Flexera的一份最新报告显示,在商业和IoT软件产品中所发现的代码有百分之五十都是与开源软件有关的。但调查显示只有37%的受访者表示曾获取并使用开源软件。而63%的公司说,他们并没有获取或使用开源软件,或者说他们根本就不知道有这种情况的存在。

并且据了解,目前基本没有人对开源软件的安全性负责:39%的受访者表示,在他们公司内部没有人会对开源软件的安全性负责,或者可以说他们压根就不知道应该是由谁来负责。

除此之外,开源软件的贡献者也不是遵循最佳实践:33%的受访者表示自己的公司曾为开源项目做出了贡献。但是,又有63%的受访者表示他们的公司压根并没有开源采购或使用政策,当然也有43%的受访者表示自己本身对开源项目也有做出贡献。

不管怎样,我们都不能忽视开源确实是一个明显的捷径。 Flexera产品管理副总裁Jeff Luszcz表示:“完全开源可获取的代码可以快速获得产品,这对于软件开发的快速节奏来说非常重要。” “然而,大多数软件工程师并没有在私下里去跟踪开源的使用情况,而且有绝大部分的软件高管都没有意识到其安全/合规风险方面存在一定差距。”

事实上,对于开源软件使用过程中的安全合规、许可等流程可能远比简单的拿来用要方便的多,但这些流程毫无疑问是必不可少的。

“开源软件的安全合规流程能够很好的保护产品和品牌声誉。但大多数软件和IoT厂商都没有意识到存在的问题,所以他们并没有保护自己和户,”Luszcz说,“对于暴露产品合规性和漏洞风险的供应商,还有那些压根就不知道他们运行开放源代码和其他第三方软件的客户,甚至可能是包含软件漏洞的客户 ,这些都是会危及到整个软件供应链。”



2017慧都十四周年狂欢搞事情!砸金蛋100%抽现金红包、满额豪送iPhone X、iPhone 8、DevExpress汉化免费送、团队升级培训套包劲省10万元......更多惊喜等您来探索!

未发布 全面的.NET图像处理包DotImage v10.7.0.7发布丨附下载
by Harriet666 keys 分享 1491038264122
DotImage

Atalasoft DotImage 是一款功能完善的图像处理包,它主要针对.NET的开发。它为基于.Net框架开发的Windows应用程序以及基于IE的Asp.Net程序提供高级的图像处理功能。DotImage 提供了很多Microsoft .NET Framework一样的设计模式,并向开发者提供功能丰富,高性能,授权方式灵活的对象模式。 
最新版DotImage点击下载>>>
 
DotImage v10.7.0.7更新内容

v10.7.0.7中的修复的问题

  • [TiffDecoder]Customer图片会导致TiffDecoder出现SEHException异常。
  • [AdvancedDocClean] LineRemovalCommand在某些图像上会引起不可修复的System.AccessViolationException,从而破坏主机进程。
  • [AbbyyEngine] OcrTableRegion.Cells没有被填充。
  • WebDocumentViewer getDocumentInfo对removePage的调用不成功。

上一个版本中修复的问题

  • 在特定的PDF中使用修复功能会导致新版本出现异常。
  • [MVC] NuGet库中缺少Atalasoft.dotImage.WebControls.MVC(包括x86和x64)。
  • [WDV] Async方法可能会在浏览器页面刷新期间/之后引起控制台发生错误。
  • 使用PdfDocument.Save格式保存时,Multipage PDF页面会引用前几页的资源。
  • 保存PDF时,无效的PDF属性值会引起异常。
  • [PdfAnnotationDataExporter]使用OverwriteExistingAnnotations = true保存到特定图层时,会覆盖掉上一层。
  • PDF417条形码不可读取。
  • Customer DWG文件在DwgDecoder中呈现时丢失图像。
  • WebDocumentViewer会调用触发了ThreadAbortException的Response.End。
  • PdfDocument.Repair对于某些格式不正确的链接可能会删除而不是修复。
  • [PdfTextDocument]文本提取结果在某些文档上使用时会丢失内容。
  • 当SelectionMode = ThumbnailSelectionMode.MultiSelect时WinForms ThumbnailView / FolderThumbnailView SelectionIndexChanged会触发两次。
  • RawDecoder注册时,Customer file会引起System.AccessViolation异常。
  • [PdfGeneratedDocument] PdfTextLine会忽略通过构造函数传递的FillColor和OutlineColor值。
  • [PdfDocument]一些PDF文件在PdfDocument中打开时会发生StackOverflow问题。
  • [PdfDocument]使用PdfDocument / PdfAnnotationDataImporter打开一些PDF时会出现Overflow问题。
  • WebDocumentThumbnailer:当tabular:true set时,滚动条未正确更新。
  • 客户在Logger中报告的竞争条件/非线程安全行为。
  • “不支持Colourspace转换”的Customer tiffs无法打开。
  • 755266:WDV - 打开non-relative web根路径将导致WDV保存失败。
  • [PdfDocument]如果我们多次将新页面添加到文档时,Adobe Acrobat将无法读取pdf文件。
  • 只有页面可见时,WebDocumentViewer Rotate方法才会更新。
  • [OfficeDecoder]无论解码器分辨率如何设置,Office文件始终呈现默认的DPI(大多数系统上为96)。
  • [PdfEncoder]使用PdfCompressionMode.Segmented保存大文件(大量页面)会发生内存的问题。
  • [BarCodeReader] DataMatrix条形码读取速度非常慢
  • PdfCompressionMode.Segmented强制将灰度图像变为黑白,且这种行为没有记录。
  • PdfDocument打开/保存时Customer PDF被损坏。
  • [OfficeDecoder]部分office文件的表格标题中缺少内容。
  • 带有AnnotationStreamWritten事件的WDV 10.7中的行为发生变化。
  • 载入注释中的WDV regression。
  • [DotTwain] HP scanners DeviceEvent 会使device.State进入无效状态。
  • Barcoding.Reading.BarcodeReader没有读取到相应的客户代码。
  • 10.7 WDV更改会破坏WingScan-only的许可。
  • [PdfAnnotationDataExporter] EmbeddedImageAnnotation会增加目标PDF文件大小。
  • [BarCodeReader] - 在其他引擎中读取的PDF-417条形码的Customer images在BarCodeReader中无法读取。
  • [BarCodeReader]当前的BarCodeReader引擎无法读取旧的9.x(Inlite)引擎读取的条形码的全部内容。
  • [PdfDocument]Customer PDF会引起关于MLPdfLabColorSpace的PdfException异常。修复后提示成功,但所有内容也会丢失。
未发布 7个最新的实用性 JavaScript MV*框架
by Harriet666 keys JavaScript 1487317434712
JavaScript是目前web上最受欢迎的编程语言之一。最初它并不是很受欢迎,因为它不是为服务器端编程而设计的。JavaScript主要作用于设计用户界面,许多开发人员特别是经验丰富的专业人士认为它比较适合缺乏经验的新手使用。随着用户体验成为Web开发中一个重要的组成部分,JavaScript的人气也开始增加。有一些框架有助于构建JavaScript应用程序,其中MV *是可以构建MVP和MVVM模式的框架。点击查看7个最新的实用性 JavaScript MV*框架>>>
未发布 【更新】支持多种格式音视频的本地.NET组件Audio Sound Recorder for .NET 更新至v9.0.0.0
by Harriet666 keys 分享 1510908930689
Audio Sound Recorder for .NET是一款本地.NET组件,它可以轻松把录音功能添加到用Visual Studio.NET和Borland Developer Studio编写的Winforms应用程序中。

Audio Sound Recorder for .NET v9.0.0.0最新版下载

Audio Sound Recorder for .NET v9.0.0.0更新内容:
新功能
  • 支持播放声音,同时通过鼠标手动滚动波形滚动条。
  • 支持通过外部编码器FdkAac.exe以AAC+格式记录和导出。
  • 支持播放录制声音。
  • 支持对录制声音进行高速播放,可以将声音保持原始速度。
  • 支持以HLS格式(HTTP Live Streaming)进行流媒体回放。
  • 增加了将Wasapi采集或回送设备的立体声录音会话分为两个单声道输出文件的可能性
  • 增加了切换立体声分离录制会话的单声道输出文件的功能
  • 波形分析仪的新选项
      - 波形现在可以基于绝对值显示检测到的峰值
      - 更多地控制时间标尺上显示的时间字符串的格式
      - 可选的自动垂直缩放功能,用于低音量级别的波形
  • 回放期间显示在波形视觉反馈上的峰值现在通过专用事件报告给容器应用程序。
  • 增加了在录制和回放过程中检索峰值电平和RMS(均方根)电平的支持。
  • 增加了从波形分析仪中检索包含波形峰值的缓冲区的可能性
 
新属性
  • EncodeFormats.AACPlus (class)
 
新方法
  • CallbackWaveformValueChangeSet
  • StartSplitFromWasapiCaptureDevice
  • StartSplitFromWasapiLoopbackDevice
  • SwitchOutputFilesOnSplit
  • StreamPeakLevelsGet
  • RecordedSound.PlaybackRateGet
  • RecordedSound.PlaybackRateSet
  • RecordedSound.PlaybackTempoGet
  • RecordedSound.PlaybackTempoSet
  • RecordedSound.PlaybackRateRatioGet
  • RecordedSound.SoundDirectionEnable
  • RecordedSound.SoundDirectionGet
  • RecordedSound.SoundDirectionIsEnabled
  • RecordedSound.SoundDirectionSet
  • WASAPI.MixerInputDevicePeakLevelsGet
  • WaveformAnalyzer.AutoZoomEnable
  • WaveformAnalyzer.SettingsRulersTimeFormatSet
  • WaveformAnalyzer.PeaksBufferLengthGet
  • WaveformAnalyzer.PeaksBufferGet
  • WaveformScroller.PlaybackOnScrollEnable
  • WaveformScroller.PlaybackOnScrollInfoGet
 
新事件
  • WaveformValueChange
 
新的回调委托
  • CallbackWaveformValueChange
 
新的类
  • EncodeAACplus

试用、下载、了解更多产品信息请点击"咨询在线客服"  

未发布 【百厂年货节】Dynamsoft热销产品7.5折超级特惠,仅此一次!
by Harriet666 keys 分享 1517476439385
 
Dynamsoft公司是版本控制和事件跟踪软件应用程序领域的领先开发商。 如今,大部分世界500强企业,包括 HP,IBM, Intel, 以及 Siemens 等都信赖 Dynamsoft 的解决方案,用它来处理版本控制和事件跟踪应用程序开发。于此新春佳节之际,慧都联合Dynamsoft公司针对中国客户进行百厂年货节促销活动,诚邀您的参与。
 
活动时间:2018年2月1日-2018年2月28日
活动内容:在活动期间内,购买 Dynamsoft 指定产品授权均可享受原价基础上7.5折的超值优惠。
活动授权:
活动产品授权折扣

Dynamic Web TWAIN

HTML5 browsers for Windows(Per Production Server)年货节特惠7.5折
HTML5 browsers for Windows(Per Non-Production Server)年货节特惠7.5折

Dynamic .NET TWAIN

Scanner Module(1-Developer License)年货节特惠7.5折
Scanner + Webcam Module(1-Developer License)年货节特惠7.5折

Dynamsoft Barcode Reader

1D Barcode(Per Production Server)年货节特惠7.5折
1D Barcode(Per Non-Production Server)年货节特惠7.5折
QRCode(Per Non-Production Server)年货节特惠7.5折

想要了解更多优惠信息?<咨询客服>可了解最新活动!

咨询热线:400-700-1020(免费) 023-66090381


6

未发布 微软C# 8.0中的四个特性
by Harriet666 keys 分享 1504687137082

可空的引用类型(Nullable Reference Types)

可空的引用类型可概括地表述为,引用类型将不再默认可空。因此,开发人员必须使用定义可空值类型的同样语法“Type?”,显式地标记一个引用类型为可空。

如果将一个空值赋值给一个非可空的引用类型,那么将会给出一个编译器警告。与之相类似,从可空类型中读取也会给出编译器警告,除非显式地提前检查了被质疑的变量是否为空值。因此从理论上讲,开发人员需要做的唯一更改就是在代码的适当位置标上问号。

该特性新加了一个语法。该语法针对开发人员明知一个可空变量x并非实际为空值却无法证明给编译器的情况。在上述情况下,开发人员现在可以定义x!.Method(),消除编译器对于潜在空值引用异常的警告。
 

异步流(Async Streams),即foreach async

异步流是IEumerable的异步等价类。C#团队自2015以来就一直在努力实现异步流。在经历了很多争议后,其语法被定为:
foreach await (string s in asyncStream)
开发人员将使用如下的函数签名定义一个异步迭代器:
async IAsyncEnumerable MethodName()
就像使用一个正常的IEnumerable方法一样,开发人员可以使用“yield return”以懒方式(Lazy)构建对象流。

相比于源自响应式扩展(Reactive Extensions)的IObservable,使用这一方法的优点在于让消费者控制流速,这被称为“Pull模式”。与之相对,IObservable是一种“Push模式”,这意味着生产者可以使用高于消费者所能处理的流速让流涌向消费者。
 

缺省接口实现(Default Interface Implementations)

缺省接口实现在本质上是一种有限形式的多重继承。它允许抽象接口像抽象类一样,对方法进行完全的定义,只是抽象接口依然不能定义构造函数和字段。

需注意,开发人员可以通过使用ConditionalWeakTable在接口上模拟字段。

默认接口实现的主要好处是,开发人员可以在不破坏向后兼容的条件下,将一个新方法添加到一个已有的接口中。但是这并非是有保证的,因为默认接口只是在可以设计出适合的默认方法时才能工作。
 

扩展(Extension)

开发人员可以编写扩展方法,但是不能扩展属性,这是长期以来对C#一直存在的一个问题。事实上,如果使用当前的模式,甚至是不能定义一个扩展属性或事件的。此外,在很多开发人员看来,在静态类中放置扩展方法是“很诡异的”。

新的设计中新给出了一种称为“扩展”(Extension)的顶层语言构件。例如,如果开发人员想要为自定义的Customer类创建一个扩展方法和属性,可编写如下代码:
extension CustomerExt extends Customer {
    //定义方法和属性的代码。
}
就接口而言,是不能在扩展中定义实例字段的,但是可以使用ConditionalWeakTable实现模拟。定义静态字段也是允许的。

除了对属性、事件和操作符重载的扩展,C#团队甚至考虑允许扩展构造函数。扩展构造函数非常适用于工厂模式(Factory)和对象池场景。

扩展接口(Extension Interfaces)C#团队还考虑了扩展接口,即在已有类中添加新接口的能力。但是扩展接口将不会成为C# 8中的特性,因为它需要更改底层的运行时。
未发布 MailBee.NET Objects撰写邮件教程(一):添加和删除自定义标题
by Harriet666 keys 分享 1501488557962
MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
 
MailBee.NET Objects介绍和试用点击查看>>>
 
本文主要介绍了如何添加和删除自定义标题的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!

在新邮件中添加自定义标题,可以使用一下代码:
C#
// Create a MailMessage object.
MailMessage msg = new MailMessage();

// Add a header.
msg.Headers.Add("MyHeader", "Some value for my own header", false);

VB.NET
' Create a MailMessage object.
Dim msg As New MailMessage()

' Add a header.
msg.Headers.Add("MyHeader", "Some value for my own header", False)

你可以指定标题的名称和值,如果邮件中已经存在标题,也可以指定是否重写。当覆盖参数设置为true并且具有相同名称的标题已经存在时,它将被覆盖;否则,将添加具有相同名称的另一个标题。
开发人员还可以轻松地从邮件中删除所有自定义标题:
C#
// Remove the non-standard headers from the message.
msg.Headers.RemoveCustomHeaders();

VB.NET
' Remove the non-standard headers from the message.
msg.Headers.RemoveCustomHeaders()
此方法可以删除标准的标题以外的所有标题。你可以在RemoveCustomHeaders方法描述中找到标准标题列表。另一种方法是使用Remove或RemoveAt方法,也能够指定要删除的标题:
C#
// Remove the specified header.
msg.Headers.Remove("X-Special-Header"); 

// Remove the first header.
msg.Headers.RemoveAt(0);

VB.NET
' Remove the specified header.
msg.Headers.Remove("X-Special-Header") 

' Remove the first header.
msg.Headers.RemoveAt(0)

 近期热门 - 点击最多
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Node.js 打印vite react+go项目目录树
  3. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  4. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  5. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  6. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  7. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  8. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  9. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  10. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法

  全端社区 - 最新回复
  1. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  2. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  3. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  4. Node.js 打印vite react+go项目目录树
  5. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  6. Windows与Mac通过git ssh和rsync实现文件共享互传
  7. Windows与Mac通过git ssh和scp实现文件共享互传
  8. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  9. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件
  10. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA