未找到

未发布 条形码控件Dynamsoft Barcode Reader v5.1发布,新增JavaScript版本
by Harriet666 keys 分享 1497254762139
Dynamsoft Barcode Reader SDK一款多功能的条码读取控件,只需要几行代码就可以将条码读取功能嵌入到Web或桌面应用程序,能支持多种图像文件格式以及从摄像机或扫描仪获取的DIB格式。
 
Dynamsoft Barcode Reader 5.1最新版点击下载>>>
 
v5.1更新内容(此次更新仅适用于Windows和JavaScript版本)

新增:

  • 添加了JavaScript版本,支持在客户端的JavaScript中读取条形码。它曾经作为我们基于浏览器的文档扫描SDK - Dynamic Web TWAIN的附件。它现在是一个单独的版本,能够在你的应用程序中无缝嵌入条形码读取功能与Dynamic Web TWAIN在线文档扫描和Dynamsoft Camera SDK网络摄像头捕获。

修复:

  • 【Windows版本】修复了当读取1D条形码时使用去模糊算法导致错误结果点的问题。
  • 其他小的修复和调整。

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

1
【示例教程】如何用LEADTOOLS 实现一个简单的STORE SCU存储客户端
by Harriet666 keys 分享 1519722017492
leadtools提供了封装后的dicom插件,可以非常方便的开发出dicom通讯部分的组件,本篇教程讲解如何使用相关的接口进行代码编写,实现Dicom协议中的CStore存储操作。
 
1.用vs2015创建一个winform项目,引用下面的dll,并在代码里引用
using Leadtools;
using Leadtools.Dicom;
using Leadtools.Dicom.Scu.Common;
using Leadtools.Dicom.Scu;
using Leadtools.MedicalViewer;
using System.Net;
using System.IO;
 
2.创建下面的对象
// CStore highlevel 客户端和服务端对象
        private StoreScu _cstore;
        private DicomScp _server = new DicomScp();
 
3.初始化服务器和客户端参数,
本次用的服务器即是开发包中运行pacs服务器设置程序后,创建的L19_PACS_SCP64
private void initServer() {
            _server = new DicomScp();
            _server.AETitle = "L19_PACS_SCP64";
            _server.PeerAddress = IPAddress.Parse("10.32.1.75");
            _server.Port = 534;
            _server.Timeout = 30;
        }
private void initCstore() {
            _cstore = new StoreScu();
            _cstore.AETitle = "L19_CLIENT64";
            _cstore.HostPort = 1030;
            //存储成功后
            _cstore.AfterCStore += _cstore_AfterCStore;
        }
 
4.执行存储命令
private void 存储ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string filename ="D:\\Xa.dcm";
            _cstore.Store(_server, filename);

        }

保存成功后即可在服务器管理器中,或者使用客户端查询已经存储的图像。
未发布 专业的格式转换工具pdf2cad发布v11,支持当前所有的Windows和Mac操作系统
by Harriet666 keys 分享 1491899188681

pdf2cad是一款可将PDF文件转换成CAD格式的转换工具。仅需几秒钟,便可将所提取的准确图形在常规的CAD工具中进行修改,如AutoCAD, TurboCAD和MicroStation。pdf2cad可将PDF工程图输出为DWG, DXF和HPGL格式。pdf2cad格式转换工具适用于Windows或Mac OS X操作系统。

pdf2cad v11提供了许多新功能和增强功能,包括64位版本,支持所有当前的Windows和Mac操作系统,处理受密码保护的PDF文件,更多地控制图像,灵活的页面编号,其他方法来分隔图层等等。

【pdf2cad点击下载>>>】

pdf2cad v11更新内容:


输入选项
  • pdf2cad v11提供了一个新的选项来指定受密码保护的PDF文件。
pdf2cad
输出选项
  • 在输出文件名中定义页码的新选项
  • 使用文件名作为目录名称的新选项
pdf2cad
文本选项
  • 支持Unicode字符集
  • 提升处理未知字符编码的能力
格式
  • 增加DXF / DWG格式的英寸作为单位选项
分层
  • 基于实体类型的图层
  • 改进嵌套分层和名称验证
  • 将每个图层转换为单独文件的新选项(仅限DXF)
pdf2cad
比例选项
  • 使用mm、英寸、英尺和米的新选项来定义比例
pdf2cad
图像选项
  • 可忽略小图像或裁剪后将其转换为颜色线
  • 将图像对象移动到背景的新选项
  • 如果PDF文件包含IMAGE对象,则显示警告消息
pdf2cad
综合
  • 改进字体警告处理
  • 修复和改进DXF / DWG格式
  • 增强PDF解释器
  • 新的64位版本pdf2cad 
  • 支持最新的操作系统版本,包括Windows 10.0和Mac OS X Mavericks
  • pdf2xxx CL(Windows)支持Unicode文件名
未发布 解析企业使用开源软件的潜在风险
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万元......更多惊喜等您来探索!

未发布 Oracle再次被曝漏洞,影响33万用户
by Harriet666 keys 分享 1517562136241

来自ERPScan公司的安全专家们发现了这个编号为CVE-2018-2636的漏洞。这个漏洞来自Oracle MICROS系统内的销售点(Point-of-Sale)终端,可能被利用来从硬件内无需验证地读取敏感资料。

ERPScan发布的漏洞分析内这样写道:“CVE2018-2636标记了一个Oracle MICROS系统内的文件夹遍历时暴露出的漏洞。如果公司内部有人得到了某个关键文件夹的路径,他就能从一台终端中偷取许多关键的资料,包括服务日志以及一些包含着用户名和密码的信息,甚至可以使用这些密码去连接数据库,获得更多关于服务器端之类的信息。”

“攻击者们能够获得数据库用户名以及哈希过后的密码,将密码暴力破解然后获得数据库内部商业资料的所有权限。而且还有许多不同的利用这个漏洞的攻击方式,导致整个MICROS系统处在危险之中。”

Oracle的MICROS系统在世界范围内拥有超过330000的现金注册用户,涵盖了许多食物卖场(200000+)以及酒店(30000)。

研究者还解释道,对一个本地攻击者来说要获取到MICROS销售点终端的URL路径是很简单的。

例如,他可以找到一个商场的电子秤或者其他使用RJ45点硬件,将其连接到Raspberry PI(树莓派),然后扫描整个内部网络。另一个选项是可以通过这些暴露在因特网上的设备来定位。截止本稿完成之时,共有139个MICROS销售点系统暴露在因特网上,其中大多数位于美国及加拿大。

Oracle33

这并不是MICROS首次遭到质疑,2016年时就曾经有黑客通过客户售后支持中心入侵MICROS系统。

分析报告最后总结道:“如果你想保护你的系统免受网络攻击的危害,你必须持续地保持更新,安装所有安全补丁。在这个案例中,特指Oracle在2018年1月的更新。”

未发布 扫描识别控件Dynamic Web TWAIN发布v13.1,改进HTTPUpload方法
by Harriet666 keys 分享 1503480456565
Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。然后用户可以编辑图像并将图像保存为多种格式,用户可保存图像到远程数据库或者SharePoint。这个TWAIN控件还支持上传和处理本地图像。
 
Dynamic Web TWAIN v13.1点击下载>>>

8ef936a3a9b5499b94ef15c012a796b4ojpg

Dynamic Web TWAIN新版本亮点:


  • 改进了HTTPUpload方法,现在你可以一次上传多个文件。 用户可以扫描或加载多个文件,并将它们作为单独的文件一次性上传到服务器。
  • 添加了一个新的方法ConvertToBlob,它允许你将图像转换为Blob。
  • 你可以使用优化的SetHTTPHeader方法从服务器端下载文件时设置HTTP标头。

Dynamic Web TWAIN v13.1更新内容


新增:
  • [仅限HTML5]添加ConvertToBlob API以返回指定文件类型中指定索引的Blob。
