From 22eb970f2e316cdb6b8f1b8e49038d10f865a67e Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期一, 15 七月 2024 09:18:48 +0800
Subject: [PATCH] 修改

---
 web/src/views/modules/basicInfo/ProductImport.vue |  167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 167 insertions(+), 0 deletions(-)

diff --git a/web/src/views/modules/basicInfo/ProductImport.vue b/web/src/views/modules/basicInfo/ProductImport.vue
new file mode 100644
index 0000000..86c8fdf
--- /dev/null
+++ b/web/src/views/modules/basicInfo/ProductImport.vue
@@ -0,0 +1,167 @@
+<template>
+  <zt-dialog ref="dialog" title="瀵煎叆浜у搧妯″瀷" :hasConfirm="false" append-to-body>
+    <el-form>
+      <zt-form-item style="width:100%;" label="" prop="remark">
+        <el-upload
+          style="width: 600px"
+          class="upload-demo"
+          ref="upload"
+          :action="apiURL"
+          :on-success="succ"
+          :on-exceed="uploadExceed"
+          :on-error="err"
+          :limit="1"
+          :file-list="fileList"
+          :auto-upload="false">
+          <div style="display:inline-block;font-size: 14px;" class="el-upload__tip">&nbsp;&nbsp;&nbsp;鍙兘涓婁紶.xlsx鎴�.xls鐨勬枃浠讹紝涓斾笉瓒呰繃2G</div>
+          <el-button slot="trigger" size="small" type="primary" style="font-size: 15px">閫夊彇鏂囦欢</el-button>
+          <el-button type="primary" size="small" style="margin-left:20px;font-size: 15px" @click="submitUpload()">鎻� 浜�
+          </el-button>
+        </el-upload>
+      </zt-form-item>
+      <el-progress :text-inside="true" :stroke-width="30" :percentage="progress.speed"></el-progress>
+      <zt-form-item style="width:100%;" label="瀵煎叆淇℃伅鎻愮ず:" prop="text">
+        <el-input style="width:80%;color:#000000;" v-model="dataForm.text" type="textarea" :rows="1"
+                  placeholder="瀵煎叆淇℃伅鎻愮ず" readOnly></el-input>
+      </zt-form-item>
+      <el-table ref="table" v-adaptive="{bottomOffset:220}" height="100px" :resizable="false" :data="resultData"
+                highlight-current-row :default-sort="{prop:'errCause',order:'ascending'}">
+        <el-table-column prop="sheetName" label="excel宸ヤ綔琛�" width="150"/>
+        <el-table-column :sortable="true" prop="errCause" label="閿欒鍘熷洜" width="300"/>
+        <el-table-column prop="lineNumber" label="閿欒琛屾暟"/>
+      </el-table>
+    </el-form>
+    <!--<template slot="footer">-->
+    <!--<zt-button type="primary" style="float:left" @click="exportExcelModel()">瀵煎嚭Excel瀵煎叆妯℃澘</zt-button>-->
+    <!--</template>-->
+  </zt-dialog>
+</template>
+
+<script>
+  import Cookies from 'js-cookie'
+  import qs from 'qs'
+  import {guid} from "../../../commonJS/common";
+
+  export default {
+    name: 'product-import',
+    props: {
+      projectId: {
+        type: String,
+        required: true
+      }
+    },
+    data() {
+      return {
+        dataForm: {
+          result: ''
+        },
+        progress: {
+          id: null,
+          speed: 0,
+          text: '',
+          start: false,
+          timer: null
+        },
+        fileType: ['xlsx', 'xls'],
+        apiURL: '',
+        start: 0,
+        dialogVisible: false,
+        dialogMsg: '',
+        fileList: [],
+        resultData: []
+      }
+    },
+    computed: {
+      importparam() {
+        return {}
+      }
+    },
+    created() {
+      this.fileList = []
+      this.resultData = []
+    },
+    methods: {
+
+      // Array.sort(function(obj1, obj2) {
+      //   let val1 = obj1.key
+      //   let val2 = obj2.key
+      //   return val1 - val2
+      // }),
+      init(row) {
+        this.fileList = []
+        this.resultData = []
+        this.progress.id = guid()
+        let params = qs.stringify({
+          token: Cookies.get('token'),
+          progressId: this.progress.id,
+          pid: row.id
+        })
+        this.apiURL = `${window.SITE_CONFIG['apiURL']}/basicInfo/XhProductModel/importProductExcel?${params}`
+      },
+      uploadExceed(files, fileList) {
+        this.$set(fileList[0], 'raw', files[0])
+        this.$set(fileList[0], 'name', files[0].name)
+        this.$refs.upload.clearFiles()
+        this.$refs.upload.handleStart(files[0])
+      },
+      succ(res, file, fileList) {
+        clearInterval(this.timer)
+        this.dataForm.speed = 100
+        this.$refs.upload.clearFiles()
+        this.fileList = []
+        if (res.code === 0) {
+          this.dataForm.text = res.msg
+        }
+        if (res.code === 501) {
+          this.dataForm.text = res.msg
+          if (res.data) {
+            this.resultData = res.data
+          }
+        }
+        this.$emit('refreshDataList')
+      },
+      err(res, file, fileList) {
+        clearInterval(this.timer)
+        this.dataForm.speed = 0
+        this.dataForm.text = '瀵煎叆鏁版嵁鍖呮牸寮忔湁璇�'
+        this.$tip.error(res.msg)
+      },
+      submitUpload() {
+        this.dataForm.speed = 0
+        this.dataForm.text = ''
+        this.progress.speed = 0
+        this.progress.start = true
+        this.progress.timer = window.setInterval(this.getStroke, 1000)
+        this.uploadQuery()
+      },
+      uploadQuery() {
+        if (this.$refs.upload.uploadFiles.length === 1) {
+          this.start = 1
+          this.$refs.upload.submit()
+        } else {
+          this.$tip.error('璇烽�夋嫨闇�瑕佷笂浼犵殑.xlsx鎴�.xls鐨勬枃浠�')
+        }
+        //clearInterval(this.timers)
+      },
+      getStroke() {
+        //console.log('getStroke:',this.progress.start,"锛�",this.progress.speed)
+        if (this.progress.start && this.progress.speed < 100) {
+          //console.log('getStroke2')
+          this.$http.get(`sys/common/stroke?progressId=${this.progress.id}`).then(
+            res => {
+              if (res.success) {
+                this.progress.speed = parseFloat(res.data.speed)
+                this.progress.text = res.data.text
+              }
+            }
+          )
+        } else {
+        }
+      }
+    }
+  }
+</script>
+
+<style scoped>
+
+</style>

--
Gitblit v1.9.1