apply-clients 3.4.2-FuGu-21 → 3.4.2-FuGu-24
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 +4 -4
- package/package.json +1 -1
- package/src/apply.js +77 -75
- package/src/components/android/Process/Processes/AppInstallationDetails.vue +23 -10
- package/src/components/product/Process/Print/dispatchlist.vue +139 -0
- package/src/components/product/{ApplyCharge → Process/Print}/printCharge.vue +142 -142
- package/src/components/product/Process/Processes/dispatchdetails.vue +123 -0
- package/src/components/product/Process/Service/ServiceControl.vue +22 -0
package/build/dev-server.js
CHANGED
|
@@ -6,10 +6,10 @@ var proxyMiddleware = require('http-proxy-middleware')
|
|
|
6
6
|
var app = express()
|
|
7
7
|
var compiler = webpack(config)
|
|
8
8
|
// var proxy = httpProxy.createProxyServer()
|
|
9
|
-
var ldap = 'http://124.70.12.19:8400'
|
|
10
|
-
var applyinstall = 'http://124.70.12.19:8400'
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
// var ldap = 'http://124.70.12.19:8400'
|
|
10
|
+
// var applyinstall = 'http://124.70.12.19:8400'
|
|
11
|
+
var ldap = 'http://192.168.50.4:8400'
|
|
12
|
+
var applyinstall = 'http://127.0.0.1:8082'
|
|
13
13
|
|
|
14
14
|
var proxyTable = {
|
|
15
15
|
'/rs/logic/getSaleInitData': {
|
package/package.json
CHANGED
package/src/apply.js
CHANGED
|
@@ -1,75 +1,77 @@
|
|
|
1
|
-
import Vue from 'vue'
|
|
2
|
-
Vue.config.silent = true
|
|
3
|
-
import ApplyGetSaleParam from './stores/ApplyGetSaleParams'
|
|
4
|
-
import ApplyLoadParams from './stores/ApplyLoadParams'
|
|
5
|
-
/** ****************服务插件*********************/
|
|
6
|
-
|
|
7
|
-
export default function () {
|
|
8
|
-
Vue.use(ApplyGetSaleParam)
|
|
9
|
-
Vue.use(ApplyLoadParams)
|
|
10
|
-
/** ***************************报建模块*********************************/
|
|
11
|
-
/** 报建流程业务 **/
|
|
12
|
-
// 报建流程业务总入口
|
|
13
|
-
Vue.component('exploration-user', (resolve) => { require(['./components/product/Process/ExplorationUser'], resolve) })
|
|
14
|
-
// 报建流程业务总入口页面list布局
|
|
15
|
-
Vue.component('exploration-select', (resolve) => { require(['./components/product/Process/ExplorationSelect'], resolve) })
|
|
16
|
-
// 业务tab(control层)页
|
|
17
|
-
Vue.component('service-control', (resolve) => { require(['./components/product/Process/Service/ServiceControl'], resolve) })
|
|
18
|
-
// 公共业务显示(view层)页
|
|
19
|
-
Vue.component('service-view', (resolve) => { require(['./components/product/ServiceView'], resolve) })
|
|
20
|
-
Vue.component('onetomany', (resolve) => { require(['./components/product/Onetomany'], resolve) })
|
|
21
|
-
// 显示退回理由tab页
|
|
22
|
-
Vue.component('show-back-reason', (resolve) => { require(['./components/product/Process/Service/ShowBackReason'], resolve) })
|
|
23
|
-
|
|
24
|
-
/** 报建监控业务 **/
|
|
25
|
-
// 流程监控入口页
|
|
26
|
-
Vue.component('supervisory-control', (resolve) => { require(['./components/product/Supervisory/SupervisoryControl'], resolve) })
|
|
27
|
-
// 流程监控列表页
|
|
28
|
-
Vue.component('supervisory-list', (resolve) => { require(['./components/product/Supervisory/SupervisoryList'], resolve) })
|
|
29
|
-
// 业务tab(control层)页
|
|
30
|
-
Vue.component('supervisory-service-control', (resolve) => { require(['./components/product/Supervisory/Service/SupervisoryServiceControl'], resolve) })
|
|
31
|
-
// 流程列表页
|
|
32
|
-
Vue.component('supervisory-chart', (resolve) => { require(['./components/product/Supervisory/SupervisoryhCart'], resolve) })
|
|
33
|
-
|
|
34
|
-
/** 报建功能业务 **/
|
|
35
|
-
// 报建功能业务总入口
|
|
36
|
-
Vue.component('install-function', (resolve) => { require(['./components/product/Function/InstallFunction'], resolve) })
|
|
37
|
-
// 报建功能工程列表
|
|
38
|
-
Vue.component('installinfoselect', (resolve) => { require(['./components/product/Function/InstallInfoSelect'], resolve) })
|
|
39
|
-
// 报建菜单页面控制层
|
|
40
|
-
Vue.component('function-service-control', (resolve) => { require(['./components/product/Function/Service/FunctionServiceControl'], resolve) })
|
|
41
|
-
|
|
42
|
-
/** 预约报建 **/
|
|
43
|
-
// Vue.component('order-apply', (resolve) => { require(['./components/product/Order/OrderApply'], resolve) })
|
|
44
|
-
// Vue.component('order-apply-list', (resolve) => { require(['./components/product/Order/OrderApplyList'], resolve) })
|
|
45
|
-
// Vue.component('order-message', (resolve) => { require(['./components/product/Order/OrderMessage'], resolve) })
|
|
46
|
-
|
|
47
|
-
// 终止报建页面入口
|
|
48
|
-
Vue.component('stop-apply', (resolve) => { require(['./components/product/Stop/StopApply'], resolve) })
|
|
49
|
-
Vue.component('stop-apply-list', (resolve) => { require(['./components/product/Stop/StopApplyList'], resolve) })
|
|
50
|
-
|
|
51
|
-
/** 报建收费记录 **/
|
|
52
|
-
Vue.component('apply-charge-search', (resolve) => { require(['./components/product/ApplyCharge/ApplyChargeSearch'], resolve) })
|
|
53
|
-
Vue.component('apply-charge-list', (resolve) => { require(['./components/product/ApplyCharge/ApplyChargeList'], resolve) })
|
|
54
|
-
Vue.component('apply-print-charge', (resolve) => { require(['./components/product/
|
|
55
|
-
|
|
56
|
-
// 地址管理
|
|
57
|
-
Vue.component('apply-address-userinfo-management', (resolve) => { require(['./components/product/Process/Processes/addressAndUserinfoManagement'], resolve) })
|
|
58
|
-
// 施工安装明细
|
|
59
|
-
Vue.component('installation-details', (resolve) => { require(['./components/product/Process/Processes/InstallationDetails'], resolve) })
|
|
60
|
-
// 收费管理
|
|
61
|
-
Vue.component('apply-charge-management', (resolve) => { require(['./components/product/Process/Processes/chargeManagement'], resolve) })
|
|
62
|
-
|
|
63
|
-
// 补充协议
|
|
64
|
-
Vue.component('supplemental-agreement', (resolve) => { require(['./components/product/Process/Processes/supplementalAgreement'], resolve) })
|
|
65
|
-
// 选择用户信息
|
|
66
|
-
Vue.component('select-userinfo', (resolve) => { require(['./components/product/Process/Processes/selectUserinfo'], resolve) })
|
|
67
|
-
// 选择报建项目
|
|
68
|
-
Vue.component('select-apply', (resolve) => { require(['./components/product/Process/Processes/selectApply'], resolve) })
|
|
69
|
-
// 设备管理
|
|
70
|
-
Vue.component('apply-devices-management', (resolve) => { require(['./components/product/Process/Processes/devicesManagement'], resolve) })
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
Vue.component('apply-
|
|
74
|
-
|
|
75
|
-
}
|
|
1
|
+
import Vue from 'vue'
|
|
2
|
+
Vue.config.silent = true
|
|
3
|
+
import ApplyGetSaleParam from './stores/ApplyGetSaleParams'
|
|
4
|
+
import ApplyLoadParams from './stores/ApplyLoadParams'
|
|
5
|
+
/** ****************服务插件*********************/
|
|
6
|
+
|
|
7
|
+
export default function () {
|
|
8
|
+
Vue.use(ApplyGetSaleParam)
|
|
9
|
+
Vue.use(ApplyLoadParams)
|
|
10
|
+
/** ***************************报建模块*********************************/
|
|
11
|
+
/** 报建流程业务 **/
|
|
12
|
+
// 报建流程业务总入口
|
|
13
|
+
Vue.component('exploration-user', (resolve) => { require(['./components/product/Process/ExplorationUser'], resolve) })
|
|
14
|
+
// 报建流程业务总入口页面list布局
|
|
15
|
+
Vue.component('exploration-select', (resolve) => { require(['./components/product/Process/ExplorationSelect'], resolve) })
|
|
16
|
+
// 业务tab(control层)页
|
|
17
|
+
Vue.component('service-control', (resolve) => { require(['./components/product/Process/Service/ServiceControl'], resolve) })
|
|
18
|
+
// 公共业务显示(view层)页
|
|
19
|
+
Vue.component('service-view', (resolve) => { require(['./components/product/ServiceView'], resolve) })
|
|
20
|
+
Vue.component('onetomany', (resolve) => { require(['./components/product/Onetomany'], resolve) })
|
|
21
|
+
// 显示退回理由tab页
|
|
22
|
+
Vue.component('show-back-reason', (resolve) => { require(['./components/product/Process/Service/ShowBackReason'], resolve) })
|
|
23
|
+
|
|
24
|
+
/** 报建监控业务 **/
|
|
25
|
+
// 流程监控入口页
|
|
26
|
+
Vue.component('supervisory-control', (resolve) => { require(['./components/product/Supervisory/SupervisoryControl'], resolve) })
|
|
27
|
+
// 流程监控列表页
|
|
28
|
+
Vue.component('supervisory-list', (resolve) => { require(['./components/product/Supervisory/SupervisoryList'], resolve) })
|
|
29
|
+
// 业务tab(control层)页
|
|
30
|
+
Vue.component('supervisory-service-control', (resolve) => { require(['./components/product/Supervisory/Service/SupervisoryServiceControl'], resolve) })
|
|
31
|
+
// 流程列表页
|
|
32
|
+
Vue.component('supervisory-chart', (resolve) => { require(['./components/product/Supervisory/SupervisoryhCart'], resolve) })
|
|
33
|
+
|
|
34
|
+
/** 报建功能业务 **/
|
|
35
|
+
// 报建功能业务总入口
|
|
36
|
+
Vue.component('install-function', (resolve) => { require(['./components/product/Function/InstallFunction'], resolve) })
|
|
37
|
+
// 报建功能工程列表
|
|
38
|
+
Vue.component('installinfoselect', (resolve) => { require(['./components/product/Function/InstallInfoSelect'], resolve) })
|
|
39
|
+
// 报建菜单页面控制层
|
|
40
|
+
Vue.component('function-service-control', (resolve) => { require(['./components/product/Function/Service/FunctionServiceControl'], resolve) })
|
|
41
|
+
|
|
42
|
+
/** 预约报建 **/
|
|
43
|
+
// Vue.component('order-apply', (resolve) => { require(['./components/product/Order/OrderApply'], resolve) })
|
|
44
|
+
// Vue.component('order-apply-list', (resolve) => { require(['./components/product/Order/OrderApplyList'], resolve) })
|
|
45
|
+
// Vue.component('order-message', (resolve) => { require(['./components/product/Order/OrderMessage'], resolve) })
|
|
46
|
+
|
|
47
|
+
// 终止报建页面入口
|
|
48
|
+
Vue.component('stop-apply', (resolve) => { require(['./components/product/Stop/StopApply'], resolve) })
|
|
49
|
+
Vue.component('stop-apply-list', (resolve) => { require(['./components/product/Stop/StopApplyList'], resolve) })
|
|
50
|
+
|
|
51
|
+
/** 报建收费记录 **/
|
|
52
|
+
Vue.component('apply-charge-search', (resolve) => { require(['./components/product/ApplyCharge/ApplyChargeSearch'], resolve) })
|
|
53
|
+
Vue.component('apply-charge-list', (resolve) => { require(['./components/product/ApplyCharge/ApplyChargeList'], resolve) })
|
|
54
|
+
Vue.component('apply-print-charge', (resolve) => { require(['./components/product/Process/Print/printCharge'], resolve) })
|
|
55
|
+
|
|
56
|
+
// 地址管理
|
|
57
|
+
Vue.component('apply-address-userinfo-management', (resolve) => { require(['./components/product/Process/Processes/addressAndUserinfoManagement'], resolve) })
|
|
58
|
+
// 施工安装明细
|
|
59
|
+
Vue.component('installation-details', (resolve) => { require(['./components/product/Process/Processes/InstallationDetails'], resolve) })
|
|
60
|
+
// 收费管理
|
|
61
|
+
Vue.component('apply-charge-management', (resolve) => { require(['./components/product/Process/Processes/chargeManagement'], resolve) })
|
|
62
|
+
|
|
63
|
+
// 补充协议
|
|
64
|
+
Vue.component('supplemental-agreement', (resolve) => { require(['./components/product/Process/Processes/supplementalAgreement'], resolve) })
|
|
65
|
+
// 选择用户信息
|
|
66
|
+
Vue.component('select-userinfo', (resolve) => { require(['./components/product/Process/Processes/selectUserinfo'], resolve) })
|
|
67
|
+
// 选择报建项目
|
|
68
|
+
Vue.component('select-apply', (resolve) => { require(['./components/product/Process/Processes/selectApply'], resolve) })
|
|
69
|
+
// 设备管理
|
|
70
|
+
Vue.component('apply-devices-management', (resolve) => { require(['./components/product/Process/Processes/devicesManagement'], resolve) })
|
|
71
|
+
// 派工信息
|
|
72
|
+
Vue.component('apply-dispatchdetails', (resolve) => { require(['./components/product/Process/Processes/dispatchdetails'], resolve) })
|
|
73
|
+
Vue.component('apply-dispatch-list', (resolve) => { require(['./components/product/Process/Print/dispatchlist'], resolve) })
|
|
74
|
+
/** VueUtils **/
|
|
75
|
+
Vue.component('apply-upload', (resolve) => { require(['./components/product/VueUtils/ApplyUpload'], resolve) })
|
|
76
|
+
Vue.component('apply-high-meter', (resolve) => { require(['./components/product/VueUtils/HighMeter'], resolve) })
|
|
77
|
+
}
|
|
@@ -140,12 +140,19 @@
|
|
|
140
140
|
<div class="form-group row vertical-center">
|
|
141
141
|
<label class="col-xs-4 control-label">安 装 人:</label>
|
|
142
142
|
<div class="col-xs-8">
|
|
143
|
-
<input
|
|
144
|
-
class="
|
|
145
|
-
:value.sync="item.f_install_person"
|
|
143
|
+
<input
|
|
144
|
+
class="form-control input_view"
|
|
145
|
+
:value.sync="installperson(item.f_install_person)"
|
|
146
146
|
v-model="item.f_install_person"
|
|
147
|
-
|
|
148
|
-
|
|
147
|
+
placeholder="安装人"
|
|
148
|
+
readonly></input>
|
|
149
|
+
<!-- <input-select-->
|
|
150
|
+
<!-- class="select select_list"-->
|
|
151
|
+
<!-- :value.sync="item.f_install_person"-->
|
|
152
|
+
<!-- v-model="item.f_install_person"-->
|
|
153
|
+
<!-- :options="installperson"-->
|
|
154
|
+
<!-- :disable="mark === 1"-->
|
|
155
|
+
<!-- :valueSingle="true"></input-select>-->
|
|
149
156
|
</div>
|
|
150
157
|
</div>
|
|
151
158
|
<div class="form-group row vertical-center">
|
|
@@ -377,12 +384,18 @@ export default {
|
|
|
377
384
|
computed: {
|
|
378
385
|
// 安装人
|
|
379
386
|
installperson() {
|
|
380
|
-
return
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
value: item.name
|
|
387
|
+
return function (f_install_person) {
|
|
388
|
+
if (isEmpty(f_install_person)) {
|
|
389
|
+
return Vue.user.name
|
|
384
390
|
}
|
|
385
|
-
|
|
391
|
+
return f_install_person
|
|
392
|
+
}
|
|
393
|
+
// return Vue.user.f_installman.map(item => {
|
|
394
|
+
// return {
|
|
395
|
+
// label: item.name,
|
|
396
|
+
// value: item.name
|
|
397
|
+
// }
|
|
398
|
+
// })
|
|
386
399
|
},
|
|
387
400
|
// 表向
|
|
388
401
|
aroundmeters() {
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<style id="printChargeStyle">
|
|
3
|
+
td {
|
|
4
|
+
height: 30px;
|
|
5
|
+
text-align: center;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
table {
|
|
9
|
+
margin: auto;
|
|
10
|
+
/*width: 100%;*/
|
|
11
|
+
border-collapse: collapse;
|
|
12
|
+
border: 1px solid black;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
h1, h2, h3, h4, h5, h6 {
|
|
16
|
+
text-align: center;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.orgs {
|
|
20
|
+
border-bottom: 2px solid;
|
|
21
|
+
padding: 5px;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.date {
|
|
25
|
+
float: left;
|
|
26
|
+
padding-left: 10px;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.status {
|
|
30
|
+
float: right;
|
|
31
|
+
padding-right: 10px;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.seal {
|
|
35
|
+
position: absolute;
|
|
36
|
+
right: 100px;
|
|
37
|
+
top: 120px;
|
|
38
|
+
width: 150px;
|
|
39
|
+
height: 150px;
|
|
40
|
+
/*opacity: 0.5;*/
|
|
41
|
+
z-index: -1;
|
|
42
|
+
}
|
|
43
|
+
</style>
|
|
44
|
+
<div id="printCharge">
|
|
45
|
+
<h4>
|
|
46
|
+
<span class="orgs">
|
|
47
|
+
{{ orgs }}燃气工程派工单
|
|
48
|
+
</span>
|
|
49
|
+
</h4>
|
|
50
|
+
<table border="1" width="100%">
|
|
51
|
+
<tr>
|
|
52
|
+
<td style="width: 10%">派单人</td>
|
|
53
|
+
<td style="width: 15%">{{ user }}</td>
|
|
54
|
+
<td style="width: 10%">派单时间</td>
|
|
55
|
+
<td style="width: 20%">{{ new Date().Format('yyyy年MM月dd日') }}</td>
|
|
56
|
+
<td style="width: 20%">
|
|
57
|
+
商用 <input type="checkbox" id="shang" value="商用" v-model="f_user_type" :disabled="false" >
|
|
58
|
+
</td>
|
|
59
|
+
<td style="width: 20%">
|
|
60
|
+
民用 <input type="checkbox" id="min" value="民用" v-model="f_user_type" :disabled="false">
|
|
61
|
+
</td>
|
|
62
|
+
</tr>
|
|
63
|
+
<tr>
|
|
64
|
+
<td>施工地点</td>
|
|
65
|
+
<td colspan="5">{{ selectdata.f_address }}</td>
|
|
66
|
+
</tr>
|
|
67
|
+
<tr>
|
|
68
|
+
<td>现场联系人</td>
|
|
69
|
+
<td >{{ data[0].f_contact }}</td>
|
|
70
|
+
<td>联系电话</td>
|
|
71
|
+
<td >{{ data[0].f_phone }}</td>
|
|
72
|
+
<td>户数</td>
|
|
73
|
+
<td>{{ data.households }}</td>
|
|
74
|
+
</tr>
|
|
75
|
+
<tr>
|
|
76
|
+
<td>工程内容</td>
|
|
77
|
+
<td colspan="6">{{selectdata.f_construction_unit}}</td>
|
|
78
|
+
</tr>
|
|
79
|
+
<tr>
|
|
80
|
+
<td>施工负责人</td>
|
|
81
|
+
<td colspan="2">{{selectdata.f_construction_worker}}</td>
|
|
82
|
+
<td>项目负责人</td>
|
|
83
|
+
<td colspan="2"></td>
|
|
84
|
+
</tr>
|
|
85
|
+
</table>
|
|
86
|
+
<img class="seal" border="0" :src="src" alt="">
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
<print-element v-show="false" v-ref:print id='printCharge' styleid='printChargeStyle'
|
|
90
|
+
top='20' left='30' width='100%' height='100%'>
|
|
91
|
+
</print-element>
|
|
92
|
+
</template>
|
|
93
|
+
|
|
94
|
+
<script>
|
|
95
|
+
import {isEmpty} from '../../../Util'
|
|
96
|
+
|
|
97
|
+
Date.prototype.Format = function (fmt) {
|
|
98
|
+
var o = {
|
|
99
|
+
"M+": this.getMonth() + 1, // 月份
|
|
100
|
+
"d+": this.getDate(), // 日
|
|
101
|
+
"H+": this.getHours(), // 小时
|
|
102
|
+
"m+": this.getMinutes(), // 分
|
|
103
|
+
"s+": this.getSeconds(), // 秒
|
|
104
|
+
"q+": Math.floor((this.getMonth() + 3) / 3), // 季度
|
|
105
|
+
"S": this.getMilliseconds() // 毫秒
|
|
106
|
+
}
|
|
107
|
+
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length))
|
|
108
|
+
for (var k in o)
|
|
109
|
+
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)))
|
|
110
|
+
return fmt
|
|
111
|
+
}
|
|
112
|
+
export default {
|
|
113
|
+
title: '打印派工单票据',
|
|
114
|
+
props: ['selectdata', 'data'],
|
|
115
|
+
data () {
|
|
116
|
+
return {
|
|
117
|
+
f_user_type: [this.data[0].f_user_type !== '民用' ? '商用' : '民用']
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
ready () {
|
|
121
|
+
},
|
|
122
|
+
methods: {},
|
|
123
|
+
computed: {
|
|
124
|
+
orgs () {
|
|
125
|
+
return this.$login.f.orgs
|
|
126
|
+
},
|
|
127
|
+
user(){
|
|
128
|
+
return this.$login.f.name
|
|
129
|
+
},
|
|
130
|
+
src () {
|
|
131
|
+
// return require(`./img/${this.$login.f.number}.png`)
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
</script>
|
|
136
|
+
|
|
137
|
+
<style scoped>
|
|
138
|
+
|
|
139
|
+
</style>
|
|
@@ -1,142 +1,142 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<style id="printChargeStyle">
|
|
3
|
-
td{
|
|
4
|
-
height: 30px;
|
|
5
|
-
text-align: center;
|
|
6
|
-
}
|
|
7
|
-
table{
|
|
8
|
-
margin: auto;
|
|
9
|
-
/*width: 100%;*/
|
|
10
|
-
border-collapse:collapse;
|
|
11
|
-
border: 1px solid black;
|
|
12
|
-
}
|
|
13
|
-
h1,h2,h3,h4,h5,h6 {
|
|
14
|
-
text-align: center;
|
|
15
|
-
}
|
|
16
|
-
.orgs {
|
|
17
|
-
border-bottom: 2px solid;
|
|
18
|
-
padding: 5px;
|
|
19
|
-
}
|
|
20
|
-
.date {
|
|
21
|
-
float: left;
|
|
22
|
-
padding-left: 10px;
|
|
23
|
-
}
|
|
24
|
-
.status {
|
|
25
|
-
float: right;
|
|
26
|
-
padding-right: 10px;
|
|
27
|
-
}
|
|
28
|
-
.seal {
|
|
29
|
-
position: absolute;
|
|
30
|
-
right: 100px;
|
|
31
|
-
top: 120px;
|
|
32
|
-
width: 150px;
|
|
33
|
-
height: 150px;
|
|
34
|
-
/*opacity: 0.5;*/
|
|
35
|
-
z-index: -1;
|
|
36
|
-
}
|
|
37
|
-
</style>
|
|
38
|
-
<div id="printCharge">
|
|
39
|
-
<h4>
|
|
40
|
-
<span class="orgs">
|
|
41
|
-
{{orgs}}统一收据
|
|
42
|
-
</span>
|
|
43
|
-
</h4>
|
|
44
|
-
<table border="1" width="100%">
|
|
45
|
-
<tr>
|
|
46
|
-
<td colspan="2" style="border: none">
|
|
47
|
-
开票日期:{{ new Date().Format('yyyy年MM月dd日') }}
|
|
48
|
-
</td>
|
|
49
|
-
<td colspan="2" style="border: none">
|
|
50
|
-
收据编码:{{ charge.f_charge_number }}
|
|
51
|
-
</td>
|
|
52
|
-
<td colspan="2" style="border: none">
|
|
53
|
-
状态:{{ charge.f_charge_status }}
|
|
54
|
-
</td>
|
|
55
|
-
</tr>
|
|
56
|
-
<tr>
|
|
57
|
-
<td style="width: 17%">用户姓名</td>
|
|
58
|
-
<td colspan="2" style="width: 33%">{{ selectdata.f_user_name }}</td>
|
|
59
|
-
<td style="width: 17%">用户编号</td>
|
|
60
|
-
<td colspan="2" style="width: 33%">{{ selectdata.f_userinfo_code }}</td>
|
|
61
|
-
</tr>
|
|
62
|
-
<tr>
|
|
63
|
-
<td>用户地址</td>
|
|
64
|
-
<td colspan="5">{{ selectdata.f_address }}</td>
|
|
65
|
-
</tr>
|
|
66
|
-
<tr>
|
|
67
|
-
<td>收款项目</td>
|
|
68
|
-
<td colspan="2">{{ charge.f_payment_term }}</td>
|
|
69
|
-
<td>收款方式</td>
|
|
70
|
-
<td colspan="2">{{ charge.f_payment_method }}</td>
|
|
71
|
-
</tr>
|
|
72
|
-
<tr>
|
|
73
|
-
<td>金额</td>
|
|
74
|
-
<td colspan="2">{{ charge.f_charge_money }}</td>
|
|
75
|
-
<td>金额大写</td>
|
|
76
|
-
<td colspan="2">{{ charge.f_amount_words }}</td>
|
|
77
|
-
</tr>
|
|
78
|
-
<tr>
|
|
79
|
-
<td>收款人</td>
|
|
80
|
-
<td colspan="2">{{ charge.f_charge_collectors }}</td>
|
|
81
|
-
<td>销售方(章)</td>
|
|
82
|
-
<td colspan="2"></td>
|
|
83
|
-
</tr>
|
|
84
|
-
<tr>
|
|
85
|
-
<td>备  注</td>
|
|
86
|
-
<td colspan="5">{{ charge.f_charge_remarks }}</td>
|
|
87
|
-
</tr>
|
|
88
|
-
<tr>
|
|
89
|
-
<td colspan="6">
|
|
90
|
-
请持此收据到{{orgs}}营业厅换取发票
|
|
91
|
-
</td>
|
|
92
|
-
</tr>
|
|
93
|
-
</table>
|
|
94
|
-
<img class="seal" border="0" :src="src" alt="">
|
|
95
|
-
</div>
|
|
96
|
-
|
|
97
|
-
<print-element v-show="false" v-ref:print id='printCharge' styleid='printChargeStyle'
|
|
98
|
-
top='20' left='30' width='100%' height='100%'>
|
|
99
|
-
</print-element>
|
|
100
|
-
</template>
|
|
101
|
-
|
|
102
|
-
<script>
|
|
103
|
-
import { isEmpty } from '
|
|
104
|
-
Date.prototype.Format = function (fmt) {
|
|
105
|
-
var o = {
|
|
106
|
-
"M+": this.getMonth() + 1, //月份
|
|
107
|
-
"d+": this.getDate(), //日
|
|
108
|
-
"H+": this.getHours(), //小时
|
|
109
|
-
"m+": this.getMinutes(), //分
|
|
110
|
-
"s+": this.getSeconds(), //秒
|
|
111
|
-
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
|
|
112
|
-
"S": this.getMilliseconds() //毫秒
|
|
113
|
-
};
|
|
114
|
-
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
|
|
115
|
-
for (var k in o)
|
|
116
|
-
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
|
|
117
|
-
return fmt;
|
|
118
|
-
}
|
|
119
|
-
export default {
|
|
120
|
-
title: '打印收费票据',
|
|
121
|
-
props: ['selectdata', 'charge'],
|
|
122
|
-
data () {
|
|
123
|
-
return {}
|
|
124
|
-
},
|
|
125
|
-
ready () {
|
|
126
|
-
},
|
|
127
|
-
methods: {
|
|
128
|
-
},
|
|
129
|
-
computed: {
|
|
130
|
-
orgs () {
|
|
131
|
-
return this.$login.f.orgs
|
|
132
|
-
},
|
|
133
|
-
src () {
|
|
134
|
-
// return require(`./img/${this.$login.f.number}.png`)
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
</script>
|
|
139
|
-
|
|
140
|
-
<style scoped>
|
|
141
|
-
|
|
142
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<style id="printChargeStyle">
|
|
3
|
+
td{
|
|
4
|
+
height: 30px;
|
|
5
|
+
text-align: center;
|
|
6
|
+
}
|
|
7
|
+
table{
|
|
8
|
+
margin: auto;
|
|
9
|
+
/*width: 100%;*/
|
|
10
|
+
border-collapse:collapse;
|
|
11
|
+
border: 1px solid black;
|
|
12
|
+
}
|
|
13
|
+
h1,h2,h3,h4,h5,h6 {
|
|
14
|
+
text-align: center;
|
|
15
|
+
}
|
|
16
|
+
.orgs {
|
|
17
|
+
border-bottom: 2px solid;
|
|
18
|
+
padding: 5px;
|
|
19
|
+
}
|
|
20
|
+
.date {
|
|
21
|
+
float: left;
|
|
22
|
+
padding-left: 10px;
|
|
23
|
+
}
|
|
24
|
+
.status {
|
|
25
|
+
float: right;
|
|
26
|
+
padding-right: 10px;
|
|
27
|
+
}
|
|
28
|
+
.seal {
|
|
29
|
+
position: absolute;
|
|
30
|
+
right: 100px;
|
|
31
|
+
top: 120px;
|
|
32
|
+
width: 150px;
|
|
33
|
+
height: 150px;
|
|
34
|
+
/*opacity: 0.5;*/
|
|
35
|
+
z-index: -1;
|
|
36
|
+
}
|
|
37
|
+
</style>
|
|
38
|
+
<div id="printCharge">
|
|
39
|
+
<h4>
|
|
40
|
+
<span class="orgs">
|
|
41
|
+
{{orgs}}统一收据
|
|
42
|
+
</span>
|
|
43
|
+
</h4>
|
|
44
|
+
<table border="1" width="100%">
|
|
45
|
+
<tr>
|
|
46
|
+
<td colspan="2" style="border: none">
|
|
47
|
+
开票日期:{{ new Date().Format('yyyy年MM月dd日') }}
|
|
48
|
+
</td>
|
|
49
|
+
<td colspan="2" style="border: none">
|
|
50
|
+
收据编码:{{ charge.f_charge_number }}
|
|
51
|
+
</td>
|
|
52
|
+
<td colspan="2" style="border: none">
|
|
53
|
+
状态:{{ charge.f_charge_status }}
|
|
54
|
+
</td>
|
|
55
|
+
</tr>
|
|
56
|
+
<tr>
|
|
57
|
+
<td style="width: 17%">用户姓名</td>
|
|
58
|
+
<td colspan="2" style="width: 33%">{{ selectdata.f_user_name }}</td>
|
|
59
|
+
<td style="width: 17%">用户编号</td>
|
|
60
|
+
<td colspan="2" style="width: 33%">{{ selectdata.f_userinfo_code }}</td>
|
|
61
|
+
</tr>
|
|
62
|
+
<tr>
|
|
63
|
+
<td>用户地址</td>
|
|
64
|
+
<td colspan="5">{{ selectdata.f_address }}</td>
|
|
65
|
+
</tr>
|
|
66
|
+
<tr>
|
|
67
|
+
<td>收款项目</td>
|
|
68
|
+
<td colspan="2">{{ charge.f_payment_term }}</td>
|
|
69
|
+
<td>收款方式</td>
|
|
70
|
+
<td colspan="2">{{ charge.f_payment_method }}</td>
|
|
71
|
+
</tr>
|
|
72
|
+
<tr>
|
|
73
|
+
<td>金额</td>
|
|
74
|
+
<td colspan="2">{{ charge.f_charge_money }}</td>
|
|
75
|
+
<td>金额大写</td>
|
|
76
|
+
<td colspan="2">{{ charge.f_amount_words }}</td>
|
|
77
|
+
</tr>
|
|
78
|
+
<tr>
|
|
79
|
+
<td>收款人</td>
|
|
80
|
+
<td colspan="2">{{ charge.f_charge_collectors }}</td>
|
|
81
|
+
<td>销售方(章)</td>
|
|
82
|
+
<td colspan="2"></td>
|
|
83
|
+
</tr>
|
|
84
|
+
<tr>
|
|
85
|
+
<td>备  注</td>
|
|
86
|
+
<td colspan="5">{{ charge.f_charge_remarks }}</td>
|
|
87
|
+
</tr>
|
|
88
|
+
<tr>
|
|
89
|
+
<td colspan="6">
|
|
90
|
+
请持此收据到{{orgs}}营业厅换取发票
|
|
91
|
+
</td>
|
|
92
|
+
</tr>
|
|
93
|
+
</table>
|
|
94
|
+
<img class="seal" border="0" :src="src" alt="">
|
|
95
|
+
</div>
|
|
96
|
+
|
|
97
|
+
<print-element v-show="false" v-ref:print id='printCharge' styleid='printChargeStyle'
|
|
98
|
+
top='20' left='30' width='100%' height='100%'>
|
|
99
|
+
</print-element>
|
|
100
|
+
</template>
|
|
101
|
+
|
|
102
|
+
<script>
|
|
103
|
+
import { isEmpty } from '../../../Util'
|
|
104
|
+
Date.prototype.Format = function (fmt) {
|
|
105
|
+
var o = {
|
|
106
|
+
"M+": this.getMonth() + 1, //月份
|
|
107
|
+
"d+": this.getDate(), //日
|
|
108
|
+
"H+": this.getHours(), //小时
|
|
109
|
+
"m+": this.getMinutes(), //分
|
|
110
|
+
"s+": this.getSeconds(), //秒
|
|
111
|
+
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
|
|
112
|
+
"S": this.getMilliseconds() //毫秒
|
|
113
|
+
};
|
|
114
|
+
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
|
|
115
|
+
for (var k in o)
|
|
116
|
+
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
|
|
117
|
+
return fmt;
|
|
118
|
+
}
|
|
119
|
+
export default {
|
|
120
|
+
title: '打印收费票据',
|
|
121
|
+
props: ['selectdata', 'charge'],
|
|
122
|
+
data () {
|
|
123
|
+
return {}
|
|
124
|
+
},
|
|
125
|
+
ready () {
|
|
126
|
+
},
|
|
127
|
+
methods: {
|
|
128
|
+
},
|
|
129
|
+
computed: {
|
|
130
|
+
orgs () {
|
|
131
|
+
return this.$login.f.orgs
|
|
132
|
+
},
|
|
133
|
+
src () {
|
|
134
|
+
// return require(`./img/${this.$login.f.number}.png`)
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
</script>
|
|
139
|
+
|
|
140
|
+
<style scoped>
|
|
141
|
+
|
|
142
|
+
</style>
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="col-sm-12" style="margin: 20px 0px;">
|
|
3
|
+
<div _v-16a373b8="" class="col-sm-12 form-group" style="margin-bottom: 20px;">
|
|
4
|
+
<label _v-16a373b8="" class="form-group select-overspread">派工单</label>
|
|
5
|
+
<button
|
|
6
|
+
type="button"
|
|
7
|
+
name="button"
|
|
8
|
+
class="button_search button_spacing"
|
|
9
|
+
@click="showPrintModal()"
|
|
10
|
+
>打印预览
|
|
11
|
+
</button>
|
|
12
|
+
</div>
|
|
13
|
+
<modal v-if="showPrint" :show.sync="showPrint" v-ref:modal :large="true" :backdrop="false" title="打印预览">
|
|
14
|
+
<header slot="modal-header" class="modal-header">
|
|
15
|
+
<button type="button" class="close" @click="closeModal"><span>×</span></button>
|
|
16
|
+
<h4 class="modal-title">打印预览</h4>
|
|
17
|
+
</header>
|
|
18
|
+
<article slot="modal-body" class="modal-body clearfix">
|
|
19
|
+
<apply-dispatch-list :selectdata="selectdata" :data="charge" v-ref:print></apply-dispatch-list>
|
|
20
|
+
</article>
|
|
21
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
22
|
+
<button type="button" class="btn btn-primary" @click="print()">打印</button>
|
|
23
|
+
</footer>
|
|
24
|
+
</modal>
|
|
25
|
+
</div>
|
|
26
|
+
</template>
|
|
27
|
+
<script>
|
|
28
|
+
import {getNowDate, isEmpty} from '../../../Util'
|
|
29
|
+
import {PagedList} from 'vue-client'
|
|
30
|
+
import {HttpResetClass} from 'vue-client'
|
|
31
|
+
import Vue from 'vue'
|
|
32
|
+
|
|
33
|
+
export default {
|
|
34
|
+
title: '派工信息',
|
|
35
|
+
props: {
|
|
36
|
+
selectdata: {
|
|
37
|
+
type: Object
|
|
38
|
+
},
|
|
39
|
+
mark: {
|
|
40
|
+
type: Number,
|
|
41
|
+
default: 0
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
data() {
|
|
45
|
+
return {
|
|
46
|
+
showCharge: false, // 派工明细
|
|
47
|
+
showPrint: false, // 打印
|
|
48
|
+
model: {
|
|
49
|
+
data: null
|
|
50
|
+
}, // 记录
|
|
51
|
+
charge: {}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
ready() {
|
|
55
|
+
this.search()
|
|
56
|
+
},
|
|
57
|
+
methods: {
|
|
58
|
+
print() {
|
|
59
|
+
this.$refs.print.$refs.print.PrintTable()
|
|
60
|
+
},
|
|
61
|
+
showPrintModal() {
|
|
62
|
+
this.charge = this.model.data
|
|
63
|
+
this.showPrint = true
|
|
64
|
+
},
|
|
65
|
+
async showChargeModal() {
|
|
66
|
+
this.getUserAddress()
|
|
67
|
+
if (this.selectdata.f_apply_type === '团购报建') {
|
|
68
|
+
this.charge.f_dev_info_id = this.selectdata.f_dev_id
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
this.showCharge = true
|
|
72
|
+
},
|
|
73
|
+
async search() {
|
|
74
|
+
let http = new HttpResetClass()
|
|
75
|
+
let data = {
|
|
76
|
+
f_process_id: this.selectdata.f_process_id
|
|
77
|
+
}
|
|
78
|
+
let res = await http.load('POST', 'rs/sql/getDispatchdetails', {data: data}, {
|
|
79
|
+
resolveMsg: null,
|
|
80
|
+
rejectMsg: '派工信息查询失败!!!'
|
|
81
|
+
})
|
|
82
|
+
let roe = await http.load('POST', 'rs/sql/gethouseholds', {data: data}, {
|
|
83
|
+
resolveMsg: null,
|
|
84
|
+
rejectMsg: '户数信息查询失败!!!'
|
|
85
|
+
})
|
|
86
|
+
this.model.data = res.data
|
|
87
|
+
this.model.data.households = roe.data[0].households
|
|
88
|
+
},
|
|
89
|
+
// 关闭对话框
|
|
90
|
+
closeModal() {
|
|
91
|
+
this.showCharge = false
|
|
92
|
+
this.showInvalid = false
|
|
93
|
+
this.showPrint = false
|
|
94
|
+
this.charge = {}
|
|
95
|
+
this.search()
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
events: {},
|
|
99
|
+
computed: {
|
|
100
|
+
paymentMethod() {
|
|
101
|
+
return this.$appdata.getParam("付款方式")
|
|
102
|
+
},
|
|
103
|
+
paymentTerm() {
|
|
104
|
+
return this.$appdata.getParam("收费项目")
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
watch: {}
|
|
108
|
+
}
|
|
109
|
+
</script>
|
|
110
|
+
<style scoped>
|
|
111
|
+
.textNoLineBreak {
|
|
112
|
+
white-space: nowrap;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.head-but {
|
|
116
|
+
margin-left: 5px;
|
|
117
|
+
height: 34px;
|
|
118
|
+
/*background-color: #6aa6e2;*/
|
|
119
|
+
border-radius: 4px;
|
|
120
|
+
font-family: PingFang;
|
|
121
|
+
color: #ffffff;
|
|
122
|
+
}
|
|
123
|
+
</style>
|
|
@@ -443,6 +443,28 @@ export default {
|
|
|
443
443
|
}
|
|
444
444
|
})
|
|
445
445
|
},
|
|
446
|
+
// 获取片区
|
|
447
|
+
async getWorker () {
|
|
448
|
+
let data = {
|
|
449
|
+
source: 'this.getParentByType($organization$).getChildByName($安装员$).getChildren()',
|
|
450
|
+
userid: this.$login.f.id
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
let http = new HttpResetClass()
|
|
454
|
+
let res = await http.load(
|
|
455
|
+
'POST',
|
|
456
|
+
`rs/search`,
|
|
457
|
+
{data: data},
|
|
458
|
+
{resolveMsg: null, rejectMsg: '施工负责人查询失败!!!'}
|
|
459
|
+
)
|
|
460
|
+
|
|
461
|
+
return res.data.map(item => {
|
|
462
|
+
return {
|
|
463
|
+
label: item.name,
|
|
464
|
+
value: item.name
|
|
465
|
+
}
|
|
466
|
+
})
|
|
467
|
+
},
|
|
446
468
|
// 缴费前置
|
|
447
469
|
chargeBefore () {
|
|
448
470
|
if (Number(this.show_data.f_due_money) > Number(this.show_data.f_cumulative_payment_money) || Number(this.show_data.f_surplus_money) > 0) {
|