silder.vue 8.5 KB

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