系统版本整体优化系统细节优化
This commit is contained in:
parent
b96a9002f2
commit
a1793b5110
26
README.md
26
README.md
@ -167,18 +167,23 @@ www 系统部署目录(或者子目录)
|
|||||||
Composer (用于管理第三方扩展包)
|
Composer (用于管理第三方扩展包)
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
三、演示地址
|
||||||
|
|
||||||
|
勾股OA演示地址:https://oa.gougucms.com
|
||||||
|
|
||||||
|
登录账号及密码:
|
||||||
|
~~~
|
||||||
|
BOSS角色:suhaizhen 123456
|
||||||
|
人事总监:fengcailing 123456
|
||||||
|
财务总监:yucixin 123456
|
||||||
|
市场总监:qinjiaxian 123456
|
||||||
|
技术总监:yexiaochai 123456
|
||||||
|
~~~
|
||||||
|
PS:为了给后面的人提供良好的演示体验,体验以查看为主,如果确实需要填写数据,大家最好填些看似正常的数据,请不要乱填数据,比如:1111,aaa那些数据就不要乱来了。如果大家不遵守,后期发现很多乱的数据的话,就关闭对应的填写权限了。
|
||||||
|
|
||||||
三、系统安装
|
三、系统安装
|
||||||
|
|
||||||
**方式一:完整包安装**
|
**命令行安装(推荐)**
|
||||||
|
|
||||||
第一步:前往官网下载页面 (https://oa.gougucms.com) 下载完整包解压到你的项目目录
|
|
||||||
|
|
||||||
第二步:添加虚拟主机并绑定到项目的public目录
|
|
||||||
|
|
||||||
第三步:访问 http://www.yoursite.com/install/index 进行安装
|
|
||||||
|
|
||||||
|
|
||||||
**方式二:命令行安装(推荐)**
|
|
||||||
|
|
||||||
推荐使用命令行安装,因为采用命令行安装的方式可以和勾股CMS随时保持更新同步。使用命令行安装请提前准备好Git、Composer。
|
推荐使用命令行安装,因为采用命令行安装的方式可以和勾股CMS随时保持更新同步。使用命令行安装请提前准备好Git、Composer。
|
||||||
|
|
||||||
@ -248,5 +253,6 @@ composer install
|
|||||||
勾股OA遵循GPL-2.0开源协议发布,并支持免费使用。
|
勾股OA遵循GPL-2.0开源协议发布,并支持免费使用。
|
||||||
|
|
||||||
### 开源助力
|
### 开源助力
|
||||||
|
目前勾股OA版本在公测中,如果大家在体验的过程中发现有问题或者BUG,请到Issue里面反馈,谢谢!
|
||||||
如果觉得勾股OA不错,不要吝啬您的赞许和鼓励,请给我们⭐ STAR ⭐吧!
|
如果觉得勾股OA不错,不要吝啬您的赞许和鼓励,请给我们⭐ STAR ⭐吧!
|
||||||
|
|
||||||
|
@ -245,15 +245,15 @@ class Admin extends BaseController
|
|||||||
}
|
}
|
||||||
$new_pwd = set_salt(6);
|
$new_pwd = set_salt(6);
|
||||||
$salt = set_salt(20);
|
$salt = set_salt(20);
|
||||||
$list = [
|
$data = [
|
||||||
'reg_pwd' => $new_pwd,
|
'reg_pwd' => $new_pwd,
|
||||||
'salt' => $salt,
|
'salt' => $salt,
|
||||||
'pwd' => set_password($new_pwd, $salt),
|
'pwd' => set_password($new_pwd, $salt),
|
||||||
'id' => $id,
|
'id' => $id,
|
||||||
'update_time' => time(),
|
'update_time' => time(),
|
||||||
];
|
];
|
||||||
if (Db::name('Admin')->update($list) !== false) {
|
if (Db::name('Admin')->update($data) !== false) {
|
||||||
add_log('reset_psw', $id);
|
add_log('reset', $id);
|
||||||
return to_assign(0, '操作成功');
|
return to_assign(0, '操作成功');
|
||||||
} else {
|
} else {
|
||||||
return to_assign(1, '操作失败');
|
return to_assign(1, '操作失败');
|
||||||
|
@ -260,10 +260,14 @@ class Api extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
$salt = set_salt(20);
|
$salt = set_salt(20);
|
||||||
$param['pwd'] = set_password($param['pwd'], $salt);
|
$new_pwd = set_password($param['pwd'], $salt);
|
||||||
$param['reg_pwd'] = '';
|
$data = [
|
||||||
$param['update_time'] = time();
|
'reg_pwd' => '',
|
||||||
Db::name('Admin')->where(['id' => $uid])->strict(false)->field(true)->update($param);
|
'salt' => $salt,
|
||||||
|
'pwd' => $new_pwd,
|
||||||
|
'update_time' => time(),
|
||||||
|
];
|
||||||
|
Db::name('Admin')->where(['id' => $uid])->strict(false)->field(true)->update($data);
|
||||||
$session_admin = get_config('app.session_admin');
|
$session_admin = get_config('app.session_admin');
|
||||||
Session::set($session_admin, Db::name('admin')->find($uid));
|
Session::set($session_admin, Db::name('admin')->find($uid));
|
||||||
return to_assign();
|
return to_assign();
|
||||||
|
@ -49,11 +49,18 @@
|
|||||||
data: data.field,
|
data: data.field,
|
||||||
success: function (e) {
|
success: function (e) {
|
||||||
if (e.code == 0) {
|
if (e.code == 0) {
|
||||||
layer.msg('修改密码成功');
|
layer.msg('修改密码成功,使用新密码登录');
|
||||||
setTimeout(function () {
|
//注销
|
||||||
TAB.sonDelete();
|
$.ajax({
|
||||||
layer.close(index);
|
url: "/home/login/login_out.html",
|
||||||
}, 1000)
|
success: function (e) {
|
||||||
|
if (e.code == 0) {
|
||||||
|
setTimeout(function () {
|
||||||
|
parent.location.href = "/home/login/index.html"
|
||||||
|
}, 2000)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
layer.msg(e.msg);
|
layer.msg(e.msg);
|
||||||
}
|
}
|
||||||
|
@ -62,6 +62,7 @@
|
|||||||
<!-- 脚本 -->
|
<!-- 脚本 -->
|
||||||
{block name="script"}
|
{block name="script"}
|
||||||
<script>
|
<script>
|
||||||
|
var tableIns = null;
|
||||||
function init(layui) {
|
function init(layui) {
|
||||||
var TAB = parent.layui.tab,
|
var TAB = parent.layui.tab,
|
||||||
tree = layui.tree,
|
tree = layui.tree,
|
||||||
@ -95,7 +96,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
var tableIns = table.render({
|
tableIns = table.render({
|
||||||
elem: '#test',
|
elem: '#test',
|
||||||
title: '员工列表',
|
title: '员工列表',
|
||||||
toolbar: '#toolbarDemo',
|
toolbar: '#toolbarDemo',
|
||||||
@ -326,9 +327,7 @@
|
|||||||
success: function (e) {
|
success: function (e) {
|
||||||
layer.msg(e.msg);
|
layer.msg(e.msg);
|
||||||
if(e.code==0){
|
if(e.code==0){
|
||||||
setTimeout(function(){
|
tableIns.reload();
|
||||||
location.reload();
|
|
||||||
},2000);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -1,4 +1,14 @@
|
|||||||
{extend name="common/base"/}
|
{extend name="common/base"/}
|
||||||
|
{block name="style"}
|
||||||
|
<link rel="stylesheet" href="{__STATIC__}/ueditor/third-party/SyntaxHighlighter/prism.css?v=1"/>
|
||||||
|
<script src="{__STATIC__}/ueditor/third-party/SyntaxHighlighter/prism.js?v=1"></script>
|
||||||
|
<style>
|
||||||
|
.detial-content{padding:6px 16px; color:#333; font-size: 16px!important; line-height: 1.68!important; max-width:1000px;}
|
||||||
|
.detial-content p{padding: 6px 0;}
|
||||||
|
.detial-content img{max-width:98%!important; border: 1px solid #e6e6e6; -webkit-box-shadow: 0 2px 6px rgba(26,26,26,.08); box-shadow: 0 2px 6px rgba(26,26,26,.08); border-radius: 3px;}
|
||||||
|
.detial-content .gougu-video{width: 640px!important; height: 410px!important; margin:10px auto!important; border: 12px solid #F7F7F7; border-radius: 6px;}
|
||||||
|
</style>
|
||||||
|
{/block}
|
||||||
<!-- 主体 -->
|
<!-- 主体 -->
|
||||||
{block name="body"}
|
{block name="body"}
|
||||||
<div class="body-content">
|
<div class="body-content">
|
||||||
@ -36,7 +46,7 @@
|
|||||||
{/notempty}
|
{/notempty}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="layui-td-gray" style="vertical-align:top;">文章内容</td>
|
<td class="layui-td-gray" style="vertical-align:top;">文章内容</td>
|
||||||
<td colspan="5">{$detail.content|raw}</td>
|
<td colspan="5"><div class="detial-content">{$detail.content|raw}</div></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@ -47,7 +57,25 @@
|
|||||||
{block name="script"}
|
{block name="script"}
|
||||||
<script>
|
<script>
|
||||||
function init(layui) {
|
function init(layui) {
|
||||||
|
var $codepre = $("pre[class]");
|
||||||
|
if($codepre.length>0){
|
||||||
|
for(var i = 0;i<$codepre.length;i++){
|
||||||
|
var item = $codepre.eq(i);
|
||||||
|
var language = "";
|
||||||
|
item.attr("class").replace(/brush:([^;]+)/,function(a,b){
|
||||||
|
language = b;
|
||||||
|
});
|
||||||
|
if(language){
|
||||||
|
var codehtml = item.html();
|
||||||
|
var code = $("<code>");
|
||||||
|
code.attr("class","language-"+language+" line-numbers");
|
||||||
|
//codehtml= unhtml(codehtml);
|
||||||
|
code.html(codehtml);
|
||||||
|
item.html(code);
|
||||||
|
Prism.highlightElement(code[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
232
public/static/ueditor/third-party/SyntaxHighlighter/prism.css
vendored
Normal file
232
public/static/ueditor/third-party/SyntaxHighlighter/prism.css
vendored
Normal file
@ -0,0 +1,232 @@
|
|||||||
|
/* PrismJS 1.24.1
|
||||||
|
https://prismjs.com/download.html#themes=prism-okaidia&languages=markup+css+clike+javascript+java+markup-templating+php+python+sql&plugins=line-numbers+toolbar+copy-to-clipboard */
|
||||||
|
/**
|
||||||
|
* okaidia theme for JavaScript, CSS and HTML
|
||||||
|
* Loosely based on Monokai textmate theme by http://www.monokai.nl/
|
||||||
|
* @author ocodia
|
||||||
|
*/
|
||||||
|
|
||||||
|
code[class*="language-"],
|
||||||
|
pre[class*="language-"] {
|
||||||
|
color: #f8f8f2;
|
||||||
|
background: none;
|
||||||
|
text-shadow: 0 1px rgba(0, 0, 0, 0.3);
|
||||||
|
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||||
|
font-size: 1em;
|
||||||
|
text-align: left;
|
||||||
|
white-space: pre;
|
||||||
|
word-spacing: normal;
|
||||||
|
word-break: normal;
|
||||||
|
word-wrap: normal;
|
||||||
|
line-height: 1.5;
|
||||||
|
|
||||||
|
-moz-tab-size: 4;
|
||||||
|
-o-tab-size: 4;
|
||||||
|
tab-size: 4;
|
||||||
|
|
||||||
|
-webkit-hyphens: none;
|
||||||
|
-moz-hyphens: none;
|
||||||
|
-ms-hyphens: none;
|
||||||
|
hyphens: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Code blocks */
|
||||||
|
pre[class*="language-"] {
|
||||||
|
padding: 1em;
|
||||||
|
margin: .5em 0;
|
||||||
|
overflow: auto;
|
||||||
|
border-radius: 0.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
:not(pre) > code[class*="language-"],
|
||||||
|
pre[class*="language-"] {
|
||||||
|
background: #272822;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inline code */
|
||||||
|
:not(pre) > code[class*="language-"] {
|
||||||
|
padding: .1em;
|
||||||
|
border-radius: .3em;
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.comment,
|
||||||
|
.token.prolog,
|
||||||
|
.token.doctype,
|
||||||
|
.token.cdata {
|
||||||
|
color: #8292a2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.punctuation {
|
||||||
|
color: #f8f8f2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.namespace {
|
||||||
|
opacity: .7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.property,
|
||||||
|
.token.tag,
|
||||||
|
.token.constant,
|
||||||
|
.token.symbol,
|
||||||
|
.token.deleted {
|
||||||
|
color: #f92672;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.boolean,
|
||||||
|
.token.number {
|
||||||
|
color: #ae81ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.selector,
|
||||||
|
.token.attr-name,
|
||||||
|
.token.string,
|
||||||
|
.token.char,
|
||||||
|
.token.builtin,
|
||||||
|
.token.inserted {
|
||||||
|
color: #a6e22e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.operator,
|
||||||
|
.token.entity,
|
||||||
|
.token.url,
|
||||||
|
.language-css .token.string,
|
||||||
|
.style .token.string,
|
||||||
|
.token.variable {
|
||||||
|
color: #f8f8f2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.atrule,
|
||||||
|
.token.attr-value,
|
||||||
|
.token.function,
|
||||||
|
.token.class-name {
|
||||||
|
color: #e6db74;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.keyword {
|
||||||
|
color: #66d9ef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.regex,
|
||||||
|
.token.important {
|
||||||
|
color: #fd971f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.important,
|
||||||
|
.token.bold {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.token.italic {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.entity {
|
||||||
|
cursor: help;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre[class*="language-"].line-numbers {
|
||||||
|
position: relative;
|
||||||
|
padding-left: 3.8em;
|
||||||
|
counter-reset: linenumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre[class*="language-"].line-numbers > code {
|
||||||
|
position: relative;
|
||||||
|
white-space: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.line-numbers .line-numbers-rows {
|
||||||
|
position: absolute;
|
||||||
|
pointer-events: none;
|
||||||
|
top: 0;
|
||||||
|
font-size: 100%;
|
||||||
|
left: -3.8em;
|
||||||
|
width: 3em; /* works for line-numbers below 1000 lines */
|
||||||
|
letter-spacing: -1px;
|
||||||
|
border-right: 1px solid #999;
|
||||||
|
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.line-numbers-rows > span {
|
||||||
|
display: block;
|
||||||
|
counter-increment: linenumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
.line-numbers-rows > span:before {
|
||||||
|
content: counter(linenumber);
|
||||||
|
color: #999;
|
||||||
|
display: block;
|
||||||
|
padding-right: 0.8em;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.code-toolbar {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.code-toolbar > .toolbar {
|
||||||
|
position: absolute;
|
||||||
|
top: .3em;
|
||||||
|
right: .2em;
|
||||||
|
transition: opacity 0.3s ease-in-out;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.code-toolbar:hover > .toolbar {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Separate line b/c rules are thrown out if selector is invalid.
|
||||||
|
IE11 and old Edge versions don't support :focus-within. */
|
||||||
|
div.code-toolbar:focus-within > .toolbar {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.code-toolbar > .toolbar > .toolbar-item {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.code-toolbar > .toolbar > .toolbar-item > a {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.code-toolbar > .toolbar > .toolbar-item > button {
|
||||||
|
background: none;
|
||||||
|
border: 0;
|
||||||
|
color: inherit;
|
||||||
|
font: inherit;
|
||||||
|
line-height: normal;
|
||||||
|
overflow: visible;
|
||||||
|
padding: 0;
|
||||||
|
-webkit-user-select: none; /* for button */
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.code-toolbar > .toolbar > .toolbar-item > a,
|
||||||
|
div.code-toolbar > .toolbar > .toolbar-item > button,
|
||||||
|
div.code-toolbar > .toolbar > .toolbar-item > span {
|
||||||
|
color: #bbb;
|
||||||
|
font-size: .8em;
|
||||||
|
padding: 0 .5em;
|
||||||
|
background: #f5f2f0;
|
||||||
|
background: rgba(224, 224, 224, 0.2);
|
||||||
|
box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
|
||||||
|
border-radius: .5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.code-toolbar > .toolbar > .toolbar-item > a:hover,
|
||||||
|
div.code-toolbar > .toolbar > .toolbar-item > a:focus,
|
||||||
|
div.code-toolbar > .toolbar > .toolbar-item > button:hover,
|
||||||
|
div.code-toolbar > .toolbar > .toolbar-item > button:focus,
|
||||||
|
div.code-toolbar > .toolbar > .toolbar-item > span:hover,
|
||||||
|
div.code-toolbar > .toolbar > .toolbar-item > span:focus {
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
15
public/static/ueditor/third-party/SyntaxHighlighter/prism.js
vendored
Normal file
15
public/static/ueditor/third-party/SyntaxHighlighter/prism.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user