SharePoint 2010 开箱即用工作流介绍

本章内容

  1. 配置三态工作流
  2. 管理工作流实例
  3. 比较6种开箱即用工作流

工作流为开发软件做跟踪功能是很理想的。客户常常将写的软件需求放在SharePoint托管。一个工作流在这种场景下是有帮助的,因为它跟踪需求的进度,从开始到结束。此外,工作流会执行最终批准的文档在给团队开发之前。用一个例子来展示通过工作流自动分配任务,跟踪版本,集中文档管理的开发是简便的。我们要做到这一点会使用开箱即用的工作流,叫三态工作流。

本章将为你开发第一个工作流规划过程,并为工作流准备一个SharePoint文档库。准备好后,我们将逐步建立和维护三态工作流。为其他章节的建立奠定基础。 我们将演示很多的基本术语和许多SharePoint工作流概念。三态工作流被使用在需求文档示例将作为一个开发者工作流开发的出发点。

三态工作流是开箱即用工作流之一。 例如还有审批工作流,处理审批工作流,收集反馈工作流。其余的开箱即用工作流在本章结束将被覆盖在高级别的知识点。

2.1 规划和筹备你的工作流

正如你现在的猜测,第一个工作流我们去看的是三态工作流。执行这个工作流是非常简单的。三态工作流在SharePoint2010的所有版本中可用,为初学者和有经验的用户提供一个很好的开端。设置任何工作流的第一步是要弄清业务流程,你准备试图解决它和整个过程的图形。很多开箱即用的工作流,包括三态工作流都有定义设置步骤和参数。重要的是开始前确保它能满足你的需求,此外,你将需要在使用工作流之前配置一些列。

2.1.1 确定你的业务流程

一个新的需求文档,通常由分析师创建,包含一些数字顺序的步骤。 分析师管理者将批准请求的文档。 表2.1 详细跟踪任务和需要为一个任务列表并详细介绍相应文档库。

表2.1

任务列表(Task Lists)

任务列表是SharePoint中的一个功能,它允许你将任务分配给你团队的成员。这些任务都存储在SharePoint列表和分配到任务的人可以导航到那个列表,并且编辑或者完成任务。例如,任务列表能被使用在跟踪缺陷(bug)在软件或者维护请求为设施管理部门。

为了得到这个设置,你将需要争取一个三态工作流的帮助。 有很多工作流可以用于管理文档和任务,每一次都有自己的优势。因为你将要分配任务和跟踪状态为需求文档,三态工作流是最合适这个工作的。其他选项包括批准工作流或者内容审批选项,但是,因为你要跟踪问题,你将受益从三态工作流。

2.1.2 引进三态工作流

默认情况下,三态工作流目的是跟踪列表或库项目三种状态。这个工作流通常用于业务流程管理过程,去跟踪多个任务分配的文档或者其他内容类型。它也用于跟踪项目,如客户支持结果和销售意向。

这三个不同状态按顺序发生。它们能被你命名为你喜欢的任何名字,但是总有一个初始状态,中间状态和最终状态。每一种状态代表工作流的不同阶段,每个阶段之间是一个过渡状态。 随着各状态之间的转换,工作流分配自定义任务,发送自定义电子邮件。图2.1显示任务顺序。

图2.1

当这个任务完成后,工作流更新在项目(在此是,需求文档)中的状态,并发送它到下一个状态。你将使用三态工作流和一个文档库,但是它能用于任何列表和设置选项列在三个或以上的值。 这些选项值的列为状态和工作流跟踪服务。

现在,让我们以一个简单的例子应用一些技术细节。一个开发团队可能使用三态工作流去跟踪服务请求从客户想更新的一个定制应用程序。在这个案例中,团队过程有三个状态:开发,测试和完成。所有三个状态应用一些的更新,三个能被更多更新在一些时间的发展。首先,团队管理者分配每个更新请求到一个单独开发者和标记到项目。这样,创建一个任务给开发者,然后标记进行更改,开发者更改状态到测试。在测试完成后,测试者标记状态为完成。这是一个简单,看似复杂的过程。很容易让三态工作流管理。

问题跟踪和三态工作流

三态工作流的设计工作主要问题跟踪列表。您 也可以使用任何自定义的列表中已配置包含一个选择列有3个或更多的值。

