safecheck-client 4.0.2-39 → 4.0.2-41

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.
@@ -11,22 +11,25 @@
11
11
  <label v-if="row.type == 'text'" v-show="row.isshow" class="textlabel1">{{row.f_item_name}}</label>
12
12
  <label v-if="row.type == 'picture' || row.type == 'checkbox'" v-show="row.isshow" class="textlabel">{{row.f_item_name}}</label>
13
13
  <div style="clear: both" v-if="row.type == 'picture'" class="form-group col-sm-12" >
14
- <div class="auto" >
15
- <div class="panel">
16
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 160px;height: 160px;position: relative">
17
- <div class="row" style="height: 160px;width:160px;overflow: scroll;top: 1px">
18
- <div class="col-sm-4" v-show="row.f_path">
19
- <img-self :src="row.f_path" :alt="row.f_item_name" width="140" height="140"></img-self>
14
+ <div slot="modal-body" class="modal-body">
15
+ <div class="auto" :class="style__">
16
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
17
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
18
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px" >
19
+ <div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px" v-for="(index,img) in row.images">
20
+ <img-self :src="img.f_path" alt="安检补充照片" :width="140" :height="170"></img-self>
21
+ <img src="../../../assets/删除.png" @click="delfile(img.f_path,index,idxs)" style="width: 15px;margin-top: -80px" alt="">
22
+ </div>
20
23
  </div>
21
- <div class="col-sm-4" v-show="!row.f_path" @click="takePic(idxs, row.f_item_name)">
22
- <img src="../../../assets/tackpic.png" :alt="点击拍摄照片" width="140" height="140"></img>
24
+ <div class="row text-right div-photo">
25
+ <button type="button" name="button" class="btn btn-photo" @click="takePic(row.f_item_name,idxs)">拍照</button>
23
26
  </div>
24
- <img v-show="row.f_path" src="../../../assets/remove.png" :class="style__" @click="delfile(idxs, row.f_path)" v-if="role!='androidview'" style="width: 40px;height: 40px;position: absolute;left:110px;top:110px"></img>
25
27
  </div>
26
28
  </div>
27
29
  </div>
28
30
  </div>
29
31
  </div>
32
+
30
33
  <div style="float: left;width:60%" class="form-group" v-if="row.type == 'string'" v-show="row.isshow">
31
34
  <input type="text" class="form-control" maxlength="100" v-model="row.f_item_value" :readonly="role == 'androidview' || row.readonly">
32
35
  </div>
@@ -59,13 +62,13 @@
59
62
  :close-on-select="!row.multiple" clear-button></v-select>
60
63
  <div style="float: left;width: 30%" class="form-group" v-if="row.type == 'radio'">
61
64
  <div class="col-xs-6 col-sm-6 col-md-6" v-for="item in row.options">
62
- <input type="radio" :name="row.f_item_name" :value="item.value" v-model="row.f_item_value" >
65
+ <input type="radio" :name="row.f_item_name" :value="item.value" :disabled="row.readonly" v-model="row.f_item_value" >
63
66
  <span>{{item.label}}</span>
64
67
  </div>
65
68
  </div>
66
69
  <div v-if="row.type == 'checkbox'" class="col-xs-12 col-sm-12 col-md-12" style="white-space: nowrap" >
67
70
  <div style="float: left" v-for="item in row.options">
68
- <input type="checkbox" :name="row.f_item_name" :value="item.value" v-model="row.f_item_value">
71
+ <input type="checkbox" :name="row.f_item_name" :value="item.value" :disabled="row.readonly" v-model="row.f_item_value">
69
72
  <span>{{item.label}}</span>
70
73
  </div>
71
74
  </div>
