mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-11 18:42:54 +00:00
no message
This commit is contained in:
parent
04d31bd814
commit
0c34df290e
@ -81,34 +81,44 @@ class AppsController extends AbstractController
|
||||
}
|
||||
|
||||
/**
|
||||
* @api {get} api/apps/entry 04. 获取应用入口点
|
||||
* @api {get} api/apps/stats 04. 获取应用状况
|
||||
*
|
||||
* @apiDescription 获取应用状况,包括已安装的应用和应用入口点
|
||||
* @apiVersion 1.0.0
|
||||
* @apiGroup apps
|
||||
* @apiName entry
|
||||
*
|
||||
* @apiParam {String} [app_name] 应用名称
|
||||
* - 不指定则获取所有已安装的应用入口点
|
||||
* @apiName stats
|
||||
*
|
||||
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
|
||||
* @apiSuccess {String} msg 返回信息(错误描述)
|
||||
* @apiSuccess {Object} data 应用入口点信息
|
||||
*/
|
||||
public function entry()
|
||||
public function stats()
|
||||
{
|
||||
User::auth();
|
||||
//
|
||||
$appName = Request::input('app_name');
|
||||
//
|
||||
$cacheKey = 'apps_entry:' . $appName;
|
||||
$cacheData = Cache::remember($cacheKey, now()->addHour(), function () use ($appName) {
|
||||
return Apps::getAppEntryPoints($appName);
|
||||
});
|
||||
if (Base::isError($cacheData)) {
|
||||
Cache::forget($cacheKey);
|
||||
|
||||
// 获取已安装应用列表
|
||||
$res = Apps::appList();
|
||||
if (Base::isError($res)) {
|
||||
return $res;
|
||||
}
|
||||
//
|
||||
return $cacheData;
|
||||
$installedName = ['appstore'];
|
||||
foreach ($res['data'] as $app) {
|
||||
if ($app['config']['status'] == 'installed') {
|
||||
$installedName[] = $app['name'];
|
||||
}
|
||||
}
|
||||
|
||||
// 获取应用入口点
|
||||
$res = Apps::getAppEntryPoints();
|
||||
if (Base::isError($res)) {
|
||||
return $res;
|
||||
}
|
||||
$entriesData = $res['data'];
|
||||
|
||||
return Base::retSuccess('success', [
|
||||
'installed' => $installedName,
|
||||
'entries' => $entriesData,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -180,10 +180,6 @@ class Apps
|
||||
*/
|
||||
public static function dockerComposeFinalize(string $appName, string $status): array
|
||||
{
|
||||
// 清理入口缓存
|
||||
Cache::forget('apps_entry:' . $appName);
|
||||
Cache::forget('apps_entry:');
|
||||
|
||||
// 获取当前应用信息
|
||||
$appInfo = self::getAppConfig($appName);
|
||||
|
||||
|
||||
@ -2068,3 +2068,4 @@ AI开启新会话失败
|
||||
|
||||
应用加载失败
|
||||
应用不存在
|
||||
应用未安装
|
||||
|
||||
@ -424,7 +424,7 @@ export default {
|
||||
microApp.forceSetData(name, {type: 'beforeClose'}, array => {
|
||||
if (!array?.find(item => item === true)) {
|
||||
if (name === 'appstore') {
|
||||
this.$store.dispatch("updateMicroAppsEntries");
|
||||
this.$store.dispatch("updateMicroAppsStats");
|
||||
}
|
||||
if ($A.isSubElectron) {
|
||||
$A.Electron.sendMessage('windowDestroy');
|
||||
|
||||
@ -1186,7 +1186,7 @@ export default {
|
||||
case 'appstore':
|
||||
this.$store.dispatch("openMicroApp", {
|
||||
name: 'appstore',
|
||||
url: $A.mainUrl('appstore/web/'),
|
||||
url: 'appstore/web/',
|
||||
disableScopecss: true,
|
||||
});
|
||||
break;
|
||||
|
||||
@ -364,7 +364,6 @@ export default {
|
||||
},
|
||||
activated() {
|
||||
this.initList()
|
||||
this.$store.dispatch("updateMicroAppsEntries");
|
||||
},
|
||||
computed: {
|
||||
...mapState([
|
||||
|
||||
@ -2624,12 +2624,10 @@ export default {
|
||||
return;
|
||||
}
|
||||
this.$store.dispatch("openMicroApp", {
|
||||
name: 'okr-details',
|
||||
url: $A.mainUrl('apps/okr/'),
|
||||
props: {
|
||||
type: 'details',
|
||||
id,
|
||||
},
|
||||
app_name: 'okr',
|
||||
key: 'details',
|
||||
url: 'apps/okr/',
|
||||
props: {type: 'details', id},
|
||||
transparent: true,
|
||||
});
|
||||
},
|
||||
|
||||
52
resources/assets/js/store/actions.js
vendored
52
resources/assets/js/store/actions.js
vendored
@ -623,7 +623,7 @@ export default {
|
||||
dispatch("getProjectByQueue");
|
||||
dispatch("getTaskForDashboard");
|
||||
dispatch("dialogMsgRead");
|
||||
dispatch("updateMicroAppsEntries");
|
||||
dispatch("updateMicroAppsStats");
|
||||
//
|
||||
const allIds = Object.values(state.userAvatar).map(({userid}) => userid);
|
||||
[...new Set(allIds)].some(userid => dispatch("getUserBasic", {userid}))
|
||||
@ -4640,43 +4640,61 @@ export default {
|
||||
/** *****************************************************************************************/
|
||||
|
||||
/**
|
||||
* 更新微应用菜单入口
|
||||
* 更新微应用状况(已安装、入口菜单)
|
||||
* @param state
|
||||
* @param dispatch
|
||||
* @param appName
|
||||
*/
|
||||
updateMicroAppsEntries({state, dispatch}, appName) {
|
||||
updateMicroAppsStats({state, dispatch}) {
|
||||
dispatch("call", {
|
||||
url: 'apps/entry',
|
||||
data: {
|
||||
app_name: appName || null,
|
||||
},
|
||||
url: 'apps/stats',
|
||||
}).then(({data}) => {
|
||||
state.microAppsEntries = data
|
||||
state.microAppsInstalled = data.installed
|
||||
state.microAppsEntries = data.entries
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 打开微应用
|
||||
* @param state
|
||||
* @param item
|
||||
* @param menuItem
|
||||
*/
|
||||
openMicroApp({state}, item) {
|
||||
if (!item || !$A.isJson(item)) {
|
||||
openMicroApp({state}, menuItem) {
|
||||
if (!menuItem || !$A.isJson(menuItem)) {
|
||||
return
|
||||
}
|
||||
const event = {
|
||||
name: item.app_name || item.name,
|
||||
url: $A.mainUrl(item.url),
|
||||
name: menuItem.app_name || menuItem.name,
|
||||
url: $A.mainUrl(menuItem.url),
|
||||
}
|
||||
if (item.key) {
|
||||
event.name += `_${item.key}`
|
||||
if (!state.microAppsInstalled.includes(event.name)) {
|
||||
$A.modalWarning("应用未安装");
|
||||
return;
|
||||
}
|
||||
for (let key in item) {
|
||||
if (menuItem.key) {
|
||||
event.name += `_${menuItem.key}`
|
||||
}
|
||||
for (let key in menuItem) {
|
||||
if (['props', 'transparent', 'keepAlive', 'disableScopecss'].includes(key)) {
|
||||
event[key] = item[key]
|
||||
event[key] = menuItem[key]
|
||||
}
|
||||
}
|
||||
emitter.emit('observeMicroApp', event);
|
||||
},
|
||||
|
||||
/**
|
||||
* 微应用是否已安装
|
||||
* @param state
|
||||
* @param appName
|
||||
* @returns {Promise<unknown>}
|
||||
*/
|
||||
isMicroAppInstalled({state}, appName) {
|
||||
return new Promise(resolve => {
|
||||
if (!appName) {
|
||||
resolve(false)
|
||||
return
|
||||
}
|
||||
resolve(!!state.microAppsInstalled.includes(appName))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
1
resources/assets/js/store/state.js
vendored
1
resources/assets/js/store/state.js
vendored
@ -262,5 +262,6 @@ export default {
|
||||
longpressData: {type: '', data: null, element: null},
|
||||
|
||||
// 微应用菜单入口
|
||||
microAppsInstalled: [],
|
||||
microAppsEntries: [],
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user