未找到

未发布 GIS软件开发工具包TatukGIS Developer Kernel更新至 v11.4.0-Unstable4
by Harriet666 keys 分享 1494493928347
GIS定制开发首选控件,帮您轻松搞定高效、优质、实惠的GIS解决方案

TatukGIS Developer Kernel(DK)是一个用于开发自定义地理信息系统(GIS)应用程序以及解决方案的综合性软件开发工具包(SDK)。众所周知,构建一个庞大的地理信息系统需要花费大量的金钱和人力,而TatukGIS却是同类产品中性价比最高的控件,TatukGIS Developer Kernel DK因其功能强大,价格适中,已被超过 50个国家的个人、公司、以及政府等客户用来实现其地理信息系统解决方案。根据不同地首选开发环境,本产品分别以五个独立产品的形式提供(即VCL、.NET/WPF、ActiveX、Compact Framework和ASP.NET),各个产品使用相同的框架、应用程序编程接口(API)技术。
 
Version: 11.4.0-Unstable4

新功能:

  • [DK-9224]通过将最小值最大值映射到0..255(Core),以便更好地显示16位像素数据。
  • [DK-9137]实现Params.Pixel.RedMapZones、GrenMapsZones等,允许高于255并正确映射16位图像(Core)。

修复:

  • [DK-9220] TGIS_ControlLegendForm - 使用“应用”按钮两次会覆盖最后一节参数(DK,NDK)。
  • [DK-9211] TGIS_LayerPixel.Locate - 没有正确设置_nativesVals为64位(4波段)图像(Core)。
未发布 【示例教程】如何用leadtools创建一个OCR驱动的计算器
by Harriet666 keys 分享 1519808939687

Leadtools 19总套包下载>>>

日常工作和业务中会有一些图片中的计算公式等需要计算,这个代码片断显示了LEADTOOLS OCR可以用来检测、识别和执行简单的数学命题,如“2 + 2”。
static void SimpleOCRCalculator(string filePath)
      {
         RasterCodecs codecs = new RasterCodecs();

         RasterImage image = codecs.Load(filePath);

         string[] calculations;
         using (IOcrEngine engine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false))
         {
            engine.Startup(null, null, null, null);
            IOcrPage page = engine.CreatePage(image, OcrImageSharingMode.None);

            page.AutoZone(null);
            page.Recognize(null);

            calculations = new string[page.Zones.Count];

            for (int i = 0; i < page.Zones.Count; i++)
            {
               calculations[i] = page.GetText(i);
            }

            engine.Shutdown();
         }

         Dictionary<string, Action<double, double>> operands = new Dictionary<string, Action<double, double>>();
         operands.Add("+", new Action<double, double>(delegate(double a, double b) { double ans = a + b; Console.WriteLine("{0} + {1} = {2}", a, b, ans); }));
         operands.Add("-", new Action<double, double>(delegate(double a, double b) { double ans = a - b; Console.WriteLine("{0} - {1} = {2}", a, b, ans); }));
         operands.Add("x", new Action<double, double>(delegate(double a, double b) { double ans = a * b; Console.WriteLine("{0} * {1} = {2}", a, b, ans); }));
         operands.Add("/", new Action<double, double>(delegate(double a, double b) { double ans = a / b; Console.WriteLine("{0} / {1} = {2}", a, b, ans); }));

         for (int i = 0; i < calculations.Length; i++)
         {
            string equation = Regex.Replace(calculations[i], @"\n|\r| ", "");
            string[] ops = new string[] { "+", "-", "x", "/" };

            for (int j = 0; j < ops.Length; j++)
            {
               int index = equation.IndexOf(ops[j]);

               if (index > 0 && index < equation.Length)
               {
                  string op1 = equation.Substring(0, index);
                  string op2 = equation.Substring(index + 1);

                  double arg1 = double.Parse(op1);
                  double arg2 = double.Parse(op2);

                  operands[ops[j]](arg1, arg2);

                  break;
               }
            }
         }

         codecs.Dispose();
         image.Dispose();
      }

 

用于测试的图像如下。

resource

未发布 矢量图像处理控件CAD EditorX 发布v12,支持导出到G-code
by Harriet666 keys 分享 1497342935340
CADEditorX是一个ActiveX控件,在众多的环境中,如 .NET、HTML / JavaScript、VC++、Delphi、Java等等,它能查看、编辑、转换、测量和打印DWG和其他CAD文件以及3D模型和光栅图像。CADEditorX提供易用的API和大量的例子方便开发者快速集成。
 
