material.php 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. {extend name="public/container"}
  2. {block name='head_top'}
  3. <style>
  4. .layui-form-item .special-label i{display: inline-block;width: 18px;height: 18px;font-size: 18px;color: #fff;}
  5. .layui-form-item .label-box p{line-height: inherit;}
  6. .m-t-5{margin-top:5px;}
  7. #app .layui-barrage-box{margin-bottom: 10px;margin-top: 10px;margin-left: 10px;border: 1px solid #0092DC;border-radius: 5px;cursor: pointer;position: relative;}
  8. #app .layui-barrage-box.border-color{border-color: #0bb20c;}
  9. #app .layui-barrage-box .del-text{position: absolute;top: 0;left: 0;background-color: rgba(0,0,0,0.5);color: #ffffff;width: 92%;text-align: center;}
  10. #app .layui-barrage-box p{padding:5px 5px; }
  11. #app .layui-empty-text{text-align: center;font-size: 18px;}
  12. #app .layui-empty-text p{padding: 10px 10px;}
  13. .layui-form-label{width:150px;}
  14. .layui-input-block{margin-left:150px;}
  15. .shili {
  16. width: 100%;
  17. }
  18. .download-link{
  19. padding-top: 20px;
  20. text-align: center;
  21. }
  22. .download-link a {
  23. font-size: 14px;
  24. color: #0092dc
  25. }
  26. </style>
  27. {/block}
  28. {block name="content"}
  29. <div class="layui-fluid" id="app" v-cloak>
  30. <div class="layui-card">
  31. <div class="layui-card-body">
  32. <div class="layui-form">
  33. <div class="layui-form-item">
  34. <label class="layui-form-label required">证书标题:</label>
  35. <div class="layui-input-block">
  36. <input type="text" name="title" v-model.trim="formData.title" autocomplete="off" placeholder="请输入证书标题" maxlength="20" class="layui-input" disabled>
  37. </div>
  38. </div>
  39. <div class="layui-row layui-col-space15">
  40. <div class="layui-col-md6">
  41. <div class="layui-form-item">
  42. <label class="layui-form-label required">背景图:(600*850)</label>
  43. <div class="layui-input-block">
  44. <div class="upload-image-box" v-if="formData.background">
  45. <img :src="formData.background" alt="">
  46. </div>
  47. </div>
  48. </div>
  49. <div class="layui-form-item">
  50. <label class="layui-form-label required">二维码:(200*200)</label>
  51. <div class="layui-input-block">
  52. <div class="upload-image-box" v-if="formData.qr_code">
  53. <img :src="formData.qr_code" alt="">
  54. </div>
  55. </div>
  56. </div>
  57. <div class="layui-form-item">
  58. <label class="layui-form-label">排序:</label>
  59. <div class="layui-input-inline">
  60. <input type="number" name="sort" v-model="formData.sort" autocomplete="off" class="layui-input" disabled>
  61. </div>
  62. </div>
  63. <div class="layui-form-item">
  64. <label class="layui-form-label">说明:</label>
  65. <div class="layui-input-block">
  66. <textarea name="explain" v-model.trim="formData.explain" autocomplete="off" maxlength="30" placeholder="最多30字" class="layui-textarea" disabled></textarea>
  67. </div>
  68. </div>
  69. <div class="layui-form-item submit">
  70. <label class="layui-form-label">获取方式:</label>
  71. <div class="layui-input-block">
  72. <input type="radio" name="obtain" lay-filter="obtain" v-model="formData.obtain" value="1" title="课程" disabled>
  73. <input type="radio" name="obtain" lay-filter="obtain" v-model="formData.obtain" value="2" title="考试" disabled>
  74. </div>
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. <form class="layui-form" lay-filter="form" action="">
  81. <div class="layui-form-item">
  82. <label class="layui-form-label">审核状态:</label>
  83. <div class="layui-form-block">
  84. <input type="radio" name="status" value="1" title="通过" lay-filter="status">
  85. <input type="radio" name="status" value="-1" title="拒绝" lay-filter="status">
  86. </div>
  87. </div>
  88. <div v-if="status === -1" class="layui-form-item">
  89. <label class="layui-form-label">拒绝原因:</label>
  90. <div class="layui-input-block">
  91. <textarea name="fail_message" required lay-verify="required" placeholder="请输入拒绝原因" class="layui-textarea"></textarea>
  92. </div>
  93. </div>
  94. <div class="layui-form-item">
  95. <div class="layui-input-block">
  96. <button type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="*">提交</button>
  97. </div>
  98. </div>
  99. </form>
  100. </div>
  101. </div>
  102. <script type="text/javascript" src="{__ADMIN_PATH}js/layuiList.js"></script>
  103. {/block}
  104. {block name='script'}
  105. <script>
  106. var form = layui.form,
  107. layer = layui.layer,
  108. parentLayer = parent.layui.layer;
  109. var certificate=<?=isset($certificate) ? $certificate : []?>;
  110. require(['vue','request','OssUpload'],function(Vue) {
  111. new Vue({
  112. el: "#app",
  113. data: {
  114. formData:{
  115. title:certificate.title || '',
  116. background: certificate.background || '',
  117. qr_code: certificate.qr_code || '',
  118. obtain:Number(certificate.obtain) || 1,
  119. explain:certificate.explain || '',
  120. sort:Number(certificate.sort) || 0
  121. },
  122. status: 1
  123. },
  124. methods:{
  125. // 审核通过
  126. success: function () {
  127. layList.baseGet(layList.U({
  128. a: 'succ',
  129. p: {
  130. id: certificate.id
  131. }
  132. }), function (res) {
  133. layer.msg(res.msg, {
  134. icon: 1,
  135. time: 2000
  136. }, function () {
  137. parentLayer.close(parentLayer.getFrameIndex(window.name));
  138. });
  139. });
  140. },
  141. // 审核拒绝
  142. fail: function (message) {
  143. layList.basePost(layList.U({
  144. a: 'fail',
  145. p: {
  146. id: certificate.id
  147. }
  148. }), {
  149. message: message
  150. }, function (res) {
  151. layer.msg(res.msg, {
  152. icon: 1,
  153. time: 2000
  154. }, function () {
  155. parentLayer.close(parentLayer.getFrameIndex(window.name));
  156. });
  157. });
  158. },
  159. look: function () {
  160. var data = [];
  161. if (arguments.length === 1) {
  162. data.push({
  163. src: arguments[0]
  164. });
  165. } else {
  166. arguments[0].forEach(function (item) {
  167. data.push({
  168. src: item.pic
  169. });
  170. });
  171. }
  172. layer.photos({
  173. photos: {
  174. start: arguments[1] || 0,
  175. data: data
  176. },
  177. anim: 5
  178. });
  179. }
  180. },
  181. mounted:function () {
  182. layList.form.render();
  183. this.$nextTick(function () {
  184. var vm = this;
  185. form.val('form', {
  186. status: this.status
  187. });
  188. form.render();
  189. form.on('radio(status)', function (data) {
  190. vm.status = Number(data.value);
  191. });
  192. form.on('submit(*)', function (data) {
  193. vm.status === 1 ? vm.success() : vm.fail(data.field.fail_message);
  194. return false;
  195. });
  196. });
  197. }
  198. })
  199. })
  200. </script>
  201. {/block}