silder.vue 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357
  1. <template>
  2. <div class="silderWrap">
  3. <div class="silderList">
  4. <div class="silderItem"
  5. @click="visiable =true">
  6. <img src="@/assets/images/silder/silder4.svg"
  7. alt />
  8. <p>申请入驻</p>
  9. <div class="line"></div>
  10. </div>
  11. <el-popover placement="left"
  12. trigger="hover"
  13. popper-class="Mopopver">
  14. <div>
  15. <p class="hoverTitle">咨询电话:</p>
  16. <p class="hoverMsg">400-8851569</p>
  17. </div>
  18. <div class="silderItem"
  19. slot="reference">
  20. <img src="@/assets/images/silder/silder2.svg"
  21. alt />
  22. <p>电话咨询</p>
  23. <div class="line"></div>
  24. </div>
  25. </el-popover>
  26. <el-popover placement="left"
  27. trigger="hover"
  28. popper-class="Mopopver">
  29. <div>
  30. <div class="code-item">
  31. <img src="../assets/images/download.png"
  32. width="111px"
  33. height="111px"
  34. alt />
  35. <p>扫码下载APP</p>
  36. </div>
  37. </div>
  38. <div class="silderItem"
  39. slot="reference">
  40. <img src="@/assets/images/silder/silder3.svg"
  41. alt />
  42. <p>APP下载</p>
  43. <div class="line"></div>
  44. </div>
  45. </el-popover>
  46. <el-popover placement="left"
  47. trigger="hover"
  48. popper-class="Mopopver">
  49. <div>
  50. <div class="code-item">
  51. <img src="../assets/images/public-code.jpg"
  52. width="111px"
  53. height="111px"
  54. alt />
  55. <p>微信订阅号</p>
  56. </div>
  57. </div>
  58. <div class="silderItem"
  59. slot="reference">
  60. <img src="@/assets/images/silder/silder1.svg"
  61. alt />
  62. <p>关注微信</p>
  63. <!-- <div class="line"></div> -->
  64. </div>
  65. </el-popover>
  66. </div>
  67. <div class="goTop"
  68. v-if="showgo"
  69. @click="gotop">
  70. <img src="@/assets/images/silder/silder5.svg"
  71. alt />
  72. </div>
  73. <el-dialog title="申请入驻"
  74. :visible.sync="visiable"
  75. append-to-body
  76. width="450px"
  77. :close-on-click-modal="false"
  78. destroy-on-close>
  79. <el-form ref="form"
  80. :model="form"
  81. :rules="maskRules">
  82. <el-form-item prop="name">
  83. <el-input v-model="form.name"
  84. placeholder="请输入机构名称"></el-input>
  85. </el-form-item>
  86. <el-form-item prop="city">
  87. <el-input v-model="form.city"
  88. placeholder="请输入所在城市"></el-input>
  89. </el-form-item>
  90. <el-form-item prop="linkman">
  91. <el-input v-model="form.linkman"
  92. placeholder="请输入联系人姓名"></el-input>
  93. </el-form-item>
  94. <el-form-item prop="mobileNo">
  95. <el-input v-model="form.mobileNo"
  96. placeholder="请输入手机号"></el-input>
  97. </el-form-item>
  98. <p class="submsg">我们会在您提交信息后24小时内与您取得联系,请保持电话畅通</p>
  99. <el-form-item>
  100. <div class="submitBtn"
  101. @click="submitInfo">提交</div>
  102. </el-form-item>
  103. </el-form>
  104. </el-dialog>
  105. </div>
  106. </template>
  107. <script>
  108. import axios from "axios";
  109. import qs from 'qs'
  110. import Bus from '../views/index/blocks/eventBus'
  111. export default {
  112. props: ["showForm"],
  113. data () {
  114. return {
  115. showgo: false,
  116. visiable: false,
  117. form: {
  118. name: "",
  119. city: "",
  120. linkman: "",
  121. mobileNo: "",
  122. },
  123. maskRules: {
  124. name: [{ required: true, message: "请输入机构名称" }],
  125. city: [{ required: true, message: "请输入所在城市" }],
  126. linkman: [{ required: true, message: "请输入联系人姓名" }],
  127. mobileNo: [
  128. { required: true, message: "请输入手机号" },
  129. {
  130. pattern: /^1[3456789]\d{9}$/,
  131. message: "请输入正确的手机号",
  132. trigger: "blur",
  133. },
  134. ],
  135. },
  136. };
  137. },
  138. created () {
  139. Bus.$on('joinIn', (res => {
  140. console.log(res)
  141. this.visiable = res
  142. }))
  143. },
  144. mounted () {
  145. var vm = this;
  146. window.onscroll = function () {
  147. if (document.documentElement.scrollTop > 300) {
  148. vm.showgo = true;
  149. } else {
  150. vm.showgo = false;
  151. }
  152. };
  153. },
  154. methods: {
  155. gotop () {
  156. scrollTo(0, 0);
  157. },
  158. submitInfo () {
  159. this.$refs["form"].validate((res) => {
  160. if (res) {
  161. console.log("发送请求");
  162. axios({
  163. url: "https://test.kj.colexiu.com/api-user/tenantApply/add",
  164. method: "post",
  165. data: qs.stringify(this.form),
  166. headers: {
  167. "Content-type": "application/x-www-form-urlencoded",
  168. },
  169. }).then((res) => {
  170. if (res.data.code === 200) {
  171. this.$message.success("发送成功");
  172. this.visiable = false;
  173. } else {
  174. this.$message.error("发送失败");
  175. }
  176. });
  177. }
  178. });
  179. },
  180. },
  181. watch: {
  182. showForm (val) {
  183. console.log('调用')
  184. this.visiable = val;
  185. },
  186. visiable (val) {
  187. this.$emit("changeStatus", val);
  188. if (!val) {
  189. this.$nextTick(() => {
  190. this.$refs["form"].resetFields();
  191. })
  192. }
  193. },
  194. },
  195. };
  196. </script>
  197. <style lang="less">
  198. .silderWrap {
  199. position: fixed;
  200. top: 50%;
  201. right: 70px;
  202. z-index: 200;
  203. .silderList {
  204. background-color: #fff;
  205. width: 64px;
  206. height: 268px;
  207. border: 1px solid #ececec;
  208. .silderItem {
  209. cursor: pointer;
  210. display: flex;
  211. flex-direction: column;
  212. align-items: center;
  213. padding: 11px 0 0;
  214. font-size: 12px;
  215. overflow: hidden;
  216. p {
  217. margin-top: 8px;
  218. color: #666666;
  219. }
  220. .line {
  221. margin-top: 10px;
  222. width: 48px;
  223. height: 1px;
  224. background-color: #ececec;
  225. }
  226. &:hover {
  227. p {
  228. color: #2dc7aa;
  229. }
  230. img {
  231. filter: drop-shadow(#2dc7aa 80px 0);
  232. transform: translateX(-80px);
  233. }
  234. }
  235. }
  236. .silderItem {
  237. cursor: pointer;
  238. display: flex;
  239. flex-direction: column;
  240. align-items: center;
  241. padding: 11px 0 0;
  242. font-size: 12px;
  243. overflow: hidden;
  244. p {
  245. margin-top: 8px;
  246. color: #666666;
  247. }
  248. .line {
  249. margin-top: 10px;
  250. width: 48px;
  251. height: 1px;
  252. background-color: #ececec;
  253. }
  254. &:hover {
  255. p {
  256. color: #2dc7aa;
  257. }
  258. img {
  259. filter: drop-shadow(#2dc7aa 80px 0);
  260. transform: translateX(-80px);
  261. }
  262. }
  263. }
  264. }
  265. .goTop {
  266. cursor: pointer;
  267. margin-top: 20px;
  268. background-color: #fff;
  269. width: 64px;
  270. height: 64px;
  271. display: flex;
  272. flex-direction: column;
  273. align-items: center;
  274. padding-top: 28px;
  275. border: 1px solid #ececec;
  276. overflow: hidden;
  277. &:hover {
  278. img {
  279. filter: drop-shadow(#2dc7aa 80px 0);
  280. transform: translateX(-80px);
  281. }
  282. }
  283. }
  284. }
  285. .submitBtn {
  286. width: 100%;
  287. height: 50px;
  288. line-height: 50px;
  289. background-color: #2dc7aa;
  290. color: #fff;
  291. text-align: center;
  292. border-radius: 5px;
  293. margin-top: 50px;
  294. cursor: pointer;
  295. &:hover {
  296. background-color: #2ac0a3;
  297. }
  298. }
  299. .submsg {
  300. color: #999;
  301. }
  302. .Mopopver {
  303. /deep/.code-item {
  304. width: 100%;
  305. display: flex;
  306. flex-direction: column;
  307. align-items: center;
  308. }
  309. .hoverTitle {
  310. font-size: 12px;
  311. font-weight: 400;
  312. color: #999999;
  313. line-height: 17px;
  314. }
  315. /deep/.hoverMsg {
  316. padding-top: 5px;
  317. font-size: 16px;
  318. color: #1a1a1a;
  319. line-height: 22px;
  320. font-weight: 700;
  321. }
  322. .silderItem {
  323. cursor: pointer;
  324. display: flex;
  325. flex-direction: column;
  326. align-items: center;
  327. padding: 11px 0 0;
  328. font-size: 12px;
  329. overflow: hidden;
  330. p {
  331. margin-top: 8px;
  332. color: #666666;
  333. }
  334. .line {
  335. margin-top: 10px;
  336. width: 48px;
  337. height: 1px;
  338. background-color: #ececec;
  339. }
  340. &:hover {
  341. p {
  342. color: #2dc7aa;
  343. }
  344. img {
  345. filter: drop-shadow(#2dc7aa 80px 0);
  346. transform: translateX(-80px);
  347. }
  348. }
  349. }
  350. }
  351. </style>