运维知识库维护工具
// ==UserScript== // @name 运维专业化团队-知识库维护工具 // @namespace http://218.4.136.126:8881/epoint-jxgl-web // @version 1.4 // @description 运维知识库维护工具 // @author wl // @match https://fdoc.epoint.com.cn/onlinedoc/kfzknowledge/kfzknowledge/handlequestionworkflow?* // // @require https://unpkg.com/[email protected]/lib/index.js // @grant none // ==/UserScript== (function () { 'use strict'; //#region 基础方法 var mini = window.mini, $ = window.$, epoint = window.epoint, SrcBoot = window.SrcBoot, document = window.document, Util = window.Util, s_Html = window.s_Html, JSON = window.JSON, window_url = window.location.href, website_host = window.location.host; // var link = document.createElement("link"); // link.rel = "stylesheet"; // link.type = "text/css"; // link.href = "https://unpkg.com/element-ui/lib/theme-chalk/index.css"; // var head = document.getElementsByTagName("head")[0]; // head.appendChild(link); // var script = document.createElement("script"); // link.src = "https://unpkg.com/element-ui/lib/index.js"; // var body = document.getElementsByTagName("body")[0]; // script.appendChild(link); // var proxyUrl = "https://bird.ioliu.cn/v2"; const SERVER_URL = "https://levideo.epoint.com.cn:1235/ga-se"; const ISSUE_LIST_OF_DEMAND = "/demand/issue/list-of-demand"; const ISSUE_FIX = "/demand/issue/fix"; const ISSUE_DELETE = "/demand/issue/delete"; const request = { post: function (path, data, success, sync) { let settings = { "async": sync ? false : true, "url": SERVER_URL + '/rest' + path, // "url": 'http://192.168.161.12:8092/ga-se/rest' + path, "method": "POST", "headers": { "Content-Type": "application/x-www-form-urlencoded", "Authorization": "Bearer " + getCookie("access_token") }, "data": data, dataType: "json" } $.ajax(settings).done(success); } } var grids = {}, demandGuid; //#endregion 基础方法 //#region 需求流程处理页面 if (window_url.indexOf("handlequestionworkflow?") != -1 ) { // 需求信息 const DEMAND_INFO = '/demand/info'; // 签收 const DEMAND_DESIGN_INFO = '/demand/design/sign'; // 获取需求信息 var demandInfo = {}; var domToRender = $('#fkxx').find(".btn-group")[0]; var domToolBar = $('.fui-toolbar').children().get(0); // 渲染流程处理页面按钮 //createFeedbackBtn('设计复审', 'sjfs').render(domToRender); //createFeedbackBtn('代码评审', 'dmps').render(domToRender); //createFeedbackBtn('架构评审', 'jgps').render(domToRender); //createFeedbackBtn('符合度评审', 'fhdps').render(domToRender); //createFeedbackBtn('PM-功能评审', 'gnps').render(domToRender); loadBtn(); var signBtn, planBtn; function afterDemandGuidLoad(f) { if (!window.rowguid) { setTimeout(function () { afterDemandGuidLoad(f); }, 100); return; } demandGuid = window.rowguid; f(); } function loadBtn() { signBtn = createBtn("运维团队录入", function () { loadDemandInfo(); var itemdate = ""; $.each(itemdate, function(index, node) { var json = {}; json.projectname =mini.get('projectname').el.innerText.replace("&","111"); json.username = $('.form-control.span2[label="提交人"]').children().html(); json.demandname = mini.get('title').el.innerText.replace("&","111"); json.hopefinishdate = $('.form-control.span2[label="应完成时间"]').children().html(); json.youxian = mini.get('youxian').el.innerText; json.note = mini.get('youxianreason').el.innerText; json.windowurl =window_url.replace(/&/g,"替换符号"); //218.4.136.126:8881 window.open("http://192.168.207.136:8881/epoint-rwgl-web/jxgl/performancerequire/performanceywrequestionadd?data="+epoint.encodeUtf8(JSON.stringify(json)), "_blank"); }); }); signBtn.render(domToolBar); } function loadDemandIssueList() { let container = $('#xqsjps').find('.fui-form')[0], issueType = 'demand'; console.log(container); request.post(ISSUE_LIST_OF_DEMAND, { demandGuid: demandGuid, issueType: issueType, // auditType: auditType }, function (resp) { if (resp.success) { var issueList = resp.custom; var grid = getIssueGrid(issueList); var addBtn = getIssueAddBtn(issueType); var viewBtn = getIssueViewBtn(issueType); var viewAllBtn = getIssueViewAllBtn(issueType); var unfixedViewBtn = getUnfixedIssueViewBtn(issueType); var downloadBtn = getIssueDownloadBtn(issueType); addBtn.render(container); viewBtn.render(container); viewAllBtn.render(container); unfixedViewBtn.render(container); downloadBtn.render(container); grid.render(container); grids[issueType] = grid; } }); } function createBtn(name, f) { var btn = new mini.Button(); btn.addCls('mini-btn-primary'); btn.set({ disableMultiClick: false, text: name }); btn.on('click', f); return btn; } /** * 创建个性化反馈的按钮 * @param {*} name * @param {*} key * @returns */ function createFeedbackBtn(name, key) { let btn = createBtn(name, function () { loadDemandInfo(); request.post('/demand/report', { "demandDTO": JSON.stringify(demandInfo) }, openFeedback); // openFeedback(key); }); function openFeedback(param) { let isproductdemandval = window.isproductdemand.getValue(); let innerprojectguid = mini.get('innerprojectguid').getValue(); epoint.openDialog('添加反馈', 'cpzt/demandmanage/demandfeedbackadd?' + key + '=1&Demandguid=' + demandGuid + '&stepguid=' + window.stepguid + '&isproductdemand=' + isproductdemandval + '&innerprojectguid=' + innerprojectguid + '&projectguid=' + window.projectguid.getValue(), function (ret) { epoint.refresh(['datagrid_feedback']); }, { width: 1200, height: 900 }); } return btn; } /** * 读取需求的基本信息 */ function loadDemandInfo() { var $output = $('.mini-outputtext'); $output.each(function () { var id = $(this).attr('id'); if (id) { var miniOutputText = new mini.get(id); demandInfo[correctId(id)] = miniOutputText.getValue(); } }); var $buttonedit = $('.mini-buttonedit'); $buttonedit.each(function () { var id = $(this).attr('id'); if (id) { var miniButtonEdit = new mini.get(id); demandInfo[correctId(id + "text")] = miniButtonEdit.getText(); } }); function correctId(id) { if (id.endsWith('guidtext')) { return correctId(id.substr(0, id.length - 8) + "name") } if (id.endsWith('text')) { return correctId(id.substr(0, id.length - 4)); } if (id.endsWith('read')) { return correctId(id.substr(0, id.length - 4)); } if (id.endsWith('write')) { return correctId(id.substr(0, id.length - 5)); } return id; } demandInfo.rowguid = demandGuid; console.log(demandInfo); } } // #endregion 需求流程处理页面 //#region 反馈页面 if (window_url.indexOf("https://oa.epoint.com.cn/productrelease/cpzt/demandmanage/demandfeedbackadd") != -1) { demandGuid = Util.getUrlParams('Demandguid'); var miniDemandName = window.parent.mini.get('demandname'); var demandname = miniDemandName ? miniDemandName.getValue() : ''; var auditType = ""; // 接口路径 const BODY_STRUCTURE_PATH = '/form/body-structure'; let formInner = $("#fui-form>.form-inner")[0]; let renderInfos = []; // SE-开发复审 if (window_url.indexOf("https://oa.epoint.com.cn/productrelease/cpzt/demandmanage/demandfeedbackadd?fhdps=1") != -1) { $('#feedbackcontent').parents('.form-row').hide(); demandFormInit('/demand/dev/audit', function () { let miniContent = mini.get('feedbackcontent'); let render = renderInfos[0].render; let miniDes = render.findControlByKey('summary'); // 概述 let miniFixDate = render.findControlByKey('planFixDate'); // 修复时间 let miniPassed = render.findControlByKey('passed'); miniContent.setValue( miniDes.getValue() + "<br/>" + "-------------------开发复审情况-------------------" + "<br/>" + "复审结果:" + (miniPassed.getValue() == '是' ? "通过" : "未通过") // + (miniPassed.getValue() == 'true' ? "" : ("<br/>" + "开发修复时间:" + miniFixDate.getText())) ); }); auditType = 'dev_audit'; loadIssues('dev', formInner); loadIssues('design', formInner); } // PM-功能评审 if (window_url.indexOf("https://oa.epoint.com.cn/productrelease/cpzt/demandmanage/demandfeedbackadd?gnps=1") != -1) { $('#feedbackcontent').parents('.form-row').hide(); demandFormInit('/demand/dev/pm-audit', function () { let miniContent = mini.get('feedbackcontent'); let render = renderInfos[0].render; let miniDes = render.findControlByKey('summary'); // 概述 let miniFixDate = render.findControlByKey('planFixDate'); // 修复时间 let miniPassed = render.findControlByKey('passed'); miniContent.setValue( miniDes.getValue() + "<br/>" + "-------------------功能情况-------------------" + "<br/>" + "复审结果:" + (miniPassed.getValue() == '是' ? "通过" : "未通过") // + (miniPassed.getValue() == 'true' ? "" : ("<br/>" + "开发修复时间:" + miniFixDate.getText())) ); }); auditType = 'dev_audit_pm'; loadIssues('dev', formInner); loadIssues('demand', formInner); loadIssues('design', formInner); } // 代码评审 if (window_url.indexOf("https://oa.epoint.com.cn/productrelease/cpzt/demandmanage/demandfeedbackadd?dmps=1") != -1) { $('#feedbackcontent').parents('.form-row').hide(); demandFormInit('/demand/dev/dm-audit', function () { let miniContent = mini.get('feedbackcontent'); let render = renderInfos[0].render; let miniDes = render.findControlByKey('summary'); // 概述 let miniFixDate = render.findControlByKey('planFixDate'); // 修复时间 let miniPassed = render.findControlByKey('passed'); miniContent.setValue( miniDes.getValue() + "<br/>" + "-------------------代码情况-------------------" + "<br/>" + "复审结果:" + (miniPassed.getValue() == '是' ? "通过" : "未通过") // + (miniPassed.getValue() == 'true' ? "" : ("<br/>" + "开发修复时间:" + miniFixDate.getText())) ); }); auditType = 'dev_audit_dm'; loadIssues('dev', formInner); } // 架构评审 if (window_url.indexOf("https://oa.epoint.com.cn/productrelease/cpzt/demandmanage/demandfeedbackadd?jgps=1") != -1) { $('#feedbackcontent').parents('.form-row').hide(); demandFormInit('/demand/dev/dmcc-audit', function () { let miniContent = mini.get('feedbackcontent'); let render = renderInfos[0].render; let miniDes = render.findControlByKey('summary'); // 概述 let miniFixDate = render.findControlByKey('planFixDate'); // 修复时间 let miniPassed = render.findControlByKey('passed'); miniContent.setValue( miniDes.getValue() + "<br/>" + "-------------------代码情况-------------------" + "<br/>" + "复审结果:" + (miniPassed.getValue() == '是' ? "通过" : "未通过") // + (miniPassed.getValue() == 'true' ? "" : ("<br/>" + "开发修复时间:" + miniFixDate.getText())) ); }); auditType = 'dev_audit_dm_cc'; loadIssues('dev', formInner); } // SE-设计安排 if (window_url.indexOf("https://oa.epoint.com.cn/productrelease/cpzt/demandmanage/demandfeedbackadd?sjap=1") != -1) { $('#feedbackcontent').parents('.form-row').hide(); demandFormInit('/demand/design/plan', function () { let miniContent = mini.get('feedbackcontent'); let render = renderInfos[0].render; let miniDes = render.findControlByKey('adjustRecord'); let miniFinishDate = render.findControlByKey('planDate'); let miniHandler = render.findControlByKey('seHandlerGuid'); miniContent.setValue( miniDes.getValue() + "<br/>" + "-------------------计划安排-------------------" + "<br/>" + "设计责任人:" + miniHandler.getText() + "<br/>" + "计划完成时间:" + miniFinishDate.getText() ); }); } // SE-工作结算 if (window_url.indexOf("https://oa.epoint.com.cn/productrelease/cpzt/demandmanage/demandfeedbackadd?gzjs=1") != -1) { $('#feedbackcontent').parents('.form-row').hide(); demandFormInit('/demand/design/balance', function () { let miniContent = mini.get('feedbackcontent'); let render = renderInfos[0].render; let miniDes = render.findControlByKey('adjustRecord'); let miniFinishDate = render.findControlByKey('planDate'); let miniHandler = render.findControlByKey('seHandlerGuid'); miniContent.setValue( miniDes.getValue() + "<br/>" + "-------------------计划安排-------------------" + "<br/>" + "设计责任人:" + miniHandler.getText() + "<br/>" + "计划完成时间:" + miniFinishDate.getText() ); }); } // SE-设计复审 if (window_url.indexOf("https://oa.epoint.com.cn/productrelease/cpzt/demandmanage/demandfeedbackadd?sjfs=1") != -1) { $('#feedbackcontent').parents('.form-row').hide(); demandFormInit('/demand/design/audit', function () { let miniContent = mini.get('feedbackcontent'); let render = renderInfos[0].render; let miniDes = render.findControlByKey('summary'); miniContent.setValue( miniDes.getValue() ); }); // 加载设计问题登记 auditType = 'design_audit'; loadIssues('design', formInner); } /** * 初始化需要提交的表单信息 * @param {*} methodPath 表单提交的接口地址 */ function demandFormInit(methodPath, beforeSave) { request.post(BODY_STRUCTURE_PATH, {path: methodPath}, function (body) { if (body.success) { let vos = body.custom; for (let i = 0; i < vos.length; i++) { let vo = vos[i]; let render = new VORender(vo.structure, formInner); renderInfos.push({ name: vo.name, render: render }); } let miniAdd = mini.get('addClose'); miniAdd.un('click'); miniAdd.on('click', function () { if (!epoint.validate('')) { return; } if (beforeSave) { beforeSave(); } let data = {}; for (var i = 0; i < renderInfos.length; i++) { let renderInfo = renderInfos[i] var itemData = renderInfo.render.getData(); if (i == 0) { itemData.demandname = demandname; itemData.demandguid = demandGuid; } data[renderInfo.name] = JSON.stringify(itemData); } console.log(data); request.post(methodPath, data, function (body) { if (body.success) { window.saveAndClose(); } else { epoint.alert(body.status.text); } }); }); } }, true) } /** * 加载问题清单 * @param {*} issueType 问题类型,demand、design、dev * @param {*} auditType 评审类型,design_audit,dev_audit */ function loadIssues(issueType, container) { request.post(ISSUE_LIST_OF_DEMAND, { demandGuid: demandGuid, issueType: issueType, auditType: auditType }, function (resp) { if (resp.success) { var issueList = resp.custom; var grid = getIssueGrid(issueList); var addBtn = getIssueAddBtn(issueType); var viewBtn = getIssueViewBtn(issueType); var viewAllBtn = getIssueViewAllBtn(issueType); var unfixedViewBtn = getUnfixedIssueViewBtn(issueType); var downloadBtn = getIssueDownloadBtn(issueType); addBtn.render(container); viewBtn.render(container); viewAllBtn.render(container); unfixedViewBtn.render(container); downloadBtn.render(container); grid.render(container); grids[issueType] = grid; } }, true); } } // #endregion 反馈页面 //#region 去掉需求评审统计导出时间限制 if (window_url.indexOf("https://oa.epoint.com.cn/productrelease/cpzt/demandtongji/demanddesigntongjilist") != -1) { window.expExcel = function () { var demandfrom = encodeURI(mini.get('demandfrom').getValue()); var demandrange = encodeURI(mini.get('demandrange').getValue()); var demandtype = encodeURI(mini.get('demandtype').getValue()); var operateStart = encodeURI(mini.get('operateStart').getText()); var operateEnd = encodeURI(mini.get('operateEnd').getText()); var demandStyle = encodeURI(mini.get('demandstyle').getValue()); //add by zy 20201028 var kffinishStart = encodeURI(mini.get('kffinishStart').getText()); var kffinishEnd = encodeURI(mini.get('kffinishEnd').getText()); var leftTreeNodeGuid = encodeURI(mini.get('leftTreeNodeGuid').getValue()); // add by zy 20201111 var demandName = encodeURI(mini.get('demandName').getText()); var projectName = encodeURI(mini.get('projectName').getText()); window.open("demanddesigntongjilistaction.action?cmd=expExcel&demandfrom=" + demandfrom + "&demandrange=" + demandrange + "&demandtype=" + demandtype + "&operateStart=" + operateStart + "&operateEnd=" + operateEnd + "&demandStyle=" + demandStyle + "&kffinishStart=" + kffinishStart + "&kffinishEnd=" + kffinishEnd + "&demandName=" + demandName + "&projectName=" + projectName + "&nodeInfo=" + leftTreeNodeGuid); } } // #endregion 去掉需求评审统计导出时间限制 console.log( window.location); //#region 修改关闭方法,支持跨域回调父页面 if (window_url.indexOf("https://levideo.epoint.com.cn:1235/ga-se/se/demandissue/demandissueadd") != -1) { window.closeCallback = function () { // 解决子页面跨域调用问题 window.opener.postMessage({ operateType: "refresh_grid", param: Util.getUrlParams('type') }, 'https://oa.epoint.com.cn'); window.close(); } } // #endregion 修改关闭方法,支持跨域回调父页面 //#region 获取问题列表 function getIssueAddBtn(issueType) { var btnName = "新增" + (issueType == "demand" ? "需求" : (issueType == "design" ? "设计" : "开发")) + "问题"; var btn = new mini.Button(); btn.set({ disableMultiClick: false, text: btnName, onclick: function () { window.open(SERVER_URL + '/se/demandissue/demandissueadd?demandguid=' + demandGuid + '&type=' + issueType + '&auditType=' + (auditType ? auditType : '')); } }); return btn; } function getIssueViewBtn(issueType) { var btnName = "预览"; var btn = new mini.Button(); btn.set({ disableMultiClick: false, text: btnName, onclick: function () { window.open(SERVER_URL + '/se/demandissue/demandissueview?demandguid=' + demandGuid + '&issuetype=' + issueType + '&audittype=' + (auditType ? auditType : '')); } }); return btn; } function getIssueViewAllBtn(issueType) { var btnName = "预览所有"; var btn = new mini.Button(); btn.set({ disableMultiClick: false, text: btnName, onclick: function () { window.open(SERVER_URL + '/se/demandissue/demandissueview?demandguid=' + demandGuid + '&issuetype=' + issueType + '&audittype='); } }); return btn; } function getUnfixedIssueViewBtn(issueType) { var btnName = "未修复预览"; var btn = new mini.Button(); btn.set({ disableMultiClick: false, text: btnName, onclick: function () { window.open(SERVER_URL + '/se/demandissue/demandissueview?demandguid=' + demandGuid + '&issuetype=' + issueType + '&audittype=' + (auditType ? auditType : '') + '&isfixed=0'); } }); return btn; } function getIssueDownloadBtn(issueType) { var btnName = "下载"; var btn = new mini.Button(); btn.set({ disableMultiClick: false, text: btnName, onclick: function () { window.open(SERVER_URL + '/rest/demand/issue/download?demandGuid=' + demandGuid + '&issueType=' + issueType + '&auditType=' + (auditType ? auditType : '')); } }); return btn; } function getIssueGrid(issueList) { var grid = new mini.DataGrid(); grid.set({ id: 'rowguid', showPager: false, multiSelect: true, idField: "rowguid", columns: [{ width: "50px", type: "checkcolumn", cellCls: "mini-checkcolumn", headerCls: "mini-checkcolumn", hideable: true }, { header: "序", width: "50px", type: "indexcolumn", headerAlign: "center" }, { header: "问题概述", field: "summary", width: "100%", headerAlign: "left" }, { header: "标签", field: "tag", width: "300px", headerAlign: "left" }, { header: "添加时间", field: "operatedate", width: "160px", headerAlign: "center" }, { header: "修复状态 ", width: "80px", align: "center", renderer: onIsFixedRenderer }, { header: "提交状态", width: "80px", align: "center", renderer: onIsSubmitRenderer }, { header: "查看", renderer: onViewRenderer, width: "60px", headerAlign: "center", align: "center" }, { header: "修改", renderer: onEditRenderer, width: "60px", headerAlign: "center", align: "center" }, { header: "修复", renderer: onFixRenderer, width: "60px", headerAlign: "center", align: "center" }, { header: "删除", renderer: onDeleteRenderer, width: "60px", headerAlign: "center", align: "center" }] }); grid.setData(issueList); return grid; } // 修复状态数据 var fixStatus = { 1: { cls: 'dot-success', text: '已修复' }, 0: { cls: 'dot-error', text: '未修复' }, 2: { cls: 'dot-error', text: '无需修复' } }; // 修复状态 function onIsFixedRenderer(e) { var status = fixStatus[e.row.isfixed]; return '<i class="' + status.cls + '"></i>' + status.text; } // 修复状态数据 var submitStatus = { 1: { cls: 'dot-success', text: '已提交' }, 0: { cls: 'dot-warn', text: '未提交' } }; // 提交状态 function onIsSubmitRenderer(e) { var status = submitStatus[e.row.issubmit]; return '<i class="' + status.cls + '"></i>' + status.text; } // 修复 function onFixRenderer(e) { if (e.row.issubmit == '0' || e.row.isfixed == "1") { return; } return epoint.renderCell(e, "action-icon icon-fix", "fixIssue", "epoint_total"); } // 删除 function onDeleteRenderer(e) { if (e.row.classification != 'demand' && e.row.issubmit == '1') { return; } return epoint.renderCell(e, "action-icon icon-remove", "deleteIssue", "epoint_total"); } // 修改 function onEditRenderer(e) { if ( e.row.isfixed == "1") { return; } return epoint.renderCell(e, "action-icon icon-edit", "editIssue", "epoint_total"); } // 删除 function onViewRenderer(e) { return epoint.renderCell(e, "action-icon icon-search", "viewIssue", "epoint_total"); } window.fixIssue = function (e) { console.log(e); epoint.confirm("确认已经修复该问题?", "操作确认", function () { request.post( ISSUE_FIX, {guid: e.rowguid}, function (resp) { if (resp.success) { epoint.showTips('操作成功'); refreshIssueGrid(e.classification); } } ) }); } window.deleteIssue = function (e) { console.log(e); epoint.confirm("确认删除?", "操作确认", function () { request.post( ISSUE_DELETE, {guid: e.rowguid}, function (resp) { if (resp.success) { epoint.showTips('操作成功'); refreshIssueGrid(e.classification); } } ) }); } window.viewIssue = function (e) { top.epoint.openDialog( "问题查看", // 'https://baidu.com', SERVER_URL + '/se/demandissue/demandissuedetail?guid=' + e.rowguid ); } window.editIssue = function (e) { top.epoint.openDialog( "问题查看", // 'https://baidu.com', SERVER_URL + '/se/demandissue/demandissueedit?guid=' + e.rowguid ); } window.refreshIssueGrid = function (issueType) { request.post(ISSUE_LIST_OF_DEMAND, { demandGuid: demandGuid, issueType: issueType, auditType: auditType }, function (resp) { if (resp.success) { var issueList = resp.custom; grids[issueType].setData(issueList); } }); } // 解决子页面跨域调用问题 window.addEventListener('message', function (e) { console.log(e.data); if (e.data.operateType == "refresh_grid") { refreshIssueGrid(e.data.param); } }, false); // #endregion 获取问题列表 /** * 渲染表单控件 * @param {*} vo * @param {*} container */ function VORender(vo, container) { const MAX_COLUMNS = 2; let rows = [], currentRow = { column: 0, rowDom: createRow() }, controls = []; for (let i = 0; i < vo.length; i++) { let controlInfo = vo[i]; if (!controlInfo.colspan) { controlInfo.colspan = 1; } if (controlInfo.colspan + currentRow.column > MAX_COLUMNS) { rows.push(currentRow); currentRow = { column: 0, rowDom: createRow() }; } let control = createMini(controlInfo); control.key = controlInfo.key; controls.push(control); fillRow({ mini: control.mini, name: controlInfo.name, size: controlInfo.colspan }, currentRow.rowDom); currentRow.column += controlInfo.colspan; } if (currentRow.column > 0) { rows.push(currentRow); } for (let i = 0; i < rows.length; i++) { container.append(rows[i].rowDom); } this.getData = function () { let data = {}; for (let i = 0; i < controls.length; i++) { let control = controls[i]; if (control.miniInfo.miniType == 'CheckBox') { data[control.key] = control.mini.getValue() == 'true'; } else { data[control.key] = control.mini.getValue(); if (control.miniInfo.miniType == 'ButtonEdit') { if (control.miniInfo.relatedTextFieldName) { data[control.miniInfo.relatedTextFieldName] = control.mini.getText(); } } } } return data; } this.getControlInfos = function () { return controls; } this.findControlByKey = function (key) { for (var i = 0; i < controls.length; i++) { if (key == controls[i].key) { return controls[i].mini; } } } function createRow() { let row = document.createElement('div'); row.className = 'form-row'; return row; } /** * 创建miniui控件对象 * @param {*} controlInfo * @returns */ function createMini(controlInfo) { let miniInfo = {}; let miniControl; let items = []; switch (controlInfo.type) { case "checkbox": miniControl = new mini.CheckBox(); miniInfo.miniType = "CheckBox"; miniControl.set({}); break; case "dateInput": miniControl = new mini.DatePicker(); miniInfo.miniType = "DatePicker"; miniControl.set({ required: controlInfo.isRequired, width: '250px' }); break; case "singleSelect": miniControl = new mini.RadioButtonList(); miniInfo.miniType = "RadioButtonList"; for (let i = 0; i < controlInfo.items.length; i++) { items.push({ 'value': controlInfo.items[i], 'text': controlInfo.items[i] }) } miniControl.set({ required: controlInfo.isRequired, textField: 'text', valueField: 'value', data: items }); break; case "multiSelect": miniControl = new mini.CheckBoxList(); miniInfo.miniType = "CheckBoxList"; for (let i = 0; i < controlInfo.items.length; i++) { items.push({ 'value': controlInfo.items[i], 'text': controlInfo.items[i] }) } miniControl.set({ required: controlInfo.isRequired, textField: 'text', valueField: 'value', data: items }); break; case "numberInput": miniControl = new mini.TextBox(); miniInfo.miniType = "TextBox"; miniControl.set({ required: controlInfo.isRequired, vtype: 'int' }); break; case "textInput": if (controlInfo.textType || controlInfo.textType == "single") { miniControl = new mini.TextArea(); miniInfo.miniType = "TextArea"; var defaultValue=""; if(controlInfo.key=="appraise"){ defaultValue="完成程度:(优、良、及格、差),设计理解:(优、良、及格、差),自检效果:(优、良、及格、差)\r\n 个人评价:"; } miniControl.set({ required: controlInfo.isRequired, value:defaultValue }); } else { miniControl = new mini.TextBox(); miniInfo.miniType = "TextBox"; miniControl.set({ required: controlInfo.isRequired }); } break; case "dialogSelect": miniControl = new mini.ButtonEdit(); miniInfo.miniType = "ButtonEdit"; miniInfo.relatedTextFieldName = controlInfo.relatedTextFieldName; miniControl.set({ required: controlInfo.isRequired }) miniControl.on("buttonclick", function () { var controlValue = miniControl.getValue(); var param = {}; param[controlInfo.dialogParamName] = controlValue; epoint.openTopDialog('选择' + controlInfo.name, controlInfo.dialogUrl, function (rtnValue) { if (rtnValue && rtnValue != 'close') { var s = rtnValue.split("_SPLIT_"); miniControl.setValue(s[0]); miniControl.setText(s[1]); } }, { 'width': controlInfo.width, 'height': controlInfo.height, param: param }); }); break; case "treeSelect": miniControl = new mini.TreeSelect(); miniInfo.miniType = "TreeSelect"; for (let i = 0; i < controlInfo.items.length; i++) { items.push({ 'value': controlInfo.items[i], 'text': controlInfo.items[i] }) } miniControl.set({ required: controlInfo.isRequired, textField: 'text', valueField: 'value', data: items }); break; } return { miniInfo: miniInfo, mini: miniControl } } /** * 将miniui控件填充到行中 * @param {*} data * @param {*} row * @returns */ function fillRow(data, row) { var mini = data.mini, name = data.name, size = data.size; var label = document.createElement('label'); console.log(); label.className = 'form-label' + (mini.required ? ' required' : ''); label.innerText = name + ':'; row.append(label); var div = document.createElement('div'); if (size == 2) { div.className = 'form-control span5'; } else { div.className = 'form-control span2'; } row.append(div); mini.render(div); return row; } } function getCookie(name) { var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); if (arr = document.cookie.match(reg)) return unescape(arr[2]); else return null; } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址