mirror of
https://github.com/crmeb/CRMEB.git
synced 2025-12-31 16:18:20 +00:00
Merge branch 'master' of https://gitee.com/ZhongBangKeJi/CRMEB
This commit is contained in:
commit
b0a33ead2f
@ -1 +1 @@
|
||||
<?php
namespace app\admin\controller\system;
use app\admin\controller\AuthController;
use app\admin\model\system\SystemAdmin;
use app\admin\model\system\SystemLog as LogModel;
use service\UtilService as Util;
/**
* 管理员操作记录表控制器
* Class SystemLog
* @package app\admin\controller\system
*/
class SystemLog extends AuthController
{
/**
* 显示操作记录
*/
public function index(){
LogModel::deleteLog();
$where = Util::getMore([
['pages',''],
['admin_id',''],
['data',''],
],$this->request);
$where['level'] = $this->adminInfo['level'];
$this->assign('where',$where);
$this->assign('admin',SystemAdmin::getOrdAdmin('id,real_name',$this->adminInfo['level']));
$this->assign(LogModel::systemPage($where));
return $this->fetch();
}
}
|
||||
<?php
namespace app\admin\controller\system;
use app\admin\controller\AuthController;
use app\admin\model\system\SystemConfig;
use app\admin\model\system\SystemAdmin;
use app\admin\model\system\SystemLog as LogModel;
use service\UtilService as Util;
/**
* 管理员操作记录表控制器
* Class SystemLog
* @package app\admin\controller\system
*/
class SystemLog extends AuthController
{
/**
* 显示操作记录
*/
public function index(){
$log_cycle = SystemConfig::getValue('log_cycle')?:90;
LogModel::deleteLog($log_cycle);
$where = Util::getMore([
['pages',''],
['admin_id',''],
['data',''],
],$this->request);
$where['level'] = $this->adminInfo['level'];
$this->assign('where',$where);
$this->assign('admin',SystemAdmin::getOrdAdmin('id,real_name',$this->adminInfo['level']));
$this->assign(LogModel::systemPage($where));
return $this->fetch();
}
}
|
||||
@ -99,11 +99,13 @@ class SystemLog extends ModelBasic
|
||||
return self::page($model,$where);
|
||||
}
|
||||
/**
|
||||
* @day
|
||||
* 删除超过90天的日志
|
||||
*/
|
||||
public static function deleteLog(){
|
||||
public static function deleteLog($day = 90){
|
||||
$model = new self;
|
||||
$model->where('add_time','<',time()-7776000);
|
||||
$times = $day*86400;
|
||||
$model->where('add_time','<',time()-$times);
|
||||
$model->delete();
|
||||
}
|
||||
}
|
||||
@ -1 +1,21 @@
|
||||
<!DOCTYPE html><html lang="zh-CN"><head> {include file="public/head"} <title>{$title}</title></head><body><div id="form-add" class="mp-form" v-cloak=""> <?php /* <i-form ref="formValidate" :model="formValidate" :rules="ruleValidate" :label-width="80"> <form-Item label="菜单名称" prop="name"> <i-input v-model="formValidate.name" placeholder="请输入姓名"></i-input> </form-Item> <form-Item label="邮箱" prop="mail"> <i-input v-model="formValidate.mail" placeholder="请输入邮箱"></i-input> </form-Item> <form-Item label="城市" prop="city"> <i-select v-model="formValidate.city" placeholder="请选择所在地"> <i-option value="beijing">北京市</i-option> <i-option value="shanghai">上海市</i-option> <i-option value="shenzhen">深圳市</i-option> </i-select> </form-Item> <Form-Item label="选择日期"> <Row> <i-col span="11"> <form-Item prop="date"> <Date-Picker type="date" placeholder="选择日期" v-model="formValidate.date"></Date-Picker> </form-Item> </i-col> <i-Col span="1" style="text-align: center">-</i-Col> <i-Col span="11"> <form-Item prop="time"> <Time-Picker type="time" placeholder="选择时间" v-model="formValidate.time"></Time-Picker> </form-Item> </i-Col> </Row> </Form-Item> <form-Item label="性别" prop="gender"> <Radio-Group v-model="formValidate.gender"> <Radio label="male">男</Radio> <Radio label="female">女</Radio> </Radio-Group> </form-Item> <form-Item label="爱好" prop="interest"> <Checkbox-Group v-model="formValidate.interest"> <Checkbox label="吃饭"></Checkbox> <Checkbox label="睡觉"></Checkbox> <Checkbox label="跑步"></Checkbox> <Checkbox label="看电影"></Checkbox> </Checkbox-Group> </form-Item> <component :is="componentId" label="介绍" prop="desc"> <component :is="componentIs" v-model="formValidate.desc" type="textarea" :autosize="{minRows: 2,maxRows: 5}" placeholder="请输入..."></component> </component> <form-Item label="介绍" prop="desc"> <i-input v-model="formValidate.desc" type="textarea" :autosize="{minRows: 2,maxRows: 5}" placeholder="请输入..."></i-input> </form-Item> <form-Item> <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button> <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button> </form-Item> </i-form> <m-mycom> </m-mycom> */ ?> <form-builder></form-builder></div><script> var _vm ; var rules = {$rules}; console.log(rules); _mpApi = parent._mpApi; mpFrame.start(function(Vue){ require(['axios','system/util/mpFormBuilder'],function(axios,mpFormBuilder){ Vue.use(mpFormBuilder,_mpApi,rules,{ action:'{$save}' }); new Vue({ el:"#form-add", mounted:function(){ } }) }); });</script></body>
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head> {include file="public/head"} <title>{$title}</title></head>
|
||||
<body>
|
||||
<div id="form-add" class="mp-form" v-cloak="">
|
||||
<form-builder></form-builder>
|
||||
</div>
|
||||
<script> var _vm;
|
||||
var rules = {$rules};
|
||||
console.log(rules);
|
||||
_mpApi = parent._mpApi;
|
||||
mpFrame.start(function (Vue) {
|
||||
require(['axios', 'system/util/mpFormBuilder'], function (axios, mpFormBuilder) {
|
||||
Vue.use(mpFormBuilder, _mpApi, rules, {action: '{$save}'});
|
||||
new Vue({
|
||||
el: "#form-add", mounted: function () {
|
||||
}
|
||||
})
|
||||
});
|
||||
});</script>
|
||||
</body>
|
||||
@ -1 +1,20 @@
|
||||
<!DOCTYPE html><html lang="zh-CN"><head> {include file="public/head"} <title>{$title}</title></head><body><div id="form-add" class="mp-form" v-cloak=""> <?php /* <i-form ref="formValidate" :model="formValidate" :rules="ruleValidate" :label-width="80"> <form-Item label="菜单名称" prop="name"> <i-input v-model="formValidate.name" placeholder="请输入姓名"></i-input> </form-Item> <form-Item label="邮箱" prop="mail"> <i-input v-model="formValidate.mail" placeholder="请输入邮箱"></i-input> </form-Item> <form-Item label="城市" prop="city"> <i-select v-model="formValidate.city" placeholder="请选择所在地"> <i-option value="beijing">北京市</i-option> <i-option value="shanghai">上海市</i-option> <i-option value="shenzhen">深圳市</i-option> </i-select> </form-Item> <Form-Item label="选择日期"> <Row> <i-col span="11"> <form-Item prop="date"> <Date-Picker type="date" placeholder="选择日期" v-model="formValidate.date"></Date-Picker> </form-Item> </i-col> <i-Col span="1" style="text-align: center">-</i-Col> <i-Col span="11"> <form-Item prop="time"> <Time-Picker type="time" placeholder="选择时间" v-model="formValidate.time"></Time-Picker> </form-Item> </i-Col> </Row> </Form-Item> <form-Item label="性别" prop="gender"> <Radio-Group v-model="formValidate.gender"> <Radio label="male">男</Radio> <Radio label="female">女</Radio> </Radio-Group> </form-Item> <form-Item label="爱好" prop="interest"> <Checkbox-Group v-model="formValidate.interest"> <Checkbox label="吃饭"></Checkbox> <Checkbox label="睡觉"></Checkbox> <Checkbox label="跑步"></Checkbox> <Checkbox label="看电影"></Checkbox> </Checkbox-Group> </form-Item> <component :is="componentId" label="介绍" prop="desc"> <component :is="componentIs" v-model="formValidate.desc" type="textarea" :autosize="{minRows: 2,maxRows: 5}" placeholder="请输入..."></component> </component> <form-Item label="介绍" prop="desc"> <i-input v-model="formValidate.desc" type="textarea" :autosize="{minRows: 2,maxRows: 5}" placeholder="请输入..."></i-input> </form-Item> <form-Item> <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button> <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button> </form-Item> </i-form> <m-mycom> </m-mycom> */ ?> <form-builder></form-builder></div><script> var _vm ; _mpApi = parent._mpApi; mpFrame.start(function(Vue){ require(['axios','system/util/mpFormBuilder'],function(axios,mpFormBuilder){ axios.post('{$read}').then((result)=>{ Vue.use(mpFormBuilder,_mpApi,result.data,{ action:'{$update}' }); new Vue({ el:"#form-add", mounted:function(){ } }) }) }); });</script></body>
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head> {include file="public/head"} <title>{$title}</title></head>
|
||||
<body>
|
||||
<div id="form-add" class="mp-form" v-cloak="">
|
||||
<form-builder></form-builder>
|
||||
</div>
|
||||
<script> var _vm;
|
||||
_mpApi = parent._mpApi;
|
||||
mpFrame.start(function (Vue) {
|
||||
require(['axios', 'system/util/mpFormBuilder'], function (axios, mpFormBuilder) {
|
||||
axios.post('{$read}').then((result) = > {Vue.use(mpFormBuilder, _mpApi, result.data, {action: '{$update}'});
|
||||
new Vue({
|
||||
el: "#form-add", mounted: function () {
|
||||
}
|
||||
})
|
||||
})
|
||||
});
|
||||
});</script>
|
||||
</body>
|
||||
118
doc.md
Normal file
118
doc.md
Normal file
@ -0,0 +1,118 @@
|
||||
## CRMEB开源文档地址:https://gitee.com/ZhongBangKeJi/CRMEB
|
||||
## 运行环境
|
||||
CRMEB可以支持Windows/Unix服务器环境,需要PHP5.5.9以上,Mysql5.1以上版本支持, 可运行于包括Apache、IIS和nginx在内的多种WEB服务器和模式,支持Mysql数据库,引擎用InnoDB;
|
||||
|
||||
如果使用curl发起https请求的时候报错:“SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed”
|
||||
服务器需要安装证书免费的,方法如下:
|
||||
http://curl.haxx.se/ca/cacert.pem [下载](http://curl.haxx.se/ca/cacert.pem)
|
||||
curl.cainfo 参数(php.ini)来指定CA根证书库的位置
|
||||
|
||||
如果使用小程序必须使用https协议[百科了解一下](https://baike.baidu.com/item/https/285356),服务器需要安装ssl证书
|
||||
|
||||
|
||||
框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。 CRMEB底层运行的内存消耗极低,而本身的文件大小也是轻量级的,因此不会出现 空间和内存占用的瓶颈。对于刚刚接触PHP或者CRMEB的新手,我们推荐使用集成开发 环境WAMPServer或者phpstudy(都是一个集成了Apache、PHP和MySQL的开发 套件,而且支持不同PHP版本、MySQL版本和Apache版本的切换)来使用CRMEB 进行本地开发和测试。
|
||||
|
||||
## 安装使用
|
||||
|
||||
## 一键安装
|
||||
上传你的代码,直接在浏览器中输入你的域名或IP(例如:www.yourdomain.com),
|
||||
安装可以直接访问根目录下index.php,页可以设置对外目录为crmeb,就默认访问crmeb目录下的index.php
|
||||
安装程序会自动执行安装。期间系统会提醒你输入数据库信息以完成安装,安装完成后建议删除install目录下index.php文件或将其改名。
|
||||
## 手动安装
|
||||
|
||||
1.创建数据库,倒入数据库文件
|
||||
|
||||
数据库文件目录名crmeb.sql,在根目录下.
|
||||
|
||||
2.修改数据库连接文件
|
||||
|
||||
配置文件路径/application/database.php
|
||||
|
||||
3.修改目录权限(linux系统)777
|
||||
|
||||
/public
|
||||
|
||||
/runtime
|
||||
|
||||
4.后台登录:http://域名/admin
|
||||
|
||||
默认账号:admin 密码:crmeb.com
|
||||
|
||||
5.前端登陆(wap端登陆):http://域名/wap
|
||||
|
||||
默认账号:crmeb 密码:123456
|
||||
|
||||
6.小程序模版路径
|
||||
|
||||
/application/routine/view/crmebN
|
||||
|
||||
需要配置域名
|
||||
|
||||
/application/routine/view/crmebN/app.js
|
||||
|
||||
```
|
||||
globalData: {
|
||||
routineStyle:'#ffffff',
|
||||
uid: null,
|
||||
openPages:'',
|
||||
spid:0,
|
||||
urlImages: '',
|
||||
url: 'https://shop.crmeb.net/'//改成自己的网址
|
||||
},
|
||||
```
|
||||
|
||||
### # 伪静态
|
||||
1、Nginx
|
||||
~~~
|
||||
location / {
|
||||
if (!-e $request_filename) {
|
||||
rewrite ^(.*)$ /index.php?s=$1 last;
|
||||
break;
|
||||
}
|
||||
}
|
||||
~~~
|
||||
2、Apache
|
||||
.htaccess文件
|
||||
~~~
|
||||
RewriteEngine
|
||||
on
|
||||
|
||||
#不显示index.php
|
||||
|
||||
RewriteCond %{REQUEST_FILENAME}
|
||||
!-d
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule ^(.*)$ index.php/$1
|
||||
[QSA,PT,L]
|
||||
~~~
|
||||
3、iis服务
|
||||
web.config
|
||||
~~~
|
||||
<rewrite>
|
||||
<rules>
|
||||
<rule name="OrgPage" stopProcessing="true">
|
||||
<match url="^(.*)$" />
|
||||
<conditions logicalGrouping="MatchAll">
|
||||
<add input="{HTTP_HOST}" pattern="^(.*)$" />
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
|
||||
</conditions>
|
||||
<action type="Rewrite" url="index.php/{R:1}" />
|
||||
</rule>
|
||||
</rules>
|
||||
</rewrite>
|
||||
~~~
|
||||
更多参考:https://www.kancloud.cn/manual/thinkphp5/177576
|
||||
|
||||
项目支持公众号商城和小程序商城可单独配置使用,如需公众号和小程序账户同步,请申请微信开放平台进行绑定
|
||||
开放平台申请地址:https://open.weixin.qq.com/
|
||||
|
||||
开源项目不含:砍价和拼团功能
|
||||
如需砍价和拼团完功能请淘宝购买仅需49元
|
||||
官方淘宝地址:https://shop120689819.taobao.com/
|
||||
|
||||
更多帮助文档:https://gitee.com/ZhongBangKeJi/CRMEB/wikis/%E5%BC%80%E5%8F%91%E6%96%87%E6%A1%A3?sort_id=680379
|
||||
帮助文档:https://gitee.com/ZhongBangKeJi/CRMEB/wikis
|
||||
数据字典:请配置public/mysql.php 访问查看
|
||||
技术支持QQ群:116279623
|
||||
form-builder帮助文档:https://github.com/xaboy/form-builder
|
||||
@ -1,10 +1,10 @@
|
||||
RewriteEngine
|
||||
on
|
||||
|
||||
#不显示index.php
|
||||
|
||||
RewriteCond %{REQUEST_FILENAME}
|
||||
!-d
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule ^(.*)$ index.php/$1
|
||||
RewriteEngine
|
||||
on
|
||||
|
||||
#不显示index.php
|
||||
|
||||
RewriteCond %{REQUEST_FILENAME}
|
||||
!-d
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule ^(.*)$ index.php/$1
|
||||
[QSA,PT,L]
|
||||
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
@ -1,13 +1,13 @@
|
||||
<rewrite>
|
||||
<rules>
|
||||
<rule name="OrgPage" stopProcessing="true">
|
||||
<match url="^(.*)$" />
|
||||
<conditions logicalGrouping="MatchAll">
|
||||
<add input="{HTTP_HOST}" pattern="^(.*)$" />
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
|
||||
</conditions>
|
||||
<action type="Rewrite" url="index.php/{R:1}" />
|
||||
</rule>
|
||||
</rules>
|
||||
<rewrite>
|
||||
<rules>
|
||||
<rule name="OrgPage" stopProcessing="true">
|
||||
<match url="^(.*)$" />
|
||||
<conditions logicalGrouping="MatchAll">
|
||||
<add input="{HTTP_HOST}" pattern="^(.*)$" />
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
|
||||
</conditions>
|
||||
<action type="Rewrite" url="index.php/{R:1}" />
|
||||
</rule>
|
||||
</rules>
|
||||
</rewrite>
|
||||
13
readme.txt
13
readme.txt
@ -1,13 +0,0 @@
|
||||
项目支持公众号商城和小程序商城可单独配置使用,如需公众号和小程序账户同步,请申请微信开放平台进行绑定
|
||||
开放平台申请地址:https://open.weixin.qq.com/
|
||||
CRMEB开源文档地址:https://gitee.com/ZhongBangKeJi/CRMEB
|
||||
帮助文档:https://gitee.com/ZhongBangKeJi/CRMEB/wikis
|
||||
技术支持QQ群:116279623
|
||||
form-builder帮助文档:https://github.com/xaboy/form-builder
|
||||
|
||||
小程序页面路径:/application/routine/view/crmebN
|
||||
小程序后台下载开发工具,打开模版小程序模版路径
|
||||
|
||||
开源项目不含:砍价和拼团功能
|
||||
如需砍价和拼团完功能请淘宝购买仅需49元
|
||||
官方淘宝地址:https://shop120689819.taobao.com/
|
||||
Loading…
x
Reference in New Issue
Block a user