【CADEditorX 12点击下载>>>】
 
CADEditorX 12更新内容
新版本的CADEditorX 12,可在不同的开发环境中使用DWG、DXF、HPGL、STEP和其他2D和3D文件格式。
 
CADEditorX 12的主要特点是支持最新的DWG版本 - AutoCAD®DWG 2018。在你创建基于CADEditorX的应用程序时,它们将能够打开最新的图形。
 
此外,现在CADEditorX支持导出到G-code。如果你为CNC机床开发程序,CADEditorX可以让你的应用程序从DWG和DXF图形中生成G代码。
6d1bc8e20c614de280cb456e063bcbe9ojpg

CADEditorX 12中包含的改进内容列表:
  • 导入AutoCAD®DWG 2018
  • 导出到G-code
你可以下载CADEditorX最新版来测试新功能>>>
未发布 【示例教程】如何通过leadtools读取二维码中的中文
by Harriet666 keys 分享 1511255400131
在使用leadtools进行二维码识别的过程中,经常或碰到中文识别为乱码的情况,让人比较郁闷,本文教大家如何通过leadtools来读取二维码中的中文。
 
Leadtools 19总套包下载>>>
 
中文在编为二维码的时候,实际上是先按照一定的字符集编码被转换为了二进制编码,而我们如果需要正确的读取出二维码中的中文,就必须要确认编码字符集,如UTF8,UTF16,GB2312,GBK等等。
 
在确认了编码方式后,我们对通过BarcodeEngine 引擎读取出的BarcodeData ,不用value属性直接去获取它的对应字符串。因为这样默认是得到的按照ascii码编码来翻译出的字符串,自然会有各种乱码,leadtools提供了另一个方法GetData(),通过这个方法可以获取原始的byte[] 数据。然后按照对应的编码方式进行转换,即可得到对应的中文字符串。
 
下面的例子中是针对UTF8编码的中文二维码进行识别的代码,大家可以在编译以后,对文末的二维码进行识别。
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Forms; 
using Leadtools.Barcode; 
using Leadtools.ImageProcessing; 

public void BarcodeData_GetDataExample() 
{ 
string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "Barcode2.tif"); 

// Create a Barcode engine 
BarcodeEngine engine = new BarcodeEngine(); 

// Load the image 
using (RasterCodecs codecs = new RasterCodecs()) 
{ 
using (RasterImage image = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)) 
{ 
// Read the first QR barcode from the image 
BarcodeData data = engine.Reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.QR); 

// Show the barcode data found (if any) 
if (data != null) 
{ 
Console.WriteLine("Raw data is:"); 
byte[] bytes = data.GetData(); 
if (bytes != null) 
{ 
string text = System.Text.Encoding.UTF8.GetString(bc); 
Console.WriteLine(text);
} 
else 
{ 
Console.WriteLine("Empty"); 
} 
} 
else 
{ 
Console.WriteLine("No barcode found"); 
} 
} 
} 
}

未发布 Visual Studio2017 15.4提供预览版,面向Windows 10秋季更新(FCU)
by Harriet666 keys 分享 1504518418665
鉴于Visual Studio 15.3现已发布(一并给出了些许更新),Microsoft已将注意力转向近期宣布的VS2017 15.4版本。15.4目前处于预览状态,该版本所关注的是添加对即将发布的Windows 10 FCU(Fall Creators Update)的支持,FCU已确定将在2017年秋季发布。尽管15.4预览版本现已对所有感兴趣的用户可下载,但是要使用FCU的特定特性,还需要成为Windows测试人员(Insider),并下载相应的Windows 10 SDK。

当前VS2017的稳定版本是15.3.x,其中包括对.NET Core 2的支持,但是UWP应用依然要支持.NET Standard 2。在15.4版中对此加以了改进,允许针对FCU和.NET Standard 2的UWP应用开发,这将提升代码重用,并简化开发人员编写支持跨多平台(Mono、Xamarin、.NET Framework、.NET Core等)的软件库。

鉴于15.4当前只是预览版,应该注意的是该构建版本存在一个严重的已知问题(Know Issue),即对UWP应用禁用了XAML Designer,这是Windows 10 FCU至少应该解决的一个问题。正如前面所介绍的,非XAML的UWP应用可以遵循.NET Standard 2.0,但是要完全支持使用了XAML的UWP应用还需假以时日。

