上传组件基础样式

This commit is contained in:
WispX
2021-12-12 15:23:08 +08:00
parent dc91c49713
commit 4466003203
11 changed files with 29780 additions and 10 deletions
+1936 -1
View File
File diff suppressed because one or more lines are too long
+4605 -3
View File
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
+23126 -2
View File
File diff suppressed because one or more lines are too long
+1
View File
@@ -1,5 +1,6 @@
{
"/js/app.js": "/js/app.js",
"/css/app.css": "/css/app.css",
"/css/upload.css": "/css/upload.css",
"/css/fonts.css": "/css/fonts.css"
}
View File
@@ -0,0 +1,97 @@
@push('styles')
<link rel="stylesheet" href="{{ asset('css/upload.css') }}">
@endpush
@push('scripts')
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/webuploader@0.1.8/dist/webuploader.min.js"></script>
@endpush
<div class="pb-6 h-full">
<input type="file" id="picker" name="file" class="hidden" accept="image/*" multiple>
<div class="mb-4 p-4 bg-white rounded-md">
<h1 class="tracking-wider text-2xl text-gray-700 mb-2" style="text-shadow: -4px 4px 0 rgb(0 0 0 / 10%);">Image Upload</h1>
<p class="text-gray-500 text-sm">最大可上传 1.00 MB 的图片,单次同时可选择 3 张。本站已托管 3267 张图片。</p>
<div class="mt-3 rounded-md border-2 border-dotted border-stone-300 w-full h-full" id="picker-dnd" onclick="$('#picker input').click()">
<div id="upload-preview" class="flex m-2">
<div class="w-full group flex items-center p-2 rounded-md relative bg-gray-300 overflow-hidden">
<div class="absolute inset-0">
<div class="w-[25%] h-full bg-sky-600 opacity-70"></div>
<span class="absolute inset-0 flex justify-center items-center text-white hidden sm:flex">25%</span>
</div>
<div class="relative flex w-full">
<div class="w-10 h-10 bg-gray-200 rounded-lg cursor-pointer overflow-hidden">
<img class="w-full h-full" src="https://pic.iqy.ink/2021/12/12/dafb5853dcdfb.png">
</div>
<div class="flex justify-end flex-col ml-2 w-[80%]">
<p class="text-sm text-slate-100 truncate">哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈.jpeg</p>
<span class="text-xs text-slate-200">文件大小:7mb</span>
</div>
</div>
<div class="absolute right-2 flex space-x-2">
<a href="" class="flex justify-center items-center block shadow-sm w-10 h-10 rounded-full bg-gray-50 hover:bg-gray-200 aspect-w-1 aspect-h-1"><i class="fas fa-times"></i></a>
<a href="" class="flex justify-center items-center block shadow-sm w-10 h-10 rounded-full bg-gray-50 hover:bg-gray-200 aspect-w-1 aspect-h-1"><i class="fas fa-upload"></i></a>
</div>
</div>
</div>
{{--<div id="upload-container" class="flex flex-col justify-center items-center w-full h-full min-h-[150px] sm:min-h-[240px] space-y-4 text-gray-500">
<p><i class="fas fa-cloud-upload-alt text-6xl"></i></p>
<p class="text-md">拖拽文件到这里,支持多文件同时上传</p>
</div>--}}
</div>
</div>
<div class="mb-4 p-4 bg-white rounded-md relative group">
<span id="copy-all" class="absolute top-2 right-2 px-2 py-1 rounded-md text-xs text-gray-800 bg-gray-100 cursor-pointer hidden group-hover:block">复制全部</span>
<div id="link-tabs" class="flex flex-nowrap overflow-scroll scrollbar-none text-sm">
<a href="javascript:void(0)" class="flex justify-center items-center px-8 py-2 border-b-2 border-indigo-500">URL</a>
<a href="javascript:void(0)" class="flex justify-center items-center px-8 py-2 border-indigo-500">HTML</a>
<a href="javascript:void(0)" class="flex justify-center items-center px-8 py-2 border-indigo-500">BBCode</a>
<a href="javascript:void(0)" class="flex justify-center items-center px-8 py-2 border-indigo-500">Markdown</a>
<a href="javascript:void(0)" class="flex justify-center items-center px-8 py-2 border-indigo-500" style="white-space: nowrap">Markdown with link</a>
</div>
<div id="links" class="mt-2 space-y-2">
<p class="select-all hover:bg-gray-100 text-gray-600 rounded px-2 py-1 cursor-pointer overflow-scroll scrollbar-none">https://www.baidu.com/asdqwfdvergfweqwfwefw4gtwdvweqwd.jpg</p>
</div>
</div>
</div>
@push('scripts')
<script>
var uploader = WebUploader.create({
server: '/upload',
dnd: '#picker-dnd',
disableGlobalDnd: true,
pick: {
id: '#picker',
multiple: true,
},
accept: {
title: 'Images',
extensions: 'gif,jpg,jpeg,bmp,png',
mimeTypes: 'image/*'
}
});
uploader.on('fileQueued', function(file) {
console.log(file)
});
uploader.on('uploadAccept', (object, ret) => {
});
uploader.on('uploadProgress', (file, percentage) => {
});
uploader.on('uploadError', (file, reason) => {
});
uploader.on('uploadSuccess', (file, response) => {
});
uploader.on('uploadComplete', (file) => {
});
uploader.on('error', (type) => {
});
$('#upload-preview').click(function (e) {
e.stopPropagation();
})
</script>
@endpush
+1 -1
View File
@@ -1,3 +1,3 @@
<x-app-layout>
11
<x-upload/>
</x-app-layout>
+6 -2
View File
@@ -4,11 +4,14 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<meta name="keywords" content="Lsky Pro"/>
<meta name="description" content="Lsky Pro, Your photo album on the cloud."/>
<title>{{ config('app.name', 'Laravel') }}</title>
<!-- Fonts -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap">
@stack('styles')
<!-- Styles -->
<link rel="stylesheet" href="{{ asset('css/fonts.css') }}">
@@ -22,7 +25,7 @@
@include('layouts.sidebar')
@include('layouts.header')
<div
class="bg-black opacity-50 h-full w-full fixed left-0 right-0 bottom-0 top-0"
class="z-[1] bg-black opacity-50 h-full w-full fixed left-0 right-0 bottom-0 top-0"
x-show="sidebarOpened"
@click.outside="sidebarOpened = false"
@close.stop="sidebarOpened = false"
@@ -31,10 +34,11 @@
>
</div>
<main class="transition-all duration-300 sm:ml-64 pt-9 sm:pt-14">
<div class="mt-8 container mx-auto px-4 sm:px-10 md:px-10 lg:px-10 xl:px-10 2xl:px-60 w-full">
<div class="mt-9 container mx-auto px-4 sm:px-10 md:px-10 lg:px-10 xl:px-10 2xl:px-60 w-full">
{{ $slot }}
</div>
</main>
</div>
</body>
@stack('scripts')
</html>
+4
View File
@@ -4,11 +4,14 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<meta name="keywords" content="Lsky Pro"/>
<meta name="description" content="Lsky Pro, Your photo album on the cloud."/>
<title>{{ config('app.name', 'Laravel') }}</title>
<!-- Fonts -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap">
@stack('styles')
<!-- Styles -->
<link rel="stylesheet" href="{{ asset('css/app.css') }}">
@@ -21,4 +24,5 @@
{{ $slot }}
</div>
</body>
@stack('scripts')
</html>
+3 -1
View File
@@ -15,4 +15,6 @@ mix.js('resources/js/app.js', 'public/js').postCss('resources/css/app.css', 'pub
require('postcss-import'),
require('tailwindcss'),
require('autoprefixer'),
]).less('resources/css/fonts.less', 'public/css');
]).less('resources/css/fonts.less', 'public/css')
.less('resources/css/upload.less', 'public/css');