safecheck-client 3.0.39-81 → 3.0.39-83
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.
- package/.babelrc +5 -5
- package/.editorconfig +9 -9
- package/android.html +18 -18
- package/config/dev.env.js +6 -6
- package/config/index.js +38 -38
- package/config/prod.env.js +3 -3
- package/config/test.env.js +6 -6
- package/docs/AppBase.md +22 -22
- package/docs/Busy.md +14 -14
- package/docs/CriteriaPaged.md +47 -47
- package/docs/DataGrid.md +54 -54
- package/docs/DataModel.md +22 -22
- package/docs/Dynamic.md +42 -42
- package/docs/GetParams.md +11 -11
- package/docs/HttpBusy.md +13 -13
- package/docs/HttpStore.md +29 -29
- package/docs/MessageBox.md +28 -28
- package/docs/PagedList.md +29 -29
- package/docs/Pager.md +21 -21
- package/docs/Project.md +23 -23
- package/docs/Route.md +105 -105
- package/docs/SafetyCheck/AdjustPlan.md +13 -13
- package/docs/SafetyCheck/CheckerPlan.md +12 -12
- package/docs/Task.md +46 -46
- package/docs/TreeList.md +28 -28
- package/docs/TreeMixin.md +18 -18
- package/docs/all.md +10 -10
- package/docs/list.md +42 -42
- package/docs/partial.md +75 -75
- package/docs/selector.md +82 -82
- package/docs//345/274/200/345/217/221/346/226/207/346/241/243/Snippets.md +28 -28
- package/docs//345/274/200/345/217/221/346/226/207/346/241/243/vue-strap/345/217/230/346/233/264/350/256/260/345/275/225.md +7 -7
- package/docs//345/274/200/345/217/221/346/226/207/346/241/243/vue/345/217/230/346/233/264/350/256/260/345/275/225.md +13 -13
- package/docs//345/274/200/345/217/221/346/226/207/346/241/243//345/274/200/345/217/221/347/216/257/345/242/203/350/256/276/347/275/256.md +77 -77
- package/docs//347/225/214/351/235/242/345/210/266/344/275/234/350/247/204/350/214/203.md +54 -54
- package/examples/AddressList/App.vue +13 -13
- package/examples/AddressList/index.html +11 -11
- package/examples/DispatchList/App.vue +10 -10
- package/examples/DispatchList/BaseTree.vue +13 -13
- package/examples/DispatchList/Init.vue +22 -22
- package/examples/DispatchList/Test.vue +20 -20
- package/examples/DispatchList/index.html +11 -11
- package/examples/DispatchList/main.js +18 -18
- package/home.html +16 -16
- package/package.json +1 -1
- package/publish.bat +7 -7
- package/release.bat +5 -5
- package/src/App.vue +26 -31
- package/src/Widget.vue +13 -13
- package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
- package/src/android-bootstrap/less/.csscomb.json +304 -304
- package/src/android-bootstrap/less/.csslintrc +19 -19
- package/src/android-bootstrap/less/alerts.less +73 -73
- package/src/android-bootstrap/less/badges.less +66 -66
- package/src/android-bootstrap/less/bootstrap.less +56 -56
- package/src/android-bootstrap/less/breadcrumbs.less +26 -26
- package/src/android-bootstrap/less/button-groups.less +247 -247
- package/src/android-bootstrap/less/buttons.less +173 -173
- package/src/android-bootstrap/less/carousel.less +269 -269
- package/src/android-bootstrap/less/close.less +34 -34
- package/src/android-bootstrap/less/code.less +69 -69
- package/src/android-bootstrap/less/component-animations.less +33 -33
- package/src/android-bootstrap/less/grid.less +84 -84
- package/src/android-bootstrap/less/input-groups.less +167 -167
- package/src/android-bootstrap/less/jumbotron.less +52 -52
- package/src/android-bootstrap/less/labels.less +64 -64
- package/src/android-bootstrap/less/list-group.less +141 -141
- package/src/android-bootstrap/less/media.less +66 -66
- package/src/android-bootstrap/less/mixins/alerts.less +14 -14
- package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
- package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
- package/src/android-bootstrap/less/mixins/buttons.less +69 -69
- package/src/android-bootstrap/less/mixins/center-block.less +7 -7
- package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
- package/src/android-bootstrap/less/mixins/forms.less +90 -90
- package/src/android-bootstrap/less/mixins/gradients.less +59 -59
- package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
- package/src/android-bootstrap/less/mixins/grid.less +122 -122
- package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
- package/src/android-bootstrap/less/mixins/image.less +33 -33
- package/src/android-bootstrap/less/mixins/labels.less +12 -12
- package/src/android-bootstrap/less/mixins/list-group.less +30 -30
- package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
- package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
- package/src/android-bootstrap/less/mixins/opacity.less +8 -8
- package/src/android-bootstrap/less/mixins/pagination.less +24 -24
- package/src/android-bootstrap/less/mixins/panels.less +24 -24
- package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
- package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
- package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
- package/src/android-bootstrap/less/mixins/resize.less +6 -6
- package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
- package/src/android-bootstrap/less/mixins/size.less +10 -10
- package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
- package/src/android-bootstrap/less/mixins/table-row.less +44 -44
- package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
- package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
- package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
- package/src/android-bootstrap/less/mixins.less +40 -40
- package/src/android-bootstrap/less/modals.less +151 -151
- package/src/android-bootstrap/less/navbar.less +660 -660
- package/src/android-bootstrap/less/navs.less +290 -290
- package/src/android-bootstrap/less/normalize.less +424 -424
- package/src/android-bootstrap/less/pager.less +76 -76
- package/src/android-bootstrap/less/pagination.less +89 -89
- package/src/android-bootstrap/less/panels.less +274 -274
- package/src/android-bootstrap/less/popovers.less +131 -131
- package/src/android-bootstrap/less/print.less +101 -101
- package/src/android-bootstrap/less/progress-bars.less +87 -87
- package/src/android-bootstrap/less/responsive-embed.less +35 -35
- package/src/android-bootstrap/less/responsive-utilities.less +194 -194
- package/src/android-bootstrap/less/scaffolding.less +161 -161
- package/src/android-bootstrap/less/tables.less +262 -262
- package/src/android-bootstrap/less/theme.less +291 -291
- package/src/android-bootstrap/less/thumbnails.less +36 -36
- package/src/android-bootstrap/less/tooltip.less +102 -102
- package/src/android-bootstrap/less/type.less +303 -303
- package/src/android-bootstrap/less/utilities.less +55 -55
- package/src/android-bootstrap/less/variables.less +896 -896
- package/src/android-bootstrap/less/wells.less +29 -29
- package/src/bootstrap/less/.csscomb.json +304 -304
- package/src/bootstrap/less/.csslintrc +19 -19
- package/src/bootstrap/less/alerts.less +73 -73
- package/src/bootstrap/less/badges.less +66 -66
- package/src/bootstrap/less/breadcrumbs.less +26 -26
- package/src/bootstrap/less/button-groups.less +247 -247
- package/src/bootstrap/less/buttons.less +172 -172
- package/src/bootstrap/less/carousel.less +269 -269
- package/src/bootstrap/less/close.less +34 -34
- package/src/bootstrap/less/code.less +69 -69
- package/src/bootstrap/less/component-animations.less +33 -33
- package/src/bootstrap/less/dropdowns.less +216 -216
- package/src/bootstrap/less/grid.less +84 -84
- package/src/bootstrap/less/input-groups.less +167 -167
- package/src/bootstrap/less/jumbotron.less +52 -52
- package/src/bootstrap/less/labels.less +64 -64
- package/src/bootstrap/less/list-group.less +141 -141
- package/src/bootstrap/less/media.less +66 -66
- package/src/bootstrap/less/mixins/alerts.less +14 -14
- package/src/bootstrap/less/mixins/background-variant.less +9 -9
- package/src/bootstrap/less/mixins/border-radius.less +18 -18
- package/src/bootstrap/less/mixins/buttons.less +69 -69
- package/src/bootstrap/less/mixins/center-block.less +7 -7
- package/src/bootstrap/less/mixins/clearfix.less +22 -22
- package/src/bootstrap/less/mixins/forms.less +90 -90
- package/src/bootstrap/less/mixins/gradients.less +59 -59
- package/src/bootstrap/less/mixins/grid-framework.less +92 -92
- package/src/bootstrap/less/mixins/grid.less +122 -122
- package/src/bootstrap/less/mixins/hide-text.less +21 -21
- package/src/bootstrap/less/mixins/image.less +33 -33
- package/src/bootstrap/less/mixins/labels.less +12 -12
- package/src/bootstrap/less/mixins/list-group.less +30 -30
- package/src/bootstrap/less/mixins/nav-divider.less +10 -10
- package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
- package/src/bootstrap/less/mixins/opacity.less +8 -8
- package/src/bootstrap/less/mixins/pagination.less +24 -24
- package/src/bootstrap/less/mixins/panels.less +24 -24
- package/src/bootstrap/less/mixins/progress-bar.less +10 -10
- package/src/bootstrap/less/mixins/reset-filter.less +8 -8
- package/src/bootstrap/less/mixins/reset-text.less +18 -18
- package/src/bootstrap/less/mixins/resize.less +6 -6
- package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
- package/src/bootstrap/less/mixins/size.less +10 -10
- package/src/bootstrap/less/mixins/tab-focus.less +9 -9
- package/src/bootstrap/less/mixins/table-row.less +44 -44
- package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
- package/src/bootstrap/less/mixins/text-overflow.less +8 -8
- package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
- package/src/bootstrap/less/mixins.less +40 -40
- package/src/bootstrap/less/modals.less +151 -151
- package/src/bootstrap/less/navbar.less +660 -660
- package/src/bootstrap/less/normalize.less +424 -424
- package/src/bootstrap/less/pagination.less +89 -89
- package/src/bootstrap/less/panels.less +275 -275
- package/src/bootstrap/less/popovers.less +131 -131
- package/src/bootstrap/less/print.less +101 -101
- package/src/bootstrap/less/progress-bars.less +87 -87
- package/src/bootstrap/less/responsive-embed.less +35 -35
- package/src/bootstrap/less/responsive-utilities.less +194 -194
- package/src/bootstrap/less/scaffolding.less +161 -161
- package/src/bootstrap/less/theme.less +291 -291
- package/src/bootstrap/less/thumbnails.less +36 -36
- package/src/bootstrap/less/tooltip.less +102 -102
- package/src/bootstrap/less/type.less +303 -303
- package/src/bootstrap/less/utilities.less +55 -55
- package/src/bootstrap/less/wells.less +29 -29
- package/src/components/FileUpload.vue +696 -696
- package/src/components/Hello.vue +39 -39
- package/src/components/LeftTree.vue +27 -27
- package/src/components/android/AttendanceTally.vue +116 -116
- package/src/components/android/Blank.vue +10 -10
- package/src/components/android/CheckUnplanPage.vue +56 -56
- package/src/components/android/Checker.vue +12 -12
- package/src/components/android/CheckerAnnual.vue +81 -81
- package/src/components/android/CheckerAvarta.vue +82 -82
- package/src/components/android/EquipmentInspection.vue +348 -348
- package/src/components/android/FootprintMap.vue +120 -120
- package/src/components/android/HiddentroubleInvestigation.vue +192 -192
- package/src/components/android/MasterMain.vue +77 -77
- package/src/components/android/Menu.vue +132 -132
- package/src/components/android/PaperAlarm.vue +85 -85
- package/src/components/android/PaperDeviceNoncivil.vue +214 -214
- package/src/components/android/PlumberAnnual.vue +83 -83
- package/src/components/android/PlumberAnnualDetail.vue +65 -65
- package/src/components/android/PlumberMonthly.vue +84 -84
- package/src/components/android/PostMap.vue +83 -83
- package/src/components/android/QueryCheckHistory.vue +122 -122
- package/src/components/android/QueryCheckHistoryItem.vue +62 -62
- package/src/components/android/RepairMain.vue +60 -60
- package/src/components/android/Repairman.vue +12 -12
- package/src/components/android/StationMaster.vue +12 -12
- package/src/components/android/block/BlockUserDetails.vue +356 -0
- package/src/components/android/block/BlockUserManager.vue +226 -0
- package/src/components/android/rejectInspecCheck.vue +322 -322
- package/src/components/defects/DefectModal.vue +101 -101
- package/src/components/defects/DevicesAndItem.vue +39 -39
- package/src/components/issueplan/IssuePlanMain.vue +23 -23
- package/src/components/notice/NoticeForm.vue +100 -100
- package/src/components/notice/NoticeIssue.vue +20 -20
- package/src/components/paper/PicViewer.vue +18 -18
- package/src/components/pc/NewCheckpaperTemp.vue +1308 -1308
- package/src/components/pc/RoleSelector.vue +172 -172
- package/src/components/phonestate/MonthlyTraffic.vue +66 -66
- package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
- package/src/components/phonestate/PostMap.vue +82 -82
- package/src/components/querycheckpaper/PaperItem.vue +59 -59
- package/src/components/rongcheng/AddPlanItem.vue +344 -344
- package/src/components/rongcheng/CheckCurrentCreate.vue +1081 -1081
- package/src/components/rongcheng/PaperDefectMain.vue +828 -828
- package/src/components/userfile/MeterFile.vue +145 -145
- package/src/components/userfile/MeterModify.vue +46 -46
- package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
- package/src/filiale/BFshiye/android/AndroidDefectDeal.vue +652 -652
- package/src/filiale/BFshiye/pc/DefectListNew.vue +637 -637
- package/src/filiale/BFshiye/pc/checkUserList.vue +772 -772
- package/src/filiale/BFshiye/pc.js +17 -17
- package/src/filiale/baiyin/android/SafecheckUserInfo.vue +775 -775
- package/src/filiale/baiyin/android.js +12 -12
- package/src/filiale/dexin/android/SafecheckDevicesTemp.vue +1419 -1419
- package/src/filiale/dexin/android/SafecheckOrderVTemp.vue +4 -3
- package/src/filiale/dexin/pc/PaperList.vue +857 -840
- package/src/filiale/qingjian/android/PhoneUpUserinfo.vue +1357 -1357
- package/src/filiale/qingjian/android/SafecheckUserInfo.vue +823 -823
- package/src/filiale/qingjian/pc/NewCheckpaper.vue +1919 -1919
- package/src/filiale/rongchuang/android/PhoneUpUserinfo.vue +1262 -1262
- package/src/filiale/rongchuang/pc/checkPlanList.vue +398 -398
- package/src/filiale/rongchuang/pc.js +18 -18
- package/src/filiale/shanxian/pc/NewCheckpaper.vue +1526 -1526
- package/src/filiale/siyang/android/PhoneInsurancePurchaseDetail.vue +532 -532
- package/src/filiale/wensu/android/SafecheckOrderV.vue +2444 -2444
- package/src/filiale/wensu/android/SafecheckUserInfo.vue +712 -712
- package/src/filiale/wensu/pc/CheckSearchUser.vue +1251 -1251
- package/src/filiale/yangchunboneng/android/CurrentCreate.vue +1191 -1191
- package/src/filiale/yangchunboneng/android/SafecheckUserInfo.vue +913 -913
- package/src/filiale/yangchunboneng/android.js +21 -21
- package/src/filiale/yangchunboneng/pc/CheckBookList.vue +353 -353
- package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +1197 -1197
- package/src/filiale/yangchunboneng/pc/HiddenSituation.vue +171 -171
- package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +1112 -1112
- package/src/filiale/yangchunboneng/pc/PaperList.vue +757 -757
- package/src/filiale/yangchunboneng/pc/SelectCheckPlan.vue +331 -331
- package/src/filiale/yangchunboneng/pc.js +29 -29
- package/src/main.js +33 -33
- package/src/plugins/LoadData.js +10 -10
- package/src/plugins/LoadParams.js +24 -24
- package/src/rongcheng.js +319 -319
- package/src/safecheck-android.js +318 -316
- package/src/stores/wxconfig.js +10 -10
- package/src/utils/getNowDate.js +33 -33
- package/test/e2e/custom-assertions/elementCount.js +26 -26
- package/test/e2e/nightwatch.conf.js +40 -40
- package/test/e2e/runner.js +30 -30
- package/test/e2e/specs/test.js +13 -13
- package/test/unit/.eslintrc +5 -5
- package/test/unit/TestUtil.js +62 -62
- package/test/unit/context.html +20 -20
- package/test/unit/index.js +13 -13
- package/yarn-error.log +140 -0
|
@@ -1,532 +1,532 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="auto clearfix">
|
|
3
|
-
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
4
|
-
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
5
|
-
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
6
|
-
<span class="text-left font">客户编号</span>
|
|
7
|
-
</div>
|
|
8
|
-
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
9
|
-
<p class="text-left show-font">{{ model.f_userinfo_code }}</p>
|
|
10
|
-
</div>
|
|
11
|
-
</div>
|
|
12
|
-
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
13
|
-
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
14
|
-
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
15
|
-
<span class="text-left font">客户姓名</span>
|
|
16
|
-
</div>
|
|
17
|
-
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
18
|
-
<input type="text" class="form-control show-font" v-model="model.f_user_name" placeholder="请输入客户姓名">
|
|
19
|
-
</div>
|
|
20
|
-
</div>
|
|
21
|
-
<div class="row app-row col-xs-12 col-sm-12 col-md-12">
|
|
22
|
-
<div class="col-xs-4 col-sm-2 col-md-2">
|
|
23
|
-
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
24
|
-
<span class="text-left font">客户地址</span>
|
|
25
|
-
</div>
|
|
26
|
-
<div class="col-xs-8 col-sm-10 col-md-10">
|
|
27
|
-
<input type="text" class="form-control show-font" v-model="model.f_address" placeholder="请输入客户地址">
|
|
28
|
-
</div>
|
|
29
|
-
</div>
|
|
30
|
-
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
31
|
-
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
32
|
-
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
33
|
-
<span class="text-left font">客户电话</span>
|
|
34
|
-
</div>
|
|
35
|
-
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
36
|
-
<input type="number" class="form-control show-font" v-model="model.f_user_phone" placeholder="请输入电话号码">
|
|
37
|
-
</div>
|
|
38
|
-
</div>
|
|
39
|
-
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
40
|
-
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
41
|
-
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
42
|
-
<span class="text-left font">身份证号</span>
|
|
43
|
-
</div>
|
|
44
|
-
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
45
|
-
<input type="text" class="form-control show-font" v-model="model.f_idnumber" placeholder="请输入身份证号">
|
|
46
|
-
</div>
|
|
47
|
-
</div>
|
|
48
|
-
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
49
|
-
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
50
|
-
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
51
|
-
<span class="text-left font">保单号</span>
|
|
52
|
-
</div>
|
|
53
|
-
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
54
|
-
<input type="number" class="form-control show-font" v-model="model.f_ins_number" placeholder="请输入保单号">
|
|
55
|
-
</div>
|
|
56
|
-
</div>
|
|
57
|
-
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
58
|
-
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
59
|
-
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
60
|
-
<span class="text-left font">上期保费截至日期</span>
|
|
61
|
-
</div>
|
|
62
|
-
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
63
|
-
<p class="text-left show-font">{{ model.f_last_insexpiration_date }}</p>
|
|
64
|
-
</div>
|
|
65
|
-
</div>
|
|
66
|
-
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
67
|
-
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
68
|
-
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
69
|
-
<span class="text-left font">投保日期</span>
|
|
70
|
-
</div>
|
|
71
|
-
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
72
|
-
<datepicker :value.sync="model.f_ins_start_date" v-model="model.f_ins_start_date" :format="'yyyy-MM-dd'"
|
|
73
|
-
placeholder="请选择投保日期" style="width: 60%">
|
|
74
|
-
</datepicker>
|
|
75
|
-
</div>
|
|
76
|
-
</div>
|
|
77
|
-
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
78
|
-
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
79
|
-
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
80
|
-
<span class="text-left font">购买年限</span>
|
|
81
|
-
</div>
|
|
82
|
-
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
83
|
-
<input type="number" placeholder="购买年限" style="width: 60%" class="form-control show-font" v-model="model.f_salecount">
|
|
84
|
-
</div>
|
|
85
|
-
</div>
|
|
86
|
-
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
87
|
-
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
88
|
-
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
89
|
-
<span class="text-left font">购买日期</span>
|
|
90
|
-
</div>
|
|
91
|
-
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
92
|
-
<datepicker :value.sync="create_date" v-model="create_date" :format="'yyyy-MM-dd'"
|
|
93
|
-
placeholder="购买日期" style="width: 60%">
|
|
94
|
-
</datepicker>
|
|
95
|
-
</div>
|
|
96
|
-
</div>
|
|
97
|
-
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
98
|
-
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
99
|
-
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
100
|
-
<span class="text-left font">到期日期</span>
|
|
101
|
-
</div>
|
|
102
|
-
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
103
|
-
<datepicker :value.sync="model.f_expiration_date" v-model="model.f_expiration_date" :format="'yyyy-MM-dd'"
|
|
104
|
-
placeholder="到期日期" style="width: 60%">
|
|
105
|
-
</datepicker>
|
|
106
|
-
</div>
|
|
107
|
-
</div>
|
|
108
|
-
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
109
|
-
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
110
|
-
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
111
|
-
<span class="text-left font">金额</span>
|
|
112
|
-
</div>
|
|
113
|
-
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
114
|
-
<input type="number" class="form-control show-font" v-model="model.f_money" placeholder="请输入金额">
|
|
115
|
-
</div>
|
|
116
|
-
</div>
|
|
117
|
-
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
118
|
-
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
119
|
-
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
120
|
-
<span class="text-left font">保险险种</span>
|
|
121
|
-
</div>
|
|
122
|
-
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
123
|
-
<input-select
|
|
124
|
-
class="select select_list"
|
|
125
|
-
:value.sync="model.f_insurance_type"
|
|
126
|
-
v-model="model.f_insurance_type"
|
|
127
|
-
:options="insuranceTtype"
|
|
128
|
-
:valueSingle="true"
|
|
129
|
-
></input-select>
|
|
130
|
-
</div>
|
|
131
|
-
</div>
|
|
132
|
-
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
133
|
-
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
134
|
-
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
135
|
-
<span class="text-left font">售卖人员</span>
|
|
136
|
-
</div>
|
|
137
|
-
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
138
|
-
<input-select
|
|
139
|
-
class="select select_list"
|
|
140
|
-
:value.sync="model.f_sale_person"
|
|
141
|
-
v-model="model.f_sale_person"
|
|
142
|
-
:options="paymans"
|
|
143
|
-
:valueSingle="true"
|
|
144
|
-
></input-select>
|
|
145
|
-
</div>
|
|
146
|
-
</div>
|
|
147
|
-
<div class="row app-row col-xs-12">
|
|
148
|
-
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
149
|
-
<img src="../../../assets/add.png" style="width: 20px;" alt="">
|
|
150
|
-
<span class="text-left font">备注</span>
|
|
151
|
-
</div>
|
|
152
|
-
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
153
|
-
<input class="form-control show-font" v-model="model.f_comments" placeholder="备注">
|
|
154
|
-
</div>
|
|
155
|
-
</div>
|
|
156
|
-
<div class="col-xs-12 text-center app-row">
|
|
157
|
-
<button type="button" class="btn btn-lg btn-font btn-color" style="width: 22%;" @click="commitBefore()">确认</button>
|
|
158
|
-
</div>
|
|
159
|
-
<modal v-if="showmOrder" :show.sync="showmOrder" v-ref:modal :large="true"
|
|
160
|
-
:backdrop="false" title="保险收费">
|
|
161
|
-
<header slot="modal-header" class="modal-header">
|
|
162
|
-
<button type="button" class="close" @click="closeModel"><span>×</span></button>
|
|
163
|
-
<h4 class="modal-title">保险收费</h4>
|
|
164
|
-
</header>
|
|
165
|
-
<article slot="modal-body" class="modal-body clearfix">
|
|
166
|
-
<div class="form-group col-sm-12 panel panel-info">
|
|
167
|
-
<div class="form-group col-sm-6">
|
|
168
|
-
<label class="col-sm-4 control-label">收款方式:</label>
|
|
169
|
-
<div class="col-sm-8">
|
|
170
|
-
<input-select
|
|
171
|
-
class="select select_list"
|
|
172
|
-
:value.sync="model.f_payment"
|
|
173
|
-
v-model="model.f_payment"
|
|
174
|
-
:options="payTypes"
|
|
175
|
-
:valueSingle="true"></input-select>
|
|
176
|
-
</div>
|
|
177
|
-
</div>
|
|
178
|
-
</div>
|
|
179
|
-
<div v-if="zfCode" style="margin-top: 20px; text-align: center;">
|
|
180
|
-
<div id="qrcode" style="margin-top: 25px;width: 266px;height: 266px"></div>
|
|
181
|
-
</div>
|
|
182
|
-
</article>
|
|
183
|
-
<footer slot="modal-footer" class="modal-footer">
|
|
184
|
-
<button type="button" class="btn btn-primary" :disabled="isSubmitting" @click="commitCharge()">
|
|
185
|
-
{{ isSubmitting ? '确认中...' : '确认' }}
|
|
186
|
-
</button>
|
|
187
|
-
</footer>
|
|
188
|
-
</modal>
|
|
189
|
-
</div>
|
|
190
|
-
</template>
|
|
191
|
-
<script>
|
|
192
|
-
import { HttpResetClass } from 'vue-client'
|
|
193
|
-
import * as Util from '../../../components/Util'
|
|
194
|
-
import Vue from 'vue'
|
|
195
|
-
import QRCode from 'qrcodejs2'
|
|
196
|
-
export default {
|
|
197
|
-
title: '手机单户抄表',
|
|
198
|
-
data() {
|
|
199
|
-
return {
|
|
200
|
-
paymanshow:this.$appdata.getSingleValue('app增值收费售卖人员'),
|
|
201
|
-
paymans:[],
|
|
202
|
-
orderinfo:{},
|
|
203
|
-
f_user_type:'',
|
|
204
|
-
insuranceTtype:[],
|
|
205
|
-
payTypes: this.$appdata.getParam('移动端支付方式'),
|
|
206
|
-
create_date:Util.getNowDate(),
|
|
207
|
-
isCommit:false,
|
|
208
|
-
order: {}, // 订单信息
|
|
209
|
-
f_out_trade_no: '',
|
|
210
|
-
showmOrder:false,
|
|
211
|
-
zfCode:false,
|
|
212
|
-
isSubmitting: false, // 添加防重复提交标志
|
|
213
|
-
isSaveing:false, // 添加防重复提交标志
|
|
214
|
-
isCheckingOrder: false,
|
|
215
|
-
}
|
|
216
|
-
},
|
|
217
|
-
props: {
|
|
218
|
-
data: {
|
|
219
|
-
type: Object,
|
|
220
|
-
default: function () {
|
|
221
|
-
return {
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
},
|
|
225
|
-
model: {
|
|
226
|
-
type: Object,
|
|
227
|
-
default: {}
|
|
228
|
-
}
|
|
229
|
-
},
|
|
230
|
-
ready() {
|
|
231
|
-
new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {
|
|
232
|
-
data: {
|
|
233
|
-
items: 'tu.*',
|
|
234
|
-
tablename: 't_userinfo ui left join t_userfees tu on tu.f_userinfo_id=ui.f_userinfo_id and tu.f_state = \'有效\' ',
|
|
235
|
-
condition: `ui.f_userinfo_id = '${this.model.f_userinfo_id}'`,
|
|
236
|
-
orderitem: '1'
|
|
237
|
-
}
|
|
238
|
-
}).then(response => {
|
|
239
|
-
if (response.data.length > 0) {
|
|
240
|
-
this.model.f_last_insexpiration_date = response.data[0].f_expiration_date
|
|
241
|
-
}
|
|
242
|
-
})
|
|
243
|
-
Vue.set(this.model, 'f_money', 0)
|
|
244
|
-
Vue.set(this.model, 'f_fee_type', '')
|
|
245
|
-
Vue.set(this.model, 'f_comments', '')
|
|
246
|
-
Vue.set(this.model, 'f_salecount', 1)
|
|
247
|
-
Vue.set(this.model, 'f_ins_number', '')
|
|
248
|
-
Vue.set(this.model, 'f_idnumber', '')
|
|
249
|
-
Vue.set(this.model, 'f_ins_start_date', Util.toStandardDateString())
|
|
250
|
-
Vue.set(this.model, 'f_expiration_date', '')
|
|
251
|
-
Vue.set(this.model, 'f_payment', 'app二维码收款')
|
|
252
|
-
Vue.set(this.model, 'f_sale_person', Vue.user.name)
|
|
253
|
-
this.getType()
|
|
254
|
-
this.getEmp()
|
|
255
|
-
},
|
|
256
|
-
methods: {
|
|
257
|
-
getEmp () {
|
|
258
|
-
let val = {source: 'this.getParentByType($organization$).getChildByName($销售人$).getUsers()',
|
|
259
|
-
userid: `${Vue.user.id}`}
|
|
260
|
-
let http = new HttpResetClass()
|
|
261
|
-
http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/search`, {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
|
|
262
|
-
res.data.forEach((item) => {
|
|
263
|
-
this.paymans.push({label: item.name, value: item.name})
|
|
264
|
-
})
|
|
265
|
-
})
|
|
266
|
-
},
|
|
267
|
-
//获取保险类型
|
|
268
|
-
async getType() {
|
|
269
|
-
let data = {
|
|
270
|
-
tablename: 't_userfiles',
|
|
271
|
-
condition: `f_userinfo_id = '${this.model.f_userinfo_id}'`
|
|
272
|
-
}
|
|
273
|
-
let res = await new HttpResetClass().load('post', this.$androidUtil.getProxyUrl() + '/rs/sql/tel_singleTable', {data: data}, {
|
|
274
|
-
resolveMsg: null,
|
|
275
|
-
rejectMsg: '获取数据失败'
|
|
276
|
-
})
|
|
277
|
-
let str = res.data[0].f_gasproperties
|
|
278
|
-
if (str === '居民用气') {
|
|
279
|
-
this.insuranceTtype = this.$appdata.getParam('居民燃气意外险')
|
|
280
|
-
}else {
|
|
281
|
-
this.insuranceTtype = this.$appdata.getParam('非居民燃气意外险')
|
|
282
|
-
}
|
|
283
|
-
},
|
|
284
|
-
closeModel(){
|
|
285
|
-
this.showmOrder = false
|
|
286
|
-
this.isSubmitting = false
|
|
287
|
-
if (this.orderInterval) {
|
|
288
|
-
clearTimeout(this.orderInterval)
|
|
289
|
-
this.orderInterval = null
|
|
290
|
-
}
|
|
291
|
-
},
|
|
292
|
-
commitBefore(){
|
|
293
|
-
if (!this.model.f_money) {
|
|
294
|
-
this.$showMessage('金额未填写,请填写后重新尝试。')
|
|
295
|
-
return
|
|
296
|
-
}else {
|
|
297
|
-
//转为数字类型
|
|
298
|
-
this.model.f_money = Number(this.model.f_money)
|
|
299
|
-
}
|
|
300
|
-
if (this.paymanshow && !this.model.f_sale_person) {
|
|
301
|
-
return this.$showMessage(`请选择售卖人员!`)
|
|
302
|
-
}
|
|
303
|
-
if (!this.model.f_ins_start_date) {
|
|
304
|
-
this.$showMessage('投保日期未选择,请选择后重新尝试。')
|
|
305
|
-
return
|
|
306
|
-
}
|
|
307
|
-
if (!this.model.f_expiration_date) {
|
|
308
|
-
this.$showMessage('到期日期未选择,请选择后重新尝试。')
|
|
309
|
-
return
|
|
310
|
-
}
|
|
311
|
-
if (!this.model.f_insurance_type) {
|
|
312
|
-
this.$showMessage('保险险种未填写,请填写后重新尝试。')
|
|
313
|
-
return
|
|
314
|
-
}
|
|
315
|
-
this.showmOrder = true
|
|
316
|
-
},
|
|
317
|
-
async commitCharge() {
|
|
318
|
-
// 防止重复提交
|
|
319
|
-
if (this.isSubmitting) {
|
|
320
|
-
return
|
|
321
|
-
}
|
|
322
|
-
if(this.model.f_payment ==''){
|
|
323
|
-
this.$showMessage('请选择支付方式。')
|
|
324
|
-
return
|
|
325
|
-
}
|
|
326
|
-
this.isSubmitting = true // 设置提交状态
|
|
327
|
-
try {
|
|
328
|
-
if (this.model.f_payment.includes('二维码')) {
|
|
329
|
-
await this.openQrcode()
|
|
330
|
-
} else {
|
|
331
|
-
await this.commit()
|
|
332
|
-
this.isSubmitting = false // 非二维码支付时在这里重置
|
|
333
|
-
}
|
|
334
|
-
} catch (error) {
|
|
335
|
-
console.error('提交失败:', error)
|
|
336
|
-
this.$showMessage('提交失败')
|
|
337
|
-
this.isSubmitting = false // 重置提交状态
|
|
338
|
-
}
|
|
339
|
-
},
|
|
340
|
-
async getOrderInformation() {
|
|
341
|
-
console.log('查询订单信息!!!')
|
|
342
|
-
// 添加标志位,防止重复执行
|
|
343
|
-
if (this.isCheckingOrder) {
|
|
344
|
-
return;
|
|
345
|
-
}
|
|
346
|
-
try {
|
|
347
|
-
this.isCheckingOrder = true;
|
|
348
|
-
let http = new HttpResetClass()
|
|
349
|
-
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/wx/rs/pay/microPayOrderStatus`, {
|
|
350
|
-
"filiale": "siyang",
|
|
351
|
-
"flag": "microPayRongHaoJsbc",
|
|
352
|
-
"f_out_trade_no": `${this.f_out_trade_no}`,
|
|
353
|
-
"posid": this.$androidUtil.getDeviceIEMI()
|
|
354
|
-
}, {
|
|
355
|
-
resolveMsg: null,
|
|
356
|
-
rejectMsg: '订单查询失败!!!'
|
|
357
|
-
})
|
|
358
|
-
// 支付成功
|
|
359
|
-
if (res.data.trade_state.includes('已支付')) {
|
|
360
|
-
this.orderinfo = res.data
|
|
361
|
-
clearTimeout(this.orderInterval)
|
|
362
|
-
this.$showMessage('支付成功!!!')
|
|
363
|
-
await this.commit()
|
|
364
|
-
this.clearQrCode()
|
|
365
|
-
this.closeModel()
|
|
366
|
-
} else if (res.data.trade_state.includes("已退款")) {
|
|
367
|
-
this.$showMessage("已退款,请重新下单支付!!!");
|
|
368
|
-
this.clearQrCode();
|
|
369
|
-
this.closeModel()
|
|
370
|
-
if (this.orderInterval) {
|
|
371
|
-
clearTimeout(this.orderInterval);
|
|
372
|
-
this.orderInterval = null
|
|
373
|
-
}
|
|
374
|
-
}else{
|
|
375
|
-
this.isCheckingOrder = false
|
|
376
|
-
//重新查询订单状态
|
|
377
|
-
this.orderInterval = setTimeout(() => {
|
|
378
|
-
this.getOrderInformation()
|
|
379
|
-
}, 3000)
|
|
380
|
-
}
|
|
381
|
-
} catch (error) {
|
|
382
|
-
console.error("查询订单状态失败:", error);
|
|
383
|
-
if (this.orderInterval) {
|
|
384
|
-
clearTimeout(this.orderInterval);
|
|
385
|
-
this.orderInterval = null
|
|
386
|
-
}
|
|
387
|
-
this.isCheckingOrder = false; // 发生错误时重置标志位
|
|
388
|
-
} finally {
|
|
389
|
-
// 确保在非轮询状态下重置标志位
|
|
390
|
-
if (!this.orderInterval) {
|
|
391
|
-
this.isCheckingOrder = false;
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
},
|
|
395
|
-
async openQrcode() {
|
|
396
|
-
this.clearQrCode()
|
|
397
|
-
let data = {
|
|
398
|
-
tablename: 't_userfiles',
|
|
399
|
-
condition: `f_userinfo_id = '${this.model.f_userinfo_id}'`
|
|
400
|
-
}
|
|
401
|
-
let res = await new HttpResetClass().load('post', this.$androidUtil.getProxyUrl() + '/rs/sql/tel_singleTable', {data: data}, {
|
|
402
|
-
resolveMsg: null,
|
|
403
|
-
rejectMsg: '获取数据失败'
|
|
404
|
-
})
|
|
405
|
-
let reqdata = {
|
|
406
|
-
"filiale": "siyang",
|
|
407
|
-
"flag": "microPayRongHaoJsbc",
|
|
408
|
-
"money": this.model.f_money,
|
|
409
|
-
"proinfo": "保险收费",
|
|
410
|
-
"f_userinfo_id": this.model.f_userinfo_id,
|
|
411
|
-
"f_userfiles_id": res.data[0].f_userfiles_id,
|
|
412
|
-
"f_user_id": res.data[0].f_user_id,
|
|
413
|
-
"posid": this.$androidUtil.getDeviceIEMI()
|
|
414
|
-
}
|
|
415
|
-
new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/wx/rs/pay/jsApiPay`, reqdata).then(res => {
|
|
416
|
-
if (res.data.result_code.includes('SUCCESS')) {
|
|
417
|
-
this.order = res.data
|
|
418
|
-
this.f_out_trade_no = res.data.f_out_trade_no
|
|
419
|
-
this.zfCode = true
|
|
420
|
-
this.$nextTick(() => {
|
|
421
|
-
this.qrcode(res.data.qr_code)
|
|
422
|
-
})
|
|
423
|
-
this.getOrderInformation()
|
|
424
|
-
} else {
|
|
425
|
-
this.$showMessage('网络异常。。。')
|
|
426
|
-
}
|
|
427
|
-
})
|
|
428
|
-
},
|
|
429
|
-
qrcode(url) {
|
|
430
|
-
new QRCode('qrcode', {
|
|
431
|
-
text: url, // 设置二维码内容或跳转地址
|
|
432
|
-
width: 266, // 设置宽度,单位像素
|
|
433
|
-
height: 266, // 设置高度,单位像素
|
|
434
|
-
correctLevel: QRCode.CorrectLevel.L //容错率,L/M/Hs
|
|
435
|
-
})
|
|
436
|
-
},
|
|
437
|
-
clearQrCode() {
|
|
438
|
-
if (document.getElementById('qrcode')) {
|
|
439
|
-
document.getElementById('qrcode').innerHTML = ''
|
|
440
|
-
}
|
|
441
|
-
},
|
|
442
|
-
async commit() {
|
|
443
|
-
try {
|
|
444
|
-
let commit_data = this.model
|
|
445
|
-
commit_data.f_sale_person = this.model.f_sale_person ? this.model.f_sale_person :Vue.user.name
|
|
446
|
-
commit_data.f_buy_date = this.create_date
|
|
447
|
-
commit_data.f_total_ins_charge = 0
|
|
448
|
-
commit_data.f_operatorid = Vue.user.id
|
|
449
|
-
commit_data.f_operator = Vue.user.name
|
|
450
|
-
commit_data.f_operate_date = Util.toStandardTimeString()
|
|
451
|
-
commit_data.f_state = '有效'
|
|
452
|
-
commit_data.f_orgid = Vue.user.orgid
|
|
453
|
-
commit_data.f_orgname = Vue.user.orgs
|
|
454
|
-
commit_data.f_depid = Vue.user.depids
|
|
455
|
-
commit_data.f_depname = Vue.user.deps
|
|
456
|
-
commit_data.f_serial_id = this.orderinfo.f_out_trade_no
|
|
457
|
-
commit_data.order=this.order
|
|
458
|
-
|
|
459
|
-
const response = await new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/api/af-revenue/logic/saveInsInfo`, { data: commit_data })
|
|
460
|
-
this.$showMessage('提交成功')
|
|
461
|
-
this.orderinfo = {}
|
|
462
|
-
this.showmOrder = false
|
|
463
|
-
} catch (error) {
|
|
464
|
-
console.error('提交失败:', error)
|
|
465
|
-
this.$showMessage('提交失败')
|
|
466
|
-
this.showmOrder = false
|
|
467
|
-
}
|
|
468
|
-
},
|
|
469
|
-
},
|
|
470
|
-
watch: {
|
|
471
|
-
'model.f_ins_start_date'(new_var) {
|
|
472
|
-
if (new_var && this.model.f_salecount) {
|
|
473
|
-
this.model.f_expiration_date = Number(new_var.substring(0, 4)) + Number(this.model.f_salecount) + new_var.substring(4)
|
|
474
|
-
}
|
|
475
|
-
},
|
|
476
|
-
'model.f_salecount'(new_var) {
|
|
477
|
-
if(!this.model.f_ins_start_date){
|
|
478
|
-
this.model.f_ins_start_date = Util.toStandardDateString()
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
if (this.model.f_ins_start_date && new_var) {
|
|
482
|
-
this.model.f_expiration_date = Number(this.model.f_ins_start_date.substring(0, 4)) + Number(new_var) + this.model.f_ins_start_date.substring(4)
|
|
483
|
-
}
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
</script>
|
|
488
|
-
<style scoped>
|
|
489
|
-
.mt-5 {
|
|
490
|
-
margin-top: 5px;
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
.mt-10 {
|
|
494
|
-
margin-top: 10px;
|
|
495
|
-
}
|
|
496
|
-
|
|
497
|
-
.mt-20 {
|
|
498
|
-
margin-top: 20px;
|
|
499
|
-
}
|
|
500
|
-
|
|
501
|
-
.app-row {
|
|
502
|
-
background-color: white;
|
|
503
|
-
padding: 10px 10px 0 10px;
|
|
504
|
-
border-bottom: 1px solid rgba(235, 235, 235, 0.5);
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
.app-row-none-border {
|
|
508
|
-
background-color: white;
|
|
509
|
-
padding: 10px 10px 0 10px;
|
|
510
|
-
}
|
|
511
|
-
|
|
512
|
-
.font {
|
|
513
|
-
font: 15px PingFang-SC-Medium;
|
|
514
|
-
color: #666666;
|
|
515
|
-
}
|
|
516
|
-
|
|
517
|
-
.show-font {
|
|
518
|
-
font: 15px PingFang-SC-Medium;
|
|
519
|
-
color: #333333
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
.btn-font {
|
|
523
|
-
font: 600 16px PingFang-SC-Bold;
|
|
524
|
-
color: #499EDF;
|
|
525
|
-
}
|
|
526
|
-
|
|
527
|
-
.btn-color {
|
|
528
|
-
background-color: #FFFFFF;
|
|
529
|
-
border-radius: 10px;
|
|
530
|
-
border: 1px solid #499EDF;
|
|
531
|
-
}
|
|
532
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="auto clearfix">
|
|
3
|
+
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
4
|
+
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
5
|
+
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
6
|
+
<span class="text-left font">客户编号</span>
|
|
7
|
+
</div>
|
|
8
|
+
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
9
|
+
<p class="text-left show-font">{{ model.f_userinfo_code }}</p>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
13
|
+
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
14
|
+
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
15
|
+
<span class="text-left font">客户姓名</span>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
18
|
+
<input type="text" class="form-control show-font" v-model="model.f_user_name" placeholder="请输入客户姓名">
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="row app-row col-xs-12 col-sm-12 col-md-12">
|
|
22
|
+
<div class="col-xs-4 col-sm-2 col-md-2">
|
|
23
|
+
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
24
|
+
<span class="text-left font">客户地址</span>
|
|
25
|
+
</div>
|
|
26
|
+
<div class="col-xs-8 col-sm-10 col-md-10">
|
|
27
|
+
<input type="text" class="form-control show-font" v-model="model.f_address" placeholder="请输入客户地址">
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
31
|
+
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
32
|
+
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
33
|
+
<span class="text-left font">客户电话</span>
|
|
34
|
+
</div>
|
|
35
|
+
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
36
|
+
<input type="number" class="form-control show-font" v-model="model.f_user_phone" placeholder="请输入电话号码">
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
40
|
+
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
41
|
+
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
42
|
+
<span class="text-left font">身份证号</span>
|
|
43
|
+
</div>
|
|
44
|
+
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
45
|
+
<input type="text" class="form-control show-font" v-model="model.f_idnumber" placeholder="请输入身份证号">
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
49
|
+
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
50
|
+
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
51
|
+
<span class="text-left font">保单号</span>
|
|
52
|
+
</div>
|
|
53
|
+
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
54
|
+
<input type="number" class="form-control show-font" v-model="model.f_ins_number" placeholder="请输入保单号">
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
58
|
+
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
59
|
+
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
60
|
+
<span class="text-left font">上期保费截至日期</span>
|
|
61
|
+
</div>
|
|
62
|
+
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
63
|
+
<p class="text-left show-font">{{ model.f_last_insexpiration_date }}</p>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
67
|
+
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
68
|
+
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
69
|
+
<span class="text-left font">投保日期</span>
|
|
70
|
+
</div>
|
|
71
|
+
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
72
|
+
<datepicker :value.sync="model.f_ins_start_date" v-model="model.f_ins_start_date" :format="'yyyy-MM-dd'"
|
|
73
|
+
placeholder="请选择投保日期" style="width: 60%">
|
|
74
|
+
</datepicker>
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
78
|
+
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
79
|
+
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
80
|
+
<span class="text-left font">购买年限</span>
|
|
81
|
+
</div>
|
|
82
|
+
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
83
|
+
<input type="number" placeholder="购买年限" style="width: 60%" class="form-control show-font" v-model="model.f_salecount">
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
87
|
+
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
88
|
+
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
89
|
+
<span class="text-left font">购买日期</span>
|
|
90
|
+
</div>
|
|
91
|
+
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
92
|
+
<datepicker :value.sync="create_date" v-model="create_date" :format="'yyyy-MM-dd'"
|
|
93
|
+
placeholder="购买日期" style="width: 60%">
|
|
94
|
+
</datepicker>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
98
|
+
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
99
|
+
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
100
|
+
<span class="text-left font">到期日期</span>
|
|
101
|
+
</div>
|
|
102
|
+
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
103
|
+
<datepicker :value.sync="model.f_expiration_date" v-model="model.f_expiration_date" :format="'yyyy-MM-dd'"
|
|
104
|
+
placeholder="到期日期" style="width: 60%">
|
|
105
|
+
</datepicker>
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
109
|
+
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
110
|
+
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
111
|
+
<span class="text-left font">金额</span>
|
|
112
|
+
</div>
|
|
113
|
+
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
114
|
+
<input type="number" class="form-control show-font" v-model="model.f_money" placeholder="请输入金额">
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
118
|
+
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
119
|
+
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
120
|
+
<span class="text-left font">保险险种</span>
|
|
121
|
+
</div>
|
|
122
|
+
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
123
|
+
<input-select
|
|
124
|
+
class="select select_list"
|
|
125
|
+
:value.sync="model.f_insurance_type"
|
|
126
|
+
v-model="model.f_insurance_type"
|
|
127
|
+
:options="insuranceTtype"
|
|
128
|
+
:valueSingle="true"
|
|
129
|
+
></input-select>
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
<div class="row app-row col-xs-12 col-sm-6 col-md-6">
|
|
133
|
+
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
134
|
+
<img src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
135
|
+
<span class="text-left font">售卖人员</span>
|
|
136
|
+
</div>
|
|
137
|
+
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
138
|
+
<input-select
|
|
139
|
+
class="select select_list"
|
|
140
|
+
:value.sync="model.f_sale_person"
|
|
141
|
+
v-model="model.f_sale_person"
|
|
142
|
+
:options="paymans"
|
|
143
|
+
:valueSingle="true"
|
|
144
|
+
></input-select>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
<div class="row app-row col-xs-12">
|
|
148
|
+
<div class="col-xs-4 col-sm-4 col-md-4">
|
|
149
|
+
<img src="../../../assets/add.png" style="width: 20px;" alt="">
|
|
150
|
+
<span class="text-left font">备注</span>
|
|
151
|
+
</div>
|
|
152
|
+
<div class="col-xs-8 col-sm-8 col-md-8">
|
|
153
|
+
<input class="form-control show-font" v-model="model.f_comments" placeholder="备注">
|
|
154
|
+
</div>
|
|
155
|
+
</div>
|
|
156
|
+
<div class="col-xs-12 text-center app-row">
|
|
157
|
+
<button type="button" class="btn btn-lg btn-font btn-color" style="width: 22%;" @click="commitBefore()">确认</button>
|
|
158
|
+
</div>
|
|
159
|
+
<modal v-if="showmOrder" :show.sync="showmOrder" v-ref:modal :large="true"
|
|
160
|
+
:backdrop="false" title="保险收费">
|
|
161
|
+
<header slot="modal-header" class="modal-header">
|
|
162
|
+
<button type="button" class="close" @click="closeModel"><span>×</span></button>
|
|
163
|
+
<h4 class="modal-title">保险收费</h4>
|
|
164
|
+
</header>
|
|
165
|
+
<article slot="modal-body" class="modal-body clearfix">
|
|
166
|
+
<div class="form-group col-sm-12 panel panel-info">
|
|
167
|
+
<div class="form-group col-sm-6">
|
|
168
|
+
<label class="col-sm-4 control-label">收款方式:</label>
|
|
169
|
+
<div class="col-sm-8">
|
|
170
|
+
<input-select
|
|
171
|
+
class="select select_list"
|
|
172
|
+
:value.sync="model.f_payment"
|
|
173
|
+
v-model="model.f_payment"
|
|
174
|
+
:options="payTypes"
|
|
175
|
+
:valueSingle="true"></input-select>
|
|
176
|
+
</div>
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
179
|
+
<div v-if="zfCode" style="margin-top: 20px; text-align: center;">
|
|
180
|
+
<div id="qrcode" style="margin-top: 25px;width: 266px;height: 266px"></div>
|
|
181
|
+
</div>
|
|
182
|
+
</article>
|
|
183
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
184
|
+
<button type="button" class="btn btn-primary" :disabled="isSubmitting" @click="commitCharge()">
|
|
185
|
+
{{ isSubmitting ? '确认中...' : '确认' }}
|
|
186
|
+
</button>
|
|
187
|
+
</footer>
|
|
188
|
+
</modal>
|
|
189
|
+
</div>
|
|
190
|
+
</template>
|
|
191
|
+
<script>
|
|
192
|
+
import { HttpResetClass } from 'vue-client'
|
|
193
|
+
import * as Util from '../../../components/Util'
|
|
194
|
+
import Vue from 'vue'
|
|
195
|
+
import QRCode from 'qrcodejs2'
|
|
196
|
+
export default {
|
|
197
|
+
title: '手机单户抄表',
|
|
198
|
+
data() {
|
|
199
|
+
return {
|
|
200
|
+
paymanshow:this.$appdata.getSingleValue('app增值收费售卖人员'),
|
|
201
|
+
paymans:[],
|
|
202
|
+
orderinfo:{},
|
|
203
|
+
f_user_type:'',
|
|
204
|
+
insuranceTtype:[],
|
|
205
|
+
payTypes: this.$appdata.getParam('移动端支付方式'),
|
|
206
|
+
create_date:Util.getNowDate(),
|
|
207
|
+
isCommit:false,
|
|
208
|
+
order: {}, // 订单信息
|
|
209
|
+
f_out_trade_no: '',
|
|
210
|
+
showmOrder:false,
|
|
211
|
+
zfCode:false,
|
|
212
|
+
isSubmitting: false, // 添加防重复提交标志
|
|
213
|
+
isSaveing:false, // 添加防重复提交标志
|
|
214
|
+
isCheckingOrder: false,
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
props: {
|
|
218
|
+
data: {
|
|
219
|
+
type: Object,
|
|
220
|
+
default: function () {
|
|
221
|
+
return {
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
model: {
|
|
226
|
+
type: Object,
|
|
227
|
+
default: {}
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
ready() {
|
|
231
|
+
new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {
|
|
232
|
+
data: {
|
|
233
|
+
items: 'tu.*',
|
|
234
|
+
tablename: 't_userinfo ui left join t_userfees tu on tu.f_userinfo_id=ui.f_userinfo_id and tu.f_state = \'有效\' ',
|
|
235
|
+
condition: `ui.f_userinfo_id = '${this.model.f_userinfo_id}'`,
|
|
236
|
+
orderitem: '1'
|
|
237
|
+
}
|
|
238
|
+
}).then(response => {
|
|
239
|
+
if (response.data.length > 0) {
|
|
240
|
+
this.model.f_last_insexpiration_date = response.data[0].f_expiration_date
|
|
241
|
+
}
|
|
242
|
+
})
|
|
243
|
+
Vue.set(this.model, 'f_money', 0)
|
|
244
|
+
Vue.set(this.model, 'f_fee_type', '')
|
|
245
|
+
Vue.set(this.model, 'f_comments', '')
|
|
246
|
+
Vue.set(this.model, 'f_salecount', 1)
|
|
247
|
+
Vue.set(this.model, 'f_ins_number', '')
|
|
248
|
+
Vue.set(this.model, 'f_idnumber', '')
|
|
249
|
+
Vue.set(this.model, 'f_ins_start_date', Util.toStandardDateString())
|
|
250
|
+
Vue.set(this.model, 'f_expiration_date', '')
|
|
251
|
+
Vue.set(this.model, 'f_payment', 'app二维码收款')
|
|
252
|
+
Vue.set(this.model, 'f_sale_person', Vue.user.name)
|
|
253
|
+
this.getType()
|
|
254
|
+
this.getEmp()
|
|
255
|
+
},
|
|
256
|
+
methods: {
|
|
257
|
+
getEmp () {
|
|
258
|
+
let val = {source: 'this.getParentByType($organization$).getChildByName($销售人$).getUsers()',
|
|
259
|
+
userid: `${Vue.user.id}`}
|
|
260
|
+
let http = new HttpResetClass()
|
|
261
|
+
http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/search`, {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
|
|
262
|
+
res.data.forEach((item) => {
|
|
263
|
+
this.paymans.push({label: item.name, value: item.name})
|
|
264
|
+
})
|
|
265
|
+
})
|
|
266
|
+
},
|
|
267
|
+
//获取保险类型
|
|
268
|
+
async getType() {
|
|
269
|
+
let data = {
|
|
270
|
+
tablename: 't_userfiles',
|
|
271
|
+
condition: `f_userinfo_id = '${this.model.f_userinfo_id}'`
|
|
272
|
+
}
|
|
273
|
+
let res = await new HttpResetClass().load('post', this.$androidUtil.getProxyUrl() + '/rs/sql/tel_singleTable', {data: data}, {
|
|
274
|
+
resolveMsg: null,
|
|
275
|
+
rejectMsg: '获取数据失败'
|
|
276
|
+
})
|
|
277
|
+
let str = res.data[0].f_gasproperties
|
|
278
|
+
if (str === '居民用气') {
|
|
279
|
+
this.insuranceTtype = this.$appdata.getParam('居民燃气意外险')
|
|
280
|
+
}else {
|
|
281
|
+
this.insuranceTtype = this.$appdata.getParam('非居民燃气意外险')
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
closeModel(){
|
|
285
|
+
this.showmOrder = false
|
|
286
|
+
this.isSubmitting = false
|
|
287
|
+
if (this.orderInterval) {
|
|
288
|
+
clearTimeout(this.orderInterval)
|
|
289
|
+
this.orderInterval = null
|
|
290
|
+
}
|
|
291
|
+
},
|
|
292
|
+
commitBefore(){
|
|
293
|
+
if (!this.model.f_money) {
|
|
294
|
+
this.$showMessage('金额未填写,请填写后重新尝试。')
|
|
295
|
+
return
|
|
296
|
+
}else {
|
|
297
|
+
//转为数字类型
|
|
298
|
+
this.model.f_money = Number(this.model.f_money)
|
|
299
|
+
}
|
|
300
|
+
if (this.paymanshow && !this.model.f_sale_person) {
|
|
301
|
+
return this.$showMessage(`请选择售卖人员!`)
|
|
302
|
+
}
|
|
303
|
+
if (!this.model.f_ins_start_date) {
|
|
304
|
+
this.$showMessage('投保日期未选择,请选择后重新尝试。')
|
|
305
|
+
return
|
|
306
|
+
}
|
|
307
|
+
if (!this.model.f_expiration_date) {
|
|
308
|
+
this.$showMessage('到期日期未选择,请选择后重新尝试。')
|
|
309
|
+
return
|
|
310
|
+
}
|
|
311
|
+
if (!this.model.f_insurance_type) {
|
|
312
|
+
this.$showMessage('保险险种未填写,请填写后重新尝试。')
|
|
313
|
+
return
|
|
314
|
+
}
|
|
315
|
+
this.showmOrder = true
|
|
316
|
+
},
|
|
317
|
+
async commitCharge() {
|
|
318
|
+
// 防止重复提交
|
|
319
|
+
if (this.isSubmitting) {
|
|
320
|
+
return
|
|
321
|
+
}
|
|
322
|
+
if(this.model.f_payment ==''){
|
|
323
|
+
this.$showMessage('请选择支付方式。')
|
|
324
|
+
return
|
|
325
|
+
}
|
|
326
|
+
this.isSubmitting = true // 设置提交状态
|
|
327
|
+
try {
|
|
328
|
+
if (this.model.f_payment.includes('二维码')) {
|
|
329
|
+
await this.openQrcode()
|
|
330
|
+
} else {
|
|
331
|
+
await this.commit()
|
|
332
|
+
this.isSubmitting = false // 非二维码支付时在这里重置
|
|
333
|
+
}
|
|
334
|
+
} catch (error) {
|
|
335
|
+
console.error('提交失败:', error)
|
|
336
|
+
this.$showMessage('提交失败')
|
|
337
|
+
this.isSubmitting = false // 重置提交状态
|
|
338
|
+
}
|
|
339
|
+
},
|
|
340
|
+
async getOrderInformation() {
|
|
341
|
+
console.log('查询订单信息!!!')
|
|
342
|
+
// 添加标志位,防止重复执行
|
|
343
|
+
if (this.isCheckingOrder) {
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
try {
|
|
347
|
+
this.isCheckingOrder = true;
|
|
348
|
+
let http = new HttpResetClass()
|
|
349
|
+
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/wx/rs/pay/microPayOrderStatus`, {
|
|
350
|
+
"filiale": "siyang",
|
|
351
|
+
"flag": "microPayRongHaoJsbc",
|
|
352
|
+
"f_out_trade_no": `${this.f_out_trade_no}`,
|
|
353
|
+
"posid": this.$androidUtil.getDeviceIEMI()
|
|
354
|
+
}, {
|
|
355
|
+
resolveMsg: null,
|
|
356
|
+
rejectMsg: '订单查询失败!!!'
|
|
357
|
+
})
|
|
358
|
+
// 支付成功
|
|
359
|
+
if (res.data.trade_state.includes('已支付')) {
|
|
360
|
+
this.orderinfo = res.data
|
|
361
|
+
clearTimeout(this.orderInterval)
|
|
362
|
+
this.$showMessage('支付成功!!!')
|
|
363
|
+
await this.commit()
|
|
364
|
+
this.clearQrCode()
|
|
365
|
+
this.closeModel()
|
|
366
|
+
} else if (res.data.trade_state.includes("已退款")) {
|
|
367
|
+
this.$showMessage("已退款,请重新下单支付!!!");
|
|
368
|
+
this.clearQrCode();
|
|
369
|
+
this.closeModel()
|
|
370
|
+
if (this.orderInterval) {
|
|
371
|
+
clearTimeout(this.orderInterval);
|
|
372
|
+
this.orderInterval = null
|
|
373
|
+
}
|
|
374
|
+
}else{
|
|
375
|
+
this.isCheckingOrder = false
|
|
376
|
+
//重新查询订单状态
|
|
377
|
+
this.orderInterval = setTimeout(() => {
|
|
378
|
+
this.getOrderInformation()
|
|
379
|
+
}, 3000)
|
|
380
|
+
}
|
|
381
|
+
} catch (error) {
|
|
382
|
+
console.error("查询订单状态失败:", error);
|
|
383
|
+
if (this.orderInterval) {
|
|
384
|
+
clearTimeout(this.orderInterval);
|
|
385
|
+
this.orderInterval = null
|
|
386
|
+
}
|
|
387
|
+
this.isCheckingOrder = false; // 发生错误时重置标志位
|
|
388
|
+
} finally {
|
|
389
|
+
// 确保在非轮询状态下重置标志位
|
|
390
|
+
if (!this.orderInterval) {
|
|
391
|
+
this.isCheckingOrder = false;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
},
|
|
395
|
+
async openQrcode() {
|
|
396
|
+
this.clearQrCode()
|
|
397
|
+
let data = {
|
|
398
|
+
tablename: 't_userfiles',
|
|
399
|
+
condition: `f_userinfo_id = '${this.model.f_userinfo_id}'`
|
|
400
|
+
}
|
|
401
|
+
let res = await new HttpResetClass().load('post', this.$androidUtil.getProxyUrl() + '/rs/sql/tel_singleTable', {data: data}, {
|
|
402
|
+
resolveMsg: null,
|
|
403
|
+
rejectMsg: '获取数据失败'
|
|
404
|
+
})
|
|
405
|
+
let reqdata = {
|
|
406
|
+
"filiale": "siyang",
|
|
407
|
+
"flag": "microPayRongHaoJsbc",
|
|
408
|
+
"money": this.model.f_money,
|
|
409
|
+
"proinfo": "保险收费",
|
|
410
|
+
"f_userinfo_id": this.model.f_userinfo_id,
|
|
411
|
+
"f_userfiles_id": res.data[0].f_userfiles_id,
|
|
412
|
+
"f_user_id": res.data[0].f_user_id,
|
|
413
|
+
"posid": this.$androidUtil.getDeviceIEMI()
|
|
414
|
+
}
|
|
415
|
+
new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/wx/rs/pay/jsApiPay`, reqdata).then(res => {
|
|
416
|
+
if (res.data.result_code.includes('SUCCESS')) {
|
|
417
|
+
this.order = res.data
|
|
418
|
+
this.f_out_trade_no = res.data.f_out_trade_no
|
|
419
|
+
this.zfCode = true
|
|
420
|
+
this.$nextTick(() => {
|
|
421
|
+
this.qrcode(res.data.qr_code)
|
|
422
|
+
})
|
|
423
|
+
this.getOrderInformation()
|
|
424
|
+
} else {
|
|
425
|
+
this.$showMessage('网络异常。。。')
|
|
426
|
+
}
|
|
427
|
+
})
|
|
428
|
+
},
|
|
429
|
+
qrcode(url) {
|
|
430
|
+
new QRCode('qrcode', {
|
|
431
|
+
text: url, // 设置二维码内容或跳转地址
|
|
432
|
+
width: 266, // 设置宽度,单位像素
|
|
433
|
+
height: 266, // 设置高度,单位像素
|
|
434
|
+
correctLevel: QRCode.CorrectLevel.L //容错率,L/M/Hs
|
|
435
|
+
})
|
|
436
|
+
},
|
|
437
|
+
clearQrCode() {
|
|
438
|
+
if (document.getElementById('qrcode')) {
|
|
439
|
+
document.getElementById('qrcode').innerHTML = ''
|
|
440
|
+
}
|
|
441
|
+
},
|
|
442
|
+
async commit() {
|
|
443
|
+
try {
|
|
444
|
+
let commit_data = this.model
|
|
445
|
+
commit_data.f_sale_person = this.model.f_sale_person ? this.model.f_sale_person :Vue.user.name
|
|
446
|
+
commit_data.f_buy_date = this.create_date
|
|
447
|
+
commit_data.f_total_ins_charge = 0
|
|
448
|
+
commit_data.f_operatorid = Vue.user.id
|
|
449
|
+
commit_data.f_operator = Vue.user.name
|
|
450
|
+
commit_data.f_operate_date = Util.toStandardTimeString()
|
|
451
|
+
commit_data.f_state = '有效'
|
|
452
|
+
commit_data.f_orgid = Vue.user.orgid
|
|
453
|
+
commit_data.f_orgname = Vue.user.orgs
|
|
454
|
+
commit_data.f_depid = Vue.user.depids
|
|
455
|
+
commit_data.f_depname = Vue.user.deps
|
|
456
|
+
commit_data.f_serial_id = this.orderinfo.f_out_trade_no
|
|
457
|
+
commit_data.order=this.order
|
|
458
|
+
|
|
459
|
+
const response = await new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/api/af-revenue/logic/saveInsInfo`, { data: commit_data })
|
|
460
|
+
this.$showMessage('提交成功')
|
|
461
|
+
this.orderinfo = {}
|
|
462
|
+
this.showmOrder = false
|
|
463
|
+
} catch (error) {
|
|
464
|
+
console.error('提交失败:', error)
|
|
465
|
+
this.$showMessage('提交失败')
|
|
466
|
+
this.showmOrder = false
|
|
467
|
+
}
|
|
468
|
+
},
|
|
469
|
+
},
|
|
470
|
+
watch: {
|
|
471
|
+
'model.f_ins_start_date'(new_var) {
|
|
472
|
+
if (new_var && this.model.f_salecount) {
|
|
473
|
+
this.model.f_expiration_date = Number(new_var.substring(0, 4)) + Number(this.model.f_salecount) + new_var.substring(4)
|
|
474
|
+
}
|
|
475
|
+
},
|
|
476
|
+
'model.f_salecount'(new_var) {
|
|
477
|
+
if(!this.model.f_ins_start_date){
|
|
478
|
+
this.model.f_ins_start_date = Util.toStandardDateString()
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
if (this.model.f_ins_start_date && new_var) {
|
|
482
|
+
this.model.f_expiration_date = Number(this.model.f_ins_start_date.substring(0, 4)) + Number(new_var) + this.model.f_ins_start_date.substring(4)
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
</script>
|
|
488
|
+
<style scoped>
|
|
489
|
+
.mt-5 {
|
|
490
|
+
margin-top: 5px;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
.mt-10 {
|
|
494
|
+
margin-top: 10px;
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
.mt-20 {
|
|
498
|
+
margin-top: 20px;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
.app-row {
|
|
502
|
+
background-color: white;
|
|
503
|
+
padding: 10px 10px 0 10px;
|
|
504
|
+
border-bottom: 1px solid rgba(235, 235, 235, 0.5);
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
.app-row-none-border {
|
|
508
|
+
background-color: white;
|
|
509
|
+
padding: 10px 10px 0 10px;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
.font {
|
|
513
|
+
font: 15px PingFang-SC-Medium;
|
|
514
|
+
color: #666666;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
.show-font {
|
|
518
|
+
font: 15px PingFang-SC-Medium;
|
|
519
|
+
color: #333333
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
.btn-font {
|
|
523
|
+
font: 600 16px PingFang-SC-Bold;
|
|
524
|
+
color: #499EDF;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
.btn-color {
|
|
528
|
+
background-color: #FFFFFF;
|
|
529
|
+
border-radius: 10px;
|
|
530
|
+
border: 1px solid #499EDF;
|
|
531
|
+
}
|
|
532
|
+
</style>
|