systemConfigurationModule.controller('keyValueConfigEditingController', ['$log', '$scope', '$translate', 'serviceTypeService', 'orgService', 'KeyValueConfigService', 'enums', function ($log, $scope, $translate, serviceTypeService, orgService, KeyValueConfigService, enums) { var serviceTypeDic, induestryDic; serviceTypeService.getServiceTypeList().success(function (serviceTypesFromServer) { $scope.serviceTypes = serviceTypesFromServer; serviceTypeDic = PWC.toDict($scope.serviceTypes, 'id'); }); orgService.getProjectIndustrys().success(function (industriesFromSever) { $scope.industries = industriesFromSever; induestryDic = PWC.toDict($scope.industries, 'id'); }); $scope.industriesSelectOption = { displayExpr: "name", valueExpr: "id", showSelectionControls: true, searchEnabled: true, bindingOptions: { value: 'editingModel.industryIds', dataSource: 'industries', disabled: 'state === 0' }, placeholder: $translate.instant('SelectIndustryRequired') }; $scope.industriesSelectOptionValid = { name: 'industry', validationRules: [ { type: 'required', message: $translate.instant('RequiredInfo') } ], validationGroup:'keyValueGroup' }; $scope.serviceTypeSelectOptionValid = { name: 'serviceType', validationRules: [ { type: 'required', message: $translate.instant('RequiredInfo') } ], validationGroup: 'keyValueGroup' }; $scope.serviceTypeSelectOption = { displayExpr: "name", valueExpr: "id", showSelectionControls: true, searchEnabled: true, bindingOptions: { value: 'editingModel.serviceTypeIds', dataSource: 'serviceTypes', disabled: 'state === 0' }, placeholder: $translate.instant('SelectTaxType') }; $scope.saveEditingKvc = function () { angular.forEach($scope.kvcForm.$error.required, function (field) { field.$setDirty(); }); var fieldValidateResult = DevExpress.validationEngine.getGroupConfig("keyValueGroup").validate(); if (!($scope.kvcForm.$valid &&fieldValidateResult.isValid)) { return; } $scope.editingModel.serviceTypeNames = []; $scope.editingModel.industryNames = []; _.each($scope.editingModel.serviceTypeIds,function (serviceType) { $scope.editingModel.serviceTypeNames.push(serviceTypeDic[serviceType].name); }); $scope.editingModel.serviceTypes = $scope.editingModel.serviceTypeNames.join(','); _.each($scope.editingModel.industryIds,function (industryId) { $scope.editingModel.industryNames.push(induestryDic[industryId].name); }); $scope.editingModel.industrys = $scope.editingModel.industryNames.join(','); $scope.editingModel.dataSource = $scope.editingModel.dataSourceKey + '_' + $scope.editingModel.dataSourceName; var copiedEditingModel = angular.copy($scope.editingModel); if ($scope.state === 2) { KeyValueConfigService.addNewKeyValueConifg($scope.editingModel).success(function () { $scope.editDone({ editingModel: copiedEditingModel }); var dataGrid = $("#KVgridContainer").dxDataGrid("instance"); dataGrid.refresh(); }); } else if ($scope.state === 1) { KeyValueConfigService.updateNewKeyValueConifg($scope.editingModel).success(function () { $scope.editDone({ editingModel: copiedEditingModel }); var dataGrid = $("#KVgridContainer").dxDataGrid("instance"); dataGrid.refresh(); }); } $('#kvc-editing-modal').modal('hide'); }; $scope.editKvc = function () { $scope.state = 1; }; $('#kvc-editing-modal').on('hidden.bs.modal', function () { $scope.editingModel = {}; $scope.kvcForm.$setPristine(); }); $scope.keyInValue = null; //var dataSourceChange = function (selectedItem) { // if (_.isNull(selectedItem)) return; // if (selectedItem.key === enums.formulaDataSourceType.KeyInSource) { // if ($scope.state === 2) { // $scope.editingModel.dataSourceName = null; // } // $('#keyInValue').show(); // } else { // $scope.editingModel.dataSourceName = selectedItem.value; // $('#keyInValue').hide(); // } //}; $scope.dataSourceNameOptions = { disabled: true }; //$scope.datasourceOptions = { // bindingOptions: { // dataSource: 'dataSourceList', // disabled: 'state === 0' // }, // //dataSource: $scope.dataSourceList, // valueExpr: 'key', // displayExpr: 'value', // onSelectionChanged: function (e) { // var selectedItem = e.selectedItem; // dataSourceChange(selectedItem); // } //}; var formatCharacters = ['(', '+', '-', '*', '/']; $scope.mappingDataSource = function () { var formula = $scope.editingModel.formula if (formula) { var r = formula.replace(/[\(|\+|\-|\*|\/]/g, "#"); formula = r.split('#')[0]; var source = _.findWhere($scope.dataSourceList, {formulaName:formula}); if (_.isUndefined(source)) { source = { dataSourceType: 10, dataSourceName: $translate.instant('KeyInSource') } } $scope.editingModel.dataSourceKey = source.dataSourceType; $scope.editingModel.dataSourceName = source.dataSourceName; //KeyValueConfigService.mappingDataSource(formula).success(function (res) { // if (res) { // // var obj = { id: res.data.dataSourceID, name: res.data.dataSourceName }; // $scope.editingModel.dataSourceKey = res.data.dataSourceID; // $scope.editingModel.dataSourceName = res.data.dataSourceName; // // dataSourceChange(obj); // } //}).error(function (err) { // console.log(err); //}); } } //var getAllKeyCode = function () { // KeyValueConfigService.getAll().success(function (data) { // $scope.mentionList = _.map(data, function (config) { return { code: '@' + config.keyCode, name: config.name, description: config.description } }); // }); //}; var getAllDataSource = function () { KeyValueConfigService.getAllDataSource().success(function (res) { $scope.dataSourceList = res.data; }); }; (function initalization() { //getAllKeyCode(); // $scope.dataSourceList = _.chain(enums.formulaDataSourceType) //.pairs().map(function (obj) { return { id: obj[1], name: $translate.instant(obj[0]) }; }).value(); getAllDataSource(); //$('#kvc-editing-modal').on('show.bs.modal', function () { // // 执行一些动作... // $('#keyInValue').hide(); //}) var titleStr = $scope.state === 0 ? 'ViewKeyValueConfig' : $scope.state === 1 ? 'UpdateKeyValueConfiguration' : $scope.state === 2 ? 'AddKeyValueConfiguration' : ''; $scope.modalTitle = $translate.instant(titleStr); })(); }]);