1 line
44 KiB
JSON
1 line
44 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/communtiy/Article.vue?vue&type=style&index=0&id=33d7e0fc&lang=less&scoped=true","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/communtiy/Article.vue","mtime":1743941101859},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/css-loader/dist/cjs.js","mtime":1743264596127},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/loaders/stylePostLoader.js","mtime":1743264597030},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/postcss-loader/src/index.js","mtime":1743264596321},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/less-loader/dist/cjs.js","mtime":1743264596730},{"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:Ci8qIOW4luWtkOivpuaDhemhtee+juWMluagt+W8jyAqLwoKLyog6aG16Z2i6IOM5pmv5LiO5pW05L2T5biD5bGAICovCi5wb3N0LWRldGFpbC1jb250YWluZXIgewogIG1heC13aWR0aDogMTIwMHB4OwogIG1hcmdpbjogMCBhdXRvOwogIHBhZGRpbmc6IDI0cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KCi5wb3N0LWRldGFpbC13cmFwcGVyIHsKICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpOwogIGJvcmRlci1yYWRpdXM6IDE2cHg7CiAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTsKICBvdmVyZmxvdzogaGlkZGVuOwogIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgovKiDngqvphbfog4zmma/muJDlj5ggKi8KLnBhZ2UtYmFja2dyb3VuZCB7CiAgcG9zaXRpb246IGZpeGVkOwogIHRvcDogMDsKICBsZWZ0OiAwOwogIHJpZ2h0OiAwOwogIGJvdHRvbTogMDsKICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTIwZGVnLCAjZjZmOGZhIDAlLCAjZThmNGZjIDUwJSwgI2VkZjdmZiAxMDAlKTsKICBiYWNrZ3JvdW5kLXNpemU6IDQwMCUgNDAwJTsKICBhbmltYXRpb246IGdyYWRpZW50QkcgMTVzIGVhc2UgaW5maW5pdGU7CiAgei1pbmRleDogLTE7Cn0KCkBrZXlmcmFtZXMgZ3JhZGllbnRCRyB7CiAgMCUgewogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTAlOwogIH0KICA1MCUgewogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7CiAgfQogIDEwMCUgewogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTAlOwogIH0KfQoKLyog5biW5a2Q5qCH6aKY5Yy65Z+fICovCi5wb3N0LWhlYWRlciB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHBhZGRpbmc6IDQwcHggMzJweCAyNHB4OwogIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMzNjkwY2YsICMyYTc4YjgpOwogIGNvbG9yOiB3aGl0ZTsKICBvdmVyZmxvdzogaGlkZGVuOwp9CgoucG9zdC1oZWFkZXI6YmVmb3JlIHsKICBjb250ZW50OiAnJzsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiAwOwogIGxlZnQ6IDA7CiAgcmlnaHQ6IDA7CiAgYm90dG9tOiAwOwogIGJhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhkcFpIUm9QU0l4TURBbElpQm9aV2xuYUhROUlqRXdNQ1VpUGdvZ0lEeGtaV1p6UGdvZ0lDQWdQSEJoZEhSbGNtNGdhV1E5SW5CaGRIUmxjbTRpSUhkcFpIUm9QU0kwTUNJZ2FHVnBaMmgwUFNJME1DSWdjR0YwZEdWeWJsVnVhWFJ6UFNKMWMyVnlVM0JoWTJWUGJsVnpaU0lnY0dGMGRHVnlibFJ5WVc1elptOXliVDBpY205MFlYUmxLRFExS1NJK0NpQWdJQ0FnSUR4amFYSmpiR1VnWTNnOUlqSXdJaUJqZVQwaU1qQWlJSEk5SWpFdU5TSWdabWxzYkQwaUkyWm1aaUlnWm1sc2JDMXZjR0ZqYVhSNVBTSXdMakVpSUM4K0NpQWdJQ0E4TDNCaGRIUmxjbTQrQ2lBZ1BDOWtaV1p6UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l4TURBbElpQm9aV2xuYUhROUlqRXdNQ1VpSUdacGJHdzlJblZ5YkNnamNHRjBkR1Z5YmlraUlDOCtDand2YzNablBnPT0nKTsKICBvcGFjaXR5OiAwLjQ7Cn0KCi5wb3N0LXRpdGxlIHsKICBmb250LXNpemU6IDI4cHg7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBtYXJnaW4tYm90dG9tOiAxNnB4OwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB0ZXh0LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKfQoKLnBvc3QtbWV0YSB7CiAgZGlzcGxheTogZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGZsZXgtd3JhcDogd3JhcDsKICBnYXA6IDIwcHg7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIGZvbnQtc2l6ZTogMTRweDsKICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOwp9CgoucG9zdC1tZXRhLWl0ZW0gewogIGRpc3BsYXk6IGZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKfQoKLnBvc3QtbWV0YS1pdGVtIC5hbnRpY29uIHsKICBtYXJnaW4tcmlnaHQ6IDZweDsKICBmb250LXNpemU6IDE2cHg7Cn0KCi5wb3N0LWNhdGVnb3J5IHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgcGFkZGluZzogNHB4IDEycHg7CiAgYm9yZGVyLXJhZGl1czogMjBweDsKICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7CiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDVweCk7CiAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgZm9udC1zaXplOiAxM3B4OwogIGZvbnQtd2VpZ2h0OiA1MDA7Cn0KCi8qIOS9nOiAheS/oeaBr+WNoeeJhyAqLwouYXV0aG9yLWNhcmQgewogIGRpc3BsYXk6IGZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBtYXJnaW4tdG9wOiAtNDBweDsKICBtYXJnaW4tbGVmdDogMzJweDsKICBtYXJnaW4tYm90dG9tOiAxNnB4OwogIHotaW5kZXg6IDEwOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLmF1dGhvci1hdmF0YXIgewogIHdpZHRoOiA4MHB4OwogIGhlaWdodDogODBweDsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgYm9yZGVyOiA0cHggc29saWQgd2hpdGU7CiAgYm94LXNoYWRvdzogMCA0cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgb2JqZWN0LWZpdDogY292ZXI7CiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsKfQoKLmF1dGhvci1pbmZvIHsKICBtYXJnaW4tbGVmdDogMTZweDsKfQoKLmF1dGhvci1uYW1lIHsKICBmb250LXNpemU6IDE4cHg7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBjb2xvcjogIzMzMzsKICBkaXNwbGF5OiBmbGV4OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KCi5hdXRob3ItbGV2ZWwgewogIGRpc3BsYXk6IGlubGluZS1mbGV4OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgd2lkdGg6IDIycHg7CiAgaGVpZ2h0OiAyMnB4OwogIGJvcmRlci1yYWRpdXM6IDZweDsKICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmY5ODAwLCAjZmY1NzIyKTsKICBjb2xvcjogd2hpdGU7CiAgZm9udC1zaXplOiAxMnB4OwogIGZvbnQtd2VpZ2h0OiBib2xkOwogIG1hcmdpbi1sZWZ0OiA4cHg7CiAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMjU1LCAxNTIsIDAsIDAuMyk7Cn0KCi5hdXRob3Itc3RhdHVzIHsKICBmb250LXNpemU6IDEzcHg7CiAgY29sb3I6ICM2NjY7CiAgbWFyZ2luLXRvcDogNHB4Owp9CgovKiDluJblrZDlhoXlrrnljLrln58gKi8KLnBvc3QtY29udGVudCB7CiAgcGFkZGluZzogNjBweCAzMnB4IDQwcHg7CiAgZm9udC1zaXplOiAxNnB4OwogIGxpbmUtaGVpZ2h0OiAxLjg7CiAgY29sb3I6ICMzMzM7Cn0KCi5wb3N0LWNvbnRlbnQgaW1nIHsKICBtYXgtd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiBhdXRvOwogIGJvcmRlci1yYWRpdXM6IDhweDsKICBtYXJnaW46IDI0cHggMDsKICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7CiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZSwgYm94LXNoYWRvdyAwLjNzIGVhc2U7Cn0KCi5wb3N0LWNvbnRlbnQgaW1nOmhvdmVyIHsKICB0cmFuc2Zvcm06IHNjYWxlKDEuMDEpOwogIGJveC1zaGFkb3c6IDAgOHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsKfQoKLnBvc3QtY29udGVudCBwIHsKICBtYXJnaW4tYm90dG9tOiAyMHB4Owp9CgoucG9zdC1jb250ZW50IGgxLCAKLnBvc3QtY29udGVudCBoMiwgCi5wb3N0LWNvbnRlbnQgaDMgewogIG1hcmdpbi10b3A6IDMycHg7CiAgbWFyZ2luLWJvdHRvbTogMTZweDsKICBmb250LXdlaWdodDogNjAwOwogIGNvbG9yOiAjMjIyOwp9CgoucG9zdC1jb250ZW50IGgxIHsKICBmb250LXNpemU6IDI2cHg7CiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7CiAgcGFkZGluZy1ib3R0b206IDEycHg7Cn0KCi5wb3N0LWNvbnRlbnQgaDIgewogIGZvbnQtc2l6ZTogMjJweDsKfQoKLnBvc3QtY29udGVudCBoMyB7CiAgZm9udC1zaXplOiAxOHB4Owp9CgoucG9zdC1jb250ZW50IGJsb2NrcXVvdGUgewogIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzM2OTBjZjsKICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgbWFyZ2luOiAyMHB4IDA7CiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYjsKICBib3JkZXItcmFkaXVzOiAwIDhweCA4cHggMDsKICBjb2xvcjogIzU1NTsKICBmb250LXN0eWxlOiBpdGFsaWM7Cn0KCi5wb3N0LWNvbnRlbnQgYSB7CiAgY29sb3I6ICMzNjkwY2Y7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgcmdiYSg1NCwgMTQ0LCAyMDcsIDAuNSk7CiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7Cn0KCi5wb3N0LWNvbnRlbnQgYTpob3ZlciB7CiAgY29sb3I6ICMyYTc4Yjg7CiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyYTc4Yjg7Cn0KCi5wb3N0LWNvbnRlbnQgcHJlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjgyYzM0OwogIGJvcmRlci1yYWRpdXM6IDhweDsKICBwYWRkaW5nOiAxNnB4OwogIG92ZXJmbG93LXg6IGF1dG87CiAgbWFyZ2luOiAyMHB4IDA7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgoucG9zdC1jb250ZW50IHByZSBjb2RlIHsKICBjb2xvcjogI2FiYjJiZjsKICBmb250LWZhbWlseTogJ1NGTW9uby1SZWd1bGFyJywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOwogIGZvbnQtc2l6ZTogMTRweDsKICBsaW5lLWhlaWdodDogMS41Owp9CgoucG9zdC1jb250ZW50IGNvZGUgewogIGJhY2tncm91bmQtY29sb3I6ICNmNmY4ZmE7CiAgcGFkZGluZzogMnB4IDZweDsKICBib3JkZXItcmFkaXVzOiA0cHg7CiAgZm9udC1mYW1pbHk6ICdTRk1vbm8tUmVndWxhcicsIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsKICBmb250LXNpemU6IDAuOWVtOwogIGNvbG9yOiAjZTgzZThjOwp9CgoucG9zdC1jb250ZW50IHByZSBjb2RlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICBwYWRkaW5nOiAwOwogIGNvbG9yOiBpbmhlcml0Owp9CgovKiDpq5jkuq7ku6PnoIHlnZfmoIfpopggKi8KLmNvZGUtYmxvY2staGVhZGVyIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiAwOwogIHJpZ2h0OiAwOwogIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsKICBwYWRkaW5nOiA0cHggMTJweDsKICBib3JkZXItcmFkaXVzOiAwIDhweCAwIDhweDsKICBmb250LXNpemU6IDEycHg7CiAgY29sb3I6ICNhYWE7Cn0KCi8qIOW4luWtkOaTjeS9nOWMuuWfnyAqLwoucG9zdC1hY3Rpb25zIHsKICBkaXNwbGF5OiBmbGV4OwogIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIHBhZGRpbmc6IDIwcHggMzJweDsKICBib3JkZXItdG9wOiAxcHggc29saWQgI2YwZjBmMDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmYWZjOwp9CgoucG9zdC1hY3Rpb24tYnRuIHsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIHBhZGRpbmc6IDhweCAxNnB4OwogIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgZm9udC1zaXplOiAxNHB4OwogIGNvbG9yOiAjNjY2OwogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogIGJvcmRlcjogMXB4IHNvbGlkICNlOGU4ZTg7CiAgdHJhbnNpdGlvbjogYWxsIDAuMjVzOwogIGN1cnNvcjogcG9pbnRlcjsKfQoKLnBvc3QtYWN0aW9uLWJ0bjpob3ZlciB7CiAgY29sb3I6ICMzNjkwY2Y7CiAgYm9yZGVyLWNvbG9yOiAjMzY5MGNmOwogIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTQsIDE0NCwgMjA3LCAwLjA1KTsKfQoKLnBvc3QtYWN0aW9uLWJ0biAuYW50aWNvbiB7CiAgbWFyZ2luLXJpZ2h0OiA2cHg7CiAgZm9udC1zaXplOiAxNnB4Owp9CgoucG9zdC1hY3Rpb24tYnRuLmxpa2VkIHsKICBjb2xvcjogI2ZmNGQ0ZjsKICBib3JkZXItY29sb3I6ICNmZjRkNGY7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDc3LCA3OSwgMC4wNSk7Cn0KCi5wb3N0LWFjdGlvbi1idG4uc2F2ZWQgewogIGNvbG9yOiAjZmFhZDE0OwogIGJvcmRlci1jb2xvcjogI2ZhYWQxNDsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1MCwgMTczLCAyMCwgMC4wNSk7Cn0KCi5wb3N0LWFjdGlvbi1ncm91cCB7CiAgZGlzcGxheTogZmxleDsKICBnYXA6IDEycHg7Cn0KCi8qIOivhOiuuuWMuuWfnyAqLwouY29tbWVudHMtc2VjdGlvbiB7CiAgcGFkZGluZzogMzJweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmYWZjOwogIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZjBmMGYwOwp9CgouY29tbWVudHMtaGVhZGVyIHsKICBmb250LXNpemU6IDIwcHg7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBtYXJnaW4tYm90dG9tOiAyNHB4OwogIGNvbG9yOiAjMzMzOwogIGRpc3BsYXk6IGZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBnYXA6IDEycHg7Cn0KCi5jb21tZW50cy1jb3VudCB7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICBiYWNrZ3JvdW5kOiAjMzY5MGNmOwogIGNvbG9yOiB3aGl0ZTsKICBoZWlnaHQ6IDI0cHg7CiAgcGFkZGluZzogMCAxMHB4OwogIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgZm9udC1zaXplOiAxNHB4OwogIGZvbnQtd2VpZ2h0OiA1MDA7Cn0KCi5jb21tZW50LWZvcm0gewogIG1hcmdpbi1ib3R0b206IDMycHg7Cn0KCi5jb21tZW50LXRleHRhcmVhIHsKICB3aWR0aDogMTAwJTsKICBib3JkZXI6IDFweCBzb2xpZCAjZThlOGU4OwogIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgcGFkZGluZzogMTZweDsKICBtaW4taGVpZ2h0OiAxMjBweDsKICByZXNpemU6IG5vbmU7CiAgZm9udC1zaXplOiAxNHB4OwogIHRyYW5zaXRpb246IGFsbCAwLjNzOwogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwp9CgouY29tbWVudC10ZXh0YXJlYTpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKICBib3JkZXItY29sb3I6ICMzNjkwY2Y7CiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoNTQsIDE0NCwgMjA3LCAwLjIpOwp9CgouY29tbWVudC1mb3JtLWFjdGlvbnMgewogIGRpc3BsYXk6IGZsZXg7CiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICBtYXJnaW4tdG9wOiAxNnB4Owp9CgouY29tbWVudC1zdWJtaXQgewogIHBhZGRpbmc6IDhweCAyNHB4OwogIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzM2OTBjZiwgIzJhNzhiOCk7CiAgY29sb3I6IHdoaXRlOwogIGZvbnQtc2l6ZTogMTRweDsKICBmb250LXdlaWdodDogNTAwOwogIGJvcmRlcjogbm9uZTsKICBjdXJzb3I6IHBvaW50ZXI7CiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7Cn0KCi5jb21tZW50LXN1Ym1pdDpob3ZlciB7CiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzJhNzhiOCwgIzFlNWM4ZSk7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDQyLCAxMjAsIDE4NCwgMC4zKTsKfQoKLyog5Y2V5Liq6K+E6K665qC35byPICovCi5jb21tZW50LWl0ZW0gewogIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgcGFkZGluZy1ib3R0b206IDI0cHg7CiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMGYwZjA7Cn0KCi5jb21tZW50LWl0ZW06bGFzdC1jaGlsZCB7CiAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICBtYXJnaW4tYm90dG9tOiAwOwogIHBhZGRpbmctYm90dG9tOiAwOwp9CgouY29tbWVudC1oZWFkZXIgewogIGRpc3BsYXk6IGZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBtYXJnaW4tYm90dG9tOiAxMnB4Owp9CgouY29tbWVudC1hdmF0YXIgewogIHdpZHRoOiA0MHB4OwogIGhlaWdodDogNDBweDsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgb2JqZWN0LWZpdDogY292ZXI7CiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsKICBtYXJnaW4tcmlnaHQ6IDEycHg7Cn0KCi5jb21tZW50LWluZm8gewogIGZsZXg6IDE7Cn0KCi5jb21tZW50LWF1dGhvciB7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBtYXJnaW4tcmlnaHQ6IDhweDsKICBjb2xvcjogIzMzMzsKfQoKLmNvbW1lbnQtbWV0YSB7CiAgZm9udC1zaXplOiAxMnB4OwogIGNvbG9yOiAjOTk5Owp9CgouY29tbWVudC1ib2R5IHsKICBmb250LXNpemU6IDE0cHg7CiAgbGluZS1oZWlnaHQ6IDEuNjsKICBjb2xvcjogIzQ0NDsKICBtYXJnaW4tbGVmdDogNTJweDsKfQoKLmNvbW1lbnQtYWN0aW9ucyB7CiAgZGlzcGxheTogZmxleDsKICBnYXA6IDE2cHg7CiAgbWFyZ2luLXRvcDogMTJweDsKICBtYXJnaW4tbGVmdDogNTJweDsKfQoKLmNvbW1lbnQtYWN0aW9uIHsKICBmb250LXNpemU6IDEycHg7CiAgY29sb3I6ICM5OTk7CiAgY3Vyc29yOiBwb2ludGVyOwogIGRpc3BsYXk6IGZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKfQoKLmNvbW1lbnQtYWN0aW9uIC5hbnRpY29uIHsKICBtYXJnaW4tcmlnaHQ6IDRweDsKICBmb250LXNpemU6IDE0cHg7Cn0KCi5jb21tZW50LWFjdGlvbjpob3ZlciB7CiAgY29sb3I6ICMzNjkwY2Y7Cn0KCi8qIOebuOWFs+W4luWtkCAqLwoucmVsYXRlZC1wb3N0cyB7CiAgcGFkZGluZzogMzJweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICBib3JkZXItdG9wOiAxcHggc29saWQgI2YwZjBmMDsKfQoKLnJlbGF0ZWQtcG9zdHMtaGVhZGVyIHsKICBmb250LXNpemU6IDIwcHg7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBtYXJnaW4tYm90dG9tOiAyNHB4OwogIGNvbG9yOiAjMzMzOwp9CgoucmVsYXRlZC1wb3N0cy1ncmlkIHsKICBkaXNwbGF5OiBncmlkOwogIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7CiAgZ2FwOiAyNHB4Owp9CgoucmVsYXRlZC1wb3N0LWNhcmQgewogIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBib3gtc2hhZG93OiAwIDRweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7CiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKfQoKLnJlbGF0ZWQtcG9zdC1jYXJkOmhvdmVyIHsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7CiAgYm94LXNoYWRvdzogMCA4cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMSk7Cn0KCi5yZWxhdGVkLXBvc3QtaW1hZ2UgewogIGhlaWdodDogMTYwcHg7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi5yZWxhdGVkLXBvc3QtaW1hZ2UgaW1nIHsKICB3aWR0aDogMTAwJTsKICBoZWlnaHQ6IDEwMCU7CiAgb2JqZWN0LWZpdDogY292ZXI7CiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTsKfQoKLnJlbGF0ZWQtcG9zdC1jYXJkOmhvdmVyIC5yZWxhdGVkLXBvc3QtaW1hZ2UgaW1nIHsKICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpOwp9CgoucmVsYXRlZC1wb3N0LWNvbnRlbnQgewogIHBhZGRpbmc6IDE2cHg7Cn0KCi5yZWxhdGVkLXBvc3QtdGl0bGUgewogIGZvbnQtc2l6ZTogMTZweDsKICBmb250LXdlaWdodDogNTAwOwogIG1hcmdpbi1ib3R0b206IDhweDsKICBjb2xvcjogIzMzMzsKICBvdmVyZmxvdzogaGlkZGVuOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogIGRpc3BsYXk6IC13ZWJraXQtYm94OwogIC13ZWJraXQtbGluZS1jbGFtcDogMjsKICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOwogIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgaGVpZ2h0OiA0NC44cHg7Cn0KCi5yZWxhdGVkLXBvc3QtbWV0YSB7CiAgZGlzcGxheTogZmxleDsKICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgZm9udC1zaXplOiAxMnB4OwogIGNvbG9yOiAjOTk5Owp9CgovKiDlm57liLDpobbpg6jmjInpkq4gKi8KLmJhY2stdG8tdG9wIHsKICBwb3NpdGlvbjogZml4ZWQ7CiAgYm90dG9tOiA0MHB4OwogIHJpZ2h0OiA0MHB4OwogIHdpZHRoOiA1MHB4OwogIGhlaWdodDogNTBweDsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgYmFja2dyb3VuZDogd2hpdGU7CiAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogIGRpc3BsYXk6IGZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICBjb2xvcjogIzU1NTsKICBmb250LXNpemU6IDIwcHg7CiAgY3Vyc29yOiBwb2ludGVyOwogIHRyYW5zaXRpb246IGFsbCAwLjNzOwogIHotaW5kZXg6IDEwMDsKICBvcGFjaXR5OiAwOwogIHZpc2liaWxpdHk6IGhpZGRlbjsKfQoKLmJhY2stdG8tdG9wLnZpc2libGUgewogIG9wYWNpdHk6IDE7CiAgdmlzaWJpbGl0eTogdmlzaWJsZTsKfQoKLmJhY2stdG8tdG9wOmhvdmVyIHsKICBiYWNrZ3JvdW5kOiAjMzY5MGNmOwogIGNvbG9yOiB3aGl0ZTsKICBib3gtc2hhZG93OiAwIDZweCAxNnB4IHJnYmEoNTQsIDE0NCwgMjA3LCAwLjQpOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTsKfQoKLyog54Kr6YW357KS5a2Q5pWI5p6cICovCi5wYXJ0aWNsZXMgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0b3A6IDA7CiAgbGVmdDogMDsKICB3aWR0aDogMTAwJTsKICBoZWlnaHQ6IDEwMCU7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICB6LWluZGV4OiAwOwp9CgoucGFydGljbGUgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwogIGFuaW1hdGlvbjogZmxvYXQgM3MgaW5maW5pdGU7Cn0KCkBrZXlmcmFtZXMgZmxvYXQgewogIDAlLCAxMDAlIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICB9CiAgNTAlIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7CiAgfQp9CgovKiDlhoXlrrnljLrln5/nvo7ljJYgKi8KLmNvbnRlbnQtYXJlYSB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHotaW5kZXg6IDE7Cn0KCi8qIOWTjeW6lOW8j+W4g+WxgCAqLwpAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAucG9zdC1oZWFkZXIgewogICAgcGFkZGluZzogMzBweCAyMHB4IDIwcHg7CiAgfQogIAogIC5wb3N0LXRpdGxlIHsKICAgIGZvbnQtc2l6ZTogMjJweDsKICB9CiAgCiAgLmF1dGhvci1jYXJkIHsKICAgIG1hcmdpbi1sZWZ0OiAyMHB4OwogIH0KICAKICAuYXV0aG9yLWF2YXRhciB7CiAgICB3aWR0aDogNjBweDsKICAgIGhlaWdodDogNjBweDsKICB9CiAgCiAgLnBvc3QtY29udGVudCwKICAucG9zdC1hY3Rpb25zLAogIC5jb21tZW50cy1zZWN0aW9uLAogIC5yZWxhdGVkLXBvc3RzIHsKICAgIHBhZGRpbmc6IDIwcHg7CiAgfQogIAogIC5yZWxhdGVkLXBvc3RzLWdyaWQgewogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICBnYXA6IDE2cHg7CiAgfQogIAogIC5iYWNrLXRvLXRvcCB7CiAgICBib3R0b206IDIwcHg7CiAgICByaWdodDogMjBweDsKICAgIHdpZHRoOiA0MHB4OwogICAgaGVpZ2h0OiA0MHB4OwogIH0KfQoKLyog5Yqo55S75pWI5p6cICovCkBrZXlmcmFtZXMgZmFkZUluIHsKICBmcm9tIHsKICAgIG9wYWNpdHk6IDA7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7CiAgfQogIHRvIHsKICAgIG9wYWNpdHk6IDE7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgfQp9CgouZmFkZS1pbiB7CiAgYW5pbWF0aW9uOiBmYWRlSW4gMC42cyBlYXNlIGZvcndhcmRzOwp9CgouZmFkZS1pbi1kZWxheS0xIHsKICBhbmltYXRpb246IGZhZGVJbiAwLjZzIGVhc2UgMC4xcyBmb3J3YXJkczsKICBvcGFjaXR5OiAwOwp9CgouZmFkZS1pbi1kZWxheS0yIHsKICBhbmltYXRpb246IGZhZGVJbiAwLjZzIGVhc2UgMC4ycyBmb3J3YXJkczsKICBvcGFjaXR5OiAwOwp9CgouZmFkZS1pbi1kZWxheS0zIHsKICBhbmltYXRpb246IGZhZGVJbiAwLjZzIGVhc2UgMC4zcyBmb3J3YXJkczsKICBvcGFjaXR5OiAwOwp9CgovKiDpmIXor7vov5vluqbmnaEgKi8KLnJlYWRpbmctcHJvZ3Jlc3MgewogIHBvc2l0aW9uOiBmaXhlZDsKICB0b3A6IDA7CiAgbGVmdDogMDsKICB3aWR0aDogMDsKICBoZWlnaHQ6IDRweDsKICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICMzNjkwY2YsICM2ZGM2ZmYpOwogIHotaW5kZXg6IDEwMDA7CiAgdHJhbnNpdGlvbjogd2lkdGggMC4xczsKfQoKLyog6Ieq5a6a5LmJ5rua5Yqo5p2hICovCjo6LXdlYmtpdC1zY3JvbGxiYXIgewogIHdpZHRoOiA4cHg7CiAgaGVpZ2h0OiA4cHg7Cn0KCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogIGJhY2tncm91bmQ6ICNmMWYxZjE7CiAgYm9yZGVyLXJhZGl1czogMTBweDsKfQoKOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgYmFja2dyb3VuZDogI2MxYzFjMTsKICBib3JkZXItcmFkaXVzOiAxMHB4Owp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICBiYWNrZ3JvdW5kOiAjMzY5MGNmOwp9Cg=="},{"version":3,"sources":["Article.vue"],"names":[],"mappings":";AAoTA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA","file":"Article.vue","sourceRoot":"src/views/communtiy","sourcesContent":["<template>\n <!-- 主容器 -->\n <div>\n <!-- 搜索表单 -->\n <SearchForm\n ref=\"searchForm\"\n :loading=\"loading\"\n :options=\"searchOptions\"\n @search=\"search\"\n @reset=\"search\"\n />\n <!-- 标签选择器 -->\n <a-card\n :bordered=\"false\"\n class=\"ant-pro-components-tag-select\"\n style=\"margin-bottom: -82px\"\n >\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 <!-- 类目选项 -->\n <!-- 全部选项 -->\n <tag-select-option value=\"全部\" @click.native=\"getList\"\n ><h3><a-icon type=\"audit\" />全部</h3></tag-select-option\n >\n <tag-select-option value=\"公告\" @click.native=\"search('公告')\"\n ><h3><a-icon type=\"audit\" />公告</h3></tag-select-option\n >\n <tag-select-option value=\"交流\" @click.native=\"search('交流')\"\n ><h3><a-icon type=\"audit\" />交流</h3></tag-select-option\n >\n <tag-select-option value=\"讨论\" @click.native=\"search('讨论')\"\n ><h3><a-icon type=\"audit\" />讨论</h3></tag-select-option\n >\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 :pagination=\"pagination\"\n @change=\"changePage\"\n >\n <div class=\"side-brick\">\n <ul class=\"brick-box\">\n <li class=\"brick-list\" v-for=\"item in data\" key=\"item.id\">\n <router-link :to=\"'/community/pages?id=' + item.articleId\">\n <a class=\"item-box-retina\">\n <figure class=\"item-box-img\">\n <!-- 文章图片 -->\n <!-- 调用extractImageUrl方法并传递文章内容 -->\n <img\n class=\"lazy\"\n :src=\"extractImageUrl(item.articleContent)\"\n alt=\"Article Cover\"\n />\n <!-- <img class=\"lazy\" :src=\"item.articleContent.match(imageUrlRegex)\" > -->\n <!-- 文章标题 -->\n <h3>{{ item.articleTitle }}</h3>\n </figure>\n <!-- 文章内容 -->\n <p class=\"item-user-info\" v-html=\"item.articleContent\"></p>\n <p class=\"item-user-author\">\n <img src=\"/logo.png\" :alt=\"userData[item.userId]\" />\n <!-- 文章作者 -->\n <span class=\"comment-username\"\n >{{ userData[item.userId]\n }}<span class=\"autlv aut-5 vs-level\">V</span></span\n >\n <span class=\"comment-tip\"\n ><i class=\"icon font-time\"></i\n >{{ item.publishTime | formatTime }}</span\n >\n </p>\n </a>\n </router-link>\n </li>\n </ul>\n </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 userData: [],\n imageUrlRegex: /(http[s]?:\\/\\/[^(\\s|\")]+\\.(png|jpg|jpeg|gif|webp))/gi,\n current: 1,\n pageSize: 8,\n loading: true,\n loadingMore: false,\n data: [],\n originalUsers: [],\n total: 0,\n form: this.$form.createForm(this),\n };\n },\n mounted() {\n this.getUser();\n this.$watch(() => [this.pageSize, this.current], this.getList, {\n immediate: true,\n });\n },\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 },\n computed: {\n searchOptions() {\n return createSearchOptions.call(this);\n },\n pagination() {\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: {\n extractImageUrl(content) {\n // 定义匹配图片URL的正则表达式\n const imageUrlRegex =\n /(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 // 避免浏览器缓存\n const randomSeed = Math.floor(Math.random() * 10000); // 生成一个0到9999之间的随机数\n // 如果没有找到匹配的图片,可以使用随机图片\n return \"https://api.7585.net.cn/bing/api.php?rand=1?\" + randomSeed;\n },\n async 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 =\n /(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 // 搜索\n search() {\n this.current = 1;\n this.getList();\n },\n // 分页切换\n changePage(current, pageSize) {\n this.current = current;\n this.pageSize = pageSize;\n this.getList();\n },\n handleChange(value) {\n console.log(`selected ${value}`);\n },\n getUser() {\n this.$api\n .AllUser()\n .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 console.log(this.userData);\n })\n .catch((error) => {\n console.error(error);\n });\n },\n async getList() {\n try {\n // 开始加载,显示加载指示器\n this.loading = true;\n this.query = this.$refs.searchForm.getResult();\n // 使用 await 直接等待异步操作的结果\n const res = await this.$api.AllArticle();\n // 打印响应结果\n this.originalUsers = res.data;\n this.filterUsers(); // 调用过滤用户方法\n console.log(\"res\", res.data);\n // 使用响应结果更新数据\n this.total = res.data.length;\n } catch (error) {\n // 处理可能出现的错误\n console.error(\"获取文章列表失败:\", error);\n } finally {\n // 无论成功还是失败,最后都会执行,隐藏加载指示器\n this.loading = false;\n }\n },\n // 搜索\n filterUsers() {\n let filteredUsers = this.originalUsers.slice(); // 复制原始用户数据\n console.log(this.query);\n if (this.query.articleTitle) {\n filteredUsers = filteredUsers.filter((user) =>\n user.articleTitle.includes(this.query.articleTitle)\n );\n }\n\n if (this.query.userName) {\n filteredUsers = filteredUsers.filter((user) =>\n user.userId.includes(this.query.userName)\n );\n }\n if (this.query.articleContent) {\n filteredUsers = filteredUsers.filter((user) =>\n user.articleContent.includes(this.query.articleContent)\n );\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 {\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</script>\n\n<style lang=\"less\" scoped>\n/* 帖子详情页美化样式 */\n\n/* 页面背景与整体布局 */\n.post-detail-container {\n max-width: 1200px;\n margin: 0 auto;\n padding: 24px;\n background-color: transparent;\n}\n\n.post-detail-wrapper {\n background: rgba(255, 255, 255, 0.95);\n border-radius: 16px;\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);\n overflow: hidden;\n transition: all 0.4s ease;\n position: relative;\n}\n\n/* 炫酷背景渐变 */\n.page-background {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: linear-gradient(120deg, #f6f8fa 0%, #e8f4fc 50%, #edf7ff 100%);\n background-size: 400% 400%;\n animation: gradientBG 15s ease infinite;\n z-index: -1;\n}\n\n@keyframes gradientBG {\n 0% {\n background-position: 0% 50%;\n }\n 50% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n}\n\n/* 帖子标题区域 */\n.post-header {\n position: relative;\n padding: 40px 32px 24px;\n background: linear-gradient(135deg, #3690cf, #2a78b8);\n color: white;\n overflow: hidden;\n}\n\n.post-header:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPgogIDxkZWZzPgogICAgPHBhdHRlcm4gaWQ9InBhdHRlcm4iIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgcGF0dGVyblRyYW5zZm9ybT0icm90YXRlKDQ1KSI+CiAgICAgIDxjaXJjbGUgY3g9IjIwIiBjeT0iMjAiIHI9IjEuNSIgZmlsbD0iI2ZmZiIgZmlsbC1vcGFjaXR5PSIwLjEiIC8+CiAgICA8L3BhdHRlcm4+CiAgPC9kZWZzPgogIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjcGF0dGVybikiIC8+Cjwvc3ZnPg==');\n opacity: 0.4;\n}\n\n.post-title {\n font-size: 28px;\n font-weight: 600;\n margin-bottom: 16px;\n position: relative;\n text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.post-meta {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 20px;\n position: relative;\n font-size: 14px;\n color: rgba(255, 255, 255, 0.9);\n}\n\n.post-meta-item {\n display: flex;\n align-items: center;\n}\n\n.post-meta-item .anticon {\n margin-right: 6px;\n font-size: 16px;\n}\n\n.post-category {\n display: inline-block;\n padding: 4px 12px;\n border-radius: 20px;\n background: rgba(255, 255, 255, 0.2);\n backdrop-filter: blur(5px);\n margin-right: 8px;\n font-size: 13px;\n font-weight: 500;\n}\n\n/* 作者信息卡片 */\n.author-card {\n display: flex;\n align-items: center;\n margin-top: -40px;\n margin-left: 32px;\n margin-bottom: 16px;\n z-index: 10;\n position: relative;\n}\n\n.author-avatar {\n width: 80px;\n height: 80px;\n border-radius: 50%;\n border: 4px solid white;\n box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);\n object-fit: cover;\n background-color: #f0f0f0;\n}\n\n.author-info {\n margin-left: 16px;\n}\n\n.author-name {\n font-size: 18px;\n font-weight: 600;\n color: #333;\n display: flex;\n align-items: center;\n}\n\n.author-level {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 22px;\n height: 22px;\n border-radius: 6px;\n background: linear-gradient(135deg, #ff9800, #ff5722);\n color: white;\n font-size: 12px;\n font-weight: bold;\n margin-left: 8px;\n box-shadow: 0 2px 4px rgba(255, 152, 0, 0.3);\n}\n\n.author-status {\n font-size: 13px;\n color: #666;\n margin-top: 4px;\n}\n\n/* 帖子内容区域 */\n.post-content {\n padding: 60px 32px 40px;\n font-size: 16px;\n line-height: 1.8;\n color: #333;\n}\n\n.post-content img {\n max-width: 100%;\n height: auto;\n border-radius: 8px;\n margin: 24px 0;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n transition: transform 0.3s ease, box-shadow 0.3s ease;\n}\n\n.post-content img:hover {\n transform: scale(1.01);\n box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);\n}\n\n.post-content p {\n margin-bottom: 20px;\n}\n\n.post-content h1, \n.post-content h2, \n.post-content h3 {\n margin-top: 32px;\n margin-bottom: 16px;\n font-weight: 600;\n color: #222;\n}\n\n.post-content h1 {\n font-size: 26px;\n border-bottom: 1px solid #eee;\n padding-bottom: 12px;\n}\n\n.post-content h2 {\n font-size: 22px;\n}\n\n.post-content h3 {\n font-size: 18px;\n}\n\n.post-content blockquote {\n border-left: 4px solid #3690cf;\n padding: 12px 20px;\n margin: 20px 0;\n background-color: #f8f9fb;\n border-radius: 0 8px 8px 0;\n color: #555;\n font-style: italic;\n}\n\n.post-content a {\n color: #3690cf;\n text-decoration: none;\n border-bottom: 1px dashed rgba(54, 144, 207, 0.5);\n transition: all 0.2s;\n}\n\n.post-content a:hover {\n color: #2a78b8;\n border-bottom: 1px solid #2a78b8;\n}\n\n.post-content pre {\n background-color: #282c34;\n border-radius: 8px;\n padding: 16px;\n overflow-x: auto;\n margin: 20px 0;\n position: relative;\n}\n\n.post-content pre code {\n color: #abb2bf;\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;\n font-size: 14px;\n line-height: 1.5;\n}\n\n.post-content code {\n background-color: #f6f8fa;\n padding: 2px 6px;\n border-radius: 4px;\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;\n font-size: 0.9em;\n color: #e83e8c;\n}\n\n.post-content pre code {\n background-color: transparent;\n padding: 0;\n color: inherit;\n}\n\n/* 高亮代码块标题 */\n.code-block-header {\n position: absolute;\n top: 0;\n right: 0;\n background: rgba(255, 255, 255, 0.1);\n padding: 4px 12px;\n border-radius: 0 8px 0 8px;\n font-size: 12px;\n color: #aaa;\n}\n\n/* 帖子操作区域 */\n.post-actions {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 20px 32px;\n border-top: 1px solid #f0f0f0;\n background-color: #f9fafc;\n}\n\n.post-action-btn {\n display: inline-flex;\n align-items: center;\n padding: 8px 16px;\n border-radius: 20px;\n font-size: 14px;\n color: #666;\n background-color: white;\n border: 1px solid #e8e8e8;\n transition: all 0.25s;\n cursor: pointer;\n}\n\n.post-action-btn:hover {\n color: #3690cf;\n border-color: #3690cf;\n background-color: rgba(54, 144, 207, 0.05);\n}\n\n.post-action-btn .anticon {\n margin-right: 6px;\n font-size: 16px;\n}\n\n.post-action-btn.liked {\n color: #ff4d4f;\n border-color: #ff4d4f;\n background-color: rgba(255, 77, 79, 0.05);\n}\n\n.post-action-btn.saved {\n color: #faad14;\n border-color: #faad14;\n background-color: rgba(250, 173, 20, 0.05);\n}\n\n.post-action-group {\n display: flex;\n gap: 12px;\n}\n\n/* 评论区域 */\n.comments-section {\n padding: 32px;\n background-color: #f9fafc;\n border-top: 1px solid #f0f0f0;\n}\n\n.comments-header {\n font-size: 20px;\n font-weight: 600;\n margin-bottom: 24px;\n color: #333;\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.comments-count {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: #3690cf;\n color: white;\n height: 24px;\n padding: 0 10px;\n border-radius: 12px;\n font-size: 14px;\n font-weight: 500;\n}\n\n.comment-form {\n margin-bottom: 32px;\n}\n\n.comment-textarea {\n width: 100%;\n border: 1px solid #e8e8e8;\n border-radius: 12px;\n padding: 16px;\n min-height: 120px;\n resize: none;\n font-size: 14px;\n transition: all 0.3s;\n background-color: white;\n}\n\n.comment-textarea:focus {\n outline: none;\n border-color: #3690cf;\n box-shadow: 0 0 0 2px rgba(54, 144, 207, 0.2);\n}\n\n.comment-form-actions {\n display: flex;\n justify-content: flex-end;\n margin-top: 16px;\n}\n\n.comment-submit {\n padding: 8px 24px;\n border-radius: 20px;\n background: linear-gradient(135deg, #3690cf, #2a78b8);\n color: white;\n font-size: 14px;\n font-weight: 500;\n border: none;\n cursor: pointer;\n transition: all 0.3s;\n}\n\n.comment-submit:hover {\n background: linear-gradient(135deg, #2a78b8, #1e5c8e);\n transform: translateY(-2px);\n box-shadow: 0 4px 8px rgba(42, 120, 184, 0.3);\n}\n\n/* 单个评论样式 */\n.comment-item {\n margin-bottom: 24px;\n padding-bottom: 24px;\n border-bottom: 1px solid #f0f0f0;\n}\n\n.comment-item:last-child {\n border-bottom: none;\n margin-bottom: 0;\n padding-bottom: 0;\n}\n\n.comment-header {\n display: flex;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.comment-avatar {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n object-fit: cover;\n background-color: #f0f0f0;\n margin-right: 12px;\n}\n\n.comment-info {\n flex: 1;\n}\n\n.comment-author {\n font-weight: 500;\n margin-right: 8px;\n color: #333;\n}\n\n.comment-meta {\n font-size: 12px;\n color: #999;\n}\n\n.comment-body {\n font-size: 14px;\n line-height: 1.6;\n color: #444;\n margin-left: 52px;\n}\n\n.comment-actions {\n display: flex;\n gap: 16px;\n margin-top: 12px;\n margin-left: 52px;\n}\n\n.comment-action {\n font-size: 12px;\n color: #999;\n cursor: pointer;\n display: flex;\n align-items: center;\n}\n\n.comment-action .anticon {\n margin-right: 4px;\n font-size: 14px;\n}\n\n.comment-action:hover {\n color: #3690cf;\n}\n\n/* 相关帖子 */\n.related-posts {\n padding: 32px;\n background-color: white;\n border-top: 1px solid #f0f0f0;\n}\n\n.related-posts-header {\n font-size: 20px;\n font-weight: 600;\n margin-bottom: 24px;\n color: #333;\n}\n\n.related-posts-grid {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 24px;\n}\n\n.related-post-card {\n border-radius: 12px;\n overflow: hidden;\n box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);\n transition: all 0.3s ease;\n background-color: white;\n}\n\n.related-post-card:hover {\n transform: translateY(-5px);\n box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);\n}\n\n.related-post-image {\n height: 160px;\n overflow: hidden;\n position: relative;\n}\n\n.related-post-image img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n transition: transform 0.5s ease;\n}\n\n.related-post-card:hover .related-post-image img {\n transform: scale(1.05);\n}\n\n.related-post-content {\n padding: 16px;\n}\n\n.related-post-title {\n font-size: 16px;\n font-weight: 500;\n margin-bottom: 8px;\n color: #333;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n line-height: 1.4;\n height: 44.8px;\n}\n\n.related-post-meta {\n display: flex;\n justify-content: space-between;\n font-size: 12px;\n color: #999;\n}\n\n/* 回到顶部按钮 */\n.back-to-top {\n position: fixed;\n bottom: 40px;\n right: 40px;\n width: 50px;\n height: 50px;\n border-radius: 50%;\n background: white;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n display: flex;\n align-items: center;\n justify-content: center;\n color: #555;\n font-size: 20px;\n cursor: pointer;\n transition: all 0.3s;\n z-index: 100;\n opacity: 0;\n visibility: hidden;\n}\n\n.back-to-top.visible {\n opacity: 1;\n visibility: visible;\n}\n\n.back-to-top:hover {\n background: #3690cf;\n color: white;\n box-shadow: 0 6px 16px rgba(54, 144, 207, 0.4);\n transform: translateY(-5px);\n}\n\n/* 炫酷粒子效果 */\n.particles {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n z-index: 0;\n}\n\n.particle {\n position: absolute;\n border-radius: 50%;\n background: rgba(255, 255, 255, 0.3);\n animation: float 3s infinite;\n}\n\n@keyframes float {\n 0%, 100% {\n transform: translateY(0);\n }\n 50% {\n transform: translateY(-20px);\n }\n}\n\n/* 内容区域美化 */\n.content-area {\n position: relative;\n z-index: 1;\n}\n\n/* 响应式布局 */\n@media (max-width: 768px) {\n .post-header {\n padding: 30px 20px 20px;\n }\n \n .post-title {\n font-size: 22px;\n }\n \n .author-card {\n margin-left: 20px;\n }\n \n .author-avatar {\n width: 60px;\n height: 60px;\n }\n \n .post-content,\n .post-actions,\n .comments-section,\n .related-posts {\n padding: 20px;\n }\n \n .related-posts-grid {\n grid-template-columns: 1fr;\n gap: 16px;\n }\n \n .back-to-top {\n bottom: 20px;\n right: 20px;\n width: 40px;\n height: 40px;\n }\n}\n\n/* 动画效果 */\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.fade-in {\n animation: fadeIn 0.6s ease forwards;\n}\n\n.fade-in-delay-1 {\n animation: fadeIn 0.6s ease 0.1s forwards;\n opacity: 0;\n}\n\n.fade-in-delay-2 {\n animation: fadeIn 0.6s ease 0.2s forwards;\n opacity: 0;\n}\n\n.fade-in-delay-3 {\n animation: fadeIn 0.6s ease 0.3s forwards;\n opacity: 0;\n}\n\n/* 阅读进度条 */\n.reading-progress {\n position: fixed;\n top: 0;\n left: 0;\n width: 0;\n height: 4px;\n background: linear-gradient(90deg, #3690cf, #6dc6ff);\n z-index: 1000;\n transition: width 0.1s;\n}\n\n/* 自定义滚动条 */\n::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n}\n\n::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 10px;\n}\n\n::-webkit-scrollbar-thumb {\n background: #c1c1c1;\n border-radius: 10px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: #3690cf;\n}\n</style>\n"]}]} |