1 line
27 KiB
JSON
1 line
27 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/communtiy/Article.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/communtiy/Article.vue","mtime":1742646402776},{"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:aW1wb3J0IFRhZ1NlbGVjdCBmcm9tICcuLi8uLi9jb21wb25lbnRzL1RhZ1NlbGVjdCc7CmltcG9ydCBTdGFuZGFyZEZvcm1Sb3cgZnJvbSAnLi4vLi4vY29tcG9uZW50cy9TdGFuZGFyZEZvcm1Sb3cnOwppbXBvcnQgQXJ0aWNsZUxpc3RDb250ZW50IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvQXJ0aWNsZUxpc3RDb250ZW50JzsKaW1wb3J0IEljb25UZXh0IGZyb20gJy4vY29tcG9uZW50cy9JY29uVGV4dCc7CmNvbnN0IFRhZ1NlbGVjdE9wdGlvbiA9IFRhZ1NlbGVjdC5PcHRpb247CmV4cG9ydCBkZWZhdWx0IHsKICBjb21wb25lbnRzOiB7CiAgICBUYWdTZWxlY3QsCiAgICBUYWdTZWxlY3RPcHRpb24sCiAgICBTdGFuZGFyZEZvcm1Sb3csCiAgICBBcnRpY2xlTGlzdENvbnRlbnQsCiAgICBJY29uVGV4dAogIH0sCiAgZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIHVzZXJEYXRhOiBbXSwKICAgICAgaW1hZ2VVcmxSZWdleDogLyhodHRwW3NdPzpcL1wvW14oXHN8IildK1wuKHBuZ3xqcGd8anBlZ3xnaWZ8d2VicCkpL2dpLAogICAgICBjdXJyZW50OiAxLAogICAgICBwYWdlU2l6ZTogOCwKICAgICAgbG9hZGluZzogdHJ1ZSwKICAgICAgbG9hZGluZ01vcmU6IGZhbHNlLAogICAgICBkYXRhOiBbXSwKICAgICAgb3JpZ2luYWxVc2VyczogW10sCiAgICAgIHRvdGFsOiAwLAogICAgICBmb3JtOiB0aGlzLiRmb3JtLmNyZWF0ZUZvcm0odGhpcykKICAgIH07CiAgfSwKICBtb3VudGVkKCkgewogICAgdGhpcy5nZXRVc2VyKCk7CiAgICB0aGlzLiR3YXRjaCgoKSA9PiBbdGhpcy5wYWdlU2l6ZSwgdGhpcy5jdXJyZW50XSwgdGhpcy5nZXRMaXN0LCB7CiAgICAgIGltbWVkaWF0ZTogdHJ1ZQogICAgfSk7CiAgfSwKICBmaWx0ZXJzOiB7CiAgICBmb3JtYXRUaW1lOiBmdW5jdGlvbiAodmFsdWUpIHsKICAgICAgLy8g5Zyo6L+Z6YeM57yW5YaZ5pe26Ze05qC85byP5YyW6YC76L6R77yM5L6L5aaC77yaCiAgICAgIGNvbnN0IHBhcnNlZFRpbWUgPSBuZXcgRGF0ZSh2YWx1ZSk7CiAgICAgIGNvbnN0IHllYXIgPSBwYXJzZWRUaW1lLmdldEZ1bGxZZWFyKCk7CiAgICAgIGNvbnN0IG1vbnRoID0gU3RyaW5nKHBhcnNlZFRpbWUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7CiAgICAgIGNvbnN0IGRheSA9IFN0cmluZyhwYXJzZWRUaW1lLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKTsKICAgICAgcmV0dXJuIGAke3llYXJ9LSR7bW9udGh9LSR7ZGF5fWA7CiAgICB9CiAgfSwKICBjb21wdXRlZDogewogICAgc2VhcmNoT3B0aW9ucygpIHsKICAgICAgcmV0dXJuIGNyZWF0ZVNlYXJjaE9wdGlvbnMuY2FsbCh0aGlzKTsKICAgIH0sCiAgICBwYWdpbmF0aW9uKCkgewogICAgICByZXR1cm4gewogICAgICAgIGN1cnJlbnQ6IHRoaXMuY3VycmVudCwKICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwKICAgICAgICB0b3RhbDogdGhpcy50b3RhbCwKICAgICAgICBzaG93U2l6ZUNoYW5nZXI6IHRydWUsCiAgICAgICAgcGFnZVNpemVPcHRpb25zOiBbJzgnLCAnOScsICcxMCcsICcyMCddLAogICAgICAgIHNob3dRdWlja0p1bXBlcjogdHJ1ZSwKICAgICAgICBzaG93VG90YWw6IHRvdGFsID0+IGBUb3RhbCAke3RvdGFsfSBpdGVtc2AsCiAgICAgICAgb25DaGFuZ2U6IHRoaXMuY2hhbmdlUGFnZSwKICAgICAgICBvblNob3dTaXplQ2hhbmdlOiB0aGlzLmNoYW5nZVBhZ2UKICAgICAgfTsKICAgIH0KICB9LAogIG1ldGhvZHM6IHsKICAgIGV4dHJhY3RJbWFnZVVybChjb250ZW50KSB7CiAgICAgIC8vIOWumuS5ieWMuemFjeWbvueJh1VSTOeahOato+WImeihqOi+vuW8jwogICAgICBjb25zdCBpbWFnZVVybFJlZ2V4ID0gLyhodHRwW3NdPzpcL1wvW14oXHN8IildK1wuKHBuZ3xqcGd8anBlZ3xnaWZ8d2VicCkpL2dpOwogICAgICAvLyDkvb/nlKjmraPliJnooajovr7lvI/ljLnphY3lhoXlrrnkuK3nmoTlm77niYdVUkwKICAgICAgY29uc3QgbWF0Y2hlcyA9IGNvbnRlbnQubWF0Y2goaW1hZ2VVcmxSZWdleCk7CiAgICAgIC8vIOWmguaenOaJvuWIsOWMuemFjemhue+8jOi/lOWbnuesrOS4gOW8oOWbvueJh+eahFVSTAogICAgICBpZiAobWF0Y2hlcyAmJiBtYXRjaGVzLmxlbmd0aCA+IDApIHsKICAgICAgICByZXR1cm4gbWF0Y2hlc1swXTsKICAgICAgfQogICAgICAvLyDpgb/lhY3mtY/op4jlmajnvJPlrZgKICAgICAgY29uc3QgcmFuZG9tU2VlZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwKTsgLy8g55Sf5oiQ5LiA5LiqMOWIsDk5OTnkuYvpl7TnmoTpmo/mnLrmlbAKICAgICAgLy8g5aaC5p6c5rKh5pyJ5om+5Yiw5Yy56YWN55qE5Zu+54mH77yM5Y+v5Lul5L2/55So6ZqP5py65Zu+54mHCiAgICAgIHJldHVybiAnaHR0cHM6Ly9hcGkuNzU4NS5uZXQuY24vYmluZy9hcGkucGhwP3JhbmQ9MT8nICsgcmFuZG9tU2VlZDsKICAgIH0sCiAgICBhc3luYyBnZXRJbWFnZShhcnRpY2xlSWQpIHsKICAgICAgdHJ5IHsKICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLiRhcGkuQWxsQXJ0aWNsZSgpOwogICAgICAgIGxldCBjb250ZW50ID0gcmVzLmRhdGEuZmlsdGVyKGl0ZW0gPT4gaXRlbS5hcnRpY2xlSWQgPT09IGFydGljbGVJZCk7CiAgICAgICAgaWYgKGNvbnRlbnQubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygi5pyq5om+5Yiw5a+55bqU5paH56ug5YaF5a65Iik7CiAgICAgICAgICByZXR1cm4gbnVsbDsgLy8g6L+U5Zue56m65YC877yM6KGo56S65pyq5om+5Yiw5bCB6Z2i5Zu+54mHCiAgICAgICAgfQogICAgICAgIGNvbnN0IGltYWdlVXJsUmVnZXggPSAvKGh0dHBbc10/OlwvXC9bXihcc3wiKV0rXC4ocG5nfGpwZ3xqcGVnfGdpZnx3ZWJwKSkvZ2k7CiAgICAgICAgY29uc3QgaW1hZ2VzID0gY29udGVudFswXS5hcnRpY2xlQ29udGVudC5tYXRjaChpbWFnZVVybFJlZ2V4KTsKICAgICAgICBpZiAoaW1hZ2VzICYmIGltYWdlcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygi5om+5Yiw5bCB6Z2i5Zu+54mH6ZO+5o6lOiIsIGltYWdlc1swXSk7CiAgICAgICAgICByZXR1cm4gaW1hZ2VzWzBdOyAvLyDov5Tlm57nrKzkuIDlvKDljLnphY3liLDnmoTlm77niYfpk77mjqUKICAgICAgICB9IGVsc2UgewogICAgICAgICAgY29uc29sZS5sb2coIuacquaJvuWIsOWbvueJh+mTvuaOpSIpOwogICAgICAgICAgcmV0dXJuIG51bGw7IC8vIOi/lOWbnuepuuWAvO+8jOihqOekuuacquaJvuWIsOWwgemdouWbvueJhwogICAgICAgIH0KICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBjb25zb2xlLmVycm9yKCLojrflj5bmlofnq6DlhoXlrrnlpLHotKU6IiwgZXJyb3IpOwogICAgICAgIHJldHVybiBudWxsOyAvLyDov5Tlm57nqbrlgLzvvIzooajnpLrmnKrmib7liLDlsIHpnaLlm77niYcKICAgICAgfQogICAgfSwKICAgIC8vIOaQnOe0ogogICAgc2VhcmNoKCkgewogICAgICB0aGlzLmN1cnJlbnQgPSAxOwogICAgICB0aGlzLmdldExpc3QoKTsKICAgIH0sCiAgICAvLyDliIbpobXliIfmjaIKICAgIGNoYW5nZVBhZ2UoY3VycmVudCwgcGFnZVNpemUpIHsKICAgICAgdGhpcy5jdXJyZW50ID0gY3VycmVudDsKICAgICAgdGhpcy5wYWdlU2l6ZSA9IHBhZ2VTaXplOwogICAgICB0aGlzLmdldExpc3QoKTsKICAgIH0sCiAgICBoYW5kbGVDaGFuZ2UodmFsdWUpIHsKICAgICAgY29uc29sZS5sb2coYHNlbGVjdGVkICR7dmFsdWV9YCk7CiAgICB9LAogICAgZ2V0VXNlcigpIHsKICAgICAgdGhpcy4kYXBpLkFsbFVzZXIoKS50aGVuKHJlcyA9PiB7CiAgICAgICAgY29uc3QgdXNlcnMgPSByZXMuZGF0YTsKICAgICAgICBjb25zdCB1c2VyTWFwID0ge307CiAgICAgICAgdXNlcnMuZm9yRWFjaCh1c2VyID0+IHsKICAgICAgICAgIHVzZXJNYXBbdXNlci51c2VySWRdID0gdXNlci51c2VyTmFtZTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLnVzZXJEYXRhID0gdXNlck1hcDsKICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnVzZXJEYXRhKTsKICAgICAgfSkuY2F0Y2goZXJyb3IgPT4gewogICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOwogICAgICB9KTsKICAgIH0sCiAgICBhc3luYyBnZXRMaXN0KCkgewogICAgICB0cnkgewogICAgICAgIC8vIOW8gOWni+WKoOi9ve+8jOaYvuekuuWKoOi9veaMh+ekuuWZqAogICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CiAgICAgICAgdGhpcy5xdWVyeSA9IHRoaXMuJHJlZnMuc2VhcmNoRm9ybS5nZXRSZXN1bHQoKTsKICAgICAgICAvLyDkvb/nlKggYXdhaXQg55u05o6l562J5b6F5byC5q2l5pON5L2c55qE57uT5p6cCiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy4kYXBpLkFsbEFydGljbGUoKTsKICAgICAgICAvLyDmiZPljbDlk43lupTnu5PmnpwKICAgICAgICB0aGlzLm9yaWdpbmFsVXNlcnMgPSByZXMuZGF0YTsKICAgICAgICB0aGlzLmZpbHRlclVzZXJzKCk7IC8vIOiwg+eUqOi/h+a7pOeUqOaIt+aWueazlQogICAgICAgIGNvbnNvbGUubG9nKCdyZXMnLCByZXMuZGF0YSk7CiAgICAgICAgLy8g5L2/55So5ZON5bqU57uT5p6c5pu05paw5pWw5o2uCiAgICAgICAgdGhpcy50b3RhbCA9IHJlcy5kYXRhLmxlbmd0aDsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAvLyDlpITnkIblj6/og73lh7rnjrDnmoTplJnor68KICAgICAgICBjb25zb2xlLmVycm9yKCLojrflj5bmlofnq6DliJfooajlpLHotKU6IiwgZXJyb3IpOwogICAgICB9IGZpbmFsbHkgewogICAgICAgIC8vIOaXoOiuuuaIkOWKn+i/mOaYr+Wksei0pe+8jOacgOWQjumDveS8muaJp+ihjO+8jOmakOiXj+WKoOi9veaMh+ekuuWZqAogICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICB9CiAgICB9LAogICAgLy8g5pCc57SiCQkKICAgIGZpbHRlclVzZXJzKCkgewogICAgICBsZXQgZmlsdGVyZWRVc2VycyA9IHRoaXMub3JpZ2luYWxVc2Vycy5zbGljZSgpOyAvLyDlpI3liLbljp/lp4vnlKjmiLfmlbDmja4KICAgICAgY29uc29sZS5sb2codGhpcy5xdWVyeSk7CiAgICAgIGlmICh0aGlzLnF1ZXJ5LmFydGljbGVUaXRsZSkgewogICAgICAgIGZpbHRlcmVkVXNlcnMgPSBmaWx0ZXJlZFVzZXJzLmZpbHRlcih1c2VyID0+IHVzZXIuYXJ0aWNsZVRpdGxlLmluY2x1ZGVzKHRoaXMucXVlcnkuYXJ0aWNsZVRpdGxlKSk7CiAgICAgIH0KICAgICAgaWYgKHRoaXMucXVlcnkudXNlck5hbWUpIHsKICAgICAgICBmaWx0ZXJlZFVzZXJzID0gZmlsdGVyZWRVc2Vycy5maWx0ZXIodXNlciA9PiB1c2VyLnVzZXJJZC5pbmNsdWRlcyh0aGlzLnF1ZXJ5LnVzZXJOYW1lKSk7CiAgICAgIH0KICAgICAgaWYgKHRoaXMucXVlcnkuYXJ0aWNsZUNvbnRlbnQpIHsKICAgICAgICBmaWx0ZXJlZFVzZXJzID0gZmlsdGVyZWRVc2Vycy5maWx0ZXIodXNlciA9PiB1c2VyLmFydGljbGVDb250ZW50LmluY2x1ZGVzKHRoaXMucXVlcnkuYXJ0aWNsZUNvbnRlbnQpKTsKICAgICAgfQogICAgICBjb25zdCBzdGFydCA9ICh0aGlzLmN1cnJlbnQgLSAxKSAqIHRoaXMucGFnZVNpemU7CiAgICAgIGNvbnN0IGVuZCA9IHN0YXJ0ICsgdGhpcy5wYWdlU2l6ZTsKICAgICAgdGhpcy5kYXRhID0gZmlsdGVyZWRVc2Vycy5zbGljZShzdGFydCwgZW5kKTsKICAgIH0KICB9Cn07Ci8vIOWIm+W7uuaQnOe0oumAiemhuQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPcHRpb25zKCkgewogIHJldHVybiBbewogICAgbGFiZWw6ICfmoIfpopgnLAogICAga2V5OiAnYXJ0aWNsZVRpdGxlJywKICAgIGRlZmF1bHQ6ICcnLAogICAgY29tcG9uZW50OiAnaW5wdXQnCiAgfSwgewogICAgbGFiZWw6ICfkvZzogIUnLAogICAga2V5OiAndXNlck5hbWUnLAogICAgZGVmYXVsdDogJycsCiAgICBjb21wb25lbnQ6ICdpbnB1dCcKICB9LCB7CiAgICBsYWJlbDogJ+WGheWuuScsCiAgICBrZXk6ICdhcnRpY2xlQ29udGVudCcsCiAgICBkZWZhdWx0OiAnJywKICAgIGNvbXBvbmVudDogJ2lucHV0JwogIH0sIHsKICAgIGxhYmVsOiAn5pe26Ze0JywKICAgIGtleTogJ3B1Ymxpc2hUaW1lJywKICAgIGRlZmF1bHQ6ICgpID0+IFtdLAogICAgbWFwcGVyOiAoewogICAgICBwdWJsaXNoVGltZQogICAgfSkgPT4gcHVibGlzaFRpbWUuam9pbignficpLAogICAgY29tcG9uZW50OiAncmFuZ2UtcGlja2VyJwogIH1dOwp9"},{"version":3,"names":["TagSelect","StandardFormRow","ArticleListContent","IconText","TagSelectOption","Option","components","data","userData","imageUrlRegex","current","pageSize","loading","loadingMore","originalUsers","total","form","$form","createForm","mounted","getUser","$watch","getList","immediate","filters","formatTime","value","parsedTime","Date","year","getFullYear","month","String","getMonth","padStart","day","getDate","computed","searchOptions","createSearchOptions","call","pagination","showSizeChanger","pageSizeOptions","showQuickJumper","showTotal","onChange","changePage","onShowSizeChange","methods","extractImageUrl","content","matches","match","length","randomSeed","Math","floor","random","getImage","articleId","res","$api","AllArticle","filter","item","console","log","images","articleContent","error","search","handleChange","AllUser","then","users","userMap","forEach","user","userId","userName","catch","query","$refs","searchForm","getResult","filterUsers","filteredUsers","slice","articleTitle","includes","start","end","label","key","default","component","mapper","publishTime","join"],"sources":["src/views/communtiy/Article.vue"],"sourcesContent":["<template>\n <!-- 主容器 -->\n <div>\n\t\t<!-- 搜索表单 -->\n <SearchForm\n ref=\"searchForm\"\n :loading=\"loading\"\n :options=\"searchOptions\"\n @search=\"search\"\n @reset=\"search\"\n />\n <!-- 标签选择器 -->\n <a-card :bordered=\"false\" class=\"ant-pro-components-tag-select\" style=\"margin-bottom:-82px\"> \n <a-form :form=\"form\" layout=\"inline\">\n <!-- 类目选择 -->\n <standard-form-row title=\"所属类目\" block style=\"padding-bottom: 11px;\">\n <a-form-item>\n <!-- 标签选择器组件 -->\n <tag-select>\n \t\t\t\t\t<!-- 类目选项 -->\n\t\t\t\t\t\t<!-- 全部选项 -->\n \t\t\t\t\t<tag-select-option value=\"全部\" @click.native=\"getList\"><h3><a-icon type=\"audit\" />全部</h3></tag-select-option>\n \t\t\t\t<tag-select-option value=\"公告\" @click.native=\"search('公告')\"><h3><a-icon type=\"audit\" />公告</h3></tag-select-option>\n \t\t\t\t<tag-select-option value=\"交流\" @click.native=\"search('交流')\"><h3><a-icon type=\"audit\" />交流</h3></tag-select-option>\n \t\t\t\t<tag-select-option value=\"讨论\" @click.native=\"search('讨论')\"><h3><a-icon type=\"audit\" />讨论</h3></tag-select-option>\n </tag-select>\n </a-form-item>\n </standard-form-row>\n </a-form>\n </a-card>\n <!-- 文章列表 -->\n <a-card style=\"margin-top: 24px;\" :bordered=\"false\">\n <a-list\n size=\"large\"\n rowKey=\"id\"\n :loading=\"loading\"\n itemLayout=\"vertical\"\n :dataSource=\"data\"\n\t\t\t\t:pagination=\"pagination\"\n\t\t\t\t@change=\"changePage\"\n >\n\t\t\t<div class=\"side-brick\">\t\t\t\n\t\t\t\t<ul class=\"brick-box\">\n\t\t\t\t\t<li class=\"brick-list\" v-for=\"item in data\">\n\t\t\t\t\t\t<router-link :to=\"'/pages?id=' + item.articleId\">\n\t\t\t\t <a class=\"item-box-retina\">\n\t\t\t\t\t <figure class=\"item-box-img\">\n\t\t\t\t\t\t\t<!-- 文章图片 -->\n\t\t\t\t\t\t\t<!-- 调用extractImageUrl方法并传递文章内容 -->\n\t\t\t\t\t\t\t<img class=\"lazy\" :src=\"extractImageUrl(item.articleContent)\" alt=\"Article Cover\">\n\t\t\t\t\t\t\t<!-- <img class=\"lazy\" :src=\"item.articleContent.match(imageUrlRegex)\" > -->\n\t\t\t\t\t\t\t<!-- 文章标题 -->\n\t\t\t\t\t\t\t<h3>{{item.articleTitle}}</h3>\n\t\t\t\t\t\t</figure>\n\t\t\t\t\t\t<!-- 文章内容 -->\n\t\t\t\t\t <p class=\"item-user-info\" v-html=\"item.articleContent\"></p>\n\t\t\t\t\t <p class=\"item-user-author\">\n\t\t\t\t\t\t <img src=\"/logo.png\" :alt=\"userData[item.userId]\">\n\t\t\t\t\t\t\t\t<!-- 文章作者 -->\n\t\t\t\t\t\t <span class=\"comment-username\">{{userData[item.userId]}}<span class=\"autlv aut-5 vs-level\">V</span></span>\n\t\t\t\t\t\t <span class=\"comment-tip\"><i class=\"icon font-time\"></i>{{item.publishTime | formatTime}}</span>\n\t\t\t\t\t </p>\n\t\t\t\t </a>\n\t\t\t\t\t</router-link>\n\t\t\t </li>\t\t\t\n\t\t</ul>\t\n\t</div>\n </a-list>\n </a-card>\n </div>\n</template>\n\n<script>\nimport TagSelect from '../../components/TagSelect';\nimport StandardFormRow from '../../components/StandardFormRow';\nimport ArticleListContent from '../../components/ArticleListContent';\nimport IconText from './components/IconText';\nconst TagSelectOption = TagSelect.Option;\nexport default {\n components: {\n TagSelect,\n TagSelectOption,\n StandardFormRow,\n ArticleListContent,\n IconText,\n },\n data() {\n return {\n\t\t\tuserData:[],\n\t\t\timageUrlRegex:/(http[s]?:\\/\\/[^(\\s|\")]+\\.(png|jpg|jpeg|gif|webp))/gi,\n\t\t\tcurrent: 1,\n\t\t\tpageSize: 8,\n loading: true,\n loadingMore: false,\n data: [],\n\t\t\toriginalUsers: [],\n\t\t\ttotal: 0,\n form: this.$form.createForm(this),\n };\n },\n mounted() {\n\t\tthis.getUser() \n\t\tthis.$watch(() => [this.pageSize, this.current], this.getList, { immediate: true });\n },filters: {\n formatTime: function(value) {\n // 在这里编写时间格式化逻辑,例如:\n const parsedTime = new Date(value);\n const year = parsedTime.getFullYear();\n const month = String(parsedTime.getMonth() + 1).padStart(2, '0');\n const day = String(parsedTime.getDate()).padStart(2, '0');\n return `${year}-${month}-${day}`;\n }\n},\ncomputed:{\n\tsearchOptions() {\n return createSearchOptions.call(this);\n },\n\t\tpagination() {\n return {\n current: this.current,\n pageSize: this.pageSize,\n total: this.total,\n showSizeChanger: true,\n pageSizeOptions: ['8', '9', '10', '20'],\n showQuickJumper: true,\n showTotal: total => `Total ${total} items`,\n onChange: this.changePage,\n onShowSizeChange: this.changePage\n };\n },\n},\n methods: { extractImageUrl(content) {\n // 定义匹配图片URL的正则表达式\n const imageUrlRegex = /(http[s]?:\\/\\/[^(\\s|\")]+\\.(png|jpg|jpeg|gif|webp))/gi;\n // 使用正则表达式匹配内容中的图片URL\n const matches = content.match(imageUrlRegex);\n // 如果找到匹配项,返回第一张图片的URL\n if (matches && matches.length > 0) {\n return matches[0];\n }\n\t\t\t// 避免浏览器缓存\n\t\t\tconst randomSeed = Math.floor(Math.random() * 10000); // 生成一个0到9999之间的随机数\n // 如果没有找到匹配的图片,可以使用随机图片\n return 'https://api.7585.net.cn/bing/api.php?rand=1?'+randomSeed;\n },\n\t\tasync getImage(articleId) {\n try {\n const res = await this.$api.AllArticle();\n let content = res.data.filter(item => item.articleId === articleId);\n\n if (content.length === 0) {\n console.log(\"未找到对应文章内容\");\n return null; // 返回空值,表示未找到封面图片\n }\n\n const imageUrlRegex = /(http[s]?:\\/\\/[^(\\s|\")]+\\.(png|jpg|jpeg|gif|webp))/gi;\n const images = content[0].articleContent.match(imageUrlRegex);\n\n if (images && images.length > 0) {\n console.log(\"找到封面图片链接:\", images[0]);\n return images[0]; // 返回第一张匹配到的图片链接\n } else {\n console.log(\"未找到图片链接\");\n return null; // 返回空值,表示未找到封面图片\n }\n } catch (error) {\n console.error(\"获取文章内容失败:\", error);\n return null; // 返回空值,表示未找到封面图片\n }\n},\n\t\t// 搜索\n search() {\n this.current = 1;\n this.getList();\n },\n\t\t// 分页切换\n\t\tchangePage(current, pageSize) {\n this.current = current;\n this.pageSize = pageSize;\n this.getList();\n },\n handleChange(value) {\n console.log(`selected ${value}`);\n },\n\t\tgetUser() {\n this.$api.AllUser().then(res => {\n const users = res.data;\n const userMap = {};\n users.forEach(user => {\n userMap[user.userId] = user.userName;\n });\n this.userData = userMap;\n\t\tconsole.log(this.userData)\n }).catch(error => {\n console.error(error);\n });\n},\n async getList() {\n try {\n // 开始加载,显示加载指示器\n this.loading = true;\n\t\tthis.query = this.$refs.searchForm.getResult();\n // 使用 await 直接等待异步操作的结果\n const res = await this.$api.AllArticle();\n // 打印响应结果\n\t\tthis.originalUsers = res.data\n\t\tthis.filterUsers(); // 调用过滤用户方法\n console.log('res', res.data);\n // 使用响应结果更新数据\n\t\tthis.total = res.data.length;\n } catch (error) {\n // 处理可能出现的错误\n console.error(\"获取文章列表失败:\", error);\n } finally {\n // 无论成功还是失败,最后都会执行,隐藏加载指示器\n this.loading = false;\n }\n},\n// 搜索\t\t\nfilterUsers() {\n \t\tlet filteredUsers = this.originalUsers.slice(); // 复制原始用户数据\n\t\t\tconsole.log(this.query)\n \tif (this.query.articleTitle) {\n filteredUsers = filteredUsers.filter(user => user.articleTitle.includes(this.query.articleTitle));\n \t}\n\n if (this.query.userName) {\n filteredUsers = filteredUsers.filter(user => user.userId.includes(this.query.userName));\n }\n\tif (this.query.articleContent) {\n filteredUsers = filteredUsers.filter(user => user.articleContent.includes(this.query.articleContent));\n }\n const start = (this.current - 1) * this.pageSize;\n const end = start + this.pageSize;\n this.data = filteredUsers.slice(start, end);\n},\n },\n};\n// 创建搜索选项\nfunction createSearchOptions() {\n return [\n {\n label: '标题',\n key: 'articleTitle',\n default: '',\n component: 'input',\n },\n {\n label: '作者',\n key: 'userName',\n default: '',\n component: 'input',\n },\n\t\t{\n label: '内容',\n key: 'articleContent',\n default: '',\n component: 'input',\n },\n {\n label: '时间',\n key: 'publishTime',\n default: () => [],\n mapper: ({ publishTime }) => publishTime.join('~'),\n component: 'range-picker',\n },\n \n ];\n}\n</script>\n\n<style lang=\"less\" scoped>\n.ant-pro-components-tag-select {\n :deep(.ant-pro-tag-select .ant-tag) {\n margin-right: 24px;\n padding: 0 8px;\n font-size: 14px;\n }\n}\n.ant-pro-components-tag-select .ant-tag-checkable-checked {\n color: black; /* 设置为你喜欢的颜色 */\n}\n.list-articles-trigger {\n margin-left: 12px;\n}\n.box-show, .post-list {\n position: relative;\n background: rgba(192, 111, 111, 0.95);\n border: 1px solid rgba(221, 221, 221, 0.28);\n padding: 0 20px;\n border-radius: 18px;\n margin-bottom: 20px;\n -webkit-box-shadow: 0px 0px 10px -2px rgba(158,158,158,0.2);\n box-shadow: 0px 0px 10px -2px rgba(158,158,158,0.2);\n}article, input, textarea, b, ul, li, i, button, a, .swiper-button-next, .swiper-button-prev {\n -moz-transition: ease-in-out 0.3s;\n -webkit-transition: ease-in-out 0.3s;\n -o-transition: ease-in-out 0.3s;\n -ms-transition: ease-in-out 0.3s;\n transition: ease-in-out 0.3s;\n}article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {\n display: block;\n}html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {\n margin: 0;\n padding: 0;\n outline: 0;\n border: 0;\n background: transparent;\n vertical-align: baseline;\n font-size: 100%;\n}article {\n display: block;\n unicode-bidi: isolate;\n}body {\n color: #666;\n font-family: \"Microsoft Yahei\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n background-color: #f5f5f5;\n background-repeat: no-repeat;\n background-attachment: fixed;\n background-position: top center;\n}\n.side-title-wrap {\n margin-top: 15px;\n padding-bottom: 15px;\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n position: relative;\n border-bottom: 1px solid #ddd;\n}.side-title-wrap h3.widget-title {\n font-size: 16px;\n color: #333;\n margin-right: 16px;\n display: inline-block;\n vertical-align: bottom;\n padding-left: 10px;\n margin-left: 0px;\n border-left: 4px solid #3690cf;\n font-weight: 400;\n}.side-title-wrap span, .side-title-wrap span.suburl a {\n font-size: 12px;\n color: #999;\n}.brick-box {\n margin-right: -2%;\n margin-top: 20px;\n overflow: hidden;\n}li.brick-list {\n float: left;\n position: relative;\n width: 23%;\n margin-right: 2%;\n margin-bottom: 15px;\n border-radius: 4px;\n overflow: hidden;\n transition: all .3s ease;\n}figure.item-box-img {\n height: 190px;\n position: relative;\n overflow: hidden;\n}p.item-user-info {\n height: 44px;\n margin-top: 10px;\n line-height: 1.6;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n overflow: hidden;\n white-space: normal;\n}p.item-user-author {\n overflow: hidden;\n line-height: 32px;\n margin-top: 10px;\n padding-top: 10px;\n position: relative;\n}\n.side-brick {\n margin-top: 20px;\n overflow: hidden;\n background: rgba(255, 255, 255, 0.68);\n border: 1px solid rgba(221, 221, 221, 0.28);\n padding: 0 20px;\n border-radius: 18px;\n margin-bottom: 20px;\n -webkit-box-shadow: 0px 0px 10px -2px rgba(158,158,158,0.2);\n box-shadow: 0px 0px 10px -2px rgba(158,158,158,0.2);\n}\n</style>\n"],"mappings":"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","ignoreList":[]}]} |