CodeMaster/node_modules/.cache/vue-loader/5977e6dd9c461d2cc3d1fa11040f1588.json
2025-04-02 21:57:33 +08:00

1 line
16 KiB
JSON

{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/race/Down.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/race/Down.vue","mtime":1742646402777},{"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:CmltcG9ydCB7IHJhY2VMZXZlbE1hcCwgcmFjZUxldmVscyB9IGZyb20gJ0AvdXRpbHMvY29uc3QnOwppbXBvcnQgeyBleHBvcnREYXRhIH0gZnJvbSAnQC91dGlscy9leGNlbCc7CmltcG9ydCBVcGxvYWRGaWxlIGZyb20gJ0AvY29tcG9uZW50cy9lZGl0L1VwbG9hZEZpbGUnOwppbXBvcnQgQWRkUmVjb3JkIGZyb20gJ0AvY29tcG9uZW50cy9yZWNvcmQvQWRkUmVjb3JkJzsKCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnRG93bicsCiAgbWV0YUluZm86IHsKICAgIHRpdGxlOiAn6LWE5paZ5LiL6L29JywKICB9LAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBzZWxlY3RlZEtleXM6IFtdLAogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgZXhwb3J0aW5nOiBmYWxzZSwKICAgICAgcmFjZXM6IFtdLAogICAgICBjdXJyZW50OiAxLAogICAgICBwYWdlU2l6ZTogMTAsCiAgICAgIHRvdGFsOiAwLAogICAgICB0YWJsZUNvbHVtbnM6IGNyZWF0ZVRhYmxlQ29sdW1ucy5jYWxsKHRoaXMpLAogICAgICBzZWFyY2hPcHRpb25zOiBjcmVhdGVTZWFyY2hPcHRpb25zLmNhbGwodGhpcyksCiAgICB9OwogIH0sCiAgY29tcHV0ZWQ6IHsKICAgIHBhZ2luYXRpb24oKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAgY3VycmVudDogdGhpcy5jdXJyZW50LAogICAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLAogICAgICAgIHRvdGFsOiB0aGlzLnRvdGFsLAogICAgICB9OwogICAgfSwKICAgIGlzU3R1ZGVudCgpIHsKICAgICAgcmV0dXJuIHRoaXMuJHN0b3JlLnN0YXRlLnVzZXIuaWRlbnRpdHkgPT09ICdzdHVkZW50JyB8fCBmYWxzZTsKICAgIH0sCiAgfSwKICBtb3VudGVkKCkgewogICAgdGhpcy4kd2F0Y2goKCkgPT4gW3RoaXMucGFnZVNpemUsIHRoaXMuY3VycmVudF0sIHRoaXMuZ2V0RGF0YSwgeyBpbW1lZGlhdGU6IHRydWUgfSk7CiAgfSwKICBtZXRob2RzOiB7CiAgICBjaGFuZ2VQYWdlKHsgcGFnZVNpemUsIGN1cnJlbnQgfSkgewogICAgICBPYmplY3QuYXNzaWduKHRoaXMsIHsgcGFnZVNpemUsIGN1cnJlbnQgfSk7CiAgICB9LAogICAgc2VhcmNoKCkgewogICAgICB0aGlzLmN1cnJlbnQgPSAxOwogICAgICB0aGlzLmdldERhdGEoKTsKICAgIH0sCiAgICBnZXREYXRhKCkgewogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICB0aGlzLiRhcGkuQWxsaW5mb3JtYXRpb24oewogICAgICB9KS50aGVuKGRhdGEgPT4gewogICAgICAgIHRoaXMucmFjZXMgPSBkYXRhLmRhdGE7CiAgICAgICAgdGhpcy50b3RhbCA9IGRhdGEuZGF0YS5sZW5ndGg7CiAgICAgIH0pLmNhdGNoKGUgPT4gewogICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7CiAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihlLm1zZyB8fCAn6I635Y+W5pWw5o2u5aSx6LSlJyk7CiAgICAgIH0pLmZpbmFsbHkoKCkgPT4gewogICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICB9KTsKICAgIH0sCiAgICBhZGRSYWNlKCkgewogICAgICBsZXQgdm5vZGU7CiAgICAgIHRoaXMuJGNvbmZpcm0oewogICAgICAgIHRpdGxlOiAn5LiK5Lyg6LWE5paZJywKICAgICAgICBjb250ZW50OiBoID0+ICh2bm9kZSA9IDxVcGxvYWRGaWxlIC8+KSwKICAgICAgICBvbk9rOiBhc3luYyAoKSA9PiB7CiAgICAgICAgICBjb25zdCB2YWx1ZXMgPSBhd2FpdCB2bm9kZS5jb21wb25lbnRJbnN0YW5jZS52YWxpZGF0ZSgpOwoJCQkJCWxldCBkYXRhPXsKCQkJCQkJdXNlcklkOnRoaXMuJHN0b3JlLnN0YXRlLnVzZXIudXNlcklkLAoJCQkJCQljb21wZXRpdGlvbklkOnZhbHVlcy5jb21wZXRpdGlvbklkLAoJCQkJCQlyZWxhdGVkRGF0YTp2YWx1ZXMucmVsYXRlZERhdGEsCgkJCQkJCWZpbGU6dmFsdWVzLmZpbGUuZmlsZQoJCQkJCX0KCQkJCQljb25zb2xlLmxvZyhkYXRhKQogICAgICAgICAgcmV0dXJuIHRoaXMuJGFwaS51cGxvYWRPbmVGaWxlKGRhdGEpLnRoZW4oZGF0YSA9PiB7CgkJCQkJCWlmKGRhdGEuY29kZT09MjAwKXsKCQkJCQkJdGhpcy4kbWVzc2FnZS5zdWNjZXNzKCLmt7vliqDmiJDlip8iKTsKICAgICAgICAgICAgdGhpcy5nZXREYXRhKCk7CgkJCQkJCX0KICAgICAgICAgIH0pLmNhdGNoKGUgPT4gewoJCQkJCQljb25zb2xlLmxvZyhlKQogICAgICAgICAgICB0aHJvdyBlOwogICAgICAgICAgfSk7CiAgICAgICAgfSwKICAgICAgfSk7CiAgICB9LAoJCURvd25sb2FkKHJhY2UpIHsKCQkJdGhpcy4kY29uZmlybSh7CiAgdGl0bGU6ICfljbPlsIbliY3lvoDor6XnvZHnq5nkuIvovb3otYTmlpknLAogIGNvbnRlbnQ6IGDmgqjnoa7lrpropoHliY3lvoAgJHtyYWNlLnBlcnNvbmFsSW5mb30g5LiL6L296LWE5paZ5ZCX77yfYCwKICBvbk9rOiAoKSA9PiB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHJhY2UucGVyc29uYWxJbmZvLAogIG9uQ2FuY2VsOiAoKSA9PiB7CiAgICAvLyDlj5bmtojmk43kvZwKICB9Cn0pOwoKfSwKICAgIGJhdGNoRGVsZXRlKCkgewogICAgICB0aGlzLiRtb2RhbC5jb25maXJtKHsKICAgICAgICB0aXRsZTogYOehruiupOWIoOmZpOmAieS4reeahCR7dGhpcy5zZWxlY3RlZEtleXMubGVuZ3RofemhueaVsOaNrj9gLAogICAgICAgIG9uT2s6ICgpID0+IHsKCQkJCQlsZXQgZGF0YT17CgkJCQkJCWxpc3Q6dGhpcy5zZWxlY3RlZEtleXMubWFwKGluZGV4ID0+IHRoaXMudXNlcnNbaW5kZXhdLnVzZXJJZCkKCQkJCQl9CgkJCQkJdGhpcy4kYXBpLmRlbGV0ZUxpc3QoZGF0YSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygn5Yig6Zmk5oiQ5YqfIScpOwogICAgICAgICAgICB0aGlzLnNlbGVjdGVkS2V5cy5zcGxpY2UoMCk7CiAgICAgICAgICAgIHRoaXMuZ2V0RGF0YSgpOwogICAgICAgICAgfSkuY2F0Y2goZSA9PiB7CiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoZS5tc2cgfHwgJ+WIoOmZpOWksei0pSEnKTsKICAgICAgICAgICAgdGhyb3cgZTsKICAgICAgICAgIH0pCgoJCQkJfQoJCQkJCgkJCQkKICAgICAgfSk7CiAgICB9LAogICAgZXhwb3J0QWxsKCkgewogICAgICB0aGlzLmV4cG9ydGluZyA9IHRydWU7CiAgICAgIHRoaXMuJGFwaS5nZXRSYWNlTGlzdCh0aGlzLnF1ZXJ5KS50aGVuKGRhdGEgPT4gewogICAgICAgIHJldHVybiBleHBvcnRFeGNlbChkYXRhLmRhdGEpOwogICAgICB9KS5jYXRjaChlID0+IHsKICAgICAgICBjb25zb2xlLmVycm9yKGUpOwogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoZS5tc2cgfHwgJ+WvvOWHuuWksei0pScpOwogICAgICB9KS5maW5hbGx5KCgpID0+IHsKICAgICAgICB0aGlzLmV4cG9ydGluZyA9IGZhbHNlOwogICAgICB9KTsKICAgIH0sCiAgfSwKfTsKCmZ1bmN0aW9uIGNyZWF0ZVRhYmxlQ29sdW1ucygpIHsKICByZXR1cm4gWwogICAgeyB0aXRsZTogJ+i1m+S6i+WQjeensCcsIGRhdGFJbmRleDogJ2NvbXBldGl0aW9uTmFtZScgLCBhbGlnbjogJ2NlbnRlcid9LAoJCXsgdGl0bGU6ICfkuIrkvKDkuronLCBkYXRhSW5kZXg6ICd1c2VyTmFtZScsIGN1c3RvbVJlbmRlcjogKHRleHQpID0+IHRleHQgfHwgJ+euoeeQhuWRmCcsIGFsaWduOiAnY2VudGVyJyB9LAogICAgeyB0aXRsZTogJ+WcsOWdgCcsIGRhdGFJbmRleDogJ3BlcnNvbmFsSW5mbycsIGFsaWduOiAnY2VudGVyJyB9LAogICAgeyB0aXRsZTogJ+aPj+i/sCcsIGRhdGFJbmRleDogJ3JlbGF0ZWREYXRhJyAsIGFsaWduOiAnY2VudGVyJ30sCiAgICB7CiAgICAgIHRpdGxlOiAn5pON5L2cJywKICAgICAgYWxpZ246ICdjZW50ZXInLAogICAgICBzY29wZWRTbG90czogewogICAgICAgIGN1c3RvbVJlbmRlcjogJ2FjdGlvbicsCiAgICAgIH0sCiAgICB9LAogIF07Cn0KCmZ1bmN0aW9uIGV4cG9ydEV4Y2VsKGRhdGEpIHsKICBjb25zdCBoZWFkZXIgPSBjcmVhdGVUYWJsZUNvbHVtbnMoKS5tYXAodiA9PiB2LnRpdGxlKTsKICBoZWFkZXIucG9wKCk7IC8vIOWOu+aOieacgOWQjuS4gOagj+aTjeS9nOagjwogIHJldHVybiBleHBvcnREYXRhKHsKICAgIG5hbWU6ICfotZvkuovkv6Hmga8nLAogICAgZGF0YSwKICAgIGhlYWRlciwKICAgIGtleU1hcDogewogICAgICBjb21wZXRpdGlvbk5hbWU6ICfotZvkuovlkI3np7AnLAogICAgICAvLyBsZXZlbDogWyfnuqfliKsnLCBsZXZlbCA9PiByYWNlTGV2ZWxNYXBbbGV2ZWxdXSwKICAgICAgLy8gc3BvbnNvcjogJ+S4u+WKnuaWuScsCiAgICAgIC8vIHR5cGU6ICfnsbvliKsnLAogICAgICByZWxhdGVkRGF0YTogJ+aPj+i/sCcsCiAgICAgIHVzZXJOYW1lOiAn5LiK5Lyg5Lq6JywKICAgICAgLy8gZGF0ZTogJ+S4vuWKnuaXtumXtCcsCiAgICAgIHBlcnNvbmFsSW5mbzogJ+WtmOaUvuWcsOWdgCcsCiAgICAgIC8vIHVwZGF0ZV90aW1lOiAn5L+u5pS55pe26Ze0JywKICAgIH0sCiAgfSk7Cn0KCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9wdGlvbnMoKSB7CiAgcmV0dXJuIFsKICAgIHsKICAgICAgbGFiZWw6ICfotZvkuovlkI3np7AnLAogICAgICBrZXk6ICdjb21wZXRpdGlvbk5hbWUnLAogICAgICBkZWZhdWx0OiAnJywKICAgICAgY29tcG9uZW50OiAnaW5wdXQnLAogICAgfSwKICAgIC8vIHsKICAgIC8vICAgbGFiZWw6ICfkuLvlip7mlrknLAogICAgLy8gICBrZXk6ICdzcG9uc29yJywKICAgIC8vICAgZGVmYXVsdDogJycsCiAgICAvLyAgIGNvbXBvbmVudDogJ2lucHV0JywKICAgIC8vIH0sCiAgICAvLyB7CiAgICAvLyAgIGxhYmVsOiAn5Zyw54K5JywKICAgIC8vICAga2V5OiAnbG9jYXRpb24nLAogICAgLy8gICBkZWZhdWx0OiAnJywKICAgIC8vICAgY29tcG9uZW50OiAnaW5wdXQnLAogICAgLy8gfSwKICAgIC8vIHsKICAgIC8vICAgbGFiZWw6ICfnsbvliKsnLAogICAgLy8gICBrZXk6ICd0eXBlJywKICAgIC8vICAgZGVmYXVsdDogdW5kZWZpbmVkLAogICAgLy8gICBjb21wb25lbnQ6ICdzZWxlY3QnLAogICAgLy8gICBwcm9wczogewogICAgLy8gICAgIG9wdGlvbnM6IFsnQScsICdCJywgJ0MnLCAnRCcsICdFJywgJ0YnXS5tYXAoa2V5ID0+ICh7CiAgICAvLyAgICAgICBsYWJlbDoga2V5LAogICAgLy8gICAgICAgdmFsdWU6IGtleSwKICAgIC8vICAgICB9KSksCiAgICAvLyAgIH0sCiAgICAvLyB9LAogICAgLy8gewogICAgLy8gICBsYWJlbDogJ+e6p+WIqycsCiAgICAvLyAgIGtleTogJ2xldmVsJywKICAgIC8vICAgZGVmYXVsdDogdW5kZWZpbmVkLAogICAgLy8gICBjb21wb25lbnQ6ICdzZWxlY3QnLAogICAgLy8gICBwcm9wczogewogICAgLy8gICAgIG9wdGlvbnM6IHJhY2VMZXZlbHMsCiAgICAvLyAgIH0sCiAgICAvLyB9LAogICAgLy8gewogICAgLy8gICBsYWJlbDogJ+S4vuWKnuaXtumXtCcsCiAgICAvLyAgIGtleTogJ2RhdGUnLAogICAgLy8gICBkZWZhdWx0OiAoKSA9PiBbXSwKICAgIC8vICAgbWFwcGVyOiAoeyBkYXRlIH0pID0+IGRhdGUuam9pbignficpLAogICAgLy8gICBjb21wb25lbnQ6ICdyYW5nZS1waWNrZXInLAogICAgLy8gfSwKICBdOwp9Cg=="},{"version":3,"sources":["Down.vue"],"names":[],"mappings":";AA2DA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"Down.vue","sourceRoot":"src/views/race","sourcesContent":["<template>\n <div>\n <SearchForm\n ref=\"searchForm\"\n :loading=\"loading\"\n :options=\"searchOptions\"\n @search=\"search\"\n @reset=\"search\"\n />\n <!--信息列表-->\n <AntTable\n v-model=\"selectedKeys\"\n row-key=\"race_id\"\n :loading=\"loading\"\n :data-source=\"races\"\n :pagination=\"pagination\"\n :columns=\"tableColumns\"\n @change=\"changePage\"\n >\n <template #header>\n <a-button-group>\n <a-button type=\"primary\" @click=\"addRace\">\n 上传资料\n </a-button>\n <a-button\n :disabled=\"!selectedKeys.length\"\n @click=\"batchDelete\"\n >\n 批量删除 ({{ selectedKeys.length }})\n </a-button>\n \n </a-button-group>\n </template>\n <template #action=\"record\">\n <a-space>\n <!--编辑-->\n <a @click=\"Download(record)\">\n <!-- <a-icon type=\"edit\" /> -->\n\t\t\t\t\t\t下载\n </a>\n <!--删除-->\n <a-popconfirm\n title=\"确认删除?\"\n placement=\"left\"\n @confirm=\"deleteRace(record)\"\n\t\t\t\t\t\tv-if=\"$store.state.user.userPrivileges!=2\"\n >\n <template #icon>\n <a-icon type=\"question-circle-o\" style=\"color: orange\" />\n </template>\n <a>删除</a>\n </a-popconfirm>\n </a-space>\n </template>\n </AntTable>\n </div>\n</template>\n\n<script>\nimport { raceLevelMap, raceLevels } from '@/utils/const';\nimport { exportData } from '@/utils/excel';\nimport UploadFile from '@/components/edit/UploadFile';\nimport AddRecord from '@/components/record/AddRecord';\n\nexport default {\n name: 'Down',\n metaInfo: {\n title: '资料下载',\n },\n data() {\n return {\n selectedKeys: [],\n loading: false,\n exporting: false,\n races: [],\n current: 1,\n pageSize: 10,\n total: 0,\n tableColumns: createTableColumns.call(this),\n searchOptions: createSearchOptions.call(this),\n };\n },\n computed: {\n pagination() {\n return {\n current: this.current,\n pageSize: this.pageSize,\n total: this.total,\n };\n },\n isStudent() {\n return this.$store.state.user.identity === 'student' || false;\n },\n },\n mounted() {\n this.$watch(() => [this.pageSize, this.current], this.getData, { immediate: true });\n },\n methods: {\n changePage({ pageSize, current }) {\n Object.assign(this, { pageSize, current });\n },\n search() {\n this.current = 1;\n this.getData();\n },\n getData() {\n this.loading = true;\n this.$api.Allinformation({\n }).then(data => {\n this.races = data.data;\n this.total = data.data.length;\n }).catch(e => {\n console.error(e);\n this.$message.error(e.msg || '获取数据失败');\n }).finally(() => {\n this.loading = false;\n });\n },\n addRace() {\n let vnode;\n this.$confirm({\n title: '上传资料',\n content: h => (vnode = <UploadFile />),\n onOk: async () => {\n const values = await vnode.componentInstance.validate();\n\t\t\t\t\tlet data={\n\t\t\t\t\t\tuserId:this.$store.state.user.userId,\n\t\t\t\t\t\tcompetitionId:values.competitionId,\n\t\t\t\t\t\trelatedData:values.relatedData,\n\t\t\t\t\t\tfile:values.file.file\n\t\t\t\t\t}\n\t\t\t\t\tconsole.log(data)\n return this.$api.uploadOneFile(data).then(data => {\n\t\t\t\t\t\tif(data.code==200){\n\t\t\t\t\t\tthis.$message.success(\"添加成功\");\n this.getData();\n\t\t\t\t\t\t}\n }).catch(e => {\n\t\t\t\t\t\tconsole.log(e)\n throw e;\n });\n },\n });\n },\n\t\tDownload(race) {\n\t\t\tthis.$confirm({\n title: '即将前往该网站下载资料',\n content: `您确定要前往 ${race.personalInfo} 下载资料吗?`,\n onOk: () => window.location.href = race.personalInfo,\n onCancel: () => {\n // 取消操作\n }\n});\n\n},\n batchDelete() {\n this.$modal.confirm({\n title: `确认删除选中的${this.selectedKeys.length}项数据?`,\n onOk: () => {\n\t\t\t\t\tlet data={\n\t\t\t\t\t\tlist:this.selectedKeys.map(index => this.users[index].userId)\n\t\t\t\t\t}\n\t\t\t\t\tthis.$api.deleteList(data).then(() => {\n this.$message.success('删除成功!');\n this.selectedKeys.splice(0);\n this.getData();\n }).catch(e => {\n this.$message.error(e.msg || '删除失败!');\n throw e;\n })\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n });\n },\n exportAll() {\n this.exporting = true;\n this.$api.getRaceList(this.query).then(data => {\n return exportExcel(data.data);\n }).catch(e => {\n console.error(e);\n this.$message.error(e.msg || '导出失败');\n }).finally(() => {\n this.exporting = false;\n });\n },\n },\n};\n\nfunction createTableColumns() {\n return [\n { title: '赛事名称', dataIndex: 'competitionName' , align: 'center'},\n\t\t{ title: '上传人', dataIndex: 'userName', customRender: (text) => text || '管理员', align: 'center' },\n { title: '地址', dataIndex: 'personalInfo', align: 'center' },\n { title: '描述', dataIndex: 'relatedData' , align: 'center'},\n {\n title: '操作',\n align: 'center',\n scopedSlots: {\n customRender: 'action',\n },\n },\n ];\n}\n\nfunction exportExcel(data) {\n const header = createTableColumns().map(v => v.title);\n header.pop(); // 去掉最后一栏操作栏\n return exportData({\n name: '赛事信息',\n data,\n header,\n keyMap: {\n competitionName: '赛事名称',\n // level: ['级别', level => raceLevelMap[level]],\n // sponsor: '主办方',\n // type: '类别',\n relatedData: '描述',\n userName: '上传人',\n // date: '举办时间',\n personalInfo: '存放地址',\n // update_time: '修改时间',\n },\n });\n}\n\nfunction createSearchOptions() {\n return [\n {\n label: '赛事名称',\n key: 'competitionName',\n default: '',\n component: 'input',\n },\n // {\n // label: '主办方',\n // key: 'sponsor',\n // default: '',\n // component: 'input',\n // },\n // {\n // label: '地点',\n // key: 'location',\n // default: '',\n // component: 'input',\n // },\n // {\n // label: '类别',\n // key: 'type',\n // default: undefined,\n // component: 'select',\n // props: {\n // options: ['A', 'B', 'C', 'D', 'E', 'F'].map(key => ({\n // label: key,\n // value: key,\n // })),\n // },\n // },\n // {\n // label: '级别',\n // key: 'level',\n // default: undefined,\n // component: 'select',\n // props: {\n // options: raceLevels,\n // },\n // },\n // {\n // label: '举办时间',\n // key: 'date',\n // default: () => [],\n // mapper: ({ date }) => date.join('~'),\n // component: 'range-picker',\n // },\n ];\n}\n</script>\n"]}]}