|
|
@@ -18,9 +18,38 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import qs from "qs";
|
|
|
+
|
|
|
+
|
|
|
import lucencyHeader from "~/components/header/lucencyHeader";
|
|
|
import langMap from "@/map/langMap";
|
|
|
import handle from "@/until/handle";
|
|
|
+import {unescapeHtml} from "@/until/unescapeHtml";
|
|
|
+
|
|
|
+function getFileIcon(fileName){
|
|
|
+ // 获取文件后缀
|
|
|
+ if(!fileName){
|
|
|
+ return 'unknownfile';
|
|
|
+ }
|
|
|
+ const fileSuffix = fileName.split('.').pop();
|
|
|
+ switch (fileSuffix) {
|
|
|
+ case 'doc':
|
|
|
+ return 'doc';
|
|
|
+ case 'docx':
|
|
|
+ return 'doc';
|
|
|
+ case 'pdf':
|
|
|
+ return 'pdf';
|
|
|
+ case 'png':
|
|
|
+ return 'img';
|
|
|
+ case 'jpg':
|
|
|
+ return 'img';
|
|
|
+ case 'jpeg':
|
|
|
+ return 'img';
|
|
|
+ default:
|
|
|
+ return 'unknownfile';
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
export default {
|
|
|
name: "index",
|
|
|
props:['uLang'],
|
|
|
@@ -96,6 +125,7 @@ export default {
|
|
|
|
|
|
mounted() {
|
|
|
this.$root.$on('changeLang',this.switchLang);
|
|
|
+ this.$root.$on('loadDownloadItem',this.loadDownloadItems);
|
|
|
this.loadDownloads();
|
|
|
},
|
|
|
|
|
|
@@ -112,20 +142,57 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
async loadDownloads(){
|
|
|
- // todo 从后台获取下载列表数据
|
|
|
let err, res;
|
|
|
- [err, res] = await handle(this.$axios.$get('/api/downloadItem.php'));
|
|
|
+ [err, res] = await handle(this.$axios.$get('/api/getDownloads.php'));
|
|
|
if(err) {
|
|
|
console.log(err);
|
|
|
return 0;
|
|
|
}
|
|
|
if(res.rcode === 1){
|
|
|
- this.downloadsType = res.data;
|
|
|
+
|
|
|
+ // this.downloadsType = res.data;
|
|
|
+ this.downloadsType = res.data.map(item=>{
|
|
|
+ item.key = item.id;
|
|
|
+ return item;
|
|
|
+ });
|
|
|
}else{
|
|
|
console.log(res.msg);
|
|
|
console.log(res);
|
|
|
}
|
|
|
|
|
|
+ },
|
|
|
+ async loadDownloadItems(downloadId){
|
|
|
+ console.log(`获取下载项${downloadId}`)
|
|
|
+ let err, res;
|
|
|
+ const queryData = {
|
|
|
+ id: downloadId
|
|
|
+ };
|
|
|
+ let url = '/api/getDownloadItems.php';
|
|
|
+ let data = qs.stringify(queryData);
|
|
|
+ [err, res] = await handle(this.$axios.post(
|
|
|
+ url,
|
|
|
+ data
|
|
|
+ ));
|
|
|
+ if(err){
|
|
|
+ console.log(err);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ let result = res.data;
|
|
|
+ console.log(result)
|
|
|
+ if(result.rcode === 1){
|
|
|
+ // 匹配对应的id
|
|
|
+ let downloadItem = this.downloadsType.find(item => item.id === downloadId);
|
|
|
+ let arr = result.data?result.data:[];
|
|
|
+ downloadItem.subItems = arr.map(item=>{
|
|
|
+ item.title = unescapeHtml(item.remark);
|
|
|
+ item.icon = getFileIcon(item.files);
|
|
|
+ item.src = item.files;
|
|
|
+ return item;
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ console.error(result.msg);
|
|
|
+ console.log(result);
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
}
|