Quellcode durchsuchen

完善计量的功能

hfxc226 vor 2 Jahren
Ursprung
Commit
20c777dc15
3 geänderte Dateien mit 146 neuen und 2 gelöschten Zeilen
  1. 17 1
      src/api/sb/info.js
  2. 11 1
      src/views/sb/info/SbInfo.vue
  3. 118 0
      src/views/sb/info/modules/ImportFormAddStandard.vue

+ 17 - 1
src/api/sb/info.js

@@ -404,7 +404,23 @@ export function importSbInfo (parameter) {
     data: parameter
   })
 }
-
+/**
+ * add batch func
+ * parameter: { }
+ * @param parameter
+ * @returns {*}
+ */
+export function importSbInfoStandard (parameter) {
+  return axios({
+    url: '/sb/infos/import/standard',
+    method: 'POST',
+    headers: {
+      'Accept': 'application/json',
+      'Content-Type': 'application/json;charset=UTF-8'
+    },
+    data: parameter
+  })
+}
 /**
  * update func
  * parameter: { }

+ 11 - 1
src/views/sb/info/SbInfo.vue

@@ -126,7 +126,11 @@
                 <a-icon type="upload"/>
                 新增导入
               </a-button>
-<!--              <a-button style="margin-left:8px;" type="primary" @click="doImportForUpdate">
+              <a-button style="margin-left:8px;" type="primary" @click="doImportStandard">
+                <a-icon type="upload"/>
+                新增设备和标准导入
+              </a-button>
+              <!--              <a-button style="margin-left:8px;" type="primary" @click="doImportForUpdate">
                 <a-icon type="upload"/>
                 修改导入
               </a-button>-->
@@ -211,6 +215,7 @@
     <download-modal ref="downloadModal"/>
     <preview-modal ref="previewModal"/>
     <import-form-add ref="importModal" @ok="handleOk"/>
+    <import-form-add-standard ref="importModalStandard" @ok="handleOk"/>
     <import-form-update ref="importModalUpdate" @ok="handleOk"/>
     <print-sb-code ref="printSbCode"/>
     <print-in-sb-info-batch ref="printInSbInfoBatch" @ok="handleOk"/>
@@ -229,6 +234,7 @@ import { queryDept } from '@/api/upms/dept'
 import { generateSbCodeAll } from '@/api/upms/code'
 import { fetchSbTypeTree } from '@/api/sb/type'
 import ImportFormAdd from './modules/ImportFormAdd'
+import ImportFormAddStandard from './modules/ImportFormAddStandard'
 import ImportFormUpdate from './modules/ImportFormUpdate'
 import PrintSbCode from '@/views/sb/info/modules/PrintSbCode'
 import PrintInSbInfoBatch from '@/views/sb/info/modules/PrintInSbInfoBatch'
@@ -245,6 +251,7 @@ export default {
     PreviewModal,
     PrintSbCode,
     ImportFormAdd,
+    ImportFormAddStandard,
     ImportFormUpdate,
     PrintInSbInfoBatch,
     BaseFormStatusLog
@@ -721,6 +728,9 @@ export default {
     doImport () {
       this.$refs.importModal.base(null, null)
     },
+    doImportStandard () {
+      this.$refs.importModalStandard.base()
+    },
     doImportForUpdate () {
       this.$refs.importModalUpdate.base(null, null)
     }

+ 118 - 0
src/views/sb/info/modules/ImportFormAddStandard.vue

@@ -0,0 +1,118 @@
+<template>
+  <a-modal
+    :title="modalTitle"
+    :width="640"
+    :visible="visible"
+    :confirmLoading="confirmLoading"
+    @cancel="handleCancel"
+  >
+    <a-form :form="form">
+      <a-form-item
+        label="上传文件"
+        :labelCol="BaseTool.Constant.labelCol"
+        :wrapperCol="BaseTool.Constant.wrapperCol"
+      >
+        <a-upload :fileList="fileList" @change="handleChange" :remove="handleRemove" :beforeUpload="beforeUpload">
+          <a-button> <a-icon type="upload" />选择上传文件</a-button>
+        </a-upload>
+      </a-form-item>
+    </a-form>
+    <p style="color: red">注意事项:<br/>
+      1:请确保设备新号、名称、型号的准确填写<br/>
+      2:请确保数据都未导入,重新导入成功不会覆盖原有数据,导致存在多台同样设备<br/>
+      3:导入如出现问题,请及时联系<br/>
+    </p>
+    <template slot="footer">
+      <a-button :loading="confirmLoading" type="primary" @click="save()">确定</a-button>
+    </template>
+  </a-modal>
+</template>
+
+<script>
+import { importSbInfo } from '@/api/sb/info'
+
+export default {
+  name: 'ImportFormAddStandard',
+  data () {
+    return {
+      confirmLoading: false,
+      modalTitle: null,
+      form: this.$form.createForm(this),
+      visible: false,
+      useCompany: null,
+      useProject: null,
+      type: null,
+      fileList: []
+    }
+  },
+  methods: {
+    base (useCompany, useProject) {
+      this.visible = true
+      this.useCompany = useCompany
+      this.useProject = useProject
+      this.modalTitle = '设备和点检标准导入'
+      this.type = 3
+    },
+    handleRemove (file) {
+      const index = this.fileList.indexOf(file)
+      const newFileList = this.fileList.slice()
+      newFileList.splice(index, 1)
+      this.fileList = newFileList
+    },
+    beforeUpload (file) {
+      const reg = /\.(xls|xlsx)(\?.*)?$/
+      return new Promise((resolve, reject) => {
+        if (reg.test(file.name)) {
+          this.fileList = [file]
+          return false
+        } else {
+          this.$message.error(`请上传正确的excel文件`)
+          reject(new Error('请上传正确的excel文件'))
+          return false
+        }
+      })
+    },
+    handleChange (info) {
+      if (info.file.status !== 'uploading') {
+        console.log(info.file, info.fileList)
+      }
+      if (info.file.status === 'done') {
+        this.$message.success(`${info.file.name} file uploaded successfully`)
+      } else if (info.file.status === 'error') {
+        this.$message.error(`${info.file.name} file upload failed.`)
+      }
+    },
+    save () {
+      const { form: { validateFieldsAndScroll } } = this
+      this.confirmLoading = true
+      validateFieldsAndScroll((errors, values) => {
+        if (errors) {
+          this.confirmLoading = false
+          return
+        }
+        const formData = new FormData()
+        formData.append('type', this.type)
+        formData.append('file', this.fileList[0])
+        importSbInfo(formData)
+          .then((res) => {
+            this.$message.success(res.data)
+            this.handleCancel(values)
+            this.BaseTool.ListForm.clearOneList(this)
+            this.BaseTool.ListForm.pushOneListAddMore(this, res.data)
+          }).catch(() => {
+            this.confirmLoading = false
+          })
+      })
+    },
+    handleCancel (values) {
+      this.visible = false
+      this.confirmLoading = false
+      this.fileList = []
+      this.form.resetFields()
+      this.storeId = null
+      this.$emit('ok', values)
+    }
+
+  }
+}
+</script>