infrastructureModule.controller('docManageController', ['$log', '$http', '$q', '$scope', '$translate', '$timeout', 'SweetAlert', '$compile', 'docManageService', '$filter', function ($log, $http, $q, $scope, $translate, $timeout, SweetAlert, $compile, docManageService, $filter) { $scope.localData = {}; $scope.pagingOptions = { totalItems: 10, //总数据 }; $scope.loadMainData = function () { var config = { params: {} }; docManageService.getMainList(config).then(function (data, status, headers) { if (status === 204) { SweetAlert.warning("没有数据可以下载"); return; } $scope.dataGridUpdate(data); }) }; $scope.dataGridUpdate = function (_data) { $scope.localData = _data.items; $scope.pagingOptions = { totalItems: $scope.localData.length, //总数据 }; $scope.dataGridOptions = { // dataSource: { // store: $scope.localData.items, // reshapeOnPush: true // }, bindingOptions: { dataSource: 'localData', }, // repaintChangesOnly: true, // twoWayBindingEnabled: true, showBorders: true, paging: { enable: true, pageIndex: 0, pageSize: 10 }, pager: { allowedPageSizes: 5, infoText: "当前 {0}页 /共 {1}页 ({2} 项)", showInfo: true, showNavigationButtons: true, showPageSizeSelector: true, visible: true }, searchPanel: {//查询 highlightCaseSensitive: true, highlightSearchText: true, searchVisibleColumnsOnly: false, text: "", width: 518, visible: true, placeholder: $translate.instant('Search'), }, sorting: {//排序 ascendingText: "Sort Ascending", clearText: "Clear Sorting", descendingText: "Sort Descending", mode: "single" }, 'export': { allowExportSelectedData: false,//允许选择导出 customizeExcelCell: null, enabled: true,//允许导出 excelFilterEnabled: false, excelWrapTextEnabled: false, fileName: "docManage",//名字 ignoreExcelErrors: true, }, showRowLines: true, columnAutoWidth: true, allowColumnReordering: true, columns: [ { dataField: "id", caption: $translate.instant('DocumentID'), allowHeaderFiltering: true, cellTemplate: function (container, options) { try { var style = options.data.status == 1 ? '' : 'style="color:#999"'; if (options.data.id) { $('<span ' + style + '>').text(options.data.id).appendTo(container); } else { $('<span>').text("").appendTo(container); } } catch (e) { $log.error(e); } } }, { dataField: "fileAttr", caption: $translate.instant('DocumentAttr'), allowHeaderFiltering: true, cellTemplate: function (container, options) { try { var style = options.data.status == 1 ? '' : 'style="color:#999"'; if (options.data.fileAttr) { $('<span ' + style + '>').text(options.data.fileAttr).appendTo(container); } else { $('<span>').text("").appendTo(container); } } catch (e) { $log.error(e); } } }, { dataField: "fileType", caption: $translate.instant('DocumentType'), allowHeaderFiltering: true, cellTemplate: function (container, options) { try { var style = options.data.status == 1 ? '' : 'style="color:#999"'; if (options.data.fileType) { $('<span ' + style + '>').text(options.data.fileType).appendTo(container); } else { $('<span>').text("").appendTo(container); } } catch (e) { $log.error(e); } } }, { dataField: "description", caption: $translate.instant('Explain'), allowHeaderFiltering: true, cellTemplate: function (container, options) { try { var style = options.data.status == 1 ? '' : 'style="color:#999"'; if (options.data.description) { $('<span ' + style + '>').text(options.data.description).appendTo(container); } else { $('<span>').text("").appendTo(container); } } catch (e) { $log.error(e); } } }, { dataField: "requiredField", caption: $translate.instant('RequiredFields'), allowHeaderFiltering: true, cellTemplate: function (container, options) { try { var style = options.data.status == 1 ? '' : 'style="color:#999"'; if (options.data.requiredField) { $('<span '+style+'>').text(options.data.requiredField.join(",")).appendTo(container); } else { $('<span>').text("").appendTo(container); } } catch (e) { $log.error(e); } } }, { dataField: "creator", caption: $translate.instant('Creator'), allowHeaderFiltering: true, cellTemplate: function (container, options) { try { var style = options.data.status == 1 ? '' : 'style="color:#999"'; if (options.data.creator) { $('<span ' + style + '>').text(options.data.creator).appendTo(container); } else { $('<span>').text("").appendTo(container); } } catch (e) { $log.error(e); } } }, { dataField: "updateTime", caption: $translate.instant('UpdateTime'), allowHeaderFiltering: true, cellTemplate: function (container, options) { try { var style = options.data.status == 1 ? '' : 'style="color:#999"'; if (options.data.updateTime) { $('<span '+style+'>').text($filter('date')(options.data.updateTime, 'yyyy-MM-dd')).appendTo(container); } else { $('<span>').text().appendTo(container); } } catch (e) { $log.error(e); } } }, { dataField: "status", caption: $translate.instant('State'), allowHeaderFiltering: true, cellTemplate: function (container, options) { try { if (options.data.status == 1) { options.data.status = $translate.instant('Enabled'); $('<span>').text(options.data.status).appendTo(container); } else { options.data.status = $translate.instant('Disabled'); $('<span style="color:#999">').text($translate.instant('Disabled')).appendTo(container); } } catch (e) { $log.error(e); } } }, { dataField: "operation", caption: $translate.instant('Operation'), allowHeaderFiltering: false, cellTemplate: function (container, options) { try { var eventTarget = $('<a style="color:#506bf7;" data-id="'+options.data.id+'" href="javascript:void(0)"><span>'+$translate.instant("Edit")+'</span></a>'); eventTarget.off('click').on('click',function(){ $scope.openEditPop(options.data.id); }); container.append(eventTarget); } catch (e) { $log.error(e); } } } ], rowAlternationEnabled: true, //单双行颜色 }; }; //弹出框 var openEditPop = function (rowId) { if (rowId) { $scope.confirmDocFileType = editDocFileType; $scope.localData.forEach(function (item) { if (item.id == rowId) { $scope.editModel = angular.copy(item); if($scope.editModel.status != 1 || $scope.editModel.status != 0){ // 特殊处理状态值,1 = “已启用”, 0 = “已禁用” $scope.editModel.status = item.status == $translate.instant("Enabled") ? 1 : 0; } } }); } else { $scope.confirmDocFileType = createDocFileType; $scope.editModel = {}; } createMultiSelect(); $('#editPopDialog').modal('show'); }; function createMultiSelect() { $("#appMultiSelectContainer").html(""); var htmlTemplate = $('<app-multi-select class="form-control" style="width:320px;"' + ' this-option-map="editRequiredFieldsMap"' + ' this-callback="editRequiredFieldsCallback"' + ' this-default-checked="editModel.requiredField"' + '></app-multi-select>'); $compile(htmlTemplate)($scope); $("#appMultiSelectContainer").append(htmlTemplate); } //保存 增加档案类型 var createDocFileType = function () { var uploadModel = angular.copy($scope.editModel); delete uploadModel.id; //新增文档不需要上传ID docManageService.addFileType(uploadModel).then(function (data) { if (data == true) { SweetAlert.success($translate.instant('SaveSuccess')); $scope.loadMainData(); } else { SweetAlert.warning($translate.instant('SaveFail')); } }); $('#editPopDialog').modal('hide'); }; var editDocFileType = function () { var uploadModel = angular.copy($scope.editModel); docManageService.editFileType(uploadModel).then(function (data) { if (data == true) { SweetAlert.success($translate.instant('SaveSuccess')); $scope.loadMainData(); } else { SweetAlert.warning($translate.instant('SaveFail')); } }); $('#editPopDialog').modal('hide'); }; //取消 var cancelDocFileType = function () { console.log("cancelDocFileType") }; $scope.editModel = { "id": 0,//主键id "fileAttr": "",//档案属性 手写 "fileTypeId": null,//暂无作用 因档案类型手写 "fileType": "",//档案类型 "requiredField": [],//必填字段对应id(先写死) 对应关系以前端为主导 "requiredFieldJson": "",//后台转换使用 "description": "",//说明 "creatorId": 1,//创建人id "creator": "",//创建人名字 "createTime": "2019-02-27T17:53:58.000+08:00",//创建时间 "updateTime": null,//更新时间 "status": 0,//'状态(0代表停用,1代表启用)' "remarks": ""//备注 }; $scope.editRequiredFieldsMap = { 1: "文件生效日期", 2: "所属期间", 3: "到期日", 4: "实物索引号", 5: "实物存放地点", 6: "实物保管人", 7: "税种" }; $scope.editRequiredFieldsCallback = function (keys, values) { $scope.editModel.requiredField = values; $scope.editModel.requiredFieldJson = JSON.stringify(values); } //----------------------taxation----basic-end------------------------------- ;(function initialize() { $scope.loadMainData(); //注册方法 $scope.openEditPop = openEditPop; $scope.confirmDocFileType = createDocFileType; $scope.cancelDocFileType = cancelDocFileType; })(); }]);