zhaogongxue 8 maanden geleden
bovenliggende
commit
d21748d0b0
100 gewijzigde bestanden met toevoegingen van 287 en 98 verwijderingen
  1. 0 0
      dist/assets/Footer.60e7ba0b.js
  2. 0 0
      dist/assets/Routers.a195e5a8.js
  3. 0 1
      dist/assets/address.0db53c11.js
  4. 0 0
      dist/assets/address.1e75f4b2.js
  5. 0 1
      dist/assets/article.40915119.js
  6. 0 0
      dist/assets/chat.41645f31.js
  7. 0 1
      dist/assets/comment.d2512b67.js
  8. 0 0
      dist/assets/commonProblem.e17fb6fc.js
  9. 0 0
      dist/assets/content.4a291fa2.css
  10. 0 0
      dist/assets/content.7efd5841.js
  11. 0 0
      dist/assets/conversion.7b92788c.js
  12. 0 0
      dist/assets/date-picker.0676bebd.js
  13. 0 0
      dist/assets/debounce.4bbd8ef3.js
  14. 0 0
      dist/assets/details.83cae1b4.js
  15. 0 0
      dist/assets/discount.faca045d.js
  16. 0 0
      dist/assets/draft.1cbd46a4.js
  17. 0 0
      dist/assets/edit.25e2ef94.js
  18. 0 1
      dist/assets/editor.7e640815.css
  19. 0 0
      dist/assets/editor.8b123e9c.js
  20. 0 1
      dist/assets/flatten.d1681386.js
  21. 0 0
      dist/assets/follow.2d647508.js
  22. 0 0
      dist/assets/foot.21bf9e73.js
  23. 0 1
      dist/assets/formatTime.20e70339.js
  24. 0 1
      dist/assets/forum.9af4d846.js
  25. 0 1
      dist/assets/gather.afe72849.js
  26. 0 0
      dist/assets/index.01636b27.js
  27. 0 0
      dist/assets/index.2b703682.css
  28. 0 0
      dist/assets/index.50fb9e59.js
  29. 0 0
      dist/assets/index.55c812ef.js
  30. 0 1
      dist/assets/index.563e12b2.js
  31. 0 0
      dist/assets/index.59ed6639.js
  32. 0 0
      dist/assets/index.67d7e2c1.js
  33. 0 1
      dist/assets/index.835c7c2c.js
  34. 0 1
      dist/assets/index.8e9f0a35.js
  35. 0 1
      dist/assets/index.8f606c47.js
  36. 0 0
      dist/assets/index.9572e65d.js
  37. 0 0
      dist/assets/index.a323b81c.js
  38. 0 5
      dist/assets/index.bf9618b5.js
  39. 0 0
      dist/assets/index.c3d314d9.js
  40. 0 0
      dist/assets/index.cbe0ee08.js
  41. 0 1
      dist/assets/index.d5824784.js
  42. 0 0
      dist/assets/index.d9c0bbd4.css
  43. 0 1
      dist/assets/index.dec355a2.js
  44. 0 0
      dist/assets/index.ee68e91a.js
  45. 0 0
      dist/assets/index.esm.bef530dd.js
  46. 0 0
      dist/assets/index.f1022687.js
  47. 0 0
      dist/assets/index.f174ee91.js
  48. 0 0
      dist/assets/index.f94708a4.js
  49. 0 0
      dist/assets/index.fa73485f.js
  50. 0 1
      dist/assets/index.vue_vue_type_style_index_0_scoped_true_lang.fd117438.css
  51. 0 0
      dist/assets/index.vue_vue_type_style_index_1_scoped_true_lang.b2846ebe.css
  52. 0 1
      dist/assets/invite.41240048.js
  53. 0 0
      dist/assets/inviteinfo.0471d5a0.js
  54. 0 1
      dist/assets/jifen.afc31506.js
  55. 0 1
      dist/assets/join.9b4a96c0.js
  56. 0 0
      dist/assets/localeData.5cf53d1c.js
  57. 0 0
      dist/assets/make.051e94d3.js
  58. 0 0
      dist/assets/message-box.35b028c0.css
  59. 0 0
      dist/assets/message-box.46f658e8.js
  60. 0 0
      dist/assets/more.569d18e3.js
  61. 0 1
      dist/assets/news.dc4514a9.js
  62. 0 1
      dist/assets/outshoping.fa0d43a8.js
  63. 0 0
      dist/assets/pagination.c972d005.js
  64. 0 0
      dist/assets/placeOrder.ef1e3645.js
  65. 0 0
      dist/assets/postDetail.2a7f7ac7.js
  66. 0 0
      dist/assets/postDetail.e8063f31.css
  67. 0 1
      dist/assets/private.739a04d9.js
  68. 0 1
      dist/assets/rest.c6b659f7.js
  69. 0 0
      dist/assets/search.e1dacaf7.js
  70. 0 0
      dist/assets/setting.06b66536.js
  71. 0 0
      dist/assets/setting.2a25e620.css
  72. 0 0
      dist/assets/sign.9a6133cc.js
  73. 0 1
      dist/assets/text.7e8ddaf4.js
  74. 0 1
      dist/assets/throttle.e60da1c7.js
  75. 0 0
      dist/assets/topic.0ac2a760.js
  76. 0 1
      dist/assets/topic.875b6163.js
  77. 0 1
      dist/assets/useForum.30b11d93.js
  78. 0 0
      dist/assets/usePost.09a3299e.js
  79. 0 0
      dist/assets/useScrollEvent.e7822471.js
  80. 0 1
      dist/assets/useUpimages.e87b8ac1.js
  81. 0 1
      dist/assets/video.0b8edbc7.js
  82. 0 1
      dist/assets/video.8f225e6f.js
  83. 0 0
      dist/assets/wallect.af4dcb99.js
  84. 0 1
      dist/assets/zixun.648eefb2.js
  85. 2 2
      dist/index.html
  86. 24 0
      src/api/common.js
  87. 18 3
      src/components/ActivateMembership/index.vue
  88. 1 1
      src/components/Banner/index.vue
  89. 1 1
      src/components/Comments/row.vue
  90. 0 1
      src/components/IndexSection/index.vue
  91. 60 20
      src/components/Login/Login.vue
  92. 32 3
      src/components/MomentLayout/index.vue
  93. 89 9
      src/components/layouts/Header.vue
  94. 1 1
      src/components/layouts/HeaderEditor.vue
  95. 0 1
      src/router/index.js
  96. 3 1
      src/store/user.js
  97. 7 1
      src/useHook/useUser.js
  98. 2 0
      src/useHook/usepuy.js
  99. 22 15
      src/utils/request.js
  100. 25 4
      src/views/index/content.vue

File diff suppressed because it is too large
+ 0 - 0
dist/assets/Footer.60e7ba0b.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Routers.a195e5a8.js


+ 0 - 1
dist/assets/address.0db53c11.js

@@ -1 +0,0 @@
-import{Q as d}from"./index.fa73485f.js";const e=s=>d({params:s,method:"GET",url:"area"}),o=s=>d({params:s,method:"GET",url:"address"}),r=s=>d({params:s,method:"GET",url:`address/${s.id}`}),a=s=>d({data:s,method:"POST",url:"address"}),l=s=>d({params:s,method:"PUT",url:`address/${s.id}`}),i=s=>d({data:s,method:"DELETE",url:`address/${s.id}`});export{e as a,i as d,r as i,o as l,a as m,l as p};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/address.1e75f4b2.js


+ 0 - 1
dist/assets/article.40915119.js

@@ -1 +0,0 @@
-import{Q as o}from"./index.fa73485f.js";const i=t=>o({params:t,method:"GET",url:"article"}),l=t=>o({data:t,method:"POST",url:"article"}),r=t=>o({data:t,method:"PUT",url:`article/${t.id}`}),s=t=>o({params:t,method:"GET",url:`article/${t.id}`}),c=t=>o({method:"DELETE",url:`article/${t.id}`});export{r as a,c as d,s as i,i as l,l as p};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/chat.41645f31.js


+ 0 - 1
dist/assets/comment.d2512b67.js

