upload project source code
This commit is contained in:
751
后端源码/yifan.action-ai.cn/index/js/index.58109uec.js
Normal file
751
后端源码/yifan.action-ai.cn/index/js/index.58109uec.js
Normal file
@@ -0,0 +1,751 @@
|
||||
import { x as ElFormItem, y as ElInput, aq as ElSelect, ar as ElOption, h as ElButton, t as ElLink, i as ElIcon, w as ElForm, T as ElCard, ae as user_default, aA as clock_default, C as ElAvatar, aB as monitor_default, q as ElTag, ao as vLoading, u as ElEmpty, l as ElTooltip, P as ElRadioGroup, Q as ElRadio, L as ElDrawer, E as ElMessage, D as ElMessageBox } from "./element-plus.CkEW9frc.js";
|
||||
import { _ as __unplugin_components_19 } from "./index.fgd49PES.js";
|
||||
import { _ as _sfc_main$1 } from "./UserTableSelect.vue_vue_type_script_setup_true_lang.7Fjc3bJT.js";
|
||||
import { J as defineComponent, dY as useRouter, t as onMounted, aO as resolveComponent, aP as resolveDirective, S as openBlock, _ as createElementBlock, a1 as createBaseVNode, $ as createVNode, a0 as withCtx, o as unref, T as createBlock, a8 as createCommentVNode, a6 as withDirectives, a9 as createTextVNode, aa as toDisplayString, aw as withModifiers, H as Fragment, ay as renderList, a3 as normalizeClass, z as isRef, r as ref, ak as reactive, j as computed, n as nextTick } from "./.pnpm.BW3P1y8f.js";
|
||||
import { l as httpRequest, u as useAppStore, g as useTagsViewStore, D as DeviceEnum } from "./index.CMd5bD1r.js";
|
||||
import { f as formatToDateTime } from "./dateUtil.SHphbRyf.js";
|
||||
import { _ as _export_sfc } from "./_plugin-vue_export-helper.1tPrXgE0.js";
|
||||
import "./codemirror.CvJAcn2d.js";
|
||||
const API_PATH = "/application/myapp";
|
||||
const ApplicationAPI = {
|
||||
/**
|
||||
* 获取应用详情
|
||||
* @param id 应用ID
|
||||
*/
|
||||
detailApp(id) {
|
||||
return httpRequest({
|
||||
url: `${API_PATH}/detail/${id}`,
|
||||
method: "get"
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 查询应用列表
|
||||
* @param query 查询参数
|
||||
*/
|
||||
listApp(query) {
|
||||
return httpRequest({
|
||||
url: `${API_PATH}/list`,
|
||||
method: "get",
|
||||
params: query
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 创建应用
|
||||
* @param body 应用信息
|
||||
*/
|
||||
createApp(body) {
|
||||
return httpRequest({
|
||||
url: `${API_PATH}/create`,
|
||||
method: "post",
|
||||
data: body
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 修改应用
|
||||
* @param id 应用ID
|
||||
* @param body 应用信息
|
||||
*/
|
||||
updateApp(id, body) {
|
||||
return httpRequest({
|
||||
url: `${API_PATH}/update/${id}`,
|
||||
method: "put",
|
||||
data: body
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 删除应用
|
||||
* @param body 应用ID数组
|
||||
*/
|
||||
deleteApp(body) {
|
||||
return httpRequest({
|
||||
url: `${API_PATH}/delete`,
|
||||
method: "delete",
|
||||
data: body
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 批量修改应用状态
|
||||
* @param body 批量操作参数
|
||||
*/
|
||||
batchApp(body) {
|
||||
return httpRequest({
|
||||
url: `${API_PATH}/available/setting`,
|
||||
method: "patch",
|
||||
data: body
|
||||
});
|
||||
}
|
||||
};
|
||||
const _hoisted_1 = { class: "app-container" };
|
||||
const _hoisted_2 = { class: "search-container" };
|
||||
const _hoisted_3 = { class: "card-header" };
|
||||
const _hoisted_4 = { class: "app-grid-container" };
|
||||
const _hoisted_5 = { class: "grid-wrapper" };
|
||||
const _hoisted_6 = ["onMouseenter", "onClick"];
|
||||
const _hoisted_7 = { class: "app-info-header" };
|
||||
const _hoisted_8 = { class: "app-title-wrap" };
|
||||
const _hoisted_9 = ["title"];
|
||||
const _hoisted_10 = { class: "app-content" };
|
||||
const _hoisted_11 = ["title"];
|
||||
const _hoisted_12 = { class: "card-footer" };
|
||||
const _hoisted_13 = { class: "footer-item" };
|
||||
const _hoisted_14 = { class: "footer-text" };
|
||||
const _hoisted_15 = { class: "footer-item" };
|
||||
const _hoisted_16 = { class: "footer-text" };
|
||||
const _hoisted_17 = { key: 0 };
|
||||
const _hoisted_18 = { class: "dialog-footer" };
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
...{
|
||||
name: "MyApplication",
|
||||
inheritAttrs: false
|
||||
},
|
||||
__name: "index",
|
||||
setup(__props) {
|
||||
const appStore = useAppStore();
|
||||
const tagsViewStore = useTagsViewStore();
|
||||
const router = useRouter();
|
||||
const queryFormRef = ref();
|
||||
const formRef = ref();
|
||||
const loading = ref(false);
|
||||
const total = ref(0);
|
||||
const dialogVisible = ref(false);
|
||||
const dialogType = ref("create");
|
||||
const currentApp = ref(null);
|
||||
const isExpand = ref(false);
|
||||
const isExpandable = ref(true);
|
||||
const hoveredCard = ref(null);
|
||||
const queryFormData = reactive({
|
||||
page_no: 1,
|
||||
page_size: 12,
|
||||
name: void 0,
|
||||
status: void 0,
|
||||
created_id: void 0
|
||||
});
|
||||
const applicationList = ref([]);
|
||||
const formData = reactive({
|
||||
name: "",
|
||||
access_url: "",
|
||||
icon_url: "",
|
||||
status: "0",
|
||||
description: ""
|
||||
});
|
||||
const formRules = reactive({
|
||||
name: [
|
||||
{ required: true, message: "请输入应用名称", trigger: "blur" },
|
||||
{ min: 2, max: 30, message: "长度在 2 到 30 个字符", trigger: "blur" }
|
||||
],
|
||||
access_url: [
|
||||
{ required: true, message: "请输入访问地址", trigger: "blur" },
|
||||
{ type: "url", message: "请输入正确的URL格式", trigger: "blur" }
|
||||
],
|
||||
icon_url: [
|
||||
{ required: true, message: "请输入图标地址", trigger: "blur" },
|
||||
{ type: "url", message: "请输入正确的URL格式", trigger: "blur" }
|
||||
],
|
||||
status: [{ required: true, message: "请选择应用状态", trigger: "change" }]
|
||||
});
|
||||
const drawerSize = computed(() => appStore.device === DeviceEnum.DESKTOP ? "500px" : "90%");
|
||||
const dialogTitle = computed(() => dialogType.value === "create" ? "创建应用" : "编辑应用");
|
||||
const formatTime = (time) => {
|
||||
if (!time) return "未知";
|
||||
return formatToDateTime(time, "YYYY-MM-DD HH:mm:ss");
|
||||
};
|
||||
async function loadApplicationList() {
|
||||
loading.value = true;
|
||||
try {
|
||||
const response = await ApplicationAPI.listApp(queryFormData);
|
||||
applicationList.value = response.data.data.items;
|
||||
total.value = response.data.data.total;
|
||||
} catch (error) {
|
||||
console.error("加载应用列表失败:", error);
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
}
|
||||
async function handleQuery() {
|
||||
queryFormData.page_no = 1;
|
||||
await loadApplicationList();
|
||||
}
|
||||
function handleConfirm() {
|
||||
handleQuery();
|
||||
}
|
||||
async function handleResetQuery() {
|
||||
var _a;
|
||||
(_a = queryFormRef.value) == null ? void 0 : _a.resetFields();
|
||||
queryFormData.page_no = 1;
|
||||
await loadApplicationList();
|
||||
}
|
||||
function handleCreateApp() {
|
||||
console.log("handleCreateApp");
|
||||
dialogType.value = "create";
|
||||
resetForm();
|
||||
dialogVisible.value = true;
|
||||
}
|
||||
function handleEditApp(app) {
|
||||
dialogType.value = "edit";
|
||||
currentApp.value = app;
|
||||
Object.assign(formData, app);
|
||||
dialogVisible.value = true;
|
||||
}
|
||||
async function handleDeleteApp(app) {
|
||||
try {
|
||||
await ElMessageBox.confirm("确认删除该应用?", "警告", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
});
|
||||
await ApplicationAPI.deleteApp([app.id]);
|
||||
await loadApplicationList();
|
||||
} catch (error) {
|
||||
if (error !== "cancel") {
|
||||
console.error("删除应用失败:", error);
|
||||
}
|
||||
}
|
||||
}
|
||||
async function handleAppAction(command, app) {
|
||||
switch (command) {
|
||||
case "edit":
|
||||
handleEditApp(app);
|
||||
break;
|
||||
case "delete":
|
||||
await handleDeleteApp(app);
|
||||
break;
|
||||
}
|
||||
}
|
||||
function openAppInternal(app) {
|
||||
if (!app.status || !app.id) {
|
||||
if (!app.status) {
|
||||
ElMessage.warning("应用已停用,无法打开");
|
||||
} else {
|
||||
ElMessage.warning("应用ID不存在,无法打开");
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (!app.access_url) {
|
||||
ElMessage.warning("应用访问地址不存在");
|
||||
return;
|
||||
}
|
||||
const appPath = `/internal-app/${app.id}`;
|
||||
const appName = `InternalApp${app.id}`;
|
||||
const appTitle = app.name || "未命名应用";
|
||||
router.push({
|
||||
path: appPath,
|
||||
query: { url: app.access_url, appId: app.id.toString(), appName: appTitle }
|
||||
}).then(() => {
|
||||
nextTick(() => {
|
||||
var _a;
|
||||
const existingTag = tagsViewStore.visitedViews.find((tag) => tag.path === appPath);
|
||||
if (existingTag) {
|
||||
tagsViewStore.updateVisitedView({
|
||||
...existingTag,
|
||||
title: appTitle
|
||||
});
|
||||
} else {
|
||||
tagsViewStore.addView({
|
||||
name: appName,
|
||||
title: appTitle,
|
||||
path: appPath,
|
||||
fullPath: appPath + `?url=${encodeURIComponent(app.access_url || "")}&appId=${app.id}&appName=${encodeURIComponent(appTitle)}`,
|
||||
icon: "Monitor",
|
||||
affix: false,
|
||||
keepAlive: false,
|
||||
query: { url: app.access_url, appId: (_a = app == null ? void 0 : app.id) == null ? void 0 : _a.toString(), appName: appTitle }
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
function resetForm() {
|
||||
var _a;
|
||||
Object.assign(formData, {
|
||||
name: "",
|
||||
access_url: "",
|
||||
icon_url: "",
|
||||
status: "0",
|
||||
description: ""
|
||||
});
|
||||
(_a = formRef.value) == null ? void 0 : _a.resetFields();
|
||||
}
|
||||
function handleCloseDialog() {
|
||||
dialogVisible.value = false;
|
||||
resetForm();
|
||||
}
|
||||
async function handleSubmit() {
|
||||
var _a;
|
||||
try {
|
||||
await ((_a = formRef.value) == null ? void 0 : _a.validate());
|
||||
if (dialogType.value === "create") {
|
||||
await ApplicationAPI.createApp(formData);
|
||||
} else {
|
||||
await ApplicationAPI.updateApp(currentApp.value.id, formData);
|
||||
}
|
||||
dialogVisible.value = false;
|
||||
resetForm();
|
||||
await loadApplicationList();
|
||||
} catch (error) {
|
||||
console.error("提交失败:", error);
|
||||
}
|
||||
}
|
||||
onMounted(() => {
|
||||
loadApplicationList();
|
||||
});
|
||||
return (_ctx, _cache) => {
|
||||
const _component_el_input = ElInput;
|
||||
const _component_el_form_item = ElFormItem;
|
||||
const _component_el_option = ElOption;
|
||||
const _component_el_select = ElSelect;
|
||||
const _component_UserTableSelect = _sfc_main$1;
|
||||
const _component_el_button = ElButton;
|
||||
const _component_ArrowUp = resolveComponent("ArrowUp");
|
||||
const _component_ArrowDown = resolveComponent("ArrowDown");
|
||||
const _component_el_icon = ElIcon;
|
||||
const _component_el_link = ElLink;
|
||||
const _component_el_form = ElForm;
|
||||
const _component_QuestionFilled = resolveComponent("QuestionFilled");
|
||||
const _component_el_tooltip = ElTooltip;
|
||||
const _component_el_avatar = ElAvatar;
|
||||
const _component_el_tag = ElTag;
|
||||
const _component_el_card = ElCard;
|
||||
const _component_el_empty = ElEmpty;
|
||||
const _component_pagination = __unplugin_components_19;
|
||||
const _component_el_radio = ElRadio;
|
||||
const _component_el_radio_group = ElRadioGroup;
|
||||
const _component_el_drawer = ElDrawer;
|
||||
const _directive_hasPerm = resolveDirective("hasPerm");
|
||||
const _directive_loading = vLoading;
|
||||
return openBlock(), createElementBlock("div", _hoisted_1, [
|
||||
createBaseVNode("div", _hoisted_2, [
|
||||
createVNode(_component_el_form, {
|
||||
ref_key: "queryFormRef",
|
||||
ref: queryFormRef,
|
||||
model: unref(queryFormData),
|
||||
inline: true,
|
||||
"label-suffix": ":",
|
||||
onSubmit: withModifiers(handleQuery, ["prevent"])
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_el_form_item, {
|
||||
prop: "name",
|
||||
label: "应用名称"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_el_input, {
|
||||
modelValue: unref(queryFormData).name,
|
||||
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => unref(queryFormData).name = $event),
|
||||
placeholder: "请输入应用名称",
|
||||
clearable: ""
|
||||
}, null, 8, ["modelValue"])
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_el_form_item, {
|
||||
prop: "status",
|
||||
label: "状态"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_el_select, {
|
||||
modelValue: unref(queryFormData).status,
|
||||
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => unref(queryFormData).status = $event),
|
||||
placeholder: "请选择状态",
|
||||
clearable: "",
|
||||
style: { "width": "170px" }
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_el_option, {
|
||||
label: "启用",
|
||||
value: true
|
||||
}),
|
||||
createVNode(_component_el_option, {
|
||||
label: "停用",
|
||||
value: false
|
||||
})
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["modelValue"])
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
unref(isExpand) ? (openBlock(), createBlock(_component_el_form_item, {
|
||||
key: 0,
|
||||
prop: "created_id",
|
||||
label: "创建人"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_UserTableSelect, {
|
||||
modelValue: unref(queryFormData).created_id,
|
||||
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => unref(queryFormData).created_id = $event),
|
||||
onConfirmClick: handleConfirm,
|
||||
onClearClick: handleQuery
|
||||
}, null, 8, ["modelValue"])
|
||||
]),
|
||||
_: 1
|
||||
})) : createCommentVNode("", true),
|
||||
unref(isExpand) ? (openBlock(), createBlock(_component_el_form_item, {
|
||||
key: 1,
|
||||
prop: "updated_id",
|
||||
label: "更新人"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_UserTableSelect, {
|
||||
modelValue: unref(queryFormData).updated_id,
|
||||
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => unref(queryFormData).updated_id = $event),
|
||||
onConfirmClick: handleConfirm,
|
||||
onClearClick: handleQuery
|
||||
}, null, 8, ["modelValue"])
|
||||
]),
|
||||
_: 1
|
||||
})) : createCommentVNode("", true),
|
||||
createVNode(_component_el_form_item, { class: "search-buttons" }, {
|
||||
default: withCtx(() => [
|
||||
withDirectives((openBlock(), createBlock(_component_el_button, {
|
||||
type: "primary",
|
||||
icon: "search",
|
||||
"native-type": "submit"
|
||||
}, {
|
||||
default: withCtx(() => [..._cache[16] || (_cache[16] = [
|
||||
createTextVNode(" 查询 ", -1)
|
||||
])]),
|
||||
_: 1
|
||||
})), [
|
||||
[_directive_hasPerm, ["module_module_application:myapp:query"]]
|
||||
]),
|
||||
withDirectives((openBlock(), createBlock(_component_el_button, {
|
||||
icon: "refresh",
|
||||
onClick: handleResetQuery
|
||||
}, {
|
||||
default: withCtx(() => [..._cache[17] || (_cache[17] = [
|
||||
createTextVNode(" 重置 ", -1)
|
||||
])]),
|
||||
_: 1
|
||||
})), [
|
||||
[_directive_hasPerm, ["module_application:myapp:query"]]
|
||||
]),
|
||||
unref(isExpandable) ? (openBlock(), createBlock(_component_el_link, {
|
||||
key: 0,
|
||||
class: "ml-3",
|
||||
type: "primary",
|
||||
underline: "never",
|
||||
onClick: _cache[4] || (_cache[4] = ($event) => isExpand.value = !unref(isExpand))
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(toDisplayString(unref(isExpand) ? "收起" : "展开") + " ", 1),
|
||||
createVNode(_component_el_icon, null, {
|
||||
default: withCtx(() => [
|
||||
unref(isExpand) ? (openBlock(), createBlock(_component_ArrowUp, { key: 0 })) : (openBlock(), createBlock(_component_ArrowDown, { key: 1 }))
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
]),
|
||||
_: 1
|
||||
})) : createCommentVNode("", true)
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["model"])
|
||||
]),
|
||||
createVNode(_component_el_card, {
|
||||
shadow: "hover",
|
||||
class: "app-grid-card"
|
||||
}, {
|
||||
header: withCtx(() => [
|
||||
createBaseVNode("div", _hoisted_3, [
|
||||
createBaseVNode("span", null, [
|
||||
createVNode(_component_el_tooltip, { content: "点击卡片,打开应用" }, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_QuestionFilled, { class: "w-4 h-4 mx-1" })
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
_cache[18] || (_cache[18] = createTextVNode(" 应用市场 ", -1))
|
||||
]),
|
||||
withDirectives((openBlock(), createBlock(_component_el_button, {
|
||||
type: "primary",
|
||||
icon: "plus",
|
||||
onClick: handleCreateApp
|
||||
}, {
|
||||
default: withCtx(() => [..._cache[19] || (_cache[19] = [
|
||||
createTextVNode(" 创建应用 ", -1)
|
||||
])]),
|
||||
_: 1
|
||||
})), [
|
||||
[_directive_hasPerm, ["module_application:myapp:create"]]
|
||||
])
|
||||
])
|
||||
]),
|
||||
footer: withCtx(() => [
|
||||
createVNode(_component_pagination, {
|
||||
total: unref(total),
|
||||
"onUpdate:total": _cache[7] || (_cache[7] = ($event) => isRef(total) ? total.value = $event : null),
|
||||
page: unref(queryFormData).page_no,
|
||||
"onUpdate:page": _cache[8] || (_cache[8] = ($event) => unref(queryFormData).page_no = $event),
|
||||
limit: unref(queryFormData).page_size,
|
||||
"onUpdate:limit": _cache[9] || (_cache[9] = ($event) => unref(queryFormData).page_size = $event),
|
||||
"page-sizes": [12, 24, 48],
|
||||
onPagination: loadApplicationList
|
||||
}, null, 8, ["total", "page", "limit"])
|
||||
]),
|
||||
default: withCtx(() => [
|
||||
withDirectives((openBlock(), createElementBlock("div", _hoisted_4, [
|
||||
createBaseVNode("div", _hoisted_5, [
|
||||
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(applicationList), (app) => {
|
||||
return openBlock(), createElementBlock("div", {
|
||||
key: app.id,
|
||||
onMouseenter: ($event) => app.id && (hoveredCard.value = app.id),
|
||||
onMouseleave: _cache[6] || (_cache[6] = ($event) => hoveredCard.value = null),
|
||||
onClick: ($event) => app.status && app.id && openAppInternal(app)
|
||||
}, [
|
||||
createVNode(_component_el_card, {
|
||||
shadow: "hover",
|
||||
class: normalizeClass(["app-card", { "card-disabled": !app.status }])
|
||||
}, {
|
||||
header: withCtx(() => [
|
||||
createBaseVNode("div", _hoisted_7, [
|
||||
createVNode(_component_el_avatar, {
|
||||
size: 42,
|
||||
src: app.icon_url,
|
||||
class: "app-avatar"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_el_icon, { size: "20" }, {
|
||||
default: withCtx(() => [
|
||||
createVNode(unref(monitor_default))
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["src"]),
|
||||
createBaseVNode("div", _hoisted_8, [
|
||||
createBaseVNode("h3", {
|
||||
class: "app-name",
|
||||
title: app.name
|
||||
}, toDisplayString(app.name), 9, _hoisted_9),
|
||||
createVNode(_component_el_tag, {
|
||||
type: app.status ? "success" : "info",
|
||||
size: "small",
|
||||
effect: "plain",
|
||||
class: "status-tag"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(toDisplayString(app.status ? "启用" : "停用"), 1)
|
||||
]),
|
||||
_: 2
|
||||
}, 1032, ["type"])
|
||||
]),
|
||||
unref(hoveredCard) === app.id ? (openBlock(), createElementBlock("div", {
|
||||
key: 0,
|
||||
class: "card-actions",
|
||||
onClick: _cache[5] || (_cache[5] = withModifiers(() => {
|
||||
}, ["stop"]))
|
||||
}, [
|
||||
withDirectives(createVNode(_component_el_button, {
|
||||
type: "primary",
|
||||
link: "",
|
||||
icon: "Edit",
|
||||
onClick: ($event) => handleAppAction("edit", app)
|
||||
}, null, 8, ["onClick"]), [
|
||||
[_directive_hasPerm, ["module_application:myapp:update"]]
|
||||
]),
|
||||
withDirectives(createVNode(_component_el_button, {
|
||||
type: "danger",
|
||||
link: "",
|
||||
icon: "Delete",
|
||||
onClick: ($event) => handleAppAction("delete", app)
|
||||
}, null, 8, ["onClick"]), [
|
||||
[_directive_hasPerm, ["module_application:myapp:delete"]]
|
||||
])
|
||||
])) : createCommentVNode("", true)
|
||||
])
|
||||
]),
|
||||
default: withCtx(() => [
|
||||
createBaseVNode("div", _hoisted_10, [
|
||||
createBaseVNode("p", {
|
||||
class: "app-description",
|
||||
title: app.description
|
||||
}, toDisplayString(app.description || "暂无描述"), 9, _hoisted_11)
|
||||
])
|
||||
]),
|
||||
footer: withCtx(() => {
|
||||
var _a;
|
||||
return [
|
||||
createBaseVNode("div", _hoisted_12, [
|
||||
createBaseVNode("div", _hoisted_13, [
|
||||
createVNode(_component_el_icon, {
|
||||
size: "14",
|
||||
class: "footer-icon"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(unref(user_default))
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createBaseVNode("span", _hoisted_14, toDisplayString(((_a = app.created_by) == null ? void 0 : _a.name) || "未知"), 1)
|
||||
]),
|
||||
createBaseVNode("div", _hoisted_15, [
|
||||
createVNode(_component_el_icon, {
|
||||
size: "14",
|
||||
class: "footer-icon"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(unref(clock_default))
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createBaseVNode("span", _hoisted_16, toDisplayString(formatTime(app.created_time)), 1)
|
||||
])
|
||||
])
|
||||
];
|
||||
}),
|
||||
_: 2
|
||||
}, 1032, ["class"])
|
||||
], 40, _hoisted_6);
|
||||
}), 128))
|
||||
])
|
||||
])), [
|
||||
[_directive_loading, unref(loading)]
|
||||
]),
|
||||
unref(applicationList).length === 0 && !unref(loading) ? (openBlock(), createElementBlock("div", _hoisted_17, [
|
||||
createVNode(_component_el_empty, {
|
||||
"image-size": 80,
|
||||
description: "暂无数据"
|
||||
})
|
||||
])) : createCommentVNode("", true)
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_el_drawer, {
|
||||
modelValue: unref(dialogVisible),
|
||||
"onUpdate:modelValue": _cache[15] || (_cache[15] = ($event) => isRef(dialogVisible) ? dialogVisible.value = $event : null),
|
||||
title: unref(dialogTitle),
|
||||
size: unref(drawerSize),
|
||||
direction: "rtl",
|
||||
onClose: handleCloseDialog
|
||||
}, {
|
||||
footer: withCtx(() => [
|
||||
createBaseVNode("div", _hoisted_18, [
|
||||
createVNode(_component_el_button, { onClick: handleCloseDialog }, {
|
||||
default: withCtx(() => [..._cache[22] || (_cache[22] = [
|
||||
createTextVNode("取消", -1)
|
||||
])]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_el_button, {
|
||||
type: "primary",
|
||||
onClick: handleSubmit
|
||||
}, {
|
||||
default: withCtx(() => [..._cache[23] || (_cache[23] = [
|
||||
createTextVNode("确定", -1)
|
||||
])]),
|
||||
_: 1
|
||||
})
|
||||
])
|
||||
]),
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_el_form, {
|
||||
ref_key: "formRef",
|
||||
ref: formRef,
|
||||
model: unref(formData),
|
||||
rules: unref(formRules),
|
||||
"label-width": "100px",
|
||||
"label-position": "right"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_el_form_item, {
|
||||
label: "应用名称",
|
||||
prop: "name"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_el_input, {
|
||||
modelValue: unref(formData).name,
|
||||
"onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => unref(formData).name = $event),
|
||||
placeholder: "请输入应用名称"
|
||||
}, null, 8, ["modelValue"])
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_el_form_item, {
|
||||
label: "访问地址",
|
||||
prop: "access_url"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_el_input, {
|
||||
modelValue: unref(formData).access_url,
|
||||
"onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => unref(formData).access_url = $event),
|
||||
placeholder: "请输入访问地址"
|
||||
}, null, 8, ["modelValue"])
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_el_form_item, {
|
||||
label: "图标地址",
|
||||
prop: "icon_url"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_el_input, {
|
||||
modelValue: unref(formData).icon_url,
|
||||
"onUpdate:modelValue": _cache[12] || (_cache[12] = ($event) => unref(formData).icon_url = $event),
|
||||
placeholder: "请输入图标地址"
|
||||
}, null, 8, ["modelValue"])
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_el_form_item, {
|
||||
label: "应用状态",
|
||||
prop: "status"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_el_radio_group, {
|
||||
modelValue: unref(formData).status,
|
||||
"onUpdate:modelValue": _cache[13] || (_cache[13] = ($event) => unref(formData).status = $event)
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_el_radio, { value: "0" }, {
|
||||
default: withCtx(() => [..._cache[20] || (_cache[20] = [
|
||||
createTextVNode("启用", -1)
|
||||
])]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_el_radio, { value: "1" }, {
|
||||
default: withCtx(() => [..._cache[21] || (_cache[21] = [
|
||||
createTextVNode("停用", -1)
|
||||
])]),
|
||||
_: 1
|
||||
})
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["modelValue"])
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_el_form_item, {
|
||||
label: "应用描述",
|
||||
prop: "description"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_el_input, {
|
||||
modelValue: unref(formData).description,
|
||||
"onUpdate:modelValue": _cache[14] || (_cache[14] = ($event) => unref(formData).description = $event),
|
||||
type: "textarea",
|
||||
rows: 4,
|
||||
placeholder: "请输入应用描述",
|
||||
maxlength: "200",
|
||||
"show-word-limit": ""
|
||||
}, null, 8, ["modelValue"])
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["model", "rules"])
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["modelValue", "title", "size"])
|
||||
]);
|
||||
};
|
||||
}
|
||||
});
|
||||
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-343310bd"]]);
|
||||
export {
|
||||
index as default
|
||||
};
|
||||
Reference in New Issue
Block a user