@@ -92,6 +95,33 @@ export default {
92
95
  ready() {
93
96
  },
94
97
  methods: {
98
+ delfile(fileName, index,idxs) {
99
+ this.items[idxs].images.splice(index, 1)
100
+ HostApp.delfile(fileName)
101
+ },
102
+ cameraCallBack(fileName,idxs) {
103
+ let path = fileName
104
+ HostApp.__this__.items[idxs].images.push({
105
+ f_path: path
106
+ })
107
+ HostApp.__callback__ = null
108
+ HostApp.__this__ = null
109
+ },
110
+ takePic(title, idxs) {
111
+ HostApp.__callback__ = this.cameraCallBack
112
+ HostApp.__this__ = this
113
+ let fileName = Util.guid() + '-' + '.jpg'
114
+ HostApp._open_a_page({
115
+ type: 'boomerang',
116
+ page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
117
+ param: {
118
+ file: fileName,
119
+ requestCode: 111,
120
+ callback: 'javascript:HostApp.__callback__( "%s","'+ idxs + '");',
121
+ watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name
122
+ }
123
+ })
124
+ },
95
125
  changse(val){
96
126
  if(val == undefined){
97
127
  return
@@ -115,7 +115,7 @@ export default {
115
115
  options:row.options,
116
116
  type: row.type,
117
117
  isshow:true,
118
- f_path: '',
118
+ images: [],
119
119
  multiple: row.multiple?row.multiple:false,
120
120
  readonly:false
121
121
  })
@@ -122,7 +122,7 @@ export default {
122
122
  options:row.options,
123
123
  type: row.type,
124
124
  isshow:true,
125
- f_path: '',
125
+ images: row.images|| [],
126
126
  multiple: row.multiple?row.multiple:false,
127
127
  readonly:false
128
128
  })
@@ -138,7 +138,7 @@ export default {
138
138
  options:row.options,
139
139
  type: row.type,
140
140
  isshow:true,
141
- f_path: '',
141
+ images: row.images|| [],
142
142
  multiple: row.multiple?row.multiple:false,
143
143
  readonly:false
144
144
  })
@@ -174,7 +174,7 @@ export default {
174
174
  f_item_value: row.f_item_value || '',
175
175
  type: row.type,
176
176
  isshow:true,
177
- f_path: '',
177
+ images: row.images|| [],
178
178
  multiple: row.multiple?row.multiple:false,
179
179
  readonly:true
180
180
  })
@@ -192,7 +192,7 @@ export default {
192
192
  f_item_value: row.f_item_value || '',
193
193
  type: row.type,
194
194
  isshow:true,
195
- f_path: '',
195
+ images: row.images|| [],
196
196
  multiple: row.multiple?row.multiple:false,
197
197
  readonly:true
198
198
  })
