lshcom 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/README.md +31 -0
  2. package/package.json +14 -0
  3. package/src/assets/Porsche/iconfont.css +19 -0
  4. package/src/assets/Porsche/iconfont.eot +0 -0
  5. package/src/assets/Porsche/iconfont.js +1 -0
  6. package/src/assets/Porsche/iconfont.svg +36 -0
  7. package/src/assets/Porsche/iconfont.ttf +0 -0
  8. package/src/assets/Porsche/iconfont.woff +0 -0
  9. package/src/assets/cluemanagement/demo.css +539 -0
  10. package/src/assets/cluemanagement/demo_index.html +207 -0
  11. package/src/assets/cluemanagement/iconfont.css +17 -0
  12. package/src/assets/cluemanagement/iconfont.js +1 -0
  13. package/src/assets/cluemanagement/iconfont.json +16 -0
  14. package/src/assets/cluemanagement/iconfont.ttf +0 -0
  15. package/src/assets/css/_bootstrap-variables.scss +108 -0
  16. package/src/assets/css/_core-variables.scss +1 -0
  17. package/src/assets/css/_custom.scss +4 -0
  18. package/src/assets/css/bootstrap/_alert.scss +48 -0
  19. package/src/assets/css/bootstrap/_badge.scss +48 -0
  20. package/src/assets/css/bootstrap/_breadcrumb.scss +38 -0
  21. package/src/assets/css/bootstrap/_button-group.scss +198 -0
  22. package/src/assets/css/bootstrap/_buttons.scss +141 -0
  23. package/src/assets/css/bootstrap/_card.scss +223 -0
  24. package/src/assets/css/bootstrap/_carousel.scss +185 -0
  25. package/src/assets/css/bootstrap/_close.scss +29 -0
  26. package/src/assets/css/bootstrap/_code.scss +64 -0
  27. package/src/assets/css/bootstrap/_custom-forms.scss +254 -0
  28. package/src/assets/css/bootstrap/_dropdown.scss +128 -0
  29. package/src/assets/css/bootstrap/_forms.scss +390 -0
  30. package/src/assets/css/bootstrap/_functions.scss +90 -0
  31. package/src/assets/css/bootstrap/_grid.scss +53 -0
  32. package/src/assets/css/bootstrap/_images.scss +43 -0
  33. package/src/assets/css/bootstrap/_input-group.scss +176 -0
  34. package/src/assets/css/bootstrap/_jumbotron.scss +16 -0
  35. package/src/assets/css/bootstrap/_list-group.scss +114 -0
  36. package/src/assets/css/bootstrap/_media.scss +8 -0
  37. package/src/assets/css/bootstrap/_mixins.scss +41 -0
  38. package/src/assets/css/bootstrap/_modal.scss +142 -0
  39. package/src/assets/css/bootstrap/_nav.scss +120 -0
  40. package/src/assets/css/bootstrap/_navbar.scss +284 -0
  41. package/src/assets/css/bootstrap/_pagination.scss +66 -0
  42. package/src/assets/css/bootstrap/_popover.scss +195 -0
  43. package/src/assets/css/bootstrap/_print.scss +111 -0
  44. package/src/assets/css/bootstrap/_progress.scss +32 -0
  45. package/src/assets/css/bootstrap/_reboot.scss +481 -0
  46. package/src/assets/css/bootstrap/_tables.scss +142 -0
  47. package/src/assets/css/bootstrap/_tooltip.scss +107 -0
  48. package/src/assets/css/bootstrap/_transitions.scss +34 -0
  49. package/src/assets/css/bootstrap/_type.scss +123 -0
  50. package/src/assets/css/bootstrap/_utilities.scss +14 -0
  51. package/src/assets/css/bootstrap/_variables.scss +636 -0
  52. package/src/assets/css/bootstrap/bootstrap-grid.scss +37 -0
  53. package/src/assets/css/bootstrap/bootstrap-reboot.scss +9 -0
  54. package/src/assets/css/bootstrap/bootstrap.scss +48 -0
  55. package/src/assets/css/bootstrap/mixins/_alert.scss +13 -0
  56. package/src/assets/css/bootstrap/mixins/_background-variant.scss +12 -0
  57. package/src/assets/css/bootstrap/mixins/_badge.scss +12 -0
  58. package/src/assets/css/bootstrap/mixins/_border-radius.scss +35 -0
  59. package/src/assets/css/bootstrap/mixins/_box-shadow.scss +5 -0
  60. package/src/assets/css/bootstrap/mixins/_breakpoints.scss +105 -0
  61. package/src/assets/css/bootstrap/mixins/_buttons.scss +83 -0
  62. package/src/assets/css/bootstrap/mixins/_clearfix.scss +7 -0
  63. package/src/assets/css/bootstrap/mixins/_float.scss +9 -0
  64. package/src/assets/css/bootstrap/mixins/_forms.scss +81 -0
  65. package/src/assets/css/bootstrap/mixins/_gradients.scss +37 -0
  66. package/src/assets/css/bootstrap/mixins/_grid-framework.scss +56 -0
  67. package/src/assets/css/bootstrap/mixins/_grid.scss +47 -0
  68. package/src/assets/css/bootstrap/mixins/_hover.scss +60 -0
  69. package/src/assets/css/bootstrap/mixins/_image.scss +36 -0
  70. package/src/assets/css/bootstrap/mixins/_list-group.scss +26 -0
  71. package/src/assets/css/bootstrap/mixins/_lists.scss +7 -0
  72. package/src/assets/css/bootstrap/mixins/_nav-divider.scss +10 -0
  73. package/src/assets/css/bootstrap/mixins/_navbar-align.scss +9 -0
  74. package/src/assets/css/bootstrap/mixins/_pagination.scss +22 -0
  75. package/src/assets/css/bootstrap/mixins/_reset-text.scss +18 -0
  76. package/src/assets/css/bootstrap/mixins/_resize.scss +6 -0
  77. package/src/assets/css/bootstrap/mixins/_screen-reader.scss +35 -0
  78. package/src/assets/css/bootstrap/mixins/_size.scss +6 -0
  79. package/src/assets/css/bootstrap/mixins/_table-row.scss +30 -0
  80. package/src/assets/css/bootstrap/mixins/_text-emphasis.scss +12 -0
  81. package/src/assets/css/bootstrap/mixins/_text-hide.scss +8 -0
  82. package/src/assets/css/bootstrap/mixins/_text-truncate.scss +8 -0
  83. package/src/assets/css/bootstrap/mixins/_transition.scss +9 -0
  84. package/src/assets/css/bootstrap/mixins/_visibility.scss +5 -0
  85. package/src/assets/css/bootstrap/utilities/_align.scss +6 -0
  86. package/src/assets/css/bootstrap/utilities/_background.scss +6 -0
  87. package/src/assets/css/bootstrap/utilities/_borders.scss +52 -0
  88. package/src/assets/css/bootstrap/utilities/_clearfix.scss +3 -0
  89. package/src/assets/css/bootstrap/utilities/_display.scss +53 -0
  90. package/src/assets/css/bootstrap/utilities/_embed.scss +52 -0
  91. package/src/assets/css/bootstrap/utilities/_flex.scss +44 -0
  92. package/src/assets/css/bootstrap/utilities/_float.scss +9 -0
  93. package/src/assets/css/bootstrap/utilities/_position.scss +25 -0
  94. package/src/assets/css/bootstrap/utilities/_screenreaders.scss +11 -0
  95. package/src/assets/css/bootstrap/utilities/_sizing.scss +10 -0
  96. package/src/assets/css/bootstrap/utilities/_spacing.scss +41 -0
  97. package/src/assets/css/bootstrap/utilities/_text.scss +49 -0
  98. package/src/assets/css/bootstrap/utilities/_visibility.scss +11 -0
  99. package/src/assets/css/core/_animate.scss +44 -0
  100. package/src/assets/css/core/_aside.scss +64 -0
  101. package/src/assets/css/core/_avatars.scss +51 -0
  102. package/src/assets/css/core/_badge.scss +3 -0
  103. package/src/assets/css/core/_breadcrumb-menu.scss +35 -0
  104. package/src/assets/css/core/_breadcrumb.scss +6 -0
  105. package/src/assets/css/core/_buttons.scss +575 -0
  106. package/src/assets/css/core/_callout.scss +55 -0
  107. package/src/assets/css/core/_card.scss +191 -0
  108. package/src/assets/css/core/_charts.scss +9 -0
  109. package/src/assets/css/core/_dropdown.scss +69 -0
  110. package/src/assets/css/core/_footer.scss +8 -0
  111. package/src/assets/css/core/_grid.scss +15 -0
  112. package/src/assets/css/core/_input-group.scss +6 -0
  113. package/src/assets/css/core/_input.scss +26 -0
  114. package/src/assets/css/core/_layout.scss +397 -0
  115. package/src/assets/css/core/_loading.scss +128 -0
  116. package/src/assets/css/core/_mixins.scss +116 -0
  117. package/src/assets/css/core/_mobile.scss +0 -0
  118. package/src/assets/css/core/_modal.scss +16 -0
  119. package/src/assets/css/core/_nav.scss +32 -0
  120. package/src/assets/css/core/_navbar.scss +106 -0
  121. package/src/assets/css/core/_others.scss +4 -0
  122. package/src/assets/css/core/_progress.scss +15 -0
  123. package/src/assets/css/core/_rtl.scss +267 -0
  124. package/src/assets/css/core/_sidebar.scss +426 -0
  125. package/src/assets/css/core/_switches.scss +301 -0
  126. package/src/assets/css/core/_tables.scss +72 -0
  127. package/src/assets/css/core/_temp.scss +47 -0
  128. package/src/assets/css/core/_typography.scss +36 -0
  129. package/src/assets/css/core/_utilities.scss +3 -0
  130. package/src/assets/css/core/_variables.scss +174 -0
  131. package/src/assets/css/core/_widgets.scss +253 -0
  132. package/src/assets/css/core/core.scss +40 -0
  133. package/src/assets/css/core/utilities/_background.scss +8 -0
  134. package/src/assets/css/core/utilities/_borders.scss +18 -0
  135. package/src/assets/css/core/utilities/_display.scss +18 -0
  136. package/src/assets/css/iconfont.css +85 -0
  137. package/src/assets/css/loading.css +18 -0
  138. package/src/assets/css/main.scss +15 -0
  139. package/src/assets/css/themes/default.scss +518 -0
  140. package/src/assets/css/themes/first.css +25 -0
  141. package/src/assets/css/vendors/_vendors.scss +1 -0
  142. package/src/assets/css/vendors/chart.js/chart.scss +45 -0
  143. package/src/assets/financial/demo.css +539 -0
  144. package/src/assets/financial/demo_index.html +230 -0
  145. package/src/assets/financial/iconfont.css +21 -0
  146. package/src/assets/financial/iconfont.js +1 -0
  147. package/src/assets/financial/iconfont.json +23 -0
  148. package/src/assets/financial/iconfont.ttf +0 -0
  149. package/src/assets/font_jipan/demo.css +539 -0
  150. package/src/assets/font_jipan/demo_index.html +211 -0
  151. package/src/assets/font_jipan/iconfont.css +19 -0
  152. package/src/assets/font_jipan/iconfont.js +1 -0
  153. package/src/assets/font_jipan/iconfont.json +16 -0
  154. package/src/assets/font_jipan/iconfont.ttf +0 -0
  155. package/src/assets/font_jipan/iconfont.woff +0 -0
  156. package/src/assets/font_jipan/iconfont.woff2 +0 -0
  157. package/src/assets/fontgift/demo.css +539 -0
  158. package/src/assets/fontgift/demo_index.html +207 -0
  159. package/src/assets/fontgift/iconfont.css +17 -0
  160. package/src/assets/fontgift/iconfont.js +1 -0
  161. package/src/assets/fontgift/iconfont.json +16 -0
  162. package/src/assets/fontgift/iconfont.ttf +0 -0
  163. package/src/assets/fonts/iconfont.eot +0 -0
  164. package/src/assets/fonts/iconfont.svg +79 -0
  165. package/src/assets/fonts/iconfont.ttf +0 -0
  166. package/src/assets/fonts/iconfont.woff +0 -0
  167. package/src/assets/img/1.jpg +0 -0
  168. package/src/assets/img/2.jpg +0 -0
  169. package/src/assets/img/404.jpg +0 -0
  170. package/src/assets/img/A01-Line.png +0 -0
  171. package/src/assets/img/A01.png +0 -0
  172. package/src/assets/img/W02-Line.png +0 -0
  173. package/src/assets/img/W02.png +0 -0
  174. package/src/assets/img/arrow-left.png +0 -0
  175. package/src/assets/img/arrow-right.png +0 -0
  176. package/src/assets/img/borad-check.png +0 -0
  177. package/src/assets/img/call-conference-end.png +0 -0
  178. package/src/assets/img/call-conference.png +0 -0
  179. package/src/assets/img/call-consult-end.png +0 -0
  180. package/src/assets/img/call-consult-out.png +0 -0
  181. package/src/assets/img/call-consult.png +0 -0
  182. package/src/assets/img/call-expansion-menu.png +0 -0
  183. package/src/assets/img/call-expansion.png +0 -0
  184. package/src/assets/img/call-hang-up.png +0 -0
  185. package/src/assets/img/call-hold.png +0 -0
  186. package/src/assets/img/call-holding.png +0 -0
  187. package/src/assets/img/call-shrink-menu.png +0 -0
  188. package/src/assets/img/call-shrink.png +0 -0
  189. package/src/assets/img/call-transfer-end.png +0 -0
  190. package/src/assets/img/call-transfer.png +0 -0
  191. package/src/assets/img/call.png +0 -0
  192. package/src/assets/img/cancle-keep.png +0 -0
  193. package/src/assets/img/card.png +0 -0
  194. package/src/assets/img/cash.png +0 -0
  195. package/src/assets/img/customer-portrayal-blue.png +0 -0
  196. package/src/assets/img/customer-portrayal-white.png +0 -0
  197. package/src/assets/img/error.png +0 -0
  198. package/src/assets/img/iris.png +0 -0
  199. package/src/assets/img/left-kuang.png +0 -0
  200. package/src/assets/img/lockimg.png +0 -0
  201. package/src/assets/img/offLine.png +0 -0
  202. package/src/assets/img/success.png +0 -0
  203. package/src/assets/img/tishi.png +0 -0
  204. package/src/assets/img/userimg.png +0 -0
  205. package/src/assets/iocnfont/AI/demo.css +539 -0
  206. package/src/assets/iocnfont/AI/demo_index.html +211 -0
  207. package/src/assets/iocnfont/AI/iconfont.css +19 -0
  208. package/src/assets/iocnfont/AI/iconfont.js +1 -0
  209. package/src/assets/iocnfont/AI/iconfont.json +16 -0
  210. package/src/assets/iocnfont/AI/iconfont.ttf +0 -0
  211. package/src/assets/iocnfont/AI/iconfont.woff +0 -0
  212. package/src/assets/iocnfont/AI/iconfont.woff2 +0 -0
  213. package/src/assets/iocnfont/add/demo.css +539 -0
  214. package/src/assets/iocnfont/add/demo_index.html +212 -0
  215. package/src/assets/iocnfont/add/iconfont.css +20 -0
  216. package/src/assets/iocnfont/add/iconfont.js +1 -0
  217. package/src/assets/iocnfont/add/iconfont.json +16 -0
  218. package/src/assets/iocnfont/add/iconfont.svg +21 -0
  219. package/src/assets/iocnfont/add/iconfont.ttf +0 -0
  220. package/src/assets/iocnfont/add/iconfont.woff +0 -0
  221. package/src/assets/iocnfont/add/iconfont.woff2 +0 -0
  222. package/src/assets/iocnfont/addsf/demo.css +539 -0
  223. package/src/assets/iocnfont/addsf/demo_index.html +506 -0
  224. package/src/assets/iocnfont/addsf/iconfont.css +69 -0
  225. package/src/assets/iocnfont/addsf/iconfont.js +1 -0
  226. package/src/assets/iocnfont/addsf/iconfont.json +107 -0
  227. package/src/assets/iocnfont/addsf/iconfont.ttf +0 -0
  228. package/src/assets/iocnfont/arrow/demo.css +370 -0
  229. package/src/assets/iocnfont/arrow/demo_fontclass.html +58 -0
  230. package/src/assets/iocnfont/arrow/demo_symbol.html +87 -0
  231. package/src/assets/iocnfont/arrow/demo_unicode.html +96 -0
  232. package/src/assets/iocnfont/arrow/iconfont.css +36 -0
  233. package/src/assets/iocnfont/arrow/iconfont.eot +0 -0
  234. package/src/assets/iocnfont/arrow/iconfont.js +1 -0
  235. package/src/assets/iocnfont/arrow/iconfont.svg +35 -0
  236. package/src/assets/iocnfont/arrow/iconfont.ttf +0 -0
  237. package/src/assets/iocnfont/arrow/iconfont.woff +0 -0
  238. package/src/assets/iocnfont/company/demo.css +539 -0
  239. package/src/assets/iocnfont/company/demo_index.html +253 -0
  240. package/src/assets/iocnfont/company/iconfont.css +24 -0
  241. package/src/assets/iocnfont/company/iconfont.js +1 -0
  242. package/src/assets/iocnfont/company/iconfont.json +30 -0
  243. package/src/assets/iocnfont/company/iconfont.ttf +0 -0
  244. package/src/assets/iocnfont/iconfont-otr/iconfont.css +39 -0
  245. package/src/assets/iocnfont/iconfont-otr/iconfont.eot +0 -0
  246. package/src/assets/iocnfont/iconfont-otr/iconfont.js +1 -0
  247. package/src/assets/iocnfont/iconfont-otr/iconfont.json +23 -0
  248. package/src/assets/iocnfont/iconfont-otr/iconfont.svg +14 -0
  249. package/src/assets/iocnfont/iconfont-otr/iconfont.ttf +0 -0
  250. package/src/assets/iocnfont/iconfont-otr/iconfont.woff +0 -0
  251. package/src/assets/iocnfont/iconfont.css +89 -0
  252. package/src/assets/iocnfont/iconfont.eot +0 -0
  253. package/src/assets/iocnfont/iconfont.js +1 -0
  254. package/src/assets/iocnfont/iconfont.svg +134 -0
  255. package/src/assets/iocnfont/iconfont.ttf +0 -0
  256. package/src/assets/iocnfont/iconfont.woff +0 -0
  257. package/src/assets/iocnfont/vehicle/iconfont.css +31 -0
  258. package/src/assets/iocnfont/vehicle/iconfont.eot +0 -0
  259. package/src/assets/iocnfont/vehicle/iconfont.js +1 -0
  260. package/src/assets/iocnfont/vehicle/iconfont.svg +54 -0
  261. package/src/assets/iocnfont/vehicle/iconfont.ttf +0 -0
  262. package/src/assets/iocnfont/vehicle/iconfont.woff +0 -0
  263. package/src/assets/lixinghang/iconfont.css +50 -0
  264. package/src/assets/lixinghang/iconfont.eot +0 -0
  265. package/src/assets/lixinghang/iconfont.js +1 -0
  266. package/src/assets/lixinghang/iconfont.json +58 -0
  267. package/src/assets/lixinghang/iconfont.svg +18 -0
  268. package/src/assets/lixinghang/iconfont.ttf +0 -0
  269. package/src/assets/lixinghang/iconfont.woff +0 -0
  270. package/src/assets/lixinghang/iconfont.woff2 +0 -0
  271. package/src/assets/privacy/demo.css +539 -0
  272. package/src/assets/privacy/demo_index.html +207 -0
  273. package/src/assets/privacy/iconfont.css +17 -0
  274. package/src/assets/privacy/iconfont.js +1 -0
  275. package/src/assets/privacy/iconfont.json +16 -0
  276. package/src/assets/privacy/iconfont.ttf +0 -0
  277. package/src/assets/sheche/demo.css +539 -0
  278. package/src/assets/sheche/demo_index.html +230 -0
  279. package/src/assets/sheche/iconfont.css +21 -0
  280. package/src/assets/sheche/iconfont.js +1 -0
  281. package/src/assets/sheche/iconfont.json +23 -0
  282. package/src/assets/sheche/iconfont.ttf +0 -0
  283. package/src/assets/suggtion/demo.css +539 -0
  284. package/src/assets/suggtion/demo_index.html +207 -0
  285. package/src/assets/suggtion/iconfont.css +17 -0
  286. package/src/assets/suggtion/iconfont.js +1 -0
  287. package/src/assets/suggtion/iconfont.json +16 -0
  288. package/src/assets/suggtion/iconfont.ttf +0 -0
  289. package/src/assets/survey/demo.css +539 -0
  290. package/src/assets/survey/demo_index.html +207 -0
  291. package/src/assets/survey/iconfont.css +17 -0
  292. package/src/assets/survey/iconfont.js +1 -0
  293. package/src/assets/survey/iconfont.json +16 -0
  294. package/src/assets/survey/iconfont.ttf +0 -0
  295. package/src/common/common.js +599 -0
  296. package/src/common/global.js +214 -0
  297. package/src/components/LshCust/index.vue +926 -0
  298. package/src/components/LshVehicle/index.vue +1002 -0
  299. package/src/components/el/DatePicker.vue +113 -0
  300. package/src/components/el/Dialog.vue +66 -0
  301. package/src/components/el/Page.vue +69 -0
  302. package/src/components/el/Select.vue +173 -0
  303. package/src/components/el/Table.vue +98 -0
  304. package/src/components/el/Upload.vue +175 -0
  305. package/src/components/lsh-customer/dialog.vue +66 -0
  306. package/src/components/lsh-customer/index.vue +453 -0
  307. package/src/components/lsh-vehicle/dialog.vue +47 -0
  308. package/src/components/lsh-vehicle/index.vue +534 -0
  309. package/src/components/lsh-vehicle/lshCust.vue +715 -0
