index.php 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. {include file="public/head"}
  5. <link href="/system/frame/css/bootstrap.min.css?v=3.4.0" rel="stylesheet">
  6. <link href="/system/frame/css/style.min.css?v=3.0.0" rel="stylesheet">
  7. <title>{$title|default=''}</title>
  8. <style>
  9. .check{color: #f00}
  10. .demo-upload{
  11. display: block;
  12. height: 33px;
  13. text-align: center;
  14. border: 1px solid transparent;
  15. border-radius: 4px;
  16. overflow: hidden;
  17. background: #fff;
  18. position: relative;
  19. box-shadow: 0 1px 1px rgba(0,0,0,.2);
  20. margin-right: 4px;
  21. }
  22. .demo-upload img{
  23. width: 100%;
  24. height: 100%;
  25. display: block;
  26. }
  27. .demo-upload-cover{
  28. display: none;
  29. position: absolute;
  30. top: 0;
  31. bottom: 0;
  32. left: 0;
  33. right: 0;
  34. background: rgba(0,0,0,.6);
  35. }
  36. .demo-upload:hover .demo-upload-cover{
  37. display: block;
  38. }
  39. .demo-upload-cover i{
  40. color: #fff;
  41. font-size: 20px;
  42. cursor: pointer;
  43. margin: 0 2px;
  44. }
  45. .code-send{
  46. cursor: pointer;
  47. }
  48. </style>
  49. <script>
  50. window.test=1;
  51. </script>
  52. </head>
  53. <body>
  54. <div class="wrapper wrapper-content">
  55. <div class="row">
  56. <div class="col-sm-12">
  57. <div class="ibox float-e-margins">
  58. <div class="ibox-title">
  59. <h5>短信账号注册</h5>
  60. </div><div id="store-attr" class="mp-form" v-cloak="">
  61. <i-Form :label-width="80" style="width: 100%">
  62. <template >
  63. <template >
  64. <Form-Item>
  65. <Row>
  66. <i-Col span="13">
  67. <span>账&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号:</span><i-Input placeholder="短信平台账号" v-model="form.account" style="width: 80%" type="text"></i-Input>
  68. </i-Col>
  69. </Row>
  70. </Form-Item>
  71. <Form-Item>
  72. <Row>
  73. <i-Col span="13">
  74. <span>密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;码:</span><i-Input placeholder="短信平台密码/token" v-model="form.password" style="width: 80%" type="password"></i-Input>
  75. </i-Col>
  76. </Row>
  77. </Form-Item>
  78. <Form-Item>
  79. <Row>
  80. <i-Col span="13">
  81. <span>域&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;名:</span><i-Input placeholder="网址域名" v-model="form.url" style="width: 80%"></i-Input>
  82. </i-Col>
  83. </Row>
  84. </Form-Item>
  85. <Form-Item>
  86. <Row>
  87. <i-Col span="13">
  88. <span>&nbsp;&nbsp;&nbsp;&nbsp;手机号:</span><i-Input placeholder="注册手机号" v-model="form.phone" style="width: 80%"></i-Input>
  89. </i-Col>
  90. </Row>
  91. </Form-Item>
  92. <Form-Item>
  93. <Row>
  94. <i-Col span="13">
  95. <span>短信签名:</span><i-Input placeholder="短信签名 例如:CRMEB" v-model="form.sign" style="width: 80%"></i-Input>
  96. </i-Col>
  97. </Row>
  98. </Form-Item>
  99. <Form-Item>
  100. <Row>
  101. <i-Col span="13">
  102. <span style="float: left">&nbsp;&nbsp;&nbsp;&nbsp;验证码:</span>
  103. <i-Input placeholder="验证码" v-model="form.code" style="width: 80%">
  104. <span slot="append" @click="sendCode" v-text="codeMsg" class="code-send"></span>
  105. </i-Input>
  106. </i-Col>
  107. </Row>
  108. </Form-Item>
  109. </template>
  110. <Form-Item>
  111. <Row>
  112. <i-Col span="8" offset="6">
  113. <i-Button type="primary" @click="submit">提交</i-Button>
  114. </i-Col>
  115. </Row>
  116. </Form-Item>
  117. </template>
  118. </i-Form>
  119. </div>
  120. </div>
  121. </div>
  122. </div>
  123. </div>
  124. <script>
  125. var _vm ;
  126. mpFrame.start(function(Vue){
  127. new Vue({
  128. data () {
  129. return {
  130. codeUrl : "{:Url('captcha')}",
  131. codeMsg : "发送验证码",
  132. form:{
  133. account:'',
  134. password:'',
  135. url:'',
  136. sign:'',
  137. phone:'',
  138. code:'',
  139. },
  140. isSend:true,
  141. }
  142. },
  143. methods: {
  144. isPhone:function(test){
  145. var reg = /^1[3456789]\d{9}$/;
  146. return reg.test(test);
  147. },
  148. sendCode:function(){
  149. var that = this;
  150. if(!that.isSend) return;
  151. if(!that.form.phone.length){
  152. $eb.message('error','请填写手机号');
  153. return false;
  154. }
  155. if(!that.form.sign || !that.form.sign.length){
  156. $eb.message('error','请填写短信签名');
  157. return false;
  158. }
  159. if(!that.isPhone(that.form.phone)){
  160. $eb.message('error','手机号格式错误');
  161. return false;
  162. }
  163. that.isSend = false;
  164. $eb.axios.post(that.codeUrl,{phone:that.form.phone}).then(function(res){
  165. if(res.data.code == 200){
  166. var cd = 60;
  167. var timeClone = setInterval(function () {
  168. cd--;
  169. if(cd <= 0){
  170. that.codeMsg = '重新发送';
  171. clearInterval(timeClone);
  172. that.isSend=true;
  173. }else{
  174. that.isSend = false;
  175. that.codeMsg = '剩余'+cd+'s';
  176. }
  177. },1000);
  178. $eb.message('success',res.data.msg || '发送成功');
  179. }else{
  180. $eb.message('error',res.data.msg || '发送失败');
  181. }
  182. return false;
  183. }).catch(function(err){
  184. that.isSend = false;
  185. $eb.message('error',err);
  186. })
  187. },
  188. submit(){
  189. var that = this;
  190. $eb.axios.post("{:Url('save')}",that.form).then(function(res){
  191. if(res.status == 200 && res.data.code == 200){
  192. $eb.message('success',res.data.msg || '提交成功!');
  193. $eb.closeModalFrame(window.name);
  194. location.href = "{:url('sms.smsConfig/index', array('type'=>4, 'tab_id'=>18))}";
  195. }else{
  196. $eb.message('error',res.data.msg || '请求失败!');
  197. }
  198. }).catch(function(err){
  199. $eb.message('error',err);
  200. })
  201. },
  202. },
  203. mounted (){
  204. }
  205. }).$mount(document.getElementById('store-attr'));
  206. });
  207. </script>
  208. </body>