您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Auto fill vms form fields
// ==UserScript== // @name JD VMS Integration // @namespace com.jd.vms // @version 1.0.4 // @description Auto fill vms form fields // @author tinymins // @match http://vms.jd.com/Integration/Apply // @icon http://vms.jd.com/assets/img/favicon.ico // @grant none // ==/UserScript== const getConfig = () => { let config = {}; try { config = JSON.parse(window.localStorage['com.derzh.jd.vms.integration.apply.preset']); } catch (error) {} if (typeof config !== 'object') { config = {}; } return Object.assign({ apply_type: '4', version_server: '0', test_content: '无', module_id: '73', self_test: '0', modification_explanation: '无', affect_range: '无', interface_name: '无', test_data: '无', test_address: 'http://beta-ace.jd.com/launch/', code_branch: 'prod', review_result: '1', request_memo: '无', code_review_operator: '', product_operator: '', test_operator: '', }, config); }; $('#cancel-apply-request').after('<button type="button" class="btn btn-default pull-right">存为预设</button>').next().click(() => { window.localStorage['com.derzh.jd.vms.integration.apply.preset'] = JSON.stringify({ apply_type: $('#apply_type').val(), version_server: $('#version_server').val(), test_content: $('#test_content').val(), module_id: $('#module_id').val(), self_test: $('#self_test').val(), modification_explanation: $('#modification_explanation').val(), affect_range: $('#affect_range').val(), interface_name: $('#interface_name').val(), test_data: $('#test_data').val(), test_address: $('#test_address').val(), code_branch: $('#code_branch').val(), review_result: $('#review_result').val(), request_memo: $('#request-memo').val(), code_review_operator: $('#code-review-operator').val(), product_operator: $('#product-operator').val(), test_operator: $('#test-operator').val(), }); }); $('#jacp_card_id').after('<button style="margin: 5px; height: 30px; transform: translateY(2px);">行云</button>').next().click(() => { if ($('#jacp_card_id').val() === '-1') { return alert('请先选择卡片'); } window.open(`http://jagile.jd.com/teamspace/cardlist/tf_project/carddetail?cardId=${$('#jacp_card_id').val()}`); }); $('#jacp_card_id').after('<button style="margin: 5px; height: 30px; transform: translateY(2px);">FILL</button>').next().click(() => { if ($('#jacp_card_id').val() === '-1') { return alert('请先选择卡片'); } const config = getConfig(); $('#apply_type').val(config.apply_type).change(); const dateNextMonth = new Date(); dateNextMonth.setTime(dateNextMonth.getTime() + 86400e3 * 30); $('#expect_online_date').val( [dateNextMonth.getFullYear(), dateNextMonth.getMonth() + 1, dateNextMonth.getDate()] .map(a => (a < 10 ? `0${a}` : a)) .join('-'), ); $('#version_server').val(config.version_server); $('#test_content').val(config.test_content); $('#module_id').val(config.module_id).change(); $('#self_test').val(config.self_test); $('#modification_explanation').val(config.modification_explanation); $('#affect_range').val(config.affect_range); $('[name="degrade_switch_apply"][value="0"]+ins').click(); $('[name="pressure_test"][value="0"]+ins').click(); $('#interface_name').val(config.interface_name); $('#test_data').val(config.test_data); $('#test_address').val(config.test_address); $('#code_branch').val(config.code_branch); $('#review_result').val(config.review_result).change(); $('#request-memo').val(config.request_memo); const fetch = (url) => { const xml = new XMLHttpRequest(); xml.open('GET', url, false); xml.withCredentials = true; xml.send(); return xml.responseText; }; const fill_erp_tags = async (elid, erps) => { const data = await Promise.all( erps .split(',') .map(s => s.trim()) .filter(_ => _) .map( erp => $.ajax(`http://vms.jd.com/user/get_user_base_info?keyword=${erp}`) .then(res => res.info.data.find(({ user_name }) => user_name === erp)), ) .filter(_ => _), ); const jqEl = $(`#${elid}`); jqEl.tagsinput('removeAll'); data.filter(_ => _).forEach(v => jqEl.tagsinput('add', v)); }; const card = JSON.parse(fetch(`http://jagile.jd.com/jacp/api/v1/bizSpaceCard/cardDetail?id=${jacp_card_dom.val()}`)); const roles = JSON.parse(fetch(`http://jagile.jd.com/jacp/api/v1/bizConfig/space/kv/${card.data.spaceId}`)) .data.reduce((a, b) => { if (String(b.name + b.group).match(/测试/u)) { a[b.code] = 1; } return a; }, {}); fill_erp_tags('code-review-operator', config.code_review_operator); fill_erp_tags('product-operator', card.data.creator.erp || config.product_operator); fill_erp_tags('test-operator', card.data.personHours.find(a => roles[a.roleCode])?.erp || config.test_operator); });
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址