那些有考虑编写面向Windows用户应用的开发人员,将会受益于新添加的“Windows Application Packaging Project”模板。该模板提供了添加已有Windows项目和软件包到appx容器中的功能,这样就可以提交到Windows Store等发布途径中。被打包的应用不必是UWP应用。该模板并不需要目标平台运行Windows 10,为开发人员提供了一种更易于发布他们应用的方式,不再依赖于传统的Win32风格安装程序。


非Windows 10的特定添加特性

该版本中改进了Xamarin Tools for Visual Studio,其中包括对Xamarin Live Player的支持,使得开发人员可以使用VS2017和移动设备快速地构建应用原型。一旦Player安装在Apple或Android设备上,它将从运行VS2017的工作站屏幕上读取QR代码,提供了一种无需先期部署到App Store就可在移动设备上实际开发和测试代码的快速方法。

先前独立提供的Power Tool工具“Control Click Go To Definition”,现在已经集成到VS2017中。该特性目前支持C#、VB和Python。在使用时,只需将鼠标悬停在IDE中的任意一行代码上,并同时按住CTRL键,就可以轻易地查看到相关定义。

15.4版本和预览版一样,并未得到可用于“上线”系统的许可,也不能应用于生产环境。VS2017预览版的安装可以与VS2017生产系统并存,但是这样做依然存在着风险,也许在关键业务环境中不应该这样做。该预览版的完整发行说明已经给出,如果用户不确定是否应在本地机器上安装该预览版时,可寻求咨询。
未发布 矢量图形引擎库VectorDraw Developer Framework发布v7.7014.0.5
by Harriet666 keys 分享 1517214900113
VectorDraw Developer Framework(VDF)是一款构建2D、3D图形并用于应用程序可视化的矢量图形引擎库。有了VDF提供的功能,您可以轻松地创建、编辑、管理、输出、输入和打印2D和3D图形文件。该库还支持许多矢量和栅格输入和输出格式,包括本地PDF和SVG导出。
 
VectorDraw Developer Framework试用版下载>>>
 
VectorDraw Developer Framework(VDF)v7.7014.0.5更新内容:

WebJS

新增需求(7.7014.0.1)
  • 70001215 MergeDocument方法支持使用mergeFlags  
新增需求(7.7014.0.5)        
  • 70001249 处理AddBlockFromFile加载
漏洞(7.7014.0.1)
  • 70001204 线路对象捕捉无法运作
  • 70001206 导出到vds脚本时出现异常
  • 70001210 WebGl渲染中的实体影线问题  
漏洞(7.7014.0.5)
  • 70001250 vdConst CloneEntity出现意外
 

Converter

新增需求(7.7014.0.1)
  • 70001217 DGN中unsuported对象的类型
漏洞(7.7014.0.1)
  • 70001212 Textstyle未使用正确的TTF字体导入
漏洞(7.7014.0.5)
  • 70001248 折线的宽度问题
   

Engine

新增需求(7.7014.0.3)
  • 70001231 改进触摸控制
  • 70001234 使用Wrapper检查鼠标是否位于ViewCube内部
  • 70001239 是否可以在OnFilterOsnap事件中获取交集对象
  • 70001241 用webGl 3d模式绘制线条和文本
漏洞(7.7014.0.3)
  • 70001235 版本2000中的DXF导出问题
  • 70001236 在Wire2D模式下,线路抗锯齿功能无法正常工作
  • 70001237 鼠标没有正确渲染
  • 70001238 vdLayout调整大小将引发异常
  • 70001240 AlignToView对象在PDF输出中缩放
  • 70001242 导出多边形为dwg dxf文件格式时出错
漏洞(7.7014.0.4)
  • 70001243 不完整的纸张模型刷新
  • 70001245 当VectorDrawBaseControl WndProc被调用时,出现间歇性崩溃
未发布 TWAIN扫描识别工具Dynamic Web TWAIN发布v13.2,周年限时7折特惠!
by Harriet666 keys 分享 1509603160909
Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。然后用户可以编辑图像并将图像保存为多种格式,用户可保存图像到远程数据库或者SharePoint。这个TWAIN控件还支持上传和处理本地图像。Dynamic Web TWAIN13.2下载>>>
慧都十四周年狂欢开启,Dynamic Web TWAIN终极让利7折特惠
限时一个月,错过不再有,马上咨询>>>
 
Dynamic Web TWAIN v13.2更新内容

  • [HTML5 for All]修复了内存泄漏的问题,扫描服务在将图像数据传输到Web浏览器后未释放内存。注意:此错误从版本13.0开始。
  • [HTML5 for Mac]修复了网络服务有时候没有正常关闭的错误。
  • [ActiveX]修复了base64字符串以“==”结尾的错误,无法使用SetCustomDSDataEx方法进行解码。
  • [ActiveX]修复了在调用Dynamsoft.WebTwainEnv.Unload方法之后Dynamsoft.WebTwainEnv.Load方法不起作用的错误。
  • [ActiveX]修复了TransferMode属性无法正常运行的错误。


