first commit

This commit is contained in:
2026-09-23 09:38:39 +08:00
commit 98a8b8cace
6257 changed files with 1266718 additions and 0 deletions
@@ -0,0 +1,90 @@
<div class="el-dialog__header">
<button type="button" data-dismiss="modal" aria-hidden="true" aria-label="Close" class="el-dialog__headerbtn"><i
class="el-dialog__close el-icon el-icon-close"></i></button>
<h4 class="modal-title">${msg['index.custommenu']}</h4>
</div>
<div class="modal-body">
<div class="list-group" style="text-align: center;">
<table width="88%" id="menuTable">
<!--#
var firstMenus=@shiro.getPrincipalProperty('firstMenus');
var secondMenus=@shiro.getPrincipalProperty('secondMenus');
var customMenu=@shiro.getPrincipalProperty('customMenu');
#-->
<!--#for(firstMenu in firstMenus){#-->
<tr>
<td width="20%" align="left"><strong><!--#if(lang=="zh_CN"){#-->${firstMenu.name}<!--#}else{#-->${firstMenu.aliasName}<!--#}#--></strong></td>
<td width="80%" align="left">
</td>
</tr>
<!--# if(!isEmpty(@secondMenus.get(firstMenu.path))){
for(secondMenu in @secondMenus.get(firstMenu.path)){
#-->
<tr>
<td width="20%" align="left" style="padding-left: 20px;"><!--#if(lang=="zh_CN"){#-->${secondMenu.name}<!--#}else{#-->${secondMenu.aliasName}<!--#}#--></td>
<td width="80%" align="left">
<!--# if(!isEmpty(@secondMenus.get(secondMenu.path))){
for(thMenu in @secondMenus.get(secondMenu.path)){ #-->
<input type="checkbox" value="${thMenu.id}" onclick="chk()" <!--#if(customMenu!=null&&@customMenu.indexOf(thMenu.id)>-1){#-->checked<!--#}#-->>
<!--#if(lang=="zh_CN"){#-->${thMenu.name}<!--#}else{#-->${thMenu.aliasName}<!--#}#-->
<!--#}}#-->
</td>
</tr>
<!--#}}#-->
<!--#}#-->
</table>
</div>
</div>
<div class="el-dialog__footer">
<span class="dialog-footer">
<button type="button" class="el-button el-button--default" data-dismiss="modal">
<span>${msg['system.cancel']}</span>
</button>
<button type="button" class="el-button el-button--primary" id="okCustom">
<span>${msg['system.confirm']}</span>
</button>
</span>
</div>
<script type="text/javascript">
function chk(){
var ids=[];
$("#menuTable").find("input[type=checkbox]").each(function(){
if($(this).prop("checked")){
ids.push($(this).val());
}
});
if(ids.length>5){
ELEMENT.Message({
message: "最多可选择5个菜单",
type: 'error'
});
return ids;
}
return ids;
}
$(function () {
$("#okCustom").on("click",function(){
var ids =chk();
if (ids.length<6) {
$('#homeDetail').modal('hide');
$.post("${base}/platform/sys/user/customDo", {ids: ids.toString()}, function (data) {
if (data.code == 0) {
ELEMENT.Message({
message: data.msg,
type: 'success'
});
setTimeout(function () {
window.location.reload();
},520);
} else {
ELEMENT.Message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
});
});
</script>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,92 @@
<div id="infoApp">
<div class="el-dialog__header">
<button type="button" data-dismiss="modal" aria-hidden="true" aria-label="Close" class="el-dialog__headerbtn"><i
class="el-dialog__close el-icon el-icon-close"></i></button>
<h4 class="modal-title">个人资料</h4>
</div>
<div class="modal-body">
<el-form :model="infoForm" ref="infoForm" :rules="infoRules" label-width="100px">
<el-row style="padding-bottom: 2px;">
<el-alert
title="请完善个人资料"
type="warning">
</el-alert>
</el-row>
<el-form-item label="姓名" prop="username">
<el-input size="small" maxlength="20" placeholder="姓名"
v-model="infoForm.username"
auto-complete="off" tabindex="1" ></el-input>
</el-form-item>
<el-form-item label="手机号码" prop="mobile">
<el-input size="small" maxlength="11" placeholder="手机号码"
v-model="infoForm.mobile"
auto-complete="off" tabindex="2" ></el-input>
</el-form-item>
<el-form-item label="电子邮箱" prop="email">
<el-input size="small" maxlength="50" placeholder="Email"
v-model="infoForm.email"
auto-complete="off" tabindex="3"></el-input>
</el-form-item>
</el-form>
</div>
<div class="el-dialog__footer">
<span class="dialog-footer">
<button type="button" class="el-button el-button--default" data-dismiss="modal">
<span>${msg['system.cancel']}</span>
</button>
<button type="button" class="el-button el-button--primary" @click="doInfo">
<span>${msg['system.confirm']}</span>
</button>
</span>
</div>
</div>
<script type="text/javascript">
new Vue({
el: '#infoApp',
data: function () {
return {
infoForm: {
username: "<!--#if(user.username!=user.mobile){#-->${user.username!}<!--#}#-->",
mobile: "${user.mobile!}",
email: "${user.email!}"
},
infoRules: {
username: [
{required: true, message: '请输入姓名', trigger: ['blur','change']}
],
mobile: [
{required: true, message: '请输入手机号码', trigger: ['blur','change']},
{pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号码'}
],
email: [
{required: true, message: '请输入Email', trigger: ['blur','change']},
{type: 'email', message: '请输入正确的Email'}
]
},
}
},
methods: {
doInfo: function () {
var self = this
self.$refs["infoForm"].validate(function (valid) {
if (valid) {
$.post(base + "/platform/sys/user/doChangeInfo", self.infoForm, function (data) {
if (data.code == 0) {
$('#homeDetail').modal('hide');
self.$message({
message: data.msg,
type: 'success'
});
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
});
}
}
});
</script>
@@ -0,0 +1,60 @@
<div class="el-dialog__header">
<button type="button" data-dismiss="modal" aria-hidden="true" aria-label="Close" class="el-dialog__headerbtn"><i
class="el-dialog__close el-icon el-icon-close"></i></button>
<h4 class="modal-title">${msg['index.user.mode']}</h4>
</div>
<div class="modal-body">
<form id="modeForm" role="form" class="form-horizontal parsley-form" method="post">
<div class="row" style="padding-top: 10px;">
<div class="col-lg-12">
<div class="form">
<div class="col-sm-8">
<input name="mode" value="true" type="radio"
<!--#if(@shiro.getPrincipalProperty('loginPjax')){#-->checked<!--#}#--> > PJAX加载方式<br>优点:占用带宽少,加载速度快;<br>缺点:不能使用前进、后退功能。
</div>
</div>
</div>
</div>
<div class="row" style="padding-top: 10px;">
<div class="col-lg-12">
<div class="form">
<div class="col-sm-8">
<input name="mode" value="false" type="radio"
<!--#if(!@shiro.getPrincipalProperty('loginPjax')){#-->checked<!--#}#--> > 传统加载方式<br>优点:可以使用前进、后退功能;<br>缺点:页面会重载、刷新,占用带宽大。
</div>
</div>
</div>
</div>
</form>
</div>
<div class="el-dialog__footer">
<span class="dialog-footer">
<button type="button" class="el-button el-button--default" data-dismiss="modal">
<span>${msg['system.cancel']}</span>
</button>
<button type="button" class="el-button el-button--primary" id="okMode">
<span>${msg['system.confirm']}</span>
</button>
</span>
</div>
<script type="text/javascript">
$(function () {
$("#okMode").on("click", function () {
$.post("${base}/platform/sys/user/modeDo", {mode: $("input[type='radio'][name='mode']:checked").val()}, function (data) {
if (data.code == 0) {
$('#homeDetail').modal('hide');
ELEMENT.Message({
message: data.msg,
type: 'success'
});
} else {
ELEMENT.Message({
message: data.msg,
type: 'error'
});
}
}, "json");
});
});
</script>
@@ -0,0 +1,92 @@
<div id="passApp">
<div class="el-dialog__header">
<button type="button" data-dismiss="modal" aria-hidden="true" aria-label="Close" class="el-dialog__headerbtn"><i
class="el-dialog__close el-icon el-icon-close"></i></button>
<h4 class="modal-title">${msg['index.user.password']}</h4>
</div>
<div class="modal-body">
<el-form :model="passForm" ref="passForm" :rules="passRules" label-width="100px">
<el-form-item label="${msg['index.user.oldpass']}" prop="oldPassword">
<el-input size="small" maxlength="20" placeholder="${msg['index.user.oldpass']}" v-model="passForm.oldPassword"
auto-complete="off" tabindex="1" type="password"></el-input>
</el-form-item>
<el-form-item label="输入新密码" prop="newPassword">
<el-input size="small" maxlength="20" placeholder="${msg['index.user.newpass']}" v-model="passForm.newPassword"
auto-complete="off" tabindex="2" type="password"></el-input>
</el-form-item>
<el-form-item label="确认新密码" prop="passwordAgain">
<el-input size="small" maxlength="20" placeholder="${msg['index.user.rightpass']}"
v-model="passForm.passwordAgain"
auto-complete="off" tabindex="3" type="password"></el-input>
</el-form-item>
</el-form>
</div>
<div class="el-dialog__footer">
<span class="dialog-footer">
<button type="button" class="el-button el-button--default" data-dismiss="modal">
<span>${msg['system.cancel']}</span>
</button>
<button type="button" class="el-button el-button--primary" @click="doPass">
<span>${msg['system.confirm']}</span>
</button>
</span>
</div>
</div>
<script type="text/javascript">
new Vue({
el: '#passApp',
data: function () {
var self = this;
var validatePass = function (rule, value, callback) {
if (value !== self.passForm.newPassword) {
callback(new Error('两次输入密码不一致!'));
} else {
callback();
}
};
return {
passForm: {
oldPassword: "",
newPassword: "",
passwordAgain: ""
},
passRules: {
oldPassword: [
{required: true, message: '请输入原密码', trigger: 'blur'}
],
newPassword: [
{required: true, message: '请输入新密码', trigger: 'blur'},
{min: 3, max: 20, message: '密码长度必须是3-20位', trigger: 'change'}
],
passwordAgain: [
{required: true, message: '请再次输入新密码', trigger: 'blur'},
{validator: validatePass, trigger: 'change'}
]
},
}
},
methods: {
doPass: function () {
var self = this
self.$refs["passForm"].validate(function (valid) {
if (valid) {
$.post(base + "/platform/sys/user/doChangePassword", self.passForm, function (data) {
if (data.code == 0) {
$('#homeDetail').modal('hide');
self.$message({
message: data.msg,
type: 'success'
});
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
});
}
}
});
</script>