优化文件管理器

This commit is contained in:
pushuo 2022-07-12 10:52:43 +08:00
parent a417999def
commit d86266922e
21 changed files with 1166 additions and 18 deletions

View File

@ -54,7 +54,17 @@ body.page-filemanager .filemanager-wrap .filemanager-content .content-head {
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
body.page-filemanager .filemanager-wrap .filemanager-content .content-head .left a {
margin-right: 20px;
margin-right: 30px;
}
body.page-filemanager .filemanager-wrap .filemanager-content .content-head .left a:not(.is-disabled) {
color: #17191c;
}
body.page-filemanager .filemanager-wrap .filemanager-content .content-head .left a.is-disabled i {
color: #fe9d74;
}
body.page-filemanager .filemanager-wrap .filemanager-content .content-head .left a i {
color: #fd560f;
font-weight: 600;
}
body.page-filemanager .filemanager-wrap .filemanager-content .content-center {
height: calc(100% - 56px);
@ -62,17 +72,26 @@ body.page-filemanager .filemanager-wrap .filemanager-content .content-center {
align-items: flex-start;
flex-wrap: wrap;
background: #f9fafa;
padding: 20px;
margin-right: -20px;
padding: 20px 10px;
overflow-y: auto;
}
body.page-filemanager .filemanager-wrap .filemanager-content .content-center::-webkit-scrollbar {
width: 8px;
height: 1px;
}
body.page-filemanager .filemanager-wrap .filemanager-content .content-center::-webkit-scrollbar-thumb {
border-radius: 2px;
background: #fd560f;
}
body.page-filemanager .filemanager-wrap .filemanager-content .content-center::-webkit-scrollbar-track {
background: transparent;
}
body.page-filemanager .filemanager-wrap .filemanager-content .content-center .image-list {
width: calc(20% - 20px);
display: flex;
flex-direction: column;
margin-bottom: 20px;
background: #fff;
margin-right: 20px;
margin: 0 10px 20px;
box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.1);
cursor: pointer;
}

View File

@ -72,7 +72,23 @@ body.page-filemanager {
.left {
a {
margin-right: 20px;
margin-right: 30px;
&:not(.is-disabled) {
color: #17191c;
}
&.is-disabled {
i {
color: lighten($primary, 20%);
}
}
i {
color: $primary;
font-weight: 600;
}
}
}
}
@ -84,23 +100,36 @@ body.page-filemanager {
flex-wrap: wrap;
// align-items: center; // flex-start | center
background: #f9fafa;
padding: 20px;
padding: 20px 10px;
// justify-content: space-between; // flex-end | center | space-between
// flex-wrap: wrap;
margin-right: -20px;
// margin-right: -20px;
overflow-y: auto;
&::-webkit-scrollbar {
width: 8px;
height: 1px;
}
&::-webkit-scrollbar-thumb {
border-radius: 2px;
background: $primary;
}
&::-webkit-scrollbar-track {
background: transparent;
}
.image-list {
width: calc(20% - 20px);
display: flex;
flex-direction: column;
// align-items: center;
margin-bottom: 20px;
// margin-bottom: 20px;
background: #fff;
margin-right: 20px;
margin: 0 10px 20px;
box-shadow: 0 0 2px 1px rgba(0, 0, 0, .1);
cursor: pointer;
// border: 1px solid transparent;
&.active {
outline: 1px solid $primary;
}

View File

@ -26,11 +26,11 @@
<div>@{{ node.label }}</div>
<div class="right">
<el-tooltip class="item" effect="dark" content="创建文件夹" placement="top">
<span><i class="el-icon-circle-plus-outline"></i></span>
<span @click.stop="() => {openInputBox('addFolder', data)}"><i class="el-icon-circle-plus-outline"></i></span>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="重命名" placement="top">
<span><i class="el-icon-edit"></i></span>
<span @click.stop="() => {openInputBox('folder', data)}"><i class="el-icon-edit"></i></span>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="删除" placement="top">
@ -45,9 +45,9 @@
<div class="filemanager-content" v-loading="loading" element-loading-background="rgba(255, 255, 255, 0.5)">
<div class="content-head">
<div class="left">
<el-link :underline="false" :disabled="editingFileIndex === null" icon="el-icon-edit">下载</el-link>
<el-link :underline="false" :disabled="editingFileIndex === null" icon="el-icon-edit">删除</el-link>
<el-link :underline="false" :disabled="editingFileIndex === null" icon="el-icon-edit">重命名</el-link>
<el-link :underline="false" :disabled="editingFileIndex === null" icon="el-icon-download">下载</el-link>
<el-link :underline="false" :disabled="editingFileIndex === null" @click="deleteFile" icon="el-icon-delete">删除</el-link>
<el-link :underline="false" :disabled="editingFileIndex === null" @click="openInputBox('image')" icon="el-icon-edit">重命名</el-link>
</div>
<div class="right"><el-button size="mini" type="primary">上传文件</el-button></div>
</div>
@ -226,6 +226,36 @@
fileChecked() {
console.log(this.editingFileIndex)
},
deleteFile() {
this.$confirm('是否要删除选中文件', '提示', {
type: 'warning'
}).then(() => {
this.files.splice(this.editingFileIndex, 1);
this.$message({type: 'success',message: '删除成功!'});
}).catch(_=>{});
},
openInputBox(type, data) {
// console.log(data)
// console.log(this.editingFileIndex)
this.$prompt('', '重命名', {
confirmButtonText: '确定',
cancelButtonText: '取消',
inputPattern: /^.+$/,
inputErrorMessage: '不能为空'
}).then(({ value }) => {
this.$message({
type: 'success',
message: '你的邮箱是: ' + value
});
}).catch(() => {
this.$message({
type: 'info',
message: '取消输入'
});
});
}
},
// 在实例初始化之后组件属性计算之前如data属性等
@ -244,7 +274,7 @@
$(document).ready(function() {
$(document).on('click', function (e) {
if ($(e.target).closest('.content-center .image-list').length === 0) {
if ($(e.target).closest('.content-center .image-list, .content-head, .content-footer').length === 0) {
app.editingFileIndex = null;
app.files.map(e => e.selected = false)
}

View File

@ -1,2 +0,0 @@
*
!.gitignore

View File

@ -0,0 +1,93 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link href="<?php echo e(mix('/build/beike/admin/css/bootstrap.css')); ?>" rel="stylesheet">
<link href="<?php echo e(mix('build/beike/admin/css/app.css')); ?>" rel="stylesheet">
<title>admin login</title>
</head>
<body class="page-login">
<div class="d-flex align-items-center vh-100 pt-2 pt-sm-5 pb-4 pb-sm-5">
<div class="container">
<div class="card">
<div class="w-480">
<div class="card-header mt-3 mb-4">
<h4 class="fw-bold">登录到 beikeshop 后台</h4>
<div class="text-muted fw-normal">登录到 beikeshop 后台</div>
</div>
<div class="card-body">
<form action="<?php echo e(admin_route('login.store')); ?>" method="post">
<?php echo csrf_field(); ?>
<div class="form-floating mb-4">
<input type="text" name="email" class="form-control" id="email-input" value="<?php echo e(old('email')); ?>" placeholder="邮箱地址">
<label for="email-input">邮箱地址</label>
<?php $__errorArgs = ['email'];
$__bag = $errors->getBag($__errorArgs[1] ?? 'default');
if ($__bag->has($__errorArgs[0])) :
if (isset($message)) { $__messageOriginal = $message; }
$message = $__bag->first($__errorArgs[0]); ?>
<?php if (isset($component)) { $__componentOriginalc254754b9d5db91d5165876f9d051922ca0066f4 = $component; } ?>
<?php $component = $__env->getContainer()->make(Illuminate\View\AnonymousComponent::class, ['view' => 'admin::components.form.error','data' => ['message' => $message]]); ?>
<?php $component->withName('admin::form.error'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php $component->withAttributes(['message' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($message)]); ?>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__componentOriginalc254754b9d5db91d5165876f9d051922ca0066f4)): ?>
<?php $component = $__componentOriginalc254754b9d5db91d5165876f9d051922ca0066f4; ?>
<?php unset($__componentOriginalc254754b9d5db91d5165876f9d051922ca0066f4); ?>
<?php endif; ?>
<?php unset($message);
if (isset($__messageOriginal)) { $message = $__messageOriginal; }
endif;
unset($__errorArgs, $__bag); ?>
</div>
<div class="form-floating mb-5">
<input type="password" name="password" class="form-control" id="password-input" placeholder="密码">
<label for="password-input">密码</label>
<?php $__errorArgs = ['password'];
$__bag = $errors->getBag($__errorArgs[1] ?? 'default');
if ($__bag->has($__errorArgs[0])) :
if (isset($message)) { $__messageOriginal = $message; }
$message = $__bag->first($__errorArgs[0]); ?>
<?php if (isset($component)) { $__componentOriginalc254754b9d5db91d5165876f9d051922ca0066f4 = $component; } ?>
<?php $component = $__env->getContainer()->make(Illuminate\View\AnonymousComponent::class, ['view' => 'admin::components.form.error','data' => ['message' => $message]]); ?>
<?php $component->withName('admin::form.error'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php $component->withAttributes(['message' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($message)]); ?>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__componentOriginalc254754b9d5db91d5165876f9d051922ca0066f4)): ?>
<?php $component = $__componentOriginalc254754b9d5db91d5165876f9d051922ca0066f4; ?>
<?php unset($__componentOriginalc254754b9d5db91d5165876f9d051922ca0066f4); ?>
<?php endif; ?>
<?php unset($message);
if (isset($__messageOriginal)) { $message = $__messageOriginal; }
endif;
unset($__errorArgs, $__bag); ?>
</div>
<?php if(session('error')): ?>
<div class="alert alert-success">
<?php echo e(session('error')); ?>
</div>
<?php endif; ?>
<div class="d-grid mb-4"><button type="submit" class="btn btn-lg btn-primary">登录</button></div>
</form>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<?php /**PATH /Users/pushuo/www/product/beikeshop/resources//beike/admin/views/pages/login/login.blade.php ENDPATH**/ ?>

View File

@ -0,0 +1,10 @@
<div class="">
<ul class="list-unstyled navbar-nav">
<?php $__currentLoopData = $links; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $link): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<li class="nav-item <?php echo e($link['active'] ? 'active' : ''); ?>">
<a class="nav-link" href="<?php echo e($link['url']); ?>"><i class="iconfont">&#xe65c;</i> <?php echo e($link['title']); ?></a>
</li>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
</ul>
</div>
<?php /**PATH /Users/pushuo/www/product/beikeshop/resources//beike/admin/views/components/sidebar.blade.php ENDPATH**/ ?>

View File

@ -0,0 +1,285 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<script src="<?php echo e(asset('vendor/vue/2.6.12/vue.js')); ?>"></script>
<script src="<?php echo e(asset('vendor/element-ui/2.6.2/js.js')); ?>"></script>
<script src="<?php echo e(asset('vendor/jquery/jquery-3.6.0.min.js')); ?>"></script>
<script src="<?php echo e(asset('vendor/layer/3.5.1/layer.js')); ?>"></script>
<link href="<?php echo e(mix('/build/beike/admin/css/bootstrap.css')); ?>" rel="stylesheet">
<link rel="stylesheet" href="<?php echo e(asset('vendor/element-ui/2.6.2/css.css')); ?>">
<link href="<?php echo e(mix('build/beike/admin/css/filemanager.css')); ?>" rel="stylesheet">
<script src="<?php echo e(mix('build/beike/admin/js/app.js')); ?>"></script>
<meta name="csrf-token" content="<?php echo e(csrf_token()); ?>">
<title>beike filemanager</title>
</head>
<body class="page-filemanager">
<div class="filemanager-wrap" id="filemanager-wrap-app" v-cloak ref="splitPane">
<div class="filemanager-navbar" :style="'width:' + paneLengthValue">
<el-tree
:data="tree"
:props="defaultProps"
@node-click="handleNodeClick"
class="tree-wrap">
<div class="custom-tree-node" slot-scope="{ node, data }">
<div>{{ node.label }}</div>
<div class="right">
<el-tooltip class="item" effect="dark" content="创建文件夹" placement="top">
<span><i class="el-icon-circle-plus-outline"></i></span>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="重命名" placement="top">
<span @click.stop="() => {openInputBox('folder', data)}"><i class="el-icon-edit"></i></span>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="删除" placement="top">
<span><i class="el-icon-delete"></i></span>
</el-tooltip>
</div>
</div>
</el-tree>
</div>
<div class="filemanager-divider" @mousedown="handleMouseDown"></div>
<div class="filemanager-content" v-loading="loading" element-loading-background="rgba(255, 255, 255, 0.5)">
<div class="content-head">
<div class="left">
<el-link :underline="false" :disabled="editingFileIndex === null" icon="el-icon-download">下载</el-link>
<el-link :underline="false" :disabled="editingFileIndex === null" @click="deleteFile" icon="el-icon-delete">删除</el-link>
<el-link :underline="false" :disabled="editingFileIndex === null" @click="openInputBox('image')" icon="el-icon-edit">重命名</el-link>
</div>
<div class="right"><el-button size="mini" type="primary">上传文件</el-button></div>
</div>
<div class="content-center">
<div :class="['image-list', file.selected ? 'active' : '']" v-for="file, index in files" :key="index" @click="checkedImage(index)">
<img :src="file.src">
<div class="text">
<span :title="file.name">{{ file.name }}</span>
<i v-if="file.selected" class="el-icon-check"></i>
</div>
</div>
</div>
<div class="content-footer">
<div class="right"></div>
<div class="pagination-wrap">
<el-pagination
layout="prev, pager, next"
:total="50">
</el-pagination>
</div>
<div class="right"><el-button size="mini" type="primary" @click="fileChecked" :disabled="editingFileIndex === null">选择</el-button></div>
</div>
</div>
</div>
<script>
var app = new Vue({
el: '#filemanager-wrap-app',
components: {},
data: {
min: 10,
max: 40,
paneLengthPercent: 20,
triggerLength: 10,
loading: false,
editingFileIndex: null,
tree: [
{
label: '一级 1',
id: '2222',
children: [
{
label: '二级 1-1',
id: '2222',
children: [
{
label: '三级 1-1-1',
id: '2222',
}
]
}
]
},
{
label: '一级 2',
id: '423423',
},
{
label: '一级 2',
id: '423423',
},
{
label: '一级 2',
id: '423423',
},
{
label: '一级 2',
id: '423423',
},
],
defaultProps: {
children: 'children',
label: 'label'
},
triggerLeftOffset: 0,
files: [
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
{type: 'image', src: 'https://via.placeholder.com/140x140.png/eeeeee', name: '文件名称', selected: false},
]
},
// 计算属性
computed: {
// isFileSelected() {
// return this.files.some(file => file.selected);
// },
paneLengthValue() {
return `calc(${this.paneLengthPercent}% - ${this.triggerLength / 2 + 'px'})`
},
},
// 侦听器
watch: {},
// 组件方法
methods: {
handleNodeClick(e) {
console.log(e)
this.loading = true
setTimeout(() => {
this.loading = false
},1000)
},
loadNode(node, resolve) {
console.log(node, resolve)
resolve(this.tree)
},
// 按下滑动器
handleMouseDown(e) {
document.addEventListener('mousemove', this.handleMouseMove)
document.addEventListener('mouseup', this.handleMouseUp)
this.triggerLeftOffset = e.pageX - e.srcElement.getBoundingClientRect().left
},
// 按下滑动器后移动鼠标
handleMouseMove(e) {
const clientRect = this.$refs.splitPane.getBoundingClientRect()
let paneLengthPercent = 0
const offset = e.pageX - clientRect.left - this.triggerLeftOffset + this.triggerLength / 2
paneLengthPercent = (offset / clientRect.width) * 100
if (paneLengthPercent < this.min) {
paneLengthPercent = this.min
}
if (paneLengthPercent > this.max) {
paneLengthPercent = this.max
}
this.paneLengthPercent = paneLengthPercent;
},
// 松开滑动器
handleMouseUp() {
document.removeEventListener('mousemove', this.handleMouseMove)
},
checkedImage(index) {
this.editingFileIndex = index;
this.files.map(e => !e.index ? e.selected = false : '')
this.files[index].selected = !this.files[index].selected
},
fileChecked() {
console.log(this.editingFileIndex)
},
deleteFile() {
this.$confirm('是否要删除选中文件', '提示', {
type: 'warning'
}).then(() => {
this.files.splice(this.editingFileIndex, 1);
this.$message({type: 'success',message: '删除成功!'});
}).catch(_=>{});
},
openInputBox(type, data) {
console.log(data)
this.$prompt('', '重命名', {
confirmButtonText: '确定',
cancelButtonText: '取消',
inputPattern: /^.+$/,
inputErrorMessage: '不能为空'
}).then(({ value }) => {
this.$message({
type: 'success',
message: '你的邮箱是: ' + value
});
}).catch(() => {
this.$message({
type: 'info',
message: '取消输入'
});
});
}
},
// 在实例初始化之后组件属性计算之前如data属性等
beforeCreate () {
},
// 在实例创建完成后被立即同步调用
created () {
},
// 在挂载开始之前被调用:相关的 render 函数首次被调用
beforeMount () {
},
// 实例被挂载后调用
mounted () {
},
})
$(document).ready(function() {
$(document).on('click', function (e) {
if ($(e.target).closest('.content-center .image-list, .content-head, .content-footer').length === 0) {
app.editingFileIndex = null;
app.files.map(e => e.selected = false)
}
})
});
</script>
</body>
</html>
<?php /**PATH /Users/pushuo/www/product/beikeshop/resources//beike/admin/views/pages/filemanager/index.blade.php ENDPATH**/ ?>

View File

@ -0,0 +1,16 @@
<section class="module-item" id="module-dasuybkdas">
<div class="module-edit">
<div class="edit-wrap">
<div class=""><i class="bi bi-chevron-down"></i></div>
<div class=""><i class="bi bi-chevron-up"></i></div>
<div class="delete"><i class="bi bi-x-lg"></i></div>
<div class="edit"><i class="bi bi-pencil-square"></i></div>
</div>
</div>
<div class="module-info">
<img src="<?php echo e(asset('image/default/banner.png')); ?>" class="img-fluid">
</div>
</section>
<?php dump($style, $images); ?>
<?php /**PATH /Users/pushuo/www/product/beikeshop/themes/default/design/slideshow.blade.php ENDPATH**/ ?>

View File

@ -0,0 +1,84 @@
<footer>
<div class="container">
<div class="footer-top">
<div class="row">
<?php for($i = 0; $i < 4; $i++): ?>
<div class="col-lg-3">
<div class="service-item">
<div class="icon"><img src="<?php echo e(asset('image/default/footer-icon-1.png')); ?>" class="img-fluid"></div>
<div class="text">
<p class="title">FREE SHIPPING & RETURN</p>
<p class="sub-title">Free Shipping over $300</p>
</div>
</div>
</div>
<?php endfor; ?>
</div>
</div>
<div class="footer-content">
<div class="row">
<div class="col-12 col-md-4">
<div class="footer-content-left">
<div class="logo"><a href="http://"><img src="<?php echo e(asset('image/logo.png')); ?>" class="img-fluid"></a></div>
<div class="text">Fashion is a popular
aesthetic expression at a particular time, place and in a specific context, especially in clothing, footwear, lifestyle
</div>
</div>
</div>
<div class="col-lg-8">
<div class="row">
<div class="col-6 col-sm">
<h6 class="text-uppercase text-dark mb-3">Hot links</h6>
<ul class="list-unstyled">
<li><a href="">adsdasd</a></li>
<li><a href="">adsdasd</a></li>
<li><a href="">adsdasd</a></li>
<li><a href="">adsdasd</a></li>
</ul>
</div>
<div class="col-6 col-sm">
<h6 class="text-uppercase text-dark mb-3">Hot links</h6>
<ul class="list-unstyled">
<li><a href="">dsddslkdjccxz</a></li>
<li><a href="">dsddslkdjccxz</a></li>
<li><a href="">adsdasd</a></li>
<li><a href="">adsdasd</a></li>
</ul>
</div>
<div class="col-6 col-sm">
<h6 class="text-uppercase text-dark mb-3">Hot links</h6>
<ul class="list-unstyled">
<li><a href="">adsdasd</a></li>
<li><a href="">adsdasd</a></li>
<li><a href="">adsdasd</a></li>
<li><a href="">adsdasd</a></li>
</ul>
</div>
<div class="col-6 col-sm">
<h6 class="text-uppercase text-dark mb-3">Hot links</h6>
<ul class="list-unstyled">
<li><a href="">dsddslkdjccxz</a></li>
<li><a href="">dsddslkdjccxz</a></li>
<li><a href="">dsddslkdjccxz</a></li>
<li><a href="">dsddslkdjccxz</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="footer-bottom">
<div class="container">
<div class="row">
<div class="col">
© Clay Shop all rights reserved
</div>
<div class="col-auto">
<img src="<?php echo e(asset('image/default/footer-payment.png')); ?>" class="img-fluid">
</div>
</div>
</div>
</div>
</footer>
<?php /**PATH /Users/pushuo/www/product/beikeshop/themes/default/layout/footer.blade.php ENDPATH**/ ?>

View File

@ -0,0 +1,26 @@
<div class="header-wrap">
<div class="header-left">
<div class="logo">
<img src="<?php echo e(asset('image/logo.png')); ?>" class="img-fluid">
</div>
</div>
<div class="header-right">
<ul class="navbar navbar-right">
<?php $__currentLoopData = $links; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $link): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<li class="nav-item <?php echo e($link['active'] ? 'active' : ''); ?>"><a href="<?php echo e($link['url']); ?>" class="nav-link"><?php echo e($link['title']); ?></a></li>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
</ul>
<ul class="navbar">
<li class="nav-item"><a href="<?php echo e(admin_route('logout.index')); ?>" class="nav-link">退出登录</a></li>
<li class="nav-item">
<a href="" class="nav-link">
<img src="http://dummyimage.com/100x100" class="avatar img-fluid rounded-circle me-1">
<span class="text-dark ml-2"><?php echo e(auth()->user()->name); ?></span>
</a>
</li>
</ul>
</div>
</div>
<?php /**PATH /Users/pushuo/www/product/beikeshop/resources//beike/admin/views/components/header.blade.php ENDPATH**/ ?>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,24 @@
<?php $__env->startSection('body-class', 'page-home'); ?>
<?php $__env->startSection('content'); ?>
<?php echo $html; ?>
<script>
$(function() {
$(document).on('click', '.module-edit .edit', function(event) {
window.parent.postMessage({index: 0}, '*')
});
});
</script>
<?php $__env->stopSection(); ?>
<?php echo $__env->make('layout.master', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /Users/pushuo/www/product/beikeshop/themes/default/home.blade.php ENDPATH**/ ?>

View File

@ -0,0 +1,97 @@
<template id="module-editor-slideshow-template">
<div>
<div class="module-editor-row">设置</div>
<div class="module-edit-group">
<div class="module-edit-title">是否全屏</div>
<el-switch v-model="module.full"></el-switch>
</div>
<div class="module-editor-row">内容</div>
<div class="module-edit-group">
<div class="module-edit-title">选择图片</div>
<draggable
ghost-class="dragabble-ghost"
:list="module.images"
:options="{animation: 330}"
>
<div class="pb-images-selector" v-for="(item, index) in module.images" :key="index">
<div class="selector-head" @click="itemShow(index)">
<div class="left">
<el-tooltip class="icon-rank" effect="dark" content="上下拖动排序" placement="left">
<i class="el-icon-rank"></i>
</el-tooltip>
</div>
<div class="right">
<el-tooltip class="" effect="dark" content="删除" placement="left">
<div class="remove-item" @click.stop="removeImage(index)"><i class="iconfont">&#xe63a;</i></div>
</el-tooltip>
<i :class="'fa fa-angle-'+(item.show ? 'up' : 'down')"></i>
</div>
</div>
<div :class="'pb-images-list ' + (item.show ? 'active' : '')">
<div class="pb-images-top">
<div class="tag">建议尺寸 1920 x 600</div>
</div>
</div>
</div>
</draggable>
<div class="add-item">
<el-button type="primary" size="small" @click="addImage" icon="el-icon-circle-plus-outline">添加图片</el-button>
</div>
</div>
</div>
</template>
<script type="text/javascript">
setTimeout(() => {
app.source.modules.push(<?php echo json_encode($register, 15, 512) ?>)
}, 0)
Vue.component('module-editor-slideshow', {
template: '#module-editor-slideshow-template',
props: ['module'],
data: function () {
return {
// full: true
}
},
watch: {
module: {
handler: function (val) {
this.$emit('on-changed', val);
},
deep: true
}
},
created: function () {
console.log(this.module)
},
methods: {
removeImage(index) {
this.module.images.splice(index, 1);
},
itemShow(index) {
this.module.images.find((e, key) => {if (index != key) return e.show = false});
this.module.images[index].show = !this.module.images[index].show;
},
addImage() {
this.module.images.find(e => e.show = false);
this.module.images.push({image: 'catalog/demo/slideshow/2.jpg', show: true, link: {type: 'product', value:''}});
}
}
});
</script>
<?php /**PATH /Users/pushuo/www/product/beikeshop/resources//beike/admin/views/pages/design/module/slideshow.blade.php ENDPATH**/ ?>

View File

@ -0,0 +1,6 @@
<?php extract(collect($attributes->getAttributes())->mapWithKeys(function ($value, $key) { return [Illuminate\Support\Str::camel(str_replace([':', '.'], ' ', $key)) => $value]; })->all(), EXTR_SKIP); ?>
<x-editor-slide_show {{ $attributes }}>
{{ $slot ?? "" }}
</x-editor-slide_show>

View File

@ -0,0 +1,151 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="csrf-token" content="<?php echo e(csrf_token()); ?>">
<title>首页编辑器</title>
<script src="<?php echo e(asset('vendor/jquery/jquery-3.6.0.min.js')); ?>"></script>
<script src="<?php echo e(asset('vendor/layer/3.5.1/layer.js')); ?>"></script>
<script src="<?php echo e(asset('/build/beike/shop/default/js/app.js')); ?>"></script>
<script src="<?php echo e(asset('vendor/vue/2.6.14/vue.js')); ?>"></script>
<script src="<?php echo e(asset('vendor/vue/Sortable.min.js')); ?>"></script>
<script src="<?php echo e(asset('vendor/vue/vuedraggable.js')); ?>"></script>
<script src="<?php echo e(asset('vendor/element-ui/2.15.6/js.js')); ?>"></script>
<link rel="stylesheet" href="<?php echo e(asset('vendor/element-ui/2.15.6/css.css')); ?>">
<link rel="stylesheet" type="text/css" href="<?php echo e(asset('/build/beike/shop/default/css/design/app.css')); ?>">
<?php echo $__env->yieldPushContent('header'); ?>
</head>
<body class="page-design">
<div class="design-box">
<div class="sidebar-edit-wrap" id="app" v-cloak>
<div class="design-head">
<div>保存</div>
<div>退出</div>
</div>
<div class="module-edit" v-if="form.modules.length > 0 && design.editType == 'module'">
<component
:is="editingModuleComponent"
:key="design.editingModuleIndex"
:module="form.modules[design.editingModuleIndex].content"
@on-changed="moduleUpdated"
></component>
</div>
<el-row v-if="design.editType == 'add'" class="modules-list">
<el-col :span="12" v-for="(item, index) in source.modules" :key="index">
<div @click="addModuleButtonClicked(item.code)" class="module-list">
<div class="module-info">
<div class="icon"><i class="iconfont" v-html="item.icon"></i></div>
<div class="name">{{ item.name }}</div>
</div>
</div>
</el-col>
</el-row>
</div>
<div class="preview-iframe">
<iframe src="<?php echo e(url('/')); ?>" frameborder="0" id="preview-iframe" width="100%" height="100%"></iframe>
</div>
</div>
<?php $__currentLoopData = $editors; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $editor): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<?php if (isset($component)) { $__componentOriginal3bf0a20793be3eca9a779778cf74145887b021b9 = $component; } ?>
<?php $component = $__env->getContainer()->make(Illuminate\View\DynamicComponent::class, ['component' => $editor]); ?>
<?php $component->withName('dynamic-component'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php $component->withAttributes([]); ?>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal3bf0a20793be3eca9a779778cf74145887b021b9)): ?>
<?php $component = $__componentOriginal3bf0a20793be3eca9a779778cf74145887b021b9; ?>
<?php unset($__componentOriginal3bf0a20793be3eca9a779778cf74145887b021b9); ?>
<?php endif; ?>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
<script>
let app = new Vue({
el: '#app',
data: {
form: {
modules: [
{"content":{"style":{"background_color":""},"full":true,"floor":{"2":"","3":""},"images":[{"image":{"2":"catalog/demo/slideshow/2.jpg","3":"catalog/demo/slideshow/2.jpg"},"show":true,"link":{"type":"product","value":"","link":""}},{"image":{"2":"catalog/demo/slideshow/1.jpg","3":"catalog/demo/slideshow/1.jpg"},"show":false,"link":{"type":"product","value":"","link":""}}]},"code":"slideshow","name":"幻灯片","module_id":"b0448efb0989"}
]
},
design: {
type: 'pc',
editType: 'add',
sidebar: false,
editingModuleIndex: 0,
ready: false,
moduleLoadCount: 0, // 第一次选择已配置模块时,不需要请求数据,
},
source: {
modules: [],
config: []
},
},
// 计算属性
computed: {
// 编辑中的模块编辑组件
editingModuleComponent() {
return 'module-editor-' + this.editingModuleCode.replace('_', '-');
},
// 编辑中的模块 code
editingModuleCode() {
return this.form.modules[this.design.editingModuleIndex].code;
},
// editingConfigCodeFormat() {
// return 'config-' + this.config.editingConfigCode;
// },
},
// 侦听器
watch: {},
// 组件方法
methods: {
moduleUpdated() {
console.log('moduleUpdated')
},
addModuleButtonClicked(code) {
console.log(code)
},
// 编辑模块
editModuleButtonClicked(index) {
this.design.editingModuleIndex = index;
this.design.editType = 'module';
},
},
// 在实例初始化之后组件属性计算之前如data属性等
beforeCreate () {
},
// 在实例创建完成后被立即同步调用
created () {
},
// 在挂载开始之前被调用:相关的 render 函数首次被调用
beforeMount () {
},
// 实例被挂载后调用
mounted () {
},
})
window.addEventListener('message', (event) => {
event.stopPropagation()
if (typeof(event.data.index) !== 'undefined') {
app.editModuleButtonClicked(event.data.index)
}
}, false)
</script>
</body>
</html>
<?php /**PATH /Users/pushuo/www/product/beikeshop/resources//beike/admin/views/pages/design/builder/index.blade.php ENDPATH**/ ?>

View File

@ -0,0 +1,15 @@
<?php $__env->startSection('title', '后台管理'); ?>
<?php $__env->startSection('content'); ?>
<?php for($i = 0; $i < 10; $i++): ?>
<div class="card mb-3">
<div class="card-header">订单统计</div>
<div class="card-body">
<div>11</div>
</div>
</div>
<?php endfor; ?>
<?php $__env->stopSection(); ?>
<?php echo $__env->make('admin::layouts.master', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /Users/pushuo/www/product/beikeshop/resources//beike/admin/views/pages/home.blade.php ENDPATH**/ ?>

View File

@ -0,0 +1,28 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="csrf-token" content="<?php echo e(csrf_token()); ?>">
<title>首页</title>
<link rel="stylesheet" type="text/css" href="<?php echo e(asset('/build/beike/shop/default/css/bootstrap.css')); ?>">
<script src="<?php echo e(asset('vendor/jquery/jquery-3.6.0.min.js')); ?>"></script>
<script src="<?php echo e(asset('vendor/layer/3.5.1/layer.js')); ?>"></script>
<script src="<?php echo e(asset('vendor/bootstrap/5.1.3/js/bootstrap.min.js')); ?>"></script>
<script src="<?php echo e(asset('/build/beike/shop/default/js/app.js')); ?>"></script>
<link rel="stylesheet" type="text/css" href="<?php echo e(asset('/build/beike/shop/default/css/app.css')); ?>">
<?php echo $__env->yieldPushContent('header'); ?>
</head>
<body class="<?php echo $__env->yieldContent('body-class'); ?>">
<?php echo $__env->make('layout.header', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
<?php echo $__env->yieldContent('content'); ?>
<?php echo $__env->make('layout.footer', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
<?php echo $__env->yieldPushContent('add-scripts'); ?>
</body>
</html>
<?php /**PATH /Users/pushuo/www/product/beikeshop/themes/default/layout/master.blade.php ENDPATH**/ ?>

View File

@ -0,0 +1,113 @@
<header>
<div class="top-wrap">
<div class="container d-flex justify-content-between align-items-center">
<div class="left d-flex align-items-center">
<div class="dropdown">
<a class="btn dropdown-toggle ps-0" href="#" role="button" id="currency-dropdown" data-toggle="dropdown"
aria-expanded="false">
$ USD
</a>
<div class="dropdown-menu" aria-labelledby="currency-dropdown">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
<div class="dropdown">
<a class="btn dropdown-toggle" href="#" role="button" id="language-dropdown" data-toggle="dropdown"
aria-expanded="false">
Language
</a>
<div class="dropdown-menu" aria-labelledby="language-dropdown">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
</div>
<div class="right nav">
<a href="" class="px-2">Delivery</a>
<a href="" class="px-2">Help</a>
<span class="px-2">028-0000000</span>
</div>
</div>
</div>
<div class="header-content py-3">
<div class="container navbar-expand-lg">
<div class="logo"><a href="<?php echo e(shop_route('home.index')); ?>"><img src="<?php echo e(asset('image/logo.png')); ?>" class="img-fluid"></a></div>
<div class="menu-wrap">
<ul class="navbar-nav mx-auto">
<?php $__currentLoopData = $categories; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $category): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<li class="dropdown">
<a class="nav-link dropdown-toggle" href="#" data-bs-toggle="dropdown"><?php echo e($category['name']); ?></a>
<?php if($category['children']): ?>
<ul class="dropdown-menu">
<?php $__empty_1 = true; $__currentLoopData = $category['children']; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $child): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?>
<li><a href="<?php echo e($child['url']); ?>" class="dropdown-item"><?php echo e($child['name']); ?></a></li>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
</ul>
<?php endif; ?>
</li>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
</ul>
</div>
<div class="right-btn">
<ul class="navbar-nav flex-row">
<li class="nav-item"><a href="" class="nav-link"><i class="iconfont">&#xe8d6;</i></a></li>
<li class="nav-item"><a href="" class="nav-link"><i class="iconfont">&#xe662;</i></a></li>
<li class="nav-item dropdown">
<a href="<?php echo e(shop_route('account.index')); ?>" class="nav-link"><i class="iconfont">&#xe619;</i></a>
<ul class="dropdown-menu dropdown-menu-end">
<?php if(auth()->guard('web_shop')->check()): ?>
<li class="dropdown-item"><h6 class="mb-0">Pu Shuo</h6></li>
<li><hr class="dropdown-divider"></li>
<li><a href="<?php echo e(shop_route('account.index')); ?>" class="dropdown-item"><i class="bi bi-person me-1"></i> 个人中心</a></li>
<li><a href="<?php echo e(shop_route('account.order.index')); ?>" class="dropdown-item"><i class="bi bi-clipboard-check me-1"></i> 我的订单</a></li>
<li><a href="<?php echo e(shop_route('account.index')); ?>" class="dropdown-item"><i class="bi bi-heart me-1"></i> 我的收藏</a></li>
<li><hr class="dropdown-divider"></li>
<li><a href="<?php echo e(shop_route('logout')); ?>" class="dropdown-item"><i class="bi bi-box-arrow-left me-1"></i> 退出登录</a></li>
<?php else: ?>
<li><a href="<?php echo e(shop_route('login.index')); ?>" class="dropdown-item"><i class="bi bi-box-arrow-right me-1"></i> 登录/注册</a></li>
<?php endif; ?>
</ul>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="offcanvas" href="#offcanvas-right-cart" role="button" aria-controls="offcanvasExample">
<i class="iconfont">&#xe634;</i>
<div class="navbar-icon-link-badge"></div>
</a>
</li>
</ul>
</div>
</div>
</div>
</header>
<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvas-right-cart" aria-labelledby="offcanvasRightLabel">
<div class="offcanvas-header">
<h5 id="offcanvasRightLabel" class="mx-auto mb-0">您的购物车</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<div class="offcanvas-right-products">
</div>
</div>
<div class="offcanvas-footer">
<div class="d-flex justify-content-between align-items-center mb-2 p-4 bg-light">
<strong>小计(<span class="offcanvas-right-cart-count"></span></strong>
<strong class="ms-auto offcanvas-right-cart-amount"></strong>
</div>
<div class="p-4">
<a href="<?php echo e(shop_route('checkout.index')); ?>" class="btn w-100 btn-dark">去结账</a>
<a href="<?php echo e(shop_route('carts.index')); ?>" class="btn w-100 btn-outline-dark mt-2">查看购物车</a>
</div>
</div>
</div>
<?php /**PATH /Users/pushuo/www/product/beikeshop/themes/default/layout/header.blade.php ENDPATH**/ ?>

View File

@ -0,0 +1,63 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<script src="<?php echo e(asset('vendor/vue/2.6.12/vue.js')); ?>"></script>
<script src="<?php echo e(asset('vendor/element-ui/2.6.2/js.js')); ?>"></script>
<script src="<?php echo e(asset('vendor/jquery/jquery-3.6.0.min.js')); ?>"></script>
<script src="<?php echo e(asset('vendor/layer/3.5.1/layer.js')); ?>"></script>
<link href="<?php echo e(mix('/build/beike/admin/css/bootstrap.css')); ?>" rel="stylesheet">
<link rel="stylesheet" href="<?php echo e(asset('vendor/element-ui/2.6.2/css.css')); ?>">
<link href="<?php echo e(mix('build/beike/admin/css/app.css')); ?>" rel="stylesheet">
<script src="<?php echo e(mix('build/beike/admin/js/app.js')); ?>"></script>
<meta name="csrf-token" content="<?php echo e(csrf_token()); ?>">
<title>beike admin</title>
<?php echo $__env->yieldPushContent('header'); ?>
</head>
<body class="<?php echo $__env->yieldContent('body-class'); ?>">
<!-- <div style="height: 80px; background: white;"></div> -->
<?php if (isset($component)) { $__componentOriginal78495131b5e623bbe80547eba5c6e3af3857ec49 = $component; } ?>
<?php $component = $__env->getContainer()->make(Beike\Admin\View\Components\Header::class, []); ?>
<?php $component->withName('admin-header'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php $component->withAttributes([]); ?>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal78495131b5e623bbe80547eba5c6e3af3857ec49)): ?>
<?php $component = $__componentOriginal78495131b5e623bbe80547eba5c6e3af3857ec49; ?>
<?php unset($__componentOriginal78495131b5e623bbe80547eba5c6e3af3857ec49); ?>
<?php endif; ?>
<div class="main-content">
<aside class="sidebar navbar-expand-xs border-radius-xl">
<?php if (isset($component)) { $__componentOriginal4a59806892d47b83351e68f269151c89d7494210 = $component; } ?>
<?php $component = $__env->getContainer()->make(Beike\Admin\View\Components\Sidebar::class, []); ?>
<?php $component->withName('admin-sidebar'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php $component->withAttributes([]); ?>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal4a59806892d47b83351e68f269151c89d7494210)): ?>
<?php $component = $__componentOriginal4a59806892d47b83351e68f269151c89d7494210; ?>
<?php unset($__componentOriginal4a59806892d47b83351e68f269151c89d7494210); ?>
<?php endif; ?>
</aside>
<div class="page-title-box"><h4 class="page-title"><?php echo $__env->yieldContent('title'); ?></h4></div>
<div id="content">
<div class="container-fluid p-0">
<?php echo $__env->yieldContent('content'); ?>
</div>
</div>
</div>
<?php echo $__env->yieldPushContent('footer'); ?>
</body>
</html>
<?php /**PATH /Users/pushuo/www/product/beikeshop/resources//beike/admin/views/layouts/master.blade.php ENDPATH**/ ?>

View File

@ -0,0 +1,17 @@
<?php extract(collect($attributes->getAttributes())->mapWithKeys(function ($value, $key) { return [Illuminate\Support\Str::camel(str_replace([':', '.'], ' ', $key)) => $value]; })->all(), EXTR_SKIP); ?>
<?php if (isset($component)) { $__componentOriginala753308f2daa78de54da9d719292e0df85686008 = $component; } ?>
<?php $component = $__env->getContainer()->make(\Beike\Admin\View\DesignBuilders\SlideShow::class, []); ?>
<?php $component->withName('editor-slide_show'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php $component->withAttributes(['attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($attributes)]); ?>
<?php echo e($slot ?? ""); ?>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__componentOriginala753308f2daa78de54da9d719292e0df85686008)): ?>
<?php $component = $__componentOriginala753308f2daa78de54da9d719292e0df85686008; ?>
<?php unset($__componentOriginala753308f2daa78de54da9d719292e0df85686008); ?>
<?php endif; ?><?php /**PATH /Users/pushuo/www/product/beikeshop/storage/framework/views/92e60f53934937169898b21b13fb2c43243954b4.blade.php ENDPATH**/ ?>

View File

@ -0,0 +1,5 @@
<?php $__env->startSection('title', __('Not Found')); ?>
<?php $__env->startSection('code', '404'); ?>
<?php $__env->startSection('message', __('Not Found')); ?>
<?php echo $__env->make('errors::minimal', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /Users/pushuo/www/product/beikeshop/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/404.blade.php ENDPATH**/ ?>