From 301b1a3bbc7e26e10d1118512cdd0226bd9c0b5f Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期三, 24 七月 2024 19:49:29 +0800
Subject: [PATCH] 知识库配置页面修改

---
 src/views/dmx/knowledgeLib/test.vue   |  277 +++++++++++++++++++++++
 src/views/dmx/knowledgeLib/index.vue  |   54 +--
 src/views/dmx/knowledgeLib/config.vue |  376 +++++++++++++++++++++++++++++++
 3 files changed, 674 insertions(+), 33 deletions(-)

diff --git a/src/views/dmx/knowledgeLib/config.vue b/src/views/dmx/knowledgeLib/config.vue
new file mode 100644
index 0000000..bf5e1be
--- /dev/null
+++ b/src/views/dmx/knowledgeLib/config.vue
@@ -0,0 +1,376 @@
+<template>
+  <div class="main-container">
+    <div class="main-container-lf">
+      <div class="main-container-lf-down">
+        <div style="margin-bottom: 10px">閰嶇疆</div>
+        <div style="color: #999;">鍦ㄨ繖閲屾洿鏂版偍鐨勭煡璇嗗簱璇︾粏淇℃伅锛屽挨鍏舵槸瑙f瀽鏂规硶銆�</div>
+        <a-divider style="margin-top: 10px" />
+        <a-form ref="formRef" :size="form.size" :model="form" :style="{width:'100%'}" layout="vertical"
+                @submit="handleSubmit">
+          <a-form-item field="name" label="鐭ヨ瘑搴撳悕绉�"
+                       :rules="[{required:true,message:'name is required'},{minLength:5,message:'must be greater than 5 characters'}]"
+                       :validate-trigger="['change','input']"
+          >
+            <a-input v-model="form.name" placeholder="璇疯緭鍏�" />
+          </a-form-item>
+          <a-form-item field="section" label="鐭ヨ瘑搴撳浘鐗�">
+            <a-space direction="vertical" :style="{ width: '100%' }">
+              <a-upload
+                action="/"
+                :fileList="file ? [file] : []"
+                :show-file-list="false"
+                @change="onChange"
+                @progress="onProgress"
+              >
+                <template #upload-button>
+                  <div
+                    :class="`arco-upload-list-item${
+            file && file.status === 'error' ? ' arco-upload-list-item-error' : ''
+          }`"
+                  >
+                    <div
+                      class="arco-upload-list-picture custom-upload-avatar"
+                      v-if="file && file.url"
+                    >
+                      <img :src="file.url" />
+                      <div class="arco-upload-list-picture-mask">
+                        <IconEdit />
+                      </div>
+                      <a-progress
+                        v-if="file.status === 'uploading' && file.percent < 100"
+                        :percent="file.percent"
+                        type="circle"
+                        size="mini"
+                        :style="{
+                position: 'absolute',
+                left: '50%',
+                top: '50%',
+                transform: 'translateX(-50%) translateY(-50%)',
+              }"
+                      />
+                    </div>
+                    <div class="arco-upload-picture-card" v-else>
+                      <div class="arco-upload-picture-card-text">
+                        <IconPlus />
+                        <div style="margin-top: 10px; font-weight: 600">涓婁紶</div>
+                      </div>
+                    </div>
+                  </div>
+                </template>
+              </a-upload>
+            </a-space>
+          </a-form-item>
+          <a-form-item field="section" label="鎻忚堪">
+            <a-textarea placeholder="" allow-clear />
+          </a-form-item>
+          <a-form-item field="section" label="璇█" :rules="[{match:/section one/,message:'璇烽�夋嫨'}]">
+            <a-select v-model="form.section" placeholder="璇烽�夋嫨" allow-clear>
+              <a-option value="0">涓枃</a-option>
+              <a-option value="1">鑻辨枃</a-option>
+            </a-select>
+          </a-form-item>
+          <a-form-item field="section" label="宓屽叆妯″瀷" :rules="[{match:/section one/,message:'璇烽�夋嫨'}]">
+            <a-select v-model="form.section" placeholder="璇烽�夋嫨" allow-clear>
+              <a-option value="section one">Section One</a-option>
+              <a-option value="section two">Section Two</a-option>
+              <a-option value="section three">Section Three</a-option>
+            </a-select>
+          </a-form-item>
+          <a-form-item field="section" label="瑙f瀽鏂规硶" :rules="[{match:/section one/,message:'璇烽�夋嫨'}]">
+            <a-select v-model="form.section" placeholder="璇烽�夋嫨" allow-clear>
+              <a-option value="section one">Section One</a-option>
+              <a-option value="section two">Section Two</a-option>
+              <a-option value="section three">Section Three</a-option>
+            </a-select>
+          </a-form-item>
+          <a-form-item field="slider" label="鍧桾oken鏁�" :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
+            <a-slider v-model="form.score" :max="10" />
+            <a-input-number v-model="form.score" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}" placeholder="Please Enter" class="input-demo" :min="10" :max="1000"/>
+          </a-form-item>
+          <a-form-item field="slider" label="甯冨眬璇嗗埆" :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
+            <a-space direction="vertical" size="large">
+              <a-switch v-model="form.score" checked-value="yes" unchecked-value="no" />
+            </a-space>
+          </a-form-item>
+          <a-form-item field="raptor" label="浣跨敤鍙洖澧炲己RAPTOR绛栫暐">
+            <a-space direction="vertical" size="large">
+              <a-switch v-model="form.raptor" @change="onChangeRAPTOR" />
+            </a-space>
+          </a-form-item>
+          <div v-if="form.raptor">
+            <a-form-item field="section" label="鎻愮ず璇�">
+              <a-textarea style="height: 10rem;border: 1px solid  var(--color-fill-3);border-radius: 4px" placeholder="" allow-clear/>
+            </a-form-item>
+            <a-form-item field="slider" label="鏈�澶oken鏁�" :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
+              <a-slider v-model="form.score" :max="10" />
+              <a-input-number v-model="form.score" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}" placeholder="Please Enter" class="input-demo" :min="10" :max="1000"/>
+            </a-form-item>
+            <a-form-item field="slider" label="闃堝��" :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
+              <a-slider v-model="form.score" :max="10" />
+              <a-input-number v-model="form.score" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}" placeholder="Please Enter" class="input-demo" :min="10" :max="1000"/>
+            </a-form-item>
+            <a-form-item field="slider" label="鏈�澶ц仛绫绘暟" :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
+              <a-slider v-model="form.score" :max="10" />
+              <a-input-number v-model="form.score" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}" placeholder="Please Enter" class="input-demo" :min="10" :max="1000"/>
+            </a-form-item>
+            <a-form-item field="slider" label="闅忔満绉嶅瓙" :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
+              <a-input-number v-model="form.score" :style="{width:'300px',marginRight:'1rem',borderRadius:'4px'}" placeholder="璇疯緭鍏�" class="input-demo" :min="10" :max="100"/>
+              <a-button type="primary" @click=""><icon-plus /></a-button>
+
+            </a-form-item>
+
+          </div>
+
+
+
+
+
+
+
+
+            <a-form-item>
+              <div style="width: 100%;text-align: right">
+                <a-space>
+                  <a-button type="primary" html-type="submit">淇濆瓨</a-button>
+                  <!--               <a-button @click="$refs.formRef.resetFields()">Reset</a-button>-->
+                </a-space>
+              </div>
+            </a-form-item>
+        </a-form>
+      </div>
+    </div>
+    <div class="main-container-rt">
+
+    </div>
+  </div>
+</template>
+
+<script lang="ts" setup>
+import { onMounted, onBeforeMount, reactive, ref } from "vue";
+import { Message } from "@arco-design/web-vue";
+
+const props = defineProps({
+  record: {
+    type: Object,
+    default: () => {
+      return {};
+    }
+  }
+});
+
+
+const visible = ref(false);
+const configIsShow = ref(false);
+const loading = ref(false);
+const formRef = ref(null);
+
+
+const form = reactive({
+  size: "medium",
+  name: "",
+  age: undefined,
+  section: "0",
+  province: "haidian",
+  options: [],
+  date: "",
+  time: "",
+  radio: "radio one",
+  slider: 5,
+  score: 5,
+  switch: false,
+  multiSelect: ["section one"],
+  treeSelect: "",
+  raptor: false
+});
+const options = [
+  {
+    value: "beijing",
+    label: "Beijing",
+    children: [
+      {
+        value: "chaoyang",
+        label: "ChaoYang",
+        children: [
+          {
+            value: "datunli",
+            label: "Datunli"
+          }
+        ]
+      },
+      {
+        value: "haidian",
+        label: "Haidian"
+      },
+      {
+        value: "dongcheng",
+        label: "Dongcheng"
+      },
+      {
+        value: "xicheng",
+        label: "XiCheng"
+      }
+    ]
+  },
+  {
+    value: "shanghai",
+    label: "Shanghai",
+    children: [
+      {
+        value: "shanghaishi",
+        label: "Shanghai",
+        children: [
+          {
+            value: "huangpu",
+            label: "Huangpu"
+          }
+        ]
+      }
+    ]
+  }
+];
+
+
+const sayHello = () => {
+  Message.info("hello");
+};
+
+const file = ref();
+
+const onChange = (_, currentFile) => {
+  file.value = {
+    ...currentFile
+    // url: URL.createObjectURL(currentFile.file),
+  };
+};
+const onProgress = (currentFile) => {
+  file.value = currentFile;
+};
+
+
+const handleSubmit = ({ values, errors }) => {
+  console.log("values:", values, "\nerrors:", errors);
+};
+
+
+const onChangeRAPTOR = () => {
+  console.log(form.raptor);
+};
+
+
+const handleClick = () => {
+  visible.value = true;
+};
+const handleBeforeOk = (done) => {
+  formRef.value.validate().then(res => {
+    console.log("form:", form);
+    if (!form.name) {
+      done(false);
+    } else {
+      console.log("璇锋眰鏁版嵁");
+
+    }
+  });
+};
+const handleCancel = () => {
+  visible.value = false;
+};
+
+const handleOpened = (el) => {
+  Object.assign(form, {
+    name: "",// 鐢ㄦ埛鍚�
+    nameJoin: "",// 鏄电О
+    post: "",// 宀椾綅
+    txt: ""// 澶囨敞
+  });
+  formRef.value.resetFields();
+  console.log(props.record, "record");
+  // if(props.edit == 'edit'){
+  //   Object.assign(form,props.record);
+  // }
+};
+
+onBeforeMount(() => {
+
+});
+onMounted(() => {
+
+
+});
+</script>
+
+<script lang="ts">
+import { IconEdit, IconPlus } from "@arco-design/web-vue/es/icon";
+
+export default {
+  name: "config",
+  components: { IconPlus, IconEdit },
+  methods: {}
+};
+</script>
+<style scoped lang="less">
+.main-container {
+  display: flex;
+  justify-content: space-between;
+  height: 100%;
+  overflow: auto;
+  //background: #626aea;
+  background: #ffffff;
+  &-lf {
+    width: 40%;
+    //height: 100%;
+    //border: 1px solid #cccccc;
+    border-radius: 10px;
+
+    &-top {
+      width: 100%;
+      height: 60px;
+      line-height: 60px;
+      //background: rgb(var(--primary-6));
+      //color: #ffffff;
+      //text-align: center;
+    }
+
+    &-down {
+      padding: 20px;
+      width: 100%;
+    }
+  }
+
+  &-form-item-extra {
+    width: 100%;
+    height: 20rem;
+    border: 1px solid var(--color-fill-3);
+    border-radius: 6px;
+    overflow: hidden;
+
+    &-top {
+      width: 100%;
+      height: 40px;
+      line-height: 40px;
+      border-bottom: 1px solid var(--color-fill-3);
+      //background: rgb(var(--primary-6));
+      color: #999999;
+      text-align: center;
+    }
+
+    &-down {
+      width: 92%;
+      margin-left: 4%;
+      margin-top: 30px;
+    }
+
+    &-btn {
+      width: 96%;
+      text-align: right;
+      margin-top: 1rem;
+    }
+  }
+
+  &-rt {
+    width: 60%;
+    //background: #626aea;
+    //border: 1px solid #cccccc;
+    border-radius: 10px;
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/dmx/knowledgeLib/index.vue b/src/views/dmx/knowledgeLib/index.vue
index aa5d815..7680fec 100644
--- a/src/views/dmx/knowledgeLib/index.vue
+++ b/src/views/dmx/knowledgeLib/index.vue
@@ -263,12 +263,12 @@
           </a-tab-pane>
           <a-tab-pane key="2" title="娴嬭瘯">
             <div class="rt-container-main">
-
+              <test ></test>
             </div>
           </a-tab-pane>
           <a-tab-pane key="3" title="閰嶇疆">
             <div class="rt-container-main">
-
+              <config ></config>
             </div>
           </a-tab-pane>
         </a-tabs>
@@ -287,7 +287,9 @@
   import type { TableColumnData } from '@arco-design/web-vue/es/table/interface';
   import cloneDeep from 'lodash/cloneDeep';
   import Sortable from 'sortablejs';
-  import add from '@/views/user/account/add.vue'
+  import add from '@/views/dmx/knowledgeLib/add.vue'
+  import config from '@/views/dmx/knowledgeLib/config.vue'
+  import test from '@/views/dmx/knowledgeLib/test.vue'
   import { deleteAccount } from "@/api/account";
   type SizeProps = 'mini' | 'small' | 'medium' | 'large';
   type Column = TableColumnData & { checked?: true };
@@ -344,43 +346,29 @@
     //   dataIndex: 'index',
     //   slotName: 'index',
     // },
-    // {
-    //   title: t('searchTable.columns.number'),
-    //   dataIndex: 'number',
-    // },
     {
-      title: t('鐢ㄦ埛鍚�'),
+      title: t('鍚嶇О'),
       dataIndex: 'name',
     },
-    // {
-    //   title: t('searchTable.columns.contentType'),
-    //   dataIndex: 'contentType',
-    //   slotName: 'contentType',
-    // },
-    // {
-    //   title: t('searchTable.columns.filterType'),
-    //   dataIndex: 'filterType',
-    // },
-    // {
-    //   title: t('searchTable.columns.count'),
-    //   dataIndex: 'count',
-    // },
     {
-      title: t('鍒涘缓鏃堕棿'),
+      title: t('鍒嗗揩鏁�'),
+      dataIndex: 'contentType',
+      slotName: 'contentType',
+    },
+    {
+      title: t('涓婁紶鏃堕棿'),
+      dataIndex: 'filterType',
+    },
+    {
+      title: t('鍒涘缓浜�'),
+      dataIndex: 'count',
+    },
+    {
+      title: t('瑙f瀽鐘舵��'),
       dataIndex: 'createdTime',
     },
     {
-      title: t('鎵�灞為儴闂�'),
-      dataIndex: 'filterType',
-      slotName: 'filterType',
-    },
-    {
-      title: t('澶囨敞'),
-      dataIndex: 'status',
-      slotName: 'status',
-    },
-    {
-      title: t('searchTable.columns.operations'),
+      title: t('鎿嶄綔'),
       dataIndex: 'operations',
       slotName: 'operations',
     },
diff --git a/src/views/dmx/knowledgeLib/test.vue b/src/views/dmx/knowledgeLib/test.vue
new file mode 100644
index 0000000..4e77077
--- /dev/null
+++ b/src/views/dmx/knowledgeLib/test.vue
@@ -0,0 +1,277 @@
+
+<template>
+    <div class="main-container">
+      <div class="main-container-lf">
+        <div class="main-container-lf-top">妫�绱㈡祴璇�</div>
+        <div class="main-container-lf-down">
+          <div style="color: #999;">鏈�鍚庝竴姝ワ紒 鎴愬姛鍚庯紝鍓╀笅鐨勫氨浜ょ粰Infiniflow AI鍚с��</div>
+          <a-divider style="margin-top: 10px" />
+          <a-form ref="formRef" :size="form.size" :model="form" :style="{width:'100%'}" layout="vertical"  @submit="handleSubmit">
+            <a-form-item field="slider" label="鐩镐技搴﹂槇鍊�" :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
+              <a-slider v-model="form.slider" :max="10" />
+            </a-form-item>
+            <a-form-item field="slider" label="鍏抽敭瀛楃浉浼煎害鏉冮噸" :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
+              <a-slider v-model="form.score" :max="10" />
+            </a-form-item>
+            <a-form-item field="section" label="Rerank妯″瀷" :rules="[{match:/section one/,message:'璇烽�夋嫨'}]">
+              <a-select v-model="form.section" placeholder="璇烽�夋嫨" allow-clear>
+                <a-option value="section one">Section One</a-option>
+                <a-option value="section two">Section Two</a-option>
+                <a-option value="section three">Section Three</a-option>
+              </a-select>
+            </a-form-item>
+            <a-form-item field="section" :rules="[{match:/section one/,message:'璇烽�夋嫨'}]">
+              <div class="main-container-form-item-extra">
+                <div class="main-container-form-item-extra-top">娴嬭瘯鏂囨湰</div>
+                <div class="main-container-form-item-extra-down">
+                  <a-textarea style="height: 10rem;border: 1px solid  var(--color-fill-3);border-radius: 4px" placeholder="" allow-clear/>
+                </div>
+                <div class="main-container-form-item-extra-btn">
+                  <a-button type="primary" html-type="submit">娴嬭瘯</a-button>
+                </div>
+              </div>
+            </a-form-item>
+<!--            <a-form-item>-->
+<!--              <a-space>-->
+<!--                <a-button html-type="submit">Submit</a-button>-->
+<!--                <a-button @click="$refs.formRef.resetFields()">Reset</a-button>-->
+<!--              </a-space>-->
+<!--            </a-form-item>-->
+          </a-form>
+        </div>
+      </div>
+      <div class="main-container-rt">
+        <a-collapse style="width: 96%;margin-top: 1rem;margin-left: 2%">
+<!--          <a-collapse-item header="Beijing Toutiao Technology Co., Ltd." key="1">-->
+<!--            <template #extra>-->
+<!--              <icon-copy />-->
+<!--            </template>-->
+<!--            <div>Beijing Toutiao Technology Co., Ltd.</div>-->
+<!--            <div>Beijing Toutiao Technology Co., Ltd.</div>-->
+<!--          </a-collapse-item>-->
+<!--          <a-collapse-item header="Beijing Toutiao Technology Co., Ltd." :key="2">-->
+<!--            <template #extra>-->
+<!--              <a-button type="primary" size="mini" @click.stop="sayHello">hello</a-button>-->
+<!--            </template>-->
+<!--            <div>Beijing Toutiao Technology Co., Ltd.</div>-->
+<!--            <div>Beijing Toutiao Technology Co., Ltd.</div>-->
+<!--          </a-collapse-item>-->
+          <a-collapse-item header="0/0 閫夊畾鐨勬枃浠�" key="3">
+            <template #extra>
+              <a-tag size="small">鍛戒腑鏁�</a-tag>
+              <a-tag size="small">鐪嬫硶</a-tag>
+            </template>
+            <div>
+              <a-empty />
+            </div>
+          </a-collapse-item>
+        </a-collapse>
+      </div>
+    </div>
+</template>
+
+<script lang="ts" setup>
+import { onMounted ,onBeforeMount, reactive, ref } from "vue";
+import { Message } from '@arco-design/web-vue';
+
+const props = defineProps({
+  record: {
+    type: Object,
+    default: () => {
+      return {}
+    }
+  }
+})
+
+
+
+
+const visible = ref(false);
+const loading = ref(false);
+const formRef = ref(null);
+
+
+
+const form = reactive({
+  size: 'medium',
+  name: '',
+  age: undefined,
+  section: '',
+  province: 'haidian',
+  options: [],
+  date: '',
+  time: '',
+  radio: 'radio one',
+  slider: 5,
+  score: 5,
+  switch: false,
+  multiSelect: ['section one'],
+  treeSelect: ''
+});
+const options = [
+  {
+    value: 'beijing',
+    label: 'Beijing',
+    children: [
+      {
+        value: 'chaoyang',
+        label: 'ChaoYang',
+        children: [
+          {
+            value: 'datunli',
+            label: 'Datunli',
+          },
+        ],
+      },
+      {
+        value: 'haidian',
+        label: 'Haidian',
+      },
+      {
+        value: 'dongcheng',
+        label: 'Dongcheng',
+      },
+      {
+        value: 'xicheng',
+        label: 'XiCheng',
+      },
+    ],
+  },
+  {
+    value: 'shanghai',
+    label: 'Shanghai',
+    children: [
+      {
+        value: 'shanghaishi',
+        label: 'Shanghai',
+        children: [
+          {
+            value: 'huangpu',
+            label: 'Huangpu',
+          },
+        ],
+      },
+    ],
+  },
+];
+
+
+const sayHello = () => {
+  Message.info('hello');
+};
+
+const handleSubmit = ({values, errors}) => {
+  console.log('values:', values, '\nerrors:', errors)
+}
+
+const handleClick = () => {
+  visible.value = true;
+};
+const handleBeforeOk = (done) => {
+    formRef.value.validate().then(res => {
+      console.log('form:', form)
+      if (!form.name) {
+        done(false)
+      }else {
+        console.log('璇锋眰鏁版嵁');
+
+      }
+    })
+};
+const handleCancel = () => {
+  visible.value = false;
+}
+
+const handleOpened =(el) => {
+  Object.assign(form,{
+    name: '',// 鐢ㄦ埛鍚�
+    nameJoin: '',// 鏄电О
+    post: '',// 宀椾綅
+    txt: '',// 澶囨敞
+  });
+  formRef.value.resetFields();
+  console.log(props.record, 'record');
+  // if(props.edit == 'edit'){
+  //   Object.assign(form,props.record);
+  // }
+}
+
+onBeforeMount(()=>{
+
+})
+onMounted(()=>{
+
+
+})
+</script>
+
+<script lang="ts">
+export default {
+  name: 'config',
+  methods: {
+
+  }
+};
+</script>
+<style scoped lang="less">
+  .main-container{
+    display: flex;
+    justify-content: space-between;
+    height: 100%;
+    //background: #626aea;
+    &-lf{
+      width: 30%;
+      height: 100%;
+      //border: 1px solid #cccccc;
+      background: #ffffff;
+      border-radius: 10px;
+      overflow: hidden;
+      &-top{
+        width: 100%;
+        height: 60px;
+        line-height: 60px;
+        background: rgb(var(--primary-6));
+        color: #ffffff;
+        text-align: center;
+      }
+      &-down{
+        padding: 20px;
+        width: 100%;
+      }
+    }
+    &-form-item-extra{
+      width: 100%;
+      height: 20rem;
+      border: 1px solid var(--color-fill-3);
+      border-radius: 6px;
+      overflow: hidden;
+      &-top{
+        width: 100%;
+        height: 40px;
+        line-height: 40px;
+        border-bottom: 1px solid  var(--color-fill-3);
+        //background: rgb(var(--primary-6));
+        color: #999999;
+        text-align: center;
+      }
+      &-down{
+        width: 92%;
+        margin-left: 4%;
+        margin-top: 30px;
+      }
+      &-btn{
+        width: 96%;
+        text-align: right;
+        margin-top: 1rem;
+      }
+    }
+    &-rt{
+      width: 69%;
+      height: 100%;
+      //background: #626aea;
+      //border: 1px solid #cccccc;
+      background: #ffffff;
+      border-radius: 10px;
+    }
+  }
+</style>
\ No newline at end of file

--
Gitblit v1.8.0