• 基于EXTJS+JBPM在线流程设计器

    基于EXTJS+JBPM4在线流程设计器

    5
    75
    2.78MB
    2012-12-03
    0
  • 项目管理知识体系指南

    第1 部分项目管理框架——为理解项目管理提供基础。该部分包含 两章。 第1 章引论——提出制定本标准的基础和目的。该章对项目进行定义, 并就项目管理及项目、项目集与项目组合管理三者间的关系展开讨论。此 外,还讨论了项目经理的角色。 第2 章项目生命周期与组织——概述项目生命周期及其与产品生命周 期的关系。该章介绍了项目阶段与阶段间的关系,以及阶段与项目的关系; 并概述了能对项目及其管理方式产生影响的组织结构。 第2 部分单个项目的项目管理标准——定义项目管理过程,以及各过 程的输入和输出。 第3 章单个项目的项目管理过程——定义 5 大过程组:启动、规划、 执行、监控和收尾。该章还将项目管理知识领域映射到具体的项目管理过 程组中。 第3 部分项目管理知识领域——介绍项目管理知识领域,列出项目管 理过程,定义各领域中的输入、工具与技术和输出。这9 章中的每一章都 分别介绍一个具体的知识领域。 第4 章项目整合管理——定义用来整合项目管理各要素的过程和活 动。该章包括: „ 制定项目章程 „ 制定项目管理计划 „ 指导与管理项目执行 „ 监控项目工作 „ 实施整体变更控制 „ 结束项目或阶段 第5 章项目范围管理——包括确保项目做且只做成功完成项目所需的 全部工作的各过程。该章包括: „ 收集需求 „ 定义范围 „ 创建工作分解结构 „ 核实范围 „ 控制范围 第6 章项目时间管理——聚焦于用来保证项目按时完成的各过程。该 章包括: „ 定义活动 „ 排列活动顺序 „ 估算活动资源 „ 估算活动持续时间 „ 制定进度计划 „ 控制进度 第7 章项目成本管理——介绍为使项目在批准预算内完成,而对成本 进行规划、估算、预算和控制的各过程。该章包括: „ 估算成本 „ 制定预算 „ 控制成本 第8 章项目质量管理——介绍规划、监督、控制和确保达到项目质量 要求的各过程。该章包括: „ 规划质量 „ 实施质量保证 „ 实施质量控制 第9 章项目人力资源管理——介绍规划、组建、建设和管理项目团队 的各过程。该章包括: „ 制定人力资源计划 „ 组建项目团队 „ 建设项目团队 „ 管理项目团队 第10 章项目沟通管理——识别为确保项目信息及时且恰当地生成、收 集、发布、存储并最终处置所需的各过程。该章包括: „ 识别干系人 „ 规划沟通 „ 发布信息 „ 管理干系人期望 „ 报告绩效 第11 章项目风险管理——介绍识别、分析和控制项目风险的各过程。 该章包括: „ 规划风险管理 „ 识别风险 „ 实施定性风险分析 „ 实施定量风险分析 „ 规划风险应对 „ 监控风险 第12 章项目采购管理——介绍为项目采购或获取产品、服务或成果的 各过程。该章包括: „ 规划采购 „ 实施采购 „ 管理采购 „ 结束采购 目 录 第1 部分 项目管理框架 ........................................................... 1 第1 章 引论 ...................................................................................... 3 1.1 PMBOK ® 指南的目的 ....................................... 3 1.2 什么是项目 ...................................................... 4 1.3 什么是项目管理 ............................................... 5 1.4 项目管理、项目集管理和项目组合 1.4 管理间的关系 .................................................. 6 1.5 项目管理与运营管理 ........................................ 9 1.6 项目经理的角色 ............................................. 10 1.7 项目管理知识体系 ......................................... 10 1.8 事业环境因素 ................................................ 11 第2 章 项目生命周期与组织 ...................................................... 12 2.1 项目生命周期——概述 .................................. 12 2.2 项目与运营 .................................................... 17 2.3 项目干系人 .................................................... 18 2.4 组织对项目管理的影响 .................................. 21 第2 部分 单个项目的项目管理标准 ................................ 27 第3 章 单个项目的项目管理过程 ............................................. 29 3.1 项目管理过程间的作用 .................................. 30 3.2 项目管理过程组 ............................................. 32 3.3 启动过程组 .................................................... 32 3.4 规划过程组 .................................................... 36 3.5 执行过程组 .................................................... 45 3.6 监控过程组 .................................................... 49 3.7 收尾过程组 .................................................... 54 第3 部分 项目管理知识领域.............................................. 57 第4 章 项目整合管理 .................................................................. 60 4.1 制定项目章程 ................................................ 62 4.2 制定项目管理计划 ......................................... 65 4.3 指导与管理项目执行 ...................................... 68 4.4 监控项目工作 ................................................ 72 4.5 实施整体变更控制 ......................................... 75 4.6 结束项目或阶段 ............................................. 80 第5 章 项目范围管理 .................................................................. 83 5.1 收集需求 ....................................................... 84 5.2 定义范围 ........................................................ 89 5.3 创建工作分解结构 ......................................... 92 5.4 核实范围 ........................................................ 98 5.5 控制范围 ...................................................... 100 第6 章 项目时间管理 ............................................................... 103 6.1 定义活动 ...................................................... 106 6.2 排列活动顺序 .............................................. 108 6.3 估算活动资源 .............................................. 112 6.4 估算活动持续时间 ....................................... 115 6.5 制定进度计划 .............................................. 120 6.6 控制进度 ...................................................... 126 第7 章 项目成本管理 ............................................................... 131 7.1 估算成本 ...................................................... 133 7.2 制定预算 ...................................................... 138 7.3 控制成本 ...................................................... 142 第8 章 项目质量管理 ............................................................... 150 8.1 规划质量 ...................................................... 151 8.2 实施质量保证 .............................................. 159 8.3 实施质量控制 .............................................. 162 第9 章 项目人力资源管理 ....................................................... 170 9.1 制定人力资源计划 ....................................... 172 9.2 组建项目团队 .............................................. 177 9.3 建设项目团队 .............................................. 180 9.4 管理项目团队 .............................................. 185 ............................................................. 191 第10章 项目沟通管理 ............................................................. 191 10.1 识别干系人 ............................................... 193 10.2 规划沟通 .................................................. 197 10.3 发布信息 .................................................. 201 10.4 管理干系人期望 ........................................ 204 10.5 报告绩效 .................................................. 207 第11章 项目风险管理 ............................................................. 212 11.1 规划风险管理 ........................................... 214 11.2 识别风险 ................................................... 218 11.3 实施定性风险分析 .................................... 224 11.4 实施定量风险分析 .................................... 228 11.5 规划风险应对 ........................................... 234 11.6 监控风险 ................................................... 238 第12章 项目采购管理 ............................................................. 243 12.1 规划采购 .................................................. 245 12.2 实施采购 .................................................. 253 12.3 管理采购 .................................................. 258

    0
    0
    5.57MB
    2012-11-09
    10
  • jbpm web 设计器源码

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> &lt;html&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; &lt;link type="text/css" href="lib/jquery-ui-1.8.4.custom/css/smoothness/jquery-ui-1.8.4.custom.css" rel="stylesheet" /&gt; [removed][removed] [removed][removed] [removed][removed] [removed][removed] [removed][removed] [removed][removed] [removed] $(function() { $('#myflow') .myflow( { basePath : "", restore : eval&#40;"({states:{rect4:{type:'start',text:{text:'开始'}, attr:{ x:409, y:10, width:50, height:50}, props:{text:{value:'开始'},temp1:{value:''},temp2:{value:''}}},rect5:{type:'task',text:{text:'任务1'}, attr:{ x:386, y:116, width:100, height:50}, props:{text:{value:'任务1'},assignee:{value:''},form:{value:''},desc:{value:''}}},rect6:{type:'fork',text:{text:'分支'}, attr:{ x:410, y:209, width:50, height:50}, props:{text:{value:'分支'},temp1:{value:''},temp2:{value:''}}},rect7:{type:'task',text:{text:'任务2'}, attr:{ x:192, y:317, width:100, height:50}, props:{text:{value:'任务2'},assignee:{value:''},form:{value:''},desc:{value:''}}},rect8:{type:'task',text:{text:'任务3'}, attr:{ x:385, y:317, width:100, height:50}, props:{text:{value:'任务3'},assignee:{value:''},form:{value:''},desc:{value:''}}},rect9:{type:'task',text:{text:'任务4'}, attr:{ x:556, y:320, width:100, height:50}, props:{text:{value:'任务4'},assignee:{value:''},form:{value:''},desc:{value:''}}},rect10:{type:'join',text:{text:'合并'}, attr:{ x:410, y:416, width:50, height:50}, props:{text:{value:'合并'},temp1:{value:''},temp2:{value:''}}},rect11:{type:'end',text:{text:'结束'}, attr:{ x:409, y:633, width:50, height:50}, props:{text:{value:'结束'},temp1:{value:''},temp2:{value:''}}},rect12:{type:'task',text:{text:'任务5'}, attr:{ x:384, y:528, width:100, height:50}, props:{text:{value:'任务5'},assignee:{value:''},form:{value:''},desc:{value:''}}}},paths:{path13:{from:'rect4',to:'rect5', dots:[],text:{text:'TO 任务1'},textPos:{x:37,y:-4}, props:{text:{value:''}}},path14:{from:'rect5',to:'rect6', dots:[],text:{text:'TO 分支'},textPos:{x:56,y:-1}, props:{text:{value:''}}},path15:{from:'rect6',to:'rect8', dots:[],text:{text:'TO 任务3'},textPos:{x:24,y:-5}, props:{text:{value:''}}},path16:{from:'rect8',to:'rect10', dots:[],text:{text:'TO 合并'},textPos:{x:41,y:8}, props:{text:{value:''}}},path17:{from:'rect10',to:'rect12', dots:[],text:{text:'TO 任务5'},textPos:{x:36,y:-5}, props:{text:{value:''}}},path18:{from:'rect12',to:'rect11', dots:[],text:{text:'TO 结束'},textPos:{x:32,y:0}, props:{text:{value:''}}},path19:{from:'rect6',to:'rect7', dots:[{x:244,y:232}],text:{text:'TO 任务2'},textPos:{x:0,y:-10}, props:{text:{value:'TO 任务2'}}},path20:{from:'rect7',to:'rect10', dots:[{x:242,y:435}],text:{text:'TO 合并'},textPos:{x:-3,y:17}, props:{text:{value:'TO 合并'}}},path21:{from:'rect6',to:'rect9', dots:[{x:607,y:234}],text:{text:'TO 任务4'},textPos:{x:0,y:-10}, props:{text:{value:'TO 任务4'}}},path22:{from:'rect9',to:'rect10', dots:[{x:607,y:439}],text:{text:'TO 合并'},textPos:{x:-8,y:16}, props:{text:{value:'TO 合并'}}}},props:{props:{name:{value:'新建流程'},key:{value:''},desc:{value:''}}}}&#41;"), tools : { save : { onclick : function(data) { alert&#40;'save:\n' + data&#41;; } } } }); }); [removed] &lt;style type="text/css"&gt; body { margin: 0; pading: 0; text-align: left; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 1.5; color: black; background-image: url(img/bg.png); } .node { width: 70px; text-align: center; vertical-align: middle; border: 1px solid #fff; } .mover { border: 1px solid #ddd; background-color: #ddd; } .selected { background-color: #ddd; } .state { } #myflow_props table { } #myflow_props th { letter-spacing: 2px; text-align: left; padding: 6px; background: #ddd; } #myflow_props td { background: #fff; padding: 6px; } #pointer { background-repeat: no-repeat; background-position: center; } #path { background-repeat: no-repeat; background-position: center; } #task { background-repeat: no-repeat; background-position: center; } #state { background-repeat: no-repeat; background-position: center; } &lt;/style&gt; &lt;/head&gt; &lt;body&gt; <div id="myflow_tools" absolute; top: 10; left: 10; background-color: #fff; width: 70px; cursor: default; padding: 3px;" class="ui-widget-content"> <div id="myflow_tools_handle" center;" class="ui-widget-header">工具集</div> <div class="node" id="myflow_save"><img src="img/save.gif" />&nbsp;&nbsp;保存</div> <div> <hr /> </div> <div class="node selectable" id="pointer"><img src="img/select16.gif" />&nbsp;&nbsp;选择</div> <div class="node selectable" id="path"><img src="img/16/flow_sequence.png" />&nbsp;&nbsp;转换</div> <div> <hr /> </div> <div class="node state" id="start" type="start"><img src="img/16/start_event_empty.png" />&nbsp;&nbsp;开始</div> <div class="node state" id="state" type="state"><img src="img/16/task_empty.png" />&nbsp;&nbsp;状态</div> <div class="node state" id="task" type="task"><img src="img/16/task_empty.png" />&nbsp;&nbsp;任务</div> <div class="node state" id="fork" type="fork"><img src="img/16/gateway_parallel.png" />&nbsp;&nbsp;分支</div> <div class="node state" id="join" type="join"><img src="img/16/gateway_parallel.png" />&nbsp;&nbsp;合并</div> <div class="node state" id="end" type="end"><img src="img/16/end_event_terminate.png" />&nbsp;&nbsp;结束</div> <div class="node state" id="end-cancel" type="end-cancel"><img src="img/16/end_event_cancel.png" />&nbsp;&nbsp;取消</div> <div class="node state" id="end-error" type="end-error"><img src="img/16/end_event_error.png" />&nbsp;&nbsp;错误</div> </div> <div id="myflow_props" absolute; top: 30; right: 50; background-color: #fff; width: 220px; padding: 3px;" class="ui-widget-content"> <div id="myflow_props_handle" class="ui-widget-header">属性</div> <table border="1" width="100%" cellpadding="0" cellspacing="0"> <tr> <td>aaa</td> </tr> <tr> <td>aaa</td> </tr> </table> <div>&nbsp;</div> </div> <div id="myflow"></div> &lt;/body&gt; &lt;/html&gt;

    4
    38
    190KB
    2012-08-21
    5
  • Javashop开发规范V2.2

    Javashop开发规范V2.2 版本 说明 提交人 V1.0 初稿 定义了包名、异常、事务、和路径的规范 王峰 V2.0 1. 重新整理了命名规范 2. 增加常用命词对照表 王峰 V2.1 1.增加数据库操作的说明 2.增加常用方法介绍 王峰 V2.2 增加关于数据导入导出的说明 王峰 V2.3 增加校验使用说明(5.3章节) 王峰 1 命名规范 1.1 包命 1. 小写字母 2. 以com.enation.javashop开头 3. 组件以com.enation.compoent开头 1.2 类名 一、 action 以Action结尾,如:UserAction 二、 业务类 1.接口: 以I开头,以Manager结尾,如:IUserManager 2.实现类 以Manager结尾,如:UserManager 三、 组件类 以Component结尾,如:ShopEmailComponent 四、 挂件类 以Widget结尾,如:MemberAddressWidget 五、 插件类 以Plugin结尾,如:SendRegMailPlugin 1.3 变量/属性命名规则 1. 全部小写 2. 可用下划线连接 如:username、 userid 1.4 方法命名 1.4.1 Action类 add 到添加页 edit 到修改页 saveAdd 保存添加 saveEdit 保存修改 delete 删除 list 列表 1.4.2 业务类 add 添加 edit 修改 delete 删除 list 列表 get 读取详细 2 数据库开发规范 2.1 数据操作支持类 一、 业务类数据库调用 1.继承于BaseSupport 2.在spring文件中声明parent为baseSupport <bean id="xxxManagerImpl" class="xxx.xxx.xxx.XxxxManager" parent="baseSupport"/> 3.通过this.baseDaoSupport操作数据库 实际使用的是:com.enation.eop.sdk.database.BaseJdbcDaoSupport 此种操作示例: com.enation.javashop.core.service.impl.BrandManager 注意事项:见【BaseDaoSupport的意义和存在的问题】 二、 直接声明baseDaoSupport操作数据库 在一些挂件类中或某些特殊情况,可以直接需要直接声明baseDaoSupport 此种操作示例: com.enation.javashop.core.service.impl.batchimport.GoodsSpecImporter 注意事项:见【BaseDaoSupport的意义和存在的问题】 2.2 BaseDaoSupport的意义存在的问题 BaseDaoSupport对JdbcDaoSupport进行包装,通过 baseDBRouter 获取表名, 为什么要通过 baseDBRouter 来获取表名呢?Eop机制是支持SAAS(多租户)模式运行的,在SAAS会为每个用户提供如:es_goods_<userid>_<siteid>这样的表。 为了保证在单机版和SAAS模式中都运行正常,BaseDaoSupport将过滤sql中的相应表名。 但目前还只能支持简单的单表select、insert、update,对于多表的联合查询或更新不能支持。 在这种情况下,就需要通过 daoSupport(com.enation.framework.database.impl.JdbcDaoSupport)来操作,daoSupport不对sql进行任何更改,这时为了保证兼容saas模式兼容性,就要使用BaseSupport.getTableName(String tablename)方法 或baseDBRouter.getTableName(String tablename);来保证表名的正确。 (够混乱?真心希望出现一位大侠拯救这个状况,使basedaosupport可以处理所有情况的sql) 2.3 实体Bean和数据库表对照 Javahop数据库操作支持,将对象直接保存或修改,如: this.baseDaoSupport.insert("brand", brand); this.baseDaoSupport.update("brand", brand, "brand_id=" + brand.getBrand_id()); 规则为:实体中的属性名和数据库表的字段名相同,如: 对应的数据库字段: 2.4 注解的使用 2.4.1 @NotDbField 在某个实体Bean中,我们可能会有一些属性不对应数据库字段,这时我们需要在相应的 Geter方法中加上@NotDbField注解,以便使数据库机制知道这个字段不转为sql语句,如: private File file; @NotDbField public File getFile&#40;&#41; { return file; } 2.4.2 @PrimaryKeyField 在实合格bean和数据库对照过程中,数据库机制需要识别主键,所以需要我们在主键的对应属性的Geter方法中加上@PrimaryKeyFiled注解,如: private Integer brand_id @PrimaryKeyField public Integer getBrand_id() { return brand_id; } 3 数据导入 3.1 导入接口 DBSolutionFactory.dbImport("file:com/enation/javashop/component/coupon/add.xml","es_"); 3.2 数据Xml文件说明 3.2.1 创建表 <action> <command>create</command> <table>tablename</table> <field> <name>id</name> <type>int</type> <size>8</size> <option>11</option> </field> <field> <name>name</name> <type>varchar</type> <size>255</size> <option>00</option> </field> </action> 3.2.2 删除表 <action> <command>drop</command> <table>tablename</table> </action> 3.2.3 添加、删除列 <action> <command>alter</command> <table>goods</table> <field type="add"> <name>isgroupbuy</name> <type>int</type> <size>1</size> <default>0</default> </field> <field type="drop"> <name>isgroup</name> </field> </action> 3.2.4 创建索引 <action> <command>index</command> <table>goods</table> <field > <name>goodsid</name> </field> </action> 3.2.5 删除索引 <action> <command>unindex</command> <table>goods</table> <field > <name>goodsid</name> </field> </action> 3.2.6 插入数据 <action> <command>insert</command> <table>es_adcolumn</table> <fields>acid,cname,width,height,atype,disabled</fields> <values>5,'列表页上部横幅','972px','67px',0,'false'</values> </action> 3.2.7 删除数据 暂未支持 3.2.8 更新数据 暂未支持 3.3 数据类型对照表 xml Mysql Oracle SqlServer int int NUMBER smallint int(1) smallint(1) NUMBER(2) int memo text CLOB text datetime datetime TIMESTAMP datetime long bigint NUMBER bigint decimal decimal NUMBER(20,2) decimal 4 数据导出 String[] tables = new String[1]; tables[0] = "es_auth_action"; DBSolutionFactory.dbExport(tables, false, "") 5 常用方法介绍 5.1 上下文获取 参见: http://www.javamall.com.cn/developer_help/index.php/常用方法 5.2 地区联动下拉框 1.如果是在jsp 中: &lt;html:regionselect&gt;&lt;/html:regionselect> 2.如果是在Freemarker的html中: <#assign RegionSelect= "com.enation.app.base.component.widget.regions.RegionSelectDirective"?new()> <@RegionSelect /> 以上两种方式均支持以下参数: province_id:省id city_id:市id region_id:区id 如果指定上述参数,则默认选中 5.3 客户端校验 EOP自动为应用提供表单校验功能,通过指定form样式名和指定表单项特定属性的方式来完成。 5.3.1 示例 代码示例 [removed] function checkUserName(val){ if(val=='kingapex' ) return true; else return "用户名已存在"; } $.Validator.options={lang:{isrequired:'此项不能为空!'}}; [removed] &lt;form class="validate"&gt; 必须:&lt;input type="text" name="test1" isrequired="true"&gt; <br/> 整型:&lt;input type="text" name="test2" isrequired="true" dataType="int"&gt; <br/> 浮点型:&lt;input type="text" name="test3" dataType="float"&gt; <br/> 邮件:&lt;input type="text" name="test4" isrequired="true" dataType="email"&gt; <br/> 日期:&lt;input type="text" name="test5" isrequired="true" dataType="date"&gt; <br/> 电话号码:&lt;input type="text" name="test6" isrequired="true" dataType="tel_num"&gt; <br/> 手机:&lt;input type="text" name="test7" isrequired="true" dataType="mobile"&gt; <br/> 邮政编码:&lt;input type="text" name="test8" isrequired="true" dataType="post_code"&gt; <br/> 网址:&lt;input type="text" name="test9" isrequired="true" dataType="url"&gt; <br/> 自定义函数:&lt;input type="text" name="test10" isrequired="true" fun="checkUserName"&gt; <br/> &lt;input type="submit" value="确定" /&gt; &lt;/form&gt; 5.3.2 参数说明: 5.3.2.1 isrequired 为true则为必填项,不指定或指为false则为非必填项。 5.3.2.2 dateType 指定校验特殊类型,支持的类型见下表: 类型 说明 int 整数 float 浮点数 email 邮件格式 date 日期格式 tel_num 电话格式 mobile 手机格式 post_code 邮编 url 网址 5.3.2.3 fun 自定义校验函数,返回真则通过校验,返回假或字串则校验失败,返回的字串会出现在失败提示框中。 5.3.2.4 动态绑定校验函数 通过 setValidator实现 $("#region_id").setValidator(function(){ var value = $("#region_id").val(); if( value=="" || value=="0" ) return "地区信息不完整"; else return true; }); 5.3.2.5 提示器 提示器用于显示校验的结果,如果不指定默认会在校验的控件后面创建一个span做为提示器。 可以通过两种方式指定提示器: 一、在控件中声明tiper属性: &lt;input type="text" name="username" tiper="#name_tiper" /&gt; 注:tiper指定的是jquery的一个选择器表达式。 二、动态指定: $("#region_id").setTiper($("#name_tiper")); 注:此时指定的是jquery对象,而不是一个表达式 5.3.2.6 手动调用: $("#siteForm").checkall(); 6 常用字典对照表 6.1 常用值 名称 值 说明 返回结果 0:失败 1:成功 适用于: 1. 客户端json返回值 2. 服务器端方法返回值 3. 数据库是否的标识值 性别 0:女 1:男 6.2 常用名称 名称 英文 商品 goods 货品 product 规格 spec 订单 order 会员 member 积分 point 购物车 cart 结算 checkout 订单 order 品牌 brand 分类 cat 优惠劵 coupon 支付 payment 团购 groupbuy 虚拟 virtual 发票 receipt 属性 prop 参数 param 标签 tag 地区 region 7 异常 1. 提供统一的异常处理机制 2. 底层级别的类不处理异常,只管向上抛出异常,且统一抛出RuntimeExcepton 8 事务处理 1. 数据库统一使用Srping AOP事务 2. 采用注解方式: 在接口处: @Transactional(propagation = Propagation.isrequired) 9 路径的规范 返回的路径变量最后不带 ‘/’ 如:String path =”user/1”; 使用者: path = path+”/”+myVar; 10 样式/HTML规范 10.1 前台分页 <div class="page"><span class="info">共41条记录</span> <span class="info">1/3</span> <ul><li><a class="selected">1</a></li> <li><a href="search-cat-4-page-2.html" class="unselected">2</a></li> <li><a href="search-cat-4-page-3.html" class="unselected">3</a></li> <li><a href="search-cat-4-page-2.html" class="unselected">&gt;&gt;</a></li> <li><a href="search-cat-4-page-3.html" class="unselected">&gt;|</a></li> </ul></div>

    5
    478
    144KB
    2012-08-21
    35
YA
码龄12年
暂无认证
关注 私信
上传资源赚积分or赚钱