This commit is contained in:
pushuo 2022-07-13 11:12:12 +08:00
parent f759f7b1b4
commit 95c9e48c0f
24 changed files with 739 additions and 94 deletions

View File

@ -1,3 +1,4 @@
@charset "UTF-8";
body {
font-weight: 400;
line-height: 1.6;
@ -430,8 +431,8 @@ table.table.table-striped > tbody > tr:nth-of-type(2n) {
@font-face {
font-family: "iconfont";
/* Project id 2787822 */
src: url("//at.alicdn.com/t/font_2787822_7mtbg56vojp.woff2?t=1634612961708") format("woff2"), url("//at.alicdn.com/t/font_2787822_7mtbg56vojp.woff?t=1634612961708") format("woff"), url("//at.alicdn.com/t/font_2787822_7mtbg56vojp.ttf?t=1634612961708") format("truetype");
src: url("/vendor/iconfont/iconfont.woff") format("woff"), url("/vendor/iconfont/iconfont.ttf") format("truetype");
/* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
}
.iconfont {
font-family: "iconfont" !important;

228
public/build/beike/admin/css/design.css vendored Normal file
View File

@ -0,0 +1,228 @@
@charset "UTF-8";
@font-face {
font-family: "iconfont";
src: url("/vendor/iconfont/iconfont.woff") format("woff"), url("/vendor/iconfont/iconfont.ttf") format("truetype");
/* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-webkit-text-stroke-width: 0;
-moz-osx-font-smoothing: grayscale;
}
body.page-design {
background-color: #fff;
padding: 0;
margin: 0;
font-size: 14px;
height: 100vh;
overflow: hidden;
}
body.page-design .tag {
margin: 8px 0;
color: #777;
font-size: 12px;
}
body.page-design .icon-rank {
cursor: move;
}
body.page-design .design-box {
display: flex;
height: 100vh;
}
body.page-design .design-box .design-head {
display: flex;
align-items: center;
justify-content: space-between;
}
body.page-design .design-box .design-head > div {
flex: 1;
height: 40px;
color: #fff;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
background-color: #0072ff;
text-align: center;
font-size: 0.8rem;
transition: all 0.2s ease-in-out;
}
body.page-design .design-box .design-head > div:hover {
background-color: #005bcc;
}
body.page-design .design-box .sidebar-edit-wrap {
width: 300px;
background-color: #fff;
}
body.page-design .design-box .sidebar-edit-wrap .module-edit {
padding: 0 10px 14px;
}
body.page-design .design-box .sidebar-edit-wrap .module-edit .module-editor-row {
height: 47px;
line-height: 47px;
background-color: #f5f5f5;
padding: 0 20px;
margin: 0 -14px 14px;
font-size: 16px;
color: #212121;
}
body.page-design .design-box .sidebar-edit-wrap .module-edit .module-edit-group {
margin-bottom: 20px;
}
body.page-design .design-box .sidebar-edit-wrap .module-edit .module-edit-group:last-of-type {
border-bottom: none;
}
body.page-design .design-box .sidebar-edit-wrap .module-edit .module-edit-group .module-edit-title {
margin-bottom: 10px;
position: relative;
padding-left: 6px;
display: flex;
justify-content: space-between;
}
body.page-design .design-box .sidebar-edit-wrap .module-edit .module-edit-group .module-edit-title:before {
content: "";
position: absolute;
left: 0;
top: 3px;
width: 2px;
height: 14px;
background: #0072ff;
}
body.page-design .design-box .sidebar-edit-wrap .modules-list {
background: #e6e9ec;
height: 100%;
overflow-y: auto;
padding: 0 3px 30px;
}
body.page-design .design-box .sidebar-edit-wrap .module-list {
text-align: center;
padding: 4px;
cursor: pointer;
}
body.page-design .design-box .sidebar-edit-wrap .module-list .module-info {
background: #fff;
color: #556068;
transition: all 0.25s ease-in-out;
}
body.page-design .design-box .sidebar-edit-wrap .module-list .module-info:hover {
color: #0072ff;
box-shadow: 0 6px 23px rgba(0, 0, 0, 0.2);
}
body.page-design .design-box .sidebar-edit-wrap .module-list .icon {
padding: 12px 0 7px;
width: 36px;
height: 36px;
display: inline-block;
}
body.page-design .design-box .sidebar-edit-wrap .module-list .icon img {
max-width: 100%;
max-height: auto;
}
body.page-design .design-box .sidebar-edit-wrap .module-list .icon i {
font-size: 26px;
}
body.page-design .design-box .sidebar-edit-wrap .module-list .name {
font-size: 12px;
height: 27px;
overflow: hidden;
}
body.page-design .design-box .preview-iframe {
flex: 1;
}
body.page-design .pb-images-selector {
border: 1px solid #eee;
margin-bottom: 10px;
border-radius: 2px;
}
body.page-design .pb-images-selector:hover {
border-color: #ddd;
}
body.page-design .pb-images-selector:hover .selector-head {
background: #eee;
}
body.page-design .pb-images-selector .pb-images-selector-add {
width: 100%;
margin-top: 16px;
padding: 10px 20px;
}
body.page-design .pb-images-selector .selector-head {
display: flex;
align-items: center;
background-color: #f5f5f5;
padding: 4px 10px;
cursor: pointer;
justify-content: space-between;
}
body.page-design .pb-images-selector .selector-head > div.left {
display: flex;
align-items: center;
}
body.page-design .pb-images-selector .selector-head > div.left i {
margin-right: 10px;
}
body.page-design .pb-images-selector .selector-head > div.left img {
width: 24px;
}
body.page-design .pb-images-selector .selector-head > div.right {
display: flex;
align-items: center;
}
body.page-design .pb-images-selector .selector-head > div.right i {
color: #999;
font-size: 20px;
}
body.page-design .pb-images-selector .selector-head > div.right .remove-item {
margin-right: 8px;
padding-right: 8px;
position: relative;
}
body.page-design .pb-images-selector .selector-head > div.right .remove-item:after {
content: "";
border-right: 1px solid #ccc;
position: absolute;
right: 1px;
top: 20%;
height: 60%;
}
body.page-design .pb-images-selector .selector-head > div.right .remove-item i {
font-size: 15px;
}
body.page-design .pb-images-selector .pb-images-list {
padding: 7px;
padding-bottom: 8px;
position: relative;
display: none;
}
body.page-design .pb-images-selector .pb-images-list.active {
display: block;
}
body.page-design .pb-images-selector .pb-images-list .remove-item {
margin-top: 20px;
background: #ffc8c8;
color: #c70000;
z-index: 9;
height: 20px;
line-height: 20px;
padding: 5px 10px;
text-align: center;
cursor: pointer;
}
body.page-design .pb-images-selector .pb-images-list .remove-item i {
font-size: 14px;
}
body.page-design .pb-images-selector .pb-images-list .pb-image-selector {
cursor: pointer;
min-width: 50px;
min-height: 50px;
}
body.page-design .pb-images-selector .pb-images-list .pb-images-btns button {
margin-left: 0 !important;
padding: 9px 10px;
}
body.page-design .pb-images-selector .pb-images-list .el-input-group__prepend {
padding: 0 10px;
}

View File

@ -0,0 +1,227 @@
@font-face {
font-family: "iconfont";
/* Project id 2787822 */
src: url("//at.alicdn.com/t/font_2787822_7mtbg56vojp.woff2?t=1634612961708") format("woff2"), url("//at.alicdn.com/t/font_2787822_7mtbg56vojp.woff?t=1634612961708") format("woff"), url("//at.alicdn.com/t/font_2787822_7mtbg56vojp.ttf?t=1634612961708") format("truetype");
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-webkit-text-stroke-width: 0;
-moz-osx-font-smoothing: grayscale;
}
body.page-design {
background-color: #fff;
padding: 0;
margin: 0;
font-size: 14px;
height: 100vh;
overflow: hidden;
}
body.page-design .tag {
margin: 8px 0;
color: #777;
font-size: 12px;
}
body.page-design .icon-rank {
cursor: move;
}
body.page-design .design-box {
display: flex;
height: 100vh;
}
body.page-design .design-box .design-head {
display: flex;
align-items: center;
justify-content: space-between;
}
body.page-design .design-box .design-head > div {
flex: 1;
height: 40px;
color: #fff;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
background-color: #0072ff;
text-align: center;
font-size: 0.8rem;
transition: all 0.2s ease-in-out;
}
body.page-design .design-box .design-head > div:hover {
background-color: #005bcc;
}
body.page-design .design-box .sidebar-edit-wrap {
width: 300px;
background-color: #fff;
}
body.page-design .design-box .sidebar-edit-wrap .module-edit {
padding: 0 10px 14px;
}
body.page-design .design-box .sidebar-edit-wrap .module-edit .module-editor-row {
height: 47px;
line-height: 47px;
background-color: #f5f5f5;
padding: 0 20px;
margin: 0 -14px 14px;
font-size: 16px;
color: #212121;
}
body.page-design .design-box .sidebar-edit-wrap .module-edit .module-edit-group {
margin-bottom: 20px;
}
body.page-design .design-box .sidebar-edit-wrap .module-edit .module-edit-group:last-of-type {
border-bottom: none;
}
body.page-design .design-box .sidebar-edit-wrap .module-edit .module-edit-group .module-edit-title {
margin-bottom: 10px;
position: relative;
padding-left: 6px;
display: flex;
justify-content: space-between;
}
body.page-design .design-box .sidebar-edit-wrap .module-edit .module-edit-group .module-edit-title:before {
content: "";
position: absolute;
left: 0;
top: 3px;
width: 2px;
height: 14px;
background: #0072ff;
}
body.page-design .design-box .sidebar-edit-wrap .modules-list {
background: #e6e9ec;
height: 100%;
overflow-y: auto;
padding: 0 3px 30px;
}
body.page-design .design-box .sidebar-edit-wrap .module-list {
text-align: center;
padding: 4px;
cursor: pointer;
}
body.page-design .design-box .sidebar-edit-wrap .module-list .module-info {
background: #fff;
color: #556068;
transition: all 0.25s ease-in-out;
}
body.page-design .design-box .sidebar-edit-wrap .module-list .module-info:hover {
color: #0072ff;
box-shadow: 0 6px 23px rgba(0, 0, 0, 0.2);
}
body.page-design .design-box .sidebar-edit-wrap .module-list .icon {
padding: 12px 0 7px;
width: 36px;
height: 36px;
display: inline-block;
}
body.page-design .design-box .sidebar-edit-wrap .module-list .icon img {
max-width: 100%;
max-height: auto;
}
body.page-design .design-box .sidebar-edit-wrap .module-list .icon i {
font-size: 26px;
}
body.page-design .design-box .sidebar-edit-wrap .module-list .name {
font-size: 12px;
height: 27px;
overflow: hidden;
}
body.page-design .design-box .preview-iframe {
flex: 1;
}
body.page-design .pb-images-selector {
border: 1px solid #eee;
margin-bottom: 10px;
border-radius: 2px;
}
body.page-design .pb-images-selector:hover {
border-color: #ddd;
}
body.page-design .pb-images-selector:hover .selector-head {
background: #eee;
}
body.page-design .pb-images-selector .pb-images-selector-add {
width: 100%;
margin-top: 16px;
padding: 10px 20px;
}
body.page-design .pb-images-selector .selector-head {
display: flex;
align-items: center;
background-color: #f5f5f5;
padding: 4px 10px;
cursor: pointer;
justify-content: space-between;
}
body.page-design .pb-images-selector .selector-head > div.left {
display: flex;
align-items: center;
}
body.page-design .pb-images-selector .selector-head > div.left i {
margin-right: 10px;
}
body.page-design .pb-images-selector .selector-head > div.left img {
width: 24px;
}
body.page-design .pb-images-selector .selector-head > div.right {
display: flex;
align-items: center;
}
body.page-design .pb-images-selector .selector-head > div.right i {
color: #999;
font-size: 20px;
}
body.page-design .pb-images-selector .selector-head > div.right .remove-item {
margin-right: 8px;
padding-right: 8px;
position: relative;
}
body.page-design .pb-images-selector .selector-head > div.right .remove-item:after {
content: "";
border-right: 1px solid #ccc;
position: absolute;
right: 1px;
top: 20%;
height: 60%;
}
body.page-design .pb-images-selector .selector-head > div.right .remove-item i {
font-size: 15px;
}
body.page-design .pb-images-selector .pb-images-list {
padding: 7px;
padding-bottom: 8px;
position: relative;
display: none;
}
body.page-design .pb-images-selector .pb-images-list.active {
display: block;
}
body.page-design .pb-images-selector .pb-images-list .remove-item {
margin-top: 20px;
background: #ffc8c8;
color: #c70000;
z-index: 9;
height: 20px;
line-height: 20px;
padding: 5px 10px;
text-align: center;
cursor: pointer;
}
body.page-design .pb-images-selector .pb-images-list .remove-item i {
font-size: 14px;
}
body.page-design .pb-images-selector .pb-images-list .pb-image-selector {
cursor: pointer;
min-width: 50px;
min-height: 50px;
}
body.page-design .pb-images-selector .pb-images-list .pb-images-btns button {
margin-left: 0 !important;
padding: 9px 10px;
}
body.page-design .pb-images-selector .pb-images-list .el-input-group__prepend {
padding: 0 10px;
}

View File

@ -2099,25 +2099,20 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* provided dependency */ var process = __webpack_require__(/*! process/browser.js */ "./node_modules/process/browser.js");
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
window.axios = __webpack_require__(/*! axios */ "./node_modules/axios/index.js");
var instance = axios.create({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
} // baseURL: 'https://api.example.com'
}); // import axios from "axios";
// import {Message} from 'element-ui';
// import QS from 'qs';
}
});
axios.defaults.timeout = 5000; // 请求超时
// axios.defaults.baseURL = process.env.NODE_ENV == 'production' ? process.env.VUE_APP_BASE_URL + '/' : '/';
// console.log(process.env.VUE_APP_BASE_URL)
axios.defaults.baseURL = process.env.VUE_APP_BASE_URL; // axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
// axios.defaults.headers.post['Content-Type'] = 'application/json';
console.log($('base').attr('href'));
axios.defaults.baseURL = $('base').attr('href');
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
/**
* get 请求
@ -2236,10 +2231,10 @@ axios.defaults.baseURL = process.env.VUE_APP_BASE_URL; // axios.defaults.headers
/***/ }),
/***/ "./resources/beike/shop/default/css/design/app.scss":
/*!**********************************************************!*\
!*** ./resources/beike/shop/default/css/design/app.scss ***!
\**********************************************************/
/***/ "./resources/beike/admin/css/design/app.scss":
/*!***************************************************!*\
!*** ./resources/beike/admin/css/design/app.scss ***!
\***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
@ -2623,7 +2618,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
/******/ "build/beike/admin/css/filemanager": 0,
/******/ "build/beike/admin/css/app": 0,
/******/ "build/beike/admin/css/bootstrap": 0,
/******/ "build/beike/shop/default/css/design/app": 0
/******/ "build/beike/admin/css/design": 0
/******/ };
/******/
/******/ // no chunk on demand loading
@ -2673,13 +2668,13 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module depends on other loaded chunks and execution need to be delayed
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/shop/default/css/design/app"], () => (__webpack_require__("./resources/beike/admin/js/app.js")))
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/shop/default/css/design/app"], () => (__webpack_require__("./resources/beike/admin/css/bootstrap/bootstrap.scss")))
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/shop/default/css/design/app"], () => (__webpack_require__("./resources/beike/admin/css/app.scss")))
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/shop/default/css/design/app"], () => (__webpack_require__("./resources/beike/admin/css/filemanager/app.scss")))
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/shop/default/css/design/app"], () => (__webpack_require__("./resources/beike/shop/default/css/bootstrap/bootstrap.scss")))
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/shop/default/css/design/app"], () => (__webpack_require__("./resources/beike/shop/default/css/app.scss")))
/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/shop/default/css/design/app"], () => (__webpack_require__("./resources/beike/shop/default/css/design/app.scss")))
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design"], () => (__webpack_require__("./resources/beike/admin/js/app.js")))
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design"], () => (__webpack_require__("./resources/beike/admin/css/bootstrap/bootstrap.scss")))
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design"], () => (__webpack_require__("./resources/beike/admin/css/app.scss")))
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design"], () => (__webpack_require__("./resources/beike/admin/css/filemanager/app.scss")))
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design"], () => (__webpack_require__("./resources/beike/shop/default/css/bootstrap/bootstrap.scss")))
/******/ __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design"], () => (__webpack_require__("./resources/beike/shop/default/css/app.scss")))
/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["build/beike/shop/default/css/app","build/beike/shop/default/css/bootstrap","build/beike/admin/css/filemanager","build/beike/admin/css/app","build/beike/admin/css/bootstrap","build/beike/admin/css/design"], () => (__webpack_require__("./resources/beike/admin/css/design/app.scss")))
/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__);
/******/
/******/ })()

