1 line
19 KiB
JSON
1 line
19 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":1742646402776},{"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:Ci5hbnQtcHJvLWNvbXBvbmVudHMtdGFnLXNlbGVjdCB7CiAgOmRlZXAoLmFudC1wcm8tdGFnLXNlbGVjdCAuYW50LXRhZykgewogICAgbWFyZ2luLXJpZ2h0OiAyNHB4OwogICAgcGFkZGluZzogMCA4cHg7CiAgICBmb250LXNpemU6IDE0cHg7CiAgfQp9Ci5hbnQtcHJvLWNvbXBvbmVudHMtdGFnLXNlbGVjdCAuYW50LXRhZy1jaGVja2FibGUtY2hlY2tlZCB7CiAgICBjb2xvcjogYmxhY2s7IC8qIOiuvue9ruS4uuS9oOWWnOasoueahOminOiJsiAqLwp9Ci5saXN0LWFydGljbGVzLXRyaWdnZXIgewogIG1hcmdpbi1sZWZ0OiAxMnB4Owp9Ci5ib3gtc2hvdywgLnBvc3QtbGlzdCB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE5MiwgMTExLCAxMTEsIDAuOTUpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMjEsIDIyMSwgMjIxLCAwLjI4KTsKICAgIHBhZGRpbmc6IDAgMjBweDsKICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7CiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMHB4IDEwcHggLTJweCByZ2JhKDE1OCwxNTgsMTU4LDAuMik7CiAgICBib3gtc2hhZG93OiAwcHggMHB4IDEwcHggLTJweCByZ2JhKDE1OCwxNTgsMTU4LDAuMik7Cn1hcnRpY2xlLCBpbnB1dCwgdGV4dGFyZWEsIGIsIHVsLCBsaSwgaSwgYnV0dG9uLCBhLCAuc3dpcGVyLWJ1dHRvbi1uZXh0LCAuc3dpcGVyLWJ1dHRvbi1wcmV2IHsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1pbi1vdXQgMC4zczsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1pbi1vdXQgMC4zczsKICAgIC1vLXRyYW5zaXRpb246IGVhc2UtaW4tb3V0IDAuM3M7CiAgICAtbXMtdHJhbnNpdGlvbjogZWFzZS1pbi1vdXQgMC4zczsKICAgIHRyYW5zaXRpb246IGVhc2UtaW4tb3V0IDAuM3M7Cn1hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtYWluLCBtZW51LCBuYXYsIHNlY3Rpb24sIHN1bW1hcnkgewogICAgZGlzcGxheTogYmxvY2s7Cn1odG1sLCBib2R5LCBkaXYsIHNwYW4sIG9iamVjdCwgaWZyYW1lLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsIGFiYnIsIGFkZHJlc3MsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgc2FtcCwgc21hbGwsIHN0cm9uZywgc3ViLCBzdXAsIHZhciwgYiwgaSwgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLCBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiwgc3VtbWFyeSwgdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDA7CiAgICBvdXRsaW5lOiAwOwogICAgYm9yZGVyOiAwOwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7CiAgICBmb250LXNpemU6IDEwMCU7Cn1hcnRpY2xlIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgdW5pY29kZS1iaWRpOiBpc29sYXRlOwp9Ym9keSB7CiAgICBjb2xvcjogIzY2NjsKICAgIGZvbnQtZmFtaWx5OiAiTWljcm9zb2Z0IFlhaGVpIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTsKICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkOwogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjsKfQouc2lkZS10aXRsZS13cmFwIHsKICAgIG1hcmdpbi10b3A6IDE1cHg7CiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkOwp9LnNpZGUtdGl0bGUtd3JhcCBoMy53aWRnZXQtdGl0bGUgewogICAgZm9udC1zaXplOiAxNnB4OwogICAgY29sb3I6ICMzMzM7CiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOwogICAgcGFkZGluZy1sZWZ0OiAxMHB4OwogICAgbWFyZ2luLWxlZnQ6IDBweDsKICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzM2OTBjZjsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7Cn0uc2lkZS10aXRsZS13cmFwIHNwYW4sIC5zaWRlLXRpdGxlLXdyYXAgc3Bhbi5zdWJ1cmwgYSB7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBjb2xvcjogIzk5OTsKfS5icmljay1ib3ggewogICAgbWFyZ2luLXJpZ2h0OiAtMiU7CiAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKfWxpLmJyaWNrLWxpc3QgewogICAgZmxvYXQ6IGxlZnQ7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB3aWR0aDogMjMlOwogICAgbWFyZ2luLXJpZ2h0OiAyJTsKICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlOwp9ZmlndXJlLml0ZW0tYm94LWltZyB7CiAgICBoZWlnaHQ6IDE5MHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKfXAuaXRlbS11c2VyLWluZm8gewogICAgaGVpZ2h0OiA0NHB4OwogICAgbWFyZ2luLXRvcDogMTBweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKfXAuaXRlbS11c2VyLWF1dGhvciB7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgcGFkZGluZy10b3A6IDEwcHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLnNpZGUtYnJpY2sgewogICAgbWFyZ2luLXRvcDogMjBweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMjEsIDIyMSwgMjIxLCAwLjI4KTsKICAgIHBhZGRpbmc6IDAgMjBweDsKICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7CiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMHB4IDEwcHggLTJweCByZ2JhKDE1OCwxNTgsMTU4LDAuMik7CiAgICBib3gtc2hhZG93OiAwcHggMHB4IDEwcHggLTJweCByZ2JhKDE1OCwxNTgsMTU4LDAuMik7Cn0K"},{"version":3,"sources":["Article.vue"],"names":[],"mappings":";AAgRA;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;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":"Article.vue","sourceRoot":"src/views/communtiy","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"]}]} |