审批/备案

首先看审批流程。如果用户不是 hr,显示一个审批对话框,如果用户是 hr,则显示备案对话框。其实,无论审批还是备案,都不过是调用服务器的相应接口而已。无非是 hr 没有驳回操作而已。所以我们都用一个 approve 方法来处理:

approve(task, username, agree) {let params = {};params.username = username;params.taskId = task.taskId;params.agree = agree;if (username == task.leader) {_leaderApprove(params).then(res => {if (res.data.success == true) {this.$Message.success("审批成功");this.todoList();}else{this.$Message.error("出错了");}});} else if (username == task.director) {_directorApprove(params).then(res => {if (res.data.success == true) {this.$Message.success("审批成功");this.todoList();}else{this.$Message.error("出错了");}});} else if (username == task.hr) {_hrRecord(params).then(res => {if (res.data.success == true) {this.$Message.success("备案成功");this.todoList();}else{this.$Message.error("出错了");}});}},

在这里,对用户身份进行判断,从而调用不同的后台接口来进行审批、驳回、备案处理。

重新提交

重新提交时,有可能用户会对原来的表单进行修改,比如修改请假天数。因此,如果用户要重新提交,需要显示一张表单,允许用户编辑请假信息。这里我们使用了 Drawer 组件。

首先定义自己的 Drawer,自定义 Drawer 和一般的组件没有太大区别。新建一个 Edit.vue 文件,内容如下:

