本篇文章给大家谈谈系统接口设计图片参数表,以及系统接口设计说明书对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享系统接口设计图片参数表的知识,其中也会对系统接口设计说明书进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
前后端分离系统接口设计思路
直接进入正题
系统接口设计图片参数表,总得分为两块
系统接口设计图片参数表,一块是表结构
系统接口设计图片参数表,另一块为实现思路(仅供参考)
一、 表结构
1、 菜单表(right)
字段 类型 注释
id long 主键
name varchar 名称
url varchar 地址
ico varchar 图标
tips varchar 提示信息
parentId long 上级菜单Id
level int 级别:1-3为菜单,4为按钮,5为接口
sort int 排序
2、 角色表(role)
字段 类型 注释
id long 主键
name varchar 名称
desc varchar 描述
code varchar 编码
sort int 排序
3、 角色菜单表(role_right)
字段 类型 注释
id long 主键
roleId long 角色ID
rightId long 菜单ID
4、 用户表(user)
字段 类型 注释
id long 主键
name varchar 姓名
account varchar 账号
password varchar 密码
5、 用户角色表(user_role)
字段 类型 注释
id long 主键
userId long 用户Id
roleId long 角色Id
5、 用户登陆记录表(login_token),过期时间由系统检测
字段 类型 注释
id long 主键
date date 登陆日期
token varchar token
userId long 用户Id
二、 实现思路
1、前端
用户登录,返回token;
根据token查询用户菜单信息,并返回json数据,存入客户端;
根据菜单数据,动态显示菜单,按钮
前端跳转页面,需要在路由中加入前端拦截,读取本地权限数据进行匹配
用户访问接口,后端进行校验
2、后端
编写拦截器,拦截所有url,过滤掉特殊不需要拦截
系统接口设计图片参数表的url;
获取请求中
系统接口设计图片参数表的接口地址,不包含参数;
获取当前请求token,查询用户角色;
根据角色查询所有的接口,拿当前请求的接口进行比对,存在则放行,不存在,则返回错误信息
以上仅为个人设计思路,如有不好的地方,欢迎指正。
求操作系统接口:Windows命令接口 设计(C++编的) 谢谢
基于XML
系统接口设计图片参数表的配置文件访问接口设计和实现(1)
目录
摘要
配置文件结构
XmlConfigReader类的实现
XmlConfigReader类的使用
摘要
在进行程序开发过程中,经常要将一些程序设置/使用的信息储存起来.由于这些信息和程序的设置/使用相关,与程序有相当的独立性,所以不可能硬编码到程序中.在这个时候我们选择使用基于Xml的配置文件进行存储.Microsoft的.NET Framework提供
系统接口设计图片参数表了一系列的基于.Config文件的读取的类,如System.Configuration 命名空间提供的AppSettings等类.但是此命名空间提供的类只能对配置文件进行读取,不能进行设置.所以在这里,我们实现自己的一个基于Xml的配置文件的类XmlConfigReader/XmlConfigWriter.
配置文件的结构
为了达到与原有的,系统自带的(.Config)配置文件的兼容性,我们选择使用类似.Config 文件的结构.示例如下:
<?xml version="1.0" encoding="utf-8" ?
<configuration
<appSettings
<add key="TimeOut" value="5000"/
<add key="UserName" value="client7" /
<add key="FileServerPort" value="8050" /
<add key="SpliteCharsForCMD" value=":"/
<add key="SpliteCharsForItem" value=";"/
<add key="SpliteCharsForSubItem" value=","/
</appSettings
<SockBaseSettings
<addd key="ServerIP" value="localhost"/
</SockBaseSettings
</configuration
所有的要设置的信息都放在Configuration节点的子节点(如appSettings/SockBaseSettings)的子节点中,这种结构有助于将不同的设置的信息进行归类/统一.结构和系统的.Config结构基本类似.这样就可以很方便的将此自定义的结构转为.Config文件.
XmlConfigReader类的实现
现在文件的基本结构已完成了,现在就开始编码,完成XmlConfigReader.
由于配置文件是以文件的形式放在硬盘上面的,所以这个XmlConfigReader类在解析Xml文件前得得到文件的路径.
public class XmlConfigReader
{
private string _filepath;
public XmlConfigReader(string filepath){
_filepath = Path.GetFullPath(filepath).ToUpper();
}
}
好,现在可以得到文件路径了.然后就是对配置文件进行解析了.在这里,我们选用.NET Framework提供的System.Xml命名空间中的轻量级的XmlTextReader来对配置文件进行解析.对应的XmlConfigReader中的函数定义如下:
public string Process(string sectionName,string key){
bool inConfiguration = false;
bool inSection = false;
string values;
XmlTextReader reader = new XmlTextReader(_filepath);
while( reader.Read()){
if( reader.IsStartElement()){
if( reader.Prefix == String.Empty)
{
if( reader.LocalName == "configuration")
{
inConfiguration = true;
}
else if( inConfiguration == true){
if( reader.LocalName == sectionName){
inSection = true;
}
else if( inSection reader.LocalName == "add"){
if( reader.GetAttribute("key") == null || reader.GetAttribute("value") == null)
{
throw new Exception(sectionName + " key or value is null");
}
if( reader.GetAttribute("key") == key){
values = reader.GetAttribute("value");
break;
}
}
}
}
}
}
reader.Close();
return values;
}
通过XmlTextReader的Read()函数对Xml文件中的节点进行遍历.同时先判断是否属于configuration节点中,再判断是否属于相应的sectionName中.只有在这两部分同时成立的时候才判断是否是相应的Key.如果是,得到其Value,并返回.
XmlConfigReader类的使用
好了,现在通过XmlConfigReader可以对配置文件进行读取了,这里我们看看实际使用的代码:
public class TestXmlConfigReader{
public void GetValues(){
XmlConfigReader reader = new XmlConfigReader(@"AppConfig.xml");
String Temp;
// Get appSettings username value
Temp = reader.Process("appSettings",”UserName");
// Get SockBaseSettings ServerIP value
Temp = Reader.Process(“SockBaseSettings”,”ServerIP”);
}
}
总结
通过XmlConfigReader类,我们可以很方便的自定义我们自己的配置文件.
基于XML的配置文件访问接口设计和实现(2)
目录
摘要
XmlConfigWriter类的实现
XmlConfigWriter类的使用
摘要
在进行程序开发过程中,经常要将一些程序设置/使用的信息储存起来.由于这些信息和程序的设置/使用相关,与程序有相当的独立性,所以不可能硬编码到程序中.在这个时候我们选择使用基于Xml的配置文件进行存储.Microsoft的.NET Framework提供了一系列的基于.Config文件的读取的类,如System.Configuration 命名空间提供的AppSettings等类.但是此命名空间提供的类只能对配置文件进行读取,不能进行设置.所以在这里,我们实现自己的一个基于Xml的配置文件的类XmlConfigReader/XmlConfigWriter.
XmlConfigWriter类的实现
由于要对配置文件进行写入,而且可能写入的次数比较多.所以这里我们不使用轻便的XmlTextWriter,使用XmlDocument.XmlDocument可以在内存中修改所有的Xml的节点,只有等到显式的调用Save函数的时候才会保存Xml文件.在有大量修改的时候,性能要好一些.
同样的,先实现XmlConfigWriter的构造函数
public class XmlConfigWriter
{
private string _filepath;
private XmlDocument doc ;
public XmlConfigWriter(string filepath)
{
_filepath = Path.GetFullPath(filepath);
doc =new XmlDocument();
doc.Load(_filepath);
}
}
通过构造函数,将配置文件的路径传进去,同时调用XmlDocument的Load方法,将此文件加载到内存中.
这里我们使用的是XmlDocument类.它实现 W3C 文档对象模型 (DOM) 级别 1 核心 (Level 1 Core) 和核心 DOM 级别 2 (Core DOM Level 2)。DOM 是 XML 文档的内存中(缓存)树状表示形式
系统接口设计图片参数表,允许对该文档的导航和编辑.通过XmlDocument,我们就可以很方便的在内存中直接操作节点.
.对配置文件的写入,不外忽三种,一种就是新插入一个节点,一种就是对现有节点的修改,最后一个就是删除现有的节点.我们首先从插入开始入手.代码如下:
private XmlNode CreateXmlNode(string localname){
return doc.CreateNode(XmlNodeType.Element,localname,"");
}
private XmlAttribute CreateXmlAttribute(string localname){
return doc.CreateAttribute("",localname,"");
}
public void AddSection(string section){
XmlNode secNode = doc.SelectSingleNode("/configuration/"+section);
if(secNode != null){
return;
}
doc.DocumentElement.AppendChild(CreateNode(section));
}
public void AddKey(string section,string key,string value){
XmlNode secNode = doc.SelectSingleNode("/configuration/"+section);
if( doc.SelectSingleNode("/configuration/" + section + "/add[@key=\"" + key + "\"]") != null)
{
return;
}
XmlNode chi = CreateXmlNode("add");
XmlAttribute att = CreateXmlAttribute("key");
att.Value = key;
chi.Attributes.Append(att);
att = CreateXmlAttribute("value");
att.Value = value;
chi.Attributes.Append(att);
secNode.AppendChild(chi);
}
对于配置文件的插入,有两种情况,一个就是插入一个新的Section节点(即appSettings/SockBaseSettings这样的节点),一个就是在当前的Section节点下面插入一个新的add节点.在上面的代码中,对于插入节点的操作,都是首先通过doc的SelectSingleNode函数来判断是否已存在此同名节点,如果存在,则直接return,避免创建同名的节点.但是,由于在最终使用的add节点是分属于不同的Section节点的,所以只是判断在同一个Section节点下面的此节点不能同名.
如果不存在同名的节点,就通过secNode.AppentChild函数将此新建的(通过CreateXmlNode函数)节点加入到doc对象中.同时,对于add节点,通过CreateXmlAttribute函数及XmNode.Attributes.Appent函数将其key / value属性加入到此节点中.这样,插入操作就完成了.
接着我们来完成删除操作.删除操作直接通过XmlDocument的SelectSingleNode得到目标节点的父节点,再通过XmlNode.RemoveChild操作将其删除.代码如下:
public void DeleteSection(string section){
XmlNode secNode = doc.SelectSingleNode("/configuration/"+section);
doc.DocumentElement.RemoveChild(secNode);
}
public void DeleteKey(string section,string key){
XmlNode secNode = doc.SelectSingleNode("/configuration/" + section + "/add[@key=\"" + key + "\"]");
if(secNode != null)
{
secNode.ParentNode.RemoveChild(secNode);
}
}
现在开始修改操作.对于修改操作,思路是这样的,首先通过XmlDocument的SelectSingleNode搜索,看是否有满足条件的节点.如果没有,直接return,如果存在,则分两情况.对于add节点,只是直接修改其value属性.对于Section节点,则是通过遍历把其下所有的子节点(add节点)得到,再把此Section节点删除,再生成一个新的节点(这个新的节点的Name就为要设置的值),再把得到的所有子节点再赋给这个新的节点.代码如下:
public void ModifySection(string oldSection,string newSection){
XmlNode secNode = doc.SelectSingleNode("/configuration/"+oldSection);
XmlNodeList list = secNode.ChildNodes;
doc.DocumentElement.RemoveChild(secNode);
secNode = doc.CreateNode(XmlNodeType.Element,newSection,"");
foreach( XmlNode i in list){
secNode.AppendChild(i);
}
doc.DocumentElement.AppendChild(secNode);
}
public void ModifyKey(string section,string key,string value){
XmlNode secNode = doc.SelectSingleNode("/configuration/" + section + "/add[@key=\"" + key + "\"]");
if(secNode != null)
{
secNode.Attributes["value"].Value = value;
}
}
好了,插入,修改,删除操作到现在基本完成了,但是现在还只是在内存中进行操作,还不是对实际的文件进行操作.这个时候,我们就还得通过XmlDocument.Save函数把内存中修改好的Xml文件写入到文件中去.代码如下:
public void Save(){
doc.Save(_filepath);
}
public void Save(string filepath)
{
doc.Save(filepath);
}
XmlConfigWriter类的使用
使用方法很简单.先产生一个XmlConfigWriter对象,通过构造函数把配置文件传进去,再通过Add/Modify/Delete等函数进行操作.代码如下:
XmlConfigWriter Writer = new XmlConfigWriter(@”appconfig.xml”);
Writer.AddSection(“appSettings”);
Writer.AddKey(“appSettings”,”ServerIP”,”localhost”);
Writer.ModifyKey(“appSettings”,”ServerIP”,”127.0.0.1”);
Writer.ModifySection(“appSettings”,”SockBaseSettings”);
Writer.DeleteKey(“SockBaseSettings”,”ServerIP”);
Writer.DeleteSection(“SockBaseSettings”);
Writer.Save();
总结
通过编写XmlConfigWriter,我们学会使用XmlDocument的使用.
基于XML的配置文件访问接口设计和实现(3)
目录
摘要
增加缓存支持
增加配置文件监视
增加ConfigurationSettings类
摘要
前面的两篇中,我们实现了XmlConfigReader和XmlConfigWriter的基本功能.由于XmlConfigReader的实现方式是每请求一次,就去解析配置文件一次,性能很低下.同时,为了更方便使用,我们增加一个ConfigurationSettings类,用来调用XmlConfigReader和XmlConfigWriter,使之用起来和System.Configuration中的类使用方式一样.
增加缓存支持
由于XmlConfigReader的实现方式是请求一次,解析配置文件一次,而且配置文件的信息在程序运行的时会大量使用,这样子显然效率太低.因此,这里就要使用到缓存.
缓存,其实就相当于一个静态的变量,在整个程序运行时是唯一的,通过这样的一个变量,把信息存储到这个变量里面,在程序的其它地方就可以直接得到这个信息了.从而避免了频繁的解析配置文件.这里,我们选择使用Hashtable做为缓存变量.
在MSDN中,我们可以查到System.Configuration命名空间中的AppSettings类返回的是一个NameValueCollection(Key/Value键值对).为了方便使用,我们将配置文件解析后的信息也存成NameValueCollection这样的集合.
这样定义好了后,对于Hashtable中的Key设置为Section节点的名字(appSettings/SockBaseSettings),其Value值即为此节点的所有子节点的NameValueCollection类的对象.
修改代码.给XmlConfigReader增加一个静态Hashtable变量,并修改相关函数.把得到的信息直接以NameValueCollection的形式存入到此Hashtable中.
private static Hashtable confTypes = new Hashtable();
private string rootname;
public void Process(){
XmlTextReader reader = new XmlTextReader(_filepath);
while( reader.Read()){
if( reader.IsStartElement()){
#region Analyze the files
if( reader.Prefix == String.Empty)
{
if( reader.LocalName == "configuration")
{
inConfiguration = true;
}
else if( inConfiguration == true){
if(reader.LocalName == "add")
{
if( reader.GetAttribute("key") == null || reader.GetAttribute("value") == null)
{
throw new Exception(rootname + " key or value is null");
}
AddKey(tables,reader.GetAttribute("key"),reader.GetAttribute("value"));
}
else
{
rootname = reader.LocalName;
}
}
}
#endregion
}
else if ( reader.LocalName == "configuration"){
inConfiguration = false;
}
}
reader.Close();
}
private void AddKey(string key,string value){
NameValueCollection collection ;
if(confTypes.ContainsKey( rootname )){
collection = (NameValueCollection) confTypes [rootname];
}
else{
lock(confTypes.SyncRoot){
collection = new NameValueCollection();
confTypes.Add( rootname,collection);
}
}
collection.Add(key,value);
}
上面代码中,我们修改了Process函数.把原来的直接return结果的地方改成调用AddKey函数.通过一个类成员 rootname临时储存当前的SectionName,通过AddKey把得到的Key/Value加入到Hashtable中.
现在这样修改后,就不能直接通过Process得到我们想到得到的Key的Value了.所以我们再写一个函数,
public NameValueCollection GetCollection(string SectionName){
if( confTypes.ContainsKey(SectionName)){
return (NameValueCollection)confTypes[SectionName];
}
else{
throw new Exception(confName + " is not found in XmlConfiguration files");
}
}
这里,我们直接通过SectionName得到此节点所有的子节点的NameValueCollection集合.这样,我们就可以得到我们想要的值了.
增加配置文件监视
上面的代码实现了配置文件的缓存.大大提高了灵活性.但是存在一个问题,就是,如果配置文件修改了,这个缓存不会自动更新.
要解决这个问题,我们得使用FileSystemWatcher这个类,用来订阅文件修改消息,进而更新缓存.由于在第一次解析前就要把此配置文件加入到监视文件表中,所以我们修改XmlConfigReader,增加一个静态的FileSystemWatcher,用来保存监视文件的对象,增加一个静态的Bool值表明是否修改过.再修改构造函数,使配置文件在一开始就加入到监视列表中.代码如下:
Private static FileSystemWatcher watch = new FileSystemWatcher();
Private static bool isModify = true;
public XmlConfigReader(string filepath){
_filepath = Path.GetFullPath(filepath).ToUpper();
watch.IncludeSubdirectories = false;
watch.Path = Path.GetDirectoryName(filepath);
watch.NotifyFilter = NotifyFilters.Size | NotifyFilters.LastWrite;
watch.Filter = Path.GetFileName(filepath);
watch.Changed += new FileSystemEventHandler(Change_Even);
watch.EnableRaisingEvents = true;
}
由于是通过事件机制实现文件修改通知的,所以我们还要实现Chane_Even这个函数,通过这个函数修改isModify的值.
private void Change_Even(object sender, FileSystemEventArgs e){
isModify = true;
}
这样子,对于配置文件的监视的代码就完成了,现在就是修改我们的GetCollection代码的时候了.
修改后的代码如下:
public NameValueCollection GetCollection(string SectionName){
if( isModify ){
lock(confTypes.SyncRoot){
confTypes.Clear();
Process();
}
isModify = false;
}
if( confTypes.ContainsKey(SectionName)){
return (NameValueCollection)confTypes[SectionName];
}
else{
throw new Exception(confName + " is not found in XmlConfiguration files");
}
}
到现在,整个XmlConfigReader的代码已完成了,可以实现对文件的监视,从而动态修改缓存中的值.
增加ConfigurationSettings类
为了便于使用,我们增加了一个ConfigurationSettings的类,使用他的用法和System.Configuration命名空间中的类的用法一样.代码定义如下:
public class ConfigurationSettings : XmlConfigWriter
{
private static string _filepath = @"AppConfig.xml";
public static string DefaultFilePath
private static XmlConfigReader reader;
{
get{return _filepath;}
set{_filepath = Path.GetFullPath(value);}
}
public static NameValueCollection AppSettings
{
get{
if( reader == null){
reader = new XmlConfigReader(DefaultFilePath);
}
return reader.GetCollection("appSettings");
}
}
public static NameValueCollection GetConfig(string sectionName){
get{
if( reader == null){
reader = new XmlConfigReader(DefaultFilePath);
}
return reader.GetCollection(sectionName);
}
}
系统概要设计的接口设计
接口设计包括三个方面:
一、用户接口
用来说明将向用户提供的命令和它们的语法结构,以及软件的回答信息。
二、外部接口
用来说明本系统同外界的所有接口的安排包括软件与硬件之间的接口、本系统与各支持软件之间的接口关系。
三、内部接口
用来说明本系统之内的各个系统元素之间的接口的安排
tcl43v8F系统参数
分类如下:
特色分类:LED电视,智能电视,全高清电视。发布时间,2020年。屏幕尺寸,43英寸。屏幕比例,16:9。屏幕分辨率,1920×1080。高清格式,1080p。观看距离,2、0-2、5米。背光性能,LED背光源。图像参数,逐行扫描。支持逐行扫描:屏幕响应速度:8ms。
音效性能:SRS环绕:杜比+DTS双解码。扬声器:2个。输入输出:HDMI接口:2个。USB接口:1个。
其他接口类型:网络接口,1×AV输入,1×RF天线输入。硬件(功能)参数:CPU:四核ARMCortexA53。GPU:四核Mali-450。内存容量:1GB。存储空间:8GB。操作系统:Android系统。智能分享:蓝牙模块。网络功能:有线/WiFi。
外观参数:外观设计(颜色)。安装孔距:200×200。边框材质:ABS+GF。边框宽窄:上/下/左右(12、58mm/12、58mm/21、57mm)黑色。机身尺寸:含底座:968、2×624、2×252、6mm。不含底座:968、2×565、5×84mm。
重量:含底座:6、8kg,不含底座:6、7kg。包装尺寸:968、2×565、5×84mm。包装重量:9、0kg。其他参数:电源要求:220V/50Hz。
能效等级:二级能效。功耗:75W。休眠功耗:0.5W。随机附件:电视机身、遥控器、电源线、底座、说明书
苹果12配置参数表图片
苹果12配置参数表图片如下:
处理器:iPhone 12搭载A14仿生芯片,6核心设计,有2个性能核心和4个能效核心,该CPU采用台积电5nm制程工艺制造,最高频率为3.0GHz。CPU内部集成4核心图形处理器(GPU),以及16核神经网络引擎。
显示屏:iPhone 12机身正面为一块6.1英寸超视网膜XDR显示屏,OLED材质,具有2532 x 1170像素分辨率,像素密度为460 ppi。
图形图像显示效果方面,支持HDR显示,该屏拥有2000000:1的高对比度,亮度方面,支持625尼特最大亮度,1200尼特最大亮度。色彩方面,支持广色域显示显示,并且支持原彩显示。
摄像头:iPhone 12前置一个摄像头,后置两个摄像头。后置1200W像素主摄镜头和1200W像素超广角镜头。其中主摄光圈/1.6,超广角镜头光圈/2.4,后置摄像头支持光学图像防抖功能,以及2倍光学变焦和最高可达5倍数码变焦。
视频方面,后置摄像头支持视频光学图像防抖功能、视频快录功能、音频变焦和立体声录音功能;可录制24 fps、25 fps、30 fps或60 fps 4K视频,以及25 fps、30 fps或60 fps 1080P全高清视频。
前置原深感前置摄像头,/2.2光圈,可拍摄1200W像素照片,支持先进的焦外成像和景深控制,支持六种效果(自然光、摄影室灯光、轮廓光、舞台光、单色舞台光和高调单色光);支持影院级视频防抖功能、慢动作视频和动话表情和拟我表情,可录制4K视频和全高清视频。
防水性能:iPhone 12支持IP68级别防水、防尘,可在6米深的水下停留时间最长可达30分钟。iPhone 12并非专业防水手机,建议手机在日常使用过程中,注意防水防潮。
网络:iPhone 12是一款5G全网通手机,支持中国联通、中国移动和中国电信的通信网络;该机可以安装两张nano-SIM,并同时接收网络信号。
机身外观:iPhone 12共发布了蓝色,绿色,红色,白色,黑色,紫色六款机身颜色,机身为超瓷晶面板,航空级铝金属边框。
iPhone 12机身尺寸为146.7毫米*71.5毫米*7.4毫米(长宽厚),机身重量为162克,较为轻薄;该机正面为刘海屏(全面屏)设计,顶部有摄像头,背面左上方有两个摄像头,机身底部为闪电接口,可用于充电和数据传输。
存储容量:iPhone 12共有64GB、128GB、256GB等存储容量机型,随机搭载4GB运行内存。较高的运行内存,用户可直观体验到更流畅的运行速度,存储容量越大,手机则可以存储更多的图片、视频或者是音乐。
续航:iPhone 12内置一块2815mAh锂离子充电电池,支持MagSafe无线充电和Qi无线充电,有线充电方面,可通过USB连接至电脑或电源适配器充电。iPhone 12支持快速充电,使用20W电源适配器,可在30分钟将手机电量至多充至50%。
其它功能:iPhone 12支持常用的WIFI6、蓝牙、NFC等功能,WIFI6可提供更快的无线网络接入速率,NFC可用于乘坐公共交通时的支付功能,蓝牙可用于外部设备的配对连接使用,例如蓝牙音箱等。
产品沿革
美国西部时间2020年10月13日上午10点(北京时间2020年10月14日凌晨1点),苹果公司ApplePark总部园区举行2020年的第二场秋季发布会,iPhone 12以线上直播的形式发布。
2020年10月16日,iPhone 12国行版开启预购。
2020年10月23日,iPhone 12开始发售。
2021年4月21日凌晨,在2021苹果春季新品发布会上库克表示,推出全新紫色iPhone 12。
2022年7月10日,据新浪科技消息,因为侵犯了爱立信相关专利,哥伦比亚法院裁定禁止进口和出售支持5G网络的iPhone 12。
关于系统接口设计图片参数表和系统接口设计说明书的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
系统接口设计图片参数表的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于系统接口设计说明书、系统接口设计图片参数表的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~