Commit 4a1f3849 by fairyly

fix: 修改cdn

parent 1771d0f4
......@@ -4,7 +4,7 @@
* @Author: 无尘
* @Date: 2018-10-08 15:03:22
* @LastEditors : 无尘
* @LastEditTime : 2020-01-15 09:53:13
* @LastEditTime : 2020-02-11 10:48:44
-->
<!DOCTYPE html>
<html>
......@@ -13,9 +13,11 @@
<meta charset="utf-8">
<link rel="shortcut icon" href="./favicon.ico" />
<title>好办管理平台</title>
<link rel="stylesheet" type="text/css" href="//web-1251519181.file.myqcloud.com/custom-element/custom-element.1.0.24.css" />
</head>
<body style="min-width: 1400px;">
<body style="min-width: 1400px;" class="damolish">
<div id="app"></div>
<!-- built files will be auto injected -->
<!-- 公共库引用 cdn -->
......
......@@ -106,4 +106,4 @@
"last 2 versions",
"not ie <= 8"
]
}
}
\ No newline at end of file
......@@ -3,8 +3,8 @@
* @version: 1.0.0
* @Author: 无尘
* @Date: 2018-10-10 14:44:45
* @LastEditors: 无尘
* @LastEditTime: 2019-09-25 17:16:50
* @LastEditors : 无尘
* @LastEditTime : 2020-02-08 17:34:51
*/
/* 后台返回消息提示 */
import { Message } from 'element-ui';
......@@ -17,10 +17,10 @@ export default {
local = 'http://www.gicdev.com';
} */
if (response.errorCode != 1) {
if (response.errorCode == 4) {
window.location.href = local + '/haoban-web/#/login';
return false;
}
// if (response.errorCode == 4) {
// window.location.href = local + '/haoban-web/#/login';
// return false;
// }
if (response.errorCode == 10) {
window.location.href = local + '/haoban-web/#/index';
return false;
......
......@@ -3,8 +3,8 @@
* @version: 1.0.0
* @Author: 无尘
* @Date: 2019-03-20 14:36:37
* @LastEditors: 无尘
* @LastEditTime: 2019-09-25 17:15:48
* @LastEditors : 无尘
* @LastEditTime : 2020-02-12 09:53:45
-->
<!--
应用公共左侧菜单:
......@@ -18,10 +18,13 @@
// @setSelectTab: 选择后把选择的 tabId 返给父级
-->
<template>
<div>
<div class="p-t-12">
<ul class="tab-left-list">
<template v-for="(item, index) in tabData">
<li :class="['tab-left-list-cell color-303133 font-14 border-box p-l-14', item.tabId == activeTab ? 'active-tab' : '']" :key="index" @click="selectTab(item, false, index)"><i :class="['p-r-10 color-303133 iconfont', item.icon, !!item.onlyIconActive ? 'iconActive' : '']"></i>{{ item.tabName }} <i v-if="!!item.children && !!item.children.length" :class="[!!collapsFlag ? 'el-icon-arrow-up' : 'el-icon-arrow-down']"></i></li>
<li :class="['tab-left-list-cell color-303133 font-14 border-box p-l-14', item.tabId == activeTab ? 'active-tab' : '']" :key="index" @click="selectTab(item, false, index)">
<i :class="['p-r-10 color-303133 iconfont', item.icon, !!item.onlyIconActive ? 'iconActive' : '']"></i>{{ item.tabName }}
<!-- <i v-if="!!item.children && !!item.children.length" :class="[!!collapsFlag ? 'el-icon-arrow-up' : 'el-icon-arrow-down']"></i> -->
</li>
<ul class="child-tab-left-list" :key="'childitem' + index" v-if="!!collapsFlag">
<template v-for="(childitem, childIndex) in item.children">
<li :class="['tab-left-list-cell color-303133 font-14 border-box p-l-40', childitem.tabId == activeTab ? 'active-tab' : '']" :key="childIndex" @click="selectTab(childitem, 'child', index)">{{ childitem.tabName }}</li>
......@@ -124,40 +127,32 @@ export default {
}
};
</script>
<style type="text/scss" lang="scss" scoped>
<style type="text/less" lang="less" scoped>
.tab-left-list {
.tab-left-list-cell {
position: relative;
text-align: left;
margin-top: 15px;
height: 30px;
line-height: 30px;
/* margin-top: 15px; */
height: 40px;
line-height: 40px;
white-space: nowrap;
overflow: hidden;
cursor: pointer;
.iconActive {
color: #1890ff;
color: #2f54eb;
}
&:hover {
background: rgba(24, 144, 255, 0.06);
color: #2f54eb;
background: rgba(47, 84, 235, 0.05);
i {
color: #1890ff;
color: #2f54eb;
}
}
&.active-tab {
background: rgba(24, 144, 255, 0.06);
&::before {
content: ' ';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 2px;
background: #1890ff;
z-index: 1;
}
color: #2f54eb;
background: rgba(47, 84, 235, 0.05); /* &::before { content: ' '; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: #2F54EB; z-index: 1; } */
i {
color: #1890ff;
color: #2f54eb;
}
}
}
......@@ -169,32 +164,24 @@ export default {
li {
position: relative;
text-align: left;
height: 30px;
line-height: 30px;
height: 40px;
line-height: 40px;
white-space: nowrap;
overflow: hidden;
cursor: pointer;
&:hover {
background: rgba(24, 144, 255, 0.06);
color: #2f54eb;
background: rgba(47, 84, 235, 0.05);
i {
color: #1890ff;
color: #2f54eb;
}
}
&.active-tab {
background: rgba(24, 144, 255, 0.06);
&::before {
content: ' ';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 2px;
background: #1890ff;
z-index: 1;
}
color: #2f54eb;
background: rgba(47, 84, 235, 0.05); /* &::before { content: ' '; position:
absolute; left: 0; top: 0; bottom: 0; width: 2px; background: #2f54eb; z-index: 1; } */
i {
color: #1890ff;
color: #2f54eb;
}
}
}
......
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2020-02-08 10:27:21
* @LastEditors : 无尘
* @LastEditTime : 2020-02-08 17:01:46
-->
<!--
添加成员选择部门组件:
<select-department
:brandId="brandId"
@checkGroupIds="checkGroupIds">
</select-department>
checkGroupIds: function(nodes) {
const that = this;
that.conditionObj.groupIds = nodes;
},
-->
<template>
<el-popover placement="bottom" style="min-width: 232px" v-model="departmentVisible">
<div class="select-search">
<el-input placeholder="请输入部门名称" v-model="searchSelect" style="width: 100%;" @keyup.native="value => toInput(value, searchSelect)" @clear="clearSearch"> <i slot="prefix" class="el-input__icon el-icon-search"></i> </el-input>
</div>
<div class="select-tree-wrap">
<el-tree :data="storeData" node-key="groupId" ref="storeTree" show-checkbox default-expand-all :props="defaultProps" :expand-on-click-node="false" @check="checkStore">
<span class="custom-tree-node" slot-scope="{ node, data }">
<span>{{ node.label }}</span>
</span>
</el-tree>
</div>
<div class="flex-column item-cell-select inline-block m-l-10" slot="reference">
<div class="depart-item-wrap">
<div style="width: 131px;" class="el-select el-select--large depart-item-content">
<span class="font-14 color-c0c4cc p-l-10" style="display: inline-block;line-height: 32px;color: #c0c4cc;" v-if="!storeGroupIds.length">请选择部门</span>
<div class="el-select__tags" style="max-width: 181px;">
<span>
<template v-for="(item, index) in storeGroupIds">
<span class="el-tag el-tag--info el-tag--small" :key="index">
<span class="el-select__tags-text">{{ item.name || item.storeName }}</span>
<!-- <i class="el-tag__close el-icon-close" @click.stop="delDepart(index, storeGroupIds)"></i> -->
</span>
</template>
</span>
</div>
</div>
</div>
</div>
</el-popover>
</template>
<script>
import { getRequest } from '@/api/api';
import errMsg from '@/common/js/error';
export default {
name: 'store-tree-select',
props: {
brandId: {
type: String,
default() {
return '';
}
},
activeGroupId: {
type: String,
default() {
return '';
}
}
},
data() {
return {
projectName: '', // 当前项目名
searchSelect: '', // 搜索字段
departmentVisible: false,
storeGroupIds: [],
storeData: [],
defaultProps: {
children: 'children',
label: 'name'
}
};
},
methods: {
/**
* 输入
*/
toInput: _debounce(function(e, value) {
const that = this;
if (!that.storesCopy.length) {
return false;
}
if (value == '') {
that.stores = JSON.parse(JSON.stringify(that.storesCopy));
}
let filterData = JSON.parse(JSON.stringify(that.storesCopy)).filter(ele => {
return ele.storeName.includes(value);
});
that.stores = filterData;
}, 500),
/**
* 清空
*/
clearSearch() {
const that = this;
that.stores = JSON.parse(JSON.stringify(that.storesCopy));
},
/**
* 简单数组-->父子数组对象
*/
treeData(data) {
let tree = data.filter(father => {
//循环所有项
let branchArr = data.filter(child => {
return father.groupId == child.parentId; //返回每一项的子级数组
});
if (branchArr.length > 0) {
father.children = branchArr; //如果存在子级,则给父级添加一个children属性,并赋值
}
return father.groupId == 0; //返回第一层
});
return tree;
},
/**
* 获取门店分组
*/
getStoreGroup() {
let that = this;
let para = {
appScene: that.appScene
};
getRequest('/haoban-manage-web/dept/deptList', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
if (!!resData.result && !!resData.result.length) {
that.treeData(resData.result);
resData.result.forEach(ele => {
if (ele.groupId == that.activeGroupId) {
that.storeData = [ele];
}
});
}
return;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
}
},
watch: {
brandId: function(newData, oldData) {
const that = this;
if (!!newData) {
that.activeBrand = newData;
that.checkStore();
that.getStoreGroup();
}
},
activeGroupId: function(newData, oldData) {
let that = this;
if (!!newData) {
that.activeGroup = newData;
}
}
},
mounted() {
const that = this;
if (!!that.brandId) {
that.activeBrand = that.brandId;
that.activeGroup = that.activeGroupId;
that.checkStore();
that.getStoreGroup();
}
}
};
</script>
<style lang="less" scoped>
.depart-item-content {
width: 213px;
height: 32px;
overflow: hidden;
white-space: nowrap;
border-radius: 4px;
border: 1px solid #dcdfe6;
cursor: pointer;
box-sizing: border-box;
}
.select-tree-wrap {
max-height: 300px;
overflow-y: auto;
}
.item-cell-select {
/deep/ .el-select__tags {
white-space: nowrap;
overflow: hidden;
}
}
</style>
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2020-02-05 10:50:57
* @LastEditors : 无尘
* @LastEditTime : 2020-02-08 17:22:48
-->
<!--
设置成员所在部门(回收站)
<set-department v-if="setVisible" @closeSet="closeSet"></set-department>
import setDepartment from '@/components/set-department.vue';
-->
<template>
<el-dialog width="660px" title="设置成员所在部门" :visible.sync="setVisible" append-to-body :before-close="close">
<div class="select-search">
<!-- 树形也自带有过滤搜索的方法 -->
<el-input placeholder="请输入部门名称" v-model="searchSelect" style="width: 100%;" @keyup.native="value => toInput(value, searchSelect)" @clear="clearSearch"> <i slot="prefix" class="el-input__icon el-icon-search"></i> </el-input>
</div>
<div class="select-tree-wrap">
<el-tree :data="treeData" node-key="groupId" ref="setTree" default-expand-all :props="defaultProps" :expand-on-click-node="false" @node-click="handleNodeClick">
<span class="custom-tree-node" slot-scope="{ node, data }">
<span>{{ node.label }}</span>
</span>
</el-tree>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="goLast('form')">取消</el-button>
<el-button type="primary" @click="submitForm">确定</el-button>
</div>
</el-dialog>
</template>
<script>
/* eslint-disable */
import { getRequest, postRequest } from '@/api/api';
import errMsg from '@/common/js/error';
export default {
props: {
applicationId: {
type: String,
default() {
return '';
}
}
},
data() {
return {
setVisible: true,
treeData: [],
searchSelect: '', // 搜索字段
selectId: ''
};
},
computed: {},
beforeMount() {
this.getOptionList();
},
mounted() {
this.getData();
},
methods: {
/**
* 输入
*/
toInput: _debounce(function(e, value) {
const that = this;
if (!that.storesCopy.length) {
return false;
}
if (value == '') {
that.stores = JSON.parse(JSON.stringify(that.storesCopy));
}
let filterData = JSON.parse(JSON.stringify(that.storesCopy)).filter(ele => {
return ele.storeName.includes(value);
});
that.treeData = filterData;
}, 500),
/**
* 清空
*/
clearSearch() {
const that = this;
that.treeData = JSON.parse(JSON.stringify(that.storesCopy));
},
/**
* 点击 tree 数据
*/
handleNodeClick(data) {
const that = this;
console.log(data);
that.selectId = data.id;
},
/**
* 获取tree 数据
*/
getData() {
const that = this;
let params = {};
getRequest('/haoban-manage-web/dept/deptList', params)
.then(res => {
if (res.data.code === '0000') {
that.treeData = res.data.result || [];
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
},
/**
* 确定授权
*/
submitForm(form) {
const that = this;
let params = {
resourceId: that.form.resourceId,
resourceName: that.form.resourceName,
applicationId: that.applicationId
};
postRequest('/haoban-manage-web/dept/deptList', params)
.then(res => {
if (res.data.code === '0000') {
that.$emit('closeSet', that.selectId);
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
}
},
components: {}
};
</script>
<style scoped>
.m-t-5 {
margin-top: 5px;
}
.dialog-top {
margin-bottom: 20px;
}
.dialog-top img {
width: 40px;
height: 40px;
border: 1px solid #e4e7ed;
border-radius: 50%;
vertical-align: middle;
margin-right: 10px;
}
.dialog-top span {
font-size: 14px;
font-weight: 600;
color: #303133;
}
.select-info {
display: inline-block;
vertical-align: middle;
}
.dialog-operate {
display: flex;
align-items: center;
justify-content: space-between;
}
.pagination-content {
text-align: right;
}
.dialog-form {
width: 430px;
padding-top: 20px;
}
.w-215 {
width: 215px;
}
.w-115 {
width: 115px;
}
</style>
......@@ -7,8 +7,8 @@
* @LastEditTime: 2019-09-25 17:12:26
-->
<template>
<div class="navwrap boxbttom">
<el-breadcrumb separator="/">
<div class="navwrap border-box">
<el-breadcrumb separator-class="el-icon-arrow-right">
<template v-for="(item, index) in navpath">
<template v-if="!!item.path">
<el-breadcrumb-item :key="'nav' + index" :to="{ path: item.path }" @click="changeRoute(item.path, item.relocation)">
......@@ -22,12 +22,6 @@
</template>
</template>
</el-breadcrumb>
<h1 class="navtitle" v-if="!slotFlag">{{ navpath[navpath.length - 1].name }}</h1>
<slot v-if="slotFlag"></slot>
<div class="navmTop" v-if="subNavText">
{{ subNavText }}
</div>
<div class="navtip navmTop" v-if="navtip == true"><i class="el-icon-info navtipcolor"></i>变更导航个数,移动顺序,更换页面链接均需提交小程序审核后重新发布生效,其他变更立即生效。小程序审核请联系品牌项目经理。</div>
</div>
</template>
......@@ -152,10 +146,7 @@ export default {
<style scoped>
.navwrap {
padding: 20px 24px;
/*margin-top: 20px;*/
background-color: #fff;
border-radius: 2px;
padding: 12px 20px;
}
.boxbttom {
border-bottom: 1px solid #e4e7ed;
......
......@@ -3,17 +3,17 @@
* @version: 1.0.0
* @Author: 无尘
* @Date: 2018-10-10 17:21:32
* @LastEditors: 无尘
* @LastEditTime: 2019-10-25 15:47:42
* @LastEditors : 无尘
* @LastEditTime : 2020-02-11 09:24:13
-->
<template>
<div class="navheader">
<!-- logo -->
<div class="navheader-logo fl" :class="{ moveleft: isCollapse, moveright: !isCollapse }">好办管理平台</div>
<div class="navheader-logo fl" :class="{ moveleft: isCollapse, moveright: !isCollapse }"><span class="pro-name">好办管理平台</span></div>
<div class="navheader-item fl">
<a class="itemlink icon-collapse" @click="handleCollapse">
<!-- <a class="itemlink icon-collapse" @click="handleCollapse">
<i class="iconfont" :class="{ 'icon-shouqi': !isCollapse, 'icon-zhankai': isCollapse }"></i>
</a>
</a> -->
<template v-for="(menuitem, index) in menuHead">
<a :key="index" :class="['itemlink bottom menu-mall menu-font-16', pathName == menuitem.url ? 'current-module' : '']" @click="changeRouter(menuitem.url)">
{{ menuitem.rightName }}
......@@ -21,11 +21,11 @@
</template>
<!-- 最右侧用户信息 -->
<div class="navuserinfo fr">
<el-button @click="toGicLogin">GIC管理平台</el-button>
<span class="span-log color-909399 iconfont iconrizhifuwu"></span>
<!-- <el-button type="text" @click="toLoginOut">退出</el-button> -->
<el-popover placement="bottom" title="" width="95" trigger="hover" popper-class="user-header-pop" style="min-width: 95px;">
<ul class="navsuerwrap">
<li class="user-item">
<!-- <li class="user-item">
<div class="flex flex-row flex-align-center user-info-wrap">
<div class="user-left-img">
<img :src="userInfo.headPic" alt="" />
......@@ -35,11 +35,13 @@
<p>{{ userInfo.nationcode == '86' ? userInfo.phoneNumber : '+' + userInfo.nationcode + '-' + userInfo.phoneNumber }}</p>
</div>
</div>
</li>
</li> -->
<li class="user-item loginout" style="text-align: center" @click.stop="toLoginOut"><a class="usertext">退出登录</a></li>
<!-- href="javascript:void(0)" -->
</ul>
<a class="nav-user-name" slot="reference"> 账户信息<i class="el-icon-arrow-down arrowico"></i> </a>
<a class="nav-user-name" slot="reference">
<span class="font-12 color-606266">{{ userInfo.name || '--' }}</span> <i class="el-icon-arrow-down arrowico"></i>
</a>
</el-popover>
</div>
</div>
......@@ -326,6 +328,7 @@ export default {
@iconbgcolor: #e6e9f2;
@elmenuisactive: #1890ff;
/* flex */
.flex {
display: -webkit-box;
display: -webkit-flex;
......@@ -389,12 +392,22 @@ export default {
box-sizing: border-box;
}
.flex1(@width,@height) {
.flex1(@width, @height) {
flex: 0 0 @width;
width: @width;
height: @height;
}
.pro-name {
font-size: 16px;
font-weight: 600;
color: rgba(48, 49, 51, 1);
line-height: 22px;
background: linear-gradient(270deg, rgba(91, 74, 219, 1) 0%, rgba(45, 168, 255, 1) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.user-item {
padding: 10px 0;
&:hover {
......@@ -432,41 +445,37 @@ export default {
left: 0;
width: 100%;
/*min-width: 1400px;*/
height: 64px;
line-height: 64px;
height: 46px;
line-height: 46px;
font-size: 14px;
background-color: #fff;
padding: 0;
z-index: 99;
color: #fff;
-webkit-box-shadow: 5px -1px 10px #ddd;
box-shadow: 5px -1px 10px #ddd;
-webkit-box-shadow: 0px 4px 6px 0px rgba(221, 227, 237, 0.29);
box-shadow: 0px 4px 6px 0px rgba(221, 227, 237, 0.29);
.fl {
float: left;
}
.fr {
float: right;
}
&-logo {
flex: 0 0 200px;
width: 200px;
height: 64px;
height: 46px;
float: left;
padding-left: 50px;
font-size: 20px;
color: #1f2f3d;
text-align: center;
text-align: left;
background: url('../assets/logo.png') no-repeat 20px center;
background-size: 22px;
.border-box;
}
&-pic {
vertical-align: middle;
}
&-item {
flex: 1;
}
......@@ -474,36 +483,30 @@ export default {
float: left;
display: inline-block;
width: 133px;
height: 62px;
height: 44px;
text-align: center;
cursor: pointer;
color: #606266;
&.menu-font-16 {
font-size: 16px;
}
&.icon-collapse {
width: auto;
padding: 0 23px 0 14px;
}
&:hover {
color: @main-color;
}
}
.bottom:hover {
border-bottom: 3px solid @main-color;
}
/* 选中 */
.current-module.bottom {
color: @main-color;
border-bottom: 3px solid @main-color;
font-weight: 500;
}
/* logo */
.moveleft {
margin-left: -136px;
......@@ -511,7 +514,6 @@ export default {
background-position: 151px 10px;
color: transparent;
}
.moveright {
margin-left: 0px;
transition: all 0.2s ease;
......@@ -521,14 +523,27 @@ export default {
li {
list-style: none;
}
/*用户信息*/
.navuserinfo {
/*width: 140px;*/
/*font-size: 0;*/
text-align: center;
padding-right: 20px;
.span-log {
position: relative;
padding-right: 10px;
/* border-right: 1px solid #e4e7ed; */
&::after {
content: '';
position: absolute;
top: 3px;
right: 0;
width: 0;
height: 14px;
border-right: 1px solid #e4e7ed;
}
}
.el-button--text {
padding-right: 24px;
font-size: 14px;
......@@ -540,7 +555,7 @@ li {
.nav-user-name {
position: relative;
display: inline-block;
padding: 0 20px;
padding: 0 20px 0 10px;
color: #606266;
text-align: center;
&:hover {
......@@ -558,23 +573,26 @@ li {
border-radius: 50%;
}
}
/* 当浏览器的可视区域小于1280px */
@media screen and (max-width: 1280px) {
.navheader {
min-width: 1280px;
}
}
@media screen and (min-width: 1280px) and (max-width: 1366px) {
.navheader {
min-width: 1280px;
}
}
@media screen and (min-width: 1366px) and (max-width: 1440px) {
.navheader {
min-width: 1366px;
}
}
@media screen and (min-width: 1440px) and (max-width: 1920px) {
.navheader {
min-width: 1440px;
......
......@@ -4,7 +4,7 @@
* @Author: 无尘
* @Date: 2018-10-08 10:45:05
* @LastEditors : 无尘
* @LastEditTime : 2020-01-15 09:53:03
* @LastEditTime : 2020-02-08 16:37:59
*/
import 'babel-polyfill';
import promise from 'es6-promise';
......@@ -12,7 +12,7 @@ promise.polyfill();
// import Vue from 'vue';
import App from './App';
import router from './router';
import ElementUI, { Message } from 'element-ui';
import ElementUI from 'element-ui'; //, { Message }
import VueAxios from 'vue-axios';
import axios from 'axios';
import store from './store/store';
......@@ -31,8 +31,8 @@ import vueGicImgPreview from '@gic-test/vue-gic-img-preview';
import vueOfficeUploadImage from '@gic-test/vue-office-upload-image';
import htmlToPdf from '@/components/utils/htmlToPdf';
import VueAMap from 'vue-amap';
import contentmenu from 'v-contextmenu'
import 'v-contextmenu/dist/index.css'
import contentmenu from 'v-contextmenu';
import 'v-contextmenu/dist/index.css';
Vue.use(contentmenu);
Vue.use(VueAMap);
......@@ -71,25 +71,25 @@ router.beforeEach((to, from, next) => {
baseUrl = host;
}
if (!localStorage.getItem('userInfo')) {
axios
.get(`${baseUrl}/haoban-manage-web/emp/get-user-info`, {})
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
localStorage.setItem('userInfo', JSON.stringify(resData.result));
return;
}
// Message.error({
// duration: 1000,
// message: resData.message
// })
})
.catch(function(error) {
Message.error({
duration: 1000,
message: error.message
});
});
// axios
// .get(`${baseUrl}/haoban-manage-web/emp/get-user-info`, {})
// .then(res => {
// let resData = res.data;
// if (resData.errorCode == 1) {
// localStorage.setItem('userInfo', JSON.stringify(resData.result));
// return;
// }
// // Message.error({
// // duration: 1000,
// // message: resData.message
// // })
// })
// .catch(function(error) {
// Message.error({
// duration: 1000,
// message: error.message
// });
// });
}
if (to.path == '/') {
next({ path: '/login' });
......
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2019-03-20 14:36:37
* @LastEditors : 无尘
* @LastEditTime : 2020-02-12 09:35:15
-->
<template>
<div class="my-customer-wrap common-set-wrap">
<nav-crumb :navpath="navpath"> </nav-crumb>
<div class="right-content">
<div class="right-box" :style="{ 'min-height': bgHeight }">
<div class="apps-content flex" :style="{ 'min-height': bgHeight }">
<div class="apps-content-left w-157" :style="{ 'min-height': bgHeight }">
<common-detail-left :tabListData="tabListData" :activeSelTab="activeSelTab" @setSelectTab="setSelectTab"> </common-detail-left>
</div>
<div class="apps-content-right">
<transition name="fade" mode="out-in">
<router-view :tabType="activeTab" @showTab="showTab"> </router-view>
</transition>
</div>
</div>
</div>
</div>
<vue-gic-footer></vue-gic-footer>
<!-- 公共组件 -->
</div>
</template>
<script>
import navCrumb from '@/components/nav/nav.vue';
import commonDetailLeft from '@/components/app/app-detail-left.vue';
export default {
name: 'reviewed',
data() {
return {
bgHeight: window.screen.availHeight - 380 + 'px',
activeSelTab: '1',
activeTab: '1',
// 面包屑参数
navpath: [
{
name: '首页',
path: '/index'
},
{
name: '我的顾客',
path: ''
}
],
tabListData: [
{
tabId: '1',
tabName: '会员基础设置',
icon: 'iconjichushezhi',
onlyIconActive: false,
children: [
{
tabId: '11',
tabName: '会员展示设置',
icon: ''
},
{
tabId: '12',
tabName: '会员分组设置',
icon: ''
},
{
tabId: '13',
tabName: '会员搜索设置',
icon: ''
}
]
}
],
activeBrand: '', // 商户(品牌) id
activeGroup: '' // 商户(品牌) groupId
};
},
computed: {},
methods: {
/**
* 路由跳转
*/
changeRoute(path) {
this.$router.push(path);
},
/**
* 返回 的 brandId
*/
selectBrandId(id, groupId) {
let that = this;
that.activeBrand = id;
that.activeGroup = groupId;
},
/**
* 选择后返回tabId,做各路由判断
*/
setSelectTab(item) {
let that = this;
that.activeTab = item.tabId;
switch (item.tabId) {
case '11':
that.changeRoute(`memberShowSet`);
break;
case '12':
that.changeRoute(`memberGroupSet`);
break;
case '13':
that.changeRoute(`memberSearchSet`);
break;
}
},
/**
* 各路由返回 tabId
*/
showTab(id) {
let that = this;
that.activeTab = id;
that.activeSelTab = id;
that.tabListData.forEach(ele => {
if (ele.tabId == id) {
ele.onlyIconActive = false;
}
if (!!ele.children) {
ele.children.forEach(el => {
if (el.tabId == id) {
ele.onlyIconActive = true;
}
if (!!el.children) {
el.children.forEach(item => {
if (item.tabId == id) {
ele.onlyIconActive = true;
}
});
}
});
}
});
}
},
watch: {
activeBrand: function(newData, oldData) {
const that = this;
that.activeBrand = newData;
},
activeGroup: function(newData, oldData) {
const that = this;
that.activeGroup = newData;
}
},
mounted() {
let that = this;
let iconUrl = that.$route.query.appIcon;
if (iconUrl) {
that.appIcon = window.unescape(iconUrl);
}
document.documentElement.style.backgroundColor = '#f0f2f5';
},
destroyed() {
document.documentElement.style.backgroundColor = '#fff';
},
components: {
navCrumb,
commonDetailLeft
}
};
</script>
<style type="text/scss" lang="scss" scoped>
.bg-82C5FF {
background: #82c5ff;
}
.color-508CEE {
color: #508cee;
}
.color-FF585C {
color: #ff585c;
}
.line-h-18 {
line-height: 18px;
}
.tooltip-text {
width: 100%;
white-space: pre-wrap;
word-break: break-all;
}
.my-customer-wrap {
height: 100%;
}
.right-content {
/*width: 100%;*/
padding: 0 20px 20px 20px;
min-height: calc(100% - 160px);
.right-box {
background: #fff;
min-height: 500px;
padding: 0px;
.apps-content {
.apps-content-left {
min-width: 157px;
height: 100%;
background: #fff;
overflow-x: hidden;
overflow-y: auto;
.apps-content-left__title {
height: 55px;
line-height: 55px;
padding: 0 0 0 18px;
}
.tab-left-list-cell {
position: relative;
text-align: left;
margin-top: 15px;
height: 30px;
line-height: 30px;
white-space: nowrap;
overflow: hidden;
cursor: pointer;
&:hover {
background: rgba(24, 144, 255, 0.06);
i {
color: #1890ff;
}
}
&.active-tab {
background: rgba(24, 144, 255, 0.06);
&::before {
content: ' ';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 2px;
background: #1890ff;
z-index: 1;
}
i {
color: #1890ff;
}
}
.child-tab-left-list {
li {
position: relative;
text-align: left;
height: 30px;
line-height: 30px;
white-space: nowrap;
overflow: hidden;
cursor: pointer;
&:hover {
background: rgba(24, 144, 255, 0.06);
i {
color: #1890ff;
}
}
&.active-tab {
background: rgba(24, 144, 255, 0.06);
&::before {
content: ' ';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 2px;
background: #1890ff;
z-index: 1;
}
i {
color: #1890ff;
}
}
}
}
}
}
.apps-content-right {
width: calc(100% - 120px);
padding-left: 10px;
background: #f0f2f5;
.daily-set-wrap {
height: 100%;
background: #fff;
}
.app-detail-wrap {
height: 100%;
background: #fff;
}
.common-set-wrap {
height: 100%;
background: #fff;
}
}
}
}
}
</style>
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2019-03-20 14:36:37
* @LastEditors : 无尘
* @LastEditTime : 2020-01-14 10:06:35
-->
<!--
我的顾客应用:
<app-detail ></app-detail>
-->
<template>
<div class="app-detail-wrap">
<div class="app-detail-pane border-box p-20">
<el-checkbox v-model="myCustomData.searchFlag">允许全品牌搜索</el-checkbox>
<div class="m-t-46">
<el-button type="primary" @click="submit('searchFlag')">保 存</el-button>
</div>
</div>
</div>
</template>
<script>
import showMsg from '@/common/js/showmsg';
import errMsg from '@/common/js/error';
import { _debounce } from '@/common/js/public';
import { postRequest } from '@/api/api';
export default {
name: 'app-detail',
props: {
brandId: {
type: String,
default() {
return '';
}
},
tabType: {
type: String,
default() {
return '1';
}
},
activeGroupId: {
type: String,
default() {
return '';
}
}
},
data() {
return {
projectName: '', // 当前项目名
myCustomData: {
searchFlag: false
},
activeId: '1'
};
},
methods: {
/**
* 保存
*/
submit: _debounce(function(type) {
const that = this;
that.setData(type);
}, 500),
/**
* 保存-API
*/
setData(type) {
const that = this;
let para = {
brandId: that.brandId,
enterpriseId: JSON.parse(localStorage.getItem('userInfo')).enterpriseId
};
let url;
if (type != 'showFlag') {
para[type] = !!that.myCustomData[type] ? 1 : 0;
url = '/haoban-app-member-web/customer/save-online-chat-setting';
if (type === 'searchFlag') {
url = '/haoban-app-member-web/customer/save-customer-setting';
}
} else {
para['mainStoreFlag'] = !!that.myCustomData['mainStoreFlag'] ? 1 : 0;
para['minorStoreFlag'] = !!that.myCustomData['minorStoreFlag'] ? 1 : 0;
para['openCardStoreFlag'] = !!that.myCustomData['openCardStoreFlag'] ? 1 : 0;
para['clerkSeeOtherFlag'] = !!that.myCustomData['clerkSeeOtherFlag'] ? 1 : 0;
para['allowGuideContact'] = !!that.myCustomData['allowGuideContact'] ? 1 : 0;
para['allowGuideMobile'] = !!that.myCustomData['allowGuideMobile'] ? 1 : 0;
para['allowGuideMessage'] = !!that.myCustomData['allowGuideMessage'] ? 1 : 0;
para['allowGuideOnlineChat'] = !!that.myCustomData['allowGuideOnlineChat'] ? 1 : 0;
para['isSeeAuthMember'] = !!that.myCustomData['isSeeAuthMember'] ? 1 : 0;
para.chatFlag = that.myCustomData.chatFlag; // 总的
para.isMessageRemind = that.myCustomData.isMessageRemind; // 短信
para.messageRemindTime = that.myCustomData.messageRemindTime;
para.isTemplateMessage = that.myCustomData.isTemplateMessage; // 模板消息
para.isImgMessage = that.myCustomData.isImgMessage; // 图文
para.isGoodMessage = that.myCustomData.isGoodMessage;
para.isIntegralGoodMessage = that.myCustomData.isIntegralGoodMessage;
url = '/haoban-app-member-web/customer/save-member-show-setting';
}
postRequest(url, para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
showMsg.showmsg('保存成功', 'success');
return;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
},
/**
* 改变
*/
changeAllowGuide(e) {
const that = this;
that.myCustomData.allowGuideMobile = e;
that.myCustomData.allowGuideMessage = e;
that.myCustomData.allowGuideOnlineChat = e;
},
/**
* 改变联系
*/
changeContact() {
const that = this;
if (!that.myCustomData.allowGuideMobile && !that.myCustomData.allowGuideMessage && !that.myCustomData.allowGuideOnlineChat) {
that.myCustomData.allowGuideContact = false;
}
},
/**
* 获取全品牌搜索设置数据
*/
getCustomerSet(brandId) {
const that = this;
let para = {
brandId: brandId
};
postRequest('/haoban-app-member-web/customer/find-customer-setting', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
if (!!resData.result) {
that.myCustomData.searchFlag = !!resData.result.searchFlag ? true : false;
}
return;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
}
},
watch: {},
mounted() {
const that = this;
that.$emit('showTab', '13');
that.getCustomerSet(that.brandId);
},
components: {}
};
</script>
<style lang="less" scoped>
.w-500 {
width: 500px;
}
.w-195 {
width: 195px;
}
.color-1890ff {
color: #1890ff;
}
.p-20 {
padding: 20px;
}
.p-l-38 {
padding-left: 38px;
}
.p-l-199 {
padding-left: 199px;
}
.app-detail-wrap {
height: 100%;
background: #fff;
.el-tabs {
background: #fff;
/deep/ .el-tabs__nav-wrap {
/* height: 48px;
line-height: 48px; */
&::after {
height: 1px;
}
/* .el-tabs__nav-scroll {
padding-left: 20px;
} */
}
}
.condition-tip {
width: 740px;
.el-alert--info {
background: #e6f7ff;
border: 1px solid rgba(145, 213, 255, 1);
.el-alert__icon {
font-size: 12px;
}
}
}
}
</style>
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2018-10-10 14:44:45
* @LastEditors: 无尘
* @LastEditTime: 2019-09-25 17:03:45
-->
<template>
<div class="enterprise-wrap">
<!-- 公共头部菜单插件 -->
<vue-office-header :projectName="projectName" @collapseTag="collapseTag" @toRouterView="toRouterView"> </vue-office-header>
<div class="enterprise-wrap__body">
<div id="content" class="content">
<div class="content-body" :style="{ height: contentHeight }">
<transition name="fade" mode="out-in">
<router-view></router-view>
</transition>
</div>
</div>
</div>
</div>
</template>
<script>
import vueOfficeHeader from '@/components/vue-office-header';
export default {
name: 'enterprise',
components: {
vueOfficeHeader
},
data() {
return {
projectName: 'haoban-manage-web', // 当前项目名
collapseFlag: false, // 折叠参数
contentHeight: window.screen.availHeight - 5 + 'px'
};
},
computed: {},
methods: {
// 处理路由跳转
toRouterView(val) {
let that = this;
// 模拟检查数据
// //有两个参数
//{
// name:,
// path:
//}
that.$router.push({
path: val.path
});
},
// 折叠事件
collapseTag(val) {
let that = this;
that.collapseFlag = val;
}
},
mounted() {
const that = this;
that.contentHeight = (document.documentElement.clientHeight || document.body.clientHeight) - 64 + 'px';
}
};
</script>
<style lang="less" scoped>
.enterprise-wrap {
background: #f0f2f5;
.enterprise-wrap__body {
.content {
padding-top: 46px;
min-width: 1400px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
}
}
</style>
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2019-03-20 14:36:37
* @LastEditors: 无尘
* @LastEditTime: 2019-10-24 15:23:36
-->
<template>
<div class="contacts-wrap common-set-wrap">
<nav-crumb :navpath="navpath"> </nav-crumb>
<div class="right-content">
<div class="right-box" :style="{ 'min-height': bgHeight }">
<div class="apps-content flex" :style="{ 'min-height': bgHeight }">
<div class="apps-content-left"></div>
<div class="apps-content-right">
<div class="overstore-tip"></div>
<div class="table-condition-search">
<el-input placeholder="请输入门店名称/CODE/ID" v-model="searchInput" class="w-369" @keyup.native="value => toInput(value, searchInput)" clearable @clear="clearInput"></el-input>
</div>
<el-table class="select-table" ref="multipleTable" :data="tableData" tooltip-effect="dark" :style="{ width: '100%', minHeight: tableH }">
<el-table-column label="门店名称" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.name || '--' }}</template>
</el-table-column>
<el-table-column prop="" label="ERP CODE" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.phoneNumber || '--' }}</template>
</el-table-column>
<el-table-column prop="" label="企业微信部门ID" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.storeName || '--' }}</template>
</el-table-column>
</el-table>
<div class="block common-wrap__page text-right m-t-24" v-if="tableData.length != 0">
<el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[20, 40, 60, 80]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"> </el-pagination>
</div>
</div>
</div>
</div>
</div>
<vue-gic-footer></vue-gic-footer>
</div>
</template>
<script>
import navCrumb from '@/components/nav/nav.vue';
import { getRequest } from '@/api/api';
import errMsg from '@/common/js/error';
import { _debounce } from '@/common/js/public';
export default {
name: 'reviewed',
data() {
return {
bgHeight: window.screen.availHeight - 380 + 'px',
// 面包屑参数
navpath: [
{
name: '首页',
path: '/index'
},
{
name: '通讯录',
path: ''
}
],
searchInput: '',
// 分页参数
currentPage: 1,
pageSize: 20,
total: 0,
tableData: []
};
},
computed: {},
methods: {
/**
* 路由跳转
*/
changeRoute(path) {
this.$router.push(path);
},
/**
* 输入
*/
toInput: _debounce(function(e, value) {
const that = this;
that.currentPage = 1;
that.getTableList();
}, 500),
// 搜索清除
clearInput() {
const that = this;
that.currentPage = 1;
that.getTableList();
},
/**
* 分页---页码变化
*/
handleSizeChange(val) {
const that = this;
that.pageSize = val;
that.getTableList();
},
/**
* 分页---当前页变化
*/
handleCurrentChange(val) {
const that = this;
that.currentPage = val;
that.getTableList();
},
/**
* 获取列表数据
*/
getTableList(val) {
const that = this;
let para = {
keyWord: that.searchInput || '', // 搜索字段
pageNum: that.currentPage, // 当前页
pageSize: that.pageSize // 一页显示个数
};
getRequest('/haoban-app-member-web/customer/find_message_list', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
that.tableData = resData.result.list || [];
that.total = resData.result.total;
return false;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
}
},
watch: {
activeBrand: function(newData, oldData) {
const that = this;
that.activeBrand = newData;
},
activeGroup: function(newData, oldData) {
const that = this;
that.activeGroup = newData;
}
},
mounted() {
let that = this;
let iconUrl = that.$route.query.appIcon;
if (iconUrl) {
that.appIcon = window.unescape(iconUrl);
}
document.documentElement.style.backgroundColor = '#f0f2f5';
},
destroyed() {
document.documentElement.style.backgroundColor = '#fff';
},
components: {
navCrumb
}
};
</script>
<style type="text/scss" lang="scss" scoped>
.bg-82C5FF {
background: #82c5ff;
}
.color-508CEE {
color: #508cee;
}
.color-FF585C {
color: #ff585c;
}
.line-h-18 {
line-height: 18px;
}
.tooltip-text {
width: 100%;
white-space: pre-wrap;
word-break: break-all;
}
.contacts-wrap {
height: 100%;
}
.right-content {
/*width: 100%;*/
padding: 0 20px 20px 20px;
min-height: calc(100% - 160px);
.right-box {
background: #fff;
min-height: 500px;
padding: 0px;
.apps-content {
.apps-content-left {
min-width: 157px;
height: 100%;
background: #fff;
overflow-x: hidden;
overflow-y: auto;
.apps-content-left__title {
height: 55px;
line-height: 55px;
padding: 0 0 0 18px;
}
.tab-left-list-cell {
position: relative;
text-align: left;
margin-top: 15px;
height: 30px;
line-height: 30px;
white-space: nowrap;
overflow: hidden;
cursor: pointer;
&:hover {
background: rgba(24, 144, 255, 0.06);
i {
color: #1890ff;
}
}
&.active-tab {
background: rgba(24, 144, 255, 0.06);
&::before {
content: ' ';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 2px;
background: #1890ff;
z-index: 1;
}
i {
color: #1890ff;
}
}
.child-tab-left-list {
li {
position: relative;
text-align: left;
height: 30px;
line-height: 30px;
white-space: nowrap;
overflow: hidden;
cursor: pointer;
&:hover {
background: rgba(24, 144, 255, 0.06);
i {
color: #1890ff;
}
}
&.active-tab {
background: rgba(24, 144, 255, 0.06);
&::before {
content: ' ';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 2px;
background: #1890ff;
z-index: 1;
}
i {
color: #1890ff;
}
}
}
}
}
}
.apps-content-right {
width: calc(100% - 120px);
padding-left: 10px;
background: #f0f2f5;
.daily-set-wrap {
height: 100%;
background: #fff;
}
.app-detail-wrap {
height: 100%;
background: #fff;
}
.common-set-wrap {
height: 100%;
background: #fff;
}
}
}
}
}
</style>
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2018-10-10 14:44:45
* @LastEditors: 无尘
* @LastEditTime: 2019-09-25 17:03:45
-->
<template>
<div class="enterprise-wrap">
<!-- 公共头部菜单插件 -->
<vue-office-header :projectName="projectName" @collapseTag="collapseTag" @toRouterView="toRouterView"> </vue-office-header>
<div class="enterprise-wrap__body">
<div id="content" class="content">
<div class="content-body" :style="{ height: contentHeight }">
<transition name="fade" mode="out-in">
<router-view></router-view>
</transition>
</div>
</div>
</div>
</div>
</template>
<script>
import vueOfficeHeader from '@/components/vue-office-header';
export default {
name: 'enterprise',
components: {
vueOfficeHeader
},
data() {
return {
projectName: 'haoban-manage-web', // 当前项目名
collapseFlag: false, // 折叠参数
contentHeight: window.screen.availHeight - 5 + 'px'
};
},
computed: {},
methods: {
// 处理路由跳转
toRouterView(val) {
let that = this;
// 模拟检查数据
// //有两个参数
//{
// name:,
// path:
//}
that.$router.push({
path: val.path
});
},
// 折叠事件
collapseTag(val) {
let that = this;
that.collapseFlag = val;
}
},
mounted() {
const that = this;
that.contentHeight = (document.documentElement.clientHeight || document.body.clientHeight) - 64 + 'px';
}
};
</script>
<style lang="less" scoped>
.enterprise-wrap {
background: #f0f2f5;
.enterprise-wrap__body {
.content {
padding-top: 46px;
min-width: 1400px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
}
}
</style>
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2019-03-20 14:36:37
* @LastEditors : 无尘
* @LastEditTime : 2020-02-11 20:38:05
-->
<template>
<div class="my-customer-wrap common-set-wrap">
<nav-crumb :navpath="navpath"> </nav-crumb>
<div class="right-content">
<div class="right-box" :style="{ 'min-height': bgHeight }">
<div class="apps-content flex" :style="{ 'min-height': bgHeight }">
<div class="apps-content-right">
<div class="overstore-tip"></div>
<div class="table-condition-search">
<el-input placeholder="请输入门店名称/CODE/ID" v-model="searchInput" class="w-369" @keyup.native="value => toInput(value, searchInput)" clearable @clear="clearInput"></el-input>
</div>
<el-table class="select-table" ref="multipleTable" :data="tableData" tooltip-effect="dark" :style="{ width: '100%', minHeight: tableH }">
<el-table-column label="门店名称" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.name || '--' }}</template>
</el-table-column>
<el-table-column prop="" label="ERP CODE" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.phoneNumber || '--' }}</template>
</el-table-column>
<el-table-column prop="" label="企业微信部门ID" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.storeName || '--' }}</template>
</el-table-column>
</el-table>
<div class="block common-wrap__page text-right m-t-24" v-if="tableData.length != 0">
<el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[20, 40, 60, 80]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"> </el-pagination>
</div>
</div>
</div>
</div>
</div>
<vue-gic-footer></vue-gic-footer>
</div>
</template>
<script>
import navCrumb from '@/components/nav/nav.vue';
import { getRequest } from '@/api/api';
import errMsg from '@/common/js/error';
import { _debounce } from '@/common/js/public';
export default {
name: 'reviewed',
data() {
return {
bgHeight: window.screen.availHeight - 380 + 'px',
// 面包屑参数
navpath: [
{
name: '首页',
path: '/index'
},
{
name: '溢出门店',
path: ''
}
],
searchInput: '',
// 分页参数
currentPage: 1,
pageSize: 20,
total: 0,
tableData: []
};
},
computed: {},
methods: {
/**
* 路由跳转
*/
changeRoute(path) {
this.$router.push(path);
},
/**
* 输入
*/
toInput: _debounce(function(e, value) {
const that = this;
that.currentPage = 1;
that.getTableList();
}, 500),
// 搜索清除
clearInput() {
const that = this;
that.currentPage = 1;
that.getTableList();
},
/**
* 分页---页码变化
*/
handleSizeChange(val) {
const that = this;
that.pageSize = val;
that.getTableList();
},
/**
* 分页---当前页变化
*/
handleCurrentChange(val) {
const that = this;
that.currentPage = val;
that.getTableList();
},
/**
* 获取列表数据
*/
getTableList(val) {
const that = this;
let para = {
keyWord: that.searchInput || '', // 搜索字段
pageNum: that.currentPage, // 当前页
pageSize: that.pageSize // 一页显示个数
};
getRequest('/haoban-app-member-web/customer/find_message_list', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
that.tableData = resData.result.list || [];
that.total = resData.result.total;
return false;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
}
},
watch: {
activeBrand: function(newData, oldData) {
const that = this;
that.activeBrand = newData;
},
activeGroup: function(newData, oldData) {
const that = this;
that.activeGroup = newData;
}
},
mounted() {
let that = this;
let iconUrl = that.$route.query.appIcon;
if (iconUrl) {
that.appIcon = window.unescape(iconUrl);
}
document.documentElement.style.backgroundColor = '#f0f2f5';
},
destroyed() {
document.documentElement.style.backgroundColor = '#fff';
},
components: {
navCrumb
}
};
</script>
<style type="text/scss" lang="scss" scoped>
.bg-82C5FF {
background: #82c5ff;
}
.color-508CEE {
color: #508cee;
}
.color-FF585C {
color: #ff585c;
}
.line-h-18 {
line-height: 18px;
}
.tooltip-text {
width: 100%;
white-space: pre-wrap;
word-break: break-all;
}
.my-customer-wrap {
height: 100%;
}
.right-content {
/*width: 100%;*/
padding: 0 20px 20px 20px;
min-height: calc(100% - 160px);
.right-box {
background: #fff;
min-height: 500px;
padding: 0px;
.apps-content {
.apps-content-left {
min-width: 157px;
height: 100%;
background: #fff;
overflow-x: hidden;
overflow-y: auto;
.apps-content-left__title {
height: 55px;
line-height: 55px;
padding: 0 0 0 18px;
}
.tab-left-list-cell {
position: relative;
text-align: left;
margin-top: 15px;
height: 30px;
line-height: 30px;
white-space: nowrap;
overflow: hidden;
cursor: pointer;
&:hover {
background: rgba(24, 144, 255, 0.06);
i {
color: #1890ff;
}
}
&.active-tab {
background: rgba(24, 144, 255, 0.06);
&::before {
content: ' ';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 2px;
background: #1890ff;
z-index: 1;
}
i {
color: #1890ff;
}
}
.child-tab-left-list {
li {
position: relative;
text-align: left;
height: 30px;
line-height: 30px;
white-space: nowrap;
overflow: hidden;
cursor: pointer;
&:hover {
background: rgba(24, 144, 255, 0.06);
i {
color: #1890ff;
}
}
&.active-tab {
background: rgba(24, 144, 255, 0.06);
&::before {
content: ' ';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 2px;
background: #1890ff;
z-index: 1;
}
i {
color: #1890ff;
}
}
}
}
}
}
.apps-content-right {
width: calc(100% - 120px);
padding-left: 10px;
background: #f0f2f5;
.daily-set-wrap {
height: 100%;
background: #fff;
}
.app-detail-wrap {
height: 100%;
background: #fff;
}
.common-set-wrap {
height: 100%;
background: #fff;
}
}
}
}
}
</style>
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2019-03-20 14:36:37
* @LastEditors: 无尘
* @LastEditTime: 2019-10-24 15:23:36
-->
<template>
<div class="my-customer-wrap common-set-wrap">
<nav-crumb :navpath="navpath"> </nav-crumb>
<div class="right-content">
<div class="right-box" :style="{ 'min-height': bgHeight }">
<div class="apps-content flex" :style="{ 'min-height': bgHeight }">
<div class="apps-content-right">
<div class="overstore-tip"></div>
<div class="table-condition-search">
<el-input placeholder="请输入部门名称/CODE/ID" v-model="searchInput" class="w-369" @keyup.native="value => toInput(value, searchInput)" clearable @clear="clearInput"></el-input>
</div>
<el-table class="select-table" ref="multipleTable" :data="tableData" tooltip-effect="dark" :style="{ width: '100%', minHeight: tableH }">
<el-table-column label="部门名称" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.name || '--' }}</template>
</el-table-column>
<el-table-column prop="" label="ERP CODE" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.phoneNumber || '--' }}</template>
</el-table-column>
<el-table-column prop="" label="操作" show-overflow-tooltip>
<template slot-scope="scope">
<el-button type="text" size="small" @click="showDetail(scope.$index, scope.row)">恢复</el-button>
</template>
</el-table-column>
</el-table>
<div class="block common-wrap__page text-right m-t-24" v-if="tableData.length != 0">
<el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[20, 40, 60, 80]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"> </el-pagination>
</div>
</div>
</div>
</div>
</div>
<vue-gic-footer></vue-gic-footer>
</div>
</template>
<script>
import navCrumb from '@/components/nav/nav.vue';
import { getRequest } from '@/api/api';
import errMsg from '@/common/js/error';
import { _debounce } from '@/common/js/public';
export default {
name: 'reviewed',
data() {
return {
bgHeight: window.screen.availHeight - 380 + 'px',
// 面包屑参数
navpath: [
{
name: '首页',
path: '/index'
},
{
name: '回收站',
path: ''
}
],
searchInput: '',
// 分页参数
currentPage: 1,
pageSize: 20,
total: 0,
tableData: []
};
},
computed: {},
methods: {
/**
* 路由跳转
*/
changeRoute(path) {
this.$router.push(path);
},
/**
* 输入
*/
toInput: _debounce(function(e, value) {
const that = this;
that.currentPage = 1;
that.getTableList();
}, 500),
// 搜索清除
clearInput() {
const that = this;
that.currentPage = 1;
that.getTableList();
},
/**
* 分页---页码变化
*/
handleSizeChange(val) {
const that = this;
that.pageSize = val;
that.getTableList();
},
/**
* 分页---当前页变化
*/
handleCurrentChange(val) {
const that = this;
that.currentPage = val;
that.getTableList();
},
/**
* 获取列表数据
*/
getTableList(val) {
const that = this;
let para = {
keyWord: that.searchInput || '', // 搜索字段
pageNum: that.currentPage, // 当前页
pageSize: that.pageSize // 一页显示个数
};
getRequest('/haoban-app-member-web/customer/find_message_list', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
that.tableData = resData.result.list || [];
that.total = resData.result.total;
return false;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
}
},
watch: {
activeBrand: function(newData, oldData) {
const that = this;
that.activeBrand = newData;
},
activeGroup: function(newData, oldData) {
const that = this;
that.activeGroup = newData;
}
},
mounted() {
let that = this;
let iconUrl = that.$route.query.appIcon;
if (iconUrl) {
that.appIcon = window.unescape(iconUrl);
}
document.documentElement.style.backgroundColor = '#f0f2f5';
},
destroyed() {
document.documentElement.style.backgroundColor = '#fff';
},
components: {
navCrumb
}
};
</script>
<style type="text/scss" lang="scss" scoped>
.bg-82C5FF {
background: #82c5ff;
}
.color-508CEE {
color: #508cee;
}
.color-FF585C {
color: #ff585c;
}
.line-h-18 {
line-height: 18px;
}
.tooltip-text {
width: 100%;
white-space: pre-wrap;
word-break: break-all;
}
.my-customer-wrap {
height: 100%;
}
.right-content {
/*width: 100%;*/
padding: 0 20px 20px 20px;
min-height: calc(100% - 160px);
.right-box {
background: #fff;
min-height: 500px;
padding: 0px;
.apps-content {
.apps-content-left {
min-width: 157px;
height: 100%;
background: #fff;
overflow-x: hidden;
overflow-y: auto;
.apps-content-left__title {
height: 55px;
line-height: 55px;
padding: 0 0 0 18px;
}
.tab-left-list-cell {
position: relative;
text-align: left;
margin-top: 15px;
height: 30px;
line-height: 30px;
white-space: nowrap;
overflow: hidden;
cursor: pointer;
&:hover {
background: rgba(24, 144, 255, 0.06);
i {
color: #1890ff;
}
}
&.active-tab {
background: rgba(24, 144, 255, 0.06);
&::before {
content: ' ';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 2px;
background: #1890ff;
z-index: 1;
}
i {
color: #1890ff;
}
}
.child-tab-left-list {
li {
position: relative;
text-align: left;
height: 30px;
line-height: 30px;
white-space: nowrap;
overflow: hidden;
cursor: pointer;
&:hover {
background: rgba(24, 144, 255, 0.06);
i {
color: #1890ff;
}
}
&.active-tab {
background: rgba(24, 144, 255, 0.06);
&::before {
content: ' ';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 2px;
background: #1890ff;
z-index: 1;
}
i {
color: #1890ff;
}
}
}
}
}
}
.apps-content-right {
width: calc(100% - 120px);
padding-left: 10px;
background: #f0f2f5;
.daily-set-wrap {
height: 100%;
background: #fff;
}
.app-detail-wrap {
height: 100%;
background: #fff;
}
.common-set-wrap {
height: 100%;
background: #fff;
}
}
}
}
}
</style>
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2018-10-10 14:44:45
* @LastEditors: 无尘
* @LastEditTime: 2019-09-25 17:03:45
-->
<template>
<div class="enterprise-wrap">
<!-- 公共头部菜单插件 -->
<vue-office-header :projectName="projectName" @collapseTag="collapseTag" @toRouterView="toRouterView"> </vue-office-header>
<div class="enterprise-wrap__body">
<div id="content" class="content">
<div class="content-body" :style="{ height: contentHeight }">
<transition name="fade" mode="out-in">
<router-view></router-view>
</transition>
</div>
</div>
</div>
</div>
</template>
<script>
import vueOfficeHeader from '@/components/vue-office-header';
export default {
name: 'enterprise',
components: {
vueOfficeHeader
},
data() {
return {
projectName: 'haoban-manage-web', // 当前项目名
collapseFlag: false, // 折叠参数
contentHeight: window.screen.availHeight - 5 + 'px'
};
},
computed: {},
methods: {
// 处理路由跳转
toRouterView(val) {
let that = this;
// 模拟检查数据
// //有两个参数
//{
// name:,
// path:
//}
that.$router.push({
path: val.path
});
},
// 折叠事件
collapseTag(val) {
let that = this;
that.collapseFlag = val;
}
},
mounted() {
const that = this;
that.contentHeight = (document.documentElement.clientHeight || document.body.clientHeight) - 64 + 'px';
}
};
</script>
<style lang="less" scoped>
.enterprise-wrap {
background: #f0f2f5;
.enterprise-wrap__body {
.content {
padding-top: 46px;
min-width: 1400px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
}
}
</style>
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2019-03-20 14:36:37
* @LastEditors: 无尘
* @LastEditTime: 2019-10-24 15:23:36
-->
<template>
<div class="my-customer-wrap common-set-wrap">
<nav-crumb :navpath="navpath"> </nav-crumb>
<div class="right-content">
<div class="right-box" :style="{ 'min-height': bgHeight }">
<div class="apps-content flex" :style="{ 'min-height': bgHeight }">
<div class="apps-content-right">
<div class="overstore-tip"></div>
<div class="table-condition-search">
<el-input placeholder="请输入门店名称/CODE/ID" v-model="searchInput" class="w-369" @keyup.native="value => toInput(value, searchInput)" clearable @clear="clearInput"></el-input>
</div>
<el-table class="select-table" ref="multipleTable" :data="tableData" tooltip-effect="dark" :style="{ width: '100%', minHeight: tableH }">
<el-table-column label="门店名称" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.name || '--' }}</template>
</el-table-column>
<el-table-column prop="" label="ERP CODE" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.phoneNumber || '--' }}</template>
</el-table-column>
<el-table-column prop="" label="企业微信部门ID" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.storeName || '--' }}</template>
</el-table-column>
</el-table>
<div class="block common-wrap__page text-right m-t-24" v-if="tableData.length != 0">
<el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[20, 40, 60, 80]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"> </el-pagination>
</div>
</div>
</div>
</div>
</div>
<vue-gic-footer></vue-gic-footer>
</div>
</template>
<script>
import navCrumb from '@/components/nav/nav.vue';
import { getRequest } from '@/api/api';
import errMsg from '@/common/js/error';
import { _debounce } from '@/common/js/public';
export default {
name: 'reviewed',
data() {
return {
bgHeight: window.screen.availHeight - 380 + 'px',
// 面包屑参数
navpath: [
{
name: '首页',
path: '/index'
},
{
name: '溢出门店',
path: ''
}
],
searchInput: '',
// 分页参数
currentPage: 1,
pageSize: 20,
total: 0,
tableData: []
};
},
computed: {},
methods: {
/**
* 路由跳转
*/
changeRoute(path) {
this.$router.push(path);
},
/**
* 输入
*/
toInput: _debounce(function(e, value) {
const that = this;
that.currentPage = 1;
that.getTableList();
}, 500),
// 搜索清除
clearInput() {
const that = this;
that.currentPage = 1;
that.getTableList();
},
/**
* 分页---页码变化
*/
handleSizeChange(val) {
const that = this;
that.pageSize = val;
that.getTableList();
},
/**
* 分页---当前页变化
*/
handleCurrentChange(val) {
const that = this;
that.currentPage = val;
that.getTableList();
},
/**
* 获取列表数据
*/
getTableList(val) {
const that = this;
let para = {
keyWord: that.searchInput || '', // 搜索字段
pageNum: that.currentPage, // 当前页
pageSize: that.pageSize // 一页显示个数
};
getRequest('/haoban-app-member-web/customer/find_message_list', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
that.tableData = resData.result.list || [];
that.total = resData.result.total;
return false;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
}
},
watch: {
activeBrand: function(newData, oldData) {
const that = this;
that.activeBrand = newData;
},
activeGroup: function(newData, oldData) {
const that = this;
that.activeGroup = newData;
}
},
mounted() {
let that = this;
let iconUrl = that.$route.query.appIcon;
if (iconUrl) {
that.appIcon = window.unescape(iconUrl);
}
document.documentElement.style.backgroundColor = '#f0f2f5';
},
destroyed() {
document.documentElement.style.backgroundColor = '#fff';
},
components: {
navCrumb
}
};
</script>
<style type="text/scss" lang="scss" scoped>
.bg-82C5FF {
background: #82c5ff;
}
.color-508CEE {
color: #508cee;
}
.color-FF585C {
color: #ff585c;
}
.line-h-18 {
line-height: 18px;
}
.tooltip-text {
width: 100%;
white-space: pre-wrap;
word-break: break-all;
}
.my-customer-wrap {
height: 100%;
}
.right-content {
/*width: 100%;*/
padding: 0 20px 20px 20px;
min-height: calc(100% - 160px);
.right-box {
background: #fff;
min-height: 500px;
padding: 0px;
.apps-content {
.apps-content-left {
min-width: 157px;
height: 100%;
background: #fff;
overflow-x: hidden;
overflow-y: auto;
.apps-content-left__title {
height: 55px;
line-height: 55px;
padding: 0 0 0 18px;
}
.tab-left-list-cell {
position: relative;
text-align: left;
margin-top: 15px;
height: 30px;
line-height: 30px;
white-space: nowrap;
overflow: hidden;
cursor: pointer;
&:hover {
background: rgba(24, 144, 255, 0.06);
i {
color: #1890ff;
}
}
&.active-tab {
background: rgba(24, 144, 255, 0.06);
&::before {
content: ' ';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 2px;
background: #1890ff;
z-index: 1;
}
i {
color: #1890ff;
}
}
.child-tab-left-list {
li {
position: relative;
text-align: left;
height: 30px;
line-height: 30px;
white-space: nowrap;
overflow: hidden;
cursor: pointer;
&:hover {
background: rgba(24, 144, 255, 0.06);
i {
color: #1890ff;
}
}
&.active-tab {
background: rgba(24, 144, 255, 0.06);
&::before {
content: ' ';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 2px;
background: #1890ff;
z-index: 1;
}
i {
color: #1890ff;
}
}
}
}
}
}
.apps-content-right {
width: calc(100% - 120px);
padding-left: 10px;
background: #f0f2f5;
.daily-set-wrap {
height: 100%;
background: #fff;
}
.app-detail-wrap {
height: 100%;
background: #fff;
}
.common-set-wrap {
height: 100%;
background: #fff;
}
}
}
}
}
</style>
......@@ -3,7 +3,7 @@
.arrowico {
position: absolute;
transition: all .5s;
.icoposition(0px, 25px);
.icoposition(0px, 14px);
}
.icoposition(@right: right, @top: top) {
......
No preview for this file type
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
No preview for this file type
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment