'use strict'; /** * controller for User Profile Example */ app.controller('timingMessageSendingCtrl', ["$rootScope", "$scope", "$state", "$timeout", "$interval", "$modal", "SweetAlert", "i18nService", "uiGridConstants", "uiGridGroupingConstants", "Restangular", "api_bpm_schedule", "api_bpm_data", "api_wechatfile", "api_configure_data", "moment", "api_sysinfo", function ($rootScope, $scope, $state, $timeout, $interval, $modal, SweetAlert, i18nService, uiGridConstants, uiGridGroupingConstants, Restangular, api_bpm_schedule, api_bpm_data, api_wechatfile, api_configure_data, moment, api_sysinfo) { $scope.langs = i18nService.getAllLangs(); $scope.lang = 'zh-cn'; i18nService.setCurrentLang($scope.lang); var loginUser = $rootScope.user; $scope.xinzeng = false; $scope.shanchu = false; $scope.bianji = false; $scope.zantingzhixing = false; for (var i = 0; i < loginUser.menu.length; i++) { if (loginUser.menu[i].link == "xunjianjihua_xinzeng") { $scope.xinzeng = true } if (loginUser.menu[i].link == "xunjianjihua_shanchu") { $scope.shanchu = true } if (loginUser.menu[i].link == "xunjianjihua_bianji") { $scope.bianji = true } if (loginUser.menu[i].link == "xunjianjihua_zantingzhixing") { $scope.zantingzhixing = true } } var defaultFilterData = { "idx": 0, "sum": 10 }; var inspectPlanParameter = { "idx": 0, "sum": 10, "operation": "", "status": "", "inspection": { "inspectionTypeDTO": { "id": "" } } }; //本地存储 sessionStorage.inspectPlanParameter = JSON.stringify(inspectPlanParameter); $scope.memoryfilterData = { "idx": 0, "sum": 10 } // $scope.isMask = false; $scope.gridOptions = {}; $scope.gridOptions.data = 'myData'; $scope.gridOptions.enableColumnResizing = true; $scope.gridOptions.enableFiltering = false; $scope.gridOptions.enableGridMenu = true; $scope.gridOptions.enableRowSelection = true; $scope.gridOptions.showGridFooter = true; $scope.gridOptions.showColumnFooter = false; $scope.gridOptions.useExternalFiltering = false; $scope.gridOptions.useExternalPagination = true; $scope.gridOptions.paginationPageSizes = [10, 20, 50, 100]; $scope.gridOptions.paginationPageSize = 10; $scope.gridOptions.multiSelect = true; $scope.gridOptions.enableSelectionBatchEvent = true; //使用批量使用事件 //行鼠标悬浮变色功能 // $scope.gridOptions.rowTemplate = '
'; $scope.gridOptions.rowTemplate = "
"; $scope.gridOptions.rowIdentity = function (row) { return row.id; }; $scope.gridOptions.getRowIdentity = function (row) { return row.id; }; $scope.transfer = function (status) { if (status === "正常") { return "执行中" } else if (status === "停止") { return "暂停中" } } $scope.gridOptions.columnDefs = [{ name: 'item', displayName: '序号', width: 50, enableFiltering: false }, { name: 'title', displayName: '标题', width: '10%', enableFiltering: true }, { name: 'content', displayName: '发送内容', width: '35%', enableFiltering: false, cellTemplate: '
{{row.entity.content}}
' }, { name: 'timeStep1', displayName: '重复策略', width: '10%', enableFiltering: false, cellTemplate: '
每日每周每月每年
' }, { name: 'timeStep2', displayName: '定时发送时间', width: '12%', enableFiltering: false, cellTemplate: '
{{ row.entity.executeTime|date:"HH时mm分" }}{{row.entity.weekName}} {{ row.entity.executeTime|date:"HH时mm分" }}{{row.entity.extra1}}日 {{ row.entity.executeTime|date:"HH时mm分" }}{{ row.entity.executeTime|date:"MM月dd日HH时mm分" }}
' }, { name: 'active', displayName: '状态', width: 50, enableFiltering: false, cellTemplate: '
{{ row.entity.active?"开启":"关闭" }}
' }, { name: 'usersName', displayName: '接收人', width: '10%', enableFiltering: false }, { minWidth: '230', name: '操作', enableFiltering: false, cellTemplate: '
' + '编辑' + '停用' + '启用' + '
' }, ]; $scope.transferTime = function (time) { return moment(time).format('YYYY-MM-DD HH:mm'); } //新增数据 $scope.addData = function () { $state.go('app.inspection.editor', { formKey: 'inspectionform', service: 'api_bpm_data', }); } $scope.inspectdata = {}; //打开编辑弹出框 $scope.hc_eject_big = false; $scope.edit_obj = {};//编辑的对象 $scope.isWarehousing = 'day';//重复策略 $scope.isActive = 0;//是否启用 $scope.t_title = '';//标题 $scope.userIds = [];//接收人ids $scope.t_userList = [];//接收人 $scope.hourAndMinute = null;//选择小时,分钟 $scope.doWeek = null;//选择周 $scope.doMonth = '';//选择日 $scope.weeks = [ { id: 1, name: '周一' }, { id: 2, name: '周二' }, { id: 3, name: '周三' }, { id: 4, name: '周四' }, { id: 5, name: '周五' }, { id: 6, name: '周六' }, { id: 7, name: '周日' } ]; $scope.months = [...Array(32).keys()].slice(1); $scope.selectRowFunction = function (data) { console.log(data); $scope.edit_obj = data; $scope.hc_eject_big = true; //回显数据 $scope.t_title = data.title; $scope.isWarehousing = data.timeStep; switch (data.timeStep) { case 'week': $scope.doWeek = $scope.weeks.find(v => v.id == data.extra1); break; case 'month': $scope.doMonth = data.extra1; break; case 'year': $scope.starttimesModel = moment(data.executeTime); break; } $scope.hourAndMinute = moment(data.executeTime); $scope.isActive = data.active; $scope.userIds = data.users; }; // 关闭编辑弹出框 $scope.close = function () { $scope.hc_eject_big = false; } $scope.changeWeek = function (selected) { $scope.doWeek = selected; } $scope.changeMonth = function (selected) { $scope.doMonth = selected; } //保存 $scope.preservation = function () { //判空 start if(!$scope.t_title){ SweetAlert.swal({ title: "标题不能为空", text: "标题不能为空", type: "error" }); return; }else if($scope.userIds.length === 0){ SweetAlert.swal({ title: "接收人不能为空", text: "接收人不能为空", type: "error" }); return; }else{ switch($scope.isWarehousing){ case 'week': if(!$scope.doWeek){ SweetAlert.swal({ title: "计划执行(每周)不能为空", text: "计划执行(每周)不能为空", type: "error" }); return; } break; case 'month': if(!$scope.doMonth){ SweetAlert.swal({ title: "计划执行(每月)不能为空", text: "计划执行(每月)不能为空", type: "error" }); return; } break; case 'year': if(!$scope.starttimesModel){ SweetAlert.swal({ title: "计划执行(每年)不能为空", text: "计划执行(每年)不能为空", type: "error" }); return; } break; } } //判空 end var toData = { "messageJob": {} }; //处理数据 start toData.messageJob.content = $scope.edit_obj.content; toData.messageJob.id = $scope.edit_obj.id; toData.messageJob.key = $scope.edit_obj.key; toData.messageJob.title = $scope.t_title; toData.messageJob.timeStep = $scope.isWarehousing; switch($scope.isWarehousing){ case 'day': break; case 'week': toData.messageJob.extra1 = $scope.doWeek.id; break; case 'month': toData.messageJob.extra1 = $scope.doMonth; break; case 'year': break; } toData.messageJob.executeTime = moment($scope.hourAndMinute).valueOf(); toData.messageJob.active = $scope.isActive; toData.messageJob.userIds = $scope.userIds.map(v=>v.id).toString(); // 当前所属院区或责任科室 if($rootScope.user.duty){ toData.messageJob.branch = $rootScope.user.duty.branch; }else if($rootScope.user.branch){ toData.messageJob.branch = $rootScope.user.branch.id; } console.log(toData.messageJob) //处理数据 end api_bpm_data.updData('messageJob', toData).then(function (response) { $scope.close(); var myData = Restangular.stripRestangular(response); if (myData.status == 200) { SweetAlert.swal({ title: "保存成功!", type: "success", confirmButtonColor: "#007AFF" }, function () { $scope.refreshData('expand-right', $scope.fileData); }); } else { SweetAlert.swal({ title: "操作失败", text: "操作失败", type: "error" }); } }, function () { }); } //切换重复策略 $scope.changeWarehousing = function (type) { $scope.isWarehousing = type; $scope.doWeek = null; $scope.doMonth = ''; $scope.starttimesModel = null; } //切换是否启用 $scope.changeActive = function (type) { $scope.isActive = type; } // 接收人查询 $scope.d_name = '';//防止抖动 $scope.refreshDat_users = function (name, userIds = []) { $scope.t_userList = []; name = name || ""; $scope.d_name = name; userIds = userIds || []; var dat = { "user": { name: name }, "idx": 0, "sum": 999 } api_sysinfo.fetchDataList("user", dat).then(function (data) { if (data.status == 200) { if($scope.d_name == name){ if (userIds.length) { userIds.forEach(v => { data.list.forEach((v1, i) => { if (v.id == v1.id) { data.list.splice(i, 1) } }) }) } $scope.t_userList = data.list; } } }); } $scope.refreshDat_users(); // 修改接收人 $scope.changeUser = function (userIds) { $scope.userIds = userIds; } //打开每天定时发送时间--日期选择框 $scope.starttimesModel = null; $scope.startOpened = false; //跳转到查看列表 $scope.seeFunction = function (data) { var filedata = { model: { inspection: data } }; $state.go('app.inspection.form', { formKey: 'inspection__detailform', service: 'api_bpm_data', model: JSON.stringify(filedata) }); } // $scope.onDblClick = function(data) { // var filedata = { // model: { // inspection: data.entity // } // }; // $state.go('app.inspection.form', { // formKey: 'inspection__detailform', // service: 'api_bpm_data', // model: JSON.stringify(filedata) // }); // }; //跳转到查看列表 $scope.lookFunction = function (data) { var filedata = { model: { inspection: data } }; $state.go('app.inspection.form', { formKey: 'inspection__detailform', service: 'api_bpm_data', model: JSON.stringify(filedata) }); }; //启用/停用 $scope.runFunction = function (data) { console.log(data) var filterData = JSON.parse(sessionStorage.inspectPlanParameter); var upData = {}; upData.id = data.id; upData.operation = 1; var modalInstance = $modal.open({ // templateUrl: 'assets/views/inspect/changRun.html', templateUrl: 'assets/views/delete.html', // size: "sm", controller: function ($scope, $modalInstance) { $scope.isRunFunction = true; if (data.active) { $scope.title = '停用'; $scope.connect = '确定要停用?'; } else { $scope.title = '启用'; $scope.connect = '确定要启用?'; } $scope.ok = function () { $modalInstance.close(data); }; $scope.cancel = function () { $modalInstance.dismiss('cancel'); }; }, size: 'sm' }) modalInstance.result.then(function (result) { console.log(result) if (result) { result.active = !result.active; var toData = { "messageJob": result }; // 当前所属院区或责任科室 if($rootScope.user.duty){ toData.messageJob.branch = $rootScope.user.duty.branch; }else if($rootScope.user.branch){ toData.messageJob.branch = $rootScope.user.branch.id; } api_bpm_data.updData('messageJob', toData).then(function (response) { var myData = Restangular.stripRestangular(response); if (myData.status == 200) { SweetAlert.swal({ title: (myData.data.active ? '启动' : '停用') + "成功!", type: "success", confirmButtonColor: "#007AFF" }, function () { $scope.refreshData('expand-right', $scope.fileData); }); } else { SweetAlert.swal({ title: "操作失败", text: "操作失败", type: "error" }); } }, function () { }); } }); }; // $scope.newincident = function(data) { // $state.go('app.incident.editor', {}); // }; //行删除 $scope.removeData = function () { console.log($scope.selected.items); var modalInstance = $modal.open({ templateUrl: 'assets/views/delete.html', controller: function ($scope, $modalInstance) { // $scope.textLog = "是否删除巡检计划"; $scope.title = '巡检计划删除'; $scope.connect = '确定要删除巡检计划?'; $scope.ok = function () { $modalInstance.close("start"); }; $scope.cancel = function () { $modalInstance.dismiss('cancel'); }; }, size: 'sm' }) modalInstance.result.then(function (result) { if (result) { if ($scope.selected.items.length != 0) { $rootScope.isMask = true; } var rmvList = []; angular.forEach($scope.selected.items, function (item) { rmvList.push(item.id); }); if (rmvList.length > 0) { api_bpm_data.rmvData('inspection', rmvList).then(function (response) { if (response.status == 200) { $rootScope.isMask = false; SweetAlert.swal({ title: "删除成功!", type: "success", confirmButtonColor: "#007AFF" }, function () { $scope.myData = _.reject($scope.myData, function (o) { return _.includes(rmvList, o.id); }); $scope.selected = { items: [] }; }); $scope.gridApi.selection.clearSelectedRows(); var filterData = JSON.parse(sessionStorage.inspectPlanParameter); var showData = { "idx": filterData.idx, "sum": filterData.sum, "inspection": { "inspectionTypeDTO": { "id": "" } } } if (filterData.inspection && filterData.inspection.inspectionTypeDTO && filterData.inspection.inspectionTypeDTO.id) { showData.inspection.inspectionTypeDTO.id = filterData.inspection.inspectionTypeDTO.id } else { showData.inspection.inspectionTypeDTO.id = -1 } $scope.refreshData('expand-right', $scope.fileData); //取消遮罩层 // $scope.isMask = false; } else { $rootScope.isMask = false; SweetAlert.swal({ title: "操作异常!", text: "系统异常,请稍后重试,或者联系管理员!", type: "error" }); } }) } } }, function () { // $scope.ldloading[style.replace('-', '_')] = false; }); } $scope.selected = { items: [] } $scope.editted = { items: [] } $scope.testRow = []; $scope.gridOptions.onRegisterApi = function (gridApi) { //导入gridApi对象 $scope.gridApi = gridApi; //分页选项 gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) { var filterData = JSON.parse(sessionStorage.inspectPlanParameter); var filtersData = {}; filtersData.idx = newPage - 1; filtersData.sum = pageSize; $scope.pageNum = $scope.gridApi.pagination.getPage() - 1; // console.log(pp); filterData.idx = $scope.pageNum; $scope.fileData.idx = newPage - 1; $scope.fileData.sum = pageSize; sessionStorage.inspectPlanParameter = JSON.stringify(filterData); $scope.refreshData('expand-right', $scope.fileData); }); //勾选行事件 gridApi.selection.on.rowSelectionChanged($scope, function (data) { if (data.isSelected) { $scope.selected.items.push(data.entity); } else { //objs:需要遍历的集合 data:遍历时当前的数据 index:遍历时当前索引 //array:需要遍历的集合,每次遍历时都会把objs原样的传一次。 //angular.forEach(objs, function(data,index,array) angular.forEach($scope.selected.items, function (ObjIndex, index, destObj) { // console.log(ObjIndex); // console.log(index); // console.log(destObj); if (ObjIndex.id == data.entity.id) { destObj.splice(index, 1) } }) } }); //批量全选 gridApi.selection.on.rowSelectionChangedBatch($scope, function (rows, event) { // if ($scope.selected.items.length != 0) { // $scope.selected.items = []; angular.forEach(rows, function (ObjIndex, index, destObj) { if (ObjIndex.isSelected) { $scope.selected.items.push(ObjIndex.entity); } else { $scope.selected.items = []; // $scope.selected.items.splice(index, 1); } }); // } else { // } // $scope.mySelectedRows = $scope.gridApi.selection.getSelectedRows(); // if ($scope.selected.items.length == 0) { // $scope.selected.items = $scope.mySelectedRows; // } else if ($scope.mySelectedRows.length == 0) { // for (var i = 0; i < $scope.selected.items.length; i++) { // for (var j = 0; j < rows.length; j++) { // if ($scope.selected.items[i].id == rows[j].entity.id) { // $scope.selected.items.splice(i, 1); // } // } // } // } else { // angular.forEach($scope.mySelectedRows, function(item) { // $scope.selected.items.push(item); // }); // } }); //列过滤事件 gridApi.core.on.filterChanged($scope, function () { var grid = this.grid; var filterData = JSON.parse(sessionStorage.inspectPlanParameter); angular.forEach(grid.columns, function (item) { if (item.enableFiltering) { if (angular.isDefined(item.filters[0].term) && item.filters[0].term != '') { if (angular.isUndefined(filterData['inspection'])) { filterData['inspection'] = {}; } filterData['inspection']['title'] = item.filters[0].term; } } }); sessionStorage.inspectPlanParameter = JSON.stringify(filterData); $scope.refreshData('expand-right', filterData); }); }; // //刷新按钮 // $scope.reload = function() { // var filterData = JSON.parse(sessionStorage.inspectPlanParameter); // var showData = { // "idx": filterData.idx, // "sum": filterData.sum, // "inspection": { // "inspectionTypeDTO": { // "id": "" // } // } // } // if (filterData.inspection && filterData.inspection.inspectionTypeDTO && filterData.inspection.inspectionTypeDTO.id) { // showData.inspection.inspectionTypeDTO.id = filterData.inspection.inspectionTypeDTO.id // } else { // showData.inspection.inspectionTypeDTO.id = -1 // } // $scope.refreshData('expand-right', showData); // } //重置按钮 $scope.reload = function () { // var filterData = JSON.parse(sessionStorage.inspectPlanParameter); // var data={ // "idx":filterData.idx, // "sum":filterData.sum // } // $scope.inspectdata={}; delete $scope.fileData.inspection.inspectionTypeDTO; delete $scope.fileData.inspection.title; delete $scope.fileData.inspection.executeUser; delete $scope.fileData.inspection.createUser; delete $scope.fileData.inspection.status; $scope.try_async_load(); $scope.refreshData('expand-right', $scope.fileData); } //数据刷新 $scope.refreshData = function (style, filterData, isEmpty = true) { $scope.ldloading[style.replace('-', '_')] = true; if (angular.isUndefined(filterData)) { filterData = defaultFilterData; } if (isEmpty) { $scope.myData = []; } // 当前所属院区或责任科室 if($rootScope.user.duty){ filterData.messageJob.branch = $rootScope.user.duty.branch; }else if($rootScope.user.branch){ filterData.messageJob.branch = $rootScope.user.branch.id; } api_bpm_data.fetchDataList('messageJob', filterData).then(function (data) { var myData = Restangular.stripRestangular(data); $scope.gridOptions.totalItems = myData.totalNum; if (angular.isArray(myData.list)) { // -----seimin start ---- myData.list.forEach((item) => { if (item.timeStep == "week") { let weeks = [ "周一", "周二", "周三", "周四", "周五", "周六", "周日", ]; item.weekName = weeks[item.extra1 - 1]; } item.usersName = item.users.map((value) => value.name).join(); }); // -----seimin end ---- $scope.myData = myData.list; for (var i = 0; i < $scope.myData.length; i++) { $scope.myData[i]['item'] = i + 1 + filterData.idx * filterData.sum } for (var i = 0; i < $scope.myData.length; i++) { if ($scope.myData[i].status == "正常") { $scope.myData[i].style = "fa fa-play"; } else if ($scope.myData[i].status == "停止") { $scope.myData[i].style = "fa fa-pause"; }; $scope.myData[i].runStatus = $scope.transfer($scope.myData[i].status); } } else { SweetAlert.swal({ title: "数据为空", text: myData.data, type: "warning" }); } $scope.ldloading[style.replace('-', '_')] = false; }, function () { $scope.ldloading[style.replace('-', '_')] = false; }); }; $scope.ldloading = {}; //树形控件点击事件 $scope.my_tree_handler = function (branch) { var filterData = JSON.parse(sessionStorage.inspectPlanParameter); filterData.inspection.inspectionTypeDTO.id = branch.id; sessionStorage.inspectPlanParameter = JSON.stringify(filterData); var showData = { "idx": filterData.id, "sum": filterData.sum, "inspection": { "inspectionTypeDTO": { "id": branch.id } } } // $scope.refreshData('expand-right', showData); } $scope.fileData = { "idx": 0, "sum": 10, "messageJob": { } } $scope.onFilterCallback = function (data) { $scope.fileData.inspection.inspectionTypeDTO = { "id": data.id } } $scope.inspecttype = {}; $scope.searchinspe = function (item) { $scope.refreshData('expand-right', $scope.fileData); } //树形控件加载 $scope.my_tree = {}; $scope.try_async_load = function () { $scope.my_data = []; $scope.doing_async = true; api_bpm_data.fetchDataList('inspectionType', { "idx": 0, "sum": 1000 }).then(function (response) { if (response.status == 200) { var data = response.list; var objects = []; for (var i = 0; i < data.length; i++) { var object = {}; object.id = data[i].id; if (data[i].parent && data[i].parent.id != 0) { object.parent = data[i].parent.id; } object.label = data[i].type; objects.push(object); } $scope.my_data = convertParentToChildList(objects); $scope.tree_data = angular.copy($scope.my_data); if ($scope.my_data.length > 0) { $scope.doing_async = false; } // return $scope.my_tree.expand_all() } else { SweetAlert.swal({ title: "系统错误!", text: "请刷新重试!", type: "error" }); } }); }; function convertListToTree(data, treeMap) { var idToNodeMap = {}; //Keeps track of nodes using id as key, for fast lookup var root = null; //Initially set our loop to null var parentNode = null; //loop over data for (var i = 0; i < data.length; i++) { var datum = data[i]; //each node will have children, so let's give it a "children" poperty datum.children = []; //add an entry for this node to the map so that any future children can //lookup the parent idToNodeMap[datum.id] = datum; //Does this node have a parent? if (typeof datum.parent === "undefined" || datum.parent == null) { //Doesn't look like it, so this node is the root of the tree root = datum; treeMap[datum.id] = root; } else { //This node has a parent, so let's look it up using the id parentNode = idToNodeMap[datum.parent]; //We don't need this property, so let's delete it. delete datum.parent; //Let's add the current node as a child of the parent node. parentNode.children.push(datum); } } return root; } // 获取状态 $scope.getStatusDictroy = function () { var data = { key: "inspection_status", type: "list" } api_wechatfile.getDictionary(data).then(function (res) { $scope.statusData = res }) } $scope.getStatusDictroy(); // 获取执行人 $scope.getExecuteUser = function () { api_configure_data.fetchDataList("user", { "idx": 0, "sum": 1000, "user": { "roledata": { "rolecode": "inspectman" }, "simple": true } }).then(function (res) { $scope.executeUserData = res.list }) } $scope.getExecuteUser() // 获取创建人 $scope.getCreateUser = function () { api_configure_data.fetchDataList("user", { "idx": 0, "sum": 1000, "user": { "simple": true } }).then(function (res) { $scope.createUserData = res.list }) } $scope.getCreateUser() $scope.open = function ($event) { $event.preventDefault(); $event.stopPropagation(); $scope.opened = !$scope.opened; }; $scope.endOpen = function ($event) { $event.preventDefault(); $event.stopPropagation(); $scope.startOpened = false; $scope.endOpened = !$scope.endOpened; }; $scope.startOpen = function ($event) { $event.preventDefault(); $event.stopPropagation(); $scope.endOpened = false; $scope.startOpened = !$scope.startOpened; }; function convertParentToChildList(data) { var treeMap = {}; var list = []; convertListToTree(data, treeMap); angular.forEach(treeMap, function (item) { list.push(item); }); return list; } $scope.refresh = function () { var jry_filterData = JSON.parse(sessionStorage.inspectPlanParameter); var intervalData = {}; if ($scope.inspectdata.type) { $scope.inspectdata.inspectionTypeDTO = $scope.inspectdata.type.id; } if ($scope.inspectdata.createTime) { $scope.inspectdata.createTime = moment($scope.inspectdata.createTime).format('YYYY-MM-DD'); } intervalData.idx = jry_filterData.idx; intervalData.sum = jry_filterData.sum; intervalData.inspection = $scope.inspectdata; $scope.refreshData('expand-right', intervalData); } $scope.try_async_load(); $scope.refreshData('expand-right', $scope.fileData); $scope.timer = $interval(function () { $scope.refreshData('expand-right', $scope.fileData, false); }, $rootScope.refreshTime); $scope.$on('$destroy', function () { $interval.cancel($scope.timer) }) }]); app.factory('inspectListMobileCtrlTree', ['api_bpm_data', function (api_bpm_data) { function convertListToTree(data, treeMap) { var idToNodeMap = {}; var root = null; var parentNode = null; for (var i = 0; i < data.length; i++) { var datum = data[i]; datum.children = []; idToNodeMap[datum.id] = datum; if (typeof datum.parent === "undefined" || datum.parent == null) { root = datum; treeMap[datum.id] = root; } else { parentNode = idToNodeMap[datum.parent]; delete datum.parent; parentNode.children.push(datum); } } return root; }; function convertParentToChildList(data) { var treeMap = {}; var list = []; convertListToTree(data, treeMap); angular.forEach(treeMap, function (item) { list.push(item); }); return list; }; var forEachEelement = function forEachEelement(response) { var objects = []; angular.forEach(response.list, function (ObjIndex, index, destObj) { var object = {}; object.id = ObjIndex.id; object.label = ObjIndex.type; if (ObjIndex.parent && ObjIndex.parent.id != 0) { object.parent = ObjIndex.parent.id; }; if (ObjIndex.formUiEdit) { object.formUiEdit = ObjIndex.formUiEdit; }; if (ObjIndex.formUiName) { object.formUiName = ObjIndex.formUiName; }; if (ObjIndex.processKey) { object.processKey = ObjIndex.processKey; }; if (ObjIndex.formUiStart) { object.formUiStart = ObjIndex.formUiStart; }; objects.push(object); }); var my_data = convertParentToChildList(objects); var tree_data = angular.copy(my_data); return { 'my_data': my_data, 'tree_data': tree_data } } return forEachEelement; }]);