画画一样开发软件 申请审批管理系统开发案例1.1

开发总述:

我们通过开发一个审批管理系统来为开发平台的使用做一个完整的示例。开发过程会以视频形式发布供大家学习参考。我们分步骤开发,从界面设计开始,先开发电脑端,后进行手机应用部分的开发。项目假设某公司想开发一套在线办公用品申请管理软件,员工可以在浏览器网页端进行物品申请,如购买电脑、设备、笔等,主管人员可以进行审批批准或不批准处理,采购人员可以将已批准的申请转为采购单记录给供应商。我们的开发平台本身在菜单栏帮助下“帮助内容”中附了一个同样的项目开发教程,但是那个是2010年做的,且基于传统模板做的,与当前最主流的新移动应用模板有很多不同,很多技巧并不适合新项目开发,我们在此项目中也会加入一些帮助文档中没有的内容,包括UI界面设计等。此项目中使用的开发平台我们汉化菜单部分,开发平台菜单汉化请参考之前发布的文章及视频。

注意:我们对申请审批系统的开发分为电脑端用户界面框架设计、手机端用户界面框架设计、电脑端申请提交、电脑端审批管理、电脑端采购订单、手机端各功能等几个部分。每个部分会有一个视频配套学习参考。

每个部分下我们为文章编定序号以方便查看,比如题目中的“xx1.1”,前一个1是指此系列的第1部分。后一个1是指第1部分的第1篇文章。

第一部分:电脑端用户功能结构框架设计(不含界面美工设计及图标)

  • 界面设计内容:

    * 设计三个分页显示,分别是:申请单提交页、管理者审批页、采购处理页。

    * 申请单提交页界面设计元件包含“提交申请”、“取消申请”两个显示按钮,在“提交申请”中放一个弹窗显示元件(其中包括文本录入元件-物品名称用、数字录入元件-物品数量用、及下拉选项元件-是否紧急用),表格显示元件(显示申请的信息列表)等。

  • 分步骤设计开发:

    1、用最新模板新建一个项目:

    通过菜单File->New->Tersus Project,打开以下项目新建窗口:

画画一样开发软件 申请审批管理系统开发案例1.1

TERSUS新建一个软件项目

1) 第一个输入框输入项目名称,注意名称用英文或汉字拼音,我们取名管理审批的首字母“glsp”,大小写都可以(服务器布署时的配置文件中名称与此命名的大小写应完全一致,这个在项目布署中会有说明);

2) 第二个是模板选择框,选最新主流模板New Mobile Appicaiton(新移动应用);

3) 点下方Finish按钮,系统会生成以下结构的一个新项目显示如下:

画画一样开发软件 申请审批管理系统开发案例1.1

新建项目后显示界面

* 其中左侧项目目录是平台生成的,开发过程中添加的元件会在其中列出;

* 中间开发区中有三个基本显示块,<Mobile View>是手机端,<Tablet View>是平板端 、<Desktop View>是电脑端,在不同设备中打开时,系统会自动识别硬件的类型来显示对应块中的内容。如果不想要某一个或两个块,则直接用鼠标单击选中某个,右键选删除(右键->“Remove Element/Model...”)或点击键盘上删除按钮进行删除,此时会有如下提示:

画画一样开发软件 申请审批管理系统开发案例1.1

确认完全删除默认显示块

* 若点Yes,则此元件会从当前开发区及左侧项目目录中同时删除;

* 如果点No,则删除当前开发区中的此元件,但此元件依旧在项目目录和后台项目文件夹中;

* 点Cancel不做任何处理。

注意点一:以上删除方式适用于开发中所有已点选放置或拖放进开发区的元件(拖放复用的无件不显示提示框);

注意点二:很多元件在项目中是可以复用的,也就是其他地方用的时候可以不再从右侧元件选项栏点选放入,而是直接从项目文件夹拖入,这样项目文件夹中内容可以较小(相当于项目代码减少),也就是项目文件通过复制来精简大小;某些内容如“0”、“请选择”文本常量、提示框元件这些在很多地方会复用到,所以可以从元件栏点选放置一次,然后在整个项目中复用。

我们删除平板端显示块后的开发区显示如下:

画画一样开发软件 申请审批管理系统开发案例1.1

保留手机端及电脑端默认显示块

* 以上是示是删除后用鼠标选中往中间移动过位置的效果。注意:所有元件都可以用鼠标选中、拖放移动及选中某个角进行大小拖放。

2、电脑端中设计用户界面:

1) 在开发区中鼠标双击放大并激活电脑端显示块,进行这部分开发(画画)处理,如果想退出此块到外面,双击此块外部的父层显示块;另一种放大缩小显示块的方法是按住键盘Control键滑动鼠标轮进行处理。

放大进入电脑端显示块后,是一个空白的子显示块,我们先在其中放一个分页显示元件,先找到(右侧元件栏->Didplay->Tabbed Pane)并点击选中,然后在电脑端显示块中某个位置再单击完成元件放置。然后双击进入分页显示元件内部,分页显示元件默认有两个页面(pane1、pane2)元件加一个显示导航栏元件(Navigation Bar),记得分页显示元件放入显示元件后,首先进行一次项目保存:

画画一样开发软件 申请审批管理系统开发案例1.1

点选放入分页显示元件

* 保存:请点击菜单栏左上角保存按钮即可,在项目开发过程中可随时保存最近开发内容;

* 保存前,左侧项目文件夹的名称带“*”号,保存后不带;

* 如果想退回前一个开发状态或退回后再重做前面的一个开发活动,则可以点击菜单栏上图中间靠右处的Undo和Redo箭头处理;

* 对于分页显示元件,保存后,可以对分页显示组中的块进行移动,移动Pane2放右侧,就可以看到Pane1全部;上面的“Navigation Bar”是页面导航栏,显示每个分页名称。

2) 运行:此时点上图中菜单栏右半侧中部绿色三解运行图标,可以在浏览器中看到目前为止设计的内容:

画画一样开发软件 申请审批管理系统开发案例1.1

运行后在浏览器端显示分页界面

* 运行后,软件会在开发平台默认设定的浏览器中运行,上图是谷歌浏览器的显示(注意我们视频中是在苹果机上录的,是显示的苹果Safari浏览器),更改默认浏览器可在菜单->窗口->首选项中常规栏的web浏览器下设置:

画画一样开发软件 申请审批管理系统开发案例1.1

设定测试运行的浏览器

* 开发过程中每次保存后,浏览器页面会自动刷新显示最新保存的开发结果;

* 所有显示元件的上下左右相互对应顺序将直接影响其在用户端浏览器运行时显示的上下左右相对位置。可尝试将pane2拖放到pane1前,保存,再刷新查看浏览器来测试对应显示相对位置的功能。

未完请看下节1.2,敬请关注我们专栏,会有更多案例指导及视频。

