citModule.controller('citUploadModalController', ['$scope', '$log', '$translate', '$location', '$timeout', '$interval', '$filter', '$state',
    'SweetAlert', '$uibModal', 'apiInterceptor', '$q', 'Upload', 'templateGroupService', 'enums','vatSessionService',
    function ($scope, $log, $translate, $location, $timeout, $interval, $filter,$state, SweetAlert, $uibModal, apiInterceptor, $q,
        Upload, templateGroupService, enums,vatSessionService) {
        var thisConstant = {
            sheetSelectDxID: window.PWC.newGuid(),
            sheetDxTreeID: window.PWC.newGuid(),

            // 查找现有报表模板
            findSheetDxDropID: window.PWC.newGuid(),
            findSheetDxTreeID: window.PWC.newGuid(),
            searchBoxDivId: window.PWC.newGuid(),

            // get sheetName list 
            uploadUrl: apiInterceptor.webApiHostUrl + '/templateGroup/getSheetNameList',
            // resumable:true,
            getSheetNameListError: '获取Sheet下拉列表失败',
            getSheetNameTitle: '解析Excel',
            allSheets: '所有报表',
            pleaseSelectFile: '请选择文件',
            pleaseSelectTemplate: '请选择报表',
            deleteSuccess: '删除成功',

            // 上传报表路径
            importTemplateExcelFile: apiInterceptor.vatWebApiHostUrl + '/DataImport/importEntDataListExcelFile',
            // 是否是第一次画sheet 的dropdown
            isFirstDrawDxDropDown: true,
            underLineSeparator: '_',
            codeReg: /^[a-zA-Z0-9\.]*$/,
            codeError: 'code必须为英文字母或者数字',
        };

        var thisData = {
            // 所有 sheet Name的数组
            sheetNameList: [],
            // 所有sheet name 的列表[{id:1, name:'sheet名称'}]
            sheetNameObjList: [],
            sheetTreeView: null,
            // dropdown的显示文字
            sheetText: thisConstant.allSheets,
            selectSheetNameList: [],

            // 查找现有报表,选择的报表列表
            selectTemplateCodeList: [],

            findSheetTreeView: null
        };

        var thisDataService = {
            newModel: function() {
                var editModel = {};
                editModel.sheetSelectDxID = thisConstant.sheetSelectDxID;
                editModel.templateGroupID = $scope.templateModel.templateGroupID;
                editModel.findSheetDxDropID = thisConstant.findSheetDxDropID;
                editModel.reportType = $scope.templateModel.reportType;

                return editModel;
            },

            // 获取sheet列表
            getSheetList: function () {
              

                if (!$scope.editModel || !$scope.editModel.file) {
                    return;
                }

                var deferred = $q.defer();
                var tempFileName = PWC.newGuid() + '.dat';
                var token = $('input[name="__RequestVerificationToken"]').val();
                $('#busy-indicator-container').show();

                Upload.upload({
                    url: thisConstant.uploadUrl,
                    data: {

                        filename: $scope.editModel.file.name,
                        tempFileName: tempFileName,
                    },
                    file: $scope.editModel.file,
                    // resumeChunkSize: resumable ? $scope.chunkSize : null,
                    headers: {
                        'Access-Control-Allow-Origin': '*',
                        Authorization: apiInterceptor.tokenType + ' ' + apiInterceptor.apiToken,
                        __RequestVerificationToken: token,
                        withCredentials: true,
                    },
                    __RequestVerificationToken: token,
                    withCredentials: true
                }).then(function(resp) {
                    var ret = resp.data;
                    $('#busy-indicator-container').hide();
                    deferred.resolve();
                    if (ret.result) {
                        // 导入成功
                        thisData.sheetNameList = ret.data;
                        thisData.sheetNameObjList = thisDataService.parseSheetNameObjList(ret.data);
                        // thisDataService.refreshSheetNameDropDownList(thisData.sheetNameObjList);
                        thisDataService.drawSheetNameDropDownList();

                    } else {

                        if (ret.resultMsg && ret.resultMsg.length > 0) {
                            SweetAlert.warning($translate.instant(ret.resultMsg));

                        } else {

                            SweetAlert.swal({
                                title: thisConstant.getSheetNameTitle,
                                text: thisConstant.getSheetNameListError,
                                type: "info",
                                showCancelButton: false,
                                closeOnConfirm: false,
                                closeOnCancel: true,
                                html: true
                            });

                        }
                    }

                }, function(resp) {
                    deferred.resolve();

                    if (resp.statusText === 'HttpRequestValidationException') {
                        SweetAlert.warning($translate.instant('HttpRequestValidationException'));
                    } else {
                        SweetAlert.warning('SaveFail');
                    }

                    console.log('Error status: ' + resp.status);
                }, function(evt) {
                    deferred.resolve();
                    var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
                    $log.debug('progress: ' + progressPercentage + '% ' + evt.config.data.file.name);
                });

            },
            // 验证Template 的code list 必须为英文字母或者数字
            validateTemplateCodeList: function(data) {
                if (data && data.length > 0) {
                    for (var i = 0; i < data.length; i++) {
                        if (!thisDataService.validateTemplateCode(data[i])) {
                            return data[i] + thisConstant.codeError;
                        }
                    }
                }

                return null;
            },

            // 验证Template 的code 必须为英文字母或者数字
            validateTemplateCode: function(value) {
                // body...
                var arr = value.split(thisConstant.underLineSeparator);
                if (arr && arr.length > 0) {
                    // code必须为英文字母或者数字
                    if (!thisConstant.codeReg.test(arr[0])) {
                        return false;
                    }
                }

                return true;
            },
            // 转换sheet obj List
            parseSheetNameObjList: function(data) {
                var ret = [];
                if (data && data.length > 0) {
                    for (var i = 0; i < data.length; i++) {
                        var row = data[i];
                        var item = {
                            name: row,
                        };

                        item.id = row;

                        ret.push(item);
                    }
                }

                return ret;
            },
            // 绘制sheet drop down list
            drawSheetNameDropDownList: function() {
                thisData.dxTreeViewDiv = '<div class="tree-view-list margin-sheet" id="' + thisConstant.sheetDxTreeID + '">';
                $("#" + thisConstant.sheetSelectDxID).dxDropDownBox({
                    value: [],
                    valueExpr: "id",
                    displayExpr: "name",
                    // text: thisConstant.allSheets,
                    showClearButton: false,
                    noDataText: '',
                    dropDownOptions: { maxHeight: '380px' },
                    dataSource: thisData.sheetNameObjList,
                    contentTemplate: function(e) {
                        var value = e.component.option("value"),
                            $treeView = $(thisData.dxTreeViewDiv).dxTreeView({
                                dataSource: e.component.option("dataSource"),
                                dataStructure: "plain",
                                keyExpr: "id",
                                parentIdExpr: "parentID",
                                selectionMode: "multiple",
                                displayExpr: "name",
                                selectByClick: true,
                                noDataText: '',
                                expandAllEnabled: true,
                                selectNodesRecursive: true,
                                showCheckBoxesMode: "selectAll",

                                selectAllText: '全部',
                                onSelectionChanged: function(args) {
                                    var value = args.component.getSelectedNodesKeys();
                                    thisData.selectSheetNameList = value;
                                    e.component.option("value", value);
                                }
                            });

                        thisData.sheetTreeView = $treeView.dxTreeView("instance");
                        thisData.sheetText = e.component.option("text");

                        e.component.on("valueChanged", function(args) {

                            // var value = args.value;
                            // syncTreeViewSelection(thisData.sheetTreeView, value);
                        });

                        return $treeView;
                    }
                });
            },

            // 上传报表
            save: function(modalInstance) {
                if (!$scope.editModel || !$scope.editModel.file) {
                    SweetAlert.warning(thisConstant.pleaseSelectFile);
                    return;
                }

                var deferred = $q.defer();
                var tempFileName = PWC.newGuid() + '.dat';
                var token = $('input[name="__RequestVerificationToken"]').val();


                var json = '';
                if (thisData.selectSheetNameList && thisData.selectSheetNameList.length > 0) {

                    var validateRet = thisDataService.validateTemplateCodeList(thisData.selectSheetNameList);
                    if (validateRet) {
                        SweetAlert.warning(validateRet);
                        return;
                    }

                    json = JSON.stringify(thisData.selectSheetNameList);

                } else {
                    SweetAlert.warning(thisConstant.pleaseSelectTemplate);
                    return;
                }

                // 转圈圈
                $('#busy-indicator-container').show();

                Upload.upload({
                    url: thisConstant.importTemplateExcelFile,
                    data: {
                        templateGroupID: $scope.editModel.templateGroupID,
                        sheetList: json,
                        filename: $scope.editModel.file.name,
                        tempFileName: tempFileName,
                        reportType: $scope.editModel.reportType
                    },
                    file: $scope.editModel.file,
                    // resumeChunkSize: resumable ? $scope.chunkSize : null,
                    headers: {
                        'Access-Control-Allow-Origin': '*',
                        Authorization: apiInterceptor.tokenType + ' ' + apiInterceptor.apiToken,
                        __RequestVerificationToken: token,
                        withCredentials: true,
                        from: vatSessionService.project.dbName+'@cn.pwc.com'
                    },
                    __RequestVerificationToken: token,
                    withCredentials: true
                }).then(function(resp) {
                    var ret = resp.data;
                    $('#busy-indicator-container').hide();
                    deferred.resolve();
                    if (ret.result) {
                        // 导入成功
                        // 获取name
                        var array = thisData.selectSheetNameList[0].split(thisConstant.underLineSeparator);

                        var resultModel = {
                            name: array[1]
                        };
                        SweetAlert.warning('上传成功');
                        modalInstance.close(resultModel);
                        //$state.reload('cit.importData.documentList.reportView');
                        //$scope.onClosed({ model: null });
                    } else {

                        if (ret.resultMsg && ret.resultMsg.length > 0) {
                            SweetAlert.warning(ret.data + $translate.instant(ret.resultMsg));

                        } else {

                            SweetAlert.swal({
                                title: thisConstant.getSheetNameTitle,
                                text: thisConstant.getSheetNameListError,
                                type: "info",
                                showCancelButton: false,
                                closeOnConfirm: false,
                                closeOnCancel: true,
                                html: true
                            });

                        }
                    }

                }, function(resp) {
                    deferred.resolve();

                    if (resp.statusText === 'HttpRequestValidationException') {
                        SweetAlert.warning($translate.instant('HttpRequestValidationException'));
                    } else {
                        SweetAlert.warning($translate.instant('SaveFail'));
                    }

                    console.log('Error status: ' + resp.status);
                }, function(evt) {
                    deferred.resolve();
                    var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
                    $log.debug('progress: ' + progressPercentage + '% ' + evt.config.data.file.name);
                });
            },
            saveFindAdd: function(modalInstance) {
                // body...
                if (!thisData.selectTemplateCodeList || thisData.selectTemplateCodeList.length === 0) {
                    SweetAlert.warning(thisConstant.pleaseSelectTemplate);
                    return;
                }

                var model = {
                    serviceTypeID: $scope.editModel.serviceTypeID,
                    payTaxType: $scope.editModel.payTaxType,
                    reportType: $scope.editModel.reportType,
                    industryIDs: $scope.editModel.industryIDs,
                    templateGroupID: $scope.editModel.templateGroupID,
                    templateIdList: thisData.selectTemplateCodeList
                };


                var filterTemplate = _.filter(thisData.allTemplateList, function(row) {
                    return model.templateIdList.indexOf(row.id) > -1;
                });

                var codeKey = _.uniq(_.pluck(filterTemplate, 'code'));

                var repeatCode = [];

                codeKey.forEach(function(row) {

                    var filter = _.filter(filterTemplate, function(t) {
                        return row === t.code;
                    });

                    if (filter && filter.length > 1) {
                        repeatCode.push(row);
                    }
                });

                if (repeatCode && repeatCode.length > 0) {
                    SweetAlert.warning(repeatCode.join(',') + '代码重复');
                    return;
                }

                templateGroupService.addExistTemplate(model).success(function(ret) {
                    console.log(ret);
                    if (ret.result) {

                        // 选中的第一个报表
                        var bindModel = _.find(thisData.allTemplateList, function(row) {
                            return row.templateGroupID && thisData.selectTemplateCodeList.indexOf(row.id) > -1;
                        });


                        thisData.resultModel = bindModel;
                        $scope.operateType = null;
                        thisData.isUpdate = true;

                        modalInstance.close(bindModel);
                    } else {
                        if (ret.resultMsg && ret.resultMsg.length > 0) {
                            SweetAlert.warning($translate.instant(ret.resultMsg));

                        } else {
                            SweetAlert.warning($translate.instant('SaveFail'));
                        }
                    }
                });
            },

            // 绘制查找sheet的dropdown 列表
            drawFindSheetDropDownList: function(data) {
                // body...
                thisData.dxTreeViewFindDiv = '<div class="tree-view-list margin-find" id="' + thisConstant.findSheetDxTreeID + '">';
                thisData.searchBoxDiv = '<div class="search-box" id="' + thisConstant.searchBoxDivId + '">';

                // data.forEach(function(row){

                //     row.expanded = true;
                // });

                var getSearchList = function(dataSource, value) {
                    if (!value) {
                        return dataSource;
                    }

                    dataSource.forEach(function (x) {
                        x.expanded = false;
                    });

                    var groupIDs = _.uniq(_.pluck(dataSource, 'parentID'));
                    var group = _.filter(dataSource, function(row) {
                        return groupIDs.indexOf(row.id) >= 0;
                    });

                    var result = _.filter(dataSource, function(row) {

                        if (!row.nameDisplay) {
                            return false;
                        }

                        return row.nameDisplay.toLowerCase().indexOf(value.toLowerCase()) > -1;
                    });

                    if (result && result.length > 0) {
                        var templateGroup = _.uniq(_.pluck(result, 'parentID'));
                        templateGroup.forEach(function(id) {
                            internalSearchParent(result, group, id);
                        });
                    }

                    return result;
                };

                var internalSearchParent = function (result, group, id) {
                    var find = _.find(result, function (t) {
                        return t.id === id;
                    });

                    if (!find) {
                        find = _.find(group, function (t) {
                            return t.id === id;
                        });

                        if (find) {
                            if (find.parentID && !find.expanded) {
                                internalSearchParent(result, group, find.parentID);
                            }

                            find.expanded = true;
                            result.push(find);
                        }
                    }
                    else if (find.parentID && !find.expanded) {
                        internalSearchParent(result, group, find.parentID);
                    }
                    else {
                        find.expanded = true;
                    }
                };

                var searchTextChange = function(value) {
                    var o = $('#' + thisConstant.findSheetDxTreeID).dxTreeView('option');
                    var orgList = getSearchList(thisData.allTemplateList, value);
                    o.dataSource = orgList;
                    o.value = [];
                    $('#' + thisConstant.findSheetDxTreeID).dxTreeView('option', o);
                };
                $("#" + thisConstant.findSheetDxDropID).dxDropDownBox({
                    value: [],
                    valueExpr: "id",
                    displayExpr: "nameDisplay",
                    // text: thisConstant.allSheets,
                    showClearButton: false,
                    noDataText: '',
                    dropDownOptions: { maxHeight: '380px' },
                    dataSource: thisData.allTemplateList,
                    contentTemplate: function(e) {
                        var value = e.component.option("value"),
                            $treeView = $(thisData.dxTreeViewFindDiv).dxTreeView({
                                dataSource: e.component.option("dataSource"),
                                dataStructure: "plain",
                                keyExpr: "id",
                                parentIdExpr: "parentID",
                                selectionMode: "multiple",
                                displayExpr: "nameDisplay",
                                expandedExpr: 'expanded',
                                selectByClick: true,
                                expandAllEnabled: true,
                                selectNodesRecursive: true,
                                showCheckBoxesMode: "normal",
                                noDataText: '',
                                height: '300px',
                                value: [],
                                itemTemplate: function(itemData, itemIndex, itemElement) {
                                    itemElement.append("<span title='" + itemData.nameDisplay + "'>" + itemData.nameDisplay + "</span>");
                                },
                                onItemSelectionChanged: function(args) {
                                    var value = args.component.getSelectedNodesKeys();
                                    thisData.selectTemplateCodeList = value;
                                    e.component.option("value", value);
                                }
                            });

                        thisData.findSheetTreeView = $treeView.dxTreeView("instance");
                        thisData.sheetText = e.component.option("text");
                        var textBox = $(thisData.searchBoxDiv).dxTextBox({
                            placeholder: "搜索",
                            mode: "search",
                            onValueChanged: function(args) {
                                var value = args.value;
                                searchTextChange(value);
                            },
                            onKeyUp: function(args) {
                                var value = $(args.element).dxTextBox('option').text;
                                searchTextChange(value);
                            }
                        });

                        e.component.on("valueChanged", function(args) {

                            // var value = args.value;
                            // syncTreeViewSelection(thisData.sheetTreeView, value);
                        });

                        var wrapper = $("<div>").append(textBox).append('<br/>').append($treeView);

                        return wrapper;
                    }
                });
            },

            // 删除系统级别的报表
            deleteSystemTemplate: function() {

                // 删除模板服务
                var deleteTemplate = function(model) {
                    templateGroupService.deleteTemplate(model).success(function(ret) {
                        if (ret.result) {
                            $scope.operateType = null;
                            $scope.isUpdate = true;
                            SweetAlert.warning('删除成功');
                            $scope.onClosed({ model: null });
                            $scope.operateType = null;
                        } else {
                            SweetAlert.warning($translate.instant('SaveFail'));
                        }
                    });
                };


                var text = "确定要删除报表" + $scope.templateModel.name + "吗?";

                SweetAlert.swal({
                        title: '确定删除吗?',
                        text: text,
                        type: "warning",
                        showCancelButton: true,
                        confirmButtonColor: "#DD6B55",
                        confirmButtonText: $translate.instant('Confirm'),
                        cancelButtonText: $translate.instant('Cancel'),
                        closeOnConfirm: false,
                        closeOnCancel: true
                    },
                    function(isConfirm) {
                        if (isConfirm) {
                            var model = {
                                id: $scope.templateModel.id,
                                isDeletePermanent: false,
                                path: $scope.templateModel.path
                            };
                            deleteTemplate(model);
                        } else {
                            $scope.operateType = null;
                            $scope.isUpdate = false;
                        }
                    });
            }
        };

        var thisModalService = {

            open: function(editModel) {
                $scope.editModel = editModel;

                var modalInstance = $uibModal.open({
                    animation: false,
                    ariaLabelledBy: 'modal-title',
                    ariaDescribedBy: 'modal-body',
                    templateUrl: 'editTemplateModal.html',
                    windowClass: 'edit-template-modal-wrapper',
                    scope: $scope,
                    resolve: {
                        editModel: editModel
                    }
                });


                modalInstance.result.then(function(data) {
                    thisData.isUpdate = true;
                    thisData.resultModel = data;
                    $scope.onClosed({ model: data });
                    $scope.operateType = null;
                }, function() {
                    $scope.operateType = null;
                    $scope.isUpdate = false;
                    $log.info('Modal dismissed at: ' + new Date());
                });

                $scope.getSheetList = thisDataService.getSheetList;

                // 确定
                $scope.save = function () {
                
                    thisDataService.save(modalInstance);
                }

                // 取消
                $scope.cancel = function() {
                    modalInstance.dismiss('cancel');
                };

                $timeout(function() {
                    thisData.sheetNameObjList = [];
                    // 下拉框内容
                    thisDataService.drawSheetNameDropDownList();

                }, 10);
            },
            newModel: function() {
                var editModel = thisDataService.newModel();
                thisModalService.open(editModel);
                var serviceTypeID = $scope.templateModel.serviceTypeID;
                
                var payTaxType = (serviceTypeID === enums.serviceType.CIT) ? '' : $scope.templateModel.payTaxType;
                var reportType = (serviceTypeID === enums.serviceType.CIT) ? $scope.templateModel.reportType : '';
                var industryIDs = $scope.templateModel.industryIDs;
                templateGroupService.getTemplateUniqList(serviceTypeID, payTaxType, reportType, industryIDs).success(function (data) {

                    var result = data;
                    if ($scope.templateModel.currentTemplateCodeList && $scope.templateModel.currentTemplateCodeList.length > 0) {

                        result = _.filter(data, function(row) {
                            return $scope.templateModel.currentTemplateCodeList.indexOf(row.code) === -1;
                        });
                    }

                    if (result && result.length > 0) {
                        result.forEach(function(row) {
                            if (row.code) {
                                row.nameDisplay = row.name + thisConstant.underLineSeparator + row.code;
                            } else {
                                row.nameDisplay = row.name;
                            }
                        });
                    }

                    thisData.allTemplateList = result;

                    $timeout(function() {
                        thisDataService.drawFindSheetDropDownList(thisData.allTemplateList);
                    }, 10);
                });

            },
            // 删除报表Comfirm框
            deleteTemplateComfirmModel: function() {
                var editModel = {};
                editModel.title = "删除报表" + $scope.templateModel.code + thisConstant.underLineSeparator + $scope.templateModel.name;
                editModel.deleteConfirmText = '从当前模板删除还是整个系统中删除?';
                editModel.id = $scope.templateModel.id;
                editModel.code = $scope.templateModel.code;
                editModel.name = $scope.templateModel.name;
                editModel.isSystemType = $scope.templateModel.isSystemType;
                editModel.path = $scope.templateModel.path;
                $scope.editModel = editModel;
                var modalInstance = $uibModal.open({
                    animation: true,
                    backdrop: false,
                    ariaLabelledBy: 'modal-title',
                    ariaDescribedBy: 'modal-body',
                    templateUrl: 'deleteTemplateModal.html',
                    windowClass: 'edit-template-modal-wrapper',
                    scope: $scope,
                    resolve: {
                        editModel: editModel
                    }
                });


                modalInstance.result.then(function(data) {
                    $scope.templateModel = data;
                    $scope.isUpdate = true;
                    $scope.onClosed({ model: data });
                    $scope.operateType = null;
                }, function() {
                    $scope.operateType = null;
                    $scope.isUpdate = false;
                    $log.info('Modal dismissed at: ' + new Date());
                });

                // 删除模板服务
                var deleteTemplate = function(model) {
                    templateGroupService.deleteTemplate(model).success(function(ret) {
                        if (ret.result) {
                            modalInstance.close(model);
                        } else {
                            SweetAlert.warning($translate.instant('SaveFail'));
                        }

                    });
                };

                // 删除关联
                $scope.deleteRelation = function() {
                    // thisDataService.saveFindAdd(modalInstance)

                    var model = {
                        id: $scope.editModel.id,
                        isDeletePermanent: false,
                        path: $scope.editModel.path
                    };

                    deleteTemplate(model);
                };

                // 永久删除
                $scope.deletePermanent = function() {
                    // 
                    var model = {
                        id: $scope.editModel.id,
                        isDeletePermanent: true,
                        path: $scope.editModel.path
                    };

                    deleteTemplate(model);
                };

                // 取消
                $scope.cancel = function() {
                    modalInstance.dismiss('cancel');
                };
            },
            // 编辑报表名称
            editTemplateNameModal: function() {
                var editModel = {
                    name: $scope.templateModel.name,
                    id: $scope.templateModel.id,
                    code: $scope.templateModel.code,
                    title: '编辑报表' + $scope.templateModel.name
                };

                $scope.editModel = editModel;

                var modalInstance = $uibModal.open({
                    animation: false,
                    ariaLabelledBy: 'modal-title',
                    ariaDescribedBy: 'modal-body',
                    templateUrl: 'editTemplateNameModal.html',
                    windowClass: 'edit-template-name-wrapper',
                    size: 'sm',
                    scope: $scope,
                    resolve: {
                        editModel: editModel
                    }
                });


                modalInstance.result.then(function(data) {
                    $scope.isUpdate = true;
                    $scope.onClosed({ model: data });
                    $scope.operateType = null;
                }, function() {
                    $scope.operateType = null;
                    $scope.isUpdate = false;
                    $log.info('Modal dismissed at: ' + new Date());
                });

                // 删除模板服务
                var updateTemplateName = function(model) {
                    templateGroupService.updateTemplateName(model).success(function(ret) {
                        if (ret.result) {
                            // 导入成功
                            modalInstance.close(model);

                        } else {
                            if (ret.resultMsg && ret.resultMsg.length > 0) {
                                SweetAlert.warning(ret.data + $translate.instant(ret.resultMsg));

                            } else {
                                SweetAlert.warning($translate.instant('SaveFail'));
                            }
                        }
                    });
                };

                // 修改报表名称
                $scope.saveUpdateTemplateName = function() {
                    // thisDataService.saveFindAdd(modalInstance)

                    var model = {
                        id: $scope.editModel.id,
                        name: $scope.editModel.name,
                    };

                    updateTemplateName(model);
                };

                // 取消
                $scope.cancel = function() {
                    modalInstance.dismiss('cancel');
                };
            }
        };

        var mainModule = {
            main: function() {

                $scope.editModel = {};
                mainModule.watchFunction();
            },
            watchFunction: function() {
                $scope.$watch('operateType', function(newValue, oldValue) {

                    if (newValue !== oldValue) {
                        thisData.isUpdate = false;
                        thisData.resultModel = null;
                        $scope.isUpdate = false;
                    }

                    if (newValue === constant.Operation.Add) {
                        thisModalService.newModel();
                    } else if (newValue === constant.Operation.Delete) {
                        // 删除

                        if ($scope.templateModel) {
                            if ($scope.templateModel.isSystemType) {
                                // 系统级别直接删除,不用提示
                                thisDataService.deleteSystemTemplate();

                            } else {
                                thisModalService.deleteTemplateComfirmModel();
                            }
                        }
                    } else if (newValue === constant.Operation.Edit) {
                        thisModalService.editTemplateNameModal();
                    }
                });


            }
        };

        (function initialize() {
            mainModule.main();

        })();
    }
]);