View File

@ -2065,25 +2065,20 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* provided dependency */ var process = __webpack_require__(/*! process/browser.js */ "./node_modules/process/browser.js");
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
window.axios = __webpack_require__(/*! axios */ "./node_modules/axios/index.js");
var instance = axios.create({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
} // baseURL: 'https://api.example.com'
}); // import axios from "axios";
// import {Message} from 'element-ui';
// import QS from 'qs';
}
});
axios.defaults.timeout = 5000; // 请求超时
// axios.defaults.baseURL = process.env.NODE_ENV == 'production' ? process.env.VUE_APP_BASE_URL + '/' : '/';
// console.log(process.env.VUE_APP_BASE_URL)
axios.defaults.baseURL = process.env.VUE_APP_BASE_URL; // axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
// axios.defaults.headers.post['Content-Type'] = 'application/json';
console.log($('base').attr('href'));
axios.defaults.baseURL = $('base').attr('href');
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
/**
* get 请求
@ -2488,7 +2483,7 @@ $(document).ready(function ($) {
layer.closeAll('loading');
}
});
$http.get('/carts/mini', null, {
$http.get('carts/mini', null, {
hload: true
}).then(function (res) {
$('.offcanvas-right-cart-amount').html(res.data.amount_format);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 788 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 357 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 KiB

View File

@ -9,11 +9,16 @@
//
@font-face {
font-family: 'iconfont'; /* Project id 2787822 */
src: url('//at.alicdn.com/t/font_2787822_7mtbg56vojp.woff2?t=1634612961708') format('woff2'),
url('//at.alicdn.com/t/font_2787822_7mtbg56vojp.woff?t=1634612961708') format('woff'),
url('//at.alicdn.com/t/font_2787822_7mtbg56vojp.ttf?t=1634612961708') format('truetype');
// @font-face {
// font-family: 'iconfont'; /* Project id 2787822 */
// src: url('//at.alicdn.com/t/font_2787822_7mtbg56vojp.woff2?t=1634612961708') format('woff2'),
// url('//at.alicdn.com/t/font_2787822_7mtbg56vojp.woff?t=1634612961708') format('woff'),
// url('//at.alicdn.com/t/font_2787822_7mtbg56vojp.ttf?t=1634612961708') format('truetype');
// }
@font-face {font-family: 'iconfont';
src: url('/vendor/iconfont/iconfont.woff') format('woff'), /* chrome、firefox */
url('/vendor/iconfont/iconfont.ttf') format('truetype'); /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
}
.iconfont {

View File

@ -10,6 +10,16 @@ body.page-design {
height: 100vh;
overflow: hidden;
.tag {
margin: 8px 0;
color: #777;
font-size: 12px;
}
.icon-rank {
cursor: move;
}
.design-box {
display: flex;
height: 100vh;

View File

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<base href="{{$admin_base_url}}">
<base href="{{ $admin_base_url }}">
<script src="{{ asset('vendor/vue/2.6.12/vue.js') }}"></script>
<script src="{{ asset('vendor/element-ui/2.6.2/js.js') }}"></script>
<script src="{{ asset('vendor/jquery/jquery-3.6.0.min.js') }}"></script>

View File

@ -0,0 +1,188 @@
<template id="pb-image-selector">
<div class="pb-image-selector">
<el-tabs v-if="isLanguage" @tab-click="tabClick" value="language-{{ current_language_id() }}" :stretch="languages.length > 5 ? true : false" type="card" :class="languages.length <= 1 ? 'languages-a' : ''">
<el-tab-pane v-for="(item, index) in languages" :key="index" :label="item.name" :name="'language-' + item.id">
<span slot="label" style="padding: 0 2px">@{{ item.name }}</span>
<div class="i18n-inner">
<div class="img">
<img :src="type == 'image' ? thumbnail(value[item.id]) : 'image/video.png'" :id="'thumb-' + id" @click="selectButtonClicked">
</div>
<div class="btns">
<el-button type="primary" size="mini" plain @click="selectButtonClicked">选择</el-button>
<el-button size="mini" plain style="margin-left: 4px;" @click="removeImage">删除</el-button>
</div>
<input type="hidden" value="" v-model="src" :id="'input-' + id">
</div>
</el-tab-pane>
</el-tabs>
<div class="i18n-inner" v-else>
<img :src="type == 'image' ? thumbnail(value) : 'image/video.png'" :id="'thumb-' + id" @click="selectButtonClicked" style="max-width: 60px; cursor: pointer;border: 1px solid #eee;">
<div class="btns">
<el-button type="primary" size="mini" plain @click="selectButtonClicked">选择</el-button>
<el-button size="mini" plain style="margin-left: 4px;" @click="removeImage">删除</el-button>
</div>
<input type="hidden" value="" v-model="src" :id="'input-' + id">
</div>
</div>
</template>
<script type="text/javascript">
Vue.component('pb-image-selector', {
template: '#pb-image-selector',
props: {
value: {
default: null
},
type: {
default: 'image'
},
isLanguage: { // 是否需要多语言配置
default: true
},
},
data: function () {
return {
tabActiveId: $language_id,
languages: $languages,
internalValues: {},
id: 'image-selector-'+ randomString(4),
loading: null
}
},
created: function () {
if (this.isLanguage) {
this.languages.forEach(e => {
let value = this.value;
if (typeof(this.value) == 'object') {
value = this.value[e.id];
}
Vue.set(this.internalValues, e.id, value || '');
})
this.$emit('input', this.internalValues);
}
},
computed: {
src: {
get() {
return this.value;
},
set(newValue) {
this.$emit('input', newValue);
}
}
},
methods: {
removeImage() {
this.src = '';
},
tabClick(e) {
this.tabActiveId = this.languages[e.index * 1].id;
},
selectButtonClicked() {
let that = this;
this.loading = true;
layer.open({
type: 2,
title: '图片管理器',
shadeClose: false,
scrollbar: false,
shade: 0.8,
area: ['80%', '80%'],
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;
if (that.isLanguage) {
that.src[that.tabActiveId] = images.path;
} else {
that.src = images.path;
}
// console.log(that.src);
}
}
});
}
}
});
</script>
<style scoped>
.pb-image-selector {
}
.languages-a .el-tabs__header {
display: none;
}
.pb-image-selector .btns {
margin-left: 10px;
}
.pb-image-selector .btns .el-button {
padding: 7px 10px;
}
.pb-image-selector .el-tabs__nav {
display: flex;
border-color: #ebecf5;
}
.pb-image-selector .el-tabs__nav > div {
background: #ebecf5;
border-left: 1px solid #d7dbf7 !important;
padding: 0 !important;
flex: 1;
height: 30px;
line-height: 30px;
min-width: 50px;
text-align: center;
}
.pb-image-selector .el-tabs__nav > div:first-of-type {
border-left: none !important;
}
.pb-image-selector .el-tabs__nav > div.is-active {
background: #fff !important;
}
.pb-image-selector .i18n-inner {
margin-top: 5px;
display: flex;
align-items: center;
background: whitesmoke;
padding: 5px;
border-radius: 4px;
}
.pb-image-selector .i18n-inner .img {
width: 46px;
height: 46px;
border: 1px solid #eee;
padding: 2px;
background: #fff;
}
.pb-image-selector .i18n-inner .img img {
max-width: 100%;
height: auto;
}
</style>

View File

@ -7,17 +7,17 @@
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="csrf-token" content="{{ csrf_token() }}">
<base href="{{$admin_base_url}}">
<base href="{{$admin_base_url}}">
<title>首页编辑器</title>
<script src="{{ asset('vendor/jquery/jquery-3.6.0.min.js') }}"></script>
<script src="{{ asset('vendor/layer/3.5.1/layer.js') }}"></script>
<script src="{{ asset('/build/beike/shop/default/js/app.js') }}"></script>
<script src="{{ mix('build/beike/admin/js/app.js') }}"></script>
<script src="{{ asset('vendor/vue/2.6.14/vue.js') }}"></script>
<script src="{{ asset('vendor/vue/Sortable.min.js') }}"></script>
<script src="{{ asset('vendor/vue/vuedraggable.js') }}"></script>
<script src="{{ asset('vendor/element-ui/2.15.6/js.js') }}"></script>
<link rel="stylesheet" href="{{ asset('vendor/element-ui/2.15.6/css.css') }}">
<link rel="stylesheet" type="text/css" href="{{ asset('/build/beike/shop/default/css/design/app.css') }}">
<link rel="stylesheet" type="text/css" href="{{ asset('/build/beike/admin/css/design.css') }}">
@stack('header')
</head>
@ -25,8 +25,8 @@
<div class="design-box">
<div class="sidebar-edit-wrap" id="app" v-cloak>
<div class="design-head">
<div>保存</div>
<div>退出</div>
<div @click="saveButtonClicked">保存</div>
<div @click="exitDesign">退出</div>
</div>
<div class="module-edit" v-if="form.modules.length > 0 && design.editType == 'module'">
<component
@ -61,6 +61,10 @@
var $languages = @json($languages);
var $language_id = {{ current_language_id() }};
Vue.prototype.thumbnail = function thumbnail(image, width, height) {
return '{{ asset('catalog') }}' + image;
};
function randomString(length) {
let str = '';
for (; str.length < length; str += Math.random().toString(36).substr(2));
@ -69,6 +73,7 @@
</script>
@include('admin::pages.design.builder.component.image_selector')
@include('admin::pages.design.builder.component.link_selector')
<script>
let app = new Vue({
@ -127,17 +132,19 @@
this.design.editingModuleIndex = index;
this.design.editType = 'module';
},
saveButtonClicked() {
$http.put('design/builder', this.form).then((res) => {
layer.msg(res.message)
})
},
exitDesign() {
location = '/';
}
},
// 在实例初始化之后组件属性计算之前如data属性等
beforeCreate () {
},
// 在实例创建完成后被立即同步调用
created () {
},
// 在挂载开始之前被调用:相关的 render 函数首次被调用
beforeMount () {
},
// 实例被挂载后调用
mounted () {
},
})

