1 line
14 KiB
JSON
1 line
14 KiB
JSON
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/babel-loader/lib/index.js!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js??ref--1-0!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/account/center/index.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/account/center/index.vue","mtime":1742646402775},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/babel.config.js","mtime":1742646402652},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/babel-loader/lib/index.js","mtime":1743264596348},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IFBhZ2VWaWV3IGZyb20gJy4uLy4uLy4uL2xheW91dHMvUGFnZVZpZXcudnVlJzsKaW1wb3J0IFJvdXRlVmlldyBmcm9tICcuLi8uLi8uLi9sYXlvdXRzL1JvdXRlVmlldy52dWUnOwppbXBvcnQgeyBBcHBQYWdlLCBBcnRpY2xlUGFnZSwgUHJvamVjdFBhZ2UgfSBmcm9tICcuL3BhZ2UnOwppbXBvcnQgeyBtYXBHZXR0ZXJzIH0gZnJvbSAndnVleCc7CmV4cG9ydCBkZWZhdWx0IHsKICBjb21wb25lbnRzOiB7CiAgICBSb3V0ZVZpZXcsCiAgICBQYWdlVmlldywKICAgIEFwcFBhZ2UsCiAgICBBcnRpY2xlUGFnZSwKICAgIFByb2plY3RQYWdlCiAgfSwKICBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgdXNlcmltZzogdGhpcy4kc3RvcmUuc3RhdGUuYXZhdGFyLAogICAgICB0YWdzOiBbJ+W+iOacieaDs+azleeahCcsICfkuJPms6jorr7orqEnLCAn56iL5bqP54y/J10sCiAgICAgIHRhZ0lucHV0VmlzaWJsZTogZmFsc2UsCiAgICAgIHRhZ0lucHV0VmFsdWU6ICcnLAogICAgICB0ZWFtczogW10sCiAgICAgIHRlYW1TcGlubmluZzogdHJ1ZSwKICAgICAgc2hlbmZlbjogJycsCiAgICAgIHRhYkxpc3ROb1RpdGxlOiBbewogICAgICAgIGtleTogJ2FydGljbGUnLAogICAgICAgIHRhYjogJ+aIkeeahOaWh+eroCcKICAgICAgfV0sCiAgICAgIG5vVGl0bGVLZXk6ICdhcHAnLAogICAgICAvLyDmr5TotZsKICAgICAgbWF0Y2hzOiBbXSwKICAgICAgY29sb3JzOiBbJ3JlZCcsICdncmVlbicsICdvcmFuZ2UnLCAncGluaycsICdjeWFuJ10KICAgIH07CiAgfSwKICBjb21wdXRlZDogewogICAgLi4ubWFwR2V0dGVycyhbJ25pY2tuYW1lJywgJ2F2YXRhciddKQogIH0sCiAgbW91bnRlZCgpIHsKICAgIGlmICh0aGlzLiRzdG9yZS5zdGF0ZS51c2VyLnVzZXJQcml2aWxlZ2VzID09IDApIHsKICAgICAgdGhpcy5zaGVuZmVuID0gIueuoeeQhuWRmCI7CiAgICB9IGVsc2UgaWYgKHRoaXMuJHN0b3JlLnN0YXRlLnVzZXIudXNlclByaXZpbGVnZXMgPT0gMSkgewogICAgICB0aGlzLnNoZW5mZW4gPSAi5pWZ5biIIjsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuc2hlbmZlbiA9ICLlrabnlJ8iOwogICAgfQogICAgdGhpcy5NeSgpOwogICAgdGhpcy5ub1RpdGxlS2V5ID0gJ2FydGljbGUnOyAvLyDlnKjpobXpnaLliqDovb3lrozmiJDlkI7nm7TmjqXliIfmjaLliLAgIuaIkeeahOaWh+eroCIg6YCJ6aG55Y2hCiAgfSwKICBtZXRob2RzOiB7CiAgICBNeSgpIHsKICAgICAgdGhpcy4kYXBpLlJlZ2lzdHJhdGlvbkFsbCgpLnRoZW4ocmVzID0+IHsKICAgICAgICB0aGlzLm1hdGNocyA9IHJlcy5kYXRhLmZpbHRlcihtYXRjaCA9PiB7CiAgICAgICAgICByZXR1cm4gbWF0Y2guc3R1ZGVudElkID09IHRoaXMuJHN0b3JlLnN0YXRlLnVzZXIudXNlcklkOwogICAgICAgIH0pOwogICAgICAgIHRoaXMudGVhbVNwaW5uaW5nID0gZmFsc2U7CiAgICAgIH0pOwogICAgfSwKICAgIGhhbmRsZVRhYkNoYW5nZShrZXksIHR5cGUpIHsKICAgICAgdGhpc1t0eXBlXSA9IGtleTsKICAgIH0sCiAgICBoYW5kbGVUYWdDbG9zZShyZW1vdmVUYWcpIHsKICAgICAgY29uc3QgdGFncyA9IHRoaXMudGFncy5maWx0ZXIodGFnID0+IHRhZyAhPT0gcmVtb3ZlVGFnKTsKICAgICAgdGhpcy50YWdzID0gdGFnczsKICAgIH0sCiAgICBzaG93VGFnSW5wdXQoKSB7CiAgICAgIHRoaXMudGFnSW5wdXRWaXNpYmxlID0gdHJ1ZTsKICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4gewogICAgICAgIHRoaXMuJHJlZnMudGFnSW5wdXQuZm9jdXMoKTsKICAgICAgfSk7CiAgICB9LAogICAgaGFuZGxlSW5wdXRDaGFuZ2UoZSkgewogICAgICB0aGlzLnRhZ0lucHV0VmFsdWUgPSBlLnRhcmdldC52YWx1ZTsKICAgIH0sCiAgICBoYW5kbGVUYWdJbnB1dENvbmZpcm0oKSB7CiAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSB0aGlzLnRhZ0lucHV0VmFsdWU7CiAgICAgIGxldCB0YWdzID0gdGhpcy50YWdzOwogICAgICBpZiAoaW5wdXRWYWx1ZSAmJiAhdGFncy5pbmNsdWRlcyhpbnB1dFZhbHVlKSkgewogICAgICAgIHRhZ3MgPSBbLi4udGFncywgaW5wdXRWYWx1ZV07CiAgICAgIH0KICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCB7CiAgICAgICAgdGFncywKICAgICAgICB0YWdJbnB1dFZpc2libGU6IGZhbHNlLAogICAgICAgIHRhZ0lucHV0VmFsdWU6ICcnCiAgICAgIH0pOwogICAgfQogIH0KfTs="},{"version":3,"names":["PageView","RouteView","AppPage","ArticlePage","ProjectPage","mapGetters","components","data","userimg","$store","state","avatar","tags","tagInputVisible","tagInputValue","teams","teamSpinning","shenfen","tabListNoTitle","key","tab","noTitleKey","matchs","colors","computed","mounted","user","userPrivileges","My","methods","$api","RegistrationAll","then","res","filter","match","studentId","userId","handleTabChange","type","handleTagClose","removeTag","tag","showTagInput","$nextTick","$refs","tagInput","focus","handleInputChange","e","target","value","handleTagInputConfirm","inputValue","includes","Object","assign"],"sources":["src/views/account/center/index.vue"],"sourcesContent":["<template>\n <div class=\"page-header-index-wide page-header-wrapper-grid-content-main\">\n <a-row :gutter=\"24\">\n <a-col :md=\"24\" :lg=\"7\">\n <a-card :bordered=\"false\">\n <div class=\"account-center-avatarHolder\">\n <div class=\"avatar\">\n <img :src=userimg>\n </div>\n <div class=\"username\">{{ $store.state.user.userName }}</div>\n <div class=\"bio\">身份:{{ shenfen }}</div>\n </div>\n <a-divider/>\n <div class=\"account-center-tags\">\n <div class=\"tagsTitle\">标签</div>\n <div>\n <template v-for=\"(tag, index) in tags\">\n <a-tooltip v-if=\"tag.length > 20\" :key=\"tag\" :title=\"tag\">\n <a-tag\n :key=\"tag\"\n :closable=\"index !== 0\"\n :close=\"() => handleTagClose(tag)\"\n >{{ `${tag.slice(0, 20)}...` }}</a-tag>\n </a-tooltip>\n <a-tag\n v-else\n :key=\"tag\"\n :closable=\"index !== 0\"\n :close=\"() => handleTagClose(tag)\"\n >{{ tag }}</a-tag>\n </template>\n <a-input\n v-if=\"tagInputVisible\"\n ref=\"tagInput\"\n type=\"text\"\n size=\"small\"\n :style=\"{ width: '78px' }\"\n :value=\"tagInputValue\"\n @change=\"handleInputChange\"\n @blur=\"handleTagInputConfirm\"\n @keyup.enter=\"handleTagInputConfirm\"\n />\n <a-tag v-else @click=\"showTagInput\" style=\"background: #fff; borderStyle: dashed;\">\n <a-icon type=\"plus\"/>New Tag\n </a-tag>\n </div>\n </div>\n <a-divider :dashed=\"true\"/>\n\n <div class=\"account-center-team\">\n <div class=\"teamTitle\">我的比赛</div>\n <a-spin :spinning=\"teamSpinning\" v-for=\"(item, index) in matchs\" :key=\"index\">\n <div class=\"members\">\n <a-row>\n <a-col>\n <a-tag :color=\"colors[index]\" style=\"margin: 5px;\">\n 竞赛名称:{{ item.competitionName }} {{ item.competitionType }}\n </a-tag>\n\t\t\t\t\t\t\t\t\t\t<a-tag :color=\"colors[index]\" style=\"margin: 5px;\">\n 类型: {{ item.competitionType }}\n </a-tag> \n </a-col>\n </a-row>\n </div>\n </a-spin>\n </div>\n </a-card>\n </a-col>\n <a-col :md=\"24\" :lg=\"17\">\n <a-card\n style=\"width:100%\"\n :bordered=\"false\"\n :tabList=\"tabListNoTitle\"\n :activeTabKey=\"noTitleKey\"\n @tabChange=\"key => handleTabChange(key, 'noTitleKey')\"\n >\n <article-page v-if=\"noTitleKey === 'article'\"></article-page>\n </a-card>\n </a-col>\n </a-row>\n </div>\n</template>\n\n<script>\nimport PageView from '../../../layouts/PageView.vue'\nimport RouteView from '../../../layouts/RouteView.vue'\nimport { AppPage, ArticlePage, ProjectPage } from './page'\nimport { mapGetters } from 'vuex'\n\nexport default {\n components: {\n RouteView,\n PageView,\n AppPage,\n ArticlePage,\n ProjectPage\n },\n data () {\n return {\n\t\t\tuserimg:this.$store.state.avatar,\n tags: ['很有想法的', '专注设计', '程序猿'],\n tagInputVisible: false,\n tagInputValue: '',\n teams: [],\n teamSpinning: true,\n\t\t\tshenfen:'',\n tabListNoTitle: [\n {\n key: 'article',\n tab: '我的文章'\n },\n ],\n noTitleKey: 'app',\n\t\t\t// 比赛\n\t\t\tmatchs:[],\n\t\t\tcolors:['red','green','orange','pink','cyan']\n }\n },\n computed: {\n ...mapGetters(['nickname', 'avatar'])\n },\n\tmounted () {\n if (this.$store.state.user.userPrivileges == 0) {\n this.shenfen = \"管理员\"\n } else if (this.$store.state.user.userPrivileges == 1) {\n this.shenfen = \"教师\"\n } else {\n this.shenfen = \"学生\"\n }\n this.My()\n this.noTitleKey = 'article'; // 在页面加载完成后直接切换到 \"我的文章\" 选项卡\n},\n methods: {\n\t\tMy(){\n\t\t\tthis.$api.RegistrationAll().then(res=>{\n\t\t\t\tthis.matchs=res.data.filter(match=>{\n\t\t\t\t\treturn match.studentId==this.$store.state.user.userId;\n\t\t\t\t})\n\t\t\t\tthis.teamSpinning=false;\n\t\t\t})\n\t\t},\n\n handleTabChange (key, type) {\n this[type] = key\n },\n\n handleTagClose (removeTag) {\n const tags = this.tags.filter(tag => tag !== removeTag)\n this.tags = tags\n },\n\n showTagInput () {\n this.tagInputVisible = true\n this.$nextTick(() => {\n this.$refs.tagInput.focus()\n })\n },\n\n handleInputChange (e) {\n this.tagInputValue = e.target.value\n },\n\n handleTagInputConfirm () {\n const inputValue = this.tagInputValue\n let tags = this.tags\n if (inputValue && !tags.includes(inputValue)) {\n tags = [...tags, inputValue]\n }\n\n Object.assign(this, {\n tags,\n tagInputVisible: false,\n tagInputValue: ''\n })\n }\n }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.page-header-wrapper-grid-content-main {\n width: 100%;\n height: 100%;\n min-height: 100%;\n transition: 0.3s;\n\n .account-center-avatarHolder {\n text-align: center;\n margin-bottom: 24px;\n\n & > .avatar {\n margin: 0 auto;\n width: 104px;\n height: 104px;\n margin-bottom: 20px;\n border-radius: 50%;\n overflow: hidden;\n img {\n height: 100%;\n width: 100%;\n }\n }\n\n .username {\n color: rgba(0, 0, 0, 0.85);\n font-size: 20px;\n line-height: 28px;\n font-weight: 500;\n margin-bottom: 4px;\n }\n }\n\n .account-center-detail {\n p {\n margin-bottom: 8px;\n padding-left: 26px;\n position: relative;\n }\n\n i {\n position: absolute;\n height: 14px;\n width: 14px;\n left: 0;\n top: 4px;\n background: url(https://gw.alipayobjects.com/zos/rmsportal/pBjWzVAHnOOtAUvZmZfy.svg);\n }\n\n .title {\n background-position: 0 0;\n }\n .group {\n background-position: 0 -22px;\n }\n .address {\n background-position: 0 -44px;\n }\n }\n\n .account-center-tags {\n .ant-tag {\n margin-bottom: 8px;\n }\n }\n\n .account-center-team {\n .members {\n a {\n display: block;\n margin: 12px 0;\n line-height: 24px;\n height: 24px;\n .member {\n font-size: 14px;\n color: rgba(0, 0, 0, 0.65);\n line-height: 24px;\n max-width: 100px;\n vertical-align: top;\n margin-left: 12px;\n transition: all 0.3s;\n display: inline-block;\n }\n &:hover {\n span {\n color: #1890ff;\n }\n }\n }\n }\n }\n\n .tagsTitle,\n .teamTitle {\n font-weight: 500;\n color: rgba(0, 0, 0, 0.85);\n margin-bottom: 12px;\n }\n}\n</style>\n"],"mappings":"AAoFA,OAAAA,QAAA;AACA,OAAAC,SAAA;AACA,SAAAC,OAAA,EAAAC,WAAA,EAAAC,WAAA;AACA,SAAAC,UAAA;AAEA;EACAC,UAAA;IACAL,SAAA;IACAD,QAAA;IACAE,OAAA;IACAC,WAAA;IACAC;EACA;EACAG,KAAA;IACA;MACAC,OAAA,OAAAC,MAAA,CAAAC,KAAA,CAAAC,MAAA;MACAC,IAAA;MACAC,eAAA;MACAC,aAAA;MACAC,KAAA;MACAC,YAAA;MACAC,OAAA;MACAC,cAAA,GACA;QACAC,GAAA;QACAC,GAAA;MACA,EACA;MACAC,UAAA;MACA;MACAC,MAAA;MACAC,MAAA;IACA;EACA;EACAC,QAAA;IACA,GAAAnB,UAAA;EACA;EACAoB,QAAA;IACA,SAAAhB,MAAA,CAAAC,KAAA,CAAAgB,IAAA,CAAAC,cAAA;MACA,KAAAV,OAAA;IACA,gBAAAR,MAAA,CAAAC,KAAA,CAAAgB,IAAA,CAAAC,cAAA;MACA,KAAAV,OAAA;IACA;MACA,KAAAA,OAAA;IACA;IACA,KAAAW,EAAA;IACA,KAAAP,UAAA;EACA;EACAQ,OAAA;IACAD,GAAA;MACA,KAAAE,IAAA,CAAAC,eAAA,GAAAC,IAAA,CAAAC,GAAA;QACA,KAAAX,MAAA,GAAAW,GAAA,CAAA1B,IAAA,CAAA2B,MAAA,CAAAC,KAAA;UACA,OAAAA,KAAA,CAAAC,SAAA,SAAA3B,MAAA,CAAAC,KAAA,CAAAgB,IAAA,CAAAW,MAAA;QACA;QACA,KAAArB,YAAA;MACA;IACA;IAEAsB,gBAAAnB,GAAA,EAAAoB,IAAA;MACA,KAAAA,IAAA,IAAApB,GAAA;IACA;IAEAqB,eAAAC,SAAA;MACA,MAAA7B,IAAA,QAAAA,IAAA,CAAAsB,MAAA,CAAAQ,GAAA,IAAAA,GAAA,KAAAD,SAAA;MACA,KAAA7B,IAAA,GAAAA,IAAA;IACA;IAEA+B,aAAA;MACA,KAAA9B,eAAA;MACA,KAAA+B,SAAA;QACA,KAAAC,KAAA,CAAAC,QAAA,CAAAC,KAAA;MACA;IACA;IAEAC,kBAAAC,CAAA;MACA,KAAAnC,aAAA,GAAAmC,CAAA,CAAAC,MAAA,CAAAC,KAAA;IACA;IAEAC,sBAAA;MACA,MAAAC,UAAA,QAAAvC,aAAA;MACA,IAAAF,IAAA,QAAAA,IAAA;MACA,IAAAyC,UAAA,KAAAzC,IAAA,CAAA0C,QAAA,CAAAD,UAAA;QACAzC,IAAA,OAAAA,IAAA,EAAAyC,UAAA;MACA;MAEAE,MAAA,CAAAC,MAAA;QACA5C,IAAA;QACAC,eAAA;QACAC,aAAA;MACA;IACA;EACA;AACA","ignoreList":[]}]} |