搭建《任务管理》应用

一、需求分析

1. 目标

实现管理者对任务的指派(包括一个任务指派给一个员工、一个任务指派给多个员工)、员工对任务执行的反馈、管理者对反馈的审核等全流程管理。

2. 使用角色

员工、管理者。

3. 流程

根据《任务管理》应用的需求,流程大概可以分为两步:

第一步:管理者新增并指派任务给员工。

第二步:员工完成任务后反馈给管理者。

第三步:管理者审核任务的执行反馈情况。

4. 数据结构

应用中必须要用到的最基础的表单,用来采集和定义基础数据。根据《任务管理》应用的需求,涉及到的数据结构表单包括:

(1)任务池表:采集记录各种状态下的任务数据信息。

(2)处理记录表:记录任务处理执行的相关过程信息。

二、搭建

1. 构建基础表单

根据《任务管理》应用需求,搭建所需的基础表单。

(1)任务池表 img

任务池表单:img

基础字段包括:

字段名称 字段值 使用控件 备注
任务编号 编号控件 可配置编号自动生成规则
任务描述 富文本控件 可使用图文等对任务做详细描述
处理人 人员多选控件 存在一个任务分配给多人的场景
任务状态 单选控件 包括待分配、处理中、待审核、被驳回、已完成等状态
处理记录 关联组件控件 双向关联记录任务执行过程相关信息
状态时间 日期时间控件 记录任务状态变更的时间

(2)任务池逻辑表

逻辑表即通过一定的逻辑规则,对主表数据进行筛选。为了方便用户可以按照任务状态查看相关的任务信息,可通过“状态”等逻辑规则对任务池(主)表进行筛选,形成细分的逻辑表。

以“待分配”逻辑表为例:

1、点击“新建逻辑表单”进行逻辑表单的创建。 img

2、点击“数据设置”进行逻辑表单的逻辑配置。 img

3、逻辑配置完后,即可查看根据逻辑筛选后的数据。 img

(3)处理记录表 img

处理记录表单:img

基础字段包括:

字段名称 字段值 使用控件 备注
任务编号 关联组件控件 关联任务池表中的任务编号
处理编号 编号控件 可配置编号自动生成规则
处理人 人员单选控件
处理状态 单选控件 包括待处理、已处理等状态
处理小结 富文本控件 可使用图文等详细描述任务处理结果等信息
处理时间 日期时间控件 记录处理的时间,通过“公式”配置,其值赋为“更新时间”

img

(4)处理记录逻辑表

逻辑表即通过一定的逻辑规则,对主表数据进行筛选。为了方便用户可以按照处理状态查看相关的处理信息,可通过“状态”等逻辑规则对处理记录(主)表进行筛选,形成细分的逻辑表。

以“处理中”逻辑表为例:

1、点击“新建逻辑表单”进行逻辑表单的创建。 img

2、点击“数据设置”进行逻辑表单的逻辑配置。 img

3、逻辑配置完后,即可查看根据逻辑筛选后的数据。 img

2. 构建页面菜单

根据《任务管理》应用需求,构建应用前端展示菜单和页面,供应用使用者查阅和使用。

基本流程:

(1)菜单模式:img

(2)创建菜单:img

(3)关联表单:img

配置说明:

配置项 配置细项 配置说明
基础设置 PC端配置 可配置PC端页面列表显示的样式、行高、字段及顺序
移动端配置 可配置移动端页面显示的字段及顺序

具体菜单:

(1)任务池-待分配 img

(2)任务池-处理中 img

(3)任务池-待审核 img

(4)任务池-被驳回 img

(5)任务池-已完成 img

(6)处理记录-处理中 img

(7)处理记录-待审核 img

(8)处理记录-被驳回 img

(9)处理记录-已完成 img

3. 构建任务流转

根据《任务管理》应用需求,构建任务流转工作流,便于任务的分配、提交、审核等。

基本流程:

(1)任务分配:img

(2)提交审核:img

(3)任务审核:img img

配置说明:

(1)任务分配【状态变为“处理中”】

任务分配是通过自定义按钮实现的,具体实现如下:

在“任务池-待分配”菜单中,新增“分配”自定义按钮。 img

配置“分配”自定义按钮:因为需要分配到人,“按钮行为”项需选择“弹窗填写指定内容”,指定的字段为“处理人”。 img

配置“分配”自定义按钮的工作流:存在分配给一个人或多个人的场景,因此,在流程中,需要根据分配人的数量,自动生成一个或多个子任务,就需要使用JS脚本来实现。 img JS脚本:

const func = async (app, params) => {
class EvalTemplate {
constructor(app, params) {
  this.params = params;
  this.app = app;
}

async main () {
  let arr = []
  if (this.params[0] && this.params[0].value && Array.isArray(this.params[0].value)) {
    for (const v of this.params[0].value) {
      arr.push({ p: v })
    }
    return arr;
  }
  return arr;
}

static init (app, params) {
  return new EvalTemplate(app, params);
}
  }

return await EvalTemplate.init(app, params).main();
};
func(app, params);

(2)提交审核【状态变为“待审核”】

提交审核是通过自定义按钮实现的,具体实现如下:

在“处理记录-处理中”菜单中,新增“提交”自定义按钮。 img

配置“提交”自定义按钮:因为需要汇报任务执行信息,“按钮行为”项需选择“弹窗填写指定内容”,指定的字段为“处理小结”。 img

配置“提交”自定义按钮的工作流。 img

(3)任务审核【审核通过,则状态变为“已完成”;审核驳回,则状态变为“被驳回”】

任务审核是通过自定义按钮实现的,具体实现如下:

在“任务池-待审核”菜单中,新增“通过”、“驳回”自定义按钮。 img

配置“通过”、“驳回”自定义按钮。 img img

配置“通过”、“驳回”自定义按钮的工作流。 img img

4. 配置应用权限

根据《任务管理》应用需求,配置应用使用者权限范围。

基本流程:

(1)应用权限:img

(2)应用权限配置:img

根据《任务管理》应用需求,需要有领导(分配和审核任务)和员工(执行和提交任务)角色,需对角色配置权限组(项):

(1)领导(分配和审核任务) img

(2)员工(执行和提交任务) img

5. 配置搜索功能

根据《任务管理》应用需求,配置应用搜索功能(按钮)。

搜索配置:img

配置完成后,可搜索查询数据:

搜索查询: img img

results matching ""

    No results matching ""