JSF框架AOM3.0中替换树组件

架构:名词解释 DCS(Database Connection Services,数据库连接服务)是一种用于实现数据库连接的技术,它允许应用程序与数据库进行通信,以实现数据的存储、查询和管理。RDS支持多种主流的数据库引擎,如MySQL、SQL Server、PostgreSQL等,并提供了多种存储类型,如本地SSD盘、ESSD云盘和SSD云盘,以满足不同业务需求。CF2广泛应用于各种场景,如数据处理、消息通知、定时任务等,它为开发人员提供了一个便捷、高效的方式来处理简单的、事件驱动的任务。 阅读详情

JSF框架AOM3.0中替换树组件

转载请注明出处

去年年初项目刚刚开始的时候,ie9还没有出现,所以一切似乎很和谐的。但是自从ie9出现以后,各种不兼容的问题来了。

时间组件在ie9上面显示一半,树结构的节点点不开。各种问题铺面而来。

虽然说点击ie9的兼容模式可以实现组件的兼容。但是目前来看许多用户还是计算机文盲,或者半文盲状态,所以他们只有很少一部分人知道点击兼容去尝试。

没办法,最后交项目的时候了,只能硬着头皮改了。。。

这个树的兼容完全是没有抓手被逼着弄的,不像datepicker有例子参照。

废话少说,下面让大家看看我的实现代码:

------------------------------------------------------我是华丽分割线--------------------------------------------------------------------

 

第一步:去http://www.baby666.cn下载ztree的框架

首先在页面加入如下js方法,目的是让树组件显示在页面上,并注册相应的函数。
 
<script type="text/javascript">
    //<![CDATA[
        var setting = {
            data: {
                key: {
                    title:"t"
                },
                simpleData: {
                    enable: true
                }
            },
            callback: {
                onMouseDown: onMouseDown
            }
        };

        var jsonStr = '#{courseCategoryTreeBean.sessionToolsBean.treeAllCate}';
        var obj2 = eval('(' + jsonStr + ')');
        var zNodes = obj2;

        var log, className = {down:"dark", up:"dark", right:"dark"};
        function onMouseDown(event, treeId, treeNode) {
            var chs = treeNode.children;
            chs = chs +'';
            cateIdZtree.setValue(treeNode?treeNode.id:null);
            cateNamePathZtree.setValue(treeNode?treeNode.namePath:null);
            cateIdPathZtree.setValue(treeNode?treeNode.idPath:null);
        }
        Ext.onReady(function(){
            $.fn.zTree.init($(document.getElementById('treeDemo')), setting, zNodes);
        });
    //]]>

</script>

 

可以自行设置响应的方法,并需要自行编写json字符串。当然,在我看来,即使是自己编写json也比之前的写一个list传给AOM的ui要方便的多了。这个json串在例子里面有格式。你可以按照里面的格式来完成自己的json编写。

第二步:

将你所有填入树组件的地方替换成如下的table,当然,这里的table只是为了样式的修改。
       <table>
                <div class="content_wrap" style="height: 252px;width: 426px;margin: 0px;">
                    <div class="zTreeDemoBackground left" style="height: 252px;width: 426px;margin: 0px;">
                        <ul id="treeDemo" class="ztree"  style="height: 242px;width: 426px;margin: 0px;"></ul>
                    </div>
                </div>
       </table>

第三步:

引入相应的js和css文件。这里的引入文件也在上面下载的html代码的头中有写明。

 

经过上面的步骤就完成了替换。

这里说一下整个流程。是首先在页面写了一个div组件,因为jqueryztree目前只能替换html标记的id组件,所以我们可以替换了 这个div,但是这样就将之前写的方法全部丢失了,还好ztree里面有很多回填函数是可以使用的,而且在页面引入<ajax:>后也可以使用jsvar来传递参数,目前的我是这么做的。

这样,就彻底完成了整个流程


AOM金蝶入门 AOM金蝶控件开发指南,入门,供大家学习 立即下载

相关推荐

Flutter + shorebird 热更新+自定义cdn下载

本文介绍了如何优化Flutter热更新方案Shorebird在国内网络环境下的使用体验。Shorebird默认使用海外CDN存在下载慢、连接不稳定等问题,建议将补丁包上传至国内CDN(如阿里云OSS)。文章详细讲解了Shorebird环境配置、项目集成、构建发布流程,并重点说明了如何修改客户端代码实现自定义补丁下载逻辑。通过替换默认下载器,将补丁下载地址指向国内CDN,可显著提升下载速度和稳定性。这种方案既保留了Shorebird的热更新能力,又解决了国内网络环境下的痛点,适合国内企业部署使用。

sir_Hu的博客 769

华为立体运维-第一课(AOM服务介绍与监控特性详解)

应用运维管理(Application Operations Management缩写AOM)是以云上应用为中心的运维平台,为企业提供一站式立体运维平台,实时监控移动端 APP,Browser,网络,应用服务,中间件及云资源全链路的数百种运维指标,通过运维知识库和AIOps引擎快速发现并诊断一场,提高IT应用的可靠性和质量,保证用户的良好服务,降低IT总拥有成本(TCO) 1 采集管理...

