ol-base-components 1.5.2 → 1.5.4
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/package.json +1 -1
- package/src/package/index.js +9 -37
- package/src/package/table/src/index.vue +7 -14
package/package.json
CHANGED
package/src/package/index.js
CHANGED
|
@@ -27,7 +27,6 @@ ${cyan}感谢使用我们的组件库,期待你的精彩应用!${reset}
|
|
|
27
27
|
const DB_NAME = "SwaggerDB";
|
|
28
28
|
const DB_VERSION = 1;
|
|
29
29
|
const STORE_NAME = "swaggerDataStore";
|
|
30
|
-
const LOGIN_STATUS_KEY = "isLoggedIn"; // 存储登录状态的键
|
|
31
30
|
|
|
32
31
|
// 打开数据库
|
|
33
32
|
function openDatabase() {
|
|
@@ -94,40 +93,22 @@ function clearData() {
|
|
|
94
93
|
});
|
|
95
94
|
}
|
|
96
95
|
|
|
97
|
-
// 存储登录状态
|
|
98
|
-
function storeLoginStatus(isLoggedIn) {
|
|
99
|
-
localStorage.setItem(LOGIN_STATUS_KEY, isLoggedIn);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// 获取登录状态
|
|
103
|
-
function getLoginStatus() {
|
|
104
|
-
return localStorage.getItem(LOGIN_STATUS_KEY) === "true";
|
|
105
|
-
}
|
|
106
|
-
|
|
107
96
|
// 注册
|
|
108
97
|
const swaggerInstall = async (swaggerUrl) => {
|
|
109
|
-
if (!swaggerUrl) return Promise.reject();
|
|
110
|
-
// 检查登录状态
|
|
111
|
-
const isLoggedIn = getLoginStatus();
|
|
98
|
+
if (!swaggerUrl) return Promise.reject(new Error("Swagger URL is required.")); // 检查 Swagger URL
|
|
112
99
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
return Promise.resolve(cachedData);
|
|
119
|
-
}
|
|
120
|
-
} catch (error) {
|
|
121
|
-
console.error("获取缓存数据失败:", error);
|
|
122
|
-
}
|
|
100
|
+
// 尝试从 IndexedDB 获取 Swagger 数据
|
|
101
|
+
const cachedData = await getData();
|
|
102
|
+
if (cachedData) {
|
|
103
|
+
consoleTooltip();
|
|
104
|
+
return Promise.resolve(cachedData); // 返回已解析的 Promise
|
|
123
105
|
} else {
|
|
124
|
-
//
|
|
106
|
+
// 如果没有缓存数据,重新请求 Swagger 数据
|
|
125
107
|
try {
|
|
126
108
|
showLoading();
|
|
127
109
|
const client = await SwaggerClient(swaggerUrl);
|
|
128
110
|
const swaggerData = client.spec; // 获取 Swagger 数据
|
|
129
111
|
await storeData(swaggerData); // 缓存数据到 IndexedDB
|
|
130
|
-
storeLoginStatus(true); // 设置用户为已登录状态
|
|
131
112
|
hideLoading();
|
|
132
113
|
consoleTooltip();
|
|
133
114
|
return Promise.resolve(swaggerData); // 返回已解析的 Promise
|
|
@@ -137,12 +118,9 @@ const swaggerInstall = async (swaggerUrl) => {
|
|
|
137
118
|
return Promise.reject(error); // 返回拒绝的 Promise
|
|
138
119
|
}
|
|
139
120
|
}
|
|
140
|
-
return Promise.reject(new Error("Swagger URL is required.")); // 返回拒绝的 Promise
|
|
141
121
|
};
|
|
142
122
|
// 销毁
|
|
143
123
|
const swaggerUnload = async function () {
|
|
144
|
-
// 重置登录状态
|
|
145
|
-
storeLoginStatus(false); // 清除 localStorage 中的登录状态
|
|
146
124
|
await clearData(); // 清空 IndexedDB 中的缓存数据
|
|
147
125
|
};
|
|
148
126
|
|
|
@@ -169,6 +147,7 @@ function showLoading() {
|
|
|
169
147
|
#loading {
|
|
170
148
|
background: linear-gradient(135deg, #a8c8e0, #f0f4f8); /* 更柔和的渐变背景 */
|
|
171
149
|
color: #333; /* 文本颜色 */
|
|
150
|
+
z-index:9999999;
|
|
172
151
|
}
|
|
173
152
|
`;
|
|
174
153
|
document.head.appendChild(style);
|
|
@@ -206,18 +185,11 @@ function hideLoading() {
|
|
|
206
185
|
}
|
|
207
186
|
}
|
|
208
187
|
|
|
209
|
-
const install = async function (
|
|
210
|
-
Vue,
|
|
211
|
-
options = {
|
|
212
|
-
swaggerUrl: "",
|
|
213
|
-
successSwaggerCallback: null,
|
|
214
|
-
}
|
|
215
|
-
) {
|
|
188
|
+
const install = async function (Vue) {
|
|
216
189
|
// 遍历所有组件
|
|
217
190
|
components.map((item) => {
|
|
218
191
|
Vue.component(`ol-${item.name}`, item);
|
|
219
192
|
});
|
|
220
|
-
await swaggerInstall(Vue, options);
|
|
221
193
|
consoleTooltip();
|
|
222
194
|
};
|
|
223
195
|
|
|
@@ -106,6 +106,13 @@
|
|
|
106
106
|
:index="computeTableIndex"
|
|
107
107
|
label="序号"
|
|
108
108
|
/>
|
|
109
|
+
<el-table-column
|
|
110
|
+
v-if="tableData.options && tableData.options.selection"
|
|
111
|
+
width="60"
|
|
112
|
+
align="center"
|
|
113
|
+
type="selection"
|
|
114
|
+
label=""
|
|
115
|
+
/>
|
|
109
116
|
<template v-for="(item, index) in bindTableColumns">
|
|
110
117
|
<el-table-column
|
|
111
118
|
:key="index"
|
|
@@ -423,20 +430,6 @@ export default {
|
|
|
423
430
|
});
|
|
424
431
|
}
|
|
425
432
|
});
|
|
426
|
-
|
|
427
|
-
// 一定加上selection,通过show显示隐藏
|
|
428
|
-
const itemSelection = this.tableData.columns.find((item) => item.type == "selection");
|
|
429
|
-
const hasSelection = this.tableData.options.selection;
|
|
430
|
-
if (itemSelection) {
|
|
431
|
-
itemSelection.show = !!hasSelection;
|
|
432
|
-
} else {
|
|
433
|
-
this.tableData.columns.unshift({
|
|
434
|
-
label: "",
|
|
435
|
-
minWidth: "",
|
|
436
|
-
type: "selection",
|
|
437
|
-
show: !!hasSelection,
|
|
438
|
-
});
|
|
439
|
-
}
|
|
440
433
|
}).catch((error) => {
|
|
441
434
|
console.error("获取 Swagger 数据失败:", error);
|
|
442
435
|
});
|