You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
1.7 KiB
JavaScript
82 lines
1.7 KiB
JavaScript
export function formatDate(date, fmt) {
|
|
const o = {
|
|
'M+': date.getMonth() + 1, // 月份
|
|
'd+': date.getDate(), // 日
|
|
'h+': date.getHours(), // 小时
|
|
'm+': date.getMinutes(), // 分
|
|
's+': date.getSeconds(), // 秒
|
|
S: date.getMilliseconds() // 毫秒
|
|
};
|
|
if (/(y+)/.test(fmt)) {
|
|
// eslint-disable-next-line no-param-reassign
|
|
fmt = fmt.replace(RegExp.$1, `${date.getFullYear()}`.substr(4 - RegExp.$1.length));
|
|
}
|
|
for (const k in o) {
|
|
if (new RegExp(`(${k})`).test(fmt)) {
|
|
// eslint-disable-next-line no-param-reassign
|
|
fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : `00${o[k]}`.substr(`${o[k]}`.length));
|
|
}
|
|
}
|
|
return fmt;
|
|
}
|
|
|
|
export function copyText(text) {
|
|
uni.setClipboardData({
|
|
data: text,
|
|
success: () => {
|
|
uni.showToast({
|
|
title: '复制成功',
|
|
icon: 'none'
|
|
});
|
|
},
|
|
fail: (err) => {
|
|
uni.showToast({
|
|
title: '复制失败',
|
|
icon: 'none'
|
|
});
|
|
}
|
|
});
|
|
};
|
|
|
|
export function textToSpeech(text, options = {}) {
|
|
return new Promise(async (resolve, reject) => {
|
|
const {
|
|
token = '24.1c8cc30b5f7be445723b6d4b19a36152.2592000.1765094496.282335-120706844',
|
|
tex = text,
|
|
cuid = 'uni-app-demo',
|
|
ctp = 1,
|
|
lan = 'zh',
|
|
spd = 5,
|
|
pit = 5,
|
|
vol = 5,
|
|
per = 0
|
|
} = options
|
|
|
|
const url = 'https://tsn.baidu.com/text2audio'
|
|
const params = {
|
|
tex: encodeURIComponent(tex),
|
|
cuid,
|
|
ctp,
|
|
lan,
|
|
spd,
|
|
pit,
|
|
vol,
|
|
per,
|
|
tok: token
|
|
}
|
|
|
|
// 构建查询字符串
|
|
const queryString = Object.keys(params).map(key => {
|
|
return `${key}=${params[key]}`
|
|
}).join('&');
|
|
|
|
const platform = uni.getSystemInfoSync().uniPlatform;
|
|
|
|
const result = await uni.downloadFile({
|
|
url: `${url}?${queryString}`
|
|
});
|
|
|
|
resolve(result.tempFilePath);
|
|
|
|
})
|
|
} |