Compare commits

...

9 Commits

Author SHA1 Message Date
李玉
6b2e9b51d5
update README.md.
Signed-off-by: 李玉 <16193307+li-yu125521@user.noreply.gitee.com>
2025-12-08 06:11:03 +00:00
李玉
3502b6e878
update README.md.
Signed-off-by: 李玉 <16193307+li-yu125521@user.noreply.gitee.com>
2025-12-01 08:25:48 +00:00
李玉
cf761aea98
update README.md.
Signed-off-by: 李玉 <16193307+li-yu125521@user.noreply.gitee.com>
2025-11-24 03:36:12 +00:00
wang
59aeae7f5a
!17 修复AdminApiRouteGenerator类路径变量未正确解析的问题
Merge pull request !17 from Codyyuan/fix-route-generator-bug
2025-11-22 08:12:29 +00:00
yuanhao
3c2609221b 修复AdminApiRouteGenerator类路径变量未正确解析的问题 2025-11-20 15:12:26 +08:00
李玉
cdd869f49c
update README.md.
Signed-off-by: 李玉 <16193307+li-yu125521@user.noreply.gitee.com>
2025-11-18 02:17:48 +00:00
全栈小学生
cf293a1dec up 2025-11-14 11:39:40 +08:00
李玉
81bb4682d5
add upgrade.md.
Signed-off-by: 李玉 <16193307+li-yu125521@user.noreply.gitee.com>
2025-11-13 07:52:44 +00:00
李玉
2168a82f8b
update README.md.
Signed-off-by: 李玉 <16193307+li-yu125521@user.noreply.gitee.com>
2025-11-13 06:56:37 +00:00
7 changed files with 35 additions and 18 deletions

View File