图2.2展示使用三态工作流如何工作的

图2.2

工作流自动管理创建的每一个任务,任务被分配的个人更新和完成。

2.1.3 准备文档库为三态工作流

你可以使用三态工作流之前,你必须设置一个列表或库来配合工作流。 这个库必须包含你计划去跟踪和管理工作流的项。对于我们需求文档的例子,我们需要设置一个文档库,它将保留我们的需求文档, 以及三态工作流需要结合的列在这个库上。
当你创建一个自定义库在一个团队站点给三态工作流使用。你必须确保库中至少包含一个列类型是选择列。这个列,必须包括三个或更多值为工作流的跟踪。

准备开始,你首先要创建一个文档库,让文档能被创建,上传,共享和跟踪。 这个库当有新的文档被创建或者增加,工作流能分配和自动执行。在这个情况下,你需要使用共享文档文件夹在默认的工作组站点。

首先,你要知道如何获得工作流设置界面。SharePoint中很多功能都可以提供你做到这一点。你可能注意到,在SharePoint2010中的菜单采用的外观、感觉和功能(图2.3)和大多数的Microsoft Office产品功能的风格类似。

图2.3

给大家一个清晰的中文版的样子

图2.3 显示带状样式布局显示在库工具菜单上的。具体来说,它是库上的子菜单项。在这个菜单中,你会发现你的库设置和功能视图,创建列,RSS Feed,电子邮件链接,和编辑库。 SharePoint2010引入的带状样式使他需要操作的管理功能简化了他的点击。

点击工作流设置按钮在最右侧的子菜单上,你将会得到工作流设置界面(图2.4)。

图2.4

中文版是我自己机器上的

如果你点击这个按钮的下箭头,你会看到所有的可用选项。 第一个选项是工作流设置,因为这是第一个选项上显示在菜单上和是按钮的默认设置,当你点击它,它会带你到工作流设置界面。

下一个选项是添加工作流,你可以使用此选项跳过额外的界面,如果你想得到直接添加工作流。最后两个选项在SharePoint Designer创建工作流和在SharePoint Designer创建可重用工作流,但你不会在本章使用这些。请参阅第3章,以了解如何使用SharePoint Designer创建自定义工作流。

库的工作流界面现在被显示出来,不会有没有关联的工作流显示。 正如你看到图2.4,“目前没有相关的工作流”,也可以看到我的中文的图,有1个工作流和它的2个之前版本。

现在,你需要增加两个新列到该库。一个列的类型为选择类型并且叫Status,第二个列的类型为人/组(就是选择人的那个类型),叫Assigned To。工作流将使用这两列跟踪状态和分配文档。你将使用到类型为人/组,又称为人员选择,因为信息从SharePoint拉出,允许你发送给这个人电子邮件或分配任务。如果你使用一个文本字段,你将无法分配任务或发送邮件。表2.2显示创建这些列的步骤。

表2.2

共享文档库的默认视图看起来像图2.5的样子。你应该看到默认的列(类型,名称,修改,修改自和新加的列Status和Assigned To)。 你默认库模板可能不同,一些组织更改了默认的设置。

图2.5

你现在有两列在自定义文档库中将被使用到我们下一节准备创建的工作流。 列的顺序不影响工作流,所以你能排序他们只要你想。

2.2 实现工作流

在SharePoint使用开箱即用的工作流有三个主要步骤, 首先你必须添加工作流到列表或库。然后启动列表项或者文档上的工作流在那个列表或者库。 最后你必须测试工作流确保符合你的预期。

你添加工作流到列表,通过列表设置页面或者Ribbon,当你在浏览器上的列表上。当你选择添加工作流到列表,你将看到在列表上当前所有已安装的工作流。在我们的情景中的三态工作流,它需要两个自定义列,我们在之前的小节上已经添加。

你添加了工作流之后,它可以自动或者手动启动。鉴于两种情形,工作流可以从开始到结束可以被测试。对于我们的需求文档的例子,我们将添加三态工作流到库我们可以更早的去测试工作流。我们将创建一个新的Word文档,它将启动工作流,之后它保存到库中。这将生成任务,当那些任务完成,工作流进程将从开始到结束。

2.2.1 添加三态工作流到文档库

