Răsfoiți Sursa

修改历史版本的bug

“yueshang” 1 an în urmă
părinte
comite
216b2412d0

+ 9 - 8
src/components/historyList/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-dialog v-model="isOpen" append-to-body width="700" @close="closeOpen">
+    <el-dialog v-model="isOpen" append-to-body width="950" @close="closeOpen">
       <template #header>
         <div class="my-header">
           <div class="title">历史版本列表 — {{ name }}</div>
@@ -10,6 +10,7 @@
         <div
           class="main-cont-left"
           style="display: flex; flex-direction: column"
+          v-if="treeData.length>0"
         >
           <div
             v-for="(item, index) in treeData"
@@ -27,6 +28,7 @@
             <img :src="eyes" @click="previewFileClick(item)" class="eyes" />
           </div>
         </div>
+        <div v-else style="text-align: center;">暂无历史版本记录</div>
         <pagination
           v-show="total > 0"
           :total="total"
@@ -85,6 +87,7 @@ const props = defineProps({
 const opent = ref(true);
 const total = ref(0);
 watchEffect(() => {
+  console.log('props.historyTotal', props.historyTotal)
   total.value=props.historyTotal
 });
 
@@ -103,21 +106,19 @@ watch(
   }
 );
 const treeData =ref([])
-// watchEffect(() => {
-//   treeData.value = props.fileUserTreeData;
-//   toRaw(treeData.value);
-// });
+watchEffect(() => {
+  treeData.value = props.fileUserTreeData;
+  toRaw(treeData.value);
+});
 const getList=async()=>{
   console.log('page', pageNum.value)
   nextTick(async ()=>{
     const resHistory = await listVersion({pageNum:pageNum.value,pageSize:pageSize.value,docId: props.docId })
   treeData.value =resHistory.rows
-  console.log('toRaw(treeData.value)', toRaw(treeData.value))
   total.value=resHistory.total
 
   })
 }
-getList()
 //树
 const clickData = ref({});
 const handleNodeClick = (data) => {
@@ -193,7 +194,7 @@ const closeOpen = () => {
   content: "";
   position: absolute;
   top: 1%;
-  left: 2.2%;
+  left: 1.7%;
   transform: translate(0, -50%);
   width: 1.5px;
   height: 60%;

+ 2 - 0
src/layout/indexCommon.vue

@@ -191,6 +191,8 @@ const toSearch = async () => {
     keyword: searchText.value,
     isAsc: "asc",
     orderByColumn: "createTime",
+    pageSize:3,
+    pageNum:1
   };
   const res = await flieSearch(query);
   // console.log("res", res);

+ 72 - 0
src/views/collect/index.vue

@@ -1,5 +1,36 @@
 <template>
   <div class="container">
+    <div class="statistics">
+      <div class="left_box">
+        <div class="dataNum">共查询到个相关结果</div>
+      </div>
+      <div class="right_box">
+        <img
+          src="@/assets/images/sort.png"
+          @click="changeSort"
+          v-if="isAsc == 'asc'"
+          alt=""
+        />
+        <img
+          src="@/assets/images/Frame_188.png"
+          @click="changeSort"
+          v-else
+          alt=""
+        />
+        <img
+          v-if="isList"
+          src="@/assets/images/squre.png"
+          alt=""
+          @click="changeShow"
+        />
+        <img
+          v-else
+          src="@/assets/images/Frame_187.png"
+          alt=""
+          @click="changeShow"
+        />
+      </div>
+    </div>
     <!-- 标签 -->
     <div class="tags">
       <!-- TODO 标签可以拖动位置 -->
@@ -237,6 +268,7 @@ const isAddCollect = ref(false); //是否在添加标签
 const tabName = ref(""); //新增的标签名
 const changeTabName = ref(""); //修改的标签名
 const tabList = ref([]);
+const isAsc = ref("asc");
 const tableData = [
   {
     date: "2016-05-03",
@@ -454,6 +486,11 @@ const rowDrop = () => {
 
 const tabchange = async (labelId) => {
   console.log("labelId", toRaw(labelId));
+  const query = {
+    labelId,
+    isAsc: isAsc.value,
+    orderByColumn: "createTime",
+  }; 
   // 获取当前标签下的数据
   const res = await listFavoriteById(labelId);
   // console.log("res", res);
@@ -462,6 +499,13 @@ const tabchange = async (labelId) => {
   console.log("folderArr", folderArr.value);
   console.log("fileArr", fileArr.value);
 };
+const changeShow = () => {
+  isList.value = !isList.value;
+};
+const changeSort = async () => {
+  isAsc.value == "asc" ? (isAsc.value = "desc") : (isAsc.value = "asc");
+  // console.log("res", res);
+};
 
 // 工具函数
 //获取新增标签时要赋予的ordername
@@ -487,6 +531,34 @@ const sortArr = (field) => {
   height: 100%;
   background-color: #fff;
   border-radius: 4px;
+  .statistics {
+    width: 100%;
+    height: 40px;
+    background-color: #D9E0F0;
+    padding-left: 16px;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    color: #6F85B5;
+    .left_box {
+      display: flex;
+      align-items: center;
+      .dataNum {
+        margin-left: 4px;
+        font-size: 14px;
+        font-weight: 400;
+      }
+    }
+    .right_box {
+      width: 50px;
+      display: flex;
+      justify-content: space-between;
+      margin-right: 30px;
+      img {
+        cursor: pointer;
+      }
+    }
+  }
   .tags {
     display: flex;
     width: 100%;

+ 0 - 1
src/views/liveChat/index.vue

@@ -284,7 +284,6 @@ watchEffect(async() => {
 });
 // 滚动翻页========
 const mainContainer = ref(null);
-
 const handleScroll = (event) => {
   // 在滚动到顶部时,加载上一页的聊天记录
   const mainContainer2 = document.querySelector(".right-container");

+ 124 - 82
src/views/myfile/MyFile.vue

@@ -50,7 +50,7 @@
                 </div>
             </div>
             <!-- 右侧大盒子 -->
-            <div class="mesBox" v-if="editOnline">
+            <div class="mesBox">
                 <!-- 功能盒子  -->
                 <div class="useBox">
                     <!-- table切换 -->
@@ -65,6 +65,11 @@
                             </span>
                         </template>
                     </div>
+
+                </div>
+                <!-- 展示文件夹盒子 -->
+                <!-- 文件夹 -->
+                <div v-if="editOnline">
                     <!-- 众多功能 -->
                     <div class="manyUse">
                         <div
@@ -110,7 +115,7 @@
                             <!-- 前进后退 -->
                             <div style="display: flex;justify-content: space-around;align-items: center;">
                                 <img style="display:block;width: 11px;height: 11px;" :src="blueLeft" alt=""
-                                    @click="getAllTop">
+                                    @click="arrowLift">
                                 <img style="display:block;width: 16px;height: 16px;" :src="grayRight" alt="">
                             </div>
                             <!-- 面包屑 -->
@@ -122,10 +127,10 @@
                         <!-- 右侧 -->
                         <div>
                             <img :src="sort" alt="">
-                            <img :src="squre" alt="">
+                            <img :src="squre" alt="" @click="gridChange">
                         </div>
                     </div>
-                </div>
+                <!-- </div> -->
                 <!-- 展示文件夹盒子 -->
                 <!-- 文件夹 -->
                 <div class="detailBox file-jia" @click="mouseClick">
@@ -141,7 +146,7 @@
                                             <el-icon v-if="scope.row.isFavorite == 'N'">
                                                 <Star />
                                             </el-icon>
-                                            <img v-else src="../../assets/images/yellowstar.png" alt="">
+                                            <img v-else @click.stop="delCollect(scope.row,$event)" src="../../assets/images/yellowstar.png" alt="">
                                             <img src="../../assets/images/fileBox.png" style="width: 20px;height: 24px;"
                                                 alt="">
                                             {{ scope.row.dirName }}
@@ -162,92 +167,95 @@
                                     </template>
                                 </el-table-column>
 
-                            </el-table>
-                            <PlaceGridFolder v-else :folderClick="folderClick" :restName="restName"
-                                :collectFolder="collectFolder" :getAllTop="getAllTop" @folderBack="folderBack" >
-                            </PlaceGridFolder>
-                        </el-collapse-item>
-                    </el-collapse>
-                    <!-- 右键唤出的菜单 -->
-                    <div class="right_menu" v-if="folderVisible"
-                        :style="{ left: folderleft + 'px', top: foldertop + 'px' }">
-                        <div class="menu_item" @click="folderClick(null, null)">
-                            <img src="@/assets/images/trash.png" alt="" />
-                            <span>打开</span>
-                        </div>
-                        <div class="menu_item" @click="restName(null, null)">
-                            <img src="@/assets/images/textbox.png" alt="" />
-                            <span>重命名</span>
-                        </div>
-                        <div class="menu_item" @click="collectFolder">
-                            <img src="@/assets/images/collect.png" alt="" />
-                            <span>收藏</span>
+                                </el-table>
+                                <PlaceGridFolder v-else :folderClick="folderClick" :restName="restName"
+                                    :collectFolder="collectFolder" :getAllTop="getAllTop" @folderBack="folderBack">
+                                </PlaceGridFolder>
+                            </el-collapse-item>
+                        </el-collapse>
+                        <!-- 右键唤出的菜单 -->
+                        <div class="right_menu" v-if="folderVisible"
+                            :style="{ left: folderleft + 'px', top: foldertop + 'px' }">
+                            <div class="menu_item" @click="folderClick(null, null)">
+                                <img src="@/assets/images/trash.png" alt="" />
+                                <span>打开</span>
+                            </div>
+                            <div class="menu_item" @click="restName(null, null)">
+                                <img src="@/assets/images/textbox.png" alt="" />
+                                <span>重命名</span>
+                            </div>
+                            <div class="menu_item" @click="collectFolder">
+                                <img src="@/assets/images/collect.png" alt="" />
+                                <span>收藏</span>
+                            </div>
                         </div>
                     </div>
-                </div>
-                <!-- 文件 -->
-                <div class="fileTable">
-                    <el-collapse v-model="files" accordion class="collapse" style="height: 200px;">
-                        <el-collapse-item title="文件" name="2" class="">
-                            <el-table v-if="fileGrid" :data="fileList" style="width: 100%;position: relative;"
-                                @row-contextmenu="handleRowClick" @selection-change="handleSelectionChange"
-                                @row-click="mouseClick" :default-sort="{ prop: 'createTime', order: 'descending' }">
-                                <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;">
+                    <!-- 文件 -->
+                    <div class="fileTable">
+                        <el-collapse v-model="files" accordion class="collapse" style="height: 200px;">
+                            <el-collapse-item title="文件" name="2" class="">
+                                <el-table v-if="fileGrid" :data="fileList" style="width: 100%;position: relative;"
+                                    @row-contextmenu="handleRowClick" @selection-change="handleSelectionChange"
+                                    @row-click="mouseClick" :default-sort="{ prop: 'createTime', order: 'descending' }">
+                                    <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="scope.row.isFavorite == 'N'">
                                                 <Star />
                                             </el-icon>
-                                            <img v-else src="../../assets/images/yellowstar.png" alt="">
+                                            <img v-else @click.stop="delCollect(scope.row,$event)" 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="时间" sortable width="180" />
-                                <el-table-column prop="fileType" label="类型" />
-                                <el-table-column label="大小">
-                                    <template #default="scope">
-                                        <span>
-                                            {{ formatFileSize(scope.row.fileSize) }}
-                                        </span>
-                                    </template>
-                                </el-table-column>
-                            </el-table>
-                            <PalaceGridFile v-else @showFile="showFile" :getAllTop="getAllTop" @navBack="navBack"
-                                @lastBB="lastBB" @onlineCase="onlineCase" @shareBack="shareBack" ></PalaceGridFile>
-                        </el-collapse-item>
-                    </el-collapse>
-                    <div class="setCli" v-if="cliCC" :style="{ left: xz + 'px', top: yz - 260 + 'px' }">
-                        <template v-for="(item, index) in filterMouseCli()">
-                            <p @click="chooseSet(item, index, 1)" 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>
+                                        </template>
+                                    </el-table-column>
+                                    <el-table-column prop="createTime" label="时间" sortable width="180" />
+                                    <el-table-column prop="fileType" label="类型" />
+                                    <el-table-column label="大小">
+                                        <template #default="scope">
+                                            <span>
+                                                {{ formatFileSize(scope.row.fileSize) }}
+                                            </span>
+                                        </template>
+                                    </el-table-column>
+                                </el-table>
+                                <PalaceGridFile v-else @showFile="showFile" :getAllTop="getAllTop" @navBack="navBack"
+                                    @lastBB="lastBB" @onlineCase="onlineCase" @shareBack="shareBack"></PalaceGridFile>
+                            </el-collapse-item>
+                        </el-collapse>
+                        <div class="setCli" v-if="cliCC" :style="{ left: xz + 'px', top: yz - 260 + 'px' }">
+                            <template v-for="(item, index) in filterMouseCli()" :key="index">
+                                <p @click="chooseSet(item, index, 1)" 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>
+                        <div class="setCli1" v-if="anyP" :style="{ left: xz + 155 + 'px', top: yz + 'px' }">
+                            <p @click="chooseSet1(0)" class="chooseSet">
+                                <img src="../../assets/images/user.png" alt="">
+                                选择人员
                             </p>
-                        </template>
+                            <p class="chooseSet" @click="goLock">
+                                <img src="../../assets/images/archiveTray.png" alt="">
+                                归档
+                            </p>
+                        </div>
                     </div>
-                    <div class="setCli1" v-if="anyP" :style="{ left: xz + 155 + 'px', top: yz + 'px' }">
-                        <p @click="chooseSet1(0)" class="chooseSet">
-                            <img src="../../assets/images/user.png" alt="">
-                            选择人员
-                        </p>
-                        <p class="chooseSet" @click="goLock">
-                            <img src="../../assets/images/archiveTray.png" alt="">
-                            归档
-                        </p>
                     </div>
+                <div v-else>
+                    <div>
+                        <el-button @click="editOnline = true; historyPrew = false">返回</el-button>
+                    </div>
+                    <FileEdit :docId="clickRowId" :copyRow="copyRow" :historyPrew="historyPrew"
+                        :historycopyRow="historycopyRow" :onlyView="onlyView" @cancleHistoryPrew="cancleHistoryPrew">
+                    </FileEdit>
                 </div>
             </div>
-            <div v-else>
-                <div>
-                    <el-button @click="editOnline = true; historyPrew = false">返回</el-button>
-                </div>
-                <FileEdit :docId="clickRowId" :copyRow="copyRow" :historyPrew="historyPrew" :historycopyRow="historycopyRow"
-                    :onlyView="onlyView" @cancleHistoryPrew="cancleHistoryPrew"></FileEdit>
-            </div>
+
             <!-- 扩容弹窗 -->
             <div>
                 <SpaceBig v-if="spaces" :spaces="spaces" :impSpaceId="impSpaceId" @getSpaceC="getSpaceC"></SpaceBig>
@@ -331,6 +339,7 @@
 <script>
 import { ref, toRaw, onMounted } from 'vue'
 import myfile from '../../api/myfile/myfile'
+import { delFavorite } from '@/api/biz/favorite.js'
 import documents from '../../api/document/document'
 import fileCount from '../../api/fileCount/fileCount'
 import FileTree from './components/FileTree.vue'
@@ -357,6 +366,7 @@ import { listVersion } from "@/api/biz/version";
 import useUserStore from "@/store/modules/user";
 import { useRouter, useRoute } from "vue-router";
 import { canPreviewFile } from "@/utils/index.js"
+
 export default {
     setup() {
         const { proxy } = getCurrentInstance();
@@ -617,7 +627,7 @@ export default {
                 }
                 // }
             })
-            this.selectedIndex = num
+            selectedIndex.value = num
             const newItem = {
                 name: row.dirName,
                 choose: row.dirName,
@@ -636,6 +646,9 @@ export default {
         function tableChange(row, num) {
             if (row.name == '我的空间') {
                 getAllTop()
+                if (!editOnline.value) {
+                    editOnline.value = true
+                }
             } else {
                 let obj = {
                     pageNum: 1,
@@ -671,6 +684,9 @@ export default {
         function shotdown(row) {
             menuList.value = menuList.value.filter(item => item.name !== row.name)
             selectedIndex.value = -1
+            if (!editOnline.value) {
+                editOnline.value = true
+            }
         }
         // 文件名表格每一行点击事件
         function handleRowClick(row, col, e) {
@@ -750,6 +766,19 @@ export default {
             if (row.name === '在线编辑') {
                 editOnline.value = false
                 cliCC.value = false
+                const newItem = {
+                    name: copyFileName.value,
+                    choose: copyFileId.value,
+                    dirIds: copyDirId.value,
+                    spaceIds: copySpaceId.value
+                };
+                // 检查 newItem 是否已存在于 menuList 中
+                const isItemExist = menuList.value.some(item => item.choose === newItem.choose);
+                // 如果不存在,则添加它
+                if (!isItemExist) {
+                    menuList.value.push(newItem);
+                }
+                selectedIndex.value = selectedIndex.value + 1
             }
             if (row.name === '文字识别') {
                 router.push({
@@ -1138,7 +1167,6 @@ export default {
             // thisFolder.value = ''
             copyFileName.value = thisFolder.value.dirName
             collects.value = true
-            // console.log('thisFolder',thisFolder.value);
         }
         // 左箭头事件
         const arrowLift = () => {
@@ -1207,6 +1235,18 @@ export default {
                 getAllTop()
             }
         }
+        // 取消文件收藏
+        const delCollect = async (row,e)=>{
+            const thisRow = toRaw(row)
+            console.log('thisRow',thisRow);
+            // console.log('e',e);
+            if(thisRow.dirType){
+                const res = await delFavorite(thisRow.dirId)
+            }else{
+                const res = await delFavorite(thisRow.docId)
+            }
+            console.log('res',res);
+        }
         onMounted(() => {
             getAllTop()
             getSpaceList()
@@ -1359,7 +1399,8 @@ export default {
             lastBB,
             shareBack,
             folderBack,
-            refreshFile
+            refreshFile,
+            delCollect
         }
     },
     watch: {
@@ -1459,7 +1500,7 @@ p {
 
 .useBox {
     width: 100%;
-    height: 96px;
+    height: 24px;
 }
 
 .tables {
@@ -1540,6 +1581,7 @@ p {
 .fileTable {
     height: 100%;
     overflow-y: hidden;
+    margin-top: 55px;
 }
 
 .setCli {

+ 74 - 0
vite.config.js

@@ -0,0 +1,74 @@
+import {
+	defineConfig,
+	loadEnv
+} from 'vite'
+import path from 'path'
+import createVitePlugins from './vite/plugins'
+
+// https://vitejs.dev/config/
+export default defineConfig(({
+	mode,
+	command
+}) => {
+	const env = loadEnv(mode, process.cwd())
+	const {
+		VITE_APP_ENV
+	} = env
+	return {
+		// 部署生产环境和开发环境下的URL。
+		// 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上
+		// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
+		base: VITE_APP_ENV === 'production' ? '/' : '/',
+		plugins: createVitePlugins(env, command === 'build'),
+		resolve: {
+			// https://cn.vitejs.dev/config/#resolve-alias
+			alias: {
+				// 设置路径
+				'~': path.resolve(__dirname, './'),
+				// 设置别名
+				'@': path.resolve(__dirname, './src')
+			},
+			// https://cn.vitejs.dev/config/#resolve-extensions
+			extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
+		},
+		// vite 相关配置
+		server: {
+			port: 81,
+			host: true,
+			open: true,
+			proxy: {
+				// https://cn.vitejs.dev/config/#server-proxy
+				'/dev-api': {
+					target: 'http://192.168.1.28:8080/',
+					// target: 'http://8.142.173.95:19527/',
+					// target:'http://192.168.1.28:8080/',
+					changeOrigin: true,
+					rewrite: (p) => p.replace(/^\/dev-api/, '')
+				},
+				//websocket代理
+				'/websocket': {				
+					// target:'ws://8.142.173.95:19527/websocket',
+					target:'ws://192.168.1.28:8080/websocket',
+					// target:'ws://192.168.1.11:8080/websocket',
+					changeOrigin: true,
+					rewrite: (p) => p.replace(/^\/websocket/, '')
+				}
+			}
+		},
+		//fix:error:stdin>:7356:1: warning: "@charset" must be the first rule in the file
+		css: {
+			postcss: {
+				plugins: [{
+					postcssPlugin: 'internal:charset-removal',
+					AtRule: {
+						charset: (atRule) => {
+							if (atRule.name === 'charset') {
+								atRule.remove();
+							}
+						}
+					}
+				}]
+			}
+		}
+	}
+})