apply-clients 7.1.36-yuchuan-6 → 7.1.36-yuchuan-7
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/build/dev-server.js +25 -10
- package/index.html +39 -39
- package/package.json +1 -1
- package/src/apply.js +7 -0
- package/src/components/android/AppSign.vue +234 -234
- package/src/components/android/AppUpload.vue +275 -275
- package/src/components/android/Ignition/VentilationIgnitionHandle.vue +462 -462
- package/src/components/android/Process/AppServiceControl.vue +1437 -1437
- package/src/components/android/Supervisory/AppProcessSupervisory.vue +344 -344
- package/src/components/android/Task/ShiGongXinXi/AppShowBuildUser.vue +431 -431
- package/src/components/android/Task/yiban/ShowDone.vue +95 -95
- package/src/components/android/Task/yiban/satisfactionShow.vue +166 -166
- package/src/components/product/ApplyCharge/ApplyChargeList.vue +1101 -1101
- package/src/components/product/ApplyGaiXianCharge/ApplyGaiXianViewList.vue +272 -272
- package/src/components/product/ApplyGuanXian/GuanXianCaiLiao.vue +236 -236
- package/src/components/product/ApplyGuanXian/GuanXianExplorationSelect.vue +324 -324
- package/src/components/product/ApplyGuanXian/GuanXianSupervisoryhCart.vue +119 -119
- package/src/components/product/ApplyMap/ApplyDragaboutList.vue +223 -223
- package/src/components/product/ApplyMap/ApplyMapLocation.vue +862 -862
- package/src/components/product/ChongZheng/ApplyChongZhengList.vue +415 -415
- package/src/components/product/Function/InstallInfoSelect.vue +371 -371
- package/src/components/product/Function/Service/FunctionServiceControl.vue +586 -586
- package/src/components/product/GongJianPush/ApplyPushDispose.vue +206 -0
- package/src/components/product/GongJianPush/ApplyPushList.vue +196 -0
- package/src/components/product/GongJianPush/ApplyPushManage.vue +90 -0
- package/src/components/product/Ignition/IgnitionListManage.vue +602 -602
- package/src/components/product/Ignition/IgnitionRecord.vue +380 -380
- package/src/components/product/List/OldShowDevices.vue +271 -271
- package/src/components/product/List/ShowAllActivity.vue +540 -540
- package/src/components/product/List/ShowDevices.vue +279 -279
- package/src/components/product/Print/BuildOrder/buildOrderList.vue +446 -446
- package/src/components/product/Process/ExplorationSelect.vue +597 -597
- package/src/components/product/Process/NewExplorationSelect.vue +586 -586
- package/src/components/product/Process/Processes/Print/printCharge.vue +250 -250
- package/src/components/product/Process/Processes/Print/printGaiXianCharge.vue +244 -244
- package/src/components/product/Process/Processes/devicesManagement.vue +393 -393
- package/src/components/product/Process/Processes/newDevicesManagement.vue +413 -413
- package/src/components/product/Stop/StopApplyList.vue +224 -224
- package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +592 -592
- package/src/components/product/Supervisory/SupervisoryControl.vue +116 -116
- package/src/components/product/Supervisory/SupervisoryList.vue +557 -557
- package/src/components/product/Supervisory/YiBanSupervisoryList.vue +539 -539
- package/src/components/product/VueUtils/ApplyUpload.vue +285 -285
- package/src/components/product/records/AdjustmentRecordList.vue +162 -162
- package/src/main.js +27 -27
- package/yarn.lock +0 -9824
package/build/dev-server.js
CHANGED
|
@@ -6,17 +6,32 @@ var proxyMiddleware = require('http-proxy-middleware')
|
|
|
6
6
|
var app = express()
|
|
7
7
|
var compiler = webpack(config)
|
|
8
8
|
// var proxy = httpProxy.createProxyServer()
|
|
9
|
-
|
|
9
|
+
var ldap = 'http://193.168.1.44:8400/'
|
|
10
10
|
// var applyinstall = 'http://121.36.79.201:8400'
|
|
11
11
|
// var ldap = 'http://193.168.1.64:8082'
|
|
12
|
-
var ldap = 'http://
|
|
13
|
-
var applyinstall = 'http://
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
var fadada = 'http://
|
|
17
|
-
|
|
12
|
+
// var ldap = 'http://61.134.61.238:8555'
|
|
13
|
+
// var applyinstall = 'http://61.134.61.238:8555'
|
|
14
|
+
var applyinstall = 'http://193.168.1.44:8400/'
|
|
15
|
+
var fadada = 'http://193.168.1.44:8400/'
|
|
16
|
+
// var fadada = 'http://61.134.61.238:8555'
|
|
17
|
+
// var fadada = 'http://127.0.0.1:8080/'
|
|
18
18
|
var proxyTable = {
|
|
19
|
-
|
|
19
|
+
'/api/af-auth/login': {
|
|
20
|
+
target: fadada
|
|
21
|
+
},
|
|
22
|
+
'/rs/logic/getAllNode': {
|
|
23
|
+
target: fadada
|
|
24
|
+
},
|
|
25
|
+
'/android.html/rs': {
|
|
26
|
+
target: fadada,
|
|
27
|
+
pathRewrite: {
|
|
28
|
+
'^/android.html': ''
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
'/webapps/applyinstall/excel': {
|
|
32
|
+
target: fadada
|
|
33
|
+
},
|
|
34
|
+
|
|
20
35
|
'/rs/logic/pushShortUrlSms': {
|
|
21
36
|
target: fadada
|
|
22
37
|
},
|
|
@@ -163,10 +178,10 @@ app.use(hotMiddleware)
|
|
|
163
178
|
// serve pure static assets
|
|
164
179
|
app.use('/static', express.static('./static'))
|
|
165
180
|
|
|
166
|
-
module.exports = app.listen(
|
|
181
|
+
module.exports = app.listen(8400, function (err) {
|
|
167
182
|
if (err) {
|
|
168
183
|
console.log(err)
|
|
169
184
|
return
|
|
170
185
|
}
|
|
171
|
-
console.log('Listening at http://localhost:
|
|
186
|
+
console.log('Listening at http://localhost:8400')
|
|
172
187
|
})
|
package/index.html
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="zh-CN">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
|
6
|
-
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
|
|
7
|
-
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
|
|
8
|
-
<META HTTP-EQUIV="expires" CONTENT="0">
|
|
9
|
-
<title>报建系统</title>
|
|
10
|
-
<script type="text/javascript">
|
|
11
|
-
window._AMapSecurityConfig = {
|
|
12
|
-
serviceHost: 'http://193.168.1.44:8400/_AMapService'
|
|
13
|
-
// 例如 :serviceHost:'http://1.1.1.1:80/_AMapService',
|
|
14
|
-
}
|
|
15
|
-
</script>
|
|
16
|
-
<script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=aa8b7c6a524337cb733152217fc1e52b"></script>
|
|
17
|
-
<!--引入UI组件库(1.1版本) -->
|
|
18
|
-
<script src="https://webapi.amap.com/ui/1.1/main.js?v=1.1.1"></script>
|
|
19
|
-
<style media="screen">
|
|
20
|
-
/*url(./static/newmainbg.jpg)*/
|
|
21
|
-
|
|
22
|
-
body {
|
|
23
|
-
font-size:16px !important;
|
|
24
|
-
width: 100%;
|
|
25
|
-
background: #7f8eaf no-repeat center bottom;
|
|
26
|
-
background-size: cover;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
body .loginbg {
|
|
30
|
-
width: 100%;
|
|
31
|
-
height: 100%;
|
|
32
|
-
background: url(./static/loginbg.jpg) no-repeat center top;
|
|
33
|
-
}
|
|
34
|
-
</style>
|
|
35
|
-
</head>
|
|
36
|
-
<body id="bodymain" class="themeOne">
|
|
37
|
-
<app></app>
|
|
38
|
-
</body>
|
|
39
|
-
</html>
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="zh-CN">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
|
6
|
+
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
|
|
7
|
+
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
|
|
8
|
+
<META HTTP-EQUIV="expires" CONTENT="0">
|
|
9
|
+
<title>报建系统</title>
|
|
10
|
+
<script type="text/javascript">
|
|
11
|
+
window._AMapSecurityConfig = {
|
|
12
|
+
serviceHost: 'http://193.168.1.44:8400/_AMapService'
|
|
13
|
+
// 例如 :serviceHost:'http://1.1.1.1:80/_AMapService',
|
|
14
|
+
}
|
|
15
|
+
</script>
|
|
16
|
+
<script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=aa8b7c6a524337cb733152217fc1e52b"></script>
|
|
17
|
+
<!--引入UI组件库(1.1版本) -->
|
|
18
|
+
<script src="https://webapi.amap.com/ui/1.1/main.js?v=1.1.1"></script>
|
|
19
|
+
<style media="screen">
|
|
20
|
+
/*url(./static/newmainbg.jpg)*/
|
|
21
|
+
|
|
22
|
+
body {
|
|
23
|
+
font-size:16px !important;
|
|
24
|
+
width: 100%;
|
|
25
|
+
background: #7f8eaf no-repeat center bottom;
|
|
26
|
+
background-size: cover;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
body .loginbg {
|
|
30
|
+
width: 100%;
|
|
31
|
+
height: 100%;
|
|
32
|
+
background: url(./static/loginbg.jpg) no-repeat center top;
|
|
33
|
+
}
|
|
34
|
+
</style>
|
|
35
|
+
</head>
|
|
36
|
+
<body id="bodymain" class="themeOne">
|
|
37
|
+
<app></app>
|
|
38
|
+
</body>
|
|
39
|
+
</html>
|
package/package.json
CHANGED
package/src/apply.js
CHANGED
|
@@ -49,6 +49,13 @@ export default function () {
|
|
|
49
49
|
// 报建菜单页面控制层
|
|
50
50
|
Vue.component('function-service-control', (resolve) => { require(['./components/product/Function/Service/FunctionServiceControl'], resolve) })
|
|
51
51
|
|
|
52
|
+
// 公建数据推送业务
|
|
53
|
+
Vue.component('gongjian-apply-manage', (resolve) => { require(['./components/product/GongJianPush/ApplyPushManage'], resolve) })
|
|
54
|
+
// 报建数据列表
|
|
55
|
+
Vue.component('gongjian-apply-list', (resolve) => { require(['./components/product/GongJianPush/ApplyPushList'], resolve) })
|
|
56
|
+
// 报建数据详情
|
|
57
|
+
Vue.component('gongjian-apply-dispose', (resolve) => { require(['./components/product/GongJianPush/ApplyPushDispose'], resolve) })
|
|
58
|
+
|
|
52
59
|
// 终止报建页面入口
|
|
53
60
|
Vue.component('stop-apply', (resolve) => { require(['./components/product/Stop/StopApply'], resolve) })
|
|
54
61
|
Vue.component('stop-apply-list', (resolve) => { require(['./components/product/Stop/StopApplyList'], resolve) })
|
|
@@ -1,234 +1,234 @@
|
|
|
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" v-if="isclean">清除</button>
|
|
9
|
-
<button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click="sign" v-if="issign && defname !== '现场勘察'">签名</button>
|
|
10
|
-
<button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click="show_notification" v-if="issign && defname === '现场勘察'">签名</button>
|
|
11
|
-
</div>
|
|
12
|
-
</div>
|
|
13
|
-
<modal v-if="notification" :show.sync="notification" v-ref:modal :large="true" :backdrop="false">
|
|
14
|
-
<article slot="modal-body" class="modal-body clearfix">
|
|
15
|
-
<!-- 基本信息 -->
|
|
16
|
-
<div class="form-group col-xs-12 panel panel-info">
|
|
17
|
-
<div class="panel-heading head col-xs-12" style="background-color: #e8f4ff;margin-bottom: 10px">
|
|
18
|
-
<div class="col-xs-6 text-left">用户须知</div>
|
|
19
|
-
</div>
|
|
20
|
-
<div class="form-group row">
|
|
21
|
-
<div class="col-xs-12">
|
|
22
|
-
<textarea rows="26" cols="30" readonly=true v-if="selectdata.f_apply_type === '民用报建'" style="align: left">
|
|
23
|
-
我单位/本人自愿委托贵公司作为一体化服务单位,组织实施我单位/本人所属天然气设施建设工程,包括天然气设施建设工程勘察、设计、施工、监理、竣工验收和材料供应等相关事宜。
|
|
24
|
-
安装天然气若遇邻居阻挡时由我单位/本人协调解决,否则不予勘设安装。我单位/本人签字后即认为同意。
|
|
25
|
-
设计员已向我单位/本人说明安装位置及条件,后期不得自行变更。
|
|
26
|
-
|
|
27
|
-
</textarea>
|
|
28
|
-
<textarea rows="26" cols="30" readonly=true v-if="selectdata.f_apply_type === '非民用报建'">
|
|
29
|
-
|
|
30
|
-
我单位/本人自愿委托贵公司作为一体化服务单位,组织实施我单位/本人所属天然气设施建设工程,包括天然气设施建设工程勘察、设计、施工、监理、竣工验收、材料供应和燃气泄露报警器、安全自动切断装置等相关事宜。
|
|
31
|
-
安装天然气若遇邻居阻挡时由我单位/本人协调解决,否则不予勘设安装。
|
|
32
|
-
设计员己向我单位/本人说明安装位置及条件,后期不得自行变更。我单位/本人签字后即认为同意。
|
|
33
|
-
根据《中华人民共和国安全生产法》第二章三十六条、《陕西省燃气管理条例》 第四章第三十二条:“非居民燃气用户必须安装使用燃气泄露报警器、安全自动切断装置和防暴照明灯。”用户也可自行购买安装,自行购买安装的用户须提供以下资料:
|
|
34
|
-
1、提供产品质量检验报告和产品合格证书;
|
|
35
|
-
2、提供购货发票复印件;
|
|
36
|
-
3、提供产品消防认证;
|
|
37
|
-
4、提供安装单位工程施工资料;
|
|
38
|
-
5、提供安装单位资质;
|
|
39
|
-
6、用户外购安装报警器需在我公司备案(不收取任何费用)。
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
</textarea>
|
|
43
|
-
</div>
|
|
44
|
-
</div>
|
|
45
|
-
<div class="row text-right form-group">
|
|
46
|
-
<button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click="close_notification" >确认</button>
|
|
47
|
-
</div>
|
|
48
|
-
</div>
|
|
49
|
-
</article>
|
|
50
|
-
<footer slot="modal-footer" class="modal-footer">
|
|
51
|
-
<template>
|
|
52
|
-
|
|
53
|
-
</template>
|
|
54
|
-
</footer>
|
|
55
|
-
</modal>
|
|
56
|
-
</div>
|
|
57
|
-
</template>
|
|
58
|
-
<script>
|
|
59
|
-
import {getNowDate, guid, isEmpty} from '../Util'
|
|
60
|
-
import {PagedList} from 'vue-client'
|
|
61
|
-
import {HttpResetClass} from 'vue-client'
|
|
62
|
-
import QRCode from 'qrcodejs2'
|
|
63
|
-
import Vue from "vue";
|
|
64
|
-
|
|
65
|
-
export default {
|
|
66
|
-
title: '签字',
|
|
67
|
-
props: ['blobid', 'defname', 'type', 'filePath', 'isclean', 'issign','selectdata'],
|
|
68
|
-
data () {
|
|
69
|
-
return {
|
|
70
|
-
f_sign_path: null,
|
|
71
|
-
fileName: null,
|
|
72
|
-
imgid: null,
|
|
73
|
-
notification: false
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
ready () {
|
|
77
|
-
this.getFiles()
|
|
78
|
-
this.f_sign_path = this.filePath
|
|
79
|
-
},
|
|
80
|
-
methods: {
|
|
81
|
-
clean () {
|
|
82
|
-
this.f_sign_path = null
|
|
83
|
-
this.fileName = null
|
|
84
|
-
this.$emit('sign-clean')
|
|
85
|
-
this.delfile(this.imgid)
|
|
86
|
-
},
|
|
87
|
-
delfile(file) {
|
|
88
|
-
this.f_sign_path = null
|
|
89
|
-
this.fileName = null
|
|
90
|
-
this.$emit('sign-clean')
|
|
91
|
-
this.$resetdelete(`${this.$androidUtil.getProxyUrl()}/rs/entity/t_files`, {id: file}, {
|
|
92
|
-
resolveMsg: '删除成功',
|
|
93
|
-
rejectMsg: '删除失败'
|
|
94
|
-
}).then((res) => {
|
|
95
|
-
this.$dispatch("delResid", file)
|
|
96
|
-
})
|
|
97
|
-
},
|
|
98
|
-
show_notification() {
|
|
99
|
-
this.notification = true
|
|
100
|
-
},
|
|
101
|
-
close_notification() {
|
|
102
|
-
this.notification = false
|
|
103
|
-
this.sign()
|
|
104
|
-
},
|
|
105
|
-
sign() {
|
|
106
|
-
this.delAudioFile(this.f_sign_path)
|
|
107
|
-
this.fileName = guid() + '.jpg'
|
|
108
|
-
HostApp.__callback__ = this.signCallback
|
|
109
|
-
HostApp.__this__ = this
|
|
110
|
-
HostApp.getSignature({
|
|
111
|
-
file: this.fileName,
|
|
112
|
-
requestCode: 111,
|
|
113
|
-
callback: 'javascript:HostApp.__callback__("f_sign_path", "%s");'
|
|
114
|
-
})
|
|
115
|
-
},
|
|
116
|
-
// 签名回调
|
|
117
|
-
signCallback (prop, signPath) {
|
|
118
|
-
console.log('==============签字回调============')
|
|
119
|
-
console.log(signPath)
|
|
120
|
-
HostApp.__this__.$set(prop, signPath)
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
console.log(HostApp.__this__.f_sign_path)
|
|
124
|
-
|
|
125
|
-
HostApp.__this__.uploadFile()
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
HostApp.__callback__ = null
|
|
129
|
-
HostApp.__this__ = null
|
|
130
|
-
},
|
|
131
|
-
uploadFile () {
|
|
132
|
-
console.log('===================签字文件上传==============')
|
|
133
|
-
let data = {
|
|
134
|
-
blobid: HostApp.__this__.blobid,
|
|
135
|
-
type: HostApp.__this__.type,
|
|
136
|
-
defname: HostApp.__this__.defname,
|
|
137
|
-
username: Vue.user.name,
|
|
138
|
-
fremarks: '报装手机签字文件',
|
|
139
|
-
fileName: HostApp.__this__.fileName,
|
|
140
|
-
fileUrl: HostApp.__this__.f_sign_path,
|
|
141
|
-
f_apply_type:HostApp.__this__.selectdata.f_apply_type,
|
|
142
|
-
}
|
|
143
|
-
console.log('-----------bzLogic-----------------')
|
|
144
|
-
console.log(JSON.stringify(data))
|
|
145
|
-
let res = HostApp.bzLogic({
|
|
146
|
-
'logic': 'appFileUpload',
|
|
147
|
-
'data': data
|
|
148
|
-
})
|
|
149
|
-
console.log('===============上传回调=================')
|
|
150
|
-
console.log(JSON.stringify(res))
|
|
151
|
-
this.imgid = res.id
|
|
152
|
-
HostApp.__this__.getFiles(res.id)
|
|
153
|
-
},
|
|
154
|
-
async getFiles (fileid) {
|
|
155
|
-
console.log("cess",this.selectdata.f_apply_type)
|
|
156
|
-
let http = new HttpResetClass()
|
|
157
|
-
let data
|
|
158
|
-
if (fileid && this.defname.includes('签字')) {
|
|
159
|
-
console.log('=========签字回调===============')
|
|
160
|
-
data = {
|
|
161
|
-
tablename: 't_files',
|
|
162
|
-
condition: `id = '${fileid}'`
|
|
163
|
-
}
|
|
164
|
-
}else if (this.defname.includes('签字')){
|
|
165
|
-
data = {
|
|
166
|
-
tablename: 't_files',
|
|
167
|
-
condition: `f_blobid = '${this.blobid}' and fremarks = '报装手机签字文件' and fusetype = '${this.type}' order by f_uploaddate desc `
|
|
168
|
-
}
|
|
169
|
-
} else {
|
|
170
|
-
console.log('=========签字查看===============')
|
|
171
|
-
data = {
|
|
172
|
-
tablename: 't_files',
|
|
173
|
-
condition: `f_blobid = '${this.blobid}' and fremarks = '报装手机签字文件' and defname = '${this.defname}' order by f_uploaddate desc `
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/applySingleTable`, {data: data}, {
|
|
177
|
-
// let res = await http.load('POST', `rs/sql/applySingleTable`, {data: data}, {
|
|
178
|
-
warnMsg: null,
|
|
179
|
-
resolveMsg: null
|
|
180
|
-
})
|
|
181
|
-
if(res.data.length > 0){
|
|
182
|
-
console.log('=========查询回调===============')
|
|
183
|
-
let fileUrl = `${this.$androidUtil.getProxyUrl()}/${res.data[0].f_downloadpath.substring(res.data[0].f_downloadpath.lastIndexOf(":\\") + 2)}`
|
|
184
|
-
console.log(fileUrl)
|
|
185
|
-
// HostApp.__this__.$set('f_sign_path', fileUrl)
|
|
186
|
-
// HostApp.__this__.f_sign_path = fileUrl
|
|
187
|
-
this.f_sign_path = fileUrl
|
|
188
|
-
this.imgid = res.data[0].id
|
|
189
|
-
let f_fileUrl = `http://193.168.1.44:8400/${res.data[0].f_downloadpath.substring(res.data[0].f_downloadpath.lastIndexOf(":\\") + 2)}`
|
|
190
|
-
this.$emit('sign-success', f_fileUrl)
|
|
191
|
-
}else {
|
|
192
|
-
this.f_sign_path = null
|
|
193
|
-
}
|
|
194
|
-
},
|
|
195
|
-
delAudioFile (signPath) {
|
|
196
|
-
if (!signPath) {
|
|
197
|
-
return
|
|
198
|
-
}
|
|
199
|
-
HostApp.delfile(signPath)
|
|
200
|
-
this.f_sign_path = null
|
|
201
|
-
this.fileName = null
|
|
202
|
-
}
|
|
203
|
-
},
|
|
204
|
-
events: {
|
|
205
|
-
},
|
|
206
|
-
computed: {
|
|
207
|
-
},
|
|
208
|
-
watch: {
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
</script>
|
|
212
|
-
<style scoped lang="less">
|
|
213
|
-
.qrcode {
|
|
214
|
-
display: inline-block !important;
|
|
215
|
-
margin: 10px 0px;
|
|
216
|
-
}
|
|
217
|
-
.panel-self{
|
|
218
|
-
border-radius: 10px;
|
|
219
|
-
border:1px solid #499EDF;
|
|
220
|
-
background-color: #F8F8F8;
|
|
221
|
-
}
|
|
222
|
-
.vertical-center {
|
|
223
|
-
display: flex;
|
|
224
|
-
align-items: center;
|
|
225
|
-
text-align: center;
|
|
226
|
-
}
|
|
227
|
-
/*清除model中的浮动*/
|
|
228
|
-
.clearfix:after,.clearfix:before{
|
|
229
|
-
display: table;
|
|
230
|
-
}
|
|
231
|
-
.clearfix:after{
|
|
232
|
-
clear: both;
|
|
233
|
-
}
|
|
234
|
-
</style>
|
|
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" v-if="isclean">清除</button>
|
|
9
|
+
<button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click="sign" v-if="issign && defname !== '现场勘察'">签名</button>
|
|
10
|
+
<button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click="show_notification" v-if="issign && defname === '现场勘察'">签名</button>
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
<modal v-if="notification" :show.sync="notification" v-ref:modal :large="true" :backdrop="false">
|
|
14
|
+
<article slot="modal-body" class="modal-body clearfix">
|
|
15
|
+
<!-- 基本信息 -->
|
|
16
|
+
<div class="form-group col-xs-12 panel panel-info">
|
|
17
|
+
<div class="panel-heading head col-xs-12" style="background-color: #e8f4ff;margin-bottom: 10px">
|
|
18
|
+
<div class="col-xs-6 text-left">用户须知</div>
|
|
19
|
+
</div>
|
|
20
|
+
<div class="form-group row">
|
|
21
|
+
<div class="col-xs-12">
|
|
22
|
+
<textarea rows="26" cols="30" readonly=true v-if="selectdata.f_apply_type === '民用报建'" style="align: left">
|
|
23
|
+
我单位/本人自愿委托贵公司作为一体化服务单位,组织实施我单位/本人所属天然气设施建设工程,包括天然气设施建设工程勘察、设计、施工、监理、竣工验收和材料供应等相关事宜。
|
|
24
|
+
安装天然气若遇邻居阻挡时由我单位/本人协调解决,否则不予勘设安装。我单位/本人签字后即认为同意。
|
|
25
|
+
设计员已向我单位/本人说明安装位置及条件,后期不得自行变更。
|
|
26
|
+
|
|
27
|
+
</textarea>
|
|
28
|
+
<textarea rows="26" cols="30" readonly=true v-if="selectdata.f_apply_type === '非民用报建'">
|
|
29
|
+
|
|
30
|
+
我单位/本人自愿委托贵公司作为一体化服务单位,组织实施我单位/本人所属天然气设施建设工程,包括天然气设施建设工程勘察、设计、施工、监理、竣工验收、材料供应和燃气泄露报警器、安全自动切断装置等相关事宜。
|
|
31
|
+
安装天然气若遇邻居阻挡时由我单位/本人协调解决,否则不予勘设安装。
|
|
32
|
+
设计员己向我单位/本人说明安装位置及条件,后期不得自行变更。我单位/本人签字后即认为同意。
|
|
33
|
+
根据《中华人民共和国安全生产法》第二章三十六条、《陕西省燃气管理条例》 第四章第三十二条:“非居民燃气用户必须安装使用燃气泄露报警器、安全自动切断装置和防暴照明灯。”用户也可自行购买安装,自行购买安装的用户须提供以下资料:
|
|
34
|
+
1、提供产品质量检验报告和产品合格证书;
|
|
35
|
+
2、提供购货发票复印件;
|
|
36
|
+
3、提供产品消防认证;
|
|
37
|
+
4、提供安装单位工程施工资料;
|
|
38
|
+
5、提供安装单位资质;
|
|
39
|
+
6、用户外购安装报警器需在我公司备案(不收取任何费用)。
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
</textarea>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
<div class="row text-right form-group">
|
|
46
|
+
<button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click="close_notification" >确认</button>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
</article>
|
|
50
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
51
|
+
<template>
|
|
52
|
+
|
|
53
|
+
</template>
|
|
54
|
+
</footer>
|
|
55
|
+
</modal>
|
|
56
|
+
</div>
|
|
57
|
+
</template>
|
|
58
|
+
<script>
|
|
59
|
+
import {getNowDate, guid, isEmpty} from '../Util'
|
|
60
|
+
import {PagedList} from 'vue-client'
|
|
61
|
+
import {HttpResetClass} from 'vue-client'
|
|
62
|
+
import QRCode from 'qrcodejs2'
|
|
63
|
+
import Vue from "vue";
|
|
64
|
+
|
|
65
|
+
export default {
|
|
66
|
+
title: '签字',
|
|
67
|
+
props: ['blobid', 'defname', 'type', 'filePath', 'isclean', 'issign','selectdata'],
|
|
68
|
+
data () {
|
|
69
|
+
return {
|
|
70
|
+
f_sign_path: null,
|
|
71
|
+
fileName: null,
|
|
72
|
+
imgid: null,
|
|
73
|
+
notification: false
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
ready () {
|
|
77
|
+
this.getFiles()
|
|
78
|
+
this.f_sign_path = this.filePath
|
|
79
|
+
},
|
|
80
|
+
methods: {
|
|
81
|
+
clean () {
|
|
82
|
+
this.f_sign_path = null
|
|
83
|
+
this.fileName = null
|
|
84
|
+
this.$emit('sign-clean')
|
|
85
|
+
this.delfile(this.imgid)
|
|
86
|
+
},
|
|
87
|
+
delfile(file) {
|
|
88
|
+
this.f_sign_path = null
|
|
89
|
+
this.fileName = null
|
|
90
|
+
this.$emit('sign-clean')
|
|
91
|
+
this.$resetdelete(`${this.$androidUtil.getProxyUrl()}/rs/entity/t_files`, {id: file}, {
|
|
92
|
+
resolveMsg: '删除成功',
|
|
93
|
+
rejectMsg: '删除失败'
|
|
94
|
+
}).then((res) => {
|
|
95
|
+
this.$dispatch("delResid", file)
|
|
96
|
+
})
|
|
97
|
+
},
|
|
98
|
+
show_notification() {
|
|
99
|
+
this.notification = true
|
|
100
|
+
},
|
|
101
|
+
close_notification() {
|
|
102
|
+
this.notification = false
|
|
103
|
+
this.sign()
|
|
104
|
+
},
|
|
105
|
+
sign() {
|
|
106
|
+
this.delAudioFile(this.f_sign_path)
|
|
107
|
+
this.fileName = guid() + '.jpg'
|
|
108
|
+
HostApp.__callback__ = this.signCallback
|
|
109
|
+
HostApp.__this__ = this
|
|
110
|
+
HostApp.getSignature({
|
|
111
|
+
file: this.fileName,
|
|
112
|
+
requestCode: 111,
|
|
113
|
+
callback: 'javascript:HostApp.__callback__("f_sign_path", "%s");'
|
|
114
|
+
})
|
|
115
|
+
},
|
|
116
|
+
// 签名回调
|
|
117
|
+
signCallback (prop, signPath) {
|
|
118
|
+
console.log('==============签字回调============')
|
|
119
|
+
console.log(signPath)
|
|
120
|
+
HostApp.__this__.$set(prop, signPath)
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
console.log(HostApp.__this__.f_sign_path)
|
|
124
|
+
|
|
125
|
+
HostApp.__this__.uploadFile()
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
HostApp.__callback__ = null
|
|
129
|
+
HostApp.__this__ = null
|
|
130
|
+
},
|
|
131
|
+
uploadFile () {
|
|
132
|
+
console.log('===================签字文件上传==============')
|
|
133
|
+
let data = {
|
|
134
|
+
blobid: HostApp.__this__.blobid,
|
|
135
|
+
type: HostApp.__this__.type,
|
|
136
|
+
defname: HostApp.__this__.defname,
|
|
137
|
+
username: Vue.user.name,
|
|
138
|
+
fremarks: '报装手机签字文件',
|
|
139
|
+
fileName: HostApp.__this__.fileName,
|
|
140
|
+
fileUrl: HostApp.__this__.f_sign_path,
|
|
141
|
+
f_apply_type:HostApp.__this__.selectdata.f_apply_type,
|
|
142
|
+
}
|
|
143
|
+
console.log('-----------bzLogic-----------------')
|
|
144
|
+
console.log(JSON.stringify(data))
|
|
145
|
+
let res = HostApp.bzLogic({
|
|
146
|
+
'logic': 'appFileUpload',
|
|
147
|
+
'data': data
|
|
148
|
+
})
|
|
149
|
+
console.log('===============上传回调=================')
|
|
150
|
+
console.log(JSON.stringify(res))
|
|
151
|
+
this.imgid = res.id
|
|
152
|
+
HostApp.__this__.getFiles(res.id)
|
|
153
|
+
},
|
|
154
|
+
async getFiles (fileid) {
|
|
155
|
+
console.log("cess",this.selectdata.f_apply_type)
|
|
156
|
+
let http = new HttpResetClass()
|
|
157
|
+
let data
|
|
158
|
+
if (fileid && this.defname.includes('签字')) {
|
|
159
|
+
console.log('=========签字回调===============')
|
|
160
|
+
data = {
|
|
161
|
+
tablename: 't_files',
|
|
162
|
+
condition: `id = '${fileid}'`
|
|
163
|
+
}
|
|
164
|
+
}else if (this.defname.includes('签字')){
|
|
165
|
+
data = {
|
|
166
|
+
tablename: 't_files',
|
|
167
|
+
condition: `f_blobid = '${this.blobid}' and fremarks = '报装手机签字文件' and fusetype = '${this.type}' order by f_uploaddate desc `
|
|
168
|
+
}
|
|
169
|
+
} else {
|
|
170
|
+
console.log('=========签字查看===============')
|
|
171
|
+
data = {
|
|
172
|
+
tablename: 't_files',
|
|
173
|
+
condition: `f_blobid = '${this.blobid}' and fremarks = '报装手机签字文件' and defname = '${this.defname}' order by f_uploaddate desc `
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/applySingleTable`, {data: data}, {
|
|
177
|
+
// let res = await http.load('POST', `rs/sql/applySingleTable`, {data: data}, {
|
|
178
|
+
warnMsg: null,
|
|
179
|
+
resolveMsg: null
|
|
180
|
+
})
|
|
181
|
+
if(res.data.length > 0){
|
|
182
|
+
console.log('=========查询回调===============')
|
|
183
|
+
let fileUrl = `${this.$androidUtil.getProxyUrl()}/${res.data[0].f_downloadpath.substring(res.data[0].f_downloadpath.lastIndexOf(":\\") + 2)}`
|
|
184
|
+
console.log(fileUrl)
|
|
185
|
+
// HostApp.__this__.$set('f_sign_path', fileUrl)
|
|
186
|
+
// HostApp.__this__.f_sign_path = fileUrl
|
|
187
|
+
this.f_sign_path = fileUrl
|
|
188
|
+
this.imgid = res.data[0].id
|
|
189
|
+
let f_fileUrl = `http://193.168.1.44:8400/${res.data[0].f_downloadpath.substring(res.data[0].f_downloadpath.lastIndexOf(":\\") + 2)}`
|
|
190
|
+
this.$emit('sign-success', f_fileUrl)
|
|
191
|
+
}else {
|
|
192
|
+
this.f_sign_path = null
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
delAudioFile (signPath) {
|
|
196
|
+
if (!signPath) {
|
|
197
|
+
return
|
|
198
|
+
}
|
|
199
|
+
HostApp.delfile(signPath)
|
|
200
|
+
this.f_sign_path = null
|
|
201
|
+
this.fileName = null
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
events: {
|
|
205
|
+
},
|
|
206
|
+
computed: {
|
|
207
|
+
},
|
|
208
|
+
watch: {
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
</script>
|
|
212
|
+
<style scoped lang="less">
|
|
213
|
+
.qrcode {
|
|
214
|
+
display: inline-block !important;
|
|
215
|
+
margin: 10px 0px;
|
|
216
|
+
}
|
|
217
|
+
.panel-self{
|
|
218
|
+
border-radius: 10px;
|
|
219
|
+
border:1px solid #499EDF;
|
|
220
|
+
background-color: #F8F8F8;
|
|
221
|
+
}
|
|
222
|
+
.vertical-center {
|
|
223
|
+
display: flex;
|
|
224
|
+
align-items: center;
|
|
225
|
+
text-align: center;
|
|
226
|
+
}
|
|
227
|
+
/*清除model中的浮动*/
|
|
228
|
+
.clearfix:after,.clearfix:before{
|
|
229
|
+
display: table;
|
|
230
|
+
}
|
|
231
|
+
.clearfix:after{
|
|
232
|
+
clear: both;
|
|
233
|
+
}
|
|
234
|
+
</style>
|