现在是文档库工作流的设置时间。如上所述,此前,很多开箱即用的工作流来到SharePoint Server2010. 对于我们的需求文档的例子,我们将使用三态工作流。你可能会倾向于启动审批工作流,因为这个名字听起来酷似你想要做些什么,但你会发现它不够强大。

当你添加三态工作流到库或列表,你必须指定列表中的列是你想跟踪的状态值。在这个情况下,你需要使用Status列。因为只有这一列,工作流模板默认将自动选择它。

网站集功能激活依赖

三态工作流站点集功能必须被激活在站点集上,否则你不会看到三态工作流,要做到这一点,导航到站点集功能,在站点集的根站点的站点设置下面。

你也可以指定在每个阶段发生的事情信息。 例如,你将指定任务分配给谁和任务收件人收到邮件的细节。按照表2.3的步骤添加三态工作流到文档库。

大部分时间,你将留在第二个配置屏幕上的两个部分。 基本前提是你想如何分派你的任务。如果你记得,三态工作流任务在状态之间。发出的任务完成后,工作流移动到下一个状态。 图2.7中,你回发现我们Assigned To列是准备设置任务分配的列。 在这个例子中足以满足,但是要注意有其他方面的设置。例如,你可以指定唯一的文本到邮件让任务被分配人收到。

图2.7

你已经配置好这最后两部分,根据自己的喜好后,点击“确定”按钮。这将完成的工作流程加入到库。更详细的描述如图2.7设置为那些有兴趣进一步定制。

任务标题(Task Title)

类型信息你想包含在任务标题。如果你选择“包含列表字段”的复选框,列表项的标题信息将被添加到自定义消息。

任务描述(Task Description)

任何信息类型你想包含到任务的描述。如果你选择“包含列表字段”复选框,列表项的标题信息添加到自定义消息。如果你选择“插入链接到列表项”复选框, 列表项链接将被包含到描述。

任务到期日期(Task DUE Date)

如果你想指定任务的到期日期,请选择“包含列表字段”复选框,并选择日期列从列表包含截止日期信息。如果你愿意,你能使用计算日期。例如,可以设置截止日期是创建日期后30天。你可以创建一个日期列去计算值在文档库中。

任务分配给(TASK ASSIGNED TO)

为了将任务分配给某人在特定的列表,单击“包含列表字段”, 并选择列从列表,它包含你想使用的用户信息。当工作流启动,首先任务分配给谁,谁的名字会显示在工作流项中。你要指定分配任务,可以单击“自定义”,然后键入或选择要向其分配任务的个人或者组。如果你想法一封电子邮件去通知被分配的人,你可以选中“发送E-Mail消息”复选框。 如果不想发送,请取消选择它。

给(TO)

选择“包含任务分配给”复选框,如果你想发送email提醒任务所有者。

邮件主题(Subject)

邮件主题行,如果你想用任务的标题,请选择“使用任务标题”复选框。

邮件主题(BODY)

你希望的邮件正文。选择“插入链接列表项”复选框,如果你要包括列表项上的消息。

如果你的电子邮件不能运行,可以参照,http://www.cnblogs.com/little-li/archive/2011/06/07/2074515.html 虽然是sharepoint2007的,我在2010中测试正常运行, 我的环境是windows2008 server,并且配置域环境,因为windows2008和windows2003不一样,windows2003自带POP3+SMTP,windows2008只有SMTP,所以要么你自己有邮件服务器,要么你自己到公网上注册可以使用邮件客户端的电子邮件地址,也一样可以测试的。然后将注册的邮件地址给域用户。域用户的信息有邮件地址栏的,放进去就可以了。这样SMTP和POP3都有了,然后你在SharePoint管理中心配置一下邮件的出站和入站就可以了。有什么问题,可以在文章下留言O(∩_∩)O哈!

你在启动工作流的时候可以测试了,或者在网站添加一个用户进来,有选项可以给新用户发送邮件,做测试的。

2.2.2 启动工作流

随着工作流添加到库,现在在文档上启动工作流。启动三态工作流在这个库上,你需要上传文档到你的库并且在文档上启动工作流。你可以手动上传文档或者可以创建一个新文档从Word并且保存到库。然后手动启动工作流.

首先,导航到你的共享文档库,你添加工作流在2.1.3节。你需要添加一个新的文档在这个库上,并设置改文档的元数据。按照表2.4所示的步骤创建和分配元数据到新文档。

