first commit

This commit is contained in:
2026-04-15 20:16:52 +08:00
commit 8f45044411
1172 changed files with 329978 additions and 0 deletions
@@ -0,0 +1,45 @@
<style>
.dashboard-title .links {
text-align: center;
margin-bottom: 2.5rem;
}
.dashboard-title .links > a {
padding: 0 25px;
font-size: 12px;
font-weight: 600;
letter-spacing: .1rem;
text-decoration: none;
text-transform: uppercase;
color: #fff;
}
.dashboard-title h1 {
font-weight: 200;
font-size: 2.5rem;
}
.dashboard-title .avatar {
background: #fff;
border: 2px solid #fff;
width: 70px;
height: 70px;
}
</style>
<div class="dashboard-title card bg-primary">
<div class="card-body">
<div class="text-center ">
<img class="avatar img-circle shadow mt-1" src="/vendor/dujiaoka-admin/images/logo.jpg">
<div class="text-center mb-1">
<h1 class="mb-3 mt-2 text-white">独角数卡 V{{ config('dujiaoka.dujiaoka_version', '2.0.0') }}</h1>
<div class="links">
<a href="https://github.com/assimon/dujiaoka" target="_blank">Github</a>
<a href="//shang.qq.com/wpa/qunwpa?idkey=37b6b06f7c941dae20dcd5784088905d6461064d7f33478692f0c4215546cee0" id="qq-group-link" target="_blank">
<img border="0" src="//pub.idqqimg.com/wpa/images/group.png" alt="" title="{{ __('dujiaoka.join_qq_group') }}">
</a>
<a href="http://t.me/dujiaoka" id="telegram-group-link" target="_blank">{{ __('dujiaoka.join_telegram_group') }}</a>
<a href="https://dujiaoka.com" id="demo-link" target="_blank">{{ __('dujiaoka.official_website') }}</a>
</div>
</div>
</div>
</div>
</div>
+811
View File
@@ -0,0 +1,811 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>独角数卡安装程序</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1">
<meta name="renderer" content="webkit">
<style>
body {
background: #fff;
margin: 0;
padding: 0;
line-height: 1.5;
}
body, input, button {
font-family: 'Open Sans', sans-serif;
font-size: 16px;
color: #7E96B3;
}
.container {
max-width: 515px;
margin: 0 auto;
padding: 20px;
text-align: center;
}
a {
color: #18bc9c;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
h1 {
margin-top:0;
margin-bottom: 10px;
}
h2 {
font-size: 28px;
font-weight: normal;
color: #3C5675;
margin-bottom: 0;
}
form {
margin-top: 40px;
}
.form-group {
margin-bottom: 20px;
}
.form-group .form-field:first-child input {
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.form-group .form-field:last-child input {
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
}
.form-field input {
background: #EDF2F7;
margin: 0 0 1px;
border: 2px solid transparent;
transition: background 0.2s, border-color 0.2s, color 0.2s;
width: 100%;
padding: 15px 15px 15px 180px;
box-sizing: border-box;
}
.form-field input:focus {
border-color: #18bc9c;
background: #fff;
color: #444;
outline: none;
}
.form-field label {
float: left;
width: 160px;
text-align: right;
margin-right: -160px;
position: relative;
margin-top: 18px;
font-size: 14px;
pointer-events: none;
opacity: 0.7;
}
button,.btn {
background: #3C5675;
color: #fff;
border: 0;
font-weight: bold;
border-radius: 4px;
cursor: pointer;
padding: 15px 30px;
-webkit-appearance: none;
}
button[disabled] {
opacity: 0.5;
}
#error,.error,#success,.success {
background: #D83E3E;
color: #fff;
padding: 15px 20px;
border-radius: 4px;
margin-bottom: 20px;
}
#success {
background:#3C5675;
}
#error a, .error a {
color:white;
text-decoration: underline;
}
</style>
</head>
<body>
<div class="container">
<h1>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="200px" height="57px" viewBox="0 0 200 57" enable-background="new 0 0 200 57" xml:space="preserve">
<image width="200" height="57" x="0" y="0" xlink:href="data:image/png;base64,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
ySvmfGPvW+CGDNBr8uZyFXIRL3wiqIwcxLUOHBjUGIiOcXRTlmHwX+qWQH5ad8pvOGEa7iqg6DEN
GaDH5HB4MPDRwz89b2xyZ5O0OQI7moSEaaBa6THhKp74iX+K1udCYXcBRW9pyAA9pgri9LSAHELM
/fz0QxW2+nb4BBq5B3oikxEjgSSYfP0/6Bu25nhaCFPU+/s/ZICek88dJfM5ZJAox/cql5xzMNn6
Bit7ULSdRZGydcKbL1lg2e+hT7e/tNCPw2caMkCPyRXt32gX3B2FsZj/62dfdcqTprjslYwBWTGm
Hvmuy2cE4FPgRWT8B2WfGyH6835DBlgq8mZu/PX//vrP9885bO4t2WsMGWDpKLTLHs+xxNAfMsCK
I9vZneL3O5/5tGgaMsBSUei6vu9yoX/Y2WCB7tCQAZaQ2M/3eT5c0C+Tr5aGDLBEVOFp5v6OMqgo
WLIKqCEDLBFVuwp2HvzSFcEOGWCpKPRZ+gdRGPSu3qsFGjLACqchA6xwGjLACqchA6xwGjLACqch
A6xwGjLACqchA6xwGjLACqchA6xwGjLACqchA6xwGjLACqchA6xwGjLACqchA6xwGjLACqchA6xw
GjLACqchA6xwGjLACqchA6xwGjLACqchA6xwGjLACqchA6xwGjLACqchA6xwGjLACqchA6xwGjLA
CqchA6xw+v8aAidmBAVJEgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0wNi0wOFQxMDo0NjozMCsw
ODowMJ6IW9EAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMDYtMDhUMTA6NDY6MzArMDg6MDDv1eNt
AAAAIHRFWHRzb2Z0d2FyZQBodHRwczovL2ltYWdlbWFnaWNrLm9yZ7zPHZ0AAAAYdEVYdFRodW1i
OjpEb2N1bWVudDo6UGFnZXMAMaf/uy8AAAAYdEVYdFRodW1iOjpJbWFnZTo6SGVpZ2h0ADUxMo+N
U4EAAAAXdEVYdFRodW1iOjpJbWFnZTo6V2lkdGgANTEyHHwD3AAAABp0RVh0VGh1bWI6Ok1pbWV0
eXBlAGltYWdlL2pwZWeLpZ60AAAAF3RFWHRUaHVtYjo6TVRpbWUAMTYyMzEyMDM5MBPa51YAAAAT
dEVYdFRodW1iOjpTaXplADE4NjI0QkLbCnNxAAAARXRFWHRUaHVtYjo6VVJJAGZpbGU6Ly8vYXBw
L3RtcC9pbWFnZWxjL2ltZ3ZpZXcyXzlfMTYyMTkyNTA5MTk5NzM2MTZfN19bMF2gE3xwAAAAAElF
TkSuQmCC" />
</svg>
</h1>
<h2>独角数卡 {{ config('dujiaoka.dujiaoka_version') }}</h2>
<div>
<p>每个梦想的路上,一起前行....
<a href="https://t.me/dujiaoka" id="qq-group-link" target="_blank">
👉🏻加入Telegram交流群
</a>
</p>
<form method="post">
<div id="error" style="display:none"></div>
<div id="success" style="display:none"></div>
{{ csrf_field() }}
<div class="form-group">
<div class="form-field">
<label>MySQL 数据库地址</label>
<input name="db_host" value="127.0.0.1" required="">
</div>
<div class="form-field">
<label>MySQL 端口</label>
<input name="db_port" value="3306" required="">
</div>
<div class="form-field">
<label>MySQL 数据库名</label>
<input name="db_database" value="dujiaoka" required="">
</div>
<div class="form-field">
<label>MySQL 用户名</label>
<input name="db_username" value="root" required="">
</div>
<div class="form-field">
<label>MySQL 密码</label>
<input name="db_password" required="">
</div>
</div>
<div class="form-group">
<div class="form-field">
<label>Redis 连接地址</label>
<input name="redis_host" value="127.0.0.1" required="">
</div>
<div class="form-field">
<label>Redis 密码</label>
<input name="redis_password" value="" placeholder="默认不填写">
</div>
<div class="form-field">
<label>Redis 端口</label>
<input name="redis_port" value="6379" required="">
</div>
</div>
<div class="form-group">
<div class="form-field">
<label>网站名称</label>
<input type="title" value="独角数卡" name="title" required="">
</div>
<div class="form-field">
<label>网站url</label>
<input name="app_url" value="" required="" placeholder="例如:http://dujiaoka.com" />
</div>
<div class="form-field">
<label>后台登录路径</label>
<input name="admin_path" value="/admin" required="" placeholder="例如:/admin">
</div>
</div>
<div class="form-buttons">
<button type="submit">点击安装</button>
</div>
</form>
<script src="https://cdn.bootcss.com/jquery/2.1.4/jquery.min.js"></script>
<script>
$(function () {
$('form:input:first').select();
$('form').on('submit', function (e) {
e.preventDefault();
var $button = $(this).find('button')
.text('安装中...')
.prop('disabled', true);
var adminurl = $("input[name='admin_path']").val()
$.post('/do-install', $(this).serialize())
.done(function (ret) {
if (ret === 'success') {
$('#error').hide();
$("#success").text("安装成功!您的后台登录账号密码均为:admin,请及时登录修改!").show();
$('<a class="btn" href="/">访问首页</a> <a class="btn" href=\"'+ adminurl +'\" style="background:#18bc9c">访问后台</a>').insertAfter($button);
$button.remove();
} else {
$('#error').show().text(ret);
$button.prop('disabled', false).text('点击安装');
$("html,body").animate({
scrollTop: 0
}, 500);
}
})
.fail(function (data) {
$('#error').show().text('发生错误:\n\n' + data.responseText);
$button.prop('disabled', false).text('点击安装');
$("html,body").animate({
scrollTop: 0
}, 500);
});
return false;
});
});
</script>
</div>
</div>
</body>
</html>
@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}">
<head>
<meta charset="UTF-8">
<title>{{ __('dujiaoka.equipment.please_use_a_browser_to_open') }}</title>
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
<meta content="yes" name="apple-mobile-web-app-capable">
<meta content="black" name="apple-mobile-web-app-status-bar-style">
<meta name="format-detection" content="telephone=no">
<meta content="false" name="twcClient" id="twcClient">
<meta name="aplus-touch" content="1">
<style>
body,html{width:100%;height:100%}
*{margin:0;padding:0}
body{background-color:#fff}
#browser img{
width:50px;
}
#browser{
margin: 0px 10px;
text-align:center;
}
#contens{
font-weight: bold;
color: #2466f4;
margin:-285px 0px 10px;
text-align:center;
font-size:20px;
margin-bottom: 125px;
}
.top-bar-guidance{font-size:15px;color:#fff;height:70%;line-height:1.8;padding-left:20px;padding-top:20px;background:url(/assets/common/images/banner.png) center top/contain no-repeat}
.top-bar-guidance .icon-safari{width:25px;height:25px;vertical-align:middle;margin:0 .2em}
.app-download-tip{margin:0 auto;width:290px;text-align:center;font-size:15px;color:#2466f4;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAcAQMAAACak0ePAAAABlBMVEUAAAAdYfh+GakkAAAAAXRSTlMAQObYZgAAAA5JREFUCNdjwA8acEkAAAy4AIE4hQq/AAAAAElFTkSuQmCC) left center/auto 15px repeat-x}
.app-download-tip .guidance-desc{background-color:#fff;padding:0 5px}
.app-download-btn{display:block;width:214px;height:40px;line-height:40px;margin:18px auto 0 auto;text-align:center;font-size:18px;color:#2466f4;border-radius:20px;border:.5px #2466f4 solid;text-decoration:none}
</style>
</head>
<body>
<div class="top-bar-guidance">
<p>{{ __('dujiaoka.equipment.click_on_the_upper_right_corner') }}<img src="/assets/common/images/3dian.png" class="icon-safari">{{ __('dujiaoka.equipment.open_the_browser') }}</p>
<p>{{ __('dujiaoka.equipment.apple_device') }}<img src="/assets/common/images/iphone.png" class="icon-safari">{{ __('dujiaoka.equipment.android_device') }}<img src="/assets/common/images/android.png" class="icon-safari">↗↗↗</p>
</div>
<div id="contens">
<p><br/><br/></p>
<p>1.{{ __('dujiaoka.equipment.does_not_support_wechat_or_qq_access') }}</p>
<p><br/></p>
<p>2.{{ __('dujiaoka.equipment.please_follow_the_prompts_to_open') }}</p>
</div>
<p><br/><br/></p>
<div class="app-download-tip">
<span class="guidance-desc">{{ $nowUri }}</span>
</div>
<p><br/></p>
<div class="app-download-tip">
<span class="guidance-desc">{{ __('dujiaoka.equipment.open_browser_tips') }}</span>
</div>
</body>
</html>
+1
View File
@@ -0,0 +1 @@
{!! $body !!}
@@ -0,0 +1,24 @@
@extends('hyper.layouts.default')
@section('content')
<div class="row">
<div class="col-12">
<div class="page-title-box">
<h4 class="page-title">{{ __('hyper.error_error') }}</h4>
</div>
</div>
</div>
<div class="row justify-content-center">
<div class="col-lg-6">
<div class="text-center">
<div class="text-error mt-4">error</div>
<h1 class="text-uppercase text-danger mt-3">{{ $content }}</h1>
@if(!$url)
<a class="btn btn-info mt-3" href="javascript:history.back(-1);"><i class="mdi mdi-reply"></i> {{ __('hyper.error_back_btn') }}</a>
@else
<a class="btn btn-info mt-3" href="{{ $url }}"><i class="mdi mdi-reply"></i> {{ __('hyper.error_back_btn') }}</a>
@endif
</div> <!-- end /.text-center-->
</div> <!-- end col-->
</div>
@stop
@@ -0,0 +1,23 @@
<!-- Footer Start -->
<footer class="hyper-footer">
<div class="container">
<div class="row">
<div class="col-md-6">
<div class="footer-links">
Powered by <a href="https://github.com/assimon/dujiaoka">@独角数卡.</a>
</div>
</div>
<div class="col-md-6">
<div class="text-md-right footer-links d-none d-md-block">
{!! dujiaoka_config_get('footer') !!}
</div>
</div>
</div>
</div>
<div class="back-to-top">
<button class=" btn btn-primary" id="back-to-top">
<i class="dripicons-chevron-up"></i>
</button>
</div>
</footer>
<!-- end Footer -->
@@ -0,0 +1,15 @@
<head>
<meta charset="utf-8" />
<title>{{ isset($page_title) ? $page_title : '' }} | {{ dujiaoka_config_get('title') }}</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="Keywords" content="{{ dujiaoka_config_get('keywords') }}">
<meta name="Description" content="{{ dujiaoka_config_get('description') }}">
@if(\request()->getScheme() == "https")
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
@endif
<link rel="shortcut icon" href="/favicon.ico">
<link href="/assets/hyper/css/vendor/jquery-jvectormap-1.2.2.css" rel="stylesheet" type="text/css">
<link href="/assets/hyper/css/icons.min.css" rel="stylesheet" type="text/css">
<link href="/assets/hyper/css/app-creative.min.css" rel="stylesheet" type="text/css" id="light-style">
<link href="/assets/hyper/css/hyper.css?v=045256" rel="stylesheet" type="text/css">
</head>
@@ -0,0 +1,13 @@
<div class="header-navbar">
<div class="container header-flex">
<!-- LOGO -->
<a href="/" class="topnav-logo" style="float: none;">
<img src="{{ picture_ulr(dujiaoka_config_get('img_logo')) }}" height="36">
<div class="logo-title">{{ dujiaoka_config_get('text_logo') }}</div>
</a>
<a class="btn btn-outline-primary" href="{{ url('order-search') }}">
<i class="noti-icon uil-file-search-alt search-icon"></i>
查询订单
</a>
</div>
</div>
@@ -0,0 +1,4 @@
<script src="/assets/hyper/js/jquery-3.4.1.min.js"></script>
<script src="/assets/hyper/js/vendor.min.js"></script>
<script src="/assets/hyper/js/app.min.js"></script>
<script src="/assets/hyper/js/hyper.js?v=215115"></script>
@@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_','-',strtolower(app()->getLocale())) }}">
@include('hyper.layouts._header')
<body data-layout="topnav">
<div class="wrapper">
<div class="content-page">
<div class="content">
@include('hyper.layouts._nav')
<div class="container">
@yield('content')
</div>
</div><!-- content -->
@include('hyper.layouts._footer')
</div><!-- content-page -->
</div><!-- wrapper -->
@include('hyper.layouts._script')
@section('js')
@show
</body>
</html>
@@ -0,0 +1,41 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_','-',strtolower(app()->getLocale())) }}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="applicable-device" content="pc,mobile">
<title>{{ isset($page_title) ? $page_title : '' }} | {{ dujiaoka_config_get('title') }}</title>
<meta name="keywords" content="{{ $gd_keywords }}">
<meta name="description" content="{{ $gd_description }}">
<meta property="og:type" content="article">
<meta property="og:image" content="{{ $picture }}">
<meta property="og:title" content="{{ isset($page_title) ? $page_title : '' }}">
<meta property="og:description" content="{{ $gd_description }}">
<meta property="og:release_date" content="{{ $updated_at }}">
@if(\request()->getScheme() == "https")
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
@endif
<link rel="shortcut icon" href="/favicon.ico">
<link href="/assets/hyper/css/vendor/jquery-jvectormap-1.2.2.css" rel="stylesheet" type="text/css">
<link href="/assets/hyper/css/icons.min.css" rel="stylesheet" type="text/css">
<link href="/assets/hyper/css/app-creative.min.css" rel="stylesheet" type="text/css" id="light-style">
<link href="/assets/hyper/css/hyper.css?v=045256" rel="stylesheet" type="text/css">
</head>
<body data-layout="topnav">
<div class="wrapper">
<div class="content-page">
<div class="content">
@include('hyper.layouts._nav')
<div class="container">
@yield('content')
</div>
</div><!-- content -->
@include('hyper.layouts._footer')
</div><!-- content-page -->
</div><!-- wrapper -->
@include('hyper.layouts._script')
@section('js')
@show
</body>
</html>
+19
View File
@@ -0,0 +1,19 @@
## Hyper Theme for dujiaoka
### HTML framework
Bootstrap
Link: https://coderthemes.com/hyper/
### Author
彼萌
### Telegram
https://t.me/bimoe
### Update
2022-4-1
@@ -0,0 +1,52 @@
@extends('hyper.layouts.default')
@section('content')
<div class="row justify-content-center">
<div class="col-lg-6">
<div class="page-title-box">
{{-- 确认订单 --}}
<h4 class="page-title">{{ __('hyper.bill_title') }}</h4>
</div>
</div>
</div>
<div class="row justify-content-center">
<div class="col-lg-6">
<div class="card card-body">
<div class="mx-auto">
{{-- 订单编号 --}}
<div class="mb-1"><label>{{ __('hyper.bill_order_number') }}</label><span>{{ $order_sn }}</span></div>
{{-- 商品名称 --}}
<div class="mb-1"><label>{{ __('hyper.bill_product_name') }}</label><span>{{ $title }}</span></div>
{{-- 商品单价 --}}
<div class="mb-1"><label>{{ __('hyper.bill_commodity_price') }}</label><span>{{ $goods_price }}</span></div>
{{-- 购买数量 --}}
<div class="mb-1"><label>{{ __('hyper.bill_purchase_quantity') }}</label><span>x {{ $buy_amount }}</span></div>
@if(!empty($coupon))
{{-- 优惠码 --}}
<div class="mb-1"><label>{{ __('hyper.bill_promo_code') }}</label><span>{{ $coupon['coupon'] }}</span></div>
{{-- 优惠金额 --}}
<div class="mb-1"><label>{{ __('hyper.bill_discounted_price') }}</label><span>{{ $coupon_discount_price }}</span></div>
@endif
{{-- 商品总价 --}}
<div class="mb-1"><label>{{ __('hyper.bill_actual_payment') }}</label><span>{{ $actual_price }}</span></div>
{{-- 电子邮箱 --}}
<div class="mb-1"><label>{{ __('hyper.bill_email') }}</label><span>{{ $email }}</span></div>
@if(!empty($info))
{{-- 订单资料 --}}
<div class="mb-1"><label>{{ __('hyper.bill_order_information') }}</label><span>{{ $info }}</span></div>
@endif
{{-- 支付方式 --}}
<div class="mb-1"><label>{{ __('hyper.bill_payment_method') }}</label><span>{{ $pay['pay_name'] }}</span></div>
</div>
<div class="text-center">
{{-- 立即支付 --}}
<a href="{{ url('pay-gateway', ['handle' => urlencode($pay['pay_handleroute']),'payway' => $pay['pay_check'], 'orderSN' => $order_sn]) }}"
class="btn btn-danger">
{{ __('hyper.bill_pay_immediately') }}
</a>
</div>
</div>
</div>
</div>
@stop
@section('js')
@stop
@@ -0,0 +1,302 @@
@extends('hyper.layouts.seo')
@section('content')
<div class="row">
<div class="col-12">
<div class="page-title-box">
{{-- 产品详细信息 --}}
<h4 class="page-title">{{ __('hyper.buy_title') }}</h4>
</div>
</div>
</div>
<div class="buy-grid">
<div class="buy-shop hyper-sm-last">
<div class="card card-body sticky">
<form id="buy-form" action="{{ url('create-order') }}" method="post">
{{ csrf_field() }}
<div class="form-group">
<h3>
{{-- 商品名称 --}}
{{ $gd_name }}
</h3>
</div>
<div class="form-group">
@if($type == \App\Models\Goods::AUTOMATIC_DELIVERY)
{{-- 自动发货 --}}
<span class="badge badge-outline-primary">{{ __('hyper.buy_automatic_delivery') }}</span>
@else
{{-- 人工发货 --}}
<span class="badge badge-outline-danger">{{ __('hyper.buy_charge') }}</span>
@endif
{{-- 库存 --}}
<span class="badge badge-outline-primary">{{ __('hyper.buy_in_stock') }}({{ $in_stock }})</span>
@if($buy_limit_num > 0)
<span class="badge badge-outline-dark"> {{__('hyper.buy_purchase_restrictions')}}({{ $buy_limit_num }})</span>
@endif
</div>
@if(!empty($wholesale_price_cnf) && is_array($wholesale_price_cnf))
<div class="form-group">
<div class="alert alert-dark bg-white text-dark mb-0" role="alert">
{{-- 批发优惠 --}}
@foreach($wholesale_price_cnf as $ws)
{{-- 购买 x 件起, x / --}}
<span>
{{ __('hyper.buy_purchase') }} {{ $ws['number'] }} {{__('hyper.buy_the_above')}}{{ $ws['price'] }} {{__('hyper.buy_each')}}
</span>
@endforeach
</div>
</div>
@endif
<div class="form-group">
<!--<div class="buy-title">{{ __('hyper.buy_price') }}</div>-->
<h3>
{{-- 价格 --}}
<span class="buy-price">{{ __('hyper.global_currency') }} {{ $actual_price }}</span>
{{-- 原价 --}}
<small><del>¥ {{ $retail_price }}</del></small>
</h3>
</div>
<div class="form-group">
{{-- 电子邮箱 --}}
<div class="buy-title">{{ __('hyper.buy_email') }}</div>
<input type="hidden" name="gid" value="{{ $id }}">
{{-- 接收卡密或通知 --}}
<input type="email" name="email" class="form-control" placeholder="{{ __('hyper.buy_input_account') }}">
</div>
<div class="form-group">
{{-- 购买数量 --}}
<div class="buy-title">{{ __('hyper.buy_purchase_quantity') }}</div>
<div class="input-group">
<input data-toggle="touchspin" type="text" name="by_amount" value="1" data-bts-max="999">
</div>
</div>
@if(dujiaoka_config_get('is_open_search_pwd') == \App\Models\Goods::STATUS_OPEN)
<div class="form-group">
{{-- 查询密码 --}}
<div class="buy-title">{{ __('hyper.buy_search_password') }}</div>
{{-- 查询订单密码 --}}
<input type="text" name="search_pwd" value="" class="form-control" placeholder="{{ __('hyper.buy_input_search_password') }}">
</div>
@endif
@if(isset($open_coupon))
<div class="form-group">
{{-- 优惠码 --}}
<div class="buy-title">{{ __('hyper.buy_promo_code') }}</div>
{{-- 您有优惠码吗? --}}
<input type="text" name="coupon_code" class="form-control" placeholder="{{ __('hyper.buy_input_promo_code') }}">
</div>
@endif
@if($type == \App\Models\Goods::MANUAL_PROCESSING && is_array($other_ipu))
@foreach($other_ipu as $ipu)
<div class="form-group">
<div class="buy-title">{{ $ipu['desc'] }}</div>
<input type="text" name="{{ $ipu['field'] }}" @if($ipu['rule'] !== false) required @endif class="form-control" placeholder="{{ $ipu['placeholder'] }}">
</div>
@endforeach
@endif
@if(dujiaoka_config_get('is_open_geetest') == \App\Models\Goods::STATUS_OPEN )
<div class="form-group">
{{-- 极验证 --}}
<div class="buy-title">{{ __('hyper.buy_behavior_verification') }}</div>
<div id="geetest-captcha"></div>
<p id="wait-geetest-captcha" class="show">loading...</p>
</div>
@endif
@if(dujiaoka_config_get('is_open_img_code') == \App\Models\Goods::STATUS_OPEN)
{{-- 图形验证码 --}}
<div class="form-group">
<div class="buy-title">{{ __('hyper.buy_verify_code') }}</div>
<div class="input-group">
<input type="text" name="img_verify_code" value="" class="form-control" placeholder="{{ __('hyper.buy_verify_code') }}">
<div class="input-group-append">
<div class="buy-captcha">
<img class="captcha-img" src="{{ captcha_src('buy') . time() }}" onclick="refresh()" style="cursor: pointer;">
</div>
</div>
</div>
<script>
function refresh(){
$('img[class="captcha-img"]').attr('src','{{ captcha_src('buy') }}'+Math.random());
}
</script>
</div>
@endif
<div class="form-group">
{{-- 支付方式 --}}
<div class="buy-title">{{ __('hyper.buy_payment_method') }}</div>
<div class="input-group">
<input type="hidden" name="payway" value="{{ $payways[0]['id'] ?? 0 }}">
<div class="pay-grid">
@foreach($payways as $key => $way)
<div class="btn pay-type @if($key == 0) active @endif"
data-type="{{ $way['pay_check'] }}" data-id="{{ $way['id'] }}" data-name="{{ $way['pay_name'] }}">
</div>
@endforeach
</div>
</div>
</div>
<div class="mt-4 text-center">
{{-- 提交订单 --}}
<button type="submit" class="btn btn-danger" id="submit">
<i class="mdi mdi-truck-fast mr-1"></i>
{{ __('hyper.buy_order_now') }}
</button>
</div>
</form>
</div> <!-- end card-->
</div>
<div class="card card-body buy-product">
{{-- 商品详情 --}}
<h5 class="card-title">{{ __('hyper.buy_product_desciption') }}</h5>
{!! $description !!}
</div>
</div>
<div class="modal fade" id="buy_prompt" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
{{-- 购买提示 --}}
<h5 class="modal-title" id="myCenterModalLabel">{{ __('hyper.buy_purchase_tips') }}</h5>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
{!! $buy_prompt !!}
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<div class="modal fade" id="img-modal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" style="max-width: none;">
<img id="img-zoom" style="border-radius: 5px;">
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
@stop
@section('js')
<script>
$('#submit').click(function(){
if($("input[name='email']").val() == ''){
{{-- 邮箱不能为空 --}}
$.NotificationApp.send("{{ __('hyper.buy_warning') }}","{{ __('hyper.buy_empty_mailbox') }}","top-center","rgba(0,0,0,0.2)","info");
return false;
}
if($("input[name='by_amount']").val() == 0 ){
{{-- 购买数量不能为0 --}}
$.NotificationApp.send("{{ __('hyper.buy_warning') }}","{{ __('hyper.buy_zero_quantity') }}","top-center","rgba(0,0,0,0.2)","info");
return false;
}
if($("input[name='by_amount']").val() > {{ $in_stock }}){
{{-- 数量不允许大于库存 --}}
$.NotificationApp.send("{{ __('hyper.buy_warning') }}","{{ __('hyper.buy_exceeds_stock') }}","top-center","rgba(0,0,0,0.2)","info");
return false;
}
@if($buy_limit_num > 0)
if($("input[name='by_amount']").val() > {{ $buy_limit_num }}){
{{-- 已超过限购数量 --}}
$.NotificationApp.send("{{ __('hyper.buy_warning') }}","{{ __('hyper.buy_exceeds_limit') }}","top-center","rgba(0,0,0,0.2)","info");
return false;
}
@endif
@if(dujiaoka_config_get('is_open_search_pwd') == \App\Models\Goods::STATUS_OPEN)
if($("input[name='search_pwd']").val() == 0){
{{-- 查询密码不能为空 --}}
$.NotificationApp.send("{{ __('hyper.buy_warning') }}","{{ __('hyper.buy_empty_query_password') }}","top-center","rgba(0,0,0,0.2)","info");
return false;
}
@endif
@if(dujiaoka_config_get('is_open_img_code') == \App\Models\Goods::STATUS_OPEN)
if($("input[name='img_verify_code']").val() == ''){
{{-- 验证码不能为空 --}}
$.NotificationApp.send("{{ __('hyper.buy_warning') }}","{{ __('hyper.buy_empty_captcha') }}","top-center","rgba(0,0,0,0.2)","info");
return false;
}
@endif
});
</script>
<script>
@if(!empty($buy_prompt))
$('#buy_prompt').modal();
@endif
$(function() {
//点击图片放大
$("#img-zoom").click(function(){
$('#img-modal').modal("hide");
});
$("#img-dialog").click(function(){
$('#img-modal').modal("hide");
});
$(".buy-product img").each(function(i){
var src = $(this).attr("src");
$(this).click(function () {
$("#img-zoom").attr("src", src);
var oImg = $(this);
var img = new Image();
img.src = $(oImg).attr("src");
var realWidth = img.width;
var realHeight = img.height;
var ww = $(window).width();
var hh = $(window).height();
$("#img-content").css({"top":0,"left":0,"height":"auto"});
$("#img-zoom").css({"height":"auto"});
$("#img-zoom").css({"margin-left":"auto"});
$("#img-zoom").css({"margin-right":"auto"});
if((realWidth+20)>ww){
$("#img-content").css({"width":"100%"});
$("#img-zoom").css({"width":"100%"});
}else{
$("#img-content").css({"width":realWidth+20, "height":realHeight+20});
$("#img-zoom").css({"width":realWidth, "height":realHeight});
}
if((hh-realHeight-40)>0){
$("#img-content").css({"top":(hh-realHeight-40)/2});
}
if((ww-realWidth-20)>0){
$("#img-content").css({"left":(ww-realWidth-20)/2});
}
$('#img-modal').modal();
});
});
});
</script>
@if(dujiaoka_config_get('is_open_geetest') == \App\Models\Goods::STATUS_OPEN )
<script src="https://static.geetest.com/static/tools/gt.js"></script>
<script>
var geetest = function(url) {
var handlerEmbed = function(captchaObj) {
$("#geetest-captcha").closest('form').submit(function(e) {
var validate = captchaObj.getValidate();
if (!validate) {
$.NotificationApp.send("{{ __('hyper.buy_warning') }}","{{ __('hyper.buy_correct_verification') }}","top-center","rgba(0,0,0,0.2)","info");
e.preventDefault();
}
});
captchaObj.appendTo("#geetest-captcha");
captchaObj.onReady(function() {
$("#wait-geetest-captcha")[0].className = "d-none";
});
captchaObj.onSuccess(function () {$('#geetest-captcha').attr("placeholder",'{{ __('dujiaoka.success_behavior_verification') }}')})
captchaObj.appendTo("#geetest-captcha");
};
$.ajax({
url: url + "?t=" + (new Date()).getTime(),
type: "get",
dataType: "json",
success: function(data) {
initGeetest({
width: '100%',
gt: data.gt,
challenge: data.challenge,
product: "popup",
offline: !data.success,
new_captcha: data.new_captcha,
lang: '{{ dujiaoka_config_get('language') ?? 'zh_CN' }}',
http: '{{ (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://" }}' + '://'
}, handlerEmbed);
}
});
};
(function() {
geetest('{{ '/check-geetest' }}');
})();
</script>
@endif
@stop
@@ -0,0 +1,132 @@
@extends('hyper.layouts.default')
@section('content')
<div class="row">
<div class="col-12">
<div class="page-title-box">
<div class="page-title-right">
<div class="app-search">
<div class="position-relative">
<input type="text" class="form-control" id="search" placeholder="{{ __('hyper.home_search_box') }}">
<span class="uil-search"></span>
</div>
</div>
</div>
<h4 class="page-title">
<button type="button" class="btn btn-outline-primary ml-1" id="notice-open">
<i class="uil-comment-alt-notes me-1"></i>
{{-- 公告 --}}
{{ __('hyper.notice_announcement') }}
</button>
</h4>
</div>
</div>
</div>
<div class="nav nav-list">
<a href="#group-all" class="tab-link active" data-bs-toggle="tab" aria-expanded="false" role="tab" data-toggle="tab">
<span class="tab-title">
{{-- 全部 --}}
{{ __('hyper.home_whole') }}
</span>
<div class="img-checkmark">
<img src="/assets/hyper/images/check.png">
</div>
</a>
@foreach($data as $index => $group)
<a href="#group-{{ $group['id'] }}" class="tab-link" data-bs-toggle="tab" aria-expanded="false" role="tab" data-toggle="tab">
<span class="tab-title">
{{ $group['gp_name'] }}
</span>
<div class="img-checkmark">
<img src="/assets/hyper/images/check.png">
</div>
</a>
@endforeach
</div>
<div class="tab-content">
<div class="tab-pane active" id="group-all">
<div class="hyper-wrapper">
@foreach($data as $group)
@foreach($group['goods'] as $goods)
@if($goods['in_stock'] > 0)
<a href="{{ url("/buy/{$goods['id']}") }}" class="home-card category">
@else
<a href="javascript:void(0);" onclick="sell_out_tip()" class="home-card category ribbon-box">
<div class="ribbon-two ribbon-two-danger">
{{-- 缺货 --}}
<span>{{ __('hyper.home_out_of_stock') }}</span>
</div>
@endif
<img class="home-img" src="/assets/hyper/images/loading.gif" data-src="{{ picture_ulr($goods['picture']) }}">
<div class="flex">
<p class="name">
{{ $goods['gd_name'] }}
</p>
<div class="price">
{{ __('hyper.global_currency') }}<b>{{ $goods['actual_price'] }}</b>
</div>
</div>
</a>
@endforeach
@endforeach
</div>
</div>
@foreach($data as $index => $group)
<div class="tab-pane" id="group-{{ $group['id'] }}">
<div class="hyper-wrapper">
@foreach($group['goods'] as $goods)
@if($goods['in_stock'] > 0)
<a href="{{ url("/buy/{$goods['id']}") }}" class="home-card category">
@else
<a href="javascript:void(0);" onclick="sell_out_tip()" class="home-card category ribbon-box">
<div class="ribbon-two ribbon-two-danger">
{{-- 缺货 --}}
<span>{{ __('hyper.home_out_of_stock') }}</span>
</div>
@endif
<img class="home-img" src="/assets/hyper/images/loading.gif" data-src="{{ picture_ulr($goods['picture']) }}">
<div class="flex">
<p class="name">
{{ $goods['gd_name'] }}
</p>
<div class="price">
{{ __('hyper.global_currency') }}<b>{{ $goods['actual_price'] }}</b>
</div>
</div>
</a>
@endforeach
</div>
</div>
@endforeach
</div>
<div class="modal fade" id="notice-modal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="myCenterModalLabel">{{ __('hyper.notice_announcement') }}</h5>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
{!! dujiaoka_config_get('notice') !!}
</div>
</div>
</div>
</div>
@stop
@section('js')
<script>
$('#notice-open').click(function() {
$('#notice-modal').modal();
});
$("#search").on("input",function(e){
var txt = $("#search").val();
if($.trim(txt)!="") {
$(".category").hide().filter(":contains('"+txt+"')").show();
} else {
$(".category").show();
}
});
function sell_out_tip() {
$.NotificationApp.send("{{ __('hyper.home_tip') }}","{{ __('hyper.home_sell_out_tip') }}","top-center","rgba(0,0,0,0.2)","info");
}
</script>
@stop
@@ -0,0 +1,130 @@
@extends('hyper.layouts.default')
@section('content')
<div class="row">
<div class="col-12">
<div class="page-title-box">
{{-- 订单详情 --}}
<h4 class="page-title">{{ __('hyper.orderinfo_title') }}</h4>
</div>
</div>
</div>
<div class="orderinfo-grid">
@foreach($orders as $order)
<div class="row">
<div class="col-md-12">
<h3>
<span class="badge badge-outline-primary">
订单号:{{ $order['order_sn'] }}
</span>
</h3>
</div>
</div>
<div class="card card-body">
<div class="orderinfo-card-grid">
<div class="orderinfo-info">
{{-- 订单名称 --}}
<div class="mb-1"><label>{{ __('hyper.orderinfo_order_title') }}</label><span>{{ $order['title'] }}</span></div>
{{-- 下单数量 --}}
<div class="mb-1"><label>{{ __('hyper.orderinfo_number_of_orders') }}</label><span>{{ $order['buy_amount'] }}</span></div>
{{-- 下单时间 --}}
<div class="mb-1"><label>{{ __('hyper.orderinfo_order_time') }}</label><span>{{ $order['created_at'] }}</span></div>
{{-- 付款邮箱 --}}
<div class="mb-1"><label>{{ __('hyper.orderinfo_email') }}</label><span>{{ $order['email'] }}</span></div>
<div class="mb-1">
{{-- 订单类型 --}}
<label>{{ __('hyper.orderinfo_order_class') }}</label>
<span>
@if($order['type'] == \App\Models\Order::AUTOMATIC_DELIVERY)
{{-- 自动发货 --}}
{{ __('hyper.orderinfo_automatic_delivery') }}
@else
{{-- 人工发货 --}}
{{ __('hyper.orderinfo_charge') }}
@endif
</span>
</div>
<div class="mb-1">
{{-- 订单总价 --}}
<label>{{ __('hyper.orderinfo_total_order_price') }}</label>
<span>{{ $order['actual_price'] }}</span>
</div>
<div class="mb-1">
{{-- 订单状态 --}}
<label>{{ __('hyper.orderinfo_order_status') }}</label>
<span>
@switch($order['status'])
@case(\App\Models\Order::STATUS_EXPIRED)
{{-- 已过期 --}}
{{ __('hyper.orderinfo_status_expired') }}
@break
@case(\App\Models\Order::STATUS_WAIT_PAY)
{{-- 待支付 --}}
{{ __('hyper.orderinfo_status_wait_pay') }}
@break
@case(\App\Models\Order::STATUS_PENDING)
{{-- 待处理 --}}
{{ __('hyper.orderinfo_status_pending') }}
@break
@case(\App\Models\Order::STATUS_PROCESSING)
{{-- 已处理 --}}
{{ __('hyper.orderinfo_status_processed') }}
@break
@case(\App\Models\Order::STATUS_COMPLETED)
{{-- 已完成 --}}
{{ __('hyper.orderinfo_status_completed') }}
@break
@case(\App\Models\Order::STATUS_FAILURE)
{{-- 已失败 --}}
{{ __('hyper.orderinfo_status_failed') }}
@break
@case(\App\Models\Order::STATUS_FAILURE)
{{-- 状态异常 --}}
{{ __('hyper.orderinfo_status_abnormal') }}
@break
@endswitch
</span>
</div>
<div class="mb-1">
{{-- 支付方式 --}}
<label>{{ __('hyper.orderinfo_payment_method') }}</label>
<span>{{ $order['pay']['pay_name'] ?? '' }}</span>
</div>
</div>
<div class="orderinfo-kami">
<h5 class="card-title">
{{ __('hyper.orderinfo_carmi') }}
</h5>
<textarea class="form-control textarea-kami" rows="5">{{$order['info']}}</textarea>
<button class="btn btn-outline-primary kami-btn" data-clipboard-text="{{$order['info']}}">
{{ __('hyper.orderinfo_copy_carmi') }}
</button>
</div>
</div>
</div>
@endforeach
</div>
@if(!count($orders))
<div class="row justify-content-center">
<div class="col-lg-4">
<div class="text-center">
<h1 class="text-error mt-4">error</h1>
<h4 class="text-uppercase text-danger mt-3">{{ __('hyper.orderinfo_order_information') }}</h4>
<a class="btn btn-info mt-3" href="javascript:history.back(-1);"><i class="mdi mdi-reply"></i> {{ __('hyper.error_back_btn') }}</a>
</div> <!-- end /.text-center-->
</div> <!-- end col-->
</div>
@endif
@stop
@section('js')
<script src="/assets/hyper/js/clipboard.min.js"></script>
<script>
var clipboard = new ClipboardJS('.kami-btn');
clipboard.on('success', function(e){
$.NotificationApp.send("{{ __('hyper.orderinfo_tips') }}","{{ __('hyper.orderinfo_copy_success') }}","top-center","rgba(0,0,0,0.2)","info");
});
clipboard.on('error', function(e){
$.NotificationApp.send("{{ __('hyper.orderinfo_tips') }}","{{ __('hyper.orderinfo_copy_error') }}","top-center","rgba(0,0,0,0.2)","error");
});
</script>
@stop
@@ -0,0 +1,49 @@
@extends('hyper.layouts.default')
@section('content')
<div class="row justify-content-center">
<div class="col-lg-6">
<div class="page-title-box">
{{-- 扫码支付 --}}
<h4 class="page-title">{{ __('hyper.qrpay_title') }}</h4>
</div>
</div>
</div>
<div class="row justify-content-center">
<div class="col-lg-6">
<div class="card border-primary border">
<div class="card-body">
<h5 class="card-title text-primary text-center">{{ __('hyper.qrpay_order_expiration_date') }} {{ dujiaoka_config_get('order_expire_time', 5) }} {{ __('hyper.qrpay_expiration_date') }}</h5>
<div class="text-center">
<img src="data:image/png;base64,{!! base64_encode(QrCode::format('png')->size(200)->generate($qr_code)) !!}">
</div>
{{-- 订单金额 --}}
<p class="card-text text-center">{{ __('hyper.qrpay_actual_payment') }}: {{ $actual_price }}</p>
@if(Agent::isMobile() && isset($jump_payuri))
<p class="errpanl" style="text-align: center"><a href="{{ $jump_payuri }}" class="">{{ __('hyper.qrpay_open_app_to_pay') }}</a></p>
@endif
</div> <!-- end card-body-->
</div>
</div>
</div>
@stop
@section('js')
<script>
var getting = {
url:'{{ url('check-order-status', ['orderSN' => $orderid]) }}',
dataType:'json',
success:function(res) {
if (res.code == 400001) {
window.clearTimeout(timer);
$.NotificationApp.send("{{ __('hyper.qrpay_notice') }}","{{ __('hyper.order_pay_timeout') }}","top-center","rgba(0,0,0,0.2)","warning");
setTimeout("window.location.href ='/'",3000);
}
if (res.code == 200) {
window.clearTimeout(timer);
$.NotificationApp.send("{{ __('hyper.qrpay_notice') }}","{{ __('hyper.payment_successful') }}","top-center","rgba(0,0,0,0.2)","success");
setTimeout("window.location.href ='{{ url('detail-order-sn', ['orderSN' => $orderid]) }}'",3000);
}
}
};
var timer = window.setInterval(function(){$.ajax(getting)},5000);
</script>
@stop
@@ -0,0 +1,98 @@
@extends('hyper.layouts.default')
@section('content')
<div class="row">
<div class="col-12">
<div class="page-title-box">
{{-- 查询订单 --}}
<h4 class="page-title">{{ __('hyper.searchOrder_title') }}</h4>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
{{ __('hyper.searchOrder_query_tips') }}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="card card-body">
<div class="tab-pane show active" id="bordered-tabs-preview">
<ul class="nav nav-tabs nav-bordered mb-3">
<li class="nav-item">
<a href="#dingdanhao" data-toggle="tab" aria-expanded="false" class="nav-link active">
{{-- 订单 --}}
<span>{{ __('hyper.searchOrder_order_search_by_number') }}</span>
</a>
</li>
<li class="nav-item">
<a href="#youxiang" data-toggle="tab" aria-expanded="true" class="nav-link">
{{-- 邮箱 --}}
<span>{{ __('hyper.searchOrder_order_search_by_email') }}</span>
</a>
</li>
<li class="nav-item">
<a href="#liulanqi" data-toggle="tab" aria-expanded="false" class="nav-link">
{{-- 缓存 --}}
<span>{{ __('hyper.searchOrder_order_search_by_ie') }}</span>
</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane show active" id="dingdanhao">
<form class="needs-validation" action="{{ url('search-order-by-sn') }}" method="post">
{{ csrf_field() }}
<div class="form-group mb-3">
{{-- 订单编号 --}}
<label for="validationCustom01">{{ __('hyper.searchOrder_order_number') }}</label>
<input type="text" class="form-control" name="order_sn" required placeholder="{{ __('hyper.searchOrder_input_order_number') }}">
</div>
<div class="form-group mb-3">
{{-- 立即查询 --}}
<button class="btn btn-primary" type="submit">{{ __('hyper.searchOrder_search_now') }}</button>
{{-- 重置 --}}
<button type="reset" class="btn btn-primary">{{ __('hyper.searchOrder_reset_order') }}</button>
</div>
</form>
</div>
<div class="tab-pane" id="youxiang">
<form class="needs-validation" action="{{ url('search-order-by-email') }}" method="post">
{{ csrf_field() }}
<div class="form-group mb-3">
{{-- 邮箱 --}}
<label for="validationCustom01">{{ __('hyper.searchOrder_email') }}</label>
<input type="email" class="form-control" name="email" required placeholder="{{ __('hyper.searchOrder_input_email') }}">
</div>
@if(dujiaoka_config_get('is_open_search_pwd', \App\Models\BaseModel::STATUS_CLOSE) == \App\Models\BaseModel::STATUS_OPEN)
<div class="form-group mb-3">
{{-- 查询密码 --}}
<label for="validationCustom01">{{ __('hyper.searchOrder_search_password') }}</label>
<input type="password" class="form-control" name="search_pwd" required placeholder="{{ __('hyper.searchOrder_input_query_password') }}">
</div>
@endif
<div class="form-group mb-3">
{{-- 立即查询 --}}
<button class="btn btn-primary" type="submit">{{ __('hyper.searchOrder_search_now') }}</button>
{{-- 重置 --}}
<button type="reset" class="btn btn-primary">{{ __('hyper.searchOrder_reset_order') }}</button>
</div>
</form>
</div>
<div class="tab-pane" id="liulanqi">
<form class="needs-validation" action="{{ url('search-order-by-browser') }}" method="post">
{{ csrf_field() }}
<div class="form-group mb-3">
{{-- 立即查询 --}}
<button class="btn btn-primary" type="submit">{{ __('hyper.searchOrder_search_now') }}</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
@stop
+40
View File
@@ -0,0 +1,40 @@
## 独角数卡 - Luna模板
一套简洁的独角数卡模板
## 特殊用法
#### 商品的其他输入框配置可以配置为下拉选项卡
```
使用方法:只需在输入框名字后面跟上选项即可 使用 | 分割选项
例子:
service=所在区服[1号服务器|2号服务器|3号服务器]=true
```
## 背景图
#### 设计能力有限,觉得背景图不好看的,可自行更换(建议尺寸:1920px*1224px
背景图文件位置
```
你的部署路径/public/assets/luna/img/background.png
```
#### 也可去掉背景图 屏蔽_nav.blade.php中的一个div即可
_nav.blade.php位置
```
你的部署路径/resources/views/luna/layouts/_nav.blade.php
```
```
/*屏蔽掉文件第一行的div标签即可去掉背景图。例:*/
{{--<div class="background"></div>--}}
```
## 作者信息
[Julyssn](https://github.com/Julyssn) 七月 QQ77322509
[发卡网](https://faka.win) TG: [@发卡网](https://t.me/super_faka_bot) 增加luna移动端公告、增加公告边框、为支付跳转按钮与支付二维码之间增加间距
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
<div class="footer">
<div class="layui-row">
<div class="layui-col-md8 layui-col-md-offset2 layui-col-sm12">
<div style="text-align: center">{!! dujiaoka_config_get('footer') !!}</div>
<p>Powered by <a href="https://github.com/assimon/dujiaoka" target="_blank">@独角数卡.DJK</a></p>
</div>
</div>
</div>
@@ -0,0 +1,16 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>{{ isset($page_title) ? $page_title : '' }} | {{ dujiaoka_config_get('title') }}</title>
<meta name="Keywords" content="{{ dujiaoka_config_get('keywords') }}">
<meta name="Description" content="{{ dujiaoka_config_get('description') }}">
<link rel="stylesheet" href="/assets/luna/layui/css/layui.css">
<link rel="stylesheet" href="/assets/luna/main.css">
<link rel="shortcut icon" href="/assets/style/favicon.ico" />
@if(\request()->getScheme() == "https")
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
@endif
</head>
@if(dujiaoka_config_get('is_open_google_translate') == \App\Models\BaseModel::STATUS_OPEN)
@include('luna.layouts.google_translate')
@endif
@@ -0,0 +1,25 @@
<div class="background"></div>
<div class="header" style="">
<div class="layui-row">
<div class="layui-col-md8 layui-col-md-offset2 layui-col-sm12">
<div class="header-box">
<a href="/">
<img src="{{ picture_ulr(dujiaoka_config_get('img_logo')) }}" alt="">
<div class="info">{{ dujiaoka_config_get('text_logo') }}</div>
</a>
<div class="query layui-hide-xs">
<a href="{{ url('order-search') }}">
<svg t="1602923269232" class="icon" viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="4816" width="20" height="20">
<path d="M965.6 447.2 752 447.2c-14.4 0-26.4-12-26.4-26.4 0-14.4 12-26.4 26.4-26.4l213.6 0c14.4 0 26.4 12 26.4 26.4C992.8 435.2 980.8 447.2 965.6 447.2zM965.6 233.6 699.2 233.6c-14.4 0-26.4-12-26.4-26.4 0-14.4 12-26.4 26.4-26.4l267.2 0c14.4 0 26.4 12 26.4 26.4C992.8 221.6 980.8 233.6 965.6 233.6zM606.4 623.2l156.8 156.8c21.6 21.6 21.6 56.8 0 78.4-21.6 21.6-56.8 21.6-78.4 0L528 701.6c-16-16-20-39.2-12-59.2-51.2 44-117.6 72-190.4 72-162.4 0-293.6-131.2-293.6-293.6s131.2-293.6 293.6-293.6 293.6 131.2 293.6 293.6c0 72.8-28 139.2-72 190.4C567.2 603.2 590.4 607.2 606.4 623.2zM324.8 233.6c-103.2 0-187.2 84-187.2 187.2s84 187.2 187.2 187.2S512 523.2 512 420 428 233.6 324.8 233.6zM805.6 607.2l160 0c14.4 0 26.4 12 26.4 26.4 0 14.4-12 26.4-26.4 26.4l-160 0c-14.4 0-26.4-12-26.4-26.4C779.2 619.2 791.2 607.2 805.6 607.2z"
p-id="4817" fill="#ffffff"></path>
</svg>
<span>{{ __('dujiaoka.order_search') }}</span>
</a>
</div>
@yield('notice')
</div>
</div>
</div>
</div>
@yield('notice_min')
@@ -0,0 +1,14 @@
<div class="main layui-hide-xs">
<div class="layui-row">
<div class="layui-col-sm12">
<div class="main-box">
<div class="title">
<p class="tit">{{ __('dujiaoka.site_announcement') }}:</p>
</div>
<div class="goods">
<div class="tips">{!! dujiaoka_config_get('notice') !!}</div>
</div>
</div>
</div>
</div>
</div>
@@ -0,0 +1,14 @@
<div class="main layui-hide-sm layui-show-xs">
<div class="layui-row">
<div class="layui-col-md8 layui-col-md-offset2 layui-col-sm12">
<div class="main-box">
<div class="title">
<p class="tit">{{ __('dujiaoka.site_announcement') }}:</p>
</div>
<div class="goods">
<div class="tips">{!! dujiaoka_config_get('notice') !!}</div>
</div>
</div>
</div>
</div>
</div>
@@ -0,0 +1,14 @@
<div class="main layui-hide-xs">
<div class="layui-row">
<div class="layui-col-sm12">
<div class="main-box">
<div class="title">
<p class="tit">{{ __('dujiaoka.site_announcement') }}:</p>
</div>
<div class="goods">
<div class="tips">{!! dujiaoka_config_get('notice') !!}</div>
</div>
</div>
</div>
</div>
</div>
@@ -0,0 +1,12 @@
<script>
let tipsMsg = {
least_one : '{{ __('luna.least_one') }}',
exceeds : '{{ __('luna.exceeds') }}',
exceeds_limit: '{{ __('luna.exceeds_limit') }}',
mobile_order : '{{ __('luna.mobile_order') }}'
};
</script>
<script src="/assets/luna/layui/layui.js"></script>
<script src="/assets/luna/js/jquery-3.4.1.min.js"></script>
<script src="/assets/luna/main.js"></script>
<script src="/assets/luna/layui/lay/modules/layer.js"></script>
@@ -0,0 +1,8 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_','-',strtolower(app()->getLocale())) }}">
@include('luna.layouts._header')
@yield('content')
@include('luna.layouts._script')
@section('js')
@show
</html>
@@ -0,0 +1,28 @@
<div id="google_translate_element"></div>
<style>
#google_translate_element{
text-align: right;
position: fixed;
top: 40px;
right: 20px;
z-index: 1;
}
#google_translate_element select{
width: 8rem;
}
.goog-te-banner-content{
font-size: 0px!important;
}
.goog-logo-link{
display:none !important;
}
.goog-te-gadget{
color:transparent!important;
}
</style>
<script type="text/Javascript">
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'zh', includedLanguages:'zh-TW,en,ru,fr'}, 'google_translate_element');
}
</script>
<script type="text/Javascript" src="https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
@@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_','-',strtolower(app()->getLocale())) }}">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>{{ isset($page_title) ? $page_title : '' }} | {{ dujiaoka_config_get('title') }}</title>
<meta name="keywords" content="{{ $gd_keywords }}">
<meta name="description" content="{{ $gd_description }}">
<meta property="og:type" content="article">
<meta property="og:image" content="{{ $picture }}">
<meta property="og:title" content="{{ isset($page_title) ? $page_title : '' }}">
<meta property="og:description" content="{{ $gd_description }}">
<meta property="og:release_date" content="{{ $updated_at }}">
<link rel="stylesheet" href="/assets/luna/layui/css/layui.css">
<link rel="stylesheet" href="/assets/luna/main.css">
<link rel="shortcut icon" href="/assets/style/favicon.ico" />
@if(\request()->getScheme() == "https")
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
@endif
</head>
@yield('content')
@include('luna.layouts._script')
@section('js')
@show
</html>
@@ -0,0 +1,147 @@
@extends('luna.layouts.default')
@section('content')
<body>
@include('luna.layouts._nav')
<style>
.layui-table td, .layui-table th {
padding: 9px 5px;
}
</style>
<div class="main">
<div class="layui-row">
<div class="layui-col-md8 layui-col-md-offset2 layui-col-sm12">
<div class="main-box">
<div class="pay-title">
<svg style="margin-bottom: -6px;" t="1603120404646" class="icon" viewBox="0 0 1024 1024"
version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1611" width="27" height="27">
<path d="M320.512 428.032h382.976v61.44H320.512zM320.512 616.448h320.512v61.44H320.512z"
fill="#00EAFF" p-id="1612" data-spm-anchor-id="a313x.7781069.0.i3"
class="selected"></path>
<path
d="M802.816 937.984H221.184l-40.96-40.96V126.976l40.96-40.96h346.112l26.624 10.24 137.216 117.76 98.304 79.872 15.36 31.744v571.392l-41.984 40.96z m-540.672-81.92h500.736V345.088L677.888 276.48 550.912 167.936H262.144v688.128z"
fill="#3C8CE7" p-id="1613" data-spm-anchor-id="a313x.7781069.0.i0" class=""></path>
</svg>
{{ __('dujiaoka.confirm_order') }}
</div>
<div class="layui-card-body">
<div class="product-info">
<p style="color: #3C8CE7 ;font-size: 18px;font-weight: 700; text-align: center;margin: 20px 0">
{{ __('dujiaoka.warning_title') }}{{ __('dujiaoka.date_to_expired_order', ['min' => dujiaoka_config_get('order_expire_time', 5)]) }}
</p>
</div>
<table class="layui-table" lay-skin="nob">
<colgroup>
<col width="50%">
<col width="50%">
</colgroup>
<tbody>
<tr>
<td style="text-align: right">{{ __('order.fields.order_sn') }}</td>
<td>{{ $order_sn }}</td>
</tr>
<tr>
<td style="text-align: right">{{ __('order.fields.title') }}</td>
<td>
<span class="small-tips tips-green noML">{{ $title }}</span>
</td>
</tr>
<tr>
<td style="text-align: right">{{ __('order.fields.goods_price') }}</td>
<td>
<span
class="small-tips tips-green noML">{{ __('dujiaoka.money_symbol') }}{{ $goods_price }}</span>
</td>
</tr>
<tr>
<td style="text-align: right">{{ __('order.fields.buy_amount') }}</td>
<td><span class="small-tips tips-green noML">x {{ $buy_amount }}</span></td>
</tr>
@if(isset($coupon))
<tr>
<td style="text-align: right">{{ __('order.fields.coupon_id') }}</td>
<td><span class="small-tips tips-green noML">{{ $coupon['coupon'] }}</span></td>
</tr>
<tr>
<td style="text-align: right">{{ __('order.fields.coupon_discount_price') }}</td>
<td><span
class="small-tips tips-green noML">{{ __('dujiaoka.money_symbol') }}{{ $coupon_discount_price }}</span>
</td>
</tr>
@endif
@if($wholesale_discount_price > 0 )
<tr>
<td style="text-align: right">{{ __('order.fields.wholesale_discount_price') }}
</td>
<td><span
class="small-tips tips-green noML">{{ __('dujiaoka.money_symbol') }}{{ $wholesale_discount_price }}</span>
</td>
</tr>
@endif
<tr>
<td style="text-align: right">{{ __('order.fields.actual_price') }}</td>
<td>
<span
class="small-tips tips-green noML">{{ __('dujiaoka.money_symbol') }}{{ $actual_price }}</span>
</td>
</tr>
<tr>
<td style="text-align: right">{{ __('dujiaoka.email') }}</td>
<td>{{ $email }}</td>
</tr>
@if($info)
@php
preg_match_all('/(\[.*?\])/m', $info, $matches, PREG_SET_ORDER, 0);
foreach ($matches as $item) {
$str = $item[1] ?? '';
if($str){
$info = str_replace($str,'',$info);
}
}
@endphp
<tr>
<td style="text-align: right">{{ __('dujiaoka.order_information') }}:</td>
<td><p>{{ $info }}</p></td>
</tr>
@endif
<tr>
<td style="text-align: right">{{ __('dujiaoka.payment_method') }}</td>
<td>{{ $pay['pay_name'] }}</td>
</tr>
</tbody>
</table>
<p class="btn" style="text-align: center">
<a href="{{ url('pay-gateway', ['handle' => urlencode($pay['pay_handleroute']),'payway' => $pay['pay_check'], 'orderSN' => $order_sn]) }}">
{{ __('dujiaoka.pay_immediately') }}
</a>
</p>
</div>
</div>
</div>
</div>
</div>
@include('luna.layouts._footer')
<div class="query-m">
<a href="{{ url('order-search') }}">
<svg t="1602926403006" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="3391" width="30" height="30">
<path d="M320.512 428.032h382.976v61.44H320.512zM320.512 616.448h320.512v61.44H320.512z" fill="#ffffff"
p-id="3392" data-spm-anchor-id="a313x.7781069.0.i38" class="selected"></path>
<path
d="M802.816 937.984H221.184l-40.96-40.96V126.976l40.96-40.96h346.112l26.624 10.24 137.216 117.76 98.304 79.872 15.36 31.744v571.392l-41.984 40.96z m-540.672-81.92h500.736V345.088L677.888 276.48 550.912 167.936H262.144v688.128z"
fill="#ffffff" p-id="3393" data-spm-anchor-id="a313x.7781069.0.i37" class="selected"></path>
</svg>
<span>{{ __('luna.order_search_m') }}</span>
</a>
</div>
</body>
@endsection
@@ -0,0 +1,411 @@
@extends('luna.layouts.seo')
@section('notice')
@include('luna.layouts._notice')
@endsection
@section('content')
<body>
@include('luna.layouts._nav')
<div class="main">
<div class="layui-row">
<div class="layui-col-md8 layui-col-md-offset2 layui-col-sm12">
<div class="main-box">
<div class="title" style="border-bottom: 1px solid #f7f7f7;padding-bottom: 5px">
<svg t="1602931755138" class="icon" viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="4748" width="20" height="20">
<path
d="M904.192 908.288H119.808l-40.96-45.056 81.92-711.68 40.96-35.84h142.336v81.92H237.568l-71.68 628.736h692.224l-71.68-628.736H680.96v-81.92h141.312l40.96 35.84 81.92 711.68z"
fill="#3C8CE7" p-id="4749" data-spm-anchor-id="a313x.7781069.0.i65" class=""></path>
<path
d="M516.096 422.912c-104.448 0-151.552-73.728-161.792-112.64l59.392-15.36c2.048 7.168 20.48 66.56 102.4 66.56 78.848 0 91.136-57.344 92.16-63.488l60.416 10.24c-5.12 38.912-46.08 114.688-152.576 114.688z"
fill="#00EAFF" p-id="4750" data-spm-anchor-id="a313x.7781069.0.i68"
class="selected"></path>
</svg>
<span>{{ __('luna.buy_goods_msg') }}</span>
</div>
<div class="layui-col-md4 layui-col-sm12">
<div class="goods-img">
<img class="viewer-pictures"
src="{{ picture_ulr($picture) }}"
data-original="{{ picture_ulr($picture) }}"
alt="">
</div>
</div>
<form class="layui-form layui-form-pane" action="{{ url('create-order') }}" method="post">
{{ csrf_field() }}
<input type="hidden" name="gid" value="{{ $id }}">
<div class="layui-col-md8 layui-col-sm12">
<div class="goods-msg">
<div class="goods-name">
<svg style="vertical-align: middle;" t="1602941112468" class="icon"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="1512" width="25" height="25"
data-spm-anchor-id="a313x.7781069.0.i14">
<path
d="M727.04 750.592h-68.608v-81.92H686.08V249.856L512 99.328 337.92 253.952v414.72h28.672v81.92H296.96l-40.96-40.96V235.52l13.312-30.72 215.04-190.464h54.272l215.04 186.368 14.336 30.72v478.208z"
fill="#3C8CE7" p-id="1513" data-spm-anchor-id="a313x.7781069.0.i12"
class=""></path>
<path
d="M869.376 638.976l-147.456-18.432-35.84-40.96V350.208l69.632-28.672 147.456 147.456 12.288 28.672v99.328l-46.08 41.984zM768 543.744l65.536 8.192v-35.84L768 449.536v94.208zM154.624 638.976l-46.08-40.96v-99.328l12.288-28.672 147.456-147.456 69.632 28.672v229.376l-35.84 40.96-147.456 17.408z m35.84-123.904v35.84L256 542.72v-94.208l-65.536 66.56z"
fill="#3C8CE7" p-id="1514" data-spm-anchor-id="a313x.7781069.0.i15"
class=""></path>
<path
d="M512 465.92m-67.584 0a67.584 67.584 0 1 0 135.168 0 67.584 67.584 0 1 0-135.168 0Z"
fill="#3C8CE7" p-id="1515" data-spm-anchor-id="a313x.7781069.0.i16"
class=""></path>
<path
d="M479.232 660.48h58.368v233.472h-58.368zM391.168 723.968h58.368v157.696h-58.368zM461.824 922.624h58.368v88.064h-58.368zM574.464 748.544h58.368v188.416h-58.368z"
fill="#00EAFF" p-id="1516" data-spm-anchor-id="a313x.7781069.0.i17"
class="selected"></path>
</svg>
<span>
{{ $gd_name }}
@if($type == \App\Models\Goods::AUTOMATIC_DELIVERY)
<span
class="small-tips tips-green">{{ __('goods.fields.automatic_delivery') }}</span>
@else
<span
class="small-tips tips-yellow">{{ __('goods.fields.manual_processing') }}</span>
@endif
<span class="small-tips tips-blue">{{__('goods.fields.in_stock')}}({{ $in_stock }})</span>
@if($buy_limit_num > 0)
<span class="small-tips tips-red"> {{__('dujiaoka.purchase_limit')}}({{ $buy_limit_num }})</span>
@endif
</span>
</div>
<div class="price">
<span class="price-sign"></span>
<span class="price-num">{{ $actual_price }}</span>
@if((int)$retail_price)
<span class="price-c">[<del>{{ $retail_price }}</del>]</span>
@endif
</div>
@if(!empty($wholesale_price_cnf) && is_array($wholesale_price_cnf))
<div class="sale">
@foreach($wholesale_price_cnf as $ws)
<span class="small-tips tips-pink">
{{ __('luna.goods_disc_1') }}{{ $ws['number'] }}{{ __('luna.goods_disc_2') }}{{ $ws['price'] }}{{ __('luna.goods_disc_3') }}
</span>
@endforeach
</div>
@endif
<div class="entry notSelection">
<span class="l-msg">{{ __('luna.buy_num') }}</span>
<label class="input">
<span class="sub">
<svg t="1602946172380" class="icon" viewBox="0 0 1025 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="1676" width="25" height="25"><path
d="M874.971429 149.942857C776.228571 54.857143 648.228571 0 512.914286 0S245.942857 54.857143 150.857143 149.942857c-201.142857 201.142857-201.142857 522.971429 0 724.114286C245.942857 969.142857 377.6 1024 512.914286 1024s266.971429-54.857143 362.057143-149.942857c201.142857-201.142857 201.142857-522.971429 0-724.114286m-51.2 672.914286C739.657143 906.971429 629.942857 950.857143 512.914286 950.857143s-226.742857-43.885714-310.857143-128c-171.885714-171.885714-171.885714-449.828571 0-621.714286C286.171429 117.028571 395.885714 73.142857 512.914286 73.142857s226.742857 43.885714 310.857143 128c171.885714 171.885714 171.885714 449.828571 0 621.714286"
p-id="1677" fill="#8a8a8a"></path><path
d="M772.571429 475.428571H253.257143c-21.942857 0-36.571429 14.628571-36.571429 36.571429 0 10.971429 3.657143 18.285714 10.971429 25.6s14.628571 10.971429 25.6 10.971429H768.914286c21.942857 0 36.571429-14.628571 36.571428-36.571429s-14.628571-36.571429-32.914285-36.571429"
p-id="1678" fill="#8a8a8a"></path></svg>
</span>
<input class="pay-num" name="by_amount" id="orderNumber"
required lay-verify="required|order_number"
type="number" value="1">
<span class="add">
<svg t="1602946147946" class="icon" viewBox="0 0 1025 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="12364" width="25" height="25"><path
d="M874.971429 149.942857C776.228571 54.857143 648.228571 0 512.914286 0S245.942857 54.857143 150.857143 149.942857c-201.142857 201.142857-201.142857 522.971429 0 724.114286C245.942857 969.142857 377.6 1024 512.914286 1024s266.971429-54.857143 362.057143-149.942857c201.142857-201.142857 201.142857-522.971429 0-724.114286m-51.2 672.914286C739.657143 906.971429 629.942857 950.857143 512.914286 950.857143s-226.742857-43.885714-310.857143-128c-171.885714-171.885714-171.885714-449.828571 0-621.714286C286.171429 117.028571 395.885714 73.142857 512.914286 73.142857s226.742857 43.885714 310.857143 128c171.885714 171.885714 171.885714 449.828571 0 621.714286"
p-id="12365" fill="#8a8a8a"></path><path
d="M549.485714 475.428571V288.914286c0-21.942857-14.628571-36.571429-36.571428-36.571429s-36.571429 14.628571-36.571429 36.571429V475.428571H289.828571c-21.942857 0-36.571429 14.628571-36.571428 36.571429 0 10.971429 3.657143 18.285714 10.971428 25.6s14.628571 10.971429 25.6 10.971429H476.342857v186.514285c0 10.971429 3.657143 18.285714 10.971429 25.6 7.314286 7.314286 14.628571 10.971429 25.6 10.971429 21.942857 0 36.571429-14.628571 36.571428-36.571429V548.571429h186.514286c21.942857 0 36.571429-14.628571 36.571429-36.571429s-14.628571-36.571429-36.571429-36.571429H549.485714z"
p-id="12366" fill="#8a8a8a"></path>
</svg>
</span>
</label>
</div>
<div class="entry">
<span class="l-msg">{{ __('luna.buy_email') }}</span>
<label class="input">
<input type="text" name="email"
required lay-verify="required|email"
placeholder="{{ __('luna.buy_email_tips') }}">
</label>
</div>
@if(isset($open_coupon))
<div class="entry">
<span class="l-msg">{{ __('luna.buy_disc') }}</span>
<label class="input">
<input type="text" name="coupon_code"
placeholder="{{ __('luna.buy_disc_tips') }}">
</label>
</div>
@endif
@if($type == \App\Models\Goods::MANUAL_PROCESSING && is_array($other_ipu))
@foreach($other_ipu as $ipu)
@php
preg_match_all('/(.*?)\[(.*?)\]/m', $ipu['desc'], $matches, PREG_SET_ORDER, 0);
$str = $matches[0][2] ?? '';
if($str){
$name = $matches[0][1] ?? '';
$option = explode('|',$str);
}else{
$option = [];
}
@endphp
@if(count($option))
<style>
.layui-form-select {
width: 300px;
display: inline-block;
}
.layui-form-pane .layui-input {
border-radius: 4px;
height: 37px;
width: 312px;
}
.layui-form-select .layui-edge {
right: 0px;
}
@media (max-width: 768px) {
.layui-form-select {
width: calc(100% - 83px);
}
.layui-form-pane .layui-input {
width: 100%;
}
.layui-form-select .layui-edge {
right: 10px;
}
}
</style>
<div class="entry">
<span class="l-msg">{{ $name }}</span>
<label class="input">
<select class="layui-bg-blue" name="{{ $ipu['field'] }}"
@if($ipu['rule'] !== false) required
lay-verify="required" @endif>
@foreach($option as $opt)
<option value="{{ $opt }}">{{ $opt }}</option>
@endforeach
</select>
</label>
</div>
@else
<div class="entry">
<span class="l-msg">{{ $ipu['desc'] }}</span>
<label class="input">
<input type="text" name="{{ $ipu['field'] }}"
@if($ipu['rule'] !== false) required lay-verify="required"
@endif
placeholder="{{ $ipu['placeholder'] }}">
</label>
</div>
@endif
@endforeach
@endif
@if(dujiaoka_config_get('is_open_search_pwd') == \App\Models\Goods::STATUS_OPEN)
<div class="entry">
<span class="l-msg">{{ __('luna.buy_pass') }}</span>
<label class="input">
<input type="text" name="search_pwd" value=""
required lay-verify="required"
placeholder="{{ __('luna.buy_pass_tips') }}">
</label>
</div>
@endif
@if(dujiaoka_config_get('is_open_img_code') == \App\Models\Goods::STATUS_OPEN)
<div class="entry code">
<span class="l-msg">{{ __('luna.buy_code') }}</span>
<label class="input">
<input type="text" name="img_verify_code" value="" required
lay-verify="required" placeholder="{{ __('luna.buy_code_tips') }}">
</label>
<img class="captcha-img" onclick="refresh()"
src="{{ captcha_src('buy') . time() }}"
alt="">
<script>
function refresh() {
$('img[class="captcha-img"]').attr('src', '{{ captcha_src('buy') }}' + Math.random());
}
</script>
</div>
@endif
@if(dujiaoka_config_get('is_open_geetest') == \App\Models\Goods::STATUS_OPEN)
<div class="entry code">
<span class="l-msg">{{ __('dujiaoka.behavior_verification') }}</span>
<span id="geetest-captcha"></span>
<span id="wait-geetest-captcha"
class="show">{{ __('luna.buy_loading_verification') }}</span>
</div>
@endif
<div class="pay notSelection">
<input type="hidden" name="payway" lay-verify="payway"
value="{{ $payways[0]['id'] ?? 0 }}">
@foreach($payways as $key => $way)
<div class="pay-type @if($key == 0) pay-select @endif"
data-type="{{ $way['pay_check'] }}" data-id="{{ $way['id'] }}"
data-name="{{ $way['pay_name'] }}">
</div>
@endforeach
</div>
</div>
</div>
<div class="layui-col-sm12 buy" style="text-align: center">
<button lay-submit lay-filter="postOrder">
<span>{{ __('dujiaoka.order_now') }}</span>
</button>
</div>
</form>
</div>
</div>
</div>
</div>
<div class="main">
<div class="layui-row">
<div class="layui-col-md8 layui-col-md-offset2 layui-col-sm12">
<div class="main-box">
<div class="title" style="border-bottom: 1px solid #f7f7f7;padding-bottom: 5px">
<svg t="1602951214662" class="icon" viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="1513" width="20" height="20">
<path
d="M791.552 1002.496L513.024 875.52l-91.136 45.056-35.84-73.728 107.52-53.248 35.84-1.024L766.976 901.12V242.688H257.024v559.104h-81.92V201.728l40.96-40.96h591.872l40.96 40.96v762.88z"
fill="#3C8CE7" p-id="1514" data-spm-anchor-id="a313x.7781069.0.i7"
class="selected"></path>
<path d="M481.28 21.504h61.44v309.248h-61.44z" fill="#00EAFF" p-id="1515"
data-spm-anchor-id="a313x.7781069.0.i8" class=""></path>
<path
d="M512 518.144c-63.488 0-114.688-51.2-114.688-114.688 0-63.488 51.2-114.688 114.688-114.688s114.688 51.2 114.688 114.688c0 63.488-51.2 114.688-114.688 114.688z m0-167.936c-29.696 0-53.248 23.552-53.248 53.248 0 29.696 23.552 53.248 53.248 53.248s53.248-23.552 53.248-53.248c0-29.696-23.552-53.248-53.248-53.248z"
fill="#3C8CE7" p-id="1516" data-spm-anchor-id="a313x.7781069.0.i11"
class="selected"></path>
</svg>
<span>{{ __('goods.fields.description') }}</span>
</div>
<div class="intro">
{!! $description !!}
</div>
</div>
</div>
</div>
</div>
<div class="query-m">
<a href="{{ url('order-search') }}">
<svg t="1602926403006" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="3391" width="30" height="30">
<path d="M320.512 428.032h382.976v61.44H320.512zM320.512 616.448h320.512v61.44H320.512z" fill="#ffffff"
p-id="3392" data-spm-anchor-id="a313x.7781069.0.i38" class="selected"></path>
<path
d="M802.816 937.984H221.184l-40.96-40.96V126.976l40.96-40.96h346.112l26.624 10.24 137.216 117.76 98.304 79.872 15.36 31.744v571.392l-41.984 40.96z m-540.672-81.92h500.736V345.088L677.888 276.48 550.912 167.936H262.144v688.128z"
fill="#ffffff" p-id="3393" data-spm-anchor-id="a313x.7781069.0.i37" class="selected"></path>
</svg>
<span>{{ __('luna.order_search_m') }}</span>
</a>
</div>
<div class="order-m">
<div
onclick="window.showQrcode('data:image/png;base64,{!! base64_encode(QrCode::format("png")->size(300)->generate(Request::url())) !!}')">
<svg t="1602927606509" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="4167" width="35" height="35">
<path
d="M146.432 336.896h-81.92V106.496l40.96-40.96h231.424v81.92H146.432zM336.896 958.464H105.472l-40.96-40.96V687.104h81.92v189.44h190.464zM956.416 336.896h-81.92V147.456H684.032v-81.92h231.424l40.96 40.96zM915.456 958.464H613.376v-81.92h261.12V659.456h81.92v258.048z"
fill="#ffffff" p-id="4168" data-spm-anchor-id="a313x.7781069.0.i59" class="selected"></path>
<path
d="M326.656 334.848h61.44v98.304h-61.44zM415.744 575.488h61.44v133.12h-61.44zM265.216 575.488h61.44v114.688h-61.44zM566.272 575.488h61.44v98.304h-61.44zM706.56 575.488h61.44v154.624h-61.44zM477.184 297.984h61.44v135.168h-61.44zM627.712 329.728h61.44v103.424h-61.44z"
fill="#ffffff" p-id="4169" data-spm-anchor-id="a313x.7781069.0.i58" class="selected"></path>
<path d="M10.24 473.088h1003.52v61.44H10.24z" fill="#ffffff" p-id="4170"
data-spm-anchor-id="a313x.7781069.0.i57" class="selected"></path>
</svg>
<span>{{ __('luna.buy_order_m') }}</span>
</div>
</div>
@include('luna.layouts._footer')
<div class="buy-prompt" hidden>
{!! $buy_prompt !!}
</div>
</body>
<script>let stock = {{ $in_stock }}, limitNum = {{$buy_limit_num}};</script>
@endsection
@section('js')
<script src="https://cdn.bootcss.com/jquery/2.1.0/jquery.min.js"></script>
<script src="https://static.geetest.com/static/tools/gt.js"></script>
<link rel="stylesheet" href="/assets/luna/js/viewerjs/viewer.min.css">
<script src="/assets/luna/js/viewerjs/viewer.min.js"></script>
<script>
var buyPrompt = $(".buy-prompt").html();
if ($.trim(buyPrompt)) window.tipsMsg("{{ __('goods.fields.buy_prompt') }}", buyPrompt);
gtWidth = window.clientWidth <= 767 ? '100%' : '312px';
layui.use(['form'], function () {
var form = layui.form;
form.verify({
order_number: function (value, item) {
if (value == 0) return "{{ __('dujiaoka.prompt.by_amount_not_null') }}"
if (value > stock) return "{{ __('dujiaoka.prompt.inventory_shortage') }}"
}
})
@if(dujiaoka_config_get('is_open_geetest') == \App\Models\Goods::STATUS_OPEN )
!function (url) {
var handlerEmbed = function (captchaObj) {
form.on('submit(postOrder)', function (data) {
var validate = captchaObj.getValidate();
if (!validate) {
layer.msg('请正确完成行为验证', {
icon: 5
});
return false;
}
return true;
});
captchaObj.onReady(function () {
$("#wait-geetest-captcha")[0].className = "hide";
});
captchaObj.appendTo("#geetest-captcha");
};
$.ajax({
url : url + "?t=" + (new Date()).getTime(),
type : "get",
dataType: "json",
success : function (data) {
initGeetest({
width : gtWidth,
gt : data.gt,
challenge : data.challenge,
product : "popup",
offline : !data.success,
new_captcha: data.new_captcha,
lang : 'zh-cn',
http : 'http' + '://'
}, handlerEmbed);
}
});
}('/check-geetest');
@endif
form.on('submit(postOrder)', function (data) {
if (data.field.payway == null) {
layer.msg("{{ __('dujiaoka.prompt.please_select_mode_of_payment') }}", {
icon: 5
})
return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
}
return true;
});
new Viewer(document.querySelector('.viewer-pictures'), {
url : 'data-original',
toolbar: false,
navbar : false,
title : false,
});
});
</script>
@endsection
@@ -0,0 +1,108 @@
@extends('luna.layouts.default')
@section('notice')
@include('luna.layouts._notice_xs')
@endsection
@section('notice_min')
@include('luna.layouts._notice_sm')
@endsection
@section('content')
<body>
@include('luna.layouts._nav')
<div class="main">
<div class="layui-row">
<div class="layui-col-md8 layui-col-md-offset2 layui-col-sm12">
<div class="main-box">
<div class="title">
<svg t="1602925747464" class="icon" viewBox="0 0 1024 1024"
version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1270"
data-spm-anchor-id="a313x.7781069.0.i4" width="20" height="20">
<path
d="M619.52 578.56V808.96h194.56V660.48h-133.12v-81.92h215.04V849.92l-40.96 40.96h-276.48l-40.96-40.96V578.56z"
fill="#00EAFF" p-id="1271" data-spm-anchor-id="a313x.7781069.0.i0" class=""></path>
<path
d="M619.52 512V215.04h194.56v172.032h-133.12v81.92h174.08l40.96-40.96V174.08l-40.96-40.96h-276.48l-40.96 40.96v337.92z"
fill="#3C8CE7" p-id="1272" data-spm-anchor-id="a313x.7781069.0.i6" class=""></path>
<path
d="M445.44 890.88h-276.48l-40.96-40.96V619.52l40.96-40.96h174.08v81.92h-133.12V808.96h194.56V215.04h-194.56v172.032h133.12v81.92h-174.08l-40.96-40.96V174.08l40.96-40.96h276.48l40.96 40.96v675.84z"
fill="#3C8CE7" p-id="1273" data-spm-anchor-id="a313x.7781069.0.i3" class=""></path>
</svg>
<span>{{ __('luna.home_choice_cate') }}</span>
</div>
<div class="cate">
</div>
<div class="goods">
<p class="title-2">
<svg t="1602925988984" class="icon" viewBox="0 0 1024 1024"
version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1945" width="17" height="17">
<path
d="M803.84 883.712h-163.84v-81.92h133.12l118.784-393.216-178.176 95.232-55.296-15.36L512 240.64 365.568 488.448l-55.296 15.36-178.176-95.232 118.784 393.216h133.12v81.92h-163.84l-38.912-28.672L25.6 336.896l58.368-47.104 230.4 122.88 162.816-272.384h69.632l162.816 272.384 230.4-122.88 58.368 47.104-155.648 518.144z"
fill="#3C8CE7" p-id="1946" data-spm-anchor-id="a313x.7781069.0.i17" class=""></path>
<path
d="M305.152 620.544h61.44v61.44h-61.44zM481.28 620.544h61.44v61.44h-61.44zM657.408 620.544h61.44v61.44h-61.44z"
fill="#00EAFF" p-id="1947" data-spm-anchor-id="a313x.7781069.0.i14" class=""></path>
</svg>
<span>{{ __('luna.home_choice_goods') }}</span>
</p>
<div class="goods-list"></div>
</div>
</div>
</div>
</div>
</div>
@include('luna.layouts._footer')
<div class="query-m">
<a href="{{ url('order-search') }}">
<svg t="1602926403006" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="3391" width="30" height="30">
<path d="M320.512 428.032h382.976v61.44H320.512zM320.512 616.448h320.512v61.44H320.512z" fill="#ffffff"
p-id="3392" data-spm-anchor-id="a313x.7781069.0.i38" class="selected"></path>
<path
d="M802.816 937.984H221.184l-40.96-40.96V126.976l40.96-40.96h346.112l26.624 10.24 137.216 117.76 98.304 79.872 15.36 31.744v571.392l-41.984 40.96z m-540.672-81.92h500.736V345.088L677.888 276.48 550.912 167.936H262.144v688.128z"
fill="#ffffff" p-id="3393" data-spm-anchor-id="a313x.7781069.0.i37" class="selected"></path>
</svg>
<span>{{ __('luna.order_search_m') }}</span>
</a>
</div>
</body>
<script id="cateTpl" type="text/html">
<div class="cate-box" data-key="<< d.key >>">
<p><< d.gp_name >></p>
<div>{{ __('luna.goods_num') }}<< d.goods.length >></div>
</div>
</script>
<script id="goodsTpl" type="text/html">
<a href="<<# if(d.in_stock > 0){ >>/buy/<< d.id >><<# } else { >>javascript:void(0);<<# }; >>"
class="goods-box" style="<<# if(d.in_stock <= 0){ >>cursor:not-allowed;<<# }; >>">
<<# if(d.picture){ >>
<div class="picture"><img src="{{ picture_ulr('',true) }}<< d.picture >>" alt=""></div>
<<# }; >>
<div class="msg">
<div class="goods-name"><< d.gd_name >></div>
<div class="goods-price">
<< d.actual_price >>
<<# layui.each(d.wholesale_price_arr, function(index, item){ >>
<div>{{ __('luna.goods_disc_1') }}<< item[0] >>{{ __('luna.goods_disc_2') }}<< item[1]
>>{{ __('luna.goods_disc_3') }}</div>
<<# }); >>
</div>
<div class="goods-num">
<div><p style="width: << d.proportion >>%;"></p></div>
<span>{{ __('luna.goods_surplus') }}<< d.in_stock>>{{ __('luna.goods_unit') }}</span>
</div>
</div>
</a>
</script>
<script>
let title = "{{ __('dujiaoka.site_announcement') }}",
goodsMsg = {!! json_encode($data) !!};
</script>
@endsection
@@ -0,0 +1,248 @@
@extends('luna.layouts.default')
@section('content')
<body>
@include('luna.layouts._nav')
<style>
.layui-table td, .layui-table th {
padding: 9px 5px;
}
</style>
<div class="main">
<div class="layui-row">
<div class="layui-col-md8 layui-col-md-offset2 layui-col-sm12">
<div class="main-box">
<div class="pay-title">
<svg style="margin-bottom: -6px;" t="1603120404646" class="icon" viewBox="0 0 1024 1024"
version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1611" width="27" height="27">
<path d="M320.512 428.032h382.976v61.44H320.512zM320.512 616.448h320.512v61.44H320.512z"
fill="#00EAFF" p-id="1612" data-spm-anchor-id="a313x.7781069.0.i3"
class="selected"></path>
<path
d="M802.816 937.984H221.184l-40.96-40.96V126.976l40.96-40.96h346.112l26.624 10.24 137.216 117.76 98.304 79.872 15.36 31.744v571.392l-41.984 40.96z m-540.672-81.92h500.736V345.088L677.888 276.48 550.912 167.936H262.144v688.128z"
fill="#3C8CE7" p-id="1613" data-spm-anchor-id="a313x.7781069.0.i0" class=""></path>
</svg>
{{ __('order.fields.order_detail') }}
</div>
@foreach($orders as $order)
<div class="layui-card-body info-box">
<div class="layui-row order-list">
<div class="layui-col-md4">
<ul class="info-ui">
<li>
<strong>{{ __('luna.order_number') }}:</strong>
{{ $order['order_sn'] }}
</li>
<li>
<strong>{{ __('order.fields.title') }}:</strong>
{{ $order['title'] }}
</li>
<li><strong>{{ __('order.fields.buy_amount') }}
:</strong> {{ $order['buy_amount'] }}</li>
<li><strong>{{ __('order.fields.order_created') }}
:</strong> {{ $order['created_at'] }}
<li><strong>{{ __('order.fields.email') }}:</strong> {{ $order['email'] }}</li>
</ul>
</div>
<div class="layui-col-md4">
<ul class="info-ui">
<li><strong>{{ __('order.fields.type') }}:</strong>
@if($order['type'] == \App\Models\Order::AUTOMATIC_DELIVERY)
<span class="small-tips tips-green">
{{ __('goods.fields.automatic_delivery') }}
</span>
@else
<span class="small-tips tips-green">
{{ __('goods.fields.manual_processing') }}
</span>
@endif
</li>
<li>
<strong>{{ __('order.fields.actual_price') }}:</strong>
<span
class="small-tips tips-green">{{ __('dujiaoka.money_symbol') }}{{ $order['actual_price'] }}</span>
</li>
<li><strong>{{ __('order.fields.status') }}:</strong>
@switch($order['status'])
@case(\App\Models\Order::STATUS_EXPIRED)
<span class="small-tips tips-cyan">
{{ __('order.fields.status_expired') }}
</span>
@break
@case(\App\Models\Order::STATUS_WAIT_PAY)
<span class="small-tips tips-blue">
{{ __('order.fields.status_wait_pay') }}
</span>
@break
@case(\App\Models\Order::STATUS_PENDING)
<span
class="small-tips tips-green">
{{ __('order.fields.status_pending') }}
</span>
@break
@case(\App\Models\Order::STATUS_PROCESSING)
<span class="small-tips tips-green">
{{ __('order.fields.status_processing') }}
</span>
@break
@case(\App\Models\Order::STATUS_COMPLETED)
<span class="small-tips tips-green">
{{ __('order.fields.status_completed') }}
</span>
@break
@case(\App\Models\Order::STATUS_FAILURE)
<span class="small-tips tips-black">
{{ __('order.fields.status_failure') }}
</span>
@break
@case(\App\Models\Order::STATUS_ABNORMAL)
<span class="small-tips tips-black">
{{ __('order.fields.status_abnormal') }}
</span>
@break
@endswitch
</li>
<li><strong>{{ __('dujiaoka.payment_method') }}
:</strong> {{ $order['pay']['pay_name'] ?? '' }}</li>
</ul>
</div>
@php $info =''; @endphp
@if($order['info'])
@php
$info = $order['info'];
preg_match_all('/(\[.*?\])/m', $info, $matches, PREG_SET_ORDER, 0);
foreach ($matches as $item) {
$str = $item[1] ?? '';
if($str){
$info = str_replace($str,'',$info);
}
}
@endphp
@endif
<div class="layui-col-md4">
<textarea disabled spellcheck="false"
class="order-info">{{$info}}</textarea>
<div class="btn" style="width: 100%">
<button class="clipboard-but" type="button"
data-clipboard-text="{{ $info }}"
style="width: 100%;margin-top: initial;margin-bottom: 10px">
{{ __('dujiaoka.copy_text') }}
</button>
</div>
</div>
</div>
</div>
@endforeach
@if(!count($orders))
<div style="text-align: center">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="200" height="200" viewBox="0 0 480 480">
<defs>
<linearGradient id="a" x1="1.128" y1="0.988" x2="0.364" y2="1"
gradientUnits="objectBoundingBox">
<stop offset="0" stop-color="#e0e5ef" stop-opacity="0"/>
<stop offset="1" stop-color="#e0e5ef"/>
</linearGradient>
<linearGradient id="c" x1="1" y1="0.5" x2="0.112" y2="1.125"
gradientUnits="objectBoundingBox">
<stop offset="0" stop-color="#fff" stop-opacity="0"/>
<stop offset="1" stop-color="#747f95"/>
</linearGradient>
</defs>
<g transform="translate(-135 -375)">
<circle cx="184" cy="184" r="184" transform="translate(191 443)" fill="#f3f3fa"/>
<path
d="M2925,350h0c-8.837,0-16-32.235-16-72s7.163-72,16-72c.038,0,11.813.471,18.75-7.529s9-14.486,9-24.469c0-34.257,14.681-58.6,28.25-63.313,3.909-.688,10,.818,16-4.354s8-9.372,8-16.333c0-37.555,12.536-68,28-68s28,30.445,28,68c0,6.961-.667,10.328,5.333,15.5s14.76,4.5,18.667,5.187c13.569,4.714,24,33.055,24,67.312a101.212,101.212,0,0,0,2.333,20s4.485,11.842,11,5.5,9.13-14.885,10.25-22.871C3135.767,157.923,3142.61,142,3149,142c6.519,0,12.127,16.566,14.645,40.566.741,7.066,2.2,11.743,6.521,17.6A14.3,14.3,0,0,0,3180.92,206H3181c6.488,0,12.073,16.409,14.617,40.308.5,4.725.982,7.6,5.3,11.527S3212.884,262,3212.884,262l.116,0c2.16,0,4.255,1.8,6.228,5.344a58.6,58.6,0,0,1,5.086,14.573C3227.336,294.758,3229,311.835,3229,330c0,6.817-.237,13.546-.7,20H2925Zm303.3,0h0Z"
transform="translate(-2718 397)" fill="url(#a)"/>
<path
d="M117,208H.7c-.466-6.453-.7-13.181-.7-20,0-18.163,1.664-35.24,4.686-48.083a58.6,58.6,0,0,1,5.086-14.573C11.745,121.8,13.84,120,16,120l.116,0s7.651-.242,11.967-4.166,4.8-6.8,5.3-11.527C35.927,80.408,41.513,64,48,64a16.6,16.6,0,0,0,3.3-1.014A6.153,6.153,0,0,0,53.365,61.5c6.515-6.342,9.13-14.884,10.25-22.871C66.8,15.924,73.642,0,80.032,0,86.55,0,92.158,16.566,94.676,40.567c.742,7.065,2.2,11.742,6.521,17.6A14.3,14.3,0,0,0,111.951,64h.081c6.487,0,12.073,16.409,14.617,40.307.5,4.725.983,7.6,5.3,11.527S143.915,120,143.915,120l.116,0c2.16,0,4.255,1.8,6.228,5.344a58.6,58.6,0,0,1,5.086,14.573c3.022,12.844,4.686,29.921,4.686,48.083,0,6.818-.237,13.546-.7,20H117Zm42.328,0h0ZM.7,208h0Z"
transform="translate(350.969 539)" fill="url(#a)"/>
<path
d="M2989,62c-10.838-4.087-16.3,0-32,0-26.51,0-48-8.954-48-20s21.49-20,48-20h256a16,16,0,1,1,0,32s-15.5,0-27.5,3S3165,68.714,3165,68.714,3127.392,110,3081,110c-38.041,0-70.176-13.246-80.647-31.653C2998.219,74.6,2999.838,66.087,2989,62Z"
transform="translate(-2702 701)" fill="#d1d6e2"/>
<path d="M-2493,98s-56.355,45.651-64,16,74.25-17.75-16,72"
transform="translate(3044 409)" fill="none" stroke="#909aa9"
stroke-linecap="round" stroke-width="2" stroke-dasharray="10"/>
<path
d="M4,2.2C7.15-.75,16,0,16,0s-1.5,4-2.6,8-.232,5.942-1.8,8C7.6,21.25,0,21,0,21s.75-3.4,2-8S.85,5.15,4,2.2Z"
transform="translate(447 603.085)" fill="#909aa9"/>
<ellipse cx="10" cy="4" rx="10" ry="4" transform="translate(294 787)"
fill="url(#c)"/>
<path
d="M8.44,24s8.115-6,6.94-10S11.51,9.625,9.775,6.125A11.222,11.222,0,0,1,8.44,0S1.767,2.625,1.5,9.375C1.38,12.419,4.436,14.344,6.171,18A32.451,32.451,0,0,1,8.44,24Z"
transform="translate(287 794.497) rotate(-90)" fill="#909aa9"/>
<path d="M0,0,57,4.5,136,0l31.5,12,17,10-37,8.5-24.5-5-58,5L4,23Z"
transform="translate(191 699)" fill="#fff"/>
<path
d="M-1.4,1.2,60,9l58.75-5.25L143,9l36-9V24.5L144.4,29l-16.2-7.25L95.6,23l-5.1,1.5L67.2,21.75,5,23.25S2.8,16.713,1.2,11.2-1.4,1.2-1.4,1.2Z"
transform="translate(196 720)" fill="#eceff5"/>
<path d="M0,9.833l18-9.5,2.667,4v8.2L13,18,8.167,12.532,0,13.671Z"
transform="translate(377 777)" fill="#eceff5"/>
<path d="M4,3.167,18,0V10l-5,3.167-4.833-4L0,10Z" transform="translate(377 777)"
fill="#fff"/>
<path d="M-.211,18.893,16,12l.246,14.107-2.084,4.646L0,31Z"
transform="matrix(1, 0.017, -0.017, 1, 400.376, 734.864)" fill="#eceff5"/>
<path d="M9.75,12H16l-3.75,7H0Z" transform="translate(400 735)" fill="#fff"/>
<g transform="translate(447 690)">
<path
d="M97,0,63.923,4.5,24.316,0,8.523,12,0,22l18.55,8.5,12.283-5,29.079,5,23.488-5,6.467-12.126Z"
transform="translate(-1 12)" fill="#fff"/>
<path
d="M81.149.607l-28.1,3.945L26.17,1.9l-11.1,2.655L-2.651-1.333V12.391l17.083,2.276L21.846,11l14.917.632,2.334.759L49.759,11l28.991,1.391s-1.4-1.778,0-4.724A43.992,43.992,0,0,0,81.149.607Z"
transform="translate(1.651 35.333)" fill="#eceff5"/>
</g>
</g>
</svg>
<div class="err_title">{{ __('luna.query_no_order') }}</div>
<div class="err_content">{{ __('luna.query_no_order_tips') }}</div>
<div class="btn">
<a href="javascript:history.back(-1);">
<span>{{ __('dujiaoka.callback') }}</span>
</a>
</div>
</div>
@endif
</div>
</div>
</div>
</div>
@include('luna.layouts._footer')
<div class="query-m">
<a href="{{ url('order-search') }}">
<svg t="1602926403006" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="3391" width="30" height="30">
<path d="M320.512 428.032h382.976v61.44H320.512zM320.512 616.448h320.512v61.44H320.512z" fill="#ffffff"
p-id="3392" data-spm-anchor-id="a313x.7781069.0.i38" class="selected"></path>
<path
d="M802.816 937.984H221.184l-40.96-40.96V126.976l40.96-40.96h346.112l26.624 10.24 137.216 117.76 98.304 79.872 15.36 31.744v571.392l-41.984 40.96z m-540.672-81.92h500.736V345.088L677.888 276.48 550.912 167.936H262.144v688.128z"
fill="#ffffff" p-id="3393" data-spm-anchor-id="a313x.7781069.0.i37" class="selected"></path>
</svg>
<span>{{ __('luna.order_search_m') }}</span>
</a>
</div>
</body>
@endsection
@section('js')
<script src="/assets/style/js/clipboard/clipboard.min.js"></script>
<script>
layui.use('layer', function () {
var layer = layui.layer //获得layer模块
var clipboard = new ClipboardJS('.clipboard-but');
clipboard.on('success', function (e) {
layer.msg("{{ __('dujiaoka.prompt.copy_text_success') }}");
});
clipboard.on('error', function (e) {
layer.msg("{{ __('dujiaoka.prompt.copy_text_failed') }}");
});
});
</script>
@endsection
@@ -0,0 +1,108 @@
@extends('luna.layouts.default')
@section('content')
<body>
@include('luna.layouts._nav')
<div class="main">
<div class="layui-row">
<div class="layui-col-md8 layui-col-md-offset2 layui-col-sm12">
<div class="main-box">
<div class="pay-title">
<svg style="margin-bottom: -6px;" t="1603122535052" class="icon" viewBox="0 0 1024 1024"
version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1949" width="27" height="27">
<path
d="M146.432 336.896h-81.92V106.496l40.96-40.96h231.424v81.92H146.432zM336.896 958.464H105.472l-40.96-40.96V687.104h81.92v189.44h190.464zM956.416 336.896h-81.92V147.456H684.032v-81.92h231.424l40.96 40.96zM915.456 958.464H613.376v-81.92h261.12V659.456h81.92v258.048z"
fill="#3C8CE7" p-id="1950" data-spm-anchor-id="a313x.7781069.0.i11"
class="selected"></path>
<path
d="M326.656 334.848h61.44v98.304h-61.44zM415.744 575.488h61.44v133.12h-61.44zM265.216 575.488h61.44v114.688h-61.44zM566.272 575.488h61.44v98.304h-61.44zM706.56 575.488h61.44v154.624h-61.44zM477.184 297.984h61.44v135.168h-61.44zM627.712 329.728h61.44v103.424h-61.44z"
fill="#00EAFF" p-id="1951" data-spm-anchor-id="a313x.7781069.0.i9" class=""></path>
<path d="M10.24 473.088h1003.52v61.44H10.24z" fill="#3C8CE7" p-id="1952"
data-spm-anchor-id="a313x.7781069.0.i12" class="selected"></path>
</svg>
{{ __('dujiaoka.scan_qrcode_to_pay') }}
</div>
<div class="layui-card-body">
<div class="product-info">
<p style="color: #3C8CE7 ;font-size: 18px;font-weight: 700; text-align: center;margin: 20px 0">
{{ __('dujiaoka.payment_method') }}[{{ $payname }}
], {{ __('dujiaoka.pay_order_expiration_date_prompt', ['min' => dujiaoka_config_get('order_expire_time', 5)]) }}
</p>
</div>
<div
style="text-align: center; border: 3px solid #3C8CE7 ;border-radius: 10px;width: 300px;margin: 0 auto;padding-top: 10px;@if(!Agent::isMobile())padding-bottom: 20px;@endif">
<p class="product-pay-price" style="font-size: 16px;color: #737373;">
{{ __('dujiaoka.amount_to_be_paid') }}
: {{ __('dujiaoka.money_symbol') }}{{ $actual_price }}
</p>
<img
src="data:image/png;base64,{!! base64_encode(QrCode::format('png')->size(200)->generate($qr_code)) !!}"
alt="">
@if(Agent::isMobile() && isset($jump_payuri))
<p class="btn" style="margin-bottom: 20px"><a
href="{{ $jump_payuri }}">{{ __('dujiaoka.open_the_app_to_pay') }}</a></p>
@endif
</div>
</div>
</div>
</div>
</div>
</div>
@include('luna.layouts._footer')
<div class="query-m">
<a href="{{ url('order-search') }}">
<svg t="1602926403006" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="3391" width="30" height="30">
<path d="M320.512 428.032h382.976v61.44H320.512zM320.512 616.448h320.512v61.44H320.512z" fill="#ffffff"
p-id="3392" data-spm-anchor-id="a313x.7781069.0.i38" class="selected"></path>
<path
d="M802.816 937.984H221.184l-40.96-40.96V126.976l40.96-40.96h346.112l26.624 10.24 137.216 117.76 98.304 79.872 15.36 31.744v571.392l-41.984 40.96z m-540.672-81.92h500.736V345.088L677.888 276.48 550.912 167.936H262.144v688.128z"
fill="#ffffff" p-id="3393" data-spm-anchor-id="a313x.7781069.0.i37" class="selected"></path>
</svg>
<span>{{ __('luna.order_search_m') }}</span>
</a>
</div>
</body>
@endsection
@section('js')
<script>
var getting = {
url : '{{ url('check-order-status', ['orderSN' => $orderid]) }}',
dataType: 'json',
success : function (res) {
if (res.code === 400001) {
window.clearTimeout(timer);
layer.alert("{{ __('dujiaoka.prompt.order_is_expired') }}", {
icon: 2
}, function () {
window.location.href = '/'
});
}
if (res.code === 200) {
window.clearTimeout(timer);
layer.alert("{{ __('dujiaoka.prompt.payment_successful') }}", {
icon : 1,
closeBtn: 0
}, function () {
window.location.href = "{{ url('detail-order-sn', ['orderSN' => $orderid]) }}"
});
}
}
};
var timer = window.setInterval(function () {
$.ajax(getting)
}, 5000);
</script>
@endsection
@@ -0,0 +1,132 @@
@extends('luna.layouts.default')
@section('content')
<body>
@include('luna.layouts._nav')
<style>
.layui-table td, .layui-table th {
padding: 9px 5px;
}
</style>
<div class="main">
<div class="layui-row">
<div class="layui-col-md8 layui-col-md-offset2 layui-col-sm12">
<div class="main-box">
<div class="pay-title">
<svg style="margin-bottom: -6px;" t="1603120404646" class="icon" viewBox="0 0 1024 1024"
version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1611" width="27" height="27">
<path d="M320.512 428.032h382.976v61.44H320.512zM320.512 616.448h320.512v61.44H320.512z"
fill="#00EAFF" p-id="1612" data-spm-anchor-id="a313x.7781069.0.i3"
class="selected"></path>
<path
d="M802.816 937.984H221.184l-40.96-40.96V126.976l40.96-40.96h346.112l26.624 10.24 137.216 117.76 98.304 79.872 15.36 31.744v571.392l-41.984 40.96z m-540.672-81.92h500.736V345.088L677.888 276.48 550.912 167.936H262.144v688.128z"
fill="#3C8CE7" p-id="1613" data-spm-anchor-id="a313x.7781069.0.i0" class=""></path>
</svg>
{{ __('dujiaoka.order_search') }}
</div>
<div class="layui-card-body">
<p style="color: #3C8CE7;font-size: 18px;font-weight: 700; text-align: center;margin: 20px 0">
{{ __('dujiaoka.prompt.search_order_browser_tips') }}
</p>
<div class="layui-tab">
<ul class="layui-tab-title">
<li class="layui-this">{{ __('dujiaoka.order_search_by_sn') }}</li>
<li>{{ __('dujiaoka.order_search_by_email') }}</li>
<li>{{ __('dujiaoka.order_search_by_browser') }}</li>
</ul>
<div class="layui-tab-content" style="text-align: center">
<!-- 订单号查询 -->
<div class="layui-tab-item layui-show">
<form class="layui-form" action="{{ url('search-order-by-sn') }}" method="post">
{{ csrf_field() }}
<div class="entry">
<span class="l-msg">{{ __('order.fields.order_sn') }}:</span>
<label class="input">
<input type="text" name="order_sn" required="" lay-verify="required"
placeholder=""
autocomplete="off">
</label>
</div>
<div class="btn">
<button lay-submit lay-filter="orderByid">
{{ __('dujiaoka.search_now') }}
</button>
</div>
</form>
</div>
<!-- 邮箱查询 -->
<div class="layui-tab-item">
<form class="layui-form" action="{{ url('search-order-by-email') }}" method="post">
{{ csrf_field() }}
<div class="entry">
<span class="l-msg">{{ __('order.fields.email') }}:</span>
<label class="input">
<input type="email" name="email" required lay-verify="required"
placeholder="" autocomplete="off">
</label>
</div>
@if(dujiaoka_config_get('is_open_search_pwd', \App\Models\BaseModel::STATUS_CLOSE) == \App\Models\BaseModel::STATUS_OPEN)
<div class="entry">
<span class="l-msg">{{ __('order.fields.search_pwd') }}:</span>
<label class="input">
<input type="password" name="search_pwd"
required lay-verify="required"
placeholder=""
autocomplete="off">
</label>
</div>
@endif
<div class="btn">
<button lay-submit lay-filter="orderByAccount">
{{ __('dujiaoka.search_now') }}
</button>
</div>
</form>
</div>
<!-- 浏览器缓存 -->
<div class="layui-tab-item">
<form class="layui-form" action="{{ url('search-order-by-browser') }}" method="post">
{{ csrf_field() }}
<div class="btn">
<button lay-submit lay-filter="searchOrderByBrowser">
{{ __('dujiaoka.search_now') }}
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@include('luna.layouts._footer')
</body>
@endsection
@section('js')
<script>
layui.use(['element', 'form'], function () {
var element = layui.element;
var form = layui.form;
//监听提交
form.on('submit(orderByid)', function (data) {
return true;
});
//监听提交
form.on('submit(orderByAccount)', function (data) {
return true;
});
//监听提交
form.on('submit(searchOrderByBrowser)', function (data) {
return true;
});
});
</script>
@endsection
@@ -0,0 +1,38 @@
@extends('unicorn.layouts.default')
@section('content')
<div class="page-wrapper">
<!-- main start -->
<section class="main-container">
<div class="container">
<div class="good-card">
<div class="row justify-content-center">
<div class="col-md-8 col-12">
<div class="card m-3 border-0">
<div class="card-body p-4">
<h3 class="card-title ali-icon">&#xe651; {{ $title }} </h3>
<h6>
<small class="text-muted">似乎遇到了一点问题~</small>
</h6>
<div class="err-message text-center p-3">
<h5>
{{ $content }}
</h5>
</div>
<div class="col-12 mt-3 text-center">
@if(!$url)
<a href="javascript:history.back(-1);" class="btn btn-outline-dark">{{ __('dujiaoka.callback') }}</a>
@else
<a href="{{ $url }}" class="btn btn-outline-dark">{{ __('dujiaoka.callback') }}</a>
@endif
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- main end -->
</div>
@stop
@@ -0,0 +1,14 @@
<!-- footer start-->
<footer class="footer p-3">
<div class="row">
<div class="col-12 text-center">
<div class="author">
Powered by<a href="http://dujiaoka.com">@独角数卡</a>
</div>
<div class="custom">
{!! dujiaoka_config_get('footer') !!}
</div>
</div>
</div>
</footer>
<!-- footer end-->
@@ -0,0 +1,16 @@
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ isset($page_title) ? $page_title : '' }} | {{ dujiaoka_config_get('title') }}</title>
<meta name="Keywords" content="{{ dujiaoka_config_get('keywords') }}">
<meta name="Description" content="{{ dujiaoka_config_get('description') }}">
@if(\request()->getScheme() == "https")
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
@endif
<link rel="stylesheet" href="/assets/unicorn/css/bootstrap.min.css">
<link rel="stylesheet" href="/assets/unicorn/css/base.css">
<link rel="stylesheet" href="/assets/unicorn/css/common.css">
<link rel="stylesheet" href="/assets/unicorn/css/index.css">
</head>
@@ -0,0 +1,51 @@
<!-- header start -->
<header class="header sticky-top">
<div class="container">
<div class="row">
<div class="col-md-3">
<div class="header-left clearfix">
<div class="logo text-center d-none d-md-block">
<a href="/">
<img src="{{ picture_ulr(dujiaoka_config_get('img_logo')) }}" alt="Logo">
</a>
</div>
</div>
</div>
<div class="col-md-9">
<div class="header-right clearfix">
<nav class="navbar navbar-expand-lg navbar-light">
<div class="container-fluid">
<a class="navbar-brand" href="/">{{ dujiaoka_config_get('text_logo') }}</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse"
data-bs-target="#navbarColor" aria-controls="navbarColor" aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarColor">
<ul class="navbar-nav me-auto">
<li class="nav-item">
<a class="nav-link @if(\Illuminate\Support\Facades\Request::path() == '/') active @endif " href="/">{{__('dujiaoka.home_page')}}
</a>
</li>
<li class="nav-item">
<a class="nav-link @if(\Illuminate\Support\Facades\Request::url() == url('order-search')) active @endif" href="{{ url('order-search') }}">{{ __('dujiaoka.order_search') }}</a>
</li>
</ul>
@if(\Illuminate\Support\Facades\Request::path() == '/')
<form class="d-flex">
<input class="form-control form-control-sm me-sm-2" id="searchText" type="text" placeholder="{{ __('dujiaoka.search_goods_name') }}">
<button class="btn btn-secondary my-2 my-sm-0" type="button" id="searchBtn">
<i class="ali-icon">&#xe65c;</i>
</button>
</form>
@endif
</div>
</div>
</nav>
</div>
</div>
</div>
</div>
</header>
<!-- header end -->
@@ -0,0 +1,2 @@
<script src="/assets/unicorn/js/jquery-3.6.0.min.js"></script>
<script src="/assets/unicorn/js/bootstrap.min.js"></script>
@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_','-',strtolower(app()->getLocale())) }}">
@include('unicorn.layouts._header')
<body>
@include('unicorn.layouts._nav')
@yield('content')
@include('unicorn.layouts._footer')
</body>
@include('unicorn.layouts._script')
@section('js')
@show
</html>
@@ -0,0 +1,31 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_','-',strtolower(app()->getLocale())) }}">
<body>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ isset($page_title) ? $page_title : '' }} | {{ dujiaoka_config_get('title') }}</title>
<meta name="keywords" content="{{ $gd_keywords }}">
<meta name="description" content="{{ $gd_description }}">
<meta property="og:type" content="article">
<meta property="og:image" content="{{ $picture }}">
<meta property="og:title" content="{{ isset($page_title) ? $page_title : '' }}">
<meta property="og:description" content="{{ $gd_description }}">
<meta property="og:release_date" content="{{ $updated_at }}">
@if(\request()->getScheme() == "https")
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
@endif
<link rel="stylesheet" href="/assets/unicorn/css/bootstrap.min.css">
<link rel="stylesheet" href="/assets/unicorn/css/base.css">
<link rel="stylesheet" href="/assets/unicorn/css/common.css">
<link rel="stylesheet" href="/assets/unicorn/css/index.css">
</head>
@include('unicorn.layouts._nav')
@yield('content')
@include('unicorn.layouts._footer')
</body>
@include('unicorn.layouts._script')
@section('js')
@show
</html>
@@ -0,0 +1,63 @@
@extends('unicorn.layouts.default')
@section('content')
<!-- main start -->
<section class="main-container">
<div class="container">
<div class="good-card">
<div class="row justify-content-center">
<div class="col-md-8 col-12">
<div class="card m-3">
<div class="card-body p-2 text-center">
<h3 class="card-title text-primary ali-icon">&#xe832;{{ __('dujiaoka.confirm_order') }}</h3>
</div>
<div class="card card-body p-3 border-0">
<div class="mx-auto">
<h5>
<small class="text-muted">{{ __('order.fields.order_sn') }}{{ $order_sn }}</small>
</h5>
<div class="mb-1">
<label>{{ __('order.fields.title') }}</label><span>{{ $title }}</span>
</div>
<div class="mb-1"><label>{{ __('order.fields.goods_price') }}</label><span> {{ $goods_price }}</span></div>
<div class="mb-1"><label>{{ __('order.fields.buy_amount') }}</label><span>{{ $buy_amount }}</span></div>
<div class="mb-1"><label>{{ __('order.fields.email') }}</label><span>{{ $email }}</span></div>
<div class="mb-1">
<label>{{ __('order.fields.type') }}</label>
@if($type == \App\Models\Order::AUTOMATIC_DELIVERY)
<span class="badge bg-success">{{ __('goods.fields.automatic_delivery') }}</span>
@else
<span class="badge bg-warning">{{ __('goods.fields.manual_processing') }}</span>
@endif
</div>
@if(!empty($coupon))
<div class="mb-1"><label>{{ __('order.fields.coupon_id') }}</label><span>{{ $coupon['coupon'] }}</span></div>
<div class="mb-1"><label>{{ __('order.fields.coupon_discount_price') }}</label><span>{{ __('dujiaoka.money_symbol') }}{{ $coupon_discount_price }}</span></div>
@endif
@if($wholesale_discount_price > 0 )
<div class="mb-1"><label>{{ __('order.fields.wholesale_discount_price') }}</label><span>{{ __('dujiaoka.money_symbol') }}{{ $wholesale_discount_price }}</span></div>
@endif
@if(!empty($info))
<div class="mb-1"><label>{{ __('dujiaoka.order_information') }}</label><p>{{ $info }}</p></div>
@endif
<div class="mb-1"><label>{{ __('order.fields.actual_price') }}</label><span>{{ __('dujiaoka.money_symbol') }}{{ $actual_price }}</span></div>
<div class="mb-1"><label>{{ __('dujiaoka.payment_method') }}</label><span>{{ $pay['pay_name'] }}</span></div>
<div class="mb-1"><label>{{ __('order.fields.order_created') }}</label><span>{{ $created_at }}</span></div>
<div class="pay-now text-center mt-3">
<a href="{{ url('pay-gateway', ['handle' => urlencode($pay['pay_handleroute']),'payway' => $pay['pay_check'], 'orderSN' => $order_sn]) }}" type="button" class="btn btn-dark"><i class="ali-icon">&#xe673;</i>
{{ __('dujiaoka.pay_immediately') }}
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- main end -->
@stop
@section('js')
@stop
@@ -0,0 +1,213 @@
@extends('unicorn.layouts.seo')
@section('content')
<!-- main start -->
<section class="main-container">
<div class="container">
<div class="good-card">
<div class="row justify-content-center">
<div class="col-12 col-md-8">
<div class="card mt-3">
<div class="row no-gutters">
<div class="col-md-4">
<img src="{{ picture_ulr($picture) }}"
class="card-img-top p-5" alt="{{ $gd_name }}">
@if($type == \App\Models\Goods::AUTOMATIC_DELIVERY)
<h6><small class="badge bg-success position-absolute top-0 start-0">
<i class="ali-icon">&#xe7db;</i>
{{ __('goods.fields.automatic_delivery') }}</small>
</h6>
@else
<h6>
<small class="badge bg-warning position-absolute top-0 start-0">
<i class="ali-icon">&#xe7db;</i>
{{ __('goods.fields.manual_processing') }}
</small>
</h6>
@endif
</div>
<div class="col-md-8">
<div class="card-body p-4">
<h3 class="card-title">{{ $gd_name }}</h3>
<h6>
<small class="text-muted">{{__('goods.fields.in_stock')}}{{ $in_stock }}</small>
</h6>
@if($buy_limit_num > 0)
<h6><small class="badge bg-danger">
{{__('dujiaoka.purchase_limit')}}({{ $buy_limit_num }})</small>
</h6>
@endif
@if(!empty($wholesale_price_cnf) && is_array($wholesale_price_cnf))
<div class="sale">
@foreach($wholesale_price_cnf as $ws)
<span class="badge bg-dark mt-1 mb-1">
<i class="ali-icon">&#xe77d;</i>
{{ __('dujiaoka.by_amount') }}{{ $ws['number'] }}{{ __('dujiaoka.or_the_above') }},{{ __('dujiaoka.each') }}{{ $ws['price'] }}{{ __('dujiaoka.money_symbol') }}
</span>
@endforeach
</div>
@endif
<div class="buy-form mt-3">
<form action="{{ url('create-order') }}" method="post">
{{ csrf_field() }}
<div class="form-group row">
<div class="col-12">
<h6>{{ __('dujiaoka.price') }}{{ __('dujiaoka.money_symbol') }} {{ $actual_price }}</h6>
</div>
<div class="col-xs-12 col-md-6">
<input type="hidden" name="gid" value="{{ $id }}">
<label for="email" class=" col-form-label">{{ __('dujiaoka.email') }}:</label>
<input type="email" class="form-control form-control-sm"
name="email" id="email" required placeholder="{{ __('dujiaoka.email') }}">
</div>
<div class="col-xs-12 col-md-4">
<label for="shop-number"
class="col-form-label">{{ __('dujiaoka.by_amount') }}:</label>
<input type="number" class="form-control form-control-sm"
id="shop-number" name="by_amount" placeholder="" min="1" value="1">
</div>
@if(isset($open_coupon))
<div class="col-xs-12 col-md-6">
<label for="coupon" class="col-form-label">{{ __('dujiaoka.coupon_code') }}:</label>
<input type="text"
class=" control form-control form-control-sm"
id="coupon" name="coupon_code" placeholder="" value="" >
</div>
@endif
@if(dujiaoka_config_get('is_open_search_pwd') == \App\Models\Goods::STATUS_OPEN)
<div class="col-xs-12 col-md-6">
<label for="search_pwd" class="col-form-label">{{ __('dujiaoka.search_password') }}:</label>
<input type="text"
class=" control form-control form-control-sm"
id="search_pwd" name="search_pwd" required placeholder="" value="" >
</div>
@endif
@if(dujiaoka_config_get('is_open_img_code') == \App\Models\Goods::STATUS_OPEN)
<div class="col-12 col-md-6">
<label for="verifyCode" class=" col-form-label">{{ __('dujiaoka.img_verify_code') }}:</label>
<div class="input-group">
<input type="text" name="img_verify_code" class="form-control form-control-sm"
id="verifyCode" required placeholder="">
<img style="margin-left: 10px;" src="{{ captcha_src('buy') . time() }}"
height="33px" alt="{{ __('dujiaoka.img_verify_code') }}" onclick="refresh()" id="imageCode">
<script>
function refresh(){
$('#imageCode').attr('src','{{ captcha_src('buy') }}'+Math.random());
}
</script>
</div>
</div>
@endif
</div>
<div class="form-group row">
@if($type == \App\Models\Goods::MANUAL_PROCESSING && is_array($other_ipu))
@foreach($other_ipu as $ipu)
<div class="col-xs-12 col-md-6">
<label for="{{ $ipu['field'] }}" class="col-form-label">{{ $ipu['desc'] }}:</label>
<input type="text"
class=" control form-control form-control-sm"
id="{{ $ipu['field'] }}" name="{{ $ipu['field'] }}" @if($ipu['rule'] !== false) required @endif placeholder="{{ $ipu['placeholder'] }}">
</div>
@endforeach
@endif
<div class="col-12">
<fieldset>
<label for="coupon" class="col-form-label">{{ __('dujiaoka.payment_method') }}</label>
@foreach($payways as $index => $way)
<div class="form-check form-check-inline">
<label class="form-check-label">
<input type="radio" class="form-check-input"
name="payway" value="{{ $way['id'] }}" @if($index == 0) checked="checked" @endif>
{{ $way['pay_name'] }}
</label>
</div>
@endforeach
</fieldset>
</div>
<div class="col-12 mt-2">
<button type="submit" id="submit" class="btn btn-outline-primary"> <i
class="ali-icon">&#xe7d8;</i> {{ __('dujiaoka.order_now') }}</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row justify-content-center">
<div class="col-12 col-md-8">
<div class="card mt-3 mb-3">
<div class="card-header">
<h5>{{ __('goods.fields.description') }}</h5>
</div>
<div class="card-body">
{!! $description !!}
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- main end -->
<!-- Modal -->
<div class="modal fade" id="staticBackdrop" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="staticBackdropLabel">{{ __('goods.fields.buy_prompt') }}</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
{!! $buy_prompt !!}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{{ __('dujiaoka.close') }}</button>
</div>
</div>
</div>
</div>
<!-- Modal end -->
@stop
@section('js')
<script src="/assets/unicorn/js/bootstrap-input-spinner.js"></script>
<script>
@if(!empty($buy_prompt))
var myModal = new bootstrap.Modal(document.getElementById('staticBackdrop'))
$(function(){
myModal.show()
});
@endif
$("input[type='number']").inputSpinner();
$('#submit').click(function(){
if($("input[name='by_amount']").val() > {{ $in_stock }}){
{{-- 数量不允许大于库存 --}}
$(".modal-body").html("{{ __('dujiaoka.prompt.inventory_shortage') }}")
myModal.show()
return false;
}
@if($buy_limit_num > 0)
if($("input[name='by_amount']").val() > {{ $buy_limit_num }}){
{{-- 已超过限购数量 --}}
$(".modal-body").html("{{ __('dujiaoka.prompt.purchase_limit_exceeded') }}")
myModal.show()
return false;
}
@endif
});
</script>
@stop
@@ -0,0 +1,189 @@
@extends('unicorn.layouts.default')
@section('content')
<div class="notice" >
<div class="container">
<div class="row">
<div class="col-12">
<div class="card mt-3">
<div class="card-body">
<div class="jumbotron jumbotron-fluid p-1">
<div class="container">
<h4 class="">{{ __('dujiaoka.site_announcement') }}</h4>
<p class="lead">{!! dujiaoka_config_get('notice') !!}</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- main start -->
<section class="main-container">
<!-- category start -->
<div class="category">
<div class="container">
<div class="row">
<div class="col-md-12">
<h3 class="text-center">
<span style="vertical-align: inherit;">
{{ __('dujiaoka.equipment.what_do_you_need_today') }}
</span>
</h3>
<div class="separator"></div>
<p class="lead text-center">
<span style="vertical-align: inherit;">
{{ __('dujiaoka.equipment.self_promotion') }}
</span>
</p>
</div>
<div class="col-md-12">
<div class="category-menus">
<ul class="nav nav-pills justify-content-center">
<li class="nav-item">
<a href="#group-all" data-bs-toggle="tab" class="btn btn-outline-secondary active">{{ __('dujiaoka.group_all') }}</a>
</li>
@foreach($data as $index => $group)
<li class="nav-item">
<a href="#group-{{ $group['id'] }}" data-bs-toggle="tab" class="btn btn-outline-secondary">{{ $group['gp_name'] }}</a>
</li>
@endforeach
</ul>
</div>
</div>
</div>
</div>
</div>
<!-- category end -->
<!-- goods start -->
<div class="goods">
<div class="container">
<div class="goods-list mb-5">
<div id="goodsTabContent" class="tab-content">
<div class="tab-pane fade active show" id="group-all">
<div class="row row-cols-2 row-cols-md-5 g-4">
@foreach($data as $index => $group)
@foreach($group['goods'] as $goods)
<div class="col">
<div class="card position-relative">
@if($goods['type'] == \App\Models\Goods::AUTOMATIC_DELIVERY)
<span class="badge bg-success position-absolute top-0 start-0">
<i class="ali-icon">&#xe7db;</i>
{{ __('goods.fields.automatic_delivery') }}
</span>
@else
<span class="badge bg-warning position-absolute top-0 start-0">
<i class="ali-icon">&#xe74b;</i>
{{ __('goods.fields.manual_processing') }}
</span>
@endif
<img src="{{ picture_ulr($goods['picture']) }}" class="card-img-top" alt="{{ $goods['gd_name'] }}">
<div class="card-body">
<h6 class="card-title text-truncate">
{{ $goods['gd_name'] }}
</h6>
<button type="button" class="btn btn-sm btn-outline-success">
<i class="ali-icon">&#xe703;</i>
<strong>{{ $goods['actual_price'] }}</strong>
</button>
@if($goods['wholesale_price_cnf'])
<button type="button" class="btn btn-sm btn-outline-warning">
<i class="ali-icon">&#xe77d;</i>
{{ __('dujiaoka.home_discount') }}
</button>
@endif
<h6 class="mt-2"><small class="text-muted">{{__('goods.fields.in_stock')}}{{ $goods['in_stock'] }}</small></h6>
<a href="{{ url("/buy/{$goods['id']}") }}" class="btn btn-primary fr">
<i class="ali-icon">&#xe7d8;</i>
{{ __('dujiaoka.order_now') }}
</a>
</div>
</div>
</div>
@endforeach
@endforeach
</div>
</div>
@foreach($data as $index => $group)
<div class="tab-pane fade" id="group-{{ $group['id'] }}">
<div class="row row-cols-2 row-cols-md-5 g-4">
@foreach($group['goods'] as $goods)
<div class="col">
<div class="card position-relative">
@if($goods['type'] == \App\Models\Goods::AUTOMATIC_DELIVERY)
<span class="badge bg-success position-absolute top-0 start-0">
<i class="ali-icon">&#xe7db;</i>
{{ __('goods.fields.automatic_delivery') }}
</span>
@else
<span class="badge bg-warning position-absolute top-0 start-0">
<i class="ali-icon">&#xe74b;</i>
{{ __('goods.fields.manual_processing') }}
</span>
@endif
<img src="{{ picture_ulr($goods['picture']) }}" class="card-img-top" alt="{{ $goods['gd_name'] }}">
<div class="card-body">
<h6 class="card-title text-truncate">
{{ $goods['gd_name'] }}
</h6>
<button type="button" class="btn btn-sm btn-outline-success">
<i class="ali-icon">&#xe703;</i>
<strong>{{ $goods['actual_price'] }}</strong>
</button>
@if($goods['wholesale_price_cnf'])
<button type="button" class="btn btn-sm btn-outline-warning">
<i class="ali-icon">&#xe77d;</i>
{{ __('dujiaoka.home_discount') }}
</button>
@endif
<h6 class="mt-2"><small class="text-muted">{{__('goods.fields.in_stock')}}{{ $goods['in_stock'] }}</small></h6>
<a href="{{ url("/buy/{$goods['id']}") }}" class="btn btn-primary fr">
<i class="ali-icon">&#xe7d8;</i>
{{ __('dujiaoka.order_now') }}
</a>
</div>
</div>
</div>
@endforeach
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
<!-- goods end -->
</section>
<!-- main end -->
@stop
@section('js')
<script>
$("#searchBtn").on("click",function(e){
var search_content = $("#searchText").val();
//var search_content = search_content.toLowerCase();
if($.trim(search_content)!="") {
console.log($.trim(search_content));
$(".col").hide().filter(":contains('"+search_content+"')").show();
} else {
$(".col").show();
}
});
</script>
@stop
@@ -0,0 +1,111 @@
@extends('unicorn.layouts.default')
@section('content')
<!-- main start -->
<section class="main-container">
<div class="container">
<div class="order-card">
<div class="row justify-content-center">
@foreach($orders as $order)
<div class="col-md-8">
<div class="card mt-3">
<div class="row no-gutters">
<div class="col-12 col-md-6">
<div class="card card-body p-3 border-0">
<div class="mx-auto">
<h5>
<small class="text-muted">{{ __('order.fields.order_sn') }}{{ $order['order_sn'] }}</small>
</h5>
<div class="mb-1">
<label>{{ __('order.fields.title') }}</label><span>{{ $order['title'] }}</span>
</div>
<div class="mb-1"><label>{{ __('order.fields.buy_amount') }}</label><span>{{ $order['buy_amount'] }}</span></div>
<div class="mb-1"><label>{{ __('order.fields.order_created') }}</label><span>{{ $order['created_at'] }}</span>
</div>
<div class="mb-1"><label>{{ __('order.fields.email') }}</label><span>{{ $order['email'] }}</span></div>
<div class="mb-1">
<label>{{ __('order.fields.type') }}</label>
@if($order['type'] == \App\Models\Order::AUTOMATIC_DELIVERY)
<span class="badge bg-success">{{ __('goods.fields.automatic_delivery') }}</span>
@else
<span class="badge bg-warning">{{ __('goods.fields.manual_processing') }}</span>
@endif
</div>
<div class="mb-1">
<label>{{ __('order.fields.actual_price') }}</label>
<span>{{ $order['actual_price'] }}</span>
</div>
<div class="mb-1">
<label>{{ __('order.fields.status') }}</label>
@switch($order['status'])
@case(\App\Models\Order::STATUS_EXPIRED)
<span class="badge bg-dark">{{ __('order.fields.status_expired') }}</span>
@break
@case(\App\Models\Order::STATUS_WAIT_PAY)
<span class="badge bg-secondary">{{ __('order.fields.status_wait_pay') }}</span>
@break
@case(\App\Models\Order::STATUS_PENDING)
<span class="badge bg-info">{{ __('order.fields.status_pending') }}</span>
@break
@case(\App\Models\Order::STATUS_PROCESSING)
<span class="badge bg-primary">{{ __('order.fields.status_processing') }}</span>
@break
@case(\App\Models\Order::STATUS_COMPLETED)
<span class="badge bg-success">{{ __('order.fields.status_completed') }}</span>
@break
@case(\App\Models\Order::STATUS_FAILURE)
<span class="badge bg-danger">{{ __('order.fields.status_failure') }}</span>
@break
@case(\App\Models\Order::STATUS_ABNORMAL)
<span class="badge bg-danger">{{ __('order.fields.status_abnormal') }}</span>
@break
@endswitch
</div>
<div class="mb-1">
<label>{{ __('dujiaoka.payment_method') }}</label>
<span>{{ $order['pay']['pay_name'] ?? '' }}</span>
</div>
</div>
</div>
</div>
<div class="col-12 col-md-6">
<div class="card-body">
<h6 class="card-title">{{ __('order.fields.info') }}</h6>
<div class="card-info">
<textarea class="form-control" rows="5">{{ $order['info'] }}</textarea>
</div>
<button id="copy-card" class="btn btn-primary mt-2" data-clipboard-text="{{ $order['info'] }}">{{ __('dujiaoka.copy_text') }}</button>
</div>
</div>
</div>
</div>
</div>
@endforeach
</div>
</div>
</div>
</section>
<!-- main end -->
@stop
@section('js')
<script src="/assets/unicorn/js/clipboard.min.js"></script>
<script>
var clipboard = new ClipboardJS("#copy-card")
clipboard.on('success', function (e) {
alert("{{ __('dujiaoka.prompt.copy_text_success') }}")
});
clipboard.on('error', function (e) {
alert("{{ __('dujiaoka.prompt.copy_text_failed') }}")
});
</script>
@stop
@@ -0,0 +1,55 @@
@extends('unicorn.layouts.default')
@section('content')
<!-- main start -->
<section class="main-container">
<div class="container">
<div class="good-card">
<div class="row justify-content-center">
<div class="col-md-8 col-12">
<div class="card m-3">
<div class="card-body p-4 text-center">
<h3 class="card-title text-primary">{{ __('dujiaoka.scan_qrcode_to_pay') }}</h3>
<h6>
<small class="text-muted">{{ __('dujiaoka.payment_method') }}[{{ $payname }}], {{ __('dujiaoka.pay_order_expiration_date_prompt', ['min' => dujiaoka_config_get('order_expire_time', 5)]) }}</small>
</h6>
<div class="err-messagep-3">
<img src="data:image/png;base64,{!! base64_encode(QrCode::format('png')->size(200)->generate($qr_code)) !!}" alt="{{ __('dujiaoka.scan_qrcode_to_pay') }}" srcset="">
</div>
<h6>
<small class="text-warning">{{ __('dujiaoka.amount_to_be_paid') }}: {{ $actual_price }}</small>
</h6>
@if(Agent::isMobile() && isset($jump_payuri))
<a href="{{ $jump_payuri }}" type="button" class="btn btn-dark">
{{ __('dujiaoka.open_the_app_to_pay') }}</a>
@endif
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- main end -->
@stop
@section('js')
<script>
var getting = {
url:'{{ url('check-order-status', ['orderSN' => $orderid]) }}',
dataType:'json',
success:function(res) {
if (res.code == 400001) {
window.clearTimeout(timer);
alert("{{ __('dujiaoka.prompt.order_is_expired') }}")
setTimeout("window.location.href ='/'",3000);
}
if (res.code == 200) {
window.clearTimeout(timer);
alert("{{ __('dujiaoka.prompt.payment_successful') }}")
setTimeout("window.location.href ='{{ url('detail-order-sn', ['orderSN' => $orderid]) }}'",3000);
}
}
};
var timer = window.setInterval(function(){$.ajax(getting)},5000);
</script>
@stop
@@ -0,0 +1,91 @@
@extends('unicorn.layouts.default')
@section('content')
<!-- main start -->
<section class="main-container">
<div class="container">
<div class="good-card">
<div class="row justify-content-center">
<div class="col-md-8 col-12">
<div class="card m-3">
<div class="card-body p-4">
<h3 class="card-title">{{ __('dujiaoka.order_search') }}</h3>
<h6>
<small class="text-muted">{{ __('dujiaoka.prompt.search_order_browser_tips') }}</small>
</h6>
<div class="buy-form mt-3">
<ul class="nav nav-pills mb-3">
<li class="nav-item">
<a class="nav-link active" data-bs-toggle="tab" href="#order_search_by_sn">{{ __('dujiaoka.order_search_by_sn') }}</a>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="tab" href="#order_search_by_email">{{ __('dujiaoka.order_search_by_email') }}</a>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="tab" href="#order_search_by_browser">{{ __('dujiaoka.order_search_by_browser') }}</a>
</li>
</ul>
<div id="searchTabContent" class="tab-content">
<div class="tab-pane fade active show" id="order_search_by_sn">
<form action="{{ url('search-order-by-sn') }}" method="post" >
{{ csrf_field() }}
<div class="form-group row">
<div class="col-12 col-md-8">
<label for="orderSN" class="col-form-label">{{ __('order.fields.order_sn') }}:</label>
<input type="text" class="form-control form-control-sm"
id="orderSN" name="order_sn" required placeholder="{{ __('order.fields.order_sn') }}">
</div>
<div class="col-12 mt-3">
<button type="submit" class="btn btn-outline-primary">
<i class="ali-icon">&#xe65c;</i> {{ __('dujiaoka.search_now') }}</button>
</div>
</div>
</form>
</div>
<div class="tab-pane fade" id="order_search_by_email">
<form action="{{ url('search-order-by-email') }}" method="post">
{{ csrf_field() }}
<div class="form-group row">
<div class="col-12 col-md-8">
<label for="email" class="col-form-label">{{ __('order.fields.email') }}:</label>
<input type="email" class="form-control form-control-sm"
id="email" name="email" required placeholder="">
</div>
@if(dujiaoka_config_get('is_open_search_pwd', \App\Models\BaseModel::STATUS_CLOSE) == \App\Models\BaseModel::STATUS_OPEN)
<div class="col-12 col-md-8">
<label for="searchPwd" class="col-form-label">{{ __('order.fields.search_pwd') }}:</label>
<input type="password" class="form-control form-control-sm"
id="searchPwd" name="search_pwd" required placeholder="">
</div>
@endif
<div class="col-12 mt-3">
<button type="submit" class="btn btn-outline-primary">
<i class="ali-icon">&#xe65c;</i> {{ __('dujiaoka.search_now') }}</button>
</div>
</div>
</form>
</div>
<div class="tab-pane fade" id="order_search_by_browser">
<form action="{{ url('search-order-by-browser') }}" method="post">
{{ csrf_field() }}
<div class="form-group row">
<div class="col-12 mt-3">
<button type="submit" class="btn btn-outline-primary">
<i class="ali-icon">&#xe65c;</i> {{ __('dujiaoka.search_now') }}</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- main end -->
@stop
@section('js')
@stop
+55
View File
@@ -0,0 +1,55 @@
<script src="https://cdn.bootcss.com/jquery/2.1.0/jquery.min.js"></script>
<script src="https://static.geetest.com/static/tools/gt.js"></script>
<div id="{{ $captchaid }}"></div>
<p id="wait-{{ $captchaid }}" class="show">loading...</p>
<!-- wcccc -->
@define use Illuminate\Support\Facades\Config
<script>
var geetest = function(url) {
var handlerEmbed = function(captchaObj) {
$("#{{ $captchaid }}").closest('form').submit(function(e) {
var validate = captchaObj.getValidate();
if (!validate) {
layer.msg('{{ __('dujiaoka.please_complete_the_behavior_verification_correctly')}}', {
icon: 5
})
e.preventDefault();
}
});
captchaObj.appendTo("#{{ $captchaid }}");
captchaObj.onReady(function() {
$("#wait-{{ $captchaid }}")[0].className = "hide";
});
captchaObj.onSuccess(function () {$('#GeetestCaptcha').attr("placeholder",'{{ __('dujiaoka.success_behavior_verification') }}')})
if ('{{ $product }}' == 'popup') {
//captchaObj.bindOn($('#{{ $captchaid }}').closest('form').find(':submit'));
captchaObj.appendTo("#{{ $captchaid }}");
}
};
$.ajax({
url: url + "?t=" + (new Date()).getTime(),
type: "get",
dataType: "json",
success: function(data) {
initGeetest({
gt: data.gt,
challenge: data.challenge,
product: "{{ 'popup' }}",
offline: !data.success,
new_captcha: data.new_captcha,
lang: '{{ dujiaoka_config_get('language') ?? 'zh_CN' }}',
http: '{{ (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://" }}' + '://'
}, handlerEmbed);
}
});
};
(function() {
geetest('{{ '/check-geetest' }}');
})();
</script>
<style>
.hide {
display: none;
}
</style>