最近的挪动端我的项目用到的一些不罕用的小技巧:
间接上干货
- vue-cli3 中webpackServer代理
首先,.env.development文件设置
`VUE_APP_baseApi = /api`
其次,vue.config.js文件设置
devServer: { proxy: { '/api': { target: 'http://xxx/api', changeOrigin: true, ws: true, pathRewrite: { '^/api': '' } } }}
- 日期格式化(yyyy-mm-dd hh:mm)
dateFormatter(val) { const YYYY = val.getFullYear() const MM = val.getMonth() + 1 < 10 ? "0" + (val.getMonth() + 1) : val.getMonth() + 1; const DD = val.getDate() < 10 ? "0" + val.getDate() : val.getDate(); const hh = val.getHours() < 10 ? "0" + val.getHours() : val.getHours(); const mm = val.getMinutes() < 10 ? "0" + val.getMinutes() : val.getMinutes(); return `${YYYY}-${MM}-${DD} ${hh}:${mm}:` },
- 日期相减计算(y年m月d日h时m分)
getRemainderTime(val) { let runTime = null runTime = parseInt(val) / 1000; let year = Math.floor(runTime / 86400 / 365); runTime = runTime % (86400 * 365); let month = Math.floor(runTime / 86400 / 30); runTime = runTime % (86400 * 30); let day = Math.floor(runTime / 86400); runTime = runTime % 86400; let hour = Math.floor(runTime / 3600); runTime = runTime % 3600; let minute = Math.floor(runTime / 60); runTime = runTime % 60; let second = runTime; // console.log(year,month,day,hour,minute,second); this.countHour = parseInt(val) / 1000 / 3600 return `${year?year+'年':''}${month?month+'月':''}${day?day+'天':''}${hour?hour+'小时':''}${minute?minute+'分钟':''}` },
- 音频流转mp3格局
convertToMp3(wavDataView) { // 获取wav头信息 const wav = lamejs.WavHeader.readHeader(wavDataView); // 此处其实能够不必去读wav头信息,毕竟有对应的config配置 const { channels, sampleRate } = wav; const mp3enc = new lamejs.Mp3Encoder(channels, sampleRate, 128); // 获取左右通道数据 const result = recorder.getChannelData() const buffer = []; const leftData = result.left && new Int16Array(result.left.buffer, 0, result.left.byteLength / 2); const rightData = result.right && new Int16Array(result.right.buffer, 0, result.right.byteLength / 2); const remaining = leftData.length + (rightData ? rightData.length : 0); const maxSamples = 1152; for (let i = 0; i < remaining; i += maxSamples) { const left = leftData.subarray(i, i + maxSamples); let right = null; let mp3buf = null; if (channels === 2) { right = rightData.subarray(i, i + maxSamples); mp3buf = mp3enc.encodeBuffer(left, right); } else { mp3buf = mp3enc.encodeBuffer(left); } if (mp3buf.length > 0) { buffer.push(mp3buf); } } const enc = mp3enc.flush(); if (enc.length > 0) { buffer.push(enc); } let blob = new Blob(buffer, { type: 'audio/mp3' }) return blob },
- vue bus
main.js
const bus = new Vue()Vue.prototype.bus = bus
a.vue
this.bus.$emit("onlineType", ...arg)
b.vue
this.bus.$on('useCardTime', (res) => { console.log(res)})