Commit 5cf79537 authored by chenshouchao's avatar chenshouchao

Merge branch 'feat-20221012-environment' into 'release'

cn-Feat 20221012 environment

See merge request !158
parents 3487f366 7a5c0e45
...@@ -6754,6 +6754,11 @@ ...@@ -6754,6 +6754,11 @@
"resolved": "https://registry.npmjs.org/immer/-/immer-9.0.12.tgz", "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.12.tgz",
"integrity": "sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==" "integrity": "sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA=="
}, },
"immutable": {
"version": "4.1.0",
"resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.1.0.tgz",
"integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ=="
},
"import-fresh": { "import-fresh": {
"version": "3.3.0", "version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
...@@ -10909,6 +10914,16 @@ ...@@ -10909,6 +10914,16 @@
"resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz",
"integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA=="
}, },
"sass": {
"version": "1.55.0",
"resolved": "https://registry.npmmirror.com/sass/-/sass-1.55.0.tgz",
"integrity": "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==",
"requires": {
"chokidar": ">=3.0.0 <4.0.0",
"immutable": "^4.0.0",
"source-map-js": ">=0.6.2 <2.0.0"
}
},
"sass-loader": { "sass-loader": {
"version": "12.6.0", "version": "12.6.0",
"resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz",
......
...@@ -76,6 +76,7 @@ ...@@ -76,6 +76,7 @@
"react-router-dom": "^6.3.0", "react-router-dom": "^6.3.0",
"resolve": "^1.20.0", "resolve": "^1.20.0",
"resolve-url-loader": "^4.0.0", "resolve-url-loader": "^4.0.0",
"sass": "^1.55.0",
"sass-loader": "^12.3.0", "sass-loader": "^12.3.0",
"semver": "^7.3.5", "semver": "^7.3.5",
"source-map-loader": "^3.0.0", "source-map-loader": "^3.0.0",
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: 吴永生#A02208 yongsheng.wu@wholion.com * @Author: 吴永生#A02208 yongsheng.wu@wholion.com
* @Date: 2022-06-13 09:56:57 * @Date: 2022-06-13 09:56:57
* @LastEditors: 吴永生 15770852798@163.com * @LastEditors: 吴永生 15770852798@163.com
* @LastEditTime: 2022-10-25 18:23:37 * @LastEditTime: 2022-10-26 18:28:43
* @FilePath: /bkunyun/src/api/api_manager.ts * @FilePath: /bkunyun/src/api/api_manager.ts
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/ */
...@@ -38,7 +38,7 @@ const RESTAPI = { ...@@ -38,7 +38,7 @@ const RESTAPI = {
API_WORKBENCH_CANCEL_WORKFLOWJOB: `${BACKEND_API_URI_PREFIX}/cpp/workflow/cancel`, //取消工作流 API_WORKBENCH_CANCEL_WORKFLOWJOB: `${BACKEND_API_URI_PREFIX}/cpp/workflow/cancel`, //取消工作流
API_SUBMIT_WORKFLOW: `${BACKEND_API_URI_PREFIX}/cpp/workflow/submit`, //提交工作流 API_SUBMIT_WORKFLOW: `${BACKEND_API_URI_PREFIX}/cpp/workflow/submit`, //提交工作流
API_WORKBENCH_WORKFLOW_TASKINFO: `${BACKEND_API_URI_PREFIX}/cpp/workbench/workflowjob/task-info`, //查询任务某个算子详情 API_WORKBENCH_WORKFLOW_TASKINFO: `${BACKEND_API_URI_PREFIX}/cpp/workbench/workflowjob/task-info`, //查询任务某个算子详情
API_OPERATOR_LIST:`${BACKEND_API_URI_PREFIX}/cpp/workflow/actorspecs`, // 获取算子列表 API_OPERATOR_LIST:`${BACKEND_API_URI_PREFIX}/cpp/workflow/actorspecs/list`, // 获取算子列表
API_VERSION_OPERATOR:`${BACKEND_API_URI_PREFIX}/cpp/workflow/actorversion`, // 获取指定版本算子 API_VERSION_OPERATOR:`${BACKEND_API_URI_PREFIX}/cpp/workflow/actorversion`, // 获取指定版本算子
API_SAVE_USERSPEC:`${BACKEND_API_URI_PREFIX}/cpp/workflow/saveuserspec`, // 保存用户自定义工作流模板 API_SAVE_USERSPEC:`${BACKEND_API_URI_PREFIX}/cpp/workflow/saveuserspec`, // 保存用户自定义工作流模板
API_OVERVIEW_GET:`${BACKEND_API_URI_PREFIX}/cpp/basicInformation`, // 获取概览基本信息 API_OVERVIEW_GET:`${BACKEND_API_URI_PREFIX}/cpp/basicInformation`, // 获取概览基本信息
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: 吴永生 15770852798@163.com * @Author: 吴永生 15770852798@163.com
* @Date: 2022-10-19 17:09:23 * @Date: 2022-10-19 17:09:23
* @LastEditors: 吴永生 15770852798@163.com * @LastEditors: 吴永生 15770852798@163.com
* @LastEditTime: 2022-10-25 20:26:42 * @LastEditTime: 2022-10-26 19:07:50
* @FilePath: /bkunyun/src/api/resourceCenter.ts * @FilePath: /bkunyun/src/api/resourceCenter.ts
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/ */
...@@ -23,9 +23,11 @@ type addActorenvBuildenvParams = { ...@@ -23,9 +23,11 @@ type addActorenvBuildenvParams = {
/** 获取算子列表请求参数 */ /** 获取算子列表请求参数 */
export interface IOperatorListParams { export interface IOperatorListParams {
keyword: string; keyword?: string;
productId: string; productId?: string;
type: string; type?: string;
page?: number;
size?: number;
} }
// 获取公共项目 // 获取公共项目
......
...@@ -72,7 +72,6 @@ const theme = createTheme({ ...@@ -72,7 +72,6 @@ const theme = createTheme({
}, },
}, },
}, },
// #C2C6CC
MuiTabs: { MuiTabs: {
styleOverrides: { styleOverrides: {
indicator: { indicator: {
...@@ -80,6 +79,15 @@ const theme = createTheme({ ...@@ -80,6 +79,15 @@ const theme = createTheme({
}, },
}, },
}, },
MuiButtonBase: {
styleOverrides: {
root: {
"&.Mui-selected .MuiTypography-root": {
fontWeight: "600",
},
},
},
},
}, },
}); });
...@@ -90,7 +98,7 @@ const Tabs = (props: IProps) => { ...@@ -90,7 +98,7 @@ const Tabs = (props: IProps) => {
defaultValue, defaultValue,
onChange, onChange,
allowNullValue = false, allowNullValue = false,
tabPanelSx = { padding: "24px 0 0 0" }, tabPanelSx = { padding: "20px 0 0 0" },
title, title,
titleClass, titleClass,
} = props; } = props;
......
import { useMessage } from "@/components/MySnackbar";
import _ from "lodash"; import _ from "lodash";
import { useState } from "react";
import { useMessage } from "@/components/MySnackbar";
import { ITask } from "../Project/ProjectSubmitWork/interface"; import { ITask } from "../Project/ProjectSubmitWork/interface";
/* /*
* @Author: 吴永生 15770852798@163.com * @Author: 吴永生 15770852798@163.com
* @Date: 2022-10-24 18:08:47 * @Date: 2022-10-24 18:08:47
* @LastEditors: 吴永生 15770852798@163.com * @LastEditors: 吴永生 15770852798@163.com
* @LastEditTime: 2022-10-26 17:15:34 * @LastEditTime: 2022-10-26 18:13:41
* @FilePath: /bkunyun/src/views/CustomOperator/useCheckOperator.tsx * @FilePath: /bkunyun/src/views/CustomOperator/useCheckOperator.tsx
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/ */
...@@ -18,7 +17,6 @@ const useCheckOperator = ( ...@@ -18,7 +17,6 @@ const useCheckOperator = (
nullText?: string nullText?: string
) => { ) => {
const Message = useMessage(); const Message = useMessage();
let checkStatus = false;
// 判断 每个起始算子(可以有多个起始点)的输入必须为文件的路径输入或数据集的路径输入。 // 判断 每个起始算子(可以有多个起始点)的输入必须为文件的路径输入或数据集的路径输入。
const checkIn = (targetArr: string[]) => { const checkIn = (targetArr: string[]) => {
...@@ -104,9 +102,8 @@ const useCheckOperator = ( ...@@ -104,9 +102,8 @@ const useCheckOperator = (
const handleCheck = () => { const handleCheck = () => {
if (operatorList.length === 0) { if (operatorList.length === 0) {
Message.error(nullText || "内容不能为空!"); !nullText && Message.error(nullText || "内容不能为空!");
checkStatus = false; return nullText || "内容不能为空!";
return checkStatus;
} }
let sourceArr: string[] = []; let sourceArr: string[] = [];
let targetArr: string[] = []; let targetArr: string[] = [];
...@@ -117,25 +114,23 @@ const useCheckOperator = ( ...@@ -117,25 +114,23 @@ const useCheckOperator = (
}); });
}); });
if (!checkHasOneLine([...sourceArr], [...targetArr])) { if (!checkHasOneLine([...sourceArr], [...targetArr])) {
checkStatus = false; !nullText && Message.error("部分算子没有流程线,请检查流程!");
Message.error("部分算子没有流程线,请检查流程!"); return "部分算子没有流程线,请检查流程!";
return checkStatus;
} }
if (!checkIn([...targetArr])) { if (!checkIn([...targetArr])) {
checkStatus = false; !nullText &&
Message.error("每个流程第一步需读取文件/数据集,请检查流程!"); Message.error("每个流程第一步需读取文件/数据集,请检查流程!");
return checkStatus; return "每个流程第一步需读取文件/数据集,请检查流程!";
} }
if (!checkOut([...sourceArr])) { if (!checkOut([...sourceArr])) {
checkStatus = false; !nullText &&
Message.error( Message.error(
"每个流程最后一步必须将数据写入为文件/数据集,请检查流程!" "每个流程最后一步必须将数据写入为文件/数据集,请检查流程!"
); );
return checkStatus; return "每个流程最后一步必须将数据写入为文件/数据集,请检查流程!";
} }
checkStatus = true;
successCallBack(); successCallBack();
return checkStatus; return "";
}; };
return { handleCheck }; return { handleCheck };
......
...@@ -4,21 +4,21 @@ ...@@ -4,21 +4,21 @@
} }
.projectDataStickyTop { .projectDataStickyTop {
height: 100%; height: 100%;
padding: 28px 24px 64px; padding: 22px 24px 64px;
position: relative; position: relative;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
box-sizing: border-box; box-sizing: border-box;
} }
.projectDataStickyTopPadding { .projectDataStickyTopPadding {
padding: 28px 24px 24px; padding: 22px 24px 24px;
} }
.projectDataTitle { .projectDataTitle {
font-size: 18px; font-size: 18px;
color: #1e2633; color: #1e2633;
line-height: 26px; line-height: 26px;
font-weight: 600; font-weight: 600;
margin-bottom: 24px; margin-bottom: 20px;
} }
.projectDataHeader { .projectDataHeader {
position: relative; position: relative;
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin: 0 24px; margin: 0 24px;
padding: 24px 0 20px; padding: 22px 0 20px;
border-bottom: 1px solid #edeff2; border-bottom: 1px solid #edeff2;
} }
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
color: #1e2633; color: #1e2633;
margin-right: 8px; margin-right: 8px;
} }
.red{ .red {
color: rgba(255, 78, 78, 1); color: rgba(255, 78, 78, 1);
} }
.verticalLine { .verticalLine {
...@@ -136,4 +136,4 @@ ...@@ -136,4 +136,4 @@
justify-content: center; justify-content: center;
align-items: center; align-items: center;
height: calc(100vh - 100px); height: calc(100vh - 100px);
} }
\ No newline at end of file
...@@ -40,7 +40,7 @@ const ProjectSetting = observer(() => { ...@@ -40,7 +40,7 @@ const ProjectSetting = observer(() => {
if (currentProjectStore.currentProjectInfo.name) { if (currentProjectStore.currentProjectInfo.name) {
return ( return (
<div style={{ padding: "28px 24px 24px" }}> <div style={{ padding: "22px 24px" }}>
<div <div
style={{ display: "flex", alignItems: "center", marginBottom: "3px" }} style={{ display: "flex", alignItems: "center", marginBottom: "3px" }}
> >
......
...@@ -53,7 +53,7 @@ const ProjectWorkbench = observer(() => { ...@@ -53,7 +53,7 @@ const ProjectWorkbench = observer(() => {
}, [isPass]); }, [isPass]);
if (currentProjectStore.currentProjectInfo.name) { if (currentProjectStore.currentProjectInfo.name) {
return ( return (
<div style={{ padding: "28px 24px 24px" }}> <div style={{ padding: "22px 24px 24px" }}>
<div style={{ display: "flex", alignItems: "center" }}> <div style={{ display: "flex", alignItems: "center" }}>
<span <span
style={{ style={{
...@@ -61,7 +61,7 @@ const ProjectWorkbench = observer(() => { ...@@ -61,7 +61,7 @@ const ProjectWorkbench = observer(() => {
lineHeight: "26px", lineHeight: "26px",
fontWeight: "600", fontWeight: "600",
color: "#1E2633", color: "#1E2633",
marginBottom: "3px", marginBottom: "-1px",
}} }}
> >
工作台 工作台
......
...@@ -208,8 +208,6 @@ const UserResourcesEnvironment = () => { ...@@ -208,8 +208,6 @@ const UserResourcesEnvironment = () => {
></SearchInput> ></SearchInput>
{!addOpen && ( {!addOpen && (
<MySelect <MySelect
title="环境类型"
isTitle={true}
options={[ options={[
{ {
label: "全部", label: "全部",
......
...@@ -141,8 +141,6 @@ const UserResourcesTemplate = observer(() => { ...@@ -141,8 +141,6 @@ const UserResourcesTemplate = observer(() => {
}} }}
></SearchInput> ></SearchInput>
<MySelect <MySelect
title="产品类型"
isTitle={true}
options={ options={
[ [
{ label: "全部", value: "all" }, { label: "全部", value: "all" },
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: 吴永生 15770852798@163.com * @Author: 吴永生 15770852798@163.com
* @Date: 2022-10-18 16:12:55 * @Date: 2022-10-18 16:12:55
* @LastEditors: 吴永生 15770852798@163.com * @LastEditors: 吴永生 15770852798@163.com
* @LastEditTime: 2022-10-26 17:31:53 * @LastEditTime: 2022-10-26 18:52:52
* @FilePath: /bkunyun/src/views/ResourceCenter/UserResources/WorkflowOperator/components/AddOperator/index.tsx * @FilePath: /bkunyun/src/views/ResourceCenter/UserResources/WorkflowOperator/components/AddOperator/index.tsx
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/ */
...@@ -79,6 +79,8 @@ const AddOperator = observer((props: IAddOperator) => { ...@@ -79,6 +79,8 @@ const AddOperator = observer((props: IAddOperator) => {
const [code, setCode] = useState(JSON.stringify(initCode, null, "\t")); const [code, setCode] = useState(JSON.stringify(initCode, null, "\t"));
/** 参数配置 错误提示 */ /** 参数配置 错误提示 */
const [parametersError, setParametersError] = useState<string>(""); const [parametersError, setParametersError] = useState<string>("");
/** 流程编排错误提示 */
const [flowParametersError, setFlowParametersError] = useState<string>("");
/** 运行脚本 */ /** 运行脚本 */
const [command, setCommand] = useState<string>(""); const [command, setCommand] = useState<string>("");
...@@ -246,13 +248,14 @@ const AddOperator = observer((props: IAddOperator) => { ...@@ -246,13 +248,14 @@ const AddOperator = observer((props: IAddOperator) => {
const paramsResultError = paramsConfigBlur(); const paramsResultError = paramsConfigBlur();
setFormErrors(resultErrors); setFormErrors(resultErrors);
let checkStatus = true; let checkStatus = "";
if (taskType === "BATCH" && batchBuildType === "OPERATOR") { if (taskType === "BATCH" && batchBuildType === "OPERATOR") {
checkStatus = handleCheck(); checkStatus = handleCheck();
setFlowParametersError(checkStatus);
} }
if ( if (
Object.getOwnPropertyNames(resultErrors)?.length || Object.getOwnPropertyNames(resultErrors)?.length ||
!checkStatus || checkStatus ||
paramsResultError paramsResultError
) )
return; return;
...@@ -525,7 +528,10 @@ const AddOperator = observer((props: IAddOperator) => { ...@@ -525,7 +528,10 @@ const AddOperator = observer((props: IAddOperator) => {
)} )}
</div> </div>
{taskType === "FLOW" ? null : ( {taskType === "FLOW" ? null : (
<div className={style.parameterConfigBox}> <div
className={style.parameterConfigBox}
style={{ marginBottom: flowParametersError ? "56px" : "24px" }}
>
<div className={style.codeTitle}> <div className={style.codeTitle}>
{batchBuildType === "ENVIRONMENT" ? "运行脚本" : "流程编排"} {batchBuildType === "ENVIRONMENT" ? "运行脚本" : "流程编排"}
</div> </div>
...@@ -540,7 +546,10 @@ const AddOperator = observer((props: IAddOperator) => { ...@@ -540,7 +546,10 @@ const AddOperator = observer((props: IAddOperator) => {
) : ( ) : (
<div <div
id="customOperatorFlow" id="customOperatorFlow"
style={{ position: "relative", height: 400 }} style={{
position: "relative",
height: 400,
}}
> >
<OperatorList <OperatorList
operatorList={operatorList} operatorList={operatorList}
...@@ -558,6 +567,9 @@ const AddOperator = observer((props: IAddOperator) => { ...@@ -558,6 +567,9 @@ const AddOperator = observer((props: IAddOperator) => {
showVersion={true} showVersion={true}
showControls={false} showControls={false}
/> />
{flowParametersError ? (
<p className={style.codeErrorBox}>{flowParametersError}</p>
) : null}
</div> </div>
)} )}
</div> </div>
......
.detailsBox { .detailsBox {
padding: 0 24px; padding: 0 24px;
display: flex;
flex-direction: column;
height: calc(100vh - 58px);
} }
.baseInfoBox { .baseInfoBox {
...@@ -37,3 +40,8 @@ ...@@ -37,3 +40,8 @@
color: #565c66; color: #565c66;
border-radius: 2px; border-radius: 2px;
} }
.contentBox {
flex: 1;
min-height: 400px;
margin-bottom: 24px;
}
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: 吴永生 15770852798@163.com * @Author: 吴永生 15770852798@163.com
* @Date: 2022-10-17 14:35:11 * @Date: 2022-10-17 14:35:11
* @LastEditors: 吴永生 15770852798@163.com * @LastEditors: 吴永生 15770852798@163.com
* @LastEditTime: 2022-10-26 17:28:19 * @LastEditTime: 2022-10-26 19:51:34
* @FilePath: /bkunyun/src/views/ResourceCenter/UserResources/WorkflowOperator/index.tsx * @FilePath: /bkunyun/src/views/ResourceCenter/UserResources/WorkflowOperator/index.tsx
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/ */
...@@ -21,16 +21,9 @@ import Code from "@/components/CommonComponents/Code"; ...@@ -21,16 +21,9 @@ import Code from "@/components/CommonComponents/Code";
import Flow from "@/views/Project/components/Flow"; import Flow from "@/views/Project/components/Flow";
import styles from "./index.module.css"; import styles from "./index.module.css";
import { Base64 } from "js-base64";
const OperatorDetails = observer(() => { const OperatorDetails = observer(() => {
const contentTypeList = useMemo(() => {
return [
{ value: "flowChart", label: "流程图" },
{ value: "parameterList", label: "参数列表" },
{ value: "runScript", label: "运行脚本" },
];
}, []);
/** 产品store */ /** 产品store */
const { productListStore } = useStores(); const { productListStore } = useStores();
const navigate = useNavigate(); const navigate = useNavigate();
...@@ -59,8 +52,23 @@ const OperatorDetails = observer(() => { ...@@ -59,8 +52,23 @@ const OperatorDetails = observer(() => {
creator = "", creator = "",
description = "", description = "",
type, type,
envName = "",
envId,
command,
} = detailInfo; } = detailInfo;
console.log(detailInfo, "detailInfo"); console.log(detailInfo, "detailInfo");
const contentTypeList = useMemo(() => {
const result = [
{ value: "flowChart", label: "流程图" },
{ value: "parameterList", label: "参数列表" },
];
if (envId) {
result.push({ value: "runScript", label: "运行脚本" });
}
return result;
}, [envId]);
/** 切换类型 */ /** 切换类型 */
const handleRadio = (val: string) => { const handleRadio = (val: string) => {
console.log(val, "2"); console.log(val, "2");
...@@ -107,28 +115,38 @@ const OperatorDetails = observer(() => { ...@@ -107,28 +115,38 @@ const OperatorDetails = observer(() => {
}, },
{ label: "创建人", value: creator }, { label: "创建人", value: creator },
{ label: "算子版本", value: version }, { label: "算子版本", value: version },
{ label: "应用环境", value: "1" }, { label: "应用环境", value: envName },
]} ]}
/> />
<BasicInfo infoList={[{ label: "描述", value: description }]} /> {description ? (
</div> <BasicInfo infoList={[{ label: "描述", value: description }]} />
<div style={{ padding: "26px 0 16px 0" }}>
<RadioGroupOfButtonStyle
RadiosBoxStyle={{ width: 254 }}
value={contentType}
radioOptions={contentTypeList}
handleRadio={handleRadio}
/>
</div>
<div>
{contentType === "flowChart" ? <Flow tasks={[]} /> : null}
{contentType === "parameterList" ? null : null}
{contentType === "runScript" ? (
<div className={styles.code}>
<Code value="" editable={false} height="350px" />
</div>
) : null} ) : null}
</div> </div>
{type === "BATCH" ? (
<div style={{ padding: "26px 0 16px 0" }}>
<RadioGroupOfButtonStyle
RadiosBoxStyle={{ width: 254 }}
value={contentType}
radioOptions={contentTypeList}
handleRadio={handleRadio}
/>
</div>
) : null}
{contentType === "flowChart" ? (
<Flow
tasks={detailInfo?.parameters || []}
className={styles.contentBox}
/>
) : null}
{contentType === "parameterList" ? null : null}
{contentType === "runScript" ? (
<Code
className={styles.contentBox}
value={Base64.decode(command || "")}
editable={false}
height="100%"
/>
) : null}
</div> </div>
); );
}); });
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: 吴永生 15770852798@163.com * @Author: 吴永生 15770852798@163.com
* @Date: 2022-10-17 14:35:11 * @Date: 2022-10-17 14:35:11
* @LastEditors: 吴永生 15770852798@163.com * @LastEditors: 吴永生 15770852798@163.com
* @LastEditTime: 2022-10-26 15:14:32 * @LastEditTime: 2022-10-26 19:17:49
* @FilePath: /bkunyun/src/views/ResourceCenter/UserResources/WorkflowOperator/index.tsx * @FilePath: /bkunyun/src/views/ResourceCenter/UserResources/WorkflowOperator/index.tsx
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/ */
...@@ -25,6 +25,7 @@ import { IOperatorInfo } from "./interface"; ...@@ -25,6 +25,7 @@ import { IOperatorInfo } from "./interface";
import styles from "./index.module.css"; import styles from "./index.module.css";
import MyCircularProgress from "@/components/mui/MyCircularProgress"; import MyCircularProgress from "@/components/mui/MyCircularProgress";
import NoData from "@/components/BusinessComponents/NoData";
const WorkflowOperator = observer(() => { const WorkflowOperator = observer(() => {
const [pageType, setPageType] = useState<string>(""); const [pageType, setPageType] = useState<string>("");
...@@ -45,7 +46,7 @@ const WorkflowOperator = observer(() => { ...@@ -45,7 +46,7 @@ const WorkflowOperator = observer(() => {
// refreshDeps: [], // refreshDeps: [],
onSuccess: (res) => { onSuccess: (res) => {
console.log(res); console.log(res);
setList(res?.data); setList(res?.data.content);
}, },
}); });
...@@ -57,7 +58,7 @@ const WorkflowOperator = observer(() => { ...@@ -57,7 +58,7 @@ const WorkflowOperator = observer(() => {
if (params.type === "all") { if (params.type === "all") {
params.type = ""; params.type = "";
} }
getList(params); getList({ ...params });
}, [getList, searchParams]); }, [getList, searchParams]);
// 按回车搜索 // 按回车搜索
...@@ -145,30 +146,8 @@ const WorkflowOperator = observer(() => { ...@@ -145,30 +146,8 @@ const WorkflowOperator = observer(() => {
})} })}
</div> </div>
) : ( ) : (
<div style={{ position: "relative", minHeight: 450 }}> <div style={{ height: 300 }}>
<img <NoData text="暂无工作流算子"></NoData>
src={noFile}
alt=""
style={{
position: "absolute",
top: "100px",
left: "50%",
transform: "translate(-50%, 0)",
}}
/>
<span
style={{
position: "absolute",
top: "165px",
left: "50%",
transform: "translate(-50%, 0)",
fontSize: "14px",
lineHeight: "22px",
color: "#8a9099",
}}
>
暂无工作流算子
</span>
</div> </div>
)} )}
</div> </div>
......
.box {
background-color: red;
}
...@@ -5,6 +5,7 @@ import CardTableDemo from "./CardTableDemo"; ...@@ -5,6 +5,7 @@ import CardTableDemo from "./CardTableDemo";
import RadioGroupOfButtonStyle from "@/components/CommonComponents/RadioGroupOfButtonStyle"; import RadioGroupOfButtonStyle from "@/components/CommonComponents/RadioGroupOfButtonStyle";
import { useState } from "react"; import { useState } from "react";
import styles from "./index.module.css"; import styles from "./index.module.css";
import style from "./index.module.scss";
const Demo = () => { const Demo = () => {
const radioOptionsArr = [ const radioOptionsArr = [
...@@ -48,6 +49,7 @@ const Demo = () => { ...@@ -48,6 +49,7 @@ const Demo = () => {
{selectDemo === "表格" && <MyTableDemo></MyTableDemo>} {selectDemo === "表格" && <MyTableDemo></MyTableDemo>}
{selectDemo === "box" && <div>box</div>} {selectDemo === "box" && <div>box</div>}
</div> </div>
<div className={style.box}>123</div>
</div> </div>
); );
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment