93.js 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152
  1. exports.ids = [93];
  2. exports.modules = {
  3. /***/ 135:
  4. /***/ (function(module, exports, __webpack_require__) {
  5. module.exports = __webpack_require__.p + "img/filter-icon@2x.8c6c44e.png";
  6. /***/ }),
  7. /***/ 177:
  8. /***/ (function(module, exports) {
  9. // Exports
  10. module.exports = {};
  11. /***/ }),
  12. /***/ 178:
  13. /***/ (function(module, exports) {
  14. // Exports
  15. module.exports = {};
  16. /***/ }),
  17. /***/ 399:
  18. /***/ (function(module, exports) {
  19. module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAJKADAAQAAAABAAAAJAAAAAAqDuP8AAACnUlEQVRYCe2Vy2sTURTG8zQIPkAQJKK0KCi4UBAXiqiYtoqgi0KwC4W8H5uCq+4EBf+CEBIGF1nookS6KUoXbTUigoK4UBBBUAQXvhLdKEGS+LuhdzhMZqY2gnUxF27Oud95fXPuIz6fN7wOeB3wOuB14P/ugN+OXj6fP9rtdq8FAoG37XZ7plarfbPzGwbLZrOHiLvh9/ubyCuGYXyReQJyofVer3ebgHFkLhKJLKbT6W3a9jcSMsfI+4B5jjyXkFet+WwJ4WR2DlKHg8HgcjKZ3G4NXsuarp+AwAIxW3Ucuc06GnMilMLhh3ZCHgyHw/cTicQOgf2xCpkYxe8RsFkEvaL718W6rw4w1A6FQuEU52ie9SaN8YWvmbFqtfpBY6tJyJzFZw5CG4XvC87nGHk+CayvOhJS1lwudxxxl7lFrVfGG2SMw/heA04SMuchUsce0T580PNQKDReLpe/akxKpy3r+1D0EcoEU96yvawbmUxmtO/k8AOZScjcwSzJPKUzMScyKpUrIeUAqScc6jFUdU31GCFxg9unyA0MbtMUZGYxbBDGx2ATlUqlJbABdVVCKoIkz2j1adTPIsMuiDbY1v0C80HmMr63wEICf8g2neHjvgvMVnU9Q9YIih2g2CK4vG0fVw7oS7YpTRcM7OaH4r8EdgEy8tZaU5vrNRFSUcVicV+n01lC3Wlm8fnUa3uTwjMQkDkXWq3WZL1e/yl8XVUZ7OoojWzTHtbLzN0St+jzvDPxUqnUtuCuy6EIqYy8UyO8U4rUqE2FObAptumXjc0VMvfa1cvGyKP2joN6km1S75Ics9Fo9OIwZFSSoTukGaRSqSh/K+q9OcI0ms3mNGemo+3rJuPxeHDdinuFvQ54HfA64HXgH3bgN6GQyECvQr8LAAAAAElFTkSuQmCC"
  20. /***/ }),
  21. /***/ 400:
  22. /***/ (function(module, exports, __webpack_require__) {
  23. module.exports = __webpack_require__.p + "img/filter-icon@2x.ccc5d6c.png";
  24. /***/ }),
  25. /***/ 401:
  26. /***/ (function(module, exports, __webpack_require__) {
  27. module.exports = __webpack_require__.p + "img/plus-icon@2x.2fc261c.png";
  28. /***/ }),
  29. /***/ 402:
  30. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  31. "use strict";
  32. __webpack_require__.r(__webpack_exports__);
  33. /* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_1cda8ce0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(177);
  34. /* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_1cda8ce0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_1cda8ce0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
  35. /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_1cda8ce0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_1cda8ce0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  36. /* harmony default export */ __webpack_exports__["default"] = (_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_1cda8ce0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default.a);
  37. /***/ }),
  38. /***/ 403:
  39. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  40. "use strict";
  41. __webpack_require__.r(__webpack_exports__);
  42. /* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(178);
  43. /* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
  44. /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  45. /* harmony default export */ __webpack_exports__["default"] = (_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a);
  46. /***/ }),
  47. /***/ 646:
  48. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  49. "use strict";
  50. // ESM COMPAT FLAG
  51. __webpack_require__.r(__webpack_exports__);
  52. // CONCATENATED MODULE: ./node_modules/@nuxt/webpack/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@nuxt/webpack/node_modules/vue-loader/lib??vue-loader-options!./pages/work_down/index.vue?vue&type=template&id=1cda8ce0&scoped=true&
  53. var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.mobile ? 'mobileMain' : '',style:({marginTop: _vm.mobile ? '0px !important':_vm.mainMarginTop, marginBottom: _vm.mobile ? '0px !important' : '30px !important'})},[(!_vm.mobile)?_vm._ssrNode("<div class=\"works-wrapper\" data-v-1cda8ce0>","</div>",[_vm._ssrNode("<div class=\"works-category\" data-v-1cda8ce0>","</div>",[_vm._ssrNode("<div class=\"works-category-one\" data-v-1cda8ce0>","</div>",[_vm._ssrNode("<a href=\"/works/\""+(_vm._ssrClass("works-category-one-item",_vm.pagination.selectedCateIdOne == '' ? 'active' : ''))+" data-v-1cda8ce0>\n 全部\n </a> "+(_vm._ssrList((_vm.categoryList),function(category){return ("<a"+(_vm._ssrAttr("href",("/works/" + (category.f_name) + "/")))+(_vm._ssrClass("works-category-one-item",_vm.pagination.selectedCateIdOne == category.f_name ? 'active' : ''))+" data-v-1cda8ce0>"+_vm._ssrEscape("\n "+_vm._s(category.name)+"\n ")+"</a>")}))+" "),_c('el-button',{staticClass:"add-works-btn",on:{"click":_vm.handleClickCreate}},[_vm._v("上传资源,快速赚钱")])],2),_vm._ssrNode(" "),_vm._ssrNode("<div class=\"works-category-two\" data-v-1cda8ce0>","</div>",[_vm._ssrNode("<img"+(_vm._ssrAttr("src",__webpack_require__(399)))+" alt=\"expand\""+(_vm._ssrClass("works-expand-arrow",_vm.categoryExpanded ? 'active' : ''))+" data-v-1cda8ce0> "),_vm._ssrNode("<div class=\"search-wrapper\" data-v-1cda8ce0>","</div>",[_vm._ssrNode("<div class=\"search-content\" data-v-1cda8ce0>","</div>",[_c('el-input',{staticClass:"search-input",attrs:{"placeholder":"源码搜索"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleKeywordSearch($event)}},model:{value:(_vm.pagination.keywords),callback:function ($$v) {_vm.$set(_vm.pagination, "keywords", $$v)},expression:"pagination.keywords"}}),_vm._ssrNode(" "),_c('el-button',{staticClass:"search-btn",on:{"click":_vm.handleKeywordSearch}},[_vm._v("搜索")])],2),_vm._ssrNode(" <div class=\"search-tips\" data-v-1cda8ce0>找不到想要的源码?<span data-v-1cda8ce0>请留言给我们</span></div>")],2),_vm._ssrNode(" <div"+(_vm._ssrClass("works-category-two-wrapper",_vm.categoryExpanded ? 'expand' : ''))+(_vm._ssrStyle(null,null, { display: (_vm.pagination.selectedCateIdOne == '') ? '' : 'none' }))+" data-v-1cda8ce0>"+(_vm._ssrList((_vm.categoryAll),function(category){return ("<a"+(_vm._ssrAttr("href",("/works/" + (category.f_name) + "/")))+(_vm._ssrClass("works-category-two-item",_vm.pagination.cate_id_two.indexOf(category.f_name) > -1 ? 'active' : ''))+" data-v-1cda8ce0>"+_vm._ssrEscape("\n "+_vm._s(category.name)+"\n ")+"</a>")}))+"</div> "+(_vm._ssrList((_vm.categoryList),function(category){return ("<div"+(_vm._ssrClass("works-category-two-wrapper",_vm.categoryExpanded ? 'expand' : ''))+(_vm._ssrStyle(null,null, { display: (_vm.pagination.selectedCateIdOne == category.f_name) ? '' : 'none' }))+" data-v-1cda8ce0>"+(_vm._ssrList((category.child),function(categoryChild){return ("<a"+(_vm._ssrAttr("href",("/works/" + (categoryChild.f_name) + "/")))+(_vm._ssrClass("works-category-two-item",_vm.pagination.cate_id_two.indexOf(categoryChild.f_name) > -1 ? 'active' : ''))+" data-v-1cda8ce0>"+_vm._ssrEscape("\n "+_vm._s(categoryChild.name)+"\n ")+"</a>")}))+"</div>")})))],2)],2),_vm._ssrNode(" "),_vm._ssrNode("<div class=\"filter-wrapper\" data-v-1cda8ce0>","</div>",[_vm._ssrNode("<div class=\"sort-content\" data-v-1cda8ce0><img"+(_vm._ssrAttr("src",__webpack_require__(400)))+" data-v-1cda8ce0> <span data-v-1cda8ce0>"+_vm._ssrEscape(_vm._s(_vm.priceSortText))+"</span></div> "),_vm._ssrNode("<div class=\"price-filter\" data-v-1cda8ce0>","</div>",[_c('el-radio-group',{on:{"change":_vm.handlePriceFilterChange},model:{value:(_vm.pagination.filter_price),callback:function ($$v) {_vm.$set(_vm.pagination, "filter_price", $$v)},expression:"pagination.filter_price"}},[_c('el-radio',{attrs:{"label":0}},[_vm._v("全部")]),_vm._v(" "),_c('el-radio',{attrs:{"label":1}},[_vm._v("付费")]),_vm._v(" "),_c('el-radio',{attrs:{"label":2}},[_vm._v("免费")])],1)],1)],2),_vm._ssrNode(" "),(_vm.worksList.length)?_c('div',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.loadingWorksList),expression:"loadingWorksList"}],staticClass:"works-list"},[_vm._ssrNode((_vm._ssrList((_vm.worksList),function(works,index){return ("<div class=\"works-item\" data-v-1cda8ce0><div class=\"works-detail-wrapper\" data-v-1cda8ce0><a"+(_vm._ssrAttr("href",(_vm.baseUrl + "/w/" + (works.wid))))+" data-v-1cda8ce0>"+((works.image)?("<img"+(_vm._ssrAttr("src",works.image))+" alt=\"works-image\" class=\"works-image\" data-v-1cda8ce0>"):"<!---->")+"</a> <div class=\"works-detail\""+(_vm._ssrStyle(null,{'width': works.image ? '630px' : '770px'}, null))+" data-v-1cda8ce0><a"+(_vm._ssrAttr("href",(_vm.baseUrl + "/w/" + (works.wid))))+" class=\"works-name\" data-v-1cda8ce0>"+_vm._ssrEscape(_vm._s(works.name))+"</a> <div class=\"works-description\" data-v-1cda8ce0>"+_vm._ssrEscape(_vm._s(works.description))+"</div> <div class=\"more-info-wrapper\" data-v-1cda8ce0><div class=\"price-info\" data-v-1cda8ce0><span class=\"works-price\" data-v-1cda8ce0>"+_vm._ssrEscape(_vm._s(Number(works.price) > 0 ? '¥' + works.price : '免费'))+"</span> "+((Number(works.down_num) > 0)?("<span class=\"download-count\" data-v-1cda8ce0>"+_vm._ssrEscape(_vm._s(works.down_num)+"人已下载")+"</span>"):"<!---->")+" <span class=\"file-format\" data-v-1cda8ce0>"+_vm._ssrEscape(_vm._s(works.file_type)+"格式")+"</span> <span class=\"file-size\" data-v-1cda8ce0>"+_vm._ssrEscape(_vm._s(works.file_size))+"</span></div> <div class=\"more-info\" data-v-1cda8ce0><img"+(_vm._ssrAttr("src",__webpack_require__(401)))+" alt class=\"plus-img\" data-v-1cda8ce0> <span class=\"plus-count\" data-v-1cda8ce0>"+_vm._ssrEscape(_vm._s(works.plus_co))+"</span> <span class=\"time\" data-v-1cda8ce0>"+_vm._ssrEscape(_vm._s(works.update_time))+"</span></div></div></div></div> <a"+(_vm._ssrAttr("href",(_vm.baseUrl + "/wo/" + (works.uid) + "/works")))+" class=\"works-user-wrapper\" data-v-1cda8ce0><img"+(_vm._ssrAttr("src",works.icon_url))+" alt=\"avatar\" class=\"user-avatar\" data-v-1cda8ce0> <div class=\"username\" data-v-1cda8ce0>"+_vm._ssrEscape(_vm._s(works.nickname))+"</div> <div class=\"company\" data-v-1cda8ce0>"+_vm._ssrEscape(_vm._s(works.company)+" "+_vm._s(works.kill_title || ''))+"</div></a></div>")})))]):_vm._ssrNode(("<div class=\"result-empty-wrapper\" style=\"margin-top: 10px;\" data-v-1cda8ce0><img"+(_vm._ssrAttr("src",__webpack_require__(74)))+" alt=\"empty\" data-v-1cda8ce0> <span data-v-1cda8ce0>暂无搜索内容</span></div>")),_vm._ssrNode(" "),(_vm.pagination.total > _vm.pagination.pagesize)?_vm._ssrNode("<div class=\"pagination-wrapper\" data-v-1cda8ce0>","</div>",[_c('el-pagination',{attrs:{"background":"","layout":"prev, pager, next","current-page":_vm.pagination.page,"total":_vm.pagination.total,"page-size":_vm.pagination.pagesize},on:{"current-change":_vm.handlePageChange}})],1):_vm._e(),_vm._ssrNode(" "),_c('el-dialog',{staticClass:"remark-modal",attrs:{"visible":_vm.isShowRemarkDialog,"width":"520px","top":"10vh"},on:{"update:visible":function($event){_vm.isShowRemarkDialog=$event}}},[_c('div',{staticClass:"remark-title",attrs:{"slot":"title"},slot:"title"},[_vm._v("寻找源码")]),_vm._v(" "),_c('div',{staticClass:"remark-content"},[_c('el-form',{ref:"remarkForm",staticClass:"remark-form",attrs:{"model":_vm.remarkModel,"rules":_vm.remarkRules}},[_c('el-form-item',{attrs:{"label":"源码描述","prop":"remarkDescription"}},[_c('el-input',{staticClass:"remark-description",attrs:{"type":"textarea","placeholder":"请输入您要寻找的源码描述","maxlength":"1000","autosize":{ minRows: 6, maxRows: 12 },"show-word-limit":""},model:{value:(_vm.remarkModel.remarkDescription),callback:function ($$v) {_vm.$set(_vm.remarkModel, "remarkDescription", $$v)},expression:"remarkModel.remarkDescription"}})],1),_vm._v(" "),_c('el-form-item',{attrs:{"label":"联系方式","prop":"remarkContact"}},[_c('el-input',{staticClass:"remark-contact",attrs:{"type":"input","placeholder":"请输入您的手机号,方便我们找到源码后第一时间通知您"},model:{value:(_vm.remarkModel.remarkContact),callback:function ($$v) {_vm.$set(_vm.remarkModel, "remarkContact", $$v)},expression:"remarkModel.remarkContact"}})],1)],1),_vm._v(" "),_c('div',{staticClass:"action-wrapper"},[_c('el-button',{staticClass:"confirm-btn",attrs:{"loading":_vm.saveRemarkIsLoading},on:{"click":_vm.handleSaveRemark}},[_vm._v("提交")])],1)],1)])],2):_vm._ssrNode("<div class=\"works-wrapper-mobile\" data-v-1cda8ce0>","</div>",[_vm._ssrNode("<div class=\"works-category\" data-v-1cda8ce0><div class=\"works-category-one\" data-v-1cda8ce0><div class=\"category-scroller\" data-v-1cda8ce0><div"+(_vm._ssrClass("works-category-one-item",_vm.currentCategoryIndex === 0 ? 'active' : ''))+" data-v-1cda8ce0>\n 全部\n </div> "+(_vm._ssrList((_vm.categoryList),function(category,index){return ("<div"+(_vm._ssrClass("works-category-one-item",_vm.currentCategoryIndex === index + 1 ? 'active' : ''))+" data-v-1cda8ce0>"+_vm._ssrEscape("\n "+_vm._s(category.name)+"\n ")+"</div>")}))+"</div> <div class=\"filter-bg\" data-v-1cda8ce0></div> <div class=\"filter-wrapper\" data-v-1cda8ce0><img"+(_vm._ssrAttr("src",__webpack_require__(135)))+" alt=\"filter\" data-v-1cda8ce0></div></div> <div class=\"works-category-two\" data-v-1cda8ce0><div"+(_vm._ssrClass("works-category-two-wrapper",_vm.categoryExpanded ? 'expand' : ''))+(_vm._ssrStyle(null,null, { display: (_vm.currentCategoryIndex === 0) ? '' : 'none' }))+" data-v-1cda8ce0>"+(_vm._ssrList((_vm.categoryAll),function(category){return ("<div"+(_vm._ssrClass("works-category-two-item",_vm.pagination.cate_id_two.indexOf(category.f_name) > -1 ? 'active' : ''))+" data-v-1cda8ce0>"+_vm._ssrEscape("\n "+_vm._s(category.name)+"\n ")+"</div>")}))+"</div> "+(_vm._ssrList((_vm.categoryList),function(category,index){return ("<div"+(_vm._ssrClass("works-category-two-wrapper",_vm.categoryExpanded ? 'expand' : ''))+(_vm._ssrStyle(null,null, { display: (_vm.currentCategoryIndex === index + 1) ? '' : 'none' }))+" data-v-1cda8ce0>"+(_vm._ssrList((category.child),function(categoryChild){return ("<div"+(_vm._ssrClass("works-category-two-item",_vm.pagination.cate_id_two.indexOf(categoryChild.f_name) > -1 ? 'active' : ''))+" data-v-1cda8ce0>"+_vm._ssrEscape("\n "+_vm._s(categoryChild.name)+"\n ")+"</div>")}))+"</div>")}))+"</div></div> "),_vm._ssrNode("<div"+(_vm._ssrClass("works-list",_vm.showWxHeader ? 'works-list__showWxHeader' : ''))+" data-v-1cda8ce0>","</div>",[_c('ul',{directives:[{name:"infinite-scroll",rawName:"v-infinite-scroll",value:(_vm.handleLoadMoreWorks),expression:"handleLoadMoreWorks"}],staticClass:"works-list-wrapper",attrs:{"infinite-scroll-disabled":_vm.pagination.noMore,"infinite-scroll-immediate":false}},[_vm._l((_vm.worksList),function(works,index){return _vm._ssrNode("<div class=\"works-item\" data-v-1cda8ce0>","</div>",[(works.image)?_c('img',{directives:[{name:"lazy",rawName:"v-lazy",value:(works.image),expression:"works.image"}],staticClass:"works-image",attrs:{"alt":"works-image"}},[]):_vm._e(),_vm._ssrNode(" <div"+(_vm._ssrClass("works-detail",works.image ? '' : 'without-img'))+" data-v-1cda8ce0><div class=\"works-name\" data-v-1cda8ce0>"+_vm._ssrEscape(_vm._s(works.name))+"</div> <div class=\"works-description\" data-v-1cda8ce0>"+_vm._ssrEscape(_vm._s(works.description))+"</div> <div class=\"price-info\" data-v-1cda8ce0><span class=\"works-price\" data-v-1cda8ce0>"+_vm._ssrEscape(_vm._s(Number(works.price) > 0 ? '¥' + works.price : '免费'))+"</span> <span class=\"download-count\" data-v-1cda8ce0>"+_vm._ssrEscape(_vm._s(works.down_num)+"人已下载")+"</span></div></div>")],2)}),_vm._ssrNode(" "+((!_vm.worksList.length && !_vm.pagination.loading)?("<div class=\"result-empty-wrapper\" data-v-1cda8ce0><img"+(_vm._ssrAttr("src",__webpack_require__(74)))+" alt=\"empty\" data-v-1cda8ce0> <span data-v-1cda8ce0>暂无搜索内容</span></div>"):"<!---->")+" "+((_vm.pagination.loading)?("<p class=\"works-list-tips\" data-v-1cda8ce0>加载中...</p>"):"<!---->")+" "+((_vm.worksList.length && _vm.pagination.noMore && !_vm.firstLoad)?("<p class=\"works-list-tips\" data-v-1cda8ce0>没有更多了</p>"):"<!---->"))],2)]),_vm._ssrNode(" "),_c('el-drawer',{ref:"categoryDrawer",staticClass:"category-drawer",attrs:{"visible":_vm.showCategoryDrawer,"direction":"ttb","withHeader":false},on:{"update:visible":function($event){_vm.showCategoryDrawer=$event}}},[_c('div',{staticClass:"drawer-category-one"},[_c('div',{staticClass:"drawer-category-one-item",class:_vm.currentDrawerCategoryIndex === 0 ? 'active' : '',on:{"click":function($event){return _vm.handleClickDrawerCategoryOne(0)}}},[_vm._v("\n 全部\n ")]),_vm._v(" "),_vm._l((_vm.categoryList),function(category,index){return _c('div',{key:("drawer-category-one-" + (category.category_id)),staticClass:"drawer-category-one-item",class:_vm.currentDrawerCategoryIndex === index + 1 ? 'active' : '',on:{"click":function($event){return _vm.handleClickDrawerCategoryOne(index + 1)}}},[_vm._v("\n "+_vm._s(category.name)+"\n ")])})],2),_vm._v(" "),_c('div',{staticClass:"drawer-category-two"},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.currentDrawerCategoryIndex === 0),expression:"currentDrawerCategoryIndex === 0"}],staticClass:"drawer-category-two-wrapper"},_vm._l((_vm.categoryAll),function(category){return _c('div',{key:("drawer-category-all-" + (category.category_id)),staticClass:"drawer-category-two-item",class:_vm.pagination.cate_id_two.indexOf(category.category_id) > -1 ? 'active' : '',on:{"click":function($event){return _vm.handleClickDrawerCategoryTwo(category.category_id)}}},[_vm._v("\n "+_vm._s(category.name)+"\n ")])}),0),_vm._v(" "),_vm._l((_vm.categoryList),function(category,index){return _c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.currentDrawerCategoryIndex === index + 1),expression:"currentDrawerCategoryIndex === index + 1"}],key:("drawer-category-two-wrapper-" + (category.category_id)),staticClass:"drawer-category-two-wrapper"},_vm._l((category.child),function(categoryChild){return _c('div',{key:("drawer-category-two-" + (categoryChild.category_id)),staticClass:"drawer-category-two-item",class:_vm.pagination.cate_id_two.indexOf(categoryChild.category_id) > -1 ? 'active' : '',on:{"click":function($event){return _vm.handleClickDrawerCategoryTwo(categoryChild.category_id)}}},[_vm._v("\n "+_vm._s(categoryChild.name)+"\n ")])}),0)})],2)])],2)])}
  54. var staticRenderFns = []
  55. // CONCATENATED MODULE: ./pages/work_down/index.vue?vue&type=template&id=1cda8ce0&scoped=true&
  56. // EXTERNAL MODULE: external "vuex"
  57. var external_vuex_ = __webpack_require__(2);
  58. // CONCATENATED MODULE: ./components/work_down/dealSeoList.js
  59. class DealSeoData {
  60. constructor({
  61. $axios,
  62. req,
  63. app,
  64. redirect,
  65. error
  66. }) {
  67. this.$axios = $axios;
  68. this.req = req;
  69. this.app = app;
  70. this.redirect = redirect;
  71. this.error = error;
  72. this.pagination = {
  73. page: 1,
  74. keywords: '',
  75. cate_id_two: [],
  76. // 价格筛选:0 全部,1 付费,2 免费
  77. filter_price: 0,
  78. // 排序:0 默认,1 价格从高到低,2 价格从低到高
  79. sort: 0,
  80. // 非接口参数
  81. pagesize: 20,
  82. total: 0,
  83. loading: false,
  84. noMore: true,
  85. selectedCateIdOne: ''
  86. };
  87. this.cateNameOne = '';
  88. this.cateNameTwo = '';
  89. this.mobile = this.app.$deviceType.isMobile();
  90. this.root_type = 0;
  91. }
  92. async dealData() {
  93. const self = this;
  94. let {
  95. name,
  96. query: {
  97. page = 1,
  98. root_type = 0
  99. },
  100. path,
  101. params,
  102. fullPath
  103. } = this.app.context.route;
  104. this.pagination.page = Number(page);
  105. this.root_type = root_type; // 目前仅将二级 id 拼接到 url 上
  106. let match = params.pathMatch || '';
  107. let matchList = match.split('/');
  108. matchList.pop();
  109. let lastMatch = matchList.pop() || '';
  110. console.log(`match: ${match}, matchList: ${matchList}, lastMatch: ${lastMatch}`); // 重定向
  111. if (path.indexOf('/work_down') > -1) {
  112. this.redirect(301, '/works/' + lastMatch);
  113. }
  114. let categoryList = await this._getWorksCategory();
  115. let categoryAll = [];
  116. categoryList.forEach(item => {
  117. if (item.child && item.child.length) {
  118. item.child.forEach(child => {
  119. if (child.name && child.name !== '全部') {
  120. categoryAll.push(child);
  121. }
  122. });
  123. }
  124. });
  125. if (lastMatch) {
  126. // 遍历分类数组
  127. let selectedCateIdOne = '';
  128. categoryList.forEach(cateOne => {
  129. cateOne.child.forEach(cateTwo => {
  130. if (cateTwo.f_name === lastMatch) {
  131. selectedCateIdOne = cateOne.f_name;
  132. self.cateNameOne = cateOne.name;
  133. if (cateTwo.name === '全部') {
  134. self.cateNameTwo = cateOne.name;
  135. } else {
  136. self.cateNameTwo = cateTwo.name;
  137. }
  138. }
  139. });
  140. });
  141. if (selectedCateIdOne) {
  142. this.pagination.selectedCateIdOne = selectedCateIdOne;
  143. this.pagination.cate_id_two.push(lastMatch);
  144. }
  145. } // 处理完分类信息,再获取数据
  146. let worksList = await this._getWorksList();
  147. return {
  148. root_type,
  149. categoryList,
  150. categoryAll,
  151. worksList,
  152. //首次获取的数据
  153. mobile: this.mobile,
  154. pagination: this.pagination,
  155. head: this.dealThisMeta()
  156. };
  157. }
  158. /** 获取作品分类 */
  159. async _getWorksCategory() {
  160. let res = await this.$axios.$post('/api/user_works/cate', {
  161. root_type: this.root_type
  162. });
  163. let categoryList = [];
  164. if (Number(res.status) === 1) {
  165. categoryList = res.data || []; // web 端,为所有二级分类添加 “全部”
  166. if (!this.mobile) {
  167. categoryList.forEach(item => {
  168. if (item.child) {
  169. let allItem = {
  170. f_name: item.f_name,
  171. name: '全部'
  172. };
  173. item.child.splice(0, 0, allItem);
  174. }
  175. });
  176. }
  177. }
  178. return categoryList;
  179. }
  180. /** 获取作品列表 */
  181. async _getWorksList() {
  182. const data = {
  183. page: this.pagination.page,
  184. keywords: this.pagination.keywords,
  185. cate_id_two: this.pagination.cate_id_two.join(','),
  186. root_type: this.root_type
  187. };
  188. let res = await this.$axios.$post('/api/user_works/workFileList', data);
  189. let worksList = [];
  190. if (Number(res.status) === 1) {
  191. worksList = res.data.list || [];
  192. this.pagination.pagesize = Number(res.data.pagesize) || 20;
  193. this.pagination.total = Number(res.data.total) || 0;
  194. if (this.pagination.page * this.pagination.pagesize >= this.pagination.total) {
  195. this.pagination.noMore = true;
  196. } else {
  197. this.pagination.noMore = false;
  198. }
  199. }
  200. return worksList;
  201. }
  202. dealThisMeta() {
  203. let head = {
  204. title: "",
  205. keyword: "",
  206. description: "",
  207. h1: "",
  208. canonical: "",
  209. metaLocation: ""
  210. };
  211. if (this.req) {
  212. const {
  213. headers: {
  214. host
  215. },
  216. url
  217. } = this.req; //拼接canonical
  218. if (host.indexOf('local') !== -1) {
  219. head.canonical = 'http://' + host + url;
  220. } else {
  221. head.canonical = 'https://' + host + url;
  222. }
  223. }
  224. if (this.cateNameTwo) {
  225. // 分类页
  226. head.title = `${this.cateNameTwo}资源下载-开发技术资源-程序员客栈资源商城`;
  227. head.keyword = `${this.cateNameTwo}资源下载,${this.cateNameTwo}开发技术资源下载,${this.cateNameTwo}项目源码下载`;
  228. head.description = `${this.cateNameTwo}开发技术资源,为IT开发人员提供权威的${this.cateNameTwo}学习、${this.cateNameTwo}编程源码、${this.cateNameTwo}电子书、各阶段资料下载等服务.更多下载资源请访问程序员客栈APP或官网资源商城`;
  229. } else {
  230. // 列表页,无筛选参数
  231. head.title = "IT开发资源下载-【程序员客栈资源商城】";
  232. head.keyword = "IT开发资源下载,开发源码下载";
  233. head.description = "程序员客栈资源商城是一个提供学习资源、源码、在线学习视频、IT电子书、各类免费软件等下载服务的IT资源大本营,致力于为软件开发者提供知识传播、资源共享、共同学习的优质学习资源平台.";
  234. }
  235. return head;
  236. }
  237. }
  238. // EXTERNAL MODULE: external "qs"
  239. var external_qs_ = __webpack_require__(30);
  240. // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/webpack/node_modules/vue-loader/lib??vue-loader-options!./pages/work_down/index.vue?vue&type=script&lang=js&
  241. //
  242. //
  243. //
  244. //
  245. //
  246. //
  247. //
  248. //
  249. //
  250. //
  251. //
  252. //
  253. //
  254. //
  255. //
  256. //
  257. //
  258. //
  259. //
  260. //
  261. //
  262. //
  263. //
  264. //
  265. //
  266. //
  267. //
  268. //
  269. //
  270. //
  271. //
  272. //
  273. //
  274. //
  275. //
  276. //
  277. //
  278. //
  279. //
  280. //
  281. //
  282. //
  283. //
  284. //
  285. //
  286. //
  287. //
  288. //
  289. //
  290. //
  291. //
  292. //
  293. //
  294. //
  295. //
  296. //
  297. //
  298. //
  299. //
  300. //
  301. //
  302. //
  303. //
  304. //
  305. //
  306. //
  307. //
  308. //
  309. //
  310. //
  311. //
  312. //
  313. //
  314. //
  315. //
  316. //
  317. //
  318. //
  319. //
  320. //
  321. //
  322. //
  323. //
  324. //
  325. //
  326. //
  327. //
  328. //
  329. //
  330. //
  331. //
  332. //
  333. //
  334. //
  335. //
  336. //
  337. //
  338. //
  339. //
  340. //
  341. //
  342. //
  343. //
  344. //
  345. //
  346. //
  347. //
  348. //
  349. //
  350. //
  351. //
  352. //
  353. //
  354. //
  355. //
  356. //
  357. //
  358. //
  359. //
  360. //
  361. //
  362. //
  363. //
  364. //
  365. //
  366. //
  367. //
  368. //
  369. //
  370. //
  371. //
  372. //
  373. //
  374. //
  375. //
  376. //
  377. //
  378. //
  379. //
  380. //
  381. //
  382. //
  383. //
  384. //
  385. //
  386. //
  387. //
  388. //
  389. //
  390. //
  391. //
  392. //
  393. //
  394. //
  395. //
  396. //
  397. //
  398. //
  399. //
  400. //
  401. //
  402. //
  403. //
  404. //
  405. //
  406. //
  407. //
  408. //
  409. //
  410. //
  411. //
  412. //
  413. //
  414. //
  415. //
  416. //
  417. //
  418. //
  419. //
  420. //
  421. //
  422. //
  423. //
  424. //
  425. //
  426. //
  427. //
  428. //
  429. //
  430. //
  431. //
  432. //
  433. //
  434. //
  435. //
  436. //
  437. //
  438. //
  439. //
  440. //
  441. //
  442. //
  443. //
  444. //
  445. //
  446. //
  447. //
  448. //
  449. //
  450. //
  451. //
  452. //
  453. //
  454. //
  455. //
  456. //
  457. //
  458. //
  459. //
  460. //
  461. //
  462. //
  463. //
  464. //
  465. //
  466. //
  467. //
  468. //
  469. //
  470. //
  471. //
  472. //
  473. //
  474. //
  475. //
  476. //
  477. //
  478. //
  479. //
  480. //
  481. //
  482. //
  483. //
  484. //
  485. //
  486. //
  487. //
  488. //
  489. //
  490. //
  491. //
  492. //
  493. //
  494. //
  495. //
  496. //
  497. //
  498. //
  499. //
  500. //
  501. //
  502. //
  503. //
  504. //
  505. //
  506. //
  507. //
  508. //
  509. //
  510. //
  511. //
  512. //
  513. //
  514. //
  515. //
  516. //
  517. //
  518. //
  519. //
  520. //
  521. //
  522. //
  523. //
  524. //
  525. //
  526. //
  527. //
  528. //
  529. //
  530. //
  531. //
  532. //
  533. //
  534. //
  535. //
  536. //
  537. //
  538. //
  539. //
  540. //
  541. //
  542. //
  543. //
  544. //
  545. //
  546. //
  547. //
  548. //
  549. //
  550. //
  551. //
  552. //
  553. //
  554. //
  555. //
  556. //
  557. //
  558. //
  559. //
  560. //
  561. //
  562. //
  563. //
  564. //
  565. //
  566. /* harmony default export */ var work_downvue_type_script_lang_js_ = ({
  567. data() {
  568. // 验证留言手机号
  569. var validateContact = (rule, value, callback) => {
  570. if (!value) {
  571. return callback(new Error('联系方式不能为空'));
  572. }
  573. var reg = /^[0-9-]*$/;
  574. if (!reg.test(value)) {
  575. callback(new Error('联系方式只能为数字'));
  576. } else if (value.length > 15) {
  577. callback(new Error('联系方式支持填写不超过15字符'));
  578. } else {
  579. callback();
  580. }
  581. };
  582. return {
  583. baseUrl: '',
  584. // categoryAll: [],
  585. // categoryList: [],
  586. // worksList: [],
  587. currentCategoryIndex: 0,
  588. currentDrawerCategoryIndex: 0,
  589. categoryExpanded: false,
  590. firstLoad: false,
  591. loadingWorksList: false,
  592. showCategoryDrawer: false,
  593. // pagination: {
  594. // page: 1,
  595. // keywords: '',
  596. // cate_id_two: [],
  597. // // 非接口参数
  598. // pagesize: 20,
  599. // total: 0,
  600. // loading: true,
  601. // noMore: true
  602. // },
  603. isWeixinApp: true,
  604. // 寻找源码弹窗
  605. isShowRemarkDialog: false,
  606. saveRemarkIsLoading: false,
  607. remarkModel: {
  608. remarkDescription: '',
  609. // 源码描述
  610. remarkContact: '' // 联系方式
  611. },
  612. remarkRules: {
  613. remarkDescription: [{
  614. required: true,
  615. message: '源码描述不能为空',
  616. trigger: 'blur'
  617. }, {
  618. min: 5,
  619. max: 1000,
  620. message: '源码描述支持填写5-1000字符',
  621. trigger: 'blur'
  622. }],
  623. remarkContact: [{
  624. required: true,
  625. message: '联系方式不能为空',
  626. trigger: 'blur'
  627. }, {
  628. validator: validateContact,
  629. trigger: 'blur'
  630. }]
  631. }
  632. };
  633. },
  634. head() {
  635. const {
  636. title = "",
  637. keyword = "",
  638. description = "",
  639. h1 = "",
  640. canonical = "",
  641. metaLocation
  642. } = this.head || {};
  643. let obj = {
  644. title: title,
  645. meta: [{
  646. name: "keywords",
  647. content: keyword
  648. }, {
  649. name: "description",
  650. content: description
  651. }, {
  652. name: "h1",
  653. content: h1
  654. }],
  655. link: [{
  656. rel: "canonical",
  657. href: canonical
  658. }]
  659. };
  660. if (metaLocation) {
  661. obj.meta.push({
  662. name: "location",
  663. content: metaLocation
  664. });
  665. }
  666. return obj;
  667. },
  668. computed: { ...Object(external_vuex_["mapState"])(["deviceType"]),
  669. showWxHeader() {
  670. return !this.deviceType.app && !this.isWeixinApp && (this.deviceType.android || this.deviceType.ios);
  671. },
  672. mainMarginTop() {
  673. if (this.mobile && this.showWxHeader) {
  674. return '64px !important';
  675. } else if (this.mobile) {
  676. return '0px !important';
  677. } else {
  678. return '20px !important';
  679. }
  680. },
  681. priceSortText() {
  682. let text = '价格';
  683. if (this.pagination.sort == 1) {
  684. text = '从高到低';
  685. } else if (this.pagination.sort == 2) {
  686. text = '从低到高';
  687. }
  688. return text;
  689. }
  690. },
  691. async asyncData({ ...params
  692. }) {
  693. let dealDataObj = new DealSeoData(params);
  694. let ans = await dealDataObj.dealData();
  695. return { ...ans
  696. };
  697. },
  698. mounted() {
  699. this.baseUrl = this.$store.state.domainConfig.siteUrl;
  700. this.isWeixinApp = navigator.userAgent.indexOf("miniProgram") > -1; // const self = this
  701. // const getWorksCategoryPromise = this._getWorksCategory()
  702. // const getWorksListPromise = this._getWorksList()
  703. // Promise.all([getWorksCategoryPromise, getWorksListPromise]).then(([a, b]) => {
  704. // console.log(a, b)
  705. // self.firstLoad = false
  706. // })
  707. },
  708. methods: {
  709. /**
  710. * 获取作品资源分类
  711. */
  712. _getWorksCategory() {
  713. const self = this;
  714. const promise = new Promise((resolve, reject) => {
  715. self.$axios.$post('/api/user_works/cate', {
  716. root_type: this.root_type
  717. }).then(res => {
  718. if (res.status === 1) {
  719. let categoryAll = [];
  720. self.categoryList = res.data || [];
  721. self.categoryList.forEach(category => {
  722. if (category.child && category.child.length) {
  723. category.child.forEach(categoryChild => {
  724. categoryAll.push(categoryChild);
  725. });
  726. }
  727. });
  728. self.categoryAll = categoryAll;
  729. }
  730. resolve();
  731. }).catch(err => {
  732. reject(err);
  733. });
  734. });
  735. return promise;
  736. },
  737. /**
  738. * 获取作品列表
  739. */
  740. _getWorksList() {
  741. const self = this;
  742. if (!this.firstLoad) {
  743. this.loadingWorksList = true;
  744. this.pagination.loading = true;
  745. this.pagination.noMore = false;
  746. }
  747. const data = {
  748. page: this.pagination.page,
  749. keywords: this.pagination.keywords,
  750. cate_id_two: this.pagination.cate_id_two.join(','),
  751. root_type: this.root_type,
  752. filter_price: this.pagination.filter_price,
  753. sort: this.pagination.sort
  754. };
  755. const promise = new Promise((resolve, reject) => {
  756. self.$axios.$post('/api/user_works/workFileList', data).then(res => {
  757. if (res.status === 1) {
  758. const worksList = res.data.list || [];
  759. self.pagination.pagesize = res.data.pagesize || 20;
  760. self.pagination.total = res.data.total || 0;
  761. if (self.mobile) {
  762. self.worksList = self.worksList.concat(worksList);
  763. } else {
  764. self.worksList = worksList;
  765. }
  766. if (self.pagination.page * self.pagination.pagesize >= self.pagination.total) {
  767. self.pagination.noMore = true;
  768. } else {
  769. self.pagination.noMore = false;
  770. }
  771. }
  772. resolve();
  773. }).catch(err => {
  774. reject(err);
  775. }).then(() => {
  776. self.loadingWorksList = false;
  777. self.pagination.loading = false;
  778. });
  779. });
  780. return promise;
  781. },
  782. /**
  783. * 保存留言
  784. */
  785. _saveRemark() {
  786. const self = this;
  787. this.saveRemarkIsLoading = true;
  788. const data = {
  789. content: this.remarkModel.remarkDescription,
  790. phone: this.remarkModel.remarkContact
  791. };
  792. this.$axios.$post('/api/UserWorks/addRemark', data).then(res => {
  793. if (Number(res.status) === 1) {
  794. self.$message.success('提交成功,请耐心等待');
  795. self.isShowRemarkDialog = false;
  796. } else {
  797. self.$message.error(res.info);
  798. }
  799. }).then(() => {
  800. self.saveRemarkIsLoading = false;
  801. });
  802. },
  803. /**
  804. * 点击一级分类
  805. */
  806. handleClickCategoryOne(id) {
  807. if (id === 0) {
  808. // 点击全部时,移除筛选分类
  809. this.currentCategoryIndex = id;
  810. this.pagination.cate_id_two = [];
  811. this.pagination.page = 1;
  812. this.worksList = [];
  813. window.scroll(0, 0);
  814. this._getWorksList();
  815. return;
  816. }
  817. if (id !== this.currentCategoryIndex) {
  818. this.currentCategoryIndex = id;
  819. }
  820. },
  821. /**
  822. * 点击二级分类
  823. */
  824. handleClickCategoryTwo(id) {
  825. if (this.mobile) {
  826. // 移动端单选
  827. const index = this.pagination.cate_id_two.indexOf(id);
  828. if (index > -1) {
  829. this.pagination.cate_id_two = [];
  830. } else {
  831. this.pagination.cate_id_two = [id];
  832. }
  833. this.pagination.page = 1;
  834. this.worksList = [];
  835. window.scroll(0, 0);
  836. this._getWorksList();
  837. } else {
  838. // web 端多选
  839. const index = this.pagination.cate_id_two.indexOf(id);
  840. if (index > -1) {
  841. // 已选择,移除
  842. this.pagination.cate_id_two.splice(index, 1);
  843. } else {
  844. // 未选择,添加
  845. this.pagination.cate_id_two.push(id);
  846. }
  847. this.pagination.page = 1;
  848. this._getWorksList();
  849. }
  850. },
  851. /**
  852. * 展开二级分类
  853. */
  854. handleClickExpandCategory() {
  855. this.categoryExpanded = !this.categoryExpanded;
  856. },
  857. /**
  858. * 分页页码改变时
  859. */
  860. handlePageChange(val) {
  861. this.pagination.page = val;
  862. this._getWorksList(); // let query = {
  863. // page: val
  864. // }
  865. // if (this.root_type && Number(this.root_type) > 0) {
  866. // query.root_type = this.root_type
  867. // }
  868. // window.location.href = `${window.location.origin}${window.location.pathname}?${qs.stringify(query)}`
  869. },
  870. /**
  871. * mobile 加载更多
  872. */
  873. handleLoadMoreWorks() {
  874. if (this.pagination.loading) {
  875. return;
  876. }
  877. this.pagination.page++;
  878. this._getWorksList();
  879. },
  880. /**
  881. * 弹出分类选择 drawer
  882. */
  883. handleShowCategoryDrawer() {
  884. this.showCategoryDrawer = true;
  885. },
  886. /**
  887. * 点击 mobile 分类 drawer 一级分类
  888. */
  889. handleClickDrawerCategoryOne(id) {
  890. if (id === 0) {
  891. this.showCategoryDrawer = false;
  892. return;
  893. }
  894. if (id !== this.currentDrawerCategoryIndex) {
  895. this.currentDrawerCategoryIndex = id;
  896. }
  897. },
  898. /**
  899. * 点击 mobile 分类 drawer 二级分类
  900. */
  901. handleClickDrawerCategoryTwo(id) {
  902. const index = this.pagination.cate_id_two.indexOf(id);
  903. if (index > -1) {
  904. this.pagination.cate_id_two = [];
  905. } else {
  906. this.pagination.cate_id_two = [id];
  907. }
  908. this.showCategoryDrawer = false;
  909. this.pagination.page = 1;
  910. this.worksList = [];
  911. window.scroll(0, 0);
  912. this._getWorksList();
  913. },
  914. /**
  915. * 点击 mobile 每一项列表
  916. */
  917. handleClickWorkItem(wid) {
  918. if (this.deviceType.ios || this.deviceType.android) {
  919. let jumpUrl = `${this.baseUrl}/w/${wid}`;
  920. location.href = `proginn://webview?url=${jumpUrl}`;
  921. } else {
  922. location.href = `${this.baseUrl}/w/${wid}`;
  923. }
  924. },
  925. /**
  926. * 点击上传资源时
  927. */
  928. handleClickCreate() {
  929. location.href = '/otherpage/works/create';
  930. },
  931. /**
  932. * 回车、点击按钮:根据关键词搜索
  933. */
  934. handleKeywordSearch() {
  935. this.pagination.page = 1;
  936. this._getWorksList();
  937. },
  938. /**
  939. * 点击留言时
  940. */
  941. handleClickRemark() {
  942. if (this.remarkModel.remarkContact == '') {
  943. // 若已登录,自动填写手机号
  944. if (this.userinfo && this.userinfo.login_mobile) {
  945. this.remarkModel.remarkContact = this.userinfo.login_mobile;
  946. }
  947. }
  948. this.isShowRemarkDialog = true;
  949. },
  950. /**
  951. * 留言点击保存时
  952. */
  953. handleSaveRemark() {
  954. const self = this;
  955. this.$refs.remarkForm.validate(valid => {
  956. if (valid) {
  957. self._saveRemark();
  958. }
  959. });
  960. },
  961. /**
  962. * 价格筛选改变时
  963. */
  964. handlePriceFilterChange() {
  965. this.pagination.page = 1;
  966. this._getWorksList();
  967. },
  968. /**
  969. * 点击价格排序时
  970. */
  971. handleClickPriceSort() {
  972. if (this.pagination.sort == 0) {
  973. this.pagination.sort = 1;
  974. } else if (this.pagination.sort == 1) {
  975. this.pagination.sort = 2;
  976. } else if (this.pagination.sort == 2) {
  977. this.pagination.sort = 0;
  978. }
  979. this.pagination.page = 1;
  980. this._getWorksList();
  981. }
  982. }
  983. });
  984. // CONCATENATED MODULE: ./pages/work_down/index.vue?vue&type=script&lang=js&
  985. /* harmony default export */ var pages_work_downvue_type_script_lang_js_ = (work_downvue_type_script_lang_js_);
  986. // EXTERNAL MODULE: ./node_modules/@nuxt/webpack/node_modules/vue-loader/lib/runtime/componentNormalizer.js
  987. var componentNormalizer = __webpack_require__(1);
  988. // CONCATENATED MODULE: ./pages/work_down/index.vue
  989. function injectStyles (context) {
  990. var style0 = __webpack_require__(402)
  991. if (style0.__inject__) style0.__inject__(context)
  992. var style1 = __webpack_require__(403)
  993. if (style1.__inject__) style1.__inject__(context)
  994. }
  995. /* normalize component */
  996. var component = Object(componentNormalizer["a" /* default */])(
  997. pages_work_downvue_type_script_lang_js_,
  998. render,
  999. staticRenderFns,
  1000. false,
  1001. injectStyles,
  1002. "1cda8ce0",
  1003. "7066f56c"
  1004. )
  1005. /* harmony default export */ var work_down = __webpack_exports__["default"] = (component.exports);
  1006. /***/ }),
  1007. /***/ 74:
  1008. /***/ (function(module, exports, __webpack_require__) {
  1009. module.exports = __webpack_require__.p + "img/empty@2x.f8d7c57.png";
  1010. /***/ })
  1011. };;
  1012. //# sourceMappingURL=93.js.map