@ -6,7 +6,7 @@ niucloud-admin-saas是一款快速开发通用管理后台框架整体功能
请到官方网站了解更多 https://www.niucloud.com
### NIUCLOUD-ADMIN 技术特点
### NIUCLOUD-ADMIN 技术特点
:fa-quote-left: 前端(**Vite+TypeScript+Vue3+ElementPlus**+ **API**接口完全分离 + 后端(**PHP8+THINKPHP8**) + 数据库(**MYSQL8.0+** :fa-quote-right:
```
@ -24,7 +24,7 @@ niucloud-admin-saas是一款快速开发通用管理后台框架整体功能
### NIUCLOUD 框架截图
![](https://niucloud-bucket.oss-cn-beijing.aliyuncs.com/gitee_saas/saas/saas_kj1.png)
![](https://niucloud-bucket.oss-cn-beijing.aliyuncs.com/gitee_saas/saas/saas_kj2.png)
![](https://niucloud-bucket.oss-cn-beijing.aliyuncs.com/gitee_saas/saas/saas_kj3.png)
![](https://niucloud-bucket.oss-cn-beijing.aliyuncs.com/gitee_saas/saas/31f58ff2ca4c1b8421b4ad622921dfed.png)
![](https://niucloud-bucket.oss-cn-beijing.aliyuncs.com/gitee_saas/saas/saas_kj4.png)
@ -114,7 +114,7 @@ niucloud-admin-saas是一款快速开发通用管理后台框架整体功能
5.商用请仔细审查代码和漏洞,不得用于任一国家许可范围之外的商业应用,产生的一切任何后果责任自负;
6.一切事物有个人喜好的标准,本开源代码意在分享,不喜勿喷。
6.一切事物有个人喜好的标准,本开源代码意在分享,不喜勿喷。
@ -126,4 +126,4 @@ All rights reserved。
杭州数字云动科技有限公司
杭州牛之云科技有限公司
提供技术支持
提供技术支持

View File

@ -516,7 +516,7 @@ const open = (addonKey: string = '', callback = null) => {
active.value = 'upgrade'
if (callback) callback()
} else {
if (addonKey && frameworkVersion.value != newFrameworkVersion.value) {
if (addonKey && addonKey.indexOf('niucloud-admin') == -1 && frameworkVersion.value != newFrameworkVersion.value) {
ElMessage({ message: '存在新版本框架,请先升级框架', type: 'error' })
if (callback) callback()
return

View File

@ -53,7 +53,9 @@
<div class="flex items-center flex-1 w-0 justify-end">
<el-button @click="oneClickRepair"><i class="iconfont iconyijianxiufu mr-[5px]" ></i>一键修复</el-button>
<el-button type="primary" v-show="activeName == 'uninstalled'" @click="batchInstall"><i class="iconfont iconanzhuang1 mr-[5px]"></i>安装<span v-if="batchUpgradeApp.length">({{ batchUpgradeApp.length }})</span></el-button>
<el-button type="primary" v-show="activeName == 'recentlyUpdated'" @click="batchUpgrade"><i class="iconfont iconyijianshengji mr-[5px]"></i>一键升级<span v-if="batchUpgradeApp.length">({{ batchUpgradeApp.length }})</span></el-button>
<el-button type="primary" v-show="activeName == 'recentlyUpdated' || (frameworkVersion != frameworkNewVersion && activeName != 'uninstalled')" @click="batchUpgrade">
<i class="iconfont iconyijianshengji mr-[5px]"></i>一键升级<span v-if="batchUpgradeApp.length">({{ batchUpgradeApp.length }})</span>
</el-button>
<el-checkbox label="全选" :model-value="localList[activeName].length && localList[activeName].length == batchUpgradeApp.length" @change="appKeyAllSelect" v-show="activeName == 'uninstalled' || activeName == 'recentlyUpdated'" value="Value A" class="ml-[12px]"/>
</div>
</div>
@ -592,6 +594,7 @@ import useUserStore from '@/stores/modules/user'
import Upgrade from '@/app/components/upgrade/index.vue'
import CloudBuild from '@/app/components/cloud-build/index.vue'
import UpgradeLog from '@/app/components/upgrade-log/index.vue'
import {deepClone} from "@/utils/common";
const tableRef = ref(null)
const router = useRouter()
@ -1271,7 +1274,7 @@ const appKeySingleSelect = (event: any, key: string) => {
}
const batchUpgrade = () => {
const appKeys = batchUpgradeApp.value
const appKeys = deepClone(batchUpgradeApp.value)
if (frameworkVersion.value != frameworkNewVersion.value) {
appKeys.unshift('niucloud-admin')
}

View File

@ -30,13 +30,13 @@ Route::group('', function () {
Route::post('upgrade/clear', 'addon.Upgrade/clearUpgradeTask');
// 升级环境检测
Route::get('upgrade/check/[:addon]', 'addon.Upgrade/upgradePreCheck')->pattern(['addon' => '[\w|\,]+']);
Route::get('upgrade/check/[:addon]', 'addon.Upgrade/upgradePreCheck')->pattern(['addon' => '[\w,-]+']);
// 升级
Route::post('upgrade/[:addon]', 'addon.Upgrade/upgrade')->pattern(['addon' => '[\w|\,]+']);
Route::post('upgrade/[:addon]', 'addon.Upgrade/upgrade')->pattern(['addon' => '[\w,-]+']);
// 获取升级内容
Route::get('upgrade/[:addon]', 'addon.Upgrade/getUpgradeContent')->pattern(['addon' => '[\w|\,]+']);
Route::get('upgrade/[:addon]', 'addon.Upgrade/getUpgradeContent')->pattern(['addon' => '[\w,-]+']);
Route::post('upgrade/operate/:operate', 'addon.Upgrade/operate');

View File

@ -212,7 +212,7 @@ use app\adminapi\middleware\AdminLog;";
{
if(!empty($this->addonName))
{
$dir = $this->outDir . DIRECTORY_SEPARATOR.'addon'.DIRECTORY_SEPARATOR.'.$this->addonName.'.DIRECTORY_SEPARATOR.'app'.DIRECTORY_SEPARATOR.'adminapi'.DIRECTORY_SEPARATOR.'route'.DIRECTORY_SEPARATOR;
$dir = $this->outDir . DIRECTORY_SEPARATOR.'addon'.DIRECTORY_SEPARATOR.$this->addonName.DIRECTORY_SEPARATOR.'app'.DIRECTORY_SEPARATOR.'adminapi'.DIRECTORY_SEPARATOR.'route'.DIRECTORY_SEPARATOR;
}else{
$dir = $this->outDir . 'niucloud'.DIRECTORY_SEPARATOR.'app'.DIRECTORY_SEPARATOR.'adminapi'.DIRECTORY_SEPARATOR.'route'.DIRECTORY_SEPARATOR;
}

View File

@ -863,15 +863,22 @@ class UpgradeService extends BaseAdminService
} else {
$addons = array_filter(explode(',', $addon));
foreach ($addons as $key) {
$info = ( new Addon() )->where([ [ 'key', '=', $key ] ])->field('version,type')->find();
$upgrade[ 'app_key' ] = $key;
$upgrade[ 'version' ] = $info['version'];
if ($info['type'] == 'app') {
array_unshift($apps, $upgrade);
} else {
array_push($apps, $upgrade);
if ($key != AddonDict::FRAMEWORK_KEY) {
$info = ( new Addon() )->where([ [ 'key', '=', $key ] ])->field('version,type')->find();
$upgrade[ 'app_key' ] = $key;
$upgrade[ 'version' ] = $info['version'];
if ($info['type'] == 'app') {
array_unshift($apps, $upgrade);
} else {
array_push($apps, $upgrade);
}
}
}
if (in_array(AddonDict::FRAMEWORK_KEY, $addons)) {
$upgrade[ 'app_key' ] = AddonDict::FRAMEWORK_KEY;
$upgrade[ 'version' ] = config('version.version');
array_unshift($apps, $upgrade);
}
}
foreach ($apps as $item) {

7
upgrade.md Normal file
View File

@ -0,0 +1,7 @@
niucloud saasPHP版本 框架 v1.1.9更新内容
新增
* 添加批量安装应用功能优化
优化
* 添加版权文字信息颜色自定义功能
* 应用界面优化