@@ -0,0 +1,715 @@
1
+ <template>
2
+ <div class="LSH-Cust">
3
+ <div class="row">
4
+ <div class="col-md-4">
5
+ <b-form-fieldset class="text-right" horizontal label="客户编码" label-cols="4">
6
+ <el-input disabled v-model.trim="queryParams.scvId"/>
7
+ </b-form-fieldset>
8
+ </div>
9
+
10
+ <div class="col-md-4">
11
+ <b-form-fieldset class="text-right" horizontal label="相关编号" label-cols="4">
12
+ <el-input disabled v-model.trim="queryParams.bpNum"/>
13
+ </b-form-fieldset>
14
+ </div>
15
+
16
+ <div class="col-md-4">
17
+ <b-form-fieldset class="text-right" horizontal label="客户类型*" label-cols="4">
18
+ <el-select
19
+ @change="handleChange"
20
+ @visible-change="handleVisibleChange"
21
+ v-model="queryParams.custType">
22
+ <el-option
23
+ :key="item.value"
24
+ :label="item.label"
25
+ :value="item.value"
26
+ v-for="item in customTypeList"/>
27
+ </el-select>
28
+ </b-form-fieldset>
29
+ </div>
30
+
31
+ <div class="col-md-4">
32
+ <b-form-fieldset class="text-right" horizontal label="移动电话*" label-cols="4" style="position: relative;">
33
+ <el-autocomplete
34
+ :disabled="isEdit"
35
+ :fetch-suggestions="querySearch"
36
+ :maxlength="11"
37
+ :trigger-on-focus="false"
38
+ @keyup.native="numberKeyup"
39
+ @select="handleSelect"
40
+ class="inline-input"
41
+ placeholder="请输入手机号"
42
+ v-model="queryParams.contactPhoneNo">
43
+ </el-autocomplete>
44
+ </b-form-fieldset>
45
+ </div>
46
+ <div class="col-md-4">
47
+ <b-form-fieldset class="text-right" horizontal label="客户姓名*" label-cols="4">
48
+ <el-input :disabled="isEdit" v-model.trim="queryParams.customerName"/>
49
+ </b-form-fieldset>
50
+ </div>
51
+
52
+ <div class="col-md-4">
53
+ <b-form-fieldset class="text-right" horizontal label="称谓*" label-cols="4">
54
+ <el-select placeholder="" v-model="queryParams.customerGender">
55
+ <el-option
56
+ :disabled="(companyFlag && !item.refDetailRemark) || (!companyFlag && !!item.refDetailRemark)"
57
+ :key="item.value"
58
+ :label="item.label"
59
+ :value="item.value"
60
+ v-for="item in genderTypeList"/>
61
+ </el-select>
62
+ </b-form-fieldset>
63
+ </div>
64
+
65
+ <div class="col-md-4">
66
+ <b-form-fieldset class="text-right" horizontal label="国籍/地区*" label-cols="4">
67
+ <!-- <el-input v-model.trim="queryParams.customerCountry" /> -->
68
+ <el-select placeholder="" v-model="queryParams.customerCountryCode">
69
+ <el-option
70
+ :key="item.value"
71
+ :label="item.label"
72
+ :value="item.value"
73
+ v-for="item in customerCountryList"/>
74
+ </el-select>
75
+ </b-form-fieldset>
76
+ </div>
77
+
78
+ <div class="col-md-4">
79
+ <b-form-fieldset class="text-right" horizontal label="证件类型" label-cols="4">
80
+ <el-select v-model="queryParams.customerIdTypeCode">
81
+ <el-option
82
+ :disabled="(companyFlag && !item.refDetailRemark) || (!companyFlag && !!item.refDetailRemark)"
83
+ :key="item.value"
84
+ :label="item.label"
85
+ :value="item.value"
86
+ v-for="item in CertificateTypeList"/>
87
+ </el-select>
88
+ </b-form-fieldset>
89
+ </div>
90
+
91
+ <div class="col-md-4">
92
+ <b-form-fieldset class="text-right" horizontal label="证件号" label-cols="4">
93
+ <el-input v-model.trim="queryParams.customerIdNo" />
94
+ </b-form-fieldset>
95
+ </div>
96
+
97
+ <div class="col-md-4">
98
+ <b-form-fieldset class="text-right" horizontal label="生日" label-cols="4">
99
+ <el-date-picker
100
+ :picker-options="pickerOptions0"
101
+ placeholder="选择日期"
102
+ type="date"
103
+ v-model="queryParams.customerBirthDate">
104
+ </el-date-picker>
105
+ </b-form-fieldset>
106
+ </div>
107
+
108
+ <div class="col-md-4">
109
+ <b-form-fieldset class="text-right" horizontal label="邮箱" label-cols="4">
110
+ <el-input v-model.trim="queryParams.customerMail" />
111
+ </b-form-fieldset>
112
+ </div>
113
+
114
+ <div class="col-md-4">
115
+ <b-form-fieldset class="text-right" horizontal label="学历" label-cols="4">
116
+ <el-input v-model.trim="queryParams.customerEducation" />
117
+ </b-form-fieldset>
118
+ </div>
119
+
120
+ <div class="col-md-4">
121
+ <b-form-fieldset class="text-right" horizontal label="省" label-cols="4">
122
+ <el-select @change="selectProvince" placeholder="" v-model="queryParams.addressProvinceCode">
123
+ <el-option
124
+ :key="item.value"
125
+ :label="item.label"
126
+ :value="item.value"
127
+ v-for="item in provinceList"/>
128
+ </el-select>
129
+ </b-form-fieldset>
130
+ </div>
131
+
132
+ <div class="col-md-4">
133
+ <b-form-fieldset class="text-right" horizontal label="市" label-cols="4">
134
+ <el-select @change="selectCity" placeholder="" v-model="queryParams.addressCityCode">
135
+ <el-option
136
+ :key="item.value"
137
+ :label="item.label"
138
+ :value="item.value"
139
+ v-for="item in cityList"/>
140
+ </el-select>
141
+ </b-form-fieldset>
142
+ </div>
143
+
144
+ <div class="col-md-4">
145
+ <b-form-fieldset class="text-right" horizontal label="区" label-cols="4">
146
+ <el-select placeholder="" v-model="queryParams.addressRegionCode">
147
+ <el-option
148
+ :key="item.value"
149
+ :label="item.label"
150
+ :value="item.value"
151
+ v-for="item in direectList"/>
152
+ </el-select>
153
+ </b-form-fieldset>
154
+ </div>
155
+
156
+ <div class="col-md-4">
157
+ <b-form-fieldset class="text-right" horizontal label="详细地址" label-cols="4">
158
+ <el-input v-model.trim="queryParams.addressDetail" />
159
+ </b-form-fieldset>
160
+ </div>
161
+ <!-- 客户档案单独加的字段明细 -->
162
+ <!-- <slot name="custom-add"></slot> -->
163
+ <div class="col-md-4">
164
+ <b-form-fieldset class="text-right" horizontal label="其他电话1" label-cols="4">
165
+ <el-input v-model.trim="queryParams.otherPhoneNoOne"/>
166
+ </b-form-fieldset>
167
+ </div>
168
+ <div class="col-md-4">
169
+ <b-form-fieldset class="text-right" horizontal label="其他电话2" label-cols="4">
170
+ <el-input v-model.trim="queryParams.otherPhoneNoTwo"/>
171
+ </b-form-fieldset>
172
+ </div>
173
+ <div class="col-md-4">
174
+ <b-form-fieldset class="text-right" horizontal label="其他电话3" label-cols="4">
175
+ <el-input v-model.trim="queryParams.otherPhoneNoThree"/>
176
+ </b-form-fieldset>
177
+ </div>
178
+ <div class="col-md-4">
179
+ <b-form-fieldset class="text-right" horizontal label="是否本店" label-cols="4">
180
+ <!-- <el-select
181
+ v-model="queryParams.custType">
182
+ <el-option
183
+ v-for="item in customTypeList"
184
+ :key="item.value"
185
+ :label="item.label"
186
+ :value="item.value"/>
187
+ </el-select> -->
188
+ <el-input :value="queryParams.storeCode ? '是':'否'" disabled/>
189
+ </b-form-fieldset>
190
+ </div>
191
+ <div class="col-md-4">
192
+ <b-form-fieldset class="text-right" horizontal label="SAP手机号" label-cols="4">
193
+ <!-- <el-select
194
+ v-model="queryParams.sapPhoneNo">
195
+ <el-option
196
+ v-for="item in customTypeList"
197
+ :key="item.value"
198
+ :label="item.label"
199
+ :value="item.value"/>
200
+ </el-select> -->
201
+ <el-input disabled v-model.trim="queryParams.sapPhoneNo"/>
202
+ </b-form-fieldset>
203
+ </div>
204
+ </div>
205
+
206
+ <div class="f-tar">
207
+ <b-button v-if="showChange" @click="checkAuthCustomerInfo('changeMaster')" size="sm" variant="success">车主变更</b-button>
208
+ <b-button @click="cancel" size="sm" variant="default">取消</b-button>
209
+ <b-button @click="checkAuthCustomerInfo('preserve')" size="sm" variant="primary">保存</b-button>
210
+ </div>
211
+
212
+ <EleDialog title="客户信息更正" ref="EleDialog" showFooter customFooter :modalAppendToBody="false" :modal="false">
213
+ <p>该手机号码的个人客户已经完成实名制,信息如下:</p>
214
+ <p>姓名:</p>
215
+ <p>证件号:</p>
216
+ <p>是否使用正确的客户更新进行保存?</p>
217
+ <div slot="footer">
218
+ <el-button type="primary" @click="checkAuthCustomerInfoCancel">取消</el-button>
219
+ <el-button type="primary" @click="checkAuthCustomerInfoConfirm">确定</el-button>
220
+ </div>
221
+ </EleDialog>
222
+ </div>
223
+ </template>
224
+
225
+ <script>
226
+ import {showBtn} from 'common/api-common'
227
+ import {
228
+ ORDER_CHANGE_MASTER
229
+ } from 'common/resource-btn.js'
230
+ import api from 'common/api'
231
+ import {
232
+ LSH_GENDER_TYPE,
233
+ LSH_CUSTOM_TYPE,
234
+ LSH_CERTIFICATE_TYPE,
235
+ NATIONA_LITY_REGION
236
+ } from 'common/ref-code'
237
+
238
+ import { mapState, mapGetters, mapActions, mapMutations } from 'vuex'
239
+ export default {
240
+ props: {
241
+ custVo: {
242
+ type: Object,
243
+ default: {}
244
+ },
245
+ bindFlag: {
246
+ type: Boolean,
247
+ default: false
248
+ },
249
+ isEdit: {
250
+ type: Boolean,
251
+ default: false
252
+ }
253
+ },
254
+ data() {
255
+ return {
256
+ queryParams: {
257
+ contactPhoneNo: '',
258
+ scvId:'',
259
+ customerIdTypeCode: 'ID',
260
+ customerCountryCode: 'CHN'
261
+ },
262
+ addressCode: {},
263
+ purchaseOrderTypeList: [],
264
+ genderTypeList: [],
265
+ customTypeList: [],
266
+ CertificateTypeList: [],
267
+ // 省
268
+ provinceList: [],
269
+ // 市
270
+ cityList: [],
271
+ // 区
272
+ direectList: [],
273
+ chooseList: [],
274
+ pickerOptions0: {
275
+ disabledDate(time) {
276
+ return time.getTime() > Date.now()
277
+ }
278
+ },
279
+ customerCountryList:[],
280
+ companyFlag: false,
281
+ visbileFlag: false,
282
+ btnType: '',
283
+ custInfo: {},
284
+ }
285
+ },
286
+
287
+ watch: {
288
+ custVo: {
289
+ async handler(newName, oldName) {
290
+ console.log(0, newName)
291
+ if (JSON.stringify(newName) === '{}') return
292
+ this.queryParams = JSON.parse(JSON.stringify(newName)) || {}
293
+ // 实时更新用户信息
294
+ this.querySearch(this.queryParams.contactPhoneNo)
295
+ !this.queryParams.bpNum && (this.queryParams.bpNum = '')
296
+
297
+ this.queryByMobile()
298
+ },
299
+ immediate: true
300
+ },
301
+ 'queryParams.contactPhoneNo': {
302
+ handler: function() {
303
+ this.querySearch()
304
+ },
305
+ }
306
+ },
307
+
308
+ async created() {
309
+ this.queryRef({refCode: LSH_GENDER_TYPE}, 'genderTypeList', false)
310
+ this.queryRef({refCode: LSH_CUSTOM_TYPE}, 'customTypeList', false)
311
+ this.queryRef({refCode: LSH_CERTIFICATE_TYPE}, 'CertificateTypeList', false)
312
+ this.queryRef({refCode:'NationalityRegion'}, 'customerCountryList', false)
313
+ await this.init()
314
+ // this.getType()
315
+ },
316
+
317
+ computed: {
318
+ showChange() {
319
+ return showBtn(ORDER_CHANGE_MASTER)
320
+ },
321
+ ...mapState('customerPortrayal', [
322
+ 'customerPhoneNo',
323
+ 'portrayalVisible'
324
+ ])
325
+ },
326
+
327
+ methods: {
328
+ ...mapActions({
329
+ saveScvId: 'customerPortrayal/getScvIdSave',
330
+ savePhoneNo: 'customerPortrayal/getCustomerPhoneNo',
331
+ savePortrayalVisible: 'customerPortrayal/getPortrayalVisible'
332
+ }),
333
+
334
+ init() {
335
+ this.querychinaarea({levels: 1})
336
+ // this.queryByMobile()
337
+ },
338
+ queryByMobile(){
339
+ if (this.custVo.contactPhoneNo.length === 11) {
340
+ api.liApi.custVehcile.getCustByPhoneName({contactPhoneNo: this.custVo.contactPhoneNo, pageStart: 1, pageNums: 1000}, res => {
341
+ if (res && res.data.code === 'success') {
342
+ // if (res.data.obj && res.data.obj.length > 0) {
343
+ // const { customerGender,custType,customerCountryCode,customerIdTypeCode } = res.data.obj[0]
344
+ // this.$set(this.queryParams, 'customerGender', customerGender || '')
345
+ // this.$set(this.queryParams, 'custType', custType || '')
346
+ // this.$set(this.queryParams, 'customerCountryCode', customerCountryCode || '')
347
+ // this.$set(this.queryParams, 'customerIdTypeCode', customerIdTypeCode || '')
348
+ // }
349
+ this.queryParams = res.data.obj[0] || {};
350
+ }
351
+ })
352
+ }
353
+ },
354
+
355
+ /**
356
+ * @desc 手机号下拉查询
357
+ */
358
+ querySearch(val, cb = ()=>{}) {
359
+ if (val && val.length === 11) {
360
+ api.liApi.custVehcile.getCustByPhoneName({contactPhoneNo: val, pageStart: 1, pageNums: 1000}, res => {
361
+ if (res && res.data.code === 'success') {
362
+ if (res.data.obj && res.data.obj.length > 0) {
363
+ let list = res.data.obj.map((item, index) => {
364
+ return {
365
+ value: `${item.contactPhoneNo} ${item.customerName}`,
366
+ label: item.contactPhoneNo,
367
+ index: index
368
+ }
369
+ })
370
+ cb(list)
371
+ this.chooseList = res.data.obj
372
+ // 回显
373
+ // this.queryParams = res.data.obj[0]
374
+ } else {
375
+ this.queryParams = {
376
+ contactPhoneNo: val,
377
+ customerIdTypeCode: 'ID',
378
+ customerCountryCode: 'CHN'
379
+ }
380
+ cb([])
381
+ }
382
+ }
383
+ })
384
+ } else {
385
+ cb([])
386
+ }
387
+ },
388
+
389
+
390
+
391
+ /**
392
+ * @desc 手机号选择
393
+ */
394
+ handleSelect(item) {
395
+ // console.log('test:>选择', item)
396
+ this.queryParams = this.chooseList[item.index]
397
+ !this.queryParams.bpNum && (this.queryParams.bpNum = '')
398
+ // this.$emit('selectPhone', this.queryParams)
399
+ },
400
+
401
+
402
+ /**
403
+ * @desc 保存
404
+ */
405
+ save(){
406
+ console.log('test:>watch', this.$watch)
407
+ if (!this.queryParams.custType) {
408
+ this.$message({
409
+ message: '请选择客户类型',
410
+ type: 'warning'
411
+ })
412
+ return
413
+ }
414
+
415
+ if (!this.queryParams.contactPhoneNo) {
416
+ this.$message({
417
+ message: '请输入移动电话',
418
+ type: 'warning'
419
+ })
420
+ return
421
+ }
422
+
423
+ if (!this.queryParams.customerName) {
424
+ this.$message({
425
+ message: '请输入客户姓名',
426
+ type: 'warning'
427
+ })
428
+ return
429
+ }
430
+
431
+ if (!this.queryParams.customerGender) {
432
+ this.$message({
433
+ message: '请选择称谓',
434
+ type: 'warning'
435
+ })
436
+ return
437
+ }
438
+
439
+ if (!this.queryParams.customerCountryCode) {
440
+ this.$message({
441
+ message: '请选择国家/地区',
442
+ type: 'warning'
443
+ })
444
+ return
445
+ }
446
+
447
+ if (this.bindFlag) {
448
+
449
+ this.$emit('save', this.queryParams)
450
+ return
451
+ }
452
+
453
+ const params = {
454
+ saveFrom: 0,
455
+ custVo: this.queryParams,
456
+ }
457
+ api.liApi.custVehcile.setCustVehicle(params, res => {
458
+ if (res && res.data.code === 'success') {
459
+ this.$emit('preserve', res.data.obj.custVo)
460
+ this.$message({
461
+ message: '保存成功',
462
+ type: 'success'
463
+ })
464
+
465
+ // 解决保存后 loading一直转圈的问题
466
+ // setTimeout(function(){
467
+ // window.location.reload()
468
+ // }, 1000)
469
+ }
470
+ })
471
+ },
472
+ preserve() {
473
+ const params = {
474
+ saveFrom: 0,
475
+ custVo: {
476
+ ...this.queryParams,
477
+ salesDate: undefined,
478
+ sapSyncTime: undefined,
479
+ },
480
+ relationList: [{
481
+ vinNo: this.custVo.frameNo,
482
+ finNo: this.custVo.vehicleNo,
483
+ plateNumber: this.custVo.plateNumber,
484
+ custName: this.queryParams.customerName,
485
+ custPhone: this.queryParams.contactPhoneNo,
486
+ relationType: 0,
487
+ scvId: this.queryParams.scvId,
488
+ state: 0,
489
+ }],
490
+ }
491
+ api.liApi.custVehcile.setCustVehicle(params, res => {
492
+ if (res && res.data.code === 'success') {
493
+ this.$message.success('保存成功')
494
+ this.$emit('preserve', this.queryParams)
495
+ }
496
+ if(res && res.data.code === 'carIsBind'){
497
+ this.$message({
498
+ message:'该车已绑定多个车主,请点击车主变更进行车主变更',
499
+ type: 'warning'
500
+ })
501
+ }
502
+ })
503
+ },
504
+ // 变更车主
505
+ changeMaster(){
506
+ const params = {
507
+ saveFrom: 0,
508
+ custVo: {
509
+ ...this.queryParams,
510
+ salesDate: undefined,
511
+ sapSyncTime: undefined,
512
+ },
513
+ relationList: [{
514
+ vinNo: this.custVo.frameNo,
515
+ finNo: this.custVo.vehicleNo,
516
+ plateNumber: this.custVo.plateNumber,
517
+ custName: this.queryParams.customerName,
518
+ custPhone: this.queryParams.contactPhoneNo,
519
+ relationType: 0,
520
+ scvId: this.queryParams.scvId,
521
+ state: 0,
522
+ }],
523
+ }
524
+ api.liApi.custVehcile.setCustVehicle(params, res => {
525
+ if (res && res.data.code === 'success') {
526
+ this.$message.success('操作成功')
527
+ this.$emit('changeMaster', this.queryParams)
528
+ }
529
+ if(res && res.data.code === 'carIsBind'){
530
+ const {custName, custPhone} = res.data.obj;
531
+ const {customerName, contactPhoneNo} = params.custVo;
532
+ let msg = `该车现车主为${custName}、手机号${custPhone},确定要更换为车主${customerName}、手机号${contactPhoneNo}?`;
533
+ this.$confirm(msg, '', {
534
+ confirmButtonText: '确定',
535
+ cancelButtonText: '取消',
536
+ type: 'warning'
537
+ }).then(() => {
538
+ params.force = true;
539
+ api.liApi.custVehcile.setCustVehicle(params, res => {
540
+ if (res && res.data.code === 'success') {
541
+ this.$message.success('操作成功')
542
+ this.$emit('changeMaster', this.queryParams)
543
+ }
544
+ })
545
+ })
546
+ }
547
+ })
548
+ },
549
+
550
+
551
+ /**
552
+ * @desc 取消
553
+ */
554
+ cancel() {
555
+ console.log('点击了cancel')
556
+ this.$emit('cancel')
557
+ // this.$parent.cancel()
558
+ },
559
+
560
+
561
+ /**
562
+ * @desc 客户类型修改
563
+ */
564
+ handleChange(item) {
565
+ if (!this.visbileFlag) return
566
+ this.companyFlag = item === 'customTypeGroupCus' ? true : false
567
+ this.$set(this.queryParams, 'customerIdTypeCode', '')
568
+ this.$set(this.queryParams, 'customerGender', '')
569
+ },
570
+
571
+ handleVisibleChange(val) {
572
+ this.visbileFlag = val
573
+ },
574
+
575
+ /**
576
+ * @desc 选择省 => 市
577
+ */
578
+ selectProvince(val) {
579
+ if (!val) return
580
+ const params = { levels: 2, fatherAreaCode: val }
581
+ this.querychinaarea(params)
582
+ },
583
+
584
+
585
+ /**
586
+ * @desc 选择市 => 区
587
+ */
588
+ selectCity(val) {
589
+ if (!val) return
590
+ const params = { levels: 3, fatherAreaCode: val }
591
+ this.querychinaarea(params)
592
+ },
593
+
594
+
595
+ /**
596
+ * @desc 省市区
597
+ */
598
+ querychinaarea(params) {
599
+ // console.log('test:>params', params)
600
+ // console.log('test:>this', this.queryParams)
601
+
602
+ api.chinaarea.querychinaarea(params, res => {
603
+ if (res && res.data.code == 'success') {
604
+
605
+ const list = res.data.obj || []
606
+ const target = list.map(({ areaName: label, areaCode: value }) => ({ label, value }))
607
+
608
+ if (params.levels == 1) {
609
+ this.provinceList = target
610
+ this.cityList = []
611
+ this.direectList = []
612
+ }
613
+
614
+ if (params.levels == 2) {
615
+ this.cityList = target
616
+ this.direectList = []
617
+ // this.queryParams.addressCityCode = ''
618
+ // this.queryParams.addressRegionCode = ''
619
+ this.queryParams = JSON.parse(JSON.stringify(this.queryParams))
620
+ }
621
+
622
+ if (params.levels == 3) {
623
+ this.direectList = target
624
+ // this.queryParams.addressRegionCode = ''
625
+ this.queryParams = JSON.parse(JSON.stringify(this.queryParams))
626
+ }
627
+ }
628
+ })
629
+ },
630
+
631
+
632
+ /**
633
+ * @desc 查询数字字典
634
+ */
635
+ queryRef(params, key, flag) {
636
+ api.ref.getDataDictionarys(params, res => {
637
+ if (res && res.data.code == 'success') {
638
+ const Vo = res.data.obj || {}
639
+ const list = Vo.referenceDetailInfos || []
640
+ this[key] = list.map(({ refDetailName: label, refDetailCode: value, refDetailRemark }) => ({ label, value, refDetailRemark }))
641
+ flag && (this[key] = [{label: '全部', value: ''}, ..._list])
642
+ // console.log(`test:>${key}`, this[key])
643
+ }
644
+ })
645
+ },
646
+
647
+ numberKeyup(e) {
648
+ e.target.value = e.target.value.replace(/[^\d]/g,'')
649
+ },
650
+
651
+ letPortrayalVisible() {
652
+ if(!this.queryParams.contactPhoneNo && !this.portrayalVisible) {
653
+ this.$message({
654
+ type: 'warning',
655
+ message: '请输入手机号'
656
+ })
657
+ return
658
+ }
659
+ this.saveScvId(this.queryParams.scvId)
660
+ this.savePhoneNo(this.queryParams.contactPhoneNo)
661
+ this.savePortrayalVisible(!this.portrayalVisible)
662
+ },
663
+ // 客户实名制校验
664
+ checkAuthCustomerInfo(type){
665
+ this.btnType = type
666
+ if (!this.queryParams.custType) return this.$message.warning('请选择客户类型')
667
+ if (!this.queryParams.contactPhoneNo) return this.$message.warning('请输入移动电话')
668
+ if (!this.queryParams.customerName) return this.$message.warning('请输入客户姓名')
669
+ if (!this.queryParams.customerGender) return this.$message.warning('请选择称谓')
670
+ if (!this.queryParams.customerCountryCode) return this.$message.warning('请选择国家/地区')
671
+ this.global.post(this.global.isdev + '/v1/ecep/customer/checkAuthCustomerInfo', {
672
+ certNo: this.queryParams.customerIdNo,
673
+ mobilePhone: this.queryParams.contactPhoneNo,
674
+ userName: this.queryParams.customerName,
675
+ }, (obj, res) => {
676
+ if(!res.data.obj) {
677
+ this.checkAuthCustomerInfoCancel()
678
+ } else {
679
+ this.custInfo = obj
680
+ this.$refs.EleDialog.visible = true
681
+ }
682
+ })
683
+ },
684
+ checkAuthCustomerInfoConfirm(){
685
+ this.queryParams.customerName = this.custInfo.userName
686
+ this.queryParams.customerIdNo = this.custInfo.certNo
687
+ this.checkAuthCustomerInfoCancel()
688
+ },
689
+ checkAuthCustomerInfoCancel(){
690
+ this.$refs.EleDialog.visible = false
691
+ this[this.btnType]()
692
+ }
693
+ }
694
+ }
695
+ </script>
696
+
697
+ <style lang="scss">
698
+ .LSH-Cust {
699
+ .el-select {
700
+ width: 100%;
701
+ }
702
+ .el-autocomplete {
703
+ width: 100%;
704
+ }
705
+ .portrayal-icon {
706
+ cursor: pointer;
707
+ z-index: 1;
708
+ img {
709
+ width: 24px;
710
+ height: 19px;
711
+ }
712
+ }
713
+ }
714
+
715
+ </style>