create.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  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. <form action="" 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">
  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 class="mask">
  47. <p><i class="fa fa-eye" @click="look(formData.background)"></i><i class="fa fa-trash-o" @click="delect('background')"></i></p>
  48. </div>
  49. </div>
  50. <div class="upload-image" v-show="!formData.background" @click="upload('background')">
  51. <div class="fiexd"><i class="fa fa-plus"></i></div>
  52. <p>选择图片</p>
  53. </div>
  54. </div>
  55. </div>
  56. <div class="layui-form-item">
  57. <label class="layui-form-label required">二维码:(200*200)</label>
  58. <div class="layui-input-block">
  59. <div class="upload-image-box" v-if="formData.qr_code">
  60. <img :src="formData.qr_code" alt="">
  61. <div class="mask">
  62. <p><i class="fa fa-eye" @click="look(formData.qr_code)"></i><i class="fa fa-trash-o" @click="delect('qr_code')"></i></p>
  63. </div>
  64. </div>
  65. <div class="upload-image" v-show="!formData.qr_code" @click="upload('qr_code')">
  66. <div class="fiexd"><i class="fa fa-plus"></i></div>
  67. <p>选择图片</p>
  68. </div>
  69. </div>
  70. </div>
  71. <div class="layui-form-item">
  72. <label class="layui-form-label">排序:</label>
  73. <div class="layui-input-inline">
  74. <input type="number" name="sort" v-model="formData.sort" autocomplete="off" class="layui-input">
  75. </div>
  76. </div>
  77. <div class="layui-form-item">
  78. <label class="layui-form-label">说明:</label>
  79. <div class="layui-input-block">
  80. <textarea name="explain" v-model.trim="formData.explain" autocomplete="off" maxlength="30" placeholder="最多30字" class="layui-textarea"></textarea>
  81. </div>
  82. </div>
  83. <div class="layui-form-item submit">
  84. <label class="layui-form-label">获取方式:</label>
  85. <div class="layui-input-block">
  86. <input type="radio" name="obtain" lay-filter="obtain" v-model="formData.obtain" value="1" title="课程">
  87. <input type="radio" name="obtain" lay-filter="obtain" v-model="formData.obtain" value="2" title="考试">
  88. <input type="radio" name="obtain" lay-filter="obtain" v-model="formData.obtain" value="3" title="学习计划">
  89. </div>
  90. </div>
  91. <div class="layui-form-item submit">
  92. <label class="layui-form-label">所需学分:</label>
  93. <div class="layui-input-block">
  94. <input type="number" name="xuefen" v-model="formData.xuefen" autocomplete="off" class="layui-input"> 课程计划使用,只有获取到对应学分后才能获取该证书。
  95. </div>
  96. </div>
  97. <div class="layui-form-item">
  98. <div class="layui-input-block">
  99. <div class="layui-btn-container">
  100. <button class="layui-btn layui-btn-normal" type="button" @click="save">{{id ? '立即修改':'立即提交'}}</button>
  101. <button class="layui-btn layui-btn-primary clone" type="button" @click="clone_form">取消</button>
  102. </div>
  103. </div>
  104. </div>
  105. </div>
  106. <div class="layui-col-md4">
  107. <img class="shili" src="{__PUBLIC_PATH}wap/first/zsff/images/certificate_shili.png">
  108. <div class="download-link">
  109. <a href="http://dev.zhishifufei.crmeb.net/system/certificates/certificate1.xd" download="http://dev.zhishifufei.crmeb.net/system/certificates/certificate1.xd">下载证书模板(仅供参考)</a>
  110. </div>
  111. </div>
  112. </div>
  113. </form>
  114. </div>
  115. </div>
  116. </div>
  117. <script type="text/javascript" src="{__ADMIN_PATH}js/layuiList.js"></script>
  118. {/block}
  119. {block name='script'}
  120. <script>
  121. var id={$id},certificate=<?=isset($certificate) ? $certificate : []?>;
  122. require(['vue','request','OssUpload'],function(Vue) {
  123. new Vue({
  124. el: "#app",
  125. data: {
  126. formData:{
  127. title:certificate.title || '',
  128. background: certificate.background || '',
  129. qr_code: certificate.qr_code || '',
  130. obtain:Number(certificate.obtain) || 1,
  131. explain:certificate.explain || '',
  132. sort:Number(certificate.sort) || 0,
  133. xuefen:Number(certificate.xuefen) || 0,
  134. },
  135. mask:{
  136. background:false,
  137. qr_code:false
  138. }
  139. },
  140. methods:{
  141. clone_form: function () {
  142. var that = this;
  143. if (parseInt(id) == 0) {
  144. parent.layer.closeAll();
  145. }
  146. var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
  147. parent.layer.close(index); //再执行关闭
  148. },
  149. //上传图片
  150. upload: function (key, count) {
  151. ossUpload.createFrame('请选择图片', {fodder: key, max_count: count === undefined ? 0 : count},{w:800,h:550});
  152. },
  153. save:function () {
  154. var that=this;
  155. if(!that.formData.title) return layList.msg('请输入证书标题');
  156. if(that.formData.background=='') return layList.msg('请上传背景图');
  157. if(that.formData.qr_code=='') return layList.msg('请上传二维码');
  158. layList.loadFFF();
  159. layList.basePost(layList.U({a:'save_add',q:{id:id}}),that.formData,function (res) {
  160. layList.loadClear();
  161. if(parseInt(id) == 0) {
  162. layList.layer.confirm('添加成功,您要继续添加证书吗?', {
  163. btn: ['继续添加', '立即提交'] //按钮
  164. }, function (index) {
  165. layList.layer.close(index);
  166. }, function () {
  167. parent.layer.closeAll();
  168. });
  169. }else{
  170. layList.msg('修改成功',function () {
  171. parent.layer.closeAll();
  172. })
  173. }
  174. },function (res) {
  175. layList.msg(res.msg);
  176. layList.loadClear();
  177. });
  178. },
  179. delect:function(key){
  180. var that=this;
  181. that.formData[key]='';
  182. },
  183. changeIMG: function (key, value, multiple) {
  184. if (multiple) {
  185. var that = this;
  186. value.map(function (v) {
  187. that.formData[key].push({pic: v, is_show: false});
  188. });
  189. this.$set(this.formData, key, this.formData[key]);
  190. } else {
  191. this.$set(this.formData, key, value);
  192. }
  193. },
  194. look: function (src) {
  195. layui.layer.photos({
  196. photos: {
  197. data: [
  198. {
  199. src: src
  200. }
  201. ]
  202. },
  203. anim: 5
  204. });
  205. }
  206. },
  207. mounted:function () {
  208. var that=this;
  209. window.changeIMG = that.changeIMG;
  210. this.$nextTick(function () {
  211. layList.form.render();
  212. layList.form.on('radio(obtain)', function (data) {
  213. that.formData.obtain = parseInt(data.value);
  214. });
  215. });
  216. }
  217. })
  218. })
  219. </script>
  220. {/block}