后台自定义
This commit is contained in:
parent
d86266922e
commit
46eb687519
|
|
@ -24,15 +24,13 @@ class AdminServiceProvider extends ServiceProvider
|
|||
{
|
||||
$uri = request()->getRequestUri();
|
||||
|
||||
if (!Str::startsWith($uri, '/admin')) {
|
||||
$adminName = admin_name();
|
||||
if (!Str::startsWith($uri, "/{$adminName}")) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
$this->loadRoutesFrom(__DIR__ . '/../Routes/admin.php');
|
||||
|
||||
$this->mergeConfigFrom(__DIR__ . '/../../Config/beike.php', 'beike');
|
||||
|
||||
$this->loadViewsFrom(resource_path('/beike/admin/views'), 'admin');
|
||||
|
||||
$this->loadViewComponentsAs('admin', [
|
||||
|
|
|
|||
|
|
@ -2,9 +2,10 @@
|
|||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::prefix('admin')
|
||||
$adminName = admin_name();
|
||||
Route::prefix($adminName)
|
||||
->middleware(['web'])
|
||||
->name('admin.')
|
||||
->name("{$adminName}.")
|
||||
->group(function () {
|
||||
Route::get('login', [\Beike\Admin\Http\Controllers\LoginController::class, 'show'])->name('login.show');
|
||||
Route::post('login', [\Beike\Admin\Http\Controllers\LoginController::class, 'store'])->name('login.store');
|
||||
|
|
|
|||
|
|
@ -19,6 +19,17 @@ function setting($key, $default = null)
|
|||
return config("bk.{$key}", $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取后台管理前缀名称, 默认为 admin
|
||||
*/
|
||||
function admin_name(): string
|
||||
{
|
||||
if ($envAdminName = env('ADMIN_NAME')) {
|
||||
return Str::snake($envAdminName);
|
||||
}
|
||||
return 'admin';
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取后台链接
|
||||
*
|
||||
|
|
@ -28,7 +39,8 @@ function setting($key, $default = null)
|
|||
*/
|
||||
function admin_route($route, $params = []): string
|
||||
{
|
||||
return route('admin.' . $route, $params);
|
||||
$adminName = admin_name();
|
||||
return route("{$adminName}.{$route}", $params);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
*
|
||||
!.gitignore
|
||||
|
|
@ -1,93 +0,0 @@
|
|||
<!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**/ ?>
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
<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"></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**/ ?>
|
||||
|
|
@ -1,285 +0,0 @@
|
|||
<!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**/ ?>
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
<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**/ ?>
|
||||
|
|
@ -1,84 +0,0 @@
|
|||
<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**/ ?>
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
<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
|
|
@ -1,24 +0,0 @@
|
|||
<?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**/ ?>
|
||||
|
|
@ -1,97 +0,0 @@
|
|||
<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"></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**/ ?>
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
<?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>
|
||||
|
|
@ -1,151 +0,0 @@
|
|||
<!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**/ ?>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<?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**/ ?>
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
<!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**/ ?>
|
||||
|
|
@ -1,113 +0,0 @@
|
|||
<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"></i></a></li>
|
||||
<li class="nav-item"><a href="" class="nav-link"><i class="iconfont"></i></a></li>
|
||||
<li class="nav-item dropdown">
|
||||
<a href="<?php echo e(shop_route('account.index')); ?>" class="nav-link"><i class="iconfont"></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"></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**/ ?>
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
<!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**/ ?>
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
<?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**/ ?>
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
<?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**/ ?>
|
||||
Loading…
Reference in New Issue