From 2f5fbb2144ca03477eb91ab36a990ea013065214 Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期四, 08 八月 2024 17:47:32 +0800
Subject: [PATCH] 解析块页面修改

---
 src/views/dmx/knowledgeLib/add.vue |  284 ++++++++++++++++++++++----------------------------------
 1 files changed, 114 insertions(+), 170 deletions(-)

diff --git a/src/views/dmx/knowledgeLib/add.vue b/src/views/dmx/knowledgeLib/add.vue
index 2136f06..f8cca58 100644
--- a/src/views/dmx/knowledgeLib/add.vue
+++ b/src/views/dmx/knowledgeLib/add.vue
@@ -1,188 +1,132 @@
-
 <template>
-  <a-button :type="edit=='edit' ? 'text' : 'primary'" @click="handleClick">
-    <template #icon v-if="edit=='add'">
+  <a-button type="primary" @click="handleClick">
+    <template #icon>
       <icon-plus />
     </template>
-    {{edit=='edit' ? '缂栬緫' : '鏂板缓璐﹀彿'}}
+    鏂板鏂囦欢
   </a-button>
-  <a-modal v-model:visible="visible" :title="edit=='edit' ? '缂栬緫' : '鏂板缓璐﹀彿'" @before-open="handleOpened" @cancel="handleCancel" @before-ok="handleBeforeOk">
-    <a-form ref="formRef" :rules="rules" :model="form" @submit="handleSubmit" >
-      <a-form-item field="name" label="鐢ㄦ埛鍚�">
-        <a-input v-model="form.name" />
-      </a-form-item>
-      <a-form-item field="nameJoin" label="鏄电О">
-        <a-input v-model="form.nameJoin" />
-      </a-form-item>
-<!--      <a-form-item field="post" label="Post">-->
-<!--        <a-select v-model="form.post">-->
-<!--          <a-option value="post1">Post1</a-option>-->
-<!--          <a-option value="post2">Post2</a-option>-->
-<!--          <a-option value="post3">Post3</a-option>-->
-<!--          <a-option value="post4">Post4</a-option>-->
-<!--        </a-select>-->
-<!--      </a-form-item>-->
-      <a-form-item label="澶囨敞">
-        <a-textarea  v-model="form.txt" placeholder="璇疯緭鍏�" allow-clear/>
-      </a-form-item>
-<!--      <a-form-item>-->
-<!--        <div style="width: 100%;text-align: right">-->
-<!--          <a-button @click="visible = false">鍙栨秷</a-button>-->
-<!--          <a-button style="margin-left: 10px" type="primary" html-type="submit">纭畾</a-button>-->
-<!--        </div>-->
-<!--      </a-form-item>-->
-    </a-form>
+  <a-modal
+    v-model:visible="visible"
+    title="涓婁紶鏂囦欢"
+    @open="handleOpened"
+    @cancel="handleCancel"
+    :ok-loading="loading"
+    @before-ok="handleBeforeOk"
+    title-align="start"
+  >
+    <a-tabs :default-active-key="activeKey" @change="activeKeyChange">
+      <a-tab-pane key="1" title="鏂囦欢"> </a-tab-pane>
+      <a-tab-pane key="2" title="鏂囦欢澶�"> </a-tab-pane>
+    </a-tabs>
+    <div class="aUpload">
+      <!--          <a-upload :file-list="uploadList" draggable accept=".word, .pdf, .ppt, .excel, .txt, .zip, .rar, .7z, .doc, .docx, .xls, .xlsx, .pptx, .ppt, .pdf, .mp4, .avi, .mp3,.wav, .wma, .wmv, .rm," :custom-request="customRequest" />-->
+      <a-upload
+        action="/"
+        :auto-upload="false"
+        ref="uploadRef"
+        :file-list="uploadList"
+        draggable
+        :directory="directory"
+        @change="onChange"
+        multiple
+      />
+    </div>
   </a-modal>
 </template>
 
 <script lang="ts" setup>
