vue2-client 1.2.30 → 1.2.32-test1
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/CHANGELOG.md +65 -60
- package/package.json +1 -1
- package/src/base-client/all.js +59 -57
- package/src/base-client/components/common/CreateQuery/CreateQuery.vue +1333 -1308
- package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +1 -1
- package/src/base-client/components/common/Upload/Upload.vue +120 -0
- package/src/base-client/components/common/Upload/index.js +3 -0
- package/src/base-client/components/common/XForm/XFormItem.vue +280 -307
- package/src/base-client/components/common/XFormTable/XFormTable.vue +484 -406
- package/src/base-client/components/common/XTable/index.md +9 -9
- package/src/services/api/applyInstallApi.js +14 -0
- package/src/services/api/restTools.js +24 -23
- package/src/utils/request.js +198 -197
|
@@ -564,7 +564,7 @@ export default {
|
|
|
564
564
|
editColumnItem (key, index) {
|
|
565
565
|
if (this.itemMap[key]) {
|
|
566
566
|
this.type = '修改'
|
|
567
|
-
this.item = this.itemMap[key]
|
|
567
|
+
this.item = Object.assign({ formType: 'input', type: 'string' }, this.itemMap[key])
|
|
568
568
|
this.selectIndex = index
|
|
569
569
|
this.dataColumnVisible = true
|
|
570
570
|
} else {
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<a-upload-dragger
|
|
4
|
+
v-if="model.type === 'file'"
|
|
5
|
+
name="file"
|
|
6
|
+
:multiple="true"
|
|
7
|
+
:remove="deleteFileItem"
|
|
8
|
+
:customRequest="uploadFiles"
|
|
9
|
+
:file-list="uploadedFileList">
|
|
10
|
+
<p class="ant-upload-drag-icon">
|
|
11
|
+
<a-icon type="inbox"/>
|
|
12
|
+
</p>
|
|
13
|
+
<p class="ant-upload-text">
|
|
14
|
+
点击或拖动文件到该区域上传
|
|
15
|
+
</p>
|
|
16
|
+
<p class="ant-upload-hint">
|
|
17
|
+
支持单个或多个文件
|
|
18
|
+
</p>
|
|
19
|
+
</a-upload-dragger>
|
|
20
|
+
<a-upload
|
|
21
|
+
v-if=" model.type === 'image'"
|
|
22
|
+
list-type="picture-card"
|
|
23
|
+
:customRequest="uploadFiles"
|
|
24
|
+
:remove="deleteFileItem"
|
|
25
|
+
:file-list="uploadedFileList">
|
|
26
|
+
<a-icon type="plus"/>
|
|
27
|
+
<div class="ant-upload-text">
|
|
28
|
+
Upload
|
|
29
|
+
</div>
|
|
30
|
+
</a-upload>
|
|
31
|
+
</div>
|
|
32
|
+
</template>
|
|
33
|
+
|
|
34
|
+
<script>
|
|
35
|
+
|
|
36
|
+
import { post } from '@/services/api'
|
|
37
|
+
import { mapState } from 'vuex'
|
|
38
|
+
|
|
39
|
+
export default {
|
|
40
|
+
name: 'uploads',
|
|
41
|
+
data () {
|
|
42
|
+
return {
|
|
43
|
+
uploadedFileList: [],
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
props: {
|
|
47
|
+
// 表单属性
|
|
48
|
+
model: {
|
|
49
|
+
type: Object,
|
|
50
|
+
default: () => {
|
|
51
|
+
return {}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
computed: {
|
|
56
|
+
...mapState('account', { currUser: 'user' })
|
|
57
|
+
},
|
|
58
|
+
methods: {
|
|
59
|
+
uploadFiles (info) {
|
|
60
|
+
// 初始化文件信息
|
|
61
|
+
const fileInfo = {
|
|
62
|
+
uid: info.file.uid,
|
|
63
|
+
name: info.file.name,
|
|
64
|
+
status: 'uploading',
|
|
65
|
+
response: '',
|
|
66
|
+
url: '',
|
|
67
|
+
}
|
|
68
|
+
// 放入上传列表中,以便于显示上传进度
|
|
69
|
+
this.uploadedFileList.push(fileInfo)
|
|
70
|
+
// 组装上传数据
|
|
71
|
+
const headers = {
|
|
72
|
+
'Content-Type': 'multipart/form-data',
|
|
73
|
+
}
|
|
74
|
+
const formData = new FormData()
|
|
75
|
+
formData.append('avatar', info.file)
|
|
76
|
+
formData.append('resUploadMode', this.model.resUploadMode)
|
|
77
|
+
if (this.model.pathKey) {
|
|
78
|
+
formData.append('pathKey', this.model.pathKey)
|
|
79
|
+
}
|
|
80
|
+
formData.append('stockAlias', this.model.stockAlias)
|
|
81
|
+
formData.append('resUploadStock', this.model.resUploadStock)
|
|
82
|
+
formData.append('filename', info.file.name)
|
|
83
|
+
formData.append('filesize', (info.file.size / 1024 / 1024).toFixed(4))
|
|
84
|
+
formData.append('f_operator', this.currUser.username)
|
|
85
|
+
|
|
86
|
+
let url = '/webmeteruploadapi/upload'
|
|
87
|
+
if (process.env.NODE_ENV === 'production') {
|
|
88
|
+
url = `/${this.model.stockAlias}/webmeteruploadapi/upload`
|
|
89
|
+
}
|
|
90
|
+
post(url, formData, { headers }).then(res => {
|
|
91
|
+
// 根据服务端返回的结果判断成功与否,设置文件条目的状态
|
|
92
|
+
if (res.success) {
|
|
93
|
+
fileInfo.status = 'done'
|
|
94
|
+
fileInfo.response = JSON.parse(res.data)
|
|
95
|
+
fileInfo.id = JSON.parse(res.data).id
|
|
96
|
+
fileInfo.url = JSON.parse(res.data).f_downloadpath
|
|
97
|
+
this.$emit('setFiles', this.uploadedFileList.filter(item => item.status === 'done').map(item => item.id))
|
|
98
|
+
this.$message.success('上传成功!')
|
|
99
|
+
} else {
|
|
100
|
+
fileInfo.status = 'error'
|
|
101
|
+
fileInfo.response = res.data
|
|
102
|
+
this.$message.error('上传失败!')
|
|
103
|
+
}
|
|
104
|
+
})
|
|
105
|
+
},
|
|
106
|
+
// 删除文件
|
|
107
|
+
deleteFileItem (file) {
|
|
108
|
+
// 找到当前文件所在列表的索引
|
|
109
|
+
const index = this.uploadedFileList.indexOf(file)
|
|
110
|
+
// 从列表中移除该文件
|
|
111
|
+
this.uploadedFileList.splice(index, 1)
|
|
112
|
+
this.$emit('setFiles', this.uploadedFileList.filter(item => item.status === 'done').map(item => item.id))
|
|
113
|
+
return true
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
</script>
|
|
118
|
+
<style lang="less" scoped>
|
|
119
|
+
|
|
120
|
+
</style>
|