基于若依的ruoyi-nbcio流程管理系统增加仿钉钉流程设计(七)

简介: 基于若依的ruoyi-nbcio流程管理系统增加仿钉钉流程设计(七)

更多ruoyi-nbcio功能请看演示系统

gitee源代码地址

前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio

演示地址:RuoYi-Nbcio后台管理系统

这一节主要讲增加延时节点的一些功能

1、首先配置文件增加延时配置

delay: {
    type: "delay",
    content: "等待0分钟",
    properties: {
      title: '延时处理',
      type: "FIXED", //延时类型 FIXED:到达当前节点后延时固定时长 、AUTO:延时到 dateTime设置的时间
      time: 0, //延时时间
      unit: "M", //时间单位 D天 H小时 M分钟
      dateTime: "" //如果当天没有超过设置的此时间点,就延时到这个指定的时间,到了就直接跳过不延时
    }
  },

2、增加延时的相关样式

&.delay::before {
    content: '';
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 4px;
    border-style: solid;
    border-width: 8px 6px 4px;
    border-color: $line-color transparent transparent;
    background: $bg-color;
  }
&.delay{
    &:hover{
      box-shadow: 0 0 0 2px #ff9431, 0 0 5px 4px rgba(0, 0, 0, 0.2);
    }
    .header{
      background-color rgb(242, 86, 67)
    }
  }

3、增加延时属性的页面

<!-- 延时处理 -->
    <section  v-if="value && isDelayNode()" style="padding-left: 1rem;">
      <div>
        <div style="margin-bottom: 20px">
          <p class="item-desc">延时方式</p>
          <el-radio-group v-model="value.properties.type" size="small">
            <el-radio-button label="FIXED">固定时长</el-radio-button>
            <el-radio-button label="AUTO">自动计算</el-radio-button>
          </el-radio-group>
        </div>
        <div v-if="value.properties.type === 'FIXED'">
          <el-input style="width: 180px;" placeholder="时间单位" size="small" type="number" v-model="value.properties.time">
            <el-select style="width: 75px;" v-model="value.properties.unit" slot="append" placeholder="请选择">
              <el-option label="天" value="D"></el-option>
              <el-option label="小时" value="H"></el-option>
              <el-option label="分钟" value="M"></el-option>
            </el-select>
          </el-input>
          <span class="item-desc"> 后进入下一步</span>
        </div>
        <div class="item-desc" v-else>
          <el-time-picker value-format="HH:mm:ss" style="width: 150px;" size="small" v-model="value.properties.dateTime" placeholder="任意时间点"></el-time-picker>
          <span class="item-desc"> 后进入下一步</span>
        </div>
      </div>
    </section>

4、延时页面确认的逻辑

/**
     *  延时节点确认保存
     */
    delayNodeComfirm() {
      console.log("delayNodeComfirm this.value",this.value)
      let content = ''
      if(this.value.properties.type === "FIXED") {
          content = "等待" + this.value.properties.time + "分钟"
      } else if (this.value.properties.type === "AUTO") {
          content = "到当天" +  this.value.properties.dateTime
      } else {
      }
      const formOperates = this.startForm.formOperates.map(t=>({formId: t.formId, formOperate: t.formOperate}))
      Object.assign(this.properties, this.value.properties, {formOperates})
      this.$emit("confirm", this.properties, content || '请设置延时时间');
      this.visible = false;
    },

5、对延时节点错误的检查页面

} else if (showErrorDelayTip) { //对延时节点的错误检查做特殊处理
    selfNode = (
        <div class="node-wrap">
          <div class={`node-wrap-box ${data.type} ${ showErrorDelayTip  ? 'error' : ''}` }>
            <el-tooltip content="未设置延时时间" placement="top" effect="dark">
              <div class="error-tip" onClick={this.eventLancher.bind(ctx, "edit", data)}>!!!</div>
            </el-tooltip>
            {nodes[data.type].call(ctx, ctx, data, h)}
            {addNodeButton.call(ctx, ctx, data, h)}
          </div>
        </div>
      );
    }

6、校验延时子节点必填项完整性

/**
   * 校验延时子节点必填项完整性
   * @param {Node} node - 节点数据
   */
  static checkDelayNode ( node, parent ) {
    let valid = true
    if (node.properties.type === "AUTO") {
      if ((node.properties.dateTime || "") === ""){
        valid = false
      }
    } else {
      if (node.properties.type === "FIXED" && node.properties.time <= 0) {
        valid = false
      }
    }
    return valid
  }

7、效果图


相关文章
|
7月前
|
XML JSON 前端开发
基于若依的ruoyi-nbcio流程管理系统仿钉钉流程json转bpmn的flowable的xml格式(支持并行网关)
基于若依的ruoyi-nbcio流程管理系统仿钉钉流程json转bpmn的flowable的xml格式(支持并行网关)
365 3
|
4月前
|
存储 安全 API
"解锁企业级黑科技!用阿里云视觉智能打造钉钉级人脸打卡系统,安全高效,让考勤管理秒变智能范儿!"
【8月更文挑战第14天】随着数字化办公的发展,人脸打卡成为企业考勤的新标准。利用阿里云视觉智能开放平台构建类似钉钉的人脸打卡系统,其关键在于:高精度人脸识别API支持复杂场景下的快速检测与比对;活体检测技术防止非生物特征欺骗,确保安全性;云端存储与计算能力满足大数据处理需求;丰富的SDK与API简化集成过程,实现高效、安全的考勤管理。
106 2
|
4月前
|
XML 算法 API
访问者模式问题之钉钉审批流程配置为什么适合使用访问者模式
访问者模式问题之钉钉审批流程配置为什么适合使用访问者模式
|
6月前
|
人工智能 移动开发 IDE
安利几款与钉钉平台无缝集成打通账号认证的企业文档管理系统
钉钉是很多中小企业都爱用的产品,开通账号就能直接使用了,应用生态非常丰富,尤其是AI技术的应用,走在行业前列。但仍有很多企业对于全面拥抱SaaS服务充满了顾虑,尤其在内部资料的管理这块,即使钉钉在线文档已经提供了非常优秀的协作体验,不少客户仍更偏爱私有部署在局域网里面的企业文档管理系统。那么能将企业内部部署的文档管理系统集成到钉钉平台上面,和钉钉文档并行使用呢?市面上又有哪些企业文档管理系统软件支持与钉钉的集成呢?这也是很多企业客户的疑问。
安利几款与钉钉平台无缝集成打通账号认证的企业文档管理系统
|
7月前
|
XML 移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统里修正仿钉钉流程部门主管与多实例转xml的bug
基于若依的ruoyi-nbcio流程管理系统里修正仿钉钉流程部门主管与多实例转xml的bug
49 1
|
7月前
|
前端开发
基于若依的ruoyi-nbcio流程管理系统仿钉钉流程初步完成转bpmn设计(还有bug,以后再修改)
基于若依的ruoyi-nbcio流程管理系统仿钉钉流程初步完成转bpmn设计(还有bug,以后再修改)
105 0
|
存储 弹性计算 安全
成功案例-钉钉 | 学习笔记
快速学习 成功案例-钉钉
406 0
|
存储 弹性计算 安全
案例分享——钉钉|学习笔记
快速学习 案例分享——钉钉
379 0
|
存储 弹性计算 安全
案例分享——钉钉
rds数据库 阿里云为钉钉提供了安全性和整体服务的稳定性
案例分享——钉钉

热门文章

最新文章