Commit add352d7 authored by 黄奎's avatar 黄奎

页面修改

parent 6d4b57d3
......@@ -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
......
<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>
......@@ -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"
......
......@@ -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: 12,
rowsPerPage: 12,
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;
......
......@@ -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()
......
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