HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

Uniapp 5+app 安卓端导入excel数据

安卓

导入excel数据为json数据

/**  
 * Read/Write data to a file using Plus.io API  
 * @param {string} filename Name of the file  
 * @param {string} data Data to be written (only applicable for write operation)  
 * @param {string} type Operation type (1: read, 2: write)  
 * @returns {Promise} Promise that resolves with file data (only applicable for read operation) or empty string (for write operation)  
 */  
function fileOperation(filename, data, type) {  
    return new Promise((resolve, reject) => {  
        plus.io.requestFileSystem(  
            plus.io.PUBLIC_DOCUMENTS,  
            (fs) => {  
                fs.root.getFile(  
                    filename, {  
                        create: type === '2'  
                    },  
                    (fileEntry) => {  
                        if (type === '1') {  
                            fileEntry.file(  
                                (file) => {  
                                    const reader = new plus.io.FileReader()  
                                    reader.onloadend = (evt) => {  
                                        resolve(evt.target.result)  
                                    }  
                                    reader.readAsText(file)  
                                },  
                                (error) => reject(error)  
                            )  
                        } else {  
                            fileEntry.createWriter(  
                                (writer) => {  
                                    writer.onwrite = () => {  
                                        resolve('')  
                                    }  
                                    writer.write(data)  
                                },  
                                (error) => reject(error)  
                            )  
                        }  
                    },  
                    (error) => reject(error)  
                )  
            },  
            (error) => reject(error)  
        )  
    })  
}  

                        importData() {  
                            let resArr = [];  

                            fileOperation('data.xlsx', '', '1').then(data => {  
                                console.log(data);  
                                tab = data.substring(data.indexOf('<table>') + 7, data.indexOf(  
                                    '</table></body>'))  
                                tab = tab.replaceAll(  
                                    '<tr><td>地址</td><td>项目名称</td><td>其他</td><td>费用</td><td>电话号码                                         </td><td>录入时间</td><td>编号</td></tr>',  
                                    '')  
                                console.log(tab)  
                                let doc = document.createElement('table')  
                                doc.innerHTML = tab  
                                console.log(doc);  
                                // 获取所有tr  
                                let trArr = doc.querySelectorAll('tr');  

                                for (let i = 0; i < trArr.length; i++) {  
                                    let tdArr = trArr[i].querySelectorAll('td');  

                                    resArr.push({  
                                        "address": tdArr[0].innerHTML,  
                                        "project": tdArr[1].innerHTML,  
                                        "other": tdArr[2].innerHTML,  
                                        "money": tdArr[3].innerHTML,  
                                        "phone": tdArr[4].innerHTML,  
                                        "created_at": tdArr[5].innerHTML,  
                                        "id": tdArr[6].innerHTML,  
                                        "index": i  
                                    });  
                                }  

                                console.log(JSON.stringify(resArr));  

                            }).catch(error => console.log(error))  
                        },
继续阅读 »

导入excel数据为json数据

/**  
 * Read/Write data to a file using Plus.io API  
 * @param {string} filename Name of the file  
 * @param {string} data Data to be written (only applicable for write operation)  
 * @param {string} type Operation type (1: read, 2: write)  
 * @returns {Promise} Promise that resolves with file data (only applicable for read operation) or empty string (for write operation)  
 */  