<template><div><!-- <router-view/> --><Drawer :closable="true" width="90" v-model="isShow"><br/><br/><Row style="margin-bottom:1%;border-top:1px solid #ccc;padding-top:2%"><Col span="12" style="font-size:16px">请假事由</Col><Col span="12"><i-input v-model="task.reason" placeholder="请假的原因" style="width:200px;outline:none"></i-input></Col></Row><Row style="margin-bottom:1%"><Col span="12" style="font-size:16px">开始日期</Col><Col span="12"><DatePickertype="date"v-model="task.date"placeholder="从哪天开始请假"format="yyyy-MM-dd"style="width: 200px"></DatePicker></Col></Row><Row style="margin-bottom:1%;"><Col span="12" style="font-size:16px">请假天数</Col><Col span="12"><i-input v-model="task.days" placeholder="0" style="width:200px;outline:none"></i-input></Col></Row><Row style="margin-bottom:1%;border-top:1px solid #ccc;padding-top:2%"><Col span="24"><i-button type="default" @click="submitApplication()">提交</i-button></Col></Row></Drawer></div>
</template>
<script>
import { _submitApplication } from "@/api/data";
export default {name: "edit",data() {return {isShow: false,task: {}};},isLogin() {let username = this.$store.state.username;if (username == null || username === "") {this.$Message.error({content: "无效的用户名,请重新登录",duration: 4,closable: true});return false;} else {return true;}},methods: {isLogin() {let username = this.$store.state.username;if (username == null || username === "") {this.$Message.error({content: "无效的用户名,请重新登录",duration: 4,closable: true});return false;} else {return true;}},show(task) {this.task = task;this.isShow = true;},//提交submitApplication() {let username = this.$store.state.username;if (this.isLogin() == false) {// 如果未登录this.$Message.error("请先登录");return;}if (username == this.task.assignee && username == this.task.applicant) {_submitApplication(this.task).then(res => {if (res.data.success == true) {this.$Message.success("请假提交成功");// 子组件向父组件发送 onSubmit 事件this.$emit('onSubmit',this.task);this.isShow = false;} else {this.$Message.error("出错了");}});} else {this.$Message.error("没有权限操作");this.isShow = false;}}}
};
</script>

首先是 isShow 这个变量,它绑定到了 Drawer 的 v-modal 属性,可以用它来控制 Drawer 的显示与隐藏。然后是 show 方法,这个方法用于给父组件(即主页面)调用并显示 Drawer,同时将主页面中的参数(比如 Task)传递给 Drawer。当用户点击提交按钮,调用 submitApplication 方法,在这个方法请求服务器接口。注意,当请求成功后,会调用 this.$emit 发送一个 onSubmit 事件。我们可以在父组件 Main.vue 中监听这个事件。通过这种方式,子组件就能和父组件通讯。

接下来在主页面 Main.vue 中引入这个 Drawer 组件:

import edit from "@/views/Edit.vue";export default {components:{edit},

同时在模板中使用 edit 标签:

<edit ref="drawer" @onSubmit="todoList()"/>

ref 属性定义 drawer 组件的引用名。方便我们通过 this.$refs 来引用这个组件。
这里的 @onSubmit 是 Drawer 中自定义的事件。这表示当 Drawer 发生 onSubmit 事件时,父组件会调用 todoList 方法。也就是说,如果用户重新提交申请成功,待办列表会被刷新。

当用户点击待办列表中的“办理”按钮时,如果用户身份是 hr,则会调用 showEdit 方法。在 showEdit 方法中,调用 drawer 中定义的 show 方法,从而显示出 Drawer 组件并将待办任务作为参数传递给 Drawer:

showEdit(task) {console.log('1235:',task)this.$refs.drawer.show(task);
},

一个二级审批流程的具体实现(4)相关推荐

  1. JIRA中的并联审批流程定制

    JIRA号称可以跟踪任何事务,让JIRA的流程来匹配团队的工作流程,而不是让你的团队适应JIRA的工作流程.但是在实践中,有些有些流程用JIRA还是比较困难的,比如并联审批流程,一个并联审批流程需求大 ...

  2. 一个简单的审批流程系统设计

    一个简单的审批流程系统设计 1 背景 ​ 最近在做一个企业管理系统的外包,该管理系统主要分为两个端,管理端(web端)和生产端(移动端).管理端的功能有人员管理.项目管理.工作量管理.审批流程管理等, ...

  3. 制造业采购审批流程设计示例

    随着中国企业管理水平的不断提高,OA办公软件的使用越来越广泛了.办公软件实际上是一种管理思想的体现,只有具备了正确的管理思想才能有正确的软件.下面举一个具体的例子来谈谈如何开发OA办公系统的审批流程. ...

  4. 通用用户权限管理系统组件V3.8功能改进说明 - 行政审批流程组件的改进

    其实早在接近10年前就在公司的ERP系统里与审批流程组件,那时候代码是用vb写的,只能按人员进行流转,后来一直想实现一套.NET的行政审批流程组件,一直没精力去写,平时工作上又有很多事情需要处理,一直 ...

  5. 审批流程展示html,Web企业在线审批流程系统

    每天记录学习,每天会有好心情.*^_^* 最近了解了基于Web的企业在线审批流程系统项目,在这个平台记录一下这个基于Web的企业在线审批流程系统项目,方便以后再次使用或学习的时候能够及时的翻阅.在完成 ...

  6. 教程干货——零基础创建简单的在线审批流程

    简介:[零起点入门系列教程]将会带给大家从业务视角出发由浅入深地学习用宜搭实现应用搭建.即便是没有任何代码基础的新手只要跟着系列课程,从0开始慢慢修炼,也能找到成功搭建应用的乐趣.今天第三讲,分步教学 ...

  7. 自动行政审批流程组件的审批流程节点定义【民间称为工作流组件、官方称为审批流程组件】...

    我们在上一篇文章 多年一直想完善的自由行政审批流程组件[2002年PHP,2008年.NET,2010年完善数据设计.代码实现] 中讲述了"自由行政审批流程组件"的用法及设计参考, ...

  8. 自定义审批流程表设计

    我想开发一个OA的自定义审批流程,但对表的设计感觉怎么也设不好,好像达不到想要的效果. 我把表设计贴出来,大家帮忙看看,给点好建议. 流程模块表,我会在后台手动建立,就是那个表的资料要进来审批,那就要 ...

  9. 解析approvalFlow——仿钉钉后台审批流程

    文章目录 1. approval介绍 1.1 功能应用 1.2 项目地址 2. jsxPreview.vue应用 2.1 页面结构 2.2 表单解析 3. 功能拓展 3.1 数据回显 3.2 拓展样式 ...

  10. 使用O2OA二次开发搭建企业办公平台(十三)流程开发篇:报销审批流程表单开发...

    本博客为O2OA系列教程.O2OA使用手册,教程目录和各章节天梯将在连载完后更新. 使用O2OA二次开发搭建企业办公平台(一)平台部署篇:平台下载和部署 使用O2OA二次开发搭建企业办公平台(二)平台 ...

最新文章

  1. 普通平键的主要尺寸有_快来收下这份家装尺寸表,衣柜不再鸡肋
  2. Windows UWP开发系列 – 3D变换
  3. 拖动去掉边框的JFrame
  4. java进行md5运算(Java类函数调用)
  5. Important table for SEGW
  6. [翻译] 学习iOS开发的建议:如何从菜鸟到专家
  7. POJ3126 Prime Path(BFS)
  8. Python自动关机GUI程序
  9. 编译DPDK遇到make: *** /lib/modules/3.10.0-693.el7.x86_64/build: no such file or dirortory
  10. VS隐藏菜单插件 Hide Main Menu
  11. 手机邮箱如何注册?邮箱格式如何填写?
  12. MySQL 事务隔离级别
  13. 小红书去水印源码算法
  14. 杨辉三角 118.杨辉三角 119.杨辉三角Ⅱ(数学解法)
  15. java影射射射...
  16. office Excel 加载加载项时出错 解决办法
  17. 职场5大潜规则不可不知
  18. 基于.net开发chrome核心浏览器【四】
  19. REVIT中一次性导出项目里的族及“项目族管理”操作
  20. 通过 Chainlink Proof of Reserve 来验证质押资产

热门文章

  1. 数据结构(六):二叉树的创建、递归遍历与非递归遍历、层次遍历
  2. html设置颜色从上到下渐变效果图,通过css3背景控制属性+使用颜色过渡实现渐变效果...
  3. Ubuntu桌面环境的切换方法
  4. Pycharm整个菜单栏都不见了(包括File\View那一栏)
  5. 红巾翠袖----记张春江讲座
  6. 宝德服务器主板型号在哪看,配Xeon E5620 宝德PR2760T服务器初解析
  7. 06百度之星程序设计大赛题
  8. 计算机信息学院的口号,信息工程学院口号
  9. 娶一房媳妇,憧憬着未来的旖旎
  10. 14款优秀的代码展示网站