改进:
  • [仅限HTML5]改进了SetHTTPFormField API,以便能够在HTTP窗体中设置除字符串之外的Blob。
  • [仅限HTML5]改进了HTTPUpload API,以便能够上传SetHTTPFormField设置的二进制数据。
  • [仅限HTML5]改进了SetHTTPHeader API以支持HTTPDownload(Ex)方法。
  • [仅限HTML5]为CSS中使用的所有名称添加前缀,以避免可能的冲突。
  • [仅限HTML5]浏览器和服务器之间的通信性能大大提高。
修复:
  • 修复了没有卸载时无法使用方法“Load”在页面上初始化SDK的错误。
  • 修复了在循环中异步完成上传操作则不起作用的错误。
  • 修复了按百分比设置查看器大小时出现的错误。
注意:
  • 该升级版本的ActiveX版本保持不变。
未发布 Edraw Office Viewer component教程(二):将Excel嵌入VB 6并使之自动化
by Harriet666 keys 分享 1494475186338
Edraw office viewer component对于开发人员来说是一个将Microsoft Excel电子表格嵌入到vb.net应用程序中的简单可靠的解决方案。
 
使用Edraw office viewer component,vb开发人员可以轻松地将一个现有的Excel电子表格嵌入到表单中,然后进行自动化。在加载表单时,开发人员可以使用Open方法从硬盘驱动器或服务器中加载* .xls、* .xlsx、* .xslm或* .cvs文件,并在窗口的某个区域中打开。Excel文件可以是只读、完全编辑或禁止保存等状态。开发人员还可以使用excel组件轻松实现excel自动化。
 
本文将演示如何逐步将Excel嵌入到VB中。如果你没有officeviewer.ocx文件,请先安装。

Office viewer component - 支持Word、Excel、PowerPoint、Visio和Project的vb6、vb.net项目

在VB 6中嵌入Excel组件

启动Visual Basic并创建一个新的标准项目。默认情况下创建Form1。
在“工具箱”面板中,右键单击空白区域。然后单击Component...
 
在弹出的对话框中,查看Edraw Office Viewer Component。
 
单击确定按钮。
Office Viewer Component便已添加到“工具栏”窗口中。

切换到VB 6窗口,然后添加组件。

该组件包括许多自定义Excel窗口的方法、事件和属性。
开发人员可以使用以下代码在Form_Load事件中打开一个excel文件。
Private Sub Form_Load()
EDOffice1.OpenFileDialog'EDOffice1.OpenWord 
“d:\ test.xlsx” 
'EDOffice1.Open“d:\ test.xls”,“Excel.Application” 
End Sub

为了保护Excel工作表不被最终用户修改,开发人员需要在DocumentOpened事件中添加以下代码。
Private Sub EDOffice_DocumentOpened()
EDOffice1.ProtectDoc 1'XlProtectTypeNormal 
End Sub
 
一些包含excel自动化的方法可用于创建或修改Excel数据。
bool ExcelAddWorkSheet(long Index); 
bool ExcelDeleteWorkSheet(long Index); 
bool ExcelActivateWorkSheet(long Index); 
长ExcelGetWorkSheetCount(); 
bool ExcelSetCellValue(long Column,long Row,BSTR Value); 
BSTR ExcelGetCellValue(长列,长行); 
bool ExcelSetRowHeight(long Row,double Height); 
bool ExcelSetColumnWidth(long Column,double Width); 
afx_msg bool ExcelDeleteRow(long Row); 
bool ExcelDeleteColumn(long Column); 
bool ExcelInsertRow(long Row); 
bool ExcelInsertColumn(long Column); 
bool ExcelInsertPageBreakInRow(long Row); 
bool ExcelInsertPageBreakInColumn(long Column); 
bool ExcelCopyToClipboard(); 
bool ExcelPasteStringToWorksheet(BSTR bstText);

 

使用Visual Basic自动化操作Excel

单击项目,然后单击引用。将显示“引用”对话框。向下滚动列表,找到Microsoft Excel object库(Microsoft Excel xx.x Object库),然后选择引用Excel。如果列表中没有正确的Excel Object库,请确认你是否安装了合适的Excel版本。
单击“确定”关闭“引用”对话框。
将CommandButton添加到Form1。
在Form1的代码窗口中,插入以下代码:
Private Sub Command1_Click()
 