@@ -1 +0,0 @@
-import{Q as m}from"./index.fa73485f.js";const s=t=>m({params:t,method:"GET",url:"comment"}),c=t=>m({params:t,method:"GET",url:"comment/my-list"}),e=t=>m({data:t,method:"POST",url:"comment"});export{e as c,s as l,c as m};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/commonProblem.e17fb6fc.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/content.4a291fa2.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/content.7efd5841.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/conversion.7b92788c.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/date-picker.0676bebd.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/debounce.4bbd8ef3.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/details.83cae1b4.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/discount.faca045d.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/draft.1cbd46a4.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/edit.25e2ef94.js


+ 0 - 1
dist/assets/editor.7e640815.css

@@ -1 +0,0 @@
-.el-container>div.placehbox{width:100%}.editor-container[data-v-e84307fe]{--w-e-textarea-bg-color: rgba(251, 251, 251, 1);--w-e-toolbar-bg-color: rgba(251, 251, 251, 1);width:100%}.editor-container .p800[data-v-e84307fe]{padding:0 200px;background-color:#fbfbfb}.editor-container .p800 .mainbox[data-v-e84307fe]{width:1000px;margin:0 auto}.editor-container .p800 .editor__toolbar[data-v-e84307fe]{width:100%}.editor-main[data-v-e84307fe]{--w-e-textarea-bg-color: #fff;width:1000px;margin:20px auto 0}.editor-main .inputtitle.el-input[data-v-e84307fe]{border:none;box-shadow:initial}.editor-main .inputtitle[data-v-e84307fe] .el-input__wrapper{box-shadow:initial;font-size:26px}.editor-main__border[data-v-e84307fe]{height:1px;background-color:#eee;margin-top:18px;margin-bottom:18px}.fixed-footer[data-v-e84307fe]{position:fixed;bottom:0;left:0;width:100%;background-color:#fff}.fixed-main[data-v-e84307fe]{width:1000px;margin:0 auto;height:60px}.editor-main[data-v-e84307fe]{background-color:#fff;padding:20px 20px 10px;box-sizing:border-box;margin-bottom:80px}.editor-main.videobox[data-v-e84307fe]{margin-bottom:20px}.footerbox-title[data-v-e84307fe]{font-size:16px;font-family:PingFangSC,PingFang SC;font-weight:500;color:#333;line-height:2em}.footerbox[data-v-e84307fe] .el-upload-list--picture-card,.footerbox[data-v-e84307fe] .el-upload--picture-card{--el-upload-picture-card-size: 240px}.footerbox[data-v-e84307fe] .el-upload-list__item{--el-upload-list-picture-card-size: 240px}.footerbox .flex-customs[data-v-e84307fe] .el-form-item__content{display:flex;flex-direction:row;align-items:flex-end}.footerbox .xtip[data-v-e84307fe]{font-size:12px;color:#999}.footerbox .upload-tip[data-v-e84307fe]{padding-left:10px;font-size:12px;font-weight:400;color:#999;line-height:17px}.footerbox .video-custom[data-v-e84307fe] .el-form-item{display:flex;flex-direction:column}.image-cover[data-v-e84307fe]{width:240px;height:240px;object-fit:cover}

File diff suppressed because it is too large
+ 0 - 0
dist/assets/editor.8b123e9c.js


+ 0 - 1
dist/assets/flatten.d1681386.js

@@ -1 +0,0 @@
-import{e3 as t,e4 as h,e5 as m,e6 as r}from"./index.fa73485f.js";var b=t?t.isConcatSpreadable:void 0;function x(n){return h(n)||m(n)||!!(b&&n&&n[b])}function g(n,f,i,s,e){var a=-1,l=n.length;for(i||(i=x),e||(e=[]);++a<l;){var o=n[a];f>0&&i(o)?f>1?g(o,f-1,i,s,e):r(e,o):s||(e[e.length]=o)}return e}function F(n){var f=n==null?0:n.length;return f?g(n,1):[]}export{g as b,F as f};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/follow.2d647508.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/foot.21bf9e73.js


+ 0 - 1
dist/assets/formatTime.20e70339.js

@@ -1 +0,0 @@
-import{Y as B,Z as m}from"./index.fa73485f.js";var $={exports:{}};(function(s,k){(function(a,l){s.exports=l()})(B,function(){return function(a,l,d){a=a||{};var e=l.prototype,T={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function g(r,t,i,h){return e.fromToBase(r,t,i,h)}d.en.relativeTime=T,e.fromToBase=function(r,t,i,h,w){for(var c,f,v,p=i.$locale().relativeTime||T,y=a.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],j=y.length,u=0;u<j;u+=1){var o=y[u];o.d&&(c=h?d(r).diff(i,o.d,!0):i.diff(r,o.d,!0));var n=(a.rounding||Math.round)(Math.abs(c));if(v=c>0,n<=o.r||!o.r){n<=1&&u>0&&(o=y[u-1]);var M=p[o.l];w&&(n=w(""+n)),f=typeof M=="string"?M.replace("%d",n):M(n,t,o.l,v);break}}if(t)return f;var x=v?p.future:p.past;return typeof x=="function"?x(f):x.replace("%s",f)},e.to=function(r,t){return g(r,t,this,!0)},e.from=function(r,t){return g(r,t,this)};var b=function(r){return r.$u?d.utc():d()};e.toNow=function(r){return this.to(b(this),r)},e.fromNow=function(r){return this.from(b(this),r)}}})})($);var N=$.exports;m.locale("zh-cn");const A=s=>s?(m.extend(N),m().to(m(s))):"1\u5206\u949F\u524D";export{A as t};

+ 0 - 1
dist/assets/forum.9af4d846.js

@@ -1 +0,0 @@
-import{Q as t}from"./index.fa73485f.js";const d=o=>t({params:o,method:"GET",url:"post"}),e=o=>t({data:o,method:"POST",url:"post"}),p=o=>t({data:o,method:"PUT",url:`post/${o.id}`}),i=o=>t({params:o,method:"GET",url:`post/${o.id}`}),l=o=>t({method:"DELETE",url:`post/${o.id}`});export{p as a,l as d,i,d as l,e as p};

+ 0 - 1
dist/assets/gather.afe72849.js

@@ -1 +0,0 @@
-import{Q as t}from"./index.fa73485f.js";const o=s=>t({params:s,method:"GET",url:"summary"}),r=s=>t({data:s,method:"POST",url:"like"}),c=s=>t({data:s,method:"POST",url:"collect"}),l=s=>t({data:s,method:"POST",url:"share"}),m=s=>t({params:s,method:"GET",url:"draft"}),a=s=>t({data:s,method:"DELETE",url:`comment/${s.id}`});export{o as a,m as b,c,a as d,r as l,l as s};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.01636b27.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.2b703682.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.50fb9e59.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.55c812ef.js


+ 0 - 1
dist/assets/index.563e12b2.js

@@ -1 +0,0 @@
-import{_ as d,r as c,o as f,d as n,e as l,f as y,w as i,F as g,j as h,x as v,g as x,P as k,m as w}from"./index.fa73485f.js";/* empty css                      *//* empty css                                                           */import{E as B,a as E}from"./index.55c812ef.js";const C={class:"banner-container"},b=["src","alt","onClick"],N={__name:"index",props:{type:{type:String,require:!0},limit:{type:Number,default:5}},setup(_){const p=c(420),s=_,o=c([]);f(async()=>{try{const{msg:a,data:e}=await k({type:s.type,limit:s.limit});e&&Array.isArray(e)&&(o.value=e)}catch{}});const u=a=>{const{jump_type:e,jump_url:r}=a;e=="external"||e=="internal"?window.open(r):w.error("\u9519\u8BEF\u7684\u56FE\u7247")};return(a,e)=>{const r=B,m=E;return n(),l("div",C,[y(m,{height:`${p.value}px`},{default:i(()=>[(n(!0),l(g,null,h(o.value,t=>(n(),v(r,{key:t},{default:i(()=>[x("img",{src:t.image,alt:t.image,onClick:A=>t.is_jump?u(t):null},null,8,b)]),_:2},1024))),128))]),_:1},8,["height"])])}}};var M=d(N,[["__scopeId","data-v-3142c606"]]);export{M as B};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.59ed6639.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.67d7e2c1.js


+ 0 - 1
dist/assets/index.835c7c2c.js

@@ -1 +0,0 @@
-import{bm as o,b as u,h as s,bq as i,br as l}from"./index.fa73485f.js";function f(e){return i()?(l(e),!0):!1}function y(e){return typeof e=="function"?e():s(e)}function d(e){if(!o(e))return u(e);const a=new Proxy({},{get(n,t,r){return s(Reflect.get(e.value,t,r))},set(n,t,r){return o(e.value[t])&&!o(r)?e.value[t].value=r:e.value[t]=r,!0},deleteProperty(n,t){return Reflect.deleteProperty(e.value,t)},has(n,t){return Reflect.has(e.value,t)},ownKeys(){return Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}});return u(a)}const g=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const c=Object.prototype.toString,v=e=>c.call(e)==="[object Object]",b=()=>{};export{y as a,v as b,f as c,g as i,b as n,d as t};

+ 0 - 1
dist/assets/index.8e9f0a35.js

@@ -1 +0,0 @@
-import{_ as f,d as s,e as o,g as i,v as m,f as a,w as x,h as _,z as p,k as u,n as v,A as h,B as I}from"./index.fa73485f.js";/* empty css                                                          */const w=e=>(h("data-v-689fd769"),e=e(),I(),e),k={class:"index-title-container flex-row flex-aic flex-jc-sb"},S={class:"title"},g=w(()=>i("span",null,"\u67E5\u770B\u66F4\u591A",-1)),B={__name:"index",props:{title:{type:String,default:"\u9ED8\u8BA4\u6807\u9898"}},emits:["seeMore"],setup(e,{emit:c}){const n=e,l=c,r=()=>{l("seeMore",n.title)};return(y,t)=>{const d=v;return s(),o("div",k,[i("div",S,m(e.title),1),e.title=="\u7CBE\u9009\u89C6\u9891"||e.title=="\u7CBE\u9009\u6587\u7AE0"||e.title=="\u7CBE\u9009\u8D44\u8BAF"||e.title=="\u5927\u5BB6\u5728\u804A"?(s(),o("div",{key:0,class:"more flex-row flex-aic",onClick:t[0]||(t[0]=C=>r())},[g,a(d,{class:"icon",size:12},{default:x(()=>[a(_(p))]),_:1})])):u("",!0)])}}};var N=f(B,[["__scopeId","data-v-689fd769"]]);export{N as I};

+ 0 - 1
dist/assets/index.8f606c47.js

@@ -1 +0,0 @@
-import{t as a}from"./formatTime.20e70339.js";import{_ as c,d as m,e as r,g as e,v as i,h as d,i as _}from"./index.fa73485f.js";const u={class:"imgbox",style:{"margin-bottom":"10px"}},g=["src","alt"],p={class:"content"},x={class:"title ellipsis-two"},f={class:"footer flex-row flex-aic flex-jc-sb"},v={__name:"index",props:{image:{type:String,default:"https://dummyimage.com/279x155/e3e3e3/fff"},title:{type:String},timeAgo:{type:String},likeCount:{type:Number},commentCount:{type:Number},is_like:String,is_collect:String},emits:["todetails"],setup(t,{emit:s}){const n=a,o=s,l=()=>{o("update")};return(y,h)=>(m(),r("div",{class:"index-news-container",style:{cursor:"pointer"},onClick:l},[e("div",u,[e("img",{src:t.image,alt:t.title},null,8,g)]),e("div",p,[e("div",x,i(t.title),1),e("div",f,[e("span",null,i(d(n)(t.timeAgo)),1),e("div",null,[e("span",null,i(t.likeCount)+"\u559C\u6B22",1),_("\xB7"),e("span",null,i(t.commentCount)+"\u8BC4\u8BBA",1)])])])]))}};var b=c(v,[["__scopeId","data-v-6156e418"]]);export{b as _};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.9572e65d.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.a323b81c.js


File diff suppressed because it is too large
+ 0 - 5
dist/assets/index.bf9618b5.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.c3d314d9.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.cbe0ee08.js


+ 0 - 1
dist/assets/index.d5824784.js

@@ -1 +0,0 @@
-import{U as r}from"./index.fa73485f.js";const u=100,v=600,m={beforeMount(l,s){const e=s.value,{interval:i=u,delay:c=v}=r(e)?{}:e;let t,n;const o=()=>r(e)?e():e.handler(),a=()=>{n&&(clearTimeout(n),n=void 0),t&&(clearInterval(t),t=void 0)};l.addEventListener("mousedown",d=>{d.button===0&&(a(),o(),document.addEventListener("mouseup",()=>a(),{once:!0}),n=setTimeout(()=>{t=setInterval(()=>{o()},i)},c))})}};export{m as v};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.d9c0bbd4.css


+ 0 - 1
dist/assets/index.dec355a2.js

@@ -1 +0,0 @@
-import{_,bC as r,r as c,o as s,d as u,e as d,dU as i}from"./index.fa73485f.js";const l=["innerHTML"],p={__name:"index",setup(m){const t=r();console.log("router",t.query);const n=c("");return s(async()=>{try{const{data:e}=await i({code:t.query.type});if(e){const{name:a="",content:o=""}=e;document.title=a,n.value=o}}catch{}}),(e,a)=>(u(),d("div",{class:"argument-container",innerHTML:n.value},null,8,l))}};var x=_(p,[["__scopeId","data-v-01fec042"]]);export{x as default};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.ee68e91a.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.esm.bef530dd.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.f1022687.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.f174ee91.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.f94708a4.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.fa73485f.js


+ 0 - 1
dist/assets/index.vue_vue_type_style_index_0_scoped_true_lang.fd117438.css

@@ -1 +0,0 @@
-.banner-container[data-v-3142c606]{margin-bottom:30px}.banner-container .demonstration[data-v-3142c606]{color:var(--el-text-color-secondary)}.banner-container .el-carousel__item[data-v-3142c606]{border-radius:6px}.banner-container .el-carousel__item img[data-v-3142c606]{width:100%;height:auto;object-fit:cover}.banner-container .el-carousel__item[data-v-3142c606]:nth-child(2n){background-color:#99a9bf}.banner-container .el-carousel__item[data-v-3142c606]:nth-child(2n+1){background-color:#d3dce6}

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.vue_vue_type_style_index_1_scoped_true_lang.b2846ebe.css


+ 0 - 1
dist/assets/invite.41240048.js

@@ -1 +0,0 @@
-import{Q as t}from"./index.fa73485f.js";const e=o=>t({params:o,method:"GET",url:"job"}),r=o=>t({params:o,method:"GET",url:`job/${o.id}`});export{r as j,e as l};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/inviteinfo.0471d5a0.js


+ 0 - 1
dist/assets/jifen.afc31506.js

@@ -1 +0,0 @@
-import{Q as t}from"./index.fa73485f.js";const r=o=>t({params:o,method:"GET",url:"integral/goods"}),l=o=>t({params:o,method:"GET",url:`integral/goods/${o.id}`}),s=o=>t({data:o,method:"POST",url:`integral/goods/${o.id}/collect`}),d=o=>t({data:o,method:"POST",url:"integral/order/calculate"}),c=o=>t({data:o,method:"POST",url:"integral/order"}),a=o=>t({params:o,method:"GET",url:"integral/order"});export{d as a,a as b,s as c,l as d,r as l,c as o};

+ 0 - 1
dist/assets/join.9b4a96c0.js

@@ -1 +0,0 @@
-import{E as y,R as f}from"./Routers.a195e5a8.js";import{l as x}from"./invite.41240048.js";import{_ as m,u as g,r as _,o as l,d as i,e as n,g as s,F as w,j as b,h as j,f as r,v as t,A as k,B}from"./index.fa73485f.js";/* empty css                                                            */const d=o=>(k("data-v-33c29a9e"),o=o(),B(),o),I={class:"personal-container",style:{display:"flex"}},S={style:{width:"842px"}},C={style:{display:"flex","flex-wrap":"wrap","justify-content":"space-between"}},E=["onClick"],R={style:{display:"flex","justify-content":"space-between"}},F={class:"title"},L={class:"money"},N={style:{"margin-top":"14px",display:"flex"}},V={class:"back"},q={class:"back"},A={class:"phone"},D=d(()=>s("div",null,null,-1)),K={style:{"margin-left":"16px"},class:"personal-main flex-row flex-jc-sb"},M={class:"pm-side"},$=d(()=>s("div",{class:"gap"},null,-1)),z={__name:"join",setup(o){const p=g();let u=_("1"),c=_([]);l(async()=>{try{const{data:a}=await x({is_page:1,page:u.value,limit:8});c.value=a.list}catch{}});const v=a=>{p.push({path:"/invite",query:{id:a}})};return l(()=>{}),(a,H)=>(i(),n("div",I,[s("div",S,[s("div",C,[(i(!0),n(w,null,b(j(c),(e,h)=>(i(),n("div",{class:"box",key:h,onClick:J=>v(e.id)},[s("div",R,[s("div",F,t(e.title),1),s("div",L,t(e.salary_min)+"-"+t(e.salary_max)+"K\xB7"+t(e.salary_month)+"\u85AA ",1)]),s("div",N,[s("div",V,t(e.education),1),s("div",q,t(e.experience_min)+"-"+t(e.experience_max)+"\u5E74 ",1)]),s("div",A,t(e.name)+" "+t(e.mobile),1)],8,E))),128))]),D]),s("div",K,[s("div",M,[r(y),$,r(f)])])]))}};var U=m(z,[["__scopeId","data-v-33c29a9e"]]);export{U as default};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/localeData.5cf53d1c.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/make.051e94d3.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/message-box.35b028c0.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/message-box.46f658e8.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/more.569d18e3.js


+ 0 - 1
dist/assets/news.dc4514a9.js

@@ -1 +0,0 @@
-import{Q as t}from"./index.fa73485f.js";const s=o=>t({params:o,method:"GET",url:"info"}),n=o=>t({data:o,method:"POST",url:"info"}),d=o=>t({data:o,method:"PUT",url:`info/${o.id}`}),e=o=>t({params:o,method:"GET",url:`info/${o.id}`}),l=o=>t({method:"DELETE",url:`info/${o.id}`});export{d as a,l as d,e as i,s as l,n as p};

+ 0 - 1
dist/assets/outshoping.fa0d43a8.js

@@ -1 +0,0 @@
-import{_ as l,r as c,o as u,d as o,e as a,g as e,F as h,j as v,h as g,f as m,w as f,i as w,M as x,p as y,A as B,B as k}from"./index.fa73485f.js";const C=s=>(B("data-v-b04864ea"),s=s(),k(),s),I={class:"out-shop-container"},b=C(()=>e("div",{class:"out-shop__header"},[e("div",{class:"title"},"\u5373\u5C06\u524D\u5F80\u5916\u90E8\u94FE\u63A5"),e("div",{class:"tips"},"\u8BF7\u6CE8\u610F\u4E2A\u4EBA\u8D26\u53F7\u4E0E\u8D22\u4EA7\u5B89\u5168")],-1)),N={class:"out-shop__main"},S=["src"],V={class:"out-shop__footer"},E={__name:"outshoping",setup(s){let _=c([]);const n=c();u(async()=>{try{const{data:t}=await x({module:"shop"});_.value=t.shop_images,n.value=t.shop_url}catch{}});const r=()=>{window.open(n.value)};return(t,M)=>{const i=y;return o(),a("div",I,[b,e("div",N,[(o(!0),a(h,null,v(g(_),(d,p)=>(o(),a("img",{key:p,src:d,style:{width:"140px",height:"140px"}},null,8,S))),128))]),e("div",V,[m(i,{type:"primary",size:"large",onClick:r},{default:f(()=>[w("\u7EE7\u7EED\u8DF3\u8F6C")]),_:1})])])}}};var z=l(E,[["__scopeId","data-v-b04864ea"]]);export{z as default};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/pagination.c972d005.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/placeOrder.ef1e3645.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/postDetail.2a7f7ac7.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/postDetail.e8063f31.css


+ 0 - 1
dist/assets/private.739a04d9.js

@@ -1 +0,0 @@
-import{Q as a}from"./index.fa73485f.js";const o=t=>a({params:t,method:"GET",url:"chat"}),s=t=>a({params:t,method:"GET",url:"chat/detail"}),r=t=>a({data:t,method:"POST",url:"chat"});export{s as c,o as l,r as m};

+ 0 - 1
dist/assets/rest.c6b659f7.js

@@ -1 +0,0 @@
-import{_ as w,u as C,bC as B,r as s,o as f,d as r,e as m,g as e,f as a,w as E,h,F as R,j as q,dF as D,n as F,ag as I,x as L}from"./index.fa73485f.js";/* empty css                      *//* empty css                                                           */import{M}from"./index.59ed6639.js";import{u as z,U as N}from"./useScrollEvent.e7822471.js";import{l as S}from"./forum.9af4d846.js";/* empty css                                                          */import"./index.55c812ef.js";import"./throttle.e60da1c7.js";import"./gather.afe72849.js";/* empty css                 */import"./useUpimages.e87b8ac1.js";import"./index.bf9618b5.js";import"./index.835c7c2c.js";import"./icon3.a1bd7a60.js";const U={class:"forum-container flex-row"},V={class:"context"},$={style:{height:"62px",border:"1px solid #f6f6f6",background:"#fff",padding:"20px","box-sizing":"border-box"}},j={style:{display:"flex"}},G={class:"context-main"},T={class:"inside"},A={__name:"rest",setup(H){const n=C(),i=B(),v=()=>{console.log("%c \u89E6\u5E95\u89E6\u53D1\u52A0\u8F7D\u4E8B\u4EF6 >>>","background: blue; color: #fff")},y=t=>{n.push({path:"/post",query:{id:t}})};z({callback:v});const c=s([]),l=async()=>{try{const{data:t}=await S({is_page:0,status:"normal",user_id:i.query.id});c.value=t}catch{}};f(l);let d=s([{}]);const _=s();_.value="other";const u=async t=>{try{const{data:o}=await D({user_id:i.query.id});d.value=o}catch{}};f(u);const x=()=>{l()},g=()=>{n.go(-1)};return(t,o)=>{const b=F;return r(),m("div",U,[e("div",V,[e("div",$,[e("div",j,[a(b,{size:"22"},{default:E(()=>[a(h(I))]),_:1}),e("div",{onClick:g,class:"return",style:{cursor:"pointer"}},"\u8FD4\u56DE")])]),e("div",G,[(r(!0),m(R,null,q(c.value,(p,k)=>(r(),L(M,{key:k,type:"forum",detail:p,onRefresh:x,onDetail:J=>y(p.id)},null,8,["detail","onDetail"]))),128))])]),e("div",T,[a(N,{onChange:u,type:_.value,detail:h(d)},null,8,["type","detail"])])])}}};var it=w(A,[["__scopeId","data-v-3717478b"]]);export{it as default};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/search.e1dacaf7.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/setting.06b66536.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/setting.2a25e620.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/sign.9a6133cc.js


+ 0 - 1
dist/assets/text.7e8ddaf4.js

@@ -1 +0,0 @@
-import"./index.esm.bef530dd.js";import{o as t,d as _,e as n,F as s,g as e}from"./index.fa73485f.js";const o=e("div",{class:""},null,-1),a=e("text",null,null,-1),p={__name:"text",setup(l){return t(()=>{}),(r,c)=>(_(),n(s,null,[o,a],64))}};export{p as default};

+ 0 - 1
dist/assets/throttle.e60da1c7.js

@@ -1 +0,0 @@
-import{aS as n,aT as l}from"./index.fa73485f.js";var g="Expected a function";function f(i,t,r){var a=!0,e=!0;if(typeof i!="function")throw new TypeError(g);return n(r)&&(a="leading"in r?!!r.leading:a,e="trailing"in r?!!r.trailing:e),l(i,t,{leading:a,maxWait:t,trailing:e})}export{f as t};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/topic.0ac2a760.js


+ 0 - 1
dist/assets/topic.875b6163.js

@@ -1 +0,0 @@
-import{Q as t}from"./index.fa73485f.js";const e=o=>t({params:o,method:"GET",url:"topic"}),r=o=>t({params:o,method:"GET",url:"topic/my"}),s=o=>t({params:o,method:"GET",url:"topic/category"});export{r as a,s as c,e as l};

+ 0 - 1
dist/assets/useForum.30b11d93.js

@@ -1 +0,0 @@
-import{l as p}from"./forum.9af4d846.js";import{b as d,r as l}from"./index.fa73485f.js";const _=["latest","comment","upvote"],f={latest:"id",comment:"comment_count",upvote:"like_count"},T={page:1,limit:10};function M(){const a=d({is_page:1,status:"normal",is_boutique:0,order:"id",order_type:"desc"}),e=l("latest"),o=l([]),i=t=>{_.includes(t)&&(e.value=t,s({page:1,order:f[e.value]}))};async function u(t){try{const{data:c=[]}=await p(t),{total:m=0,page:n=1,limit:v=10,last_page:g,list:r=[]}=c;n>=2?o.value.concat(r):o.value=[...r],a.page=n,a.total-m}catch{}}const s=(t={})=>{u({...a,...T,...t})};return{forumType:e,forumTableData:o,handleLoadForumData:s,handleSwitchForumType:i}}export{M as u};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/usePost.09a3299e.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/useScrollEvent.e7822471.js


+ 0 - 1
dist/assets/useUpimages.e87b8ac1.js

@@ -1 +0,0 @@
-import{r as e,aq as t}from"./index.fa73485f.js";const c=async a=>{const r=e("");console.log("formdata",a);try{const o=await t(a);r.value=o.data}catch{throw Error}return{imageFile:r}};export{c as u};

+ 0 - 1
dist/assets/video.0b8edbc7.js

@@ -1 +0,0 @@
-import{Q as d}from"./index.fa73485f.js";const i=o=>d({params:o,method:"GET",url:"video"}),e=o=>d({params:o,method:"GET",url:"admin/video"}),s=o=>d({data:o,method:"POST",url:"video"}),l=o=>d({params:o,method:"PUT",url:`video/${o.id}`}),n=o=>d({params:o,method:"GET",url:`video/${o.id}`}),m=o=>d({method:"DELETE",url:`video/${o.id}`});export{e as a,l as b,m as d,n as i,i as l,s as p};

+ 0 - 1
dist/assets/video.8f225e6f.js

@@ -1 +0,0 @@
-import{E as h,R as v}from"./Routers.a195e5a8.js";import{a as u}from"./video.0b8edbc7.js";import{_ as y,a as f,r as x,o as m,d as o,e as a,g as e,h as _,F as g,j as k,f as l,v as n,A as w,B as j}from"./index.fa73485f.js";/* empty css                                                            */const d=i=>(w("data-v-399ce82a"),i=i(),j(),i),B={class:"personal-container",style:{display:"flex"}},I={style:{width:"840px"}},S=d(()=>e("div",{class:"back"},"\u89C6\u9891\u7BA1\u7406",-1)),b={key:0},C=["onClick"],E=["src"],F={style:{"margin-left":"16px",height:"130px",display:"flex","flex-direction":"column","justify-content":"space-between"}},L={class:"title"},N={class:"time"},R={key:1,style:{height:"600px",display:"flex","flex-direction":"column","justify-content":"center"}},V=d(()=>e("div",{style:{"text-align":"center"}},"\u6682\u65E0\u5185\u5BB9",-1)),A=[V],D={style:{"margin-left":"16px"},class:"personal-main flex-row flex-jc-sb"},M={class:"pm-side"},U=d(()=>e("div",{class:"gap"},null,-1)),$={__name:"video",setup(i){f();const r=t=>{window.open(t)};let c=x([]);return m(async()=>{try{const{data:t}=await u({is_page:0});c.value=t}catch{}}),(t,z)=>(o(),a("div",B,[e("div",I,[S,_(c).length>0?(o(),a("div",b,[(o(!0),a(g,null,k(_(c),(s,p)=>(o(),a("div",{key:p,class:"video",style:{display:"flex",cursor:"pointer"},onClick:G=>r(s.url)},[e("img",{src:s.image,style:{width:"240px",height:"135px"},alt:""},null,8,E),e("div",F,[e("div",L,n(s.title),1),e("div",N,n(s.created_at)+"\u521B\u5EFA "+n(s.updated_at)+"\u6709\u8FC7\u4FEE\u6539 ",1)])],8,C))),128))])):(o(),a("div",R,A))]),e("div",D,[e("div",M,[l(h),U,l(v)])])]))}};var P=y($,[["__scopeId","data-v-399ce82a"]]);export{P as default};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/wallect.af4dcb99.js


+ 0 - 1
dist/assets/zixun.648eefb2.js

@@ -1 +0,0 @@
-import{_ as h,u as f,r as a,o as k,d as s,e as _,g as n,F as x,j as b,h as y,f as u,x as w,A as B,B as z}from"./index.fa73485f.js";import{E as C}from"./pagination.c972d005.js";/* empty css                      *//* empty css                                                           *//* empty css                                                          */import{_ as I}from"./index.8f606c47.js";import{Y as E}from"./Footer.60e7ba0b.js";import{l as F}from"./news.dc4514a9.js";import"./formatTime.20e70339.js";/* empty css                 */import"./useUpimages.e87b8ac1.js";import"./index.bf9618b5.js";const S=o=>(B("data-v-3293cbeb"),o=o(),z(),o),q={class:"articles-container"},L=S(()=>n("div",{class:"title"},"\u7CBE\u9009\u8D44\u8BAF",-1)),N={class:"content-list flex-row"},U={class:"pagination-container"},V={__name:"zixun",setup(o){const p=f(),i=a(1),c=a(0),d=t=>{i.value=t,l()};let r=a([]);const l=async()=>{try{const{data:t}=await F({page:i.value,limit:12,is_page:1,is_boutique:1});r.value=t.list,c.value=t.total}catch{}};k(l);const m=t=>{p.push({name:"news",query:{id:t}})};return(t,Y)=>{const g=C;return s(),_("div",q,[L,n("div",N,[(s(!0),_(x,null,b(y(r),(e,v)=>(s(),w(I,{key:v,onUpdate:j=>m(e.id),title:e.title,"time-ago":e.published_at,"like-count":e.like_count,"comment-count":e.comment_count,image:e.image,is_like:e.is_like,is_collect:e.is_collect},null,8,["onUpdate","title","time-ago","like-count","comment-count","image","is_like","is_collect"]))),128))]),n("div",U,[u(g,{background:"",layout:"prev, pager, next",total:c.value,"page-size":12,onCurrentChange:d},null,8,["total"])]),u(E)])}}};var Q=h(V,[["__scopeId","data-v-3293cbeb"]]);export{Q as default};

+ 2 - 2
dist/index.html

@@ -6,8 +6,8 @@
   <link rel="icon" href="./favicon.ico" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <title>Vite App</title>
-  <script type="module" crossorigin src="./assets/index.fa73485f.js"></script>
-  <link rel="stylesheet" href="./assets/index.2b703682.css">
+  <script type="module" crossorigin src="./assets/index.a27aaea7.js"></script>
+  <link rel="stylesheet" href="./assets/index.7bd8a28c.css">
 </head>
 
 <body>

+ 24 - 0
src/api/common.js

@@ -88,4 +88,28 @@ export const setpassword = data => request({
   url: 'user/forget',
   data  
 })
+//微信登录
+export const wxlogin = data => request({
+  method: 'POST',
+  url: 'wx-login-code',
+  data  
+})
+//绑定微信
+export const wechat = data => request({
+  method: 'POST',
+  url: 'user/bind-wechat-web',
+  data  
+})
+//解绑微信
+export const unbindwechat = data => request({
+  method: 'POST',
+  url: 'user/unbind-wechat',
+  data  
+})
+//微信登录
+export const wxLogin = data => request({
+  method: 'POST',
+  url: 'wx-login',
+  data  
+})
 

+ 18 - 3
src/components/ActivateMembership/index.vue

@@ -12,14 +12,24 @@ const id = ref("");
 let vipList = ref([]);
 const product = async () => {
   console.log("333333333333333", vipList.value);
+
   try {
-    const { data } = await vipApi.product({});
+    console.log(111111111111);
+    const { data } = await vipApi.product();
+    console.log(18)
     vipList.value = data;
     id.value = data[0].id;
     infa(id.value, 0);
-  } catch (error) {}
+    console.log("222222", vipList.value);
+  } catch (error) {
+    console.log('23')
+  }
 };
-onMounted(product);
+onMounted(
+()=>{
+  product()
+}  
+);
 
 //列表交换
 const conten = ref(0);
@@ -96,6 +106,11 @@ const handleLogin = () => {
   visibilityLoginDialog.value = true;
 };
 
+defineExpose({
+  product
+})
+
+
 // NOTE: 事件
 </script>
 

+ 1 - 1
src/components/Banner/index.vue

@@ -25,7 +25,7 @@ const __banner__ = async () => {
       type: Props.type,
       limit: Props.limit,
     });
