Browse Source

历史版本及解决冲突,添加上 filterMouseCli

“yueshang” 2 years ago
parent
commit
29e008fd6a
3 changed files with 265 additions and 89 deletions
  1. 146 0
      src/components/IdentifyFont/IdentifyFont.vue
  2. 2 2
      src/views/collect/index.vue
  3. 117 87
      src/views/myfile/MyFile.vue

+ 146 - 0
src/components/IdentifyFont/IdentifyFont.vue

@@ -1,4 +1,5 @@
 <template>
+<<<<<<< HEAD
   <!-- TODO 从我的文件过来默认进入第二形态loading,传参实现 -->
     <!-- <el-dialog v-model="isOpen" title="文字识别" width="55%"> -->
     <div class="container">
@@ -20,6 +21,88 @@
             </el-upload>
             <div v-else class="img_show">
               <img :src="toRaw(showImg)" class="avatar" />
+=======
+  <!-- <el-dialog v-model="isOpen" title="文字识别" width="55%"> -->
+  <div class="container">
+    <div v-if="thisStep === 'start'" class="up_box">
+      <div class="left_box">
+        <div class="upimg_box">
+          <!-- TODO 拖拽设置不生效问题 ,但是测试那里可以实现拖拽,离大谱-->
+          <el-upload
+            v-if="!showImg"
+            class="avatar-uploader"
+            :drag="true"
+            action="http://192.168.1.28:8080/api/upload"
+            :show-file-list="false"
+            :on-success="handleAvatarSuccess"
+            :before-upload="beforeUp"
+          >
+            <img src="@/assets/images/add.png" class="avatar" />
+            <span>将图片拖入框内/点击按钮上传图片</span>
+          </el-upload>
+          <div v-else class="img_show">
+            <img :src="toRaw(showImg)" class="avatar" />
+          </div>
+        </div>
+        <div class="sunmit_btn">
+          <el-upload
+            class="avatar-uploader"
+            action="http://192.168.1.28:8080/api/upload"
+            :show-file-list="false"
+            :on-success="handleAvatarSuccess"
+            :before-upload="beforeUp"
+          >
+            <span>选择本地图片</span>
+          </el-upload>
+        </div>
+      </div>
+      <div class="right_box">
+        <div class="upimg_box">
+          <el-upload
+            disabled
+            class="avatar-uploader"
+            action="http://192.168.1.28:8080/api/upload"
+            :show-file-list="false"
+            :on-success="handleAvatarSuccess"
+          >
+            <img src="@/assets/images/add.png" class="avatar" />
+            <span>点击按钮上传图片</span>
+          </el-upload>
+        </div>
+        <div class="sunmit_btn" @click="addlibraryImg">添加文库图片</div>
+      </div>
+    </div>
+    <div v-if="thisStep === 'loading'" class="load-box">
+      <div class="light_box">
+        <img :src="toRaw(showImg)" class="avatar" />
+        <div class="light"></div>
+      </div>
+    </div>
+    <div v-if="thisStep === 'end'" class="end_box">
+      <div class="left_box">
+        <div class="upimg_box">
+          <div class="img_show">
+            <img :src="toRaw(showImg)" class="avatar" />
+          </div>
+        </div>
+        <div class="sunmit_btn">
+          <!-- <el-upload
+                class="avatar-uploader"
+                action="http://192.168.1.28:8080/api/upload"
+                :show-file-list="false"
+                :on-success="handleAvatarSuccess"
+                :before-upload="beforeUp"
+              > -->
+          <span @click="reClick">重新选择</span>
+          <!-- </el-upload> -->
+        </div>
+      </div>
+      <div class="right_box">
+        <div class="upimg_box">
+          <el-scrollbar>
+            <div class="text_box">
+              {{ textData }}
+>>>>>>> liuqiang
             </div>
           </div>
           <div class="sunmit_btn">
@@ -87,6 +170,7 @@
         </div>
       </div>
     </div>
+<<<<<<< HEAD
     <!-- </el-dialog> -->
     <PicTree
       :openFile="openFile"
@@ -177,6 +261,68 @@
     thisStep.value = "loading";
     showImg.value = URL.createObjectURL(imgRes);
     const res = await ocrRemark(data.remark);