转载于:https://my.oschina.net/u/3796227/blog/1634811

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
申请管理系统,适合初学者下载学习 一、登录 1. 使用JS验证用户名和密码是否填写。 2. 点击“登录”后,验证用户名和密码是否允许登录。对于用户名或密码无效的用户,弹出提示“用户名或密码无效!”,并不允许登录;对于通过验证的用户,允许用户登录并跳转到主页面。 二、母版页设计 1.参考样例图,使用div+CSS对页面进行布局设计。 2.页面顶部中央显示当前日期,格式为“xxxx年x月x日”。 3.页面顶部有“退出”超链接,点击后,注销当前登录用户,并且页面跳转到“登录”页面。 4.页面顶部显示系统菜单,横向排列。 5.页面顶部菜单下方显示“当前位置:XXXXX”为当前所处页面的菜单项的名称。 6.页面中部的主区域为子页面的位置,即套用该模板页的页面的位置。 7.页面底部左下角显示当前登录者的信息,包括:该用户所属部门的名称、用户名称。 8.模板页名称为Main.master。 三、管理员面 分配人设置 1.参考样例图,使用GridView展示分配人列表。 2.页面套用主模板页Main.master。 3.页面加载时显示出所有类型的申请单的分配人信息。“分配人”显示用户的名称。 “管理”列中,只包含“编辑”按钮。点击“编辑”按钮,弹出“设置分配人”对话框 4页面中的“申请单名称”即为点击列表页面中“编辑”按钮对应的申请单类型名称,且只读不能修改;“分配人”下拉列表的选项绑定为数据库中所有归属于“IT支持部”的用户名称,且页面加载时将当前的分配人默认选中。 5点击“提交”,修改当前申请单的分配人,并根据是否修改成功作出相应提示;如果修改成功,则关闭窗口,刷新父页面列表。 部门管理 1.参考样例图,使用GridView展示部门列表数据。 2.页面套用主模板页Main.master。 3.通过点击“查询”按钮,可以对部门名称进行模糊查询,并将查询后的数据显示在列表上。 4.列表中,“部门名称”列的标题为超链接,点击可以实现按照部门名称对数据进行升序/降序切换排列显示。 5.列表中,“部门负责人”显示用户的名称。 6.“管理”列中,包含“编辑”、“删除”按钮,当部门名称为“IT管理部”和“IT支持部”时,只显示“编辑”按钮而没有删除按钮。点击“编辑”按钮,弹出“编辑部门信息”对话框;点击“删除”按钮,使用JS弹出选择框“确定要删除该部门吗?”选择“是”,如果该部门下没有任何用户属于该部门,则删除该部门,页面刷新;如果该部门下存在用户,则提示“该部门下存在用户,请首先调整用户所属部门或删除用户!”部门不会被删除。选择“否”,不做任何操作。 点击列表上方“新建”按钮,弹出“新建部门”对话框。 7.在新建部门对话框中,“部门名称”为必填项;点击“确定”按钮,通过JS验证部门名称是否填写,如果没有填写则给出相应提示;如果已经填写,则判断输入的部门名称在部门表中是否已经存在,如果存在,则不能新增,并给出提示“该部门名称已经存在!”;如果不存在,则新增部门。如果新增成功,则弹出提示“新建成功!”,并关闭该模态窗口,刷新父页面部门列表;如果新增失败,则给出提示“新建失败!”。 8.点击“部门列表”中的“编辑”按钮时弹出“修改部门”对话框,页面自动加载出部门信息。如果父页面选择的是“IT管理部”或“IT支持部”,则“部门名称”文本框只读,不能被修改。在修改部门页面中,会出现“部门负责人”下拉列表,下拉列表的选项默认加载出当前所选部门下的所有用户名称。如果当前部门下没有任何用户,则为空。点击“确定”按钮,如果更改了部门名称,则需验证新的部门名称是否已经存在,如果存在则给出提示,并且不会修改部门信息;如果新部门名称不存在,或者没有修改原部门名称,则更新部门数据,如果更新成功,则提示“部门信息修改成功!”,并关闭该窗口,刷新父页面;如果更新失败,则提示“修改失败!”。 9.点击“取消”按钮,不做任何操作,关闭当前窗口。 用户管理 1.参考样例图,使用GridView展示用户列表数据。 2.页面套用主模板页Main.master。 3.通过点击“查询”按钮,可以对用户数据进行联合查询。其中:用户ID和用户名称均为模糊查询;所在部门为精确查询。如果没有填写任何查询条件,则将所有用户数据全部查询出来。查询后的数据显示在列表上。 4.列表中,“用户ID”“姓名”列的标题为超链接,点击可以实现按照ID或姓名对数据进行升序/降序切换排列显示。 5.“管理”列中,包含“编辑”、“删除”按钮,当用户ID为“admin”时,只显示“编辑”按钮而没有删除按钮。点击“编辑”按钮,弹出“编辑用户”对话框;点击“删除”按钮,使用JS弹出选择框“确定要删除该用户吗?”选择“是”,则删除该用户,页面刷新,并对是否删除成功作出提示;选择“否”,不做任何操作。 6点击列表上方“新建”按钮,弹出“新增用户”对话框。 7页面中带有红色星号(*)的项为必填项,在点击“确定”按钮时要使用JS进行验证是否填写。 8“部门”下拉列表的选项为当前部门表中所有的部门数据,需将部门表中的数据绑定上来;其中,下拉列表显示的选项为部门的名称,下拉列表的实际值为部门的ID。 7点击“确定”按钮提交之后,新增用户之前需要验证填写的用户ID是否已经存在。如果存在,则提示“该用户ID已经存在!”,不能新增用户;如果不存在,则将提交的信息新增到用户表中,并根据是否新增成功作出相应的提示。如果新增成功,则还需要关闭当前窗体,刷新父页面用户列表。 四、普通用户页面 我的申请单 1.“我的申请单”列表可以分页显示数据,每页10条记录。其中,列“申请单号”“申请类型”“标题”“审批人”“分配人”“处理人”“申请状态”的列头名称可以点击,点击后表格中的数据可以按照该字段进行升序/降序切换显示。审批人、分配人、处理人三列均显示用户姓名。 2.页面列表上方的查询条件中,“申请单类型”下拉列表选项包括:IP地址申请单、办公邮箱申请单、存储空间申请单;“申请单状态”下拉列表选项包括:待审批、待分配、待处理、归档、审批否决。用户在点击查询按钮后,可以根据所选条件进行联合查询,其中,申请单号、申请单类型、申请单状态为精确查询,申请单标题为模糊查询。查询结果也需分页显示在表格中。 3页面加载后,默认显示当前登录的用户提交过的所有申请单。默认加载出第一页的申请单数据。 4列表中的“管理”列中,包含“查看”和“删除”按钮。其中,只对于申请状态为“待审批”的申请单显示“删除”按钮,其他状态的申请单均只显示“查看”按钮。点击“查看”按钮,可以弹出查看申请单对话框,进行查看申请单的信息;点击“删除”按钮,弹出提示“是否要删除申请单号为XXXX的申请单?”选择否,不做任何操作;选择是,则删除该申请单,页面刷新,并根据是否删除成功给出相应的提示。 5点击“创建申请单”按钮,弹出“选择申请单”对话框,并根据所选择的申请单类型,弹出相应的创建申请单对话框。 IP地址申请 1.页面加载后,“申请人ID”显示为当前登录人的ID;“申请部门”显示当前登录人所属的部门名称;“申请人姓名”显示当前登录人的姓名;“联系电话”默认显示出该用户个人信息设置中的电话号码,如果没有设置电话号码则此处为空。“联系电话”文本框可以修改; 2.“申请主题”默认显示“IP地址申请”,可以修改。 3.可以选择性的上传附件,如果上传了附件,则需将附件保存在指定文件夹。 4.点击“提交”后,创建该申请单,并将申请状态置为“待审批”;如果申请单创建成功,则需获取到刚刚创建的申请单的号码,并弹出提示“单号为XXXX的申请单创建成功!”然后关闭对话框,刷新列表页面;如果申请单创建失败,则弹出提示“申请单创建失败,请重试!”。点击“取消”按钮,则关闭该页面,不做任何操作。 存储空间申请单 1.在我的申请单列表页面,点击创建申请单按钮,在弹出的选择申请单类型对话框中,选择了“存储空间申请单”并点击确定,然后弹出创建存储空间申请单的对话框页面。 2.页面加载后,“申请人ID”显示为当前登录人的ID;“申请部门”显示当前登录人所属的部门名称;“申请人姓名”显示当前登录人的姓名;“联系电话”默认显示出该用户个人信息设置中的电话号码,如果没有设置电话号码则此处为空。“联系电话”文本框可以修改; “申请主题”默认显示“存储空间申请”,可以修改。 3.可以选择性的上传附件,如果上传了附件,则需将附件保存在指定文件夹。 4.点击“提交”后,创建该申请单,并将申请状态置为“待审批”;如果申请单创建成功,则需获取到刚刚创建的申请单的号码,并弹出提示“单号为XXXX的申请单创建成功!”然后关闭对话框,刷新列表页面;如果申请单创建失败,则弹出提示“申请单创建失败,请重试!”。点击“取消”按钮,则关闭该页面,不做任何操作。 办公邮箱申请单 1.在我的申请单列表页面,点击创建申请单按钮,在弹出的选择申请单类型对话框中,选择了“办公邮箱申请单”并点击确定,然后弹出创建办公邮箱申请单的对话框页面。 2.页面加载后,“申请人ID”显示为当前登录人的ID;“申请部门”显示当前登录人所属的部门名称;“申请人姓名”显示当前登录人的姓名;“联系电话”默认显示出该用户个人信息设置中的电话号码,如果没有设置电话号码则此处为空。“联系电话”文本框可以修改; “申请主题”默认显示“办公邮箱申请”,可以修改。 3.可以选择性的上传附件,如果上传了附件,则需将附件保存在指定文件夹。 4.点击“提交”后,创建该申请单,并将申请状态置为“待审批”;如果申请单创建成功,则需获取到刚刚创建的申请单的号码,并弹出提示“单号为XXXX的申请单创建成功!”然后关闭对话框,刷新列表页面;如果申请单创建失败,则弹出提示“申请单创建失败,请重试!”。点击“取消”按钮,则关闭该页面,不做任何操作。 审批管理 1.“审批管理”中申请单列表可以分页显示数据,每页10条记录。其中,列“申请单号”“申请类型”“标题”“申请人”“审批人”“分配人”“处理人”“申请状态”的列头名称可以点击,点击后表格中的数据可以按照该字段进行升序/降序切换显示。审批人、分配人、处理人三列均显示用户姓名。 2.页面列表上方的查询条件中,“申请单类型”下拉列表选项包括:IP地址申请单、办公邮箱申请单、存储空间申请单;“申请单状态”单选按钮包括待审批、已审批、全部。点击查询后,可以根据所选条件进行联合查询,其中,申请单号、申请单类型为精确查询,申请单标题为模糊查询,“申请单状态”如果选择“待审批”,则只查询待审批申请单,如果选择“已审批”则查询待审批以外的申请单,如果选择“全部”,则查询全部状态的申请单。查询结果也需分页显示在列表中。 3.页面加载后,如果当前登录者是其所属部门的负责人,则将该部门下所有待审批申请单全部查出显示出来,默认显示第一页的数据;如果当前登录者不是该部门的负责人,则不显示任何数据。 4.列表中的“管理”列显示“管理”按钮,点击后可以弹出审批申请单的对话框页面。如果申请单还未审批,则弹出的页面中可以审批申请单;如果申请单已审批,则弹出的页面只能够查看申请单的详细信息而不能再次进行审批审批申请单 1点击审批管理列表中管理列中的“审批”按钮,弹出审批申请单页面对话框页面。 2.页面加载后显示出申请单的详细信息,全部为只读。如果上传了附件,则“查看附件”超链接可以点击下载查看附件文件。 3.如果当前申请单处于待审批状态,则显示“审批意见”和“审批说明”,并可以进行审批。其中,“审批意见”包括审批通过、审批否决。点击提交,则对申请单进行审批,如果选择了“审批通过”,则申请单流程可以继续进行,更新申请单“审批人”为当前审批人ID,并将申请状态更改为“待分配”;如果选择了“审批否决”,则申请状态更改为“审批否决”,申请单流程结束。点击取消,关闭页面,不做任何操作。 4.如果当前申请单已审批,则审批意见和审批说明均不显示,并且没有“提交”和“取消”按钮。此时只能查看申请单的详细信息。页面下方显示为一个“关闭”按钮,点击之后,关闭该页面,不做任何操作。 分配管理 1.“分配管理”中申请单列表可以分页显示数据,每页10条记录。其中,列“申请单号”“申请类型”“标题”“申请人”“审批人”“分配人”“处理人”“申请状态”的列头名称可以点击,点击后表格中的数据可以按照该字段进行升序/降序切换显示。审批人、分配人、处理人三列均显示用户姓名。 2.页面列表上方的查询条件中,“申请单类型”下拉列表选项包括:IP地址申请单、办公邮箱申请单、存储空间申请单;“申请单状态”单选按钮包括待分配、已分配、全部。点击查询后,可以根据所选条件进行联合查询,其中,申请单号、申请单类型为精确查询,申请单标题为模糊查询,“申请单状态”如果选择“待分配”,则只查询待分配的申请单,如果选择“已分配”则查询状态为待处理、归档的申请单,如果选择“全部”,则查询全部状态的申请单。查询结果也需分页显示在列表中。 3.页面加载后,如果当前登录人具有某一种或几种类型的申请单分配权限,则显示出具有分配权限的类型的处于待分配状态的申请单的信息,默认显示第一页数据;如果当前登录人不具有任何类型申请单的分配权限,则不显示任何数据。 4.列表中的“管理”列显示“分配”按钮,点击后可以弹出分配申请单的对话框页面。如果申请单还未分配,则弹出的页面中可以分配申请单;如果申请单已分配,则弹出的页面只能够查看申请单的详细信息而不能再次进行分配。 分配申请单 1. 点击分配管理列表中管理列的“分配”按钮,弹出分配申请单对话框页面。 2.页面加载后显示出申请单的详细信息,全部为只读。如果上传了附件,则“查看附件”超链接可以点击下载查看附件文件。 3.如果当前申请单处于待分配状态,则显示“分配处理人”和“分配说明”,并可以进行分配。其中,分配处理人下拉列表的选项为“IT支持部”的所有人员。点击提交,则对申请单进行分配,更新申请单“分配人”为当前分配人ID,“处理人”为所分配的处理人的ID,并将申请状态更新为“待处理”。点击取消,关闭页面,不做任何操作。 4.如果当前申请单已分配,则分配处理人和分配说明均不显示,并且没有“提交”和“取消”按钮。此时只能查看申请单的详细信息。页面下方显示为一个“关闭”按钮,点击之后,关闭该页面,不做任何操作。 处理管理 1.“处理管理”中申请单列表可以分页显示数据,每页10条记录。其中,列“申请单号”“申请类型”“标题”“申请人”“审批人”“分配人”“处理人”“申请状态”的列头名称可以点击,点击后表格中的数据可以按照该字段进行升序/降序切换显示。审批人、分配人、处理人三列均显示用户姓名。 2.页面列表上方的查询条件中,“申请单类型”下拉列表选项包括:IP地址申请单、办公邮箱申请单、存储空间申请单;“申请单状态”单选按钮包括待处理、已处理、全部。点击查询后,可以根据所选条件进行联合查询,其中,申请单号、申请单类型为精确查询,申请单标题为模糊查询,“申请单状态”如果选择“待处理”,则只查询待处理的申请单,如果选择“已处理”则只查询归档的申请单,如果选择“全部”,则查询全部状态的申请单。查询结果也需分页显示在列表中。 3.页面加载后,如果当前登录人在分配申请单页面中被分配到了需要处理的申请单,则显示出被分配到的待处理的申请单信息,默认显示第一页的数据;如果未被分配到需要处理的申请单,则不显示任何数据。 4.列表中的“管理”列显示“处理”按钮,点击后可以弹出处理申请单的对话框页面。如果申请单还未处理,则弹出的页面中可以处理申请单;如果申请单已处理,则弹出的页面只能够查看申请单的详细信息而不能再次进行处理。 处理申请单 1.点击处理管理列表中管理列的“处理”按钮,弹出处理申请单对话框页面。 2.页面加载后显示出申请单的详细信息,全部为只读。如果上传了附件,则“查看附件”超链接可以点击下载查看附件文件。 3.如果当前申请单处于待处理状态,则显示“处理结果”和“处理说明”,并可以进行处理。其中,处理结果下拉列表的选项为处理完成、处理失败。点击提交,则对申请单进行处理,更新申请单“处理人”为当前处理人的ID,并将申请状态更新为“归档”。点击取消,关闭页面,不做任何操作。 4.如果当前申请单已处理,则处理结果和处理说明均不显示,并且没有“提交”和“取消”按钮。此时只能查看申请单的详细信息。页面下方显示为一个“关闭”按钮,点击之后,关闭该页面,不做任何操作。 个人设置 1.参考样例图,对页面进行布局设计。 2.页面加载后,将当前登录者的信息显示出来,其中“ID”文本框为只读不能修改;部门下拉列表加载出当前系统中所有的部门名称,并且默认选中登录者所属的部门;下方的修改密码设置中的文本框全部为空,不显示原密码。 3.点击上方“修改个人信息”的提交按钮时,需用JS验证“姓名”不能为空;“部门”必须选择一项。提交之后修改个人信息,并根据是否修改成功给出相应的提示。 4.点击下方“修改密码”的提交按钮时,需用JS验证三个文本框必须都不为空,并且“新密码”与“重复输入新密码”的输入需一致。提交后,需验证“原密码”必须与修改之前的密码一致,方可修改为新密码,并且在修改后给出是否成功的提示;如果输入的原密码与修改之前的密码不符,则给出提示“原密码不正确,不能修改!”

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值