From a27b291c5cb3af6add9c8cd00bbfd215bd3026f7 Mon Sep 17 00:00:00 2001 From: sws <1141121512@qq.com> Date: Wed, 22 Nov 2023 18:57:45 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=99=BB=E9=99=86=E9=A1=B5=E9=9D=A2=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.vue | 7 +- common/css/page.css | 3 + components/iconfont/iconfont.vue | 4 +- components/popup/popup.vue | 36 +- components/upload/upload.vue | 2 +- components/yyc-easy-editor/index.vue | 352 --- components/yyc-easy-editor/readme.md | 88 - package.json | 19 +- pages.json | 12 +- pages/login/login.css | 131 +- pages/login/login.vue | 2142 +++++++++-------- pages/logout/logout.vue | 4 +- pages/plugins/ask/index/index.vue | 2 +- pages/plugins/blog/form/form.css | 11 + pages/plugins/blog/form/form.vue | 431 +++- pages/plugins/blog/user-list/user-list.css | 20 + pages/plugins/blog/user-list/user-list.vue | 206 ++ uni_modules/sp-editor/changelog.md | 15 + .../components/sp-editor/color-picker.vue | 784 ++++++ .../components/sp-editor/editor-icon.css | 238 ++ .../components/sp-editor/iconfont.ttf | Bin 0 -> 11188 bytes .../components/sp-editor/sp-editor.vue | 280 +++ uni_modules/sp-editor/package.json | 83 + uni_modules/sp-editor/readme.md | 70 + 24 files changed, 3406 insertions(+), 1534 deletions(-) delete mode 100644 components/yyc-easy-editor/index.vue delete mode 100644 components/yyc-easy-editor/readme.md create mode 100644 pages/plugins/blog/user-list/user-list.css create mode 100644 pages/plugins/blog/user-list/user-list.vue create mode 100644 uni_modules/sp-editor/changelog.md create mode 100644 uni_modules/sp-editor/components/sp-editor/color-picker.vue create mode 100644 uni_modules/sp-editor/components/sp-editor/editor-icon.css create mode 100644 uni_modules/sp-editor/components/sp-editor/iconfont.ttf create mode 100644 uni_modules/sp-editor/components/sp-editor/sp-editor.vue create mode 100644 uni_modules/sp-editor/package.json create mode 100644 uni_modules/sp-editor/readme.md diff --git a/App.vue b/App.vue index 2d488f85..7fae7b8c 100644 --- a/App.vue +++ b/App.vue @@ -5,9 +5,11 @@ data: { // 基础配置 // 数据接口请求地址 + // request_url: 'https://new.shopxo.vip/', request_url: 'http://shopxo.com/', // 静态资源地址(如系统根目录不在public目录下面请在静态地址后面加public目录、如:https://d1.shopxo.vip/public/) + // static_url: 'https://new.shopxo.vip/', static_url: 'http://shopxo.com/', // 系统类型(默认default、如额外独立小程序、可与程序分身插件实现不同主体小程序及支付独立) @@ -754,6 +756,7 @@ * confirm_color [string] 确认按钮的文字颜色,必须是 16 进制格式的颜色字符串(默认 #000000) * object [boject] 回调操作对象,点击确认回调参数1,取消回调0 * method [string] 回调操作对象的函数 + * params [obj] 携带的参数 */ alert(e) { var msg = e.msg || null; @@ -764,6 +767,7 @@ var confirm_text = e.confirm_text || '确认'; var cancel_color = e.cancel_color || '#000000'; var confirm_color = e.confirm_color || '#576B95'; + var params = e.params || {}; uni.showModal({ title: title, content: msg, @@ -774,7 +778,8 @@ confirmColor: confirm_color, success(res) { if ((e.object || null) != null && typeof e.object === 'object' && (e.method || null) != null) { - e.object[e.method](res.confirm ? 1 : 0); + params['alert_status'] = res.confirm ? 1 : 0; + e.object[e.method](params); } }, }); diff --git a/common/css/page.css b/common/css/page.css index b38f789c..c8bf6da0 100644 --- a/common/css/page.css +++ b/common/css/page.css @@ -594,6 +594,7 @@ button:before { .br-grey-9 { border: solid 1px #999999 !important; } + .br-grey-c { border: solid 1px #cccccc !important; } @@ -1255,9 +1256,11 @@ button[disabled].bg-grey { .flex-1 { flex: 1; } + .flex-2 { flex: 2; } + .flex-3 { flex: 3; } diff --git a/components/iconfont/iconfont.vue b/components/iconfont/iconfont.vue index 5acd6b56..4f6dd04f 100644 --- a/components/iconfont/iconfont.vue +++ b/components/iconfont/iconfont.vue @@ -30,8 +30,8 @@ - \ No newline at end of file diff --git a/components/yyc-easy-editor/readme.md b/components/yyc-easy-editor/readme.md deleted file mode 100644 index e238940b..00000000 --- a/components/yyc-easy-editor/readme.md +++ /dev/null @@ -1,88 +0,0 @@ - -###########说明 -1. 图标使用uni-icons,没有的请到插件市场自行安装。 - -2. 示例代码如下: - list2: 初始化数据(用于编辑) - addImage: 图片上传 - addVideo: 视频上传 - showPreview: 是否显示预览 - preview: 返回预览的html文本 - completedText: 按钮文字 - completed: 编辑器返回数据json - -3. 提示:rich-text不能解析视频,建议使用插件市场uparse。 - -4. 有问题,微信同QQ:736849829(请备注)。上传视频太大,不会分片,也可以v我。 - -###########示例代码 - - - - - - diff --git a/package.json b/package.json index f9ff440a..8051320b 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,15 @@ { - "id": "yyc-easy-editor", - "name": "超简洁 图文视频编辑器 文章发布", - "version": "1.01", - "description": "适合手机端,小程序的编辑器,支持文字,图片,视频,没有太多复杂臃肿的功能,容易操作。安装更简单,为你省去时间。", + "id": "jin-edit", + "name": "jin-edit—仿简书非常好用的富文本编辑器", + "version": "1.1", + "description": "仿简书非常好用的富文本编辑器", "keywords": [ - "编辑器", - "图文视频编辑" - ] + "富文本编辑器、富文本" + ], + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ] + } } \ No newline at end of file diff --git a/pages.json b/pages.json index 6c4da59d..0ec46055 100644 --- a/pages.json +++ b/pages.json @@ -898,11 +898,21 @@ "navigationBarTitleText": "评论列表" } }, + { + "path": "user-list/user-list", + "style": { + "enablePullDownRefresh": true, + "navigationBarTitleText": "我的帖子" + } + }, { "path": "form/form", "style": { "enablePullDownRefresh": true, - "navigationBarTitleText": "添加/编辑博文" + "navigationBarTitleText": "发布博文", + "enablePullDownRefresh": false, + // 禁止页面下拉 + "disableScroll": true } } ] diff --git a/pages/login/login.css b/pages/login/login.css index 99ccb3d3..dc10f174 100644 --- a/pages/login/login.css +++ b/pages/login/login.css @@ -5,52 +5,90 @@ page { /** * 基础 */ -.content { - padding-top: 8%; -} .content .icon { - width: 150rpx; - height: 150rpx !important; + width: 160rpx; + height: 160rpx !important; +} + +.top-nav { + padding: 34rpx; } /** * 表单内容 */ .form-content { - padding: 2% 40rpx 0 40rpx; + padding: 34rpx; } + .form-content .form-item, .form-content .code, .form-content .verify { - border-bottom: solid 1px #f7f7f7; + height: 50px; + line-height: 50px; + background: #F9F9F9; + border-radius: 25px; + border: 0; } -.form-content .form-item, + .form-content .code input, .form-content .verify input { - font-size: 28rpx; - color: #4e4e4e; - height: 40px; - line-height: 40px; - border-radius: 0; + height: 50px; + line-height: 50px; + padding: 0 36rpx; } + +.form-content .form-item ::v-deep .input-placeholder, +.form-content .form-item ::v-deep .uni-input-input { + padding: 0 36rpx; + font-size: 30rpx; +} + +.form-content .form-item ::v-deep .input-placeholder, +.form-content .code input ::v-deep .input-placeholder, +.form-content .verify input ::v-deep .input-placeholder { + font-size: 30rpx; +} + .form-content .code input, .form-content .verify input { width: 63%; } -.form-content .code .verify-submit { - width: 35%; - height: 35px; - line-height: 35px; - top: 0; - right: 0; + +.form-content .form-item ::v-deep .uni-input-input:-webkit-autofill { + /* //这个地方的颜色是字体颜色,可以根据实际情况修改 */ + /* -webkit-text-fill-color: #ededed !important; */ + /* //设置input输入框的背景颜色为透明色 */ + -webkit-box-shadow: 0 0 0px 1000px #f9f9f9 inset !important; + /* //设置input输入框的背景颜色为透明色 */ + background-color: #f9f9f9; + background-image: none; + transition: background-color 50000s ease-in-out 0s; } + +.form-content .code ::v-deep .uni-input-input:-webkit-autofill { + /* //设置input输入框的背景颜色为透明色 */ + background-color: #f9f9f9; + background-image: none; + transition: background-color 50000s ease-in-out 0s; +} + +.form-content .code .verify-submit { + padding: 0 12px; + height: 28px; + line-height: 28px; + top: 11px; + right: 36rpx; +} + .form-content .verify .verify-image { width: 35%; - height: 35px; - line-height: 35px; + height: 50px; + line-height: 50px; top: 0; - right: 0; + right: 36rpx; } + .opt-type-list text:not(:last-child) { margin-right: 50rpx; } @@ -59,21 +97,60 @@ page { * 第三方登录 - 插件 */ .plugins-thirdpartylogin .item { - width: 35rpx; - height: 35rpx; + width: 76rpx; + height: 76rpx; padding: 5rpx; } + .plugins-thirdpartylogin .item:not(:last-child) { - margin-right: 10rpx; + margin-right: 54rpx; } + .plugins-thirdpartylogin .item image { - width: 25rpx !important; - height: 25rpx !important; + width: 50rpx !important; + height: 50rpx !important; } + +.plugins-thirdpartylogin .item:last-of-type image { + width: 76rpx !important; + height: 76rpx !important; +} + .plugins-thirdpartylogin-bind image { width: 40rpx !important; height: 40rpx !important; } + .plugins-thirdpartylogin-bind button { line-height: 40rpx; +} + +.popup-login .content, +.popup-login .footer .cancel-btn { + border-radius: 32rpx; +} + +.popup-login .content .item:not(:last-child) { + border-bottom: 1px solid #eee; +} + +.popup-login .content .item image { + width: 36rpx !important; + height: 36rpx !important; +} + +.popup-login .content .item .login-width { + width: 180rpx; +} + +/** + * 多语言 + */ +.popup-language { + height: 100vh; +} + +.popup-language .list { + height: calc(100vh - 95rpx); + overflow-y: auto; } \ No newline at end of file diff --git a/pages/login/login.vue b/pages/login/login.vue index 67265fd6..057ca4df 100644 --- a/pages/login/login.vue +++ b/pages/login/login.vue @@ -1,9 +1,23 @@ diff --git a/pages/logout/logout.vue b/pages/logout/logout.vue index 80ece17c..cadd2ad8 100644 --- a/pages/logout/logout.vue +++ b/pages/logout/logout.vue @@ -102,7 +102,7 @@ // 注销提交 logout_submit_event(e) { // 是否再次确认 - if (e != 0 && e != 1) { + if (e.alert_status != 0 && e.alert_status != 1) { app.globalData.alert({ msg: '账号注销后不可恢复、确定继续吗?', is_show_cancel: 1, @@ -113,7 +113,7 @@ } // 注销提交 - if (e == 1) { + if (e.alert_status == 1) { uni.showLoading({ title: '处理中...', }); diff --git a/pages/plugins/ask/index/index.vue b/pages/plugins/ask/index/index.vue index e76dc3ee..99ec8e92 100644 --- a/pages/plugins/ask/index/index.vue +++ b/pages/plugins/ask/index/index.vue @@ -73,7 +73,7 @@ return { theme_view: app.globalData.get_theme_value_view(), status_bar_height: parseInt(app.globalData.get_system_info('statusBarHeight', 0)), - data_base: data_base, + data_base: {}, data_list: [], data_total: 0, data_page_total: 0, diff --git a/pages/plugins/blog/form/form.css b/pages/plugins/blog/form/form.css index e69de29b..3ed6c162 100644 --- a/pages/plugins/blog/form/form.css +++ b/pages/plugins/blog/form/form.css @@ -0,0 +1,11 @@ +.sp-editor { + height: 500rpx; +} + +.more { + transition: all 0.3s ease-in-out; +} +.p-content { + max-height: 50vh; + overflow-y: auto; +} \ No newline at end of file diff --git a/pages/plugins/blog/form/form.vue b/pages/plugins/blog/form/form.vue index 05e886c3..7998cc2a 100644 --- a/pages/plugins/blog/form/form.vue +++ b/pages/plugins/blog/form/form.vue @@ -1,53 +1,416 @@ + diff --git a/uni_modules/sp-editor/changelog.md b/uni_modules/sp-editor/changelog.md new file mode 100644 index 00000000..01cb2bdb --- /dev/null +++ b/uni_modules/sp-editor/changelog.md @@ -0,0 +1,15 @@ +## 1.0.3(2023-10-13) + 1. 更新readme文档 + 2. 更新调整组件示例项目,添加插件代码中部分注释 +## 1.0.2(2023-10-13) + 1. 更新uni_modules规范,可一键导入组件 + 2. 更新组件示例项目(包括使用uniCloud.uploadFile多选上传图片示例方法) +## 1.0.1(2023-10-12) + 1. 修复小程序中自动聚焦滚动到富文本组件区域的bug + 2. 略微调整了富文本上方toolbar工具栏中按钮的大小尺寸 +## 1.0.0(2023-9-19) + 1. 新增字体与背景颜色板 + 2. 可自定义预设内容模板 + 3. 解决官方样例在小程序和app部分报错不兼容的问题 + 4. 可配合云存储上传富文本中插入的图片 本质上是基于官方内置富文本editor组件改版封装,所以官方有的功能都有,官方能兼容的也都兼容 + diff --git a/uni_modules/sp-editor/components/sp-editor/color-picker.vue b/uni_modules/sp-editor/components/sp-editor/color-picker.vue new file mode 100644 index 00000000..ac6c30c2 --- /dev/null +++ b/uni_modules/sp-editor/components/sp-editor/color-picker.vue @@ -0,0 +1,784 @@ + + + + + diff --git a/uni_modules/sp-editor/components/sp-editor/editor-icon.css b/uni_modules/sp-editor/components/sp-editor/editor-icon.css new file mode 100644 index 00000000..0018669f --- /dev/null +++ b/uni_modules/sp-editor/components/sp-editor/editor-icon.css @@ -0,0 +1,238 @@ +@font-face { + font-family: 'iconfont'; + src: url('data:font/truetype;charset=utf-8;base64,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AAsAJgFuAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAAAKQ3JlYXRlZCBieSBpY29uZm9udAoAAGkAYwBvAG4AZgBvAG4AdAAAaWNvbmZvbnQAAFIAZQBnAHUAbABhAHIAAFJlZ3VsYXIAAGkAYwBvAG4AZgBvAG4AdAAAaWNvbmZvbnQAAGkAYwBvAG4AZgBvAG4AdAAAaWNvbmZvbnQAAFYAZQByAHMAaQBvAG4AIAAxAC4AMAAAVmVyc2lvbiAxLjAAAGkAYwBvAG4AZgBvAG4AdAAAaWNvbmZvbnQAAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AAEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC4AAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAGh0dHA6Ly9mb250ZWxsby5jb20AAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOwAAAAEAAgECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkEcmVkbwlzZWxlY3RhbGwHcHJldmlldwR1bmRvBGRhdGUHY2xlYXJ1cBU3MjNiaWFuamlxaV9kdWFuaG91anUWNzIyYmlhbmppcWlfZHVhbnFpYW5qdQotY2hlY2tsaXN0DWRpcmVjdGlvbi1sdHINZGlyZWN0aW9uLXJ0bAtmb250Ymdjb2xvcg1jbGVhcmVkZm9ybWF0BGZvbnQHb3V0ZGVudAhmb250c2l6ZQp0ZXh0X2NvbG9yD2Zvcm1hdC1oZWFkZXItMg9mb3JtYXQtaGVhZGVyLTMLbGluZS1oZWlnaHQPZm9ybWF0LWhlYWRlci0xD2Zvcm1hdC1oZWFkZXItNA9mb3JtYXQtaGVhZGVyLTUPZm9ybWF0LWhlYWRlci02EUNoYXJhY3Rlci1TcGFjaW5nBmluZGVudAZiYW9jdW4IcXVhbnBpbmcFZnV6aGkHc2hhbmNodQxiaWFuamlzZWt1YWkJZmVuZ2V4aWFuB2RpYW56YW4MY2hhcnVsaWFuamllC2NoYXJ1dHVwaWFuCnd1eHVwYWlsaWUManV6aG9uZ2R1aXFpB3lpbnlvbmcLeW91eHVwYWlsaWUIeW91ZHVpcWkJeml0aWRhaW1hCHhpYW9saWFuCXppdGlqaWFjdQ96aXRpc2hhbmNodXhpYW4Neml0aXNoYW5nYmlhbwp6aXRpYmlhb3RpDnppdGl4aWFodWF4aWFuCXppdGl4aWV0aQl6aXRpeWFuc2UIenVvZHVpcWkJeml0aXl1bGFuC3ppdGl4aWFiaWFvC3p1b3lvdWR1aXFpB2R1aWdvdXgGZ3VhbmJpDnNoZW5neWluX3NoaXRpAAAAAAAB//8AAgABAAAADAAAABYAAAACAAEAAwA6AAEABAAAAAIAAAAAAAAAAQAAAADVpCcIAAAAANhk6GIAAAAA2GToYg==') format('truetype'); + font-weight: normal; + font-style: normal; + font-display: swap; +} +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-redo:before { + content: "\e627"; +} + +.icon-undo:before { + content: "\e633"; +} + +.icon-indent:before { + content: "\eb28"; +} + +.icon-outdent:before { + content: "\e6e8"; +} + +.icon-fontsize:before { + content: "\e6fd"; +} + +.icon-format-header-1:before { + content: "\e860"; +} + +.icon-format-header-4:before { + content: "\e863"; +} + +.icon-format-header-5:before { + content: "\e864"; +} + +.icon-format-header-6:before { + content: "\e865"; +} + +.icon-clearup:before { + content: "\e64d"; +} + +.icon-preview:before { + content: "\e631"; +} + +.icon-date:before { + content: "\e63e"; +} + +.icon-fontbgcolor:before { + content: "\e678"; +} + +.icon-clearedformat:before { + content: "\e67e"; +} + +.icon-font:before { + content: "\e684"; +} + +.icon-723bianjiqi_duanhouju:before { + content: "\e65f"; +} + +.icon-722bianjiqi_duanqianju:before { + content: "\e660"; +} + +.icon-text_color:before { + content: "\e72c"; +} + +.icon-format-header-2:before { + content: "\e75c"; +} + +.icon-format-header-3:before { + content: "\e75d"; +} + +.icon--checklist:before { + content: "\e664"; +} + +.icon-baocun:before { + content: "\ec09"; +} + +.icon-line-height:before { + content: "\e7f8"; +} + +.icon-quanping:before { + content: "\ec13"; +} + +.icon-direction-rtl:before { + content: "\e66e"; +} + +.icon-direction-ltr:before { + content: "\e66d"; +} + +.icon-selectall:before { + content: "\e62b"; +} + +.icon-fuzhi:before { + content: "\ec7a"; +} + +.icon-shanchu:before { + content: "\ec7b"; +} + +.icon-bianjisekuai:before { + content: "\ec7c"; +} + +.icon-fengexian:before { + content: "\ec7f"; +} + +.icon-dianzan:before { + content: "\ec80"; +} + +.icon-charulianjie:before { + content: "\ec81"; +} + +.icon-charutupian:before { + content: "\ec82"; +} + +.icon-wuxupailie:before { + content: "\ec83"; +} + +.icon-juzhongduiqi:before { + content: "\ec84"; +} + +.icon-yinyong:before { + content: "\ec85"; +} + +.icon-youxupailie:before { + content: "\ec86"; +} + +.icon-youduiqi:before { + content: "\ec87"; +} + +.icon-zitidaima:before { + content: "\ec88"; +} + +.icon-xiaolian:before { + content: "\ec89"; +} + +.icon-zitijiacu:before { + content: "\ec8a"; +} + +.icon-zitishanchuxian:before { + content: "\ec8b"; +} + +.icon-zitishangbiao:before { + content: "\ec8c"; +} + +.icon-zitibiaoti:before { + content: "\ec8d"; +} + +.icon-zitixiahuaxian:before { + content: "\ec8e"; +} + +.icon-zitixieti:before { + content: "\ec8f"; +} + +.icon-zitiyanse:before { + content: "\ec90"; +} + +.icon-zuoduiqi:before { + content: "\ec91"; +} + +.icon-zitiyulan:before { + content: "\ec92"; +} + +.icon-zitixiabiao:before { + content: "\ec93"; +} + +.icon-zuoyouduiqi:before { + content: "\ec94"; +} + +.icon-duigoux:before { + content: "\ec9e"; +} + +.icon-guanbi:before { + content: "\eca0"; +} + +.icon-shengyin_shiti:before { + content: "\eca5"; +} + +.icon-Character-Spacing:before { + content: "\e964"; +} diff --git a/uni_modules/sp-editor/components/sp-editor/iconfont.ttf b/uni_modules/sp-editor/components/sp-editor/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8ade3a4ceb4117fe0ed2ae231cffbd77a429de1b GIT binary patch literal 11188 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 V?Ju7ilD*GAR;9h-TKu2Ye+P`O+lc@G literal 0 HcmV?d00001 diff --git a/uni_modules/sp-editor/components/sp-editor/sp-editor.vue b/uni_modules/sp-editor/components/sp-editor/sp-editor.vue new file mode 100644 index 00000000..538620ea --- /dev/null +++ b/uni_modules/sp-editor/components/sp-editor/sp-editor.vue @@ -0,0 +1,280 @@ + + + + + diff --git a/uni_modules/sp-editor/package.json b/uni_modules/sp-editor/package.json new file mode 100644 index 00000000..83872a72 --- /dev/null +++ b/uni_modules/sp-editor/package.json @@ -0,0 +1,83 @@ +{ + "id": "sp-editor", + "displayName": "sp-editor", + "version": "1.0.3", + "description": "官方内置富文本editor组件改版", + "keywords": [ + "富文本", + "editor", + "编辑器" + ], + "repository": "", + "engines": { + "HBuilderX": "^3.5.1" + }, + "dcloudext": { + "type": "component-vue", + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "插件不采集任何数据", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "u" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "u", + "QQ": "y", + "钉钉": "u", + "快手": "u", + "飞书": "u", + "京东": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/sp-editor/readme.md b/uni_modules/sp-editor/readme.md new file mode 100644 index 00000000..c4d74853 --- /dev/null +++ b/uni_modules/sp-editor/readme.md @@ -0,0 +1,70 @@ +# sp-editor + +## props参数 + +``` +props: { + placeholder: { + type: String, + default: '写点什么吧 ~' + }, + // 是否只读 + readOnly: { + type: Boolean, + default: false + }, + // 最大字数限制,-1不限 + maxlength: { + type: Number, + default: -1 + }, + // 初始模板 + templates: { + type: String, + default: '' + } +} +``` + +## emit方法 + +``` + + + + +``` + +## 注意事项 + 1. 该组件在使用过程中推荐在外层套上个父盒子,并给父盒子高度,组件在封装时进行了高度计算,会自动撑满父盒子 + 2. 如遇到在内置浏览器中发生无法拖动调节颜色板的问题,只需调出开发者调试面板,点击重置左上角选择dom的箭头后,便能调出模拟器手势光标,便可正常拖动了 \ No newline at end of file