index.wxml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <view wx:if="{{info.globalVar}}" class='container'>
  2. <image class="work_bg {{!info.filterPath && 'filter'}}" src="{{cdn_url}}/scenes/{{id}}.jpg" mode="aspectFill" />
  3. <image class="work_bg_filter" wx:if="{{info.filterPath}}" src="{{cdn_url+info.filterPath}}" />
  4. <view class="w_body">
  5. <view class="top_bar" wx:if="{{projectid == 'ZHS2409020-1'}}">
  6. <view class="zoom_tip" wx:if="{{isZoom}}">
  7. <image src="/assets/img/img_tip.png" mode="widthFix" />
  8. <text style="font-size: 31rpx;">可左右滑动图片</text>
  9. </view>
  10. <view class="w_zoom" bindtap="zoom">
  11. <image src="{{isZoom ? '/assets/img/icon_zoomout.png' : '/assets/img/icon_zoomin.png'}}" mode="widthFix" />
  12. <text style="font-size: 31rpx;">{{isZoom ? '全图模式' : '大图模式'}}</text>
  13. </view>
  14. </view>
  15. <view wx:if="{{!isZoom}}" class="w_video"
  16. style="background-image: url({{cdn_url+info.resourceImg.bg}});{{info.resourceImg.style}}">
  17. <video wx:if="{{type=='0'}}" style="opacity:{{loadCompele?1:0}};{{info.resourceImg.imgStyle}}"
  18. bindloadedmetadata="loadcompele" src="{{url_link}}" loop autoplay controls="{{false}}"
  19. enable-progress-gesture="{{false}}"></video>
  20. <image wx:else style="opacity:{{loadCompele?1:0}};{{info.resourceImg.imgStyle}}" bindload="loadcompele"
  21. show-menu-by-longpress="true" src="{{url_link}}" mode="widthFix" />
  22. <block wx:if="{{projectid == 'ZHS2409020-1'}}">
  23. <view wx:for="{{confirmedIps}}" wx:key="id"
  24. class="ip-overlay {{item.typeIndex==3 ? 'ip-overlay-title':item.typeIndex==2?'ip-overlay-title':'' }} ip-overlay__confirmed confirmed-overlay"
  25. style="left:{{item.left}}px; top:{{item.top}}px; right:auto; bottom:auto;">
  26. <!-- 贴图 -->
  27. <image wx:if="{{item.typeIndex==1}}" class="ip-main" src="{{item.imgUrl}}"
  28. style="transform:scale({{item.scaleX}}, {{item.scaleY}}) rotate({{item.rotate}}deg) translateZ(0); will-change: transform;" bind:tap="selectConfirm" data-item="{{item}}"/>
  29. <!-- 标题 -->
  30. <view wx:if="{{item.typeIndex==2}}" class="ip-title-main"
  31. style="color:{{item.rgb}};transform:scale({{item.scaleX}}, {{item.scaleY}}) rotate({{item.rotate}}deg) translateZ(0); will-change: transform;"
  32. bind:tap="selectConfirm" data-item="{{item}}">{{item.title}}</view>
  33. <!-- 日期 -->
  34. <view wx:if="{{item.typeIndex==3}}" class="ip-title-main"
  35. style="color:{{item.rgb}};transform:scale({{item.scaleX}}, {{item.scaleY}}) rotate({{item.rotate}}deg) translateZ(0); will-change: transform;" bind:tap="selectConfirm" data-item="{{item}}">{{item.date}}</view>
  36. </view>
  37. </block>
  38. <!-- 可以操作的情况 -->
  39. <view wx:if="{{selectedIp && projectid == 'ZHS2409020-1'}}"
  40. class="ip-overlay {{tabIndex==3 ? 'ip-overlay-title':tabIndex==2?'ip-overlay-title':'' }} {{ipConfirmed ? 'ip-overlay__confirmed' : ''}}"
  41. style="opacity:{{positionInitialized?1:0}}; {{positionInitialized ? 'left:'+ipLeft+'px; top:'+ipTop+'px; right: auto; bottom: auto;' : ''}}">
  42. <!-- 贴图 -->
  43. <image wx:if="{{tabIndex==1}}" class="ip-main" src="{{selectedIp.imgUrl}}"
  44. style="transform:scale({{ipScaleX}}, {{ipScaleY}}) rotate({{ipRotate}}deg) translateZ(0); will-change: transform;"
  45. catchtouchstart="dragStart" catchtouchmove="dragMove" />
  46. <!-- 标题 -->
  47. <view wx:if="{{tabIndex==2}}" class="ip-title-main"
  48. style="color:{{rgb}};transform:scale({{ipScaleX}}, {{ipScaleY}}) rotate({{ipRotate}}deg) translateZ(0); will-change: transform;"
  49. catchtouchstart="dragStart" catchtouchmove="dragMove">{{titleDatas[titleDatas.length-1]}}</view>
  50. <!-- 日期 -->
  51. <view wx:if="{{tabIndex==3}}" class="ip-title-main"
  52. style="color:{{rgb}};transform:scale({{ipScaleX}}, {{ipScaleY}}) rotate({{ipRotate}}deg) translateZ(0); will-change: transform;"
  53. catchtouchstart="dragStart" catchtouchmove="dragMove">{{selectedDate}}</view>
  54. <image class="ip-btn ip-btn__rotate" src="/assets/img/icon_rorate.png" mode="widthFix"
  55. catchtouchstart="rotateStart" catchtouchmove="rotateMove" />
  56. <image class="ip-btn ip-btn__scale" src="/assets/img/icon_scale.png" mode="widthFix"
  57. catchtouchstart="scaleStart" catchtouchmove="scaleMove" />
  58. <image class="ip-btn ip-btn__delete" src="/assets/img/icon_delete.png" mode="widthFix" bindtap="deleteIp" />
  59. <image class="ip-btn ip-btn__confirm" src="/assets/img/icon_correct.png" mode="widthFix" bindtap="confirmIp" />
  60. </view>
  61. </view>
  62. <!-- 大图模式 -->
  63. <view wx:else class="w_video fill-img">
  64. <scroll-view scroll-x="true" class="zoom-scroll" show-scrollbar="{{false}}" bindscroll="onZoomScroll">
  65. <image class="zoom-image" mode="heightFix" bindload="loadcompele" show-menu-by-longpress="true" src="{{url_link}}" />
  66. </scroll-view>
  67. <block wx:if="{{projectid == 'ZHS2409020-1'}}">
  68. <view wx:for="{{confirmedIps}}" wx:key="id" class="ip-overlay ip-overlay__confirmed confirmed-overlay" style="left:{{item.left}}px; top:{{item.top}}px; right:auto; bottom:auto;">
  69. <image class="ip-main" src="{{item.imgUrl}}" style="transform:scale({{item.scaleX}}, {{item.scaleY}}) rotate({{item.rotate}}deg) translateZ(0); will-change: transform;" />
  70. </view>
  71. </block>
  72. <view wx:if="{{selectedIp && projectid == 'ZHS2409020-1'}}" class="ip-overlay {{ipConfirmed ? 'ip-overlay__confirmed' : ''}}" style="opacity:{{positionInitialized?1:0}}; {{positionInitialized ? 'left:'+ipLeft+'px; top:'+ipTop+'px; right: auto; bottom: auto;' : ''}}">
  73. <image class="ip-main" src="{{selectedIp.imgUrl}}" style="transform:scale({{ipScaleX}}, {{ipScaleY}}) rotate({{ipRotate}}deg) translateZ(0); will-change: transform;" catchtouchstart="dragStart" catchtouchmove="dragMove" />
  74. <image class="ip-btn ip-btn__rotate" src="/assets/img/icon_rorate.png" mode="widthFix" catchtouchstart="rotateStart" catchtouchmove="rotateMove" />
  75. <image class="ip-btn ip-btn__scale" src="/assets/img/icon_scale.png" mode="widthFix" catchtouchstart="scaleStart" catchtouchmove="scaleMove" />
  76. <image class="ip-btn ip-btn__delete" src="/assets/img/icon_delete.png" mode="widthFix" bindtap="deleteIp" />
  77. <image class="ip-btn ip-btn__confirm" src="/assets/img/icon_correct.png" mode="widthFix" bindtap="confirmIp" />
  78. </view>
  79. </view>
  80. <!-- 编辑模式 -->
  81. <view wx:if="{{isEditing && projectid == 'ZHS2409020-1'}}" class="ip-list">
  82. <view class="tabList">
  83. <view class="tab {{tabIndex==1 ? 'tab_active' : ''}}" bindtap="handleTabTap" data-index="1">贴纸</view>
  84. <view class="tab {{tabIndex==2 ? 'tab_active' : ''}}" bindtap="handleTabTap" data-index="2">标题</view>
  85. <view class="tab {{tabIndex==3 ? 'tab_active' : ''}}" bindtap="handleTabTap" data-index="3">日期</view>
  86. </view>
  87. <scroll-view wx:if="{{tabIndex==1}}" scroll-y="true" class="ip-scroll" show-scrollbar="{{false}}">
  88. <view class="ip-grid">
  89. <view class="ip-item-wrapper" wx:for="{{ipsImgList}}" wx:key="name" data-index="{{index}}" bindtap="selectIp">
  90. <image class="ip-item {{selectedIpIndex === index ? 'ip-item__active' : ''}}" src="{{item.imgUrl}}"
  91. mode="aspectFit" />
  92. </view>
  93. </view>
  94. </scroll-view>
  95. <!-- 标题 -->
  96. <view class="titleTab" wx:if="{{tabIndex==2}}">
  97. <textarea class="titleArea" value="{{title}}" bindinput="onTitleInput" placeholder="请填写标题,最多不超过50个字"
  98. maxlength="50" />
  99. <view class="colorSelect">
  100. <text>字体颜色</text>
  101. <view class="color color1 {{rgbIndex==0 ? 'colorAc':''}}" bindtap="setColor" data-index="0"
  102. data-rgb="rgba(148, 216, 53, 1)"></view>
  103. <view class="color color2 {{rgbIndex==1 ? 'colorAc':''}}" bindtap="setColor" data-index="1"
  104. data-rgb="rgba(13, 121, 217, 1)"></view>
  105. <view class="color color3 {{rgbIndex==2 ? 'colorAc':''}}" bindtap="setColor" data-index="2"
  106. data-rgb="rgba(251, 158, 19, 1)"></view>
  107. <view class="color color4 {{rgbIndex==3 ? 'colorAc':''}}" bindtap="setColor" data-index="3"
  108. data-rgb="rgba(255, 114, 114, 1)"></view>
  109. <view class="colorSelectPick" bindtap="toPick">
  110. <image class="selfColor" src="/assets/img/icon_colorPick.png" mode="heightFix" />
  111. <text>自定义</text>
  112. </view>
  113. <color-picker bindchangeColor="pickColor" initColor="{{rgb}}" show="{{pick}}" bindclose="toPick" />
  114. </view>
  115. <view class="confirmBox">
  116. <view class="cConfirm" bindtap="saveTitle" data-index="{{titleDatas.length}}">添加</view>
  117. </view>
  118. </view>
  119. <!-- 日期 -->
  120. <view class='dateTab' wx:if="{{tabIndex==3}}">
  121. <picker-view class="date-picker" value="{{pickerValue}}" bindchange="onDateChange">
  122. <!-- 年份列 -->
  123. <picker-view-column>
  124. <view class="picker-item" wx:for="{{years}}" wx:key="index">{{item}}年</view>
  125. </picker-view-column>
  126. <!-- 月份列 -->
  127. <picker-view-column>
  128. <view class="picker-item" wx:for="{{months}}" wx:key="index">{{item}}月</view>
  129. </picker-view-column>
  130. <!-- 日期列 -->
  131. <picker-view-column>
  132. <view class="picker-item" wx:for="{{days}}" wx:key="index">{{item}}日</view>
  133. </picker-view-column>
  134. </picker-view>
  135. <view class="confirmBox">
  136. <view class="cConfirm" bindtap="selectIp" data-index="{{0}}">添加</view>
  137. </view>
  138. </view>
  139. </view>
  140. <view class="w_btn"
  141. style="height:{{info.rescan.height}};background:url({{cdn_url+info.rescan.bg}}) no-repeat center / cover">
  142. <view style="padding-left: 20rpx;" bindtap="edit"
  143. wx:if="{{projectid == 'ZHS2409020-1' && !isEditing && type!='0'}}">
  144. <image src="/assets/img/edit.png" mode="widthFix" />
  145. </view>
  146. <view class="btn_paise__border" wx:if="{{projectid == 'ZHS2409020-1' && !isEditing && type!='0'}}"
  147. style="background:{{info.rescan.borderColor}}" />
  148. <view bindtap="cancel">
  149. <image src="{{cdn_url}}/images/cancel.png" mode="widthFix" />
  150. </view>
  151. <view class="btn_paise__border" style="background:{{info.rescan.borderColor}}" />
  152. <view bindtap="saveAlbum">
  153. <image src="{{cdn_url}}/images/save.png" mode="widthFix" />
  154. </view>
  155. </view>
  156. </view>
  157. <wxml-to-canvas wx:if="{{widgetVisible}}" class="widget" id="widget" width="{{canvasWidth}}" height="{{canvasHeight}}"
  158. style="position: absolute; left: -9999px; top: 0;"></wxml-to-canvas>
  159. </view>