editor.php 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928
  1. <!--编辑器: page-->
  2. <script id="tpl_editor_page" type="text/template">
  3. <div class="editor-title"><span>{{ name }}</span></div>
  4. <form class="am-form tpl-form-line-form" data-itemid="{{ id }}">
  5. <div class="am-form-group">
  6. <label class="am-u-sm-4 am-form-label am-text-xs">页面名称 </label>
  7. <div class="am-u-sm-8 am-u-end">
  8. <input class="tpl-form-input" type="text" name="name"
  9. data-bind="params.name" value="{{ params.name }}">
  10. <div class="help-block am-margin-top-xs">
  11. <small>页面名称仅用于后台查找</small>
  12. </div>
  13. </div>
  14. </div>
  15. <div class="am-form-group">
  16. <label class="am-u-sm-4 am-form-label am-text-xs">页面标题 </label>
  17. <div class="am-u-sm-8 am-u-end">
  18. <input class="tpl-form-input" type="text" name="title"
  19. data-bind="params.title" value="{{ params.title }}">
  20. <div class="help-block am-margin-top-xs">
  21. <small>小程序端顶部显示的标题</small>
  22. </div>
  23. </div>
  24. </div>
  25. <div class="am-form-group">
  26. <label class="am-u-sm-4 am-form-label am-text-xs">分享标题 </label>
  27. <div class="am-u-sm-8 am-u-end">
  28. <input class="tpl-form-input" type="text" name="share_title"
  29. data-bind="params.share_title" value="{{ params.share_title }}">
  30. <div class="help-block am-margin-top-xs">
  31. <small>小程序端转发时显示的标题</small>
  32. </div>
  33. </div>
  34. </div>
  35. <div class="am-form-group">
  36. <label class="am-u-sm-4 am-form-label am-text-xs">标题栏文字 </label>
  37. <div class="am-u-sm-8 am-u-end">
  38. <label class="am-radio-inline">
  39. <input data-bind="style.titleTextColor" type="radio" name="titleTextColor"
  40. value="black" {{ style.titleTextColor=== 'black' ? 'checked' : '' }}> 黑色
  41. </label>
  42. <label class="am-radio-inline">
  43. <input data-bind="style.titleTextColor" type="radio" name="titleTextColor"
  44. value="white" {{ style.titleTextColor=== 'white' ? 'checked' : '' }}> 白色
  45. </label>
  46. </div>
  47. </div>
  48. <div class="am-form-group">
  49. <label class="am-u-sm-4 am-form-label am-text-xs">标题栏背景 </label>
  50. <div class="am-u-sm-8 am-u-end">
  51. <input class="" type="color" name="titleBackgroundColor"
  52. data-bind="style.titleBackgroundColor" value="{{ style.titleBackgroundColor }}">
  53. <button type="button" class="btn-resetColor am-btn am-btn-xs" data-color="#ffffff">
  54. 重置
  55. </button>
  56. </div>
  57. </div>
  58. </form>
  59. </script>
  60. <!--编辑器: 搜索-->
  61. <script id="tpl_editor_search" type="text/template">
  62. {{ if name }}
  63. <div class="editor-title"><span>{{ name }}</span></div>
  64. {{ /if }}
  65. <form class="am-form tpl-form-line-form" data-itemid="{{ id }}">
  66. <div class="am-form-group">
  67. <label class="am-u-sm-3 am-form-label am-text-xs">提示文字 </label>
  68. <div class="am-u-sm-9 am-u-end">
  69. <input class="tpl-form-input" type="text" name="searchStyle"
  70. data-bind="params.placeholder" value="{{ params.placeholder }}">
  71. </div>
  72. </div>
  73. <div class="am-form-group">
  74. <label class="am-u-sm-3 am-form-label am-text-xs">搜索框样式 </label>
  75. <div class="am-u-sm-9 am-u-end">
  76. <label class="am-radio-inline">
  77. <input data-bind="style.searchStyle" type="radio" name="searchStyle"
  78. value="" {{ style.searchStyle=== '' ? 'checked' : '' }}> 方形
  79. </label>
  80. <label class="am-radio-inline">
  81. <input data-bind="style.searchStyle" type="radio" name="searchStyle"
  82. value="radius" {{ style.searchStyle=== 'radius' ? 'checked' : '' }}> 圆角
  83. </label>
  84. <label class="am-radio-inline">
  85. <input data-bind="style.searchStyle" type="radio" name="searchStyle"
  86. value="round" {{ style.searchStyle=== 'round' ? 'checked' : '' }}> 圆弧
  87. </label>
  88. </div>
  89. </div>
  90. <div class="am-form-group">
  91. <label class="am-u-sm-3 am-form-label am-text-xs">文字对齐 </label>
  92. <div class="am-u-sm-9 am-u-end">
  93. <label class="am-radio-inline">
  94. <input data-bind="style.textAlign" type="radio" name="textAlign"
  95. value="left" {{ style.textAlign=== 'left' ? 'checked' : '' }}>
  96. 居左
  97. </label>
  98. <label class="am-radio-inline">
  99. <input data-bind="style.textAlign" type="radio" name="textAlign"
  100. value="center" {{ style.textAlign=== 'center' ? 'checked' : '' }}>
  101. 居中
  102. </label>
  103. <label class="am-radio-inline">
  104. <input data-bind="style.textAlign" type="radio" name="textAlign"
  105. value="right" {{ style.textAlign=== 'right' ? 'checked' : '' }}>
  106. 居右
  107. </label>
  108. </div>
  109. </div>
  110. </form>
  111. </script>
  112. <!--编辑器: banner-->
  113. <script id="tpl_editor_banner" type="text/template">
  114. {{ if name }}
  115. <div class="editor-title"><span>{{ name }}</span></div>
  116. {{ /if }}
  117. <form class="am-form tpl-form-line-form" data-itemid="{{ id }}">
  118. <div class="am-form-group">
  119. <label class="am-u-sm-3 am-form-label am-text-xs">指示点形状 </label>
  120. <div class="am-u-sm-9 am-u-end">
  121. <label class="am-radio-inline">
  122. <input data-bind="style.btnShape" type="radio" name="searchStyle"
  123. value="rectangle" {{ style.btnShape=== 'rectangle' ? 'checked' : '' }}> 长方形
  124. </label>
  125. <label class="am-radio-inline">
  126. <input data-bind="style.btnShape" type="radio" name="searchStyle"
  127. value="square" {{ style.btnShape=== 'square' ? 'checked' : '' }}> 正方形
  128. </label>
  129. <label class="am-radio-inline">
  130. <input data-bind="style.btnShape" type="radio" name="searchStyle"
  131. value="round" {{ style.btnShape=== 'round' ? 'checked' : '' }}> 圆形
  132. </label>
  133. </div>
  134. </div>
  135. <div class="am-form-group">
  136. <label class="am-u-sm-3 am-form-label am-text-xs">指示点颜色 </label>
  137. <div class="am-u-sm-9 am-u-end">
  138. <input class="" type="color" name="btnColor"
  139. data-bind="style.btnColor" value="{{ style.btnColor }}">
  140. <button type="button" class="btn-resetColor am-btn am-btn-xs" data-color="#ffffff">
  141. 重置
  142. </button>
  143. </div>
  144. </div>
  145. <div class="form-items">
  146. {{ include 'tpl_editor_data_item_image' data }}
  147. </div>
  148. <div class="j-data-add form-item-add">
  149. <i class="fa fa-plus"></i> 添加一个
  150. </div>
  151. </form>
  152. </script>
  153. <!--编辑器: 单图组-->
  154. <script id="tpl_editor_imageSingle" type="text/template">
  155. <div class="editor-title"><span>{{ name }}</span></div>
  156. <form class="am-form tpl-form-line-form" data-itemid="{{ id }}">
  157. <div class="am-form-group">
  158. <label class="am-u-sm-3 am-form-label am-text-xs">上下边距 </label>
  159. <div class="am-u-sm-9 am-u-end">
  160. <input class="tpl-form-input" type="range" name="paddingTop" data-bind="style.paddingTop"
  161. value="{{ style.paddingTop }}" min="0" max="50">
  162. <div class="display-value">
  163. <span class="value">{{ style.paddingTop }}</span>px (像素)
  164. </div>
  165. </div>
  166. </div>
  167. <div class="am-form-group">
  168. <label class="am-u-sm-3 am-form-label am-text-xs">左右边距 </label>
  169. <div class="am-u-sm-9 am-u-end">
  170. <input class="tpl-form-input" type="range" name="paddingLeft" data-bind="style.paddingLeft"
  171. value="{{ style.paddingTop }}" min="0" max="50">
  172. <div class="display-value">
  173. <span class="value">{{ style.paddingLeft }}</span>px (像素)
  174. </div>
  175. </div>
  176. </div>
  177. <div class="am-form-group">
  178. <label class="am-u-sm-3 am-form-label am-text-xs">背景颜色 </label>
  179. <div class="am-u-sm-9 am-u-end">
  180. <input class="" type="color" name="background"
  181. data-bind="style.background" value="{{ style.background }}">
  182. <button type="button" class="btn-resetColor am-btn am-btn-xs" data-color="#ffffff">
  183. 重置
  184. </button>
  185. </div>
  186. </div>
  187. <div class="form-items">
  188. {{ include 'tpl_editor_data_item_image' data }}
  189. </div>
  190. <div class="j-data-add form-item-add">
  191. <i class="fa fa-plus"></i> 添加一个
  192. </div>
  193. </form>
  194. </script>
  195. <!--编辑器: 导航组-->
  196. <script id="tpl_editor_navBar" type="text/template">
  197. <div class="editor-title"><span>{{ name }}</span></div>
  198. <form class="am-form tpl-form-line-form" data-itemid="{{ id }}">
  199. <div class="am-form-group">
  200. <label class="am-u-sm-4 am-form-label am-text-xs">背景颜色 </label>
  201. <div class="am-u-sm-8 am-u-end">
  202. <input class="" type="color" name="background"
  203. data-bind="style.background" value="{{ style.background }}">
  204. <button type="button" class="btn-resetColor am-btn am-btn-xs" data-color="#ffffff">
  205. 重置
  206. </button>
  207. </div>
  208. </div>
  209. <div class="am-form-group">
  210. <label class="am-u-sm-4 am-form-label am-text-xs">每行数量 </label>
  211. <div class="am-u-sm-8 am-u-end">
  212. <label class="am-radio-inline">
  213. <input data-bind="style.rowsNum" type="radio" name="rowsNum"
  214. value="3" {{ style.rowsNum=== '3' ? 'checked' : '' }}> 3个
  215. </label>
  216. <label class="am-radio-inline">
  217. <input data-bind="style.rowsNum" type="radio" name="rowsNum"
  218. value="4" {{ style.rowsNum=== '4' ? 'checked' : '' }}> 4个
  219. </label>
  220. <label class="am-radio-inline">
  221. <input data-bind="style.rowsNum" type="radio" name="rowsNum"
  222. value="5" {{ style.rowsNum=== '5' ? 'checked' : '' }}> 5个
  223. </label>
  224. </div>
  225. </div>
  226. <div class="form-items">
  227. {{ include 'tpl_editor_data_item_navBar' data }}
  228. </div>
  229. <div class="j-data-add form-item-add">
  230. <i class="fa fa-plus"></i> 添加一个
  231. </div>
  232. </form>
  233. </script>
  234. <!--编辑器: 辅助空白-->
  235. <script id="tpl_editor_blank" type="text/template">
  236. <div class="editor-title"><span>{{ name }}</span></div>
  237. <form class="am-form tpl-form-line-form" data-itemid="{{ id }}">
  238. <div class="am-form-group">
  239. <label class="am-u-sm-4 am-form-label am-text-xs">背景颜色 </label>
  240. <div class="am-u-sm-8 am-u-end">
  241. <input class="" type="color" name="background"
  242. data-bind="style.background" value="{{ style.background }}">
  243. <button type="button" class="btn-resetColor am-btn am-btn-xs" data-color="#ffffff">
  244. 重置
  245. </button>
  246. </div>
  247. </div>
  248. <div class="am-form-group">
  249. <label class="am-u-sm-4 am-form-label am-text-xs">组件高度 </label>
  250. <div class="am-u-sm-8 am-u-end">
  251. <input class="tpl-form-input" type="range" name="height" data-bind="style.height"
  252. value="{{ style.height }}" min="1" max="200">
  253. <div class="display-value">
  254. <span class="value">{{ style.height }}</span>px (像素)
  255. </div>
  256. </div>
  257. </div>
  258. </form>
  259. </script>
  260. <!--编辑器: 辅助线-->
  261. <script id="tpl_editor_guide" type="text/template">
  262. <div class="editor-title"><span>{{ name }}</span></div>
  263. <form class="am-form tpl-form-line-form" data-itemid="{{ id }}">
  264. <div class="am-form-group">
  265. <label class="am-u-sm-4 am-form-label am-text-xs">背景颜色 </label>
  266. <div class="am-u-sm-8 am-u-end">
  267. <input class="" type="color" name="background"
  268. data-bind="style.background" value="{{ style.background }}">
  269. <button type="button" class="btn-resetColor am-btn am-btn-xs" data-color="#ffffff">
  270. 重置
  271. </button>
  272. </div>
  273. </div>
  274. <div class="am-form-group">
  275. <label class="am-u-sm-4 am-form-label am-text-xs">线条样式 </label>
  276. <div class="am-u-sm-8 am-u-end">
  277. <label class="am-radio-inline">
  278. <input data-bind="style.lineStyle" type="radio" name="lineStyle"
  279. value="solid" {{ style.lineStyle=== 'solid' ? 'checked' : '' }}> 实线
  280. </label>
  281. <label class="am-radio-inline">
  282. <input data-bind="style.lineStyle" type="radio" name="lineStyle"
  283. value="dashed" {{ style.lineStyle=== 'dashed' ? 'checked' : '' }}> 虚线
  284. </label>
  285. <label class="am-radio-inline">
  286. <input data-bind="style.lineStyle" type="radio" name="lineStyle"
  287. value="dotted" {{ style.lineStyle=== 'dotted' ? 'checked' : '' }}> 点状
  288. </label>
  289. </div>
  290. </div>
  291. <div class="am-form-group">
  292. <label class="am-u-sm-4 am-form-label am-text-xs">线条颜色 </label>
  293. <div class="am-u-sm-8 am-u-end">
  294. <input class="" type="color" name="lineColor"
  295. data-bind="style.lineColor" value="{{ style.lineColor }}">
  296. <button type="button" class="btn-resetColor am-btn am-btn-xs" data-color="#000000">
  297. 重置
  298. </button>
  299. </div>
  300. </div>
  301. <div class="am-form-group">
  302. <label class="am-u-sm-4 am-form-label am-text-xs">线条高度 </label>
  303. <div class="am-u-sm-8 am-u-end">
  304. <input class="tpl-form-input" type="range" name="lineHeight" data-bind="style.lineHeight"
  305. value="{{ style.lineHeight }}" min="1" max="20">
  306. <div class="display-value">
  307. <span class="value">{{ style.lineHeight }}</span>px (像素)
  308. </div>
  309. </div>
  310. </div>
  311. <div class="am-form-group">
  312. <label class="am-u-sm-4 am-form-label am-text-xs">上下边距 </label>
  313. <div class="am-u-sm-8 am-u-end">
  314. <input class="tpl-form-input" type="range" name="paddingTop" data-bind="style.paddingTop"
  315. value="{{ style.paddingTop }}" min="0" max="50">
  316. <div class="display-value">
  317. <span class="value">{{ style.paddingTop }}</span>px (像素)
  318. </div>
  319. </div>
  320. </div>
  321. </form>
  322. </script>
  323. <!--编辑器: 视频组-->
  324. <script id="tpl_editor_video" type="text/template">
  325. <div class="editor-title"><span>{{ name }}</span></div>
  326. <form class="am-form tpl-form-line-form" data-itemid="{{ id }}">
  327. <div class="am-form-group">
  328. <label class="am-u-sm-3 am-form-label am-text-xs">上下边距 </label>
  329. <div class="am-u-sm-8 am-u-end">
  330. <input class="tpl-form-input" type="range" name="paddingTop" data-bind="style.paddingTop"
  331. value="{{ style.paddingTop }}" min="0" max="50">
  332. <div class="display-value">
  333. <span class="value">{{ style.paddingTop }}</span>px (像素)
  334. </div>
  335. </div>
  336. </div>
  337. <div class="am-form-group">
  338. <label class="am-u-sm-3 am-form-label am-text-xs">视频高度 </label>
  339. <div class="am-u-sm-8 am-u-end">
  340. <input class="tpl-form-input" type="range" name="height" data-bind="style.height"
  341. value="{{ style.height }}" min="50" max="500">
  342. <div class="display-value">
  343. <span class="value">{{ style.height }}</span>px (像素)
  344. </div>
  345. <div class="help-block am-margin-top-xs">
  346. <small>滑块可用左右方向键精确调整</small>
  347. </div>
  348. </div>
  349. </div>
  350. <div class="am-form-group">
  351. <label class="am-u-sm-3 am-form-label am-text-xs">视频封面 </label>
  352. <div class="am-u-sm-8 am-u-end">
  353. <div class="data-image j-selectImg">
  354. <img src="{{ params.poster }}" alt="">
  355. <input type="hidden" name="poster" data-bind="params.poster" value="{{ params.poster }}">
  356. </div>
  357. </div>
  358. </div>
  359. <div class="am-form-group">
  360. <label class="am-u-sm-3 am-form-label am-text-xs">视频地址 </label>
  361. <div class="am-u-sm-9 am-u-end">
  362. <input class="tpl-form-input" type="url" name="videoUrl"
  363. data-bind="params.videoUrl" value="{{ params.videoUrl }}">
  364. </div>
  365. </div>
  366. </form>
  367. </script>
  368. <!--编辑器: 公告组-->
  369. <script id="tpl_editor_notice" type="text/template">
  370. <div class="editor-title"><span>{{ name }}</span></div>
  371. <form class="am-form tpl-form-line-form" data-itemid="{{ id }}">
  372. <div class="am-form-group">
  373. <label class="am-u-sm-3 am-form-label am-text-xs">上下边距 </label>
  374. <div class="am-u-sm-8 am-u-end">
  375. <input class="tpl-form-input" type="range" name="paddingTop" data-bind="style.paddingTop"
  376. value="{{ style.paddingTop }}" min="0" max="50">
  377. <div class="display-value">
  378. <span class="value">{{ style.paddingTop }}</span>px (像素)
  379. </div>
  380. </div>
  381. </div>
  382. <div class="am-form-group">
  383. <label class="am-u-sm-3 am-form-label am-text-xs">背景颜色 </label>
  384. <div class="am-u-sm-9 am-u-end">
  385. <input class="" type="color" name="background" data-bind="style.background"
  386. value="{{ style.background }}">
  387. <button type="button" class="btn-resetColor am-btn am-btn-xs" data-color="{{ style.background }}">
  388. 重置
  389. </button>
  390. </div>
  391. </div>
  392. <div class="am-form-group">
  393. <label class="am-u-sm-3 am-form-label am-text-xs">文字颜色 </label>
  394. <div class="am-u-sm-9 am-u-end">
  395. <input class="" type="color" name="textColor" data-bind="style.textColor" value="{{ style.textColor }}">
  396. <button type="button" class="btn-resetColor am-btn am-btn-xs" data-color="{{ style.textColor }}">
  397. 重置
  398. </button>
  399. </div>
  400. </div>
  401. <div class="am-form-group">
  402. <label class="am-u-sm-3 am-form-label am-text-xs">公告图标 </label>
  403. <div class="am-u-sm-8 am-u-end">
  404. <div class="data-image j-selectImg">
  405. <img src="{{ params.icon }}" style="height: 30px;" alt="">
  406. <input type="hidden" name="poster" data-bind="params.icon" value="{{ params.icon }}">
  407. </div>
  408. <div class="help-block">
  409. <small>建议尺寸:32×32</small>
  410. </div>
  411. </div>
  412. </div>
  413. <div class="am-form-group">
  414. <label class="am-u-sm-3 am-form-label am-text-xs">公告内容 </label>
  415. <div class="am-u-sm-9 am-u-end">
  416. <input class="tpl-form-input" type="text" name="text"
  417. data-bind="params.text" value="{{ params.text }}">
  418. </div>
  419. </div>
  420. </form>
  421. </script>
  422. <!--编辑器: 富文本-->
  423. <script id="tpl_editor_richText" type="text/template">
  424. <div class="editor-title"><span>{{ name }}</span></div>
  425. <form class="am-form tpl-form-line-form" data-itemid="{{ id }}">
  426. <div class="am-form-group">
  427. <label class="am-u-sm-3 am-form-label am-text-xs">上下边距 </label>
  428. <div class="am-u-sm-8 am-u-end">
  429. <input class="tpl-form-input" type="range" name="paddingTop" data-bind="style.paddingTop"
  430. value="{{ style.paddingTop }}" min="0" max="50">
  431. <div class="display-value">
  432. <span class="value">{{ style.paddingTop }}</span>px (像素)
  433. </div>
  434. </div>
  435. </div>
  436. <div class="am-form-group">
  437. <label class="am-u-sm-3 am-form-label am-text-xs">左右边距 </label>
  438. <div class="am-u-sm-8 am-u-end">
  439. <input class="tpl-form-input" type="range" name="paddingLeft" data-bind="style.paddingLeft"
  440. value="{{ style.paddingLeft }}" min="0" max="50">
  441. <div class="display-value">
  442. <span class="value">{{ style.paddingLeft }}</span>px (像素)
  443. </div>
  444. </div>
  445. </div>
  446. <div class="am-form-group">
  447. <label class="am-u-sm-3 am-form-label am-text-xs">背景颜色 </label>
  448. <div class="am-u-sm-9 am-u-end">
  449. <input class="" type="color" name="background" data-bind="style.background"
  450. value="{{ style.background }}">
  451. <button type="button" class="btn-resetColor am-btn am-btn-xs" data-color="{{ style.background }}">
  452. 重置
  453. </button>
  454. </div>
  455. </div>
  456. <div class="am-form-group am-padding-top-sm">
  457. <!-- 加载编辑器的容器 -->
  458. <div id="ume-editor">{{ params.content }}</div>
  459. <textarea class="richtext am-hide" data-bind="params.content">{{ params.content }}</textarea>
  460. </div>
  461. </form>
  462. </script>
  463. <!--编辑器: 图片橱窗-->
  464. <script id="tpl_editor_window" type="text/template">
  465. <div class="editor-title"><span>{{ name }}</span></div>
  466. <form class="am-form tpl-form-line-form" data-itemid="{{ id }}">
  467. <div class="am-form-group">
  468. <label class="am-u-sm-3 am-form-label am-text-xs">上下边距 </label>
  469. <div class="am-u-sm-9 am-u-end">
  470. <input class="tpl-form-input" type="range" name="paddingTop" data-bind="style.paddingTop"
  471. value="{{ style.paddingTop }}" min="0" max="50">
  472. <div class="display-value">
  473. <span class="value">{{ style.paddingTop }}</span>px (像素)
  474. </div>
  475. </div>
  476. </div>
  477. <div class="am-form-group">
  478. <label class="am-u-sm-3 am-form-label am-text-xs">左右边距 </label>
  479. <div class="am-u-sm-9 am-u-end">
  480. <input class="tpl-form-input" type="range" name="paddingLeft" data-bind="style.paddingLeft"
  481. value="{{ style.paddingLeft }}" min="0" max="50">
  482. <div class="display-value">
  483. <span class="value">{{ style.paddingLeft }}</span>px (像素)
  484. </div>
  485. </div>
  486. </div>
  487. <div class="am-form-group">
  488. <label class="am-u-sm-3 am-form-label am-text-xs">背景颜色 </label>
  489. <div class="am-u-sm-9 am-u-end">
  490. <input class="" type="color" name="background"
  491. data-bind="style.background" value="{{ style.background }}">
  492. <button type="button" class="btn-resetColor am-btn am-btn-xs" data-color="#ffffff">
  493. 重置
  494. </button>
  495. </div>
  496. </div>
  497. <div class="am-form-group">
  498. <label class="am-u-sm-3 am-form-label am-text-xs">布局方式 </label>
  499. <div class="j-switch-help am-u-sm-8 am-u-end">
  500. <label class="am-radio-inline">
  501. <input data-bind="style.layout" type="radio" name="layout"
  502. value="2" {{ style.layout=== '2' ? 'checked' : '' }}> 堆积两列
  503. </label>
  504. <label class="am-radio-inline">
  505. <input data-bind="style.layout" type="radio" name="layout"
  506. value="3" {{ style.layout=== '3' ? 'checked' : '' }}> 堆积三列
  507. </label>
  508. <label class="am-radio-inline">
  509. <input data-bind="style.layout" type="radio" name="layout"
  510. value="4" {{ style.layout=== '4' ? 'checked' : '' }}> 堆积四列
  511. </label>
  512. <label class="am-radio-inline">
  513. <input data-bind="style.layout" type="radio" name="layout"
  514. value="-1"
  515. {{ style.layout=== '-1' ? 'checked' : '' }} > 橱窗样式
  516. <small class="help am-hide">
  517. 最多显示四张图片,超出隐藏
  518. </small>
  519. </label>
  520. <div class="help-block am-margin-top-xs" data-default="请确保所有图片的尺寸/比例相同。">
  521. <small>{{ style.layout=== '-1' ? '最多显示四张图片,超出隐藏' : '请确保所有图片的尺寸/比例相同。' }}</small>
  522. </div>
  523. </div>
  524. </div>
  525. <div class="form-items">
  526. {{ include 'tpl_editor_data_item_image' data }}
  527. </div>
  528. <div class="j-data-add form-item-add">
  529. <i class="fa fa-plus"></i> 添加一个
  530. </div>
  531. </form>
  532. </script>
  533. <!--编辑器: 商品组-->
  534. <script id="tpl_editor_goods" type="text/template">
  535. <div class="editor-title"><span>{{ name }}</span></div>
  536. <form class="am-form tpl-form-line-form" data-itemid="{{ id }}">
  537. <!--商品数据-->
  538. <div class="j-switch-box" data-item-class="switch-source">
  539. <div class="am-form-group">
  540. <label class="am-u-sm-4 am-form-label am-text-xs">商品来源 </label>
  541. <div class="am-u-sm-8 am-u-end">
  542. <label class="am-radio-inline">
  543. <input data-switch="__choice" data-bind="params.source" type="radio" name="source"
  544. value="choice" {{ params.source=== 'choice' ? 'checked' : '' }}> 手动选择
  545. </label>
  546. <label class="am-radio-inline">
  547. <input data-switch="__auto" data-bind="params.source" type="radio" name="source"
  548. value="auto" {{ params.source=== 'auto' ? 'checked' : '' }}> 自动获取
  549. </label>
  550. </div>
  551. </div>
  552. <!--手动选择-->
  553. <div class="switch-source __choice {{ params.source=== 'choice' ? '' : 'am-hide' }}">
  554. <div class="form-items __goods am-cf">
  555. {{ include 'tpl_editor_data_item_goods' data }}
  556. </div>
  557. <div class="j-selectGoods form-item-add">
  558. <i class="fa fa-plus"></i> 选择商品
  559. </div>
  560. </div>
  561. <!-- 自动获取 -->
  562. <div class="switch-source __auto {{ params.source=== 'auto' ? '' : 'am-hide' }}">
  563. <div class="am-form-group">
  564. <label class="am-u-sm-4 am-form-label am-text-xs">商品分类 </label>
  565. <div class="am-u-sm-8 am-u-end">
  566. <select data-bind="params.auto.category" name="category"
  567. data-am-selected="{searchBox: 1, btnSize: 'sm', placeholder:'全部分类', maxHeight: 400}">
  568. <option value=""></option>
  569. <option value="-1">全部分类</option>
  570. <?php if (isset($catgory)): foreach ($catgory as $first): ?>
  571. <option value="<?= $first['category_id'] ?>"><?= $first['name'] ?></option>
  572. <?php if (isset($first['child'])): foreach ($first['child'] as $two): ?>
  573. <option value="<?= $two['category_id'] ?>">
  574.   <?= $two['name'] ?></option>
  575. <?php if (isset($two['child'])): foreach ($two['child'] as $three): ?>
  576. <option value="<?= $three['category_id'] ?>">
  577.    <?= $three['name'] ?></option>
  578. <?php endforeach; endif; ?>
  579. <?php endforeach; endif; ?>
  580. <?php endforeach; endif; ?>
  581. </select>
  582. </div>
  583. </div>
  584. <div class="am-form-group">
  585. <label class="am-u-sm-4 am-form-label am-text-xs">商品排序 </label>
  586. <div class="am-u-sm-8 am-u-end">
  587. <label class="am-radio-inline">
  588. <input data-bind="params.auto.goodsSort" type="radio" name="goodsSort"
  589. value="all" {{ params.auto.goodsSort=== 'all' ? 'checked' : '' }}> 综合
  590. </label>
  591. <label class="am-radio-inline">
  592. <input data-bind="params.auto.goodsSort" type="radio" name="goodsSort"
  593. value="sales" {{ params.auto.goodsSort=== 'sales' ? 'checked' : '' }}> 销量
  594. </label>
  595. <label class="am-radio-inline">
  596. <input data-bind="params.auto.goodsSort" type="radio" name="goodsSort"
  597. value="price" {{ params.auto.goodsSort=== 'price' ? 'checked' : '' }}> 价格
  598. </label>
  599. </div>
  600. </div>
  601. <div class="am-form-group">
  602. <label class="am-u-sm-4 am-form-label am-text-xs">显示数量 </label>
  603. <div class="am-u-sm-8 am-u-end">
  604. <input class="tpl-form-input" type="number" min="1" name="showNum"
  605. data-bind="params.auto.showNum" value="{{ params.auto.showNum }}">
  606. </div>
  607. </div>
  608. </div>
  609. </div>
  610. <!--分割线-->
  611. <hr data-am-widget="divider" style="" class="am-divider am-divider-dashed"/>
  612. <!--组件样式-->
  613. <div class="am-form-group">
  614. <label class="am-u-sm-4 am-form-label am-text-xs">背景颜色 </label>
  615. <div class="am-u-sm-8 am-u-end">
  616. <input class="" type="color" name="background"
  617. data-bind="style.background" value="{{ style.background }}">
  618. <button type="button" class="btn-resetColor am-btn am-btn-xs" data-color="#f3f3f3">
  619. 重置
  620. </button>
  621. </div>
  622. </div>
  623. <div class="am-form-group">
  624. <label class="am-u-sm-4 am-form-label am-text-xs">显示类型 </label>
  625. <div class="am-u-sm-8 am-u-end">
  626. <label class="am-radio-inline">
  627. <input data-bind="style.display" type="radio" name="display"
  628. value="list" {{ style.display=== 'list' ? 'checked' : '' }}> 列表平铺
  629. </label>
  630. <label class="am-radio-inline">
  631. <input data-bind="style.display" type="radio" name="display"
  632. value="slide" {{ style.display=== 'slide' ? 'checked' : '' }}> 横向滑动
  633. </label>
  634. </div>
  635. </div>
  636. <div class="am-form-group">
  637. <label class="am-u-sm-4 am-form-label am-text-xs">分列数量 </label>
  638. <div class="am-u-sm-8 am-u-end">
  639. <label class="am-radio-inline">
  640. <input data-bind="style.column" type="radio" name="column"
  641. value="2" {{ style.column=== '2' ? 'checked' : '' }}> 两列
  642. </label>
  643. <label class="am-radio-inline">
  644. <input data-bind="style.column" type="radio" name="column"
  645. value="3" {{ style.column=== '3' ? 'checked' : '' }}> 三列
  646. </label>
  647. </div>
  648. </div>
  649. <div class="am-form-group">
  650. <label class="am-u-sm-4 am-form-label am-text-xs">显示内容 </label>
  651. <div class="am-u-sm-8 am-u-end">
  652. <label class="am-checkbox-inline">
  653. <input data-bind="style.show.goodsName" type="checkbox" name="goodsName"
  654. value="" {{ style.show.goodsName=== '1' ? 'checked' : '' }}> 商品名称
  655. </label>
  656. <label class="am-checkbox-inline">
  657. <input data-bind="style.show.goodsPrice" type="checkbox" name="goodsPrice"
  658. value="1" {{ style.show.goodsPrice=== '1' ? 'checked' : '' }}> 商品价格
  659. </label>
  660. </div>
  661. </div>
  662. </form>
  663. </script>
  664. <!--编辑器: 拼团商品组-->
  665. <script id="tpl_editor_sharingGoods" type="text/template">
  666. <div class="editor-title"><span>{{ name }}</span></div>
  667. <form class="am-form tpl-form-line-form" data-itemid="{{ id }}">
  668. <!--商品数据-->
  669. <div class="j-switch-box" data-item-class="switch-source">
  670. <div class="am-form-group">
  671. <label class="am-u-sm-4 am-form-label am-text-xs">商品来源 </label>
  672. <div class="am-u-sm-8 am-u-end">
  673. <label class="am-radio-inline">
  674. <input data-switch="__choice" data-bind="params.source" type="radio" name="source"
  675. value="choice" {{ params.source=== 'choice' ? 'checked' : '' }}> 手动选择
  676. </label>
  677. <label class="am-radio-inline">
  678. <input data-switch="__auto" data-bind="params.source" type="radio" name="source"
  679. value="auto" {{ params.source=== 'auto' ? 'checked' : '' }}> 自动获取
  680. </label>
  681. </div>
  682. </div>
  683. <!--手动选择-->
  684. <div class="switch-source __choice {{ params.source=== 'choice' ? '' : 'am-hide' }}">
  685. <div class="form-items __goods am-cf">
  686. {{ include 'tpl_editor_data_item_goods' data }}
  687. </div>
  688. <div class="j-selectGoods form-item-add">
  689. <i class="fa fa-plus"></i> 选择商品
  690. </div>
  691. </div>
  692. <!--自动获取-->
  693. <div class="switch-source __auto {{ params.source=== 'auto' ? '' : 'am-hide' }}">
  694. <div class="am-form-group">
  695. <label class="am-u-sm-4 am-form-label am-text-xs">商品分类 </label>
  696. <div class="am-u-sm-8 am-u-end">
  697. <select data-bind="params.auto.category" name="category"
  698. data-am-selected="{searchBox: 1, btnSize: 'sm', placeholder:'全部分类', maxHeight: 400}">
  699. <option value=""></option>
  700. <option value="-1">全部分类</option>
  701. <?php if (isset($sharingCatgory)): foreach ($sharingCatgory as $item): ?>
  702. <option value="<?= $item['category_id'] ?>"><?= $item['name'] ?></option>
  703. <?php endforeach; endif; ?>
  704. </select>
  705. </div>
  706. </div>
  707. <div class="am-form-group">
  708. <label class="am-u-sm-4 am-form-label am-text-xs">商品排序 </label>
  709. <div class="am-u-sm-8 am-u-end">
  710. <label class="am-radio-inline">
  711. <input data-bind="params.auto.goodsSort" type="radio" name="goodsSort"
  712. value="all" {{ params.auto.goodsSort=== 'all' ? 'checked' : '' }}> 综合
  713. </label>
  714. <label class="am-radio-inline">
  715. <input data-bind="params.auto.goodsSort" type="radio" name="goodsSort"
  716. value="sales" {{ params.auto.goodsSort=== 'sales' ? 'checked' : '' }}> 销量
  717. </label>
  718. <label class="am-radio-inline">
  719. <input data-bind="params.auto.goodsSort" type="radio" name="goodsSort"
  720. value="price" {{ params.auto.goodsSort=== 'price' ? 'checked' : '' }}> 价格
  721. </label>
  722. </div>
  723. </div>
  724. <div class="am-form-group">
  725. <label class="am-u-sm-4 am-form-label am-text-xs">显示数量 </label>
  726. <div class="am-u-sm-8 am-u-end">
  727. <input class="tpl-form-input" type="number" min="1" name="showNum"
  728. data-bind="params.auto.showNum" value="{{ params.auto.showNum }}">
  729. </div>
  730. </div>
  731. </div>
  732. </div>
  733. <!--分割线-->
  734. <hr data-am-widget="divider" style="" class="am-divider am-divider-dashed"/>
  735. <!--组件样式-->
  736. <div class="am-form-group">
  737. <label class="am-u-sm-4 am-form-label am-text-xs">背景颜色 </label>
  738. <div class="am-u-sm-8 am-u-end">
  739. <input class="" type="color" name="background"
  740. data-bind="style.background" value="{{ style.background }}">
  741. <button type="button" class="btn-resetColor am-btn am-btn-xs" data-color="#f3f3f3">
  742. 重置
  743. </button>
  744. </div>
  745. </div>
  746. <div class="am-form-group">
  747. <label class="am-u-sm-4 am-form-label am-text-xs">显示内容 </label>
  748. <div class="am-u-sm-8 am-u-end">
  749. <label class="am-checkbox-inline">
  750. <input data-bind="style.show.goodsName" type="checkbox" name="goodsName"
  751. value="" {{ style.show.goodsName=== '1' ? 'checked' : '' }}> 商品名称
  752. </label>
  753. <label class="am-checkbox-inline">
  754. <input data-bind="style.show.goodsPrice" type="checkbox" name="goodsPrice"
  755. value="1" {{ style.show.goodsPrice=== '1' ? 'checked' : '' }}> 商品价格
  756. </label>
  757. </div>
  758. </div>
  759. </form>
  760. </script>
  761. <!--编辑器: 优惠券组-->
  762. <script id="tpl_editor_coupon" type="text/template">
  763. <div class="editor-title"><span>{{ name }}</span></div>
  764. <form class="am-form tpl-form-line-form" data-itemid="{{ id }}">
  765. <div class="am-form-group">
  766. <label class="am-u-sm-3 am-form-label am-text-xs">上下边距 </label>
  767. <div class="am-u-sm-9 am-u-end">
  768. <input class="tpl-form-input" type="range" name="paddingTop" data-bind="style.paddingTop"
  769. value="{{ style.paddingTop }}" min="0" max="50">
  770. <div class="display-value">
  771. <span class="value">{{ style.paddingTop }}</span>px (像素)
  772. </div>
  773. </div>
  774. </div>
  775. <div class="am-form-group">
  776. <label class="am-u-sm-3 am-form-label am-text-xs">背景颜色 </label>
  777. <div class="am-u-sm-9 am-u-end">
  778. <input class="" type="color" name="background"
  779. data-bind="style.background" value="{{ style.background }}">
  780. <button type="button" class="btn-resetColor am-btn am-btn-xs" data-color="#ffffff">
  781. 重置
  782. </button>
  783. </div>
  784. </div>
  785. <div class="am-form-group">
  786. <label class="am-u-sm-3 am-form-label am-text-xs">显示数量 </label>
  787. <div class="am-u-sm-9 am-u-end">
  788. <input class="tpl-form-input" type="range" name="limit" data-bind="params.limit"
  789. value="{{ params.limit }}" min="1" max="15">
  790. <div class="display-value">
  791. 最多<span class="value">{{ params.limit }}</span>个
  792. </div>
  793. </div>
  794. </div>
  795. </form>
  796. </script>
  797. <!-- ////// -->
  798. <!-- data-item: start -->
  799. <!-- banner & imageSingle: data-item -->
  800. <script id="tpl_editor_data_item_image" type="text/template">
  801. {{each $data}}
  802. <div class="form-item drag" data-key="{{ $index }}">
  803. <i class="iconfont icon-shanchu item-delete"></i>
  804. <div class="item-inner">
  805. <div class="am-form-group">
  806. <label class="am-u-sm-3 am-form-label am-text-xs">图片 </label>
  807. <div class="am-u-sm-8 am-u-end">
  808. <div class="data-image j-selectImg">
  809. <img src="{{ $value.imgUrl }}" alt="">
  810. <input type="hidden" name="imgUrl" data-bind="data.{{ $index }}.imgUrl"
  811. value="{{ $value.imgUrl }}">
  812. </div>
  813. {{ if $value.advise }}
  814. <div class="help-block">
  815. <small>{{ $value.advise }}</small>
  816. </div>
  817. {{ /if }}
  818. </div>
  819. </div>
  820. <div class="am-form-group">
  821. <label class="am-u-sm-3 am-form-label am-text-xs">链接地址 </label>
  822. <div class="am-u-sm-8 am-u-end">
  823. <input type="text" name="linkUrl" data-bind="data.{{ $index }}.linkUrl"
  824. value="{{ $value.linkUrl }}">
  825. </div>
  826. </div>
  827. </div>
  828. </div>
  829. {{/each}}
  830. </script>
  831. <!-- navBar: data-item -->
  832. <script id="tpl_editor_data_item_navBar" type="text/template">
  833. {{each $data}}
  834. <div class="form-item drag" data-key="{{ $index }}">
  835. <i class="iconfont icon-shanchu item-delete"></i>
  836. <div class="item-inner">
  837. <div class="am-form-group">
  838. <label class="am-u-sm-3 am-form-label am-text-xs">图片 </label>
  839. <div class="am-u-sm-8 am-u-end">
  840. <div class="data-image j-selectImg">
  841. <img src="{{ $value.imgUrl }}" alt="">
  842. <input type="hidden" name="imgUrl" data-bind="data.{{ $index }}.imgUrl"
  843. value="{{ $value.imgUrl }}">
  844. </div>
  845. {{ if $value.advise }}
  846. <div class="help-block">
  847. <small>{{ $value.advise }}</small>
  848. </div>
  849. {{ /if }}
  850. </div>
  851. </div>
  852. <div class="am-form-group">
  853. <label class="am-u-sm-3 am-form-label am-text-xs">文字内容 </label>
  854. <div class="am-u-sm-8 am-u-end">
  855. <input type="text" name="text" data-bind="data.{{ $index }}.text" value="{{ $value.text }}">
  856. </div>
  857. </div>
  858. <div class="am-form-group">
  859. <label class="am-u-sm-3 am-form-label am-text-xs">文字颜色 </label>
  860. <div class="am-u-sm-8 am-u-end">
  861. <input type="color" name="color" data-bind="data.{{ $index }}.color" value="{{ $value.color }}">
  862. <button type="button" class="btn-resetColor am-btn am-btn-xs" data-color="#666666">
  863. 重置
  864. </button>
  865. </div>
  866. </div>
  867. <div class="am-form-group">
  868. <label class="am-u-sm-3 am-form-label am-text-xs">链接地址 </label>
  869. <div class="am-u-sm-8 am-u-end">
  870. <input type="text" name="linkUrl" data-bind="data.{{ $index }}.linkUrl"
  871. value="{{ $value.linkUrl }}">
  872. </div>
  873. </div>
  874. </div>
  875. </div>
  876. {{/each}}
  877. </script>
  878. <!-- goods: data-item -->
  879. <script id="tpl_editor_data_item_goods" type="text/template">
  880. {{each $data}}
  881. <div class="form-item drag" data-key="{{ $index }}">
  882. <i class="iconfont icon-shanchu item-delete" data-no-confirm="{{ $value.is_default }}"></i>
  883. <div class="item-inner">
  884. <div class="data-image">
  885. <img src="{{ $value.image }}" alt="">
  886. <input type="hidden" name="goods_id" data-bind="data.{{ $index }}.goods_id"
  887. value="{{ $value.goods_id }}">
  888. </div>
  889. </div>
  890. </div>
  891. {{/each}}
  892. </script>
  893. <!-- sharingGoods: data-item -->
  894. <script id="tpl_editor_data_item_sharingGoods" type="text/template">
  895. {{each $data}}
  896. <div class="form-item drag" data-key="{{ $index }}">
  897. <i class="iconfont icon-shanchu item-delete" data-no-confirm="{{ $value.is_default }}"></i>
  898. <div class="item-inner">
  899. <div class="data-image">
  900. <img src="{{ $value.image }}" alt="">
  901. <input type="hidden" name="goods_id" data-bind="data.{{ $index }}.goods_id"
  902. value="{{ $value.goods_id }}">
  903. </div>
  904. </div>
  905. </div>
  906. {{/each}}
  907. </script>
  908. <!-- ////// -->
  909. <!-- data-item: end -->