mirror of
https://github.com/crmeb/CRMEB.git
synced 2026-10-30 14:31:04 +00:00
Merge branch 'v5.0.0dev' of https://gitee.com/ZhongBangKeJi/CRMEB into v5.0.0dev
This commit is contained in:
commit
8bb5001dcb
@ -142,7 +142,7 @@ class SystemMenus extends AuthController
|
||||
if ($attPath) {
|
||||
$pathData = [];
|
||||
foreach ($attPath as $vv) {
|
||||
if (strstr($vv, '<') === false || strstr($vv, '?>') === false) {
|
||||
if (strstr($vv, '<') === false) {
|
||||
$pathData[] = $vv;
|
||||
}
|
||||
}
|
||||
|
||||
@ -95,6 +95,7 @@ class SystemFile extends AuthController
|
||||
['full_path', ''],
|
||||
['mark', ''],
|
||||
], true);
|
||||
$full_path = $this->request->param('full_path');
|
||||
if ($full_path == '') return app('json')->fail(100100);
|
||||
$this->services->fileMarkSave($full_path, $mark);
|
||||
return app('json')->success(100000);
|
||||
|
||||
@ -291,10 +291,12 @@ class StoreOrderController
|
||||
return app('json')->status('pay_error', $pay);
|
||||
}
|
||||
case PayServices::OFFLINE_PAY:
|
||||
if ($this->services->setOrderTypePayOffline($order['order_id']))
|
||||
if ($this->services->setOrderTypePayOffline($order['order_id'])) {
|
||||
event('NoticeListener', [$order, 'admin_pay_success_code']);
|
||||
return app('json')->status('success', 410203);
|
||||
else
|
||||
} else {
|
||||
return app('json')->status('success', 410216);
|
||||
}
|
||||
default:
|
||||
$payInfo = $payServices->beforePay($order->toArray(), $paytype, ['quitUrl' => $quitUrl]);
|
||||
return app('json')->status($payInfo['status'], $payInfo['payInfo']);
|
||||
|
||||
@ -136,7 +136,7 @@ class SystemAdminServices extends BaseServices
|
||||
'user_info' => [
|
||||
'id' => $adminInfo->getData('id'),
|
||||
'account' => $adminInfo->getData('account'),
|
||||
'head_pic' => $adminInfo->getData('head_pic'),
|
||||
'head_pic' => get_file_link($adminInfo->getData('head_pic')),
|
||||
'level' => $adminInfo->getData('level'),
|
||||
'real_name' => $adminInfo->getData('real_name'),
|
||||
],
|
||||
|
||||
@ -25,7 +25,7 @@ class SystemFileInfoServices extends BaseServices
|
||||
public function syncfile()
|
||||
{
|
||||
$list = $this->flattenArray($this->scanDirectory());
|
||||
// $this->dao->saveAll($list);
|
||||
$this->dao->saveAll($list);
|
||||
}
|
||||
|
||||
public function scanDirectory($dir = '')
|
||||
|
||||
@ -73,20 +73,25 @@ class Util extends Command
|
||||
$valueJosn = str_replace('https://', 'https:\\\/\\\/', $valueJosn);
|
||||
$prefix = Config::get('database.connections.' . Config::get('database.default') . '.prefix');
|
||||
$sql = [
|
||||
"UPDATE `{$prefix}system_attachment` SET `att_dir` = replace(att_dir ,'{$siteUrl}','{$url}'),`satt_dir` = replace(satt_dir ,'{$siteUrl}','{$url}')",
|
||||
"UPDATE `{$prefix}store_product` SET `image` = replace(image ,'{$siteUrl}','{$url}'),`slider_image` = replace(slider_image ,'{$siteUrlJosn}','{$valueJosn}')",
|
||||
"UPDATE `{$prefix}store_product_attr_value` SET `image` = replace(image ,'{$siteUrl}','{$url}')",
|
||||
"UPDATE `{$prefix}store_seckill` SET `image` = replace(image ,'{$siteUrl}','{$url}'),`images` = replace(images,'{$siteUrlJosn}','{$valueJosn}')",
|
||||
"UPDATE `{$prefix}store_combination` SET `image` = replace(image ,'{$siteUrl}','{$url}'),`images` = replace(images,'{$siteUrlJosn}','{$valueJosn}')",
|
||||
"UPDATE `{$prefix}store_bargain` SET `image` = replace(image ,'{$siteUrl}','{$url}'),`images` = replace(images,'{$siteUrlJosn}','{$valueJosn}')",
|
||||
"UPDATE `{$prefix}system_config` SET `value` = replace(value ,'{$siteUrlJosn}','{$valueJosn}')",
|
||||
"UPDATE `{$prefix}article_category` SET `image` = replace(`image` ,'{$siteUrl}','{$url}')",
|
||||
"UPDATE `{$prefix}article` SET `image_input` = replace(`image_input` ,'{$siteUrl}','{$url}')",
|
||||
"UPDATE `{$prefix}article_category` SET `image` = replace(`image` ,'{$siteUrl}','{$url}')",
|
||||
"UPDATE `{$prefix}article_content` SET `content` = replace(`content` ,'{$siteUrl}','{$url}')",
|
||||
"UPDATE `{$prefix}store_category` SET `pic` = replace(`pic` ,'{$siteUrl}','{$url}')",
|
||||
"UPDATE `{$prefix}diy` SET `value` = replace(value ,'{$siteUrlJosn}','{$valueJosn}'),`default_value` = replace(default_value ,'{$siteUrlJosn}','{$valueJosn}')",
|
||||
"UPDATE `{$prefix}luck_lottery` SET `image` = replace(image ,'{$siteUrlJosn}','{$valueJosn}')",
|
||||
"UPDATE `{$prefix}luck_prize` SET `image` = replace(image ,'{$siteUrlJosn}','{$valueJosn}')",
|
||||
"UPDATE `{$prefix}store_bargain` SET `image` = replace(image ,'{$siteUrl}','{$url}'),`images` = replace(images,'{$siteUrlJosn}','{$valueJosn}')",
|
||||
"UPDATE `{$prefix}store_category` SET `pic` = replace(`pic` ,'{$siteUrl}','{$url}'),`big_pic` = replace(`big_pic` ,'{$siteUrl}','{$url}')",
|
||||
"UPDATE `{$prefix}store_combination` SET `image` = replace(image ,'{$siteUrl}','{$url}'),`images` = replace(images,'{$siteUrlJosn}','{$valueJosn}')",
|
||||
"UPDATE `{$prefix}store_integral` SET `image` = replace(image ,'{$siteUrl}','{$url}'),`images` = replace(images,'{$siteUrlJosn}','{$valueJosn}')",
|
||||
"UPDATE `{$prefix}store_product` SET `image` = replace(image ,'{$siteUrl}','{$url}'),`slider_image` = replace(slider_image ,'{$siteUrlJosn}','{$valueJosn}'),`recommend_image` = replace(recommend_image ,'{$siteUrlJosn}','{$valueJosn}')",
|
||||
"UPDATE `{$prefix}store_product_attr_result` SET `result` = replace(result ,'{$siteUrl}','{$url}')",
|
||||
"UPDATE `{$prefix}store_product_attr_value` SET `image` = replace(image ,'{$siteUrl}','{$url}')",
|
||||
"UPDATE `{$prefix}store_product_description` SET `description`= replace(description,'{$siteUrl}','{$url}')",
|
||||
"UPDATE `{$prefix}store_seckill` SET `image` = replace(image ,'{$siteUrl}','{$url}'),`images` = replace(images,'{$siteUrlJosn}','{$valueJosn}')",
|
||||
"UPDATE `{$prefix}system_attachment` SET `att_dir` = replace(att_dir ,'{$siteUrl}','{$url}'),`satt_dir` = replace(satt_dir ,'{$siteUrl}','{$url}')",
|
||||
"UPDATE `{$prefix}system_config` SET `value` = replace(value ,'{$siteUrlJosn}','{$valueJosn}')",
|
||||
"UPDATE `{$prefix}system_group_data` SET `value` = replace(value ,'{$siteUrlJosn}','{$valueJosn}')",
|
||||
"UPDATE `{$prefix}diy` SET `value` = replace(value ,'{$siteUrlJosn}','{$valueJosn}')",
|
||||
"UPDATE `{$prefix}store_product_description` SET `description`= replace(description,'{$siteUrl}','{$url}')"
|
||||
"UPDATE `{$prefix}user` SET `avatar` = replace(avatar ,'{$siteUrlJosn}','{$valueJosn}')",
|
||||
];
|
||||
|
||||
return Db::transaction(function () use ($sql) {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -406,7 +406,16 @@ switch ($step) {
|
||||
$res = mysqli_query($conn, $addadminsql);
|
||||
$res2 = true;
|
||||
if (isset($_SERVER['SERVER_NAME'])) {
|
||||
$site_url = '\'"http://' . $_SERVER['SERVER_NAME'] . '"\'';
|
||||
if (isset($_SERVER['REQUEST_SCHEME'])) {
|
||||
$request_scheme = $_SERVER['REQUEST_SCHEME'];
|
||||
} else {
|
||||
if ($_SERVER['HTTPS'] == 'on') {
|
||||
$request_scheme = 'https';
|
||||
} else {
|
||||
$request_scheme = 'http';
|
||||
}
|
||||
}
|
||||
$site_url = '\'"' . $request_scheme . '://' . $_SERVER['SERVER_NAME'] . '"\'';
|
||||
$res2 = mysqli_query($conn, 'UPDATE `' . $dbPrefix . 'system_config` SET `value`=' . $site_url . ' WHERE `menu_name`="site_url"');
|
||||
}
|
||||
$arr = array('n' => 999999, 'count' => $counts, 'msg' => '安装完成', 'time' => date('Y-m-d H:i:s'));
|
||||
|
||||
5
template/admin/package-lock.json
generated
5
template/admin/package-lock.json
generated
@ -23078,6 +23078,11 @@
|
||||
"diff-match-patch": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"vue-cropper": {
|
||||
"version": "0.5.11",
|
||||
"resolved": "https://registry.npmmirror.com/vue-cropper/-/vue-cropper-0.5.11.tgz",
|
||||
"integrity": "sha512-UeA3qL2BLCTGkOEAxEsxSNFO+qLYAn6YRHv4oS32cP9lMhF1vFmnAf/z+ZamtR0/Fh3sbZeZUCLVR2Ol2/dpTQ=="
|
||||
},
|
||||
"vue-eslint-parser": {
|
||||
"version": "7.11.0",
|
||||
"resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz",
|
||||
|
||||
@ -84,4 +84,4 @@ export function exportmberCardList(id) {
|
||||
url: `/export/member_card/${id}`,
|
||||
method: 'get',
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -71,10 +71,10 @@ export function crudDownload(id) {
|
||||
/**
|
||||
* @description 代码生成 - 文件编辑
|
||||
*/
|
||||
export function crudSaveFile(id,data) {
|
||||
export function crudSaveFile(id, data) {
|
||||
return request({
|
||||
url: `/system/crud/save_file/${id}`,
|
||||
method: 'post',
|
||||
data
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
@ -16,8 +16,7 @@
|
||||
document.write(
|
||||
'<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>',
|
||||
);
|
||||
} catch (a) {
|
||||
}
|
||||
} catch (a) {}
|
||||
}
|
||||
function t() {
|
||||
o || ((o = !0), h());
|
||||
|
||||
@ -69,14 +69,13 @@ export default {
|
||||
components: {
|
||||
VueCropper,
|
||||
},
|
||||
props: ['Name'],
|
||||
data() {
|
||||
return {
|
||||
name: this.Name,
|
||||
name: '',
|
||||
resImg: '',
|
||||
previews: {},
|
||||
option: {
|
||||
img: this.Name, //裁剪图片的地址
|
||||
img: '', //裁剪图片的地址
|
||||
outputSize: 1, //裁剪生成图片的质量(可选0.1 - 1)
|
||||
outputType: 'png', //裁剪生成图片的格式(jpeg || png || webp)
|
||||
info: true, //图片大小信息
|
||||
@ -84,8 +83,8 @@ export default {
|
||||
autoCrop: true, //是否默认生成截图框
|
||||
autoCropWidth: 200, //默认生成截图框宽度
|
||||
autoCropHeight: 200, //默认生成截图框高度
|
||||
fixed: false, //是否开启截图框宽高固定比例
|
||||
fixedNumber: [1.53, 1], //截图框的宽高比例
|
||||
fixed: true, //是否开启截图框宽高固定比例
|
||||
fixedNumber: [1, 1], //截图框的宽高比例
|
||||
full: false, //false按原比例裁切图片,不失真
|
||||
fixedBox: false, //固定截图框大小,不允许改变
|
||||
canMove: true, //上传图片是否可以移动
|
||||
@ -183,7 +182,6 @@ export default {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
fileUpload(formData).then((res) => {
|
||||
console.log(res);
|
||||
if (res.status == 200) {
|
||||
this.$emit('uploadImgSuccess', res.data);
|
||||
} else {
|
||||
|
||||
@ -62,7 +62,6 @@
|
||||
<span v-else-if="row.user_type === 'h5'">H5</span>
|
||||
<span v-else-if="row.user_type === 'pc'">PC</span>
|
||||
<span v-else>--</span>
|
||||
|
||||
</template>
|
||||
<template slot-scope="{ row, index }" slot="sex">
|
||||
<span v-show="row.sex === 1">男</span>
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
|
||||
<script>
|
||||
import { mapState } from 'vuex';
|
||||
import settings from '@/setting'
|
||||
import settings from '@/setting';
|
||||
import uploadPictures from '@/components/uploadPictures';
|
||||
export default {
|
||||
name: 'c_upload_img',
|
||||
@ -105,7 +105,7 @@ export default {
|
||||
'test-dialog',
|
||||
function (editor, uiName) {
|
||||
let dialog = new window.UE.ui.Dialog({
|
||||
iframeUrl: settings.routePre +'/widget.images/index.html?fodder=dialog',
|
||||
iframeUrl: settings.routePre + '/widget.images/index.html?fodder=dialog',
|
||||
editor: editor,
|
||||
name: uiName,
|
||||
title: '上传图片',
|
||||
|
||||
@ -82,7 +82,7 @@
|
||||
import linkaddress from '@/components/linkaddress';
|
||||
|
||||
import uploadPictures from '@/components/uploadPictures';
|
||||
import settings from '@/setting'
|
||||
import settings from '@/setting';
|
||||
|
||||
import vuedraggable from 'vuedraggable';
|
||||
export default {
|
||||
|
||||
@ -86,7 +86,6 @@ export default {
|
||||
.full-screen-btn-con .ivu-tooltip-rel i {
|
||||
font-size: 20px !important;
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
|
||||
}
|
||||
.full-screen-btn-con .ivu-tooltip-rel {
|
||||
height: 50px;
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.header-l{
|
||||
.header-l {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
@ -5,11 +5,7 @@
|
||||
<!-- <span class="i-layout-header-trigger" @click="handleReload">
|
||||
<Icon type="ios-refresh" color='#fff' />
|
||||
</span> -->
|
||||
<custom-bread-crumb
|
||||
show-icon
|
||||
:list="breadCrumbList"
|
||||
:listLast="crumbPast"
|
||||
></custom-bread-crumb>
|
||||
<custom-bread-crumb show-icon :list="breadCrumbList" :listLast="crumbPast"></custom-bread-crumb>
|
||||
</div>
|
||||
|
||||
<div class="custom-content-con">
|
||||
|
||||
@ -7,14 +7,16 @@
|
||||
.side-menu-wrapper {
|
||||
user-select: none;
|
||||
height: 100%;
|
||||
::-webkit-scrollbar{width:0;}
|
||||
::-webkit-scrollbar {
|
||||
width: 0;
|
||||
}
|
||||
-ms-overflow-style: none;
|
||||
.menu-collapsed {
|
||||
height: 100%;
|
||||
background-color: @side-dark-theme;
|
||||
color: #fff !important;
|
||||
overflow-y: scroll;
|
||||
|
||||
|
||||
.ivu-dropdown {
|
||||
width: 100%;
|
||||
.ivu-dropdown-rel a {
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
</template>
|
||||
</Menu>
|
||||
</div>
|
||||
<div class="child-menu" v-if="sider.length">
|
||||
<div class="child-menu" v-if="sider.length">
|
||||
<div class="cat-name">{{ oneMenuName }}</div>
|
||||
<Menu
|
||||
ref="childMenu"
|
||||
@ -353,7 +353,7 @@ export default {
|
||||
.child-menu {
|
||||
z-index: 9;
|
||||
box-shadow: 2px 0px 4px 0px rgba(0, 0, 0, 0.06);
|
||||
transition: width .2s ease .2s;
|
||||
transition: width 0.2s ease 0.2s;
|
||||
overflow: hidden;
|
||||
.child-menus {
|
||||
width: @side-child-width !important;
|
||||
|
||||
@ -55,8 +55,8 @@
|
||||
}
|
||||
&.right-btn {
|
||||
right: 40px;
|
||||
border-right: 1px solid #f0f0f0;
|
||||
border-left: 1px solid #f0f0f0;
|
||||
border-right: 1px solid #f0f0f0;
|
||||
border-left: 1px solid #f0f0f0;
|
||||
}
|
||||
}
|
||||
.scroll-outer {
|
||||
@ -77,7 +77,7 @@
|
||||
.ivu-tag-dot-inner {
|
||||
transition: background 0.2s ease;
|
||||
}
|
||||
.ivu-tag-dot{
|
||||
.ivu-tag-dot {
|
||||
border: none !important;
|
||||
border-right: 1px solid #f2f2f2 !important;
|
||||
}
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
line-height: @bar-height;
|
||||
}
|
||||
.main-layout-con {
|
||||
height: calc(~"100vh - 60px");
|
||||
height: calc(~'100vh - 60px');
|
||||
overflow: hidden;
|
||||
}
|
||||
.main-content-con {
|
||||
@ -78,4 +78,4 @@
|
||||
|
||||
.dro-style {
|
||||
// padding: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
@ -53,7 +53,7 @@ import vuedraggable from 'vuedraggable';
|
||||
import { mapState, mapActions } from 'vuex';
|
||||
import uploadPictures from '@/components/uploadPictures';
|
||||
import { wechatNewsAddApi, wechatNewsInfotApi } from '@/api/app';
|
||||
import settings from '@/setting'
|
||||
import settings from '@/setting';
|
||||
export default {
|
||||
name: 'c_hot_imgs',
|
||||
props: {
|
||||
@ -153,7 +153,7 @@ export default {
|
||||
'test-dialog',
|
||||
function (editor, uiName) {
|
||||
let dialog = new window.UE.ui.Dialog({
|
||||
iframeUrl: settings.routePre +'/widget.images/index.html?fodder=dialog',
|
||||
iframeUrl: settings.routePre + '/widget.images/index.html?fodder=dialog',
|
||||
editor: editor,
|
||||
name: uiName,
|
||||
title: '上传图片',
|
||||
|
||||
@ -82,7 +82,7 @@
|
||||
import vuedraggable from 'vuedraggable';
|
||||
import uploadPictures from '@/components/uploadPictures';
|
||||
import linkaddress from '@/components/linkaddress';
|
||||
import settings from '@/setting'
|
||||
import settings from '@/setting';
|
||||
export default {
|
||||
name: 'c_menu_list',
|
||||
props: {
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
<script>
|
||||
import { mapState } from 'vuex';
|
||||
import uploadPictures from '@/components/uploadPictures';
|
||||
import settings from '@/setting'
|
||||
import settings from '@/setting';
|
||||
export default {
|
||||
name: 'c_upload_img',
|
||||
components: {
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
<Button type="warning" :loading="modal_loading" @click="ok">确定</Button>
|
||||
<Button type="primary" @click="cancel">取消</Button>
|
||||
</div>
|
||||
</Modal>
|
||||
</Modal>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
@ -18,8 +18,8 @@
|
||||
</Col>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row type="flex" v-show="$route.path === routePre+'/app/wechat/news_category/index'">
|
||||
<router-link :to="routePre+'/app/wechat/news_category/save/0'">
|
||||
<Row type="flex" v-show="$route.path === routePre + '/app/wechat/news_category/index'">
|
||||
<router-link :to="routePre + '/app/wechat/news_category/save/0'">
|
||||
<Button type="primary" class="bnt" icon="md-add">添加图文消息</Button>
|
||||
</router-link>
|
||||
</Row>
|
||||
@ -94,7 +94,7 @@
|
||||
import vueWaterfallEasy from 'vue-waterfall-easy';
|
||||
import { wechatNewsListApi } from '@/api/app';
|
||||
import { mapState } from 'vuex';
|
||||
import settings from '@/setting'
|
||||
import settings from '@/setting';
|
||||
export default {
|
||||
name: 'newsCategory',
|
||||
props: {
|
||||
@ -134,7 +134,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
routePre: settings.routePre ,
|
||||
routePre: settings.routePre,
|
||||
isDel: false,
|
||||
imgsArr: [],
|
||||
group: 0, // 当前加载的加载图片的次数
|
||||
|
||||
@ -68,7 +68,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
routePro:this.$routeProStr,
|
||||
routePro: this.$routeProStr,
|
||||
currentTab: '',
|
||||
grid: {
|
||||
xl: 8,
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
* @Author: From-wh from-wh@hotmail.com
|
||||
* @Date: 2023-03-09 18:02:23
|
||||
* @FilePath: /admin/src/i18n/index.js
|
||||
* @Description:
|
||||
* @Description:
|
||||
*/
|
||||
import Vue from 'vue';
|
||||
import VueI18n from 'vue-i18n';
|
||||
|
||||
@ -1,159 +1,160 @@
|
||||
// 定义内容
|
||||
export default {
|
||||
router: {
|
||||
home: 'home',
|
||||
system: 'system',
|
||||
systemMenu: 'systemMenu',
|
||||
systemUser: 'systemUser',
|
||||
limits: 'limits',
|
||||
limitsFrontEnd: 'FrontEnd',
|
||||
limitsFrontEndPage: 'FrontEndPage',
|
||||
limitsFrontEndBtn: 'FrontEndBtn',
|
||||
limitsBackEnd: 'BackEnd',
|
||||
limitsBackEndEndPage: 'BackEndEndPage',
|
||||
menu: 'menu',
|
||||
menu1: 'menu1',
|
||||
menu11: 'menu11',
|
||||
menu12: 'menu12',
|
||||
menu121: 'menu121',
|
||||
menu122: 'menu122',
|
||||
menu13: 'menu13',
|
||||
menu2: 'menu2',
|
||||
funIndex: 'function',
|
||||
funTagsView: 'funTagsView',
|
||||
funSignCanvas: 'Online signature',
|
||||
funCountup: 'countup',
|
||||
funEchartsTree: 'echartsTree',
|
||||
funSelector: 'funSelector',
|
||||
funWangEditor: 'wangEditor',
|
||||
funCropper: 'cropper',
|
||||
funMindMap: 'G6 MindMap',
|
||||
funQrcode: 'qrcode',
|
||||
funEchartsMap: 'EchartsMap',
|
||||
funPrintJs: 'PrintJs',
|
||||
funClipboard: 'Copy cut',
|
||||
funScreenShort: 'screenCapture',
|
||||
pagesIndex: 'pages',
|
||||
pagesFiltering: 'Filtering',
|
||||
pagesFilteringDetails: 'FilteringDetails',
|
||||
pagesFilteringDetails1: 'FilteringDetails1',
|
||||
pagesIocnfont: 'iconfont icon',
|
||||
pagesElement: 'element icon',
|
||||
pagesAwesome: 'awesome icon',
|
||||
pagesCityLinkage: 'CityLinkage',
|
||||
pagesFormAdapt: 'FormAdapt',
|
||||
pagesListAdapt: 'ListAdapt',
|
||||
pagesWaterfall: 'Waterfall',
|
||||
pagesSteps: 'Steps',
|
||||
chartIndex: 'chartIndex',
|
||||
personal: 'personal',
|
||||
tools: 'tools',
|
||||
layoutLinkView: 'LinkView',
|
||||
layoutIfameView: 'IfameView',
|
||||
},
|
||||
staticRoutes: {
|
||||
signIn: 'signIn',
|
||||
notFound: 'notFound',
|
||||
noPower: 'noPower',
|
||||
},
|
||||
user: {
|
||||
title0: 'Component size',
|
||||
title1: 'Language switching',
|
||||
title2: 'Menu search',
|
||||
title3: 'Layout configuration',
|
||||
title4: 'news',
|
||||
title5: 'Full screen on',
|
||||
title6: 'Full screen off',
|
||||
dropdownDefault: 'default',
|
||||
dropdownMedium: 'medium',
|
||||
dropdownSmall: 'small',
|
||||
dropdownMini: 'mini',
|
||||
dropdown1: 'home page',
|
||||
dropdown2: 'Personal Center',
|
||||
dropdown3: '404',
|
||||
dropdown4: '401',
|
||||
dropdown5: 'Log out',
|
||||
dropdown6: 'Code warehouse',
|
||||
searchPlaceholder: 'Menu search: support Chinese, routing path',
|
||||
newTitle: 'notice',
|
||||
newBtn: 'All read',
|
||||
newGo: 'Go to the notification center',
|
||||
newDesc: 'No notice',
|
||||
logOutTitle: 'Tips',
|
||||
logOutMessage: 'This operation will log out. Do you want to continue?',
|
||||
logOutConfirm: 'determine',
|
||||
logOutCancel: 'cancel',
|
||||
logOutExit: 'Exiting',
|
||||
logOutSuccess: 'Exit successfully!',
|
||||
},
|
||||
tagsView: {
|
||||
refresh: 'refresh',
|
||||
close: 'close',
|
||||
closeOther: 'closeOther',
|
||||
closeAll: 'closeAll',
|
||||
fullscreen: 'fullscreen',
|
||||
},
|
||||
notFound: {
|
||||
foundTitle: 'Wrong address input, please re-enter the address~',
|
||||
foundMsg: 'You can check the web address first, and then re-enter or give us feedback.',
|
||||
foundBtn: 'Back to home page',
|
||||
},
|
||||
layout: {
|
||||
configTitle: 'Layout configuration',
|
||||
oneTitle: 'Global Themes',
|
||||
menuBag: 'Menu BG Color',
|
||||
twoTitle: 'Menu / top bar',
|
||||
twoTopBar: 'Top bar background',
|
||||
twoMenuBar: 'Menu background',
|
||||
twoColumnsMenuBar: 'Column menu background',
|
||||
twoTopBarColor: 'Top bar default font color',
|
||||
twoMenuBarColor: 'Menu default font color',
|
||||
twoColumnsMenuBarColor: 'Default font color bar menu',
|
||||
twoIsTopBarColorGradual: 'Top bar gradient',
|
||||
twoIsMenuBarColorGradual: 'Menu gradient',
|
||||
twoIsMenuBarColorHighlight: 'Menu font highlight',
|
||||
threeTitle: 'Interface settings',
|
||||
threeIsCollapse: 'Menu horizontal collapse',
|
||||
threeIsUniqueOpened: 'Menu accordion',
|
||||
threeIsFixedHeader: 'Fixed header',
|
||||
threeIsClassicSplitMenu: 'Classic layout split menu',
|
||||
threeIsLockScreen: 'Open the lock screen',
|
||||
threeLockScreenTime: 'screen locking(s/s)',
|
||||
fourTitle: 'Interface display',
|
||||
fourIsShowLogo: 'Sidebar logo',
|
||||
fourIsBreadcrumb: 'Open breadcrumb',
|
||||
fourIsBreadcrumbIcon: 'Open breadcrumb icon',
|
||||
fourIsTagsview: 'Open tagsview',
|
||||
fourIsTagsviewIcon: 'Open tagsview Icon',
|
||||
fourIsFooter: 'Open footer',
|
||||
fourIsGrayscale: 'Grey model',
|
||||
fourIsInvert: 'Color weak mode',
|
||||
fourIsDark: 'Dark Mode',
|
||||
fourIsWartermark: 'Turn on watermark',
|
||||
fourWartermarkText: 'Watermark copy',
|
||||
fiveTitle: 'Other settings',
|
||||
fiveTagsStyle: 'Tagsview style',
|
||||
themeStyle: 'Theme',
|
||||
fiveAnimation: 'page animation',
|
||||
fiveColumnsAsideStyle: 'Column style',
|
||||
fiveColumnsAsideLayout: 'Column layout',
|
||||
sixTitle: 'Layout switch',
|
||||
sixDefaults: 'One',
|
||||
sixClassic: 'Two',
|
||||
sixTransverse: 'Three',
|
||||
sixColumns: 'Four',
|
||||
tipText: 'Click the button below to copy the layout configuration to `/src/store/modules/themeConfig.js` It has been modified in.',
|
||||
copyText: 'replication configuration',
|
||||
resetText: 'restore default',
|
||||
copyTextSuccess: 'Copy succeeded!',
|
||||
copyTextError: 'Copy failed!',
|
||||
},
|
||||
upgrade: {
|
||||
title: 'New version',
|
||||
msg: 'The new version is available, please update it now! Dont worry, the update is fast!',
|
||||
desc: 'Prompt: Update will restore the default configuration',
|
||||
btnOne: 'Cruel refusal',
|
||||
btnTwo: 'Update now',
|
||||
btnTwoLoading: 'Updating',
|
||||
},
|
||||
router: {
|
||||
home: 'home',
|
||||
system: 'system',
|
||||
systemMenu: 'systemMenu',
|
||||
systemUser: 'systemUser',
|
||||
limits: 'limits',
|
||||
limitsFrontEnd: 'FrontEnd',
|
||||
limitsFrontEndPage: 'FrontEndPage',
|
||||
limitsFrontEndBtn: 'FrontEndBtn',
|
||||
limitsBackEnd: 'BackEnd',
|
||||
limitsBackEndEndPage: 'BackEndEndPage',
|
||||
menu: 'menu',
|
||||
menu1: 'menu1',
|
||||
menu11: 'menu11',
|
||||
menu12: 'menu12',
|
||||
menu121: 'menu121',
|
||||
menu122: 'menu122',
|
||||
menu13: 'menu13',
|
||||
menu2: 'menu2',
|
||||
funIndex: 'function',
|
||||
funTagsView: 'funTagsView',
|
||||
funSignCanvas: 'Online signature',
|
||||
funCountup: 'countup',
|
||||
funEchartsTree: 'echartsTree',
|
||||
funSelector: 'funSelector',
|
||||
funWangEditor: 'wangEditor',
|
||||
funCropper: 'cropper',
|
||||
funMindMap: 'G6 MindMap',
|
||||
funQrcode: 'qrcode',
|
||||
funEchartsMap: 'EchartsMap',
|
||||
funPrintJs: 'PrintJs',
|
||||
funClipboard: 'Copy cut',
|
||||
funScreenShort: 'screenCapture',
|
||||
pagesIndex: 'pages',
|
||||
pagesFiltering: 'Filtering',
|
||||
pagesFilteringDetails: 'FilteringDetails',
|
||||
pagesFilteringDetails1: 'FilteringDetails1',
|
||||
pagesIocnfont: 'iconfont icon',
|
||||
pagesElement: 'element icon',
|
||||
pagesAwesome: 'awesome icon',
|
||||
pagesCityLinkage: 'CityLinkage',
|
||||
pagesFormAdapt: 'FormAdapt',
|
||||
pagesListAdapt: 'ListAdapt',
|
||||
pagesWaterfall: 'Waterfall',
|
||||
pagesSteps: 'Steps',
|
||||
chartIndex: 'chartIndex',
|
||||
personal: 'personal',
|
||||
tools: 'tools',
|
||||
layoutLinkView: 'LinkView',
|
||||
layoutIfameView: 'IfameView',
|
||||
},
|
||||
staticRoutes: {
|
||||
signIn: 'signIn',
|
||||
notFound: 'notFound',
|
||||
noPower: 'noPower',
|
||||
},
|
||||
user: {
|
||||
title0: 'Component size',
|
||||
title1: 'Language switching',
|
||||
title2: 'Menu search',
|
||||
title3: 'Layout configuration',
|
||||
title4: 'news',
|
||||
title5: 'Full screen on',
|
||||
title6: 'Full screen off',
|
||||
dropdownDefault: 'default',
|
||||
dropdownMedium: 'medium',
|
||||
dropdownSmall: 'small',
|
||||
dropdownMini: 'mini',
|
||||
dropdown1: 'home page',
|
||||
dropdown2: 'Personal Center',
|
||||
dropdown3: '404',
|
||||
dropdown4: '401',
|
||||
dropdown5: 'Log out',
|
||||
dropdown6: 'Code warehouse',
|
||||
searchPlaceholder: 'Menu search: support Chinese, routing path',
|
||||
newTitle: 'notice',
|
||||
newBtn: 'All read',
|
||||
newGo: 'Go to the notification center',
|
||||
newDesc: 'No notice',
|
||||
logOutTitle: 'Tips',
|
||||
logOutMessage: 'This operation will log out. Do you want to continue?',
|
||||
logOutConfirm: 'determine',
|
||||
logOutCancel: 'cancel',
|
||||
logOutExit: 'Exiting',
|
||||
logOutSuccess: 'Exit successfully!',
|
||||
},
|
||||
tagsView: {
|
||||
refresh: 'refresh',
|
||||
close: 'close',
|
||||
closeOther: 'closeOther',
|
||||
closeAll: 'closeAll',
|
||||
fullscreen: 'fullscreen',
|
||||
},
|
||||
notFound: {
|
||||
foundTitle: 'Wrong address input, please re-enter the address~',
|
||||
foundMsg: 'You can check the web address first, and then re-enter or give us feedback.',
|
||||
foundBtn: 'Back to home page',
|
||||
},
|
||||
layout: {
|
||||
configTitle: 'Layout configuration',
|
||||
oneTitle: 'Global Themes',
|
||||
menuBag: 'Menu BG Color',
|
||||
twoTitle: 'Menu / top bar',
|
||||
twoTopBar: 'Top bar background',
|
||||
twoMenuBar: 'Menu background',
|
||||
twoColumnsMenuBar: 'Column menu background',
|
||||
twoTopBarColor: 'Top bar default font color',
|
||||
twoMenuBarColor: 'Menu default font color',
|
||||
twoColumnsMenuBarColor: 'Default font color bar menu',
|
||||
twoIsTopBarColorGradual: 'Top bar gradient',
|
||||
twoIsMenuBarColorGradual: 'Menu gradient',
|
||||
twoIsMenuBarColorHighlight: 'Menu font highlight',
|
||||
threeTitle: 'Interface settings',
|
||||
threeIsCollapse: 'Menu horizontal collapse',
|
||||
threeIsUniqueOpened: 'Menu accordion',
|
||||
threeIsFixedHeader: 'Fixed header',
|
||||
threeIsClassicSplitMenu: 'Classic layout split menu',
|
||||
threeIsLockScreen: 'Open the lock screen',
|
||||
threeLockScreenTime: 'screen locking(s/s)',
|
||||
fourTitle: 'Interface display',
|
||||
fourIsShowLogo: 'Sidebar logo',
|
||||
fourIsBreadcrumb: 'Open breadcrumb',
|
||||
fourIsBreadcrumbIcon: 'Open breadcrumb icon',
|
||||
fourIsTagsview: 'Open tagsview',
|
||||
fourIsTagsviewIcon: 'Open tagsview Icon',
|
||||
fourIsFooter: 'Open footer',
|
||||
fourIsGrayscale: 'Grey model',
|
||||
fourIsInvert: 'Color weak mode',
|
||||
fourIsDark: 'Dark Mode',
|
||||
fourIsWartermark: 'Turn on watermark',
|
||||
fourWartermarkText: 'Watermark copy',
|
||||
fiveTitle: 'Other settings',
|
||||
fiveTagsStyle: 'Tagsview style',
|
||||
themeStyle: 'Theme',
|
||||
fiveAnimation: 'page animation',
|
||||
fiveColumnsAsideStyle: 'Column style',
|
||||
fiveColumnsAsideLayout: 'Column layout',
|
||||
sixTitle: 'Layout switch',
|
||||
sixDefaults: 'One',
|
||||
sixClassic: 'Two',
|
||||
sixTransverse: 'Three',
|
||||
sixColumns: 'Four',
|
||||
tipText:
|
||||
'Click the button below to copy the layout configuration to `/src/store/modules/themeConfig.js` It has been modified in.',
|
||||
copyText: 'replication configuration',
|
||||
resetText: 'restore default',
|
||||
copyTextSuccess: 'Copy succeeded!',
|
||||
copyTextError: 'Copy failed!',
|
||||
},
|
||||
upgrade: {
|
||||
title: 'New version',
|
||||
msg: 'The new version is available, please update it now! Dont worry, the update is fast!',
|
||||
desc: 'Prompt: Update will restore the default configuration',
|
||||
btnOne: 'Cruel refusal',
|
||||
btnTwo: 'Update now',
|
||||
btnTwoLoading: 'Updating',
|
||||
},
|
||||
};
|
||||
|
||||
@ -136,7 +136,7 @@ export default {
|
||||
fiveTagsStyle: '历史菜单风格',
|
||||
themeStyle: '主题',
|
||||
fiveAnimation: '主页面切换动画',
|
||||
fiveColumnsAsideStyle: '分栏高亮风格',
|
||||
fiveColumnsAsideStyle: '菜单高亮风格',
|
||||
fiveColumnsAsideLayout: '分栏布局风格',
|
||||
sixTitle: '布局切换',
|
||||
sixDefaults: '默认',
|
||||
|
||||
@ -1,160 +1,160 @@
|
||||
// 定义内容
|
||||
export default {
|
||||
router: {
|
||||
home: '首頁',
|
||||
system: '系統設置',
|
||||
systemMenu: '選單管理',
|
||||
systemUser: '用戶管理',
|
||||
limits: '許可權管理',
|
||||
limitsFrontEnd: '前端控制',
|
||||
limitsFrontEndPage: '頁面許可權',
|
||||
limitsFrontEndBtn: '按鈕許可權',
|
||||
limitsBackEnd: '後端控制',
|
||||
limitsBackEndEndPage: '頁面許可權',
|
||||
menu: '選單嵌套',
|
||||
menu1: '選單1',
|
||||
menu11: '選單11',
|
||||
menu12: '選單12',
|
||||
menu121: '選單121',
|
||||
menu122: '選單122',
|
||||
menu13: '選單13',
|
||||
menu2: '選單2',
|
||||
funIndex: '功能',
|
||||
funTagsView: 'tagsView 操作',
|
||||
funSignCanvas: '線上簽名',
|
||||
funCountup: 'countup 數位滾動',
|
||||
funEchartsTree: 'echartsTree 樹圖',
|
||||
funSelector: '圖標選擇器',
|
||||
funWangEditor: 'wangEditor 編輯器',
|
||||
funCropper: 'cropper 圖片裁剪',
|
||||
funMindMap: 'G6 心智圖',
|
||||
funQrcode: 'qrcode 二維碼生成',
|
||||
funEchartsMap: '地理座標/地圖',
|
||||
funPrintJs: '頁面列印',
|
||||
funClipboard: '複製剪切',
|
||||
funScreenShort: '自定義截圖',
|
||||
pagesIndex: '頁面',
|
||||
pagesFiltering: '過濾篩選組件',
|
||||
pagesFilteringDetails: '過濾篩選組件詳情',
|
||||
pagesFilteringDetails1: '過濾篩選組件詳情111',
|
||||
pagesIocnfont: 'iconfont 字體圖標',
|
||||
pagesElement: 'element 字體圖標',
|
||||
pagesAwesome: 'awesome 字體圖標',
|
||||
pagesCityLinkage: '都市多級聯動',
|
||||
pagesFormAdapt: '表單自我調整',
|
||||
pagesListAdapt: '清單自我調整',
|
||||
pagesWaterfall: '瀑布屏',
|
||||
pagesSteps: '步驟條',
|
||||
chartIndex: '大資料圖表',
|
||||
personal: '個人中心',
|
||||
tools: '工具類集合',
|
||||
layoutLinkView: '外鏈',
|
||||
layoutIfameView: '内嵌 iframe',
|
||||
},
|
||||
staticRoutes: {
|
||||
signIn: '登入',
|
||||
notFound: '找不到此頁面',
|
||||
noPower: '沒有許可權',
|
||||
},
|
||||
user: {
|
||||
title0: '組件大小',
|
||||
title1: '語言切換',
|
||||
title2: '選單蒐索',
|
||||
title3: '佈局配寘',
|
||||
title4: '消息',
|
||||
title5: '開全屏',
|
||||
title6: '關全屏',
|
||||
title7: '重繪',
|
||||
dropdownDefault: '默認',
|
||||
dropdownMedium: '中等',
|
||||
dropdownSmall: '小型',
|
||||
dropdownMini: '超小',
|
||||
dropdown1: '首頁',
|
||||
dropdown2: '個人中心',
|
||||
dropdown3: '404',
|
||||
dropdown4: '401',
|
||||
dropdown5: '登出',
|
||||
dropdown6: '程式碼倉庫',
|
||||
searchPlaceholder: '選單蒐索:支援中文、路由路徑',
|
||||
newTitle: '通知',
|
||||
newBtn: '全部已讀',
|
||||
newGo: '前往通知中心',
|
||||
newDesc: '暫無通知',
|
||||
logOutTitle: '提示',
|
||||
logOutMessage: '此操作將登出,是否繼續?',
|
||||
logOutConfirm: '確定',
|
||||
logOutCancel: '取消',
|
||||
logOutExit: '退出中',
|
||||
logOutSuccess: '安全退出成功!',
|
||||
},
|
||||
tagsView: {
|
||||
refresh: '重繪',
|
||||
close: '關閉',
|
||||
closeOther: '關閉其它',
|
||||
closeAll: '全部關閉',
|
||||
fullscreen: '當前頁全屏',
|
||||
},
|
||||
notFound: {
|
||||
foundTitle: '地址輸入錯誤,請重新輸入地址~',
|
||||
foundMsg: '您可以先檢查網址,然後重新輸入或給我們迴響問題。',
|
||||
foundBtn: '返回首頁',
|
||||
},
|
||||
layout: {
|
||||
configTitle: '佈局配寘',
|
||||
oneTitle: '全域主題',
|
||||
menuBag: '菜單背景色',
|
||||
twoTitle: '選單 / 頂欄',
|
||||
twoTopBar: '頂欄背景',
|
||||
twoMenuBar: '選單背景',
|
||||
twoColumnsMenuBar: '分欄選單背景',
|
||||
twoTopBarColor: '頂欄默認字體顏色',
|
||||
twoMenuBarColor: '選單默認字體顏色',
|
||||
twoColumnsMenuBarColor: '分欄選單默認字體顏色',
|
||||
twoIsTopBarColorGradual: '頂欄背景漸變',
|
||||
twoIsMenuBarColorGradual: '選單背景漸變',
|
||||
twoIsMenuBarColorHighlight: '選單字體背景高亮',
|
||||
threeTitle: '介面設定',
|
||||
threeIsCollapse: '選單水准折疊',
|
||||
threeIsUniqueOpened: '選單手風琴',
|
||||
threeIsFixedHeader: '固定 Header',
|
||||
threeIsClassicSplitMenu: '經典佈局分割選單',
|
||||
threeIsLockScreen: '開啟鎖屏',
|
||||
threeLockScreenTime: '自動鎖屏(s/秒)',
|
||||
fourTitle: '介面顯示',
|
||||
fourIsShowLogo: '側邊欄 Logo',
|
||||
fourIsBreadcrumb: '開啟 Breadcrumb',
|
||||
fourIsBreadcrumbIcon: '開啟 Breadcrumb 圖標',
|
||||
fourIsTagsview: '開啟 Tagsview',
|
||||
fourIsTagsviewIcon: '開啟 Tagsview 圖標',
|
||||
fourIsFooter: '開啟 Footer',
|
||||
fourIsGrayscale: '灰色模式',
|
||||
fourIsInvert: '色弱模式',
|
||||
fourIsDark: '深色模式',
|
||||
fourIsWartermark: '開啟浮水印',
|
||||
fourWartermarkText: '浮水印文案',
|
||||
fiveTitle: '其它設定',
|
||||
fiveTagsStyle: 'Tagsview 風格',
|
||||
themeStyle: '主題',
|
||||
fiveAnimation: '主頁面切換動畫',
|
||||
fiveColumnsAsideStyle: '分欄高亮風格',
|
||||
fiveColumnsAsideLayout: '分欄佈局風格',
|
||||
sixTitle: '佈局切換',
|
||||
sixDefaults: '默認',
|
||||
sixClassic: '經典',
|
||||
sixTransverse: '橫向',
|
||||
sixColumns: '分欄',
|
||||
tipText: '點擊下方按鈕,複製佈局配寘去`src/store/modules/themeConfig.js`中修改。',
|
||||
copyText: '一鍵複製配寘',
|
||||
resetText: '一鍵恢復默認',
|
||||
copyTextSuccess: '複製成功!',
|
||||
copyTextError: '複製失敗!',
|
||||
},
|
||||
upgrade: {
|
||||
title: '新版本陞級',
|
||||
msg: '新版本來啦,馬上更新嘗鮮吧! 不用擔心,更新很快的哦!',
|
||||
desc: '提示:更新會還原默認配寘',
|
||||
btnOne: '殘忍拒絕',
|
||||
btnTwo: '馬上更新',
|
||||
btnTwoLoading: '更新中',
|
||||
},
|
||||
router: {
|
||||
home: '首頁',
|
||||
system: '系統設置',
|
||||
systemMenu: '選單管理',
|
||||
systemUser: '用戶管理',
|
||||
limits: '許可權管理',
|
||||
limitsFrontEnd: '前端控制',
|
||||
limitsFrontEndPage: '頁面許可權',
|
||||
limitsFrontEndBtn: '按鈕許可權',
|
||||
limitsBackEnd: '後端控制',
|
||||
limitsBackEndEndPage: '頁面許可權',
|
||||
menu: '選單嵌套',
|
||||
menu1: '選單1',
|
||||
menu11: '選單11',
|
||||
menu12: '選單12',
|
||||
menu121: '選單121',
|
||||
menu122: '選單122',
|
||||
menu13: '選單13',
|
||||
menu2: '選單2',
|
||||
funIndex: '功能',
|
||||
funTagsView: 'tagsView 操作',
|
||||
funSignCanvas: '線上簽名',
|
||||
funCountup: 'countup 數位滾動',
|
||||
funEchartsTree: 'echartsTree 樹圖',
|
||||
funSelector: '圖標選擇器',
|
||||
funWangEditor: 'wangEditor 編輯器',
|
||||
funCropper: 'cropper 圖片裁剪',
|
||||
funMindMap: 'G6 心智圖',
|
||||
funQrcode: 'qrcode 二維碼生成',
|
||||
funEchartsMap: '地理座標/地圖',
|
||||
funPrintJs: '頁面列印',
|
||||
funClipboard: '複製剪切',
|
||||
funScreenShort: '自定義截圖',
|
||||
pagesIndex: '頁面',
|
||||
pagesFiltering: '過濾篩選組件',
|
||||
pagesFilteringDetails: '過濾篩選組件詳情',
|
||||
pagesFilteringDetails1: '過濾篩選組件詳情111',
|
||||
pagesIocnfont: 'iconfont 字體圖標',
|
||||
pagesElement: 'element 字體圖標',
|
||||
pagesAwesome: 'awesome 字體圖標',
|
||||
pagesCityLinkage: '都市多級聯動',
|
||||
pagesFormAdapt: '表單自我調整',
|
||||
pagesListAdapt: '清單自我調整',
|
||||
pagesWaterfall: '瀑布屏',
|
||||
pagesSteps: '步驟條',
|
||||
chartIndex: '大資料圖表',
|
||||
personal: '個人中心',
|
||||
tools: '工具類集合',
|
||||
layoutLinkView: '外鏈',
|
||||
layoutIfameView: '内嵌 iframe',
|
||||
},
|
||||
staticRoutes: {
|
||||
signIn: '登入',
|
||||
notFound: '找不到此頁面',
|
||||
noPower: '沒有許可權',
|
||||
},
|
||||
user: {
|
||||
title0: '組件大小',
|
||||
title1: '語言切換',
|
||||
title2: '選單蒐索',
|
||||
title3: '佈局配寘',
|
||||
title4: '消息',
|
||||
title5: '開全屏',
|
||||
title6: '關全屏',
|
||||
title7: '重繪',
|
||||
dropdownDefault: '默認',
|
||||
dropdownMedium: '中等',
|
||||
dropdownSmall: '小型',
|
||||
dropdownMini: '超小',
|
||||
dropdown1: '首頁',
|
||||
dropdown2: '個人中心',
|
||||
dropdown3: '404',
|
||||
dropdown4: '401',
|
||||
dropdown5: '登出',
|
||||
dropdown6: '程式碼倉庫',
|
||||
searchPlaceholder: '選單蒐索:支援中文、路由路徑',
|
||||
newTitle: '通知',
|
||||
newBtn: '全部已讀',
|
||||
newGo: '前往通知中心',
|
||||
newDesc: '暫無通知',
|
||||
logOutTitle: '提示',
|
||||
logOutMessage: '此操作將登出,是否繼續?',
|
||||
logOutConfirm: '確定',
|
||||
logOutCancel: '取消',
|
||||
logOutExit: '退出中',
|
||||
logOutSuccess: '安全退出成功!',
|
||||
},
|
||||
tagsView: {
|
||||
refresh: '重繪',
|
||||
close: '關閉',
|
||||
closeOther: '關閉其它',
|
||||
closeAll: '全部關閉',
|
||||
fullscreen: '當前頁全屏',
|
||||
},
|
||||
notFound: {
|
||||
foundTitle: '地址輸入錯誤,請重新輸入地址~',
|
||||
foundMsg: '您可以先檢查網址,然後重新輸入或給我們迴響問題。',
|
||||
foundBtn: '返回首頁',
|
||||
},
|
||||
layout: {
|
||||
configTitle: '佈局配寘',
|
||||
oneTitle: '全域主題',
|
||||
menuBag: '菜單背景色',
|
||||
twoTitle: '選單 / 頂欄',
|
||||
twoTopBar: '頂欄背景',
|
||||
twoMenuBar: '選單背景',
|
||||
twoColumnsMenuBar: '分欄選單背景',
|
||||
twoTopBarColor: '頂欄默認字體顏色',
|
||||
twoMenuBarColor: '選單默認字體顏色',
|
||||
twoColumnsMenuBarColor: '分欄選單默認字體顏色',
|
||||
twoIsTopBarColorGradual: '頂欄背景漸變',
|
||||
twoIsMenuBarColorGradual: '選單背景漸變',
|
||||
twoIsMenuBarColorHighlight: '選單字體背景高亮',
|
||||
threeTitle: '介面設定',
|
||||
threeIsCollapse: '選單水准折疊',
|
||||
threeIsUniqueOpened: '選單手風琴',
|
||||
threeIsFixedHeader: '固定 Header',
|
||||
threeIsClassicSplitMenu: '經典佈局分割選單',
|
||||
threeIsLockScreen: '開啟鎖屏',
|
||||
threeLockScreenTime: '自動鎖屏(s/秒)',
|
||||
fourTitle: '介面顯示',
|
||||
fourIsShowLogo: '側邊欄 Logo',
|
||||
fourIsBreadcrumb: '開啟 Breadcrumb',
|
||||
fourIsBreadcrumbIcon: '開啟 Breadcrumb 圖標',
|
||||
fourIsTagsview: '開啟 Tagsview',
|
||||
fourIsTagsviewIcon: '開啟 Tagsview 圖標',
|
||||
fourIsFooter: '開啟 Footer',
|
||||
fourIsGrayscale: '灰色模式',
|
||||
fourIsInvert: '色弱模式',
|
||||
fourIsDark: '深色模式',
|
||||
fourIsWartermark: '開啟浮水印',
|
||||
fourWartermarkText: '浮水印文案',
|
||||
fiveTitle: '其它設定',
|
||||
fiveTagsStyle: 'Tagsview 風格',
|
||||
themeStyle: '主題',
|
||||
fiveAnimation: '主頁面切換動畫',
|
||||
fiveColumnsAsideStyle: '分欄高亮風格',
|
||||
fiveColumnsAsideLayout: '分欄佈局風格',
|
||||
sixTitle: '佈局切換',
|
||||
sixDefaults: '默認',
|
||||
sixClassic: '經典',
|
||||
sixTransverse: '橫向',
|
||||
sixColumns: '分欄',
|
||||
tipText: '點擊下方按鈕,複製佈局配寘去`src/store/modules/themeConfig.js`中修改。',
|
||||
copyText: '一鍵複製配寘',
|
||||
resetText: '一鍵恢復默認',
|
||||
copyTextSuccess: '複製成功!',
|
||||
copyTextError: '複製失敗!',
|
||||
},
|
||||
upgrade: {
|
||||
title: '新版本陞級',
|
||||
msg: '新版本來啦,馬上更新嘗鮮吧! 不用擔心,更新很快的哦!',
|
||||
desc: '提示:更新會還原默認配寘',
|
||||
btnOne: '殘忍拒絕',
|
||||
btnTwo: '馬上更新',
|
||||
btnTwoLoading: '更新中',
|
||||
},
|
||||
};
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
// 定义内容
|
||||
export default {
|
||||
card: {
|
||||
title1: 'My desk',
|
||||
title2: 'Message notification',
|
||||
title3: 'more',
|
||||
title4: 'Marketing recommendation',
|
||||
title5: 'more',
|
||||
title6: 'Inventory operations',
|
||||
title7: 'Performance',
|
||||
title8: 'Out of stock monitoring',
|
||||
title9: 'Performance overtime warning',
|
||||
},
|
||||
card: {
|
||||
title1: 'My desk',
|
||||
title2: 'Message notification',
|
||||
title3: 'more',
|
||||
title4: 'Marketing recommendation',
|
||||
title5: 'more',
|
||||
title6: 'Inventory operations',
|
||||
title7: 'Performance',
|
||||
title8: 'Out of stock monitoring',
|
||||
title9: 'Performance overtime warning',
|
||||
},
|
||||
};
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
// 定义内容
|
||||
export default {
|
||||
card: {
|
||||
title1: '我的工作台',
|
||||
title2: '消息通知',
|
||||
title3: '更多',
|
||||
title4: '营销推荐',
|
||||
title5: '更多',
|
||||
title6: '库存作业',
|
||||
title7: '履约情况',
|
||||
title8: '缺货监控',
|
||||
title9: '履约超时预警',
|
||||
},
|
||||
card: {
|
||||
title1: '我的工作台',
|
||||
title2: '消息通知',
|
||||
title3: '更多',
|
||||
title4: '营销推荐',
|
||||
title5: '更多',
|
||||
title6: '库存作业',
|
||||
title7: '履约情况',
|
||||
title8: '缺货监控',
|
||||
title9: '履约超时预警',
|
||||
},
|
||||
};
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
// 定义内容
|
||||
export default {
|
||||
card: {
|
||||
title1: '我的工作臺',
|
||||
title2: '消息通知',
|
||||
title3: '更多',
|
||||
title4: '行銷推薦',
|
||||
title5: '更多',
|
||||
title6: '庫存工作',
|
||||
title7: '履約情况',
|
||||
title8: '缺貨監控',
|
||||
title9: '履約超時預警',
|
||||
},
|
||||
card: {
|
||||
title1: '我的工作臺',
|
||||
title2: '消息通知',
|
||||
title3: '更多',
|
||||
title4: '行銷推薦',
|
||||
title5: '更多',
|
||||
title6: '庫存工作',
|
||||
title7: '履約情况',
|
||||
title8: '缺貨監控',
|
||||
title9: '履約超時預警',
|
||||
},
|
||||
};
|
||||
|
||||
@ -1,18 +1,18 @@
|
||||
// 定义内容
|
||||
export default {
|
||||
login: {
|
||||
placeholder1: 'The user name admin or not is test',
|
||||
placeholder2: 'Password: 123456',
|
||||
placeholder3: 'Please enter the verification code',
|
||||
btnText: 'Sign in',
|
||||
link: {
|
||||
one1: 'Third party login',
|
||||
one2: 'Links',
|
||||
},
|
||||
signInText: 'welcome back!',
|
||||
copyright: {
|
||||
one5: 'Copyright: Shenzhen XXX Software Technology Co., Ltd',
|
||||
two6: 'Copyright: Shenzhen XXX software technology Guangdong ICP preparation no.05010000',
|
||||
},
|
||||
},
|
||||
login: {
|
||||
placeholder1: 'The user name admin or not is test',
|
||||
placeholder2: 'Password: 123456',
|
||||
placeholder3: 'Please enter the verification code',
|
||||
btnText: 'Sign in',
|
||||
link: {
|
||||
one1: 'Third party login',
|
||||
one2: 'Links',
|
||||
},
|
||||
signInText: 'welcome back!',
|
||||
copyright: {
|
||||
one5: 'Copyright: Shenzhen XXX Software Technology Co., Ltd',
|
||||
two6: 'Copyright: Shenzhen XXX software technology Guangdong ICP preparation no.05010000',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@ -2,23 +2,23 @@
|
||||
* @Author: From-wh from-wh@hotmail.com
|
||||
* @Date: 2023-03-09 18:02:23
|
||||
* @FilePath: /admin/src/i18n/pages/login/zh-cn.js
|
||||
* @Description:
|
||||
* @Description:
|
||||
*/
|
||||
// 定义内容
|
||||
export default {
|
||||
login: {
|
||||
placeholder1: '用户名 admin 或不输均为 test',
|
||||
placeholder2: '密码:123456',
|
||||
placeholder3: '请输入验证码',
|
||||
btnText: '登 录',
|
||||
link: {
|
||||
one1: '第三方登录',
|
||||
one2: '友情链接',
|
||||
},
|
||||
signInText: '欢迎回来!',
|
||||
copyright: {
|
||||
one5: '',
|
||||
two6: '',
|
||||
},
|
||||
},
|
||||
login: {
|
||||
placeholder1: '用户名 admin 或不输均为 test',
|
||||
placeholder2: '密码:123456',
|
||||
placeholder3: '请输入验证码',
|
||||
btnText: '登 录',
|
||||
link: {
|
||||
one1: '第三方登录',
|
||||
one2: '友情链接',
|
||||
},
|
||||
signInText: '欢迎回来!',
|
||||
copyright: {
|
||||
one5: '',
|
||||
two6: '',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@ -1,18 +1,18 @@
|
||||
// 定义内容
|
||||
export default {
|
||||
login: {
|
||||
placeholder1: '用戶名admin或不輸均為test',
|
||||
placeholder2: '密碼:123456',
|
||||
placeholder3: '請輸入驗證碼',
|
||||
btnText: '登 录',
|
||||
link: {
|
||||
one1: '協力廠商登入',
|
||||
one2: '友情連結',
|
||||
},
|
||||
signInText: '歡迎回來!',
|
||||
copyright: {
|
||||
one5: '版權所有:深圳市xxx軟件科技有限公司',
|
||||
two6: 'Copyright: Shenzhen XXX Software Technology 粵ICP備05010000號',
|
||||
},
|
||||
},
|
||||
login: {
|
||||
placeholder1: '用戶名admin或不輸均為test',
|
||||
placeholder2: '密碼:123456',
|
||||
placeholder3: '請輸入驗證碼',
|
||||
btnText: '登 录',
|
||||
link: {
|
||||
one1: '協力廠商登入',
|
||||
one2: '友情連結',
|
||||
},
|
||||
signInText: '歡迎回來!',
|
||||
copyright: {
|
||||
one5: '版權所有:深圳市xxx軟件科技有限公司',
|
||||
two6: 'Copyright: Shenzhen XXX Software Technology 粵ICP備05010000號',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@ -93,7 +93,6 @@ export default {
|
||||
});
|
||||
if (this.$store.state.themeConfig.themeConfig.layout !== 'columns') {
|
||||
this.bus.$on('routesListChange', () => {
|
||||
console.log('变了大哥');
|
||||
this.setFilterRoutes();
|
||||
});
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
:key="k"
|
||||
@click="onColumnsAsideMenuClick(v)"
|
||||
ref="columnsAsideOffsetTopRefs"
|
||||
class="layout-columns"
|
||||
:class="{ 'layout-columns-active': v.k === liIndex }"
|
||||
:title="$t(v.title)"
|
||||
>
|
||||
@ -63,7 +64,6 @@ export default {
|
||||
},
|
||||
// 设置分栏布局风格
|
||||
setColumnsAsidelayout() {
|
||||
console.log('111');
|
||||
return this.$store.state.themeConfig.themeConfig.columnsAsideLayout;
|
||||
},
|
||||
Layout() {
|
||||
@ -74,7 +74,6 @@ export default {
|
||||
},
|
||||
},
|
||||
beforeDestroy() {
|
||||
console.log('zoule');
|
||||
this.bus.$off('routesListChange');
|
||||
},
|
||||
mounted() {
|
||||
@ -247,6 +246,9 @@ export default {
|
||||
color: var(--prev-bg-columnsMenuBarColor);
|
||||
}
|
||||
}
|
||||
.layout-columns {
|
||||
transition: 0.3s ease-in-out;
|
||||
}
|
||||
.layout-columns-active,
|
||||
.layout-columns-active a {
|
||||
color: var(--prev-bg-columnsMenuActiveColor);
|
||||
|
||||
@ -1,24 +1,24 @@
|
||||
<template>
|
||||
<el-header class="layout-header" :height="setHeaderHeight">
|
||||
<NavBarsIndex />
|
||||
</el-header>
|
||||
<el-header class="layout-header" :height="setHeaderHeight">
|
||||
<NavBarsIndex />
|
||||
</el-header>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBarsIndex from '@/layout/navBars/index.vue';
|
||||
export default {
|
||||
name: 'layoutHeader',
|
||||
components: { NavBarsIndex },
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
computed: {
|
||||
// 设置顶部 header 的具体高度
|
||||
setHeaderHeight() {
|
||||
let { isTagsview, layout } = this.$store.state.themeConfig.themeConfig;
|
||||
if (isTagsview && layout !== 'classic') return '84px';
|
||||
else return '50px';
|
||||
},
|
||||
},
|
||||
name: 'layoutHeader',
|
||||
components: { NavBarsIndex },
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
computed: {
|
||||
// 设置顶部 header 的具体高度
|
||||
setHeaderHeight() {
|
||||
let { isTagsview, layout } = this.$store.state.themeConfig.themeConfig;
|
||||
if (isTagsview && layout !== 'classic') return '84px';
|
||||
else return '50px';
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@ -1,26 +1,26 @@
|
||||
<template>
|
||||
<el-main class="layout-main">
|
||||
<el-scrollbar
|
||||
class="layout-scrollbar"
|
||||
ref="layoutScrollbarRef"
|
||||
v-show="!currentRouteMeta.isLink && !currentRouteMeta.isIframe"
|
||||
:style="{ minHeight: `calc(100vh - ${headerHeight}` }"
|
||||
>
|
||||
<LayoutParentView />
|
||||
<Footers v-if="getThemeConfig.isFooter" />
|
||||
</el-scrollbar>
|
||||
<Links
|
||||
:style="{ height: `calc(100vh - ${headerHeight}` }"
|
||||
:meta="currentRouteMeta"
|
||||
v-if="currentRouteMeta.isLink && !currentRouteMeta.isIframe"
|
||||
/>
|
||||
<Iframes
|
||||
:style="{ height: `calc(100vh - ${headerHeight}` }"
|
||||
:meta="currentRouteMeta"
|
||||
v-if="currentRouteMeta.isLink && currentRouteMeta.isIframe && isShowLink"
|
||||
@getCurrentRouteMeta="onGetCurrentRouteMeta"
|
||||
/>
|
||||
</el-main>
|
||||
<el-main class="layout-main">
|
||||
<el-scrollbar
|
||||
class="layout-scrollbar"
|
||||
ref="layoutScrollbarRef"
|
||||
v-show="!currentRouteMeta.isLink && !currentRouteMeta.isIframe"
|
||||
:style="{ minHeight: `calc(100vh - ${headerHeight}` }"
|
||||
>
|
||||
<LayoutParentView />
|
||||
<Footers v-if="getThemeConfig.isFooter" />
|
||||
</el-scrollbar>
|
||||
<Links
|
||||
:style="{ height: `calc(100vh - ${headerHeight}` }"
|
||||
:meta="currentRouteMeta"
|
||||
v-if="currentRouteMeta.isLink && !currentRouteMeta.isIframe"
|
||||
/>
|
||||
<Iframes
|
||||
:style="{ height: `calc(100vh - ${headerHeight}` }"
|
||||
:meta="currentRouteMeta"
|
||||
v-if="currentRouteMeta.isLink && currentRouteMeta.isIframe && isShowLink"
|
||||
@getCurrentRouteMeta="onGetCurrentRouteMeta"
|
||||
/>
|
||||
</el-main>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@ -29,65 +29,65 @@ import Footers from '@/layout/footer/index.vue';
|
||||
import Links from '@/layout/routerView/link.vue';
|
||||
import Iframes from '@/layout/routerView/iframes.vue';
|
||||
export default {
|
||||
name: 'layoutMain',
|
||||
components: { LayoutParentView, Footers, Links, Iframes },
|
||||
data() {
|
||||
return {
|
||||
headerHeight: '',
|
||||
currentRouteMeta: {},
|
||||
isShowLink: false,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
// 获取布局配置信息
|
||||
getThemeConfig() {
|
||||
return this.$store.state.themeConfig.themeConfig;
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.initHeaderHeight();
|
||||
this.initCurrentRouteMeta(this.$route.meta);
|
||||
},
|
||||
methods: {
|
||||
// 初始化当前路由 meta 信息
|
||||
initCurrentRouteMeta(meta) {
|
||||
this.isShowLink = false;
|
||||
this.currentRouteMeta = meta;
|
||||
setTimeout(() => {
|
||||
this.isShowLink = true;
|
||||
}, 100);
|
||||
},
|
||||
// 设置 main 的高度
|
||||
initHeaderHeight() {
|
||||
let { isTagsview } = this.$store.state.themeConfig.themeConfig;
|
||||
if (isTagsview) return (this.headerHeight = `84px`);
|
||||
else return (this.headerHeight = `50px`);
|
||||
},
|
||||
// 子组件触发更新
|
||||
onGetCurrentRouteMeta() {
|
||||
this.initCurrentRouteMeta(this.$route.meta);
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
// 监听 vuex 数据变化
|
||||
'$store.state.themeConfig.themeConfig': {
|
||||
handler(val) {
|
||||
this.headerHeight = val.isTagsview ? '84px' : '50px';
|
||||
if (val.isFixedHeaderChange !== val.isFixedHeader) {
|
||||
if (!this.$refs.layoutScrollbarRef) return false;
|
||||
this.$refs.layoutScrollbarRef.update();
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
},
|
||||
// 监听路由的变化
|
||||
$route: {
|
||||
handler(to) {
|
||||
this.initCurrentRouteMeta(to.meta);
|
||||
this.$refs.layoutScrollbarRef.wrap.scrollTop = 0;
|
||||
},
|
||||
deep: true,
|
||||
},
|
||||
},
|
||||
name: 'layoutMain',
|
||||
components: { LayoutParentView, Footers, Links, Iframes },
|
||||
data() {
|
||||
return {
|
||||
headerHeight: '',
|
||||
currentRouteMeta: {},
|
||||
isShowLink: false,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
// 获取布局配置信息
|
||||
getThemeConfig() {
|
||||
return this.$store.state.themeConfig.themeConfig;
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.initHeaderHeight();
|
||||
this.initCurrentRouteMeta(this.$route.meta);
|
||||
},
|
||||
methods: {
|
||||
// 初始化当前路由 meta 信息
|
||||
initCurrentRouteMeta(meta) {
|
||||
this.isShowLink = false;
|
||||
this.currentRouteMeta = meta;
|
||||
setTimeout(() => {
|
||||
this.isShowLink = true;
|
||||
}, 100);
|
||||
},
|
||||
// 设置 main 的高度
|
||||
initHeaderHeight() {
|
||||
let { isTagsview } = this.$store.state.themeConfig.themeConfig;
|
||||
if (isTagsview) return (this.headerHeight = `84px`);
|
||||
else return (this.headerHeight = `50px`);
|
||||
},
|
||||
// 子组件触发更新
|
||||
onGetCurrentRouteMeta() {
|
||||
this.initCurrentRouteMeta(this.$route.meta);
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
// 监听 vuex 数据变化
|
||||
'$store.state.themeConfig.themeConfig': {
|
||||
handler(val) {
|
||||
this.headerHeight = val.isTagsview ? '84px' : '50px';
|
||||
if (val.isFixedHeaderChange !== val.isFixedHeader) {
|
||||
if (!this.$refs.layoutScrollbarRef) return false;
|
||||
this.$refs.layoutScrollbarRef.update();
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
},
|
||||
// 监听路由的变化
|
||||
$route: {
|
||||
handler(to) {
|
||||
this.initCurrentRouteMeta(to.meta);
|
||||
this.$refs.layoutScrollbarRef.wrap.scrollTop = 0;
|
||||
},
|
||||
deep: true,
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
<template>
|
||||
<el-container class="layout-container flex-center">
|
||||
<Headers />
|
||||
<el-container class="layout-mian-height-50">
|
||||
<Asides />
|
||||
<div class="flex-center layout-backtop">
|
||||
<TagsView v-if="getThemeConfig.isTagsview" />
|
||||
<Mains />
|
||||
</div>
|
||||
</el-container>
|
||||
<el-backtop target=".layout-backtop .el-main .el-scrollbar__wrap"></el-backtop>
|
||||
</el-container>
|
||||
<el-container class="layout-container flex-center">
|
||||
<Headers />
|
||||
<el-container class="layout-mian-height-50">
|
||||
<Asides />
|
||||
<div class="flex-center layout-backtop">
|
||||
<TagsView v-if="getThemeConfig.isTagsview" />
|
||||
<Mains />
|
||||
</div>
|
||||
</el-container>
|
||||
<el-backtop target=".layout-backtop .el-main .el-scrollbar__wrap"></el-backtop>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@ -18,13 +18,13 @@ import Headers from '@/layout/component/header.vue';
|
||||
import Mains from '@/layout/component/main.vue';
|
||||
import TagsView from '@/layout/navBars/tagsView/tagsView.vue';
|
||||
export default {
|
||||
name: 'layoutClassic',
|
||||
components: { Asides, Headers, Mains, TagsView },
|
||||
computed: {
|
||||
// 获取布局配置信息
|
||||
getThemeConfig() {
|
||||
return this.$store.state.themeConfig.themeConfig;
|
||||
},
|
||||
},
|
||||
name: 'layoutClassic',
|
||||
components: { Asides, Headers, Mains, TagsView },
|
||||
computed: {
|
||||
// 获取布局配置信息
|
||||
getThemeConfig() {
|
||||
return this.$store.state.themeConfig.themeConfig;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@ -1,18 +1,18 @@
|
||||
<template>
|
||||
<el-container class="layout-container">
|
||||
<ColumnsAside />
|
||||
<div class="layout-columns-warp">
|
||||
<Asides />
|
||||
<el-container class="flex-center layout-backtop">
|
||||
<Headers v-if="isFixedHeader" />
|
||||
<el-scrollbar>
|
||||
<Headers v-if="!isFixedHeader" />
|
||||
<Mains />
|
||||
</el-scrollbar>
|
||||
</el-container>
|
||||
</div>
|
||||
<el-backtop target=".layout-backtop .el-scrollbar__wrap"></el-backtop>
|
||||
</el-container>
|
||||
<el-container class="layout-container">
|
||||
<ColumnsAside />
|
||||
<div class="layout-columns-warp">
|
||||
<Asides />
|
||||
<el-container class="flex-center layout-backtop">
|
||||
<Headers v-if="isFixedHeader" />
|
||||
<el-scrollbar>
|
||||
<Headers v-if="!isFixedHeader" />
|
||||
<Mains />
|
||||
</el-scrollbar>
|
||||
</el-container>
|
||||
</div>
|
||||
<el-backtop target=".layout-backtop .el-scrollbar__wrap"></el-backtop>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@ -21,13 +21,13 @@ import Headers from '@/layout/component/header.vue';
|
||||
import Mains from '@/layout/component/main.vue';
|
||||
import ColumnsAside from '@/layout/component/columnsAside.vue';
|
||||
export default {
|
||||
name: 'layoutColumns',
|
||||
components: { Asides, Headers, Mains, ColumnsAside },
|
||||
computed: {
|
||||
// 是否开启固定 header
|
||||
isFixedHeader() {
|
||||
return this.$store.state.themeConfig.themeConfig.isFixedHeader;
|
||||
},
|
||||
},
|
||||
name: 'layoutColumns',
|
||||
components: { Asides, Headers, Mains, ColumnsAside },
|
||||
computed: {
|
||||
// 是否开启固定 header
|
||||
isFixedHeader() {
|
||||
return this.$store.state.themeConfig.themeConfig.isFixedHeader;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
<template>
|
||||
<el-container class="layout-container">
|
||||
<Asides />
|
||||
<el-container class="flex-center layout-backtop">
|
||||
<Headers v-if="isFixedHeader" />
|
||||
<el-scrollbar ref="layoutDefaultsScrollbarRef">
|
||||
<Headers v-if="!isFixedHeader" />
|
||||
<Mains />
|
||||
</el-scrollbar>
|
||||
</el-container>
|
||||
<el-backtop target=".layout-backtop .el-scrollbar__wrap"></el-backtop>
|
||||
</el-container>
|
||||
<el-container class="layout-container">
|
||||
<Asides />
|
||||
<el-container class="flex-center layout-backtop">
|
||||
<Headers v-if="isFixedHeader" />
|
||||
<el-scrollbar ref="layoutDefaultsScrollbarRef">
|
||||
<Headers v-if="!isFixedHeader" />
|
||||
<Mains />
|
||||
</el-scrollbar>
|
||||
</el-container>
|
||||
<el-backtop target=".layout-backtop .el-scrollbar__wrap"></el-backtop>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@ -17,25 +17,25 @@ import Asides from '@/layout/component/aside.vue';
|
||||
import Headers from '@/layout/component/header.vue';
|
||||
import Mains from '@/layout/component/main.vue';
|
||||
export default {
|
||||
name: 'layoutDefaults',
|
||||
components: { Asides, Headers, Mains },
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
computed: {
|
||||
// 是否开启固定 header
|
||||
isFixedHeader() {
|
||||
return this.$store.state.themeConfig.themeConfig.isFixedHeader;
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
// 监听路由的变化
|
||||
$route: {
|
||||
handler() {
|
||||
this.$refs.layoutDefaultsScrollbarRef.wrap.scrollTop = 0;
|
||||
},
|
||||
deep: true,
|
||||
},
|
||||
},
|
||||
name: 'layoutDefaults',
|
||||
components: { Asides, Headers, Mains },
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
computed: {
|
||||
// 是否开启固定 header
|
||||
isFixedHeader() {
|
||||
return this.$store.state.themeConfig.themeConfig.isFixedHeader;
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
// 监听路由的变化
|
||||
$route: {
|
||||
handler() {
|
||||
this.$refs.layoutDefaultsScrollbarRef.wrap.scrollTop = 0;
|
||||
},
|
||||
deep: true,
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@ -1,16 +1,16 @@
|
||||
<template>
|
||||
<el-container class="layout-container flex-center layout-backtop">
|
||||
<Headers />
|
||||
<Mains />
|
||||
<el-backtop target=".layout-backtop .el-main .el-scrollbar__wrap"></el-backtop>
|
||||
</el-container>
|
||||
<el-container class="layout-container flex-center layout-backtop">
|
||||
<Headers />
|
||||
<Mains />
|
||||
<el-backtop target=".layout-backtop .el-main .el-scrollbar__wrap"></el-backtop>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Headers from '@/layout/component/header.vue';
|
||||
import Mains from '@/layout/component/main.vue';
|
||||
export default {
|
||||
name: 'layoutTransverse',
|
||||
components: { Headers, Mains },
|
||||
name: 'layoutTransverse',
|
||||
components: { Headers, Mains },
|
||||
};
|
||||
</script>
|
||||
|
||||
@ -35,7 +35,6 @@ export default {
|
||||
mounted() {
|
||||
this.setFilterRoutes();
|
||||
this.bus.$on('routesListChange', () => {
|
||||
console.log('变了大哥');
|
||||
this.setFilterRoutes();
|
||||
});
|
||||
},
|
||||
|
||||
@ -1,102 +1,109 @@
|
||||
<template>
|
||||
<div class="layout-search-dialog">
|
||||
<el-dialog :visible.sync="isShowSearch" width="300px" destroy-on-close :modal="false" fullscreen :show-close="false">
|
||||
<el-autocomplete
|
||||
v-model="menuQuery"
|
||||
:fetch-suggestions="menuSearch"
|
||||
:placeholder="$t('message.user.searchPlaceholder')"
|
||||
prefix-icon="el-icon-search"
|
||||
ref="layoutMenuAutocompleteRef"
|
||||
@select="onHandleSelect"
|
||||
@blur="onSearchBlur"
|
||||
>
|
||||
<template slot-scope="{ item }">
|
||||
<div><i :class="item.icon" class="mr10"></i>{{ $t(item.title) }}</div>
|
||||
</template>
|
||||
</el-autocomplete>
|
||||
</el-dialog>
|
||||
</div>
|
||||
<div class="layout-search-dialog">
|
||||
<el-dialog
|
||||
:visible.sync="isShowSearch"
|
||||
width="300px"
|
||||
destroy-on-close
|
||||
:modal="false"
|
||||
fullscreen
|
||||
:show-close="false"
|
||||
>
|
||||
<el-autocomplete
|
||||
v-model="menuQuery"
|
||||
:fetch-suggestions="menuSearch"
|
||||
:placeholder="$t('message.user.searchPlaceholder')"
|
||||
prefix-icon="el-icon-search"
|
||||
ref="layoutMenuAutocompleteRef"
|
||||
@select="onHandleSelect"
|
||||
@blur="onSearchBlur"
|
||||
>
|
||||
<template slot-scope="{ item }">
|
||||
<div><i :class="item.icon" class="mr10"></i>{{ $t(item.title) }}</div>
|
||||
</template>
|
||||
</el-autocomplete>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getAllSiderMenu } from '@/libs/system'
|
||||
import { getAllSiderMenu } from '@/libs/system';
|
||||
export default {
|
||||
name: 'layoutBreadcrumbSearch',
|
||||
data() {
|
||||
return {
|
||||
isShowSearch: false,
|
||||
menuQuery: '',
|
||||
tagsViewList: [],
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
// 搜索弹窗打开
|
||||
openSearch() {
|
||||
this.menuQuery = '';
|
||||
this.isShowSearch = true;
|
||||
this.initTageView();
|
||||
this.$nextTick(() => {
|
||||
this.$refs.layoutMenuAutocompleteRef.focus();
|
||||
});
|
||||
},
|
||||
// 搜索弹窗关闭
|
||||
closeSearch() {
|
||||
setTimeout(() => {
|
||||
this.isShowSearch = false;
|
||||
}, 150);
|
||||
},
|
||||
// 菜单搜索数据过滤
|
||||
menuSearch(queryString, cb) {
|
||||
let results = queryString ? this.tagsViewList.filter(this.createFilter(queryString)) : this.tagsViewList;
|
||||
cb(results);
|
||||
},
|
||||
// 菜单搜索过滤
|
||||
createFilter(queryString) {
|
||||
return (restaurant) => {
|
||||
return (
|
||||
restaurant.path.toLowerCase().indexOf(queryString.toLowerCase()) > -1 ||
|
||||
restaurant.title.toLowerCase().indexOf(queryString.toLowerCase()) > -1 ||
|
||||
this.$t(restaurant.title).toLowerCase().indexOf(queryString.toLowerCase()) > -1
|
||||
);
|
||||
};
|
||||
},
|
||||
// 初始化菜单数据
|
||||
initTageView() {
|
||||
if (this.tagsViewList.length > 0) return false;
|
||||
this.tagsViewList = getAllSiderMenu(this.$store.state.routesList.routesList)
|
||||
// this.$store.state.tagsViewRoutes.tagsViewRoutes.map((v) => {
|
||||
// if (!v.isHide) this.tagsViewList.push({ ...v });
|
||||
// });
|
||||
},
|
||||
// 当前菜单选中时
|
||||
onHandleSelect(item) {
|
||||
let { path, redirect } = item;
|
||||
if (item.isLink && !item.isIframe) window.open(item.isLink);
|
||||
else if (redirect) this.$router.push(redirect);
|
||||
else this.$router.push(path);
|
||||
this.closeSearch();
|
||||
},
|
||||
// input 失去焦点时
|
||||
onSearchBlur() {
|
||||
this.closeSearch();
|
||||
},
|
||||
},
|
||||
name: 'layoutBreadcrumbSearch',
|
||||
data() {
|
||||
return {
|
||||
isShowSearch: false,
|
||||
menuQuery: '',
|
||||
tagsViewList: [],
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
// 搜索弹窗打开
|
||||
openSearch() {
|
||||
this.menuQuery = '';
|
||||
this.isShowSearch = true;
|
||||
this.initTageView();
|
||||
this.$nextTick(() => {
|
||||
this.$refs.layoutMenuAutocompleteRef.focus();
|
||||
});
|
||||
},
|
||||
// 搜索弹窗关闭
|
||||
closeSearch() {
|
||||
setTimeout(() => {
|
||||
this.isShowSearch = false;
|
||||
}, 150);
|
||||
},
|
||||
// 菜单搜索数据过滤
|
||||
menuSearch(queryString, cb) {
|
||||
let results = queryString ? this.tagsViewList.filter(this.createFilter(queryString)) : this.tagsViewList;
|
||||
cb(results);
|
||||
},
|
||||
// 菜单搜索过滤
|
||||
createFilter(queryString) {
|
||||
return (restaurant) => {
|
||||
return (
|
||||
restaurant.path.toLowerCase().indexOf(queryString.toLowerCase()) > -1 ||
|
||||
restaurant.title.toLowerCase().indexOf(queryString.toLowerCase()) > -1 ||
|
||||
this.$t(restaurant.title).toLowerCase().indexOf(queryString.toLowerCase()) > -1
|
||||
);
|
||||
};
|
||||
},
|
||||
// 初始化菜单数据
|
||||
initTageView() {
|
||||
if (this.tagsViewList.length > 0) return false;
|
||||
this.tagsViewList = getAllSiderMenu(this.$store.state.routesList.routesList);
|
||||
// this.$store.state.tagsViewRoutes.tagsViewRoutes.map((v) => {
|
||||
// if (!v.isHide) this.tagsViewList.push({ ...v });
|
||||
// });
|
||||
},
|
||||
// 当前菜单选中时
|
||||
onHandleSelect(item) {
|
||||
let { path, redirect } = item;
|
||||
if (item.isLink && !item.isIframe) window.open(item.isLink);
|
||||
else if (redirect) this.$router.push(redirect);
|
||||
else this.$router.push(path);
|
||||
this.closeSearch();
|
||||
},
|
||||
// input 失去焦点时
|
||||
onSearchBlur() {
|
||||
this.closeSearch();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.layout-search-dialog {
|
||||
::v-deep .el-dialog {
|
||||
box-shadow: unset !important;
|
||||
border-radius: 0 !important;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
::v-deep .el-autocomplete {
|
||||
width: 560px;
|
||||
position: absolute;
|
||||
top: 100px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
::v-deep .el-dialog {
|
||||
box-shadow: unset !important;
|
||||
border-radius: 0 !important;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
::v-deep .el-autocomplete {
|
||||
width: 560px;
|
||||
position: absolute;
|
||||
top: 100px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -72,8 +72,7 @@
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- transverse 布局 -->
|
||||
<div
|
||||
class="layout-drawer-content-item"
|
||||
@ -276,7 +275,7 @@
|
||||
</el-radio-group>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layout-breadcrumb-seting-bar-flex mt15" v-if="getThemeConfig.layout === 'columns'">
|
||||
<div class="layout-breadcrumb-seting-bar-flex mt15">
|
||||
<div class="layout-breadcrumb-seting-bar-flex-label">{{ $t('message.layout.fiveColumnsAsideStyle') }}</div>
|
||||
<div class="layout-breadcrumb-seting-bar-flex-value">
|
||||
<el-radio-group v-model="getThemeConfig.columnsAsideStyle" size="mini" @change="setLocalThemeConfig">
|
||||
@ -593,7 +592,14 @@ export default {
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
body .v-modal {
|
||||
opacity: 0.5;
|
||||
background-color: rgba(0, 0, 0, 0.3);
|
||||
-webkit-backdrop-filter: blur(3px);
|
||||
backdrop-filter: blur(5px);
|
||||
}
|
||||
</style>
|
||||
<style scoped lang="scss">
|
||||
.w10 {
|
||||
width: 10px;
|
||||
|
||||
@ -1,110 +1,116 @@
|
||||
<template>
|
||||
<div>
|
||||
<transition name="el-zoom-in-center">
|
||||
<ul
|
||||
class="el-dropdown-menu el-popper el-dropdown-menu--medium custom-contextmenu"
|
||||
:style="`top: ${dropdowns.y}px;left: ${dropdowns.x}px;`"
|
||||
x-placement="bottom-end"
|
||||
id="contextmenu"
|
||||
v-show="isShow"
|
||||
>
|
||||
<li class="el-dropdown-menu__item" v-for="(v, k) in dropdownList" :key="k" @click="onCurrentContextmenuClick(v.id)">
|
||||
<template v-if="!v.affix">
|
||||
<i :class="v.icon"></i>
|
||||
<span>{{ $t(v.txt) }}</span>
|
||||
</template>
|
||||
</li>
|
||||
<div x-arrow class="popper__arrow" :style="{ left: `${arrowLeft}px` }"></div>
|
||||
</ul>
|
||||
</transition>
|
||||
</div>
|
||||
<div>
|
||||
<transition name="el-zoom-in-center">
|
||||
<ul
|
||||
class="el-dropdown-menu el-popper el-dropdown-menu--medium custom-contextmenu"
|
||||
:style="`top: ${dropdowns.y}px;left: ${dropdowns.x}px;`"
|
||||
x-placement="bottom-end"
|
||||
id="contextmenu"
|
||||
v-show="isShow"
|
||||
>
|
||||
<li
|
||||
class="el-dropdown-menu__item"
|
||||
v-for="(v, k) in dropdownList"
|
||||
:key="k"
|
||||
@click="onCurrentContextmenuClick(v.id)"
|
||||
>
|
||||
<template v-if="!v.affix">
|
||||
<i :class="v.icon"></i>
|
||||
<span>{{ $t(v.txt) }}</span>
|
||||
</template>
|
||||
</li>
|
||||
<div x-arrow class="popper__arrow" :style="{ left: `${arrowLeft}px` }"></div>
|
||||
</ul>
|
||||
</transition>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'layoutTagsViewContextmenu',
|
||||
props: {
|
||||
dropdown: {
|
||||
type: Object,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isShow: false,
|
||||
dropdownList: [
|
||||
{ id: 0, txt: 'message.tagsView.refresh', affix: false, icon: 'el-icon-refresh-right' },
|
||||
{ id: 1, txt: 'message.tagsView.close', affix: false, icon: 'el-icon-close' },
|
||||
{ id: 2, txt: 'message.tagsView.closeOther', affix: false, icon: 'el-icon-circle-close' },
|
||||
{ id: 3, txt: 'message.tagsView.closeAll', affix: false, icon: 'el-icon-folder-delete' },
|
||||
],
|
||||
path: {},
|
||||
arrowLeft: 5,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
dropdowns() {
|
||||
// 99 为 `Dropdown 下拉菜单` 的宽度
|
||||
if (this.dropdown.x + 99 > document.documentElement.clientWidth) {
|
||||
return {
|
||||
x: document.documentElement.clientWidth - 99 - 5,
|
||||
y: this.dropdown.y,
|
||||
};
|
||||
} else {
|
||||
return this.dropdown;
|
||||
}
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
// 监听页面监听进行右键菜单的关闭
|
||||
document.body.addEventListener('click', this.closeContextmenu);
|
||||
},
|
||||
methods: {
|
||||
// 当前项菜单点击
|
||||
onCurrentContextmenuClick(id) {
|
||||
this.$emit('currentContextmenuClick', { id, path: this.path });
|
||||
},
|
||||
// 打开右键菜单:判断是否固定,固定则不显示关闭按钮
|
||||
openContextmenu(item) {
|
||||
this.path = item.path;
|
||||
item.meta.isAffix ? (this.dropdownList[1].affix = true) : (this.dropdownList[1].affix = false);
|
||||
this.closeContextmenu();
|
||||
setTimeout(() => {
|
||||
this.isShow = true;
|
||||
}, 80);
|
||||
},
|
||||
// 关闭右键菜单
|
||||
closeContextmenu() {
|
||||
this.isShow = false;
|
||||
},
|
||||
},
|
||||
destroyed() {
|
||||
// 页面卸载时,移除右键菜单监听事件
|
||||
document.body.removeEventListener('click', this.closeContextmenu);
|
||||
},
|
||||
// 监听下拉菜单位置
|
||||
watch: {
|
||||
dropdown: {
|
||||
handler({ x }) {
|
||||
if (x + 99 > document.documentElement.clientWidth) this.arrowLeft = 99 - (document.documentElement.clientWidth - x);
|
||||
else this.arrowLeft = 10;
|
||||
},
|
||||
deep: true,
|
||||
},
|
||||
},
|
||||
name: 'layoutTagsViewContextmenu',
|
||||
props: {
|
||||
dropdown: {
|
||||
type: Object,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isShow: false,
|
||||
dropdownList: [
|
||||
{ id: 0, txt: 'message.tagsView.refresh', affix: false, icon: 'el-icon-refresh-right' },
|
||||
{ id: 1, txt: 'message.tagsView.close', affix: false, icon: 'el-icon-close' },
|
||||
{ id: 2, txt: 'message.tagsView.closeOther', affix: false, icon: 'el-icon-circle-close' },
|
||||
{ id: 3, txt: 'message.tagsView.closeAll', affix: false, icon: 'el-icon-folder-delete' },
|
||||
],
|
||||
path: {},
|
||||
arrowLeft: 5,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
dropdowns() {
|
||||
// 99 为 `Dropdown 下拉菜单` 的宽度
|
||||
if (this.dropdown.x + 99 > document.documentElement.clientWidth) {
|
||||
return {
|
||||
x: document.documentElement.clientWidth - 99 - 5,
|
||||
y: this.dropdown.y,
|
||||
};
|
||||
} else {
|
||||
return this.dropdown;
|
||||
}
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
// 监听页面监听进行右键菜单的关闭
|
||||
document.body.addEventListener('click', this.closeContextmenu);
|
||||
},
|
||||
methods: {
|
||||
// 当前项菜单点击
|
||||
onCurrentContextmenuClick(id) {
|
||||
this.$emit('currentContextmenuClick', { id, path: this.path });
|
||||
},
|
||||
// 打开右键菜单:判断是否固定,固定则不显示关闭按钮
|
||||
openContextmenu(item) {
|
||||
this.path = item.path;
|
||||
item.meta.isAffix ? (this.dropdownList[1].affix = true) : (this.dropdownList[1].affix = false);
|
||||
this.closeContextmenu();
|
||||
setTimeout(() => {
|
||||
this.isShow = true;
|
||||
}, 80);
|
||||
},
|
||||
// 关闭右键菜单
|
||||
closeContextmenu() {
|
||||
this.isShow = false;
|
||||
},
|
||||
},
|
||||
destroyed() {
|
||||
// 页面卸载时,移除右键菜单监听事件
|
||||
document.body.removeEventListener('click', this.closeContextmenu);
|
||||
},
|
||||
// 监听下拉菜单位置
|
||||
watch: {
|
||||
dropdown: {
|
||||
handler({ x }) {
|
||||
if (x + 99 > document.documentElement.clientWidth)
|
||||
this.arrowLeft = 99 - (document.documentElement.clientWidth - x);
|
||||
else this.arrowLeft = 10;
|
||||
},
|
||||
deep: true,
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.custom-contextmenu {
|
||||
transform-origin: center top;
|
||||
z-index: 2190;
|
||||
position: fixed;
|
||||
.el-dropdown-menu__item {
|
||||
font-size: 12px !important;
|
||||
white-space: nowrap;
|
||||
i {
|
||||
font-size: 12px !important;
|
||||
}
|
||||
}
|
||||
transform-origin: center top;
|
||||
z-index: 2190;
|
||||
position: fixed;
|
||||
.el-dropdown-menu__item {
|
||||
font-size: 12px !important;
|
||||
white-space: nowrap;
|
||||
i {
|
||||
font-size: 12px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -113,7 +113,6 @@ export default {
|
||||
methods: {
|
||||
...mapMutations(['setBreadCrumb', 'setTagNavList', 'addTag', 'setLocal', 'setHomeRoute', 'closeTag']),
|
||||
clickDropdown(e) {
|
||||
// console.log(e, this.$route.path);
|
||||
let data = { id: e, path: this.$route.path };
|
||||
this.onCurrentContextmenuClick(data);
|
||||
},
|
||||
@ -148,8 +147,6 @@ export default {
|
||||
scrollTag(production) {
|
||||
let scrollRefs = this.$refs.scrollbarRef.$refs.wrap.scrollWidth;
|
||||
let scrollLeft = this.$refs.scrollbarRef.$refs.wrap.scrollLeft;
|
||||
console.log(production, this.$refs.scrollbarRef.$refs.wrap.scrollLeft);
|
||||
|
||||
if (production === 'left') {
|
||||
this.$refs.scrollbarRef.$refs.wrap.scrollLeft = scrollLeft - 300 <= 0 ? 0 : scrollLeft - 300;
|
||||
} else {
|
||||
@ -252,12 +249,10 @@ export default {
|
||||
// this.tagsViewList = Session.get('tagsViewList');
|
||||
// } else {
|
||||
let arr = [];
|
||||
console.log(this.tagsViewRoutesList);
|
||||
this.tagsViewRoutesList.map((v) => {
|
||||
if (v.meta && v.meta.isAffix) arr.push({ ...v });
|
||||
});
|
||||
// }
|
||||
console.log(arr);
|
||||
this.setTagNavList(arr);
|
||||
// 初始化当前元素(li)的下标
|
||||
this.getTagsRefsIndex(this.$route.path);
|
||||
@ -339,7 +334,6 @@ export default {
|
||||
this.tagsViewRoutesList.map((v) => {
|
||||
if ((v.meta && v.meta.isAffix) || v.path === path) tagsViewList.push({ ...v });
|
||||
});
|
||||
console.log(tagsViewList, this.tagsViewRoutesList, path);
|
||||
this.addBrowserSetSession(tagsViewList);
|
||||
this.$router.push({ path, query });
|
||||
|
||||
|
||||
@ -1,46 +1,46 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="layout-view-bg-white flex h100" v-loading="iframeLoading">
|
||||
<iframe :src="meta.isLink" frameborder="0" height="100%" width="100%" id="iframe"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="layout-view-bg-white flex h100" v-loading="iframeLoading">
|
||||
<iframe :src="meta.isLink" frameborder="0" height="100%" width="100%" id="iframe"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'layoutIfameView',
|
||||
props: {
|
||||
meta: {
|
||||
type: Object,
|
||||
default: () => {},
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
iframeLoading: true,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.bus.$on('onTagsViewRefreshRouterView', (path) => {
|
||||
if (this.$route.path !== path) return false;
|
||||
this.$emit('getCurrentRouteMeta');
|
||||
});
|
||||
},
|
||||
mounted() {
|
||||
this.initIframeLoad();
|
||||
},
|
||||
methods: {
|
||||
// 初始化页面加载 loading
|
||||
initIframeLoad() {
|
||||
this.$nextTick(() => {
|
||||
this.iframeLoading = true;
|
||||
const iframe = document.getElementById('iframe');
|
||||
if (!iframe) return false;
|
||||
iframe.onload = () => {
|
||||
this.iframeLoading = false;
|
||||
};
|
||||
});
|
||||
},
|
||||
},
|
||||
name: 'layoutIfameView',
|
||||
props: {
|
||||
meta: {
|
||||
type: Object,
|
||||
default: () => {},
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
iframeLoading: true,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.bus.$on('onTagsViewRefreshRouterView', (path) => {
|
||||
if (this.$route.path !== path) return false;
|
||||
this.$emit('getCurrentRouteMeta');
|
||||
});
|
||||
},
|
||||
mounted() {
|
||||
this.initIframeLoad();
|
||||
},
|
||||
methods: {
|
||||
// 初始化页面加载 loading
|
||||
initIframeLoad() {
|
||||
this.$nextTick(() => {
|
||||
this.iframeLoading = true;
|
||||
const iframe = document.getElementById('iframe');
|
||||
if (!iframe) return false;
|
||||
iframe.onload = () => {
|
||||
this.iframeLoading = false;
|
||||
};
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@ -5,85 +5,85 @@
|
||||
* @Description:
|
||||
-->
|
||||
<template>
|
||||
<div class="layout-scrollbar layout-link-container">
|
||||
<div class="layout-view-bg-white flex layout-view-link">
|
||||
<div class="layout-link-warp">
|
||||
<i class="layout-link-icon iconfont icon-xingqiu"></i>
|
||||
<div class="layout-link-msg">页面 "{{ $t(meta.title) }}" 已在新窗口中打开</div>
|
||||
<el-button class="mt30" round size="small" @click="onGotoFullPage">
|
||||
<i class="iconfont icon-lianjie"></i>
|
||||
<span>立即前往体验</span>
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layout-scrollbar layout-link-container">
|
||||
<div class="layout-view-bg-white flex layout-view-link">
|
||||
<div class="layout-link-warp">
|
||||
<i class="layout-link-icon iconfont icon-xingqiu"></i>
|
||||
<div class="layout-link-msg">页面 "{{ $t(meta.title) }}" 已在新窗口中打开</div>
|
||||
<el-button class="mt30" round size="small" @click="onGotoFullPage">
|
||||
<i class="iconfont icon-lianjie"></i>
|
||||
<span>立即前往体验</span>
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { verifyUrl } from '@/utils/toolsValidate';
|
||||
export default {
|
||||
name: 'layoutLinkView',
|
||||
props: {
|
||||
meta: {
|
||||
type: Object,
|
||||
default: () => {},
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
// 立即前往
|
||||
onGotoFullPage() {
|
||||
const { origin, pathname } = window.location;
|
||||
if (verifyUrl(this.isLink)) window.open(this.isLink);
|
||||
else window.open(`${origin}${pathname}#${this.isLink}`);
|
||||
},
|
||||
},
|
||||
name: 'layoutLinkView',
|
||||
props: {
|
||||
meta: {
|
||||
type: Object,
|
||||
default: () => {},
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
// 立即前往
|
||||
onGotoFullPage() {
|
||||
const { origin, pathname } = window.location;
|
||||
if (verifyUrl(this.isLink)) window.open(this.isLink);
|
||||
else window.open(`${origin}${pathname}#${this.isLink}`);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.layout-link-container {
|
||||
.layout-link-warp {
|
||||
margin: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
i.layout-link-icon {
|
||||
position: relative;
|
||||
font-size: 100px;
|
||||
color: var(--prev-color-primary);
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 50px;
|
||||
top: 0;
|
||||
width: 15px;
|
||||
height: 100px;
|
||||
background: linear-gradient(
|
||||
rgba(255, 255, 255, 0.01),
|
||||
rgba(255, 255, 255, 0.01),
|
||||
rgba(255, 255, 255, 0.01),
|
||||
rgba(255, 255, 255, 0.05),
|
||||
rgba(255, 255, 255, 0.05),
|
||||
rgba(255, 255, 255, 0.05),
|
||||
rgba(235, 255, 255, 0.5),
|
||||
rgba(255, 255, 255, 0.05),
|
||||
rgba(255, 255, 255, 0.05),
|
||||
rgba(255, 255, 255, 0.05),
|
||||
rgba(255, 255, 255, 0.01),
|
||||
rgba(255, 255, 255, 0.01),
|
||||
rgba(255, 255, 255, 0.01)
|
||||
);
|
||||
transform: rotate(-15deg);
|
||||
animation: toRight 5s linear infinite;
|
||||
}
|
||||
}
|
||||
.layout-link-msg {
|
||||
font-size: 12px;
|
||||
color: var(--prev-bg-topBarColor);
|
||||
opacity: 0.7;
|
||||
margin-top: 15px;
|
||||
}
|
||||
}
|
||||
.layout-link-warp {
|
||||
margin: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
i.layout-link-icon {
|
||||
position: relative;
|
||||
font-size: 100px;
|
||||
color: var(--prev-color-primary);
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 50px;
|
||||
top: 0;
|
||||
width: 15px;
|
||||
height: 100px;
|
||||
background: linear-gradient(
|
||||
rgba(255, 255, 255, 0.01),
|
||||
rgba(255, 255, 255, 0.01),
|
||||
rgba(255, 255, 255, 0.01),
|
||||
rgba(255, 255, 255, 0.05),
|
||||
rgba(255, 255, 255, 0.05),
|
||||
rgba(255, 255, 255, 0.05),
|
||||
rgba(235, 255, 255, 0.5),
|
||||
rgba(255, 255, 255, 0.05),
|
||||
rgba(255, 255, 255, 0.05),
|
||||
rgba(255, 255, 255, 0.05),
|
||||
rgba(255, 255, 255, 0.01),
|
||||
rgba(255, 255, 255, 0.01),
|
||||
rgba(255, 255, 255, 0.01)
|
||||
);
|
||||
transform: rotate(-15deg);
|
||||
animation: toRight 5s linear infinite;
|
||||
}
|
||||
}
|
||||
.layout-link-msg {
|
||||
font-size: 12px;
|
||||
color: var(--prev-bg-topBarColor);
|
||||
opacity: 0.7;
|
||||
margin-top: 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -88,7 +88,6 @@ service.interceptors.response.use(
|
||||
}
|
||||
},
|
||||
(error) => {
|
||||
console.log(error);
|
||||
Message.error(error.msg);
|
||||
return Promise.reject(error);
|
||||
},
|
||||
|
||||
@ -226,11 +226,9 @@ export const findFirstNonNullChildren = (arr) => {
|
||||
|
||||
export const findFirstNonNullChildrenKeys = (obj, lastArr) => {
|
||||
let ids = lastArr;
|
||||
console.log(ids);
|
||||
// 如果第一个对象没有children属性,返回该对象
|
||||
if (!obj.children) {
|
||||
ids.push(obj.id);
|
||||
console.log(ids);
|
||||
return ids;
|
||||
}
|
||||
// 如果第一个对象的children属性是数组,
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
</div>
|
||||
<Alert v-if="!pageData.appId && !pageData.code">
|
||||
<template slot="desc">
|
||||
您尚未配置小程序信息,请<router-link :to="{ path: $routeProStr +'/setting/system_config_retail/3/7' }"
|
||||
您尚未配置小程序信息,请<router-link :to="{ path: $routeProStr + '/setting/system_config_retail/3/7' }"
|
||||
>立即设置</router-link
|
||||
></template
|
||||
>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="article-manager">
|
||||
<div class="i-layout-page-header header-title">
|
||||
<span class="ivu-page-header-title">{{ $route.meta.title }}</span>
|
||||
<span class="ivu-page-header-title">{{ $route.meta.title }}</span>
|
||||
</div>
|
||||
<Card :bordered="false" dis-hover class="ivu-mt">
|
||||
<!-- 公众号设置 -->
|
||||
|
||||
@ -132,9 +132,7 @@
|
||||
</Upload>
|
||||
</div>
|
||||
<span v-show="formValidate.type === 'image'">文件最大2Mb,支持bmp/png/jpeg/jpg/gif格式</span>
|
||||
<span v-show="formValidate.type === 'voice'"
|
||||
>文件最大2Mb,支持mp3格式,播放长度不超过60s</span
|
||||
>
|
||||
<span v-show="formValidate.type === 'voice'">文件最大2Mb,支持mp3格式,播放长度不超过60s</span>
|
||||
</FormItem>
|
||||
</Form>
|
||||
</div>
|
||||
|
||||
@ -76,7 +76,7 @@ export default {
|
||||
methods: {
|
||||
// 添加
|
||||
add() {
|
||||
if (this.$route.path === (this.$routeProStr + '/app/wechat/wechat_user/user/tag')) {
|
||||
if (this.$route.path === this.$routeProStr + '/app/wechat/wechat_user/user/tag') {
|
||||
this.$modalForm(wechatTagCreateApi()).then(() => this.getList());
|
||||
} else {
|
||||
this.$modalForm(wechatGroupCreateApi()).then(() => this.getList());
|
||||
@ -84,7 +84,7 @@ export default {
|
||||
},
|
||||
// 编辑
|
||||
edit(row) {
|
||||
if (this.$route.path === (this.$routeProStr + '/app/wechat/wechat_user/user/tag')) {
|
||||
if (this.$route.path === this.$routeProStr + '/app/wechat/wechat_user/user/tag') {
|
||||
this.$modalForm(wechatTagEditApi(row.id)).then(() => this.getList());
|
||||
} else {
|
||||
this.$modalForm(wechatGroupEditApi(row.id)).then(() => this.getList());
|
||||
@ -93,7 +93,7 @@ export default {
|
||||
// 删除
|
||||
del(row, tit, num) {
|
||||
let delfromData = null;
|
||||
if (this.$route.path === (this.$routeProStr + '/app/wechat/wechat_user/user/tag')) {
|
||||
if (this.$route.path === this.$routeProStr + '/app/wechat/wechat_user/user/tag') {
|
||||
delfromData = {
|
||||
title: tit,
|
||||
num: num,
|
||||
@ -123,7 +123,7 @@ export default {
|
||||
getList() {
|
||||
this.loading = true;
|
||||
let fountion;
|
||||
if (this.$route.path === (this.$routeProStr + '/app/wechat/wechat_user/user/tag')) {
|
||||
if (this.$route.path === this.$routeProStr + '/app/wechat/wechat_user/user/tag') {
|
||||
fountion = wechatTagListApi();
|
||||
} else {
|
||||
fountion = wechatGroupListApi();
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="i-layout-page-header header-title">
|
||||
<span class="ivu-page-header-title">{{ $route.meta.title }}</span>
|
||||
<span class="ivu-page-header-title">{{ $route.meta.title }}</span>
|
||||
</div>
|
||||
<Card :bordered="false" dis-hover class="ivu-mt">
|
||||
<div class="table_box">
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
<span>
|
||||
<Button icon="ios-arrow-back" size="small" type="text" @click="$router.go(-1)">返回</Button>
|
||||
</span>
|
||||
<Divider type="vertical"/>
|
||||
<Divider type="vertical" />
|
||||
<span class="ivu-page-header-title">{{ $route.params.id ? '编辑文章' : '添加文章' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
@ -37,7 +37,9 @@
|
||||
<FormItem label="文章分类:" label-for="cid" prop="cid">
|
||||
<div class="perW90">
|
||||
<Select v-model="formValidate.cid">
|
||||
<Option v-for="item in treeData" :value="item.id" :disabled="item.disabled" :key="item.id">{{ item.html + item.title }}</Option>
|
||||
<Option v-for="item in treeData" :value="item.id" :disabled="item.disabled" :key="item.id">{{
|
||||
item.html + item.title
|
||||
}}</Option>
|
||||
</Select>
|
||||
</div>
|
||||
</FormItem>
|
||||
|
||||
@ -85,44 +85,62 @@ export default {
|
||||
width: 100,
|
||||
align: 'center',
|
||||
});
|
||||
res.data.columns.map(item=>{
|
||||
if(item.from_type === 'frameImageOne'){
|
||||
item.render = (h,params)=>{
|
||||
return h('div',{
|
||||
class:'tabBox_img',
|
||||
directives:[{
|
||||
name:'viewer'
|
||||
}]
|
||||
},[
|
||||
h('img',{
|
||||
directives:[{
|
||||
name:'lazy',
|
||||
value: params.row[item.slot]
|
||||
}],
|
||||
})
|
||||
])
|
||||
}
|
||||
} else if(item.from_type === 'frameImages'){
|
||||
item.render = (h,params)=>{
|
||||
let image = params.row[item.slot] || []
|
||||
res.data.columns.map((item) => {
|
||||
if (item.from_type === 'frameImageOne') {
|
||||
item.render = (h, params) => {
|
||||
return h(
|
||||
'div',
|
||||
{
|
||||
class: 'tabBox_img',
|
||||
directives: [
|
||||
{
|
||||
name: 'viewer',
|
||||
},
|
||||
],
|
||||
},
|
||||
[
|
||||
h('img', {
|
||||
directives: [
|
||||
{
|
||||
name: 'lazy',
|
||||
value: params.row[item.slot],
|
||||
},
|
||||
],
|
||||
}),
|
||||
],
|
||||
);
|
||||
};
|
||||
} else if (item.from_type === 'frameImages') {
|
||||
item.render = (h, params) => {
|
||||
let image = params.row[item.slot] || [];
|
||||
let imageH = [];
|
||||
image.map(item=>{
|
||||
imageH.push(h('img',{
|
||||
directives:[{
|
||||
name:'lazy',
|
||||
value: item
|
||||
}],
|
||||
}));
|
||||
})
|
||||
return h('div',{
|
||||
class:'tabBox_img',
|
||||
directives:[{
|
||||
name:'viewer'
|
||||
}]
|
||||
},imageH)
|
||||
}
|
||||
image.map((item) => {
|
||||
imageH.push(
|
||||
h('img', {
|
||||
directives: [
|
||||
{
|
||||
name: 'lazy',
|
||||
value: item,
|
||||
},
|
||||
],
|
||||
}),
|
||||
);
|
||||
});
|
||||
return h(
|
||||
'div',
|
||||
{
|
||||
class: 'tabBox_img',
|
||||
directives: [
|
||||
{
|
||||
name: 'viewer',
|
||||
},
|
||||
],
|
||||
},
|
||||
imageH,
|
||||
);
|
||||
};
|
||||
}
|
||||
})
|
||||
});
|
||||
this.columns = res.data.columns;
|
||||
this.getList();
|
||||
});
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="i-layout-page-header header-title">
|
||||
<span class="ivu-page-header-title">{{ $route.meta.title }}</span>
|
||||
<span class="ivu-page-header-title">{{ $route.meta.title }}</span>
|
||||
</div>
|
||||
<Card :bordered="false" dis-hover class="ivu-mt">
|
||||
<Form :label-width="80" @submit.native.prevent>
|
||||
|
||||
@ -280,7 +280,6 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
|
||||
/deep/.ivu-card-body {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
@ -42,7 +42,7 @@
|
||||
/>
|
||||
</FormItem>
|
||||
</Col>
|
||||
<Col >
|
||||
<Col>
|
||||
<Button type="primary" icon="ios-search" @click="userSearchs">搜索</Button>
|
||||
<Button v-auth="['export-userCommission']" class="export" icon="ios-share-outline" @click="exports"
|
||||
>导出
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="i-layout-page-header header-title">
|
||||
<span class="ivu-page-header-title">{{ $route.meta.title }}</span>
|
||||
<span class="ivu-page-header-title">{{ $route.meta.title }}</span>
|
||||
</div>
|
||||
<Card :bordered="false" dis-hover class="ivu-mt">
|
||||
<Form
|
||||
|
||||
@ -301,7 +301,7 @@ export default {
|
||||
},
|
||||
watch: {
|
||||
$route() {
|
||||
if (this.$route.fullPath === (this.$routeProStr +'/finance/user_extract/index?status=0')) {
|
||||
if (this.$route.fullPath === this.$routeProStr + '/finance/user_extract/index?status=0') {
|
||||
this.getPath();
|
||||
}
|
||||
},
|
||||
@ -316,7 +316,7 @@ export default {
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
if (this.$route.fullPath === (this.$routeProStr + '/finance/user_extract/index?status=0')) {
|
||||
if (this.$route.fullPath === this.$routeProStr + '/finance/user_extract/index?status=0') {
|
||||
this.getPath();
|
||||
} else {
|
||||
this.getList();
|
||||
|
||||
@ -46,7 +46,6 @@ export default {
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
|
||||
.emoji {
|
||||
width: 380px;
|
||||
height: 186px;
|
||||
|
||||
@ -155,7 +155,6 @@ export default {
|
||||
this.selectIds = this.goodsList.map((i) => {
|
||||
return i.product_id;
|
||||
});
|
||||
console.log(this.selectIds, this.goodsList);
|
||||
},
|
||||
// 生成直播商品
|
||||
liveGoods() {
|
||||
|
||||
@ -239,7 +239,7 @@ export default {
|
||||
this.$refs.goodslist.formValidate.is_virtual = 0;
|
||||
this.$refs.goodslist.getList();
|
||||
this.$refs.goodslist.goodsCategory();
|
||||
},
|
||||
},
|
||||
getCouponId(e) {
|
||||
this.formValidate.coupon_id = e.id;
|
||||
this.formValidate.coupon_title = e.coupon_title;
|
||||
|
||||
@ -241,7 +241,7 @@ export default {
|
||||
methods: {
|
||||
// 添加
|
||||
add() {
|
||||
this.$router.push({ path:this.$routeProStr + '/marketing/lottery/create' });
|
||||
this.$router.push({ path: this.$routeProStr + '/marketing/lottery/create' });
|
||||
},
|
||||
// 编辑
|
||||
edit(row) {
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
class="mr20"
|
||||
></DatePicker>
|
||||
</Card>
|
||||
<cards-data :cardLists="cardLists" v-if="cardLists.length >= 0"></cards-data>
|
||||
<cards-data :cardLists="cardLists" v-if="cardLists.length >= 0"></cards-data>
|
||||
<Card :bordered="false" dis-hover>
|
||||
<h3>积分使用趋势</h3>
|
||||
<echarts-new :option-data="optionData" :styles="style" height="100%" width="100%" v-if="optionData"></echarts-new>
|
||||
|
||||
@ -5,23 +5,23 @@
|
||||
<span>
|
||||
<Button icon="ios-arrow-back" size="small" type="text" @click="$router.go(-1)">返回</Button>
|
||||
</span>
|
||||
<Divider type="vertical"/>
|
||||
<Divider type="vertical" />
|
||||
<span class="ivu-page-header-title">{{ $route.meta.title }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<cards-data :cardLists="cardLists" v-if="cardLists.length >= 0"></cards-data>
|
||||
<div>
|
||||
<Tabs v-model="currentTab" @on-click="onClickTab">
|
||||
<TabPane v-for="(item, index) in tabs" :label="item.label" :name="item.type" :key="index"/>
|
||||
<TabPane v-for="(item, index) in tabs" :label="item.label" :name="item.type" :key="index" />
|
||||
</Tabs>
|
||||
</div>
|
||||
<Card :bordered="false" dis-hover class="ivu-mt">
|
||||
<Form
|
||||
ref="pagination"
|
||||
:model="pagination"
|
||||
:label-width="labelWidth"
|
||||
label-position="right"
|
||||
@submit.native.prevent
|
||||
ref="pagination"
|
||||
:model="pagination"
|
||||
:label-width="labelWidth"
|
||||
label-position="right"
|
||||
@submit.native.prevent
|
||||
>
|
||||
<Row type="flex" :gutter="24">
|
||||
<Col span="6" v-if="type == 1">
|
||||
@ -38,29 +38,29 @@
|
||||
<Col span="6">
|
||||
<FormItem label="搜索:" label-for="title">
|
||||
<Input
|
||||
search
|
||||
enter-button
|
||||
v-model="pagination.real_name"
|
||||
:placeholder="type == 1 ? '请输入用户姓名|订单号|UID' : '请输入用户UID'"
|
||||
@on-search="searchList"
|
||||
search
|
||||
enter-button
|
||||
v-model="pagination.real_name"
|
||||
:placeholder="type == 1 ? '请输入用户姓名|订单号|UID' : '请输入用户UID'"
|
||||
@on-search="searchList"
|
||||
/>
|
||||
</FormItem>
|
||||
</Col>
|
||||
</Row>
|
||||
</Form>
|
||||
<Table
|
||||
:columns="type ? thead2 : thead"
|
||||
:data="tbody"
|
||||
ref="table"
|
||||
class="mt25"
|
||||
:loading="loading"
|
||||
highlight-row
|
||||
no-userFrom-text="暂无数据"
|
||||
no-filtered-userFrom-text="暂无筛选结果"
|
||||
:columns="type ? thead2 : thead"
|
||||
:data="tbody"
|
||||
ref="table"
|
||||
class="mt25"
|
||||
:loading="loading"
|
||||
highlight-row
|
||||
no-userFrom-text="暂无数据"
|
||||
no-filtered-userFrom-text="暂无筛选结果"
|
||||
>
|
||||
<template slot-scope="{ row }" slot="avatar">
|
||||
<div class="tabBox_img" v-viewer>
|
||||
<img v-lazy="row.avatar"/>
|
||||
<img v-lazy="row.avatar" />
|
||||
</div>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="num">
|
||||
@ -77,43 +77,43 @@
|
||||
</Table>
|
||||
<div class="acea-row row-right page">
|
||||
<Page
|
||||
:total="total"
|
||||
:current="pagination.page"
|
||||
show-elevator
|
||||
show-total
|
||||
@on-change="pageChange"
|
||||
:page-size="pagination.limit"
|
||||
:total="total"
|
||||
:current="pagination.page"
|
||||
show-elevator
|
||||
show-total
|
||||
@on-change="pageChange"
|
||||
:page-size="pagination.limit"
|
||||
/>
|
||||
</div>
|
||||
</Card>
|
||||
<!-- 详情模态框-->
|
||||
<Modal
|
||||
v-model="modals"
|
||||
class="tableBox"
|
||||
scrollable
|
||||
footer-hide
|
||||
closable
|
||||
title="查看详情"
|
||||
:mask-closable="false"
|
||||
width="750"
|
||||
v-model="modals"
|
||||
class="tableBox"
|
||||
scrollable
|
||||
footer-hide
|
||||
closable
|
||||
title="查看详情"
|
||||
:mask-closable="false"
|
||||
width="750"
|
||||
>
|
||||
<Table
|
||||
ref="selection"
|
||||
:columns="columns2"
|
||||
:data="tabList3"
|
||||
:loading="loading2"
|
||||
no-data-text="暂无数据"
|
||||
highlight-row
|
||||
max-height="600"
|
||||
size="small"
|
||||
no-filtered-data-text="暂无筛选结果"
|
||||
ref="selection"
|
||||
:columns="columns2"
|
||||
:data="tabList3"
|
||||
:loading="loading2"
|
||||
no-data-text="暂无数据"
|
||||
highlight-row
|
||||
max-height="600"
|
||||
size="small"
|
||||
no-filtered-data-text="暂无筛选结果"
|
||||
>
|
||||
<template slot-scope="{ row }" slot="nickname">
|
||||
<span> {{ row.nickname + ' / ' + row.uid }}</span>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="avatar">
|
||||
<div class="tabBox_img" v-viewer>
|
||||
<img v-lazy="row.avatar"/>
|
||||
<img v-lazy="row.avatar" />
|
||||
</div>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="action">
|
||||
@ -136,7 +136,7 @@ import {
|
||||
|
||||
export default {
|
||||
name: 'index',
|
||||
components: {cardsData},
|
||||
components: { cardsData },
|
||||
data() {
|
||||
return {
|
||||
modals: false,
|
||||
@ -326,14 +326,14 @@ export default {
|
||||
if (this.type == 0) {
|
||||
getbargainStatisticsPeople(this.id, this.pagination).then((res) => {
|
||||
this.loading = false;
|
||||
const {count, list} = res.data;
|
||||
const { count, list } = res.data;
|
||||
this.total = count;
|
||||
this.tbody = list;
|
||||
});
|
||||
} else {
|
||||
getbargainStatisticsOrder(this.id, this.pagination).then((res) => {
|
||||
this.loading = false;
|
||||
const {count, list} = res.data;
|
||||
const { count, list } = res.data;
|
||||
this.total = count;
|
||||
this.tbody = list;
|
||||
});
|
||||
@ -359,15 +359,15 @@ export default {
|
||||
this.modals = true;
|
||||
this.rows = row;
|
||||
bargainUserInfoApi(row.id)
|
||||
.then(async (res) => {
|
||||
let data = res.data;
|
||||
this.tabList3 = data.list;
|
||||
this.loading = false;
|
||||
})
|
||||
.catch((res) => {
|
||||
this.loading = false;
|
||||
this.$Message.error(res.msg);
|
||||
});
|
||||
.then(async (res) => {
|
||||
let data = res.data;
|
||||
this.tabList3 = data.list;
|
||||
this.loading = false;
|
||||
})
|
||||
.catch((res) => {
|
||||
this.loading = false;
|
||||
this.$Message.error(res.msg);
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@ -361,5 +361,4 @@ export default {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
<Row type="flex" :gutter="24">
|
||||
<Col span="6" v-if="type == 1">
|
||||
<FormItem label="订单状态:" label-for="status">
|
||||
<Select v-model="pagination.status" placeholder="请选择订单状态" clearable @on-change="searchList">
|
||||
<Select v-model="pagination.status" placeholder="请选择订单状态" clearable @on-change="searchList">
|
||||
<Option value="0">未支付</Option>
|
||||
<Option value="1">待发货</Option>
|
||||
<Option value="2">待收货</Option>
|
||||
|
||||
@ -11,7 +11,12 @@
|
||||
<Row :gutter="24">
|
||||
<Col span="8" class="ivu-text-left">
|
||||
<FormItem label="订单状态:">
|
||||
<RadioGroup v-model="orderData.status" type="button" @on-change="selectChange2(orderData.status)" style="width: 400px">
|
||||
<RadioGroup
|
||||
v-model="orderData.status"
|
||||
type="button"
|
||||
@on-change="selectChange2(orderData.status)"
|
||||
style="width: 400px"
|
||||
>
|
||||
<Radio label="">全部 {{ '(' + orderChartType.statusAll ? orderChartType.statusAll : 0 + ')' }}</Radio>
|
||||
<Radio label="1">未发货 {{ '(' + orderChartType.unshipped ? orderChartType.unshipped : 0 + ')' }}</Radio>
|
||||
<Radio label="2">待收货 {{ '(' + orderChartType.untake ? orderChartType.untake : 0 + ')' }}</Radio>
|
||||
|
||||
@ -221,7 +221,7 @@ export default {
|
||||
methods: {
|
||||
// 添加
|
||||
add() {
|
||||
this.$router.push({ path:this.$routeProStr + '/marketing/presell/create/0' });
|
||||
this.$router.push({ path: this.$routeProStr + '/marketing/presell/create/0' });
|
||||
},
|
||||
// 导出
|
||||
exports() {
|
||||
|
||||
@ -106,7 +106,6 @@ export default {
|
||||
created() {
|
||||
this.isChecked = this.$route.query.type;
|
||||
this.onIsLogin();
|
||||
console.log(this.$route);
|
||||
},
|
||||
methods: {
|
||||
// 查看是否登录
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
:label-position="labelPosition"
|
||||
@submit.native.prevent
|
||||
>
|
||||
<Row type="flex" :gutter="24" v-if="$route.path === ($routeProStr +'/setting/sms/sms_template_apply/index')">
|
||||
<Row type="flex" :gutter="24" v-if="$route.path === $routeProStr + '/setting/sms/sms_template_apply/index'">
|
||||
<!-- <Col v-bind="grid">-->
|
||||
<!-- <FormItem label="模板类型:">-->
|
||||
<!-- <Select v-model="levelFrom.type" placeholder="请选择" clearable @on-change="userSearchs">-->
|
||||
@ -71,7 +71,7 @@
|
||||
<template
|
||||
slot-scope="{ row, index }"
|
||||
slot="is_have"
|
||||
v-if="$route.path === ($routeProStr + '/setting/sms/sms_template_apply/commons')"
|
||||
v-if="$route.path === $routeProStr + '/setting/sms/sms_template_apply/commons'"
|
||||
>
|
||||
<span v-show="row.status === 1">有</span>
|
||||
<span v-show="row.status === 0">没有</span>
|
||||
@ -177,9 +177,12 @@ export default {
|
||||
this.levelFrom.status = this.levelFrom.status || '';
|
||||
this.levelFrom.is_have = this.levelFrom.is_have || '';
|
||||
let data = {
|
||||
data: this.$route.path === (this.$routeProStr +'/setting/sms/sms_template_apply/index') ? this.levelFrom : this.levelFrom2,
|
||||
data:
|
||||
this.$route.path === this.$routeProStr + '/setting/sms/sms_template_apply/index'
|
||||
? this.levelFrom
|
||||
: this.levelFrom2,
|
||||
url:
|
||||
this.$route.path === (this.$routeProStr + '/setting/sms/sms_template_apply/index')
|
||||
this.$route.path === this.$routeProStr + '/setting/sms/sms_template_apply/index'
|
||||
? 'serve/sms/temps'
|
||||
: 'notify/sms/public_temp',
|
||||
};
|
||||
@ -216,7 +219,7 @@ export default {
|
||||
minWidth: 100,
|
||||
},
|
||||
];
|
||||
if (this.$route.path === (this.$routeProStr + '/setting/sms/sms_template_apply/commons')) {
|
||||
if (this.$route.path === this.$routeProStr + '/setting/sms/sms_template_apply/commons') {
|
||||
this.columns1 = Object.assign([], columns1)
|
||||
.slice(0, 6)
|
||||
.concat([
|
||||
|
||||
@ -276,7 +276,7 @@ export default {
|
||||
},
|
||||
watch: {
|
||||
$route() {
|
||||
if (this.$route.fullPath === (this.$routeProStr + '/order/list?status=1')) {
|
||||
if (this.$route.fullPath === this.$routeProStr + '/order/list?status=1') {
|
||||
this.getPath();
|
||||
}
|
||||
},
|
||||
@ -284,7 +284,7 @@ export default {
|
||||
created() {
|
||||
// this.timeVal = this.today;
|
||||
// this.orderData.data = this.timeVal.join('-');
|
||||
if (this.$route.fullPath === (this.$routeProStr + '/order/list?status=1')) {
|
||||
if (this.$route.fullPath === this.$routeProStr + '/order/list?status=1') {
|
||||
this.getPath();
|
||||
}
|
||||
},
|
||||
|
||||
@ -18,7 +18,9 @@
|
||||
<Col span="12" class="fontColor1"
|
||||
>订单状态:{{ orderDatalist.orderInfo._status._title }}
|
||||
{{
|
||||
orderDatalist.orderInfo.refund && orderDatalist.orderInfo.refund.length && orderDatalist.orderInfo.refund_status < 2
|
||||
orderDatalist.orderInfo.refund &&
|
||||
orderDatalist.orderInfo.refund.length &&
|
||||
orderDatalist.orderInfo.refund_status < 2
|
||||
? orderDatalist.orderInfo.is_all_refund
|
||||
? '退款中'
|
||||
: '部分退款中'
|
||||
|
||||
@ -74,7 +74,6 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
mealPay(val) {
|
||||
console.log(val);
|
||||
this.$router.push({ path: this.$routeProStr + '/setting/sms/sms_pay/index', query: { type: val } });
|
||||
},
|
||||
getCopyConfig() {
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
{{ item.title }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="wrapper" v-if="tabCur == 0">
|
||||
<div class="wrapper" v-if="tabCur == 0">
|
||||
<div v-for="(item, index) in leftMenu" :key="index">
|
||||
<div class="tips" @click="item.isOpen = !item.isOpen">
|
||||
{{ item.title }}
|
||||
@ -480,7 +480,7 @@ export default {
|
||||
if (evt.moved.element.name == 'search_box' || evt.moved.element.name == 'nav_bar') {
|
||||
return this.$Message.warning('该组件禁止拖拽');
|
||||
}
|
||||
|
||||
|
||||
// if (evt.moved.element.name == "nav_bar") {
|
||||
// return this.$Message.warning("该组件禁止拖拽");
|
||||
// }
|
||||
|
||||
@ -470,7 +470,6 @@ export default {
|
||||
if (item.name == 'search_box' || item.name == 'nav_bar') {
|
||||
return this.$Message.warning('该组件禁止移动');
|
||||
}
|
||||
console.log(item);
|
||||
// if (item.name == "nav_bar") {
|
||||
// return this.$Message.warning("该组件禁止移动");
|
||||
// }
|
||||
|
||||
@ -66,7 +66,9 @@
|
||||
v-if="row.is_diy === 1"
|
||||
class="target"
|
||||
ref="target"
|
||||
:href="`${url}${$routeProStr}/setting/pages/diy_index?id=${row.id}&name=${row.template_name || 'moren'}`"
|
||||
:href="`${url}${$routeProStr}/setting/pages/diy_index?id=${row.id}&name=${
|
||||
row.template_name || 'moren'
|
||||
}`"
|
||||
target="_blank"
|
||||
>
|
||||
编辑</a
|
||||
|
||||
@ -75,7 +75,6 @@ export default {
|
||||
methods: {
|
||||
//接收iframe值
|
||||
handleMessage(event) {
|
||||
console.log(event.data.name)
|
||||
if (event.data.name) {
|
||||
let obj = { name: event.data.name, num: event.data.dataName };
|
||||
this.configName = obj;
|
||||
|
||||
@ -157,7 +157,10 @@ export default {
|
||||
this.$refs[name].validate((valid) => {
|
||||
if (valid) {
|
||||
setCookies('moveLink', this.formItem.link);
|
||||
this.$router.push({ path: this.$routeProStr + '/setting/pages/diy', query: { id: this.formItem.id, type: 1 } });
|
||||
this.$router.push({
|
||||
path: this.$routeProStr + '/setting/pages/diy',
|
||||
query: { id: this.formItem.id, type: 1 },
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -39,16 +39,16 @@
|
||||
</viewer>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="one_brokerage">
|
||||
<span>{{row.one_brokerage}}%</span>
|
||||
<span>{{ row.one_brokerage }}%</span>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="one_brokerage_ratio">
|
||||
<span>{{row.one_brokerage_ratio}}%</span>
|
||||
<span>{{ row.one_brokerage_ratio }}%</span>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="two_brokerage">
|
||||
<span>{{row.two_brokerage}}%</span>
|
||||
<span>{{ row.two_brokerage }}%</span>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="two_brokerage_ratio">
|
||||
<span>{{row.two_brokerage_ratio}}%</span>
|
||||
<span>{{ row.two_brokerage_ratio }}%</span>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="status">
|
||||
<i-switch
|
||||
|
||||
@ -48,9 +48,9 @@
|
||||
</Card>
|
||||
<Alert class="mt10" closable="true">
|
||||
使用说明
|
||||
<template slot="desc" >
|
||||
1、前端页面:添加用户端页面语言,添加完成之后状态码为中文文字,前端页面使用 $t(`xxxx`),js文件中使用 this.t(`xxxx`) 或者使用
|
||||
that.t(`xxxx`)<br />
|
||||
<template slot="desc">
|
||||
1、前端页面:添加用户端页面语言,添加完成之后状态码为中文文字,前端页面使用 $t(`xxxx`),js文件中使用
|
||||
this.t(`xxxx`) 或者使用 that.t(`xxxx`)<br />
|
||||
2、后端接口:添加后端接口语言,添加完成之后状态码为6位数字,后台抛错或者控制器返回文字的时候直接填写状态码数字
|
||||
</template>
|
||||
</Alert>
|
||||
@ -95,7 +95,7 @@
|
||||
@on-cancel="addlangModal = false"
|
||||
@on-visible-change="modalChange"
|
||||
>
|
||||
<Form ref="langFormData" :model="langFormData" :rules="ruleValidate" >
|
||||
<Form ref="langFormData" :model="langFormData" :rules="ruleValidate">
|
||||
<FormItem label="应用端:" class="mb20" :label-width="120">
|
||||
<RadioGroup type="button" v-model="langFormData.is_admin" class="mr15">
|
||||
<Radio :label="item.value" v-for="(item, index) in langType.isAdmin" :key="index">{{ item.title }}</Radio>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div >
|
||||
<div>
|
||||
<div class="message">
|
||||
<Card :bordered="false" dis-hover class="">
|
||||
<div class="mb20">
|
||||
|
||||
@ -307,7 +307,6 @@ export default {
|
||||
}
|
||||
},
|
||||
changeUnique(val) {
|
||||
console.log(val.target.value);
|
||||
let value = this.$routeProStr + val.target.value;
|
||||
if (value.slice(0, 1) === '/') value = value.replace('/', '');
|
||||
this.formValidate.unique_auth = value.replaceAll('/', '-');
|
||||
|
||||
@ -25,9 +25,7 @@
|
||||
</Row>
|
||||
<Row type="flex">
|
||||
<Col v-bind="grid">
|
||||
<Button type="primary" @click="menusAdd('添加规则')" icon="md-add"
|
||||
>添加规则
|
||||
</Button>
|
||||
<Button type="primary" @click="menusAdd('添加规则')" icon="md-add">添加规则 </Button>
|
||||
</Col>
|
||||
</Row>
|
||||
</Form>
|
||||
@ -47,8 +45,8 @@
|
||||
<vxe-table-column field="unique_auth" title="前端权限" min-width="200"></vxe-table-column>
|
||||
<vxe-table-column field="menu_path" title="路由" min-width="240" tooltip="true">
|
||||
<template v-slot="{ row }">
|
||||
<span v-if="row.auth_type == 1">页面:{{row.menu_path}}</span>
|
||||
<span v-if="row.auth_type == 2">接口:[{{row.methods}}]{{row.api_url}}</span>
|
||||
<span v-if="row.auth_type == 1">页面:{{ row.menu_path }}</span>
|
||||
<span v-if="row.auth_type == 2">接口:[{{ row.methods }}]{{ row.api_url }}</span>
|
||||
</template>
|
||||
</vxe-table-column>
|
||||
<vxe-table-column field="flag" title="规则状态" min-width="120">
|
||||
@ -234,7 +232,6 @@ export default {
|
||||
};
|
||||
menusBatch(data)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
this.getData();
|
||||
})
|
||||
.catch((res) => {
|
||||
@ -282,7 +279,6 @@ export default {
|
||||
this.routeType = '0';
|
||||
// this.getRuleList();
|
||||
menusRuleCate().then((res) => {
|
||||
console.log(res);
|
||||
this.ruleCateList = res.data;
|
||||
this.ruleModal = true;
|
||||
if (res.data.length) {
|
||||
@ -296,7 +292,6 @@ export default {
|
||||
});
|
||||
},
|
||||
handleNodeClick(data) {
|
||||
console.log(data);
|
||||
this.getRuleList(data.id);
|
||||
},
|
||||
modalchange() {
|
||||
|
||||
@ -261,7 +261,6 @@ export default {
|
||||
created() {
|
||||
this.interfaceData = this.formValidate;
|
||||
this.interfaceData.request_body = JSON.parse(JSON.stringify(this.interfaceData.request_params));
|
||||
console.log(this.interfaceData);
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
@ -275,8 +274,6 @@ export default {
|
||||
});
|
||||
},
|
||||
async requestData() {
|
||||
console.log(this.$refs.xTable.getTableData().tableData);
|
||||
console.log(this.filtersData((await this.$refs.xTable.getTableData().tableData) || []));
|
||||
let url, method, params, body, headers;
|
||||
url = this.interfaceData.url;
|
||||
method = this.interfaceData.method;
|
||||
@ -284,12 +281,10 @@ export default {
|
||||
body = this.filtersData((await this.$refs.yTable.getTableData().tableData) || []);
|
||||
let h = this.filtersData((await this.$refs.zTable.getTableData().tableData) || []);
|
||||
let h1 = this.filtersData((await this.$refs.zaTable.getTableData().tableData) || []);
|
||||
console.log(this.interfaceData, h, h1);
|
||||
headers = {
|
||||
...h,
|
||||
...h1,
|
||||
};
|
||||
console.log(url, method, params, body, headers);
|
||||
requestMethod(url, method, params, body, headers)
|
||||
.then((res) => {
|
||||
this.codes = res + '';
|
||||
@ -299,14 +294,12 @@ export default {
|
||||
});
|
||||
},
|
||||
filtersData(arr) {
|
||||
console.log(arr);
|
||||
try {
|
||||
let x = {};
|
||||
arr.map((e) => {
|
||||
if (!e.parentId) {
|
||||
for (let i in e) {
|
||||
if (i == 'attribute') {
|
||||
console.log(e);
|
||||
if (e.type !== 'array') {
|
||||
x[e[i]] = e.value || '';
|
||||
} else {
|
||||
@ -344,7 +337,6 @@ export default {
|
||||
},
|
||||
changeTab(name) {
|
||||
if (name === 'Header') {
|
||||
console.log(this.interfaceData.headerData);
|
||||
if (!this.interfaceData.headerData) {
|
||||
this.insertEvent('zTable', {
|
||||
attribute: 'Content-Type',
|
||||
@ -353,7 +345,6 @@ export default {
|
||||
this.insertEvent('zaTable');
|
||||
}
|
||||
}
|
||||
console.log(this.interfaceData);
|
||||
},
|
||||
async insertEvent(type, d) {
|
||||
const $table = this.$refs[type];
|
||||
|
||||
@ -389,7 +389,12 @@
|
||||
<Input v-model="value" placeholder="请输入分组名称" style="width: 85%" />
|
||||
</Modal>
|
||||
<Modal v-model="debuggingModal" :title="formValidate.name" width="70%" footer-hide :loading="loading">
|
||||
<debugging v-if="debuggingModal" :formValidate="formValidate" :typeList="typeList" :requestTypeList="requestTypeList" />
|
||||
<debugging
|
||||
v-if="debuggingModal"
|
||||
:formValidate="formValidate"
|
||||
:typeList="typeList"
|
||||
:requestTypeList="requestTypeList"
|
||||
/>
|
||||
</Modal>
|
||||
</div>
|
||||
</template>
|
||||
@ -804,7 +809,6 @@ export default {
|
||||
},
|
||||
|
||||
onChangeName(params) {
|
||||
console.log(params);
|
||||
if (params.eventType == 'blur') {
|
||||
let data = {
|
||||
name: params.newName,
|
||||
@ -821,7 +825,6 @@ export default {
|
||||
},
|
||||
|
||||
onAddNode(params) {
|
||||
console.log(params);
|
||||
// this.$router.push({
|
||||
// path: '/admin/setting/system_out_interface/add',
|
||||
// query: {
|
||||
|
||||
@ -35,8 +35,6 @@ service.interceptors.request.use(
|
||||
if (token || kefuToken) {
|
||||
config.headers['Authori-zation'] = config.kefu ? 'Bearer ' + kefuToken : 'Bearer ' + token;
|
||||
}
|
||||
console.log('请求了', config);
|
||||
|
||||
return config;
|
||||
},
|
||||
(error) => {
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
</FormItem>
|
||||
</Form>
|
||||
</Card>
|
||||
<Modal v-model="avatarMoadl" title="头像上传" width="700">
|
||||
<Modal v-model="avatarMoadl" footer-hide title="头像上传" width="700">
|
||||
<CropperImg v-if="avatarMoadl" @uploadImgSuccess="uploadImgSuccess"></CropperImg>
|
||||
</Modal>
|
||||
</div>
|
||||
|
||||
@ -41,8 +41,13 @@
|
||||
</Col>
|
||||
<Col span="12" class="mr">
|
||||
<FormItem label="选择门店:" label-for="store_name">
|
||||
|
||||
<Select v-model="formValidate.store_id" element-id="store_id" clearable @on-change="userSearchs" style="width: 430px">
|
||||
<Select
|
||||
v-model="formValidate.store_id"
|
||||
element-id="store_id"
|
||||
clearable
|
||||
@on-change="userSearchs"
|
||||
style="width: 430px"
|
||||
>
|
||||
<Option v-for="item in storeSelectList" :value="item.id" :key="item.id">{{ item.name }}</Option>
|
||||
</Select>
|
||||
</FormItem>
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
placeholder="请选择时间"
|
||||
style="width: 200px"
|
||||
:options="options"
|
||||
class="mr20 "
|
||||
class="mr20"
|
||||
></DatePicker>
|
||||
</Card>
|
||||
<cards-data :cardLists="cardLists" v-if="cardLists.length >= 0"></cards-data>
|
||||
|
||||
@ -109,7 +109,6 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
.ivu-form-item {
|
||||
padding-bottom: 10px;
|
||||
margin-bottom: 0;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user