-
+    console.log(28,msg)
     if (data && Array.isArray(data)) {
       list.value = data;
     }

+ 1 - 1
src/components/Comments/row.vue

@@ -211,7 +211,7 @@ const delect = () => {};
       <div style="margin-top: 16px" class="changeadd">确定要删除吗?</div>
       <div style="display: flex; margin-top: 26px">
         <div class="cancel" @click="delectshow = false">取消</div>
-        <div class="confirm" @click="dele">确定</div>
+        <div class="confirm" @click="dele">确定</div>  
       </div>
     </div>
   </el-dialog>

+ 0 - 1
src/components/IndexSection/index.vue

@@ -95,7 +95,6 @@ const share = () => {
   } else {
     url.value =
       "https://www.yixiangvr.com/web/#/videos?" +
-      // "https://vr-new.hdlkeji.com/web/#/videos?" +
       "id=" +
       Props.source_id +
       "&type=" +

+ 60 - 20
src/components/Login/Login.vue

@@ -1,32 +1,52 @@
 <script setup>
-import { ref, reactive, computed } from "vue";
+import { ref, reactive, computed, watch, onMounted, onUnmounted } from "vue";
 import { checkPhone } from "~/utils/util";
 import { sendCode } from "~/api/common";
 import debounce from "lodash/debounce";
 import { useLogin } from "~/useHook/useUser";
 // import { useRouter } from "vue-router";
 import { COUNT_DOWN_MAX } from "~/utils/constance";
-import * as commonApi from "~/api/common";
+
+import { useRoute } from "vue-router";
 
 // const Router = useRouter()
+const route = useRoute();
+
+//微信登录
+const qrCodeValue = ref();
+qrCodeValue.value = `https://open.weixin.qq.com/connect/qrconnect?appid=wx9630bf8c91e9f1d2&redirect_uri=https://www.yixiangvr.com&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect`;
+// qrCodeValue.value = `https://open.weixin.qq.com/connect/qrconnect?appid=wx3f19cb67fa5348b1&redirect_uri=https://www.yixiangvr.com&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect`;
+const qrCodeSize = ref();
+qrCodeSize.value = 170;
 
 const Props = defineProps({
   modelValue: {
     type: Boolean,
     default: false,
   },
+  wx_open_id: {
+    type: String,
+  },
+  wx_union_id: {
+    type: String,
+  },
+  wx_name: {
+    type: String,
+  },
+  wx_avatar: {
+    type: String,
+  },
 });
 
 const Emits = defineEmits(["update"]);
-
 const isShow = computed({
   get: () => Props.modelValue,
   set: (val) => Emits("update", val),
 });
-let mode = ref("login"); // [login, register, wechat, bindmobile]  
+let mode = ref("login"); // [login, register, wechat, bindmobile]
 
 let tabValue = ref("mobilelogin"); // default: 'mobilelogin'
-  
+
 const handleTabClick = () => {
   console.log(
     "%c handletabClick >>>",
@@ -69,6 +89,8 @@ const handleSwitchChannel = (type) => {
   if (type) {
     mode.value = type;
   }
+  if (type == "wechat") {
+  }
 };
 
 // 获取短信二维码
@@ -97,14 +119,14 @@ const setnewpassword = async (formdata) => {
       password_confirmation: passw.password_confirmation,
     });
     ElMessage.success("修改成功");
-    setpassword.value = false
+    setpassword.value = false;
   } catch (error) {}
 };
 
 // NOTE: 倒计时
 const handleStartTimeCount = debounce(async function () {
   if (timeId) return;
-  let mobileNumber = form.account || passw.mobile ||"";
+  let mobileNumber = form.account || passw.mobile || "";
 
   if (!mobileNumber) {
     ElMessage({ message: "手机号不能为空", type: "error" });
@@ -119,7 +141,7 @@ const handleStartTimeCount = debounce(async function () {
   await __sendcode__({
     mobile: mobileNumber,
     // type: 'register' // register | login | forget
-    type: passw.mobile==''? mode.value :'forget', // register | login | forget
+    type: mode.value=='bindmobile'?'register' : passw.mobile == "" ? mode.value : "forget", // register | login | forget
   });
 
   const timeCount = (time) => {
@@ -150,7 +172,7 @@ let btnMapTxt = computed(() => {
 const elformRef = ref();
 
 // About login.
-const { FormRules, __login__,passRules} = useLogin();
+const { FormRules, __login__, passRules } = useLogin();
 
 const handleLoginForm = (formInstance) => {
   if (!formInstance) return;
@@ -172,7 +194,7 @@ const handleLoginForm = (formInstance) => {
           else type = "login";
           break;
         case "bindmobile":
-          type = "mobilelogin";
+          type = "bilelogin";
       }
 
       let formdata = {
@@ -180,8 +202,10 @@ const handleLoginForm = (formInstance) => {
         code: form.msgcode,
         password: form.password,
         invite_code: form.invitationCode,
-        wx_open_id: "",
-        wx_union_id: "",
+        wx_openid: Props.wx_open_id,
+        wx_unionid: Props.wx_union_id,
+        wx_name: Props.wx_name,
+        wx_avatar: Props.wx_avatar,
       };
 
       await __login__(formdata, type);
@@ -192,6 +216,14 @@ const handleLoginForm = (formInstance) => {
     console.log("%c ----error---- >>>", "background: blue; color: #fff", error);
   }
 };
+
+onUnmounted(() => {
+  // 组件卸载时停止监听
+  window.removeEventListener("popstate", checkForCodeInUrl);
+});
+defineExpose({
+  handleSwitchChannel
+})
 </script>
 
 <template>
@@ -342,7 +374,7 @@ const handleLoginForm = (formInstance) => {
           <el-form-item class="other-login" v-if="mode !== 'bindmobile'">
             <ul class="login-channel-container">
               <li class="login-channel" @click="handleSwitchChannel('wechat')">
-                <img />
+                <img src="../../assets/wechat.png" style="width: 40px;height: 40px;" alt="">
                 <div>微信</div>
               </li>
             </ul>
@@ -352,13 +384,21 @@ const handleLoginForm = (formInstance) => {
       <template v-else-if="mode === 'wechat'">
         <div class="wechat-login">
           <div class="tips">
-            <img />
-            请使用微信扫一扫
+            <!-- <img />
+            请使用微信扫一扫 -->
           </div>
-          <img class="qrcode" />
-          <a href="javascript:;" @click="handleSwitchChannel('bindmobile')"
+          <!-- <img class="qrcode" /> -->
+          <iframe
+            :src="qrCodeValue"
+            width="100%"
+            height="400"
+            frameborder="0"
+            allowfullscreen
+          ></iframe>
+          <!-- <vue-qrcode :value="qrCodeValue" :size="qrCodeSize"></vue-qrcode> -->
+          <!-- <a href="javascript:;" @click="handleSwitchChannel('bindmobile')"
             >x2</a
-          >
+          > -->
           <a href="javascript:;" @click="handleSwitchChannel('login')"
             >点我返回账号登录</a
           >
@@ -366,7 +406,7 @@ const handleLoginForm = (formInstance) => {
       </template>
     </el-dialog>
     <!-- 忘记密码 -->
-    <el-dialog :show-close="true"  v-model="setpassword" title="" width="400px">
+    <el-dialog :show-close="true" v-model="setpassword" title="" width="400px">
       <!-- <template> -->
       <div class="register-account">忘记密码</div>
       <el-form :rules="passRules" ref="elform" :model="passw" label-width="0">
@@ -487,7 +527,7 @@ const handleLoginForm = (formInstance) => {
       img {
         width: 40px;
         height: 40px;
-        background-color: green;
+        // background-color: green;
       }
 
       div {

+ 32 - 3
src/components/MomentLayout/index.vue

@@ -12,6 +12,8 @@ import { toReactive } from "@vueuse/core";
 // import { timeAgo } from '~/utils/formatTime';
 import debounce from "lodash/debounce";
 
+import { useRouter } from "vue-router";
+
 import { useUserOperate } from "~/useHook/useUserOperate";
 import { useTools } from "~/useHook/useTools";
 import { ElMessage } from "element-plus";
@@ -23,7 +25,9 @@ import {
   SuccessFilled,
 } from "@element-plus/icons-vue";
 import Report from "~/components/Report/report.vue";
+import { useRoute } from "vue-router";
 const User = useUser();
+const router = useRouter();
 const { getSvgCol } = useTools();
 const delectshow = ref(false);
 
@@ -99,6 +103,18 @@ const handleReportError = (id) => {
   PostId.value = id;
   type.value = Props.detail.source_type || "post";
 };
+
+const compile = (id, type) => {
+  router.push({
+    path: "editor",
+    query: {
+      id: id,
+      type: type,
+      dict: 2,
+      verdict: 1,
+    },
+  });
+};
 </script>
 
 <template>
@@ -108,7 +124,10 @@ const handleReportError = (id) => {
     :source_id="PostId"
     @define="reportShow = false"
   ></Report>
-  <div class="moment-layout-container" style="margin-bottom: 20px;cursor: pointer;">
+  <div
+    class="moment-layout-container"
+    style="margin-bottom: 20px; cursor: pointer"
+  >
     <!-- header -->
     <div class="header flex-row flex-aic flex-jc-sb">
       <div class="avatar" style="cursor: pointer" @click="other(Author.id)">
@@ -148,6 +167,13 @@ const handleReportError = (id) => {
                 <li v-if="Author.id == User.id" @click="delectshow = true">
                   删除
                 </li>
+                <li
+                  style="margin-top: 10px"
+                  v-if="Author.id == User.id"
+                  @click="compile(Props.detail.id, Props.detail.source_type)"
+                >
+                  编辑
+                </li>
                 <li v-else @click="handleReportError(Props.detail.id)">举报</li>
               </ul>
             </div>
@@ -198,7 +224,6 @@ const handleReportError = (id) => {
           :title="
             Props.detail.source ? Props.detail.source.title : Props.detail.title
           "
-          
         />
       </template>
       <template v-else-if="Props.type === 'video' && Props.detail">
@@ -216,7 +241,11 @@ const handleReportError = (id) => {
           :introdection="
             Props.detail.source ? Props.detail.source.title : Props.detail.title
           "
-          :content_no_img="Props.detail.source?Props.detail.source.content_no_img : Props.detail.content_no_img"
+          :content_no_img="
+            Props.detail.source
+              ? Props.detail.source.content_no_img
+              : Props.detail.content_no_img
+          "
         />
       </template>
       <template v-else>

+ 89 - 9
src/components/layouts/Header.vue

@@ -1,5 +1,5 @@
 <script setup>
-import { ref, onMounted, reactive, watch } from "vue";
+import { ref, onMounted, reactive, watch, nextTick } from "vue";
 import { Search, Promotion, Avatar } from "@element-plus/icons-vue";
 import { useUser } from "~/store/user.js";
 import ActivateMembership from "~/components/ActivateMembership/index.vue";
@@ -12,6 +12,7 @@ import * as taskApi from "~/api/task";
 import { useRouter, useRoute } from "vue-router";
 import * as userApi from "~/api/user";
 import * as commonApi from "~/api/common";
+// import { nextTick } from "process";
 const router = useRouter();
 const route = useRoute();
 const User = useUser();
@@ -28,7 +29,7 @@ const emit = defineEmits(["search"]);
 //搜索记录
 const recordList = ref([]);
 onMounted(() => {
-  if(localStorage.getItem("recordList")){
+  if (localStorage.getItem("recordList")) {
     recordList.value = localStorage.getItem("recordList").split(",").reverse();
   }
 });
@@ -87,11 +88,11 @@ const handleClick = (tab, event) => {
 
 //邀请
 const qrCodeValue = ref();
-qrCodeValue.value = "https://vr.hdlkeji.com/zhuce?text=" + User.invite_code;
-// qrCodeValue.value = "https://www.yixiangvr.com/zhuce?text=" + User.invite_code;
+// qrCodeValue.value = "https://vr.hdlkeji.com/zhuce?text=" + User.invite_code;
+qrCodeValue.value = "https://www.yixiangvr.com/zhuce?text=" + User.invite_code;
 const qrCodeSize = ref();
 qrCodeSize.value = 170;
-const inviteshow = ref(false);  
+const inviteshow = ref(false);
 //邀请弹框
 // const invite = () => {
 //   inviteshow.value = true;
@@ -295,6 +296,7 @@ const togetb = async (id) => {
 onMounted(__task__);
 const imglist = ref();
 const __badge__ = async () => {
+
   try {
     const { data } = await userApi.badge({});
     imglist.value = data;
@@ -479,8 +481,16 @@ const inform = (idx) => {
 
 let pan = ref(false);
 //开通会员
+const childRef = ref(null);
 const member = () => {
   pan.value = true;
+  if (childRef.value) {
+    nextTick(() => {
+      // childRef.value.paysuccess();
+      childRef.value.product();
+    });
+    console.log("child.value", childRef.value);
+  }
 };
 
 // Login logic
@@ -516,6 +526,68 @@ const clear = () => {
   localStorage.removeItem("recordList");
   recordList.value = [];
 };
+const wx_openid = ref();
+const wx_avatar = ref();
+const wx_name = ref();
+const wx_unionid = ref();
+const loginref = ref(null);
+const wxlogin = async (wxcode) => {
+  try {
+    const { code, data } = await commonApi.wxlogin({
+      code: wxcode,
+    });
+    wx_openid.value = data.wx_openid;
+    wx_avatar.value = data.wx_avatar;
+    wx_name.value = data.wx_name;
+    wx_unionid.value = data.wx_unionid;
+    console.log(data);
+    if (code == 10000) {
+      if (data) {
+        const { id, token, mobile, avatar } = data;
+        User.setLogin({
+          id,
+          token,
+          mobile,
+          avatar,
+        });
+        router.push({
+          path: "/",
+        });
+      }
+    }
+    if (code == 20004) {
+      console.log(1111111177777777777777777777777777);
+      visibilityLoginDialog.value = true;
+      console.log(loginref.value);
+      loginref.value.handleSwitchChannel("bindmobile");
+    }
+  } catch (error) {}
+};
+const checkForCodeInUrl = () => {
+  const url = decodeURI(window.location.href);
+  const hasCode = /code=/.test(url);
+  const active = /active=/.test(url);
+  var code = route.query.code;
+  console.log(active);
+  if (hasCode && active == false) {
+    // 地址栏上有code时的处理逻辑
+    console.log("地址栏上有code");
+    wxlogin(code);
+    router.push({
+      path: "/",
+    });
+  } else {
+    // 地址栏上没有code时的处理逻辑
+    console.log("地址栏上没有code");
+  }
+
+  // 监听URL变化
+  // window.addEventListener("popstate", checkForCodeInUrl);
+};
+onMounted(
+  // 挂载时开始监听
+  checkForCodeInUrl
+);
 </script>
 
 <template>
@@ -960,9 +1032,17 @@ const clear = () => {
     </div>
   </div>
 
-  <ActivateMembership :visiblePay="pan" @define="pan = false" />
-
-  <Login v-model="visibilityLoginDialog" @update="uplogin(val)" />
+  <ActivateMembership ref="childRef" :visiblePay="pan" @define="pan = false" />
+
+  <Login
+    :wx_avatar="wx_avatar"
+    :wx_name="wx_name"
+    :wx_open_id="wx_openid"
+    :wx_union_id="wx_unionid"
+    ref="loginref"
+    v-model="visibilityLoginDialog"
+    @update="uplogin(val)"
+  />
   <!-- 退出意向 -->
   <el-dialog title="提示" v-model="dialogs" width="416px">
     <div>确定要退出忆象吗?</div>
@@ -1103,7 +1183,7 @@ const clear = () => {
 .record {
   padding: 5px 10px;
   box-sizing: border-box;
-  height:26px;
+  height: 26px;
   background: #efefef;
   border-radius: 3px;
   font-family: PingFangSC, PingFang SC;

+ 1 - 1
src/components/layouts/HeaderEditor.vue

@@ -24,7 +24,7 @@ const options = ref([
 
 const value = ref("article"); // default article
 onMounted(() => {
-  if (route.query.type == "news") {
+  if (route.query.type == "news" || route.query.type == "info") {
     value.value = "news";
   } else if (route.query.type == "article") {
     value.value = "article";

+ 0 - 1
src/router/index.js

@@ -1,6 +1,5 @@
 import { createRouter, createWebHashHistory } from "vue-router";
 import config from "~/configs"
-
 import Layout from "~/views/index.vue"
 import LayoutHeader from '~/components/layouts/LayoutHeader.vue'
 import LayoutEditor from '~/components/layouts/LayoutEditor.vue'

+ 3 - 1
src/store/user.js

@@ -36,7 +36,8 @@ export const useUser = defineStore('user', {
     follow_count: 0, //关注数量
     collect_count: 0, //收藏数量
     view_count: 0, //浏览数
-    created_at:''
+    created_at:'',
+    wx_name:''
   }),
 
   getters: {},
@@ -93,6 +94,7 @@ export const useUser = defineStore('user', {
           this.backgroud_image = data.backgroud_image // 背景图
           this.already_upgrade_rate = data.already_upgrade_rate // 已经升级的比例: 如果是12.34%, 则值为0.1234
           this.created_at = data.created_at
+          this.wx_name = data.wx_name
         }
       } catch (error) {
         console.log('%c getUser error >>>', 'background: blue; color: #fff', error);

+ 7 - 1
src/useHook/useUser.js

@@ -2,8 +2,10 @@ import { ref, reactive, toValue } from 'vue'
 import * as loginApi from '~/api/user'
 
 import { useUser } from '~/store/user'
+import { useRouter } from 'vue-router'
 
 export function useLogin() {
+  const router = useRouter()
 
   const User = useUser()
   
@@ -47,7 +49,8 @@ export function useLogin() {
         let funcName = {
           'login': 'login',
           'register': 'register',
-          'mobilelogin': 'mobileLogin'
+          'mobilelogin': 'mobileLogin',
+          "bilelogin":'register'
         }[type]
 
         if (!funcName || !formdata) return
@@ -68,6 +71,9 @@ export function useLogin() {
           })
         }
         resolve()
+        router.push({
+          path: "/",
+        });
       } catch (error) {
         reject(error)
       }

+ 2 - 0
src/useHook/usepuy.js

@@ -38,6 +38,7 @@ export const usePut = (type, formdata) => {
 
   return new Promise((resolve, reject) => {
     try {
+      console.log(funcs);
       if (funcs) {
         funcs(formdata).then(result => {
           resolve(result)
@@ -49,6 +50,7 @@ export const usePut = (type, formdata) => {
         throw new Error('类型错误')
       }
     } catch (error) {
+      console.log(funcs);
       reject(error)
     }
   })

+ 22 - 15
src/utils/request.js

@@ -1,9 +1,10 @@
 import axios from 'axios'
 
-import { ElMessage } from 'element-plus'
+import { ElMessage, } from 'element-plus'
 
 import { useUser } from '~/store/user'
 import { getToken } from '~/utils/auth'
+let tipsOne = 0 
 
 const service = axios.create({
   baseURL: '/api/',
@@ -14,7 +15,6 @@ const service = axios.create({
 service.interceptors.request.use(
   config => {
     // console.log('%c config >>>', 'background: blue; color: #fff', config);
-
     // NOTE: 上传接口 `content-type`有变化
     if (config.url === 'upload/upload') {
       config.headers['Content-Type'] = "multipart/form-data"
@@ -56,19 +56,26 @@ service.interceptors.response.use(
     if (res.code !== 10000) {
       // place relogin 20001
       if (res.code === 20001) {
-        // ElMessageBox.confirm(
-        //   // '登录已退出,请重新登录',
-        //   // 'Warning',
-        //   // {
-        //   //   confirmButtonText: 'OK',
-        //   //   cancelButtonText: 'Cancel',
-        //   //   type: 'warning',
-        //   // }
-        // )
-        // .then(() => {
-        //   const User = useUser()
-        //   User.resetLogin()
-        // })
+        if (tipsOne==0) {
+          tipsOne++
+          ElMessageBox.confirm(
+            '登录已退出,请重新登录',
+            '提示',
+            {
+              confirmButtonText: '确定',
+              cancelButtonText: '取消',
+              type: 'warning',
+            }
+          )
+            .then(() => {
+              const User = useUser()
+              User.resetLogin()
+            })
+          
+        }
+      } else 
+      if (res.code === 20004) {
+        return Promise.resolve(res)
       } else {
         ElMessage({
           message: res.msg || 'Error',

+ 25 - 4
src/views/index/content.vue

@@ -9,12 +9,13 @@ import IndexSection from "~/components/IndexSection/index.vue";
 import YXFooter from "~/components/layouts/Footer.vue";
 import TheCharts from "~/components/TheCharts/index.vue";
 import Banner from "~/components/Banner/index.vue";
-import { useRouter } from "vue-router";
+import { useRouter, useRoute } from "vue-router";
 import * as topticApi from "~/api/topic";
 import { ElMessage } from "element-plus";
 import { CaretBottom, Search } from "@element-plus/icons-vue";
+import * as commonApi from "~/api/common";
 const router = useRouter();
-
+const route = useRoute();
 import * as newsApi from "~/api/news";
 import * as articleApi from "~/api/article";
 import * as videoApi from "~/api/video";
@@ -27,6 +28,26 @@ const tan = ref(false);
 //   tan.value = true;
 // };
 
+//地址栏信息
+// const wechat = async (info) => {
+//   const wx_openid = info.wx_openid;
+//   const wx_avatar = info.wx_avatar;
+//   const wx_name = info.wx_name;
+//   const wx_unionid = info.wx_unionid;
+//   try {
+//     const { data } = await commonApi.wxLogin({
+//       wx_openid: wx_openid,
+//       wx_avatar: wx_avatar,
+//       wx_name: wx_name,
+//       wx_unionid: wx_unionid,
+//     });
+//     console.log(data);
+//   } catch (error) {
+//     console.log(error);
+//   }
+// };
+
+
 const User = useUser();
 
 const RankTitleEnum = {
@@ -395,7 +416,7 @@ const handleClickTopic = (item) => {
         <IndexNews
           @update="todetails(item.id)"
           :title="item.title"
-          :time-ago="item.published_at"
+          :time-ago="item.created_at"
           :like-count="item.like_count || '0'"
           :comment-count="item.comment_count || '0'"
           :image="item.image"
@@ -404,7 +425,7 @@ const handleClickTopic = (item) => {
         />
       </template>
     </div>
-    <IndexTitle title="精选文章" @seeMore="pickmore" />  
+    <IndexTitle title="精选文章" @seeMore="pickmore" />
     <div class="content-list content-list--c2 flex-row">
       <template v-for="(item, idx) in articleList" :key="idx">
         <IndexSection

Some files were not shown because too many files changed in this diff