增加部分基础组件
This commit is contained in:
@@ -22,8 +22,8 @@
|
||||
</template>
|
||||
|
||||
<style>
|
||||
@import "../../static/css/bootstrap.css";
|
||||
@import "../../static/css/todc-bootstrap.css";
|
||||
@import "../../static/css/bootstrap.css";
|
||||
@import "../../static/css/todc-bootstrap.css";
|
||||
</style>
|
||||
|
||||
<script>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<back url="/user"></back>
|
||||
<back></back>
|
||||
<h3>修改用户信息</h3>
|
||||
<form v-on:submit="submit">
|
||||
<div class="row">
|
||||
@@ -127,7 +127,7 @@
|
||||
url: "/api/admin/user/",
|
||||
method: "PUT",
|
||||
data: data,
|
||||
success: (data)=> {
|
||||
success: (data)=> {
|
||||
alert("更新成功");
|
||||
}
|
||||
})
|
||||
@@ -138,7 +138,7 @@
|
||||
this.request({
|
||||
url: "/api/admin/user/?user_id=" + this.$route.params["userId"],
|
||||
method: "GET",
|
||||
success:(data)=> {
|
||||
success: (data)=> {
|
||||
this.user = data.data;
|
||||
for (var p of data.data.admin_extra_permission) {
|
||||
if (this.userPermissionNum2Str[p]) {
|
||||
|
||||
19
frontend/admin/src/components/problem/problem.vue
Normal file
19
frontend/admin/src/components/problem/problem.vue
Normal file
@@ -0,0 +1,19 @@
|
||||
<template>
|
||||
<div>
|
||||
<simditor editorid="problem_detail"></simditor>
|
||||
|
||||
<uploader uploaderid="uploader"></uploader>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import simditor from "../utils/simditor.vue"
|
||||
import uploader from "../utils/uploader.vue"
|
||||
|
||||
export default({
|
||||
components: {
|
||||
simditor,
|
||||
uploader
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@@ -39,10 +39,10 @@
|
||||
}
|
||||
},
|
||||
events: {
|
||||
"showModal":(content) => {
|
||||
"showModal": (content) => {
|
||||
this.showModal = true;
|
||||
this.content = true;
|
||||
setTimeout(()=>{
|
||||
setTimeout(()=> {
|
||||
this.showModal = false;
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
adminNav: [{}, {}]
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
adminNav: [{}, {}]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
25
frontend/admin/src/components/utils/simditor.vue
Normal file
25
frontend/admin/src/components/utils/simditor.vue
Normal file
@@ -0,0 +1,25 @@
|
||||
<template>
|
||||
<textarea id="{{ editorid }}"></textarea>
|
||||
</template>
|
||||
<script>
|
||||
import Simditor from 'simditor'
|
||||
import SimditorMakrdown from "simditor-markdown"
|
||||
|
||||
export default{
|
||||
props: ["editorid"],
|
||||
attached() {
|
||||
var self = this;
|
||||
var editor = new Simditor({
|
||||
textarea: document.getElementById(self.editorid),
|
||||
upload: {url: "/", fileKey: "file"},
|
||||
toolbar: ['bold', 'italic', 'underline', 'color', 'image', 'ol', 'ul', 'markdown']
|
||||
});
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
@import "../../../../static/css/simditor.css";
|
||||
@import "../../../../static/css/simditor-markdown.css";
|
||||
@import "../../../../static/css/webuploader.css";
|
||||
</style>
|
||||
52
frontend/admin/src/components/utils/uploader.vue
Normal file
52
frontend/admin/src/components/utils/uploader.vue
Normal file
@@ -0,0 +1,52 @@
|
||||
<template>
|
||||
<div id="{{ uploaderid }}">
|
||||
<div class="btns">
|
||||
<div id="picker"> picker</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import WebUploader from "webuploader"
|
||||
|
||||
export default ({
|
||||
props: {
|
||||
uploaderid: {
|
||||
required: true
|
||||
},
|
||||
uploadpath: {
|
||||
required: false,
|
||||
default: "/server"
|
||||
},
|
||||
accept: {
|
||||
required: false,
|
||||
default(){
|
||||
return {
|
||||
title: 'Images',
|
||||
extensions: 'gif,jpg,jpeg,bmp,png',
|
||||
mimeTypes: 'image/*'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
attached() {
|
||||
var self = this;
|
||||
var uploader = WebUploader.create({
|
||||
dnd: '#' + self.uploaderid,
|
||||
runtimeOrder: "html5",
|
||||
server: self.uploadpath,
|
||||
pick: '#' + self.uploaderid,
|
||||
resize: false,
|
||||
auto: true,
|
||||
accept: self.accept
|
||||
});
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
@@ -1,51 +1,51 @@
|
||||
export default {
|
||||
"zh-cn": {
|
||||
nav: {
|
||||
UserManagement: "用户管理"
|
||||
},
|
||||
pagination: {
|
||||
first: "首页",
|
||||
last: "末页"
|
||||
},
|
||||
modalAlert: {
|
||||
alert: "提示",
|
||||
close: "关闭"
|
||||
},
|
||||
request: {
|
||||
error: "请求失败",
|
||||
succeeded: "操作成功"
|
||||
},
|
||||
user: {
|
||||
username: "用户名",
|
||||
email: "邮箱",
|
||||
realName: "真实姓名",
|
||||
adminType: "用户类型",
|
||||
createTime: "注册时间",
|
||||
management: "管理",
|
||||
edit: "编辑",
|
||||
submission: "提交",
|
||||
newPassword: "新密码",
|
||||
leaveBlankIfDoNotChangePassword: "不需要修改密码请留空",
|
||||
openAPIFunction: "OpenAPI 功能",
|
||||
tfaAuth: "两步验证",
|
||||
isDisabled: "禁用用户",
|
||||
adminExtraPermission: "普通管理员额外权限",
|
||||
showAdminOnly: "只显示管理员"
|
||||
},
|
||||
adminUtils: {
|
||||
search: "搜索",
|
||||
inputKeyword: "输入关键词",
|
||||
regularUser: "普通用户",
|
||||
admin: "普通管理员",
|
||||
superAdmin: "超级管理员",
|
||||
UserDoesNotExist: "用户不存在",
|
||||
back: "返回",
|
||||
saveChanges: "保存修改",
|
||||
createPublicContest: "创建公开比赛",
|
||||
manageAllContest: "管理所有比赛",
|
||||
manageAllProblem: "管理所有题目",
|
||||
manageOwnProblem: "管理自己创建的题目",
|
||||
unsupportedBrowserWarningMsg: "当前网页 <strong>不支持</strong> 你正在使用的浏览器, 为了正常的访问,请到 <a href=\"http://browsehappy.com/\"> 升级你的浏览器</a>"
|
||||
}
|
||||
}
|
||||
"zh-cn": {
|
||||
nav: {
|
||||
UserManagement: "用户管理"
|
||||
},
|
||||
pagination: {
|
||||
first: "首页",
|
||||
last: "末页"
|
||||
},
|
||||
modalAlert: {
|
||||
alert: "提示",
|
||||
close: "关闭"
|
||||
},
|
||||
request: {
|
||||
error: "请求失败",
|
||||
succeeded: "操作成功"
|
||||
},
|
||||
user: {
|
||||
username: "用户名",
|
||||
email: "邮箱",
|
||||
realName: "真实姓名",
|
||||
adminType: "用户类型",
|
||||
createTime: "注册时间",
|
||||
management: "管理",
|
||||
edit: "编辑",
|
||||
submission: "提交",
|
||||
newPassword: "新密码",
|
||||
leaveBlankIfDoNotChangePassword: "不需要修改密码请留空",
|
||||
openAPIFunction: "OpenAPI 功能",
|
||||
tfaAuth: "两步验证",
|
||||
isDisabled: "禁用用户",
|
||||
adminExtraPermission: "普通管理员额外权限",
|
||||
showAdminOnly: "只显示管理员"
|
||||
},
|
||||
adminUtils: {
|
||||
search: "搜索",
|
||||
inputKeyword: "输入关键词",
|
||||
regularUser: "普通用户",
|
||||
admin: "普通管理员",
|
||||
superAdmin: "超级管理员",
|
||||
UserDoesNotExist: "用户不存在",
|
||||
back: "返回",
|
||||
saveChanges: "保存修改",
|
||||
createPublicContest: "创建公开比赛",
|
||||
manageAllContest: "管理所有比赛",
|
||||
manageAllProblem: "管理所有题目",
|
||||
manageOwnProblem: "管理自己创建的题目",
|
||||
unsupportedBrowserWarningMsg: "当前网页 <strong>不支持</strong> 你正在使用的浏览器, 为了正常的访问,请到 <a href=\"http://browsehappy.com/\"> 升级你的浏览器</a>"
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -7,6 +7,8 @@ import locale from "./locales"
|
||||
|
||||
import userList from "./components/account/userList.vue"
|
||||
import editUser from "./components/account/editUser.vue"
|
||||
import problem from "./components/problem/problem.vue"
|
||||
import uploader from "./components/utils/uploader.vue"
|
||||
|
||||
|
||||
var request = {
|
||||
@@ -83,6 +85,10 @@ router.map({
|
||||
"/user/edit/:userId": {
|
||||
name: "editUser",
|
||||
component: editUser
|
||||
},
|
||||
"/problem/create": {
|
||||
name: "createProblem",
|
||||
component: problem
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user