This commit is contained in:
gboy 2024-03-29 16:14:45 +08:00
parent 76942b2a71
commit 88e38034b8
17 changed files with 142 additions and 378 deletions

View File

@ -4,11 +4,11 @@ ENV = 'development'
# http://mer.crmeb.net/admin
# base api
# VUE_APP_BASE_API = 'http://192.168.31.106:8324'
VUE_APP_BASE_API = 'https://mer1.crmeb.net'
VUE_APP_BASE_API = 'http://many.shop.lo'
# socket 连接地址
# VUE_APP_WS_URL = 'ws://0.0.0.0:8324'
VUE_APP_WS_URL = 'ws://mer1.crmeb.net'
VUE_APP_WS_URL = 'ws://many.shop.lo'
# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable,
# to control whether the babel-plugin-dynamic-import-node plugin is enabled.

2
.gitignore vendored
View File

@ -21,3 +21,5 @@ selenium-debug.log
package-lock.json
yarn.lock
/.history
/.github

172
README.md
View File

@ -1,4 +1,11 @@
# CRMEB多商户
```bash
cp -r dist/. ../shop-many/public/
```
## 开发规范
统一使用ES6 语法
方法注释
@ -60,171 +67,6 @@ utils 自定义工具js 独立命名,一般不用新建文件夹
├─ userFeedback 用户反馈
├─ error-page 错误页
~~~
## 目录结构
主要目录结构及说明:
~~~
├── public # 静态资源
│ ├── favicon.ico # favicon图标
│ └── index.html # html 模板
├── src # 源代码
│ ├── api # 所有接口api
│ │ └──request.js # 请求封装
│ │ └──accounts.js # 有关财务的接口
│ │ └──promoter.js # 有关分销的接口
│ │ └──app.js # 有关应用(小程序、公众号)的接口
│ │ └──cms.js # 有关内容(文章管理、分类)的接口
│ │ └──home.js # 有关首页的接口
│ │ └──order.js # 有关订单的接口
│ │ └──product.js # 有关商品的接口
│ │ └──setting.js # 有关权限管理的接口
│ │ └──system.js # 有关系统配置的接口
│ │ └──systemForm.js # 有关表单组件的接口
│ │ └──maintain.js # 有关安全维护的接口
│ │ └──merchant.js # 有关商户的接口
│ │ └──sms.js # 有关短信设置的接口
│ │ └──user.js # 有关登录、用户的接口
│ │ └──userFeedback.js # 有关用户反馈的接口
│ │ └──freight.js # 有关物流设置的接口
│ ├── assets # 图片、svg 等静态资源
│ ├── icons # svg 等静态资源
│ ├── components # 公共组件
│ │ └──Breadcrumb # 头部标题标签
│ │ └──cards # 统计
│ │ └──echarts # 统计图
│ │ └──goodsList # 商品列表
│ │ └──Hamburger # 导航收缩组件
│ │ └──HeaderSearch # 导航搜索组件
│ │ └──iconFrom # 导航添加图标
│ │ └──newsCategory # 图文组件
│ │ └──RightPanel # 右侧设置按钮,设置导航相关
│ │ └──Screenfull # 全屏
│ │ └──SvgIcon # svg图标
│ │ └──ThemePicker # 右侧设置按钮,设置组题颜色
│ │ └──ueditorFrom # 富文本编辑器
│ │ └──uploadPicture # 上传图片组件
│ ├── layouts # 导航布局
│ │ ├──index # 主页面
│ │ ├──components # 导航组件
│ │ └──Settings # 右边小按钮,设置导航等
│ │ └──Sidebar # 侧边导航
│ │ └──TagsView # tab标签页导航
│ │ └──Navbar # 头部导航
│ │ └──AppMain # 导航路由
│ │ └──index.js # 组件引用
│ │ └──mixins # 自适应大小
│ ├── libs # 公共js方法
│ │ └──settingMer # 配置请求地址
│ ├── views # 所有页面
│ │ └──login # 登录
│ │ └──index # 登录
│ │ └──dashboard # 首页
│ │ └──product # 商品
│ │ └──band # 品牌管理
│ │ └──productClassify # 商品分类
│ │ └──productExamine # 商品审核
│ │ └──productComment # 商品评论管理
│ │ └──order # 订单管理
│ │ └──promoter # 分销
│ │ └──user # 分销员列表
│ │ └──config # 分销设置
│ │ └──cms # 内容
│ │ └──addArticle # 添加文章/编辑文章
│ │ └──article # 文章管理
│ │ └──articleCategory # 文章分类
│ │ └──user # 用户
│ │ └──group # 用户分组
│ │ └──group # 用户标签
│ │ └──list # 用户管理
│ │ └──accounts # 财务
│ │ └──bill # 充值记录
│ │ └──capital # 资金记录
│ │ └──extract # 提现管理
│ │ └──reconciliation # 财务对账
│ │ └──merchant # 商户
│ │ └──list # 商户列表
│ │ └──classify # 商户分类
│ │ └──system # 商户菜单管理
│ │ └──app # 应用
│ │ └──wechat # 公众号
│ │ └──menus # 微信菜单
│ │ └──newsCategory # 图文管理
│ │ └──save # 图文添加
│ │ └──reply # 自动回复
│ │ └──follow # 微信关注回复/无效关键词回复
│ │ └──keyword # 关键字回复
│ │ └──wxTemplate # 微信/小程序模板消息
│ │ └──system # 设置
│ │ └──config # 系统设置
│ │ └──classify # 配置分类
│ │ └──setting # 配置管理
│ │ └──picture # 素材管理
│ │ └──groupData # 组合设置
│ │ └──list # 组合数据
│ │ └──data # 组合数据列表/登录页幻灯片/首页幻灯片/首页导航按钮/首页推荐区/个人中心幻灯片/个人中心菜单/热门搜索/分销特权/分销海报/充值金额配置
│ │ └──setting # 设置-权限管理
│ │ └──systemRole # 身份管理
│ │ └──systemAdmin # 管理员管理
│ │ └──systemLog # 操作日志
│ │ └──systemMenu # 菜单管理
│ │ └──systemForm # 设置-商城设置
│ │ └──setSystem # 基础配置/商城配置/余额充值设置/文件上传/短信提醒开关/公众号支付配置/小程序支付配置/公众号配置/小程序配置
│ │ └──sms # 短信设置
│ │ └──smsConfig # 短信账户
│ │ └──smsTemplate # 短信模板
│ │ └──smsPay # 短信购买
│ │ └──freight # 物流设置
│ │ └──express # 物流公司
│ │ └──maintain # 安全维护
│ │ └──dataBackup # 数据备份
│ │ └──auth # 商业授权
│ │ └──safe # 维护-页面链接
│ │ └──pageLinks # 页面链接
│ │ └──userFeedback # 用户-用户反馈
│ │ └──list # 反馈列表
│ │ └──classify # 反馈分类
│ │ └──error-page # 错误页
│ │ └──404 # 错误页404
│ │ └──403 # 错误页403
│ ├── filters # 过滤器
│ ├── router # 路由配置
│ │ └──modules # 页面路由模块
│ │ └──accounts.js # 有关财务
│ │ └──app.js # 有关应用(公众号)
│ │ └──cms.js # 有关内容(文章管理、文章分类)
│ │ └──config.js # 有关系统配置
│ │ └──freight.js # 有关物流设置
│ │ └──group.js # 有关组合数据
│ │ └──maintain.js # 有关安全维护
│ │ └──merchant.js # 有关商户
│ │ └──order.js # 有关订单
│ │ └──product.js # 有关商品
│ │ └──promoter.js # 有关分销
│ │ └──routine.js # 有关小程序
│ │ └──safe.js # 有关维护
│ │ └──setting.js # 有关权限
│ │ └──sms.js # 有关短信
│ │ └──systemForm.js # 有关商城设置
│ │ └──user.js # 有关用户
│ │ └──feedback.js # 有关用户反馈
│ │ └──index.js # 路由的汇总
│ ├── store # Vuex 状态管理
│ ├── utils # 全局公用方法
│ ├── styles # 样式管理
│ ├── permission.js # 路由拦截
│ ├── setting.js # 业务配置文件
│ ├── main.js # 入口文件 加载组件 初始化等
│ └── App.vue # 入口页面
├── tests # 测试
├── .env.xxx # 环境变量配置
├── .eslintrc.js # eslint 配置项
├── .babelrc # babel-loader 配置
├── .travis.yml # 自动化CI配置
├── vue.config.js # vue-cli 配置
├── postcss.config.js # postcss 配置
└── package.json # package.json
~~~
## 开发打包项目
~~~

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@ -1,7 +1,7 @@
<template>
<div class="ivu-global-footer i-copyright" v-if="openVersion == 1">
<div v-if="version.status == -1" class="ivu-global-footer-copyright">{{ `Copyright ${version.year} ` }}<a :href="`${version.url}`" target="_blank">{{ version.version }}</a></div>
<div v-else class="ivu-global-footer-copyright">{{ version.Copyright }}</div>
<!-- <div v-if="version.status == -1" class="ivu-global-footer-copyright">{{ `Copyright ${version.year} ` }}<a :href="`${version.url}`" target="_blank">{{ version.version }}</a></div>
<div v-else class="ivu-global-footer-copyright">{{ version.Copyright }}</div> -->
</div>
</template>
<script>
@ -20,14 +20,14 @@ export default {
name: 'i-copyright',
data () {
return {
copyright: 'Copyright © 2022 西安众邦网络科技有限公司',
copyright: '',
openVersion: '0',
copyright_status: '0',
version: {}
}
},
mounted () {
this.getVersion();
// this.getVersion();
},
methods: {
getVersion () {

View File

@ -87,26 +87,26 @@ export default {
type:0,
setUp:0,
productInfo: {
name:'小米商城',
avatar:'http://mer1.crmeb.net/uploads/def/20210427/27ea72a7517c8a3e322122a0c8fca30a.png',
bgPic:'http://mer1.crmeb.net/uploads/def/20210427/a88fb560fd8b83e3a1944f1e09069b7e.jpg',
proList:[
{
image: "",
store_name: "无线蓝牙耳机",
price: '1299.00'
},
{
image: "",
store_name: "苹果新款平板",
price: '1299.00'
},
{
image: "",
store_name: "蒸汽手持熨斗",
price: '1299.00'
}
]
// name:'',
// avatar:'http://mer1.crmeb.net/uploads/def/20210427/27ea72a7517c8a3e322122a0c8fca30a.png',
// bgPic:'http://mer1.crmeb.net/uploads/def/20210427/a88fb560fd8b83e3a1944f1e09069b7e.jpg',
// proList:[
// {
// image: "",
// store_name: "线",
// price: '1299.00'
// },
// {
// image: "",
// store_name: "",
// price: '1299.00'
// },
// {
// image: "",
// store_name: "",
// price: '1299.00'
// }
// ]
}
}
},

View File

@ -197,97 +197,7 @@ export default {
titleUrl: "",
titleShow: true,
priceShow: true,
shopList:[
{
name:'小米商城',
avatar:'http://mer1.crmeb.net/uploads/def/20210427/27ea72a7517c8a3e322122a0c8fca30a.png',
bgPic:'http://mer1.crmeb.net/uploads/def/20210427/a88fb560fd8b83e3a1944f1e09069b7e.jpg',
proList:[
{
image: "",
store_name: "无线蓝牙耳机",
price: '1299.00'
},
{
image: "",
store_name: "苹果新款平板",
price: '1299.00'
},
{
image: "",
store_name: "蒸汽手持熨斗",
price: '1299.00'
}
]
},
{
name:'小米商城',
avatar:'http://mer1.crmeb.net/uploads/def/20210427/27ea72a7517c8a3e322122a0c8fca30a.png',
bgPic:'http://mer1.crmeb.net/uploads/def/20210427/a88fb560fd8b83e3a1944f1e09069b7e.jpg',
proList:[
{
image: "",
store_name: "无线蓝牙耳机",
price: '1299.00'
},
{
image: "",
store_name: "苹果新款平板",
price: '1299.00'
},
{
image: "",
store_name: "蒸汽手持熨斗",
price: '1299.00'
}
]
},
{
name:'小米商城',
avatar:'http://mer1.crmeb.net/uploads/def/20210427/27ea72a7517c8a3e322122a0c8fca30a.png',
bgPic:'http://mer1.crmeb.net/uploads/def/20210427/a88fb560fd8b83e3a1944f1e09069b7e.jpg',
proList:[
{
image: "",
store_name: "无线蓝牙耳机",
price: '1299.00'
},
{
image: "",
store_name: "苹果新款平板",
price: '1299.00'
},
{
image: "",
store_name: "蒸汽手持熨斗",
price: '1299.00'
}
]
},
{
name:'小米商城',
avatar:'http://mer1.crmeb.net/uploads/def/20210427/27ea72a7517c8a3e322122a0c8fca30a.png',
bgPic:'http://mer1.crmeb.net/uploads/def/20210427/a88fb560fd8b83e3a1944f1e09069b7e.jpg',
proList:[
{
image: "",
store_name: "无线蓝牙耳机",
price: '1299.00'
},
{
image: "",
store_name: "苹果新款平板",
price: '1299.00'
},
{
image: "",
store_name: "蒸汽手持熨斗",
price: '1299.00'
}
]
}
],
shopList:[],
}
},

View File

@ -220,18 +220,18 @@ export default {
color: '',
icon: 'iconyijieshu',
goods: [
{
img: 'http://admin.crmeb.net/uploads/attach/2020/05/20200515/4f17d0727e277eb86ecc6296e96c2c09.png',
price: '199'
},
{
img: 'http://admin.crmeb.net/uploads/attach/2020/05/20200515/4f17d0727e277eb86ecc6296e96c2c09.png',
price: '199'
},
{
img: 'http://admin.crmeb.net/uploads/attach/2020/05/20200515/4f17d0727e277eb86ecc6296e96c2c09.png',
price: '199'
}
// {
// img: 'http://admin.crmeb.net/uploads/attach/2020/05/20200515/4f17d0727e277eb86ecc6296e96c2c09.png',
// price: '199'
// },
// {
// img: 'http://admin.crmeb.net/uploads/attach/2020/05/20200515/4f17d0727e277eb86ecc6296e96c2c09.png',
// price: '199'
// },
// {
// img: 'http://admin.crmeb.net/uploads/attach/2020/05/20200515/4f17d0727e277eb86ecc6296e96c2c09.png',
// price: '199'
// }
]
},
{
@ -241,14 +241,14 @@ export default {
color: '',
icon: 'iconweikaishi',
goods: [
{
img: 'http://admin.crmeb.net/uploads/attach/2020/05/20200515/4f17d0727e277eb86ecc6296e96c2c09.png',
price: '199'
},
{
img: 'http://admin.crmeb.net/uploads/attach/2020/05/20200515/4f17d0727e277eb86ecc6296e96c2c09.png',
price: '199'
}
// {
// img: 'http://admin.crmeb.net/uploads/attach/2020/05/20200515/4f17d0727e277eb86ecc6296e96c2c09.png',
// price: '199'
// },
// {
// img: 'http://admin.crmeb.net/uploads/attach/2020/05/20200515/4f17d0727e277eb86ecc6296e96c2c09.png',
// price: '199'
// }
]
},
{
@ -258,14 +258,14 @@ export default {
color: '',
icon: 'iconzhibozhong',
goods: [
{
img: 'http://admin.crmeb.net/uploads/attach/2020/05/20200515/4f17d0727e277eb86ecc6296e96c2c09.png',
price: '199'
},
{
img: 'http://admin.crmeb.net/uploads/attach/2020/05/20200515/4f17d0727e277eb86ecc6296e96c2c09.png',
price: '199'
}
// {
// img: 'http://admin.crmeb.net/uploads/attach/2020/05/20200515/4f17d0727e277eb86ecc6296e96c2c09.png',
// price: '199'
// },
// {
// img: 'http://admin.crmeb.net/uploads/attach/2020/05/20200515/4f17d0727e277eb86ecc6296e96c2c09.png',
// price: '199'
// }
]
},
],

View File

@ -88,7 +88,7 @@ const themeConfigModule = {
// 分栏高亮风格:可选值"<columns-round|columns-card>",默认 columns-round
columnsAsideStyle: 'columns-card',
// 分栏布局风格:可选值"<columns-horizontal|columns-vertical>",默认 columns-horizontal
columnsAsideLayout: 'columns-horizontal',
columnsAsideLayout: 'columns-vertical',
/**
* 布局切换
@ -96,13 +96,13 @@ const themeConfigModule = {
* 中的 `initSetLayoutChange(设置布局切换,重置主题样式)` 方法
*/
// 布局切换:可选值"<defaults|classic|transverse|columns>",默认 defaults
layout: 'classic',
layout: 'columns',
/**
* 全局网站标题 / 副标题
*/
// 网站主标题(菜单导航、浏览器当前网页标题)
globalTitle: 'crmeb-admin',
globalTitle: '铸源优品',
// 网站副标题(登录页顶部文字)
globalViceTitle: '',
// 网站描述(登录页顶部文字)

View File

@ -63,42 +63,42 @@ export default {
...mapGetters(["roles"])
},
mounted() {
this.getAuth();
// this.getAuth();
this.getList("lately30");
this.getVisit("lately30");
this.getCheckTips()
if(!Cookies.get("auth")) {
checkAuthApi()
.then(res => {
if(res.message !== "success") {
return this.$notify.warning({
title: "授权提醒",
duration: 0,
dangerouslyUseHTMLString: true,
message: res.message,
render: h => {
return h("div", [
h(
"a",
{
attrs: {
href:
"http://www.crmeb.com/home/grant/applyauthorize.html",
target: "_blank"
}
},
res.message
)
]);
},
onClose() {
Cookies.set("auth", true);
}
});
}
})
.catch(res => { });
}
// if(!Cookies.get("auth")) {
// checkAuthApi()
// .then(res => {
// if(res.message !== "success") {
// return this.$notify.warning({
// title: "",
// duration: 0,
// dangerouslyUseHTMLString: true,
// message: res.message,
// render: h => {
// return h("div", [
// h(
// "a",
// {
// attrs: {
// href:
// "http://www.crmeb.com/home/grant/applyauthorize.html",
// target: "_blank"
// }
// },
// res.message
// )
// ]);
// },
// onClose() {
// Cookies.set("auth", true);
// }
// });
// }
// })
// .catch(res => { });
// }
},
methods: {
getAuth() {

View File

@ -95,15 +95,15 @@
</el-form>
</div>
</div>
<div class="record_number">
<template v-if="copyright.status == -1">
<!-- <div class="record_number"> -->
<!-- <template v-if="copyright.status == -1">
<span class="cell">Copyright {{ copyright.year }}</span>
<a class="cell" :href="`http://${copyright.url}`" target="_blank">{{
copyright.version
}}</a>
</template>
<template v-else>{{ copyright.Copyright }}</template>
</div>
</template> -->
<!-- <template v-else>{{ copyright.Copyright }}</template> -->
<!-- </div> -->
<Verify
@success="success"
captchaType="blockPuzzle"
@ -243,7 +243,7 @@ export default {
}
});
this.getCaptcha();
this.getVersion();
// this.getVersion();
},
beforeCreate() {
if (this.fullWidth < 768) {

View File

@ -1,6 +1,6 @@
<template>
<div class="divBox">
<el-card class="box-card">
<!-- <el-card class="box-card">
<div class="auth acea-row row-between-wrapper">
<div class="acea-row row-middle">
<i class="el-icon-share iconIos blue" />
@ -27,10 +27,10 @@
<el-button v-else-if="status === 2" type="primary" size="small" @click="applyAuth">重新申请</el-button>
<el-button v-else-if="status === 0" size="small" class="grey">审核中</el-button>
</div>
</div>
</el-card>
</div> -->
<!-- </el-card> -->
<el-card v-if="copyrightStatus != 1 && status == 1" class="box-card mt15">
<div class="auth acea-row row-between-wrapper">
<!-- <div class="auth acea-row row-between-wrapper">
<div class="acea-row row-middle">
<i class="el-icon-s-help iconIos blue" />
<div class="text">
@ -41,10 +41,10 @@
<div>
<el-button type="primary" size="small" @click="isTemplate = true; title='去版权'">去版权</el-button>
</div>
</div>
</div> -->
</el-card>
<el-card v-if="copyrightStatus == 1 && status == 1" style="margin-top: 15px;">
<div class="auth acea-row row-between-wrapper">
<!-- <div class="auth acea-row row-between-wrapper">
<div class="acea-row row-middle">
<span class="iconfont iconbanquan iconIos blue"></span>
<div class="acea-row row-middle">
@ -65,9 +65,9 @@
<div class="iconfont">+</div>
</div>
</div>
<span class="prompt">建议尺寸宽290px*高100px</span>
<span class="prompt">建议尺寸宽290px*高100px</span> -->
</el-card>
<el-dialog
<!-- <el-dialog
v-if="isTemplate"
v-model="isTemplate"
:visible.sync="isTemplate"
@ -80,7 +80,7 @@
style="padding: 0;"
>
<iframe :src="iframeUrl+'&inner_frame=1'" style="width:400px;height:600px;" frameborder="0" />
</el-dialog>
</el-dialog> -->
</div>
</template>
<script>
@ -125,7 +125,7 @@ export default {
dialogVisible: false,
status: -1,
dayNum: 0,
captchs: 'http://authorize.crmeb.net/api/captchs/',
captchs: '',
authCode: '',
loading: false,
isTemplate: false,
@ -135,18 +135,18 @@ export default {
authorizedPicture: '', //
modalPic: false,
copyrightStatus: 0,
title: '去版权'
title: ''
}
},
mounted() {
this.getAuth()
this.getAuthData()
this.captchsChang()
window.addEventListener("message", e=>{
if(e.data.event == 'onCancel'){
this.handleClose();
}
})
// this.getAuth()
// this.getAuthData()
// this.captchsChang()
// window.addEventListener("message", e=>{
// if(e.data.event == 'onCancel'){
// this.handleClose();
// }
// })
},
methods: {
captchsChang() {
@ -222,7 +222,7 @@ export default {
});
},
toCrmeb() {
window.open('http://www.crmeb.com')
// window.open('http://www.crmeb.com')
},
handleClose(){
this.isTemplate = false

View File

@ -1,6 +1,6 @@
<template>
<div class="divBox">
<el-card class="box-card FromData">
<!-- <el-card class="box-card FromData">
<div class="auth acea-row row-between-wrapper">
<div class="acea-row row-middle">
<span class="el-icon-s-opportunity"></span>
@ -24,7 +24,7 @@
custom-class="dialog-scustom"
>
<iframe :src="iframeUrl+'&inner_frame=1'" style="width:400px;margin-left:-20px;height:600px;" frameborder="0" />
</el-dialog>
</el-dialog> -->
</div>
</template>
@ -54,8 +54,8 @@ export default {
}
},
mounted() {
this.iframeUrl ='https://shop.crmeb.net/html/index.html?url='+this.BaseURL+'&product=mer&venrsion=2.0&label='
this.getAuth()
// this.iframeUrl ='https://shop.crmeb.net/html/index.html?url='+this.BaseURL+'&product=mer&venrsion=2.0&label='
// this.getAuth()
},
created() {

View File

@ -20,6 +20,15 @@
label="分类名称"
min-width="150"
/>
<el-table-column
prop="category_name"
label="分类Icon"
min-width="150"
>
<template slot-scope="scope">
<el-image :src="scope.row.category_icon" />
</template>
</el-table-column>
<el-table-column
prop="commission_rate"
label="手续费"

View File

@ -108,6 +108,7 @@
<span v-show="scope.row.is_del > 0" style="color: #ED4014;display: block;">用户已删除</span>
</template>
</el-table-column>
<el-table-column prop="order.order_sn" label="订单号" min-width="130" />
<el-table-column prop="user.nickname" label="用户信息" min-width="130" />
<el-table-column prop="merchant.mer_name" label="商户名称" min-width="130" />
<el-table-column prop="mer_name" label="商户类别" min-width="90">

View File

@ -196,7 +196,7 @@ export default {
},
created() {
this.getInfo();
this.getVersion();
// this.getVersion();
},
methods: {
currentShow(type){

View File

@ -130,7 +130,7 @@ export default {
},
{
title: '例如:国庆优惠活动',
content: '10月1日-8日期间 全场商品满1000减200国庆欢乐购立即查看http://mer.crmeb.net/admin.'
content: '10月1日-8日期间 全场商品满1000减200国庆欢乐购'
}
],
tableFrom: {