表2.4

图2.8

图2.9

文档中的Status列和Assigned To列被设置。现在你有你的文档,你需要启动工作流,你需要启动工作流。如果你选择自动启动,它将在保存文档后立即启动。

点击文件名旁边的箭头,上下文菜单将弹出(图2.10)它们是此文档所有的可用动作。在现在的情况下,你只感兴趣的是工作流选项。点击工作流

图2.10

按下工作流后,你会看到一屏幕的所有在文档库上可以选择的所有的可用工作流。图2.11显示3个默认工作流和一个我们之前创建的工作流My First Workflow。

图2.11

点击My Frist Workflow 的链接。你将看到工作流的处理界面,点击开始。然后SharePoint将返回到你的文档库,你看到新列名为“My First Workflow" 图(2.12)这个列将容纳工作流的状态。因为它启动后,它在执行。你还会注意到有些状态字段变灰,说明工作流有更新这个字段。

图2.12

2.2.3 测试工作流

现在,你已经创建并保存一个文档,并成功启动了工作流。你需要测试移动部分通过创建任务和移动文档。首先,你看到分配的任务,并确保任务是正确的并且在工作。然后你在下一个阶段关闭任务,然后你将相同的方式测试第二个任务。随后工作流应成功完成。

工作流开始后,导航到与工作流相关的任务列表。因为这个任务列表是我们这个情况下唯一使用的列表,你可以看到一个任务在屏幕上(图2.13)。这个任务是你在工作流设置参数分配给Assigned To的。 你将看到任务的名称 。

图2.13

点击任务上的标题进入下一个屏幕。图2.14,你将看到任务的详细。这是你可以阅读和编辑任务的地方。还有一个链接任务相关的文档。这里,你将发现标题,状态,过期时间,分配给,描述和其他详细信息,关于这个任务的。这里任务所有者将更新任务的状态。点击”编辑项目“按钮来改变状态。你要改变的只有状态字段。改变完成后,点击保存按钮。

图2.14

你将回到你的任务列表,你会看到两个任务,一个完成的和一个不启动(图2.15)。我们需求文档的例子,第二个人物分配给你的经历(或者任何人)。如果你灭有看到两个请刷新屏幕。在编辑第二个任务并完成之前,我们看看文档库。到文档库,你会注意图2.16,文档的状态时正在审查。工作流正在工作。第一个任务完成,现在从第一个任务到第二个任务。现在回到你的任务列表,并完成第二个任务。完成后,你将看到工作流已完成,状态字段编程Approved。这个工作流状态列是完成我们例子的价值所在。

图2.15

图2.16

2.3 维护工作流实例

创建和测试完工作流之后,时常需要管理和清除它。重要的是了解所有工作流状态屏幕上的信息,并指导如果终止和删除工作流。工作流状态屏幕显示当前你的工作流执行到哪里。终止工作流可能是必须的,如果它启动失败或如果有错误发生和工作流挂起。如果一个工作流不再使用,你可以删除它从列表或者库以避免创建新实例。使用比较广泛的工作流实例,你可以应用某些设置那些工作流实例在给定的Web应用程序。其中一些设置在管理中心,包含通知,禁用SharePoint Designer和自动删除工作流历史。

工作流状态屏幕包含工作流的信息,如开始日期,最后运行日期,文档的链接,和状态。这里你能获得工作流的概况。该屏幕还包含相关的任务列表和这些任务直接用户的链接。

当处理多个文档和多个不同工作流时,这个屏幕是很有用的。 大多数人使用它跟踪工作流生命周期中文档的进程或获得更多文档详细。这个屏幕允许特定的用户终止工作流,如果有需要.

更重要的是,在工作流页面最后的一段包含工作流历史。

要获取更多的工作流信息,点击工作流状态列。 在我们的例子上,点击当前行的My First Workflow列的“Completed”或“In Progress”。你现在将看到屏幕如图2.17工作流所有关联信息,包括任务,基本信息,和历史。 这个屏幕可以用来帮助跟踪工作流和所有相关事件。

图2.17

2.3.2 终止工作流

有时需要终止或取消工作流。它可能已经意外开始或数据可能有盖顶在最初的库或列表项。或者工作流可能由于某些原因失败。图2.18显示失败的工作流.

图2.18

只要你有正确的权限,那么都可以取消它。

定位要取消的工作流。图2.18的例子显示工作流启动失败(注意工作流的状态)如果你点击当前行的状态,你将被带到工作流状态屏幕。这里,你将找到立即终止工作流的链接。你会发现它在工作流信息节的底部(图2.19)

图2.19

终止删除相关的任务 终止工作流,也将删除该工作流相关的任何任务。确保这就是你想做的事,因为你不能让他们回来。

当你终止你的工作流,工作流状态屏幕将会相应更新(图2.20)。 所有任务都将消失,唯一的事件将显示在屏幕上。当终止了工作流,你只是终止了一个实例。请注意你可以有很多实例。 如果你想删除所有实例,你需要从库中删除工作流。

图2.20

2.3.3 删除工作流

你可能想删除工作流因为它很长时间不被使用或者你有好的替换。当你下决心删除时请小心。这里没有回头和可能导致严重的问题,如果其他的工作流或实例依靠此工作流。

删除工作流可以从工作流设置屏幕(你在哪里管理和添加工作流的地方)当你点击移除工作流的链接,你将获得提示去选择你要删除的工作流(图2.21) 。

图2.21

这个选项是直接了当的。默认情况下,“允许”选项被选中(准许新的工作流实例初始化的地方)。替代移除工作流,建议你选择无新实例选项。这样不会使新实例的工作流数据丢失。

删除也可能导致依赖这个工作流的其他工作流停留在怪异的状态,并且难以收回。 使用无新实例选项将不会让你头疼。

2.3.4 未经授权访问工作流

知道现在,我们都是假设参与工作流的人是已被授予访问站点中工作流的用户。如果一个当前站点工作流分配的人他没有访问权限。我们可能会不希望发送邮件给这个人。对于内部用户,默认是发送邮件,让他们知道有一个任务。对于外部用户,默认情况下是不发送邮件的。要切换此行为,导航到SharePoint管理中心,在应用程序管理下,点击管理Web应用程序。选择你要配置的应用程序,点击基本设置下面的下拉列表框,选择工作流。图2.22显示默认设置工作流通知部分。

图2.22

全球工作流设置

这个设置在节2.3.4,2.3.5和2.3.6是全球设置。这个设置我们讨论为工作流实例。全球设置应用于整个Web应用程序。

2.3.5 启用和禁用SharePoint Designer中的工作流

现在,我们有了第一个工作流,我们将转换到自定义工作流。并不是所有公司都希望最终用户使用SharePoint Designer创建自定义工作流。正如我们管理匿名访问和历史,我们可以禁用SharePoint Designer 工作流。这个功能在同一个对话框下配置(图2.22)。导航到SharePoint 管理中心,在应用程序管理下面,点击管理Web应用程序。选择你想要配置的应用程序,点击基本设置下的下拉列表框。在工作流设置对话框,选择“启用用户定义的工作流”在这个Web应用程序。

2.3.6 保存工作流历史记录

之前,我们讨论与每个工作流相关的历史记录。我们没有充分了解这个日志,它会删除工作流完成后超过60天的历史记录,你可能不想这样的事情发送。更改Web应用程序的设置,到管理中心,点击左边导航栏的监视,然后点击检查工作定义。点击你要配置的Web应用程序上的工作流自动清理工作。请注意,这里有上百个工作,每页有一百个显示。你可能需要经过几页才能找到对应的工作。你找到工作后,单击“禁用”按钮,将禁用自动清理功能。

禁用自动清理的警告 如果你禁用清理,你可能遇到性能问题,你的工作流将列出所有的历史。浏览工作流的历史在上千条中可能减慢。如果你想审计为你的工作流。它能较好的去存储历史列表为每个工作流或者写到外部数据如SQL,哪里能衡量这个刻度。

2.4 添加开箱即用的工作流

任何标记装箱的都有这些特征:缺乏弹性,过于简单,不相关的和难以使用。SharePoint这些,开发6个功能强大的开箱即用的工作流去帮助你组织更加高效的生产在你的日常任务中。你能把他们当做模板或者作为快速创作的基础。最重要的是它们可用于没有高级别技术知识的个体。浦东用户现在装备非常强大的工具,使它们日常活动更成功。

扩展第1章在第1章中,剩余的开箱即用的工作流本节到更深层次上讨论设计人机交互的工作流,包括扩展讨论它们的业务案例

