فهرست منبع

在线检测管理

landydb 4 روز پیش
والد
کامیت
8e23986c09

+ 235 - 0
src/views/modules/quality/onlinecheck-add-or-update.vue

@@ -0,0 +1,235 @@
+<template>
+  <div>
+    <div class="my-title">{{ !id ? "新增" : display ? "详情" : "修改" }}</div>
+    <el-form
+      :model="dataForm"
+      :rules="dataRule"
+      ref="dataForm"
+      label-width="auto"
+    >
+      <el-row class="my-row">
+        <el-col :span="8">
+          <el-form-item label="任务号" prop="orderCode">
+            <el-select
+              v-model="dataForm.orderCode"
+              :disabled="display"
+              filterable
+              remote
+              reserve-keyword
+              placeholder="请输入关键词"
+              :remote-method="debouncedSearch"
+              :loading="loading"
+              style="width: 100%"
+            >
+              <el-option
+                v-for="item in orderOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row class="my-row">
+        <el-col :span="8">
+          <el-form-item label="产品" prop="productId">
+            <el-select
+              v-model="dataForm.productId"
+              filterable
+              remote
+              reserve-keyword
+              placeholder="请输入关键词"
+              :remote-method="debouncedSearch2"
+              :loading="loading2"
+              style="width: 100%"
+            >
+              <el-option
+                v-for="item in productOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="数量" prop="num">
+            <el-input v-model="dataForm.num" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="编号" prop="productNumber">
+            <el-input v-model="dataForm.productNumber" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="onChose">取消</el-button>
+      <el-button
+        v-if="!display"
+        type="primary"
+        @click="dataFormSubmit()"
+        v-reClick
+        >确定</el-button
+      >
+    </span>
+  </div>
+</template>
+
+<script>
+import { save, update } from "@/api/filemanage";
+import { getOrderByCode } from "@/api/sale";
+import _ from "lodash";
+export default {
+  name: "work-type-add-or-update",
+  components: {},
+  computed: {},
+  data() {
+    return {
+      visible: false,
+      display: false,
+      id: 0,
+      dataForm: {},
+      loading: false,
+      loading2: false,
+      orderOptions: [],
+      productOptions: [],
+      fileList: [],
+      fileList1: [],
+      dataRule: {
+        orderCode: [
+          { required: true, message: "任务号不能为空", trigger: "blur" },
+        ],
+        num: [{ required: true, message: "数量不能为空", trigger: "blur" }],
+        productNumber: [
+          { required: true, message: "产品不能为空", trigger: "blur" },
+        ],
+        productId: [
+          { required: true, message: "编号不能为空", trigger: "blur" },
+        ],
+      },
+    };
+  },
+  created() {
+    // 创建防抖函数(500ms延迟)
+    this.debouncedSearch = _.debounce(this.remoteMethod, 500);
+    this.debouncedSearch2 = _.debounce(this.remoteMethod2, 500);
+  },
+  beforeDestroy() {
+    // 清除防抖定时器,避免内存泄漏
+    this.debouncedSearch.cancel();
+    this.debouncedSearch2.cancel();
+  },
+  methods: {
+    onChose() {
+      this.$emit("onChose");
+    },
+    async init(item, display) {
+      //   this.remoteMethod();
+
+      if (item != null) {
+        this.dataForm = item;
+        this.id = 1; // 固定为1,无意义,仅为判断是新增还是修改
+      } else {
+        this.dataForm = {
+          num: "",
+        };
+        this.id = null;
+      }
+
+      this.visible = true;
+      this.display = display;
+    },
+    validateField(type) {
+      this.$refs.dataForm.validateField(type);
+    },
+    // 表单提交
+    dataFormSubmit() {
+      this.$refs["dataForm"].validate((valid) => {
+        if (valid) {
+          let data = {
+            orderCode: this.dataForm.orderCode,
+            productId: this.dataForm.productId,
+            productNumber: this.dataForm.productNumber,
+            num: this.dataForm.num,
+          };
+
+          this.$http({
+            url: this.$http.adornUrl(
+              `/biz-service/onlineDetection/save`
+            ),
+            method: "post",
+            data: this.$http.adornData(data),
+          }).then(({ data }) => {
+            if (data && data.code === '200') {
+                this.$message({
+                  message: '操作成功',
+                  type: 'success',
+                  duration: 1500,
+                  onClose: () => {
+                    this.visible = false
+                  }
+                })
+              } else {
+                this.$message.error(data.msg)
+              }
+          });
+        }
+      });
+    },
+    remoteMethod(query) {
+      this.loading = true;
+      this.getOrderByCode(query);
+    },
+    getOrderByCode(orderCode) {
+      getOrderByCode(orderCode).then(({ data }) => {
+        this.loading = false;
+
+        if (data && data.code === "200" && data.data) {
+          this.orderOptions = data.data.map((item) => {
+            return { label: item.orderCode, value: item.orderId };
+          });
+        }
+      });
+    },
+    remoteMethod2(query) {
+      this.loading2 = true;
+      this.getProduct(query);
+    },
+    getProduct(input) {
+      if (input == null || input == '') {
+        return;
+      }
+
+      this.$http({
+        url: this.$http.adornUrl(
+          `/biz-service/product/queryByProductNameMapNumber/${input}`
+        ),
+        method: "get",
+      }).then(({ data }) => {
+        this.loading2 = false;
+
+        if (data && data.code === "200" && data.data) {
+          this.productOptions = data.data.map((item) => {
+            return { label: item.productName, value: item.productId };
+          });
+        }
+      });
+    },
+  },
+};
+</script>
+
+<style scoped>
+.my-row {
+  margin-bottom: 20px;
+}
+</style>

