Commit add352d7 authored by 黄奎's avatar 黄奎

页面修改

parent 6d4b57d3
...@@ -160,6 +160,18 @@ export function deleteAssist(data) { ...@@ -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 * @param {JSON数据} data
......
<template> <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 style="width: 800px;max-width:900px;">
<q-card-section> <q-card-section>
<div class="text-h6">{{objOption.AId==0?'新增助教信息':'修改助教信息'}}</div> <div class="text-h6">{{objOption.AId==0?'新增助教信息':'修改助教信息'}}</div>
</q-card-section> </q-card-section>
<q-card-section class="q-pt-none scroll" style="max-height: 70vh"> <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="text-caption q-mb-md q-px-xs text-grey-6">基本资料</div>
<div class="row wrap"> <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-input filled stack-label maxlength="20" :dense="false" v-model="objOption.AssistName" ref="AssistName"
<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 || '请选择所属校区']" /> class="col-6 q-pr-lg q-pb-lg" label="助教名称" :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 || '请填写助教联系电话']" /> <q-select filled stack-label option-value="SId" option-label="SName" v-model="objOption.School_Id"
<div class="col-6 q-pb-lg upload-assiatant-box"> ref="School_Id" :options="schoolList" label="所属校区" :dense="false" class="col-6 q-pb-lg" emit-value
<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" /> map-options :rules="[val => !!val || '请选择所属校区']" />
</div> <q-input type="tel" filled stack-label maxlength="100" :dense="false" v-model="objOption.AssistTel"
</div> ref="AssistTel" class="col-6 q-pr-lg q-pb-lg" label="联系电话" :rules="[val => !!val || '请填写助教联系电话']" />
<div class="text-caption q-my-md q-px-xs text-grey-6">讲师介绍</div> <div class="col-6 q-pb-lg">
<q-editor :toolbar="toolbar" :fonts="fonts" v-model="objOption.AssistIntro" class="col-12" :definitions="{bold: {label: 'Bold', icon: null, tip: 'My bold tooltip'}}" /> <q-uploader style="display: inline-block;max-height: 320px;max-width: 100%; background-repeat:no-repeat"
</q-card-section> :style="{'background-image':'url(' + objOption.AssistIcon + ')'}" max-files="1" hide-upload-btn
<q-separator /> @rejected="onRejected" label="助教头像" :max-file-size="512*1024" accept=".jpg, image/*" auto-upload
<q-card-actions align="right" class="bg-white"> :factory="uploadFile" no-thumbnails>
<q-btn label="取消" color="dark" style="font-weight:400 !important" @click="closeSaveForm" /> </q-uploader>
<q-btn label="立即提交" color="accent" class="q-px-md" style="font-weight:400 !important" :loading="saveLoading" @click="saveTeacher" /> </div>
</q-card-actions> </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-card>
</q-dialog> </q-dialog>
</template> </template>
<script> <script>
import { import {
getSchoolDropdown, getSchoolDropdown,
saveAssist saveAssist
} from '../../../api/school/index' } from '../../../api/school/index'
export default { import {
UploadSelfFile
} from '../../../api/common/common'
import extEditor from '../../common/ext-editor'
export default {
components: {
extEditor,
},
props: { props: {
saveObj: { saveObj: {
type: Object, type: Object,
default: null default: null
} }
}, },
data() { data() {
return { return {
persistent: true, persistent: true,
objOption: {}, objOption: {
optionTitle: "", AId: 0,
schoolList: [], School_Id: '',
saveLoading: false, AssistName: "",
imgDomain: "http://imgfile.oytour.com", AssistTel: '',
action: "http://upload.oytour.com/Upload?filePath=" + encodeURIComponent('/assistTel/teacher/'), AssistIcon: '',
toolbar: [], AssistIntro: ''
fonts: { },
arial: 'Arial', optionTitle: "",
arial_black: 'Arial Black', schoolList: [],
comic_sans: 'Comic Sans MS', saveLoading: false,
courier_new: 'Courier New', }
impact: 'Impact', },
lucida_grande: 'Lucida Grande', created() {
times_new_roman: 'Times New Roman', this.getSchool();
verdana: 'Verdana'
}
}
}, },
mounted() { mounted() {
this.getSchool() this.initObj()
this.initObj()
this.initToolBar()
}, },
methods: { methods: {
initToolBar() { //获取编辑器值
this.toolbar = [ getEditValue(obj) {
[{ this.objOption.AssistIntro = obj;
label: '对齐', },
icon: this.$q.iconSet.editor.align, initObj() {
fixedLabel: true, if (this.saveObj) {
list: 'only-icons', this.optionTitle = "修改助教信息"
options: ['left', 'center', 'right', 'justify'] this.objOption.AId = this.saveObj.AId;
}], this.objOption.School_Id = this.saveObj.School_Id;
['bold', 'italic', 'strike', 'underline', 'subscript', 'superscript'], this.objOption.AssistName = this.saveObj.AssistName;
[{ this.objOption.AssistTel = this.saveObj.AssistTel;
label: '格式', this.objOption.AssistIcon = this.saveObj.AssistIcon;
icon: this.$q.iconSet.editor.formatting, this.objOption.AssistIntro = this.saveObj.AssistIntro;
list: 'no-icons', } else {
fixedLabel: true, this.optionTitle = "新增助教"
fixedIcon: true, }
options: [ },
'p', getSchool() {
'h1', getSchoolDropdown({}).then(res => {
'h2', console.log("res.data", res.Data);
'h3', this.schoolList = res.Data;
'h4', this.$forceUpdate();
'h5', })
'h6', },
'code' onRejected(rejectedEntries) {
] this.this.$q.notify({
}, type: 'negative',
{ position: "top",
label: '字号', message: `文件验证失败,请重新上传`
icon: this.$q.iconSet.editor.fontSize, })
fixedLabel: true, },
fixedIcon: true, uploadFile(files) {
list: 'no-icons', UploadSelfFile('assistIcon', files[0], res => {
options: [ if (res.resultCode == 1) {
'size-1', this.objOption.AssistIcon = res.FileUrl;
'size-2', }
'size-3', })
'size-4', },
'size-5', closeSaveForm() {
'size-6', this.$emit('close')
'size-7' this.persistent = false
] },
}, saveTeacher() {
{ this.saveLoading = true
label: '字体', this.$refs.School_Id.validate()
icon: this.$q.iconSet.editor.font, this.$refs.AssistName.validate()
fixedLabel: true, this.$refs.AssistTel.validate()
fixedIcon: true, let tempSchool = null
list: 'no-icons', if (
options: [ !this.$refs.School_Id.hasError &&
'default_font', !this.$refs.AssistName.hasError &&
'arial', !this.$refs.AssistTel.hasError
'arial_black', ) {
'comic_sans', let err_msg = ""
'courier_new', if (this.objOption.AssistIcon == '') {
'impact', err_msg = "请上传助教头像"
'lucida_grande', }
'times_new_roman', if (err_msg == "") {
'verdana' saveAssist(this.objOption).then(res => {
] this.saveLoading = false
}, this.$q.notify({
'removeFormat' icon: 'iconfont icon-chenggong',
], color: 'accent',
['ordered', 'outdent', 'indent'], timeout: 2000,
] message: '数据保存成功!',
}, position: 'top'
initObj() { })
if (this.saveObj) { this.$emit("success")
this.optionTitle = "修改助教信息" this.closeSaveForm()
this.objOption = this.saveObj }).catch(() => {
} else { this.saveLoading = false
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]
}
}) })
}, } else {
onRejected(rejectedEntries) { this.$q.notify({
this.this.$q.notify({ type: 'negative',
type: 'negative', position: "top",
position: "top", message: err_msg
message: `文件验证失败,请重新上传`
}) })
}, this.saveLoading = false
uploadSuccess(info) { }
if (info.xhr.status == '200') { } else {
let res = JSON.parse(info.xhr.response) this.saveLoading = false
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
}
},
}, },
} }
</script> </script>
<style> <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; display: none;
} }
.upload-assiatant-box .q-uploader { .upload-assiatant-box .q-uploader {
width: auto; width: auto;
} }
</style> </style>
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
<q-select filled stack-label option-value="SId" option-label="SName" v-model="objOption.School_Id" <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 ref="School_Id" :options="schoolList" label="所属校区" :dense="false" class="col-6 q-pb-lg" emit-value
map-options :rules="[val => !!val || '请选择所属校区']" /> map-options :rules="[val => !!val || '请选择所属校区']" />
<q-input type="tel" filled stack-label maxlength="100" :dense="false" v-model="objOption.TeacherTel" <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 || '请填写教师联系电话']" /> 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" <q-input filled stack-label maxlength="100" :dense="false" v-model="objOption.TeacherSay" ref="TeacherSay"
......
...@@ -3,11 +3,11 @@ ...@@ -3,11 +3,11 @@
<div class="page-search row items-center"> <div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md"> <div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3"> <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="助教名称" /> label="助教名称" />
</div> </div>
<div class="col-3"> <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="助教电话" /> label="助教电话" />
</div> </div>
<div class="col-3"> <div class="col-3">
...@@ -89,6 +89,8 @@ ...@@ -89,6 +89,8 @@
style="font-weight:400" class="q-mr-xs" label="重置密码" @click="resetPw(props.row.AId)" /> 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" <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)" /> 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="编辑" <q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="编辑"
@click="addObj(props.row)" /> @click="addObj(props.row)" />
</div> </div>
...@@ -107,7 +109,8 @@ ...@@ -107,7 +109,8 @@
import { import {
getAssistPage, getAssistPage,
getSchoolDropdown, getSchoolDropdown,
deleteAssist deleteAssist,
reApplyAssist
} from '../../api/school/index' } from '../../api/school/index'
import { import {
resetPassword resetPassword
...@@ -207,8 +210,8 @@ ...@@ -207,8 +210,8 @@
], ],
msg: { msg: {
pageIndex: 1, pageIndex: 1,
pageSize: 1, pageSize: 12,
rowsPerPage: 1, rowsPerPage: 12,
AssistName: "", AssistName: "",
AssistTel: "", AssistTel: "",
AuditStatus: "-1", AuditStatus: "-1",
...@@ -307,6 +310,21 @@ ...@@ -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) { changePage(val) {
this.msg.Status = this.StatusTemp ? this.StatusTemp.value : '-1' this.msg.Status = this.StatusTemp ? this.StatusTemp.value : '-1'
this.msg.pageIndex = val; this.msg.pageIndex = val;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="page-search row items-center"> <div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md"> <div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3"> <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="教师名称" /> label="教师名称" />
</div> </div>
<div class="col-3"> <div class="col-3">
...@@ -104,10 +104,8 @@ ...@@ -104,10 +104,8 @@
style="font-weight:400" class="q-mr-xs" label="重置密码" @click="resetPw(props.row.TId)" /> 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" <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)" /> 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" <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)" /> 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="编辑" <q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="编辑"
@click="addObj(props.row)" /> @click="addObj(props.row)" />
</div> </div>
...@@ -367,7 +365,7 @@ ...@@ -367,7 +365,7 @@
icon: 'iconfont icon-chenggong', icon: 'iconfont icon-chenggong',
color: 'accent', color: 'accent',
timeout: 2000, timeout: 2000,
message: '数据删除成功!', message: '重新申请成功!',
position: 'top' position: 'top'
}) })
this.getTeacher() this.getTeacher()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment