select-address.js 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. (function() {
  2. Vue.component('selsect-address', {
  3. template: `<div class="bgc-fff dropdown-menu dropdown-menu-right" aria-labelledby="addressLabel" style="width:308px;">
  4. <ul class="nav nav-tabs" role="tablist" id="addresslist">
  5. <li role="presentation" class="active" style="width:102px;">
  6. <a href="#province" aria-controls="province" role="tab" data-toggle="tab" id="_province" data-stopPropagation="true">{{provincename}}</a>
  7. </li>
  8. <li role="presentation" style="width:102px;">
  9. <a href="#city" aria-controls="city" role="tab" data-toggle="tab" id="_city" data-stopPropagation="true">{{cityname}}</a>
  10. </li>
  11. <li role="presentation" style="width:102px;">
  12. <a href="#county" aria-controls="county" role="tab" data-toggle="tab" id="_county" data-stopPropagation="true">{{countyname}}</a>
  13. </li>
  14. </ul>
  15. <div class="tab-content industrybox" style="height: auto">
  16. <div role="tabpanel" class="tab-pane active industry c-t-left" id="province" data-stopPropagation="true">
  17. <div class="w3-row mt10">
  18. <div class="w3-col c-f16 pl10" style="width:50px;">A-G</div>
  19. <div class="w3-rest c-f14 c-666">
  20. <span :id="province.id" v-for="province in province1" @click="selectP(province.id,province.name)">{{province.name}}</span>
  21. </div>
  22. </div>
  23. <div class="w3-row mt10">
  24. <div class="w3-col c-f16 pl10" style="width:50px;">H-J</div>
  25. <div class="w3-rest c-f140 c-666">
  26. <span :id="province.id" v-for="province in province2" @click="selectP(province.id,province.name)">{{province.name}}</span>
  27. </div>
  28. </div>
  29. <div class="w3-row mt10">
  30. <div class="w3-col c-f16 pl10" style="width:50px;">L-S</div>
  31. <div class="w3-rest c-f14 c-666">
  32. <span :id="province.id" v-for="province in province3" @click="selectP(province.id,province.name)">{{province.name}}</span>
  33. </div>
  34. </div>
  35. <div class="w3-row mt10">
  36. <div class="w3-col c-f16 pl10" style="width:50px;">T-Z</div>
  37. <div class="w3-rest c-f14 c-666">
  38. <span :id="province.id" v-for="province in province4" @click="selectP(province.id,province.name)">{{province.name}}</span>
  39. </div>
  40. </div>
  41. </div>
  42. <div role="tabpanel" class="tab-pane w3-row-padding industry" id="city" data-stopPropagation="true">
  43. <div :id="city.id" class="w3-third mb20" v-for="city in cities" @click="selectCi(city.id,city.name)">
  44. <div>{{city.name}}</div>
  45. </div>
  46. </div>
  47. <div role="tabpanel" class="tab-pane w3-row-padding industry" id="county" data-stopPropagation="true">
  48. <div :id="county.id" class="w3-third mb20" v-for="county in counties" @click="selectCo(county.id,county.name)">
  49. <div>{{county.name}}</div>
  50. </div>
  51. </div>
  52. </div>
  53. </div>`,
  54. props: ["userinfo"],
  55. data: function() {
  56. return {
  57. "province1": [{
  58. id: 340000,
  59. abbreviation:"",
  60. level: 1,
  61. name:"安徽",
  62. pid: 156,
  63. postCode: null
  64. },
  65. {
  66. id: 820000,
  67. abbreviation:"",
  68. level: 1,
  69. name:"澳门",
  70. pid: 156,
  71. postCode: null
  72. },
  73. {
  74. id: 110000,
  75. abbreviation:"",
  76. level: 1,
  77. name:"北京",
  78. pid: 156,
  79. postCode: null
  80. },
  81. {
  82. id: 500000,
  83. abbreviation:"",
  84. level: 1,
  85. name:"重庆",
  86. pid: 156,
  87. postCode: null
  88. },
  89. {
  90. id: 350000,
  91. abbreviation:"",
  92. level: 1,
  93. name: "福建",
  94. pid: 156,
  95. postCode: null
  96. },
  97. {
  98. id: 440000,
  99. abbreviation:"",
  100. level: 1,
  101. name:"广东",
  102. pid: 156,
  103. postCode: null
  104. },
  105. {
  106. id: 450000,
  107. abbreviation:"",
  108. level: 1,
  109. name:"广西",
  110. pid: 156,
  111. postCode: null
  112. },
  113. {
  114. id: 520000,
  115. abbreviation:"",
  116. level: 1,
  117. name:"贵州",
  118. pid: 156,
  119. postCode: null
  120. },
  121. {
  122. id: 620000,
  123. abbreviation:"",
  124. level: 1,
  125. name:"甘肃",
  126. pid: 156,
  127. postCode: null
  128. },
  129. ],
  130. "province2": [{
  131. id: 420000,
  132. abbreviation:"",
  133. level: 1,
  134. name:"湖北",
  135. pid: 156,
  136. postCode: null
  137. },
  138. {
  139. id: 230000,
  140. abbreviation:"",
  141. level: 1,
  142. name:"黑龙江",
  143. pid: 156,
  144. postCode: null
  145. },
  146. {
  147. id: 410000,
  148. abbreviation:"",
  149. level: 1,
  150. name: "河南",
  151. pid: 156,
  152. postCode: null
  153. },
  154. {
  155. id: 430000,
  156. abbreviation:"",
  157. level: 1,
  158. name:"湖南",
  159. pid: 156,
  160. postCode: null
  161. },
  162. {
  163. id: 460000,
  164. abbreviation:"",
  165. level: 1,
  166. name:"海南",
  167. pid: 156,
  168. postCode: null
  169. },
  170. {
  171. id: 130000,
  172. abbreviation:"",
  173. level: 1,
  174. name:"河北",
  175. pid: 156,
  176. postCode: null
  177. },
  178. {
  179. id: 220000,
  180. abbreviation:"",
  181. level: 1,
  182. name:"吉林",
  183. pid: 156,
  184. postCode: null
  185. },
  186. {
  187. id: 320000,
  188. abbreviation:"",
  189. level: 1,
  190. name:"江苏",
  191. pid: 156,
  192. postCode: null
  193. },
  194. {
  195. id: 360000,
  196. abbreviation:"",
  197. level: 1,
  198. name:"江西",
  199. pid: 156,
  200. postCode: null
  201. },
  202. ],
  203. "province3": [{
  204. id: 210000,
  205. abbreviation:"",
  206. level: 1,
  207. name:"辽宁",
  208. pid: 156,
  209. postCode: null
  210. },
  211. {
  212. id: 140000,
  213. abbreviation:"",
  214. level: 1,
  215. name:"山西",
  216. pid: 156,
  217. postCode: null
  218. },
  219. {
  220. id: 640000,
  221. abbreviation:"",
  222. level: 1,
  223. name:"宁夏",
  224. pid: 156,
  225. postCode: null
  226. },
  227. {
  228. id: 150000,
  229. abbreviation:"",
  230. level: 1,
  231. name:"内蒙古",
  232. pid: 156,
  233. postCode: null
  234. }, {
  235. id: 630000,
  236. abbreviation:"",
  237. level: 1,
  238. name:"青海",
  239. pid: 156,
  240. postCode: null
  241. },
  242. {
  243. id: 370000,
  244. abbreviation:"",
  245. level: 1,
  246. name:"山东",
  247. pid: 156,
  248. postCode: null
  249. },
  250. {
  251. id: 310000,
  252. abbreviation:"",
  253. level: 1,
  254. name:"上海",
  255. pid: 156,
  256. postCode: null
  257. },
  258. {
  259. id: 510000,
  260. abbreviation:"",
  261. level: 1,
  262. name:"四川",
  263. pid: 156,
  264. postCode: null
  265. },
  266. {
  267. id: 610000,
  268. abbreviation:"",
  269. level: 1,
  270. name:"陕西",
  271. pid: 156,
  272. postCode: null
  273. },
  274. ],
  275. "province4": [{
  276. id: 120000,
  277. abbreviation:"",
  278. level: 1,
  279. name:"天津",
  280. pid: 156,
  281. postCode: null
  282. },
  283. {
  284. id: 710000,
  285. abbreviation:"",
  286. level: 1,
  287. name:"台湾",
  288. pid: 156,
  289. postCode: null
  290. },
  291. {
  292. id: 540000,
  293. abbreviation:"",
  294. level: 1,
  295. name:"西藏",
  296. pid: 156,
  297. postCode: null
  298. },
  299. {
  300. id: 650000,
  301. abbreviation:"",
  302. level: 1,
  303. name:"新疆",
  304. pid: 156,
  305. postCode: null
  306. },
  307. {
  308. id: 810000,
  309. abbreviation:"",
  310. level: 1,
  311. name:"香港",
  312. pid: 156,
  313. postCode: null
  314. },
  315. {
  316. id: 530000,
  317. abbreviation:"",
  318. level: 1,
  319. name:"云南",
  320. pid: 156,
  321. postCode: null
  322. },
  323. {
  324. id: 330000,
  325. abbreviation:"",
  326. level: 1,
  327. name:"浙江",
  328. pid: 156,
  329. postCode: null
  330. },
  331. ],
  332. "cities": [],
  333. "counties": [],
  334. "cityid": -1,
  335. "countyid": -1,
  336. "provinceid": -1,
  337. "cityname": "城市",
  338. "countyname": "县区",
  339. "provincename": "省份",
  340. }
  341. },
  342. mounted: function() {
  343. $(".dropdown-menu").on("click", "[data-stopPropagation]", function(e) {
  344. e.stopPropagation();
  345. var tabid = e.currentTarget.id //js控制标签页
  346. var bbb=tabid.indexOf("_")
  347. if(tabid.indexOf("_") > -1) {
  348. $('#' + tabid).tab('show')
  349. }
  350. });
  351. },
  352. methods: {
  353. selectP: function(id, name) {
  354. var vm = this
  355. $("#" + id).addClass("active")
  356. if(vm.provinceid != -1) {
  357. $("#" + vm.provinceid).removeClass("active")
  358. }
  359. vm.provinceid = id
  360. vm.provincename = name
  361. vm.getAddress(id, true)
  362. $('#addresslist a[href="#city"]').tab('show')
  363. },
  364. getAddress: function(id, iscity) {
  365. var vm = this
  366. mineAPI.addressGet(id).then(function(res) {
  367. if(res) {
  368. if(iscity) {
  369. vm.cities = res.map(function(res) {
  370. return {
  371. id: res.id,
  372. name: res.name,
  373. }
  374. })
  375. } else {
  376. vm.Counties = res.map(function(res) {
  377. return {
  378. id: res.id,
  379. name:res.name,
  380. }
  381. })
  382. }
  383. }
  384. })
  385. },
  386. selectC: function(id, name) {
  387. var vm = this
  388. $("#" + id).addClass("active")
  389. vm.countyid = id
  390. vm.countyname = name
  391. vm.getAddress(id, false)
  392. $('#addresslist a[href="#county"]').tab('show')
  393. },
  394. },
  395. })
  396. })()