张金玉的专栏 2989

MT5策略如何设置回测结果才能最接近实盘

摘要:在MT5回测中,选择"每笔分笔报价"模式最接近实盘交易,因其使用真实Tick数据模拟价格波动、点差和滑点。关键设置包括:下载高质量历史数据、合理设定点差和滑点、使用正常回测速度。该模式能准确测试挂单、止盈止损等策略,虽然速度较慢但结果最可靠,避免其他模式造成的失真,是评估交易策略表现的最佳选择。(149字)

weixin_38915451的博客 1877

JSF 3.0 DataTable 嵌套表单

我像实现一个功能,DataTabl中有一个list,想展现如图效果,可是列对不其,各位大侠是否有更好的方法。求解决。 代码如下, ...

zengye320的博客 324

从贝叶斯网络到结构因果模型:因果推理在可解释AI中的实践

在机器学习和数据分析领域,理解变量间的因果关系而不仅仅是统计关联,是构建可信赖、可解释系统的关键。概率图模型,特别是贝叶斯网络,通过有向无环图和条件概率表,能够高效地编码和推理变量间的条件依赖关系,广泛应用于医疗诊断、风险评估等场景。然而,贝叶斯网络主要刻画的是“是什么”的关联,难以回答“如果…会怎样”的因果问题。为了进行因果推断,需要引入结构因果模型和do-演算,它们通过定义结构方程和模拟干预操作,能够区分混杂效应,估计处理变量对结果变量的净因果影响。这一套方法论对于可解释人工智能至关重要,它能生成反事实

weixin_42168902的博客 379

如何下载最新版本的VMware Workstation

随着虚拟化技术的发展,VMware Workstation作为行业领先的桌面虚拟化软件,为用户提供了在单一物理计算机上运行多个操作系统的能力。本文将详细介绍如何从Broadcom支持网站下载最新的VMware Workstation Pro版本。

安呀智数据坊的博客 668

AOM组件规范(试行版)

AOM组件规范 1. 版本历史 2. 组件使用 2.1. 组件体系 2.1.1. 可视组件 2.1.2. 非可视组件 2.2. 组件类 2.2.1. 组件属性 2.2.1.1. 属性命名规则 2.3. 组件事件 2.3.1. UI事件 2.3.1.1. 在客户端侦听并响应UI事件 2.3.1.2. 在服务器端侦听并响应UI事件 2.3....

iteye_20029的博客 747

蓝牙芯片驱动开发-第11章第1题-WiFi蓝牙共存的关键策略有哪些

蓝牙芯片驱动开发-第11章第1题-WiFi蓝牙共存的关键策略有哪些

weixin_42162924的博客 30

aom2.3升级3.0后NoSuchMethodError

%AOM_HOME%/lib/elite.jar —&gt; %APUSIC_HOME%/lib/elite.jar %AOM_HOME%/lib/operamasks-comp.jar —&gt; %APUSIC_HOME%/lib/operamasks-comp.jar %AOM_HOME%/lib/operamasks-core.jar —&gt; %APUSIC_HOME%/lib...

iteye_13599的博客 172

Codex 桌面端自定义模型列表为空 — 修复记录

摘要:Codex桌面端首次启动正常,但二次启动后出现中文界面且模型列表丢失。问题根源在于Electron的Chromium持久化状态损坏,导致UI渲染异常。解决方案包括:1) 将config.toml中的模型路径改为绝对路径;2) 删除损坏的状态文件.codex-global-state.json;3) 清除Chromium用户数据目录AppData\Roaming\Codex\web。验证显示修改后模型功能恢复正常,重装无效的原因是卸载未清除用户数据目录。

猿小白的博客 1153

MAX30102心率血氧传感器原理图设计,已量产(e-Health传感器)

在最近的便携健康监测设备项目中,我们采用了集成算法的 MAX30102 心率血氧模块 —— 这类带内置 MCU 算法的传感器能直接输出心率 / 血氧数值,大幅降低了主控资源占用。但硬件电路的稳定性直接决定了 PPG 信号的采集精度,下面结合实际项目里的原理图,拆解下这个模块的设计细节。

不脱发的程序猿 1278

在AOM框架下开发的分工

在这篇帖子我介绍两个内容 第一:如何转到AOM框架开发? 第二:在AOM框架下开发的分工 最近接触了较多的独立软件开发商,不少技术总监对AOM的演示效果表示非常惊讶,但是由于对JSF框架本身应用还不是很了解,表达了对应用这种技术的一些疑问,其中除了JSF框架本身是否可以满足企业应用开发的各种需求的疑问外,还非常关注采用AOM所带来的对原有工作模式的改变。 我曾经参与过面向电子政务和...

cloudxman 431

USLE模型(1.2):LS因子的计算

