QYF-GitLab1
2 天以前 49a435043b0b1a289a24606e35253365d7ab3956
src/views/personalCenter/teacherCertification.vue
@@ -35,7 +35,7 @@
              <span class="wait" v-else>待认证</span>
            </el-form-item>
            <el-form-item label="学校:" prop="schoolName">
              <span v-if="!editState">{{ teacherInfo.schoolName || "-" }}</span>
              <span v-if="!editState">{{ teacherInfo.schoolName || '-' }}</span>
              <el-input
                v-else
                v-model="teacherInfo.schoolName"
@@ -44,7 +44,7 @@
              />
            </el-form-item>
            <el-form-item label="真实姓名:" prop="fullName">
              <span v-if="!editState">{{ teacherInfo.fullName || "-" }}</span>
              <span v-if="!editState">{{ teacherInfo.fullName || '-' }}</span>
              <el-input
                v-else
                v-model="teacherInfo.fullName"
@@ -53,12 +53,8 @@
              />
            </el-form-item>
            <el-form-item label="职称:">
              <span v-if="!editState">{{ teacherInfo.positionalTitle || "-" }}</span>
              <el-select
                v-else
                v-model="teacherInfo.positionalTitle"
                placeholder="请选择职称"
              >
              <span v-if="!editState">{{ teacherInfo.positionalTitle || '-' }}</span>
              <el-select v-else v-model="teacherInfo.positionalTitle" placeholder="请选择职称">
                <el-option
                  v-for="item in teachPosts"
                  :key="item.value"
@@ -68,7 +64,7 @@
              </el-select>
            </el-form-item>
            <el-form-item label="任教课程:" prop="courseName">
              <span v-if="!editState">{{ teacherInfo.courseName || "-" }}</span>
              <span v-if="!editState">{{ teacherInfo.courseName || '-' }}</span>
              <el-input
                v-else
                v-model="teacherInfo.courseName"
@@ -77,7 +73,7 @@
              />
            </el-form-item>
            <el-form-item label="手机号:" prop="phone">
              <span v-if="!editState">{{ teacherInfo.phone || "-" }}</span>
              <span v-if="!editState">{{ teacherInfo.phone || '-' }}</span>
              <el-input
                v-else
                v-model="teacherInfo.phone"
@@ -86,7 +82,7 @@
              />
            </el-form-item>
            <el-form-item label="座机:" prop="telphone">
              <span v-if="!editState">{{ teacherInfo.telphone || "-" }}</span>
              <span v-if="!editState">{{ teacherInfo.telphone || '-' }}</span>
              <el-input
                v-else
                v-model="teacherInfo.telphone"
@@ -95,7 +91,7 @@
              />
            </el-form-item>
            <el-form-item label="邮箱:" prop="email">
              <span v-if="!editState">{{ teacherInfo.email || "-" }}</span>
              <span v-if="!editState">{{ teacherInfo.email || '-' }}</span>
              <el-input
                v-else
                v-model="teacherInfo.email"
@@ -104,7 +100,7 @@
              />
            </el-form-item>
            <el-form-item label="详细地址:" prop="detailedAddress">
              <span v-if="!editState">{{ teacherInfo.detailedAddress || "-" }}</span>
              <span v-if="!editState">{{ teacherInfo.detailedAddress || '-' }}</span>
              <el-input
                v-else
                v-model="teacherInfo.detailedAddress"
@@ -182,11 +178,7 @@
        <div class="footer-box">
          <span class="myDialog-footer" v-if="!loading && editState">
            <el-button @click="closeDialog(teacherFormRef)"> 取消</el-button>
            <el-button
              type="primary"
              @click="submitBtn(teacherFormRef)"
              :loading="subLoading"
            >
            <el-button type="primary" @click="submitBtn(teacherFormRef)" :loading="subLoading">
              提交</el-button
            >
          </span>
@@ -210,12 +202,7 @@
      </template>
    </el-dialog>
    <!-- 查看原因 -->
    <el-dialog
      align-center
      :close-on-click-modal="false"
      v-model="dialogReason"
      title="驳回原因"
    >
    <el-dialog align-center :close-on-click-modal="false" v-model="dialogReason" title="驳回原因">
      <div class="reason" v-if="reasonTxt">
        {{ reasonTxt }}
      </div>
