工作流引擎函数配置(个人备用)

  • 工作流函数例子

    • 学习例子
    (function (form, data) {
      // 业务相关代码
      try {
        let taskId = window.$getQueryString("taskId");
        // 刷新验收人控件,重新请求数据
        if (data.value) {
          window.$refreshField("accepterGroup");
          setTimeout(() => {
            // console.log('accepterGroup', window.taskCache.dataSource)
            if (
              !taskId &&
              window.taskCache.dataSource &&
              window.taskCache.dataSource.accepterGroup.length > 0
            ) {
              const currentUser = form.getFieldValue("currUserId");
              // 判断登录用户是否存在当前场站
              const isHasCurrentUser =
                window.taskCache.dataSource.accepterGroup.find(
                  (accepter) => accepter.value === currentUser.value
                );
              if (isHasCurrentUser) {
                form.setFieldsValue({
                  accepterGroup: [
                    {
                      key: isHasCurrentUser.key,
                      label: isHasCurrentUser.label,
                      value: isHasCurrentUser.value,
                    },
                  ],
                });
              } else {
                form.setFieldsValue({
                  accepterGroup: [],
                });
              }
            }
          }, 2000);
        }
      } catch (err) {
        console.log(err);
      }
    })(form, data);
    
    • 字段初始化例子
    (function (form, data) {
      // 业务相关代码
      try {
        const fieldKey = "select_1670998497194";
        const fieldMultiple = false;
        const fieldName = "责任部门负责人";
    
      if (!data) {
          data = fieldMultiple ? [] : {};
        }
    
        const taskId = window.$getQueryString("taskId");
        const fieldValue = window.$getQueryString(fieldKey);
        setTimeout(() => {
          if (
            !taskId &&
            fieldValue &&
            !(fieldMultiple ? data.length : data.key || data.value) &&
            window.taskCache.dataSource &&
            window.taskCache.dataSource[fieldKey] &&
            window.taskCache.dataSource[fieldKey].length > 0
          ) {
            const item = fieldMultiple
              ? window.taskCache.dataSource[fieldKey].filter((x) =>
                  fieldValue.split(",").includes(x.value)
                )
              : window.taskCache.dataSource[fieldKey].find(
                  (x) => fieldValue === x.value
                );
            console.log(`${fieldName}初始化执行`, item);
            item &&
              form.setFieldsValue({
                [fieldKey]: item,
              });
          }
        }, 2000);
      } catch (err) {
        console.log(err);
      }
    })(form, data);
    
    • 表单初始化例子
    (function (form, data) {
      // 业务相关代码
      try {
        const fieldKey = "input_1670997824638";
        const formName = "任务延期申请单";
    
        const taskId = window.$getQueryString("taskId");
        const fieldValue = window.$getQueryString(fieldKey);
        setTimeout(() => {
          if (!taskId && fieldValue && !(fieldMultiple ? data.length : data.key || data.value)) {
            const obj = {
              input_1670997824638: window.$getQueryString("input_1670997824638"),
              input_1670999952378: window.$getQueryString("input_1670999952378"),
              date_1670997855922: window.$getQueryString("date_1670997855922"),
              date_1670997884670: window.$getQueryString("date_1670997884670"),
              // select_1670997900197: window.$getQueryString("select_1670997900197"),
              // select_1670997909159: window.$getQueryString("select_1670997909159"),
              // select_1670997960052: window.$getQueryString("select_1670997960052"),
              date_1670998050147: window.$getQueryString("date_1670998050147"),
              input_1670998110780: window.$getQueryString("input_1670998110780"),
              businessData: window.$getQueryString("businessData"),
            };
            console.log(`${formName}初始化事件`, obj);
            form.setFieldsValue(obj);
          }
        }, 100);
      } catch (err) {
        console.log(err);
      }
    })(form, data);
    
    • 用户选择树例子
    (function (form, data) {
      // 业务相关代码
      try {
        const fieldKey = "select_1670998497194";
        const fieldMultiple = false;
        const fieldName = "责任部门负责人";
    
        console.log(`${fieldName}onChange事件`, data);
        if (!data) {
          data = fieldMultiple ? [] : {};
        }
        
        const taskId = window.$getQueryString("taskId");
        const fieldMzKey = fieldKey + "mz";
        const fieldValue = window.$getQueryString(fieldKey);
        const fieldMzValue = window.$getQueryString(fieldMzKey);
        setTimeout(() => {
          if (
            !taskId &&
            fieldValue &&
            fieldMzValue &&
            !(fieldMultiple ? data.length : data.key || data.value)
          ) {
            console.log(`${fieldName}初始化执行`, fieldValue, fieldMzValue);
            form.setFieldsValue({
              [fieldKey]: fieldMultiple
                ? [{ key: fieldValue, value: fieldValue, label: fieldMzValue }]
                : { key: fieldValue, value: fieldValue, label: fieldMzValue },
            });
          }
        }, 2000);
      } catch (err) {
        console.log(err);
      }
    })(form, data);
    
    • 空白例子
    (function (form, data) {
      // 业务相关代码
    })(form, data);
    
    • 表单初始化加查人
    (function (form, data) {
      // 业务相关代码
      const fieldName = "配合部门";
      const fieldKey = "select_1670997283843";
      const fieldMultiple = true;
      const fieldKeyLink = "select_1670998511081";
      const fieldLinkMultiple = true;
    
      console.log(`${fieldName}onChange事件`, data);
      const taskId = window.$getQueryString("taskId");
      if (!taskId) {
        init();
      } else {
        // 延时调用link
        setTimeout(() => {
          link();
        }, 2000);
      }
      function init() {
        const fieldValue = window.$getQueryString(fieldKey);
        // 如果有字段传参 继续
        if (fieldValue) {
          // 如果没值,则进行延时
          if (!(fieldMultiple ? data.length : data.key || data.value)) {
            setTimeout(() => {
              // 如果下拉选项加载好了,就查找对应选项
              if (
                window.taskCache.dataSource &&
                window.taskCache.dataSource[fieldKey].length > 0
              ) {
                const item = fieldMultiple
                  ? window.taskCache.dataSource[fieldKey].filter((x) =>
                      fieldValue.split(",").includes(x.value)
                    )
                  : window.taskCache.dataSource[fieldKey].find(
                      (x) => fieldValue === x.value
                    );
                console.log(`${fieldName}初始化执行`, item);
                // 如果找到,就赋值
                if (item) {
                  form.setFieldsValue({
                    [fieldKey]: item,
                  });
                }
              }
            }, 2000);
          } else {
            // 如果有选中,就调用link
            link();
          }
        }
      }
      function link() {
        // 如果有值,继续
        if (fieldMultiple ? data.length : data.key || data.value) {
          console.log(`${fieldName}刷新关联`, fieldKeyLink);
          // 清空并刷新关联负责人组件
          if (fieldKeyLink) {
            // form.setFieldsValue({
              // [fieldKeyLink]: fieldLinkMultiple ? [] : undefined,
            // });
            window.$refreshField(fieldKeyLink);
          }
        }
      }
    })(form, data);
    
    • 表单提交事件
    (function (form, data) {
      // 业务相关代码
      // 获取责任部门和配合部门
      console.log("submit form", data);
      const zrbm = data["select_1670997259007"] || {};
      const phbm = data["select_1670997283843"] || {};
      // 如果责任部门和配合部门都有选中,且是包含关系,则返false
      if (zrbm && phbm) {
        if (phbm.key === zrbm.key) {
          window.$message.warn("责任部门和配合部门不能相同");
          return false;
        }
      }
    })(form, data);
    (function (form, data) {
      // 业务相关代码
      // 获取责任部门和配合部门
      console.log("submit form", data);
      const zrbm = data["select_1670997259007"] || {};
      const phbm = data["select_1670997283843"] || [];
      // 如果责任部门和配合部门都有选中,且是包含关系,则返false
      if (zrbm && phbm.length) {
        if (phbm.map(v => v.key).includes(zrbm.key)) {
          window.$message.warn("责任部门和配合部门不能相同");
          return false;
        }
      }
    })(form, data);
    
    • 表单提交事件的计划延期判断
    (function (form, data) {
      console.log("submit form", data);
    
      // 如果责任部门和配合部门都有选中,且是包含关系,则返false
      const zrbm = data["select_1670997900197"] || {};
      const phbm = data["select_1670997909159"] || {};
      if (zrbm && zrbm.key && phbm && phbm.key) {
        if (phbm.key === zrbm.key) {
          window.$message.warn("责任部门和配合部门不能相同");
          return false;
        }
      }
    
      // 如果计划延期日期不大于计划完成日期,则返false
      const jhwcrq = data["date_1670997884670"];
      const jhyqrq = data["date_1670998050147"];
      if (
        jhwcrq &&
        jhwcrq &&
        new Date(jhyqrq).getTime() <= new Date(jhwcrq).getTime()
      ) {
        window.$message.warn("计划延期完成日期限制在计划完成日期之后");
        return false;
      }
    })(form, data);
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值