| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- define(['app/app'], function(app) {
- 'use strict';
- app.register.controller('HelpEditCtrl', ['$scope', '$modal', 'HelpIssue', 'toaster', '$state', '$http', 'BaseService', 'HelpUpload', '$q', function ($scope, $modal, HelpIssue, toaster, $state, $http, BaseService, HelpUpload, $q) {
- $scope.issue = {};
- $('.main-content').scroll(function() {
- var scrollTop = $('.main-content')[0].scrollTop || 0;
- var toolbarTop = $('.ql-toolbar').offsetTop || 42;
- if (scrollTop >= toolbarTop) {
- $('.ql-toolbar').addClass('onTop').css('top', toolbarTop + 'px');
- } else {
- $('.ql-toolbar').removeClass('onTop');
- }
- });
- // 选择导航
- $scope.chooseNav = function() {
- var modalInstance = $modal.open({
- templateUrl : 'static/view/admin/help/helpNav_modal.html', //指向上面创建的视图
- controller : 'HelpNavModalCtrl',// 初始化模态范围
- size : 'md' // 大小配置
- });
- modalInstance.opened.then(function(){// 模态窗口打开之后执行的函数
- });
- modalInstance.result.then(function(nav){
- $scope.issue.nav = nav;
- $scope.issue.navId = nav.id;
- }, function(reason){
- });
- };
- $scope.rootPath = BaseService.getRootPath();
- function switchBase64ToImg(el) {
- var deferred = $q.defer();
- var data = el.src;
- var arr = data.split(','), mime = arr[0].match(/:(.*?);/)[1],
- bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
- while(n--){
- u8arr[n] = bstr.charCodeAt(n);
- }
- var obj = new Blob([u8arr], {type:mime});
- var fd = new FormData();
- fd.append("upfile", obj, "image.png");
- return HelpUpload.upload(fd, function (data) {
- el.src = data[0].path;
- // console.log(el);
- }, function (err) {
- toaster.pop('error', '上传失败');
- })
- }
-
- // 保存
- $scope.save = function () {
- $scope.issue.article = quill.container.innerHTML.replace('\<input type="text" data-formula="e=mc^2" data-link="https://quilljs.com" data-video="Embed URL">','').replace('contenteditable="true"', 'contenteditable="false"');
- $scope.issue.content = angular.toJson(quill.getContents());
- var els = $($scope.issue.article);
- var imgs = els.find('img');
- var promises = [];
- angular.forEach(imgs, function (img) {
- promises.push(switchBase64ToImg(img).$promise);
- })
- $q.all(promises).then(function () {
- // console.log(els.html());
- $scope.issue.article = els.html()
- HelpIssue.save({}, $scope.issue, function (data) {
- toaster.pop('success', '保存成功');
- $state.go('helpDetail',{id : data.id});
- window.location.href = '#/help/issue/' + data.id;// quilljs锁定了跳转 必须这样跳两次才有效
- }, function(response) {
- toaster.pop('error', response.data);
- });
- });
- };
- }]);
- app.register.controller('HelpNavModalCtrl', ['$scope', '$modalInstance', 'toaster', 'HelpAPI', function($scope, $modalInstance, toaster, HelpAPI) {
- HelpAPI.findChildren({parentId : 0}, function (data) {
- $scope.nav1 = data;
- angular.forEach($scope.nav1, function(nav) {
- nav.isShow = false;
- });
- }, function (response) {
- toaster.pop('error', response.data);
- });
- var toggleNav = function (nav) {
- if (nav.isShow) {
- nav.children = {};
- nav.isShow = false;
- } else if (nav.count > 0) {
- HelpAPI.findChildren({parentId : nav.id}, function (data) {
- nav.children = data;
- angular.forEach($scope.nav1, function (allNav) {
- allNav.isShow = false;
- });
- nav.isShow = true;
- }, function(response) {
- toaster.pop('error', response.data)
- });
- }
- };
- // 开关导航
- $scope.toggleNav = function (nav) {
- if (nav.isLeaf == 0) {
- toggleNav(nav);
- } else {
- $scope.chooseNav = nav;
- }
- };
- // 确认
- $scope.confirm = function() {
- $modalInstance.close($scope.chooseNav);
- };
- // 取消
- $scope.cancel = function() {
- $modalInstance.dismiss();
- }
- }]);
- });
|