Commit 71b59ac3 authored by LiXuyang's avatar LiXuyang

Merge remote-tracking branch 'origin/master'

parents c7391d6a 57d1299a
......@@ -22,6 +22,12 @@
</div>
</template>
<div style="display: flex">
<span style="margin-top: 20px; margin-left: 10px; font-size: 18px; font-weight: bold"
>基本信息</span
>
</div>
<Description
size="middle"
title=" "
......@@ -29,13 +35,14 @@
:column="3"
:data="BasicInfoData"
:schema="BasicInfoSchema"
/>
<div style="display: flex; flex-direction: column">
<span style="margin-top: 20px; margin-left: 10px; font-size: 18px; font-weight: bold"
>管理属性</span
>
<template #action>
<div style="display: flex">
<span style="font-size: 18px; font-weight: bold; margin-right: 1550px">基本信息</span>
</div>
</template>
</Description>
<Description
size="middle"
title=" "
......@@ -43,13 +50,13 @@
:column="3"
:data="ManagePropertyData"
:schema="ManagePropertySchema"
>
<template #action>
/>
<div style="display: flex">
<span style="font-size: 18px; font-weight: bold; margin-right: 1550px">管理属性</span>
<span style="margin-top: 20px; margin-left: 10px; font-size: 18px; font-weight: bold"
>权限信息</span
>
</div>
</template>
</Description>
<Description
size="middle"
title=" "
......@@ -57,13 +64,7 @@
:column="3"
:data="permissionsData"
:schema="permissionsInfo"
>
<template #action>
<div style="display: flex">
<span style="font-size: 18px; font-weight: bold; margin-right: 1550px">权限信息</span>
</div>
</template>
</Description>
/>
<div class="mianBodyEditContainer">
<Tabs style="padding-left: 20px" v-model:activeKey="page" size="large">
<a-tab-pane key="1" tab="采样数据">
......@@ -138,7 +139,7 @@
</template>
</BasicTable>
</div>
<span style="font-weight: bold; font-size: 16px; margin-left: 35px">推送记录</span>
<span style="margin-left: 35px; font-size: 16px; font-weight: bold">推送记录</span>
<div class="flex">
<div style="width: 45%">
<BasicTable @register="registerPushTypeTable" />
......@@ -420,11 +421,11 @@
</script>
<style scoped lang="scss">
.editor {
background-color: white;
height: 560px;
border: 1px solid #d9d9d9;
padding: 16px;
margin-bottom: 8px;
padding: 16px;
border: 1px solid #d9d9d9;
background-color: white;
}
.editor textarea {
......
......@@ -162,7 +162,7 @@ export const formSchemaTemplate: any = [
field: 'fileType',
label: '文件类型',
component: 'Input',
defaultValue: '.sh格式文件',
defaultValue: 'Shell',
colProps: { span: 8 },
componentProps: {
readonly: true,
......@@ -190,14 +190,15 @@ export const formSchemaTemplate: any = [
{
field: 'model',
label: '目录权属模式',
component: 'RadioGroup',
defaultValue: '本级定义',
component: 'Input',
defaultValue: '资源自定义',
colProps: { span: 8 },
componentProps: {
options: [
{ label: '本级定义', value: '本级定义' },
{ label: '资源自定义', value: '资源自定义' },
],
readonly: true,
style: {
border: 'none',
backgroundColor: 'transparent',
},
},
},
{
......
......@@ -44,6 +44,7 @@
//初始化表单
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
labelWidth: 100,
labelAlign: 'left',
baseColProps: { lg: 24, md: 24 },
schemas: formSchemaTemplate,
showActionButtonGroup: false,
......
<template>
<PageWrapper
title="shell文件版本对比"
dense
contentFullHeight
fixedHeight
contentClass="flex"
@back="goBack"
>
<!-- <GroupTree @select="handleSelect" class="w-1/4 xl:w-1/5" /> -->
<div class="w-full xl:w-full" style="padding-top: 20px">
<BasicForm @register="registerForm">
<template #formFooter>
<div style="display: flex; justify-content: space-between; margin-left: 500px">
<!-- 新窗口运行-->
<!-- <Tooltip placement="top" title="新窗口运行">
<a-button
type="primary"
style="margin-right: 10px; margin-left: 500px"
@click="handleExecute"
>
<Icon icon="si:play-forward-duotone" :size="20" />
</a-button>
</Tooltip> -->
<!-- 运行-->
<!-- <Tooltip placement="top" title="运行">
<a-button type="primary" style="margin-right: 10px" @click="handleExecute">
<Icon icon="si:play-line" :size="20" />
</a-button>
</Tooltip> -->
<!-- 执行记录-->
<!-- <Tooltip placement="top" title="执行记录">
<a-button type="primary" style="margin-right: 10px" @click="handleRecord">
<Icon icon="si:clock-alt-line" :size="20" />
</a-button>
</Tooltip> -->
<PageWrapper title="" dense contentFullHeight fixedHeight contentClass="flex">
<template #headerContent>
<div style="width: 100%; display: flex; align-items: center; justify-content: space-between">
<div style="display: flex; align-items: center">
<Icon
@click="goBack"
class="backBtn"
icon="eva:arrow-ios-back-fill"
:size="25"
color="grey"
/>
<span style="color: grey; margin-left: 10px"> {{ path }}</span>
</div>
<div style="display: flex; margin-left: 500px">
<!-- 提交版本-->
<!-- <Tooltip placement="top" title="提交版本">
<Tooltip placement="top" title="提交版本">
<a-button type="primary" style="margin-right: 10px" @click="handleSubmit">
<Icon icon="majesticons:cloud-upload-line" :size="20" />
提交版本
<!-- <Icon icon="majesticons:cloud-upload-line" :size="20" />-->
</a-button>
</Tooltip> -->
</Tooltip>
<!-- 版本管理-->
<!-- <Tooltip placement="top" title="版本管理">
<Tooltip placement="top" title="版本管理">
<a-button type="primary" style="margin-right: 10px" @click="handleVersion">
<Icon icon="majesticons:file-search-line" :size="20" />
版本管理
<!-- <Icon icon="majesticons:file-search-line" :size="20" />-->
</a-button>
</Tooltip> -->
</Tooltip>
<!-- 参数配置-->
<Tooltip placement="top" title="参数配置">
<a-button type="primary" style="margin-right: 10px" @click="handleOptions">
<Icon icon="majesticons:link-circle-line" :size="20" />
参数配置
<!-- <Icon icon="majesticons:link-circle-line" :size="20" />-->
</a-button>
</Tooltip>
<!-- 格式化-->
<!-- <Tooltip placement="top" title="格式化">
<a-button type="primary" style="margin-right: 10px" @click="handleChange">
<Icon icon="gg:align-left" :size="20" />
<!-- 保存-->
<Tooltip placement="top" title="保存">
<a-button type="primary" style="margin-right: 10px" @click="handleSave">
保存
<!-- <Icon icon="majesticons:save-line" :size="20" />-->
</a-button>
</Tooltip>
</div>
</div>
</template>
<div class="w-full" style="background-color: white">
<div style="display: flex">
<div style="flex: 1">
<div style="display: flex; justify-content: space-between; margin-top: 10px">
<div style="display: flex; gap: 10px; align-items: center">
<span style="color: grey; margin-left: 10px">选择版本:</span>
<Select
v-model:value="optionValue"
placeholder="请选择版本"
:options="options"
@change="handleChange"
/>
</div>
<div style="display: flex">
<!-- 参数配置-->
<Tooltip placement="top" title="参数配置">
<a-button type="primary" style="margin-right: 10px" @click="handleOptions">
参数配置
<!-- <Icon icon="majesticons:link-circle-line" :size="20" />-->
</a-button>
</Tooltip> -->
</Tooltip>
<!-- 回退至该版本-->
<Tooltip placement="top" title="回退至该版本">
<a-button type="primary" style="margin-right: 10px" @click="handleRollback">
<Icon icon="ant-design:rollback-outlined" :size="20" />
回退至该版本
<!-- <Icon icon="ant-design:rollback-outlined" :size="20" />-->
</a-button>
</Tooltip>
<!-- 退出查看-->
<Tooltip placement="top" title="退出查看">
<a-button type="error" style="margin-right: 10px" @click="handleExit">
<Icon icon="majesticons:save-line" :size="20" />
退出查看
<!-- <Icon icon="majesticons:save-line" :size="20" />-->
</a-button>
</Tooltip>
<!-- 保存-->
<!-- <Tooltip placement="top" title="保存">
<a-button type="primary" style="margin-right: 10px" @click="handleSave">
<Icon icon="majesticons:save-line" :size="20" />
</a-button>
</Tooltip> -->
<!-- <Tooltip placement="top" :title="layout === 'single' ? '版本对比' : '结束对比'">
<a-button type="primary" style="margin-right: 10px" @click="toggleLayout">
<Icon
:icon="layout === 'single' ? 'majesticons:user-line' : 'majesticons:users-line'"
:size="20"
/>
</a-button>
</Tooltip> -->
</div>
</template>
</BasicForm>
<div style="width: 100%; margin-top: 20px">
<div class="editor-container">
<div class="editor-wrapper" style="height: 600px">
<div
class="editor-left"
ref="editorLeft"
style="flex: 1; width: 50%; overflow: hidden"
:scrollbar="false"
>
<CodeEditor v-model:value="jsonDataLeft" :mode="MODE.JSON" />
</div>
<div
class="editor-right"
ref="editorRight"
style="flex: 1; width: 50%; overflow: hidden"
:scrollbar="false"
>
<CodeEditor v-model:value="jsonDataRight" :mode="MODE.JSON" />
<CodeEditor v-model:value="jsonDataLeft" :mode="MODE.SHELL" />
</div>
<div style="flex: 1">
<div style="display: flex; justify-content: space-between; margin-top: 10px">
<div style="display: flex; gap: 10px; align-items: center">
<span style="margin-left: 10px">当前版本:</span>
</div>
<div style="display: flex; justify-content: space-between; margin-left: 500px">
<!-- 参数配置-->
<Tooltip placement="top" title="参数配置">
<a-button type="primary" style="margin-right: 10px" @click="handleOptions">
参数配置
<!-- <Icon icon="majesticons:link-circle-line" :size="20" />-->
</a-button>
</Tooltip>
</div>
</div>
<CodeEditor v-model:value="jsonDataRight" :mode="MODE.SHELL" />
</div>
</div>
</div>
......@@ -125,11 +111,11 @@
</PageWrapper>
</template>
<script lang="ts" setup>
import { Modal, Tooltip } from 'ant-design-vue';
import { Modal, Tooltip, Select } from 'ant-design-vue';
import { onMounted, ref, nextTick, watch } from 'vue';
import { PageWrapper } from '@/components/Page';
import GroupTree from '../GroupTree.vue';
import { jsonData } from '../sqlDevelopmentData';
import { DataTreeData, jsonData } from '../sqlDevelopmentData';
import { CompareFormSchema } from '../data';
import { useGo } from '@/hooks/web/usePage';
import { CodeEditor, MODE } from '@/components/CodeEditor';
......@@ -145,12 +131,15 @@
import { schema } from '@/views/dataIntegration/taskOM/taskOM.data';
import versionManagementModal from './versionManagementModal.vue';
import { router } from '@/router';
import { useRoute } from 'vue-router';
defineOptions({ name: 'AccountManagement' });
const { createMessage } = useMessage();
const go = useGo();
const route = useRoute();
const layout = ref('single');
const path = ref();
const jsonDataLeft = jsonData;
const jsonDataRight = jsonData;
const editorLeft = ref<HTMLElement | null>(null);
......@@ -158,6 +147,17 @@
const toggleLayout = () => {
layout.value = layout.value === 'single' ? 'double' : 'single';
};
const optionValue = ref('V1 2022/01/01 12:24:22');
const options = ref([
{
label: 'V1 2022/01/01 12:24:22',
value: 'V1 2022/01/01 12:24:22',
},
{
label: 'V2 2022/01/02 13:30:00',
value: 'V2 2022/01/02 13:30:00',
},
]);
const [registerModal, { openModal }] = useModal();
const [registerSubmitModal, { openModal: openSubmitModal }] = useModal();
const [registerResultModal, { openModal: openResultModal }] = useModal();
......@@ -214,16 +214,19 @@
//回退至该版本按钮
function handleRollback() {
createMessage.success('回退成功');
router.push('/scriptDevelopment/shellDevelopment/shellExecute/shellExecute');
router.push({
path: '/scriptDevelopment/shellDevelopment/shellExecute/shellExecute',
query: {
id: route.query.id,
},
});
}
//退出查看按钮
function handleExit() {
Modal.confirm({
iconType: 'warning',
title: '提示',
content: '是否退出查看?',
onOk() {
router.push('/scriptDevelopment/shellDevelopment/shellExecute/shellExecute');
router.push({
path: '/scriptDevelopment/shellDevelopment/shellExecute/shellExecute',
query: {
id: route.query.id,
},
});
}
......@@ -253,7 +256,23 @@
}
}
});
// 根据id获取文件路径
function getPathById(id) {
console.log(id);
const node = DataTreeData.find((item) => '' + item.businessId === id);
console.log(node);
if (!node) return ''; // 如果找不到节点,则返回空字符串
// 如果是根节点,直接返回其名称
if (node.parentId === 0) {
return node.workSpaceName;
}
// 递归获取父节点路径,并拼接当前节点名称
const parentPath = getPathById('' + node.parentId);
console.log('parentPath', parentPath);
return `${parentPath} / ${node.workSpaceName}`;
}
onMounted(async () => {
path.value = getPathById(route.query.id);
await nextTick(() => {
if (editorLeft.value && editorRight.value) {
editorLeft.value.addEventListener('scroll', handleScroll);
......@@ -262,31 +281,11 @@
});
});
</script>
<style scoped>
.editor-container {
display: flex;
<style lang="less" scoped>
:deep(.CodeMirror) {
height: 700px !important;
}
.editor-left {
flex: 1;
height: 100%;
overflow-y: hidden;
}
.editor-right {
flex: 1;
height: 100%;
overflow-y: hidden;
}
.editor-wrapper {
display: flex;
justify-content: space-between;
}
.editor-left,
.editor-right {
flex: 1;
overflow: hidden;
:deep(.ant-page-header) {
padding: 5px !important;
}
</style>
<template>
<PageWrapper
title="shell文件查看详情"
dense
contentFullHeight
fixedHeight
contentClass="flex"
@back="goBack"
>
<!-- <GroupTree @select="handleSelect" class="w-1/4 xl:w-1/5" /> -->
<div class="w-full xl:w-full" style="padding-top: 20px">
<BasicForm @register="registerForm">
<template #formFooter>
<div style="display: flex; justify-content: space-between; margin-left: 500px">
<!-- 新窗口运行-->
<!-- <Tooltip placement="top" title="新窗口运行">
<a-button
type="primary"
style="margin-right: 10px; margin-left: 500px"
@click="handleExecute"
>
<Icon icon="si:play-forward-duotone" :size="20" />
</a-button>
</Tooltip> -->
<!-- 运行-->
<!-- <Tooltip placement="top" title="运行">
<a-button type="primary" style="margin-right: 10px" @click="handleExecute">
<Icon icon="si:play-line" :size="20" />
</a-button>
</Tooltip> -->
<!-- 执行记录-->
<!-- <Tooltip placement="top" title="执行记录">
<a-button type="primary" style="margin-right: 10px" @click="handleRecord">
<Icon icon="si:clock-alt-line" :size="20" />
</a-button>
</Tooltip> -->
<PageWrapper title="" dense contentFullHeight fixedHeight contentClass="flex">
<template #headerContent>
<div style="width: 100%; display: flex; align-items: center; justify-content: space-between">
<div style="display: flex; align-items: center">
<span style="color: grey; margin-left: 10px"> {{ path }}</span>
</div>
<div style="display: flex; margin-left: 500px">
<!-- 提交版本-->
<!-- <Tooltip placement="top" title="提交版本">
<Tooltip placement="top" title="提交版本">
<a-button type="primary" style="margin-right: 10px" @click="handleSubmit">
<Icon icon="majesticons:cloud-upload-line" :size="20" />
提交版本
<!-- <Icon icon="majesticons:cloud-upload-line" :size="20" />-->
</a-button>
</Tooltip> -->
</Tooltip>
<!-- 版本管理-->
<!-- <Tooltip placement="top" title="版本管理">
<Tooltip placement="top" title="版本管理">
<a-button type="primary" style="margin-right: 10px" @click="handleVersion">
<Icon icon="majesticons:file-search-line" :size="20" />
版本管理
<!-- <Icon icon="majesticons:file-search-line" :size="20" />-->
</a-button>
</Tooltip> -->
</Tooltip>
<!-- 参数配置-->
<!-- <Tooltip placement="top" title="参数配置">
<Tooltip placement="top" title="参数配置">
<a-button type="primary" style="margin-right: 10px" @click="handleOptions">
<Icon icon="majesticons:link-circle-line" :size="20" />
参数配置
<!-- <Icon icon="majesticons:link-circle-line" :size="20" />-->
</a-button>
</Tooltip> -->
<!-- 格式化-->
<!-- <Tooltip placement="top" title="格式化">
<a-button type="primary" style="margin-right: 10px" @click="handleChange">
<Icon icon="gg:align-left" :size="20" />
</a-button>
</Tooltip> -->
</Tooltip>
<!-- 保存-->
<!-- <Tooltip placement="top" title="保存">
<Tooltip placement="top" title="保存">
<a-button type="primary" style="margin-right: 10px" @click="handleSave">
<Icon icon="majesticons:save-line" :size="20" />
保存
<!-- <Icon icon="majesticons:save-line" :size="20" />-->
</a-button>
</Tooltip> -->
<!-- <Tooltip placement="top" :title="layout === 'single' ? '版本对比' : '结束对比'">
<a-button type="primary" style="margin-right: 10px" @click="toggleLayout">
<Icon
:icon="layout === 'single' ? 'majesticons:user-line' : 'majesticons:users-line'"
:size="20"
</Tooltip>
</div>
</div>
<div style="display: flex; justify-content: space-between; margin-top: 10px">
<div style="display: flex; gap: 10px; align-items: center">
<span style="color: grey; margin-left: 10px">选择版本:</span>
<Select
v-model:value="optionValue"
placeholder="请选择版本"
:options="options"
@change="handleChange"
/>
</div>
<div>
<Tooltip placement="top" title="回退至该版本">
<a-button type="primary" style="margin-right: 10px" @click="handleBackToCurrent">
<Icon icon="ri:arrow-go-back-fill" :size="20" />
回退至该版本
</a-button>
</Tooltip> -->
</Tooltip>
<Tooltip placement="top" title="退出查看">
<a-button type="error" style="margin-right: 10px" @click="handleExit">
<Icon icon="majesticons:backspace-line" :size="20" />
退出查看
<!-- <Icon icon="majesticons:backspace-line" :size="20" />-->
</a-button>
</Tooltip>
</div>
</div>
</template>
</BasicForm>
<div class="w-full xl:w-full" style="background-color: white">
<div style="width: 100%; margin-top: 20px">
<div class="editor-container">
<div>
<CodeEditor v-model:value="jsonData" :mode="MODE.JSON" />
</div>
<div class="codeEditorH" style="padding: 0 15px" v-if="layout === 'single'">
<CodeEditor v-model:value="jsonData" :mode="MODE.SHELL" />
</div>
</div>
</div>
<optionsModal @register="registerModal" />
<OptionsModal @register="registerModal" />
<resultModal @register="registerResultModal" />
<PreviewModal @register="registerPreviewModal" />
<RecordModal @register="registerRecordModal" />
......@@ -105,16 +78,16 @@
</PageWrapper>
</template>
<script lang="ts" setup>
import { Modal, Tooltip } from 'ant-design-vue';
import { Modal, Tooltip, Select } from 'ant-design-vue';
import { onMounted, ref, nextTick, watch } from 'vue';
import { PageWrapper } from '@/components/Page';
import GroupTree from '../GroupTree.vue';
import { jsonData } from '../sqlDevelopmentData';
import { DataTreeData, jsonData } from '../sqlDevelopmentData';
import { CompareFormSchema } from '../data';
import { useGo } from '@/hooks/web/usePage';
import { CodeEditor, MODE } from '@/components/CodeEditor';
import { BasicForm, useForm } from '@/components/Form';
import optionsModal from './optionsModal.vue';
import OptionsModal from './optionsModal.vue';
import { useModal } from '@/components/Modal';
import resultModal from './resultModal.vue';
import PreviewModal from './dataPreviewModal.vue';
......@@ -125,14 +98,26 @@
import { schema } from '@/views/dataIntegration/taskOM/taskOM.data';
import versionManagementModal from './versionManagementModal.vue';
import { router } from '@/router';
import { useRoute } from 'vue-router';
defineOptions({ name: 'AccountManagement' });
const { createMessage } = useMessage();
const go = useGo();
const path = ref('');
const optionValue = ref('V1 2022/01/01 12:24:22');
const options = ref([
{
label: 'V1 2022/01/01 12:24:22',
value: 'V1 2022/01/01 12:24:22',
},
{
label: 'V2 2022/01/02 13:30:00',
value: 'V2 2022/01/02 13:30:00',
},
]);
const layout = ref('single');
const jsonDataLeft = jsonData;
const jsonDataRight = jsonData;
const route = useRoute();
const editorLeft = ref<HTMLElement | null>(null);
const editorRight = ref<HTMLElement | null>(null);
const toggleLayout = () => {
......@@ -144,34 +129,23 @@
const [registerPreviewModal, { openModal: openPreviewModal }] = useModal();
const [registerVersionManagementModal, { openModal: openVersionManagementModal }] = useModal();
const [registerRecordModal, { openModal: openRecordModal }] = useModal();
const [registerForm] = useForm({
labelWidth: 100,
baseColProps: { lg: 6, md: 4 },
schemas: CompareFormSchema,
showActionButtonGroup: false,
disabled: true,
});
/** 部门树的select*/
function handleSelect() {
openPreviewModal(true, {
title: '数据预览',
});
}
function handleOptions() {
openModal(true, {
title: '参数配置',
});
}
function handleExecute() {
openResultModal(true, {
title: '执行结果',
});
}
function handleRecord() {
openRecordModal(true, {
title: '执行记录',
});
// 根据id获取文件路径
function getPathById(id) {
console.log(id);
const node = DataTreeData.find((item) => '' + item.businessId === id);
console.log(node);
if (!node) return ''; // 如果找不到节点,则返回空字符串
// 如果是根节点,直接返回其名称
if (node.parentId === 0) {
return node.workSpaceName;
}
// 递归获取父节点路径,并拼接当前节点名称
const parentPath = getPathById('' + node.parentId);
console.log('parentPath', parentPath);
return `${parentPath} / ${node.workSpaceName}`;
}
//提交版本按钮
function handleSubmit() {
openSubmitModal(true, {
......@@ -183,6 +157,12 @@
function handleVersion() {
openVersionManagementModal(true, {
title: '版本管理',
id: route.query.id,
});
}
function handleOptions() {
openModal(true, {
title: '参数配置',
});
}
function handleChange() {
......@@ -194,19 +174,20 @@
}
//退出查看按钮
function handleExit() {
Modal.confirm({
iconType: 'warning',
title: '提示',
content: '是否退出查看?',
onOk() {
router.push('/scriptDevelopment/shellDevelopment/shellExecute/shellExecute');
router.back();
}
//退出查看按钮
function handleBackToCurrent() {
router.push({
path: '/scriptDevelopment/shellDevelopment/shellExecute/shellExecute',
query: {
id: route.query.id,
},
});
}
// 页面左侧点击返回链接时的操作
function goBack() {
// 本例的效果时点击返回始终跳转到账号列表页,实际应用时可返回上一页
go('/scriptDevelopment/shellDevelopment/index');
router.back();
}
//同步滚动
const handleScroll = () => {
......@@ -229,6 +210,7 @@
}
});
onMounted(async () => {
path.value = getPathById(route.query.id);
await nextTick(() => {
if (editorLeft.value && editorRight.value) {
editorLeft.value.addEventListener('scroll', handleScroll);
......@@ -237,31 +219,11 @@
});
});
</script>
<style scoped>
.editor-container {
display: flex;
<style lang="less" scoped>
:deep(.CodeMirror) {
height: 700px !important;
}
.editor-left {
flex: 1;
height: 100%;
overflow-y: hidden;
}
.editor-right {
flex: 1;
height: 100%;
overflow-y: hidden;
}
.editor-wrapper {
display: flex;
justify-content: space-between;
}
.editor-left,
.editor-right {
flex: 1;
overflow: hidden;
:deep(.ant-page-header) {
padding: 5px !important;
}
</style>
......@@ -47,16 +47,6 @@
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields();
setModalProps({ confirmLoading: false });
isUpdate.value = !!data?.isUpdate;
isMove.value = !!data?.isMove;
if (unref(isUpdate)) {
// 获取行数据的id
rowId.value = data.record.businessId;
// 塞值
setFieldsValue({
...data.record,
});
}
});
// onMounted(){}
......@@ -66,11 +56,13 @@
/**确定按钮*/
async function handleSubmit() {
if (textareaValue.value.trim() == '') {
closeModal();
try {
setModalProps({ confirmLoading: true });
await validate();
emit('success', textareaValue.value);
} else {
createMessage.error('请填写内容');
closeModal();
} finally {
setModalProps({ confirmLoading: false });
}
}
</script>
......@@ -212,14 +212,14 @@ export const formSchemaTemplate: any = [
},
},
];
export const importFormSchema: any[] = [
export const importFormSchema: FormSchema[] = [
{
field: 'importVersionAlert',
label: '版本描述',
slot: 'fileMethods',
component: 'InputTextarea',
component: 'InputTextArea',
colProps: { lg: 24, md: 24 },
componentProps: {
rows: 8,
placeholder: '最多255个字符',
},
required: true,
......
<template>
<BasicModal
width="30%"
width="41%"
v-bind="$attrs"
@register="registerModal"
:title="title"
......
......@@ -14,31 +14,6 @@
<span style="color: grey; margin-left: 10px"> {{ path }}</span>
</div>
<div style="display: flex; margin-left: 500px">
<!-- 新窗口运行-->
<!-- <Tooltip placement="top" title="新窗口运行">
<a-button
type="primary"
style="margin-right: 10px; margin-left: 500px"
@click="handleExecute"
>
<Icon icon="si:play-forward-duotone" :size="20" />
</a-button>
</Tooltip> -->
<!-- 运行-->
<!-- <Tooltip placement="top" title="运行">
<a-button type="primary" style="margin-right: 10px" @click="handleExecute">
<Icon icon="si:play-line" :size="20" />
</a-button>
</Tooltip> -->
<!-- 执行记录-->
<!-- <Tooltip placement="top" title="执行记录">
<a-button type="primary" style="margin-right: 10px" @click="handleRecord">
<Icon icon="si:clock-alt-line" :size="20" />
</a-button>
</Tooltip> -->
<!-- 提交版本-->
<Tooltip placement="top" title="提交版本">
<a-button type="primary" style="margin-right: 10px" @click="handleSubmit">
......@@ -46,7 +21,6 @@
<!-- <Icon icon="majesticons:cloud-upload-line" :size="20" />-->
</a-button>
</Tooltip>
<!-- 版本管理-->
<Tooltip placement="top" title="版本管理">
<a-button type="primary" style="margin-right: 10px" @click="handleVersion">
......@@ -54,7 +28,6 @@
<!-- <Icon icon="majesticons:file-search-line" :size="20" />-->
</a-button>
</Tooltip>
<!-- 参数配置-->
<Tooltip placement="top" title="参数配置">
<a-button type="primary" style="margin-right: 10px" @click="handleOptions">
......@@ -62,15 +35,6 @@
<!-- <Icon icon="majesticons:link-circle-line" :size="20" />-->
</a-button>
</Tooltip>
<!-- 格式化-->
<!-- <Tooltip placement="top" title="格式化">-->
<!-- <a-button type="primary" style="margin-right: 10px" @click="handleChange">-->
<!-- 格式化-->
<!-- &lt;!&ndash; <Icon icon="gg:align-left" :size="20" />&ndash;&gt;-->
<!-- </a-button>-->
<!-- </Tooltip>-->
<!-- 保存-->
<Tooltip placement="top" title="保存">
<a-button type="primary" style="margin-right: 10px" @click="handleSave">
......@@ -78,15 +42,6 @@
<!-- <Icon icon="majesticons:save-line" :size="20" />-->
</a-button>
</Tooltip>
<!--
<Tooltip placement="top" :title="layout === 'single' ? '版本对比' : '结束对比'">
<a-button type="primary" style="margin-right: 10px" @click="toggleLayout">
<Icon
:icon="layout === 'single' ? 'majesticons:user-line' : 'majesticons:users-line'"
:size="20"
/>
</a-button>
</Tooltip> -->
</div>
</div>
</template>
......@@ -95,33 +50,11 @@
<div class="codeEditorH" style="padding: 0 15px" v-if="layout === 'single'">
<CodeEditor v-model:value="jsonData" :mode="MODE.SHELL" />
</div>
<div v-else class="editor-container">
<div class="editor-wrapper" style="height: 600px">
<div
class="editor-left"
ref="editorLeft"
style="flex: 1; width: 50%; overflow: hidden"
:scrollbar="false"
>
<CodeEditor v-model:value="jsonDataLeft" :mode="MODE.JSON" />
</div>
<div
class="editor-right"
ref="editorRight"
style="flex: 1; width: 50%; overflow: hidden"
:scrollbar="false"
>
<CodeEditor v-model:value="jsonDataRight" :mode="MODE.JSON" />
</div>
</div>
</div>
</div>
</div>
<OptionsModal @register="registerModal" />
<ResultModal @register="registerResultModal" />
<PreviewModal @register="registerPreviewModal" />
<RecordModal @register="registerRecordModal" />
<SubmitModal @register="registerSubmitModal" />
<SubmitModal @register="registerSubmitModal" @success="handleSuccess" />
<VersionManagementModal @register="registerVersionManagementModal" />
</PageWrapper>
</template>
......@@ -155,8 +88,6 @@
const route = useRoute();
const path = ref('');
const layout = ref('single');
const jsonDataLeft = jsonData;
const jsonDataRight = jsonData;
const editorLeft = ref<HTMLElement | null>(null);
const editorRight = ref<HTMLElement | null>(null);
const toggleLayout = () => {
......@@ -164,16 +95,9 @@
};
const [registerModal, { openModal }] = useModal();
const [registerSubmitModal, { openModal: openSubmitModal }] = useModal();
const [registerResultModal, { openModal: openResultModal }] = useModal();
const [registerPreviewModal, { openModal: openPreviewModal }] = useModal();
const [registerVersionManagementModal, { openModal: openVersionManagementModal }] = useModal();
const [registerRecordModal, { openModal: openRecordModal }] = useModal();
const [registerForm] = useForm({
labelWidth: 100,
baseColProps: { lg: 6, md: 4 },
schemas: formSchema,
showActionButtonGroup: false,
});
/** 部门树的select*/
function handleSelect() {
openPreviewModal(true, {
......@@ -185,16 +109,7 @@
title: '参数配置',
});
}
function handleExecute() {
openResultModal(true, {
title: '执行结果',
});
}
function handleRecord() {
openRecordModal(true, {
title: '执行记录',
});
}
//提交版本按钮
function handleSubmit() {
openSubmitModal(true, {
......@@ -206,11 +121,15 @@
function handleVersion() {
openVersionManagementModal(true, {
title: '版本管理',
id: route.query.id,
});
}
function handleChange() {
createMessage.success('格式化成功');
}
function handleSuccess() {
createMessage.success('提交成功');
}
//保存按钮
function handleSave() {
createMessage.success('保存成功');
......@@ -236,7 +155,10 @@
function goBack() {
// // 本例的效果时点击返回始终跳转到账号列表页,实际应用时可返回上一页
// go('/scriptDevelopment/shellDevelopment/index');
router.back();
// router.go(-1);
router.push({
path: '/scriptDevelopment/shellDevelopment/index',
});
}
//同步滚动
const handleScroll = () => {
......@@ -259,7 +181,6 @@
}
});
onMounted(async () => {
console.log(111111111111);
path.value = getPathById(route.query.id);
await nextTick(() => {
if (editorLeft.value && editorRight.value) {
......@@ -269,34 +190,7 @@
});
});
</script>
<style scoped>
.editor-container {
display: flex;
}
.editor-left {
flex: 1;
height: 100%;
overflow-y: hidden;
}
.editor-right {
flex: 1;
height: 100%;
overflow-y: hidden;
}
.editor-wrapper {
display: flex;
justify-content: space-between;
}
.editor-left,
.editor-right {
flex: 1;
overflow: hidden;
}
<style lang="less" scoped>
:deep(.CodeMirror) {
height: 700px !important;
}
......
......@@ -31,7 +31,7 @@
icon: 'ant-design:rollback-outlined',
tooltip: '回退版本',
popConfirm: {
title: '是否确认回退版本',
title: '是否确认回退至该版本',
confirm: handleVersionRollback,
},
},
......@@ -52,11 +52,13 @@
import { versionColumns, versionSchema } from './version.data';
import { message } from 'ant-design-vue';
import { router } from '@/router';
const id = ref();
const title = ref();
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
setModalProps({ confirmLoading: false });
console.log(data)
title.value = data.title;
id.value = data.id;
});
const [registerTable] = useTable({
dataSource: versionSchema,
......@@ -71,14 +73,21 @@
});
function handleDetail() {
console.log('查看详情');
console.log(id.value);
router.push({
path: '/scriptDevelopment/shellDevelopment/shellExecute/versionDetail',
query: {
id: id.value,
},
});
}
function modEdit() {
console.log('版本对比');
router.push({
path: '/scriptDevelopment/shellDevelopment/shellExecute/versionCompare',
query: {
id: id.value,
},
});
}
function handleVersionRollback() {
......
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