feat: 创建数据集
This commit is contained in:
parent
68c6d409be
commit
419ed3a3d5
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-card shadow="never" class="card-add">
|
<el-card shadow="never" class="card-add">
|
||||||
<div class="flex-center">
|
<div class="flex-center">
|
||||||
<AppIcon iconName="Plus" class="add-icon" />
|
<AppIcon iconName="Plus" class="add-icon p-8" />
|
||||||
<span>{{ title }}</span>
|
<span>{{ title }}</span>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -30,9 +30,8 @@ defineProps({
|
|||||||
.add-icon {
|
.add-icon {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
border: 1px solid #bbbfc4;
|
border: 1px solid var(--app-border-color-dark);
|
||||||
background: var(--app-layout-bg-color);
|
background: var(--app-layout-bg-color);
|
||||||
padding: 8px;
|
|
||||||
margin-right: 12px;
|
margin-right: 12px;
|
||||||
}
|
}
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="sidebar">
|
<div class="sidebar p-8">
|
||||||
<el-scrollbar wrap-class="scrollbar-wrapper">
|
<el-scrollbar wrap-class="scrollbar-wrapper">
|
||||||
<el-menu :default-active="activeMenu" router>
|
<el-menu :default-active="activeMenu" router>
|
||||||
<sidebar-item
|
<sidebar-item
|
||||||
@ -35,7 +35,6 @@ const activeMenu = computed(() => {
|
|||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.sidebar {
|
.sidebar {
|
||||||
padding: 8px;
|
|
||||||
.el-menu {
|
.el-menu {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
border: none;
|
border: none;
|
||||||
|
|||||||
@ -11,7 +11,7 @@ const datasetRouter = {
|
|||||||
component: () => import('@/views/dataset/index.vue')
|
component: () => import('@/views/dataset/index.vue')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/dataset/create',
|
path: '/dataset/:type', // create 或者 upload
|
||||||
name: 'CreateDataset',
|
name: 'CreateDataset',
|
||||||
meta: { activeMenu: '/dataset' },
|
meta: { activeMenu: '/dataset' },
|
||||||
component: () => import('@/views/dataset/CreateDataset.vue'),
|
component: () => import('@/views/dataset/CreateDataset.vue'),
|
||||||
|
|||||||
@ -61,7 +61,6 @@ ul {
|
|||||||
// 滑块
|
// 滑块
|
||||||
::-webkit-scrollbar-thumb {
|
::-webkit-scrollbar-thumb {
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
background-color: var(--ce-webkit-scrollbar-background-color, rgba(31, 35, 41, 0.3));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 轨道
|
// 轨道
|
||||||
@ -105,48 +104,48 @@ h4 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.mt-8 {
|
.mt-8 {
|
||||||
margin-top: 8px;
|
margin-top: var(--app-base-px);
|
||||||
}
|
}
|
||||||
.mt-12 {
|
.mt-12 {
|
||||||
margin-top: 12px;
|
margin-top: calc(var(--app-base-px) + 4px);
|
||||||
}
|
}
|
||||||
.mt-16 {
|
.mt-16 {
|
||||||
margin-top: 16px;
|
margin-top: calc(var(--app-base-px) * 2);
|
||||||
}
|
}
|
||||||
.mb-8 {
|
.mb-8 {
|
||||||
margin-bottom: 8px;
|
margin-bottom: var(--app-base-px);
|
||||||
}
|
}
|
||||||
.mb-16 {
|
.mb-16 {
|
||||||
margin-bottom: 16px;
|
margin-bottom: calc(var(--app-base-px) * 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ml-4 {
|
.ml-4 {
|
||||||
margin-left: 4px;
|
margin-left: calc(var(--app-base-px) - 4px);
|
||||||
}
|
}
|
||||||
.ml-8 {
|
.ml-8 {
|
||||||
margin-left: 8px;
|
margin-left: var(--app-base-px);
|
||||||
}
|
}
|
||||||
.ml-16 {
|
.ml-16 {
|
||||||
margin-left: 16px;
|
margin-left: calc(var(--app-base-px) * 2);
|
||||||
}
|
}
|
||||||
.mr-8 {
|
.mr-8 {
|
||||||
margin-right: 8px;
|
margin-right: var(--app-base-px);
|
||||||
}
|
}
|
||||||
.mr-12 {
|
.mr-12 {
|
||||||
margin-right: 12px;
|
margin-right: calc(var(--app-base-px) + 4px);
|
||||||
}
|
}
|
||||||
.mr-16 {
|
.mr-16 {
|
||||||
margin-right: 16px;
|
margin-right: calc(var(--app-base-px) * 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
.p-8 {
|
.p-8 {
|
||||||
padding: 8px;
|
padding: var(--app-base-px);
|
||||||
}
|
}
|
||||||
.p-16 {
|
.p-16 {
|
||||||
padding: 16px;
|
padding: calc(var(--app-base-px) * 2);
|
||||||
}
|
}
|
||||||
.p-24 {
|
.p-24 {
|
||||||
padding: 24px;
|
padding: calc(var(--app-base-px) * 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
.flex {
|
.flex {
|
||||||
@ -212,7 +211,7 @@ h4 {
|
|||||||
|
|
||||||
// 内容部分 自适应高度
|
// 内容部分 自适应高度
|
||||||
.main-calc-height {
|
.main-calc-height {
|
||||||
height: calc(100vh - var(--app-header-height) - var(--app-view-padding) * 2 - 40px);
|
height: var(--app-main-height);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 标题前带竖线样式
|
// 标题前带竖线样式
|
||||||
@ -253,6 +252,11 @@ h4 {
|
|||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 图标旋转90度
|
||||||
|
.rotate-90 {
|
||||||
|
transform: rotateZ(90deg);
|
||||||
|
}
|
||||||
|
|
||||||
// 表格第一行插入自定义行
|
// 表格第一行插入自定义行
|
||||||
.table-custom-append {
|
.table-custom-append {
|
||||||
.el-table__append-wrapper {
|
.el-table__append-wrapper {
|
||||||
|
|||||||
@ -39,27 +39,20 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.el-message-box {
|
.el-message-box {
|
||||||
padding-bottom: 24px;
|
--el-messagebox-font-size: 16px;
|
||||||
.app-confirm {
|
padding: 24px;
|
||||||
.app-confirm-title {
|
.el-message-box__header {
|
||||||
color: var(--app-text-color-primary);
|
padding: 0;
|
||||||
}
|
|
||||||
.icon {
|
|
||||||
font-size: 24px;
|
|
||||||
color: var(--el-color-warning);
|
|
||||||
}
|
|
||||||
.app-confirm-decription {
|
|
||||||
margin-left: 40px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-message-box__content {
|
.el-message-box__content {
|
||||||
padding: 24px;
|
padding: 24px 0;
|
||||||
color: var(--app-text-color-primary);
|
color: var(--app-text-color-primary);
|
||||||
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
.el-message-box__btns {
|
.el-message-box__btns {
|
||||||
padding: 5px 24px 0;
|
padding: 0;
|
||||||
button {
|
button {
|
||||||
min-width: 80px;
|
min-width: 80px;
|
||||||
&:nth-child(2) {
|
&:nth-child(2) {
|
||||||
@ -71,6 +64,13 @@
|
|||||||
border: var(--el-color-danger);
|
border: var(--el-color-danger);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.el-message-box__headerbtn {
|
||||||
|
right: -5px;
|
||||||
|
top: -5px;
|
||||||
|
.el-message-box__close {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@media only screen and (min-width: 1400px) {
|
@media only screen and (min-width: 1400px) {
|
||||||
.el-col-lg-6 {
|
.el-col-lg-6 {
|
||||||
@ -89,7 +89,7 @@
|
|||||||
|
|
||||||
.el-card {
|
.el-card {
|
||||||
--el-card-border-radius: 8px;
|
--el-card-border-radius: 8px;
|
||||||
--el-card-padding: 16px;
|
--el-card-padding: calc(var(--app-base-px) * 2);
|
||||||
}
|
}
|
||||||
.el-dropdown {
|
.el-dropdown {
|
||||||
color: var(--app-text-color-primary);
|
color: var(--app-text-color-primary);
|
||||||
@ -144,3 +144,20 @@
|
|||||||
.el-switch {
|
.el-switch {
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.el-slider {
|
||||||
|
--el-slider-button-size: 14px;
|
||||||
|
--el-slider-height: 4px;
|
||||||
|
}
|
||||||
|
.el-slider__button {
|
||||||
|
border: solid 1px var(--app-border-color-dark);
|
||||||
|
&.hover {
|
||||||
|
border: solid 2px var(--el-slider-main-bg-color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.el-slider__runway.show-input {
|
||||||
|
margin-right: calc(var(--app-base-px) + 4px);
|
||||||
|
}
|
||||||
|
.el-slider__input {
|
||||||
|
width: 60px;
|
||||||
|
}
|
||||||
|
|||||||
@ -1,16 +1,22 @@
|
|||||||
:root {
|
:root {
|
||||||
|
--app-base-px: 8px;
|
||||||
--app-layout-bg-color: #f5f6f7;
|
--app-layout-bg-color: #f5f6f7;
|
||||||
--app-text-color-primary: #1f2329;
|
--app-text-color-primary: #1f2329;
|
||||||
--app-text-color-primary-light-1: rgba(31, 35, 41, 0.1);
|
--app-text-color-primary-light-1: rgba(31, 35, 41, 0.1);
|
||||||
--app-text-color-secondary: #646a73;
|
--app-text-color-secondary: #646a73;
|
||||||
--app-view-padding: 24px;
|
--app-view-padding: 24px;
|
||||||
--app-view-bg-color: #ffffff;
|
--app-view-bg-color: #ffffff;
|
||||||
|
--app-border-color-dark: #bbbfc4;
|
||||||
|
|
||||||
/** header 组件 */
|
/** header 组件 */
|
||||||
--app-header-height: 56px;
|
--app-header-height: 56px;
|
||||||
--app-header-padding: 0 20px;
|
--app-header-padding: 0 20px;
|
||||||
--app-header-bg-color: linear-gradient(90deg, #ebf1ff 24.34%, #e5fbf8 56.18%, #f2ebfe 90.18%);
|
--app-header-bg-color: linear-gradient(90deg, #ebf1ff 24.34%, #e5fbf8 56.18%, #f2ebfe 90.18%);
|
||||||
--app-logo-color: linear-gradient(180deg, #3370ff 0%, #7f3bf5 100%);
|
--app-logo-color: linear-gradient(180deg, #3370ff 0%, #7f3bf5 100%);
|
||||||
|
|
||||||
|
// 计算高度
|
||||||
|
--app-main-height: calc(100vh - var(--app-header-height) - var(--app-view-padding) * 2 - 40px);
|
||||||
|
|
||||||
/** sidebar 组件 */
|
/** sidebar 组件 */
|
||||||
--sidebar-bg-color: #ffffff;
|
--sidebar-bg-color: #ffffff;
|
||||||
--sidebar-width: 240px;
|
--sidebar-width: 240px;
|
||||||
@ -24,4 +30,9 @@
|
|||||||
|
|
||||||
/** team */
|
/** team */
|
||||||
--team-manage-left-width: 280px;
|
--team-manage-left-width: 280px;
|
||||||
|
|
||||||
|
/** dataset */
|
||||||
|
--create-dataset-height: calc(
|
||||||
|
100vh - var(--app-header-height) - var(--app-view-padding) * 2 - 70px
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -43,20 +43,30 @@ export const MsgError = (message: string) => {
|
|||||||
* @param 参数 message: {title, decription,type}
|
* @param 参数 message: {title, decription,type}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export const MsgConfirm = ({ title, decription }: any, options?: any) => {
|
export const MsgConfirm = (title: string, decription: string, options?: any) => {
|
||||||
const message: any = h('div', { class: 'app-confirm' }, [
|
|
||||||
h('h4', { class: 'app-confirm-title flex align-center' }, [
|
|
||||||
h(ElIcon, { class: 'icon' }, [h(WarningFilled)]),
|
|
||||||
h('span', { class: 'ml-16' }, title)
|
|
||||||
]),
|
|
||||||
h('div', { class: 'app-confirm-decription mt-8' }, decription)
|
|
||||||
])
|
|
||||||
|
|
||||||
const defaultOptions: Object = {
|
const defaultOptions: Object = {
|
||||||
showCancelButton: true,
|
showCancelButton: true,
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
...options
|
...options
|
||||||
}
|
}
|
||||||
return ElMessageBox({ message, ...defaultOptions })
|
return ElMessageBox.confirm(decription, title, defaultOptions)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// export const MsgConfirm = ({ title, decription }: any, options?: any) => {
|
||||||
|
// const message: any = h('div', { class: 'app-confirm' }, [
|
||||||
|
// h('h4', { class: 'app-confirm-title flex align-center' }, [
|
||||||
|
// h(ElIcon, { class: 'icon' }, [h(WarningFilled)]),
|
||||||
|
// h('span', { class: 'ml-16' }, title)
|
||||||
|
// ]),
|
||||||
|
// h('div', { class: 'app-confirm-decription mt-8' }, decription)
|
||||||
|
// ])
|
||||||
|
|
||||||
|
// const defaultOptions: Object = {
|
||||||
|
// showCancelButton: true,
|
||||||
|
// confirmButtonText: '确定',
|
||||||
|
// cancelButtonText: '取消',
|
||||||
|
// ...options
|
||||||
|
// }
|
||||||
|
// return ElMessageBox({ message, ...defaultOptions })
|
||||||
|
// }
|
||||||
|
|||||||
@ -14,34 +14,37 @@
|
|||||||
</el-step>
|
</el-step>
|
||||||
</el-steps>
|
</el-steps>
|
||||||
</template>
|
</template>
|
||||||
<div class="create-dataset__main flex main-calc-height">
|
<div class="create-dataset__main flex">
|
||||||
<div class="create-dataset__component p-24">
|
<div class="create-dataset__component">
|
||||||
<component :is="steps[active].component" :ref="steps[active]?.ref" />
|
<component :is="steps[active].component" :ref="steps[active]?.ref" />
|
||||||
</div>
|
</div>
|
||||||
<div class="create-dataset__footer text-right p-24 border-t">
|
</div>
|
||||||
<el-button @click="next">取 消</el-button>
|
<div class="create-dataset__footer text-right border-t">
|
||||||
<el-button @click="prev">上一步</el-button>
|
<el-button @click="router.go(-1)">取 消</el-button>
|
||||||
<el-button @click="next" type="primary">下一步</el-button>
|
<el-button @click="prev">上一步</el-button>
|
||||||
<el-button @click="next" type="primary">开始导入</el-button>
|
<el-button @click="next" type="primary">下一步</el-button>
|
||||||
</div>
|
<el-button @click="next" type="primary">开始导入</el-button>
|
||||||
</div>
|
</div>
|
||||||
</LayoutContainer>
|
</LayoutContainer>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
|
import { useRouter } from 'vue-router'
|
||||||
import UploadDocument from './step/UploadDocument.vue'
|
import UploadDocument from './step/UploadDocument.vue'
|
||||||
import SetRules from './step/SetRules.vue'
|
import SetRules from './step/SetRules.vue'
|
||||||
|
|
||||||
|
const router = useRouter()
|
||||||
|
|
||||||
const steps = [
|
const steps = [
|
||||||
{
|
|
||||||
ref: 'SetRulesRef',
|
|
||||||
name: '设置分段规则',
|
|
||||||
component: SetRules
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
ref: 'UploadDocumentRef',
|
ref: 'UploadDocumentRef',
|
||||||
name: '上传文档',
|
name: '上传文档',
|
||||||
component: UploadDocument
|
component: UploadDocument
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ref: 'SetRulesRef',
|
||||||
|
name: '设置分段规则',
|
||||||
|
component: SetRules
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -54,7 +57,9 @@ async function next() {
|
|||||||
if (active.value++ > 2) active.value = 0
|
if (active.value++ > 2) active.value = 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const prev = () => {}
|
const prev = () => {
|
||||||
|
active.value = 0
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.create-dataset {
|
.create-dataset {
|
||||||
@ -70,21 +75,22 @@ const prev = () => {}
|
|||||||
right: -33% !important;
|
right: -33% !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
&__main {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
// height: 100%;
|
|
||||||
&__component {
|
&__component {
|
||||||
flex: 1;
|
|
||||||
flex-basis: auto;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
height: var(--create-dataset-height);
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
&__footer {
|
&__footer {
|
||||||
flex: 0 0 auto;
|
padding: 16px 24px;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
background: #ffffff;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
<div class="main-calc-height">
|
<div class="main-calc-height">
|
||||||
<div class="p-24" v-loading="loading">
|
<div class="p-24" v-loading="loading">
|
||||||
<div class="flex-between">
|
<div class="flex-between">
|
||||||
<el-button type="primary">上传文档</el-button>
|
<el-button type="primary" @click="router.push({ path: '/dataset/upload' })" >上传文档</el-button>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="filterText"
|
v-model="filterText"
|
||||||
placeholder="按 文档名称 搜索"
|
placeholder="按 文档名称 搜索"
|
||||||
@ -11,7 +11,7 @@
|
|||||||
class="w-240"
|
class="w-240"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<el-table :data="documentData" class="table-custom-append mt-16">
|
<el-table :data="documentData" class="table-custom-append mt-16 cursor">
|
||||||
<template #append>
|
<template #append>
|
||||||
<el-button type="primary" link>
|
<el-button type="primary" link>
|
||||||
<el-icon><Plus /></el-icon>
|
<el-icon><Plus /></el-icon>
|
||||||
|
|||||||
80
ui/src/views/dataset/component/EditSegmentDialog.vue
Normal file
80
ui/src/views/dataset/component/EditSegmentDialog.vue
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog title="编辑分段" v-model="dialogVisible" width="600">
|
||||||
|
<el-form
|
||||||
|
ref="segmentFormRef"
|
||||||
|
:model="segmentForm"
|
||||||
|
label-position="top"
|
||||||
|
:rules="rules"
|
||||||
|
@submit.prevent
|
||||||
|
>
|
||||||
|
<el-form-item label="分段标题">
|
||||||
|
<el-input v-model="segmentForm.title" placeholder="请输入分段标题"> </el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="分段内容" prop="content">
|
||||||
|
<el-input
|
||||||
|
v-model="segmentForm.content"
|
||||||
|
placeholder="请输入分段内容"
|
||||||
|
maxlength="500"
|
||||||
|
show-word-limit
|
||||||
|
:autosize="{ minRows: 3, maxRow: 8 }"
|
||||||
|
type="textarea"
|
||||||
|
>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<span class="dialog-footer">
|
||||||
|
<el-button @click.prevent="dialogVisible = false"> 取消 </el-button>
|
||||||
|
<el-button type="primary" @click="submitHandle(segmentFormRef)"> 保存 </el-button>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ref, watch } from 'vue'
|
||||||
|
import type { FormInstance, FormRules } from 'element-plus'
|
||||||
|
import { cloneDeep } from 'lodash';
|
||||||
|
|
||||||
|
const emit = defineEmits(['updateContent'])
|
||||||
|
|
||||||
|
const dialogVisible = ref<boolean>(false)
|
||||||
|
|
||||||
|
const segmentForm = ref({
|
||||||
|
title: '',
|
||||||
|
content: ''
|
||||||
|
})
|
||||||
|
|
||||||
|
const segmentFormRef = ref<FormInstance>()
|
||||||
|
|
||||||
|
const rules = ref<FormRules>({
|
||||||
|
content: [{ required: true, message: '请输入分段内容', trigger: 'blur' }]
|
||||||
|
})
|
||||||
|
|
||||||
|
watch(dialogVisible, (bool) => {
|
||||||
|
if (!bool) {
|
||||||
|
segmentForm.value = {
|
||||||
|
title: '',
|
||||||
|
content: ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const open = (data: any) => {
|
||||||
|
segmentForm.value = cloneDeep(data)
|
||||||
|
dialogVisible.value = true
|
||||||
|
}
|
||||||
|
const submitHandle = async (formEl: FormInstance | undefined) => {
|
||||||
|
if (!formEl) return
|
||||||
|
await formEl.validate((valid, fields) => {
|
||||||
|
if (valid) {
|
||||||
|
emit('updateContent', segmentForm.value)
|
||||||
|
dialogVisible.value = false
|
||||||
|
} else {
|
||||||
|
console.log('error submit!')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
defineExpose({ open })
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scope></style>
|
||||||
@ -1,28 +1,30 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-tabs v-model="activeName" class="segment-tabs" @tab-click="handleClick">
|
<el-tabs v-model="activeName" class="segment-tabs" @tab-click="handleClick">
|
||||||
<template v-for="(item, index) in data" :key="index">
|
<template v-for="(item, index) in newData" :key="index">
|
||||||
<el-tab-pane :label="item.name" :name="index">
|
<el-tab-pane :label="item.name" :name="index">
|
||||||
<template #label>
|
<template #label>
|
||||||
<div class="flex">
|
<div class="flex-center">
|
||||||
<img :src="getImgUrl(item && item?.name)" alt="" height="22" />
|
<img :src="getImgUrl(item && item?.name)" alt="" height="16" />
|
||||||
<span class="ml-4">{{ item?.name }}</span>
|
<span class="ml-4">{{ item?.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<el-scrollbar>
|
<el-scrollbar>
|
||||||
<div class="segment-list">
|
<div class="segment-list">
|
||||||
<el-card
|
<el-card
|
||||||
v-for="(child, i) in item.content"
|
v-for="(child, cIndex) in item.content"
|
||||||
:key="i"
|
:key="cIndex"
|
||||||
shadow="never"
|
shadow="never"
|
||||||
class="card-never mb-16"
|
class="card-never mb-16"
|
||||||
>
|
>
|
||||||
<div class="flex-between">
|
<div class="flex-between">
|
||||||
<span>{{ child.title }}</span>
|
<span>{{ child.title }}</span>
|
||||||
<div>
|
<div>
|
||||||
<el-button link>
|
<!-- 编辑分段按钮 -->
|
||||||
|
<el-button link @click="editHandle(child, index, cIndex)">
|
||||||
<el-icon><Edit /></el-icon>
|
<el-icon><Edit /></el-icon>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button link>
|
<!-- 删除分段按钮 -->
|
||||||
|
<el-button link @click="deleteHandle(child, index, cIndex)">
|
||||||
<el-icon><Delete /></el-icon>
|
<el-icon><Delete /></el-icon>
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
@ -39,23 +41,59 @@
|
|||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</template>
|
</template>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
|
<EditSegmentDialog ref="EditSegmentDialogRef" @updateContent="updateContent" />
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, reactive, onMounted } from 'vue'
|
import { ref, reactive, onMounted } from 'vue'
|
||||||
import type { TabsPaneContext } from 'element-plus'
|
import type { TabsPaneContext } from 'element-plus'
|
||||||
|
import EditSegmentDialog from './EditSegmentDialog.vue'
|
||||||
import { filesize, getImgUrl } from '@/utils/utils'
|
import { filesize, getImgUrl } from '@/utils/utils'
|
||||||
defineProps({
|
import { MsgConfirm } from '@/utils/message'
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
data: {
|
data: {
|
||||||
type: Array<any>,
|
type: Array<any>,
|
||||||
default: () => []
|
default: () => []
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const emit = defineEmits(['update:data'])
|
||||||
|
|
||||||
|
const EditSegmentDialogRef = ref()
|
||||||
|
|
||||||
const activeName = ref(0)
|
const activeName = ref(0)
|
||||||
|
const currentPIndex = ref(null) as any
|
||||||
|
const currentCIndex = ref(null) as any
|
||||||
|
|
||||||
|
const newData = ref(props.data)
|
||||||
|
|
||||||
|
function editHandle(item: any, index: number, cIndex: number) {
|
||||||
|
currentPIndex.value = index
|
||||||
|
currentCIndex.value = cIndex
|
||||||
|
EditSegmentDialogRef.value.open(item)
|
||||||
|
}
|
||||||
|
|
||||||
|
function deleteHandle(item: any, index: number, cIndex: number) {
|
||||||
|
MsgConfirm(`是否删除分段:${item.title}?`, `删除后将不会存入数据集,对本地文档无影响。`, {
|
||||||
|
confirmButtonText: '删除',
|
||||||
|
confirmButtonClass: 'danger'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
newData.value[index].content.splice(cIndex, 1)
|
||||||
|
emit('update:data', newData.value)
|
||||||
|
})
|
||||||
|
.catch(() => {})
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateContent(data: any) {
|
||||||
|
newData.value[currentPIndex.value].content[currentCIndex.value] = data
|
||||||
|
emit('update:data', newData.value)
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(() => {})
|
onMounted(() => {})
|
||||||
|
|
||||||
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
||||||
console.log(tab, event)
|
// console.log(tab, event)
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@ -86,6 +124,6 @@ const handleClick = (tab: TabsPaneContext, event: Event) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.segment-list {
|
.segment-list {
|
||||||
height: calc(100vh - 340px);
|
height: calc(var(--create-dataset-height) - 125px);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -76,12 +76,10 @@ function loadDataset() {}
|
|||||||
|
|
||||||
function deleteDateset(row: any) {
|
function deleteDateset(row: any) {
|
||||||
MsgConfirm(
|
MsgConfirm(
|
||||||
|
`是否删除数据集:${row.name}?`,
|
||||||
|
`此数据集关联 ${row.char_length} 个应用,删除后无法恢复,请谨慎操作。`,
|
||||||
{
|
{
|
||||||
title: `是否删除数据集:${row.name}?`,
|
confirmButtonText: '删除',
|
||||||
decription: `此数据集关联 ${row.char_length} 个应用,删除后无法恢复,请谨慎操作。`,
|
|
||||||
confirmButtonText: '删除'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
confirmButtonClass: 'danger'
|
confirmButtonClass: 'danger'
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@ -1,12 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="set-rules">
|
<div class="set-rules">
|
||||||
<el-row>
|
<el-row class="set-rules-height">
|
||||||
<el-col :span="12">
|
<el-col :span="12" class="p-24">
|
||||||
<h4 class="title-decoration-1 mb-8">设置分段规则</h4>
|
<h4 class="title-decoration-1 mb-8">设置分段规则</h4>
|
||||||
|
<div>
|
||||||
<div class="mr-16">
|
|
||||||
<el-scrollbar>
|
<el-scrollbar>
|
||||||
<div class="right-height">
|
<div class="left-height">
|
||||||
<el-radio-group v-model="radio" class="set-rules__radio">
|
<el-radio-group v-model="radio" class="set-rules__radio">
|
||||||
<el-radio label="1" size="large" border class="mb-16">
|
<el-radio label="1" size="large" border class="mb-16">
|
||||||
<p>智能分段(推荐)</p>
|
<p>智能分段(推荐)</p>
|
||||||
@ -18,29 +17,51 @@
|
|||||||
>用户可根据文档规范自行设置分段标识符、分段长度以及清洗规则
|
>用户可根据文档规范自行设置分段标识符、分段长度以及清洗规则
|
||||||
</el-text>
|
</el-text>
|
||||||
<el-card shadow="never" class="card-never mt-16" v-if="radio === '2'">
|
<el-card shadow="never" class="card-never mt-16" v-if="radio === '2'">
|
||||||
<el-form label-position="top" label-width="100px" :model="form">
|
<div class="set-rules__form">
|
||||||
<el-form-item label="分段标识">
|
<div class="form-item mb-16">
|
||||||
<el-select
|
<div class="title flex align-center mb-8">
|
||||||
v-model="form.name"
|
<span style="margin-right: 4px">分段标识</span>
|
||||||
multiple
|
<el-popover
|
||||||
placeholder="请选择"
|
placement="right"
|
||||||
style="width: 240px"
|
:width="400"
|
||||||
>
|
trigger="hover"
|
||||||
|
content="按照所选符号先后顺序做递归分割,分割结果超出分段长度将截取至分段长度。"
|
||||||
|
>
|
||||||
|
<template #reference>
|
||||||
|
<el-icon style="font-size: 16px"><Warning /></el-icon>
|
||||||
|
</template>
|
||||||
|
</el-popover>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<el-select v-model="form.patterns" multiple placeholder="请选择">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in options"
|
v-for="item in patternsList"
|
||||||
:key="item"
|
:key="item"
|
||||||
:label="item"
|
:label="item"
|
||||||
:value="item"
|
:value="item"
|
||||||
/>
|
multiple
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</div>
|
||||||
<el-form-item label="分段长度">
|
<div class="form-item mb-16">
|
||||||
<el-slider v-model="form.name" show-input />
|
<div class="title mb-8">分段长度</div>
|
||||||
</el-form-item>
|
<el-slider
|
||||||
<el-form-item label="自动清洗">
|
v-model="form.limit"
|
||||||
<el-switch v-model="form.name" />
|
show-input
|
||||||
</el-form-item>
|
:show-input-controls="false"
|
||||||
</el-form>
|
:min="10"
|
||||||
|
:max="1024"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="form-item mb-16">
|
||||||
|
<div class="title mb-8">自动清洗</div>
|
||||||
|
<el-switch v-model="form.with_filter" />
|
||||||
|
<div style="margin-top: 4px">
|
||||||
|
<el-text type="info">去掉重复多余符号空格、空行、制表符</el-text>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-radio>
|
</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
@ -52,10 +73,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="12" class="border-l">
|
<el-col :span="12" class="p-24 border-l">
|
||||||
<div class="ml-16">
|
<div>
|
||||||
<h4 class="title-decoration-1 mb-8">分段预览</h4>
|
<h4 class="title-decoration-1 mb-8">分段预览</h4>
|
||||||
<SegmentPreview :data="segmentList" />
|
<SegmentPreview v-model:data="segmentList" />
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -68,247 +89,24 @@ import DatasetApi from '@/api/dataset'
|
|||||||
import useStore from '@/stores'
|
import useStore from '@/stores'
|
||||||
const { dataset } = useStore()
|
const { dataset } = useStore()
|
||||||
const documentsFiles = computed(() => dataset.documentsFiles)
|
const documentsFiles = computed(() => dataset.documentsFiles)
|
||||||
|
const patternType = ['空行', '#', '##', '###', '####', '-', '空格', '回车', '句号', '逗号', '分号']
|
||||||
|
|
||||||
|
const marks = reactive({
|
||||||
|
10: '10',
|
||||||
|
1024: '1024'
|
||||||
|
})
|
||||||
|
|
||||||
const radio = ref('1')
|
const radio = ref('1')
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
const segmentList = ref<any[]>([
|
const segmentList = ref<any[]>([])
|
||||||
{
|
|
||||||
name: '1Panel.txt',
|
|
||||||
content: [
|
|
||||||
{
|
|
||||||
title: '\n\n1Panel \u7684\u529f\u80fd\u548c\u4f18\u52bf\u5305\u62ec\uff1a',
|
|
||||||
content:
|
|
||||||
'\u5feb\u901f\u5efa\u7ad9\uff1a\u6df1\u5ea6\u96c6\u6210 Wordpress \u548c Halo\uff0c\u57df\u540d\u7ed1\u5b9a\u3001SSL \u8bc1\u4e66\u914d\u7f6e\u7b49\u4e00\u952e\u641e\u5b9a\uff1b\u9ad8\u6548\u7ba1\u7406\uff1a\u901a\u8fc7 Web \u7aef\u8f7b\u677e\u7ba1\u7406 Linux \u670d\u52a1\u5668\uff0c\u5305\u62ec\u4e3b\u673a\u76d1\u63a7\u3001\u6587\u4ef6\u7ba1\u7406\u3001\u6570\u636e\u5e93\u7ba1\u7406\u3001\u5bb9\u5668\u7ba1\u7406\u7b49\uff1b\u5b89\u5168\u53ef\u9760\uff1a\u57fa\u4e8e\u5bb9\u5668\u6765\u7ba1\u7406\u548c\u90e8\u7f72\u5e94\u7528\uff0c\u6700\u5c0f\u6f0f\u6d1e\u66b4\u9732\u9762\uff0c\u63d0\u4f9b\u9632\u706b\u5899\u548c\u65e5\u5fd7\u5ba1\u8ba1\u7b49\u529f\u80fd\uff1b\u4e00\u952e\u5907\u4efd\uff1a\u652f\u6301\u4e00\u952e\u5907\u4efd\u548c\u6062\u590d\uff0c\u5907\u4efd\u6570\u636e\u5230\u5404\u7c7b\u4e91\u7aef\u5b58\u50a8\uff0c\u6c38\u4e0d\u4e22\u5931\u3002'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '\n\n1Panel \u5728\u7ebf\u5b89\u88c5\uff1a',
|
|
||||||
content:
|
|
||||||
'1.\u73af\u5883\u8981\u6c42\u5b89\u88c5\u524d\u8bf7\u786e\u4fdd\u60a8\u7684\u7cfb\u7edf\u7b26\u5408\u5b89\u88c5\u6761\u4ef6\uff1a\u64cd\u4f5c\u7cfb\u7edf\uff1a\u652f\u6301\u4e3b\u6d41 Linux \u53d1\u884c\u7248\u672c\uff08\u57fa\u4e8e Debian / RedHat\uff0c\u5305\u62ec\u56fd\u4ea7\u64cd\u4f5c\u7cfb\u7edf\uff09\uff1b\u670d\u52a1\u5668\u67b6\u6784\uff1ax86_64\u3001aarch64\u3001armv7l\u3001ppc64le\u3001s390x\uff1b\u5185\u5b58\u8981\u6c42\uff1a\u5efa\u8bae\u53ef\u7528\u5185\u5b58\u5728 1GB \u4ee5\u4e0a\uff1b\u6d4f\u89c8\u5668\u8981\u6c42\uff1a\u8bf7\u4f7f\u7528 Chrome\u3001FireFox\u3001IE10+\u3001Edge\u7b49\u73b0\u4ee3\u6d4f\u89c8\u5668\uff1b\u53ef\u8bbf\u95ee\u4e92\u8054\u7f51\u3002'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '\n\ncloudExplorer \u5728\u7ebf\u5b89\u88c5\uff1a',
|
|
||||||
content:
|
|
||||||
'1.\u73af\u5883\u8981\u6c42\u6309\u7167\u90e8\u7f72\u670d\u52a1\u5668\u8981\u6c42\u51c6\u5907\u597d\u90e8\u7f72\u73af\u5883\u540e\uff0c\u53ef\u901a\u8fc7 CloudExplorer Lite \u5feb\u901f\u5b89\u88c5\u811a\u672c\u4e00\u952e\u5feb\u901f\u90e8\u7f72\u3002**\u6ce8\u610f\uff1a** \u4e00\u952e\u5b89\u88c5\u91c7\u7528\u9ed8\u8ba4\u53c2\u6570\uff0c\u66f4\u591a\u6709\u5173\u79bb\u7ebf\u90e8\u7f72\u65b9\u5f0f\u53ef\u67e5\u770b\u672c\u6587\u6863\u7684\u3010\u79bb\u7ebf\u5b89\u88c5\u3011\u30022.\u5b89\u88c5\u90e8\u7f72GitHub release \u94fe\u63a5: https://github.com/1Panel-dev/1Panel/releasesRedHat / CentOS\uff0c curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.shUbuntu\uff0ccurl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.shDebian\uff0ccurl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh\u5b89\u88c5\u6210\u529f\u540e\uff0c\u63a7\u5236\u53f0\u4f1a\u6253\u5370\u9762\u677f\u8bbf\u95ee\u4fe1\u606f\uff0c\u53ef\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee 1Panel\uff1ahttp://\u76ee\u6807\u670d\u52a1\u5668 IP \u5730\u5740:\u76ee\u6807\u7aef\u53e3/\u5b89\u5168\u5165\u53e3\u3002\u5982\u679c\u4f7f\u7528\u7684\u662f\u4e91\u670d\u52a1\u5668\uff0c\u8bf7\u81f3\u5b89\u5168\u7ec4\u5f00\u653e\u76ee\u6807\u7aef\u53e3\u3002ssh \u767b\u5f55 1Panel \u670d\u52a1\u5668\u540e\uff0c\u6267\u884c 1pctl user-info \u547d\u4ee4\u53ef\u83b7\u53d6\u5b89\u5168\u5165\u53e3\uff08entrance\uff09\u3002\u5b89\u88c5\u6210\u529f\u540e\uff0c\u53ef\u4f7f\u7528 1pctl \u547d\u4ee4\u884c\u5de5\u5177\u6765\u7ef4\u62a4 1Panel\u3002'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '\n\n\u4e91\u5e02\u573a\u955c\u50cf\u5b89\u88c5\uff1a',
|
|
||||||
content:
|
|
||||||
'1.\u767b\u5f55\u963f\u91cc\u4e91\u5b98\u65b9\u7f51\u7ad9\u5728\u60a8\u7684\u6d4f\u89c8\u5668\u4e2d\u6253\u5f00\u963f\u91cc\u4e91\u7684\u5b98\u65b9\u7f51\u7ad9\uff08https://www.aliyun.com/\uff09\u5e76\u767b\u5f55\u60a8\u7684\u8d26\u53f7\u30022.\u9009\u62e9 ECS \u5b9e\u4f8b\u5728\u963f\u91cc\u4e91\u7ba1\u7406\u63a7\u5236\u53f0\u4e2d\uff0c\u70b9\u51fb\u5de6\u4fa7\u83dc\u5355\u680f\u7684 \u4e91\u670d\u52a1\u5668 ECS \u9009\u9879\u30023.\u521b\u5efa ECS \u5b9e\u4f8b\u70b9\u51fb\u9875\u9762\u4e0a\u65b9\u7684 \u521b\u5efa\u5b9e\u4f8b \u6309\u94ae\uff0c\u5e76\u6309\u7167\u4ee5\u4e0b\u6b65\u9aa4\u8fdb\u884c\u914d\u7f6e\uff1a\u5730\u57df\u53ca\u53ef\u7528\u533a\uff1a\u9009\u62e9\u9002\u5408\u60a8\u7684\u5730\u7406\u4f4d\u7f6e\u548c\u53ef\u7528\u533a\u57df\u3002\u5b9e\u4f8b\u914d\u7f6e\uff1a\u9009\u62e9\u9002\u5408\u60a8\u9700\u6c42\u7684\u5b9e\u4f8b\u89c4\u683c\u548c\u7f51\u7edc\u7c7b\u578b\u3002\u955c\u50cf\uff1a\u70b9\u51fb \u4e91\u5e02\u573a\u955c\u50cf \u9009\u9879\u5361\uff0c\u7136\u540e\u5728\u641c\u7d22\u6846\u4e2d\u8f93\u5165 1Panel \u5e76\u9009\u62e9\u955c\u50cf\u3002\u5b58\u50a8\uff1a\u914d\u7f6e\u7cfb\u7edf\u76d8\u548c\u6570\u636e\u76d8\u7684\u5927\u5c0f\u548c\u7c7b\u578b\u3002\u7f51\u7edc\u548c\u5b89\u5168\u7ec4\uff1a\u6839\u636e\u60a8\u7684\u9700\u6c42\u914d\u7f6e\u7f51\u7edc\u548c\u5b89\u5168\u7ec4\u3002\u5176\u4ed6\u9009\u9879\uff1a\u6839\u636e\u60a8\u7684\u9700\u6c42\u914d\u7f6e\u5176\u4ed6\u9009\u9879\u3002\u786e\u8ba4\u8ba2\u5355\uff1a\u786e\u8ba4\u60a8\u7684\u914d\u7f6e\u4fe1\u606f\u5e76\u70b9\u51fb"\u7acb\u5373\u8d2d\u4e70"\u6309\u94ae\u30024.\u7b49\u5f85\u5b9e\u4f8b\u521b\u5efa\u5b8c\u6210\u7b49\u5f85\u7247\u523b\uff0c\u76f4\u5230 ECS \u5b9e\u4f8b\u521b\u5efa\u5b8c\u6210\u3002\u60a8\u53ef\u4ee5\u5728 ECS \u5b9e\u4f8b\u5217\u8868\u4e2d\u770b\u5230\u65b0\u521b\u5efa\u7684\u5b9e\u4f8b\u30025.\u767b\u5f55 ECS \u5b9e\u4f8b\u70b9\u51fb ECS \u5b9e\u4f8b\u5217\u8868\u4e2d\u5bf9\u5e94\u5b9e\u4f8b\u7684 \u8fdc\u7a0b\u8fde\u63a5 \u6309\u94ae\uff0c\u9009\u62e9 \u7acb\u5373\u767b\u5f55\uff0c\u7136\u540e\u8f93\u5165\u767b\u5f55\u5bc6\u7801\u3002'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '\n\n6.\u4f7f\u7528\u6b65\u9aa4',
|
|
||||||
content:
|
|
||||||
'6.1 \u5b89\u5168\u7ec4\u653e\u884c 8090 \u7aef\u53e3\uff0c\u7aef\u53e3\u653e\u884c\u6559\u7a0b\uff1ahttps://help.aliyun.com/document_detail/25471.html6.2 \u83b7\u53d6\u9762\u677f\u7528\u6237\u4fe1\u606f:\u8f93\u5165\u83b7\u53d6\u9ed8\u8ba4\u5bc6\u7801\u547d\u4ee4\uff1a1pctl user-info\u8f93\u5165\u5b8c\uff0c\u56de\u8f66\u5373\u53ef\u83b7\u53d6\u7528\u6237\u4fe1\u606f6.3 \u8bbf\u95ee\u9762\u677f\u901a\u8fc7 http://\u670d\u52a1\u5668\u5916\u7f51IP:8090/\u5b89\u5168\u5165\u53e3 \u8bbf\u95ee\u9762\u677f\u7ba1\u7406\u9875\u9762\uff0c\u5982\uff1ahttp://172.16.10.1:8090/mm4h9iucdn\u8f93\u5165\u5e10\u53f7\u5bc6\u78016.4 \u9762\u677f\u8bbe\u7f6e\u4fee\u6539\u9762\u677f\u9ed8\u8ba4\u5e10\u53f7\u5bc6\u7801\u5f00\u59cb\u4f7f\u7528\u9762\u677f'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '\n\n\u5728\u7ebf\u5347\u7ea7\uff1a',
|
|
||||||
content:
|
|
||||||
'\u767b\u5f55 1Panel Web \u63a7\u5236\u53f0\uff0c\u5728\u9875\u9762\u53f3\u4e0b\u89d2\u70b9\u51fb \u3010\u68c0\u67e5\u66f4\u65b0\u3011 \u8fdb\u884c\u5728\u7ebf\u5347\u7ea7\u3002'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '\n\n\u547d\u4ee4\u884c\u5de5\u5177\uff1a',
|
|
||||||
content: '\u8bf7\u67e5\u770bhttps://1panel.cn/docs/installation/cli/'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '',
|
|
||||||
content:
|
|
||||||
'1Panel \u662f\u4e00\u4e2a\u73b0\u4ee3\u5316\u3001\u5f00\u6e90\u7684 Linux \u670d\u52a1\u5668\u8fd0\u7ef4\u7ba1\u7406\u9762\u677f\u3002'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'quick_start.md',
|
|
||||||
content: [
|
|
||||||
{
|
|
||||||
title: '# \u5feb\u901f\u5165\u95e8 ## 1 \u4e00\u952e\u90e8\u7f72',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u6309\u7167\u90e8\u7f72\u670d\u52a1\u5668\u8981\u6c42\u51c6\u5907\u597d\u90e8\u7f72\u73af\u5883\u540e\uff0c\u53ef\u901a\u8fc7 CloudExplorer Lite \u5feb\u901f\u5b89\u88c5\u811a\u672c\u4e00\u952e\u5feb\u901f\u90e8\u7f72\u3002 **\u6ce8\u610f\uff1a** \u4e00\u952e\u5b89\u88c5\u91c7\u7528\u9ed8\u8ba4\u53c2\u6570\uff0c\u66f4\u591a\u6709\u5173\u79bb\u7ebf\u90e8\u7f72\u65b9\u5f0f\u53ef\u67e5\u770b\u672c\u6587\u6863\u7684\u3010\u79bb\u7ebf\u5b89\u88c5\u3011\u3002 **\u90e8\u7f72\u670d\u52a1\u5668\u8981\u6c42:** ``` - \u64cd\u4f5c\u7cfb\u7edf\uff1aLinux \u64cd\u4f5c\u7cfb\u7edf\uff08\u63a8\u8350 CentOS 7 \u53ca\u4ee5\u4e0a\u7248\u672c\uff0cUbuntu 18 \u53ca\u4ee5\u4e0a\u7248\u672c\uff09 - CPU/\u5185\u5b58\uff1a8 \u6838 16 GB - \u78c1\u76d8\u7a7a\u95f4\uff1a200 GB - \u7f51\u7edc\u8981\u6c42\uff1a\u53ef\u8bbf\u95ee\u4e92\u8054\u7f51 ``` \u6267\u884c\u4ee5\u4e0b\u811a\u672c\u8fdb\u884c\u4e00\u952e\u5b89\u88c5\uff1a ``` /bin/bash -c "$(curl -fsSL https://resource.fit2cloud.com/cloudexplorer-lite/installer/releases/latest/quick_start.sh)" ``` CloudExplorer Lite \u662f\u4e00\u6b3e B/S \u67b6\u6784\u7684\u4ea7\u54c1\uff0c\u5373\u6d4f\u89c8\u5668/\u670d\u52a1\u5668\u7ed3\u6784\uff0c\u5728\u670d\u52a1\u5668\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u5ba2\u6237\u7aef\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u4ee5\u4e0b\u5730\u5740\uff0c\u5373\u53ef\u5f00\u59cb\u4f7f\u7528\u3002 ``` http://\u76ee\u6807\u670d\u52a1\u5668IP\u5730\u5740\uff1a\u670d\u52a1\u8fd0\u884c\u7aef\u53e3 \u9ed8\u8ba4\u7528\u6237\u540d\uff1aadmin\uff0c\u9ed8\u8ba4\u5bc6\u7801\uff1acloudexplorer ```'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 2 \u529f\u80fd\u754c\u9762\u4ecb\u7ecd - \u4e3b\u9875',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u767b\u5f55 CloudExplorer Lite \u7cfb\u7edf\u540e\u9ed8\u8ba4\u8fdb\u5165\u4e3b\u9875\uff0c\u5206\u4e3a\u9876\u90e8\u5bfc\u822a\u3001\u5de6\u4fa7\u5bfc\u822a\u680f\u548c\u5de5\u4f5c\u533a\u57df\u4e09\u90e8\u5206\u3002 **\u9876\u90e8\u5bfc\u822a\u680f\uff1a** \u9876\u90e8\u663e\u793a\u7cfb\u7edflogo\u3001\u7528\u6237\u767b\u5f55\u8eab\u4efd\uff08\u7ec4\u7ec7\u548c\u89d2\u8272\uff09\u3001\u5e2e\u52a9\u6587\u6863\u3001\u4e2a\u4eba\u4fe1\u606f\u3002 **\u4ea7\u54c1\u670d\u52a1\uff1a** \u56fa\u5b9a\u6a21\u5757\u83dc\u5355\uff0c\u5305\u542b\u7ba1\u7406\u4e2d\u5fc3\u3001\u4e91\u4e3b\u673a\u670d\u52a1\u3001\u4e91\u8d26\u5355\u3001\u8fd0\u8425\u5206\u6790\u3001\u5b89\u5168\u5408\u89c4\u4e94\u4e2a\u670d\u52a1\u6a21\u5757\uff0c\u70b9\u51fb\u56fe\u6807\u4fbf\u53ef\u5207\u6362\u5230\u76f8\u5e94\u7684\u6a21\u5757\u4e2d\u3002 **\u5de5\u4f5c\u533a\u57df\uff1a** \u53f3\u4fa7\u4e3a\u5de5\u4f5c\u533a\u57df\uff0c\u663e\u793a\u4e3b\u9875\u7684\u5185\u5bb9\u5305\u542b\u4e2a\u4eba\u4fe1\u606f\u3001\u5feb\u6377\u670d\u52a1\u3001\u6211\u7684\u8d44\u6e90\u3001\u4e0d\u5408\u89c4\u89c4\u5219/\u8d44\u6e90\u7edf\u8ba1\u3001\u8d39\u7528\u6982\u89c8\u3001\u8d39\u7528\u8d8b\u52bf\u3001\u4e91\u4e3b\u673a\u4f18\u5316\u5efa\u8bae\u3001\u4e91\u4e3b\u673a\u8d8b\u52bf\u3001\u4e91\u4e3b\u673a\u72b6\u6001\u5206\u5e03\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 2 \u529f\u80fd\u754c\u9762\u4ecb\u7ecd - \u7ba1\u7406\u4e2d\u5fc3 ',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u4e91\u7ba1\u5e73\u53f0\u7684\u6838\u5fc3\u80fd\u529b\u4e4b\u4e00\uff0cCloudExplorer Lite \u4e3a\u7528\u6237\u63d0\u4f9b\u591a\u79df\u6237\u3001\u591a\u89d2\u8272\u7684\u7ba1\u7406\u6a21\u578b\uff1b \u91c7\u7528\u6a21\u5757\u5316\u8bbe\u8ba1\uff0c\u5373\u63d2\u5373\u7528\uff0c\u63d0\u4f9b\u6a21\u5757\u7ba1\u7406\u3002\u4f01\u4e1a\u53ef\u4ee5\u8f7b\u677e\u90e8\u7f72\u4e0d\u540c\u6a21\u5757\uff0c\u4ece\u800c\u6269\u5927\u5bf9\u4e91\u57fa\u7840\u8bbe\u65bd\u7684\u7ba1\u7406\u8303\u56f4\uff1b \u5177\u4f53\u53ef\u53c2\u8003\u672c\u6587\u6863\u7684\u529f\u80fd\u624b\u518c\u3010\u7ba1\u7406\u4e2d\u5fc3\u3011\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 2 \u529f\u80fd\u754c\u9762\u4ecb\u7ecd - \u4e91\u4e3b\u673a\u7ba1\u7406 ',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" CloudExplorer Lite \u63d0\u4f9b\u7edf\u4e00\u7684\u4e91\u4e3b\u673a\u751f\u547d\u5468\u671f\u7ba1\u7406\u64cd\u4f5c\u548c\u76d1\u63a7\u754c\u9762\uff0c\u57fa\u4e8e\u65e2\u6709\u7684\u7528\u6237\u7ba1\u7406\u4f53\u7cfb\uff0c\u7528\u6237\u53ef\u521b\u5efa\u3001\u53ef\u64cd\u4f5c\u7684\u8d44\u6e90\u90fd\u5177\u6709\u79df\u6237\u9694\u79bb\u5c5e\u6027\u3002\u5177\u4f53\u53ef\u53c2\u8003\u672c\u6587\u6863\u7684\u529f\u80fd\u624b\u518c\u3010\u4e91\u4e3b\u673a\u7ba1\u7406\u3011\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 2 \u529f\u80fd\u754c\u9762\u4ecb\u7ecd - \u4e91\u8d26\u5355 ',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" CloudExplorer Lite \u63d0\u4f9b\u7edf\u4e00\u7684\u8d39\u7528\u7ba1\u7406\u3001\u8d39\u7528\u5206\u644a\u3001\u81ea\u5b9a\u4e49\u591a\u7ef4\u5ea6\u8d26\u5355\u529f\u80fd\uff0c\u53ef\u4f5c\u4e3a\u4f01\u4e1a\u7684\u4e91\u8d44\u6e90\u6210\u672c\u5206\u6790\u4e2d\u5fc3\uff0c\u80fd\u591f\u5e2e\u52a9\u4f01\u4e1a\u7528\u6237\u6709\u6548\u964d\u4f4e\u4e91\u4e0a\u8d44\u6e90\u7684\u6210\u672c\u7ba1\u7406\u96be\u5ea6\u3002\u5177\u4f53\u53ef\u53c2\u8003\u672c\u6587\u6863\u7684\u529f\u80fd\u624b\u518c\u3010\u4e91\u8d26\u5355\u3011\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 2 \u529f\u80fd\u754c\u9762\u4ecb\u7ecd - \u8fd0\u8425\u5206\u6790',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" CloudExplorer Lite \u80fd\u591f\u5bf9\u4f01\u4e1a\u73b0\u6709\u7684\u4e91\u8d44\u6e90\u4ece\u5206\u5e03\u3001\u5bb9\u91cf\u3001\u4f7f\u7528\u60c5\u51b5\u7b49\u591a\u4e2a\u7ef4\u5ea6\u8fdb\u884c\u5206\u6790\uff0c\u5e76\u63d0\u4f9b\u8d44\u6e90\u4f18\u5316\u5efa\u8bae\u3002\u5177\u4f53\u53ef\u53c2\u8003\u672c\u6587\u6863\u7684\u529f\u80fd\u624b\u518c\u3010\u8fd0\u8425\u5206\u6790\u3011\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 2 \u529f\u80fd\u754c\u9762\u4ecb\u7ecd - \u5b89\u5168\u5408\u89c4',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" CloudExplorer Lite \u652f\u6301\u4e00\u952e\u626b\u63cf\u591a\u4e2a\u4e91\u5e73\u53f0\u7684\u591a\u79cd\u4e91\u8d44\u6e90\uff0c\u53ef\u7075\u6d3b\u5b9a\u4e49\u89c4\u5219\u3002\u5177\u4f53\u53ef\u53c2\u8003\u672c\u6587\u6863\u7684\u529f\u80fd\u624b\u518c\u3010\u5b89\u5168\u5408\u89c4\u3011\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.1 \u4f7f\u7528\u573a\u666f',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u672c\u7ae0\u4e3b\u8981\u4ecb\u7ecd\u7cfb\u7edf\u7ba1\u7406\u5458\u5982\u4f55\u4f7f\u7528 CloudExplorer Lite \u5feb\u901f\u7ba1\u7406\u4e00\u4e2a\u4e91\u8d26\u53f7\uff0c\u5e2e\u52a9\u5927\u5bb6\u5feb\u901f\u638c\u63e1\u4f7f\u7528\u65b9\u6cd5\u3002 \u521d\u59cb\u5316\u914d\u7f6e\u6b65\u9aa4\uff1a\u6dfb\u52a0\u4e91\u8d26\u53f7 -> \u7ba1\u7406\u4e91\u4e3b\u673a -> \u67e5\u770b\u4e91\u8d26\u5355 -> \u67e5\u770b\u8fd0\u8425\u5206\u6790 -> \u67e5\u770b\u5b89\u5168\u5408\u89c4\u3002 '
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.2 \u521b\u5efa\u4e91\u8d26\u53f7',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u9996\u6b21\u767b\u5f55 CloudExplorer Lite \u5e73\u53f0\u65f6\uff0c\u4f1a\u81ea\u52a8\u5f39\u51fa\u6dfb\u52a0\u4e91\u8d26\u53f7\u7684\u5411\u5bfc\uff0c\u7528\u6237\u9700\u8981\u6839\u636e\u5411\u5bfc\u5c06\u4e91\u8d26\u53f7\u6dfb\u52a0\u5230\u4e91\u7ba1\u5e73\u53f0\u4e2d\u8fdb\u884c\u7ba1\u7406\u3002 { width="1235px" } !!! Abstract "" \u8f93\u5165\u540d\u79f0\u4e3a\u201c\u963f\u91cc\u4e91-\u4ea7\u54c1\u201d\uff0c\u8f93\u5165\u4e91\u8d26\u53f7\u7684 AccessKey ID\u3001AccessKey Secret\uff0c\u70b9\u51fb\u201c\u786e\u8ba4\u201d\u3002 \u8bf4\u660e\uff1aAccessKey\u6743\u9650\u8981\u6c42\uff1aECS\u7684\u7ba1\u7406\u6743\u9650\u548c\u6240\u6709\u8d44\u6e90\u7684\u53ea\u8bfb\u6743\u9650\u3002 !!! Abstract "" \u975e\u9996\u6b21\u767b\u5f55\u53ef\u6253\u5f00\u3010\u7ba1\u7406\u4e2d\u5fc3\u3011-\u3010\u4e91\u8d26\u53f7\u3011\u83dc\u5355\uff0c\u521b\u5efa\u4e00\u4e2a\u963f\u91cc\u4e91\u7684\u4e91\u8d26\u53f7\uff0c\u540d\u79f0\u4e3a\u201c\u963f\u91cc\u4e91-\u4ea7\u54c1\u201d\u3002{ width="1235px" }!!! Abstract "" \u4e91\u5e73\u53f0\u9009\u62e9\u201c\u963f\u91cc\u4e91\u201d(\u82e5\u662f\u5176\u4ed6\u4e91\u5e73\u53f0\u7684\u53ef\u9009\u62e9\u5bf9\u5e94\u7684\u4e91\u5e73\u53f0) \uff0c\u5f53\u524d\u4ee5\u201c\u963f\u91cc\u4e91\u201d\u4e3a\u4f8b\u3002{ width="1235px" }!!! Abstract "" \u8f93\u5165\u540d\u79f0\u4e3a\u201c\u963f\u91cc\u4e91-\u4ea7\u54c1\u201d\uff0c\u8f93\u5165\u4e91\u8d26\u53f7\u7684 AccessKey ID\u3001AccessKey Secret\uff0c\u70b9\u51fb\u201c\u786e\u8ba4\u201d\u3002 \u8bf4\u660e\uff1aAccessKey\u6743\u9650\u8981\u6c42\uff1aECS\u7684\u7ba1\u7406\u6743\u9650\u548c\u6240\u6709\u8d44\u6e90\u7684\u53ea\u8bfb\u6743\u9650\u3002{ width="1235px" }!!! Abstract "" \u7cfb\u7edf\u4f1a\u81ea\u52a8\u540c\u6b65\u8be5\u4e91\u8d26\u53f7\u4e0b\u7684\u4e91\u4e3b\u673a\u3001\u78c1\u76d8\u3001\u955c\u50cf\u7b49\u8d44\u6e90\u6570\u636e\uff0c\u8fc7\u53bb\u4e00\u5e74\u7684\u8d26\u5355\u6570\u636e\u548c\u5b89\u5168\u5408\u89c4\u626b\u63cf\u7684\u8d44\u6e90\u6570\u636e\uff1b \u7cfb\u7edf\u4f1a\u5b9a\u65f6\u540c\u6b65\u6570\u636e\uff0c\u7528\u6237\u4e5f\u53ef\u4ee5\u624b\u52a8\u540c\u6b65\uff1b \u8d44\u6e90\u540c\u6b65\u5b8c\u6210\u540e\u4fbf\u53ef\u4f7f\u7528\u5404\u670d\u52a1\u6a21\u5757\u8fdb\u884c\u67e5\u770b\u548c\u7ba1\u7406\uff0c\u5426\u5219\u5404\u670d\u52a1\u6a21\u5757\u5c06\u6ca1\u6709\u6570\u636e\u3002 { width="1235px" }!!! Abstract "" \u70b9\u51fb\u201c\u4e91\u8d26\u53f7\u540d\u79f0\u201d\u8fdb\u5165\u8be6\u60c5\uff0c\u53ef\u4ee5\u67e5\u770b\u5177\u4f53\u7684\u540c\u6b65\u8bb0\u5f55\u548c\u540c\u6b65\u8be6\u60c5\u3002'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.2 \u521b\u5efa\u4e91\u8d26\u53f7',
|
|
||||||
content:
|
|
||||||
'{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.3 \u7ba1\u7406\u4e91\u4e3b\u673a - \u521b\u5efa\u963f\u91cc\u4e91\u4e91\u4e3b\u673a',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u5f53\u7528\u6237\u9700\u8981\u65b0\u589e\u4e91\u4e3b\u673a\u8d44\u6e90\u65f6\uff0c\u65e0\u9700\u63d0\u524d\u64cd\u4f5c\u4efb\u4f55\u914d\u7f6e\uff0c\u53ef\u4ee5\u76f4\u63a5\u5728\u4e91\u4e3b\u673a\u5217\u8868\u4e0a\u65b9\u70b9\u51fb\u3010\u521b\u5efa\u4e91\u4e3b\u673a\u3011\u3002{ width="1235px" }!!! Abstract "" \u9700\u8981\u7528\u6237\u9009\u62e9\u5728\u54ea\u4e2a\u4e91\u8d26\u53f7\u4e0b\u521b\u5efa\u4e91\u4e3b\u673a\uff0c\u9009\u62e9\u4e91\u8d26\u53f7\uff1a\u963f\u91cc\u4e91\uff0c\u4ee5\u4e0b\u4ee5\u521b\u5efa\u963f\u91cc\u4e91\u4e91\u4e3b\u673a\u4e3a\u4f8b\u3002{ width="1235px" }!!! Abstract "" \u5728\u57fa\u7840\u914d\u7f6e\u9875\u9762\u9700\u8981\u9009\u62e9\uff1a\u4ed8\u8d39\u65b9\u5f0f\u3001\u533a\u57df\u3001\u53ef\u7528\u533a\u3001\u5b9e\u4f8b\u89c4\u683c\u3001\u64cd\u4f5c\u7cfb\u7edf\u3001\u7cfb\u7edf\u76d8\u559d\u6570\u636e\u76d8\u5927\u5c0f\u3002 \u4e0b\u65b9\u4f1a\u6839\u636e\u6240\u9009\u7684\u914d\u7f6e\u4fe1\u606f\u663e\u793a\u9884\u4f30\u8d39\u7528\u3002 { width="1235px" }!!! Abstract "" \u5728\u7f51\u7edc\u914d\u7f6e\u9875\u9762\u9700\u8981\u9009\u62e9\uff1a\u5b50\u7f51\u3001\u5b89\u5168\u7ec4\u3001\u662f\u5426\u5206\u914d\u516c\u7f51IP\u53ca\u516c\u7f51IP\u7684\u5e26\u5bbd\u8bbe\u7f6e\u3002{ width="1235px" }!!! Abstract "" \u5728\u7cfb\u7edf\u914d\u7f6e\u4e2d\u8bbe\u7f6e\u4e91\u4e3b\u673a\u7684\u767b\u5f55\u51ed\u8bc1\u3001\u4e3b\u673a\u540d\u548c Hostname\uff1b \u82e5\u540c\u65f6\u521b\u5efa\u591a\u53f0\u8d44\u6e90\u5219\u6bcf\u53f0\u8d44\u6e90\u90fd\u9700\u8981\u8bbe\u7f6e\u4e3b\u673a\u540d\u548c Hostname\u3002{ width="1235px" }!!! Abstract "" \u6700\u540e\u4e00\u6b65\u662f\u786e\u8ba4\u4e4b\u524d\u51e0\u6b65\u6240\u9009\u7684\u4fe1\u606f\uff0c\u5982\u679c\u786e\u8ba4\u6b63\u786e\uff0c\u63d0\u4ea4\u7533\u8bf7\u540e\u4fbf\u4f1a\u6267\u884c\u4efb\u52a1\u521b\u5efa\u4e91\u4e3b\u673a\u3002{ width="1235px" }!!! Abstract "" \u63d0\u4ea4\u521b\u5efa\u4efb\u52a1\u540e\uff0c\u5728\u4e91\u4e3b\u673a\u5217\u8868\u65b0\u589e\u4e00\u6761\u521b\u5efa\u4e2d\u7684\u8bb0\u5f55\uff0c\u5e76\u5728\u4efb\u52a1\u5217\u8868\u751f\u6210\u521b\u5efa\u4e91\u4e3b\u673a\u7684\u4efb\u52a1\u3002{ width="1235px" }{ width="1235px" } !!! Abstract "" \u4efb\u52a1\u5b8c\u6210\u540e\uff0c\u4e91\u4e3b\u673a\u72b6\u6001\u53d8\u4e3a\u201c\u8fd0\u884c\u4e2d\u201d\u3002'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.3 \u7ba1\u7406\u4e91\u4e3b\u673a - \u4e91\u4e3b\u673a\u7ba1\u7406\u64cd\u4f5c',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u5f53\u524d\u652f\u6301\u5bf9\u4e91\u4e3b\u673a\u8fdb\u884c\u542f\u52a8\u3001\u505c\u7528\u3001\u91cd\u542f\u3001\u5220\u9664\u3001\u914d\u7f6e\u53d8\u66f4\u3001\u6dfb\u52a0\u78c1\u76d8\u7b49\u7ba1\u7406\u64cd\u4f5c\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.3 \u7ba1\u7406\u4e91\u4e3b\u673a',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u3010\u4e91\u4e3b\u673a\u7ba1\u7406\u3011\u6a21\u5757\u63d0\u4f9b\u4e86\u4e91\u4e3b\u673a\u7684\u521b\u5efa\u3001\u542f/\u505c\u673a\u3001\u56de\u6536\u3001\u914d\u7f6e\u53d8\u66f4\u3001\u6269\u5bb9\u3001\u6388\u6743\u7b49\uff1b \u540c\u65f6\u57fa\u4e8e\u7528\u6237\u7ba1\u7406\u4f53\u7cfb\uff0c\u7528\u6237\u53ef\u521b\u5efa\u3001\u53ef\u64cd\u4f5c\u7684\u8d44\u6e90\u90fd\u5177\u5907\u9694\u79bb\u6027\uff1b \u5728\u591a\u4e91\u73af\u5883\u4e0b\u63d0\u4f9b\u7edf\u4e00\u7684\u64cd\u4f5c\u754c\u9762\uff0c\u4e3a\u7528\u6237\u5e26\u6765\u6781\u5927\u4fbf\u5229\u3002'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.4 \u67e5\u770b\u4e91\u8d26\u5355 - \u8d26\u5355\u603b\u89c8',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u7cfb\u7edf\u7ba1\u7406\u5458\u53ef\u4ee5\u770b\u5230\u6240\u6709\u7eb3\u7ba1\u4e91\u8d26\u53f7\u7684\u5f53\u6708\u603b\u82b1\u8d39\u3001\u4eca\u5e74\u603b\u82b1\u8d39\u3001\u4e0e\u4e0a\u6708\u6216\u4e0a\u4e2a\u5468\u671f\u8d39\u7528\u5bf9\u6bd4\u589e\u52a0\u8fd8\u662f\u51cf\u5c11\u3001\u8fd1\u534a\u5e74/\u8fd1\u4e00\u5e74\u7684\u603b\u8d39\u7528\u8d8b\u52bf\uff0c\u4e0b\u65b9\u7684\u6708\u8d26\u5355\u4e2d\u53ef\u4ee5\u67e5\u770b\u7528\u6237\u81ea\u5b9a\u4e49\u4e0d\u540c\u7ef4\u5ea6\u7684\u6708\u8d26\u5355\uff1b \u7ec4\u7ec7\u7ba1\u7406\u5458\u548c\u666e\u901a\u7528\u6237\u53ef\u4ee5\u67e5\u770b\u5df2\u88ab\u5206\u8d26\u6388\u6743\u7684\u5f53\u6708\u603b\u82b1\u8d39\u3001\u4eca\u5e74\u603b\u82b1\u8d39\u548c\u8fd1\u534a\u5e74/\u8fd1\u4e00\u5e74\u7684\u603b\u8d39\u7528\u8d8b\u52bf\uff0c\u4e0b\u65b9\u7684\u6708\u8d26\u5355\u4e2d\u53ef\u4ee5\u67e5\u770b\u5df2\u88ab\u5206\u8d26\u6388\u6743\u7684\u4e0d\u540c\u7ef4\u5ea6\u7684\u6708\u8d26\u5355\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.4 \u67e5\u770b\u4e91\u8d26\u5355 - \u8d26\u5355\u660e\u7ec6',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u7cfb\u7edf\u7ba1\u7406\u5458\u53ef\u4ee5\u67e5\u770b\u6240\u6709\u516c\u6709\u4e91\u8d26\u53f7\u7684\u8d26\u5355\u660e\u7ec6\uff0c\u9ed8\u8ba4\u663e\u793a\u5f53\u6708\u7684\u660e\u7ec6\uff0c\u53ef\u4ee5\u6309\u7167\u8d26\u671f\u67e5\u770b\u660e\u7ec6\uff1b \u7ec4\u7ec7\u7ba1\u7406\u5458\u548c\u666e\u901a\u7528\u6237\u53ef\u4ee5\u67e5\u770b\u5df2\u88ab\u5206\u8d26\u6388\u6743\u7684\u8d26\u5355\u660e\u7ec6\uff0c\u9ed8\u8ba4\u663e\u793a\u5f53\u6708\u7684\u660e\u7ec6\uff0c\u53ef\u4ee5\u6309\u7167\u8d26\u671f\u67e5\u770b\u660e\u7ec6\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.4 \u67e5\u770b\u4e91\u8d26\u5355 - \u81ea\u5b9a\u4e49\u8d26\u5355',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u53ea\u6709\u7cfb\u7edf\u7ba1\u7406\u5458\u6dfb\u52a0\u7f16\u8f91\u81ea\u5b9a\u4e49\u8d26\u5355\uff0c\u7ec4\u7ec7\u7ba1\u7406\u5458\u548c\u666e\u901a\u7528\u6237\u53ea\u80fd\u5728\u8d26\u5355\u603b\u89c8\u4e2d\u67e5\u770b\u6708\u8d26\u5355\uff1b \u7cfb\u7edf\u5185\u7f6e\u90e8\u5206\u6708\u8d26\u5355\uff1a\u6309\u4e91\u5e73\u53f0\u3001\u6309\u4e91\u8d26\u53f7\u3001\u6309\u4ea7\u54c1\u540d\u79f0\u3001\u6309\u4ed8\u8d39\u7c7b\u578b\u3001\u6309\u4f01\u4e1a\u9879\u76ee\uff1b \u82e5\u60f3\u8981\u5c55\u793a\u5176\u4ed6\u7ef4\u5ea6\u7684\u6708\u8d26\u5355\uff0c\u7cfb\u7edf\u7ba1\u7406\u5458\u6dfb\u52a0\u81ea\u5b9a\u4e49\u6708\u8d26\u5355\uff0c\u652f\u6301\u7684\u7edf\u8ba1\u7ef4\u5ea6\u5b57\u6bb5\uff1a\u4e91\u5e73\u53f0\u3001\u4e91\u8d26\u53f7\u3001\u533a\u57df\u3001\u4f01\u4e1a\u9879\u76ee\u3001\u7ec4\u7ec7\uff08\u5de5\u4f5c\u7a7a\u95f4\u7684\u7236\u7ea7\u7ec4\u7ec7\uff09\u3001\u7ec4\u7ec7\u5c42\u7ea7\u6811\uff08\u53ef\u9009\u62e9\u7ec4\u7ec7\u5c42\u7ea7\uff09\u3001\u5de5\u4f5c\u7a7a\u95f4\u3001\u6807\u7b7e\u3001\u4ea7\u54c1\u540d\u79f0\u3001\u4ea7\u54c1\u660e\u7ec6\u3001\u4ed8\u8d39\u65b9\u5f0f\u3001\u8d44\u6e90\u540d\u79f0\u7b49\u3002{ width="1235px" }!!! Abstract "" \u521b\u5efa\u4e00\u4e2a\u201c\u6309\u5de5\u4f5c\u7a7a\u95f4\u201d\u7684\u81ea\u5b9a\u4e49\u8d26\u5355\uff0c\u7edf\u8ba1\u5b57\u6bb5\u662f\uff1a\u7ec4\u7ec7\u3001\u5de5\u4f5c\u7a7a\u95f4\u3001\u4ea7\u54c1\u540d\u79f0\u3002{ width="1235px" }!!! Abstract "" \u81ea\u5b9a\u4e49\u8d26\u5355\u521b\u5efa\u5b8c\u6210\u540e\u53ef\u5728\u3010\u8d26\u5355\u603b\u89c8\u3011\u4e2d\u4e0b\u9762\u7684\u6708\u8d26\u5355\u4e2d\u67e5\u770b\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.4 \u67e5\u770b\u4e91\u8d26\u5355 - \u5206\u8d26\u8bbe\u7f6e',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u5f53\u524d\u7cfb\u7edf\u540c\u6b65\u5230\u7684\u8d26\u5355\u660e\u7ec6\u90fd\u662f\u57fa\u4e8e\u5404\u4e91\u5e73\u53f0\u4e0a\u7684\u539f\u59cb\u8d26\u5355\u6570\u636e\uff1b \u82e5\u60f3\u628a\u8fd9\u4e9b\u8d26\u5355\u5206\u644a\u5230\u7cfb\u7edf\u4e2d\u7684\u7ec4\u7ec7\u6216\u5de5\u4f5c\u7a7a\u95f4\u4e0a\u65f6\uff0c\u9700\u8981\u5728\u539f\u59cb\u8d26\u5355\u4e2d\u5b58\u5728\u6309\u7ec4\u7ec7/\u5de5\u4f5c\u7a7a\u95f4\u5bf9\u5e94\u7684\u5206\u8d26\u5b57\u6bb5\uff0c\u5982\u6807\u7b7e\u3001\u4f01\u4e1a\u9879\u76ee/\u8d22\u52a1\u5355\u5143\uff0c\u6b64\u65f6\u7cfb\u7edf\u7ba1\u7406\u5458\u53ef\u4ee5\u6309\u7167\u5206\u8d26\u5b57\u6bb5\u5728\u7cfb\u7edf\u4e2d\u8fdb\u884c\u5206\u8d26\u89c4\u5219\u8bbe\u5b9a\uff1b \u82e5\u5f53\u524d\u8fd8\u6ca1\u6709\u5206\u8d26\u4f9d\u636e\u5b57\u6bb5\uff0c\u9700\u8981\u5148\u5230\u516c\u6709\u4e91\u5e73\u53f0\u4e0a\u89c4\u8303\u8d26\u5355\uff0c\u6309\u7167\u7cfb\u7edf\u652f\u6301\u7684\u5206\u8d26\u4f9d\u636e\u8fdb\u884c\u5f52\u7eb3\uff1b \u5f53\u524d\u4e91\u7ba1\u5e73\u53f0\u652f\u6301\u7684\u5206\u8d26\u4f9d\u636e\u5b57\u6bb5\u6709\uff1a\u4e91\u5e73\u53f0\u3001\u4e91\u8d26\u53f7\u3001\u4f01\u4e1a\u9879\u76ee/\u8d22\u52a1\u5355\u5143\u3001\u4ea7\u54c1\u540d\u79f0\u3001\u4ea7\u54c1\u660e\u7ec6\u3001\u6807\u7b7e\u3002 { width="1235px" }!!! Abstract "" \u5728\u5206\u8d26\u8bbe\u7f6e\u9875\u9762\u9009\u62e9\u7ec4\u7ec7/\u5de5\u4f5c\u7a7a\u95f4\uff0c\u53f3\u4fa7\u8bbe\u7f6e\u5206\u8d26\u89c4\u5219\u3002 \u5206\u8d26\u89c4\u5219\u8bbe\u7f6e\u4fdd\u5b58\u540e\uff0c\u9700\u8981\u5ef6\u8fdf 24 \u5c0f\u65f6\u53ef\u5728\u5df2\u5206\u8d26\u8d44\u6e90\u5217\u8868\u5c55\u793a\u5206\u644a\u8fc7\u6765\u7684\u8d44\u6e90\u3002{ width="1235px" }{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.4 \u67e5\u770b\u4e91\u8d26\u5355',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u63d0\u4f9b\u4e86\u591a\u4e91\u591a\u8d26\u53f7\u7684\u8d39\u7528\u6c47\u603b\u3001\u8d39\u7528\u5206\u644a\u3001\u81ea\u5b9a\u4e49\u591a\u7ef4\u5ea6\u6708\u8d26\u5355\u529f\u80fd\uff0c\u53ef\u4f5c\u4e3a\u4f01\u4e1a\u7684\u4e91\u8d44\u6e90\u6210\u672c\u5206\u6790\u3002\u663e\u8457\u964d\u4f4e\u4e91\u4e0a\u8d44\u6e90\u6210\u672c\u7ba1\u7406\u7684\u96be\u5ea6\uff0c\u63d0\u5347\u6210\u672c\u7ba1\u7406\u6548\u7387\u3002'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.5 \u67e5\u770b\u8fd0\u8425\u5206\u6790 - \u603b\u89c8',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u6574\u4f53\u67e5\u770b\u5f53\u524d\u6240\u7ba1\u7406\u7684\u8d44\u6e90\u6570\u91cf\u7edf\u8ba1\uff0c\u8d44\u6e90\u4f7f\u7528\u60c5\u51b5\u7edf\u8ba1\uff0c\u8d44\u6e90\u5206\u5e03\u3001\u8d44\u6e90\u589e\u957f\u8d8b\u52bf\u4ee5\u53ca\u8d44\u6e90\u7684\u4f18\u5316\u5efa\u8bae\uff1b \u53ef\u4ee5\u6309\u7167\u4e91\u8d26\u53f7\u8fc7\u6ee4\u663e\u793a\u6bcf\u4e2a\u4e91\u8d26\u53f7\u4e0b\u7684\u8d44\u6e90\u7edf\u8ba1\u60c5\u51b5\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.5 \u67e5\u770b\u8fd0\u8425\u5206\u6790 - \u57fa\u7840\u8d44\u6e90\u5206\u6790',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u57fa\u7840\u8d44\u6e90\u4e3a\u79c1\u6709\u4e91\u8ba1\u7b97\u8d44\u6e90\u548c\u5b58\u50a8\u5668\u7684\u6574\u4f53\u8d44\u6e90\u4ece\u5bb9\u91cf\u3001\u5206\u914d\u60c5\u51b5\u3001\u4f7f\u7528\u60c5\u51b5\u7b49\u4e0d\u540c\u7ef4\u5ea6\u8fdb\u884c\u5206\u6790\uff0c\u8be5\u529f\u80fd\u53ea\u6709\u7cfb\u7edf\u7ba1\u7406\u5458\u89d2\u8272\u53ef\u67e5\u770b\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.5 \u67e5\u770b\u8fd0\u8425\u5206\u6790 - \u4e91\u4e3b\u673a\u5206\u6790',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u5bf9\u7eb3\u7ba1\u7684\u4e91\u4e3b\u673a\u4ece\u4e0d\u540c\u7ef4\u5ea6\u8fdb\u884c\u53ef\u89c6\u5316\u5206\u6790\uff0c\u67e5\u770b\u4e91\u4e3b\u673a\u7684\u8d8b\u52bf\u3001\u8d44\u6e90\u4f7f\u7528\u60c5\u51b5\u3001\u8fd0\u884c\u72b6\u6001\u3001\u8d44\u6e90\u5206\u5e03\u7b49\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.5 \u67e5\u770b\u8fd0\u8425\u5206\u6790 - \u78c1\u76d8\u5206\u6790',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u5bf9\u7eb3\u7ba1\u7684\u78c1\u76d8\u4ece\u4e0d\u540c\u7ef4\u5ea6\u8fdb\u884c\u53ef\u89c6\u5316\u5206\u6790\uff0c\u67e5\u770b\u78c1\u76d8\u7684\u8d8b\u52bf\u3001\u8d44\u6e90\u4f7f\u7528\u60c5\u51b5\u3001\u8fd0\u884c\u72b6\u6001\u3001\u8d44\u6e90\u5206\u5e03\u7b49\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.5 \u67e5\u770b\u8fd0\u8425\u5206\u6790 - \u4e91\u4e3b\u673a\u4f18\u5316',
|
|
||||||
content:
|
|
||||||
' !!! Abstract "" \u6839\u636e\u4f18\u5316\u7b56\u7565\u67e5\u627e\u51fa\u9700\u8981\u4f18\u5316\u7684\u8d44\u6e90\uff0c\u7528\u6237\u53ef\u4ee5\u81ea\u5b9a\u4e49\u4f18\u5316\u7b56\u7565\u7684\u7b5b\u9009\u6761\u4ef6\uff1b \u652f\u6301\u67e5\u8be2\u5efa\u8bae\u5347\u914d\u3001\u5efa\u8bae\u964d\u914d\u3001\u53d8\u66f4\u4ed8\u8d39\u65b9\u5f0f\u3001\u5efa\u8bae\u56de\u6536\u7684\u4e91\u4e3b\u673a\u3002 { width="1235px" }!!! Abstract "" \u70b9\u51fb\u6bcf\u4e2a\u4f18\u5316\u7b56\u7565\u9762\u677f\u53f3\u4e0a\u89d2\u7684\u8bbe\u7f6e\u6309\u94ae\uff0c\u53ef\u4ee5\u5bf9\u4f18\u5316\u7b56\u7565\u7b5b\u9009\u6761\u4ef6\u8fdb\u884c\u81ea\u5b9a\u4e49\u8bbe\u7f6e\uff0c\u8bbe\u7f6e\u4fdd\u5b58\u540e\u5219\u6309\u7167\u6700\u65b0\u7684\u7b56\u7565\u8fdb\u884c\u67e5\u8be2\u8d44\u6e90\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.5 \u67e5\u770b\u8fd0\u8425\u5206\u6790',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u6dfb\u52a0\u5b8c\u4e91\u8d26\u53f7\u4fbf\u53ef\u5bf9\u5df2\u7eb3\u7ba1\u7684\u8d44\u6e90\u4ece\u5206\u5e03\u3001\u5bb9\u91cf\u3001\u4f7f\u7528\u60c5\u51b5\u7b49\u5404\u7ef4\u5ea6\u8fdb\u884c\u5206\u6790\uff0c\u5e76\u63d0\u4f9b\u8d44\u6e90\u4f18\u5316\u5efa\u8bae\u3002'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.6 \u67e5\u770b\u5b89\u5168\u5408\u89c4 - \u603b\u89c8',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u4ece\u4e0d\u540c\u7ef4\u5ea6\u5c55\u793a\u6700\u8fd1\u4e00\u6b21\u626b\u63cf\u68c0\u6d4b\u7ed3\u679c\u7684\u7edf\u8ba1\u4fe1\u606f\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.6 \u67e5\u770b\u5b89\u5168\u5408\u89c4 - \u5408\u89c4\u626b\u63cf',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u652f\u6301\u7ba1\u7406\u5458\u4e00\u952e\u626b\u63cf\uff1b \u652f\u6301\u7ba1\u7406\u5458\u53ef\u4ee5\u6309\u89c4\u5219\u7ec4\u3001\u8d44\u6e90\u7c7b\u578b\u3001\u4e91\u8d26\u53f7\u67e5\u770b\u626b\u63cf\u89c4\u5219\u53ca\u626b\u63cf\u7ed3\u679c\u8be6\u60c5\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.6 \u67e5\u770b\u5b89\u5168\u5408\u89c4 - \u89c4\u5219\u8bbe\u7f6e',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u7cfb\u7edf\u5185\u7f6e\u4e86\u591a\u6761\u5408\u89c4\u89c4\u5219\uff0c\u5e76\u652f\u6301\u7ba1\u7406\u5458\u6309\u7167\u4f01\u4e1a\u8981\u6c42\u81ea\u5b9a\u4e49\u5408\u89c4\u89c4\u5219; \u652f\u6301\u7ba1\u7406\u5458\u5f00\u542f\u548c\u5173\u95ed\u89c4\u5219\uff0c\u5173\u95ed\u7684\u89c4\u5219\u4e0d\u4f1a\u5728\u3010\u5408\u89c4\u626b\u63cf\u3011\u4e2d\u663e\u793a\u8be5\u89c4\u5219\uff0c\u4e00\u952e\u626b\u63cf\u65f6\u4e5f\u4e0d\u4f1a\u626b\u63cf\u8be5\u89c4\u5219\u3002{ width="1235px" }!!! Abstract "" \u65b0\u589e\u4e00\u4e2a\u963f\u91cc\u4e91\u7684\u78c1\u76d8\u662f\u5426\u5f00\u542f\u52a0\u5bc6\u8bbe\u7f6e\u7684\u68c0\u6d4b\u89c4\u5219\uff0c\u64cd\u4f5c\u5982\u4e0b\uff1a{ width="1235px" }!!! Abstract "" \u6dfb\u52a0\u5b8c\u89c4\u5219\u540e\uff0c\u5728\u3010\u5408\u89c4\u626b\u63cf\u3011\u4e2d\u53d8\u53ef\u4ee5\u770b\u5230\u8be5\u89c4\u5219\uff0c\u70b9\u51fb\u3010\u4e00\u952e\u626b\u63cf\u3011\u540e\u53ef\u4ee5\u9009\u62e9\u6539\u89c4\u5219\u6240\u5728\u7684\u89c4\u5219\u7ec4\u8fdb\u884c\u8d44\u6e90\u626b\u63cf\u3002{ width="1235px" }{ width="1235px" }!!! Abstract "" \u70b9\u51fb\u76f8\u5e94\u89c4\u5219\u7684\u201c\u626b\u63cf\u7ed3\u679c\u8be6\u60c5\u201d\u5b57\u6bb5\uff0c\u53ef\u4ee5\u8fdb\u5165\u626b\u63cf\u8d44\u6e90\u8be6\u60c5\u9875\u9762\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.6 \u67e5\u770b\u5b89\u5168\u5408\u89c4 - \u89c4\u5219\u7ec4',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u89c4\u5219\u7ec4\u5c06\u626b\u63cf\u89c4\u5219\u8fdb\u884c\u5206\u7ec4\u3002{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.6 \u67e5\u770b\u5b89\u5168\u5408\u89c4 - \u98ce\u9669\u6761\u4f8b',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u5f53\u524d\u98ce\u9669\u6761\u4f8b\u662f\u6839\u636e\u7b49\u4fdd 2.0 \u7b49\u7ea7\u4fdd\u62a4\u57fa\u672c\u8981\u6c42\u6761\u6b3e\u53ca\u6539\u8fdb\u5efa\u8bae\u8bf4\u660e\uff1b \u7cfb\u7edf\u5185\u7f6e\u7684\u6761\u6b3e\u8986\u76d6\u5b89\u5168\u5ba1\u8ba1\u3001\u8bbf\u95ee\u63a7\u5236\u3001\u5165\u4fb5\u9632\u8303\u3001\u7f51\u7edc\u67b6\u6784\u7b49127\u6761\u98ce\u9669\u6761\u4f8b\uff1b \u7528\u6237\u5728\u81ea\u5b9a\u4e49\u89c4\u5219\u65f6\u53ef\u4ee5\u5173\u8054\u98ce\u9669\u6761\u4f8b\uff0c\u5173\u8054\u98ce\u9669\u6761\u4f8b\u7684\u89c4\u5219\uff0c\u5728\u67e5\u770b\u626b\u63cf\u7ed3\u679c\u65f6\u53ef\u4ee5\u770b\u5230\u76f8\u5173\u7684\u6539\u8fdb\u5efa\u8bae\u3002{ width="1235px" }{ width="1235px" }'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title:
|
|
||||||
'# \u5feb\u901f\u5165\u95e8 ## 3 \u5feb\u901f\u4e0a\u624b ### 3.6 \u67e5\u770b\u5b89\u5168\u5408\u89c4',
|
|
||||||
content:
|
|
||||||
'!!! Abstract "" \u8be5\u6a21\u5757\u9488\u5bf9\u5bf9\u7ba1\u7406\u5458\u63d0\u4f9b\u67e5\u770b\u4e91\u5e73\u53f0\u4e0a\u7684\u4e91\u8d44\u6e90\u7684\u76f8\u5173\u914d\u7f6e\u662f\u5426\u7b26\u5408\u7b49\u4fdd\u6761\u6b3e\u6216\u4f01\u4e1a\u914d\u7f6e\u89c4\u8303\uff1b \u5f53\u524d\u652f\u6301\u68c0\u6d4b\u7684\u8d44\u6e90\u7c7b\u578b\u4e3a\uff1a\u4e91\u670d\u52a1\u5668\u3001\u4e91\u78c1\u76d8\u3001\u5f39\u6027 IP\u3001\u5bf9\u8c61\u5b58\u50a8\u3001\u5b89\u5168\u7ec4\u3001VPC\u3001\u8d1f\u8f7d\u5747\u8861\u3001\u4e91\u6570\u636e\u5e93\u3001\u5bbf\u4e3b\u673a\u3001\u5b58\u50a8\u5668\u3001\u8d44\u6e90\u6c60\u3001RAM \u7528\u6237; \u652f\u6301\u7684\u4e91\u5e73\u53f0\uff1a\u963f\u91cc\u4e91\u3001\u534e\u4e3a\u4e91\u3001\u817e\u8baf\u4e91\u3001VMware\u3001OpenStack\u3002'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
])
|
|
||||||
|
|
||||||
const form = reactive({
|
const form = reactive<any>({
|
||||||
name: '',
|
patterns: [] as any,
|
||||||
region: '',
|
limit: 0,
|
||||||
type: ''
|
with_filter: false
|
||||||
})
|
})
|
||||||
|
|
||||||
const options = ref([])
|
const patternsList = ref<string[]>(patternType)
|
||||||
|
|
||||||
function splitDocument() {
|
function splitDocument() {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
@ -319,6 +117,10 @@ function splitDocument() {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Object.keys(form).forEach((key) => {
|
||||||
|
fd.append(key, form[key])
|
||||||
|
})
|
||||||
|
|
||||||
DatasetApi.postSplitDocument(fd)
|
DatasetApi.postSplitDocument(fd)
|
||||||
.then((res: any) => {
|
.then((res: any) => {
|
||||||
segmentList.value = res
|
segmentList.value = res
|
||||||
@ -334,27 +136,41 @@ onMounted(() => {})
|
|||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.set-rules {
|
.set-rules {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
.set-rules-height {
|
||||||
|
height: var(--create-dataset-height);
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-height {
|
||||||
|
max-height: calc(var(--create-dataset-height) - 105px);
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
&__radio {
|
&__radio {
|
||||||
display: block;
|
display: block;
|
||||||
.el-radio {
|
.el-radio {
|
||||||
white-space: break-spaces;
|
white-space: break-spaces;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 16px;
|
padding: calc(var(--app-base-px) * 2);
|
||||||
line-height: 22px;
|
line-height: 22px;
|
||||||
color: var(--app-text-color-primary);
|
color: var(--app-text-color-primary);
|
||||||
}
|
}
|
||||||
:deep(.el-radio__label) {
|
:deep(.el-radio__label) {
|
||||||
padding-left: 32px;
|
padding-left: 32px;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
:deep(.el-radio__input) {
|
:deep(.el-radio__input) {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 30px;
|
top: 30px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.right-height {
|
&__form {
|
||||||
max-height: calc(100vh - 330px);
|
.el-select {
|
||||||
overflow-x: hidden;
|
width: 100%;
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -1,10 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="upload-document">
|
<el-scrollbar>
|
||||||
<!-- 基本信息 -->
|
<div class="upload-document p-24">
|
||||||
<BaseForm ref="BaseFormRef" />
|
<!-- 基本信息 -->
|
||||||
<!-- 上传文档 -->
|
<BaseForm ref="BaseFormRef" />
|
||||||
<UploadComponent ref="UploadComponentRef" />
|
<!-- 上传文档 -->
|
||||||
</div>
|
<UploadComponent ref="UploadComponentRef" />
|
||||||
|
</div>
|
||||||
|
</el-scrollbar>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, reactive, onMounted } from 'vue'
|
import { ref, reactive, onMounted } from 'vue'
|
||||||
|
|||||||
@ -28,7 +28,7 @@
|
|||||||
<span @click.stop>
|
<span @click.stop>
|
||||||
<el-dropdown trigger="click" v-if="!isManage(item.type)">
|
<el-dropdown trigger="click" v-if="!isManage(item.type)">
|
||||||
<span class="cursor">
|
<span class="cursor">
|
||||||
<el-icon><MoreFilled /></el-icon>
|
<el-icon class="rotate-90"><MoreFilled /></el-icon>
|
||||||
</span>
|
</span>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
@ -155,12 +155,11 @@ function MemberPermissions(id: String) {
|
|||||||
|
|
||||||
function deleteMember(row: TeamMember) {
|
function deleteMember(row: TeamMember) {
|
||||||
MsgConfirm(
|
MsgConfirm(
|
||||||
|
`是否移除成员:${row.username}?`,
|
||||||
|
'移除后将会取消成员拥有的数据集和应用权限。',
|
||||||
|
|
||||||
{
|
{
|
||||||
title: `是否移除成员:${row.username}`,
|
confirmButtonText: '移除',
|
||||||
decription: '移除后将会取消成员拥有的数据集和应用权限。',
|
|
||||||
confirmButtonText: '移除'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
confirmButtonClass: 'danger'
|
confirmButtonClass: 'danger'
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@ -220,7 +219,7 @@ onMounted(() => {
|
|||||||
font-size: 17px;
|
font-size: 17px;
|
||||||
}
|
}
|
||||||
.team-member-input {
|
.team-member-input {
|
||||||
padding: 0 16px;
|
padding: 0 calc(var(--app-base-px) * 2);
|
||||||
}
|
}
|
||||||
.team-member {
|
.team-member {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user