@@ -225,23 +212,23 @@
</template>
<script setup lang="ts">
import { reactive, ref, watch, defineEmits, inject, onMounted } from "vue";
import type { FormInstance, FormRules } from "element-plus";
import { ElMessage } from "element-plus";
import tool from "@/assets/js/toolClass.js";
import { getTopicMsgCmsItemFile } from "@/assets/js/middleGround/tool.js";
import { useUserStore } from "@/store";
const userStore = useUserStore();
const MG: any = inject("MG");
const config: any = inject("config");
import { reactive, ref, watch, defineEmits, inject, onMounted } from 'vue'
import type { FormInstance, FormRules } from 'element-plus'
import { ElMessage } from 'element-plus'
import tool from '@/assets/js/toolClass.js'
import { getTopicMsgCmsItemFile } from '@/assets/js/middleGround/tool.js'
import { useUserStore } from '@/store'
const userStore = useUserStore()
const MG: any = inject('MG')
const config: any = inject('config')
// 证件验证
const valiCertificate = (rule: any, value: any, callback: any) => {
  if (fileList.value.length == 0) {
    callback(new Error("请上传相关证件"));
    callback(new Error('请上传相关证件'))
  } else {
    callback();
    callback()
  }
};
}
// const validateTelphone = (rule: any, value: any, callback: any) => {
//   if (value !== "" && !config.reg_telphone.test(value)) {
@@ -251,128 +238,125 @@
// };
const validatePhone = (rule: any, value: any, callback: any) => {
  if (value === "") {
    callback(new Error("请输入联系电话"));
  if (value === '') {
    callback(new Error('请输入联系电话'))
  } else {
    if (!config.reg_tel.test(value)) {
      callback(new Error("请输入正确格式的电话"));
      callback(new Error('请输入正确格式的电话'))
    }
    callback();
    callback()
  }
};
}
const validateEmail = (rule: any, value: any, callback: any) => {
  let myreg = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/;
  if (value === "") {
    callback(new Error("请输入电子邮箱"));
  let myreg = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/
  if (value === '') {
    callback(new Error('请输入电子邮箱'))
  } else {
    if (!myreg.test(value)) {
      callback(new Error("请输入正确格式的电子邮箱"));
      callback(new Error('请输入正确格式的电子邮箱'))
    }
    callback();
    callback()
  }
};
}
const props = defineProps({
  isShow: Boolean,
});
})
let teacherDialog = ref(false); //弹窗
let loading = ref(false);
let subLoading = ref(false);
const teachPosts = ref([]);
let teacherDialog = ref(false) //弹窗
let loading = ref(false)
let subLoading = ref(false)
const teachPosts = ref([])
const teacherInfo = reactive({
  schoolName: "", //学校名称
  fullName: "", //姓名
  positionalTitle: "", //职称
  courseName: "", //任课教程
  phone: "", //联系电话
  telphone: "", //座机
  email: "", //联系邮箱
  detailedAddress: "", //通讯地址
  schoolName: '', //学校名称
  fullName: '', //姓名
  positionalTitle: '', //职称
  courseName: '', //任课教程
  phone: '', //联系电话
  telphone: '', //座机
  email: '', //联系邮箱
  detailedAddress: '', //通讯地址
  relevantCertificates: [], //相关证件
  state: "", //审核状态默认待审核
  state: '', //审核状态默认待审核
  agree: false,
});
const topicMessageList = ref([]);
const topicId = ref();
const worksInfo = ref([]);
const userId = ref();
const teacherFormRef = ref<FormInstance>();
})
const topicMessageList = ref([])
const topicId = ref()
const worksInfo = ref([])
const userId = ref()
const teacherFormRef = ref<FormInstance>()
interface TeacherInfo {
  schoolName: string;
  fullName: string;
  courseName: string;
  telphone: string;
  phone: string;
  email: string;
  detailedAddress: string;
  relevantCertificates: string[];
  schoolName: string
  fullName: string
  courseName: string
  telphone: string
  phone: string
  email: string
  detailedAddress: string
  relevantCertificates: string[]
}
const teacherRules = reactive<FormRules<TeacherInfo>>({
  schoolName: [{ required: true, message: "学校名称不能为空", trigger: "blur" }],
  fullName: [{ required: true, message: "真实姓名不能为空", trigger: "blur" }],
  courseName: [{ required: true, message: "任教课程不能为空", trigger: "blur" }],
  schoolName: [{ required: true, message: '学校名称不能为空', trigger: 'blur' }],
  fullName: [{ required: true, message: '真实姓名不能为空', trigger: 'blur' }],
  courseName: [{ required: true, message: '任教课程不能为空', trigger: 'blur' }],
  // telphone: [{ validator: validateTelphone, trigger: "blur" }],
  phone: [{ required: true, validator: validatePhone, trigger: "blur" }],
  email: [{ required: true, validator: validateEmail, trigger: "blur" }],
  detailedAddress: [{ required: true, message: "详细地址不能为空", trigger: "blur" }],
  relevantCertificates: [
    { required: true, validator: valiCertificate, trigger: "change" },
  ],
});
const fileList = ref([]);
const editState = ref<boolean>(true);
  phone: [{ required: true, validator: validatePhone, trigger: 'blur' }],
  email: [{ required: true, validator: validateEmail, trigger: 'blur' }],
  detailedAddress: [{ required: true, message: '详细地址不能为空', trigger: 'blur' }],
  relevantCertificates: [{ required: true, validator: valiCertificate, trigger: 'change' }],
})
const fileList = ref([])
const editState = ref<boolean>(true)
watch(props, (newValue) => {
  // 统监听props的值变化,动态修改isShow的值
  teacherDialog.value = newValue.isShow;
  teacherDialog.value = newValue.isShow
  if (teacherDialog.value) {
    getpositionalTitle();
    getAgreement();
    getpositionalTitle()
    getAgreement()
    if (localStorage.getItem(config.tokenKey)) {
      getUserRole();
      getUserRole()
    }
  }
});
})
// 获取职称
function getpositionalTitle() {
  const data = {
    refCodes: ["positionalTitle"],
  };
    refCodes: ['positionalTitle'],
  }
  MG.store.getProductTypeField(data).then((res) => {
    try {
      const list = res[0];
      const options = JSON.parse(list.config).option;
      teachPosts.value = options;
      const list = res[0]
      const options = JSON.parse(list.config).option
      teachPosts.value = options
    } catch (error) {
      teachPosts.value = [];
      teachPosts.value = []
    }
  });
  })
}
// 获取登录用户身份
function getUserRole() {
  loading.value = true;
  loading.value = true
  MG.identity.getCurrentAppUser().then((res) => {
    if (res) {
      getType();
      userId.value = res.userId;
      let userInfo = res.infoList.find((item: any) => item.type == "userInfo");
      let userTypeObj = res.infoList.find((item: any) => item.type == "userType");
      getType()
      userId.value = res.userId
      let userInfo = res.infoList.find((item: any) => item.type == 'userInfo')
      let userTypeObj = res.infoList.find((item: any) => item.type == 'userType')
      const userData = {
        userName: userInfo && userInfo.data ? JSON.parse(userInfo.data).name : "",
        school: userInfo && userInfo.data ? JSON.parse(userInfo.data).school : "",
        address: userInfo && userInfo.data ? JSON.parse(userInfo.data).address : "",
        userType:
          userTypeObj && userTypeObj.data ? JSON.parse(userTypeObj.data).userType : "",
      };
      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 studentInfo = res.infoList.find((item) => item.type == "Default");
      let phoneInfo = res.secretList.find((item) => item.type == "MobilePhone");
      let emailInfo = res.secretList.find((item) => item.type == "EMail");
        userName: userInfo && userInfo.data ? JSON.parse(userInfo.data).name : '',
        school: userInfo && userInfo.data ? JSON.parse(userInfo.data).school : '',
        address: userInfo && userInfo.data ? JSON.parse(userInfo.data).address : '',
        userType: userTypeObj && userTypeObj.data ? JSON.parse(userTypeObj.data).userType : '',
      }
      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 studentInfo = res.infoList.find((item) => item.type == 'Default')
      let phoneInfo = res.secretList.find((item) => item.type == 'MobilePhone')
      let emailInfo = res.secretList.find((item) => item.type == 'EMail')
      if (teacherRole && teacherInfos) {
        userStore.setUserInfo({
          ...userData,
@@ -380,22 +364,22 @@
          phoneNumber: phoneInfo?.credential,
          Email: emailInfo ? emailInfo.credential : JSON.parse(teacherInfos.data).email,
          icon: wechatInfo?.icon,
          role: "Teacher",
          role: 'Teacher',
          roleId: teacherRole.role.id,
          userId: res.userId,
        });
        })
      } else if (wechatInfo) {
        userStore.setUserInfo({
          ...userData,
          ...wechatInfo,
          phoneNumber: phoneInfo?.credential,
          Email: emailInfo?.credential,
          role: "Student",
          role: 'Student',
          userId: res.userId,
        });
        })
      } else if (studentInfo) {
        if (!studentInfo?.fullName) {
          teacherInfo.fullName = userStore.userInfo!.userName;
          teacherInfo.fullName = userStore.userInfo!.userName
        }
        userStore.setUserInfo({
          ...userData,
@@ -403,9 +387,9 @@
          icon: wechatInfo?.icon,
          phoneNumber: phoneInfo?.credential,
          Email: emailInfo?.credential,
          role: "Student",
          role: 'Student',
          userId: res.userId,
        });
        })
      } else if (phoneInfo) {
        userStore.setUserInfo({
          ...userData,
@@ -413,321 +397,313 @@
          name: phoneInfo?.credential,
          icon: phoneInfo?.icon,
          phoneNumber: phoneInfo?.credential,
          role: "Student",
          role: 'Student',
          userId: res.userId,
        });
        })
      }
      teacherInfo.phone = userStore.userInfo!.phoneNumber;
      teacherInfo.schoolName = userStore.userInfo!.school;
      teacherInfo.detailedAddress = userStore.userInfo!.address;
      teacherInfo.phone = userStore.userInfo!.phoneNumber
      teacherInfo.schoolName = userStore.userInfo!.school
      teacherInfo.detailedAddress = userStore.userInfo!.address
    }
  });
  })
}
function getType() {
  const data = {
    refCodes: ["teacherCertification"],
  };
    refCodes: ['teacherCertification'],
  }
  MG.resource.getCmsTypeByRefCode(data).then((res) => {
    worksInfo.value = res[0].cmsTypeLinks[0].children;
    newGetTeacherInfo();
  });
    worksInfo.value = res[0].cmsTypeLinks[0].children
    newGetTeacherInfo()
  })
}
// 文件上传
function fileUpload(file) {
  console.log(file, 2);
  console.log(file, 2)
  return new Promise((resolve, reject) => {
    const isJPG = file.file.type === "image/jpeg" || file.file.type === "image/png";
    const isLt2M = (0.5 * file.file.size) / 1024 / 1024 < 0.5;
    const isJPG = file.file.type === 'image/jpeg' || file.file.type === 'image/png'
    const isLt2M = (0.5 * file.file.size) / 1024 / 1024 < 0.5
    if (!isJPG) {
      ElMessage.error("上传文件只能是 jpg/png 格式!");
      return reject();
      ElMessage.error('上传文件只能是 jpg/png 格式!')
      return reject()
    }
    if (!isLt2M) {
      ElMessage.error("上传文件大小不能超过 500KB!");
      return reject();
      ElMessage.error('上传文件大小不能超过 500KB!')
      return reject()
    }
    const FileName = file.file.name.split(".")[0];
    const Extension = file.file.name.split(".")[1];
    const FileType = file.file.type;
    let size = 1024;
    const FileName = file.file.name.split('.')[0]
    const Extension = file.file.name.split('.')[1]
    const FileType = file.file.type
    let size = 1024
    tool
      .getFileMd5(file.file, size * 1024)
      .then((e) => {
        console.log(e, 2);
        console.log(e, 2)
        if (!fileList.value.find((item) => item.md5 == e)) {
          const imgData = new FormData();
          imgData.append("Md5", e);
          imgData.append("FileName", FileName);
          imgData.append("Extension", Extension);
          imgData.append("FileType", FileType);
          imgData.append("MetaData", null);
          imgData.append("file", file.file);
          const imgData = new FormData()
          imgData.append('Md5', e)
          imgData.append('FileName', FileName)
          imgData.append('Extension', Extension)
          imgData.append('FileType', FileType)
          imgData.append('MetaData', null)
          imgData.append('file', file.file)
          MG.file.upload(imgData).then(() => {
            fileList.value.push({
              md5: e,
              linkType: "LinkFile",
              linkProtectType: "Public",
              linkType: 'LinkFile',
              linkProtectType: 'Public',
              url: config.requestCtx + `/file/GetPreViewImage?md5=` + e,
            });
          });
            })
          })
        } else {
          ElMessage.error("当前文件已上传,请勿重复操作!");
          ElMessage.error('当前文件已上传,请勿重复操作!')
        }
      })
      .catch((e) => {
        console.error(e);
      });
  });
        console.error(e)
      })
  })
}
// 证件删除
function handleRemove(file) {
  for (let i = 0; i < fileList.value.length; i++) {
    if (fileList.value[i].md5 == file.md5) {
      fileList.value.splice(i, 1);
      fileList.value.splice(i, 1)
    }
  }
}
// 监听文件列表变化,同步修改展示列表
const showFileList = ref([]);
const showFileList = ref([])
watch(
  fileList,
  (newValue) => {
    showFileList.value = newValue.map(
      (item) => config.requestCtx + `/file/GetPreViewImage?md5=` + item.md5
    );
      (item) => config.requestCtx + `/file/GetPreViewImage?md5=` + item.md5,
    )
  },
  { immediate: true, deep: true }
);
  { immediate: true, deep: true },
)
// 关闭弹框,回调父层方法
const emit = defineEmits(["dialogChange"]);
const emit = defineEmits(['dialogChange'])
const closeDialog = (formEl: FormInstance | undefined) => {
  if (!formEl) return;
  formEl.resetFields();
  teacherDialog.value = false;
  emit("dialogChange", teacherDialog.value);
};
  if (!formEl) return
  formEl.resetFields()
  teacherDialog.value = false
  emit('dialogChange', teacherDialog.value)
}
// 教师协议
const dialogVisibleTecher = ref(false);
const protocolTxt = ref("");
const dialogVisibleTecher = ref(false)
const protocolTxt = ref('')
const getAgreement = () => {
  let query = {
    path: "protocol",
    path: 'protocol',
    fields: {
      content: [],
    },
  };
  }
  MG.resource.getItem(query).then((res) => {
    try {
      const data = res.datas.find(
        (e) => e.refCode == "teacherCertificationAgreement"
      );
      protocolTxt.value = data ? data.content : "暂无协议";
      const data = res.datas.find((e) => e.refCode == 'teacherCertificationAgreement')
      protocolTxt.value = data ? data.content : '暂无协议'
    } catch (error) {
      protocolTxt.value = "暂无协议";
      protocolTxt.value = '暂无协议'
    }
  });
};
  })
}
//教师信息
function newGetTeacherInfo() {
  const data = {
    start: 0,
    size: 10,
    topicIdOrRefCode: "teacherRoleApproval",
    topicIdOrRefCode: 'teacherRoleApproval',
    appRefCode: config.appRefCode,
    sort: {
      type: "Desc",
      field: "CreateDate",
      type: 'Desc',
      field: 'CreateDate',
    },
  };
  }
  MG.ugc.getTopicMessageList(data).then((res) => {
    try {
      fileList.value = [];
      const resData = res.datas.find((i) => i.appUserCreator.userId === userId.value);
      fileList.value = []
      const resData = res.datas.find((i) => i.appUserCreator.userId === userId.value)
      if (resData) {
        if (resData.state == "WaitAudit") {
          editState.value = false;
        if (resData.state == 'WaitAudit') {
          editState.value = false
        } else {
          editState.value = true;
          editState.value = true
        }
        let info = getTopicMsgCmsItemFile(worksInfo.value, resData.cmsItemDataList);
        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.value = resData.id;
        topicMessageList.value = resData.cmsItemDataList;
        let info = getTopicMsgCmsItemFile(worksInfo.value, resData.cmsItemDataList)
        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.value = resData.id
        topicMessageList.value = resData.cmsItemDataList
        if (resData.feedBack != null) {
          reasonTxt.value = JSON.parse(resData.feedBack).reason;
          reasonTxt.value = JSON.parse(resData.feedBack).reason
        }
        if (teacherInfo.relevantCertificates.length > 0) {
          if (typeof teacherInfo.relevantCertificates == "object") {
          if (typeof teacherInfo.relevantCertificates == 'object') {
            teacherInfo.relevantCertificates.forEach((ele) => {
              let imgObj = {
                md5: ele.file.md5,
                linkType: "LinkFile",
                linkProtectType: "Public",
                linkType: 'LinkFile',
                linkProtectType: 'Public',
                url: config.requestCtx + `/file/GetPreViewImage?md5=` + ele.file.md5,
              };
              fileList.value.push(imgObj);
            });
              }
              fileList.value.push(imgObj)
            })
          } else {
            let imgObj = {
              md5: teacherInfo.relevantCertificates,
              linkType: "LinkFile",
              linkProtectType: "Public",
              linkType: 'LinkFile',
              linkProtectType: 'Public',
              url:
                config.requestCtx +
                `/file/GetPreViewImage?md5=` +
                teacherInfo.relevantCertificates,
            };
            fileList.value.push(imgObj);
                config.requestCtx + `/file/GetPreViewImage?md5=` + teacherInfo.relevantCertificates,
            }
            fileList.value.push(imgObj)
          }
        }
        loading.value = false;
        loading.value = false
      } else {
        loading.value = false;
        loading.value = false
      }
    } catch (error) {
      loading.value = false;
      loading.value = false
    }
  });
  })
}
//教师认证提交
const submitBtn = async (formEl: FormInstance | undefined) => {
  if (!formEl) return;
  if (!formEl) return
  await formEl.validate((valid, fields) => {
    if (valid) {
      if (teacherInfo.agree) {
        subLoading.value = true;
        subLoading.value = true
        if (topicMessageList.value.length > 0) {
          let dataRequests = tool.UpdateworksDataBytool(
            worksInfo.value,
            topicMessageList.value,
            teacherInfo,
            fileList.value
          );
            fileList.value,
          )
          const data = {
            description: "",
            icon: "",
            description: '',
            icon: '',
            id: topicId.value,
            topicIdOrRefCode: "teacherRoleApproval",
            name: teacherInfo.fullName + "",
            content: "",
            state: "WaitAudit",
            type: "teacherRegister",
            topicIdOrRefCode: 'teacherRoleApproval',
            name: teacherInfo.fullName + '',
            content: '',
            state: 'WaitAudit',
            type: 'teacherRegister',
            newDataRequests: dataRequests.newData,
            updateDataRequests: dataRequests.updateData,
            delDataRequest: {
              ids: [],
            },
          };
          let basicInfo = JSON.parse(JSON.stringify(teacherInfo));
          delete basicInfo.worksInfo;
          delete basicInfo.state;
          }
          let basicInfo = JSON.parse(JSON.stringify(teacherInfo))
          delete basicInfo.worksInfo
          delete basicInfo.state
          const userInfo = {
            requests: [
              {
                data: JSON.stringify(basicInfo),
                name: teacherInfo.fullName + "",
                type: "newTeacherInfo",
                name: teacherInfo.fullName + '',
                type: 'newTeacherInfo',
              },
            ],
          };
          }
          MG.identity.setAppUserInfo(userInfo).then((res) => {
            if (res) {
              MG.ugc.updateTopicMessage(data).then(() => {
                if (res !== false) {
                  ElMessage({
                    message: "提交成功!请等待审核...",
                    type: "success",
                  });
                  teacherDialog.value = false;
                  subLoading.value = false;
                  newGetTeacherInfo();
                    message: '提交成功!请等待审核...',
                    type: 'success',
                  })
                  teacherDialog.value = false
                  subLoading.value = false
                  newGetTeacherInfo()
                } else {
                  subLoading.value = false;
                  subLoading.value = false
                }
              });
              })
            } else {
              subLoading.value = true;
              subLoading.value = true
            }
          });
          })
        } else {
          const data = {
            topicIdOrRefCode: "teacherRoleApproval",
            name: teacherInfo.fullName + "",
            content: "",
            state: "WaitAudit",
            type: "teacherRegister",
            cmsTypeRefCode: "teacherCertification",
            newDataListRequest: tool.worksDataBytool(
              worksInfo.value,
              teacherInfo,
              fileList.value
            ),
          };
            topicIdOrRefCode: 'teacherRoleApproval',
            name: teacherInfo.fullName + '',
            content: '',
            state: 'WaitAudit',
            type: 'teacherRegister',
            cmsTypeRefCode: 'teacherCertification',
            newDataListRequest: tool.worksDataBytool(worksInfo.value, teacherInfo, fileList.value),
          }
          let basicInfo = JSON.parse(JSON.stringify(teacherInfo));
          delete basicInfo.worksInfo;
          delete basicInfo.state;
          let basicInfo = JSON.parse(JSON.stringify(teacherInfo))
          delete basicInfo.worksInfo
          delete basicInfo.state
          const userInfo = {
            requests: [
              {
                data: JSON.stringify(basicInfo),
                name: teacherInfo.fullName + "",
                type: "teacherInfo",
                name: teacherInfo.fullName + '',
                type: 'teacherInfo',
              },
            ],
          };
          }
          MG.identity.setAppUserInfo(userInfo).then((res) => {
            MG.ugc.newTopicMessage(data).then(() => {
              if (res !== false) {
                ElMessage({
                  message: "提交成功!请等待审核...",
                  type: "success",
                });
                teacherDialog.value = false;
                newGetTeacherInfo();
                subLoading.value = false;
                  message: '提交成功!请等待审核...',
                  type: 'success',
                })
                teacherDialog.value = false
                newGetTeacherInfo()
                subLoading.value = false
              } else {
                subLoading.value = false;
                subLoading.value = false
              }
            });
          });
            })
          })
        }
      } else {
        ElMessage({
          message: "请同意《教师认证服务条款》!",
          type: "warning",
        });
          message: '请同意《教师认证服务条款》!',
          type: 'warning',
        })
      }
    }
  });
};
  })
}
//原因查看
const dialogReason = ref(false);
const reasonTxt = ref("");
const dialogReason = ref(false)
const reasonTxt = ref('')
const lookReason = () => {
  dialogReason.value = true;
};
defineExpose({ getUserRole });
  dialogReason.value = true
}
defineExpose({ getUserRole })
</script>
<style lang="less">
.myDialog {
@@ -737,7 +713,7 @@
  }
  .body-box {
    padding: 10px 20px 40px;
    height: 80vh;
    height: 70vh;
    overflow-y: auto;
  }
@@ -760,7 +736,7 @@
    padding: 15px;
    border-top: 1px solid #f4f4f4;
    text-align: right;
    height: 63px;
    box-sizing: border-box;
  }
  .myDialog-footer {
@@ -784,6 +760,7 @@
  .main {
    font-weight: bold;
    text-align: center;
    color: #019e58;
  }
}
@@ -831,7 +808,7 @@
}
.fileList .fileImgBox:hover {
  border-color: #019E58;
  border-color: #019e58;
}
.agree-msg {
@@ -842,10 +819,14 @@
  .agree {
    margin-left: 5px;
    .main {
      text-align: center;
      color: #019e58;
    }
  }
  .term {
    color: #019E58;
    color: #019e58;
  }
}
.reason {