在之前的章节中,我们很详细的使用了6个开箱即用的工作流里面的第1个工作流。幸运的是,其他5个工作流都是类似的方式配置。在大多数情况下,你回使用相同的页面,配置和设置。因此,本机的重点是业务背后的工作流。什么是工作流的目的,并且解决什么样的业务问题?

注意:我们使用的SharePoint企业版本只有企业版本和标准版才有6个开箱即用的工作流

2.4.1 审批工作流

审批工作流(图2.23)类似之前的三态工作流,只可惜它的名字最适合使用二态工作流。这个工作流用于批准或拒绝文档。当工作流启动,工作流的状态是等待。一个任务被分配给审批者,然后这个任务被批准或者拒绝,工作流进入第二个状态(完成)。 三态工作流有开始,中间和结束,而审批工作流只有开始和结束。

图2.23

另外的区别就是,三态工作流,你可以定义状态, 而审批工作流,状态是不可配置的。批准工作流是三态工作流的缩略版本,仅用于批准文档或项。

你也许会想,为什么不使用已经定义好的开箱即用的内容批准功能呢?这个审批工作流的好处是它创建任务分配给人去管理审批,然而,内容审批,你直接更新文档或者列表项,文档可能等待批准但是没有一个通知它等待。在审批工作流,审批将获得邮件通知。

另外一个重要的事情是审批工作流分配阶段。分配阶段我们在第4章有详细的讨论。它们给你的用户能够制定一个以上的人,当需要批准文档。你可以指定批准的顺序,分配阶段也让启动工作流的人能指定所有审批者和运行时设置。

最终,审批工作流的优势是允许任务分配给审批者的任务可以重新分配。这种情况可能发生。如果审批者没有资格去批准。它们能再分配其他人去审批。

2.4.2 收集反馈工作流

收集反馈工作流(图2.24)是高效,易管理的为单个有他们项目审查从他们团队成员。当工作流启动,发起者首先需要指定谁将提供反馈。他们输入这些名字如果他们想反馈给同一时间(并行)或串行(按顺序)。如果他们选择并行,例如,一个任务是为每个审阅者创建,并分配给审阅者。审阅者能编辑任务,从这个任务中,他们可以给出他们的反馈。当反馈过来后,反馈它将记录到工作流历史记录,请求反馈者可以去日志看到审阅者的内容。

图2.24

正如审批工作流,评审者能重新分配如果他们(原指定的评审者)不希望提供反馈。任务将再分配另外的人员,工作流将等待原始的评审者离开反馈。评审者可以请求改变已完成的文档。当评审者请求改变开始,他们需要指定谁将做这个工作和进行更新。这个人将获取单独的任务去完成工作。当完成后,他们可以完成这个任务,并离开反馈,在原有的工作流上。 图2.24 显示全部反馈请求处理,和他们交替的路径。当收到所有的反馈,工作流将完成。

2.4.3 收集签名工作流

收集签名工作流(图2.25)有助于收集数字签名的Word文档。考虑一个合同文档需要被四个独立人签名。而不是邮件文档每个人在上面手工签名 这个工作流将通过任务添加签名给文档 。

图2.25

这个工作流只能从Word启动,而不是从SharePoint界面。启动工作流时,发起人将制定哪些人需要签署文档。每个签名者获取任务和电子邮件通知他们需要签署文档。当他们打开任务,他们点击签名按钮去增加他们数字签名给文档。所有签名被放到文档后,工作流完成。

2.4.4 处置审批工作流

处置审批工作流(图2.26)有助于删除过期的文档。通常情况下,工作流运作与记录管理功能结合。如记录中心站点模板。这些功能帮助公司管理他们记录和规范。根据要求一个文档可能需要指定一个时间过期。当该文件过期,这个处理工作流能去校验文档删除。

图2.26

工作流启动后,工作流将添加一个任务到任务列表。一个用户可以接受或拒绝请求去删除文档。如果文档被删除,审批者可以保留文档元数据在工作流历史记录中。

2.4.5 翻译管理工作流

翻译管理工作流(图2.27)是不太被人知道也不经常使用的工作流。当一个组织是全球性存在时,能立即看到这种类型工作流的好处,可以帮助促进转换文档从一种语言到另外一种语言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值