function fileOperation(filename, data, type) {  
    return new Promise((resolve, reject) => {  
        plus.io.requestFileSystem(  
            plus.io.PUBLIC_DOCUMENTS,  
            (fs) => {  
                fs.root.getFile(  
                    filename, {  
                        create: type === '2'  
                    },  
                    (fileEntry) => {  
                        if (type === '1') {  
                            fileEntry.file(  
                                (file) => {  
                                    const reader = new plus.io.FileReader()  
                                    reader.onloadend = (evt) => {  
                                        resolve(evt.target.result)  
                                    }  
                                    reader.readAsText(file)  
                                },  
                                (error) => reject(error)  
                            )  
                        } else {  
                            fileEntry.createWriter(  
                                (writer) => {  
                                    writer.onwrite = () => {  
                                        resolve('')  
                                    }  
                                    writer.write(data)  
                                },  
                                (error) => reject(error)  
                            )  
                        }  
                    },  
                    (error) => reject(error)  
                )  
            },  
            (error) => reject(error)  
        )  
    })  
}  

                        importData() {  
                            let resArr = [];  

                            fileOperation('data.xlsx', '', '1').then(data => {  
                                console.log(data);  
                                tab = data.substring(data.indexOf('<table>') + 7, data.indexOf(  
                                    '</table></body>'))  
                                tab = tab.replaceAll(  
                                    '<tr><td>地址</td><td>项目名称</td><td>其他</td><td>费用</td><td>电话号码                                         </td><td>录入时间</td><td>编号</td></tr>',  
                                    '')  
                                console.log(tab)  
                                let doc = document.createElement('table')  
                                doc.innerHTML = tab  
                                console.log(doc);  
                                // 获取所有tr  
                                let trArr = doc.querySelectorAll('tr');  

                                for (let i = 0; i < trArr.length; i++) {  
                                    let tdArr = trArr[i].querySelectorAll('td');  

                                    resArr.push({  
                                        "address": tdArr[0].innerHTML,  
                                        "project": tdArr[1].innerHTML,  
                                        "other": tdArr[2].innerHTML,  
                                        "money": tdArr[3].innerHTML,  
                                        "phone": tdArr[4].innerHTML,  
                                        "created_at": tdArr[5].innerHTML,  
                                        "id": tdArr[6].innerHTML,  
                                        "index": i  
                                    });  
                                }  

                                console.log(JSON.stringify(resArr));  

                            }).catch(error => console.log(error))  
                        },
收起阅读 »

10年工程师专业承接各种项目

外包接单

承接项目描述:我们专注于网站建设、b/s、c/s系统架构、桌面程序开发、网站、游戏、支付、app接口开发、微信公众号、小程序、软件定制、服务器部署和运维

个人技能描述:html,css,php,thinkphp,laravel,workerman,js,vue,react,uniapp,rn,electron,cocos

联系电话:15290581001

继续阅读 »

承接项目描述:我们专注于网站建设、b/s、c/s系统架构、桌面程序开发、网站、游戏、支付、app接口开发、微信公众号、小程序、软件定制、服务器部署和运维

个人技能描述:html,css,php,thinkphp,laravel,workerman,js,vue,react,uniapp,rn,electron,cocos

联系电话:15290581001

收起阅读 »

有没有人觉得 uni-admin/uni-id/uni-pay垃圾得一B的 跟个贴,让官方看看

RT

明天起床,
喂马,
劈材,
换uni-id/uni-pay

RT

明天起床,
喂马,
劈材,
换uni-id/uni-pay

教程,- 页面 -页面生命周期-

uniapp 教程

文字描述错误

文字描述错误

app-vue下textarea组件起始标签与闭合标签之间不可存在任何字符

textarea

app-vue下textarea组件起始标签与闭合标签之间不可存在任何字符,如果存在换行,空格,亦或是其他任意字符都会导致textarea错误,使得该组件不能正常唤醒键盘,输入文字。如下:

<textarea> <textarea /> //错误  
<textarea>  
<textarea /> //错误  
<textarea>其他任意字符<textarea />  //错误

但在微信小程序下至少可以存在换行。

继续阅读 »

app-vue下textarea组件起始标签与闭合标签之间不可存在任何字符,如果存在换行,空格,亦或是其他任意字符都会导致textarea错误,使得该组件不能正常唤醒键盘,输入文字。如下:

<textarea> <textarea /> //错误  
<textarea>  
<textarea /> //错误  
<textarea>其他任意字符<textarea />  //错误

但在微信小程序下至少可以存在换行。

收起阅读 »

建议uniCloud.onNeedLogin、uniCloud.onRefreshToken同时监听云函数

以uniCloud.onRefreshToken为例,目前云对象、clientDB均会自动更新。希望将云函数也加入其中,不要只服务与uni-id-co。

uni-id-co作为云对象,不适用所有开发者。

在此帖中:https://ask.dcloud.net.cn/question/160223,Dcloud建议自写云对象(或云函数)来调用uni-id-co,此时若自写云函数调用uni-id-co,刷新token及需要登录等监听(uniCloud.onNeedLogin、uniCloud.onRefreshToken)则不会被触发。

继续阅读 »