未发布 Red Carpet Subscriptions发布2017 v3,适用于Linux和macOS的新版本
by Harriet666 keys 分享 1505294232532
Red Carpet Subscriptions贵宾订购版是综合通讯、安全和电子商务的组件包。贵宾订购版,在一个封包里给你任何东西:适用任何主流Internet协议的通讯组件、SSL 和 SSH 安全组件、S/MIME加密组件、数字证书(Digital Certificates)组件、信用卡交易处理(Credit Card Processing)组件、ZIP压缩组件、即时消息(Instant Messaging)组件、甚至电子商务(EDI)交易组件。
 
Red Carpet Subscription 2017 v3此次更新支持.NET Standard/ .NET Core,TLS 1.3,与OneDrive for Business和Wasabi云存储的集成,JSON安全性,并适用于Linux和macOS的新版本等。
 

重点


升级开发平台

  • 在任何支持.NET Standard和.NET Core的平台上使用.NET Editions
  • 使用PHP 7改进你的PHP应用程序。
  • 使用Node.js 8.3.0和OpenSSL 1.1.0升级Node.js应用程序。
  • 在Linux和macOS上使用IP*Works!IPC。

升级安全选项

  • 开始在.NET和Java中使用TLS 1.3。
  • 使用具有JSON Web Encryption(JWE)和JSON Web Signatures(JWS)选项的JSON Web Tokens(JWT)。

升级云存储集成

  • Graph API 与OneDrive for Business集成。
  • 与新的Wasabi云存储服务集成。

升级企业适配器

  • 使用WebDAV与BizTalk。
  • 使用BlueSnap支付网关与电子支付积分器。
     

细节


支持.NET Standard

所有.NET版本现在包括.NET Standard 1.4、1.6和2.0库。这意味着你可以在任何支持.NET Standard,包括.NET Core、UWP、Mono、Xamarin(Android和iOS)的平台中使用/n software组件。所有.NET版本都包含在内,也是NuGet软件包的一部分。

支持TLS 1.3

.NET和Java Edition现在支持客户端和服务器组件中的TLS 1.3。该版本支持SHA-256、SHA-384和SHA-512签名算法以及DHE 2048、3072、4096、6144和8192组。更多的算法、功能和平台将在下一个版本中推出。

支持Wasabi云服务

这个新组件将一个接口嵌入到Wasabi服务中,为云存储集成商提供了另一个云存储选项。

JSON(JWS / JWE / JWT)安全性

  • IP*Works!Auth包括用于签名/验证加密/解密JSON Web Tokens的新JWT组件。支持所有标准声明和添加自定义声明的功能。
  • IP*Works!Encrypt包括两个新的组件JWS和JWE,用于支持JSON Web Signatures和JSON Web Encryption,用于以各自的标准格式对数据进行签名/验证和加密/解密。

支持PHP 7和7.1

充分利用最新版本的性能和代码升级。所有PHP版本现在支持PHP 7和7.1。

PowerShell服务器支持SSL Tunnels到SSL主机

新功能允许你保护旧版应用程序,支持以前的SSL版本,并具有新的TLS 1.2安全性。
未发布 Edraw Office Viewer component教程(三):将MS Word、Excel、PowerPoint嵌入到WPF应用程序中
by Harriet666 keys 分享 1494580929229
如何将Word、Excel、PowerPoint嵌入WPF应用程序?大部分人应该都记得可以将Excel图表嵌入到Word文档中的OLE技术,但该技术并不支持所有的Microsoft Office文档。它不支持表单中的多个MS Word实例。而Edraw office viewer component对于开发人员可以说是最简单的可以将Word文档、Excel工作表、PowerPoint演示文稿嵌入到WPF应用程序中的解决方案。
 
本文将演示如何逐步嵌入MS Word到wpf应用程序中。如果你没有officeviewer.ocx文件,请先安装。在组件安装文件夹中,你还可以找到wpf示例项目。
打开Visual Studio并创建一个新的WPF应用程序。
右键单击WpfApplication1解决方案。然后单击“Add”菜单并选择“User Control...”。

