liuQiang 1 жил өмнө
parent
commit
644ff50ecb

BIN
public/logos.png


+ 19 - 0
src/api/biz/template.js

@@ -42,3 +42,22 @@ export function delTemplate(tmplId) {
     method: 'delete'
   })
 }
+// 查询使用文档模板的人员
+export function getTemplateUsers() {
+  return request({
+    url: '/biz/template/users',
+    method: 'get'
+  })
+}
+// 上传文档模板-多文件
+export function uploadTemplates(data) {
+  return request({
+    url: '/biz/template/uploadFiles',
+    method: 'post',
+    data: data,
+    timeout: 10*60*1000,//配置超时时间
+		headers: {
+		    'Content-Type': 'multipart/form-data'
+		},
+  })
+}

+ 1 - 1
src/components/Pdf2Word/Pdf2Word.vue

@@ -55,7 +55,7 @@
             :show-file-list="false"
             :on-success="handleAvatarSuccess"
           >
-            <img src="@/assets/images/home/p2wR.png" class="avatar" />
+            <img @click="addlibraryImg" src="@/assets/images/home/p2wR.png" class="avatar" />
             <span>点击按钮选择文件</span>
           </el-upload>
         </div>

+ 10 - 2
src/components/previewTemp/previewTemp.vue

@@ -6,7 +6,7 @@
       @close="close"
       title="11"
     > -->
-    <jjtOnlyOffice :option="obj" />
+    <jjtOnlyOffice :option="obj" :usersArr="usersArr" />
     <!-- </el-dialog> -->
   </div>
 </template>
@@ -15,6 +15,7 @@
 import jjtOnlyOffice from "@/components/OnlyOffice/index.vue";
 import { ref, toRaw, onMounted, inject, onActivated, watch } from "vue";
 import { useRouter, useRoute, onBeforeRouteUpdate } from "vue-router";