View File

@ -36,7 +36,7 @@
<pb-image-selector v-model="item.image"></pb-image-selector>
<div class="tag">建议尺寸 1920 x 600</div>
</div>
{{-- <link-selector v-model="item.link"></link-selector> --}}
<link-selector v-model="item.link"></link-selector>
</div>
</div>
</draggable>

View File

@ -22,7 +22,7 @@
node-key="path"
:load="loadNode"
lazy
:default-expanded-keys="['/catalog']"
:default-expanded-keys="['/']"
:render-after-expand="false"
highlight-current
ref="tree"
@ -32,11 +32,11 @@
<div>@{{ node.label }}</div>
<div class="right" v-if="node.isCurrent">
<el-tooltip class="item" effect="dark" content="创建文件夹" placement="top">
<span @click.stop="() => {openInputBox('addFolder', data)}"><i class="el-icon-circle-plus-outline"></i></span>
<span @click.stop="() => {openInputBox('addFolder', node, data)}"><i class="el-icon-circle-plus-outline"></i></span>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="重命名" placement="top">
<span v-if="node.level != 1" @click.stop="() => {openInputBox('folder', data)}"><i class="el-icon-edit"></i></span>
<span v-if="node.level != 1" @click.stop="() => {openInputBox('folder', node, data)}"><i class="el-icon-edit"></i></span>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="删除" placement="top">
@ -97,29 +97,14 @@
editingImageIndex: null,
treeInit: [
{
name: '图片空间',
path: '/catalog',
selected: true,
children: [
{
name: '图片空间',
path: '/catalog',
selected: true,
children: [
]
},
]
},
],
treeInit: [],
defaultProps: {
children: 'children',
label: 'name'
},
folderCurrent: '/catalog',
folderCurrent: '/',
triggerLeftOffset: 0,
@ -156,7 +141,7 @@
},
loadData() {
$http.get(`/panel/file_manager?base_folder=${this.folderCurrent}`, {page: this.image_page}).then((res) => {
$http.get(`file_manager?base_folder=${this.folderCurrent}`, {page: this.image_page}).then((res) => {
this.images = res.images
this.image_page = res.image_page
this.image_total = res.image_total
@ -164,14 +149,14 @@
},
loadNode(node, resolve) {
let treeInit = [{name: '图片空间', path: '/catalog', selected: true, children: []}]
let treeInit = [{name: '图片空间', path: '/', selected: true, children: []}]
if (node.level === 0) {
return resolve(treeInit);
}
if (node.level === 1) return resolve(@json($folders));
$http.get(`/panel/file_manager?base_folder=${node.data.path}`).then((res) => {
$http.get(`file_manager?base_folder=${node.data.path}`).then((res) => {
resolve(res.folders);
})
},
@ -243,8 +228,9 @@
}
},
openInputBox(type, data) {
// console.log(data)
openInputBox(type, node, data) {
// console.log(node,data)
// this.$refs.tree.append({name: '图片空间',path: '/dasdasdasdas', children: false, leaf: false}, node);
// console.log(this.editingImageIndex)
this.$prompt('', type=='addFolder' ? '新建文件夹' : '重命名', {
confirmButtonText: '确定',
@ -252,10 +238,15 @@
inputPattern: /^.+$/,
inputErrorMessage: '不能为空'
}).then(({ value }) => {
this.$message({
type: 'success',
message: '你的邮箱是: ' + value
});
console.log(value)
$http.post(`file_manager/directory`, {name: this.folderCurrent + value}).then((res) => {
console.log(res)
// resolve(res.folders);
})
// this.$message({
// type: 'success',
// message: '你的邮箱是: ' + value
// });
}).catch(() => {});
}
},

View File

@ -8,7 +8,7 @@ $(document).ready(function ($) {
complete: function() { layer.closeAll('loading'); },
});
$http.get('/carts/mini', null, {hload: true}).then((res) => {
$http.get('carts/mini', null, {hload: true}).then((res) => {
$('.offcanvas-right-cart-amount').html(res.data.amount_format);
if (res.data.carts.length) {

13
resources/js/http.js vendored
View File

@ -1,17 +1,14 @@
window.axios = require('axios');
const instance = axios.create({
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}
// baseURL: 'https://api.example.com'
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
});
// import axios from "axios";
// import {Message} from 'element-ui';
// import QS from 'qs';
axios.defaults.timeout = 5000; // 请求超时
// axios.defaults.baseURL = process.env.NODE_ENV == 'production' ? process.env.VUE_APP_BASE_URL + '/' : '/';
axios.defaults.baseURL = process.env.VUE_APP_BASE_URL;
// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
// axios.defaults.headers.post['Content-Type'] = 'application/json';
// console.log(process.env.VUE_APP_BASE_URL)
console.log($('base').attr('href'))
axios.defaults.baseURL = $('base').attr('href');
export default {
/**
* get 请求

View File

@ -6,6 +6,7 @@
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>首页</title>
<base href="{{ $shop_base_url }}">
<link rel="stylesheet" type="text/css" href="{{ asset('/build/beike/shop/default/css/bootstrap.css') }}">
<script src="{{ asset('vendor/jquery/jquery-3.6.0.min.js') }}"></script>
<script src="{{ asset('vendor/layer/3.5.1/layer.js') }}"></script>

2
webpack.mix.js vendored
View File

@ -32,7 +32,7 @@ mix.sass('resources/beike/shop/default/css/app.scss', 'public/build/beike/shop/d
mix.js('resources/beike/shop/default/js/app.js', 'public/build/beike/shop/default/js/app.js');
// design
mix.sass('resources/beike/shop/default/css/design/app.scss', 'public/build/beike/shop/default/css/design/app.css');
mix.sass('resources/beike/admin/css/design/app.scss', 'public/build/beike/admin/css/design.css');
if (mix.inProduction()) {
mix.version();