+=======
+  </div>
+  <!-- </el-dialog> -->
+  <PicTree
+    :openFile="openFile"
+    @close="openFile = false"
+    :fileUserTreeData="treeData"
+    @fileChangeMsg="fileChangeMsg"
+  ></PicTree>
+</template>
+
+<script setup>
+import { onMounted, ref, toRaw, watch } from "vue";
+import { ElMessage } from "element-plus";
+import Clipboard from "clipboard";
+import PicTree from "@/components/PicTree/PicTree.vue"; //选择文件发送的列表
+import { picTree } from "@/api/search/search.js";
+import { ocrRemark, preview } from "@/api/common/common.js";
+import { useRoute } from "vue-router";
+const textData = ref(""); //解析出来的文字
+const showImg = ref(); //上传的图片
+const isOpen = ref(props.openFile);
+const thisStep = ref("start"); //解析进度 start,loading,end,
+const openFile = ref(false); //控制tree显示
+const treeData = ref(); //树节点数据
+
+const props = defineProps({
+  openFile: {
+    type: Boolean,
+    default: false,
+  },
+});
+watch(
+  () => props.openFile,
+  (newValue) => {
+    // console.log(111);
+    isOpen.value = newValue;
+  }
+);
+onMounted(async () => {
+  let route = useRoute();
+  let fileId = route.query.fileId;
+  let fileType = route.query.fileType;
+  console.log("fileId", fileId);
+  console.log("fileType", fileType);
+  if (fileType === ".png" || fileType === ".jpg") {
+    const imgRes = await preview(fileId);
+    thisStep.value = "loading";
+    showImg.value = URL.createObjectURL(imgRes);
+    const res = await ocrRemark(fileId);
+    thisStep.value = "end";
+    textData.value = res.msg;
+  }
+});
+const handleAvatarSuccess = (msg, file) => {
+  // console.log("re", msg);
+  const flieData = toRaw(file);
+  // console.log("file", flieData);
+  // showImg.value = URL.createObjectURL(flieData.raw);
+  if (msg.code === 200) {
+    textData.value = msg.msg;
+>>>>>>> liuqiang
     thisStep.value = "end";
     textData.value = res.msg;
     // console.log("res", res);

+ 2 - 2
src/views/collect/index.vue

@@ -354,8 +354,8 @@ const delTabs = async () => {
 };
 //获取收藏数据
 const getCollectList = async () => {
-  const res = await listFavorite();
-  //   console.log("collectres = ", res);
+  const res = await listFavorite({page:2});
+    console.log("collectres = ", res);
   if (res.code === 200 && res.rows.length > 0) {
     tableData.value = res.rows;
   }

+ 117 - 87
src/views/myfile/MyFile.vue

@@ -126,79 +126,79 @@
                         </div>
                     </div>
                 </div>
-                <!-- 展示文件盒子 -->
-                <!-- 文件夹 -->
-                <div class="detailBox">
-                    <el-collapse v-model="folder" accordion class="collapseSell">
-                        <el-collapse-item title="文件夹" name="1" class="custom-collapse-item">
-                            <el-table :data="folderList" style="width: 100%" @selection-change="handleSelectionChange1"
-                                :single-select="true" @row-click="folderClick">
-                                <el-table-column type="selection" width="55" />
-                                <el-table-column label="名称" width="180">
-                                    <template #default="scope">
-                                        <span>
-                                            <img src="../../assets/images/fileBox.png" style="width: 20px;height: 24px;"
-                                                alt="">
-                                            {{ scope.row.dirName }}
-                                        </span>
-                                    </template>
-                                </el-table-column>
-                                <el-table-column prop="createTime" label="时间" width="180" />
-                                <el-table-column prop="dirType" label="类型">
-                                    <template #default="scope">
-                                        <span>{{ scope.row.dirType === "1" ? "文件夹" : "未知类型" }}</span>
-                                    </template>
-                                </el-table-column>
-                                <el-table-column label="大小">
-                                    <template #default="scope">
-                                        <span>
-                                            10KB
-                                        </span>
-                                    </template>
-                                </el-table-column>
+                <!-- 展示文件盒子 -->
+                    <!-- 文件夹 -->
+                    <div class="detailBox">
+                        <el-collapse v-model="folder" accordion class="collapseSell">
+                            <el-collapse-item title="文件夹" name="1" class="custom-collapse-item">
+                                <el-table :data="folderList" style="width: 100%" @selection-change="handleSelectionChange1"
+                                    :single-select="true" @row-click="folderClick">
+                                    <el-table-column type="selection" width="55" />
+                                    <el-table-column label="名称" width="180">
+                                        <template #default="scope">
+                                            <span>
+                                                <img src="../../assets/images/fileBox.png" style="width: 20px;height: 24px;"
+                                                    alt="">
+                                                {{ scope.row.dirName }}
+                                            </span>
+                                        </template>
+                                    </el-table-column>
+                                    <el-table-column prop="createTime" label="时间" width="180" />
+                                    <el-table-column prop="dirType" label="类型">
+                                        <template #default="scope">
+                                            <span>{{ scope.row.dirType === "1" ? "文件夹" : "未知类型" }}</span>
+                                        </template>
+                                    </el-table-column>
+                                    <el-table-column label="大小">
+                                        <template #default="scope">
+                                            <span>
+                                                10KB
+                                            </span>
+                                        </template>
+                                    </el-table-column>
 
-                            </el-table>
-                        </el-collapse-item>
-                    </el-collapse>
-                </div>
-                <!-- 文件 -->
-                <div class="fileTable">
-                    <el-collapse v-model="files" accordion class="collapse" style="height: 200px;">
-                        <el-collapse-item title="文件" name="2" class="">
-                            <el-table :data="fileList" style="width: 100%" @row-click="handleRowClick"
-                                @selection-change="handleSelectionChange">
-                                <el-table-column type="selection" width="55" />
-                                <el-table-column label="名称" width="200">
-                                    <template #default="scope">
-                                        <span style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">
-                                            <el-icon v-if="collectImg">
-                                                <Star />
-                                            </el-icon>
-                                            <img v-else src="../../assets/images/yellowstar.png" alt="">
-                                            <img :src="getImage(scope.row.fileType)" alt="">
-                                            {{ scope.row.fileName }}
-                                        </span>
-                                    </template>
-                                </el-table-column>
-                                <el-table-column prop="createTime" label="时间" width="180" />
-                                <el-table-column prop="fileType" label="类型" />
-                                <el-table-column label="大小">
-                                    <template #default="scope">
-                                        <span>
-                                            {{ scope.row.fileSize }}KB
-                                        </span>
-                                    </template>
-                                </el-table-column>
+                                </el-table>
+                            </el-collapse-item>
+                        </el-collapse>
+                    </div>
+                    <!-- 文件 -->
+                    <div class="fileTable">
+                        <el-collapse v-model="files" accordion class="collapse" style="height: 200px;">
+                            <el-collapse-item title="文件" name="2" class="">
+                                <el-table :data="fileList" style="width: 100%" @row-click="handleRowClick"
+                                    @selection-change="handleSelectionChange">
+                                    <el-table-column type="selection" width="55" />
+                                    <el-table-column label="名称" width="200">
+                                        <template #default="scope">
+                                            <span style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">
+                                                <el-icon v-if="collectImg">
+                                                    <Star />
+                                                </el-icon>
+                                                <img v-else src="../../assets/images/yellowstar.png" alt="">
+                                                <img :src="getImage(scope.row.fileType)" alt="">
+                                                {{ scope.row.fileName }}
+                                            </span>
+                                        </template>
+                                    </el-table-column>
+                                    <el-table-column prop="createTime" label="时间" width="180" />
+                                    <el-table-column prop="fileType" label="类型" />
+                                    <el-table-column label="大小">
+                                        <template #default="scope">
+                                            <span>
+                                                {{ scope.row.fileSize }}KB
+                                            </span>
+                                        </template>
+                                    </el-table-column>
 
-                            </el-table>
-                            <div class="setCli" v-if="cliCC">
-                                <template v-for="(item, index) in mouseCli">
-                                    <p @click="chooseSet(item, index)" class="chooseSet">
-                                        <img :src="item.img" alt="">
-                                        {{ item.name }}
-                                        <span v-if="item.name == '在线编辑' || item.name == '协作' ? true : false"
-                                            style="color: #7084B4;float: right;position: relative;">></span>
-                                    </p>
+                                </el-table>
+                                <div class="setCli" v-if="cliCC">
+                                    <template v-for="(item, index) in filterMouseCli()">
+                                        <p @click="chooseSet(item, index)" class="chooseSet">
+                                            <img :src="item.img" alt="">
+                                            {{ item.name }}
+                                            <span v-if="item.name == '在线编辑' || item.name == '协作' ? true : false"
+                                                style="color: #7084B4;float: right;position: relative;" class="arrow">></span>
+                                        </p>
                                 </template>
                                 <div class="setCli1" v-if="anyP">
                                     <p @click="chooseSet1()" class="chooseSet">
@@ -430,6 +430,9 @@
     :fileUserTreeData="fileUserTreeData.data"
   ></historyList>
   <!-- 历史版本 -->
+    <FileTreeChoice :openFile="openForwardFile" :docId="clickRowId.toString()" @close="openForwardFile = false"
+        :fileUserTreeData="fileUserTreeData.data" @forwardChangeMsg="forwardChangeMsg"></FileTreeChoice>
+    <!-- 历史版本 -->
 </template>
 
 <script>
@@ -505,7 +508,7 @@ export default {
         let needBag = ref("")
         let copyOrMove = ref(0)//0代表复制,1代表移动
         let sortNum = ref(0)
-        const openForwardFile=ref(false)   //历史版本展示
+        const openForwardFile = ref(false)   //历史版本展示
         const fileUserTreeData = reactive({ data: {} });
         let boserForm = ref({
             spaceId: "",//空间id
@@ -566,6 +569,10 @@ export default {
         ])
         let mouseCli = ref([
             {
+                img: ImgFile.previewIcon,
+                name: "预览"
+            },
+            {
                 img: ImgFile.addolder,
                 name: "移动",
             },
@@ -614,10 +621,6 @@ export default {
                 name: "历史版本"
             },
             {
-                img: ImgFile.previewIcon,
-                name: "预览"
-            },
-            {
                 img: ImgFile.trash,
                 name: "删除"
             }
@@ -857,7 +860,11 @@ export default {
             }
             if (row.name === '文字识别') {
                 router.push({
-                    path: '/identifyFont'
+                    path: '/identifyFont',
+                    query:{
+                        fileId:copyFileId.value,
+                        fileType:copyFileType.value
+                    }
                 })
             }
             if (row.name === '预览') {
@@ -868,10 +875,10 @@ export default {
                 const res = await preview(copyFileId.value)
                 previewData.value = URL.createObjectURL(res)
                 // console.log('res',res);
-            }else if(row.name ==="历史版本"){
-                const resHistory=await listVersion({docId:clickRowId.value})
+            } else if (row.name === "历史版本") {
+                const resHistory = await listVersion({ docId: clickRowId.value })
                 fileUserTreeData.data = resHistory.rows;
-                openForwardFile.value=true
+                openForwardFile.value = true
             }
         }
         function chooseSet1() {
@@ -1049,9 +1056,9 @@ export default {
             }
         }
         function delName(row, num) {
-            fileSpace.delFileSpace(row.spaceId).then(res => {
+            documents.delDocument(row.dirId).then(res => {
                 if (res.code === 200) {
-                    getAllMiddle()
+                    getAllTop()
                     ElMessage({
                         message: "删除成功",
                         type: "success"
@@ -1219,8 +1226,21 @@ export default {
         //历史版本
         // 点击转存
         const forwardTreeData = reactive({ data: {} });
-        onMounted(() => {
+        function forwardChangeMsg(val) {}
+
+        //对mouseCli数组进行筛选,实现菜单的区分显示
+        const filterMouseCli = ()=>{
+            const typeArr = ['.png','.jpg','.jpeg','.JPG','.mp3','.mp4']
+            let arr = []
+            if(!typeArr.includes(copyFileType.value)){
+                arr = mouseCli.value.filter(item=>item.name !== "预览")
+            }else{
+                arr = mouseCli.value.filter(item=>item.name !== "在线编辑" && item.name !== "协作" && item.name !== "历史版本")
+            }
+            return arr
+        }        onMounted(() => {
             getAllTop()
+            getAllCollect()
             getAllUser()
             getAllCollect()
         })
@@ -1343,7 +1363,8 @@ export default {
             impSpaceId,
             openForwardFile,//历史版本
             forwardTreeData,
-            fileUserTreeData
+            fileUserTreeData,
+            filterMouseCli
         }
 
     },
@@ -1360,7 +1381,7 @@ export default {
 
 </script>
 
-<style scoped>
+<style lang="scss" scoped>
 p {
     margin: 0;
     padding: 0;
@@ -1518,14 +1539,15 @@ p {
 
 .setCli {
     width: 156px;
-    height: 350px;
+    max-height: 380px;
     position: absolute;
     top: -70px;
     left: 300px;
+    flex-wrap: 400;
     background-color: white;
     border: 1px solid gray;
     border-radius: 4px;
-    z-index: 2;
+    z-index: 10;
     overflow-y: auto;
 }
 
@@ -1547,6 +1569,14 @@ p {
     height: 30px;
     line-height: 30px;
     margin: 5px auto;
+
+    // display: flex;
+    // align-items: center;
+    // position: relative;
+    img{
+        margin-right: 4px;
+        vertical-align: middle;
+    }
 }
 
 .chooseSet:hover {