@@ -209,7 +209,7 @@ export default {
209
209
  this.$watch('weekCheck[' + item + '].f_item_value', function (val) {
210
210
  if (val === '是') {
211
211
  this.weekCheck.forEach((item) => {
212
- if (item.f_item_name === '是否停用表具' || item.f_item_name === '停用备注') {
212
+ if (item.f_item_name === '是否停用表具' || item.f_item_name === '停用备注' || item.f_item_name === '停用图片') {
213
213
  item.isshow = true
214
214
  } else {
215
215
  item.isshow = false
@@ -218,7 +218,7 @@ export default {
218
218
  }
219
219
  if (val === '否') {
220
220
  this.weekCheck.forEach((item) => {
221
- if (item.f_item_name === '停用备注') {
221
+ if (item.f_item_name === '停用备注' || item.f_item_name === '停用图片') {
222
222
  item.isshow = false
223
223
  } else {
224
224
  item.isshow = true
@@ -229,7 +229,32 @@ export default {
229
229
  }
230
230
  }
231
231
  },
232
- uploadCheckPaper () {
232
+ async commitCallBack(jo) {
233
+ if (jo.state != 'ok'){
234
+ this.$showMessage('上传图片失败')
235
+ throw '上传图片失败'
236
+ }
237
+ },
238
+ async uploadCheckPaperPics () {
239
+ let tableImages = []
240
+ this.weekCheck.forEach((item) => {
241
+ if (item.type == 'picture'){
242
+ item.images.forEach(image=>{
243
+ image.filename = image.f_path.substring(image.f_path.lastIndexOf('/')+1)
244
+ tableImages.push({
245
+ path: image.f_path,
246
+ })
247
+ })
248
+ }
249
+ })
250
+ HostApp.__this__ = this
251
+ HostApp.logicWithHint({
252
+ 'logic': 'imagesUploadAndroid', 'callback': 'javascript: HostApp.__this__.commitCallBack()',
253
+ 'data': {tableImages:tableImages}, 'backresult': 1
254
+ })
255
+ },
256
+ async uploadCheckPaper () {
257
+ await this.uploadCheckPaperPics()
233
258
  const http = new HttpResetClass()
234
259
  let json = []
235
260
  if (this.weekCheckPaper && !Util.isEmpty(this.weekCheckPaper.f_safe_content)){
@@ -1,188 +1,191 @@
1
- <template>
2
- <div class="auto">
3
- <criteria-paged :model="model" v-ref:paged>
4
- <criteria partial='criteria' @condition-changed='search' v-ref:cri>
5
- <div partial>
6
- <form>
7
- <div class="row app-row">
8
- <div class="col-xs-4">
9
- <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
10
- <label class="font text-left">用户名称:</label>
11
- </div>
12
- <div class="col-xs-8" >
13
- <input class="search_input input-font"
14
- v-model=model.f_user_name condition="twpi.f_user_name like '%{}%'" style="width: 70%" placeholder="请输入用户名称" />
15
- </div>
16
- </div>
17
- <div class="row app-row">
18
- <div class="col-xs-4">
19
- <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
20
- <label class="font text-left">表 &nbsp;&nbsp; &nbsp;&nbsp; 号:</label>
21
- </div>
22
- <div class="col-xs-8" >
23
- <input class="search_input input-font"
24
- v-model=model.f_meternumber condition="tu.f_meternumber = '{}'" style="width: 70%" placeholder="请输入表号" />
25
- <button type="button" name="button" class="btn btn-primary" style="width: 25%" @click="$parent.$parent.scan">扫码</button>
26
- </div>
27
- </div>
28
- <div class="row app-row">
29
- <div class="col-xs-4">
30
- <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
31
- <label class="font text-left">基表号:</label>
32
- </div>
33
- <div class="col-xs-8" >
34
- <input class="search_input input-font"
35
- v-model="model.f_base_meternumber" condition="tu.f_base_meternumber like '%{}%'" />
36
- </div>
37
- </div>
38
- <div class="row app-row">
39
- <div class="col-xs-4">
40
- <img src="../../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
41
- <label class="font text-left">用户地址:</label>
42
- </div>
43
- <div class="col-xs-8" >
44
- <input class="search_input input-font"
45
- v-model=model.f_address condition="twpi.f_address like '%{}%'" />
46
- </div>
47
- </div>
48
- <div class="row app-row">
49
- <div class="col-xs-4">
50
- <img src="../../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
51
- <label class="font text-left">周检环节:</label>
52
- </div>
53
- <div class="col-xs-8" >
54
- <input class="search_input input-font"
55
- v-model=model.f_complete condition="twpi.f_complete like '%{}%'" />
56
- </div>
57
- </div>
58
- <div class="row text-center" style="margin-top: 20px;">
59
- <button type="button" class="btn btn-lg btn-font btn-color" style="width: 45%;" @click="search">查询</button>
60
- </div>
61
- </form>
62
- </div>
63
- </criteria>
64
-
65
- <list :model="model" partial='list'>
66
- <div partial>
67
- <div @click="$parent.$parent.$parent.inspect(row)" class="auto app-text" style="margin-top: 5px;">
68
- <div class="panel" style="padding: 10px 10px 5px 10px;">
69
- <div class="panel-body panel-self">
70
- <div class="row">
71
- <p class="panel-title col-xs-4 text-left font">用户编号</p>
72
- <p class="panel-title col-xs-8 text-left input-font">{{ row.f_userinfo_id }}</p>
73
- </div>
74
- <div class="row">
75
- <p class="panel-title col-xs-4 text-left font">用户名称</p>
76
- <p class="panel-title col-xs-8 text-left input-font">{{ row.f_user_name }}</p>
77
- </div>
78
- <div class="row">
79
- <p class="panel-title col-xs-4 text-left font">表号</p>
80
- <p class="panel-title col-xs-8 text-left input-font">{{ row.f_meternumber }}</p>
81
- </div>
82
- <div class="row">
83
- <p class="panel-title col-xs-4 text-left font">周检环节</p>
84
- <p class="panel-title col-xs-8 text-left input-font">{{ row.f_complete }}</p>
85
- </div>
86
- <div class="row">
87
- <p class="panel-title col-xs-4 text-left font">周检状态</p>
88
- <p class="panel-title col-xs-8 text-left input-font">{{ row.f_state }}</p>
89
- </div>
90
- </div>
91
- </div>
92
-
93
- </div>
94
- </div>
95
- </list>
96
- </criteria-paged>
97
- </div>
98
- </template>
99
-
100
- <script>
101
- import {HttpResetClass, PagedList} from 'vue-client'
102
- import Vue from 'vue'
103
- import * as Util from '../../Util'
104
-
105
- export default {
106
- title: '周检待办',
107
- data () {
108
- let model = new PagedList(`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/sql/getWeekPlanitem`, 20,
109
- {
110
- f_user_name:'this.f_user_name'
111
- })
112
- model.f_user_name = `${Vue.user.name}`
113
- return {
114
- model: model,
115
-
116
- }
117
- },
118
- ready () {
119
- },
120
- computed: {
121
- },
122
- methods:{
123
- scan(){
124
- HostApp.__this__=this,
125
- HostApp.scanCode({callback:"javascript:HostApp.__this__.getCode();"})
126
- },
127
- getCode(){
128
- let datapa = HostApp.getCode().data;
129
- this.$refs.paged.$refs.cri.model.f_meternumber=datapa
130
- },
131
- inspect (row) {
132
- var pardate = {
133
- _this:this,
134
- tittle:'周检单填写',
135
- safe:true
136
- }
137
- this.$dispatch('gotoson',pardate)
138
- this.$goto('step-header-bar', {weekdata: row}, 'self')
139
-
140
- },
141
- }
142
- }
143
- </script>
144
- <style scoped>
145
- .app-row {
146
- background-color: white;
147
- padding: 10px 10px 0 10px;
148
- border-bottom: 1px solid rgba(235, 235, 235, 0.5);
149
- }
150
- .search_input {
151
- border: 0;
152
- outline: none;
153
- }
154
- .font{
155
- font: 15px PingFang-SC-Medium;
156
- color: #666666;
157
- }
158
- .input-font{
159
- font: 15px PingFang-SC-Medium;
160
- color: #333333;
161
- }
162
- .btn-font{
163
- font:600 16px PingFang-SC-Bold;
164
- color: #499EDF;
165
- }
166
- .btn-color{
167
- background-color: #FFFFFF;
168
- border-radius: 10px ;
169
- border: 1px solid #499EDF;
170
- }
171
- .app-text {
172
- font-size: 12px;
173
- }
174
- .panel-self{
175
- border-radius: 10px;
176
- border:1px solid #499EDF;
177
- background-color: #F8F8F8;
178
- }
179
- .yybtn-color{
180
- border-radius: 4px ;
181
- border: 1px solid #499EDF;
182
- }
183
- .qxbtn-color{
184
- background-color: #FFFFFF;
185
- border-radius: 4px ;
186
- border: 1px solid #499EDF;
187
- }
188
- </style>
1
+ <template>
2
+ <div class="auto">
3
+ <criteria-paged :model="model" v-ref:paged>
4
+ <criteria partial='criteria' @condition-changed='search' v-ref:cri>
5
+ <div partial>
6
+ <form>
7
+ <div class="row app-row">
8
+ <div class="col-xs-4">
9
+ <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
10
+ <label class="font text-left">用户名称:</label>
11
+ </div>
12
+ <div class="col-xs-8" >
13
+ <input class="search_input input-font"
14
+ v-model=model.f_user_name condition="twpi.f_user_name like '%{}%'" style="width: 70%" placeholder="请输入用户名称" />
15
+ </div>
16
+ </div>
17
+ <div class="row app-row">
18
+ <div class="col-xs-4">
19
+ <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
20
+ <label class="font text-left">表 &nbsp;&nbsp; &nbsp;&nbsp; 号:</label>
21
+ </div>
22
+ <div class="col-xs-8" >
23
+ <input class="search_input input-font"
24
+ v-model=model.f_meternumber condition="tu.f_meternumber = '{}'" style="width: 70%" placeholder="请输入表号" />
25
+ <button type="button" name="button" class="btn btn-primary" style="width: 25%" @click="$parent.$parent.scan">扫码</button>
26
+ </div>
27
+ </div>
28
+ <div class="row app-row">
29
+ <div class="col-xs-4">
30
+ <img src="../../../assets/用户ID.png" style="width: 20px;margin-bottom: 5px" alt="">
31
+ <label class="font text-left">基表号:</label>
32
+ </div>
33
+ <div class="col-xs-8" >
34
+ <input class="search_input input-font"
35
+ v-model="model.f_base_meternumber" condition="tu.f_base_meternumber like '%{}%'" />
36
+ </div>
37
+ </div>
38
+ <div class="row app-row">
39
+ <div class="col-xs-4">
40
+ <img src="../../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
41
+ <label class="font text-left">用户地址:</label>
42
+ </div>
43
+ <div class="col-xs-8" >
44
+ <input class="search_input input-font"
45
+ v-model=model.f_address condition="twpi.f_address like '%{}%'" />
46
+ </div>
47
+ </div>
48
+ <div class="row app-row">
49
+ <div class="col-xs-4">
50
+ <img src="../../../assets/小区.png" style="width: 20px;margin-bottom: 5px" alt="">
51
+ <label class="font text-left">周检环节:</label>
52
+ </div>
53
+ <div class="col-xs-8" >
54
+ <input class="search_input input-font"
55
+ v-model=model.f_complete condition="twpi.f_complete like '%{}%'" />
56
+ </div>
57
+ </div>
58
+ <div class="row text-center" style="margin-top: 20px;">
59
+ <button type="button" class="btn btn-lg btn-font btn-color" style="width: 45%;" @click="search">查询</button>
60
+ </div>
61
+ </form>
62
+ </div>
63
+ </criteria>
64
+
65
+ <list :model="model" partial='list'>
66
+ <div partial>
67
+ <div @click="$parent.$parent.$parent.inspect(row)" class="auto app-text" style="margin-top: 5px;">
68
+ <div class="panel" style="padding: 10px 10px 5px 10px;">
69
+ <div class="panel-body panel-self">
70
+ <div class="row">
71
+ <p class="panel-title col-xs-4 text-left font">用户编号</p>
72
+ <p class="panel-title col-xs-8 text-left input-font">{{ row.f_userinfo_id }}</p>
73
+ </div>
74
+ <div class="row">
75
+ <p class="panel-title col-xs-4 text-left font">用户名称</p>
76
+ <p class="panel-title col-xs-8 text-left input-font">{{ row.f_user_name }}</p>
77
+ </div>
78
+ <div class="row">
79
+ <p class="panel-title col-xs-4 text-left font">表号</p>
80
+ <p class="panel-title col-xs-8 text-left input-font">{{ row.f_meternumber }}</p>
81
+ </div>
82
+ <div class="row">
83
+ <p class="panel-title col-xs-4 text-left font">周检环节</p>
84
+ <p class="panel-title col-xs-8 text-left input-font">{{ row.f_complete }}</p>
85
+ </div>
86
+ <div class="row">
87
+ <p class="panel-title col-xs-4 text-left font">周检状态</p>
88
+ <p class="panel-title col-xs-8 text-left input-font">{{ row.f_state }}</p>
89
+ </div>
90
+ </div>
91
+ </div>
92
+
93
+ </div>
94
+ </div>
95
+ </list>
96
+ </criteria-paged>
97
+ </div>
98
+ </template>
99
+
100
+ <script>
101
+ import {HttpResetClass, PagedList} from 'vue-client'
102
+ import Vue from 'vue'
103
+ import * as Util from '../../Util'
104
+
105
+ export default {
106
+ title: '周检待办',
107
+ data () {
108
+ let model = new PagedList(`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/sql/getWeekPlanitem`, 20,
109
+ {
110
+ f_user_name:'this.f_user_name'
111
+ })
112
+ model.f_user_name = `${Vue.user.name}`
113
+ return {
114
+ model: model,
115
+
116
+ }
117
+ },
118
+ ready () {
119
+ },
120
+ computed: {
121
+ },
122
+ methods:{
123
+ scan(){
124
+ HostApp.__this__=this,
125
+ HostApp.scanCode({callback:"javascript:HostApp.__this__.getCode();"})
126
+ },
127
+ getCode(){
128
+ let datapa = HostApp.getCode().data;
129
+ this.$refs.paged.$refs.cri.model.f_meternumber=datapa
130
+ },
131
+ reload(){
132
+ this.$refs.paged.$refs.cri.search()
133
+ },
134
+ inspect (row) {
135
+ var pardate = {
136
+ _this:this,
137
+ tittle:'周检单填写',
138
+ safe:true
139
+ }
140
+ this.$dispatch('gotoson',pardate)
141
+ this.$goto('step-header-bar', {weekdata: row}, 'self',this.reload)
142
+
143
+ },
144
+ }
145
+ }
146
+ </script>
147
+ <style scoped>
148
+ .app-row {
149
+ background-color: white;
150
+ padding: 10px 10px 0 10px;
151
+ border-bottom: 1px solid rgba(235, 235, 235, 0.5);
152
+ }
153
+ .search_input {
154
+ border: 0;
155
+ outline: none;
156
+ }
157
+ .font{
158
+ font: 15px PingFang-SC-Medium;
159
+ color: #666666;
160
+ }
161
+ .input-font{
162
+ font: 15px PingFang-SC-Medium;
163
+ color: #333333;
164
+ }
165
+ .btn-font{
166
+ font:600 16px PingFang-SC-Bold;
167
+ color: #499EDF;
168
+ }
169
+ .btn-color{
170
+ background-color: #FFFFFF;
171
+ border-radius: 10px ;
172
+ border: 1px solid #499EDF;
173
+ }
174
+ .app-text {
175
+ font-size: 12px;
176
+ }
177
+ .panel-self{
178
+ border-radius: 10px;
179
+ border:1px solid #499EDF;
180
+ background-color: #F8F8F8;
181
+ }
182
+ .yybtn-color{
183
+ border-radius: 4px ;
184
+ border: 1px solid #499EDF;
185
+ }
186
+ .qxbtn-color{
187
+ background-color: #FFFFFF;
188
+ border-radius: 4px ;
189
+ border: 1px solid #499EDF;
190
+ }
191
+ </style>