From 26c4f7ae79ad5ad2300876b94f96f19e4f93d53a Mon Sep 17 00:00:00 2001
From: 王震 <10952869+daywangzhen@user.noreply.gitee.com>
Date: 星期一, 18 十二月 2023 16:02:12 +0800
Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/mes-ocea-before

---
 src/views/admin/user/index.vue |  141 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 139 insertions(+), 2 deletions(-)

diff --git a/src/views/admin/user/index.vue b/src/views/admin/user/index.vue
index 68ef1e1..80f0b7f 100644
--- a/src/views/admin/user/index.vue
+++ b/src/views/admin/user/index.vue
@@ -66,6 +66,15 @@
                 @click="$refs.crud.rowAdd()"
                 >娣诲姞
               </el-button>
+              <!-- <el-button
+                v-if="sys_user_add"
+                class="filter-item"
+                type="primary"
+                size="small"
+                icon="el-icon-upload"
+                @click="importDialogVisible=true"
+                >瀵煎叆
+              </el-button> -->
             </template>
             <template slot="username" slot-scope="scope">
               <span>{{ scope.row.username }}</span>
@@ -147,6 +156,45 @@
       :currshowlist.sync="showStaff"
       @listenToStaffEvent="selectStaff"
     />
+    <el-dialog title="瀵煎叆" :visible.sync="importDialogVisible" width="30%">
+      <span>
+        <div>
+          <div>
+            <el-upload
+              style="margin-left:8px;display: inline;"
+              class="upload-demo"
+              drag
+              :headers="headers"
+              :action="uploadInfo.url"
+              :beforeUpload="beforeAvatarUpload"
+              :limit="1"
+              :show-file-list="false"
+              :file-list="fileList"
+              :on-success="fileSuccessUploadScan"
+              :on-error="handleError"
+              accept=".xlsx,.xls,.csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
+              :auto-upload="true"
+              ref="uploadScan"
+              multiple
+            >
+              <i class="el-icon-upload"></i>
+              <div class="el-upload__text"><em>鐐瑰嚮瀵煎叆鏁版嵁</em></div>
+              <div class="el-upload__tip" slot="tip" >
+                鍙兘涓婁紶xlsx/xls鏂囦欢锛屼笖涓嶈秴杩�10M<el-button
+                  type="text"
+                  style="font-size:12px;"
+                  @click="downDataTemplate(uploadInfo.fileName)"   
+                  v-if="uploadInfo.Download"
+                  >涓嬭浇妯℃澘</el-button
+                >
+              </div>
+            </el-upload>
+          </div>
+          <div></div>
+        </div>
+      </span>
+      <span slot="footer" class="dialog-footer"> </span>
+    </el-dialog>
   </div>
 </template>
 <script>
@@ -158,12 +206,26 @@
 import { mapGetters } from 'vuex'
 import Template from '../../quality/parts/template'
 import { getObj } from '@/api/basic/staff'
-
+import { getStore } from '@/util/store.js'
+import { uploadTemplate } from '@/api/basic/template'
 export default {
   name: 'SysUser',
   components: { Template, staffDialog },
   data() {
     return {
+      fileList: [], // 涓婁紶鏂囦欢鍒楄〃
+      // 涓婁紶澶翠俊鎭�
+      headers: {
+        Authorization: 'Bearer ' + getStore({ name: 'access_token' })
+      },
+      uploadInfo: {
+        // 鏄惁灞曠ず涓婁紶EXCEL浠ュ強瀵瑰簲鐨剈rl
+        isShow: true,
+        url: '/mes/user/upload',
+        Download: true,
+        fileName: '鐢ㄦ埛妯℃澘'
+      },
+      importDialogVisible: false,
       showStaff: false,
       searchForm: {},
       treeOption: {
@@ -216,6 +278,77 @@
     this.init()
   },
   methods: {
+    // 闄愬埗鏂囦欢涓婁紶澶у皬锛岀洰鍓嶉檺鍒朵负10M锛堝彟鍙互鍔犵被鍨嬮檺鍒讹級
+    beforeAvatarUpload(file) {
+      const fileName = file.name
+      const fileType = fileName.substring(fileName.lastIndexOf('.') + 1)
+      const isLt10M = file.size / 1024 / 1024 < 10
+      if (fileType !== 'xlsx' && fileType !== 'xls') {
+        this.$message.error('鏂囦欢鏍煎紡鍙兘涓簒lsx鎴杧ls,璇峰垹闄ゅ悗閲嶆柊涓婁紶')
+      }
+      if (!isLt10M) {
+        this.$message({
+          message: '鏂囦欢澶у皬',
+          type: 'warning'
+        })
+      }
+      return isLt10M
+    },
+    // 鏂囦欢涓婁紶鎴愬姛鍥炶皟浜嬩欢
+    fileSuccessUploadScan(response, file, fileList) {
+      if (response.code != '0') {
+        this.$message.warning(response.msg)
+      } else {
+      if(response.data!=""&&response.data!=[]&&response.data!=null){
+        this.$message({
+          message: response.data,
+          type: 'success',
+          dangerouslyUseHTMLString: true,
+        })
+      }else{
+        this.$message({
+          message: '涓婁紶鎴愬姛',
+          type: 'success'
+        })
+      }
+        this.importDialogVisible=false
+        this.fileList=[]
+        this.init()
+        // this.getDataList()
+      }
+      this.$refs.uploadScan.clearFiles()
+    },
+    // 涓婁紶澶辫触
+    handleError(err, file, fileList) {
+      const error = JSON.parse(err.message)
+      if (error.msg) {
+        this.$message.error(error.msg)
+      } else {
+        this.$message.error('涓婁紶澶辫触')
+      }
+    },
+    // 涓嬭浇鏁版嵁妯℃澘
+    downDataTemplate() {
+      uploadTemplate("user").then((response) => {
+        const blob = new Blob([response.data], {
+          type: 'application/force-download'
+        })
+        let fileName="妯℃澘鏂囦欢";
+        if(this.uploadInfo.fileName!=undefined&&this.uploadInfo.fileName!=''&&this.uploadInfo.fileName!=null){
+            fileName=this.uploadInfo.fileName
+        }
+        const filename = decodeURI(fileName+'.xlsx')
+        // 鍒涘缓涓�涓秴閾炬帴锛屽皢鏂囦欢娴佽祴杩涘幓锛岀劧鍚庡疄鐜拌繖涓秴閾炬帴鐨勫崟鍑讳簨浠�
+        const elink = document.createElement('a')
+        elink.download = filename
+        elink.style.display = 'none'
+        elink.href = URL.createObjectURL(blob)
+        document.body.appendChild(elink)
+        elink.click()
+        URL.revokeObjectURL(elink.href) // 閲婃斁URL 瀵硅薄
+        document.body.removeChild(elink)
+      })
+    },
     selectStaff(staff) {
       this.form.staffInfo = staff.staffName + '-' + staff.staffNo
       this.form.phone = staff.phone
@@ -343,7 +476,11 @@
       })
     },
     unlock(row, index) {
-      unlock({ id: row.userId }).then((repsonse) => {})
+      unlock({ id: row.userId }).then((repsonse) => {
+        if(repsonse.data.data){
+          this.$message.success("璇ョ敤鎴峰凡瑙i攣")
+        }
+      })
     }
   }
 }

--
Gitblit v1.9.3