+import { getTemplateUsers } from "@/api/biz/template.js";
 import { ElMessage } from "element-plus";
 import useUserStore from "@/store/modules/user";
 const props = defineProps({
@@ -27,6 +28,7 @@ const props = defineProps({
     default: false,
   },
 });
+const usersArr = ref([])
 const obj = ref({
   key: "",
   url: "", //在线文档地址
@@ -71,8 +73,14 @@ function handleOpen(itemObj) {
     name: useUserStore().uname, //用户姓名
   };
 }
+const getUsers = async () => {
+  const res = await getTemplateUsers();
+  console.log("res",res.data);
+  usersArr.value = res.data
+};
 onMounted(() => {
   let route = useRoute();
+  getUsers()
   console.log("route", route.query);
   if (route.query.str) {
     const objPre = JSON.parse(route.query.str);
@@ -81,7 +89,7 @@ onMounted(() => {
   } else if (route.query.itemStr) {
     const itemObj = JSON.parse(route.query.itemStr);
     // console.log("itemObj", itemObj);
-    handleOpen(itemObj)
+    handleOpen(itemObj);
   } else {
     obj.value = props.option;
     // console.log("obj", obj.value);

+ 1 - 1
src/layout/indexCommon.vue

@@ -4,7 +4,7 @@
       <el-header class="nav" style="position: sticky; top: 0; left: 0; width: 100%; z-index: 999">
         <div class="nav-top">
           <div>
-            <img class="logoImg" src="@/assets/images/logos.png" /><span>聚合智慧文档管理系统</span>
+            <img class="logoImg" src="../../public/logos.png" /><span>聚合智慧文档管理系统</span>
           </div>
           <div class="search">
             <el-input v-model="searchText" maxlength="32" class="w-50 m-2" size="small"

+ 4 - 1
src/permission.js

@@ -53,7 +53,10 @@ router.beforeEach((to, from, next) => {
       // 在免登录白名单,直接进入
       next()
     } else {
-      next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
+      // if (window!=top){
+        top.location.href = `/login?redirect=${to.fullPath}`;
+      // }
+      // next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
       NProgress.done()
     }
   }

+ 103 - 3
src/views/biz/template/index.vue

@@ -32,6 +32,11 @@
         </el-button>
       </el-col>
       <el-col :span="1.5">
+        <el-button type="info" plain icon="Upload" @click="handleUpload" v-hasPermi="['biz:template:add']">
+          上传
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
         <el-button
           type="success"
           plain
@@ -63,21 +68,31 @@
       <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
-    <el-table v-loading="loading" :data="templateList" @selection-change="handleSelectionChange">
+    <el-table v-loading="loading" :data="templateList"  @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="模板ID" align="center" prop="tmplId" />
       <el-table-column label="模板类型" align="center" prop="tmplType" />
-      <el-table-column label="模板名称" align="center" prop="tmplName" />
+      <el-table-column label="模板名称" align="center" prop="tmplName" :show-overflow-tooltip="true" />
       <el-table-column label="创建人" align="center" prop="createBy" />
       <el-table-column label="创建时间" align="center" prop="createTime" width="180">
         <template #default="scope">
+<<<<<<< HEAD
           <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+=======
+          <!-- <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> -->
+          <span>{{scope.row.createTime}}</span>
+>>>>>>> liuqiang
         </template>
       </el-table-column>
       <el-table-column label="更新人" align="center" prop="updateBy" />
       <el-table-column label="更新时间" align="center" prop="updateTime" width="180">
         <template #default="scope">
+<<<<<<< HEAD
           <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+=======
+          <!-- <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span> -->
+          <span>{{ scope.row.updateTime }}</span>
+>>>>>>> liuqiang
         </template>
       </el-table-column>
       <el-table-column label="备注" align="center" prop="remark" />
@@ -161,13 +176,35 @@
      height="800px" class="iframeBox" ></iframe>
     </el-dialog>
   </div>
+    <!-- 文件上传 -->
+  <div>
+      <el-dialog v-model="uploadModal" title="上传文件模板" :close-on-click-modal="false" width="30%" @close="closeUpload">
+          <el-upload class="upload-demo" accept=".docx,.doc,.wps,.xls,.et,.xlsx,.ppt,.pptx,.dps" :file-list="fileArr" :limit="10"  drag :http-request="onSuccess" multiple :on-remove="handleRemove"  
+          element-loading-text="上传中..."
+          element-loading-background="rgba(255, 255, 255, 0.8)"
+          v-loading="loadingUpload" >
+              <el-icon class="el-icon--upload"><upload-filled /></el-icon>
+              <div class="el-upload__text">拖入或<em>点击上传</em></div>
+              <template #tip>
+                  <div class="el-upload__tip">请选择或拖入文件(一次最多上传10个文件)</div>
+              </template>
+          </el-upload>
+          <template #footer>
+              <span class="dialog-footer">
+                  <el-button @click="closeUpload">取消</el-button>
+                  <el-button type="primary" @click="throttleSureUpload">确认</el-button>
+              </span>
+          </template>
+      </el-dialog>
+  </div>
 </template>
 
 <script setup name="Template">
-import { listTemplate, getTemplate, delTemplate, addTemplate, updateTemplate } from '@/api/biz/template'
+import { listTemplate, getTemplate, delTemplate, addTemplate, updateTemplate,uploadTemplates } from '@/api/biz/template'
 import jjtOnlyOffice from '@/components/OnlyOffice/index.vue'
 import previewTemp from '@/components/previewTemp/previewTemp.vue'
 import useUserStore from "@/store/modules/user";
+import { ElMessage} from 'element-plus'
 const { proxy } = getCurrentInstance()
 
 const templateList = ref([])
@@ -181,6 +218,10 @@ const total = ref(0)
 const title = ref('')
 const showPreview = ref(false)
 const fullscreen = ref(false)
+const uploadModal = ref(false)
+const fileArr = ref([])
+const loadingUpload = ref(false)
+const throttled = ref(false)
 const preUrl = ref('')
   let option = ref({
     key: '',
@@ -270,7 +311,66 @@ function handleAdd() {
   open.value = true
   title.value = '添加文档模板'
 }
+/** 上传按钮操作 */
+function handleUpload() {
+  uploadModal.value = true
+}
+const closeUpload = ()=>{
+  uploadModal.value = false
+}
+function onSuccess(files, val) {
+        fileArr.value.push(files.file)
+}
+// 移除上传的某些文件
+const handleRemove = (file,rawFile) => {
+    fileArr.value = rawFile.map(item=>{
+        if(item.raw){
+            return item.raw
+        }else{
+            return item
+        }
+    })
+}
+const throttleSureUpload = ()=>{
+  console.log('fileArr',fileArr.value);
+  if (!throttled.value) {
+        sureUpload();
+        throttled.value = true;
+        setTimeout(() => {
+            throttled.value = false;
+        }, 1000); // 设置节流的时间间隔为 1000 毫秒(1秒)
+    }
+}
+// 确认上传
+function sureUpload() {
+    loadingUpload.value = true;
+
+  if (fileArr.value.length > 0) {
+    let form=new FormData();
+    for (var i = 0; i < fileArr.value.length; i++) {
+      form.append("files",fileArr.value[i]);
+    }
+    // console.error(fileArr.value);
+    uploadTemplates(form).then(res => {
+            ElMessage({
+                message: "上传文件成功",
+                type: "success"
+            })
+            // getAllTop()
+            uploadModal.value = false
+            loadingUpload.value = false;
+            fileArr.value = []
+            resetQuery()
+    }).catch(err => {
+        loadingUpload.value = false;
+        fileArr.value = []
+    })
+  } else {
+      loadingUpload.value = false;
+      return ElMessage({ message: "请选择文件", type: "error" })
+  }
 
+}
 /** 修改按钮操作 */
 function handleUpdate(row) {
   reset()

+ 2 - 1
src/views/department/MyFile.vue

@@ -513,6 +513,7 @@ import blueLeft from '../../assets/images/blueLeft.png'
 import grayRight from "../../assets/images/grayRight.png"
 import sort from '../../assets/images/sort.png'
 import squre from '../../assets/images/squre.png'
+import delImg from '../../assets/images/trash.png'
 import level1 from "@/assets/images/level1.png";
 import level2 from "@/assets/images/level2.png";
 import level3 from "@/assets/images/level3.png";
@@ -630,7 +631,7 @@ export default {
             //     name: "分享给"
             // },
             {
-                img: ImgFile.trash,
+                img: delImg,
                 name: "删除"
             },
         ])

+ 1 - 1
src/views/highSearch/HighSearch.vue

@@ -1,7 +1,7 @@
 <template>
 <div class="container">
     <div class="logo">
-      <img src="@/assets/images/logos.png" alt="" />
+      <img src="../../../public/logos.png" alt="" />
       <div class="font">聚合智慧文档管理系统</div>
     </div>
     <div class="search_box">

+ 2 - 1
src/views/myfile/MyFile.vue

@@ -598,6 +598,7 @@ import blueLeft from '../../assets/images/blueLeft.png'
 import grayRight from "../../assets/images/grayRight.png"
 import sort from '../../assets/images/sort.png'
 import squre from '../../assets/images/squre.png'
+import delImg from '../../assets/images/trash.png'
 import level1 from "@/assets/images/level1.png";
 import level2 from "@/assets/images/level2.png";
 import level3 from "@/assets/images/level3.png";
@@ -702,7 +703,7 @@ export default {
         ])
         let useMenu = ref([
             {
-                img: ImgFile.trash,
+                img: delImg,
                 name: "删除"
             },
         ])

+ 2 - 1
src/views/publicment/MyFile.vue

@@ -507,6 +507,7 @@ import blueLeft from '../../assets/images/blueLeft.png'
 import grayRight from "../../assets/images/grayRight.png"
 import sort from '../../assets/images/sort.png'
 import squre from '../../assets/images/squre.png'
+import delImg from '../../assets/images/trash.png'
 import level1 from "@/assets/images/level1.png";
 import level2 from "@/assets/images/level2.png";
 import level3 from "@/assets/images/level3.png";
@@ -627,7 +628,7 @@ export default {
             //     name: "分享给"
             // },
             {
-                img: ImgFile.trash,
+                img: delImg,
                 name: "删除"
             },
         ])