/** * 初始化交付物表单内容。 * Render deliverable form data. */ window.renderRowData = function($row, index, row) { index = index + 1; $.each(['whenClosed'], function(i, value) { if(row) { $row.find('[data-name=' + value + ']').empty(); if(value == 'whenClosed' || row.key == 'project_scrum' || row.key == 'product_scrum' || row.key == 'product_waterfall' || row.key == 'project_waterfall') { if(row[value]) { $.each(row[value], function(key, itemObject) { itemHTML = "
"; $row.find('[data-name=' + value + ']').append("
" + itemHTML + '
'); new zui.Picker('#deliverable' + index + value + key, {items: [deliverables[itemObject.deliverable]], name: 'deliverable[' + index + ']['+ value +'][' + key + ']', defaultValue: itemObject.deliverable}); }); } else { itemHTML = ''; itemHTML += "
"; itemHTML += "
"; $row.find('[data-name=' + value + ']').append("
" + itemHTML + '
'); new zui.Picker('#deliverable' + index + value + '0', {items: [], name: 'deliverable[' + index + ']['+ value +'][0]', defaultValue: ''}); new zui.Picker('#deliverable' + index + value + '1', {items: [], name: 'deliverable[' + index + ']['+ value +'][1]', defaultValue: ''}); } } else { $row.find('[data-name=' + value + ']').append('
' + sprintTips + '
'); } } }); } /** * 获取交付物下拉列表。 * Get deliverable list. */ window.getDeliverables = function(event) { const method = $(event.target).closest('div.deliverable').data('value'); const model = $(event.target).closest('div.deliverable').data('model'); const $picker = $(event.target).zui('picker'); const link = $.createLink('workflowgroup', 'ajaxGetDeliverable', 'model=' + model + '&method=' + method + '¤t=' + $picker.$.state.value); const formData = getFormData(); $.post(link, formData, function(relations) { relations = JSON.parse(relations); $picker.render({items: relations}); }); } /** * 获取表单提交内容。 * Get Form data. */ window.getFormData = function() { const form = document.querySelector('form'); const formData = {}; for(let element of form.elements) { if(element.name) formData[element.name] = element.value; } return formData; } /** * 添加一行交付物节点。 * Add a node. */ window.addNode = function(event) { const $row = $(event.target).closest('td'); const key = $(event.target).closest('div.deliverable').data('key'); const index = $(event.target).closest('div.deliverable').data('index'); const value = $(event.target).closest('div.deliverable').data('value'); html = "
"; $(event.target).closest('div').after(html); $(event.target).closest('div.deliverable').attr('data-key', key + 1); new zui.Picker('#deliverable' + index + value + key, {items: [], name: 'deliverable[' + index + '][' + value + '][' + key + ']', defaultValue: ''}); checkBtn($row); } /** * 删除一行交付物节点。 * Remove a node. */ window.removeNode = function(event) { if($(event.target).closest('button').hasClass('opacity-0')) return false; $row = $(event.target).closest('td'); $(event.target).closest('div').remove(); checkBtn($row); } /** * 检查删除交付物按钮是否可以点击。 * check delete btn. */ window.checkBtn = function(row) { if($(row).find('div.flex').length >= 2) { $(row).find('.form-batch-btn[data-type=remove]').removeClass('opacity-0 cursor-default'); } else { $(row).find('.form-batch-btn[data-type=remove]').addClass('opacity-0 cursor-default'); } }