文件选择,枚举下拉
This commit is contained in:
@@ -46,7 +46,7 @@ public class LoginController {
|
|||||||
// TODO 域账号登录,待测试
|
// TODO 域账号登录,待测试
|
||||||
@Value("${spring.ldap.domainName:}")
|
@Value("${spring.ldap.domainName:}")
|
||||||
private String ldapDomainName;
|
private String ldapDomainName;
|
||||||
@Value("${spring.ldap.enable:}")
|
@Value("${spring.ldap.enable:false}")
|
||||||
private boolean ldapLoginEnable;
|
private boolean ldapLoginEnable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -8,8 +8,26 @@
|
|||||||
<template v-if="column.dataIndex === 'name'">
|
<template v-if="column.dataIndex === 'name'">
|
||||||
<a-input placeholder="请输入参数名" v-model:value="record.name" @change="queryParamChange(record)"></a-input>
|
<a-input placeholder="请输入参数名" v-model:value="record.name" @change="queryParamChange(record)"></a-input>
|
||||||
</template>
|
</template>
|
||||||
|
<template v-if="column.dataIndex === 'type'">
|
||||||
|
<a-select v-if="record.key >= 10000" v-model:value="record.type">
|
||||||
|
<a-select-option value="integer">Integer</a-select-option>
|
||||||
|
<a-select-option value="string">String</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
<a-tag color="pink" v-else-if="text === 'integer'">Integer</a-tag>
|
||||||
|
<a-tag color="red" v-else-if="text === 'string'">String</a-tag>
|
||||||
|
<a-tag color="green" v-else>{{text||'-'}}</a-tag>
|
||||||
|
</template>
|
||||||
<template v-if="column.dataIndex === 'value'">
|
<template v-if="column.dataIndex === 'value'">
|
||||||
<a-input :placeholder="record.description || '请输入参数值'" v-model:value="record.value" @change="queryParamChange(record)"></a-input>
|
<a-select v-if="record.enum && record.type === 'array'" v-model:value="record.value" mode="multiple" style="width: 100%;">
|
||||||
|
<a-select-option :value="enums" v-for="enums in record.enum">{{enums}}</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
<a-select v-else-if="record.enum" v-model:value="record.value" style="width: 100%;">
|
||||||
|
<a-select-option :value="enums" v-for="enums in record.enum">{{enums}}</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
<a-upload v-else-if="record.type==='file'" v-model:file-list="record.value" name="file" :multiple="record.type === 'array'" :before-upload="file=>{return beforeUpload(file, record)}" action="https://www.mocky.io/v2/5cc8019d300000980a055e76">
|
||||||
|
<a-button><upload-outlined></upload-outlined>选择文件</a-button>
|
||||||
|
</a-upload>
|
||||||
|
<a-input v-else :placeholder="record.description || '请输入参数值'" v-model:value="record.value" @change="queryParamChange(record)"></a-input>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="column.dataIndex === 'action'">
|
<template v-if="column.dataIndex === 'action'">
|
||||||
<CloseOutlined v-if="!record.isLastRow" @click="queryParamRemove(record)" style="cursor: pointer;"/>
|
<CloseOutlined v-if="!record.isLastRow" @click="queryParamRemove(record)" style="cursor: pointer;"/>
|
||||||
@@ -24,7 +42,7 @@
|
|||||||
import {useStore} from 'vuex';
|
import {useStore} from 'vuex';
|
||||||
import { message } from 'ant-design-vue';
|
import { message } from 'ant-design-vue';
|
||||||
import {markdownIt} from 'mavon-editor'
|
import {markdownIt} from 'mavon-editor'
|
||||||
import {CloseOutlined} from '@ant-design/icons-vue';
|
import {CloseOutlined, UploadOutlined} from '@ant-design/icons-vue';
|
||||||
import 'mavon-editor/dist/markdown/github-markdown.min.css'
|
import 'mavon-editor/dist/markdown/github-markdown.min.css'
|
||||||
import 'mavon-editor/dist/css/index.css'
|
import 'mavon-editor/dist/css/index.css'
|
||||||
|
|
||||||
@@ -34,19 +52,25 @@
|
|||||||
type: Array,
|
type: Array,
|
||||||
required: true
|
required: true
|
||||||
},
|
},
|
||||||
|
showType: {
|
||||||
|
type: Boolean,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
CloseOutlined
|
CloseOutlined, UploadOutlined
|
||||||
},
|
},
|
||||||
emits: ['update:selected'],
|
emits: ['update:selected'],
|
||||||
setup(props, { attrs, slots, emit, expose }) {
|
setup(props, { attrs, slots, emit, expose }) {
|
||||||
let queryParamList = ref(props.paramList);
|
let queryParamList = ref(props.paramList);
|
||||||
let nextIndex = 10000;
|
let nextIndex = 10000;
|
||||||
// Query参数处理
|
// Query参数处理
|
||||||
queryParamList.value.push({name: '', value: '', key: ++nextIndex, isLastRow: true});
|
queryParamList.value.push({name: '', value: '', type: 'integer', key: ++nextIndex, isLastRow: true});
|
||||||
let queryParamSelectedRowKeys = ref([]);
|
let queryParamSelectedRowKeys = ref([]);
|
||||||
queryParamList.value.forEach(item => {
|
queryParamList.value.forEach(item => {
|
||||||
item.value = item.example || '';
|
item.value = item.example || '';
|
||||||
|
if ((item.enum && item.type === 'array') || item.type === 'file') {
|
||||||
|
item.value = [];
|
||||||
|
}
|
||||||
queryParamSelectedRowKeys.value.push(item.key);
|
queryParamSelectedRowKeys.value.push(item.key);
|
||||||
});
|
});
|
||||||
emit('update:selected', queryParamSelectedRowKeys.value);
|
emit('update:selected', queryParamSelectedRowKeys.value);
|
||||||
@@ -57,7 +81,7 @@
|
|||||||
const queryParamChange = (record) => {
|
const queryParamChange = (record) => {
|
||||||
if (record.isLastRow) {
|
if (record.isLastRow) {
|
||||||
record.isLastRow = false;
|
record.isLastRow = false;
|
||||||
queryParamList.value.push({name: '', value: '', key: ++nextIndex, isLastRow: true});
|
queryParamList.value.push({name: '', value: '', type: 'integer', key: ++nextIndex, isLastRow: true});
|
||||||
queryParamSelectedRowKeys.value.push(nextIndex);
|
queryParamSelectedRowKeys.value.push(nextIndex);
|
||||||
emit('update:selected', queryParamSelectedRowKeys.value);
|
emit('update:selected', queryParamSelectedRowKeys.value);
|
||||||
}
|
}
|
||||||
@@ -67,17 +91,25 @@
|
|||||||
queryParamList.value = queryParamList.value.filter(item => item !== record);
|
queryParamList.value = queryParamList.value.filter(item => item !== record);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
let queryParamListColumns = ref([]);
|
||||||
|
queryParamListColumns.value.push({title: '参数名', dataIndex: 'name', width: 250});
|
||||||
|
if (props.showType) {
|
||||||
|
queryParamListColumns.value.push({title: '类型', dataIndex: 'type', width: 100});
|
||||||
|
}
|
||||||
|
queryParamListColumns.value.push({title: '参数值', dataIndex: 'value'});
|
||||||
|
queryParamListColumns.value.push({title: '', dataIndex: 'action', width: 40});
|
||||||
|
const beforeUpload = (file, record) => {
|
||||||
|
console.log(record)
|
||||||
|
return false;
|
||||||
|
};
|
||||||
return {
|
return {
|
||||||
queryParamList,
|
queryParamList,
|
||||||
queryParamSelectedRowKeys,
|
queryParamSelectedRowKeys,
|
||||||
queryParamRowSelectionChange,
|
queryParamRowSelectionChange,
|
||||||
queryParamChange,
|
queryParamChange,
|
||||||
queryParamRemove,
|
queryParamRemove,
|
||||||
queryParamListColumns: [
|
queryParamListColumns,
|
||||||
{title: '参数名', dataIndex: 'name', width: 250},
|
beforeUpload,
|
||||||
{title: '参数值', dataIndex: 'value'},
|
|
||||||
{title: '', dataIndex: 'action', width: 40},
|
|
||||||
],
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<a-tab-pane tab="URL参数" key="urlParam">
|
<a-tab-pane tab="URL参数" key="urlParam">
|
||||||
<ParamTable v-model:selected="urlParamChecked" :paramList="urlParamList"></ParamTable>
|
<ParamTable v-model:selected="urlParamChecked" :paramList="urlParamList"></ParamTable>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane tab="请求参数" key="bodyParam">
|
<a-tab-pane tab="请求参数" key="bodyParam" v-if="docInfoShow.method !== 'get'">
|
||||||
<a-radio-group v-model:value="bodyParamType" style="margin-bottom: 5px;">
|
<a-radio-group v-model:value="bodyParamType" style="margin-bottom: 5px;">
|
||||||
<a-radio value="none">none</a-radio>
|
<a-radio value="none">none</a-radio>
|
||||||
<a-radio value="form">form-data</a-radio>
|
<a-radio value="form">form-data</a-radio>
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
<a-radio value="binary">binary</a-radio>
|
<a-radio value="binary">binary</a-radio>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
<div v-show="bodyParamType === 'form'">
|
<div v-show="bodyParamType === 'form'">
|
||||||
<ParamTable v-model:selected="formParamChecked" :paramList="formParamList"></ParamTable>
|
<ParamTable v-model:selected="formParamChecked" :paramList="formParamList" showType></ParamTable>
|
||||||
</div>
|
</div>
|
||||||
<div v-show="bodyParamType === 'formUrlEncode'">
|
<div v-show="bodyParamType === 'formUrlEncode'">
|
||||||
<ParamTable v-model:selected="formEncodeParamChecked" :paramList="formEncodeParamList"></ParamTable>
|
<ParamTable v-model:selected="formEncodeParamChecked" :paramList="formEncodeParamList"></ParamTable>
|
||||||
|
|||||||
Reference in New Issue
Block a user