Commit 741c1ce06b5be6592685d1f14e72ad56464bde66

Authored by fengwotao
1 parent 3ebd8c3a

pref: 优化公共接口管理部分代码

... ... @@ -2,29 +2,8 @@
2 2 <div>
3 3 <div class="mt-8">
4 4 <div class="flex">
5   - <div class="flex" v-if="interfaceType === 'SYSTEM' && isAdmin(role)">
6   - <Select
7   - v-model:value="selectTenant"
8   - allowClear
9   - @change="onSelect"
10   - style="width: 150px"
11   - placeholder="请选择租户"
12   - :options="selectOptions"
13   - show-search
14   - :filter-option="filterOption"
15   - />
16   - <Select
17   - v-model:value="selectSysTenant"
18   - allowClear
19   - @change="onSelctTenant"
20   - style="width: 150px; margin-left: 10px"
21   - v-if="selectTenantOptions.length > 0"
22   - placeholder="请选择租户"
23   - :options="selectTenantOptions"
24   - show-search
25   - :filter-option="filterTenantOption"
26   - />
27   - </div>
  5 + <SelectTenant :interfaceType="interfaceType" @emitToken="onHandleEmitToken" />
  6 + <div class="ml-2"></div>
28 7 <Button
29 8 :disabled="interfaceType === 'SYSTEM' && isAdmin(role) ? testDisabled : false"
30 9 @click="handleTest(isSingleClickText)"
... ... @@ -57,17 +36,13 @@
57 36 </div>
58 37 </template>
59 38 <script lang="ts" setup name="testRequest">
60   - import { ref, nextTick, onMounted } from 'vue';
  39 + import { ref, nextTick } from 'vue';
61 40 import { Button } from 'ant-design-vue';
62 41 import TestBodyCellTable from '../paramsTest/testEditParamsCellTable.vue';
63 42 import moment from 'moment';
64 43 import { useUtils } from '../../../hooks/useUtils';
65 44 import JsonEditor from '../../SimpleRequest/components/jsonEditor.vue';
66 45 import { useMessage } from '/@/hooks/web/useMessage';
67   - import { getTenantAllPageLists, getTenantPageList } from '/@/api/tenant/tenantApi';
68   - import { selectType } from '../../../config/types';
69   - import { Select } from 'ant-design-vue';
70   - import { getUserToken } from '/@/api/sys/user';
71 46 import { USER_INFO_KEY } from '/@/enums/cacheEnum';
72 47 import { getAuthCache } from '/@/utils/auth';
73 48 import { isAdmin } from '/@/enums/roleEnum';
... ... @@ -77,6 +52,7 @@
77 52 RequestBodyTypeEnum,
78 53 TableDefaultTypeEnum,
79 54 } from '../../../config/enum';
  55 + import SelectTenant from '../components/selectTenant.vue';
80 56
81 57 const userInfo: any = getAuthCache(USER_INFO_KEY);
82 58
... ... @@ -93,21 +69,6 @@
93 69 },
94 70 });
95 71
96   - onMounted(async () => {
97   - if (isAdmin(role)) {
98   - const res = await getTenantPageList();
99   - selectOptions.value = res.map((m) => ({ label: m.name, value: m.tenantId }));
100   - } else {
101   - //租户
102   - const { token } = await getUserToken(userInfo?.userId);
103   - getToken.value = token;
104   - }
105   - });
106   -
107   - const selectOptions = ref<selectType[]>([]);
108   -
109   - const selectTenantOptions = ref<selectType[]>([]);
110   -
111 72 const { createMessage } = useMessage();
112 73
113 74 const showTestEditCell = ref(false);
... ... @@ -116,10 +77,6 @@
116 77
117 78 const excuteData = ref({});
118 79
119   - const selectTenant = ref(undefined);
120   -
121   - const selectSysTenant = ref(undefined);
122   -
123 80 const testEditCellTableRef = ref<InstanceType<typeof TestBodyCellTable>>();
124 81
125 82 const jsonEditorRef = ref<InstanceType<typeof JsonEditor>>();
... ... @@ -132,44 +89,14 @@
132 89
133 90 const getToken = ref('');
134 91
135   - const filterOption = (input: string, option: any) => {
136   - return option.label.includes(input);
137   - };
138   -
139   - const filterTenantOption = (input: string, option: any) => {
140   - return option.label.includes(input);
141   - };
142   -
143   - const onSelect = async (e) => {
144   - if (e) {
145   - testDisabled.value = false;
146   - } else {
147   - testDisabled.value = true;
148   - }
149   - selectSysTenant.value = undefined;
150   - const rest = (await getTenantAllPageLists(e)) as any;
151   - selectTenantOptions.value = rest?.map((m) => ({ label: m.realName, value: m.id }));
152   - };
  92 + const isSingleClickText = ref('open');
