apply-clients 3.3.43 → 3.3.47

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apply-clients",
3
- "version": "3.3.43",
3
+ "version": "3.3.47",
4
4
  "description": "报建前端模块",
5
5
  "main": "src/index.js",
6
6
  "directories": {
@@ -93,9 +93,9 @@
93
93
  "style": "0.0.3",
94
94
  "style-loader": "^0.20.3",
95
95
  "system-clients": "3.1.87",
96
- "system-phone": "1.1.18",
96
+ "system-phone": "1.2.80-49",
97
97
  "url-loader": "^0.5.7",
98
- "vue-client": "1.24.31",
98
+ "vue-client": "1.24.33",
99
99
  "vue-hot-reload-api": "^1.2.0",
100
100
  "vue-html-loader": "^1.0.0",
101
101
  "vue-loader": "^8.2.1",
@@ -1,30 +1,35 @@
1
- <template>
2
- <!-- <app-base> -->
3
- <div id="android-app">
4
- <article>
5
- <route :comp="{name: 'app-exploration-user'}" name="root"></route>
6
- <!-- <route :comp="{name: 'app-process-supervisory'}" name="root"></route>-->
7
- <!-- <route :comp="{name: 'apply-reserve'}" name="root"></route>-->
8
- <!-- <route :comp="{name: 'task-graph'}" name="root"></route>-->
9
- <!-- <route :comp="{name: 'app-istall-function'}" name="root"></route>-->
10
- </article>
11
- <time-out></time-out>
12
- <message-box></message-box>
13
- <alert-box></alert-box>
14
- <alert-box-batch></alert-box-batch>
15
- </div>
16
- </template>
17
-
18
- <script>
19
-
20
- export default {
21
- ready () {
22
- if(!window.onerror) {
23
- window.onerror = function (message, file, line, col, error) {
24
- // HostApp.alert("Error occured: " + error.message)
25
- return false
26
- }
27
- }
28
- }
29
- }
30
- </script>
1
+ <template>
2
+ <!-- <app-base> -->
3
+ <div id="android-app">
4
+ <article>
5
+ <route :comp="{name: 'app-exploration-user'}" name="root"></route>
6
+ <!-- <route :comp="{name: 'app-process-supervisory'}" name="root"></route>-->
7
+ <!-- <route :comp="{name: 'apply-reserve'}" name="root"></route>-->
8
+ <!-- <route :comp="{name: 'task-graph'}" name="root"></route>-->
9
+ <!-- <route :comp="{name: 'app-istall-function'}" name="root"></route>-->
10
+ <!-- <route :comp="{name: 'login-app'}" name="root"></route>-->
11
+ </article>
12
+ <time-out></time-out>
13
+ <message-box></message-box>
14
+ <alert-box></alert-box>
15
+ <alert-box-batch></alert-box-batch>
16
+ </div>
17
+ </template>
18
+
19
+ <script>
20
+
21
+ import AlertBox from "vue-client/src/components/AlertBox";
22
+ import AlertBoxBatch from "vue-client/src/components/AlertBoxBatch";
23
+
24
+ export default {
25
+ ready () {
26
+ if(!window.onerror) {
27
+ window.onerror = function (message, file, line, col, error) {
28
+ // HostApp.alert("Error occured: " + error.message)
29
+ return false
30
+ }
31
+ }
32
+ },
33
+ components: { AlertBox, AlertBoxBatch }
34
+ }
35
+ </script>
package/src/apply.js CHANGED
@@ -61,7 +61,7 @@ export default function () {
61
61
  Vue.component('apply-charge-management', (resolve) => { require(['./components/product/Process/Processes/chargeManagement'], resolve) })
62
62
  Vue.component('apply-print-charge', (resolve) => { require(['./components/product/Process/Processes/Print/printCharge'], resolve) })
63
63
  Vue.component('apply-print-refund', (resolve) => { require(['./components/product/Process/Processes/Print/printRefund'], resolve) })
64
- Vue.component('print-build-order', (resolve) => { require(['./components/product/Process/Processes/Print/printBuildOrder'], resolve) })
64
+
65
65
  // 补充协议
66
66
  Vue.component('supplemental-agreement', (resolve) => { require(['./components/product/Process/Processes/supplementalAgreement'], resolve) })
67
67
  // 选择用户信息
@@ -76,7 +76,8 @@ export default function () {
76
76
  Vue.component('back-page', (resolve) => { require(['./components/product/VueUtils/ToolsPage'], resolve) })
77
77
  Vue.component('tree2', (resolve) => { require(['./components/product/VueUtils/Tree'], resolve) })
78
78
  Vue.component('apply-upload', (resolve) => { require(['./components/product/VueUtils/ApplyUpload'], resolve) })
79
- Vue.component('apply-high-meter', (resolve) => { require(['./components/product/VueUtils/GaoPaiYi/HighMeter'], resolve) })
79
+ // Vue.component('apply-high-meter', (resolve) => { require(['./components/product/VueUtils/GaoPaiYi/HighMeter'], resolve) })
80
+ Vue.component('apply-high-meter', (resolve) => { require(['./components/product/VueUtils/HighMeter'], resolve) })
80
81
 
81
82
  // 旧报装处理入口
82
83
  Vue.component('old-apply', (resolve) => { require(['./components/product/OldApply/OldApply'], resolve) })
@@ -86,4 +87,7 @@ export default function () {
86
87
 
87
88
  Vue.component('apply-material-detailed', (resolve) => { require(['./components/product/Material/MaterialDetailed'], resolve) })
88
89
  Vue.component('apply-install-project', (resolve) => { require(['./components/product/Install/InstallProject'], resolve) })
90
+
91
+ Vue.component('build-order-list', (resolve) => { require(['./components/product/Print/BuildOrder/buildOrderList'], resolve) })
92
+ Vue.component('print-build-order', (resolve) => { require(['./components/product/Print/BuildOrder/printBuildOrder'], resolve) })
89
93
  }
@@ -17,6 +17,7 @@ export default function () {
17
17
  Vue.component('app-istall-function', (resolve) => { require(['./components/android/Function/AppInstallFunction'], resolve) })
18
18
  Vue.component('app-function-service-control', (resolve) => { require(['./components/android/Function/AppFunctionServiceControl'], resolve) })
19
19
 
20
+ Vue.component('app-sign', (resolve) => { require(['./components/android/AppSign'], resolve) })
20
21
  Vue.component('app-take-pic', (resolve) => { require(['./components/android/AppTakePic'], resolve) })
21
22
  Vue.component('app-service-view', (resolve) => { require(['./components/android/AppServiceView'], resolve) })
22
23
  Vue.component('app-onetomany', (resolve) => { require(['./components/android/AppOnetomany'], resolve) })
@@ -25,4 +26,6 @@ export default function () {
25
26
  Vue.component('app-apply-devices-management', (resolve) => { require(['./components/android/Process/Processes/AppDevicesManagement'], resolve) })
26
27
  Vue.component('app-charge-management', (resolve) => { require(['./components/android/Process/Processes/AppChargeManagement'], resolve) })
27
28
  Vue.component('app-supplemental-agreement', (resolve) => { require(['./components/android/Process/Processes/AppSupplementalAgreement'], resolve) })
29
+
30
+ Vue.component('app-build-sign', (resolve) => { require(['./components/android/Process/Processes/AppBuildSign'], resolve) })
28
31
  }
@@ -1,6 +1,4 @@
1
1
  <template>
2
- <work-busy :is-busy="showWork" v-show="showWork"></work-busy>
3
-
4
2
  <div class="form-horizontal select-overspread">
5
3
  <div v-for="(index,item) in data.fields">
6
4
  <!--input-->
@@ -279,8 +277,7 @@ export default {
279
277
  model: {}, // 公司等属性
280
278
  disable_button: true, // 控制按钮禁用
281
279
  disable_modal_button: true, // 控制按钮禁用
282
- showButModal: false,
283
- showWork: false
280
+ showButModal: false
284
281
  }
285
282
  },
286
283
  watch: {
@@ -377,7 +374,6 @@ export default {
377
374
  },
378
375
  // 点击按钮组按钮
379
376
  async click_but (button) {
380
- this.showWork = true
381
377
  this.disable_button = true
382
378
 
383
379
  this.data.fields.forEach(item => {
@@ -388,7 +384,6 @@ export default {
388
384
 
389
385
  if (button.button_fields && button.button_fields.length > 0) {
390
386
  this.showButModal = true
391
- this.showWork = false
392
387
  return
393
388
  }
394
389
 
@@ -399,7 +394,6 @@ export default {
399
394
  }
400
395
  },
401
396
  confirmModal () {
402
- this.showWork = true
403
397
  this.closeModal()
404
398
 
405
399
  this.data.button.button_fields.forEach(item => {
@@ -0,0 +1,142 @@
1
+ <template>
2
+ <div class="panel">
3
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;">
4
+ <div class="row form-group" style="height: 240px;overflow: scroll;">
5
+ <img :src="f_sign_path" width="100%" height="100%" />
6
+ </div>
7
+ <div class="row text-right form-group">
8
+ <button class="btn" style="background-color: #f1e404;border-radius: 5px;margin-right: 10px" @click="clean">清除</button>
9
+ <button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click="sign">签名</button>
10
+ </div>
11
+ </div>
12
+ </div>
13
+ </template>
14
+ <script>
15
+ import {getNowDate, guid, isEmpty} from '../Util'
16
+ import {PagedList} from 'vue-client'
17
+ import {HttpResetClass} from 'vue-client'
18
+ import QRCode from 'qrcodejs2'
19
+ import Vue from "vue";
20
+
21
+ export default {
22
+ title: '签字',
23
+ props: ['filePath'],
24
+ data () {
25
+ return {
26
+ f_sign_path: null,
27
+ fileName: null
28
+ }
29
+ },
30
+ ready () {
31
+ this.f_sign_path = this.filePath
32
+ },
33
+ methods: {
34
+ clean () {
35
+ this.f_sign_path = null
36
+ this.fileName = null
37
+ this.$emit('sign-clean')
38
+ },
39
+ sign () {
40
+ this.delAudioFile(this.f_sign_path)
41
+ this.fileName = guid() + '.jpg'
42
+ HostApp.__callback__ = this.signCallback
43
+ HostApp.__this__ = this
44
+ HostApp.getSignature({
45
+ file: this.fileName,
46
+ requestCode: 111,
47
+ callback: 'javascript:HostApp.__callback__("f_sign_path", "%s");'
48
+ })
49
+ },
50
+ // 签名回调
51
+ signCallback (prop, signPath) {
52
+ console.log('==============签字回调============')
53
+ console.log(signPath)
54
+ HostApp.__this__.$set(prop, signPath)
55
+ console.log(HostApp.__this__.f_sign_path)
56
+
57
+ HostApp.__this__.uploadFile()
58
+
59
+ HostApp.__callback__ = null
60
+ HostApp.__this__ = null
61
+ },
62
+ uploadFile () {
63
+ console.log('===================签字文件上传==============')
64
+ let data = {
65
+ username: Vue.user.name,
66
+ fremarks: '报装手机签字文件',
67
+ fileName: HostApp.__this__.fileName,
68
+ fileUrl: HostApp.__this__.f_sign_path
69
+ }
70
+
71
+ console.log('-----------bzLogic-----------------')
72
+ console.log(JSON.stringify(data))
73
+ let res = HostApp.bzLogic({
74
+ 'logic': 'appFileUpload',
75
+ 'data': data
76
+ })
77
+ console.log('===============上传回调=================')
78
+ console.log(JSON.stringify(res))
79
+ HostApp.__this__.getFiles(res.id)
80
+ },
81
+ async getFiles (fileid) {
82
+ let http = new HttpResetClass()
83
+
84
+ let data = {
85
+ tablename: 't_files',
86
+ condition: `id = '${fileid}'`
87
+ }
88
+ let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/singleTable`, {data: data}, {
89
+ // let res = await http.load('POST', `rs/sql/singleTable`, {data: data}, {
90
+ warnMsg: null,
91
+ resolveMsg: null
92
+ })
93
+
94
+ console.log('=========查询回调===============')
95
+ let fileUrl = `${this.$androidUtil.getProxyUrl()}/${res.data[0].f_downloadpath.substring(res.data[0].f_downloadpath.lastIndexOf(":\\") + 2)}`
96
+ console.log(fileUrl)
97
+ // HostApp.__this__.$set('f_sign_path', fileUrl)
98
+ // HostApp.__this__.f_sign_path = fileUrl
99
+ this.f_sign_path = fileUrl
100
+
101
+ this.$emit('sign-success', fileUrl)
102
+ },
103
+ delAudioFile (signPath) {
104
+ if (!signPath) {
105
+ return
106
+ }
107
+ HostApp.delfile(signPath)
108
+ this.f_sign_path = null
109
+ this.fileName = null
110
+ }
111
+ },
112
+ events: {
113
+ },
114
+ computed: {
115
+ },
116
+ watch: {
117
+ }
118
+ }
119
+ </script>
120
+ <style scoped lang="less">
121
+ .qrcode {
122
+ display: inline-block !important;
123
+ margin: 10px 0px;
124
+ }
125
+ .panel-self{
126
+ border-radius: 10px;
127
+ border:1px solid #499EDF;
128
+ background-color: #F8F8F8;
129
+ }
130
+ .vertical-center {
131
+ display: flex;
132
+ align-items: center;
133
+ text-align: center;
134
+ }
135
+ /*清除model中的浮动*/
136
+ .clearfix:after,.clearfix:before{
137
+ display: table;
138
+ }
139
+ .clearfix:after{
140
+ clear: both;
141
+ }
142
+ </style>
@@ -105,6 +105,21 @@
105
105
  </datepicker>
106
106
  </div>
107
107
  </div>
108
+ <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
109
+ <label class="">稍后处理:</label>
110
+ <div class="col-xs-8" >
111
+ <v-select
112
+ width="100%"
113
+ v-model="model.f_is_later"
114
+ placeholder='稍后处理'
115
+ condition="f_is_later = '{}'"
116
+ :value.sync="model.f_is_later"
117
+ :options='$parent.$parent.laterList'
118
+ class="select select_list"
119
+ :value-single="true"
120
+ close-on-select ></v-select>
121
+ </div>
122
+ </div>
108
123
  <div class="row form-group text-right" style="">
109
124
  <button class="btn btn-primary" @click="$parent.$parent.search()">查询</button>
110
125
  <button class="btn btn-info" @click="$parent.$parent.clear()">清空</button>
@@ -157,6 +172,7 @@
157
172
  </div>
158
173
 
159
174
  <div class="col-xs-12 text-right">
175
+ <button class="btn btn-info" @click="$parent.$parent.$parent.later(row)" v-if="row.f_is_later !== '是'">稍后处理</button>
160
176
  <button class="btn btn-info" @click="$parent.$parent.$parent.click(row)">处理</button>
161
177
  </div>
162
178
  </div>
@@ -185,13 +201,31 @@ export default {
185
201
  criteriaShow: false,
186
202
  applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')], // 所有报建类型
187
203
  defnames: [{label: '全部', value: ''}],
188
- applyNatures: [{label: '全部', value: ''}] // 报建性质
204
+ applyNatures: [{label: '全部', value: ''}], // 报建性质
205
+ laterList: [
206
+ {label: '全部', value: ''},
207
+ {label: '是', value: '是'},
208
+ {label: '否', value: '否'}
209
+ ]
189
210
  }
190
211
  },
191
212
  ready () {
192
213
  this.search()
193
214
  },
194
215
  methods: {
216
+ async later (row) {
217
+ let res = await this.$showMessage('您确定要将此任务加入稍后处理吗?', ['confirm'])
218
+
219
+ if (res === 'confirm') {
220
+ row.f_is_later = '是'
221
+ let res = await this.$resetpost(
222
+ 'rs/entity/t_apply',
223
+ row
224
+ )
225
+
226
+ this.$refs.cp.$refs.cri.search()
227
+ }
228
+ },
195
229
  dialNumber (phone) {
196
230
  this.$showMessage(`是否拨打电话:${phone}`, ['confirm']).then((res) => {
197
231
  if (res === 'confirm') {