|
|
@@ -3,7 +3,7 @@
|
|
|
*/
|
|
|
define(['app/app'], function(app) {
|
|
|
'use strict';
|
|
|
- app.register.controller('HelpDetailCtrl', ['$scope', '$modal', 'HelpIssue', 'toaster', '$stateParams', 'HelpAPI', '$state', function ($scope, $modal, HelpIssue, toaster, $stateParams, HelpAPI, $state) {
|
|
|
+ app.register.controller('HelpDetailCtrl', ['$scope', '$modal', 'HelpIssue', 'toaster', '$stateParams', 'HelpAPI', '$state', '$http', 'BaseService', 'HelpUpload', '$q', function ($scope, $modal, HelpIssue, toaster, $stateParams, HelpAPI, $state, $http, BaseService, HelpUpload, $q) {
|
|
|
|
|
|
HelpIssue.get({id : $stateParams.id}, function (data) {
|
|
|
$scope.issue = data;
|
|
|
@@ -31,6 +31,26 @@ define(['app/app'], function(app) {
|
|
|
}
|
|
|
});
|
|
|
|
|
|
+ $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.chooseNav = function() {
|
|
|
var modalInstance = $modal.open({
|
|
|
@@ -52,12 +72,22 @@ define(['app/app'], function(app) {
|
|
|
$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());
|
|
|
- HelpIssue.update({}, $scope.issue, function (data) {
|
|
|
- toaster.pop('success', '保存成功');
|
|
|
- $state.go('helpPublish');
|
|
|
- window.location.href ='admin_n#/help/publish';// quilljs锁定了跳转 必须这样跳两次才有效
|
|
|
- }, function(response) {
|
|
|
- toaster.pop('error', response.data);
|
|
|
+ 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.update({}, $scope.issue, function (data) {
|
|
|
+ toaster.pop('success', '保存成功');
|
|
|
+ $state.go('helpPublish');
|
|
|
+ window.location.href ='admin_n#/help/publish';// quilljs锁定了跳转 必须这样跳两次才有效
|
|
|
+ }, function(response) {
|
|
|
+ toaster.pop('error', response.data);
|
|
|
+ });
|
|
|
});
|
|
|
};
|
|
|
|
|
|
@@ -65,12 +95,22 @@ define(['app/app'], function(app) {
|
|
|
$scope.publish = 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());
|
|
|
- HelpIssue.publish({}, $scope.issue, function (data) {
|
|
|
- toaster.pop('success', '发布成功');
|
|
|
- $state.go('helpPublish');
|
|
|
- window.location.href = 'admin_n#/help/publish';
|
|
|
- }, function(response) {
|
|
|
- toaster.pop('error', response.data);
|
|
|
+ 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.publish({}, $scope.issue, function (data) {
|
|
|
+ toaster.pop('success', '发布成功');
|
|
|
+ $state.go('helpPublish');
|
|
|
+ window.location.href = 'admin_n#/help/publish';
|
|
|
+ }, function(response) {
|
|
|
+ toaster.pop('error', response.data);
|
|
|
+ });
|
|
|
});
|
|
|
};
|
|
|
|