以uniCloud.onRefreshToken为例,目前云对象、clientDB均会自动更新。希望将云函数也加入其中,不要只服务与uni-id-co。

uni-id-co作为云对象,不适用所有开发者。

在此帖中:https://ask.dcloud.net.cn/question/160223,Dcloud建议自写云对象(或云函数)来调用uni-id-co,此时若自写云函数调用uni-id-co,刷新token及需要登录等监听(uniCloud.onNeedLogin、uniCloud.onRefreshToken)则不会被触发。

收起阅读 »

长沙汇星融科技有限公司 [接单]


有需要的老板可致电联系


有需要的老板可致电联系

写uniapp项目经常遇到默认首页是第一个页面,所以app打开的时候会闪一下首页然后跳到登录页的解决方案

移动APP

第一步设置配置文件(不自动关闭启动图)
"splashscreen" : {
"alwaysShowBeforeRender" : false,
"waiting" : false,
"autoclose" : false,
"delay" : 0
},
第二步在app.vue页面判断token逻辑 // 直接跳转首页,后加入关闭方法
uni.reLaunch({
url: '/pages/home/index',
success: this.closeSplash
})

/ 关闭启动图/
closeSplash() {
// #ifdef APP-PLUS
plus.navigator.closeSplashscreen();
// #endif
},

有什么问题可以咨询 QQ728045048
另外接兼职unicloud开发

继续阅读 »

第一步设置配置文件(不自动关闭启动图)
"splashscreen" : {
"alwaysShowBeforeRender" : false,
"waiting" : false,
"autoclose" : false,
"delay" : 0
},
第二步在app.vue页面判断token逻辑 // 直接跳转首页,后加入关闭方法
uni.reLaunch({
url: '/pages/home/index',
success: this.closeSplash
})

/ 关闭启动图/
closeSplash() {
// #ifdef APP-PLUS
plus.navigator.closeSplashscreen();
// #endif
},

有什么问题可以咨询 QQ728045048
另外接兼职unicloud开发

收起阅读 »

Error: module 'common/vendor.js' is not defined, require args is '../../common/vendor.js'

我简单创建小程序最简单的独立包都会报错,包独立包打包好的代码(const common_vendor = require("../../common/vendor.js"))里的require改成require.async就可以了,希望官方后面能做一下处理。
独立包配置代码
"subPackages": [{
"root": "pagesB",
"pages": [{
"path" : "a/a",
"style" : {
"navigationBarTitleText": "我就是a",
"enablePullDownRefresh": false
}
}],
"independent": true

继续阅读 »

我简单创建小程序最简单的独立包都会报错,包独立包打包好的代码(const common_vendor = require("../../common/vendor.js"))里的require改成require.async就可以了,希望官方后面能做一下处理。
独立包配置代码
"subPackages": [{
"root": "pagesB",
"pages": [{
"path" : "a/a",
"style" : {
"navigationBarTitleText": "我就是a",
"enablePullDownRefresh": false
}
}],
"independent": true

收起阅读 »

用 hbuilder vue3 nvue 写 app 真是跟吃了屎一样难受

App uniapp nvue

我平常用 webstorm 写项目,为此还特意将它的保存设置成 ctrl + s 手动的,为了防止不停的给 hb 造成编译的压力。

但是,我改了之后就按了一次 ctrl + s,hb 依然能给我类似死循环的惊喜:

这是其一,其二,我改了一点点样式的问题,大概率是要崩了:

然后真机上的应用,就一直停留再加载的界面进不去了,此时我需要重新让 hb 运行项目的才行。

这是为什么呢,开发一个静态首页,我需要不停的让项目重新运行,唉。。

继续阅读 »

我平常用 webstorm 写项目,为此还特意将它的保存设置成 ctrl + s 手动的,为了防止不停的给 hb 造成编译的压力。

但是,我改了之后就按了一次 ctrl + s,hb 依然能给我类似死循环的惊喜:

这是其一,其二,我改了一点点样式的问题,大概率是要崩了:

然后真机上的应用,就一直停留再加载的界面进不去了,此时我需要重新让 hb 运行项目的才行。

这是为什么呢,开发一个静态首页,我需要不停的让项目重新运行,唉。。

收起阅读 »