基于USLE的甘南川西北土壤侵蚀研究。准备好30米分辨率的dem。

所有专家都曾始于新手 3481

JSF是什么。作用是啥

jsf是一种web框架,其实我也没有用过,这是我很久之前在网上看到的一种框架,当时大致简单的了解一下 jsf常用来和struts对比,struts是一种mvc框架,jsf是一种事件驱动的框架。 在struts中,实际是一个表单Form对应一个Action类(或DispatchAction),换一句话说:在Struts中实际是一个表单只能对应一个事件,struts这种事件方式称为appl

逝者如风 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

JSF 分组下拉列表框的实现

mport javax.faces.model.SelectItem; import javax.faces.model.SelectItemGroup; public class FileItemsBean { /** * 规范性文件 */ private SelectItem[] ruleFile = { new SelectItem(...

分享经验 934

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

JSF控件实现动态加载树状菜单

  使用JSF中的&lt;ig:Sidebar&gt;&lt;/ig:Sidebar&gt;实现动态加载菜单,其中bar.getChildren().add(aSidebarGroup);是实现动态加载首节点,HtmlSidebarGroup aSidebarGroup = (HtmlSidebarGroup) application.createComponent(HtmlSidebarGrou...

java998 340

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

JSF1.2组件 基于DIV+CSS的Tree

这两天项目进行了到了菜单组件的开发.把能使用的JSF的Tree组件都翻了个遍,试了个遍.没有中意的.要不是太复杂就是太难用.(好象差不多一个意思^_^).最后决定自己开发一个Tree组件. 有如下功能: 1、数据要能够与bean联系起来,因为菜单是动态的从数据库里取出来或动态生成的; 2、要无限级次的(其实有点变态,那有那么层次的菜单); 3、要是DIV+CSS的,不要table的(这么多大的、知...

快乐地生活 204

代码实现JSF组件树的创建与呈现

意义:代码创建和呈现JSF组件树的成功意味着,可以在页面动态的呈现各种JSF组件,如在用户交互后,根据用户需求产生界面.,或者用户自定义页面发布 好了,废话不多,直接进入正题 l         JSF组件树创建与呈现 ²        创建或者获取根//从当前上下文获取UIViewRoot root = facesContext.getViewRoot(); ² 

wula0010的专栏 1961

RichFaces树组件的用法

RichFaces树组件的用法

hffyyg的博客 337

dTree+jquery实现树形结构

首先下载 dTree.jar包 内包含问价 dtree.css ,dtree.js,img目录,example01.html,api.html 另行下载jquery.jar 新建web项目 将dtree.css ,dtree.js,img目录 , jquery.jar复制到webRoot目录下 这里使用手工创建一个动态xml文件(实际项目应用是从数据库获得数据,然后...

学会坚强 319

基于myFaces的JSF技术使用中的一些经验(三)[godroad原创]--使用myFaces的建立一个xml文件的树形表示

在myFaces中有个标签为,使用这个标签可以在页面上显示一个动态的树形结果,效果类似于资源管理器。本来,这个标签的出现很容易让人联想到是为了显示xml设计的,但是事实上要用这个标签去显示xml文件并非如此容易的。在myFaces提供的demo中,标签中用到的数据都是事先硬编码到程序中的。但是如果要显示xml文件却没有那么简单。文件不同,xml的结构也不同,显示的内容也不同。这样就需要在每次显示x

herongxin的专栏 962

JSF,primeface3.5的树形组件bug

异常: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(ArrayList.java:604) at java.util.ArrayList.get(ArrayList.java:382) at org.primefaces.compone...

iteye_6988的博客 271

JSF2.0 与Spring 3.0 集成

同以前的JSF1.2与Spring2.5集成类似,只是有一些类名的变化。 web.xml 代码如下: contextConfigLocation WEB-INF/applicationContext.xml com.sun.faces.config.ConfigureListener ...

klxwcx的博客 152

JSF中如何使用EXT树

JSF使用EXT树总结: 1.首先引入EXT框架文件(如果只是使用EXT框架中的树,则只需要引入树部分即可) 2.建立一个JSP页面,如:Json.jsp,内容如下 其中eXTTreeBean.extData是bean中的一个方法: public void getData(){ ex...

Jason 的专栏 220

基于extjs3.0+的JSF组件集合,配合大量实例,提高开发效率

一直青睐javaeye的干净和专业,在这里学了不少东西,最近项目比较闲,写了套基于extjs3.0的jsf组件集合--fence。因为之前的项目使用extjs,可以一直没找到合适的直观的写ext代码的方式。所以就自己写了。应为之前做过ASP.net开发,对.net控件开发还稍有理解,写起这个jsf组件没什么太大的技术难题。主要特点:1、完全符合extjs3.0的api,所有extconfig全部自...

网逸人耕地 248
上一篇: 有关cookie总是无法立即清除的原因
下一篇: Android 启动异常:The connection to adb is down, and a severe error has occured
阳小良
博客等级 码龄17年 54粉丝 155原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值