Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/setDepartOrgUnitForm.js =================================================================== diff -u -r26717 -r33591 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/setDepartOrgUnitForm.js (.../setDepartOrgUnitForm.js) (revision 26717) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/setDepartOrgUnitForm.js (.../setDepartOrgUnitForm.js) (revision 33591) @@ -13,7 +13,7 @@ * @param extComboElementId 控件id,即下拉框的id * @param departsCodes 页面上传回来的科室编码,多个情况用"," */ -function setDepartOrgUnit(extHiddenElementId, extComboElementId, departsCodes,belongOrgUnit) { +function setDepartOrgUnit(extHiddenElementId, extComboElementId, departsCodes, belongOrgUnit) { //科室的窗口 var formWindowDeparts; //确定保存 @@ -27,7 +27,7 @@ // obj['departName'] = record.get('departName'); valueArr.push(record.get('departCode')); showArr.push(record.get('departName')); - belongOrgUnit[record.get('departCode')] = {'departCode':record.get('departCode'),'departName':record.get('departName')}; + belongOrgUnit[record.get('departCode')] = { 'departCode': record.get('departCode'), 'departName': record.get('departName') }; } if (valueArr.length != 0) { // top.Ext.getCmp(extHiddenElementId).setValue(JSON.stringify(valueArr)); @@ -43,11 +43,11 @@ //科室record var departAndTaskGroupRecord = Ext.data.Record.create([{ - name: 'departCode' - }, - { - name: 'departName' - } + name: 'departCode' + }, + { + name: 'departName' + } ]); /** @@ -110,13 +110,13 @@ reader: new Ext.data.JsonReader({ root: 'data' }, [{ - name: 'departCode', - mapping: 'id' - }, - { - name: 'name', - mapping: 'name' - } + name: 'departCode', + mapping: 'id' + }, + { + name: 'name', + mapping: 'name' + } ]) }); @@ -248,4 +248,49 @@ } }) }; +} + +function setDepartOrgUnit2(extHiddenElementId, extComboElementId, hiddenDataElementId) { + var win = new top.Ext.Window({ + id: 'setDepartWindow', + layout: 'fit', + title: '所属科室', + width: 1000, + height: 520, + modal: true, + border: false, + plain: true, + buttonAlign: 'center', + html: '', + buttons: [{ + text: '保存', + handler: function () { + var hiddenTableDataStr = top.document.getElementById('setDepartWindow').getElementsByTagName('iframe')[0].contentWindow.document.getElementById('hiddenTableData').value; + if (hiddenTableDataStr !== '') { + var hiddenTableData = JSON.parse(hiddenTableDataStr); + var valueArr = []; + var showArr = []; + for (var i = 0; i < hiddenTableData.length; i++) { + var name = hiddenTableData[i].context; + var code = hiddenTableData[i].basicData.departCode; + valueArr.push(code); + showArr.push(name); + } + top.Ext.getCmp(extHiddenElementId).setValue(valueArr.join(",")); + top.Ext.getCmp(extComboElementId).setValue(showArr.join(";")); + } else { + top.Ext.getCmp(extHiddenElementId).setValue(""); + top.Ext.getCmp(extComboElementId).setValue(""); + } + top.Ext.getCmp(hiddenDataElementId).setValue(hiddenTableDataStr); + win.close(); + } + }, { + text: '取消', + handler: function () { + win.close(); + } + }] + }); + win.show(); } \ No newline at end of file Index: ssts-web/src/main/webapp/common/changeDepartment.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/common/changeDepartment.jsp (revision 0) +++ ssts-web/src/main/webapp/common/changeDepartment.jsp (revision 33591) @@ -0,0 +1,99 @@ +<%@ page contentType="text/html; charset=UTF-8"%> +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + 选择科室 + + + + + + + <%@ include file="/common/include_Ext425JsAndCss.jsp"%> + + + + + + + +
+
+
+ + +
+
+ + + + +
+
+
+ +
+
+
+
+
+
+
+
+ + + + + + + + + \ No newline at end of file Index: ssts-web/src/main/webapp/common/changeDepartment.js =================================================================== diff -u --- ssts-web/src/main/webapp/common/changeDepartment.js (revision 0) +++ ssts-web/src/main/webapp/common/changeDepartment.js (revision 33591) @@ -0,0 +1,232 @@ +var treeData = []; +var tableData = []; +var isFirst = false; +function getTreeData(value) { + Ext4.Ajax.request({ + url: WWWROOT + '/systemmanage/loadAllOrgUnit.do', + params: { spell: value }, + async: false, + success: function (response, options) { + var result = Ext4.decode(response.responseText); + treeData = result.data; + } + }); +} + +layui.extend({ + dtree: WWWROOT + '/disinfectsystem/customizedreports/layui/dtree/dtree' +}).use(['dtree', 'table', 'form', 'jquery'], function () { + var table = layui.table; + var dtree = layui.dtree; + var $ = layui.jquery; + getTreeData(''); + var treeLeft = dtree.render({ + elem: "#treeLeft", + dataStyle: "layuiStyle", //使用layui风格的数据格式 + dataFormat: "list", //配置data的风格为list + checkbar: true, //开启复选框 + data: treeData, + icon: "-1", + ficon: "7", + type: "all", + skin: "zdy", + checkbarType: "p-casc", + width: 450, + menubar: true, + menubarTips: { + group: [] + }, + formatter: { + title: function (data) { + var title = data.title; + return title; + } + }, + done: function (res, $ul, first) { + if (!isFirst) { + var hiddenTableDataStr = top.document.getElementById('hiddenTableDataStr').value; + if (hiddenTableDataStr !== '') { + tableData = JSON.parse(hiddenTableDataStr); + var ids = []; + for (var i = 0; i < tableData.length; i++) { + if (tableData[i].nodeId) { + ids[i] = tableData[i].nodeId; + } + } + dtree.chooseDataInit("treeLeft", ids.join(',')); + table.reload('tableRight', { + data: tableData + }); + $('#hiddenTableData').val(hiddenTableDataStr) + } + isFirst = true; + } + }, + checkbarFun: { + chooseBefore: function ($i, node) { + if (node.checked == '1') { + if (node.leaf == false) { + top.Ext4.Msg.confirm("请确认", "是否同时移除子节点?", function (btn) { + if (btn == 'yes') { + reloadTableAndTree(node, 'del'); + } else { + treeLeft.checkStatus($i).noCheck(); + for (var i = 0; i < tableData.length; i++) { + var id = tableData[i].nodeId; + if (id == node.nodeId) { + tableData.splice(i, 1); + } + } + } + }) + } else { + reloadTableAndTree(node, 'del'); + } + } else { + reloadTableAndTree(node, 'add'); + } + } + } + }); + //渲染表格和树 + var reloadTableAndTree = function (obj, type) { + var nodeId = obj.nodeId; + var self = dtree.getParam("treeLeft", nodeId); + if (type == 'add') { + treeLeft.clickNodeCheckbar(nodeId);// 点击节点选中复选框 + var checkbarNodes = dtree.getChildParam('treeLeft', nodeId); + checkbarNodes.unshift(self); + var newArr = []; + for (var i = 0; i < checkbarNodes.length; i++) { + var isFirst = true; + var nodeId = checkbarNodes[i].nodeId; + for (var j = 0; j < tableData.length; j++) { + if (parseInt(tableData[j].nodeId) == parseInt(nodeId)) { + isFirst = false; + break; + } + } + if (isFirst) { + newArr.push(checkbarNodes[i]); + } + } + tableData = newArr.concat(tableData); + if (tableData.length > 0 && tableData[0].nodeId == '0') { + tableData.splice(0, 1); + } + } else { + var param = dtree.getChildParam('treeLeft', nodeId); + for (var i = 0; i < tableData.length; i++) { + var id = tableData[i].nodeId; + if (nodeId == id) { + tableData.splice(i, 1); + } + for (var j = 0; j < param.length; j++) { + if (tableData[i].nodeId == param[j].nodeId) { + tableData.splice(i, 1); + } + } + } + treeLeft.clickNodeCheckbar(nodeId);// 点击节点选中复选框 + } + table.reload('tableRight', { + data: tableData + }); + $('#hiddenTableData').val(JSON.stringify(tableData)) + } + + // 绑定节点点击事件 + dtree.on("node(treeLeft)", function (obj) { + if (obj.param.checked == '1') { + reloadTableAndTree(obj.param, 'del'); + } else { + reloadTableAndTree(obj.param, 'add'); + } + }); + + $('#search').on('click', function () { + var title = $('#title').val(); + getTreeData(title); + if (treeData.length <= 1) { + showResult('该名称节点不存在!'); + } else { + dtree.reload("treeLeft", { + data: treeData + }); + setTimeout(function () { + if (tableData.length > 0) { + var ids = []; + for (var i = 0; i < tableData.length; i++) { + if (tableData[i].nodeId) { + ids[i] = tableData[i].nodeId; + } + } + dtree.chooseDataInit("treeLeft", ids.join(',')); + } + }, 200); + } + }); + + $('#removeAll').on('click', function () { + if (tableData.length > 0) { + top.Ext4.Msg.confirm("删除确认", "是否删除所有选择的科室?", function (btn) { + if (btn == 'yes') { + tableData = []; + table.reload('tableRight', { + data: tableData + }); + getTreeData(''); + dtree.reload("treeLeft", { + data: treeData + }); + $('#hiddenTableData').val(''); + } + }) + } + }); + + $('#title').keydown(function () { + if (event.keyCode == 13) { + var title = this.value; + getTreeData(title); + if (treeData.length <= 1) { + showResult('该名称节点不存在!'); + } else { + dtree.reload("treeLeft", { + data: treeData + }); + setTimeout(function () { + if (tableData.length > 0) { + var ids = []; + for (var i = 0; i < tableData.length; i++) { + if (tableData[i].nodeId) { + ids[i] = tableData[i].nodeId; + } + } + dtree.chooseDataInit("treeLeft", ids.join(',')); + } + }, 200); + } + } + }); + + table.render({ + elem: '#tableRight', + size: 'sm', + limit: 99, + height: 380, + text: { + none: '当前未设置科室' //默认:无数据。 + }, + cols: [[ + { field: 'context', title: '科室编码', templet: '#departCodeTpl' }, + { field: 'context', title: '科室名称', templet: '#departNameTpl' }, + { title: '操作', toolbar: '#barHandle' } + ]], + data: tableData + }) + + table.on('tool(tableRight)', function (obj) { + reloadTableAndTree(obj.data, 'del'); + }) +}); \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/tousseForm.js =================================================================== diff -u -r33535 -r33591 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/tousseForm.js (.../tousseForm.js) (revision 33535) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/tousseForm.js (.../tousseForm.js) (revision 33591) @@ -2472,6 +2472,11 @@ id : 'belongDepartCodes', name : 'belongDepartCodes' },{ + //传递所属科室属性 + xtype : 'hidden', + id : 'hiddenTableDataStr', + name : 'hiddenTableDataStr' + },{ xtype : 'trigger', fieldLabel : "所属科室", allowBlank : true, @@ -2480,7 +2485,7 @@ msgTarget:'side', readOnly:true, onTriggerClick : function(){ - setDepartOrgUnit('belongDepartCodes' , 'belongDepartNames' , top.Ext.getCmp('belongDepartCodes').getValue(),belongOrgUnit); + setDepartOrgUnit2('belongDepartCodes' , 'belongDepartNames' ,'hiddenTableDataStr'); }, triggerClass : 'x-form-search-trigger', anchor : '100%' @@ -3307,16 +3312,27 @@ if(!isUndefinedOrNullOrEmpty(data)){ var belongDepartCodes = []; var belongDepartNames = []; + var hiddenTableData = []; for(var i = 0; i < data.length ; i++){ var orgUnit = data[i]; belongDepartCodes.push(orgUnit.departCode); belongDepartNames.push(orgUnit.departName); belongOrgUnit[orgUnit.departCode] = orgUnit; + hiddenTableData[i] = { + context: orgUnit.departName, + nodeId: orgUnit.id, + parentId: orgUnit.parentId, + basicData:{ + departCode:orgUnit.departCode + } + } } //所属科室编码 top.Ext.getCmp("belongDepartCodes").setValue(belongDepartCodes.join(",")); //所属科室名称 top.Ext.getCmp('belongDepartNames').setValue(belongDepartNames.join(",")); + //所属科室属性 + top.Ext.getCmp('hiddenTableDataStr').setValue(JSON.stringify(hiddenTableData)); } }else{ showResult("加载器械包定义所属科室报错"+result.message)