Browse Source

收藏加修改

duy 1 month ago
parent
commit
04b8fd3d63
2 changed files with 154 additions and 3 deletions
  1. 53 0
      src/api/modules/data-fill/collect.js
  2. 101 3
      src/views/data-fill/wbs.vue

+ 53 - 0
src/api/modules/data-fill/collect.js

@@ -0,0 +1,53 @@
+import { HcApi } from '../../request/index'
+
+export default {
+    //收藏
+    async collect(form) {
+        return HcApi({
+            url: '/api/blade-manager/contractCollectFolder/collect',
+            method: 'post',
+            params: form,
+        })
+    },
+    //删除
+    async deleteFolder(form) {
+        return HcApi({
+            url: '/api/blade-manager/contractCollectFolder/deleteFolder',
+            method: 'post',
+            params: form,
+        })
+    },
+    //收藏夹列表
+     async folderList(form) {
+        return HcApi({
+            url: '/api/blade-manager/contractCollectFolder/folderList',
+            method: 'get',
+            params: form,
+        })
+    },
+    //编辑
+      async saveOrUpdateFolder(form) {
+        return HcApi({
+            url: '/api/blade-manager/contractCollectFolder/saveOrUpdateFolder',
+            method: 'post',
+            params: form,
+        })
+    },
+    //排序
+      async sortFolder(form) {
+        return HcApi({
+            url: '/api/blade-manager/contractCollectFolder/sortFolder',
+            method: 'post',
+            params: form,
+        })
+    },
+    //最近n天保存记录
+    
+     async saveHistory(form) {
+        return HcApi({
+            url: '/api/blade-manager/contractInfo/saveHistory',
+            method: 'get',
+            params: form,
+        })
+    },
+}

+ 101 - 3
src/views/data-fill/wbs.vue

@@ -38,7 +38,7 @@
                                         <!-- 文件夹列表容器(带滚动) -->
                                         <div class="folder-list-container">
                                             <div 
-                                                v-for="(folder, index) in folders" 
+                                                v-for="(folder, index) in collectList" 
                                                 :key="index" 
                                                 class="folder-item"
                                             >
@@ -53,7 +53,7 @@
                                         </div>
                                     </div>
                                 </template>
-                                <HcIcon name="star-half" class="mr-3 cursor-pointer" style="color:rgb(255, 125, 67);" />
+                                <HcIcon name="star-half" class="mr-3 cursor-pointer" style="color:rgb(255, 125, 67);" @click="collectListClick" />
                             </el-tooltip>
                            
                             <HcIcon name="eye-off" style="color:#3F9EFF" class="cursor-pointer" />
@@ -114,7 +114,8 @@
                                 class="scroll-bar-right-16"
                             >
                                 <HcDataTree
-                                    
+                                    :is-show-collect="true"
+                                    :is-show-eye="true"
                                     :datas="searchTreeData"
                                     :is-mark="TreeMark"
                                     :menus="ElTreeMenu"
@@ -135,6 +136,8 @@
                             >
                                 <HcLazyTree
                                     ref="wbstree"
+                                    :is-show-collect="true"
+                                    :is-show-eye="true"
                                     :is-show-sync="userInfo?.role_id?.split(',').includes('1123598816738675201')"
                                     is-form-date
                                
@@ -150,6 +153,8 @@
                                     @node-loading="ElTreeNodeLoading"
                                     @node-tap="wbsElTreeClick"
                                     @check="ElTreeNodeCheck"
+                                    @collect="collectClick"
+                                    @eye="eyeClick"
                                 />
                             </el-scrollbar>
                         </div>
@@ -1440,6 +1445,31 @@
                 </el-form-item>
             </el-form>
         </hc-new-dialog>
+        <!-- 添加到收藏夹 -->
+        <hc-new-dialog
+            v-model="collectDialog"
+            title="添加到文件夹"
+          
+            is-footer-center
+            :loading="collectLoad"
+            :footer="collectList.length > 0"
+            @close="collectModalClose"
+            @save="collectModalSave"
+        >
+            <el-form
+                v-if="collectList.length > 0"
+                ref="collectFormRef"
+                :model="collectForm"
+                :rules="collectRules"
+            >
+                <el-form-item label="文件夹" prop="id">
+                    <el-select v-model="collectForm.id" placeholder="请选择">
+                        <el-option v-for="item in collectList" :key="item.id" :label="item.name" :value="item.id" />
+                    </el-select>
+                </el-form-item>
+            </el-form>
+            <el-alert v-else title="请先创建文件夹" type="warning" :closable="false" />
+        </hc-new-dialog>
         <JumpTreeDialog
             v-model="moveDialogShow"
             :contract-id="contractId"
@@ -1492,6 +1522,7 @@ import HcUpload from './components/HcUpload.vue'
 import { toPdfPage } from '~uti/btn-auth'
 import website from '~src/config'
 import JumpTreeDialog from './components/JumpTreeDialog.vue'
+import collectApi from '~api/data-fill/collect'
 //初始变量
 const router = useRouter()
 const useRoutes = useRoute()
@@ -3755,6 +3786,10 @@ const moveSaveClick = ()=>{
 // 收藏夹
 // 控制tooltip显示状态
 const collectListVisible = ref(false)
+const collectListClick = ()=>{
+    
+    getCollectList()
+}
 // 触发元素引用
 const triggerRef = ref(null)
 // 显示添加输入框
@@ -3807,6 +3842,69 @@ const handleClick = () => {
     isScaling.value = false
   }, 300) // 与CSS过渡时间保持一致
 }
+
+//收藏
+
+const collectClick = (data)=>{
+    // console.log(data, 'collectClick')
+    // if (data.isCollect === 0) {
+    //     data.isCollect = 1
+    // } else {
+    //     data.isCollect = 0
+    // }
+    if (data.isCollect === 0) {
+        
+     collectDialog.value = true
+     getCollectList()
+    } else {
+        console.log('取消收藏')
+        
+    }
+
+}
+const collectDialog = ref(false)
+const collectLoad = ref(false)
+const collectModalClose = ()=>{
+    collectDialog.value = false
+   
+}
+const collectModalSave = async ()=>{
+     const validate = await formValidate(collectFormRef.value)
+     if (!validate) return
+}
+const collectFormRef = ref(null)
+const collectForm = ref({
+    name:'',
+    id:'',
+})
+const collectRules = ref({
+     id: [
+    {
+      required: true,
+      message: '请选择收藏夹',
+      trigger: 'change',
+    },
+  ],
+})
+const collectList = ref([])
+const getCollectList = async ()=>{
+  collectLoad.value = true
+    const { error, code, msg, data } = await collectApi.folderList(
+        {
+            contractId: contractId.value,
+        },
+    )
+  collectLoad.value = false
+    if (!error && code === 200) {
+         collectList.value = getObjValue(data)
+    } else {
+        collectList.value = []
+    }
+
+}
+const eyeClick = (data)=>{
+    console.log(data, 'eyeClick')
+}
 </script>
 
 <style lang="scss" scoped>