basicDataModule.directive('businessUnit', ['$log', 'SweetAlert', '$translate', function ($log, SweetAlert, $translate) { 'use strict'; $log.debug('businessUnit.ctor()...'); return { restrict: 'E', templateUrl: '/app/admin/basicData/masterData/businessUnit/business-unit.html' + '?_=' + Math.random(), scope: { //addCtrlFn: '&addBsFn', //removeCtrlFn: '&removeBsFn', //editCtrlFn: '&editBsFn', //stopCtrlFn: '&stopBsFn', //attr: '@', //list:'=bind' }, controller: 'businessUnitController', //link: function (scope, element, attrs, $element) { // var originalContent, target, isEdit, isAdd; // var originalArray = []; // var isNodeActive = $translate.instant('OrganizationStructureActive'); // var isNodeDisabled = $translate.instant('OrganizationStructureDisabled'); // var disableNode = $translate.instant('OrganizationStructureDisabledNode'); // var activeNode = $translate.instant('OrganizationStructureEnableNode'); // var emptyNote = $translate.instant('BusinessUnitEmptyNode'); // var outOfLengthNote = $translate.instant('BusinessUnitOutOfLengthNode'); // var depulicateNote = $translate.instant('BusinessUnitDuplicateNode'); // var addInvalidNote = $translate.instant('OrganizationStructureOperationAddInvalid'); // var editInvalidNote = $translate.instant('OrganizationStructureOperationEditInvalid'); // //添加行的时候删除行 // $(document).on('click', '.remove-bs-row', function () { // var tr = $(this).parent().parent(); // var id = $(tr).children('td').eq(2).text(); // $(tr).remove(); // if (id !== '') { // scope.removeCtrlFn({ id: id }); // } // if ($('.remove-bs-row').length == 0) { // $(".bs-save-group").css('display', 'none'); // isAdd = false; // } // }); // //选中行 // $(document).on('click', '#businessUnitTable tr:not(.header)', function (evt) { // $("#businessUnitTable tr").removeClass("selected"); // $(this).toggleClass('selected'); // target = $("#businessUnitTable tr.selected td"); // }); // //编辑 // scope.editBusinessUnit = function (e, org) { // if (isAdd) { // SweetAlert.warning(editInvalidNote); // return; // } // var elem; // isEdit = true; isAdd = false; // $(".bs-save-group").css('display', 'block'); // elem = (e.srcElement || e.target); //for IE: e.srcElement, others, e.target // target = $(elem).parent().parent().parent().children('td'); // scope.currentTarget = target; // scope.currentOrg = org; // var element = $(target).eq(0); // originalContent = $(element).text(); // var result = $.grep(originalArray, function (e) { return e.id === org.id }); // if (result.length === 0 || originalContent != '') { // //add to originalArray for the cancel // originalArray.push({ 'id': org.id, 'content': originalContent }); // $(element).addClass("cellEditing"); // $(element).html("<input type='text' class='form-control' value='" + originalContent + "' /></div>"); // $(element).children().first().focus(); // $(element).children().first().keypress(function (e) { // if (e.which == 13) { // var newContent = $(element).children().first().val(); // $(element).text(newContent); // $(element).removeClass("cellEditing"); // } // }); // } // }; // //取消保存 // scope.cancelBusinessUnit = function (e) { // var elem = (e.srcElement || e.target); //for IE: e.srcElement, others, e.target // if (isEdit) { // var element = $(".cellEditing"); // element.each(function (index) { // var td = $(this).parent().children('td').eq(2); // var id = $(td).text(); // var obj = $.grep(originalArray, function (x) { return x.id === id }); // if (obj.length > 0) { // $(this).text(obj[0].content); // $(this).removeClass("cellEditing"); // } // }); // originalArray = []; // isEdit = false; // } else { // $('.new-add-bs').remove(); // isAdd = false; // } // $(".bs-save-group").css('display', 'none'); // }; // $("#btnAddBusinessUnit").on('click', function () { // if (isEdit) { // SweetAlert.warning(addInvalidNote); // return; // } // isEdit = false; isAdd = true; // $(".bs-save-group").css('display', 'block'); // $('#businessUnitTable tr:last').after('<tr class="new-add-bs"><td><input type="text" class="form-control new-add-input" value="" /></td><td>' + isNodeActive + '</td><td><i class="fa fa-times remove-bs-row" aria-hidden="true"></i></td></tr>'); // }); // //保存 // scope.saveBusinessUnit = function (e) { // if (isEdit) { // //编辑保存 // var elem = (e.srcElement || e.target); //for IE: e.srcElement, others, e.target // var element = $(".cellEditing"); // var newValues = []; // var idArray = []; // element.each(function (index) { // var td = $(this).parent().children('td'); // var newContent = $(td).eq(0).children().first().val(); // var isActive = $(td).eq(1).text(); // var id = $(td).eq(2).text(); // idArray.push(id); // newValues.push({ // id: id, name: newContent, isActive: isActive // }); // }); // var validationResult = formValidation(newValues); // if (!validationResult.duplicateFlag && !validationResult.emptyFlag && !validationResult.outOfLengthFlag) { // isEdit = false; // $(".bs-save-group").css('display', 'none'); // element.each(function (index) { // var td = $(this).parent().children('td'); // var firstTd = $(td).eq(0); // var newVal = $(firstTd).children().first().val(); // $(firstTd).text(newVal); // $(firstTd).removeClass("cellEditing"); // }); // scope.editCtrlFn({ // newcontent: newValues // }); // originalArray = []; // } // } else { // //新增层级 // var newaddTarget = $('.new-add-input'); // var values = []; // var hasName = true; // var outOfLength = false; // var duplicate = false; // var newValues = []; // $(newaddTarget).each(function () { // var guid = PWC.newGuid(); // var name = $(this).val(); // newValues.push({ // id: guid, name: name, isActive: true // }); // }); // var validationResult = formValidation(newValues); // if (!validationResult.duplicateFlag && !validationResult.emptyFlag && !validationResult.outOfLengthFlag) { // $(".bs-save-group").css('display', 'none'); // $('.new-add-bs').remove(); // var newAdd = { // newrow: newValues // }; // newValues.forEach(function (item) { // scope.businessUnitList.push(item); // }); // scope.addCtrlFn(newAdd); // originalArray = []; // } // } // }; // //停用和启用 // var currentId; // scope.stopOrActiveBusinessUnit = function (org) { // currentId = org.id; // var name = org.name; // var id = org.id; // var updateArray = []; // var values = { id: id, name: name, isActive: !org.isActive }; // updateArray.push(values); // scope.stopCtrlFn({ newcontent: updateArray }); // scope.$on('to-child', function (event, successFlag) { // if (successFlag) { // var item = _.where(scope.businessUnitList, { id: currentId }); // item[0].isActive = values.isActive; // } // }); // }; // //form validation before saving add/edit operation // var formValidation = function (newValues) { // var duplicateFlag = false; // var emptyFlag = false; // var outOfLengthFlag = false; // //判断同时输入多个的时候不能重复 // var uniqueList = _.uniq(newValues, function (item, key, name) { // return item.name; // }); // if (uniqueList.length != newValues.length) { // duplicateFlag = true; // } // newValues.forEach(function (item) { // var filterResult = _.find(scope.businessUnitList, { name: item.name }); // //如果找的这个object和newvalue的id是同一个的话,不是重复 // if (filterResult != undefined && filterResult.id !== item.id) { // duplicateFlag = true; // } else if (item.name === '') { // emptyFlag = true; // } else if (PWC.getLength(item.name) > constant.businessUnit.BUmaxLength) { // outOfLengthFlag = true; // } // }); // //give notice to user // if (emptyFlag) { // SweetAlert.warning(emptyNote); // } else if (duplicateFlag) { // SweetAlert.warning(depulicateNote); // } else if (outOfLengthFlag) { // SweetAlert.warning(outOfLengthNote); // } // return { // duplicateFlag: duplicateFlag, // emptyFlag: emptyFlag, // outOfLengthFlag: outOfLengthFlag // }; // }; //} }; } ]);