Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
confucius
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
罗超
confucius
Commits
add352d7
Commit
add352d7
authored
Oct 20, 2020
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
页面修改
parent
6d4b57d3
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
191 additions
and
239 deletions
+191
-239
index.js
src/api/school/index.js
+12
-0
assistant-form.vue
src/components/school/assistant/assistant-form.vue
+154
-229
teacher-form.vue
src/components/school/teacher/teacher-form.vue
+0
-1
assistant.vue
src/pages/school/assistant.vue
+23
-5
teacher.vue
src/pages/school/teacher.vue
+2
-4
No files found.
src/api/school/index.js
View file @
add352d7
...
...
@@ -160,6 +160,18 @@ export function deleteAssist(data) {
})
}
/**
* 助教重新申请审核
* @param {AId} data
*/
export
function
reApplyAssist
(
data
)
{
return
request
({
url
:
'/user/ReApplyAssist'
,
method
:
'post'
,
data
})
}
/**
* 获取班级分页列表
* @param {JSON数据} data
...
...
src/components/school/assistant/assistant-form.vue
View file @
add352d7
<
template
>
<q-dialog
v-model=
"persistent"
content-class=
"bg-grey-1"
persistent
transition-show=
"scale"
transition-hide=
"scale"
>
<q-dialog
v-model=
"persistent"
content-class=
"bg-grey-1"
persistent
transition-show=
"scale"
transition-hide=
"scale"
>
<q-card
style=
"width: 800px;max-width:900px;"
>
<q-card-section>
<div
class=
"text-h6"
>
{{
objOption
.
AId
==
0
?
'新增助教信息'
:
'修改助教信息'
}}
</div>
</q-card-section>
<q-card-section
class=
"q-pt-none scroll"
style=
"max-height: 70vh"
>
<div
class=
"text-caption q-mb-md q-px-xs text-grey-6"
>
基本资料
</div>
<div
class=
"row wrap"
>
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"objOption.AssistName"
ref=
"AssistName"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"助教名称"
:rules=
"[val => !!val || '请填写助教姓名']"
/>
<q-select
filled
stack-label
option-value=
"SId"
option-label=
"SName"
v-model=
"objOption.School_Id"
ref=
"School_Id"
:options=
"schoolList"
label=
"所属校区"
:dense=
"false"
class=
"col-6 q-pb-lg"
:rules=
"[val => !!val || '请选择所属校区']"
/>
<q-input
type=
"tel"
filled
stack-label
maxlength=
"100"
:dense=
"false"
v-model=
"objOption.AssistTel"
ref=
"AssistTel"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"联系电话"
:rules=
"[val => !!val || '请填写助教联系电话']"
/>
<div
class=
"col-6 q-pb-lg upload-assiatant-box"
>
<q-uploader
flat
@
uploaded=
"uploadSuccess"
hide-upload-btn
max-files=
"1"
@
rejected=
"onRejected"
label=
"助教头像"
:max-file-size=
"512*1024"
accept=
".jpg, image/*"
auto-upload
:url=
"action"
/>
</div>
</div>
<div
class=
"text-caption q-my-md q-px-xs text-grey-6"
>
讲师介绍
</div>
<q-editor
:toolbar=
"toolbar"
:fonts=
"fonts"
v-model=
"objOption.AssistIntro"
class=
"col-12"
:definitions=
"
{bold: {label: 'Bold', icon: null, tip: 'My bold tooltip'}}" />
</q-card-section>
<q-separator
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
label=
"取消"
color=
"dark"
style=
"font-weight:400 !important"
@
click=
"closeSaveForm"
/>
<q-btn
label=
"立即提交"
color=
"accent"
class=
"q-px-md"
style=
"font-weight:400 !important"
:loading=
"saveLoading"
@
click=
"saveTeacher"
/>
</q-card-actions>
<q-card-section>
<div
class=
"text-h6"
>
{{
objOption
.
AId
==
0
?
'新增助教信息'
:
'修改助教信息'
}}
</div>
</q-card-section>
<q-card-section
class=
"q-pt-none scroll"
style=
"max-height: 70vh"
>
<div
class=
"text-caption q-mb-md q-px-xs text-grey-6"
>
基本资料
</div>
<div
class=
"row wrap"
>
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"objOption.AssistName"
ref=
"AssistName"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"助教名称"
:rules=
"[val => !!val || '请填写助教姓名']"
/>
<q-select
filled
stack-label
option-value=
"SId"
option-label=
"SName"
v-model=
"objOption.School_Id"
ref=
"School_Id"
:options=
"schoolList"
label=
"所属校区"
:dense=
"false"
class=
"col-6 q-pb-lg"
emit-value
map-options
:rules=
"[val => !!val || '请选择所属校区']"
/>
<q-input
type=
"tel"
filled
stack-label
maxlength=
"100"
:dense=
"false"
v-model=
"objOption.AssistTel"
ref=
"AssistTel"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"联系电话"
:rules=
"[val => !!val || '请填写助教联系电话']"
/>
<div
class=
"col-6 q-pb-lg"
>
<q-uploader
style=
"display: inline-block;max-height: 320px;max-width: 100%; background-repeat:no-repeat"
:style=
"
{'background-image':'url(' + objOption.AssistIcon + ')'}" max-files="1" hide-upload-btn
@rejected="onRejected" label="助教头像" :max-file-size="512*1024" accept=".jpg, image/*" auto-upload
:factory="uploadFile" no-thumbnails>
</q-uploader>
</div>
</div>
<div
class=
"text-caption q-my-md q-px-xs text-grey-6"
>
讲师介绍
</div>
<ext-editor
:defaultMsg=
"objOption.AssistIntro"
classStr=
"col-12"
@
getEditValue=
"getEditValue"
></ext-editor>
</q-card-section>
<q-separator
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
label=
"取消"
color=
"dark"
style=
"font-weight:400 !important"
@
click=
"closeSaveForm"
/>
<q-btn
label=
"立即提交"
color=
"accent"
class=
"q-px-md"
style=
"font-weight:400 !important"
:loading=
"saveLoading"
@
click=
"saveTeacher"
/>
</q-card-actions>
</q-card>
</q-dialog>
</q-dialog>
</
template
>
<
script
>
import
{
import
{
getSchoolDropdown
,
saveAssist
}
from
'../../../api/school/index'
export
default
{
}
from
'../../../api/school/index'
import
{
UploadSelfFile
}
from
'../../../api/common/common'
import
extEditor
from
'../../common/ext-editor'
export
default
{
components
:
{
extEditor
,
},
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
}
saveObj
:
{
type
:
Object
,
default
:
null
}
},
data
()
{
return
{
persistent
:
true
,
objOption
:
{},
optionTitle
:
""
,
schoolList
:
[],
saveLoading
:
false
,
imgDomain
:
"http://imgfile.oytour.com"
,
action
:
"http://upload.oytour.com/Upload?filePath="
+
encodeURIComponent
(
'/assistTel/teacher/'
),
toolbar
:
[],
fonts
:
{
arial
:
'Arial'
,
arial_black
:
'Arial Black'
,
comic_sans
:
'Comic Sans MS'
,
courier_new
:
'Courier New'
,
impact
:
'Impact'
,
lucida_grande
:
'Lucida Grande'
,
times_new_roman
:
'Times New Roman'
,
verdana
:
'Verdana'
}
}
return
{
persistent
:
true
,
objOption
:
{
AId
:
0
,
School_Id
:
''
,
AssistName
:
""
,
AssistTel
:
''
,
AssistIcon
:
''
,
AssistIntro
:
''
},
optionTitle
:
""
,
schoolList
:
[],
saveLoading
:
false
,
}
},
created
()
{
this
.
getSchool
();
},
mounted
()
{
this
.
getSchool
()
this
.
initObj
()
this
.
initToolBar
()
this
.
initObj
()
},
methods
:
{
initToolBar
()
{
this
.
toolbar
=
[
[{
label
:
'对齐'
,
icon
:
this
.
$q
.
iconSet
.
editor
.
align
,
fixedLabel
:
true
,
list
:
'only-icons'
,
options
:
[
'left'
,
'center'
,
'right'
,
'justify'
]
}],
[
'bold'
,
'italic'
,
'strike'
,
'underline'
,
'subscript'
,
'superscript'
],
[{
label
:
'格式'
,
icon
:
this
.
$q
.
iconSet
.
editor
.
formatting
,
list
:
'no-icons'
,
fixedLabel
:
true
,
fixedIcon
:
true
,
options
:
[
'p'
,
'h1'
,
'h2'
,
'h3'
,
'h4'
,
'h5'
,
'h6'
,
'code'
]
},
{
label
:
'字号'
,
icon
:
this
.
$q
.
iconSet
.
editor
.
fontSize
,
fixedLabel
:
true
,
fixedIcon
:
true
,
list
:
'no-icons'
,
options
:
[
'size-1'
,
'size-2'
,
'size-3'
,
'size-4'
,
'size-5'
,
'size-6'
,
'size-7'
]
},
{
label
:
'字体'
,
icon
:
this
.
$q
.
iconSet
.
editor
.
font
,
fixedLabel
:
true
,
fixedIcon
:
true
,
list
:
'no-icons'
,
options
:
[
'default_font'
,
'arial'
,
'arial_black'
,
'comic_sans'
,
'courier_new'
,
'impact'
,
'lucida_grande'
,
'times_new_roman'
,
'verdana'
]
},
'removeFormat'
],
[
'ordered'
,
'outdent'
,
'indent'
],
]
},
initObj
()
{
if
(
this
.
saveObj
)
{
this
.
optionTitle
=
"修改助教信息"
this
.
objOption
=
this
.
saveObj
}
else
{
this
.
optionTitle
=
"新增助教"
this
.
objOption
=
{
AId
:
0
,
School_Id
:
''
,
AssistName
:
""
,
AssistTel
:
''
,
AssistIcon
:
''
,
AssistIntro
:
''
}
}
},
removeTag
(
i
)
{
this
.
tags
.
splice
(
i
,
1
)
},
getSchool
()
{
getSchoolDropdown
({}).
then
(
res
=>
{
this
.
schoolList
=
res
.
Data
if
(
this
.
objOption
.
School_Id
!=
''
)
{
this
.
objOption
.
School_Id
=
this
.
schoolList
.
filter
(
x
=>
{
if
(
this
.
objOption
.
School_Id
==
x
.
SId
)
{
return
x
}
})[
0
]
}
//获取编辑器值
getEditValue
(
obj
)
{
this
.
objOption
.
AssistIntro
=
obj
;
},
initObj
()
{
if
(
this
.
saveObj
)
{
this
.
optionTitle
=
"修改助教信息"
this
.
objOption
.
AId
=
this
.
saveObj
.
AId
;
this
.
objOption
.
School_Id
=
this
.
saveObj
.
School_Id
;
this
.
objOption
.
AssistName
=
this
.
saveObj
.
AssistName
;
this
.
objOption
.
AssistTel
=
this
.
saveObj
.
AssistTel
;
this
.
objOption
.
AssistIcon
=
this
.
saveObj
.
AssistIcon
;
this
.
objOption
.
AssistIntro
=
this
.
saveObj
.
AssistIntro
;
}
else
{
this
.
optionTitle
=
"新增助教"
}
},
getSchool
()
{
getSchoolDropdown
({}).
then
(
res
=>
{
console
.
log
(
"res.data"
,
res
.
Data
);
this
.
schoolList
=
res
.
Data
;
this
.
$forceUpdate
();
})
},
onRejected
(
rejectedEntries
)
{
this
.
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
`文件验证失败,请重新上传`
})
},
uploadFile
(
files
)
{
UploadSelfFile
(
'assistIcon'
,
files
[
0
],
res
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
objOption
.
AssistIcon
=
res
.
FileUrl
;
}
})
},
closeSaveForm
()
{
this
.
$emit
(
'close'
)
this
.
persistent
=
false
},
saveTeacher
()
{
this
.
saveLoading
=
true
this
.
$refs
.
School_Id
.
validate
()
this
.
$refs
.
AssistName
.
validate
()
this
.
$refs
.
AssistTel
.
validate
()
let
tempSchool
=
null
if
(
!
this
.
$refs
.
School_Id
.
hasError
&&
!
this
.
$refs
.
AssistName
.
hasError
&&
!
this
.
$refs
.
AssistTel
.
hasError
)
{
let
err_msg
=
""
if
(
this
.
objOption
.
AssistIcon
==
''
)
{
err_msg
=
"请上传助教头像"
}
if
(
err_msg
==
""
)
{
saveAssist
(
this
.
objOption
).
then
(
res
=>
{
this
.
saveLoading
=
false
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'数据保存成功!'
,
position
:
'top'
})
this
.
$emit
(
"success"
)
this
.
closeSaveForm
()
}).
catch
(()
=>
{
this
.
saveLoading
=
false
})
},
onRejected
(
rejectedEntries
)
{
this
.
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
`文件验证失败,请重新上传`
}
else
{
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
err_msg
})
},
uploadSuccess
(
info
)
{
if
(
info
.
xhr
.
status
==
'200'
)
{
let
res
=
JSON
.
parse
(
info
.
xhr
.
response
)
this
.
objOption
.
AssistIcon
=
this
.
imgDomain
+
res
.
FilePath
}
},
closeSaveForm
()
{
this
.
$emit
(
'close'
)
this
.
persistent
=
false
},
createTag
()
{
if
(
this
.
tagText
.
length
>
0
)
{
this
.
tags
.
push
(
this
.
tagText
)
this
.
tagText
=
''
}
},
saveTeacher
()
{
this
.
saveLoading
=
true
this
.
$refs
.
School_Id
.
validate
()
this
.
$refs
.
AssistName
.
validate
()
this
.
$refs
.
AssistTel
.
validate
()
let
tempSchool
=
null
if
(
!
this
.
$refs
.
School_Id
.
hasError
&&
!
this
.
$refs
.
AssistName
.
hasError
&&
!
this
.
$refs
.
AssistTel
.
hasError
)
{
let
err_msg
=
""
if
(
this
.
objOption
.
AssistIcon
==
''
)
{
err_msg
=
"请上传助教头像"
}
if
(
err_msg
==
""
)
{
tempSchool
=
this
.
objOption
.
School_Id
this
.
objOption
.
School_Id
=
this
.
objOption
.
School_Id
.
SId
saveAssist
(
this
.
objOption
).
then
(
res
=>
{
this
.
saveLoading
=
false
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'数据保存成功!'
,
position
:
'top'
})
this
.
$emit
(
"success"
)
this
.
closeSaveForm
()
}).
catch
(()
=>
{
this
.
saveLoading
=
false
this
.
objOption
.
School_Id
=
tempSchool
})
}
else
{
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
err_msg
})
this
.
saveLoading
=
false
}
}
else
{
this
.
saveLoading
=
false
}
},
this
.
saveLoading
=
false
}
}
else
{
this
.
saveLoading
=
false
}
},
},
}
}
</
script
>
<
style
>
.tag-input
{
border
:
1px
solid
#777
;
outline
:
none
;
width
:
140px
;
padding
:
5px
;
border-radius
:
4px
;
}
.upload-assiatant-box
.q-uploader__list
{
.upload-assiatant-box
.q-uploader__list
{
display
:
none
;
}
}
.upload-assiatant-box
.q-uploader
{
.upload-assiatant-box
.q-uploader
{
width
:
auto
;
}
}
</
style
>
src/components/school/teacher/teacher-form.vue
View file @
add352d7
...
...
@@ -12,7 +12,6 @@
<q-select
filled
stack-label
option-value=
"SId"
option-label=
"SName"
v-model=
"objOption.School_Id"
ref=
"School_Id"
:options=
"schoolList"
label=
"所属校区"
:dense=
"false"
class=
"col-6 q-pb-lg"
emit-value
map-options
:rules=
"[val => !!val || '请选择所属校区']"
/>
<q-input
type=
"tel"
filled
stack-label
maxlength=
"100"
:dense=
"false"
v-model=
"objOption.TeacherTel"
ref=
"TeacherTel"
class=
"col-6 q-pr-lg q-pb-lg"
label=
"联系电话"
:rules=
"[val => !!val || '请填写教师联系电话']"
/>
<q-input
filled
stack-label
maxlength=
"100"
:dense=
"false"
v-model=
"objOption.TeacherSay"
ref=
"TeacherSay"
...
...
src/pages/school/assistant.vue
View file @
add352d7
...
...
@@ -3,11 +3,11 @@
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-input
@
change
=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.AssistName"
<q-input
@
input
=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.AssistName"
label=
"助教名称"
/>
</div>
<div
class=
"col-3"
>
<q-input
@
change
=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.AssistTel"
<q-input
@
input
=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.AssistTel"
label=
"助教电话"
/>
</div>
<div
class=
"col-3"
>
...
...
@@ -89,6 +89,8 @@
style=
"font-weight:400"
class=
"q-mr-xs"
label=
"重置密码"
@
click=
"resetPw(props.row.AId)"
/>
<q-btn
v-if=
"props.row.AuditStatus==3"
flat
size=
"xs"
icon=
"iconfont icon-shanchu"
color=
"negative"
style=
"font-weight:400"
class=
"q-mr-xs"
label=
"删除"
@
click=
"deleteUser(props.row.AId)"
/>
<q-btn
v-if=
"props.row.AuditStatus==3"
flat
size=
"xs"
icon=
"iconfont icon-ziyuan"
color=
"negative"
style=
"font-weight:400"
class=
"q-mr-xs"
label=
"重新申请"
@
click=
"reApplyAssisst(props.row.AId)"
/>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"addObj(props.row)"
/>
</div>
...
...
@@ -107,7 +109,8 @@
import
{
getAssistPage
,
getSchoolDropdown
,
deleteAssist
deleteAssist
,
reApplyAssist
}
from
'../../api/school/index'
import
{
resetPassword
...
...
@@ -207,8 +210,8 @@
],
msg
:
{
pageIndex
:
1
,
pageSize
:
1
,
rowsPerPage
:
1
,
pageSize
:
1
2
,
rowsPerPage
:
1
2
,
AssistName
:
""
,
AssistTel
:
""
,
AuditStatus
:
"-1"
,
...
...
@@ -307,6 +310,21 @@
})
});
},
//助教重新申请
reApplyAssisst
(
id
)
{
reApplyAssist
({
AId
:
id
}).
then
(
res
=>
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'重新申请成功!'
,
position
:
'top'
})
this
.
getAssistant
()
})
},
changePage
(
val
)
{
this
.
msg
.
Status
=
this
.
StatusTemp
?
this
.
StatusTemp
.
value
:
'-1'
this
.
msg
.
pageIndex
=
val
;
...
...
src/pages/school/teacher.vue
View file @
add352d7
...
...
@@ -3,7 +3,7 @@
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-input
@
change
=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.TeacherName"
<q-input
@
input
=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.TeacherName"
label=
"教师名称"
/>
</div>
<div
class=
"col-3"
>
...
...
@@ -104,10 +104,8 @@
style=
"font-weight:400"
class=
"q-mr-xs"
label=
"重置密码"
@
click=
"resetPw(props.row.TId)"
/>
<q-btn
v-if=
"props.row.AuditStatus==3"
flat
size=
"xs"
icon=
"iconfont icon-shanchu"
color=
"negative"
style=
"font-weight:400"
class=
"q-mr-xs"
label=
"删除"
@
click=
"deleteUser(props.row.TId)"
/>
<q-btn
v-if=
"props.row.AuditStatus==3"
flat
size=
"xs"
icon=
"iconfont icon-ziyuan"
color=
"negative"
style=
"font-weight:400"
class=
"q-mr-xs"
label=
"重新申请"
@
click=
"reApplyTeacher(props.row.TId)"
/>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"addObj(props.row)"
/>
</div>
...
...
@@ -367,7 +365,7 @@
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'
数据删除成功!
'
,
message
:
'
重新申请成功!
'
,
position
:
'top'
})
this
.
getTeacher
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment