| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- modal = new Vue({
- el: '#modal',
- data: {
- msg: '么有',
- title: '提示'
- },
- methods: {
- show: function(msg, title) {
- if (title) {
- this.title = title;
- }
- this.msg = msg;
- $('#mmodal').modal();
- }
- }
- })
- Vue.component('vue-easymde', VueEasyMDE.VueEasyMDE)
- var blobMap = {}
- app = new Vue({
- el: '#app',
- data: {
- text: null,
- enurl: null,
- copyicon: 'fa-clone',
- easyMDEOpts: {
- maxHeight: '47vh',
- onToggleFullScreen: function() { $('.navbar').toggle(); },
- sideBySideFullscreen: false,
- spellChecker: false,
- toolbar: [
- 'undo', 'redo', '|',
- 'bold', 'italic', 'strikethrough', 'heading', '|',
- 'quote', 'unordered-list', 'ordered-list', 'check-list', '|',
- 'link', 'image',
- {
- name: 'upload-image',
- action: EasyMDE.drawUploadedImage,
- className: 'fa fa-upload',
- title: 'Upload File',
- },
- {
- name: 'add-table',
- action: EasyMDE.drawTable,
- className: 'fa fa-table',
- title: 'Insert Table',
- },
- 'horizontal-rule', '|',
- 'preview', 'side-by-side', 'fullscreen', '|', 'guide'
- ],
- renderingConfig: { codeSyntaxHighlighting: true },
- uploadImage: true,
- imageAccept: '*',
- imageMaxSize: 268435456,
- imageUploadFunction: function(file, onSuccess, onError) {
- var url = URL.createObjectURL(file);
- var reader = new FileReader();
- reader.onerror = onError;
- reader.onload = function() {
- blobMap[url] = reader.result;
- var prefix = '[' + file.name + ']';
- if (file.type.startsWith('image')) {
- prefix = '!' + prefix;
- }
- var test = new RegExp('\\[(.+)(' + file.name + ')?\\]\\(blob:.*?\\1\\)');
- app.text = app.text.replace(test, prefix + '(' + url + ')');
- };
- onSuccess(url);
- reader.readAsDataURL(file);
- },
- },
- },
- methods: {
- copyTempURL: function() {
- navigator.clipboard.writeText(app.enurl).then(function() {
- app.copyicon = 'fa-check';
- setTimeout(function() {
- app.copyicon = 'fa-clone';
- }, 3000);
- })
- },
- getTempURL: function() {
- $('#enurl').loading({
- message: '加载中...',
- onStop: function(loading) {
- loading.overlay.fadeOut(650);
- }
- });
- axios.post('/api/get-temp', {
- text: app.text.replace(/\]\((blob:[^)]*)\)/g, function(_, blobURL) {
- return '](' + blobMap[blobURL] + ')';
- })
- }).then(function(response) {
- $('#enurl').loading('stop');
- var data = response.data;
- if (data.status == 1) {
- var newURL = location.protocol + '//' + location.host + location.pathname;
- app.enurl = newURL + data.guid;
- } else {
- throw 'failure to get the tmp url!';
- modal.show('操作失败!<br>', '错误')
- }
- console.log(response);
- }).catch(function(error) {
- console.warn(error.response);
- $('#enurl').loading('stop');
- modal.show('操作失败!<br>' + error.response.data.message, '错误')
- })
- }
- }
- })
|