摘要:地址文檔網站在線地址今年年初,開始斷斷續續打磨自己的編輯器,到現在也有半年有余。目前是版本,后續會不斷完善,也歡迎大家貢獻自己的想法,共同進步。
github地址:https://github.com/qiuyaofan/iShow
文檔:https://qiuyaofan.github.io/iShow/
網站在線地址:https://qiuyaofan.github.io/ishowPage
今年年初,開始斷斷續續打磨自己的vue編輯器,到現在也有半年有余。目前是ishow1.0版本,后續會不斷完善,也歡迎大家貢獻自己的想法,共同進步。如果喜歡這個項目,記得star哦~
什么都不說,先上圖
ishow的界面如下所示: json渲染的手機端示例(iphone6為例) ishow編輯器的主要功能如下:ishow v1.0功能列表 一:字體編輯 1.普通樣式:背景顏色,文字顏色,字體,對齊,透明度,邊距,行高,大小,加粗,傾斜,下劃線,清除格式 2.邊框樣式:寬度,顏色,類型,圓角 3.陰影樣式:陰影顏色,大小,半徑,方向 4.點擊可修改文字,拖拽改變位置 二:圖片編輯 基本編輯:參考字體編輯 添加圖片,替換圖片 拉伸改變大小,旋轉 上傳圖片 圖片選擇彈層有:預覽,裁切(后臺未接),選擇,刪除等功能 三:動畫效果 打字機,漸變,淡入淡出,旋轉,縮放等,動畫種類參考易企秀 時間,延時,添加動畫,預覽動畫,清除動畫 多個動畫 次數,循環(1.0暫不實現) 四:左側頁面總預覽 添加新一頁,刪除,排序(1.0暫不實現) 五:鍵盤操作 左右鍵移動元素 刪除鍵刪除選中元素 撤銷ctrl+z(最多緩存40個操作) 六:層級調整(還需完善優化) 七:表單配置添加 目前支持表單類型:輸入框,單選,多選,下拉,按鈕 支持添加驗證 八:h5提交配置 標題,封面等 九:保存,發布(模版,h5 json) 十:多媒體 背景添加 音頻添加 視頻添加(1.0暫不實現) 十一:模版管理(1.0暫不實現,需要后臺配合) 編輯模版,搜索模版 十二:手機端渲染 根據json完成動畫播放,翻頁,音頻播放,屏幕適配等 表單提交后臺(未實現)ishow調用的外部插件
IUI組件部分
swiper:http://www.swiper.com.cn/api/index.html
餓了么element:http://element.eleme.io/#/zh-CN/component/installation
參考的開源架子:https://github.com/PanJiaChen/vue-element-admin
開發思路編輯器最終生成的是json配置,手機端通過json配置渲染出相應的樣式,動畫等。
mock.js目前編輯器是用mock實現模擬接口,如果需要換回自己的接口
1.去除config.js的mock調用
2.修改utils/fetch.js代碼
//mock.js resolve(res); //沒有mock // if (res.code === 40001) { // // 登出 // store.dispatch("FedLogOut").then(() => { // router.push({ path: "/login" }) // }); // } else if (res.code !== 200) { // Message({ // message: res.msg, // type: "error", // duration: 5 * 1000 // }); // reject(res); // } else { // resolve(res); // } 注釋掉resolve(res); 下面的取消注釋即可
json格式如下所示
var JSON={ "page":[ { "page": 1, "json": [ { /*** 控件類型 "1":"text", "2":"img", "3":"textarea", "4":"radio", "5":"checkbox", "6":"select", "7":"button" ***/ "type": 2, "content": "https://img.kxz.com/assets/kxz/fixedInputCover1_20170630/fb7bf5d8-56d6-46ea-a01b-35e6943647da_demo1-4.png", // 位置 "position": { "top": 360, "left": 201 }, "width": 175, "height": 125.2680965147453, //基本樣式屬性 "text": { "backgroundColor": "rgba(0,0,0,0)", "opacity": 100, "padding": 0, "rotate": 94, "borderWidth": 0, "borderRadius": 0, "borderColor": "rgba(204, 204, 204,1)", "borderStyle": "solid", "shadowColor": "rgba(204, 204, 204,1)", "shadowWidth": 0, "shadowRadius": 10, "shadowDire": 0 }, //動畫類型,支持多動畫 "animate": [ { "animationName": "fadeIn", "animationDuration": 2, "animationTimingFunction": "ease", "animationDelay": 0.4, "animationFillMode": "both", "animationPlayState": "initial", "isOut": false } ], "id": 1501745923909, //層級 "zIndex": 6 } ], //這一頁的背景圖片 "bgImage": { "backgroundColor": "", "coord": "", "url": "" } }, ], //配置 "setting": { //背景音樂 "bgMusic": { "url": "ttp://192.168.1.100:8080/uploadfile/3/15/5/8765a93f-351e-4984-8a03-6ef746ea36fd_bg.mp3", "name": "enemy2_down.mp3" } } };使用vue+element開發的部分經驗總結
使用vue以來遇到的一些問題及解決辦法,分享給大家,希望對你有幫助
1.element date組件
報錯內容:TypeError: value.getTime is not a function
原理:插件生成和默認值需要是Fri Sep 08 2017 16:25:00 GMT+0800 (CST)這種格式,但項目中通常是YYYY-MM-DD hh:mm:ss格式,所以報錯.
解決辦法:
后臺修改存儲類型,或者
//提交時 momentChange(date) { return date?this.moment(date).format("YYYY-MM-DD"):""; }, //獲取默認值回填前 dateChange(date){ return date?new Date(date):""; }
2.組件間調用
//子組件調用層級少可以使用this.$refs.chileComponentName.method 層級多借助bus.js或者vuex //父組件調用 this.$parent.method // 當前父元素 this.$el
3.element驗證的坑
經常加了type="number"報錯,然后搜到答案v-model.number="",然后發現 11.ee居然驗證通過?!
其實是v-model.number會自動把11.ee轉為11去驗證
解決辦法:
data() { let validateMobile = (rule, value, callback) => { if (!value||(value + "").length !== 11) { callback(new Error("手機號碼必須為11位純數字")); } else { callback(); } }; return { mobile:"", rules: { mobile: [ {validator: validateMobile, trigger: "blur"} ] } } }
4.通過el-upload上傳七牛
//獲取token接口函數 import {getUploadToken} from "api"; method:{ beforeUpload(file) { //拿到token return getUploadToken().then(response => { //后臺根據七牛的密鑰生成的token this.uploadForm.token = response.data.token; //我們生成唯一的key this.uploadForm.key = this.createKey(file); //前綴:在線路徑的前綴 this.prefix = response.data.prefix; }).catch(err => { console.info(err) }); }, createKey(file) { let curr = this.moment().format("YYYYMMDD").toString(); let prefix = this.moment(file.lastModified).format("HHmmss").toString(); let suffix = file.name; let key = encodeURI(`${curr}/${prefix}_${suffix}`); return key; }, handleSuccess(response, file, fileList) { //拼接成能訪問的在線鏈接 console.info(this.prefix + response.key); } }
5.vue屬性
1.添加background-image時2.添加數組到style //data舉例 data() { return { textJson:{ "backgroundColor": "rgba(0,0,0,0)", "opacity": 100, "padding": 0, "rotate": 0, "borderWidth": 0, "borderRadius": 100, "borderStyle": "solid", "shadowColor": "rgba(204, 204, 204,1)", "shadowWidth": 0, "shadowRadius": 10, "shadowDire": 0, "borderColor": "rgba(204, 204, 204,1)" }, animateJson:{ animationName:"fadeIn" } } }
今天就分享到這里啦~~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/88532.html
平日學習接觸過的網站積累,以每月的形式發布。2017年以前看這個網址:http://www.kancloud.cn/jsfron... 1. Javascript 前端生成好看的二維碼 十大經典排序算法(帶動圖演示) 為什么知乎前端圈普遍認為H5游戲和H5展示的JSer 個人整理和封裝的YU.js庫|中文詳細注釋|供新手學習使用 擴展JavaScript語法記錄 - 掉坑初期工具 漢字拼音轉換...
平日學習接觸過的網站積累,以每月的形式發布。2017年以前看這個網址:http://www.kancloud.cn/jsfron... 1. Javascript 前端生成好看的二維碼 十大經典排序算法(帶動圖演示) 為什么知乎前端圈普遍認為H5游戲和H5展示的JSer 個人整理和封裝的YU.js庫|中文詳細注釋|供新手學習使用 擴展JavaScript語法記錄 - 掉坑初期工具 漢字拼音轉換...
平日學習接觸過的網站積累,以每月的形式發布。2017年以前看這個網址:http://www.kancloud.cn/jsfron... 1. Javascript 前端生成好看的二維碼 十大經典排序算法(帶動圖演示) 為什么知乎前端圈普遍認為H5游戲和H5展示的JSer 個人整理和封裝的YU.js庫|中文詳細注釋|供新手學習使用 擴展JavaScript語法記錄 - 掉坑初期工具 漢字拼音轉換...
平日學習接觸過的網站積累,以每月的形式發布。2017年以前看這個網址:http://www.kancloud.cn/jsfron... 1. Javascript 前端生成好看的二維碼 十大經典排序算法(帶動圖演示) 為什么知乎前端圈普遍認為H5游戲和H5展示的JSer 個人整理和封裝的YU.js庫|中文詳細注釋|供新手學習使用 擴展JavaScript語法記錄 - 掉坑初期工具 漢字拼音轉換...
平日學習接觸過的網站積累,以每月的形式發布。2017年以前看這個網址:http://www.kancloud.cn/jsfron... 03月份前端資源分享 1. Javascript 175453545 Redux compose and middleware 源碼分析 深入 Promise(二)——進擊的 Promise Effective JavaScript leeheys blog -...
閱讀 3335·2021-11-19 11:36
閱讀 2940·2021-09-27 13:34
閱讀 2001·2021-09-22 15:17
閱讀 2409·2019-08-30 13:49
閱讀 764·2019-08-26 13:58
閱讀 1364·2019-08-26 10:47
閱讀 2543·2019-08-23 18:05
閱讀 605·2019-08-23 14:25