|
48 | 48 | {{$tc('p.new.form.swagger', 0)}}
|
49 | 49 | <span>({{$tc('p.new.form.swagger', 1)}})</span>
|
50 | 50 | </template>
|
51 |
| - <i-input v-model="form.projectSwagger" placeholder="http://example.com/swagger.json"></i-input> |
| 51 | + <i-select v-model="swaggerType" class="em-new__swagger-type"> |
| 52 | + <Option value="URL">URL</Option> |
| 53 | + <Option value="Upload">Upload</Option> |
| 54 | + </i-select> |
| 55 | + <i-input v-if="swaggerType === 'URL'" v-model="form.projectSwagger" placeholder="http://example.com/swagger.json"></i-input> |
| 56 | + <Upload |
| 57 | + type="drag" |
| 58 | + :headers="uploadHeaders" |
| 59 | + :show-upload-list="false" |
| 60 | + :format="['json','yml']" |
| 61 | + :action="uploadAPI" |
| 62 | + :on-success="handleSwaggerUploadSuccess" |
| 63 | + :on-format-error="handleSwaggerUploadError" |
| 64 | + v-if="swaggerType === 'Upload'"> |
| 65 | + <div style="padding: 20px 0"> |
| 66 | + <Icon type="ios-cloud-upload" size="52" style="color: #3399ff"></Icon> |
| 67 | + <p>JSON / YML</p> |
| 68 | + </div> |
| 69 | + </Upload> |
52 | 70 | <p class="em-new__form-description">
|
53 | 71 | {{$tc('p.new.form.swagger', 2)}} <router-link to="/docs#swagger"><Icon type="help-circled"></Icon></router-link>
|
54 | 72 | </p>
|
|
97 | 115 | </style>
|
98 | 116 |
|
99 | 117 | <script>
|
| 118 | +import conf from 'config' |
100 | 119 | import * as api from '../../api'
|
101 | 120 |
|
102 | 121 | export default {
|
103 | 122 | name: 'newProject',
|
104 | 123 | data () {
|
105 | 124 | return {
|
| 125 | + uploadAPI: conf.APIPrefix + '/upload', |
| 126 | + swaggerType: 'URL', |
106 | 127 | remoteLoading: false,
|
107 | 128 | users: [],
|
108 | 129 | groups: [],
|
@@ -167,9 +188,22 @@ export default {
|
167 | 188 | } else {
|
168 | 189 | return this.form.groupId !== this.user.id
|
169 | 190 | }
|
| 191 | + }, |
| 192 | + uploadHeaders () { |
| 193 | + return { |
| 194 | + Authorization: 'Bearer ' + this.user.token |
| 195 | + } |
170 | 196 | }
|
171 | 197 | },
|
172 | 198 | methods: {
|
| 199 | + handleSwaggerUploadSuccess (response) { |
| 200 | + this.form.projectSwagger = response.data.path |
| 201 | + this.swaggerType = 'URL' |
| 202 | + this.$Message.success(this.$t('p.new.uploadSuccess')) |
| 203 | + }, |
| 204 | + handleSwaggerUploadError () { |
| 205 | + this.$Message.error(this.$t('p.new.formatError')) |
| 206 | + }, |
173 | 207 | convertUrl (url) {
|
174 | 208 | const newUrl = '/' + url
|
175 | 209 | return newUrl === '/'
|
|
0 commit comments