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

View File

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

View File

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

View File

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