const app = getApp();
|
import SparkMD5 from 'spark-md5'
|
import tool from "../../../assets/js/toolClass.js";
|
import {
|
getTopicMsgCmsItemFile
|
} from '../../../assets/js/middleGround/tool.js';
|
import FormData from '../../../utils/formdata/index.js';
|
import {
|
loginInfo
|
} from '../../../assets/js/login';
|
Page({
|
|
/**
|
* 页面的初始数据
|
*/
|
data: {
|
teacherInfo: {
|
schoolName: '', //学校名称
|
fullName: '', //姓名
|
positionalTitle: '', //职称
|
courseName: '', //任课教程
|
phone: '', //联系电话
|
telphone: '', //座机
|
email: '', //联系邮箱
|
detailedAddress: '', //通讯地址
|
relevantCertificates: [], //相关证件
|
state: '', //审核状态默认待审核
|
agree: false
|
},
|
teachPosts: [],
|
teachText: '',
|
teachVisible: false,
|
phoneError: false,
|
telphoneError: false,
|
emailError: false,
|
topicMessageList: [],
|
topicId: "",
|
worksInfo: [],
|
userId: '',
|
imgPics: [],
|
file: "",
|
imgs: [],
|
protocolTxt: '', //教师协议
|
protocolShow: false,
|
editState: true,
|
reasonTxt: "",
|
reasonTxtShow: false,
|
},
|
|
/**
|
* 生命周期函数--监听页面加载
|
*/
|
onLoad() {
|
//获取职称
|
this.getpositionalTitle();
|
this.getAgreement();
|
// 检查登录状态
|
const token = wx.getStorageSync(app.config.tokenKey)
|
if (!token) {
|
loginInfo(app, (data) => {
|
if (data) {
|
this.getUserRole()
|
}
|
})
|
} else {
|
this.getUserRole()
|
}
|
},
|
|
/**
|
* 生命周期函数--监听页面初次渲染完成
|
*/
|
onReady() {
|
|
},
|
|
/**
|
* 生命周期函数--监听页面显示
|
*/
|
onShow() {
|
|
},
|
|
/**
|
* 生命周期函数--监听页面隐藏
|
*/
|
onHide() {
|
|
},
|
|
/**
|
* 生命周期函数--监听页面卸载
|
*/
|
onUnload() {
|
|
},
|
getUserRole() {
|
app.MG.identity.getCurrentAppUser().then((res) => {
|
if (res) {
|
this.getType()
|
this.setData({
|
userId: res.userId
|
})
|
let nickNameData = res.infoList.find((item) => item.type == 'nickName')
|
let teacherRole = res.roleLinks.find((item) => item.role.refCode == 'teacher')
|
let teacherInfos = res.infoList.find((item) => item.type == 'teacherInfo')
|
let WeChatInfo = res.infoList.find((item) => item.type === "WeChat");
|
let defaultUser = {};
|
if (teacherRole && teacherInfos) {
|
defaultUser = {
|
...teacherInfos,
|
nickName: nickNameData ? JSON.parse(nickNameData.data).nickName : teacherInfos.name,
|
icon: nickNameData ? JSON.parse(nickNameData.data).icon : WeChatInfo ? WeChatInfo.icon : '',
|
userId: res.userId,
|
role: 'Teacher',
|
roleId: teacherRole.role.id,
|
}
|
|
} else if (WeChatInfo) {
|
defaultUser = {
|
...WeChatInfo,
|
nickName: nickNameData ? JSON.parse(nickNameData.data).nickName : WeChatInfo.name,
|
icon: nickNameData ? JSON.parse(nickNameData.data).icon : WeChatInfo.icon,
|
userId: res.userId,
|
}
|
|
}
|
wx.setStorageSync(app.config.userInfoKey, JSON.stringify(defaultUser));
|
}
|
})
|
},
|
//获取字段
|
getType() {
|
app.MG.resource.getCmsTypeByRefCode({
|
refCodes: ['jsek_teacherCertification']
|
}).then((res) => {
|
console.log(res)
|
this.setData({
|
worksInfo: res[0].cmsTypeLinks[0].children,
|
})
|
this.newGetTeacherInfo()
|
})
|
},
|
//获取教师状态
|
newGetTeacherInfo() {
|
const data = {
|
start: 0,
|
size: 10,
|
topicIdOrRefCode: 'teacherRoleApproval',
|
appRefCode: app.config.appRefCode,
|
sort: {
|
type: 'Desc',
|
field: 'CreateDate'
|
}
|
}
|
app.MG.ugc.getTopicMessageList(data).then((res) => {
|
try {
|
this.setData({
|
imgPics: [],
|
})
|
const resData = res.datas.find((i) => i.appUserCreator.userId === this.data.userId)
|
if (resData) {
|
if (resData.state == 'WaitAudit') {
|
this.setData({
|
editState: false,
|
})
|
} else {
|
this.setData({
|
editState: true,
|
})
|
}
|
let info = getTopicMsgCmsItemFile(this.data.worksInfo, resData.cmsItemDataList)
|
this.setData({
|
'teacherInfo.fullName': info.fullName,
|
'teacherInfo.schoolName': info.schoolName,
|
'teacherInfo.positionalTitle': info.positionalTitle,
|
'teacherInfo.courseName': info.courseName,
|
'teacherInfo.phone': info.phone,
|
'teacherInfo.telphone': info.telphone ? info.telphone : '',
|
'teacherInfo.email': info.email,
|
'teacherInfo.detailedAddress': info.detailedAddress ? info.detailedAddress : '',
|
'teacherInfo.relevantCertificates': info.relevantCertificates,
|
'teacherInfo.agree': true,
|
'teacherInfo.state': resData.state,
|
topicId: resData.id,
|
topicMessageList: resData.cmsItemDataList,
|
teachText: info.positionalTitle,
|
})
|
if (resData.feedBack != null) {
|
this.setData({
|
reasonTxt: JSON.parse(resData.feedBack).reason,
|
})
|
}
|
if (this.data.teacherInfo.relevantCertificates.length > 0) {
|
let arr = [];
|
if (typeof this.data.teacherInfo.relevantCertificates == 'object') {
|
this.data.teacherInfo.relevantCertificates.forEach((ele) => {
|
let imgObj = {
|
md5: ele.file.md5,
|
linkType: 'LinkFile',
|
linkProtectType: 'Public',
|
url: app.config.requestCtx + `/file/GetPreViewImage?md5=` + ele.md5,
|
imgUrl: ele.file.imgUrl
|
}
|
arr.push(imgObj);
|
this.setData({
|
imgPics: arr,
|
});
|
})
|
} else {
|
let imgObj = {
|
md5: this.data.teacherInfo.relevantCertificates,
|
linkType: 'LinkFile',
|
linkProtectType: 'Public',
|
url: app.config.requestCtx + `/file/GetPreViewImage?md5=` + this.data.teacherInfo.relevantCertificates,
|
imgUrl: app.config.requestCtx + `/file/GetPreViewImage?md5=` + this.data.teacherInfo.relevantCertificates,
|
}
|
arr.push(imgObj);
|
this.setData({
|
imgPics: arr,
|
});
|
}
|
}
|
|
}
|
} catch (error) {}
|
})
|
},
|
//获取职称
|
getpositionalTitle() {
|
const data = {
|
refCodes: ['positionalTitle']
|
}
|
app.MG.store.getProductTypeField(data).then((res) => {
|
try {
|
let list = res[0]
|
let options = JSON.parse(list.config).option
|
options.forEach((item) => {
|
item.label = item.name;
|
})
|
this.setData({
|
teachPosts: options,
|
})
|
} catch (error) {
|
|
}
|
})
|
},
|
getAgreement() {
|
let query = {
|
path: 'jsek_protocol',
|
fields: {
|
content: []
|
}
|
}
|
app.MG.resource.getItem(query).then((res) => {
|
try {
|
const data = res.datas.find((e) => e.refCode == 'jsek_teacherCertificationAgreement')
|
this.setData({
|
protocolTxt: data ? data.content : '暂无协议',
|
})
|
} catch (error) {
|
this.setData({
|
protocolTxt: '暂无协议',
|
})
|
}
|
})
|
},
|
//学校名称
|
onSchoolNameInput(e) {
|
this.setData({
|
"teacherInfo.schoolName": e.detail.value,
|
});
|
},
|
//姓名
|
onFullNameInput(e) {
|
this.setData({
|
"teacherInfo.fullName": e.detail.value,
|
});
|
},
|
// 任教课程
|
onCourseNameInput(e) {
|
this.setData({
|
"teacherInfo.courseName": e.detail.value,
|
});
|
},
|
//详细地址
|
onAddressInput(e) {
|
this.setData({
|
"teacherInfo.detailedAddress": e.detail.value,
|
});
|
},
|
|
|
//选择职称
|
onTeachPicker() {
|
this.setData({
|
teachVisible: true
|
});
|
},
|
onPickerChange(e) {
|
const {
|
label
|
} = e.detail;
|
this.setData({
|
teachVisible: false,
|
teachText: label[0],
|
'teacherInfo.positionalTitle': label[0],
|
});
|
},
|
onPickerCancel(e) {
|
this.setData({
|
'teacherInfo.positionalTitle': '',
|
teachVisible: false,
|
});
|
},
|
//输入手机号
|
onPhoneInput(e) {
|
const {
|
phoneError
|
} = this.data;
|
const isPhoneNumber = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e.detail.value);
|
if (phoneError === isPhoneNumber) {
|
this.setData({
|
phoneError: !isPhoneNumber,
|
"teacherInfo.phone": e.detail.value,
|
});
|
}
|
},
|
//输入座机
|
onTelphoneInput(e) {
|
const {
|
telphoneError
|
} = this.data;
|
const isPhoneNumber = /^0\d{2}-\d{8}$|^0\d{3}-\d{7}$/.test(e.detail.value);
|
if (telphoneError === isPhoneNumber) {
|
this.setData({
|
telphoneError: !isPhoneNumber,
|
"teacherInfo.telphone": e.detail.value,
|
});
|
}
|
},
|
onEmailInput(e) {
|
const {
|
emailError
|
} = this.data;
|
const isPhoneNumber = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/.test(e.detail.value);
|
if (emailError === isPhoneNumber) {
|
this.setData({
|
emailError: !isPhoneNumber,
|
"teacherInfo.email": e.detail.value,
|
});
|
}
|
},
|
// 上传图片事件
|
chooseImg(e) {
|
var that = this;
|
wx.chooseMedia({
|
count: 1,
|
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
|
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
|
success: function (res) {
|
// 返回选定照片的本地文件路径列表,tempFilePath也可以作为img标签的src属性显示图片
|
wx.getFileSystemManager().readFile({
|
filePath: res.tempFiles[0].tempFilePath, //选择图片返回的相对路径
|
// encoding: 'binary', //编码格式
|
success: ress => {
|
//成功的回调
|
let spark = new SparkMD5.ArrayBuffer();
|
spark.append(ress.data);
|
let md5 = spark.end(false);
|
if (!that.data.imgPics.find((item) => item.md5 == md5)) {
|
let formData = new FormData();
|
formData.append('Md5', md5);
|
formData.append('FileName', md5);
|
formData.append('FileType', res.tempFiles[0].fileType);
|
formData.appendFile("file", res.tempFiles[0].tempFilePath);
|
const data = formData.getData();
|
let _token = wx.getStorageSync(app.config.tokenKey);
|
let header = {};
|
if (_token == null) {
|
header["Authorization"] = `Basic ${Base64.encode(website.clientId + ":" + website.clientSecret)}`;
|
} else {
|
header["Authorization"] = `Bearer ` + _token;
|
}
|
new Promise((resolve, reject) => {
|
wx.request({
|
url: app.config.requestCtx + '/file/api/ApiUpload',
|
method: 'POST',
|
header: {
|
'content-type': data.contentType,
|
...header
|
},
|
data: data.buffer,
|
success(res1) {
|
if (res1.statusCode == 200) {
|
resolve(res1.data);
|
if (res1.data) {
|
let arr = [];
|
let imgObj = {
|
md5: md5,
|
linkType: 'LinkFile',
|
linkProtectType: 'Public',
|
url: app.config.requestCtx + `/file/GetPreViewImage?md5=` + md5,
|
imgUrl: res.tempFiles[0].tempFilePath
|
}
|
arr = [...that.data.imgPics, ...[imgObj]];
|
|
that.setData({
|
imgPics: arr,
|
});
|
}
|
} else {
|
reject('运行时错误,请稍后再试');
|
}
|
}
|
})
|
})
|
} else {
|
wx.showToast({
|
title: "当前文件已上传,请勿重复操作!",
|
icon: 'none',
|
duration: 1000,
|
})
|
}
|
}
|
})
|
|
}
|
});
|
},
|
// 删除图片
|
deleteImg(e) {
|
var imgs = this.data.imgPics;
|
var index = e.currentTarget.dataset.index;
|
imgs.splice(index, 1);
|
this.setData({
|
imgPics: imgs
|
});
|
},
|
// 预览现场图片
|
previewImg(e) {
|
//获取当前图片的下标
|
var index = e.currentTarget.dataset.index;
|
//所有图片
|
let imgs = [];
|
this.data.imgPics.forEach(item => {
|
imgs.push(item.url)
|
})
|
wx.previewImage({
|
//当前显示图片
|
current: imgs[index],
|
//所有图片
|
urls: imgs
|
})
|
},
|
onChange() {
|
if (this.data.teacherInfo.agree) {
|
this.setData({
|
'teacherInfo.agree': false,
|
});
|
} else {
|
this.setData({
|
'teacherInfo.agree': true,
|
});
|
}
|
|
},
|
//查看教师认证服务
|
viewContent() {
|
this.setData({
|
protocolShow: true,
|
});
|
},
|
onVisibleChange(e) {
|
this.setData({
|
protocolShow: e.detail.visible,
|
reasonTxtShow: e.detail.visible
|
});
|
},
|
onCloseProtocol() {
|
this.setData({
|
protocolShow: false,
|
});
|
},
|
|
//查看为通过原因
|
previewReason() {
|
this.setData({
|
reasonTxtShow: true,
|
});
|
},
|
|
onCloseReasonTxt() {
|
this.setData({
|
reasonTxtShow: false,
|
});
|
},
|
|
submit() {
|
let that = this;
|
if (!that.data.teacherInfo.schoolName) {
|
wx.showToast({
|
title: "请填写学校名称!",
|
icon: 'none',
|
duration: 1000,
|
})
|
return
|
}
|
if (!that.data.teacherInfo.fullName) {
|
wx.showToast({
|
title: "请填写真实姓名!",
|
icon: 'none',
|
duration: 1000,
|
})
|
return
|
}
|
if (!that.data.teacherInfo.courseName) {
|
wx.showToast({
|
title: "请填写任教课程!",
|
icon: 'none',
|
duration: 1000,
|
})
|
return
|
}
|
if (!that.data.teacherInfo.phone) {
|
wx.showToast({
|
title: "请填写联系电话!",
|
icon: 'none',
|
duration: 1000,
|
})
|
return
|
}
|
if (!that.data.teacherInfo.email) {
|
wx.showToast({
|
title: "请填写邮箱!",
|
icon: 'none',
|
duration: 1000,
|
})
|
return
|
}
|
if (that.data.imgPics.length == 0) {
|
wx.showToast({
|
title: "请上传工作证!",
|
icon: 'none',
|
duration: 1000,
|
})
|
return
|
}
|
if (that.data.teacherInfo.agree) {
|
if (that.data.topicMessageList.length > 0) {
|
let dataRequests = tool.UpdateworksDataBytool(
|
that.data.worksInfo,
|
that.data.topicMessageList,
|
that.data.teacherInfo,
|
that.data.imgPics
|
);
|
const data = {
|
description: '',
|
icon: '',
|
id: that.data.topicId,
|
topicIdOrRefCode: 'teacherRoleApproval',
|
name: that.data.teacherInfo.fullName + '',
|
content: '',
|
state: 'WaitAudit',
|
type: 'teacherRegister',
|
newDataRequests: dataRequests.newData,
|
updateDataRequests: dataRequests.updateData,
|
delDataRequest: {
|
ids: []
|
}
|
}
|
let basicInfo = JSON.parse(JSON.stringify(that.data.teacherInfo))
|
delete basicInfo.worksInfo
|
delete basicInfo.state
|
const userInfo = {
|
requests: [{
|
data: JSON.stringify(basicInfo),
|
name: that.data.teacherInfo.fullName + '',
|
type: 'newTeacherInfo'
|
}]
|
}
|
app.MG.identity.setAppUserInfo(userInfo).then((res) => {
|
if (res) {
|
app.MG.ugc.updateTopicMessage(data).then(() => {
|
if (res !== false) {
|
wx.showToast({
|
title: "提交成功!请等待审核...",
|
icon: 'none',
|
duration: 1000,
|
})
|
that.getUserRole()
|
// that.newGetTeacherInfo()
|
}
|
})
|
}
|
})
|
} else {
|
const data = {
|
topicIdOrRefCode: 'teacherRoleApproval',
|
name: that.data.teacherInfo.fullName + '',
|
content: '',
|
state: 'WaitAudit',
|
type: 'teacherRegister',
|
cmsTypeRefCode: 'jsek_teacherCertification',
|
newDataListRequest: tool.worksDataBytool(that.data.worksInfo, that.data.teacherInfo, that.data.imgPics)
|
}
|
|
let basicInfo = JSON.parse(JSON.stringify(that.data.teacherInfo))
|
delete basicInfo.worksInfo
|
delete basicInfo.state
|
const userInfo = {
|
requests: [{
|
data: JSON.stringify(basicInfo),
|
name: that.data.teacherInfo.fullName + '',
|
type: 'teacherInfo'
|
}]
|
}
|
app.MG.identity.setAppUserInfo(userInfo).then((res) => {
|
app.MG.ugc.newTopicMessage(data).then(() => {
|
if (res !== false) {
|
wx.showToast({
|
title: "提交成功!请等待审核...",
|
icon: 'none',
|
duration: 1000,
|
})
|
// that.newGetTeacherInfo()
|
that.getUserRole()
|
}
|
})
|
})
|
}
|
} else {
|
wx.showToast({
|
title: "请同意《教师认证服务条款》!",
|
icon: 'none',
|
duration: 1000,
|
})
|
}
|
|
},
|
|
/**
|
* 页面相关事件处理函数--监听用户下拉动作
|
*/
|
onPullDownRefresh() {
|
if (wx.getStorageSync(app.config.tokenKey)) {
|
this.getUserRole()
|
}
|
},
|
|
/**
|
* 页面上拉触底事件的处理函数
|
*/
|
onReachBottom() {},
|
|
/**
|
* 用户点击右上角分享
|
*/
|
onShareAppMessage() {
|
|
}
|
})
|