+ 146 - 0
src/views/modules/quality/onlinecheck-detail.vue

@@ -0,0 +1,146 @@
+<template>
+  <div>
+    <div class="my-title">查看</div>
+    <div style="margin-left: 20px; margin-right: 20px">
+      <e-desc title="基本信息" column="2">
+        <e-desc-item label="图号">{{ dataForm.mapNumber }}</e-desc-item>
+        <e-desc-item label="产品名称">{{ dataForm.productName }}</e-desc-item>
+
+        <e-desc-item label="温度">{{ dataForm.temperature }}</e-desc-item>
+        <e-desc-item label="湿度">{{ dataForm.humidity }}</e-desc-item>
+
+        <e-desc-item label="测量员">{{ dataForm.inspectorName }}</e-desc-item>
+        <e-desc-item label="编号">{{ dataForm.productNumber }}</e-desc-item>
+
+        <e-desc-item label="测量日期">{{
+          dataForm.inspectionDate
+        }}</e-desc-item>
+      </e-desc>
+      <el-table
+        :data="dataForm.purOnlineDetectionProjectList"
+        border
+        style="width: 100%"
+      >
+        <el-table-column label="序号" type="index" width="100" align="center">
+        </el-table-column>
+        <el-table-column
+          prop="projectName"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="项目名称"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="measuredValue"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="实测值"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="nominalValue"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="名义值"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="upperDeviation"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="上偏差"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="lowerDeviation"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="下偏差"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="isQualified"
+          :formatter="formatIsQualified"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="评定"
+        >
+        </el-table-column>
+      </el-table>
+    </div>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="onChose">返回</el-button>
+    </span>
+  </div>
+</template>
+
+<script>
+import EDesc from "../common/e-desc";
+import EDescItem from "../common/e-desc-item";
+import ApproveComponent from "../common/approve-component";
+import UploadComponent from "../common/upload-component-v2";
+import { approveStateOption, measureStateOption } from "@/utils/enums";
+export default {
+  name: "disqualification-detail",
+  components: { EDesc, EDescItem, ApproveComponent, UploadComponent },
+  data() {
+    return {
+      visible: false,
+      id: 0,
+      dataForm: {},
+      isQualifiedOption: [
+        { label: "待检验", value: "0" },
+        { label: "合格", value: "1" },
+        { label: "不合格", value: "2" },
+      ],
+    };
+  },
+  mounted() {},
+  methods: {
+    onChose() {
+      this.$emit("onChose");
+    },
+    async init(id) {
+      this.visible = true;
+      this.id = id || 0;
+      this.$http({
+        url: this.$http.adornUrl(`/biz-service/onlineDetection/info/${id}`),
+        method: "get",
+      }).then(({ data }) => {
+        if (data && data.code === "200") {
+          this.dataForm = data.data;
+        } else {
+          this.$message.error(data.msg);
+        }
+      });
+    },
+    formatIsQualified(row) {
+      if (!row.isQualified) return "";
+
+      return this.getIsQualifiedStr(row.state);
+    },
+    getIsQualifiedStr(state) {
+      let option = this.isQualifiedOption.find((t) => t.value === state);
+      if (option != null) {
+        return option.label;
+      }
+      return "";
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+</style>

+ 198 - 0
src/views/modules/quality/onlinecheck-import.vue

@@ -0,0 +1,198 @@
+<template>
+  <div>
+    <div class="my-title">{{ !id ? "新增" : display ? "详情" : "修改" }}</div>
+    <el-form
+      :model="dataForm"
+      :rules="dataRule"
+      ref="dataForm"
+      label-width="auto"
+    >
+      <el-row class="my-row">
+        <el-col :span="8">
+          <upload-component
+            :title="'选择文件'"
+            :accept="'*'"
+            :file-obj-list="fileList"
+            @uploadSuccess="uploadSuccess"
+            :displayStar="false"
+          />
+        </el-col>
+      </el-row>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="onChose">取消</el-button>
+      <el-button
+        v-if="!display"
+        type="primary"
+        @click="dataFormSubmit()"
+        v-reClick
+        >确定</el-button
+      >
+    </span>
+  </div>
+</template>
+
+<script>
+import { save, update } from '@/api/filemanage'
+import { getOrderByCode } from '@/api/sale'
+import _ from 'lodash'
+import UploadComponent from '../common/upload-component'
+export default {
+  name: 'work-type-add-or-update',
+  components: { UploadComponent },
+  computed: {},
+  data () {
+    return {
+      visible: false,
+      display: false,
+      id: 0,
+      dataForm: {},
+      loading: false,
+      orderOptions: [],
+      fileList: [],
+      fileList1: [],
+      dataRule: {
+        orderId: [
+          { required: true, message: '任务单不能为空', trigger: 'blur' }
+        ]
+      }
+    }
+  },
+  created () {
+    // 创建防抖函数(500ms延迟)
+    this.debouncedSearch = _.debounce(this.remoteMethod, 500)
+  },
+  beforeDestroy () {
+    // 清除防抖定时器,避免内存泄漏
+    this.debouncedSearch.cancel()
+  },
+  methods: {
+    onChose () {
+      this.$emit('onChose')
+    },
+    async init (item, display) {
+      this.remoteMethod()
+
+      if (item != null) {
+        this.dataForm = item
+        this.id = 1 // 固定为1,无意义,仅为判断是新增还是修改
+
+        // 附件
+        if (this.dataForm.attachList) {
+          this.dataForm.attachList.forEach((item) => {
+            this.fileList.push({
+              name: item.fileName,
+              url: item.url,
+              id: item.url
+            })
+          })
+        }
+        if (this.dataForm.attachList1) {
+          this.dataForm.attachList1.forEach((item) => {
+            this.fileList1.push({
+              name: item.fileName,
+              url: item.url,
+              id: item.url
+            })
+          })
+        }
+      } else {
+        this.dataForm = {}
+        this.id = null
+      }
+
+      this.visible = true
+      this.display = display
+    },
+    validateField (type) {
+      this.$refs.dataForm.validateField(type)
+    },
+    // 表单提交
+    dataFormSubmit () {
+      this.$refs['dataForm'].validate((valid) => {
+        if (valid) {
+          let data = {
+            technicalDocumentsId: this.dataForm.technicalDocumentsId,
+            orderId: this.dataForm.orderId,
+            notes: this.dataForm.notes,
+            attachList: [],
+            attachList1: []
+          }
+
+          for (let i = 0; i < this.fileList.length; i++) {
+            data.attachList.push({
+              fileName: this.fileList[i].name,
+              url: this.fileList[i].url
+            })
+          }
+
+          if (this.id) {
+            update(data)
+            .then(({ data }) => {
+              if (data && data.code === '200') {
+                this.$message({
+                  message: '操作成功',
+                  type: 'success',
+                  duration: 1500,
+                  onClose: () => {
+                    this.onChose()
+                    this.$emit('refreshDataList')
+                  }
+                })
+              } else {
+                this.$message.error(data.msg)
+              }
+            })
+            .catch(() => {})
+          } else {
+            save(data)
+            .then(({ data }) => {
+              if (data && data.code === '200') {
+                this.$message({
+                  message: '操作成功',
+                  type: 'success',
+                  duration: 1500,
+                  onClose: () => {
+                    this.onChose()
+                    this.$emit('refreshDataList')
+                  }
+                })
+              } else {
+                this.$message.error(data.msg)
+              }
+            })
+            .catch(() => {})
+          }
+        }
+      })
+    },
+    remoteMethod (query) {
+      this.loading = true
+      this.getOrderByCode(query)
+    },
+    getOrderByCode (orderCode) {
+      getOrderByCode(orderCode).then(({ data }) => {
+        this.loading = false
+
+        if (data && data.code === '200' && data.data) {
+          this.orderOptions = data.data.map((item) => {
+            return { label: item.orderCode, value: item.orderId }
+          })
+        }
+      })
+    },
+    uploadSuccess (fileList) {
+      this.fileList = fileList
+    },
+    uploadSuccess1 (fileList) {
+      this.fileList1 = fileList
+    }
+  }
+}
+</script>
+
+<style scoped>
+.my-row {
+  margin-bottom: 20px;
+}
+</style>

+ 389 - 0
src/views/modules/quality/onlinecheck.vue

@@ -0,0 +1,389 @@
+<!-- 工种管理 -->
+<template>
+  <div class="work-type">
+    <template v-if="!addOrUpdateVisible && !detailVisible">
+      <el-form
+        :inline="true"
+        :model="dataForm"
+        @keyup.enter.native="queryData()"
+      >
+        <el-form-item label="任务号">
+          <el-input v-model="dataForm.orderCode" placeholder="" clearable />
+        </el-form-item>
+        <el-form-item label="图号">
+          <el-input v-model="dataForm.mapNumber" placeholder="" clearable />
+        </el-form-item>
+        <el-form-item label="产品名称">
+          <el-input v-model="dataForm.productName" placeholder="" clearable />
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="queryData()">查询</el-button>
+          <el-button type="primary" @click="add()">新增</el-button>
+        </el-form-item>
+      </el-form>
+      <el-table
+        :data="dataList"
+        border
+        v-loading="dataListLoading"
+        style="width: 100%"
+      >
+        <el-table-column label="序号" type="index" width="100" align="center">
+        </el-table-column>
+        <el-table-column
+          prop="orderCode"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="任务号"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="mapNumber"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="图号"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="productName"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="产品名称"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="productNumber"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="编号"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="temperature"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="温度"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="humidity"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="湿度"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="deliveryDate"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="备注"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="inspectorName"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="检验员"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="state"
+          :formatter="formatState"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="状态"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="isQualified"
+          :formatter="formatIsQualified"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="是否合格"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="inspectionDate"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="校验日期"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="creatName"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="申请人"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="createTime"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="申请日期"
+        >
+        </el-table-column>
+        <el-table-column
+          fixed="right"
+          header-align="center"
+          align="center"
+          width="220"
+          label="操作"
+        >
+          <template slot-scope="scope">
+            <el-button type="text" size="small" @click="detailHandle(scope.row)"
+              >查看</el-button
+            >
+            <el-button v-if="scope.row.state == 1" type="text" size="small" @click="importHandle(scope.row)"
+              >导入报告</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        @size-change="sizeChangeHandle"
+        @current-change="currentChangeHandle"
+        :current-page="pageIndex"
+        :page-sizes="[10, 20, 50, 100]"
+        :page-size="pageSize"
+        :total="totalPage"
+        layout="total, sizes, prev, pager, next, jumper"
+      >
+      </el-pagination>
+    </template>
+    <!-- 弹窗 -->
+    <onlinecheck-add-or-update
+      v-if="addOrUpdateVisible"
+      ref="addOrUpdate"
+      @onChose="onChose"
+    />
+
+    <onlinecheck-detail v-if="detailVisible" ref="detail" @onChose="onChose" />
+
+    <el-dialog title="导入" :visible.sync="importVisible">
+      <el-upload
+        class="upload-demo"
+        ref="upload"
+        :on-remove="handleRemove"
+        action="#"
+        accept=""
+        :limit="1"
+        :file-list="fileList"
+        :auto-upload="false"
+        :http-request="handleUpload"
+        v-loading="importLoading"
+      >
+        <el-button slot="trigger" size="small" type="primary"
+          >选取文件</el-button
+        >
+        <el-button size="small" type="success" @click="submitUpload"
+          >开始上传</el-button
+        >
+      </el-upload>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import OnlinecheckAddOrUpdate from "@/views/modules/quality/onlinecheck-add-or-update";
+import OnlinecheckDetail from "@/views/modules/quality/onlinecheck-detail";
+export default {
+  name: "plan",
+  components: {
+    OnlinecheckAddOrUpdate,
+    OnlinecheckDetail,
+  },
+  data() {
+    return {
+      addOrUpdateVisible: false,
+      detailVisible: false,
+      importVisible: false,
+      dataForm: {},
+      dataList: [],
+      pageIndex: 1,
+      pageSize: 10,
+      totalPage: 0,
+      dataListLoading: false,
+      dataListSelections: [],
+      optionsLevel: [],
+      importLoading: false,
+      importData: {},
+      fileList: [],
+      stateOption: [
+        { label: "待检验", value: "1" },
+        { label: "已检验", value: "2" },
+      ],
+      isQualifiedOption: [
+        { label: "待检验", value: "0" },
+        { label: "合格", value: "1" },
+        { label: "不合格", value: "2" },
+      ],
+      lastSubmitItem: null,
+    };
+  },
+  created() {
+    this.getDataList();
+  },
+  methods: {
+    onChose() {
+      this.addOrUpdateVisible = false;
+      this.detailVisible = false;
+    },
+    // 查询
+    queryData() {
+      this.pageIndex = 1;
+      this.getDataList();
+    },
+    // 获取数据列表
+    getDataList() {
+      this.dataListLoading = true;
+      this.addOrUpdateVisible = false;
+
+      this.$http({
+        url: this.$http.adornUrl(`/biz-service/onlineDetection/list`),
+        method: "get",
+        params: this.$http.adornParams({
+          current: this.pageIndex,
+          size: this.pageSize,
+          orderCode: this.dataForm.orderCode,
+          mapNumber: this.dataForm.mapNumber,
+          productName: this.dataForm.productName,
+        }),
+      }).then(({ data }) => {
+        this.dataListLoading = false;
+        if (data && data.code === "200") {
+          this.dataList = data.data.records;
+          this.totalPage = Number(data.data.total);
+        } else {
+          this.dataList = [];
+          this.totalPage = 0;
+        }
+      });
+    },
+    // 每页数
+    sizeChangeHandle(val) {
+      this.pageSize = val;
+      this.pageIndex = 1;
+      this.getDataList();
+    },
+    // 当前页
+    currentChangeHandle(val) {
+      this.pageIndex = val;
+      this.getDataList();
+    },
+    // 多选
+    selectionChangeHandle(val) {
+      this.dataListSelections = val;
+    },
+    add() {
+      this.addOrUpdateVisible = true;
+      this.$nextTick(() => {
+        this.$refs.addOrUpdate.init();
+      });
+    },
+    detailHandle(item) {
+      this.detailVisible = true;
+      this.$nextTick(() => {
+        this.$refs.detail.init(item.onlineDetectionId);
+      });
+    },
+    formatState(row) {
+      if (!row.state) return "";
+
+      return this.getStateStr(row.state);
+    },
+    getStateStr(state) {
+      let option = this.stateOption.find((t) => t.value === state);
+      if (option != null) {
+        return option.label;
+      }
+      return "";
+    },
+    formatIsQualified(row) {
+      if (!row.isQualified) return "";
+
+      return this.getIsQualifiedStr(row.state);
+    },
+    getIsQualifiedStr(state) {
+      let option = this.isQualifiedOption.find((t) => t.value === state);
+      if (option != null) {
+        return option.label;
+      }
+      return "";
+    },
+    importHandle(item) {
+      this.fileList = [];
+      this.importVisible = true;
+      this.importData = item;
+    },
+    // 上传
+    submitUpload() {
+      this.$refs.upload.submit();
+    },
+    // 移除
+    handleRemove(file, fileList) {
+      this.$emit("input", fileList);
+    },
+    handleUpload(file) {
+      if (file == null) {
+        this.$message.error("请上传文件");
+        return;
+      }
+
+      this.importLoading = true;
+
+      const formData = new FormData();
+      formData.append("importFile", file.file);
+      formData.append("onlineDetectionId", this.importData.onlineDetectionId);
+      this.$http({
+        url: this.$http.adornUrl(`/biz-service/onlineDetection/importExcel`),
+        method: "POST",
+        data: formData,
+        timeout: 0,
+      }).then(({ data }) => {
+        this.importLoading = false;
+        if (data && data.code === "200") {
+          this.$message({
+            message: "导入成功",
+            type: "success",
+            duration: 1500,
+            onClose: () => {
+              this.importVisible = false;
+            },
+          });
+        } else {
+          this.$message.error(data.msg);
+        }
+      });
+    },
+  },
+};
+</script>
+
+<style scoped>
+</style>