联新禅道自动创建主任务

进入冲刺故事页后批量创建各个故事的主任务

// ==UserScript==
// @name         联新禅道自动创建主任务
// @namespace    https://example.com
// @version      1.0.3
// @description  进入冲刺故事页后批量创建各个故事的主任务
// @author       梁殿豪
// @match        http://10.2.3.109:1024/zentao/project-story-*.html
// @match        http://183.62.162.28:1024/zentao/project-story-*.html
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
  'use strict';
  // 监听页面加载完成事件
$(document).ready(function() {
                    // 获取故事列表
      var tbody = document.querySelector('#storyTableList');
              // 获取tbody中的所有tr元素
      var stories = Array.from(tbody.querySelectorAll('tr'));

      var needCreated = stories.some(function(story) {
          return story.querySelector('.linkbox').textContent.trim() == 0;
      });
      if (needCreated) {
      var confirmed = confirm("是否需要批量创建禅道主任务?");

      // 根据用户选择执行相应操作
      if (confirmed) {
          // 用户选择了需要批量创建任务
          var assignee = prompt("请输入指派人:");
          if (assignee) {
              // 遍历每个故事
              stories.forEach(function(story) {
                  var url = story.querySelector('.c-actions').querySelector('a:first-child').href;
                  // 使用正则表达式提取指定字段
                  var regex = /task-create-(\d+)-/;
                  var match = url.match(regex);
                  var projectId = match[1];
                 
                  var storyId = story.getAttribute('data-id');
                  // 获取故事标题
                  var name = story.querySelector('.c-name').textContent.trim();
                  name = storyId + ':' + name;
                  var pri = story.querySelector('.c-pri').textContent.trim();
                  var taskNum = story.querySelector('.linkbox').textContent.trim();
                   console.log(taskNum);
                  if (taskNum != 0) {
                      return;
                  }
                  // 创建任务的请求参数
                  var params = new URLSearchParams();
                  params.append('name', name);
                  params.append('assignedTo[]', assignee);
                  params.append('type', 'devel');
                  params.append('project', projectId);
                  params.append('status', 'wait');
                  params.append('story', storyId);
                  params.append('pri', pri);
                  params.append('module', '0');

                  // 发送创建任务的请求
                  fetch(url, {
                      method: 'POST',
                      headers: {
                          'Content-Type': 'application/x-www-form-urlencoded',
                          'Accept':'application/json, text/javascript, */*; q=0.01'
                      },
                      body: params
                  })
                      .then(function(response) {
                      // 创建任务成功
                      if (response.ok) {
                      } else {
                          alert('任务创建失败');
                      }
                  })
                      .catch(function(error) {
                      console.error('创建任务请求失败', error);
                  });
              });
               alert('任务创建成功');
          }}}
  });
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址