121 lines
2.7 KiB
JavaScript
121 lines
2.7 KiB
JavaScript
import { useDefaultStore } from '../stores'
|
||
|
||
// 获取Store
|
||
function getStore () {
|
||
return useDefaultStore()
|
||
}
|
||
|
||
/**
|
||
* 为对象、数组、字符串等数据去空
|
||
*
|
||
* @param data 数据
|
||
* @returns {string|null|*}
|
||
*/
|
||
export function trim (data) {
|
||
if (data == null) {
|
||
return null
|
||
}
|
||
if (typeof data === 'string') {
|
||
return data.trim()
|
||
}
|
||
if (data instanceof Array) {
|
||
for (const item of data) {
|
||
trim(item)
|
||
}
|
||
}
|
||
if (typeof data === 'object') {
|
||
for (const key in data) {
|
||
data[key] = trim(data[key])
|
||
}
|
||
}
|
||
return data
|
||
}
|
||
|
||
/**
|
||
* 根据编码表达式获取字典或数据标签
|
||
*
|
||
* @param codeExpress 编码表达式
|
||
* 语法1:“字典编码.数据编码”,如GENDER.MALE
|
||
* 语法2:“字典编码”,如GENDER
|
||
*/
|
||
export function getDictLabel (codeExpress) {
|
||
const dictMap = getStore().clientConfig.dictMap
|
||
if (dictMap == null) {
|
||
return ''
|
||
}
|
||
const codes = codeExpress.split('.')
|
||
const dictCode = codes[0]
|
||
const dataValue = codes[1]
|
||
const dict = dictMap[dictCode]
|
||
if (dict == null) {
|
||
return codeExpress
|
||
}
|
||
// 如果不存在数据编码,则直接返回字典名称
|
||
if (dataValue == null) {
|
||
return dict.name
|
||
}
|
||
const data = dict.dataList.find(d => d.value === dataValue)
|
||
if (data == null) {
|
||
return codeExpress
|
||
}
|
||
return data.label
|
||
}
|
||
|
||
/**
|
||
* 获取图片路径
|
||
*
|
||
* @param fileKey 文件key
|
||
* @returns {*}
|
||
*/
|
||
export function getImageURL (fileKey) {
|
||
if (fileKey.startsWith('http://') || fileKey.startsWith('https://')) {
|
||
return fileKey
|
||
}
|
||
return `https://nankaicms.adl66.com/Api/Client/resource/oss/image?f=${fileKey}`
|
||
}
|
||
|
||
/**
|
||
* 获取附件路径
|
||
*
|
||
* @param fileKey 文件key
|
||
* @param filename 文件名称
|
||
* @returns {*}
|
||
*/
|
||
export function getAttachURL (fileKey, filename) {
|
||
if (fileKey.startsWith('http://') || fileKey.startsWith('https://')) {
|
||
return fileKey
|
||
}
|
||
return `https://nankaicms.adl66.com/Api/Client/resource/oss/attach?f=${fileKey}&fn=${filename}`
|
||
}
|
||
|
||
/**
|
||
* 严格包装模板数据
|
||
* - 返回代理对象,获取不到模板数据时将抛出错误
|
||
*
|
||
* @param templateData 模板数据
|
||
* @param defaultValues 数据默认值
|
||
* @return Proxy
|
||
*/
|
||
export function strictPackage (templateData, defaultValues = {}) {
|
||
if (templateData == null) {
|
||
return null
|
||
}
|
||
if (templateData instanceof Array) {
|
||
return templateData
|
||
}
|
||
if (typeof templateData !== 'object') {
|
||
return templateData
|
||
}
|
||
return new Proxy(templateData, {
|
||
get (target, key) {
|
||
if (target[key] === undefined) {
|
||
if (defaultValues[key] != null) {
|
||
return defaultValues[key]
|
||
}
|
||
throw new Error(`缺少 ${key} 数据配置`)
|
||
}
|
||
return target[key]
|
||
}
|
||
})
|
||
}
|