Dim oXL As Excel.Application
Set oXL = EDOffice1.GetApplication()
Dim oWB As Excel.Workbook
Set oWB = EDOffice1.ActiveDocument()
Dim oSheet As Excel.Worksheet
Dim oRng As Excel.Range
Set oSheet = oWB.ActiveSheet
oSheet.Cells(1, 1).Value = "First Name"
oSheet.Cells(1, 2).Value = "Last Name"
oSheet.Cells(1, 3).Value = "Full Name"
oSheet.Cells(1, 4).Value = "Salary"
' Format A1:D1 as bold, vertical alignment = center.
With oSheet.Range("A1", "D1")
.Font.Bold = True
.VerticalAlignment = xlVAlignCenter
End With
' Create an array to set multiple values at once.
Dim saNames(5, 2) As String
saNames(0, 0) = "John"
saNames(0, 1) = "Smith"
saNames(1, 0) = "Tom"
saNames(1, 1) = "Brown"
saNames(2, 0) = "Sue"
saNames(2, 1) = "Thomas"
saNames(3, 0) = "Jane"
saNames(3, 1) = "Jones"
saNames(4, 0) = "Adam"
saNames(4, 1) = "Johnson"
' Fill A2:B6 with an array of values (First and Last Names).
oSheet.Range("A2", "B6").Value = saNames
' Fill C2:C6 with a relative formula (=A2 & " " & B2).
Set oRng = oSheet.Range("C2", "C6")
oRng.Formula = "=A2 & "" "" & B2"
' Fill D2:D6 with a formula(=RAND()*100000) and apply format.
Set oRng = oSheet.Range("D2", "D6")
oRng.Formula = "=RAND()*100000"
oRng.NumberFormat = "$0.00"
' AutoFit columns A:D.
Set oRng = oSheet.Range("A1", "D1")
oRng.EntireColumn.AutoFit
oXL.UserControl = True
End Sub
 
按F5运行项目。Excel将自动填充excel单元格。
自动化Excel时要注意的一点是Excel Macro Recorder。它仍然在Word 2007中,但隐藏在开发者功能区栏。
 
以上就是本次教程的全部内容,接下来会有更多相关教程,敬请关注!您也可以在评论者留下你的经验和建议。
未发布 MailBee.NET Objects显示HTML/纯文本邮件教程(二):在桌面应用程序中显示
by Harriet666 keys 分享 1502445139738
MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
 
MailBee.NET Objects介绍和试用点击查看>>>
 
本文主要介绍了在桌面应用程序中显示HTML/纯文本邮件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
如果你需要在桌面应用程序中以纯文本控件(如Memo)显示HTML消息,则应将HTML文本转换为纯文本。
C#
msg.Parser.HtmlToPlainMode = HtmlToPlainAutoConvert.IfNoPlain;
VB.NET
msg.Parser.HtmlToPlainMode = HtmlToPlainAutoConvert.IfNoPlain
 
上面的代码将邮件转换为纯文本。然后你可以显示如下的纯文本正文(假设textBox1是表单上的文本控件):
C#
textBox1.Text += msg.BodyPlainText;
VB.NET
textBox1.Text += msg.BodyPlainText
未发布 MailBee.NET Objects发送电子邮件(SMTP)教程八:使用多个SMTP服务器发送邮件
by Harriet666 keys 分享 1496655901549
MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
 
 
本文主要介绍了如何使用使用多个SMTP服务器发送邮件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
 
当开发人员不确定他将用于发送电子邮件的SMTP服务器是否可靠(例如,有时服务器崩溃)时,使用多个SMTP服务器则非常有用。例如,当使用单个SMTP服务器发送消息时,如果此SMTP服务器崩溃,则MailBee无法发送消息。但是,在使用多个SMTP服务器时,如果一个SMTP服务器崩溃,MailBee会根据这些服务器的优先级别尝试使用其他SMTP服务器。
 
