发布v2.3.5版本,本次为优化版本。更新内容请查看:https://github.com/bufanyun/hotgo/blob/v2.0/docs/guide-zh-CN/start-update-log.md

This commit is contained in:
孟帅
2023-02-26 14:18:22 +08:00
parent 34c373c11e
commit ab912d0ba6
111 changed files with 3068 additions and 9329 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "hotgo",
"version": "2.2.10",
"version": "2.3.5",
"author": {
"name": "MengShuai",
"email": "133814250@qq.com",

View File

View File

@@ -44,7 +44,7 @@ export function DeleteDict(params?) {
*/
export function getDictSelect(params?) {
return http.request({
url: '/dictType/select',
url: '/dictType/tree',
method: 'GET',
params,
});

View File

@@ -1,8 +1,8 @@
export enum SocketEnum {
EventPing = 'ping',
EventConnected = 'connected',
EventAdminMonitorTrends = 'adminMonitorTrends',
EventAdminMonitorRunInfo = 'adminMonitorRunInfo',
EventAdminMonitorTrends = 'admin/monitor/trends',
EventAdminMonitorRunInfo = 'admin/monitor/runInfo',
TypeQueryUser = 2,
TypeBoardCastMsg = 3,
TypeQuerySwitcher = 4,

View File

@@ -22,7 +22,10 @@
</n-descriptions-item>
<n-descriptions-item label="文档地址">
<div class="flex items-center">
<a href="https://github.com/bufanyun/hotgo/tree/v2.0/docs" class="py-2" target="_blank"
<a
href="https://github.com/bufanyun/hotgo/tree/v2.0/docs/guide-zh-CN"
class="py-2"
target="_blank"
>查看文档地址</a
>
</div>

View File

View File

@@ -160,7 +160,7 @@
width: 220,
title: '操作',
key: 'action',
fixed: 'right',
// fixed: 'right',
render(record) {
return h(TableAction as any, {
style: 'button',

View File

@@ -114,7 +114,7 @@
width: 220,
title: '操作',
key: 'action',
fixed: 'right',
// fixed: 'right',
render(record) {
return h(TableAction as any, {
style: 'button',

View File

@@ -49,7 +49,7 @@
}"
>
<n-alert :show-icon="false" type="info">
注意:插件创建成功后会在服务端对应的项目目录中创建插件模块,并自动注册到当前项目中。
注意:插件创建成功后会在服务端对应的项目目录中生成插件模块文件,并自动注册到当前项目中。
</n-alert>
<n-form
:model="formParams"
@@ -427,10 +427,21 @@
formBtnLoading.value = true;
formRef.value.validate((errors) => {
if (!errors) {
console.log('formParams:' + JSON.stringify(formParams.value));
Build(formParams.value).then((_res) => {
showModal.value = false;
buildSuccessNotify();
dialog.info({
title: '提示',
content:
'你确定要提交生成吗?热编译生成后如果列表自动刷新没有出现新插件请等几秒刷新即可。否则请手动重启服务后刷新页面!',
positiveText: '确定',
negativeText: '取消',
onPositiveClick: () => {
Build(formParams.value).then((_res) => {
showModal.value = false;
buildSuccessNotify();
});
},
onNegativeClick: () => {
// message.error('取消');
},
});
} else {
message.error('请填写完整信息');

View File

@@ -183,7 +183,7 @@
width: 220,
title: '操作',
key: 'action',
fixed: 'right',
// fixed: 'right',
render(record) {
return h(TableAction as any, {
style: 'button',

View File

@@ -186,7 +186,7 @@
width: 220,
title: '操作',
key: 'action',
fixed: 'right',
// fixed: 'right',
render(record) {
return h(TableAction as any, {
style: 'button',

View File

@@ -44,7 +44,7 @@
</template>
</n-input>
</n-form-item>
<n-form-item path="code">
<n-form-item path="code" v-show="codeBase64 !== ''">
<n-input-group>
<n-input
:style="{ width: '100%' }"

View File

@@ -105,7 +105,7 @@
import { BasicForm, useForm } from '@/components/Form/index';
import { usePermission } from '@/hooks/web/usePermission';
import { List, Export, Delete } from '@/api/serveLog';
import { State, columns, schemas } from './model';
import { columns, schemas } from './model';
import { ExportOutlined, DeleteOutlined } from '@vicons/antd';
import { useRouter } from 'vue-router';
import { JsonViewer } from 'vue3-json-viewer';
@@ -120,7 +120,6 @@
const batchDeleteDisabled = ref(true);
const checkedIds = ref([]);
const showModal = ref(false);
const formParams = ref<State>();
const actionColumn = reactive({
width: 300,
@@ -173,7 +172,6 @@
const preview = ref<Recordable>();
function handleStack(record: Recordable) {
console.log('handleStack record:' + JSON.stringify(record));
showModal.value = true;
preview.value = record;
}

View File

@@ -50,6 +50,7 @@
>
<n-form-item label="上级部门" path="pid">
<n-tree-select
key-field="id"
:options="options"
:default-value="optionsDefaultValue"
:default-expand-all="true"
@@ -387,7 +388,6 @@
}
async function handleSubmit(values: Recordable) {
// reloadTable();
await loadDataTable(values);
}
@@ -395,8 +395,8 @@
const loadDataTable = async (res) => {
loading.value = true;
data.value = await getDeptList({ ...res, ...formRef.value?.formModel });
const tmp = await getDeptList({ ...res, ...formRef.value?.formModel });
data.value = tmp.list;
if (data.value === undefined || data.value === null) {
data.value = [];
}

View File

@@ -191,7 +191,7 @@
width: 220,
title: '操作',
key: 'action',
fixed: 'right',
// fixed: 'right',
render(record) {
return h(TableAction as any, {
style: 'button',

View File

@@ -82,16 +82,18 @@
<n-gi>
<n-form-item label="绑定角色" path="roleId">
<n-tree-select
:default-value="formParams.roleId.toString()"
key-field="id"
:options="roleList"
@update:value="handleUpdateRoleValue"
:default-value="formParams.roleId"
:default-expand-all="true"
@update:value="handleUpdateRoleValue"
/>
</n-form-item>
</n-gi>
<n-gi>
<n-form-item label="所属部门" path="deptId">
<n-tree-select
key-field="id"
:options="deptList"
:default-value="formParams.deptId"
:default-expand-all="true"
@@ -325,7 +327,7 @@
width: 220,
title: '操作',
key: 'action',
fixed: 'right',
// fixed: 'right',
render(record) {
return h(TableAction as any, {
style: 'button',
@@ -378,7 +380,8 @@
const loadDataTable = async (res) => {
adaModalWidth(dialogWidth);
deptList.value = await getDeptList({});
const deptLists = await getDeptList({});
deptList.value = deptLists.list;
if (deptList.value === undefined || deptList.value === null) {
deptList.value = [];
}

View File

@@ -221,7 +221,7 @@
width: 320,
title: '操作',
key: 'action',
fixed: 'right',
// fixed: 'right',
render(record) {
return h(TableAction, {
style: 'primary',
@@ -340,6 +340,8 @@
async function handleMenuAuth(record: Recordable) {
editRoleTitle.value = `分配 ${record.name} 的菜单权限`;
checkedKeys.value = [];
checkedAll.value = false;
const data = await GetPermissions({ ...{ id: record.id } });
checkedKeys.value = data.menuIds;
updatePermissionsParams.value.id = record.id;

View File

@@ -231,7 +231,7 @@
width: 220,
title: '操作',
key: 'action',
fixed: 'right',
// fixed: 'right',
render(record) {
return h(TableAction as any, {
style: 'button',

View File

@@ -292,7 +292,7 @@
width: 320,
title: '操作',
key: 'action',
fixed: 'right',
// fixed: 'right',
render(record) {
return h(TableAction as any, {
style: 'button',
@@ -434,7 +434,6 @@
function updateStatus(id, status) {
Status({ id: id, status: status })
.then((_res) => {
console.log('_res:' + JSON.stringify(_res));
message.success('操作成功');
setTimeout(() => {
reloadTable();
@@ -453,7 +452,8 @@
}
async function setDictSelect() {
optionTreeData.value = await getSelect({});
const tmp = await getSelect({});
optionTreeData.value = tmp.list;
if (optionTreeData.value === undefined || optionTreeData.value === null) {
optionTreeData.value = [];
}

View File

@@ -141,7 +141,7 @@
width: 220,
title: '操作',
key: 'action',
fixed: 'right',
// fixed: 'right',
render(record) {
return h(TableAction as any, {
style: 'button',
@@ -209,7 +209,8 @@
}
async function setDictSelect() {
optionTreeData.value = await getSelect({});
const tmp = await getSelect({});
optionTreeData.value = tmp.list;
if (optionTreeData.value === undefined || optionTreeData.value === null) {
optionTreeData.value = [];
}

View File

@@ -202,7 +202,7 @@
width: 220,
title: '操作',
key: 'action',
fixed: 'right',
// fixed: 'right',
render(record) {
return h(TableAction as any, {
style: 'button',

File diff suppressed because it is too large Load Diff