优化文件管理器出发条件、优化前台商品详情、优化pages
This commit is contained in:
parent
2e4115dbe6
commit
ec7dbb1da2
|
|
@ -147,43 +147,43 @@
|
|||
min-height: 1000px;
|
||||
}
|
||||
|
||||
.h-min-100 {
|
||||
.s-min-100 {
|
||||
min-width: 100px;
|
||||
}
|
||||
|
||||
.h-min-200 {
|
||||
.s-min-200 {
|
||||
min-width: 200px;
|
||||
}
|
||||
|
||||
.h-min-300 {
|
||||
.s-min-300 {
|
||||
min-width: 300px;
|
||||
}
|
||||
|
||||
.h-min-400 {
|
||||
.s-min-400 {
|
||||
min-width: 400px;
|
||||
}
|
||||
|
||||
.h-min-500 {
|
||||
.s-min-500 {
|
||||
min-width: 500px;
|
||||
}
|
||||
|
||||
.h-min-600 {
|
||||
.s-min-600 {
|
||||
min-width: 600px;
|
||||
}
|
||||
|
||||
.h-min-700 {
|
||||
.s-min-700 {
|
||||
min-width: 700px;
|
||||
}
|
||||
|
||||
.h-min-800 {
|
||||
.s-min-800 {
|
||||
min-width: 800px;
|
||||
}
|
||||
|
||||
.h-min-900 {
|
||||
.s-min-900 {
|
||||
min-width: 900px;
|
||||
}
|
||||
|
||||
.h-min-1000 {
|
||||
.s-min-1000 {
|
||||
min-width: 1000px;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -168,43 +168,43 @@ body[class^=page-account-] {
|
|||
min-height: 1000px;
|
||||
}
|
||||
|
||||
.h-min-100 {
|
||||
.w-min-100 {
|
||||
min-width: 100px;
|
||||
}
|
||||
|
||||
.h-min-200 {
|
||||
.w-min-200 {
|
||||
min-width: 200px;
|
||||
}
|
||||
|
||||
.h-min-300 {
|
||||
.w-min-300 {
|
||||
min-width: 300px;
|
||||
}
|
||||
|
||||
.h-min-400 {
|
||||
.w-min-400 {
|
||||
min-width: 400px;
|
||||
}
|
||||
|
||||
.h-min-500 {
|
||||
.w-min-500 {
|
||||
min-width: 500px;
|
||||
}
|
||||
|
||||
.h-min-600 {
|
||||
.w-min-600 {
|
||||
min-width: 600px;
|
||||
}
|
||||
|
||||
.h-min-700 {
|
||||
.w-min-700 {
|
||||
min-width: 700px;
|
||||
}
|
||||
|
||||
.h-min-800 {
|
||||
.w-min-800 {
|
||||
min-width: 800px;
|
||||
}
|
||||
|
||||
.h-min-900 {
|
||||
.w-min-900 {
|
||||
min-width: 900px;
|
||||
}
|
||||
|
||||
.h-min-1000 {
|
||||
.w-min-1000 {
|
||||
min-width: 1000px;
|
||||
}
|
||||
|
||||
|
|
@ -869,16 +869,13 @@ body.page-product .peoduct-info .rating-wrap .rating i {
|
|||
color: #fd560f;
|
||||
}
|
||||
body.page-product .peoduct-info .price-wrap {
|
||||
margin-bottom: 2rem;
|
||||
margin-bottom: 2.4rem;
|
||||
}
|
||||
body.page-product .peoduct-info .price-wrap .new-price {
|
||||
margin-right: 0.6rem;
|
||||
font-size: 1.6rem;
|
||||
line-height: 1;
|
||||
}
|
||||
body.page-product .peoduct-info .attribute-wrap {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
body.page-product .peoduct-info .quantity-btns .quantity-input {
|
||||
max-width: 5rem;
|
||||
text-align: center;
|
||||
|
|
|
|||
|
|
@ -2176,6 +2176,28 @@ __webpack_require__.r(__webpack_exports__);
|
|||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/beike/shop/default/js/header.js":
|
||||
/*!***************************************************!*\
|
||||
!*** ./resources/beike/shop/default/js/header.js ***!
|
||||
\***************************************************/
|
||||
/***/ (() => {
|
||||
|
||||
// offcanvas-search-top
|
||||
$(function () {
|
||||
var myOffcanvas = document.getElementById('offcanvas-search-top');
|
||||
myOffcanvas.addEventListener('shown.bs.offcanvas', function () {
|
||||
$('#offcanvas-search-top input').focus();
|
||||
$('#offcanvas-search-top input').keydown(function (e) {
|
||||
if (e.keyCode == 13) {
|
||||
console.log('enter');
|
||||
$('#offcanvas-search-top .btn-search').click();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/beike/shop/default/js/product.js":
|
||||
/*!****************************************************!*\
|
||||
!*** ./resources/beike/shop/default/js/product.js ***!
|
||||
|
|
@ -2631,11 +2653,14 @@ __webpack_require__.r(__webpack_exports__);
|
|||
/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common */ "./resources/beike/shop/default/js/common.js");
|
||||
/* harmony import */ var _product__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./product */ "./resources/beike/shop/default/js/product.js");
|
||||
/* harmony import */ var _product__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_product__WEBPACK_IMPORTED_MODULE_2__);
|
||||
/* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./header */ "./resources/beike/shop/default/js/header.js");
|
||||
/* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_header__WEBPACK_IMPORTED_MODULE_3__);
|
||||
|
||||
|
||||
window.bk = _common__WEBPACK_IMPORTED_MODULE_1__["default"];
|
||||
window.$http = _js_http__WEBPACK_IMPORTED_MODULE_0__["default"];
|
||||
|
||||
|
||||
bk.getCarts(); // 页面初始加载购物车数据
|
||||
|
||||
bk.slidingFixed();
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
// 生成 100 200 300 ... 1000 的最小宽度
|
||||
@for $i from 1 through 10 {
|
||||
.h-min-#{$i}00 {
|
||||
.s-min-#{$i}00 {
|
||||
min-width: #{$i}00px;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -101,35 +101,17 @@
|
|||
},
|
||||
|
||||
selectButtonClicked() {
|
||||
let that = this;
|
||||
this.loading = true;
|
||||
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '图片管理器',
|
||||
shadeClose: false,
|
||||
skin: 'file-manager-box',
|
||||
scrollbar: false,
|
||||
shade: 0.4,
|
||||
area: ['1060px', '680px'],
|
||||
content: '/{{ admin_name() }}/file_manager',
|
||||
success: function(layerInstance, index) {
|
||||
var iframeWindow = window[layerInstance.find("iframe")[0]["name"]];
|
||||
iframeWindow.callback = function(images) {
|
||||
// if (images.length < 1) {
|
||||
// return;
|
||||
// }
|
||||
that.loading = false;
|
||||
bk.fileManagerIframe(images => {
|
||||
this.loading = false;
|
||||
|
||||
if (that.isLanguage) {
|
||||
that.src[that.tabActiveId] = images[0].path;
|
||||
} else {
|
||||
that.src = images[0].path;
|
||||
}
|
||||
// console.log(that.src);
|
||||
}
|
||||
if (this.isLanguage) {
|
||||
this.src[this.tabActiveId] = images[0].path;
|
||||
} else {
|
||||
this.src = images[0].path;
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -258,9 +258,9 @@
|
|||
},
|
||||
|
||||
saveButtonClicked() {
|
||||
$http.put('design/builder', this.form).then((res) => {
|
||||
layer.msg(res.message)
|
||||
})
|
||||
// $http.put('design/builder', this.form).then((res) => {
|
||||
// layer.msg(res.message)
|
||||
// })
|
||||
},
|
||||
|
||||
selectorShow(index) {
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@
|
|||
|
||||
<script>
|
||||
var $languages = @json($languages);
|
||||
var $language_id = '{{ locale() }}';
|
||||
var $locale = '{{ locale() }}';
|
||||
|
||||
function languagesFill(text) {
|
||||
var obj = {};
|
||||
|
|
|
|||
|
|
@ -24,17 +24,17 @@
|
|||
|
||||
@foreach ($admin_languages as $language)
|
||||
<div class="tab-pane fade {{ $loop->first ? 'show active' : '' }}" id="tab-{{ $language['code'] }}">
|
||||
<x-admin-form-input name="title[{{ $language['code'] }}]" title="信息标题" value="{{ old('title', '') }}" />
|
||||
<x-admin-form-input name="[{{ $language['code'] }}]title" title="信息标题" value="{{ old('title', '') }}" />
|
||||
<x-admin::form.row title="内容">
|
||||
<div class="w-max-1000">
|
||||
<textarea name="content[{{ $language['code'] }}]" data-tinymce-height="600" class="form-control tinymce">
|
||||
<textarea name="[{{ $language['code'] }}]content" data-tinymce-height="600" class="form-control tinymce">
|
||||
{{ old('content', '') }}
|
||||
</textarea>
|
||||
</div>
|
||||
</x-admin::form.row>
|
||||
<x-admin-form-input name="meta_title[{{ $language['code'] }}]" title="Meta Tag 标题" value="{{ old('meta_title', '') }}" />
|
||||
<x-admin-form-input name="meta_description[{{ $language['code'] }}]" title="Meta Tag 描述" value="{{ old('meta_description', '') }}" />
|
||||
<x-admin-form-input name="meta_keyword[{{ $language['code'] }}]" title="Meta Tag 关键字" value="{{ old('meta_keyword', '') }}" />
|
||||
<x-admin-form-input name="[{{ $language['code'] }}]meta_title" title="Meta Tag 标题" value="{{ old('meta_title', '') }}" />
|
||||
<x-admin-form-input name="[{{ $language['code'] }}]meta_description" title="Meta Tag 描述" value="{{ old('meta_description', '') }}" />
|
||||
<x-admin-form-input name="[{{ $language['code'] }}]meta_keyword" title="Meta Tag 关键字" value="{{ old('meta_keyword', '') }}" />
|
||||
<x-admin::form.row title="">
|
||||
<button type="submit" class="mt-3 btn btn-primary">提交</button>
|
||||
</x-admin::form.row>
|
||||
|
|
|
|||
|
|
@ -344,31 +344,17 @@
|
|||
},
|
||||
methods: {
|
||||
addProductImages(skuIndex) {
|
||||
const self = this;
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '图片管理器',
|
||||
shadeClose: false,
|
||||
skin: 'file-manager-box',
|
||||
scrollbar: false,
|
||||
shade: 0.4,
|
||||
area: ['1060px', '680px'],
|
||||
content: `${document.querySelector('base').href}/file_manager`,
|
||||
success: function(layerInstance, index) {
|
||||
var iframeWindow = window[layerInstance.find("iframe")[0]["name"]];
|
||||
iframeWindow.callback = (images) => {
|
||||
if (!isNaN(skuIndex)) {
|
||||
if (self.form.skus[skuIndex].images === null) {
|
||||
self.form.skus[skuIndex].images = images.map(e => e.path)
|
||||
} else {
|
||||
self.form.skus[skuIndex].images.push(...images.map(e => e.path))
|
||||
}
|
||||
return;
|
||||
}
|
||||
self.form.images.push(...images.map(e => e.path))
|
||||
bk.fileManagerIframe(images => {
|
||||
if (!isNaN(skuIndex)) {
|
||||
if (this.form.skus[skuIndex].images === null) {
|
||||
this.form.skus[skuIndex].images = images.map(e => e.path)
|
||||
} else {
|
||||
this.form.skus[skuIndex].images.push(...images.map(e => e.path))
|
||||
}
|
||||
return;
|
||||
}
|
||||
});
|
||||
this.form.images.push(...images.map(e => e.path))
|
||||
})
|
||||
},
|
||||
|
||||
dialogVariablesFormSubmit(form) {
|
||||
|
|
|
|||
|
|
@ -21,26 +21,12 @@ Vue.component('vue-image', {
|
|||
methods: {
|
||||
updateImages() {
|
||||
const self = this;
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '图片管理器',
|
||||
shadeClose: false,
|
||||
skin: 'file-manager-box',
|
||||
scrollbar: false,
|
||||
shade: 0.4,
|
||||
area: ['1060px', '680px'],
|
||||
content: `${document.querySelector('base').href}/file_manager`,
|
||||
success: function(layerInstance, index) {
|
||||
var iframeWindow = window[layerInstance.find("iframe")[0]["name"]];
|
||||
iframeWindow.callback = (images) => {
|
||||
if (images) {
|
||||
self.$emit('input', images[0].path);
|
||||
}
|
||||
}
|
||||
bk.fileManagerIframe(images => {
|
||||
if (images) {
|
||||
self.$emit('input', images[0].path);
|
||||
}
|
||||
});
|
||||
})
|
||||
},
|
||||
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ body[class^="page-account-"] {
|
|||
|
||||
// 生成 100 200 300 ... 1000 的最小宽度
|
||||
@for $i from 1 through 10 {
|
||||
.h-min-#{$i}00 {
|
||||
.w-min-#{$i}00 {
|
||||
min-width: #{$i}00px;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ body.page-product {
|
|||
}
|
||||
|
||||
.price-wrap {
|
||||
margin-bottom: 2rem;
|
||||
margin-bottom: 2.4rem;
|
||||
|
||||
.new-price {
|
||||
margin-right: .6rem;
|
||||
|
|
@ -134,14 +134,6 @@ body.page-product {
|
|||
}
|
||||
}
|
||||
|
||||
.attribute-wrap {
|
||||
margin-bottom: 2rem;
|
||||
|
||||
.table {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.quantity-btns {
|
||||
.quantity-input {
|
||||
max-width: 5rem;
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ window.bk = common;
|
|||
window.$http = http;
|
||||
|
||||
import './product';
|
||||
import './header'
|
||||
|
||||
bk.getCarts(); // 页面初始加载购物车数据
|
||||
bk.slidingFixed();
|
||||
|
|
@ -1,11 +1,13 @@
|
|||
// offcanvas-search-top
|
||||
var myOffcanvas = document.getElementById('offcanvas-search-top')
|
||||
myOffcanvas.addEventListener('shown.bs.offcanvas', function () {
|
||||
$('#offcanvas-search-top input').focus();
|
||||
$('#offcanvas-search-top input').keydown(function (e) {
|
||||
if (e.keyCode == 13) {
|
||||
console.log('enter');
|
||||
$('#offcanvas-search-top .btn-search').click();
|
||||
}
|
||||
$(function() {
|
||||
var myOffcanvas = document.getElementById('offcanvas-search-top')
|
||||
myOffcanvas.addEventListener('shown.bs.offcanvas', function () {
|
||||
$('#offcanvas-search-top input').focus();
|
||||
$('#offcanvas-search-top input').keydown(function (e) {
|
||||
if (e.keyCode == 13) {
|
||||
console.log('enter');
|
||||
$('#offcanvas-search-top .btn-search').click();
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
});
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
{{ Diglactic\Breadcrumbs\Breadcrumbs::render('product', $product) }}
|
||||
|
||||
<div class="row mb-5" id="product-top">
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="col-12 col-lg-6">
|
||||
<div class="product-image d-flex align-items-start">
|
||||
|
||||
<div class="left" v-if="images.length">
|
||||
|
|
@ -44,9 +44,15 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ps-lg-5 col-xl-5 col-lg-6 order-lg-2">
|
||||
<div class="col-12 col-lg-6">
|
||||
<div class="peoduct-info">
|
||||
<h1>{{ $product['name'] }}</h1>
|
||||
<h1 class="mb-4">{{ $product['name'] }}</h1>
|
||||
<div class="stock-and-sku mb-4">
|
||||
<span :class="product.quantity > 0 ? 'text-success' : 'text-secondary'">@{{ product.quantity > 0 ? 'In Stock' : 'Out Stock' }}</span>
|
||||
<span class="ms-3 text-muted">SKU: @{{ product.sku }}</span>
|
||||
<span class="ms-3 text-muted">MODEL: @{{ product.model }}</span>
|
||||
</div>
|
||||
@if (0)
|
||||
<div class="rating-wrap d-flex">
|
||||
<div class="rating">
|
||||
@for ($i = 0; $i < 5; $i++)
|
||||
|
|
@ -55,14 +61,15 @@
|
|||
</div>
|
||||
<span class="text-muted">132 reviews</span>
|
||||
</div>
|
||||
@endif
|
||||
<div class="price-wrap d-flex align-items-end">
|
||||
<div class="new-price">@{{ product.price_format }}</div>
|
||||
<div class="old-price text-muted text-decoration-line-through">@{{ product.origin_price_format }}</div>
|
||||
</div>
|
||||
|
||||
<div class="variables-wrap" v-if="source.variables.length">
|
||||
<div class="variables-wrap mb-4" v-if="source.variables.length">
|
||||
<div class="variable-group mb-2" v-for="variable, variable_index in source.variables" :key="variable_index">
|
||||
<p class="mb-2"><strong>@{{ variable.name }}</strong></p>
|
||||
<p class="mb-2">@{{ variable.name }}</p>
|
||||
<div class="variable-info">
|
||||
<div
|
||||
v-for="value, value_index in variable.values"
|
||||
|
|
@ -75,21 +82,6 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="attribute-wrap">
|
||||
<table class="table table-striped table-borderless">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>型号</td>
|
||||
<td>@{{ product.model }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Sku</td>
|
||||
<td>@{{ product.sku }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="quantity-btns d-flex">
|
||||
<div class="quantity-wrap">
|
||||
<input type="text" class="form-control" :disabled="!product.quantity" onkeyup="this.value=this.value.replace(/\D/g,'')" v-model="quantity" name="quantity">
|
||||
|
|
@ -290,9 +282,8 @@
|
|||
});
|
||||
|
||||
$(document).ready(function () {
|
||||
$('#zoom').trigger('zoom.destroy');
|
||||
$('#zoom').zoom({url: $('#swiper a').attr('data-zoom-image')});
|
||||
$('#zoom').trigger('zoom.destroy');
|
||||
$('#zoom').zoom({url: $('#swiper a').attr('data-zoom-image')});
|
||||
});
|
||||
|
||||
</script>
|
||||
@endpush
|
||||
|
|
|
|||
Loading…
Reference in New Issue