2 changed files with 78 additions and 0 deletions
@ -0,0 +1,25 @@ |
|||||
|
import { Tools } from '@/platform/utils'; |
||||
|
|
||||
|
class JoinFormater { |
||||
|
#joiner: string; |
||||
|
|
||||
|
constructor(joiner: string) { |
||||
|
this.#joiner = joiner; |
||||
|
} |
||||
|
|
||||
|
public formater() { |
||||
|
const joiner = this.#joiner; |
||||
|
return (arrays: string[]) => { |
||||
|
if (Tools.isUndefinedOrNull(arrays) || !Tools.isArray(arrays)) { |
||||
|
return null; |
||||
|
} |
||||
|
let result = ''; |
||||
|
arrays.forEach((item) => { |
||||
|
result += item + joiner; |
||||
|
}); |
||||
|
return result; |
||||
|
}; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
export { JoinFormater }; |
@ -0,0 +1,53 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<div style="height: 100px"></div> |
||||
|
<div class="row py-1"> |
||||
|
<div class="col-2"></div> |
||||
|
<div class="col-8 row justify-center q-gutter-md py-2"> |
||||
|
<q-file ref="fileRef" v-model="fileValueRef" :label="$t('file.single.tip')" style="width: 100%" dense outlined clearable counter> |
||||
|
<template #prepend> |
||||
|
<q-icon name="cloud_upload" /> |
||||
|
</template> |
||||
|
</q-file> |
||||
|
</div> |
||||
|
<div class="col-2"></div> |
||||
|
</div> |
||||
|
<div class="row py-1"> |
||||
|
<div class="col-2"></div> |
||||
|
<div class="col-8 row justify-center q-gutter-md py-2"> |
||||
|
<q-btn color="primary" :label="$t('upload')" @click="upload"></q-btn> |
||||
|
</div> |
||||
|
<div class="col-2"></div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script setup lang="ts"> |
||||
|
import { ref } from 'vue'; |
||||
|
import { $t, axios, Environment, DialogManager, NotifyManager } from 'platform-core'; |
||||
|
|
||||
|
const fileRef = ref(); |
||||
|
const fileValueRef = ref(); |
||||
|
|
||||
|
const upload = () => { |
||||
|
if (fileRef.value.nativeEl.files[0]) { |
||||
|
axios |
||||
|
.post( |
||||
|
Environment.apiContextPath('/api/developer/tools/upload'), |
||||
|
{ |
||||
|
file: fileRef.value.nativeEl.files[0], |
||||
|
}, |
||||
|
{ |
||||
|
loading: true, |
||||
|
headers: { |
||||
|
'Content-Type': 'multipart/form-data', |
||||
|
}, |
||||
|
}, |
||||
|
) |
||||
|
.then(() => { |
||||
|
NotifyManager.info($t('operationSuccess')); |
||||
|
}); |
||||
|
} else { |
||||
|
NotifyManager.error($t('menu.developer.backend.upload.pleaseSelectFile')); |
||||
|
} |
||||
|
}; |
||||
|
</script> |
Loading…
Reference in new issue