153 93
154   - const onSelctTenant = async (e) => {
155   - if (e) {
156   - testDisabled.value = false;
157   - } else {
158   - testDisabled.value = true;
159   - }
160   - const { token } = await getUserToken(e);
  94 + const onHandleEmitToken = (token, flag) => {
161 95 getToken.value = token;
  96 + testDisabled.value = flag;
162 97 };
163 98
164   - const isSingleClickText = ref('open');
165   -
166 99 const handleTest = (o) => {
167   - if (isAdmin(role)) {
168   - if (!selectTenant.value || !selectSysTenant.value) {
169   - createMessage.error('请选择租户或者租户管理员');
170   - throw Error('请选择租户或者租户管理员');
171   - }
172   - }
173 100 if (o === 'open') {
174 101 showTestEditCell.value = true;
175 102 emits('testBodyInterface');
... ... @@ -270,9 +197,6 @@
270 197 isSingleClickText.value = 'open';
271 198 showTestEditCell.value = false;
272 199 testResult.value = '';
273   - selectTenant.value = undefined;
274   - selectSysTenant.value = undefined;
275   - selectTenantOptions.value = [];
276 200 };
277 201
278 202 const onCloseTest = () => {
... ...
  1 +<template>
  2 + <div class="flex" v-if="interfaceType === 'SYSTEM' && isAdmin(role)">
  3 + <Select
  4 + v-model:value="selectTenant"
  5 + @change="onSelect"
  6 + style="width: 150px"
  7 + placeholder="请选择租户"
  8 + :options="selectOptions"
  9 + show-search
  10 + :filter-option="filterOption"
  11 + />
  12 + <Select
  13 + v-model:value="selectSysTenant"
  14 + @change="onSelctTenant"
  15 + style="width: 150px; margin-left: 10px"
  16 + v-if="selectTenantOptions.length > 0"
  17 + placeholder="请选择租户"
  18 + :options="selectTenantOptions"
  19 + show-search
  20 + :filter-option="filterTenantOption"
  21 + />
  22 + </div>
  23 +</template>
  24 +<script lang="ts" setup name="selectTenant">
  25 + import { onMounted, ref, onUnmounted } from 'vue';
  26 + import { selectType } from '../../../config/types';
  27 + import { Select } from 'ant-design-vue';
  28 + import { getUserToken } from '/@/api/sys/user';
  29 + import { USER_INFO_KEY } from '/@/enums/cacheEnum';
  30 + import { getAuthCache } from '/@/utils/auth';
  31 + import { isAdmin } from '/@/enums/roleEnum';
  32 + import { getTenantAllPageLists, getTenantPageList } from '/@/api/tenant/tenantApi';
  33 +
  34 + defineProps({
  35 + interfaceType: {
  36 + type: String,
  37 + },
  38 + });
  39 +
  40 + const emits = defineEmits(['emitToken']);
  41 +
  42 + const userInfo: any = getAuthCache(USER_INFO_KEY);
  43 +
  44 + const role: string = userInfo?.roles[0];
  45 +
  46 + onMounted(async () => {
  47 + if (isAdmin(role)) {
  48 + const res = await getTenantPageList();
  49 + selectOptions.value = res.map((m) => ({ label: m.name, value: m.tenantId }));
  50 + } else {
  51 + //租户
  52 + const { token } = await getUserToken(userInfo?.userId);
  53 + getToken.value = token;
  54 + emits('emitToken', getToken.value, testDisabled.value);
  55 + }
  56 + });
  57 +
  58 + const selectOptions = ref<selectType[]>([]);
  59 +
  60 + const testDisabled = ref(true);
  61 +
  62 + const selectTenantOptions = ref<selectType[]>([]);
  63 +
  64 + const selectTenant = ref(undefined);
  65 +
  66 + const selectSysTenant = ref(undefined);
  67 +
  68 + const getToken = ref('');
  69 +
  70 + const filterOption = (input: string, option: any) => {
  71 + return option.label.includes(input);
  72 + };
  73 +
  74 + const filterTenantOption = (input: string, option: any) => {
  75 + return option.label.includes(input);
  76 + };
  77 +
  78 + const onSelect = async (e) => {
  79 + if (e) {
  80 + testDisabled.value = false;
  81 + } else {
  82 + testDisabled.value = true;
  83 + }
  84 + selectSysTenant.value = undefined;
  85 + const rest = (await getTenantAllPageLists(e)) as any;
  86 + selectTenantOptions.value = rest?.map((m) => ({ label: m.realName, value: m.id }));
  87 + };
  88 +
  89 + const onSelctTenant = async (e) => {
  90 + if (e) {
  91 + testDisabled.value = false;
  92 + } else {
  93 + testDisabled.value = true;
  94 + }
  95 + const { token } = await getUserToken(e);
  96 + getToken.value = token;
  97 + emits('emitToken', getToken.value, testDisabled.value);
  98 + };
  99 +
  100 + onUnmounted(() => {
  101 + selectTenant.value = undefined;
  102 + selectSysTenant.value = undefined;
  103 + selectTenantOptions.value = [];
  104 + getToken.value = '';
  105 + });
  106 +</script>
  107 +
  108 +<style scoped lang="less"></style>
... ...
... ... @@ -2,29 +2,8 @@
2 2 <div>
3 3 <div class="mt-8">
4 4 <div class="flex">
5   - <div class="flex" v-if="interfaceType === 'SYSTEM' && isAdmin(role)">
6   - <Select
7   - allowClear
8   - v-model:value="selectTenant"
9   - @change="onSelect"
10   - style="width: 150px"
11   - placeholder="请选择租户"
12   - :options="selectOptions"
13   - show-search
14   - :filter-option="filterOption"
15   - />
16   - <Select
17   - v-model:value="selectSysTenant"
18   - allowClear
19   - @change="onSelctTenant"
20   - style="width: 150px; margin-left: 10px"
21   - v-if="selectTenantOptions.length > 0"
22   - placeholder="请选择租户"
23   - :options="selectTenantOptions"
24   - show-search
25   - :filter-option="filterTenantOption"
26   - />
27   - </div>
  5 + <SelectTenant :interfaceType="interfaceType" @emitToken="onHandleEmitToken" />
  6 + <div class="ml-2"></div>
28 7 <Button
29 8 :disabled="interfaceType === 'SYSTEM' && isAdmin(role) ? testDisabled : false"
30 9 @click="handleTest(isSingleClickText)"
... ... @@ -44,17 +23,14 @@
44 23 </div>
45 24 </template>
46 25 <script lang="ts" setup name="testRequest">
47   - import { ref, nextTick, onMounted } from 'vue';
  26 + import { ref, nextTick } from 'vue';
48 27 import { Button } from 'ant-design-vue';
49 28 import TestHeaderEditCellTable from './testEditHeaderCellTable.vue';
50 29 import { useMessage } from '/@/hooks/web/useMessage';
51   - import { selectType } from '../../../config/types';
52   - import { Select } from 'ant-design-vue';
53   - import { getUserToken } from '/@/api/sys/user';
54 30 import { USER_INFO_KEY } from '/@/enums/cacheEnum';
55   - import { getTenantAllPageLists, getTenantPageList } from '/@/api/tenant/tenantApi';
56 31 import { getAuthCache } from '/@/utils/auth';
57 32 import { isAdmin } from '/@/enums/roleEnum';
  33 + import SelectTenant from '../components/selectTenant.vue';
58 34
59 35 const emits = defineEmits(['testHeaderInterface', 'closeTest']);
60 36
... ... @@ -71,21 +47,6 @@
71 47 },
72 48 });
73 49
74   - onMounted(async () => {
75   - if (isAdmin(role)) {
76   - const res = await getTenantPageList();
77   - selectOptions.value = res.map((m) => ({ label: m.name, value: m.tenantId }));
78   - } else {
79   - //租户
80   - const { token } = await getUserToken(userInfo?.userId);
81   - getToken.value = token;
82   - }
83   - });
84   -
85   - const selectOptions = ref<selectType[]>([]);
86   -
87   - const selectTenantOptions = ref<selectType[]>([]);
88   -
89 50 const testDisabled = ref(true);
90 51
91 52 const { createMessage } = useMessage();
... ... @@ -94,54 +55,20 @@
94 55
95 56 const excuteData = ref({});
96 57
97   - const selectTenant = ref(undefined);
98   -
99   - const selectSysTenant = ref(undefined);
100   -
101 58 const testEditCellTableRef = ref<InstanceType<typeof TestHeaderEditCellTable>>();
102 59
103 60 const testResult = ref('');
104 61
105 62 const getToken = ref('');
106 63
107   - const filterOption = (input: string, option: any) => {
108   - return option.label.includes(input);
109   - };
110   -
111   - const filterTenantOption = (input: string, option: any) => {
112   - return option.label.includes(input);
113   - };
114   -
115   - const onSelect = async (e) => {
116   - if (e) {
117   - testDisabled.value = false;
118   - } else {
119   - testDisabled.value = true;
120   - }
121   - selectSysTenant.value = undefined;
122   - const rest = (await getTenantAllPageLists(e)) as any;
123   - selectTenantOptions.value = rest?.map((m) => ({ label: m.realName, value: m.id }));
124   - };
  64 + const isSingleClickText = ref('open');
