2 lines
7.7 KiB
JavaScript
2 lines
7.7 KiB
JavaScript
import{a as e,o as a,j as s,w as t,f as o,h as l,e as n,F as i,k as r,I as c,l as u,p as f,A as d,N as p,B as m,T as h,bu as v,G as _,H as x,Q as y,z as g,ab as w,bv as b,a2 as k,aZ as j,aV as T,ad as S,bw as C,bx as I,a7 as P,W as D,X as G,O as F,v as $,u as E,i as H}from"./index-90c12cc1.js";import{H as R}from"./index.0e2fd26a.js";import{u as A}from"./useScroll.50272fa4.js";import{G as N}from"./Goods.94b8dae8.js";import{u as W}from"./usePage.8865205f.js";import{d as z}from"./product.4783a646.js";import{u as O}from"./useShare.9ac42bc5.js";import{P as Q}from"./Popup.4e72ea57.js";import{a9 as q,aa as B}from"./images.cf3befb9.js";import{l as J}from"./lodash.b1309c50.js";import{_ as L}from"./_plugin-vue_export-helper.1b428a4d.js";import{_ as M}from"./u-overlay.1411b0ae.js";import{u as U}from"./useImage.fddbd11e.js";import"./uv-icon.c815b875.js";import"./uv-icon.vue_vue_type_style_index_0_scoped_23936b10_lang.7145f5b2.js";import"./utils.80a0ac72.js";import"./index.d156dd8a.js";import"./useShearPlate.4a901d40.js";import"./useInterface.bd4f041a.js";import"./u-icon.ec8b667f.js";import"./_commonjsHelpers.02d3be64.js";const V=L({__name:"Goods",emits:["share"],setup(h,{expose:v,emit:_}){const x=e(null),y=e("分享"),g=e(void 0);function w(){g.value=void 0,x.value.close()}function b(e){_("share",e,J.cloneDeep(g.value)),w()}v({open:function(e,a){a&&(e&&(y.value=e),g.value=a,x.value.show())}});const k=[{label:"微信好友",value:"wechat",icon:q},{label:"生成海报",value:"photo",icon:B}];return(e,h)=>{const v=f,_=d,g=p,j=m;return a(),s(Q,{ref_key:"popupRef",ref:x,title:y.value},{rightOption:t((()=>[o("span")])),default:t((()=>[l(j,{class:"share-box flex flex-ai__center flex-jc__sa"},{default:t((()=>[(a(),n(i,null,r(k,(e=>(a(),n(i,{key:e.value},["wechat"===e.value?(a(),s(g,{key:0,"open-type":"share",onClick:a=>b(e),class:"item flex flex-column flex-jc__center flex-ai__center"},{default:t((()=>[l(v,{src:e.icon},null,8,["src"]),l(_,null,{default:t((()=>[c(u(e.label),1)])),_:2},1024)])),_:2},1032,["onClick"])):(a(),s(j,{key:1,onClick:a=>b(e),class:"item flex flex-column flex-jc__center flex-ai__center"},{default:t((()=>[l(v,{src:e.icon},null,8,["src"]),l(_,null,{default:t((()=>[c(u(e.label),1)])),_:2},1024)])),_:2},1032,["onClick"]))],64)))),64))])),_:1}),l(j,{class:"cancel",onClick:w},{default:t((()=>[c(" 取消 ")])),_:1})])),_:1},8,["title"])}}},[["__scopeId","data-v-7f00a598"]]),X=L({__name:"Goods",setup(o,{expose:n}){const i=h(),{getImageInfo:r,base64ToUrl:u,saveImageToPhotosAlbum:d}=U(),{shareInfo:p,goodsDetailShare:P}=O(),D=e(!1),G=e(void 0),F=e("");function $(){G.value=E.value=void 0,D.value=!1}n({open:async function(e){G.value=e,D.value=!0,w({title:"获取数据中..."}),P(e),F.value=await b({path:"pages/share/index",name:p.value.query}),await k((()=>{!function(){w({title:"海报生成中"});T().in(H).select("#goods-canvas").boundingClientRect().exec((async e=>{try{const{width:a,height:s}=e[0];!function(e={}){A.save();e={x:0,y:0,width:0,height:0,round:0,stroke:!1,strokeStyle:"#ffffff",fillStyle:"#ffffff",...e};const{x:a,y:s,width:t,height:o,round:l,stroke:n,strokeStyle:i,fillStyle:r}=e;A.beginPath(),A.moveTo(a+l,s),A.arcTo(a+t,s,a+t,s+l,l),A.lineTo(a+t,s+o-l),A.arcTo(a+t,s+o,a+t-l,s+o,l),A.lineTo(a+l,s+o),A.arcTo(a,s+o,a,s+o-l,l),A.lineTo(a,s+l),A.arcTo(a,s,a+l,s,l),A.closePath(),A.fillStyle=r,A.strokeStyle=i,A.fill(),n&&A.stroke(),A.restore()}({width:a,height:s,round:10}),await async function(){await N({x:15,y:15,width:32,height:32,src:i.user.avatar}),A.save(),A.font="normal 16px sans-serif",A.fillStyle="#000000",A.translate(68,32),A.fillText(i.user.nickname,0,8),A.restore()}(),await async function(e){const a=e-48,s=G.value.image;await N({x:24,y:72,width:a,height:a,src:s});const t=G.value.storeName,o=G.value.price,l=G.value.otPrice,n=A.measureText(t)>=e/1.5?t:t.slice(0,17)+"...";A.save(),A.translate(24,e+58),A.font="normal bold 16px sans-serif",A.fillStyle="#000000",A.fillText(n,0,0),A.restore(),A.save(),A.translate(24,e+58+36),A.font="normal bold 24px sans-serif",A.fillStyle="#EE6D46",A.fillText(`¥${o}`,0,0);const i=A.measureText(`¥${o}`);A.font="normal normal 16px sans-serif",A.fillStyle="#999999",A.fillText(`¥${l}`,i.width+10,0);const r=A.measureText(`¥${l}`);A.fillRect(i.width+10,-8,r.width+5,1.5),A.restore(),A.save(),A.beginPath(),A.strokeStyle="#F0F0F0",A.translate(24,e+58+36+15),A.moveTo(0,0),A.lineWidth=1,A.lineTo(a,0),A.stroke(),A.closePath(),A.restore()}(a),await async function(e){A.save(),A.translate(24,e+58+36+15+25);const a="长按识别图中二维码",s="来自「Yshop商城」小程序";A.font="normal bold 16px sans-serif",A.fillStyle="#000000",A.fillText(a,0,0),A.font="normal normal 14px sans-serif",A.fillStyle="#8C8C8C",A.fillText(s,0,25);const t=await u(F.value);await N({x:e-48-50,y:-18,width:50,height:50,src:t}),A.restore()}(a),A.draw(!1,(()=>{!async function(){console.log("开始生成画布"),C({canvasId:"goods-canvas",success:async e=>{E.value=await u(e.tempFilePath),S()},fail:e=>{console.log(e),S()}})}()}))}catch(a){throw S(),console.dir(a),new Error(a)}}))}()}))},close:$});const E=e(null),H=j(),R=e(),A=v("goods-canvas",H);async function N(e={}){e={x:0,y:0,width:0,height:0,src:"",...e};const{path:a}=await r(e.src);A.drawImage(a,e.x,e.y,e.width,e.height)}async function W(){w({title:"保存中"});try{await d(E.value,G.value.storeName),$()}finally{S()}}return(e,o)=>{const n=f,i=m,r=I,u=_(x("u-overlay"),M);return a(),s(u,{onTouchmove:o[1]||(o[1]=e=>{e.preventDefault()}),show:D.value,onClick:$},{default:t((()=>[G.value&&E.value?(a(),s(i,{key:0,class:"poster"},{default:t((()=>[l(i,{class:"poster-image",onClick:o[0]||(o[0]=y((()=>{}),["stop"]))},{default:t((()=>[l(n,{src:E.value},null,8,["src"])])),_:1}),l(i,{class:"button-group"},{default:t((()=>[l(i,{class:"button line-button",onClick:y($,["stop"])},{default:t((()=>[c(" 取消 ")])),_:1},8,["onClick"]),l(i,{class:"button animation-button",onClick:y(W,["stop"])},{default:t((()=>[c(" 保存 ")])),_:1},8,["onClick"])])),_:1})])),_:1})):g("",!0),l(r,{"canvas-id":"goods-canvas",ref_key:"canvasRef",ref:R,style:{width:"654rpx",height:"1032rpx",margin:"20rpx auto",position:"absolute","z-index":"999",top:"-999px"},id:"goods-canvas"},null,512)])),_:1},8,["show"])}}},[["__scopeId","data-v-561839c9"]]),Y=L({__name:"index",setup(o){h();const{scrollTop:f}=A();P((()=>{}));const{refresh:p,dataList:v,loadend:_,loading:x,listEmpty:g,otherQuery:w}=W(z),{shareAppMessage:b,shareTimeline:k,distributionGoodsDetailShare:j,shareH5:T}=O();D(b),G(k);const{push:S,getParams:C}=E(),I=e();F((e=>{const a=C(e);I.value=a.distributionId,w.value={isDistribution:1}}));const Q=e(),q=e();async function B(e,a){j(a,I.value),"photo"!==e.value?"wechat"===e.value&&T():q.value.open(a)}return $((()=>{p()})),(e,o)=>{const p=m,h=d;return a(),s(p,{class:"goods-list"},{default:t((()=>[l(R,{"scroll-top":H(f),"system-bar-area-bg":"#fff","header-area-bg":"#fff"},{default:t((()=>[c(" 分销商品 ")])),_:1},8,["scroll-top"]),l(p,{class:"goods-list__inner"},{default:t((()=>[(a(!0),n(i,null,r(H(v),(e=>(a(),s(p,{key:e.id,class:"product"},{default:t((()=>[l(N,{row:"","img-width":"160rpx",ratio:!0,goods:e,infoPadding:"10rpx 10rpx"},{options:t((()=>[l(p,{class:"good-bottom"},{default:t((()=>[l(p,{class:"price"},{default:t((()=>[c(" ¥"+u(e.price),1)])),_:2},1024),l(p,{class:"sale flex flex-jc__sb flex-ai__end"},{default:t((()=>[l(p,{class:"left"},{default:t((()=>[l(h,{class:"gray-color"},{default:t((()=>[c("预计佣金:")])),_:1}),c(" ¥999-999 ")])),_:1}),l(p,{class:"btn",onClick:y((a=>{return s=e,void Q.value.open("分享赚",s);var s}),["stop"])},{default:t((()=>[c(" 分享赚 ")])),_:2},1032,["onClick"])])),_:2},1024)])),_:2},1024)])),_:2},1032,["goods"])])),_:2},1024)))),128))])),_:1}),l(V,{ref_key:"goodsShare",ref:Q,onShare:B},null,512),l(X,{ref_key:"goodsPoster",ref:q},null,512)])),_:1})}}},[["__scopeId","data-v-e133c0d3"]]);export{Y as default};
|