safecheck-client 3.0.34-42 → 3.0.34-43
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/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/androidTest.js +20 -20
- 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/forms.less +626 -626
- 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/pager.less +76 -76
- 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/AddressList.vue +61 -61
- 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/NavBottom.vue +157 -157
- 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/QRCode/QRCodeBinding.vue +300 -300
- package/src/components/android/QRCode/QRCodePage.vue +212 -212
- 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/examples/SafeListExamples.vue +1 -1
- package/src/components/android/examples/UserExamples.vue +1 -1
- 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/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/userfile/MeterFile.vue +145 -145
- package/src/components/userfile/MeterModify.vue +46 -46
- package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
- package/src/filiale/bayan/android/SafecheckOrderV.vue +2889 -2889
- package/src/filiale/tongchuan/android/Select.vue +421 -421
- package/src/filiale/tongchuan/android.js +21 -21
- package/src/filiale/tongchuan/pc/PaperDefectMain.vue +1060 -1060
- package/src/filiale/tongchuan/utils/EventListener.js +29 -29
- package/src/filiale/tongchuan/utils/coerceBoolean.js +7 -7
- package/src/filiale/weinan/pc/CheckBookSearchUserList.vue +57 -59
- package/src/filiale/weinan/pc/checkUserList.vue +34 -113
- package/src/plugins/LoadData.js +10 -10
- package/src/plugins/LoadParams.js +24 -24
- 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
@@ -1,300 +1,300 @@
|
|
1
|
-
<template>
|
2
|
-
<div style="height: 100%">
|
3
|
-
<div class="panel auto">
|
4
|
-
<div class="panel-body ">
|
5
|
-
<div class="row auto" style="margin: 5px 0">
|
6
|
-
<label class="righttxt" style="width: 30%;">负责人姓名:</label>
|
7
|
-
<input v-model="bindingData.f_head_name" class="form-control rightipt" type="text"/>
|
8
|
-
</div>
|
9
|
-
</div>
|
10
|
-
</div>
|
11
|
-
<div class="panel auto">
|
12
|
-
<div class="panel-body ">
|
13
|
-
<div class="row auto" style="margin: 5px 0">
|
14
|
-
<label class="righttxt" style="width: 30%;">负责人职务:</label>
|
15
|
-
<v-select v-model="bindingData.f_head_post" :options='headPostTypes' :value.sync="bindingData.f_head_post" :width="'60%'"
|
16
|
-
class="input-font" clear-button close-on-select placeholder='类型' style="margin-left: 5%;"
|
17
|
-
value-single></v-select>
|
18
|
-
</div>
|
19
|
-
</div>
|
20
|
-
</div>
|
21
|
-
<div class="panel auto">
|
22
|
-
<div class="panel-body ">
|
23
|
-
<div class="row auto" style="margin: 5px 0">
|
24
|
-
<label class="righttxt" style="width: 30%;">负责人电话:</label>
|
25
|
-
<input v-model="bindingData.f_head_phone" class="form-control rightipt" type="text"/>
|
26
|
-
</div>
|
27
|
-
</div>
|
28
|
-
</div>
|
29
|
-
<div class="panel auto">
|
30
|
-
<div class="panel-body ">
|
31
|
-
<div class="row auto" style="margin: 5px 0">
|
32
|
-
<label class="righttxt" style="width: 30%;">绑定类型:</label>
|
33
|
-
<v-select v-model="bindingData.f_type" :options='types' :value.sync="bindingData.f_type" :width="'60%'"
|
34
|
-
class="input-font" clear-button close-on-select placeholder='类型' style="margin-left: 5%;"
|
35
|
-
value-single></v-select>
|
36
|
-
</div>
|
37
|
-
</div>
|
38
|
-
</div>
|
39
|
-
<div v-if="bindingData.f_type == '小区'" class="panel auto">
|
40
|
-
<div class="panel-body ">
|
41
|
-
<div class="row auto" style="margin: 5px 0">
|
42
|
-
<label class="righttxt" style="width: 30%;">小区名称:</label>
|
43
|
-
<v-select v-model="bindingData.f_user_name" :options='residentialAreas' :value.sync="bindingData.f_user_name" :width="'60%'"
|
44
|
-
class="input-font" clear-button close-on-select placeholder='小区名称'
|
45
|
-
style="margin-left: 5%;" value-single></v-select>
|
46
|
-
</div>
|
47
|
-
</div>
|
48
|
-
</div>
|
49
|
-
<div v-if="bindingData.f_type === '用户'" class="panel auto">
|
50
|
-
<div class="panel-body ">
|
51
|
-
<div class="row auto" style="margin: 5px 0">
|
52
|
-
<label class="righttxt" style="width: 30%;">用户编号:</label>
|
53
|
-
<input v-model="bindingData.f_userinfo_code" class="form-control rightipt" type="text"/>
|
54
|
-
</div>
|
55
|
-
</div>
|
56
|
-
</div>
|
57
|
-
<div v-if="bindingData.f_type == '用户'" class="panel auto">
|
58
|
-
<div class="panel-body ">
|
59
|
-
<div class="row auto" style="margin: 5px 0">
|
60
|
-
<label class="righttxt" style="width: 30%;">用户名称:</label>
|
61
|
-
<v-select v-model="bindingData.f_userinfo" :options='userNames' :value.sync="bindingData.f_userinfo" :width="'60%'"
|
62
|
-
class="input-font" clear-button close-on-select placeholder='用户名称' @select-search="refreshUser"
|
63
|
-
style="margin-left: 5%;" menu-mode="align-button" @click="initUser"
|
64
|
-
value-single></v-select>
|
65
|
-
</div>
|
66
|
-
</div>
|
67
|
-
</div>
|
68
|
-
<div class="panel auto">
|
69
|
-
<div class="panel-body">
|
70
|
-
<label class="row auto text-left col-md-4 col-xs-4">备注</label>
|
71
|
-
<div class="col-md-12 col-sm-12 col-xs-12">
|
72
|
-
<textarea v-model="bindingData.f_comments" class="form-control"></textarea>
|
73
|
-
</div>
|
74
|
-
</div>
|
75
|
-
</div>
|
76
|
-
<div class="panel auto">
|
77
|
-
<div class="panel-body ">
|
78
|
-
<div class="row auto" style="margin: 5px 0">
|
79
|
-
<label class="righttxt">图片:</label>
|
80
|
-
<div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
|
81
|
-
<img-self v-if="bindingData.f_head_pic" :src="bindingData.f_head_pic" width="140" height="140"></img-self>
|
82
|
-
<button v-if="!bindingData.f_head_pic" type="button" name="button" class="btn btn-primary" @click="takePictures('com.aofeng.hybrid.android.peripheral.CameraActivity')">拍照</button>
|
83
|
-
<button v-if="!bindingData.f_head_pic" type="button" name="button" class="btn btn-primary" @click="takePictures('com.aofeng.hybrid.android.peripheral.ActionMultiplePickActivity')">相册</button>
|
84
|
-
</div>
|
85
|
-
</div>
|
86
|
-
</div>
|
87
|
-
</div>
|
88
|
-
<div class="panel auto">
|
89
|
-
<div class="panel-body">
|
90
|
-
<div style="display: flex;justify-content: center;">
|
91
|
-
<button class="col-sm-3 btn btn-primary" @click="binding()">绑定</button>
|
92
|
-
</div>
|
93
|
-
</div>
|
94
|
-
</div>
|
95
|
-
</div>
|
96
|
-
</template>
|
97
|
-
|
98
|
-
<script>
|
99
|
-
import {HttpResetClass} from 'vue-client'
|
100
|
-
import * as Util from '../../Util'
|
101
|
-
|
102
|
-
|
103
|
-
export default {
|
104
|
-
title: '二维码绑定',
|
105
|
-
data() {
|
106
|
-
return {
|
107
|
-
bindingData: {},
|
108
|
-
residentialAreas: [{label: '请选择', value: ''}],
|
109
|
-
userNames: [{label: '请选择', value: ''}],
|
110
|
-
headPostTypes:[{label: '请选择', value: ''} ,...this.$appdata.getParam('负责人职务')],
|
111
|
-
types: [{label: '请选择', value: ''}, {label: '小区', value: '小区'}, {label: '用户', value: '用户'}]
|
112
|
-
}
|
113
|
-
},
|
114
|
-
props: {
|
115
|
-
row: {
|
116
|
-
type: Object
|
117
|
-
}
|
118
|
-
},
|
119
|
-
methods: {
|
120
|
-
async fetchUsers(condition) {
|
121
|
-
try {
|
122
|
-
const response = await new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {
|
123
|
-
data: {
|
124
|
-
items: 'ui.f_user_name,ui.f_userinfo_id,ui.f_userinfo_code',
|
125
|
-
tablename: 't_userinfo ui LEFT JOIN t_userfiles uf on ui.f_userinfo_id = uf.f_userinfo_id',
|
126
|
-
condition: condition,
|
127
|
-
orderitem: '1'
|
128
|
-
}
|
129
|
-
});
|
130
|
-
return response.data;
|
131
|
-
} catch (error) {
|
132
|
-
return [];
|
133
|
-
}
|
134
|
-
},
|
135
|
-
async initUser() {
|
136
|
-
if (!this.bindingData.f_userinfo_code) return;
|
137
|
-
const baseCondition = `1=1 and f_user_name is not null and uf.f_user_type = '非民用' and uf.f_table_state in ('正常','停用')`;
|
138
|
-
const condition = `${baseCondition} and ui.f_userinfo_code like '${this.bindingData.f_userinfo_code}%'`;
|
139
|
-
const users = await this.fetchUsers(condition);
|
140
|
-
users.forEach(item => {
|
141
|
-
if (!this.userNames.some(user => user.value.f_userinfo_id === item.f_userinfo_id)) {
|
142
|
-
this.userNames.push({ label: `${item.f_user_name}:${item.f_userinfo_code}`, value: item })
|
143
|
-
}
|
144
|
-
})
|
145
|
-
},
|
146
|
-
async refreshUser(val) {
|
147
|
-
let condition = `1=1 and f_user_name is not null and uf.f_user_type = '非民用' and uf.f_table_state in ('正常','停用') and ui.f_user_name like '${val}%'`;
|
148
|
-
if (this.bindingData.f_userinfo_code) {
|
149
|
-
condition += ` and ui.f_userinfo_code like '${this.bindingData.f_userinfo_code}%'`;
|
150
|
-
}
|
151
|
-
const users = await this.fetchUsers(condition);
|
152
|
-
users.forEach(item => {
|
153
|
-
if (!this.userNames.some(user => user.value.f_userinfo_id === item.f_userinfo_id)) {
|
154
|
-
this.userNames.push({ label: `${item.f_user_name}:${item.f_userinfo_code}`, value: item })
|
155
|
-
}
|
156
|
-
})
|
157
|
-
},
|
158
|
-
|
159
|
-
cameraCallBack(prop,fileName) {
|
160
|
-
this.$set('bindingData.f_head_pic',fileName)
|
161
|
-
},
|
162
|
-
takePictures(page){
|
163
|
-
HostApp.__callback__ = this.cameraCallBack
|
164
|
-
HostApp.__this__ = this
|
165
|
-
let prop = 'QRCode'
|
166
|
-
this.fileName = Util.guid() +'.jpg'
|
167
|
-
HostApp._open_a_page({
|
168
|
-
type: 'boomerang',
|
169
|
-
page: page,
|
170
|
-
param: {
|
171
|
-
file: this.fileName,
|
172
|
-
requestCode: 111,
|
173
|
-
callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
|
174
|
-
watermark: ''
|
175
|
-
}
|
176
|
-
})
|
177
|
-
},
|
178
|
-
async binding() {
|
179
|
-
let tableImages = []
|
180
|
-
if (!this.row.f_head_pic){
|
181
|
-
tableImages.push({
|
182
|
-
path:this.bindingData.f_head_pic
|
183
|
-
})
|
184
|
-
}
|
185
|
-
let data = {
|
186
|
-
tableImages: tableImages
|
187
|
-
}
|
188
|
-
HostApp.__this__ = this
|
189
|
-
HostApp.logicWithHint({
|
190
|
-
'logic': 'imagesUploadAndroid', 'callback': 'javascript: HostApp.__this__.commitCallBack()',
|
191
|
-
'data': data, 'backresult': 1
|
192
|
-
})
|
193
|
-
},
|
194
|
-
async commitCallBack(jo) {
|
195
|
-
if (jo.state == 'ok') {
|
196
|
-
const res = JSON.parse(jo.result)
|
197
|
-
let sql = ''
|
198
|
-
if (res.images && res.images.length > 0){
|
199
|
-
sql = `update t_qr_code set f_head_name = '${this.bindingData.f_head_name}',f_head_post = '${this.bindingData.f_head_post}',f_head_phone = '${this.bindingData.f_head_phone}',f_type = '${this.bindingData.f_type}',f_user_name = '${this.bindingData.f_user_name}',f_userinfo_id = '${this.bindingData.f_userinfo_id}',f_comments = '${this.bindingData.f_comments}',f_head_pic='${res.images[0].imgfileName}' where id = '${this.bindingData.id}'`
|
200
|
-
}else {
|
201
|
-
sql = `update t_qr_code set f_head_name = '${this.bindingData.f_head_name}',f_head_post = '${this.bindingData.f_head_post}',f_head_phone = '${this.bindingData.f_head_phone}',f_type = '${this.bindingData.f_type}',f_user_name = '${this.bindingData.f_user_name}',f_userinfo_id = '${this.bindingData.f_userinfo_id}',f_comments = '${this.bindingData.f_comments}' where id = '${this.bindingData.id}'`
|
202
|
-
}
|
203
|
-
new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/runSQL`, {data: {sql: sql}}).then(res=>{
|
204
|
-
this.$showMessage('绑定成功')
|
205
|
-
this.$dispatch('confirm')
|
206
|
-
}).catch(e=>{
|
207
|
-
this.$showMessage('绑定失败')
|
208
|
-
})
|
209
|
-
}else {
|
210
|
-
this.$showMessage('图片上传失败')
|
211
|
-
}
|
212
|
-
},
|
213
|
-
},
|
214
|
-
async ready() {
|
215
|
-
this.bindingData = JSON.parse(JSON.stringify(this.row))
|
216
|
-
if(this.bindingData.f_head_pic){
|
217
|
-
this.bindingData.f_head_pic = `${this.$androidUtil.getProxyUrl()}/rs/image/file/${this.bindingData.f_head_pic}`
|
218
|
-
}
|
219
|
-
let residentialArea = await new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {
|
220
|
-
data: {
|
221
|
-
items: 'f_residential_area,id',
|
222
|
-
tablename: 't_area',
|
223
|
-
condition: `1=1 and f_residential_area is not null`,
|
224
|
-
orderitem: '1'
|
225
|
-
}
|
226
|
-
})
|
227
|
-
residentialArea.data.forEach(item => {
|
228
|
-
this.residentialAreas.push({label: item.f_residential_area, value: `${item.f_residential_area}:${item.id}`});
|
229
|
-
})
|
230
|
-
const users = await this.fetchUsers(`1=1 and f_user_name is not null and uf.f_user_type = '非民用' and uf.f_table_state in ('正常','停用')`)
|
231
|
-
users.forEach(item => {
|
232
|
-
this.userNames.push({ label: `${item.f_user_name}:${item.f_userinfo_code}`, value: item })
|
233
|
-
})
|
234
|
-
}
|
235
|
-
}
|
236
|
-
</script>
|
237
|
-
<style lang="less" scoped>
|
238
|
-
.butt3 {
|
239
|
-
float: right;
|
240
|
-
width: 12px;
|
241
|
-
margin: 1% 2% 0 0;
|
242
|
-
}
|
243
|
-
|
244
|
-
.rightipt {
|
245
|
-
width: 60%;
|
246
|
-
float: left;
|
247
|
-
margin-left: 5%;
|
248
|
-
}
|
249
|
-
|
250
|
-
.righttxt {
|
251
|
-
border: none;
|
252
|
-
margin-left: 5px;
|
253
|
-
/*border-left: 5px solid #A2C2EB;*/
|
254
|
-
float: left;
|
255
|
-
width: 25%;
|
256
|
-
margin-bottom: 3px;
|
257
|
-
text-align: left;
|
258
|
-
word-wrap: break-word;
|
259
|
-
white-space: normal;
|
260
|
-
}
|
261
|
-
|
262
|
-
.spanboder {
|
263
|
-
border-bottom: 2px solid #499edf;
|
264
|
-
padding-bottom: 8px
|
265
|
-
}
|
266
|
-
|
267
|
-
#upuserinfo_sel /deep/ ul {
|
268
|
-
width: 100% !important;
|
269
|
-
left: 0 !important;
|
270
|
-
}
|
271
|
-
|
272
|
-
.btn-photo {
|
273
|
-
border: 0;
|
274
|
-
border-radius: 7px;
|
275
|
-
background-color: #7dc1f4;
|
276
|
-
font: 15px PingFang-SC-Bold;
|
277
|
-
height: 20%;
|
278
|
-
}
|
279
|
-
|
280
|
-
.panel-self {
|
281
|
-
border-radius: 10px;
|
282
|
-
border: 1px solid #499EDF;
|
283
|
-
background-color: #F8F8F8;
|
284
|
-
}
|
285
|
-
|
286
|
-
.div-photo {
|
287
|
-
width: auto;
|
288
|
-
height: auto;
|
289
|
-
/* margin-top: 10px; */
|
290
|
-
position: absolute;
|
291
|
-
bottom: 10px;
|
292
|
-
right: 10px;
|
293
|
-
}
|
294
|
-
</style>
|
295
|
-
<style lang="less">
|
296
|
-
#upuserinfo_sel ul {
|
297
|
-
width: 100% !important;
|
298
|
-
left: 0 !important;
|
299
|
-
}
|
300
|
-
</style>
|
1
|
+
<template>
|
2
|
+
<div style="height: 100%">
|
3
|
+
<div class="panel auto">
|
4
|
+
<div class="panel-body ">
|
5
|
+
<div class="row auto" style="margin: 5px 0">
|
6
|
+
<label class="righttxt" style="width: 30%;">负责人姓名:</label>
|
7
|
+
<input v-model="bindingData.f_head_name" class="form-control rightipt" type="text"/>
|
8
|
+
</div>
|
9
|
+
</div>
|
10
|
+
</div>
|
11
|
+
<div class="panel auto">
|
12
|
+
<div class="panel-body ">
|
13
|
+
<div class="row auto" style="margin: 5px 0">
|
14
|
+
<label class="righttxt" style="width: 30%;">负责人职务:</label>
|
15
|
+
<v-select v-model="bindingData.f_head_post" :options='headPostTypes' :value.sync="bindingData.f_head_post" :width="'60%'"
|
16
|
+
class="input-font" clear-button close-on-select placeholder='类型' style="margin-left: 5%;"
|
17
|
+
value-single></v-select>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
<div class="panel auto">
|
22
|
+
<div class="panel-body ">
|
23
|
+
<div class="row auto" style="margin: 5px 0">
|
24
|
+
<label class="righttxt" style="width: 30%;">负责人电话:</label>
|
25
|
+
<input v-model="bindingData.f_head_phone" class="form-control rightipt" type="text"/>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
<div class="panel auto">
|
30
|
+
<div class="panel-body ">
|
31
|
+
<div class="row auto" style="margin: 5px 0">
|
32
|
+
<label class="righttxt" style="width: 30%;">绑定类型:</label>
|
33
|
+
<v-select v-model="bindingData.f_type" :options='types' :value.sync="bindingData.f_type" :width="'60%'"
|
34
|
+
class="input-font" clear-button close-on-select placeholder='类型' style="margin-left: 5%;"
|
35
|
+
value-single></v-select>
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
<div v-if="bindingData.f_type == '小区'" class="panel auto">
|
40
|
+
<div class="panel-body ">
|
41
|
+
<div class="row auto" style="margin: 5px 0">
|
42
|
+
<label class="righttxt" style="width: 30%;">小区名称:</label>
|
43
|
+
<v-select v-model="bindingData.f_user_name" :options='residentialAreas' :value.sync="bindingData.f_user_name" :width="'60%'"
|
44
|
+
class="input-font" clear-button close-on-select placeholder='小区名称'
|
45
|
+
style="margin-left: 5%;" value-single></v-select>
|
46
|
+
</div>
|
47
|
+
</div>
|
48
|
+
</div>
|
49
|
+
<div v-if="bindingData.f_type === '用户'" class="panel auto">
|
50
|
+
<div class="panel-body ">
|
51
|
+
<div class="row auto" style="margin: 5px 0">
|
52
|
+
<label class="righttxt" style="width: 30%;">用户编号:</label>
|
53
|
+
<input v-model="bindingData.f_userinfo_code" class="form-control rightipt" type="text"/>
|
54
|
+
</div>
|
55
|
+
</div>
|
56
|
+
</div>
|
57
|
+
<div v-if="bindingData.f_type == '用户'" class="panel auto">
|
58
|
+
<div class="panel-body ">
|
59
|
+
<div class="row auto" style="margin: 5px 0">
|
60
|
+
<label class="righttxt" style="width: 30%;">用户名称:</label>
|
61
|
+
<v-select v-model="bindingData.f_userinfo" :options='userNames' :value.sync="bindingData.f_userinfo" :width="'60%'"
|
62
|
+
class="input-font" clear-button close-on-select placeholder='用户名称' @select-search="refreshUser"
|
63
|
+
style="margin-left: 5%;" menu-mode="align-button" @click="initUser"
|
64
|
+
value-single></v-select>
|
65
|
+
</div>
|
66
|
+
</div>
|
67
|
+
</div>
|
68
|
+
<div class="panel auto">
|
69
|
+
<div class="panel-body">
|
70
|
+
<label class="row auto text-left col-md-4 col-xs-4">备注</label>
|
71
|
+
<div class="col-md-12 col-sm-12 col-xs-12">
|
72
|
+
<textarea v-model="bindingData.f_comments" class="form-control"></textarea>
|
73
|
+
</div>
|
74
|
+
</div>
|
75
|
+
</div>
|
76
|
+
<div class="panel auto">
|
77
|
+
<div class="panel-body ">
|
78
|
+
<div class="row auto" style="margin: 5px 0">
|
79
|
+
<label class="righttxt">图片:</label>
|
80
|
+
<div class="col-xs-6" style="height: 160px;width:160px;overflow: scroll;top: 1px">
|
81
|
+
<img-self v-if="bindingData.f_head_pic" :src="bindingData.f_head_pic" width="140" height="140"></img-self>
|
82
|
+
<button v-if="!bindingData.f_head_pic" type="button" name="button" class="btn btn-primary" @click="takePictures('com.aofeng.hybrid.android.peripheral.CameraActivity')">拍照</button>
|
83
|
+
<button v-if="!bindingData.f_head_pic" type="button" name="button" class="btn btn-primary" @click="takePictures('com.aofeng.hybrid.android.peripheral.ActionMultiplePickActivity')">相册</button>
|
84
|
+
</div>
|
85
|
+
</div>
|
86
|
+
</div>
|
87
|
+
</div>
|
88
|
+
<div class="panel auto">
|
89
|
+
<div class="panel-body">
|
90
|
+
<div style="display: flex;justify-content: center;">
|
91
|
+
<button class="col-sm-3 btn btn-primary" @click="binding()">绑定</button>
|
92
|
+
</div>
|
93
|
+
</div>
|
94
|
+
</div>
|
95
|
+
</div>
|
96
|
+
</template>
|
97
|
+
|
98
|
+
<script>
|
99
|
+
import {HttpResetClass} from 'vue-client'
|
100
|
+
import * as Util from '../../Util'
|
101
|
+
|
102
|
+
|
103
|
+
export default {
|
104
|
+
title: '二维码绑定',
|
105
|
+
data() {
|
106
|
+
return {
|
107
|
+
bindingData: {},
|
108
|
+
residentialAreas: [{label: '请选择', value: ''}],
|
109
|
+
userNames: [{label: '请选择', value: ''}],
|
110
|
+
headPostTypes:[{label: '请选择', value: ''} ,...this.$appdata.getParam('负责人职务')],
|
111
|
+
types: [{label: '请选择', value: ''}, {label: '小区', value: '小区'}, {label: '用户', value: '用户'}]
|
112
|
+
}
|
113
|
+
},
|
114
|
+
props: {
|
115
|
+
row: {
|
116
|
+
type: Object
|
117
|
+
}
|
118
|
+
},
|
119
|
+
methods: {
|
120
|
+
async fetchUsers(condition) {
|
121
|
+
try {
|
122
|
+
const response = await new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {
|
123
|
+
data: {
|
124
|
+
items: 'ui.f_user_name,ui.f_userinfo_id,ui.f_userinfo_code',
|
125
|
+
tablename: 't_userinfo ui LEFT JOIN t_userfiles uf on ui.f_userinfo_id = uf.f_userinfo_id',
|
126
|
+
condition: condition,
|
127
|
+
orderitem: '1'
|
128
|
+
}
|
129
|
+
});
|
130
|
+
return response.data;
|
131
|
+
} catch (error) {
|
132
|
+
return [];
|
133
|
+
}
|
134
|
+
},
|
135
|
+
async initUser() {
|
136
|
+
if (!this.bindingData.f_userinfo_code) return;
|
137
|
+
const baseCondition = `1=1 and f_user_name is not null and uf.f_user_type = '非民用' and uf.f_table_state in ('正常','停用')`;
|
138
|
+
const condition = `${baseCondition} and ui.f_userinfo_code like '${this.bindingData.f_userinfo_code}%'`;
|
139
|
+
const users = await this.fetchUsers(condition);
|
140
|
+
users.forEach(item => {
|
141
|
+
if (!this.userNames.some(user => user.value.f_userinfo_id === item.f_userinfo_id)) {
|
142
|
+
this.userNames.push({ label: `${item.f_user_name}:${item.f_userinfo_code}`, value: item })
|
143
|
+
}
|
144
|
+
})
|
145
|
+
},
|
146
|
+
async refreshUser(val) {
|
147
|
+
let condition = `1=1 and f_user_name is not null and uf.f_user_type = '非民用' and uf.f_table_state in ('正常','停用') and ui.f_user_name like '${val}%'`;
|
148
|
+
if (this.bindingData.f_userinfo_code) {
|
149
|
+
condition += ` and ui.f_userinfo_code like '${this.bindingData.f_userinfo_code}%'`;
|
150
|
+
}
|
151
|
+
const users = await this.fetchUsers(condition);
|
152
|
+
users.forEach(item => {
|
153
|
+
if (!this.userNames.some(user => user.value.f_userinfo_id === item.f_userinfo_id)) {
|
154
|
+
this.userNames.push({ label: `${item.f_user_name}:${item.f_userinfo_code}`, value: item })
|
155
|
+
}
|
156
|
+
})
|
157
|
+
},
|
158
|
+
|
159
|
+
cameraCallBack(prop,fileName) {
|
160
|
+
this.$set('bindingData.f_head_pic',fileName)
|
161
|
+
},
|
162
|
+
takePictures(page){
|
163
|
+
HostApp.__callback__ = this.cameraCallBack
|
164
|
+
HostApp.__this__ = this
|
165
|
+
let prop = 'QRCode'
|
166
|
+
this.fileName = Util.guid() +'.jpg'
|
167
|
+
HostApp._open_a_page({
|
168
|
+
type: 'boomerang',
|
169
|
+
page: page,
|
170
|
+
param: {
|
171
|
+
file: this.fileName,
|
172
|
+
requestCode: 111,
|
173
|
+
callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
|
174
|
+
watermark: ''
|
175
|
+
}
|
176
|
+
})
|
177
|
+
},
|
178
|
+
async binding() {
|
179
|
+
let tableImages = []
|
180
|
+
if (!this.row.f_head_pic){
|
181
|
+
tableImages.push({
|
182
|
+
path:this.bindingData.f_head_pic
|
183
|
+
})
|
184
|
+
}
|
185
|
+
let data = {
|
186
|
+
tableImages: tableImages
|
187
|
+
}
|
188
|
+
HostApp.__this__ = this
|
189
|
+
HostApp.logicWithHint({
|
190
|
+
'logic': 'imagesUploadAndroid', 'callback': 'javascript: HostApp.__this__.commitCallBack()',
|
191
|
+
'data': data, 'backresult': 1
|
192
|
+
})
|
193
|
+
},
|
194
|
+
async commitCallBack(jo) {
|
195
|
+
if (jo.state == 'ok') {
|
196
|
+
const res = JSON.parse(jo.result)
|
197
|
+
let sql = ''
|
198
|
+
if (res.images && res.images.length > 0){
|
199
|
+
sql = `update t_qr_code set f_head_name = '${this.bindingData.f_head_name}',f_head_post = '${this.bindingData.f_head_post}',f_head_phone = '${this.bindingData.f_head_phone}',f_type = '${this.bindingData.f_type}',f_user_name = '${this.bindingData.f_user_name}',f_userinfo_id = '${this.bindingData.f_userinfo_id}',f_comments = '${this.bindingData.f_comments}',f_head_pic='${res.images[0].imgfileName}' where id = '${this.bindingData.id}'`
|
200
|
+
}else {
|
201
|
+
sql = `update t_qr_code set f_head_name = '${this.bindingData.f_head_name}',f_head_post = '${this.bindingData.f_head_post}',f_head_phone = '${this.bindingData.f_head_phone}',f_type = '${this.bindingData.f_type}',f_user_name = '${this.bindingData.f_user_name}',f_userinfo_id = '${this.bindingData.f_userinfo_id}',f_comments = '${this.bindingData.f_comments}' where id = '${this.bindingData.id}'`
|
202
|
+
}
|
203
|
+
new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/runSQL`, {data: {sql: sql}}).then(res=>{
|
204
|
+
this.$showMessage('绑定成功')
|
205
|
+
this.$dispatch('confirm')
|
206
|
+
}).catch(e=>{
|
207
|
+
this.$showMessage('绑定失败')
|
208
|
+
})
|
209
|
+
}else {
|
210
|
+
this.$showMessage('图片上传失败')
|
211
|
+
}
|
212
|
+
},
|
213
|
+
},
|
214
|
+
async ready() {
|
215
|
+
this.bindingData = JSON.parse(JSON.stringify(this.row))
|
216
|
+
if(this.bindingData.f_head_pic){
|
217
|
+
this.bindingData.f_head_pic = `${this.$androidUtil.getProxyUrl()}/rs/image/file/${this.bindingData.f_head_pic}`
|
218
|
+
}
|
219
|
+
let residentialArea = await new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {
|
220
|
+
data: {
|
221
|
+
items: 'f_residential_area,id',
|
222
|
+
tablename: 't_area',
|
223
|
+
condition: `1=1 and f_residential_area is not null`,
|
224
|
+
orderitem: '1'
|
225
|
+
}
|
226
|
+
})
|
227
|
+
residentialArea.data.forEach(item => {
|
228
|
+
this.residentialAreas.push({label: item.f_residential_area, value: `${item.f_residential_area}:${item.id}`});
|
229
|
+
})
|
230
|
+
const users = await this.fetchUsers(`1=1 and f_user_name is not null and uf.f_user_type = '非民用' and uf.f_table_state in ('正常','停用')`)
|
231
|
+
users.forEach(item => {
|
232
|
+
this.userNames.push({ label: `${item.f_user_name}:${item.f_userinfo_code}`, value: item })
|
233
|
+
})
|
234
|
+
}
|
235
|
+
}
|
236
|
+
</script>
|
237
|
+
<style lang="less" scoped>
|
238
|
+
.butt3 {
|
239
|
+
float: right;
|
240
|
+
width: 12px;
|
241
|
+
margin: 1% 2% 0 0;
|
242
|
+
}
|
243
|
+
|
244
|
+
.rightipt {
|
245
|
+
width: 60%;
|
246
|
+
float: left;
|
247
|
+
margin-left: 5%;
|
248
|
+
}
|
249
|
+
|
250
|
+
.righttxt {
|
251
|
+
border: none;
|
252
|
+
margin-left: 5px;
|
253
|
+
/*border-left: 5px solid #A2C2EB;*/
|
254
|
+
float: left;
|
255
|
+
width: 25%;
|
256
|
+
margin-bottom: 3px;
|
257
|
+
text-align: left;
|
258
|
+
word-wrap: break-word;
|
259
|
+
white-space: normal;
|
260
|
+
}
|
261
|
+
|
262
|
+
.spanboder {
|
263
|
+
border-bottom: 2px solid #499edf;
|
264
|
+
padding-bottom: 8px
|
265
|
+
}
|
266
|
+
|
267
|
+
#upuserinfo_sel /deep/ ul {
|
268
|
+
width: 100% !important;
|
269
|
+
left: 0 !important;
|
270
|
+
}
|
271
|
+
|
272
|
+
.btn-photo {
|
273
|
+
border: 0;
|
274
|
+
border-radius: 7px;
|
275
|
+
background-color: #7dc1f4;
|
276
|
+
font: 15px PingFang-SC-Bold;
|
277
|
+
height: 20%;
|
278
|
+
}
|
279
|
+
|
280
|
+
.panel-self {
|
281
|
+
border-radius: 10px;
|
282
|
+
border: 1px solid #499EDF;
|
283
|
+
background-color: #F8F8F8;
|
284
|
+
}
|
285
|
+
|
286
|
+
.div-photo {
|
287
|
+
width: auto;
|
288
|
+
height: auto;
|
289
|
+
/* margin-top: 10px; */
|
290
|
+
position: absolute;
|
291
|
+
bottom: 10px;
|
292
|
+
right: 10px;
|
293
|
+
}
|
294
|
+
</style>
|
295
|
+
<style lang="less">
|
296
|
+
#upuserinfo_sel ul {
|
297
|
+
width: 100% !important;
|
298
|
+
left: 0 !important;
|
299
|
+
}
|
300
|
+
</style>
|