mirror of
https://github.com/hequan2017/seal.git
synced 2026-05-01 22:20:20 +08:00
v0.3.1 增加后台 django-simpleui 模板
This commit is contained in:
17
static/admin/simpleui-x/js/cookie.js
Normal file
17
static/admin/simpleui-x/js/cookie.js
Normal file
@@ -0,0 +1,17 @@
|
||||
var username = document.cookie.split(";")[0].split("=")[1];
|
||||
//JS操作cookies方法!
|
||||
//写cookies
|
||||
function setCookie(name, value) {
|
||||
var Days = 365;
|
||||
var exp = new Date();
|
||||
exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
|
||||
document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
|
||||
}
|
||||
|
||||
function getCookie(name) {
|
||||
var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
|
||||
if (arr = document.cookie.match(reg))
|
||||
return unescape(arr[2]);
|
||||
else
|
||||
return null;
|
||||
}
|
||||
273
static/admin/simpleui-x/js/index.js
Normal file
273
static/admin/simpleui-x/js/index.js
Normal file
@@ -0,0 +1,273 @@
|
||||
(function () {
|
||||
window.getLanuage = function (key) {
|
||||
if (!window.Lanuages) {
|
||||
return "";
|
||||
}
|
||||
var val = Lanuages[key];
|
||||
if (!val || val == "") {
|
||||
val = key;
|
||||
}
|
||||
return val
|
||||
}
|
||||
new Vue({
|
||||
el: '#main',
|
||||
data: {
|
||||
height: 1000,
|
||||
fold: false,
|
||||
zoom: false,
|
||||
timeline: true,
|
||||
tabs: [home],
|
||||
tabModel: 0,
|
||||
tabIndex: 0,
|
||||
menus: [],
|
||||
menuActive: '1',
|
||||
breadcrumbs: [],
|
||||
language: window.language,
|
||||
pwdDialog: {},
|
||||
themeDialogVisible: false,
|
||||
small: false,
|
||||
themes: SimpleuiThemes,
|
||||
theme: "",
|
||||
themeName: "",
|
||||
popup: {
|
||||
left: 0,
|
||||
top: 0,
|
||||
show: false,
|
||||
tab: null,
|
||||
menus: [{
|
||||
text: getLanuage('Refresh'),
|
||||
icon: 'el-icon-refresh',
|
||||
handler: function (tab, item) {
|
||||
try {
|
||||
document.getElementById(tab.id).contentWindow.location.reload(true);
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
var url = tab.url.split('?')[0];
|
||||
tab.url = url + '?_=' + new Date().getTime()
|
||||
}
|
||||
}
|
||||
}, {
|
||||
text: getLanuage('Close current'),
|
||||
icon: 'el-icon-circle-close-outline',
|
||||
handler: function (tab, item) {
|
||||
app.handleTabsEdit(tab.id, 'remove');
|
||||
}
|
||||
}, {
|
||||
text: getLanuage('Close other'),
|
||||
icon: 'far fa-copy',
|
||||
handler: function (tab) {
|
||||
app.tabs.forEach(item => {
|
||||
if (item.id != tab.id) {
|
||||
app.handleTabsEdit(item.id, 'remove');
|
||||
}
|
||||
})
|
||||
}
|
||||
}, {
|
||||
text: getLanuage('Close all'),
|
||||
icon: 'el-icon-close',
|
||||
handler: function (tab, item) {
|
||||
|
||||
app.$confirm(Lanuages["Are you sure you want them all closed"], Lanuages.Tips, {
|
||||
confirmButtonText: Lanuages.ConfirmYes,
|
||||
cancelButtonText: Lanuages.ConfirmNo,
|
||||
type: 'warning'
|
||||
}).then(function () {
|
||||
app.tabs.forEach((tab, index) => {
|
||||
if (index != 0) {
|
||||
app.handleTabsEdit(tab.id, 'remove');
|
||||
}
|
||||
});
|
||||
app.menuActive = '1';
|
||||
}).catch(function () {
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
}, {
|
||||
text: getLanuage('Open in a new page'),
|
||||
icon: 'el-icon-news',
|
||||
handler: function (tab, item) {
|
||||
window.open(tab.url);
|
||||
}
|
||||
}]
|
||||
}
|
||||
},
|
||||
created: function () {
|
||||
|
||||
var self = this;
|
||||
window.onload = window.onresize = function () {
|
||||
self.height = document.documentElement.clientHeight || document.body.clientHeight
|
||||
var width = document.documentElement.clientWidth || document.body.clientWidth;
|
||||
self.fold = width < 800;
|
||||
self.small = width < 800;
|
||||
}
|
||||
window.app = this;
|
||||
this.menus = window.menus
|
||||
|
||||
this.theme = getCookie('theme');
|
||||
this.themeName = getCookie('theme_name');
|
||||
|
||||
//接收子页面的事件注册
|
||||
window.themeEvents = [];
|
||||
window.addThemeEvent = function (handler) {
|
||||
themeEvents.push(handler);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
setTheme: function (item) {
|
||||
var url = window.themeUrl;
|
||||
if (item.file && item.file != '') {
|
||||
this.theme = url + item.file;
|
||||
} else {
|
||||
this.theme = '';
|
||||
}
|
||||
this.themeName = item.text;
|
||||
setCookie('theme', this.theme);
|
||||
setCookie('theme_name', item.text);
|
||||
|
||||
var self = this;
|
||||
//通知子页面
|
||||
window.themeEvents.forEach(handler => {
|
||||
handler(self.theme)
|
||||
});
|
||||
},
|
||||
openUrl: function (url) {
|
||||
window.open(url);
|
||||
},
|
||||
contextmenu: function (item, e) {
|
||||
//home没有popup menu
|
||||
if (item.index == '1') {
|
||||
return;
|
||||
}
|
||||
this.popup.tab = item;
|
||||
this.popup.left = e.clientX;
|
||||
this.popup.top = e.clientY;
|
||||
this.popup.show = true;
|
||||
},
|
||||
mainClick: function (e) {
|
||||
this.popup.show = false;
|
||||
},
|
||||
tabClick: function (tab) {
|
||||
var item = this.tabs[tab.index];
|
||||
var index = item.index;
|
||||
this.menuActive = index;
|
||||
this.breadcrumbs = item.breadcrumbs;
|
||||
},
|
||||
handleTabsEdit: function (targetName, action) {
|
||||
|
||||
var self = this;
|
||||
if (action === 'remove') {
|
||||
var next = '0';
|
||||
this.tabs.forEach((tab, index) => {
|
||||
if (tab.id == targetName) {
|
||||
var temp = self.tabs[index + 1] || self.tabs[index - 1];
|
||||
if (temp) {
|
||||
next = temp.id;
|
||||
self.menuActive = temp.index;
|
||||
self.breadcrumbs = temp.breadcrumbs;
|
||||
}
|
||||
}
|
||||
});
|
||||
this.tabModel = next;
|
||||
|
||||
if (targetName != 0) {
|
||||
this.tabs = this.tabs.filter(tab => tab.id !== targetName);
|
||||
}
|
||||
}
|
||||
}
|
||||
,
|
||||
openTab: function (data, index) {
|
||||
|
||||
this.breadcrumbs = data.breadcrumbs;
|
||||
var exists = null;
|
||||
//判断是否存在,存在就直接打开
|
||||
for (var i = 0; i < this.tabs.length; i++) {
|
||||
var tab = this.tabs[i];
|
||||
if (tab.name == data.name) {
|
||||
exists = tab;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (exists) {
|
||||
this.tabModel = exists.id;
|
||||
} else {
|
||||
data.id = new Date().getTime() + "" + Math.random();
|
||||
data.index = index;
|
||||
this.tabs.push(data);
|
||||
this.tabModel = data.id;
|
||||
}
|
||||
|
||||
}
|
||||
,
|
||||
foldClick: function () {
|
||||
console.log('11')
|
||||
if (this.fold) {
|
||||
this.fold = false;
|
||||
} else {
|
||||
this.fold = true;
|
||||
}
|
||||
}
|
||||
,
|
||||
changePassword: function () {
|
||||
var width = document.documentElement.clientWidth || document.body.clientWidth;
|
||||
if (width > 800) {
|
||||
this.pwdDialog = {
|
||||
url: window.urls.changePassword,
|
||||
name: language.change_password,
|
||||
show: true
|
||||
};
|
||||
} else {
|
||||
this.openTab({url: window.urls.changePassword, icon: 'far fa-edit', name: language.change_password})
|
||||
app.breadcrumbs = [language.change_password];
|
||||
}
|
||||
}
|
||||
,
|
||||
logout: function () {
|
||||
this.$confirm(language.confirm, Lanuages.Tips, {
|
||||
confirmButtonText: language.yes,
|
||||
cancelButtonText: language.no,
|
||||
type: 'warning'
|
||||
}).then(function () {
|
||||
window.location.href = window.urls.logout;
|
||||
}).catch(function () {
|
||||
|
||||
});
|
||||
}
|
||||
,
|
||||
goIndex: function () {
|
||||
window.open('/');
|
||||
}
|
||||
,
|
||||
getLanuage: getLanuage,
|
||||
goZoom: function () {
|
||||
var el = window.document.body;
|
||||
if (!this.zoom) {
|
||||
|
||||
var isFullscreen = document.fullScreen || document.mozFullScreen || document.webkitIsFullScreen;
|
||||
if (!isFullscreen) {//进入全屏,多重短路表达式
|
||||
(el.requestFullscreen && el.requestFullscreen()) ||
|
||||
(el.mozRequestFullScreen && el.mozRequestFullScreen()) ||
|
||||
(el.webkitRequestFullscreen && el.webkitRequestFullscreen()) || (el.msRequestFullscreen && el.msRequestFullscreen());
|
||||
}
|
||||
this.zoom = true;
|
||||
} else {
|
||||
|
||||
document.exitFullscreen ? document.exitFullscreen() :
|
||||
document.mozCancelFullScreen ? document.mozCancelFullScreen() :
|
||||
document.webkitExitFullscreen ? document.webkitExitFullscreen() : '';
|
||||
this.zoom = false;
|
||||
}
|
||||
}
|
||||
,
|
||||
displayTimeline: function () {
|
||||
this.timeline = !this.timeline;
|
||||
},
|
||||
report: function () {
|
||||
window.open('https://github.com/newpanjing/simpleui/issues')
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
})();
|
||||
11
static/admin/simpleui-x/js/language.js
Normal file
11
static/admin/simpleui-x/js/language.js
Normal file
@@ -0,0 +1,11 @@
|
||||
window.getLanuage = function (key) {
|
||||
console.log(key)
|
||||
if (!window.Lanuages) {
|
||||
return "";
|
||||
}
|
||||
var val = Lanuages[key];
|
||||
if (!val || val == "") {
|
||||
val = key;
|
||||
}
|
||||
return val
|
||||
}
|
||||
12
static/admin/simpleui-x/js/login.js
Normal file
12
static/admin/simpleui-x/js/login.js
Normal file
@@ -0,0 +1,12 @@
|
||||
new Vue({
|
||||
el: '.login-main',
|
||||
data: {
|
||||
username: '',
|
||||
password: ''
|
||||
},
|
||||
methods: {
|
||||
login: function () {
|
||||
document.getElementById('login-form').submit();
|
||||
}
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user