-import { onMounted ,onBeforeMount, reactive, ref } from "vue";
-
-const props = defineProps({
-  edit: {
-    type: String,
-    default: 'add'
-  },
-  record: {
-    type: Object,
-    default: () => {
-      return {}
-    }
-  }
-})
-const visible = ref(false);
-const loading = ref(false);
-const form = reactive({
-  name: '',// 鐢ㄦ埛鍚�
-  nameJoin: '',// 鏄电О
-  post: '',// 宀椾綅
-  txt: '',// 澶囨敞
-});
-const formRef = ref(null);
-
-const rules = {
-  name: [
-    {
-      required: true,
-      message:'鐢ㄦ埛鍚嶄笉鍏佽涓虹┖',
-    },
-  ],
-  nameJoin: [
-    {
-      required: true,
-      message:'鏄电О涓嶅厑璁镐负绌�',
-    },
-  ],
-  password: [
-    {
-      required: true,
-      message:'password is required',
-    },
-  ],
-  password2: [
-    {
-      required: true,
-      message:'password is required',
-    },
-    {
-      validator: (value, cb) => {
-        if (value !== form.password) {
-          cb('two passwords do not match')
-        } else {
-          cb()
-        }
-      }
-    }
-  ],
-  email: [
-    {
-      type: 'email',
-      required: true,
-    }
-  ],
-  ip: [
-    {
-      type: 'ip',
-      required: true,
-    }
-  ],
-  url: [
-    {
-      type: 'url',
-      required: true,
-    }
-  ],
-  match: [
-    {
-      required: true,
-      validator: (value, cb) => {
-        return new Promise((resolve) => {
-          if (!value) {
-            cb('Please enter match')
-          }
-          if (value !== 'match') {
-            cb('match must be match!')
-          }
-          resolve()
-        })
-      }
-    }
-  ],
-}
-
-
-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: '',// 澶囨敞
+  import { onMounted, onBeforeMount, reactive, ref, computed } from 'vue';
+  import axios from 'axios';
+  import { kbdocumentupload } from '@/api/kbList';
+  import { Message } from '@arco-design/web-vue';
+  let CancelToken = axios.CancelToken;
+  let source = null;
+  const visible = ref(false);
+  const loading = ref(false);
+  const directory = ref(false);
+  const activeKey = ref('1');
+  const formRef = ref(null);
+  const uploadList = ref([]);
+  const form = reactive({
+    name: '', // 鐢ㄦ埛鍚�
+    nameJoin: '', // 鏄电О
+    post: '', // 宀椾綅
+    txt: '', // 澶囨敞
   });
-  formRef.value.resetFields();
-  console.log(props.edit, 'edit');
-  console.log(props.record, 'record');
-  if(props.edit == 'edit'){
-    Object.assign(form,props.record);
-  }
-}
+  const props = defineProps(['kbobj']);
+  const emit = defineEmits(['changeFetchData']);
+  const uploadRef = ref();
+  const files = ref([]);
+  console.log(props.kbobj);
+  const acceptNameList = computed(() => {
+    return '.word, .pdf, .ppt, .excel, .txt, .zip, .rar, .7z, .doc, .docx, .xls, .xlsx, .pptx, .ppt, .pdf, .mp4, .avi, .mp3,.wav, .wma, .wmv, .rm,';
+  });
+  // 涓婁紶鏂囦欢
+  const submitForm = async (done) => {
+    if (files.value && files.value.length > 0) {
+      files.value.map((item) => {
+        const formData = new FormData();
+        formData.append('file', item.file);
+        formData.append('kb_id', props.kbobj.id);
+        kbdocumentupload(formData).then((res) => {
+          if (res.code == 0) {
+            emit('changeFetchData');
+            Message.success('涓婁紶鎴愬姛');
+            handleCancel();
+          }
+        });
+      });
+      done(false);
+    } else {
+      done(false);
+    }
+  };
 
-onBeforeMount(()=>{
+  const handleSubmit = ({ values, errors }) => {};
 
-})
-onMounted(()=>{
+  const onChange = (fileList) => {
+    files.value = fileList;
+  };
 
+  const handleClick = () => {
+    visible.value = true;
+  };
+  const handleBeforeOk = (done) => {
+    submitForm(done);
+  };
+  const handleCancel = () => {
+    visible.value = false;
+  };
 
-})
+  const handleOpened = (el) => {
+    // console.log(props.kbobj);
+    uploadList.value = [];
+    files.value = [];
+    loading.value = false;
+  };
+  const activeKeyChange = (value) => {
+    activeKey.value = value;
+    directory.value = value == '2' ? true : false;
+  };
+  onBeforeMount(() => {});
+  onMounted(() => {});
 </script>
 
 <script lang="ts">
-import { deleteAccount } from "@/api/account";
-export default {
-  name: 'add',
-  methods: {
+  export default {
+    name: 'add',
+    methods: {},
+  };
+</script>
 
+<style scoped lang="less">
+  .aUpload {
+    width: 100%;
+    max-height: 500px;
+    overflow: hidden;
+    overflow-y: auto;
+    :deep(.arco-upload-progress) {
+      display: none;
+    }
   }
-};
-</script>
\ No newline at end of file
+</style>

--
Gitblit v1.8.0