wpf项目中将会增加一个新的窗体。
选择“User Control”项。不是“User Control(WPF)”项。
双击解决方案面板中的UserControl1.CS。
打开“工具箱”面板,然后单击菜单中的“ Choose Items...”。
在弹出的“Choose Toolbox Items”对话框中,选择“Edraw Office Viewer Component”,然后单击“确定”。
现在,Edraw Office Viewer Component已添加到工具箱的“常规”选项卡中。在UserControl窗体中拖动它。
通过Visual Studio将AxEDofficeLib和EDOfficeLib添加到该解决方案中。
输入打开word文档的C#代码,并保护word文档的修改如下所示:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WpfApplication1
{
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
public void Open()
{
axEDOffice1.OpenFileDialog();
}
public void Protect()
{
if (axEDOffice1.GetCurrentProgID() == "Word.Application")
{
axEDOffice1.ProtectDoc(2);
}
}
public void Print()
{
axEDOffice1.PrintPreview();
}
public void Close()
{
axEDOffice1.ExitOfficeApp();
}
}
}

最后,你需要为UserControl编写主机窗口。切换到Windows1.xaml文件,然后添加打开、保护、打印和关闭的按钮,如图所示。

添加以下c#代码来关联office component。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication1
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void Open_Click(object sender, RoutedEventArgs e)
{
_host.Open();
}
private void Protect_Click(object sender, RoutedEventArgs e)
{
_host.Protect();
}
private void Print_Click(object sender, RoutedEventArgs e)
{
_host.Print();
}
private void Close_Click(object sender, RoutedEventArgs e)
{
_host.Close();
}
}
}

打开配置管理器。将Active Solution平台更改为x86选项。然后建立并运行。
Office Viewer component支持所有版本的MS Word。要将MS Excel或PowerPoint Visio、Project嵌入到WPF应用程序中,你只需要调用Open方法,如下所示:
public void Open()
{
//axEDOffice1.OpenFileDialog();
axEDOffice1.Open(sPath, "Word.Application");
axEDOffice1.Open(sPath, "Excel.Application");
axEDOffice1.Open(sPath, "PowerPoint.Application");
axEDOffice1.Open(sPath, "Visio.Application");
axEDOffice1.Open(sPath, "MSProject.Application");
}
 
以上就是本次教程的全部内容,接下来会有更多相关教程,敬请关注!您也可以在评论者留下你的经验和建议。

未发布 TWAIN扫描组件Dynamic .NET TWAIN v7.1发布,将图像保存为多页TIFF
by Harriet666 keys 分享 1498807336769
Dynamic .NET TWAIN是为桌面应用程序设计的.NET控件,适用于C#和VB.NET。这是一个能让你从任何TWAIN设备中(如scanners, digital cameras,等)获取图像的托管代码SDK。拥有精心设计的用户界面以及内置向导模式,Dynamic .NET TWAIN易于使用,只需要几行代码即可完成TWAIN设备相关工作,并且兼容TWAIN Specification V1.9(比如:三图像传输模式等)。高级采样支持保证了Dynamic .NET TWAIN的易用性,低阶功能则使其在即使最为苛刻的应用程序中也能保持灵活性和可控性。
 
用于.NET应用程序的简单有效的TWAIN扫描组件——Dynamic .NET TWAIN v7.1版本现已可用。
c5851770a2fd4e6d8d9752aedf37113fojpg
 
新版本亮点:
  • 添加了SaveAsTIFF方法可以将图像保存为多页TIFF(以字节为单位)。
  • 优化了Webcam模块中视频流的内存管理。
  • 修正了PDF库中输出PDF的解析度固定为72 DPI的问题。
Dynamic .NET TWAIN 7.1点击下载>>>

Dynamic .NET TWAIN v7.1更新内容
新增
  • 添加了SaveAsTIFF方法可以将图像保存为多页TIFF(以字节为单位)。
改进
  • 删除未使用的命名空间和类。
  • 降低Webcam模块中视频流的内存消耗。
  • 改进了演示指南程序和示例的界面。
修复
  • 修复了在Webcam模块中设置“变焦值”引发错误的问题。
  • 修复了PDF库中输出PDF的分辨率固定为72 dpi的问题。
  • 修复了在Viewer模块中选择区域时鼠标闪烁的问题。
  • 其他小的修改和调整。

 近期热门 - 点击最多
  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. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  3. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  4. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  5. Node.js 打印vite react+go项目目录树
  6. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  7. Windows与Mac通过git ssh和rsync实现文件共享互传
  8. Windows与Mac通过git ssh和scp实现文件共享互传
  9. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  10. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件

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

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

OnceOA