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