選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

navBar.vue 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  1. <template>
  2. <div>
  3. <!-- <button type="button" id="mobile-nav-toggle">
  4. <i class="fa fa-bars"></i>
  5. </button> -->
  6. <div id="header-sticky-wrapper" class="sticky-wrapper is-sticky" style="min-height: 120px;">
  7. <header id="header" style="width: 100%; position: fixed; top:0px; z-index: 50;">
  8. <div class="container">
  9. <div class="row">
  10. <div id="logo" class="col-md-3 col-xs-4 pull-left">
  11. <a href="/">
  12. <img
  13. class="img-fluid"
  14. src="/img/logos/UVProp.png"
  15. alt="UVProp logo"
  16. style="height:100px;"
  17. /></a>
  18. </div>
  19. <div class="col-md-9" id="topbar">
  20. <div class="container clearFix">
  21. <div class="social-links ">
  22. <a href="mailto:info@univateproperties.co.za">
  23. <i class="fa fa-envelope"></i>
  24. </a>
  25. <a href="https://www.facebook.com/univateproperties/" target="_blank">
  26. <i class="fa fa-facebook"></i>
  27. </a>
  28. <a href="#">
  29. <i class="fa fa-youtube"></i>
  30. </a>
  31. <a href="tel:0123456789">
  32. <i class="fa fa-phone"></i>
  33. <span class="phoneIconDetail">+27 (0) 12 492 1238</span>
  34. </a>
  35. <a href="#" data-toggle="modal" data-target="#bondcal">
  36. <i class="fa fa-calculator" aria-hidden="true"></i>
  37. <span class="bondCalculatorDetail">Bond Calculator</span>
  38. </a>
  39. </div>
  40. </div>
  41. <nav id="nav-menu-container">
  42. <ul class="nav-menu sf-js-enabled sf-arrows">
  43. <li class="menu-has-children">
  44. <div
  45. @mouseover="timeShareClass = 'ts-display'"
  46. @mouseleave="timeShareClass = 'no-display'"
  47. ></div>
  48. <a href="#" class="sf-with-ul">
  49. Timeshare
  50. </a>
  51. <ul style="margin-top:-10px;text-align:left" :class="timeShareClass">
  52. <li>
  53. <router-link to="/timeshare/buy">To Buy</router-link>
  54. </li>
  55. <li>
  56. <router-link to="/timeshare/sell">To Sell</router-link>
  57. </li>
  58. <li>
  59. <router-link to="/timeshare/faq">FAQ</router-link>
  60. </li>
  61. <li v-if="isLoggedIn">
  62. <hr />
  63. <router-link to="/timeshare/myWeeks">My Timeshare Weeks</router-link>
  64. </li>
  65. </ul>
  66. </li>
  67. <li>
  68. <router-link to="/property/commercial">Commercial</router-link>
  69. </li>
  70. <li>
  71. <router-link to="/property/residential">Residential</router-link>
  72. </li>
  73. <!-- <li class="menu-has-children">
  74. <div
  75. @mouseover="propertiesClass = 'ts-display'"
  76. @mouseleave="propertiesClass = 'no-display'"
  77. ></div>
  78. <a href="#" class="sf-with-ul">
  79. Properties
  80. </a>
  81. <ul style="margin-top:-10px;text-align:left" :class="propertiesClass">
  82. <li>
  83. <router-link to="/property/Search">Search</router-link>
  84. </li>
  85. <li>
  86. <router-link to="/property/new/Sale">To Sell</router-link>
  87. </li>
  88. <li>
  89. <router-link to="/property/new/Rental">To Rent</router-link>
  90. </li>
  91. <li v-if="isLoggedIn">
  92. <hr />
  93. <router-link to="/properties">My Properties</router-link>
  94. </li>
  95. </ul>
  96. </li> -->
  97. <li>
  98. <router-link to="/propertyManagement">Property Management</router-link>
  99. </li>
  100. <li class="menu-has-children">
  101. <div
  102. @mouseover="aboutClass = 'ts-display'"
  103. @mouseleave="aboutClass = 'no-display'"
  104. ></div>
  105. <a href="#" class="sf-with-ul">
  106. About
  107. </a>
  108. <ul style="margin-top:-10px; text-align:left" :class="aboutClass">
  109. <li>
  110. <router-link to="/about/us">About Us</router-link>
  111. </li>
  112. <li>
  113. <router-link to="/about/timeshare">About Timeshare Resales</router-link>
  114. </li>
  115. </ul>
  116. </li>
  117. <li>
  118. <router-link to="/share/contact">Contact Us</router-link>
  119. </li>
  120. <li v-if="isLoggedIn" class="menu-has-children">
  121. <div
  122. @mouseover="userClass = 'ts-display'"
  123. @mouseleave="userClass = 'no-display'"
  124. ></div>
  125. <a href="#" class="sf-with-ul">
  126. {{ NAME }}
  127. </a>
  128. <ul style="margin-top:-10px;text-align:left" :class="userClass">
  129. <li>
  130. <router-link to="/status/list">Status</router-link>
  131. </li>
  132. <li>
  133. <router-link to="/status/timeshareAdmin">Timeshare Week Admin</router-link>
  134. </li>
  135. <li>
  136. <router-link to="/status/tenderWeekAdmin"
  137. >Tender Week Management</router-link
  138. >
  139. </li>
  140. <li>
  141. <router-link to="/unitConfiguration/list">Unit Configuration</router-link>
  142. </li>
  143. <li>
  144. <router-link to="/communication/template">Templates</router-link>
  145. </li>
  146. <hr />
  147. <li>
  148. <router-link to="/status/userManagementPage"
  149. >User Management & Access</router-link
  150. >
  151. </li>
  152. <li>
  153. <router-link to="/status/changeLogPage">Changes Logs</router-link>
  154. </li>
  155. <li>
  156. <router-link to="/userDefinedGroups/list"
  157. >Property User Defined Groups</router-link
  158. >
  159. </li>
  160. <li>
  161. <router-link to="/propertyTypes/list">Property Types</router-link>
  162. </li>
  163. <hr />
  164. <li>
  165. <router-link to="/searchLog">Search Logs</router-link>
  166. </li>
  167. <li>
  168. <router-link to="/Offers">Offers</router-link>
  169. </li>
  170. <li>
  171. <router-link to="/Carousel">Carousel</router-link>
  172. </li>
  173. <li>
  174. <router-link to="/user/updateProfileInfo">Update Info</router-link>
  175. </li>
  176. <li>
  177. <router-link to="/payments">Payments</router-link>
  178. </li>
  179. <li>
  180. <router-link to="/landingPages">Landing Pages / Campaignes</router-link>
  181. </li>
  182. <li>
  183. <a class="btn-white-border p-2" @click="logout(routerGoTo('/user/login'))"
  184. >Logout</a
  185. >
  186. </li>
  187. </ul>
  188. </li>
  189. <li v-if="!isLoggedIn">
  190. <router-link class="btn-white-border p-2" to="/user/login">Login</router-link>
  191. </li>
  192. <li v-if="!isLoggedIn" class="menu-has-children">
  193. <div
  194. @mouseover="registerClass = 'ts-display'"
  195. @mouseleave="registerClass = 'no-display'"
  196. ></div>
  197. <a href="#" class="sf-with-ul btn-solid-blue pt-2 pb-1" style="height:39px">
  198. Register
  199. </a>
  200. <ul style="margin-top:-10px;text-align:left" :class="registerClass">
  201. <li>
  202. <router-link to="/user/register">Register</router-link>
  203. </li>
  204. <li>
  205. <router-link to="/user/registeragency">Agency Registration</router-link>
  206. </li>
  207. </ul>
  208. </li>
  209. </ul>
  210. </nav>
  211. </div>
  212. </div>
  213. </div>
  214. </header>
  215. </div>
  216. <div
  217. class="modal fade"
  218. id="bondcal"
  219. tabindex="-1"
  220. role="dialog"
  221. aria-labelledby="modal-bondcal"
  222. >
  223. <div class="modal-dialog" role="document">
  224. <div class="modal-content pt-4">
  225. <div class="modal-header">
  226. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  227. <span aria-hidden="true">&times;</span>
  228. </button>
  229. </div>
  230. <div class="modal-body pt-3">
  231. <bondCalculator />
  232. </div>
  233. </div>
  234. <!-- modal-content -->
  235. </div>
  236. <!-- modal-dialog -->
  237. </div>
  238. <!-- modal -->
  239. </div>
  240. </template>
  241. <script>
  242. /* eslint-disable */
  243. import { mapState, mapActions } from "vuex";
  244. import Log from "../../assets/Log";
  245. import bondCalculator from "../misc/bondCaclculator";
  246. export default {
  247. components: {
  248. bondCalculator
  249. },
  250. data() {
  251. return {
  252. hover: false,
  253. timeShareClass: "no-display",
  254. propertiesClass: "no-display",
  255. aboutClass: "no-display",
  256. userClass: "no-display",
  257. registerClass: "no-display"
  258. };
  259. },
  260. methods: {
  261. ...mapActions("authentication", ["logout"]),
  262. showDropDown() {
  263. if (!this.hover) {
  264. this.timeShareClass = "ts-display";
  265. }
  266. },
  267. routerGoTo(goTo) {
  268. this.$emit("routerGoTo", goTo);
  269. }
  270. },
  271. computed: {
  272. ...mapState("authentication", ["user", "flag", "status", "person", "token"]),
  273. isLoggedIn() {
  274. console.log(Log.isLoggedIn());
  275. return Log.isLoggedIn();
  276. },
  277. NAME() {
  278. return Log.getPerson().name;
  279. },
  280. // eslint-disable-next-line vue/return-in-computed-property
  281. Logout() {
  282. return this.logout();
  283. }
  284. }
  285. };
  286. </script>
  287. <style lang="scss" scoped>
  288. .no-display {
  289. display: none;
  290. }
  291. .ts-display {
  292. display: block;
  293. }
  294. .phoneIconDetail {
  295. margin-left: 3px;
  296. }
  297. .bondCalculatorDetail {
  298. margin-left: 3px;
  299. }
  300. /* Extra small devices (phones, 600px and down) */
  301. @media only screen and (max-width: 600px) {
  302. .phoneIconDetail {
  303. display: none;
  304. }
  305. .bondCalculatorDetail {
  306. display: none;
  307. }
  308. #header {
  309. min-height: 145px;
  310. }
  311. }
  312. /* Small devices (portrait tablets and large phones, 600px and up) */
  313. @media only screen and (min-width: 600px) {
  314. #header {
  315. min-height: 145px;
  316. }
  317. }
  318. /* Medium devices (landscape tablets, 768px and up) */
  319. @media only screen and (min-width: 768px) {
  320. #header {
  321. min-height: 120px;
  322. }
  323. }
  324. /* Large devices (laptops/desktops, 992px and up) */
  325. @media only screen and (min-width: 992px) {
  326. }
  327. /* Extra large devices (large laptops and desktops, 1200px and up) */
  328. @media only screen and (min-width: 1200px) {
  329. }
  330. </style>