safecheck-client 3.0.35-14 → 3.0.35-15

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "safecheck-client",
3
3
  "//": "主分支版本别乱升,测试包的版本直接发包(建议使用1.XX.XX-XXX格式作为测试包,不要频繁升级第三位版本号),别提交版本号。切了分支切记把主分支版本升了,保证主分支始终是最高版本!!!!!",
4
- "version": "3.0.35-14",
4
+ "version": "3.0.35-15",
5
5
  "description": "安检模块 前端组件",
6
6
  "author": "丁新 <417755458@qq.com>",
7
7
  "license": "ISC",
@@ -1,269 +1,269 @@
1
- <template>
2
- <div class="col-sm-12" style="background-color: #FFFFFF">
3
- <div class="col-sm-12" style="padding:50px 100px;height: 25%">
4
- <div class="form-group col-sm-5" v-if="issearch">
5
- <!-- <v-select-->
6
- <!-- class="select select_list"-->
7
- <!-- :value.sync="useType"-->
8
- <!-- width="90%"-->
9
- <!-- v-model="useType"-->
10
- <!-- :options='typeOfUse'-->
11
- <!-- :valueSingle="true"></v-select>-->
12
- </div>
13
- <div class="form-group col-sm-12" style="text-align: center" v-if="issearch">
14
- <button type="button" class="btn btn-primary item_btn" @click="load">搜索</button>
15
- </div>
16
- <div class="form-group col-sm-12" style="text-align: center" v-if="isupload">
17
- <button type="button" class="btn btn-primary item_btn" @click="showUpload = !showUpload">本地上传</button>
18
- </div>
19
-
20
- </div>
21
- <hr style="width: 90%;margin: 0px auto;border: #999999 1px solid;"/>
22
- <div class="col-sm-12" style="overflow: scroll;height: 75%">
23
- <div :class="bootstraped ? bootstraped + ' showData' : 'col-sm-15 showData'" v-for="row in fileInfoData">
24
- <div class="col-sm-12 item">
25
- <div class="left col-sm-5">
26
- <a href="#" class="thumbnail" style="width: 88%;height: 98%;margin-left: 16px">
27
- <img v-if="row.f_filetype === 'jpg'||row.f_filetype === 'png'||row.f_filetype === 'jpeg'||row.f_filetype === 'gif'||row.f_filetype === 'bmp'||row.f_filetype === 'MP3'" :src="row.f_downloadURL" alt="..."/>
28
- <img v-if="row.f_filetype === 'pdf'" src="../../assets/pdf.jpg" alt="" />
29
- <img v-if="row.f_filetype === 'xls'||row.f_filetype === 'xlsx'" src="../../assets/excel.jpg" alt="" />
30
- <img v-if="row.f_filetype === 'doc'||row.f_filetype === 'docx'" src="../../assets/doc.jpg" alt="" />
31
- <img v-if="row.f_filetype === 'mp3'" src="../../assets/mp3.png" alt="" />
32
- </a>
33
- </div>
34
- <div class="right col-sm-15">
35
- <p :title="row.f_filename" class="clears"><strong>文件名:</strong>{{row.f_filename}}</p>
36
- <p :title="row.f_username" class="clears"><strong>操作员:</strong><span>{{row.f_username}}</span></p>
37
- <p :title="row.fusetype" class="clears"><strong>使用类型:</strong><span>{{row.fusetype}}</span></p>
38
- <p :title="row.f_uploaddate" class="clears"><strong>上传时间:</strong><span>{{row.f_uploaddate}}</span></p>
39
- <p :title="row.fremarks" class="clears"><strong>文件说明:</strong>{{row.fremarks}}</p>
40
- <p class="clears">
41
- <a v-if="row.f_filetype === 'jpg' || row.f_filetype==='png' || row.f_filetype==='gif' || row.f_filetype==='bmp'" :href="row.f_downloadURL" style="background:#6aa6e2" class="btn btn-primary" target="_blank" role="button">预览</a>
42
- <a v-else @click="downloadfile(row.f_downloadURL)" style="background:#6aa6e2" class="btn btn-primary" role="button">下载</a>
43
- <a v-if="isdelete" @click="delet($index, row)" href="#" class="btn btn-default" role="button" role="button">删除</a>
44
- </p>
45
- </div>
46
- </div>
47
- </div>
48
- </div>
49
- </div>
50
- <work-busy :is-busy="loading"></work-busy>
51
- <modal :show.sync="showUpload" v-ref:modal backdrop="false">
52
- <header slot="modal-header" class="modal-header">
53
- <button type="button" class="close" @click="close">
54
- <img src="../../assets/x.png" style="margin: -4px;margin-right: -15px;height: 37px"/>
55
- <!-- <span class="glyphicon glyphicon-remove"></span>--></button>
56
- <h4 class="modal-title" style="text-align: center" v-if="headers.fusetype=='MP3'">文件上传</h4>
57
- </header>
58
- <article slot="modal-body" class="modal-body form-horizontal" >
59
- <div class="form-group" >
60
- <!-blodid:在上传时候绑定用户标识-->
61
- <file-upload style="margin-top: -8px;margin-left: 45px" :name="'myFile' + blodid"
62
- action="rs/file/uploadFile" tagname="文件上传" :headers="headers" multiple v-ref:file>
63
- </file-upload>
64
- </div>
65
- <div class="form-group" v-if="isusetype" style="padding-top: 15px">
66
- <label class="col-sm-2 control-label">文件类型:</label>
67
- <div class="col-sm-10">
68
- <input-select
69
- class="select select_list"
70
- :value.sync="headers.fusetype"
71
- v-model="headers.fusetype"
72
- :options="$appdata.getParam('使用类型')"
73
- :valueSingle="true"></input-select>
74
- </div>
75
- </div>
76
- <div class="form-group" v-if="isremark">
77
- <label class="col-sm-2 control-label">文件说明:</label>
78
- <div class="col-sm-10">
79
- <input class="form-control input_view" style=""
80
- v-model="headers.fremarks"
81
- :value="headers.fremarks"/>
82
- </div>
83
- </div>
84
- </article>
85
- <footer slot="modal-footer" class="modal-footer">
86
- </footer>
87
- </modal>
88
- </template>
89
-
90
- <script>
91
- import {HttpResetClass} from 'vue-client'
92
- import {isEmpty} from "../Util";
93
- import FileUpload from './FileUpload'
94
-
95
- export default {
96
- title: '附件',
97
- props: ['blodid', 'businessid', 'isremark', 'isusetype', 'takeimg', 'defname', 'isupload', 'isdelete', 'bootstraped', 'issearch'],
98
- components: {
99
- FileUpload
100
- },
101
- data () {
102
- return {
103
- fileInfoData: [], // 数据库存储的文件记录对象数组
104
- headers: {'username': this.$login.f.name, 'blodid': '','businessid':'', 'fremarks': '','defname':'','fusetype':''}, // 调用rs/file/uploadFile 的参数
105
- showUpload: false, // 上传模态框控制
106
- useType: null,
107
- loading:false
108
- }
109
- },
110
- ready () {
111
- this.headers.blodid = this.blodid
112
- this.headers.businessid = this.businessid
113
- this.headers.defname = this.defname
114
- //tag;
115
- //tag;
116
- if (this.blodid || this.businessid) {
117
- //tag;
118
- //tag;
119
- this.load()
120
- }
121
- },
122
- methods: {
123
- delet(index, row) {
124
- this.$resetdelete('rs/entity/t_files', {id: row.id}, {resolveMsg: '删除成功', rejectMsg: '删除失败'}).then((res) => {
125
- this.$dispatch("delResid",row.id)
126
- this.load()
127
- })
128
- },
129
- // 下载
130
- downloadfile(filepath){
131
- var link = document.createElement('a');
132
- link.href = filepath;
133
- link.target='_blank'
134
- link.dispatchEvent(new MouseEvent('click'));
135
- },
136
- // 关闭文件上传对话框
137
- close () {
138
- this.showUpload = false
139
- // 将选的文件清空
140
- this.$refs.file.$el.querySelector('input').value = ''
141
- this.headers.fusetype = ''
142
- this.headers.fremarks = ''
143
- this.load()
144
- },
145
- // 查询
146
- async load() {
147
- let condition = ''
148
- if(this.businessid){
149
- condition = `f_businessid= '${this.businessid}' `
150
- }else{
151
- condition = `f_blobid= '${this.blodid}' `
152
- }
153
- if (!isEmpty(this.useType)) {
154
- condition += `and fusetype like '${this.useType}'`
155
- }
156
- let http = new HttpResetClass()
157
- let data = {
158
- tablename: 't_files',
159
- condition: condition + ` order by f_uploaddate desc `
160
- }
161
- let getFile = await http.load('POST', 'rs/sql/singleTable', {data: data}, {
162
- warnMsg: null,
163
- resolveMsg: null
164
- })
165
-
166
- for (var i = 0; i < getFile.data.length; i++) {
167
- // 如果使用类型包含导入字样,则是execl文件导入的,不做显示
168
- if(getFile.data[i].fusetype&&(getFile.data[i].fusetype.includes('execl导入'))){
169
- getFile.data.splice(i,1)
170
- i--
171
- continue
172
- }
173
- let temp = getFile.data[i].f_downloadpath
174
- let URL = temp.substring(temp.lastIndexOf(":\\") + 2)
175
- if (temp.startsWith('E:')){
176
- URL = `rs/image/file/${getFile.data[i].f_filename}`
177
- }
178
- console.log(URL)
179
- getFile.data[i].f_downloadURL = "http://" + location.host + "/" + URL
180
- }
181
- this.fileInfoData = []
182
- this.fileInfoData = getFile.data
183
- },
184
- convertBase64ToBlob(base64String) {
185
- // 将base64解码
186
- var bytes = atob(base64String);
187
- //var bytes = base64;
188
- var bytesCode = new ArrayBuffer(bytes.length);
189
- // 转换为类型化数组
190
- var byteArray = new Uint8Array(bytesCode);
191
-
192
- // 将base64转换为ascii码
193
- for (var i = 0; i < bytes.length; i++) {
194
- byteArray[i] = bytes.charCodeAt(i);
195
- }
196
- // 生成Blob对象(文件对象)
197
- return new Blob([bytesCode], {type: 'image/jpeg'});
198
- },
199
- },
200
- computed: {
201
- typeOfUse () {
202
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('使用类型')]
203
- }
204
- },
205
- events: {
206
- onFileUpload: function (file, res) {
207
- this.$dispatch("resid",res.id)
208
- this.headers.fremarks=''
209
- this.close()
210
- },
211
- beforeFileUpload:function (file) {
212
- this.loading = true
213
- },
214
- onAllFilesUploaded:function (file) {
215
- this.loading = false
216
- }
217
-
218
- },
219
- watch:{
220
- //监听blodid值的变化
221
- 'blodid'(val){
222
- //tag;
223
- if (val) {
224
- //tag;
225
- this.load()
226
- }
227
- }
228
- },
229
- }
230
- </script>
231
-
232
- <style scoped>
233
- .clears{
234
- overflow:hidden;
235
- text-overflow:ellipsis;
236
- white-space:nowrap;
237
- }
238
- .showData {
239
- padding: 15px 10px 0px 10px;
240
- box-sizing: border-box;
241
- height: 230px;
242
- font-family: "微软雅黑";
243
- }
244
- .showData .item{
245
- padding-bottom: 10px;
246
- border-bottom: solid 1px #c1c1c1;
247
- }
248
- .left {
249
- padding-right: 10px;
250
- }
251
- .left img{
252
- height: 100%;
253
- width: 100%;
254
- }
255
- .right{
256
- height: 100%;
257
- /*display: -webkit-flex;*/
258
- /*display: flex;*/
259
- /*flex-direction: column;*/
260
- /*justify-content: space-around;*/
261
- }
262
- .item_btn{
263
- width: 80%;
264
- background-color: #6aa6e2;
265
- border-radius: 4px;
266
- color: #FFFFFF;
267
- font-family: PingFang;
268
- }
269
- </style>
1
+ <template>
2
+ <div class="col-sm-12" style="background-color: #FFFFFF">
3
+ <div class="col-sm-12" style="padding:50px 100px;height: 25%">
4
+ <div class="form-group col-sm-5" v-if="issearch">
5
+ <!-- <v-select-->
6
+ <!-- class="select select_list"-->
7
+ <!-- :value.sync="useType"-->
8
+ <!-- width="90%"-->
9
+ <!-- v-model="useType"-->
10
+ <!-- :options='typeOfUse'-->
11
+ <!-- :valueSingle="true"></v-select>-->
12
+ </div>
13
+ <div class="form-group col-sm-12" style="text-align: center" v-if="issearch">
14
+ <button type="button" class="btn btn-primary item_btn" @click="load">搜索</button>
15
+ </div>
16
+ <div class="form-group col-sm-12" style="text-align: center" v-if="isupload">
17
+ <button type="button" class="btn btn-primary item_btn" @click="showUpload = !showUpload">本地上传</button>
18
+ </div>
19
+
20
+ </div>
21
+ <hr style="width: 90%;margin: 0px auto;border: #999999 1px solid;"/>
22
+ <div class="col-sm-12" style="overflow: scroll;height: 75%">
23
+ <div :class="bootstraped ? bootstraped + ' showData' : 'col-sm-15 showData'" v-for="row in fileInfoData">
24
+ <div class="col-sm-12 item">
25
+ <div class="left col-sm-5">
26
+ <a href="#" class="thumbnail" style="width: 88%;height: 98%;margin-left: 16px">
27
+ <img v-if="row.f_filetype === 'jpg'||row.f_filetype === 'png'||row.f_filetype === 'jpeg'||row.f_filetype === 'gif'||row.f_filetype === 'bmp'||row.f_filetype === 'MP3'" :src="row.f_downloadURL" alt="..."/>
28
+ <img v-if="row.f_filetype === 'pdf'" src="../../assets/pdf.jpg" alt="" />
29
+ <img v-if="row.f_filetype === 'xls'||row.f_filetype === 'xlsx'" src="../../assets/excel.jpg" alt="" />
30
+ <img v-if="row.f_filetype === 'doc'||row.f_filetype === 'docx'" src="../../assets/doc.jpg" alt="" />
31
+ <img v-if="row.f_filetype === 'mp3'" src="../../assets/mp3.png" alt="" />
32
+ </a>
33
+ </div>
34
+ <div class="right col-sm-15">
35
+ <p :title="row.f_filename" class="clears"><strong>文件名:</strong>{{row.f_filename}}</p>
36
+ <p :title="row.f_username" class="clears"><strong>操作员:</strong><span>{{row.f_username}}</span></p>
37
+ <p :title="row.fusetype" class="clears"><strong>使用类型:</strong><span>{{row.fusetype}}</span></p>
38
+ <p :title="row.f_uploaddate" class="clears"><strong>上传时间:</strong><span>{{row.f_uploaddate}}</span></p>
39
+ <p :title="row.fremarks" class="clears"><strong>文件说明:</strong>{{row.fremarks}}</p>
40
+ <p class="clears">
41
+ <a v-if="row.f_filetype === 'jpg' || row.f_filetype==='png' || row.f_filetype==='gif' || row.f_filetype==='bmp'" :href="row.f_downloadURL" style="background:#6aa6e2" class="btn btn-primary" target="_blank" role="button">预览</a>
42
+ <a v-else @click="downloadfile(row.f_downloadURL)" style="background:#6aa6e2" class="btn btn-primary" role="button">下载</a>
43
+ <a v-if="isdelete" @click="delet($index, row)" href="#" class="btn btn-default" role="button" role="button">删除</a>
44
+ </p>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ </div>
49
+ </div>
50
+ <work-busy :is-busy="loading"></work-busy>
51
+ <modal :show.sync="showUpload" v-ref:modal backdrop="false">
52
+ <header slot="modal-header" class="modal-header">
53
+ <button type="button" class="close" @click="close">
54
+ <img src="../../assets/x.png" style="margin: -4px;margin-right: -15px;height: 37px"/>
55
+ <!-- <span class="glyphicon glyphicon-remove"></span>--></button>
56
+ <h4 class="modal-title" style="text-align: center" v-if="headers.fusetype=='MP3'">文件上传</h4>
57
+ </header>
58
+ <article slot="modal-body" class="modal-body form-horizontal" >
59
+ <div class="form-group" >
60
+ <!-blodid:在上传时候绑定用户标识-->
61
+ <file-upload style="margin-top: -8px;margin-left: 45px" :name="'myFile' + blodid"
62
+ action="rs/file/uploadFile" tagname="文件上传" :headers="headers" multiple v-ref:file>
63
+ </file-upload>
64
+ </div>
65
+ <div class="form-group" v-if="isusetype" style="padding-top: 15px">
66
+ <label class="col-sm-2 control-label">文件类型:</label>
67
+ <div class="col-sm-10">
68
+ <input-select
69
+ class="select select_list"
70
+ :value.sync="headers.fusetype"
71
+ v-model="headers.fusetype"
72
+ :options="$appdata.getParam('使用类型')"
73
+ :valueSingle="true"></input-select>
74
+ </div>
75
+ </div>
76
+ <div class="form-group" v-if="isremark">
77
+ <label class="col-sm-2 control-label">文件说明:</label>
78
+ <div class="col-sm-10">
79
+ <input class="form-control input_view" style=""
80
+ v-model="headers.fremarks"
81
+ :value="headers.fremarks"/>
82
+ </div>
83
+ </div>
84
+ </article>
85
+ <footer slot="modal-footer" class="modal-footer">
86
+ </footer>
87
+ </modal>
88
+ </template>
89
+
90
+ <script>
91
+ import {HttpResetClass} from 'vue-client'
92
+ import {isEmpty} from "../Util";
93
+ import FileUpload from './FileUpload'
94
+
95
+ export default {
96
+ title: '附件',
97
+ props: ['blodid', 'businessid', 'isremark', 'isusetype', 'takeimg', 'defname', 'isupload', 'isdelete', 'bootstraped', 'issearch'],
98
+ components: {
99
+ FileUpload
100
+ },
101
+ data () {
102
+ return {
103
+ fileInfoData: [], // 数据库存储的文件记录对象数组
104
+ headers: {'username': this.$login.f.name, 'blodid': '','businessid':'', 'fremarks': '','defname':'','fusetype':''}, // 调用rs/file/uploadFile 的参数
105
+ showUpload: false, // 上传模态框控制
106
+ useType: null,
107
+ loading:false
108
+ }
109
+ },
110
+ ready () {
111
+ this.headers.blodid = this.blodid
112
+ this.headers.businessid = this.businessid
113
+ this.headers.defname = this.defname
114
+ //tag;
115
+ //tag;
116
+ if (this.blodid || this.businessid) {
117
+ //tag;
118
+ //tag;
119
+ this.load()
120
+ }
121
+ },
122
+ methods: {
123
+ delet(index, row) {
124
+ this.$resetdelete('rs/entity/t_files', {id: row.id}, {resolveMsg: '删除成功', rejectMsg: '删除失败'}).then((res) => {
125
+ this.$dispatch("delResid",row.id)
126
+ this.load()
127
+ })
128
+ },
129
+ // 下载
130
+ downloadfile(filepath){
131
+ var link = document.createElement('a');
132
+ link.href = filepath;
133
+ link.target='_blank'
134
+ link.dispatchEvent(new MouseEvent('click'));
135
+ },
136
+ // 关闭文件上传对话框
137
+ close () {
138
+ this.showUpload = false
139
+ // 将选的文件清空
140
+ this.$refs.file.$el.querySelector('input').value = ''
141
+ this.headers.fusetype = ''
142
+ this.headers.fremarks = ''
143
+ this.load()
144
+ },
145
+ // 查询
146
+ async load() {
147
+ let condition = ''
148
+ if(this.businessid){
149
+ condition = `f_businessid= '${this.businessid}' `
150
+ }else{
151
+ condition = `f_blobid= '${this.blodid}' `
152
+ }
153
+ if (!isEmpty(this.useType)) {
154
+ condition += `and fusetype like '${this.useType}'`
155
+ }
156
+ let http = new HttpResetClass()
157
+ let data = {
158
+ tablename: 't_files',
159
+ condition: condition + ` order by f_uploaddate desc `
160
+ }
161
+ let getFile = await http.load('POST', 'rs/sql/singleTable', {data: data}, {
162
+ warnMsg: null,
163
+ resolveMsg: null
164
+ })
165
+
166
+ for (var i = 0; i < getFile.data.length; i++) {
167
+ // 如果使用类型包含导入字样,则是execl文件导入的,不做显示
168
+ if(getFile.data[i].fusetype&&(getFile.data[i].fusetype.includes('execl导入'))){
169
+ getFile.data.splice(i,1)
170
+ i--
171
+ continue
172
+ }
173
+ let temp = getFile.data[i].f_downloadpath
174
+ let URL = temp.substring(temp.lastIndexOf(":\\") + 2)
175
+ if (temp.startsWith('E:')){
176
+ URL = `rs/image/file/${getFile.data[i].f_filename}`
177
+ }
178
+ console.log(URL)
179
+ getFile.data[i].f_downloadURL = "http://" + location.host + "/" + URL
180
+ }
181
+ this.fileInfoData = []
182
+ this.fileInfoData = getFile.data
183
+ },
184
+ convertBase64ToBlob(base64String) {
185
+ // 将base64解码
186
+ var bytes = atob(base64String);
187
+ //var bytes = base64;
188
+ var bytesCode = new ArrayBuffer(bytes.length);
189
+ // 转换为类型化数组
190
+ var byteArray = new Uint8Array(bytesCode);
191
+
192
+ // 将base64转换为ascii码
193
+ for (var i = 0; i < bytes.length; i++) {
194
+ byteArray[i] = bytes.charCodeAt(i);
195
+ }
196
+ // 生成Blob对象(文件对象)
197
+ return new Blob([bytesCode], {type: 'image/jpeg'});
198
+ },
199
+ },
200
+ computed: {
201
+ typeOfUse () {
202
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('使用类型')]
203
+ }
204
+ },
205
+ events: {
206
+ onFileUpload: function (file, res) {
207
+ this.$dispatch("resid",res.id)
208
+ this.headers.fremarks=''
209
+ this.close()
210
+ },
211
+ beforeFileUpload:function (file) {
212
+ this.loading = true
213
+ },
214
+ onAllFilesUploaded:function (file) {
215
+ this.loading = false
216
+ }
217
+
218
+ },
219
+ watch:{
220
+ //监听blodid值的变化
221
+ 'blodid'(val){
222
+ //tag;
223
+ if (val) {
224
+ //tag;
225
+ this.load()
226
+ }
227
+ }
228
+ },
229
+ }
230
+ </script>
231
+
232
+ <style scoped>
233
+ .clears{
234
+ overflow:hidden;
235
+ text-overflow:ellipsis;
236
+ white-space:nowrap;
237
+ }
238
+ .showData {
239
+ padding: 15px 10px 0px 10px;
240
+ box-sizing: border-box;
241
+ height: 230px;
242
+ font-family: "微软雅黑";
243
+ }
244
+ .showData .item{
245
+ padding-bottom: 10px;
246
+ border-bottom: solid 1px #c1c1c1;
247
+ }
248
+ .left {
249
+ padding-right: 10px;
250
+ }
251
+ .left img{
252
+ height: 100%;
253
+ width: 100%;
254
+ }
255
+ .right{
256
+ height: 100%;
257
+ /*display: -webkit-flex;*/
258
+ /*display: flex;*/
259
+ /*flex-direction: column;*/
260
+ /*justify-content: space-around;*/
261
+ }
262
+ .item_btn{
263
+ width: 80%;
264
+ background-color: #6aa6e2;
265
+ border-radius: 4px;
266
+ color: #FFFFFF;
267
+ font-family: PingFang;
268
+ }
269
+ </style>