apply-clients 3.3.29 → 3.3.33
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 +1 -1
- package/src/apply.js +3 -0
- package/src/components/android/AppOnetomany.vue +31 -17
- package/src/components/android/Function/AppFunctionServiceControl.vue +18 -3
- package/src/components/android/Function/AppInstallFunction.vue +4 -0
- package/src/components/android/Process/AppExplorationUser.vue +306 -302
- package/src/components/android/Process/AppServiceControl.vue +756 -756
- package/src/components/android/Supervisory/AppProcessSupervisory.vue +4 -0
- package/src/components/product/Function/Service/FunctionServiceControl.vue +22 -1
- package/src/components/product/Material/MaterialDetailed.vue +213 -0
- package/src/components/product/OldApply/Handle/HandleApply.vue +20 -3
- package/src/components/product/OldApply/Monitor/MonitorApply.vue +6 -0
- package/src/components/product/OldApply/OldApply.vue +1 -1
- package/src/components/product/Onetomany.vue +101 -22
- package/src/components/product/Process/ExplorationSelect.vue +42 -6
- package/src/components/product/Process/Processes/InstallationDetails.vue +1 -1
- package/src/components/product/Process/Processes/Print/printBuildOrder.vue +215 -0
- package/src/components/product/Process/Processes/addressAndUserinfoManagement.vue +11 -6
- package/src/components/product/Process/Service/ServiceControl.vue +18 -3
- package/src/components/product/ServiceView.vue +1 -1
- package/src/components/product/Stop/StopApply.vue +101 -103
- package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +292 -20
- package/src/components/product/Supervisory/SupervisoryControl.vue +27 -0
- package/src/components/product/Supervisory/SupervisoryhCart.vue +1 -1
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<style id="style">
|
|
3
|
+
td{
|
|
4
|
+
height: 30px;
|
|
5
|
+
width: 100px;
|
|
6
|
+
text-align: center;
|
|
7
|
+
}
|
|
8
|
+
table{
|
|
9
|
+
margin: auto;
|
|
10
|
+
width: 100%;
|
|
11
|
+
border-collapse:collapse;
|
|
12
|
+
border: 1px solid black;
|
|
13
|
+
}
|
|
14
|
+
h1,h2,h3,h4,h5,h6 {
|
|
15
|
+
text-align: center;
|
|
16
|
+
}
|
|
17
|
+
.orgs {
|
|
18
|
+
border-bottom: 2px solid;
|
|
19
|
+
padding: 5px;
|
|
20
|
+
}
|
|
21
|
+
.date {
|
|
22
|
+
float: left;
|
|
23
|
+
padding-left: 10px;
|
|
24
|
+
}
|
|
25
|
+
.status {
|
|
26
|
+
float: right;
|
|
27
|
+
padding-right: 10px;
|
|
28
|
+
}
|
|
29
|
+
.seal {
|
|
30
|
+
position: absolute;
|
|
31
|
+
right: 100px;
|
|
32
|
+
top: 120px;
|
|
33
|
+
width: 150px;
|
|
34
|
+
height: 150px;
|
|
35
|
+
/*opacity: 0.5;*/
|
|
36
|
+
z-index: -1;
|
|
37
|
+
}
|
|
38
|
+
.sign {
|
|
39
|
+
vertical-align: top;
|
|
40
|
+
padding: 10px;
|
|
41
|
+
}
|
|
42
|
+
.material {
|
|
43
|
+
text-align: left;
|
|
44
|
+
vertical-align: top;
|
|
45
|
+
padding: 10px;
|
|
46
|
+
}
|
|
47
|
+
</style>
|
|
48
|
+
|
|
49
|
+
<div style="margin-bottom: 20px" class="form-group select-overspread">
|
|
50
|
+
<label class="control-label-justify control-label col-sm-2">打印施工通知单</label>
|
|
51
|
+
<div class="col-sm-10" >
|
|
52
|
+
<button class="button_search button_spacing" type="button" style="width: max-content;position: absolute" @click="openModal()">打印</button>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
<modal v-if="showModal" :show.sync="showModal" width="80%" title="打印预览" v-ref:modal large backdrop="false">
|
|
57
|
+
<header slot="modal-header" class="modal-header">
|
|
58
|
+
<button type="button" class="close" @click="colseModal()"><span>×</span></button>
|
|
59
|
+
<h4 class="modal-title">打印预览</h4>
|
|
60
|
+
</header>
|
|
61
|
+
<article slot="modal-body" class="modal-body">
|
|
62
|
+
<div id="print">
|
|
63
|
+
<h3><span style="letter-spacing: 15px">施工安装通知单</span></h3>
|
|
64
|
+
<table border="1">
|
|
65
|
+
<tr>
|
|
66
|
+
<td>用户姓名</td>
|
|
67
|
+
<td>{{ selectdata.f_user_name }}</td>
|
|
68
|
+
<td>报装编号</td>
|
|
69
|
+
<td>{{ selectdata.f_apply_num }}</td>
|
|
70
|
+
<td>电    话</td>
|
|
71
|
+
<td>{{ selectdata.f_phone }}</td>
|
|
72
|
+
</tr>
|
|
73
|
+
<tr>
|
|
74
|
+
<td>用户地址</td>
|
|
75
|
+
<td colspan="3">{{ selectdata.f_address }}</td>
|
|
76
|
+
<td>施工安装时间</td>
|
|
77
|
+
<td>{{ selectdata.f_construction_date }}</td>
|
|
78
|
+
</tr>
|
|
79
|
+
<tr>
|
|
80
|
+
<td>安装项目</td>
|
|
81
|
+
<td>{{ selectdata.f_install_project }}</td>
|
|
82
|
+
<td>通知时间</td>
|
|
83
|
+
<td>{{ selectdata.sendtime }}</td>
|
|
84
|
+
<td>施工安装单位</td>
|
|
85
|
+
<td>{{ selectdata.f_construction_unit }}</td>
|
|
86
|
+
</tr>
|
|
87
|
+
<tr>
|
|
88
|
+
<td>表号</td>
|
|
89
|
+
<td colspan="2">{{ userfile.f_meternumber }}</td>
|
|
90
|
+
<td>表封号</td>
|
|
91
|
+
<td colspan="2">{{ userfile.f_metertitles }}</td>
|
|
92
|
+
</tr>
|
|
93
|
+
<tr>
|
|
94
|
+
<td colspan="6" class="material">
|
|
95
|
+
<p>施工安装情况</p>
|
|
96
|
+
<p v-for="item in selectdata.onetomany[0].rows" style="width: auto;display: inline-block">
|
|
97
|
+
{{$index + 1}}、{{item.f_material_name}}{{item.f_material_style}} {{item.f_material_number}}{{item.f_material_unit}}  
|
|
98
|
+
</p>
|
|
99
|
+
</td>
|
|
100
|
+
</tr>
|
|
101
|
+
<tr style="height: 100px">
|
|
102
|
+
<td colspan="2" class="sign">施工安装单位(签字)</td>
|
|
103
|
+
<td colspan="2" class="sign">工程验收(签字)</td>
|
|
104
|
+
<td colspan="2" class="sign">用户(签字)</td>
|
|
105
|
+
</tr>
|
|
106
|
+
<tr>
|
|
107
|
+
<td>备  注</td>
|
|
108
|
+
<td colspan="5">{{ selectdata.f_construction_remarks }}</td>
|
|
109
|
+
</tr>
|
|
110
|
+
</table>
|
|
111
|
+
</div>
|
|
112
|
+
</article>
|
|
113
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
114
|
+
<button type="button" class="btn btn-primary" @click="print()">打印</button>
|
|
115
|
+
</footer>
|
|
116
|
+
</modal>
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
<print-element v-show="false" v-ref:print id='print' styleid='style'
|
|
120
|
+
top='40' left='60' width='100%' height='100%'>
|
|
121
|
+
</print-element>
|
|
122
|
+
|
|
123
|
+
</template>
|
|
124
|
+
|
|
125
|
+
<script>
|
|
126
|
+
import { isEmpty } from '../../../../Util'
|
|
127
|
+
import {HttpResetClass} from "vue-client";
|
|
128
|
+
Date.prototype.Format = function (fmt) {
|
|
129
|
+
var o = {
|
|
130
|
+
"M+": this.getMonth() + 1, //月份
|
|
131
|
+
"d+": this.getDate(), //日
|
|
132
|
+
"H+": this.getHours(), //小时
|
|
133
|
+
"m+": this.getMinutes(), //分
|
|
134
|
+
"s+": this.getSeconds(), //秒
|
|
135
|
+
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
|
|
136
|
+
"S": this.getMilliseconds() //毫秒
|
|
137
|
+
};
|
|
138
|
+
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
|
|
139
|
+
for (var k in o)
|
|
140
|
+
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
|
|
141
|
+
return fmt;
|
|
142
|
+
}
|
|
143
|
+
export default {
|
|
144
|
+
title: '施工安装通知单',
|
|
145
|
+
props: {
|
|
146
|
+
selectdata: {
|
|
147
|
+
type: Object
|
|
148
|
+
},
|
|
149
|
+
mark: {
|
|
150
|
+
type: Number,
|
|
151
|
+
default: 0
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
data () {
|
|
155
|
+
return {
|
|
156
|
+
showModal: false,
|
|
157
|
+
userfile: null
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
ready () {
|
|
161
|
+
},
|
|
162
|
+
methods: {
|
|
163
|
+
colseModal () {
|
|
164
|
+
this.showModal = false
|
|
165
|
+
this.userfile = null
|
|
166
|
+
},
|
|
167
|
+
print () {
|
|
168
|
+
this.$refs.print.PrintTable()
|
|
169
|
+
},
|
|
170
|
+
openModal () {
|
|
171
|
+
this.getUserFiles()
|
|
172
|
+
|
|
173
|
+
this.showModal = true
|
|
174
|
+
},
|
|
175
|
+
async getUserFiles () {
|
|
176
|
+
let data = {
|
|
177
|
+
tablename: 't_userfiles',
|
|
178
|
+
condition: `f_userinfo_id = '${this.selectdata.f_userinfo_id}'`
|
|
179
|
+
}
|
|
180
|
+
let http = new HttpResetClass()
|
|
181
|
+
let res = await http.load(
|
|
182
|
+
'POST',
|
|
183
|
+
`rs/sql/singleTable`,
|
|
184
|
+
{data: data},
|
|
185
|
+
{resolveMsg: null, rejectMsg: '表具信息查询失败!!!'}
|
|
186
|
+
)
|
|
187
|
+
|
|
188
|
+
this.userfile = res.data[0]
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
computed: {
|
|
192
|
+
orgs () {
|
|
193
|
+
return this.$login.f.orgs
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
</script>
|
|
198
|
+
|
|
199
|
+
<style scoped>
|
|
200
|
+
.control-label-justify {
|
|
201
|
+
display: inline-block;
|
|
202
|
+
vertical-align: top;
|
|
203
|
+
width: 130px;
|
|
204
|
+
text-align: justify;
|
|
205
|
+
font-family: PingFang-SC-Bold;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.control-label-justify::after {
|
|
209
|
+
content: "";
|
|
210
|
+
display: inline-block;
|
|
211
|
+
width: 100%;
|
|
212
|
+
overflow: hidden;
|
|
213
|
+
height: 0;
|
|
214
|
+
}
|
|
215
|
+
</style>
|
|
@@ -106,7 +106,7 @@ export default {
|
|
|
106
106
|
},
|
|
107
107
|
mark: {
|
|
108
108
|
type: Number,
|
|
109
|
-
default: 0 // 0:正常 1:禁用
|
|
109
|
+
default: 0 // 0:正常 1:禁用
|
|
110
110
|
}
|
|
111
111
|
},
|
|
112
112
|
data () {
|
|
@@ -155,11 +155,16 @@ export default {
|
|
|
155
155
|
watch: {
|
|
156
156
|
'model.count': {
|
|
157
157
|
handler: function () {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
158
|
+
if (this.model.count > this.selectdata.f_apply_count) {
|
|
159
|
+
this.selectdata.f_apply_count = this.model.count
|
|
160
|
+
|
|
161
|
+
this.$resetpost(
|
|
162
|
+
'rs/entity/t_apply',
|
|
163
|
+
this.selectdata,
|
|
164
|
+
{resolveMsg: null, rejectMsg: '数据更新失败!!!'}
|
|
165
|
+
).then(res => {
|
|
166
|
+
this.$dispatch('breakControl', this.selectdata)
|
|
167
|
+
})
|
|
163
168
|
}
|
|
164
169
|
}
|
|
165
170
|
}
|
|
@@ -195,7 +195,6 @@ export default {
|
|
|
195
195
|
item.options = temp
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
|
-
|
|
199
198
|
}
|
|
200
199
|
}
|
|
201
200
|
}
|
|
@@ -646,7 +645,7 @@ export default {
|
|
|
646
645
|
let http = new HttpResetClass()
|
|
647
646
|
let res = await http.load(
|
|
648
647
|
'POST',
|
|
649
|
-
`rs/sql/
|
|
648
|
+
`rs/sql/getStockMaterial`,
|
|
650
649
|
{data: data},
|
|
651
650
|
{resolveMsg: null, rejectMsg: '材料查询失败!!!'}
|
|
652
651
|
)
|
|
@@ -1194,7 +1193,7 @@ export default {
|
|
|
1194
1193
|
f_process_id : this.show_data.f_process_id,
|
|
1195
1194
|
f_operator_id: this.$login.f.id,
|
|
1196
1195
|
f_operator: this.$login.f.name,
|
|
1197
|
-
f_operation_date: new Date(),
|
|
1196
|
+
f_operation_date: new Date().Format('yyyy-MM-dd HH:mm:ss'),
|
|
1198
1197
|
f_orgid: this.$login.f.orgid,
|
|
1199
1198
|
f_orgname: this.$login.f.orgs
|
|
1200
1199
|
}
|
|
@@ -1213,6 +1212,22 @@ export default {
|
|
|
1213
1212
|
|
|
1214
1213
|
this.$dispatch('breakControl', this.show_data)
|
|
1215
1214
|
},
|
|
1215
|
+
async 'importEvent' (index, table, configName, filepath) {
|
|
1216
|
+
let data = {
|
|
1217
|
+
selectdata: this.show_data,
|
|
1218
|
+
table: table,
|
|
1219
|
+
filepath: filepath,
|
|
1220
|
+
configName: configName,
|
|
1221
|
+
user: this.$login.f
|
|
1222
|
+
}
|
|
1223
|
+
|
|
1224
|
+
let res = await this.$resetpost(
|
|
1225
|
+
`rs/logic/importEvent`,
|
|
1226
|
+
data
|
|
1227
|
+
)
|
|
1228
|
+
|
|
1229
|
+
this.$dispatch('breakControl', this.show_data)
|
|
1230
|
+
},
|
|
1216
1231
|
'onbutchange' (index) {
|
|
1217
1232
|
|
|
1218
1233
|
},
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
|
|
120
120
|
<!-- onetomany -->
|
|
121
121
|
<div class="" v-for="(index,item) in data.onetomany">
|
|
122
|
-
<onetomany :onetomany="item" :index="index" v-if="item.device === 'pc' || !item.device"></onetomany>
|
|
122
|
+
<onetomany :selectdata="data" :onetomany="item" :index="index" v-if="item.device === 'pc' || !item.device"></onetomany>
|
|
123
123
|
</div>
|
|
124
124
|
|
|
125
125
|
<div v-for="(i,item) in data.components">
|
|
@@ -1,103 +1,101 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="flex-row">
|
|
3
|
-
<div class="basic-main">
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
},
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
this.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
this.
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="flex-row">
|
|
3
|
+
<div class="basic-main">
|
|
4
|
+
<stop-apply-list v-ref:query></stop-apply-list>
|
|
5
|
+
</div>
|
|
6
|
+
|
|
7
|
+
<modal v-if="showModal" :show.sync="showModal" backdrop="false" large>
|
|
8
|
+
<header slot="modal-header" class="modal-header">
|
|
9
|
+
<button type="button" class="close" @click="closeModal()"><span>×</span></button>
|
|
10
|
+
<span class="modal-title"><font size="3">撤销</font></span>
|
|
11
|
+
</header>
|
|
12
|
+
<article slot="modal-body" class="modal-body clearfix">
|
|
13
|
+
<div :class="data.f_cancel_reason ? '' : 'has-error'" class="form-group">
|
|
14
|
+
<label class="control-label-justify control-label col-sm-1">撤销原因</label>
|
|
15
|
+
<div class="col-sm-9">
|
|
16
|
+
<textarea
|
|
17
|
+
class="form-control input_view" style="width: 100%" rows="5"
|
|
18
|
+
v-model="data.f_cancel_reason" :value="data.f_cancel_reason"
|
|
19
|
+
></textarea>
|
|
20
|
+
</div>
|
|
21
|
+
</div>
|
|
22
|
+
</article>
|
|
23
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
24
|
+
<button :class="!data.f_cancel_reason ? 'btn btn-default':'btn btn-primary'"
|
|
25
|
+
:disabled="!data.f_cancel_reason" type="button" @click="confirmModal()">
|
|
26
|
+
确认
|
|
27
|
+
</button>
|
|
28
|
+
</footer>
|
|
29
|
+
</modal>
|
|
30
|
+
</div>
|
|
31
|
+
</template>
|
|
32
|
+
|
|
33
|
+
<script>
|
|
34
|
+
export default {
|
|
35
|
+
title: '终止报建',
|
|
36
|
+
data () {
|
|
37
|
+
return {
|
|
38
|
+
showModal: false,
|
|
39
|
+
data: null
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
ready () {
|
|
43
|
+
},
|
|
44
|
+
methods: {
|
|
45
|
+
closeModal () {
|
|
46
|
+
this.showModal = false
|
|
47
|
+
this.data = null
|
|
48
|
+
|
|
49
|
+
this.$refs.query.$refs.cp.$refs.cri.search()
|
|
50
|
+
},
|
|
51
|
+
async confirmModal () {
|
|
52
|
+
let data = {
|
|
53
|
+
data: this.data,
|
|
54
|
+
user: this.$login.f
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
let res = await this.$resetpost(
|
|
58
|
+
`rs/logic/cancelStopApply`,
|
|
59
|
+
{data: data},
|
|
60
|
+
{resolveMsg: null, rejectMsg: '撤销失败!!!'}
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
this.closeModal()
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
events: {
|
|
67
|
+
'search' () {
|
|
68
|
+
this.$refs.query.$refs.cp.$refs.cri.search()
|
|
69
|
+
},
|
|
70
|
+
'cancelStopApply' (row) {
|
|
71
|
+
this.data = row
|
|
72
|
+
|
|
73
|
+
this.showModal = true
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
</script>
|
|
78
|
+
|
|
79
|
+
<style scoped>
|
|
80
|
+
.control-label-justify {
|
|
81
|
+
display: inline-block;
|
|
82
|
+
vertical-align: top;
|
|
83
|
+
width: 110px;
|
|
84
|
+
text-align: justify;
|
|
85
|
+
font-family: PingFang-SC-Bold;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.control-label-justify::after {
|
|
89
|
+
content: "";
|
|
90
|
+
display: inline-block;
|
|
91
|
+
width: 100%;
|
|
92
|
+
overflow: hidden;
|
|
93
|
+
height: 0;
|
|
94
|
+
}
|
|
95
|
+
.clearfix:after,.clearfix:before{
|
|
96
|
+
display: table;
|
|
97
|
+
}
|
|
98
|
+
.clearfix:after{
|
|
99
|
+
clear: both;
|
|
100
|
+
}
|
|
101
|
+
</style>
|