125 65
126   - const onSelctTenant = async (e) => {
127   - if (e) {
128   - testDisabled.value = false;
129   - } else {
130   - testDisabled.value = true;
131   - }
132   - const { token } = await getUserToken(e);
  66 + const onHandleEmitToken = (token, flag) => {
133 67 getToken.value = token;
  68 + testDisabled.value = flag;
134 69 };
135 70
136   - const isSingleClickText = ref('open');
137   -
138 71 const handleTest = (o) => {
139   - if (isAdmin(role)) {
140   - if (!selectTenant.value || !selectSysTenant.value) {
141   - createMessage.error('请选择租户或者租户管理员');
142   - throw Error('请选择租户或者租户管理员');
143   - }
144   - }
145 72 if (o === 'open') {
146 73 showTestEditCell.value = true;
147 74 emits('testHeaderInterface');
... ... @@ -187,9 +114,6 @@
187 114 const setValue = () => {
188 115 showTestEditCell.value = false;
189 116 testResult.value = '';
190   - selectTenant.value = undefined;
191   - selectSysTenant.value = undefined;
192   - selectTenantOptions.value = [];
193 117 };
194 118
195 119 const onCloseTest = () => {
... ...
... ... @@ -2,29 +2,8 @@
2 2 <div>
3 3 <div class="mt-8">
4 4 <div class="flex">
5   - <div class="flex" v-if="interfaceType === 'SYSTEM' && isAdmin(role)">
6   - <Select
7   - allowClear
8   - v-model:value="selectTenant"
9   - @change="onSelect"
10   - style="width: 150px"
11   - placeholder="请选择租户"
12   - :options="selectOptions"
13   - show-search
14   - :filter-option="filterOption"
15   - />
16   - <Select
17   - v-model:value="selectSysTenant"
18   - allowClear
19   - @change="onSelctTenant"
20   - style="width: 150px; margin-left: 10px"
21   - v-if="selectTenantOptions.length > 0"
22   - placeholder="请选择租户"
23   - :options="selectTenantOptions"
24   - show-search
25   - :filter-option="filterTenantOption"
26   - />
27   - </div>
  5 + <SelectTenant :interfaceType="interfaceType" @emitToken="onHandleEmitToken" />
  6 + <div class="ml-2"></div>
28 7 <Button
29 8 :disabled="interfaceType === 'SYSTEM' && isAdmin(role) ? testDisabled : false"
30 9 @click="handleTest(isSingleClickText)"
... ... @@ -44,21 +23,18 @@
44 23 </div>
45 24 </template>
46 25 <script lang="ts" setup name="testRequest">
47   - import { ref, nextTick, onMounted } from 'vue';
  26 + import { ref, nextTick } from 'vue';
48 27 import { Button } from 'ant-design-vue';
49 28 import TestParamsCellTable from './testEditParamsCellTable.vue';
50 29 import moment from 'moment';
51 30 import { useUtils } from '../../../hooks/useUtils';
52 31 import { useMessage } from '/@/hooks/web/useMessage';
53   - import { getTenantAllPageLists, getTenantPageList } from '/@/api/tenant/tenantApi';
54   - import { selectType } from '../../../config/types';
55   - import { Select } from 'ant-design-vue';
56   - import { getUserToken } from '/@/api/sys/user';
57 32 import { USER_INFO_KEY } from '/@/enums/cacheEnum';
58 33 import { getAuthCache } from '/@/utils/auth';
59 34 import { isAdmin } from '/@/enums/roleEnum';
60 35 import { TableDefaultTypeEnum } from '../../../config/enum';
61 36 import { AggregateDataEnum } from '/@/views/report/config/timeConfig';
  37 + import SelectTenant from '../components/selectTenant.vue';
62 38
63 39 const userInfo: any = getAuthCache(USER_INFO_KEY);
64 40
... ... @@ -75,33 +51,14 @@
75 51 },
76 52 });
77 53
78   - onMounted(async () => {
79   - if (isAdmin(role)) {
80   - const res = await getTenantPageList();
81   - selectOptions.value = res.map((m) => ({ label: m.name, value: m.tenantId }));
82   - } else {
83   - //租户
84   - const { token } = await getUserToken(userInfo?.userId);
85   - getToken.value = token;
86   - }
87   - });
88   -
89   - const selectOptions = ref<selectType[]>([]);
90   -
91 54 const testDisabled = ref(true);
92 55
93   - const selectTenantOptions = ref<selectType[]>([]);
94   -
95 56 const { createMessage } = useMessage();
96 57
97 58 const showTestEditCell = ref(false);
98 59
99 60 const excuteData = ref({});
100 61
101   - const selectTenant = ref(undefined);
102   -
103   - const selectSysTenant = ref(undefined);
104   -
105 62 const testEditCellTableRef = ref<InstanceType<typeof TestParamsCellTable>>();
106 63
107 64 const testResult = ref('');
... ... @@ -110,34 +67,11 @@
110 67
111 68 const getToken = ref('');
112 69
113   - const filterOption = (input: string, option: any) => {
114   - return option.label.includes(input);
115   - };
116   -
117   - const filterTenantOption = (input: string, option: any) => {
118   - return option.label.includes(input);
119   - };
120   -
121   - const onSelect = async (e) => {
122   - if (e) {
123   - testDisabled.value = false;
124   - } else {
125   - testDisabled.value = true;
126   - }
127   - selectSysTenant.value = undefined;
128   - const rest = (await getTenantAllPageLists(e)) as any;
129   - selectTenantOptions.value = rest?.map((m) => ({ label: m.realName, value: m.id }));
130   - };
131   -
132   - const onSelctTenant = async (e) => {
133   - if (e) {
134   - testDisabled.value = false;
135   - } else {
136   - testDisabled.value = true;
137   - }
138   - const { token } = await getUserToken(e);
  70 + const onHandleEmitToken = (token, flag) => {
139 71 getToken.value = token;
  72 + testDisabled.value = flag;
140 73 };
  74 +
141 75 const isSingleClickText = ref('open');
142 76
143 77 const handleTest = (o) => {
... ... @@ -241,9 +175,6 @@
241 175 isSingleClickText.value = 'open';
242 176 showTestEditCell.value = false;
243 177 testResult.value = '';
244   - selectTenant.value = undefined;
245   - selectSysTenant.value = undefined;
246   - selectTenantOptions.value = [];
247 178 };
248 179
249 180 const onCloseTest = () => {
... ...