feat(fix) 修改后分发后 并发重启 描述改为 并发执行

This commit is contained in:
bwcx_jzy 2022-02-13 10:04:05 +08:00
parent cecd6a4a68
commit c454f07d0f
No known key found for this signature in database
GPG Key ID: 5E48E9372088B9E5
5 changed files with 77 additions and 46 deletions

View File

@ -14,6 +14,7 @@
2. 【server】 在线构建-构建列表中,选择构建命令时新增多环境下打包的命令
3. 【server】 在线构建-构建列表中,选择构建命令时提供不同的跳过执行测试类的方式
4. 【server】 编辑用户工作空间权限判断没有选择父级的空权限
5. 【server】 修改后分发后 **并发重启** 描述改为 **并发执行**
------

View File

@ -196,9 +196,9 @@ export function editDispatchWhiteList(params) {
export const afterOptList = [
{ title: "不做任何操作", value: 0 },
{ title: "并发重启", value: 1 },
{ title: "完整顺序重启(有重启失败将结束本次)", value: 2 },
{ title: "顺序重启(有重启失败将继续)", value: 3 },
{ title: "并发执行", value: 1 },
{ title: "完整顺序执行(有执行失败将结束本次)", value: 2 },
{ title: "顺序执行(有执行失败将继续)", value: 3 },
];
export const dispatchStatusMap = {

View File

@ -659,7 +659,7 @@ export default {
editBuildVisible: false,
triggerVisible: false,
buildLogVisible: false,
afterOptList: afterOptList,
afterOptList,
buildConfirmVisible: false,
columns: [
{ title: "名称", dataIndex: "name", sorter: true, ellipsis: true, scopedSlots: { customRender: "name" } },

View File

@ -47,20 +47,46 @@
<a-tooltip slot="name" slot-scope="text" placement="topLeft" :title="text">
<span>{{ text }}</span>
</a-tooltip>
<a-tooltip slot="status" slot-scope="text" placement="topLeft" :title="text">
<a-tooltip slot="status" slot-scope="text" placement="topLeft" :title="statusMap[text]">
<span>{{ statusMap[text] }}</span>
</a-tooltip>
<a-tooltip slot="clearOld" slot-scope="text"> <a-switch size="small" checked-children="" un-checked-children="" disabled :checked="text" /></a-tooltip>
<a-tooltip
slot-scope="text"
slot="afterOpt"
:title="
afterOptList.filter((item) => {
return item.value === text;
}).length &&
afterOptList.filter((item) => {
return item.value === text;
})[0].title
"
>
<span>{{
afterOptList.filter((item) => {
return item.value === text;
}).length &&
afterOptList.filter((item) => {
return item.value === text;
})[0].title
}}</span>
</a-tooltip>
<template slot="outGivingProject" slot-scope="text">
<span v-if="text">独立</span>
<span v-else>关联</span>
</template>
<template slot="operation" slot-scope="text, record">
<a-space>
<a-button type="primary" v-if="list_expanded[record.id]" @click="handleReload(record)">刷新</a-button>
<a-button type="primary" @click="handleDispatch(record)">分发文件</a-button>
<a-button type="primary" v-if="record.outGivingProject" @click="handleEditDispatchProject(record)">编辑</a-button>
<a-button type="primary" v-else @click="handleEditDispatch(record)">编辑</a-button>
<a-button size="small" type="primary" @click="handleDispatch(record)">分发文件</a-button>
<a-button size="small" type="primary" v-if="list_expanded[record.id]" @click="handleReload(record)">刷新</a-button>
<template v-else>
<a-button size="small" type="primary" v-if="record.outGivingProject" @click="handleEditDispatchProject(record)">编辑</a-button>
<a-button size="small" type="primary" v-else @click="handleEditDispatch(record)">编辑</a-button>
</template>
<a-dropdown>
<a class="ant-dropdown-link" @click="(e) => e.preventDefault()">
更多
@ -105,8 +131,8 @@
<template slot="child-operation" slot-scope="text, record">
<a-space>
<a-button :disabled="!record.projectName" type="primary" @click="handleFile(record)">文件</a-button>
<a-button :disabled="!record.projectName" type="primary" @click="handleConsole(record)">控制台</a-button>
<a-button size="small" :disabled="!record.projectName" type="primary" @click="handleFile(record)">文件</a-button>
<a-button size="small" :disabled="!record.projectName" type="primary" @click="handleConsole(record)">控制台</a-button>
</a-space>
</template>
</a-table>
@ -529,7 +555,7 @@ export default {
accessList: [],
nodeList: [],
projectList: [],
afterOptList: afterOptList,
afterOptList,
targetKeys: [],
// reqId: "",
temp: {},
@ -549,8 +575,12 @@ export default {
columns: [
{ title: "分发 ID", dataIndex: "id", ellipsis: true, scopedSlots: { customRender: "id" } },
{ title: "分发名称", dataIndex: "name", ellipsis: true, scopedSlots: { customRender: "name" } },
{ title: "类型", dataIndex: "outGivingProject", ellipsis: true, scopedSlots: { customRender: "outGivingProject" } },
{ title: "状态", dataIndex: "status", ellipsis: true, scopedSlots: { customRender: "status" } },
{ title: "类型", dataIndex: "outGivingProject", width: 90, ellipsis: true, scopedSlots: { customRender: "outGivingProject" } },
{ title: "分发后", dataIndex: "afterOpt", ellipsis: true, width: 100, scopedSlots: { customRender: "afterOpt" } },
{ title: "清空发布", dataIndex: "clearOld", align: "center", ellipsis: true, width: 100, scopedSlots: { customRender: "clearOld" } },
{ title: "间隔时间", dataIndex: "intervalTime", width: 90, ellipsis: true, scopedSlots: { customRender: "intervalTime" } },
{ title: "状态", dataIndex: "status", ellipsis: true, width: 110, scopedSlots: { customRender: "status" } },
{
title: "修改时间",
dataIndex: "modifyTimeMillis",
@ -561,7 +591,7 @@ export default {
},
width: 170,
},
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" }, width: 250, align: "left" },
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" }, width: 210, align: "center" },
],
childColumns: [
{ title: "节点名称", dataIndex: "nodeId", width: 100, ellipsis: true, scopedSlots: { customRender: "nodeId" } },
@ -570,7 +600,7 @@ export default {
{ title: "分发状态", dataIndex: "outGivingStatus", width: 120 },
{ title: "分发结果", dataIndex: "outGivingResult", width: 180, ellipsis: true, scopedSlots: { customRender: "outGivingResult" } },
{ title: "最后分发时间", dataIndex: "lastTime", width: 180, ellipsis: true, scopedSlots: { customRender: "lastTime" } },
{ title: "操作", dataIndex: "child-operation", scopedSlots: { customRender: "child-operation" }, width: 200, align: "left" },
{ title: "操作", dataIndex: "child-operation", scopedSlots: { customRender: "child-operation" }, width: 120, align: "center" },
],
rules: {
id: [{ required: true, message: "请输入项目ID", trigger: "blur" }],

View File

@ -22,28 +22,28 @@
>
<template slot="operation" slot-scope="text, record">
<a-space>
<a-button type="primary" @click="handleEdit(record)">编辑</a-button>
<a-button size="small" type="primary" @click="handleEdit(record)">编辑</a-button>
<a-dropdown>
<a class="ant-dropdown-link" @click="(e) => e.preventDefault()"> 更多 <a-icon type="down" /> </a>
<a-menu slot="overlay">
<a-menu-item>
<a-button type="danger" :disabled="record.parent === 'sys'" @click="handleDelete(record)">删除</a-button>
<a-button type="danger" size="small" :disabled="record.parent === 'sys'" @click="handleDelete(record)">删除</a-button>
</a-menu-item>
<a-menu-item>
<a-button type="danger" :disabled="record.pwdErrorCount === 0" @click="handleUnlock(record)">解锁</a-button>
<a-button type="danger" size="small" :disabled="record.pwdErrorCount === 0" @click="handleUnlock(record)">解锁</a-button>
</a-menu-item>
<a-menu-item>
<a-button type="danger" :disabled="record.twoFactorAuthKey ? false : true" @click="handleCloseMfa(record)">关闭MFA</a-button>
<a-button type="danger" size="small" :disabled="record.twoFactorAuthKey ? false : true" @click="handleCloseMfa(record)">关闭MFA</a-button>
</a-menu-item>
</a-menu></a-dropdown
>
</a-space>
</template>
<template slot="systemUser" slot-scope="text, record">
<a-switch size="small" checked-children="" un-checked-children="" :checked="record.systemUser == 1" />
<a-switch size="small" checked-children="" un-checked-children="" disabled :checked="record.systemUser == 1" />
</template>
<template slot="twoFactorAuthKey" slot-scope="text, record">
<a-switch size="small" checked-children="" un-checked-children="" :checked="record.twoFactorAuthKey ? true : false" />
<a-switch size="small" checked-children="" un-checked-children="" disabled :checked="record.twoFactorAuthKey ? true : false" />
</template>
<a-tooltip slot="id" slot-scope="text" :title="text">
@ -55,7 +55,7 @@
</a-tooltip>
</a-table>
<!-- 编辑区 -->
<a-modal v-model="editUserVisible" width="800px" title="编辑用户" @ok="handleEditUserOk" :maskClosable="false">
<a-modal v-model="editUserVisible" width="60vw" title="编辑用户" @ok="handleEditUserOk" :maskClosable="false">
<a-form-model ref="editUserForm" :rules="rules" :model="temp" :label-col="{ span: 4 }" :wrapper-col="{ span: 18 }">
<a-form-model-item label="登录名称" prop="id">
<a-input v-model="temp.id" placeholder="创建之后不能修改" :disabled="createOption == false" />
@ -67,7 +67,7 @@
<a-input v-model="temp.name" placeholder="昵称" />
</a-form-model-item>
<a-form-model-item label="管理员" prop="systemUser">
<a-tooltip title="管理员拥有:管理服务端的权限">
<a-tooltip title="管理员拥有:管理服务端的部分权限">
<a-switch
:checked="temp.systemUser == 1"
@change="
@ -195,8 +195,8 @@ export default {
columns: [
{ title: "ID", dataIndex: "id", ellipsis: true, scopedSlots: { customRender: "id" } },
{ title: "昵称", dataIndex: "name", ellipsis: true },
{ title: "管理员", dataIndex: "systemUser", ellipsis: true, width: 90, scopedSlots: { customRender: "systemUser" } },
{ title: "两步验证", dataIndex: "twoFactorAuthKey", ellipsis: true, width: 90, scopedSlots: { customRender: "twoFactorAuthKey" } },
{ title: "管理员", dataIndex: "systemUser", align: "center", ellipsis: true, width: 90, scopedSlots: { customRender: "systemUser" } },
{ title: "两步验证", dataIndex: "twoFactorAuthKey", align: "center", ellipsis: true, width: 90, scopedSlots: { customRender: "twoFactorAuthKey" } },
{ title: "邮箱", dataIndex: "email", ellipsis: true, scopedSlots: { customRender: "email" } },
{ title: "创建人", dataIndex: "parent", ellipsis: true, width: 150 },
@ -210,7 +210,7 @@ export default {
},
width: 170,
},
{ title: "操作", dataIndex: "operation", scopedSlots: { customRender: "operation" }, width: 150 },
{ title: "操作", align: "center", dataIndex: "operation", scopedSlots: { customRender: "operation" }, width: 130 },
],
//
rules: {
@ -252,22 +252,22 @@ export default {
this.loadOptTypeData();
},
methods: {
//
introGuide() {
this.$store.dispatch("tryOpenGuide", {
key: "user-create",
options: {
hidePrev: true,
steps: [
{
title: "导航助手",
element: document.querySelector(".jpom-userWorkspace"),
intro: "如果这里面没有您想要的工作空间信息,您需要先去添加一个工作空间。选择工作空间后还可以展开选择绑定的权限奥,默认只有查看权限",
},
],
},
});
},
// //
// introGuide() {
// this.$store.dispatch("tryOpenGuide", {
// key: "user-create",
// options: {
// hidePrev: true,
// steps: [
// {
// title: "",
// element: document.querySelector(".jpom-userWorkspace"),
// intro: ",",
// },
// ],
// },
// });
// },
onCheckedLeft(_, e, checkedKeys, itemSelect) {
const { eventKey } = e.node;
const isChecked = checkedKeys.indexOf(eventKey) !== -1;
@ -332,9 +332,9 @@ export default {
},
//
handleAdd() {
setTimeout(() => {
this.introGuide();
}, 500);
// setTimeout(() => {
// this.introGuide();
// }, 500);
this.temp = { systemUser: 0 };
this.createOption = true;