因此,使用多个SMTP服务器增加了邮件发送成功的可靠性。MailBee.NET Objects允许开发人员管理SMTPSERVER对象的集合,存储在SMTP.SmtpServers的SMTP对象的属性。开发人员应调用SMTP.SmtpServers.Add方法向集合添加一个新的SmtpServer对象实例。这个方法有五个重载。第一个重载允许添加直接SmtpServer对象,如下所示:
C#:

SmtpServer smtp_srv = new SmtpServer();

smtp_srv.Name = "mail.domain.com";
smtp_srv.AccountName = "john_doe";
smtp_srv.Password = "secret";

oMailer.SmtpServers.Add(smtp_srv);

VB.NET:
Dim smtp_srv As SmtpServer =  New SmtpServer() 
 
smtp_srv.Name = "mail.domain.com"
smtp_srv.AccountName = "john_doe"
smtp_srv.Password = "secret"
 
oMailer.SmtpServers.Add(smtp_srv)
 
SMTP.SmtpServers.Add方法的下一次重载允许通过指定的服务器名称或相应的IP地址添加新的SMTP服务器,如下所示:
C#:

oMailer.SmtpServers.Add("127.0.0.1");
oMailer.SmtpServers.Add("smtp.company.com");

VB.NET:
oMailer.SmtpServers.Add("127.0.0.1")
oMailer.SmtpServers.Add("smtp.company.com")
 
此外,开发人员可以指定SMTP服务器的端口号和优先级。默认优先级为0(即最高),默认端口号为25。以下代码将两个具有不同优先级的SMTP服务器添加到集合中:
C#:

oMailer.SmtpServers.Add("127.0.0.1", 33, 1);
oMailer.SmtpServers.Add("smtp.company.com", 37, 2);

VB.NET:
oMailer.SmtpServers.Add("127.0.0.1", 33, 1)
oMailer.SmtpServers.Add("smtp.company.com", 37, 2)

此外,SMTP.SmtpServers.Add方法的以下重载允许通过指定的服务器名称(或相应的IP地址)、登录名和密码将SMTP服务器添加到集合中,如下所示:
C#:

oMailer.SmtpServers.Add("127.0.0.1", "dan_brown", "password");
oMailer.SmtpServers.Add("smtp.company.com ", "john_doe", "secret");

VB.NET:
oMailer.SmtpServers.Add("127.0.0.1", "dan_brown", "password")
oMailer.SmtpServers.Add("smtp.company.com ", "john_doe", "secret")
 
以上就是本次教程的全部内容,接下来会有更多相关教程,敬请关注!您也可以在评论者留下你的经验和建议。

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

未发布 .Net文档图像处理工具包GdPicture.NET发布v14.0.30,改进PDF/OCR生成速度
by Harriet666 keys 分享 1515058010029
GdPicture.NET是一款功能全面且可无限分发的文档图像处理工具包,开发者可将其作为.NET组件运用在他们的C#, VB.NET和CodeGear应用程序中,从而实现文档生成,显示,获取,编辑和打印等功能。在您的程序中使用GdPicture.NET,可实现文档显示,获取TWAIN扫描图像,进行图像处理,执行光学字符识别操作,其涵盖了所有主流领域的其他文件成像技术。
 
GdPicture.NET v14最新版下载>>> 

GdPicture.NET v14.0.30更新内容

  • 改进了检测空白页的准确性。
  • 改进了页面方向检测精度。
  • 改进了autodeskew引擎的准确性。
  • 改进了PDF/OCR生成的准确性和速度。
  • 小的错误修复。

 近期热门 - 点击最多
  1. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  2. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  3. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  4. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  5. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  6. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  7. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法
  8. Springboot+Gradle+Mysql+Jpa最简单实例教程
  9. SpringBoot+Spring6入门指南: 使用命令行快速搭建restful web api模板
  10. 如何通过 winax 的 ActiveXObject 或 Excel.Application 往 excel 中插入一张图片

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

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

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

OnceOA