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.
@@ -0,0 +1,208 @@
1
+ <template>
2
+ <modal :show.sync="show" v-ref:modal backdrop="false">
3
+ <header slot="modal-header" class="modal-header">
4
+ <button type="button" class="close" @click="show = !show"><span class="glyphicon glyphicon-remove"></span></button>
5
+ <h4 class="modal-title" style="text-align: center">高拍仪</h4>
6
+ </header>
7
+ <article slot="modal-body" class="modal-body form-horizontal">
8
+ <div class="form-group" v-if="isusetype">
9
+ <label class="col-sm-2 control-label">文件类型:</label>
10
+ <div class="col-sm-10">
11
+ <input-select
12
+ class="select select_list"
13
+ :value.sync="fusetype"
14
+ v-model="fusetype"
15
+ :options="$appdata.getParam('使用类型')"
16
+ :valueSingle="true"></input-select>
17
+ </div>
18
+ </div>
19
+ <div class="form-group" v-if="isremark">
20
+ <label class="col-sm-2 control-label">文件说明:</label>
21
+ <div class="col-sm-10">
22
+ <input class="form-control input_view" style=""
23
+ v-model="fremarks"
24
+ :value="fremarks"/>
25
+ </div>
26
+ </div>
27
+ <div class="form-group">
28
+ <img id="cam" :src="cameraurl" style="height: 100%;width: 100%">
29
+ </div>
30
+ </article>
31
+ <footer slot="modal-footer" class="modal-footer">
32
+ <button type="button" class="btn btn-primary" @click="photo()">确认</button>
33
+ </footer>
34
+ </modal>
35
+ </template>
36
+
37
+ <script>
38
+ export default {
39
+ title: '高拍仪',
40
+ data () {
41
+ return {
42
+ cameraurl: null,
43
+ fusetype: null,
44
+ fremarks: null
45
+ }
46
+ },
47
+ props: ['show', 'isusetype', 'isremark'],
48
+ methods: {
49
+ // 打开视频
50
+ cam_switch (capID) {
51
+ if (capID === 1) {
52
+ this.cameraurl = 'http://127.0.0.1:38088/video=stream&camidx=0'
53
+ }
54
+ if (capID === 2) {
55
+ this.cameraurl = 'http://127.0.0.1:38088/video=stream&camidx=1'
56
+ }
57
+ },
58
+ async photo () {
59
+ let camidx = 0
60
+ if (this.cameraurl === 'http://127.0.0.1:38088/video=stream&camidx=0') {
61
+ camidx = 0
62
+ } else if (this.cameraurl === 'http://127.0.0.1:38088/video=stream&camidx=1') {
63
+ camidx = 1
64
+ } else {
65
+ this.$showAlert('请先打开视频', 'warning', 2000)
66
+ return
67
+ }
68
+ let param = {
69
+ camidx: camidx
70
+ }
71
+ let res = await this.$resetpost(
72
+ 'http://127.0.0.1:38088/video=grabimage',
73
+ param,
74
+ {warnMsg: null, resolveMsg: null}
75
+ )
76
+ if (res.data.code != '0') {
77
+ this.$showAlert(res.data.message, 'warning', 2000)
78
+ return
79
+ }
80
+ this.$dispatch('photo-finish', res.data.photoBase64, this.fusetype, this.fremarks)
81
+ }
82
+ },
83
+ ready () {
84
+ this.cameraurl = 'http://127.0.0.1:38088/video=stream&camidx=0'
85
+ }
86
+ }
87
+ </script>
88
+
89
+ <style scoped>
90
+ .modal-bk{
91
+ border-radius:18px 0;
92
+ }
93
+ .header{
94
+ background-color: #d8e9f3;
95
+ height: 88px;
96
+ }
97
+ .title{
98
+ position: absolute;
99
+ font-family:PingFang-SC-Bold;
100
+ font-size:36px;
101
+ color: #666666;
102
+ margin-top: 32px;
103
+ margin-left: 300px;
104
+ margin-bottom: 0px;
105
+ }
106
+ .operation{
107
+ font-family:PingFang-SC-Medium;
108
+ font-size: 22px;
109
+ color:#666666;
110
+ line-height: 5px;
111
+ }
112
+ .operation-group{
113
+ margin-left: 36px;
114
+ margin-top: 20px;
115
+ }
116
+ .photo{
117
+ font-family: PingFang-SC-Medium;
118
+ font-size: 20px;
119
+ color: #ffffff;
120
+ margin-left: 20px;
121
+ border-radius: 4px;
122
+ background-color: #2fadf5;
123
+ height: 32px;
124
+ width: 92px;
125
+ line-height:12px;
126
+ }
127
+ .readIDCard{
128
+ font-family: PingFang-SC-Medium;
129
+ font-size: 20px;
130
+ color: #ffffff;
131
+ border-radius: 4px;
132
+ background-color: #2fadf5;
133
+ margin-left: 20px;
134
+ width: 120px;
135
+ height: 32px;
136
+ line-height: 12px;
137
+ }
138
+ .stop{
139
+ border-radius: 4px;
140
+ border: 1px solid #2fadf5;
141
+ font-family: PingFang-SC-Medium;
142
+ font-size: 20px;
143
+ color: #2fadf5;
144
+ width: 120px;
145
+ height: 32px;
146
+ line-height: 12px;
147
+ }
148
+ .showInfo{
149
+ float: left;
150
+ width: 640px;
151
+ display: inline-block;
152
+ margin-top: 20px;
153
+ margin-left: 36px;
154
+ }
155
+ #Console{
156
+ margin-left: 18px;
157
+ border-radius: 4px;
158
+ border: 1px solid #b5b5b5;
159
+ height:300px;
160
+ width:322px;
161
+ resize:none;
162
+ background-color: #f6f6f6;
163
+ }
164
+ .img{
165
+ height:300px;
166
+ width:300px;
167
+ float: left;
168
+ border-radius: 4px;
169
+ border: 1px solid #b5b5b5;
170
+ }
171
+ #cam{
172
+ border-radius: 4px;
173
+ border:1px solid #b5b5b5;
174
+ display: inline-block
175
+ }
176
+ .IdCard{
177
+ height: 950px;
178
+ width: 692px;
179
+ display: inline-block;
180
+ border-radius: 20px;
181
+ background-color: #fafafa;
182
+ border: 1px solid #d8f1ff;
183
+ margin-left: 40px;
184
+ margin-top: 20px;
185
+ }
186
+ .IdInput{
187
+ border-radius: 4px;
188
+ border: 1px solid #939393;
189
+ width: 400px;
190
+ height: 38px;
191
+ margin-left: 20px;
192
+ }
193
+ .IdInputDiv{
194
+ margin-top: 20px;
195
+ margin-left: 100px;
196
+ }
197
+ .IdHint{
198
+ font-family: PingFang-SC-Medium;
199
+ font-size: 18px;
200
+ color: #7e7c81;
201
+ }
202
+ #PhotoBuffer,#PhotoDisplay{
203
+ border-radius: 4px;
204
+ background-color: #ffffff;
205
+ border: 1px solid #939393;
206
+ margin-left: 20px;
207
+ }
208
+ </style>
@@ -1,193 +0,0 @@
1
- <template>
2
- <style id="printBuildOrderStyle">
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
- .sign {
17
- vertical-align: top;
18
- padding: 10px;
19
- }
20
- .material {
21
- text-align: left;
22
- vertical-align: top;
23
- padding: 10px;
24
- }
25
- </style>
26
-
27
- <div style="margin-bottom: 20px" class="form-group select-overspread">
28
- <label class="control-label-justify control-label col-sm-2">打印施工通知单</label>
29
- <div class="col-sm-10" >
30
- <button class="button_search button_spacing" type="button" style="width: max-content;position: absolute" @click="openModal()">打印</button>
31
- </div>
32
- </div>
33
-
34
- <modal v-if="showModal" :show.sync="showModal" title="打印预览" v-ref:modal :backdrop="false">
35
- <header slot="modal-header" class="modal-header">
36
- <button type="button" class="close" @click="colseModal()"><span>&times;</span></button>
37
- <h4 class="modal-title">打印预览</h4>
38
- </header>
39
- <article slot="modal-body" class="modal-body">
40
- <div id="printBuildOrder">
41
- <h2><span style="letter-spacing: 15px">施工安装通知单</span></h2>
42
- <table border="1">
43
- <tr>
44
- <td>用户姓名</td>
45
- <td>{{ selectdata.f_user_name }}</td>
46
- <td>报装编号</td>
47
- <td>{{ selectdata.f_apply_num }}</td>
48
- <td>电&emsp;&emsp;&emsp;&emsp;话</td>
49
- <td>{{ selectdata.f_phone }}</td>
50
- </tr>
51
- <tr>
52
- <td>用户地址</td>
53
- <td colspan="3">{{ selectdata.f_address }}</td>
54
- <td>施工安装时间</td>
55
- <td>{{ selectdata.f_construction_date }}</td>
56
- </tr>
57
- <tr>
58
- <td>安装项目</td>
59
- <td>{{ selectdata.f_install_project }}</td>
60
- <td>通知时间</td>
61
- <td>{{ selectdata.sendtime }}</td>
62
- <td>施工安装单位</td>
63
- <td>{{ selectdata.f_construction_unit }}</td>
64
- </tr>
65
- <tr>
66
- <td>表号</td>
67
- <td colspan="2">{{ userfile.f_meternumber }}</td>
68
- <td>表封号</td>
69
- <td colspan="2">{{ userfile.f_metertitles }}</td>
70
- </tr>
71
- <tr>
72
- <td colspan="6" class="material">
73
- <p style="margin: 0px 0px 10px 0px">施工安装情况</p>
74
- <p v-for="item in selectdata.onetomany[0].rows" style="width: auto;display: inline-block;margin: 0px 15px 5px 0px">
75
- <span style="margin-right: 10px">{{$index + 1}}、{{item.f_material_name}}{{item.f_material_style}}</span>{{item.f_material_number}}{{item.f_material_unit}}
76
- </p>
77
- </td>
78
- </tr>
79
- <tr style="height: 80px">
80
- <td colspan="2" class="sign">施工安装单位(签字)</td>
81
- <td colspan="2" class="sign">工程验收(签字)</td>
82
- <td colspan="2" class="sign">用户(签字)</td>
83
- </tr>
84
- <tr>
85
- <td>备&emsp;&emsp;注</td>
86
- <td colspan="5">{{ selectdata.f_construction_remarks }}</td>
87
- </tr>
88
- </table>
89
- </div>
90
- </article>
91
- <footer slot="modal-footer" class="modal-footer">
92
- <button type="button" class="btn btn-primary" @click="print()">打印</button>
93
- </footer>
94
- </modal>
95
-
96
-
97
- <print-element v-show="false" v-ref:print id='printBuildOrder' styleid='printBuildOrderStyle'
98
- top='10' left='30' width='100%' height='100%'>
99
- </print-element>
100
-
101
- </template>
102
-
103
- <script>
104
- import { isEmpty } from '../../../../Util'
105
- import {HttpResetClass} from "vue-client";
106
- Date.prototype.Format = function (fmt) {
107
- var o = {
108
- "M+": this.getMonth() + 1, //月份
109
- "d+": this.getDate(), //日
110
- "H+": this.getHours(), //小时
111
- "m+": this.getMinutes(), //分
112
- "s+": this.getSeconds(), //秒
113
- "q+": Math.floor((this.getMonth() + 3) / 3), //季度
114
- "S": this.getMilliseconds() //毫秒
115
- };
116
- if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
117
- for (var k in o)
118
- if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
119
- return fmt;
120
- }
121
- export default {
122
- title: '施工安装通知单',
123
- props: {
124
- selectdata: {
125
- type: Object
126
- },
127
- mark: {
128
- type: Number,
129
- default: 0
130
- }
131
- },
132
- data () {
133
- return {
134
- showModal: false,
135
- userfile: null
136
- }
137
- },
138
- ready () {
139
- },
140
- methods: {
141
- colseModal () {
142
- this.showModal = false
143
- this.userfile = null
144
- },
145
- print () {
146
- this.$refs.print.PrintTable()
147
- },
148
- openModal () {
149
- this.getUserFiles()
150
-
151
- this.showModal = true
152
- },
153
- async getUserFiles () {
154
- let data = {
155
- tablename: 't_userfiles',
156
- condition: `f_userinfo_id = '${this.selectdata.f_userinfo_id}'`
157
- }
158
- let http = new HttpResetClass()
159
- let res = await http.load(
160
- 'POST',
161
- `rs/sql/singleTable`,
162
- {data: data},
163
- {resolveMsg: null, rejectMsg: '表具信息查询失败!!!'}
164
- )
165
-
166
- this.userfile = res.data[0]
167
- },
168
- },
169
- computed: {
170
- orgs () {
171
- return this.$login.f.orgs
172
- }
173
- }
174
- }
175
- </script>
176
-
177
- <style scoped>
178
- .control-label-justify {
179
- display: inline-block;
180
- vertical-align: top;
181
- width: 130px;
182
- text-align: justify;
183
- font-family: PingFang-SC-Bold;
184
- }
185
-
186
- .control-label-justify::after {
187
- content: "";
188
- display: inline-block;
189
- width: 100%;
190
- overflow: hidden;
191
- height: 0;
192
- }
193
- </style>