Просмотр исходного кода

Merge branch 'v3' of ssh://94.191.59.107:10222/houwenfeng/cloudfile-ui into v3

wukai 2 лет назад
Родитель
Сommit
d0f0196abd

BIN
src/assets/images/profile.jpg


BIN
src/assets/images/profile.png


+ 1 - 1
src/layout/indexCommon.vue

@@ -31,7 +31,7 @@
             >
               <div class="avatar-wrapper">
                 <img
-                  src="@/assets/images/profile.jpg"
+                  src="@/assets/images/profile.png"
                   class="head-img"
                 /><span>{{ logingName }}</span>
               </div>

+ 1 - 1
src/store/modules/user.js

@@ -9,7 +9,7 @@ import {
 	setToken,
 	removeToken
 } from '@/utils/auth'
-import defAva from '@/assets/images/profile.jpg'
+import defAva from '@/assets/images/profile.png'
 import useWebsoctStore from '@/store/modules/websocket'
 const useUserStore = defineStore(
 	'user', {

+ 12 - 0
src/utils/index.js

@@ -15,6 +15,18 @@ export function formatDate(cellValue) {
   return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
 }
 
+
+/**
+ * 判断该文件是否可以预览
+ * @param {string} fileType
+ */
+export const canPreviewFile = (fileType)=>{
+    const array = ['.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.epub', '.fodt', '.htm', '.html', '.mht', '.odt', '.ott', '.pdf', '.rtf', '.txt', '.djvu', '.xps','csv', 'fods', 'ods', 'ots', 'xls', 'xlsm', 'xlsx', 'xlt', 'xltm', 'xltx','fodp', 'odp', 'otp', 'pot', 'potm', 'potx', 'pps', 'ppsm', 'ppsx', 'ppt', 'pptm', 'pptx']
+    if(array.includes(fileType)){
+      return true
+    }
+    return false
+}
 /**
  * @param {number} time
  * @param {string} option

+ 2 - 2
src/views/department/Department.vue

@@ -272,7 +272,7 @@
             </div>
             <!-- 新建组织目录 -->
             <div>
-                <el-dialog v-model="directoryModal" title="扩容申请" width="55%">
+                <el-dialog v-model="directoryModal" title="新建目录" width="55%">
                     <el-form :data="v1form">
                         <el-form-item label="目录名称">
                             <el-input v-model="v1form.names"></el-input>
@@ -367,7 +367,7 @@ export default {
         // let tranvalue1 = ref([])
         let v1form = ref({
             names:"",
-            types:"",
+            types:"1",
             power:[],
             tranvalue1:[]
         })

+ 18 - 11
src/views/liveChat/index.vue

@@ -8,7 +8,7 @@ import { ref, reactive, toRaw, toRefs, nextTick } from "vue";
 import { useRouter, useRoute } from "vue-router";
 import useUserStore from "@/store/modules/user";
 import word from "@/assets/images/word2.png";
-import chat from "@/assets/images/profile.jpg";
+import chat from "@/assets/images/profile.png";
 import cebian from "@/assets/images/cebian.png";
 import send from "@/assets/images/send.png";
 import downFile from "@/assets/images/down-file.png";
@@ -95,6 +95,7 @@ const getMsgList = async () => {
     msgRecordEvent(sendCont.data.toId);
   }
 };
+const noMes = ref(false);
 //获取用户的聊天记录
 const msgRecordEvent = async (toIdValue) => {
   const queryParams = {
@@ -104,6 +105,11 @@ const msgRecordEvent = async (toIdValue) => {
   const resMsgData = await msgRecord(toIdValue, queryParams);
   resMsgData.rows.map((i) => (i.isForward = false));
   chatRecords.data = resMsgData.rows.reverse();
+  const PageNum = Math.ceil(chatRecords.data.length / 10) + 1;
+  if (PageNum * 10 >= resMsgData.total && !noMes.value) {
+      loading.value = false;
+      noMes.value = true;
+    }
   const nowtime = parseTime(new Date().getTime(), "{y}-{m}-{d}");
   chatRecords.data.map((i) => {
     if (nowtime == i.createTime.substr(0, 10))
@@ -270,10 +276,11 @@ watchEffect(() => {
 });
 // 滚动翻页========
 const mainContainer=ref(null)
-const noMes = ref(false);
+
 const handleScroll = (event) => {
   // 在滚动到顶部时,加载上一页的聊天记录
   const mainContainer2 = document.querySelector(".right-container");
+  console.log(' event.deltaY', mainContainer2.scrollTop,noMes.value,loading.value)
   if (
     event.deltaY < 0 &&
     mainContainer2.scrollTop <= 1 &&
@@ -290,7 +297,7 @@ const loadPreviousPage = async () => {
     pageNum: currentPageNum,
     pageSize: 10,
   };
-  setTimeout(async () => {
+  // setTimeout(async () => {
     const resMsgData = await msgRecord(sendCont.data.toId, queryParams);
     const previousPageData = resMsgData.rows.reverse();
     chatRecords.data = [...previousPageData, ...chatRecords.data];
@@ -305,16 +312,16 @@ const loadPreviousPage = async () => {
       noMes.value = true;
       return;
     }
-    await nextTick();
-    const mainContainer = document.querySelector(".right-container");
-  const newMessages = document.querySelectorAll(".message-container");
-  const firstNewMessage = newMessages[previousPageData.length];
-  const firstNewMessageTop = mainContainer.offsetHeight +  100;
-  console.log('firstNewMessageTop', firstNewMessageTop)
-  mainContainer.scrollTop = firstNewMessageTop;
+    // await nextTick();
+    // const mainContainer = document.querySelector(".right-container");
+    // const newMessages = document.querySelectorAll(".message-container");
+    // const firstNewMessage = newMessages[previousPageData.length];
+  // const firstNewMessageTop = mainContainer.offsetHeight;
+  // console.log('firstNewMessageTop', firstNewMessageTop)
+  // mainContainer.scrollTop = firstNewMessageTop;
     // 将加载的上一页聊天记录插入到 chatRecords.data 的前面
     loading.value = false;
-  }, 50);
+  // }, 50);
 };
 const transferFiles = (forwardVal, msgIds, indexs) => {
   chatRecords.data.map((i, index) => {

+ 1 - 1
src/views/login.vue

@@ -66,7 +66,7 @@
         :rules="loginRules"
         class="center_box"
       >
-        <span class="title">Sign up to Domino’s</span>
+        <span class="title">聚合智慧文档管理系统</span>
         <el-form-item prop="username">
           <span class="ipt_title">用户名</span>
           <el-input

+ 59 - 10
src/views/myfile/MyFile.vue

@@ -83,7 +83,7 @@
                             </div>
                         </div>
                         <template v-for="(item, index) in useMenu">
-                            <div style="display: flex;width: 82px;height: 32px;justify-content: flex-start;align-items: center;line-height: 18px;"
+                            <div :class="{'isCheck':haveCheck}" style="display: flex;width: 82px;opacity:0.5;height: 32px;justify-content: flex-start;align-items: center;line-height: 18px;"
                                 @click="getMenu(item, index)">
                                 <div style="margin-left: 5px;">
                                     <img :src="item.img" style="width: 24px;height: 24px;" alt="">
@@ -233,7 +233,7 @@
                     <el-button @click="editOnline = true">返回</el-button>
                 </div>
                 <FileEdit :docId="clickRowId" :copyRow="copyRow" :historyPrew="historyPrew"
-                    :historycopyRow="historycopyRow"></FileEdit>
+                    :historycopyRow="historycopyRow" :onlyView="onlyView"></FileEdit>
             </div>
             <!-- 扩容弹窗 -->
             <div>
@@ -424,6 +424,7 @@ import historyList from "@/components/historyList/index.vue"; //选择文件发
 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() {
         let fileTrees = ref(false)//filetree父传子
@@ -622,6 +623,10 @@ export default {
         const foldertop = ref(0);
         const folderleft = ref(0);
         const thisFolder = ref({}); //当前右键的文件夹
+        const folderCheckout = ref(false)//是否有勾选
+        const fileCheckout = ref(false)//是否有勾选
+        const haveCheck = ref(false)//是否有勾选
+        const onlyView = ref(false) //预览
         function getAllCollect() {
             collect.getCollect({}).then(res => {
                 const maxAge = res.rows.reduce((max, obj) => (obj.orderNum > max ? obj.orderNum : max), res.rows[0].orderNum)
@@ -800,9 +805,23 @@ export default {
                 // console.log('row=', toRaw(row));
                 // console.log('copyFileId',copyFileId.value);//文件id
                 // console.log('copyFileType',copyFileType.value);//文件type
-                showPreview.value = true
-                const res = await preview(copyFileId.value)
-                previewData.value = URL.createObjectURL(res)
+                //---------------------------
+                // showPreview.value = true
+                // const res = await preview(copyFileId.value)
+                // previewData.value = URL.createObjectURL(res)
+                //--------------------------------------
+                const filePreview = canPreviewFile(copyFileType.value)
+                if(filePreview){
+                    onlyView.value = true
+                    editOnline.value = false
+                    cliCC.value = false
+                }else{
+                      showPreview.value = true
+                      const res = await preview(copyFileId.value)
+                      previewData.value = URL.createObjectURL(res)
+                }
+                console.log('filePreview',filePreview);
+
                 // console.log('res',res);
             } else if (row.name === "历史版本") {
                 const resHistory = await listVersion({ docId: clickRowId.value })
@@ -895,6 +914,7 @@ export default {
         }
         // 表格多选框
         function handleSelectionChange(val) {
+            console.log('checkout val',toRaw(val));
             if (val.length > 1) {
                 // 如果选择了多项,只保留最后一项
                 val.shift();
@@ -902,6 +922,15 @@ export default {
             if (val.length === 1) {
                 fileId.value = val[0].docId
             }
+            if(val.length){
+               folderCheckout.value = true 
+               haveCheck.value = true
+            }else{
+                folderCheckout.value = false
+                if(!fileCheckout.value){
+                  haveCheck.value = false
+                }
+            }
         }
         // 文件夹
         function handleSelectionChange1(val) {
@@ -912,6 +941,15 @@ export default {
             if (val.length === 1) {
                 folderId.value = val[0].dirId
             }
+             if(val.length){
+               fileCheckout.value = true 
+               haveCheck.value = true
+            }else{
+                fileCheckout.value = false
+                 if(!folderCheckout.value){
+                  haveCheck.value = false
+                }
+            }
         }
         // 重命名
         function restName(row, index) {
@@ -1107,14 +1145,18 @@ export default {
         }
 
         //对mouseCli数组进行筛选,实现菜单的区分显示
-        const filterMouseCli = () => {
-            const typeArr = ['.png', '.jpg', '.jpeg', '.JPG', '.mp3', '.mp4', '.pdf']
-            const imgTypeArr = ['.png', '.jpg', '.jpeg', '.JPG']
+        const filterMouseCli = ()=>{
+            const array = ['.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.epub', '.fodt', '.htm', '.html', '.mht', '.odt', '.ott', '.pdf', '.rtf', '.txt', '.djvu', '.xps','csv', 'fods', 'ods', 'ots', 'xls', 'xlsm', 'xlsx', 'xlt', 'xltm', 'xltx','fodp', 'odp', 'otp', 'pot', 'potm', 'potx', 'pps', 'ppsm', 'ppsx', 'ppt', 'pptm', 'pptx']
+            const typeArr = ['.png','.jpg','.jpeg','.JPG','.mp3','.mp4','.pdf']
+            const imgTypeArr = ['.png','.jpg','.jpeg','.JPG']
             let arr = []
-            if (!typeArr.includes(copyFileType.value)) {
+            if (!(typeArr.includes(copyFileType.value) || array.includes(copyFileType.value)) ) {
                 arr = mouseCli.value.filter(item => item.name !== "预览")
             } else {
-                arr = mouseCli.value.filter(item => item.name !== "在线编辑" && item.name !== "协作" && item.name !== "历史版本")
+                arr = toRaw(mouseCli.value)
+            }
+            if(!array.includes(copyFileType.value)){
+                arr = arr.filter(item => item.name !== "在线编辑" && item.name !== "协作" && item.name !== "历史版本")
             }
             if (!imgTypeArr.includes(copyFileType.value)) {
                 arr = arr.filter(item => item.name !== "文字识别")
@@ -1285,6 +1327,10 @@ export default {
             folderCase,//新建文件夹传值
             getChildrenC,
             oneOrTwo,//父传子判断
+            folderCheckout,
+            fileCheckout,
+            haveCheck,
+            onlyView
         }
 
     },
@@ -1552,6 +1598,9 @@ p {
         }
     }
 }
+.isCheck{
+    opacity: 1!important;
+}
 
 :deep(.el-tag__content) {
     display: block;

+ 6 - 2
src/views/myfile/components/FileEdit.vue

@@ -35,7 +35,11 @@ export default {
         historycopyRow:{//点击历史预览的哪项数据
             type: Object,
             default:()=>{}
-        }
+        },
+        onlyView:{
+            Boolean,
+            default:false
+        },
     },
     setup(props) {
         let docId = props.docId;
@@ -43,7 +47,7 @@ export default {
         let option = ref({
             key: '',
             url: '', //在线文档地址
-            isEdit: '', //是否允许编辑
+            isEdit: props.onlyView, //是否允许编辑
             fileType: '', //文件扩展名
             title: '', //文件标题
             user: {