QuYueTing 2 mēneši atpakaļ
vecāks
revīzija
145c90c841

+ 38 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/onlineview/viewExcel.vue

@@ -0,0 +1,38 @@
+<template>
+    <table>
+      <tr v-for="(row, index) in excelData" :key="index">
+        <td v-for="(cell, cellIndex) in row" :key="cellIndex">{{ cell }}</td>
+      </tr>
+    </table>
+  </template>
+  
+  <script>
+//   import XLSX from 'xlsx'; // 确保正确导入
+  const XLSX = require('xlsx');// 用const的方式才行
+  export default {
+    data() {
+      return {
+        fileUrl: null,
+        fileName: null,
+        excelData: [],
+      };
+    },
+    methods: {
+      async loadExcel(file) {
+        const arrayBuffer = await file.arrayBuffer();
+        const workbook = XLSX.read(arrayBuffer, { type: 'array' });
+        const sheetName = workbook.SheetNames[0];
+        const sheet = workbook.Sheets[sheetName];
+        this.excelData = XLSX.utils.sheet_to_json(sheet, { header: 1 });
+      },
+    },
+    mounted() {
+      this.fileUrl = sessionStorage.getItem("fileUrl");
+      this.fileName = sessionStorage.getItem("fileName");
+      // 示例:加载一个 .xlsx 文件
+      fetch(this.fileUrl)
+        .then((response) => response.blob())
+        .then((blob) => this.loadExcel(blob));
+    },
+  };
+  </script>

+ 33 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/onlineview/viewWord.vue

@@ -0,0 +1,33 @@
+<template>
+    <div v-html="docHtml"></div>
+  </template>
+  
+  <script>
+  import mammoth from 'mammoth';
+  
+  export default {
+    data() {
+      return {
+        fileUrl:null,
+        fileName:null,
+        docHtml: '',
+      };
+    },
+    methods: {
+      async loadDocx(file) {
+        const arrayBuffer = await file.arrayBuffer();
+        const result = await mammoth.convertToHtml({ arrayBuffer });
+        this.docHtml = result.value;
+      },
+    },
+    mounted() {
+      this.fileUrl = sessionStorage.getItem("fileUrl");
+      this.fileName = sessionStorage.getItem("fileName");
+      // 示例:加载一个 .docx 文件
+    //   fetch(this.fileUrl)
+      fetch(this.fileUrl)
+        .then((response) => response.blob())
+        .then((blob) => this.loadDocx(blob));
+    },
+  };
+  </script>

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/dailyReportReview.vue

@@ -25,7 +25,7 @@
                   </el-form-item>
 
                   <el-form-item :label="$t('other.reviewer')" style="width: 210px">
-                      <el-select v-if="user.userNameNeedTranslate != '1'" v-model="search.auditUserId" :placeholder="$t('defaultText.pleaseChoose')" clearable @change="usersSearch(false)" size="mini" style="width: 150px" collapse-tags>
+                      <el-select v-if="user.userNameNeedTranslate != '1'" v-model="search.auditUserId" :filterable="true" :placeholder="$t('defaultText.pleaseChoose')" clearable @change="usersSearch(false)" size="mini" style="width: 150px" collapse-tags>
                           <el-option v-for="item in searchUsersList" :key="item.id" :label="item.name" :value="item.id">
                               <span style="float: left" v-if="user.userNameNeedTranslate == '1'"><TranslationOpenDataText type='userName' :openid='item.name'></TranslationOpenDataText></span>
                               <span style="float: left" v-if="user.userNameNeedTranslate != '1'">{{item.name}}</span>