{"version":3,"file":"entry.dcf2bc0a.mjs","sources":["../../../../pages/contest/entry.vue"],"sourcesContent":["<template>\n  <NuxtLayout name=\"event\">\n    <div class=\"app_container w entry_page\">\n      <div class=\"entry_info\">\n        <template v-if=\"opts.steps === 1\">\n          <el-form\n            ref=\"formRef\"\n            :model=\"form\"\n            :rules=\"rules\"\n            label-width=\"140px\"\n            size=\"large\"\n            class=\"form\"\n          >\n            <el-form-item :label=\"map.type === 'pingbi' ? '活动名称' : '所属赛区'\">\n              <el-input class=\"w680\" v-model=\"form.areaName\" disabled></el-input>\n            </el-form-item>\n            <el-form-item v-if=\"map.type !== 'pingbi'\" label=\"比赛赛项\" prop=\"categoryId\">\n              <div class=\"w680\">\n                <template v-if=\"opts.overData\">\n                  <!-- <el-select class=\"w680\" v-model=\"form.categoryId\">\n                    <el-option v-for=\"item of opts.categoryList\" :key=\"item.categoryId\" :label=\"item.categoryName\" :value=\"item.categoryId\"></el-option>\n                  </el-select> -->\n                  <el-cascader\n                    v-model=\"form.categoryId\"\n                    :options=\"opts.categoryList\"\n                    :props=\"{\n                      value: 'id',\n                      label: 'categoryName',\n                      children: 'childrenList',\n                      checkStrictly: true,\n                      emitPath: false,\n                    }\"\n                    filterable\n                    clearable\n                  />\n                </template>\n              </div>\n            </el-form-item>\n            <el-form-item label=\"姓名\" prop=\"realName\">\n              <el-input class=\"w680\" v-model=\"form.realName\" placeholder=\"请输入真实姓名\"></el-input>\n            </el-form-item>\n            <el-form-item label=\"身份证号\" prop=\"idCard\">\n              <el-input class=\"w680\" v-model=\"form.idCard\" placeholder=\"请输入身份证号\"></el-input>\n            </el-form-item>\n            <el-form-item label=\"手机号\" prop=\"phone\">\n              <el-input class=\"w680\" v-model=\"form.phone\" placeholder=\"请输入手机号\"></el-input>\n            </el-form-item>\n            <el-form-item v-if=\"map.type === 'pingbi'\" label=\"教师继续教育号\" prop=\"teachNo\">\n              <el-input class=\"w680\" v-model=\"form.teachNo\" placeholder=\"请输入教师继续教育号\"></el-input>\n            </el-form-item>\n            <el-form-item label=\"学校\" prop=\"school\">\n              <el-input class=\"w680\" v-model=\"form.school\" placeholder=\"请输入学校全名\"></el-input>\n            </el-form-item>\n            <el-form-item v-if=\"!map.type\" label=\"地址\" prop=\"address\">\n              <template v-if=\"opts.overData\">\n                <select-prov :data-code=\"opts.dataCode\" @getLocationCode=\"provCallback\" />\n              </template>\n              <div class=\"mgt10\">\n                <el-input class=\"w680\" v-model=\"form.address\" placeholder=\"所在地区及详细地址\"></el-input>\n              </div>\n            </el-form-item>\n            <el-form-item v-if=\"map.type === 'pingbi' && opts.overData\" label=\"所在区域\" prop=\"province\">\n              <select-prov :data-code=\"opts.dataCode\" @getLocationCode=\"provCallback\" />\n            </el-form-item>\n            <template v-if=\"!map.type\">\n              <el-form-item label=\"组别\" prop=\"grade\">\n                <template v-if=\"opts.overData\">\n                  <el-select class=\"w680\" v-model=\"form.grade\">\n                    <el-option label=\"小学\" value=\"小学\"></el-option>\n                    <el-option label=\"初中\" value=\"初中\"></el-option>\n                  </el-select>\n                </template>\n              </el-form-item>\n              <el-form-item label=\"指导老师姓名\" prop=\"tutorName\">\n                <el-input class=\"w680\" v-model=\"form.tutorName\" placeholder=\"请输入指导老师姓名\"></el-input>\n              </el-form-item>\n              <el-form-item label=\"指导老师手机号\" prop=\"tutorPhone\">\n                <el-input class=\"w680\" v-model=\"form.tutorPhone\" placeholder=\"请输入指导老师手机号\"></el-input>\n              </el-form-item>\n            </template>\n            <template v-else>\n              <el-form-item label=\"任教年级\" prop=\"teachGrade\">\n                <el-input class=\"w680\" v-model=\"form.teachGrade\" placeholder=\"请输入任教年级\"></el-input>\n              </el-form-item>\n              <el-form-item label=\"任教学科\" prop=\"teachSubject\">\n                <el-input class=\"w680\" v-model=\"form.teachSubject\" placeholder=\"请输入任教学科\"></el-input>\n              </el-form-item>\n              <el-form-item class=\"file_content\" label=\"证明文件\" prop=\"proveFile\">\n                <el-upload\n                  ref=\"proveLocal\"\n                  class=\"upload-btn\"\n                  action=\"#\"\n                  :show-file-list=\"false\"\n                  :on-change=\"handleChange\"\n                  :before-upload=\"handleBeforeUpload\"\n                  :http-request=\"proveUpload\"\n                >\n                  <el-button :icon=\"Plus\" size=\"default\">\n                    点击上传\n                    <slot name=\"btn-content\" />\n                  </el-button>\n                  <span class=\"c_999 mgl10\"><el-icon class=\"sub_icon\" :size=\"16\" :color=\"'#999999'\"><Warning /></el-icon>文件上传大小最大为2G</span>\n                </el-upload>\n                <div v-if=\"map.fileInfo.status === 'uploading' && opts.isProve\" class=\"upload-btn uploading_panel\" style=\"width: 110px;\">\n                  <el-progress class=\"progress-panel\" :text-inside=\"true\" :stroke-width=\"28\" :percentage=\"map.fileInfo.progress\" />\n                </div>\n                <template v-if=\"map.proveList.length\">\n                  <el-table :data=\"map.proveList\" class=\"w680 file_table mgt10\" row-key=\"id\">\n                    <el-table-column min-width=\"350\" label=\"文件名称\">\n                      <template #default=\"scope\">\n                        <div class=\"material_name\">\n                          <span class=\"ov_text\">{{ scope.row['materialName'] }}</span>\n                        </div>\n                      </template>\n                    </el-table-column>\n                    <el-table-column width=\"120\" label=\"文件类型\">\n                      <template #default=\"scope\">\n                        <span v-if=\"scope.row['materialType'] === 3 && scope.row['materialName'].indexOf('.ppt') > -1\">{{ 'ppt' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 3 && scope.row['materialName'].indexOf('.pdf') > -1\">{{ 'pdf' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 3 && scope.row['materialName'].indexOf('.doc') > -1\">{{ 'doc' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 3 && scope.row['materialName'].indexOf('.xls') > -1\">{{ 'xls' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 3 && scope.row['materialName'].indexOf('.txt') > -1\">{{ 'txt' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 4 && scope.row['materialName'].indexOf('.png') > -1\">{{ 'png' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 4 && scope.row['materialName'].indexOf('.jpg') > -1\">{{ 'jpg' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 4 && scope.row['materialName'].indexOf('.jpeg') > -1\">{{ 'jpeg' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 3 && scope.row['materialName'].indexOf('.zip') > -1\">{{ 'zip' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 3 && scope.row['materialName'].indexOf('.rar') > -1\">{{ 'rar' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 3 && map.mediaEnum.indexOf(scope.row['materialName'].substring(scope.row['materialName'].lastIndexOf('.') + 1)) > -1\">音视频</span>\n                      </template>\n                    </el-table-column>\n                    <el-table-column width=\"120\" label=\"文件大小\">\n                      <template #default=\"scope\">\n                        {{ getSize(scope.row['materialSize']) }}\n                      </template>\n                    </el-table-column>\n                    <el-table-column width=\"100\" label=\"操作\">\n                      <template #default=\"scope\">\n                        <el-button style=\"padding: 0;\" type=\"text\" @click=\"handleDelete(scope.row.id)\">移除</el-button>\n                      </template>\n                    </el-table-column>\n                  </el-table>\n                </template>\n              </el-form-item>\n              <el-form-item class=\"file_content\" label=\"课例文件\" prop=\"affixId\">\n                <el-upload\n                  ref=\"local\"\n                  class=\"upload-btn\"\n                  action=\"#\"\n                  :show-file-list=\"false\"\n                  :on-change=\"handleChange\"\n                  :before-upload=\"handleBeforeUpload\"\n                  :http-request=\"upload\"\n                >\n                  <el-button :icon=\"Plus\" size=\"default\">\n                    点击上传\n                    <slot name=\"btn-content\" />\n                  </el-button>\n                  <span class=\"c_999 mgl10\"><el-icon class=\"sub_icon\" :size=\"16\" :color=\"'#999999'\"><Warning /></el-icon>文件上传大小最大为2G</span>\n                </el-upload>\n                <div v-if=\"map.fileInfo.status === 'uploading' && !opts.isProve\" class=\"upload-btn uploading_panel\" style=\"width: 110px;\">\n                  <el-progress class=\"progress-panel\" :text-inside=\"true\" :stroke-width=\"28\" :percentage=\"map.fileInfo.progress\" />\n                </div>\n                <template v-if=\"map.affixList.length\">\n                  <el-table :data=\"map.affixList\" class=\"w680 file_table mgt10\" row-key=\"id\">\n                    <el-table-column min-width=\"350\" label=\"文件名称\">\n                      <template #default=\"scope\">\n                        <div class=\"material_name\">\n                          <span class=\"ov_text\">{{ scope.row['materialName'] }}</span>\n                        </div>\n                      </template>\n                    </el-table-column>\n                    <el-table-column width=\"120\" label=\"文件类型\">\n                      <template #default=\"scope\">\n                        <span v-if=\"scope.row['materialType'] === 3 && scope.row['materialName'].indexOf('.ppt') > -1\">{{ 'ppt' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 3 && scope.row['materialName'].indexOf('.pdf') > -1\">{{ 'pdf' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 3 && scope.row['materialName'].indexOf('.doc') > -1\">{{ 'doc' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 3 && scope.row['materialName'].indexOf('.xls') > -1\">{{ 'xls' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 3 && scope.row['materialName'].indexOf('.txt') > -1\">{{ 'txt' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 4 && scope.row['materialName'].indexOf('.png') > -1\">{{ 'png' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 4 && scope.row['materialName'].indexOf('.jpg') > -1\">{{ 'jpg' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 4 && scope.row['materialName'].indexOf('.jpeg') > -1\">{{ 'jpeg' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 3 && scope.row['materialName'].indexOf('.zip') > -1\">{{ 'zip' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 3 && scope.row['materialName'].indexOf('.rar') > -1\">{{ 'rar' }}</span>\n                        <span v-if=\"scope.row['materialType'] === 3 && map.mediaEnum.indexOf(scope.row['materialName'].substring(scope.row['materialName'].lastIndexOf('.') + 1)) > -1\">音视频</span>\n                      </template>\n                    </el-table-column>\n                    <el-table-column width=\"120\" label=\"文件大小\">\n                      <template #default=\"scope\">\n                        {{ getSize(scope.row['materialSize']) }}\n                      </template>\n                    </el-table-column>\n                    <el-table-column width=\"100\" label=\"操作\">\n                      <template #default=\"scope\">\n                        <el-button style=\"padding: 0;\" type=\"text\" @click=\"handleDelete(scope.row.id)\">移除</el-button>\n                      </template>\n                    </el-table-column>\n                  </el-table>\n                </template>\n              </el-form-item>\n            </template>\n          </el-form>\n          <div class=\"btn\">\n            <el-button\n              type=\"primary\"\n              size=\"large\"\n              @click=\"submitForm(formRef)\"\n              v-loading=\"map.loading\"\n              :disabled=\"map.loading\"\n              >确认报名</el-button\n            >\n          </div>\n        </template>\n        <div v-else-if=\"opts.steps === 2\" class=\"success_box\">\n          <img src=\"@/assets/success_auth.svg\"/>\n          <div class=\"success_text\">恭喜你！报名成功</div>\n          <el-button class=\"success_btn\" plain size=\"large\" @click=\"goBack\">返回详情</el-button>\n        </div>\n      </div>\n    </div>\n  </NuxtLayout>\n</template>\n<script setup>\nimport { Plus, Warning } from '@element-plus/icons-vue'\nimport { useUserStore } from \"@/stores/user\";\nimport { getSession } from '@/utils/storage'\nimport { validCard } from '@/utils/validate.js'\nimport { ElMessage } from 'element-plus'\nimport {getSize} from '../../utils'\nimport { eventEnter, ratingEnter, relationList, entryCate, materialSave, materialPage, materialDel } from '@/api/event'\nimport { uploadDoc, uploadAuthPic, uploadGetVodConfig } from '@/api/upload'\n\nconst store = useUserStore()\nconst { userView, getUserView } = store\nconst userInfo = computed(()=>userView)\nuseHead({\n  title:'赛事报名'\n})\n\nonMounted(() => {\n  getUserView(true).then(res=>{\n    Object.assign(form, res)\n    const obj = {\n      provinceCode: res.province,\n      cityCode: res.city\n    }\n    opts.dataCode = obj\n    form.phone = res.eventPhone\n  })\n\n  form.eventId = route.query.id\n  form.proveId = route.query.proveId\n  form.categoryId = route.query.categoryId\n  form.userId = userInfo.value.id\n  form.areaName = getSession('areaName')\n  form.eventLevel = getSession('eventLevel')\n  map.type = route.query.type\n  getCategoryList()\n  getProvePage()\n  opts.overData = true\n  getMaterialPage()\n})\n\nconst router = useRouter()\nconst route = useRoute()\nconst form = reactive({\n  country: '中国',\n  province: '',\n  eventType: 1\n})\nconst formRef = ref('')\n\nconst map = reactive({\n  loading: false,\n  type: '',\n  affixList: [],\n  proveList: [],\n  fileInfo: {},\n  polyvClient: undefined,\n  mediaEnum: ['3gp', 'asf', 'avi', 'dat', 'flv', 'f4v', 'm4v', 'mkv', 'mov', 'mp4', 'mpe', 'mpg', 'mpeg', 'rmvb', 'vob', 'wmv', 'aac', 'wav', 'wma', 'mp3']\n})\n\nconst opts = reactive({\n  steps: 1,\n  isProve: false,\n  categoryList: [],\n  dataCode: {},\n  overData: false\n})\n\nconst rules = reactive({\n  realName: [{ required: true, message: '请输入真实姓名', trigger: 'blur' }],\n  categoryId: [{ required: true, message: '请选择比赛赛项', trigger: 'blur' }],\n  idCard: [{ required: true, message: '请输入身份证号', trigger: 'blur' }],\n  phone: [{ required: true, message: '请输入手机号', trigger: 'blur' }],\n  school: [{ required: true, message: '请输入学校', trigger: 'blur' }],\n  address: [{ required: true, message: '请填写地址', trigger: 'blur' }],\n  grade: [{ required: true, message: '请选择组别', trigger: 'blur' }],\n  teachNo: [{ required: true, message: '请输入教师继续教育号' ,trigger: 'blur' }],\n  province: [{ required: true, message: '请选择所在区域', trigger: 'blur' }],\n  tutorName: [{ required: true, message: '请输入指导老师真实姓名', trigger: 'blur' }],\n  tutorPhone: [{ required: true, message: '请输入指导老师手机号码', trigger: 'blur' }],\n  teachGrade: [{ required: true, message: '请输入任教年级', trigger: 'blur' }],\n  teachSubject: [{ required: true, message: '请输入任教学科', trigger: 'blur' }],\n  affixId: [{ required: true, message: '请上传课例文件', trigger: 'change' }],\n  proveFile: [{ required: true, message: '请上传证明文件', trigger: 'change' }]\n})\n\nfunction handleChange(file, fileList) {\n  if (fileList.length > 1) {\n    fileList.splice(0, 1);\n  }\n}\n\nfunction handleBeforeUpload(file) {\n  if (file.size === 0) {\n    ElMessage.error('不能上传大小为0kb的文件')\n    return false\n  }\n  let name = ''\n  const nameType = file.name.split('.')\n  const nameTypes = nameType[nameType.length - 1]\n    if (['3gp', 'asf', 'avi', 'dat', 'flv', 'f4v', 'm4v', 'mkv', 'mov', 'mp4', 'mpe', 'mpg', 'mpeg', 'rmvb', 'vob', 'wmv'].indexOf(nameTypes) > -1) {\n      name = 'video'\n    } else if (['aac', 'wav', 'wma', 'mp3'].indexOf(nameTypes) > -1) {\n      name = 'audio'\n    } else if (['png', 'jpg', 'jpeg'].indexOf(nameTypes) > -1) {\n      name = 'image'\n    } else if (['zip', 'rar'].indexOf(nameTypes) > -1) {\n      name = 'zip'\n    } else if (['pdf', 'doc', 'docx', 'xls', 'xlsx', 'txt', 'ppt', 'pptx'].indexOf(nameTypes) > -1) {\n      name = 'document'\n    }\n  switch (name) {\n    case 'video':\n      return beforeUploadVideo(name, nameTypes, file)\n    case 'audio':\n      return beforeUploadAudio(name, nameTypes, file)\n    case 'image':\n      return beforeUploadPic(name, nameTypes, file)\n    case 'document':\n      return beforeUploadDocument(name, nameTypes, file)\n    case 'zip':\n      return beforeUploadRar(name, nameTypes, file)\n    default:\n      ElMessage.error('上传文件格式不正确，请上传正确的文件')\n      return false\n  }\n}\nfunction upload(file) {\n  opts.isProve = false\n  awaitUpload(file.file)\n}\nfunction proveUpload(file) {\n  opts.isProve = true\n  awaitUpload(file.file)\n}\nfunction awaitUpload(_file) {\n  const type = _file.type.split('/')\n  const info = {\n    status: 'ready',\n    name: _file.name,\n    size: _file.size,\n    type: type[0],\n    uid: _file.uid,\n    progress: 0,\n    file: _file\n  }\n  let name = ''\n  const nameType = _file.name.split('.')\n  const nameTypes = nameType[nameType.length - 1]\n  if (_file.type) {\n    name = _file.type.split('/')[0]\n  } else {\n    if (['3gp', 'asf', 'avi', 'dat', 'flv', 'f4v', 'm4v', 'mkv', 'mov', 'mp4', 'mpe', 'mpg', 'mpeg', 'rmvb', 'vob', 'wmv'].indexOf(nameTypes) > -1) {\n      name = 'video'\n      _file.resourceType = 1\n    } else if (['aac', 'wav', 'wma', 'mp3'].indexOf(nameTypes) > -1) {\n      name = 'audio'\n      _file.resourceType = 2\n    } else if (['png', 'jpg', 'jpeg'].indexOf(nameTypes) > -1) {\n      name = 'image'\n      _file.resourceType = 4\n    } else if (['zip', 'rar'].indexOf(nameTypes) > -1) {\n      name = 'zip'\n      _file.resourceType = 5\n    } else if (['pdf', 'doc', 'docx', 'xls', 'xlsx', 'txt', 'ppt', 'pptx'].indexOf(nameTypes) > -1) {\n      name = 'document'\n      _file.resourceType = 3\n    }\n  }\n  map.fileInfo = info\n  console.log('fileInfo', map.fileInfo)\n  if (name === 'video' || name === 'audio') {\n    uploadDocument(map.fileInfo)\n  } else if (name === 'image') {\n    uploadImg(map.fileInfo)\n  } else if (name === 'zip') {\n    uploadZip(map.fileInfo)\n  }\n   else {\n    uploadDocument(map.fileInfo)\n  }\n}\n// 上传文档\nfunction uploadDocument(_file) {\n  const form = new FormData()\n  form.append('docFile', _file.file)\n  _file.status = 'uploading'\n  uploadDoc(form, (p) => {\n    console.log('p', p)\n    _file.progress = p\n  }).then(res => {\n    _file.status = 'success'\n    const _data = {\n      materialUrl: res.data.fileUrl,\n      materialName: _file.name,\n      pageCount: res.data.pageCount,\n      entConfigType: 1,\n      storagePlatform: res.data.storagePlatform,\n      materialType: 3,\n      ...res\n    }\n    saveFile(_data, _file);\n  }).catch(() => {\n    ElMessage.error('上传失败')\n    _file.status = 'saveFail'\n  })\n}\n// 上传压缩包\nfunction uploadZip(_file) {\n  const form = new FormData()\n  form.append('docFile', _file.file)\n  _file.status = 'uploading'\n  uploadDoc(form, (p) => {\n    console.log('p', p)\n    _file.progress = p\n  }).then(res => {\n    _file.status = 'success'\n    const _data = {\n      materialUrl: res.data.fileUrl,\n      materialName: _file.name,\n      pageCount: res.data.pageCount,\n      entConfigType: 1,\n      storagePlatform: res.data.storagePlatform,\n      materialType: 5,\n      ...res\n    }\n    saveFile(_data, _file);\n  }).catch(() => {\n    ElMessage.error('上传失败')\n    _file.status = 'saveFail'\n  })\n}\nfunction getWidthHeight(file) {\n  return new Promise((resolve) => {\n    var reader = new FileReader();\n    reader.readAsDataURL(file.file);\n    reader.onload = function() { // 让页面中的img标签的src指向读取的路径\n      var img = new Image()\n      img.src = reader.result\n      if (img.complete) { // 如果存在浏览器缓存中\n        file.width = img.width\n        file.height = img.height\n      } else {\n        img.onload = function() {\n          file.width = img.width\n          file.height = img.height\n          resolve(file)\n        }\n      }\n    }\n  })\n}\n// 上传图片\nfunction uploadImg(file, callback) {\n  getWidthHeight(file).then(_file => {\n  console.log('_file', _file)\n  const form = new FormData()\n  form.append('picFile', _file.file)\n  _file.status = 'uploading'\n  uploadAuthPic(form, (p) => {\n    _file.progress = p\n  }).then(res => {\n    _file.status = 'success'\n    const _data = {\n      materialUrl: res.data.fileUrl,\n      materialName: _file.name,\n      pageCount: res.data.pageCount,\n      width: _file.width,\n      height: _file.height,\n      materialType: 4,\n      storagePlatform: res.data.storagePlatform,\n      entConfigType: 1,\n      ...res\n    }\n    console.log(res, _data)\n    saveFile(_data, _file);\n  }).catch((err) => {\n    ElMessage.error('上传失败')\n    _file.status = 'fail'\n  })\n  })\n}\n// 上传视频\n\nfunction saveFile(data, fileInfo) {\n  // 保存文件\n  const info = {\n    materialUrl: data.materialUrl,\n    materialName: fileInfo.name,\n    vodPlatform: fileInfo.videoType,\n    materialType: data.materialType,\n    countPage: data.pageCount,\n    materialSize: fileInfo.size,\n    storagePlatform: data.storagePlatform,\n    categoryId: opts.isProve ? route.query.proveId : route.query.id\n  }\n  fileInfo.status = 'save'\n  materialSave(info).then(res => {\n    fileInfo.status = 'saveSuccess'\n    // form.coursewareId = res.data\n    ElMessage.success('上传成功')\n    // this.$emit('success', form)\n    console.log(res)\n    getMaterialPage()\n    getProvePage()\n  }).catch(() => {\n    fileInfo.status = 'saveFail'\n  })\n  // this.nextUpload()\n}\n\nfunction handleDelete(id) {\n  console.log('id', id)\n  materialDel(id).then((res) => {\n    if (res) {\n      ElMessage.success(res);\n      getMaterialPage();\n      getProvePage()\n    }\n  });\n}\nfunction getMaterialPage() {\n  const p = {\n    categoryId: route.query.id,\n    pageSize: 100\n  }\n  materialPage(p).then(res => {\n    console.log('res', res)\n    map.affixList = res.list\n    if (map.affixList.length) {\n      form.affixId = true\n    }\n  })\n}\n\nfunction getProvePage() {\n  const p = {\n    categoryId: form.proveId,\n    pageSize: 100\n  }\n  materialPage(p).then(res => {\n    map.proveList = res.list\n    if (map.proveList.length) {\n      form.proveFile = true\n    }\n  })\n}\n\nfunction beforeUploadPic(type, nameType, file) {\n  const isLt10M = file.size / 1024 / 1024 < 10;\n  if (['jpg', 'jpeg', 'png'].indexOf(nameType) === -1) {\n    ElMessage.error('上传图片只能是 jpg,jpeg,png 格式!')\n    return false\n  }\n  if (!isLt10M) {\n    ElMessage.error('上传图片不能超过10M！')\n    return false;\n  }\n}\nfunction beforeUploadVideo(type, nameType, file) {\n  const isLt10G = file.size / 1024 / 1024 / 1024 < 2;\n  if (['3gp', 'asf', 'avi', 'dat', 'flv', 'f4v', 'm4v', 'mkv', 'mov', 'mp4', 'mpe', 'mpg', 'mpeg', 'rmvb', 'vob', 'wmv'].indexOf(nameType) === -1) {\n    ElMessage.error('上传视频只能是 3GP、ASF、AVI、DAT、FLV、F4V、M4V、MKV、MOV、MP4、MPE、MPG、MPEG、RMVB、VOB、WMV 格式!')\n    return false\n  }\n  if (!isLt10G) {\n    ElMessage.error('上传视频不能超过2G！')\n    return false;\n  }\n}\nfunction beforeUploadAudio(type, nameType, file) {\n  const isLt1G = file.size / 1024 / 1024 / 1024 < 1;\n  if (['aac', 'wav', 'wma', 'mp3'].indexOf(nameType) === -1) {\n    ElMessage.error('上传音频只能是 aac、mp3、wav、wma 格式!')\n    return false\n  }\n  if (!isLt1G) {\n    ElMessage.error('上传音频不能超过1G！')\n    return false;\n  }\n}\nfunction beforeUploadDocument(type, nameTypes, file) {\n  if (['pdf', 'doc', 'docx', 'xls', 'xlsx', 'txt', 'ppt', 'pptx'].indexOf(nameTypes) > -1) {\n    const isLt1G = file.size / 1024 / 1024 / 1024 < 1;\n    if (!isLt1G) {\n      ElMessage.error('上传文档不能超过1G！')\n      return false;\n    }\n  } else {\n    ElMessage.error('上传格式不正确，不是文档格式')\n    return false;\n  }\n}\nfunction beforeUploadRar(type, nameTypes, file) {\n  if (['zip', 'rar'].indexOf(nameTypes) === -1) {\n    ElMessage.error('上传压缩包只能是 zip,rar 格式!')\n    return false\n  } else {\n    type = 'zip'\n  }\n  if (type === 'zip') {\n    const isLt2G = file.size / 1024 / 1024 / 1024 < 2;\n    if (!isLt2G) {\n      ElMessage.error('上传压缩包不能超过2G！')\n      return false;\n    }\n  } else {\n    ElMessage.error('上传格式不正确，不是zip、rar压缩包格式')\n    return false\n  }\n}\n\nfunction getCategoryList() {\n  entryCate(form.eventId).then(res => {\n    opts.categoryList = res\n  })\n}\n\nfunction provCallback(val) {\n  form.province = val.provinceCode\n  form.city = val.cityCode\n  form.area = val.areaCode\n}\n\nfunction submitForm(formEl) {\n  if (!formEl) return;\n  formEl.validate((valid) => {\n    if (valid) {\n      const ispass = validCard(form.idCard)\n      if(!ispass){\n        ElMessage.warning('请输入正确的身份证号码');\n        return\n      }\n      console.log('form', form)\n      if (!form.userId) {\n        form.userId = form.id\n      }\n      delete form.id\n      map.loading = true\n      if (map.type) {\n        form.affixIds = map.affixList.map(i => {\n          return i.id\n        })\n        form.proveAffixIds = map.proveList.map(i => {\n          return i.id\n        })\n        ratingEnter(form).then(res => {\n          ElMessage.success(res)\n          opts.steps = 2\n          document.querySelector('#app') && (document.querySelector('#app').scrollTop = 0)\n        }).finally(() => {\n          map.loading = false\n        })\n      } else {\n        eventEnter(form).then(res => {\n          ElMessage.success(res)\n          opts.steps = 2\n          document.querySelector('#app') && (document.querySelector('#app').scrollTop = 0)\n        }).finally(() => {\n          map.loading = false\n        })\n      }\n      // opts.steps++\n    }\n  })\n}\nfunction goBack() {\n  router.back()\n}\n</script>\n<style lang=\"scss\">\n.sub_icon {\n  vertical-align: sub;\n  margin-right: 5px;\n}\n.upload-btn{\n  display: inline-block;\n  // margin-left: 10px;\n  // margin-right: 10px;\n}\n.uploading_panel{\n  .el-progress-bar__outer, .el-progress-bar__inner{\n    border-radius: 3px;\n  }\n  .close-btn{\n    display: none;\n  }\n}\n.file_content .el-form-item__content {\n  flex-direction: column;\n  align-items: flex-start;\n}\n.el-cascader {\n   width: 100%;\n}\n.entry_page{\n  padding-top: 66px;\n}\n.entry_info {\n  text-align: center;\n  background-color: #fff;\n  margin: 20px 0;\n  padding: 40px;\n  padding-left: 140px;\n}\n.w680 {\n  width: 680px;\n}\n.success_box {\n  text-align: center;\n  img {\n    margin: 0 auto;\n  }\n  .success_text {\n    font-size: 22px;\n    color: #333;\n    margin: 30px 0;\n  }\n  .success_btn {\n    margin-top: 20px;\n    width: 468px;\n  }\n}\n</style>\n"],"names":["store","useUserStore","userView","getUserView","userInfo","computed","useHead","title","onMounted","then","res","Object","assign","form","obj","provinceCode","province","cityCode","city","opts","dataCode","phone","eventPhone","eventId","route","query","id","proveId","categoryId","userId","value","areaName","getSession","eventLevel","map","type","entryCate","categoryList","getProvePage","overData","getMaterialPage","router","useRouter","useRoute","reactive","country","eventType","formRef","ref","loading","affixList","proveList","fileInfo","polyvClient","mediaEnum","steps","isProve","rules","realName","required","message","trigger","idCard","school","address","grade","teachNo","tutorName","tutorPhone","teachGrade","teachSubject","affixId","proveFile","handleChange","file","fileList","length","splice","handleBeforeUpload","size","ElMessage","error","name","nameType","split","nameTypes","indexOf","isLt10G","beforeUploadVideo","isLt1G","beforeUploadAudio","isLt10M","beforeUploadPic","beforeUploadDocument","beforeUploadRar","upload","awaitUpload","proveUpload","_file","info","status","uid","progress","resourceType","uploadDocument","Promise","resolve","reader","FileReader","readAsDataURL","onload","img","Image","src","result","complete","width","height","getWidthHeight","FormData","append","p","saveFile","materialUrl","data","fileUrl","materialName","pageCount","materialType","storagePlatform","entConfigType","catch","err","uploadZip","vodPlatform","videoType","countPage","materialSize","materialSave","success","handleDelete","materialDel","pageSize","materialPage","list","provCallback","val","area","areaCode","goBack","back","formEl","validate","valid","validCard","warning","affixIds","i","proveAffixIds","ratingEnter","document","querySelector","scrollTop","finally","eventEnter"],"mappings":"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"}