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
+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