Forráskód Böngészése

气瓶添加、批量添加、删除

qianduan 9 hónapja
szülő
commit
c369442cd4

+ 157 - 1
package-lock.json

@@ -18,7 +18,8 @@
         "vue": "^2.6.14",
         "vue-router": "^3.5.1",
         "vuex": "^3.6.2",
-        "vuex-persistedstate": "^4.1.0"
+        "vuex-persistedstate": "^4.1.0",
+        "xlsx": "^0.18.5"
       },
       "devDependencies": {
         "@babel/core": "^7.12.16",
@@ -3530,6 +3531,14 @@
         "node": ">= 10.0.0"
       }
     },
+    "node_modules/adler-32": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
+      "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/ajv": {
       "version": "6.12.6",
       "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -4396,6 +4405,18 @@
         "node": ">=4"
       }
     },
+    "node_modules/cfb": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
+      "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
+      "dependencies": {
+        "adler-32": "~1.3.0",
+        "crc-32": "~1.2.0"
+      },
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/chalk": {
       "version": "4.1.2",
       "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -4584,6 +4605,14 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/codepage": {
+      "version": "1.15.0",
+      "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
+      "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/color-convert": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -4894,6 +4923,17 @@
         "node": ">=10"
       }
     },
+    "node_modules/crc-32": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
+      "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
+      "bin": {
+        "crc32": "bin/crc32.njs"
+      },
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/cross-spawn": {
       "version": "7.0.3",
       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -6977,6 +7017,14 @@
         "node": ">= 0.6"
       }
     },
+    "node_modules/frac": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
+      "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/fraction.js": {
       "version": "4.3.7",
       "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
@@ -11557,6 +11605,17 @@
       "dev": true,
       "license": "BSD-3-Clause"
     },
+    "node_modules/ssf": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
+      "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+      "dependencies": {
+        "frac": "~1.1.2"
+      },
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/ssri": {
       "version": "8.0.1",
       "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
@@ -13081,6 +13140,22 @@
       "dev": true,
       "license": "MIT"
     },
+    "node_modules/wmf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
+      "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
+    "node_modules/word": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
+      "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/wrap-ansi": {
       "version": "7.0.0",
       "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
@@ -13128,6 +13203,26 @@
         }
       }
     },
+    "node_modules/xlsx": {
+      "version": "0.18.5",
+      "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
+      "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
+      "dependencies": {
+        "adler-32": "~1.3.0",
+        "cfb": "~1.2.1",
+        "codepage": "~1.15.0",
+        "crc-32": "~1.2.1",
+        "ssf": "~0.11.2",
+        "wmf": "~1.0.1",
+        "word": "~0.3.0"
+      },
+      "bin": {
+        "xlsx": "bin/xlsx.njs"
+      },
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/y18n": {
       "version": "5.0.8",
       "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
@@ -15711,6 +15806,11 @@
       "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==",
       "dev": true
     },
+    "adler-32": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
+      "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
+    },
     "ajv": {
       "version": "6.12.6",
       "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -16284,6 +16384,15 @@
       "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==",
       "dev": true
     },
+    "cfb": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
+      "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
+      "requires": {
+        "adler-32": "~1.3.0",
+        "crc-32": "~1.2.0"
+      }
+    },
     "chalk": {
       "version": "4.1.2",
       "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -16410,6 +16519,11 @@
         }
       }
     },
+    "codepage": {
+      "version": "1.15.0",
+      "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
+      "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
+    },
     "color-convert": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -16632,6 +16746,11 @@
         "yaml": "^1.10.0"
       }
     },
+    "crc-32": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
+      "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
+    },
     "cross-spawn": {
       "version": "7.0.3",
       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -18090,6 +18209,11 @@
       "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
       "dev": true
     },
+    "frac": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
+      "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
+    },
     "fraction.js": {
       "version": "4.3.7",
       "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
@@ -21161,6 +21285,14 @@
       "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
       "dev": true
     },
+    "ssf": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
+      "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+      "requires": {
+        "frac": "~1.1.2"
+      }
+    },
     "ssri": {
       "version": "8.0.1",
       "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
@@ -22195,6 +22327,16 @@
       "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
       "dev": true
     },
+    "wmf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
+      "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
+    },
+    "word": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
+      "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
+    },
     "wrap-ansi": {
       "version": "7.0.0",
       "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
@@ -22219,6 +22361,20 @@
       "dev": true,
       "requires": {}
     },
+    "xlsx": {
+      "version": "0.18.5",
+      "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
+      "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
+      "requires": {
+        "adler-32": "~1.3.0",
+        "cfb": "~1.2.1",
+        "codepage": "~1.15.0",
+        "crc-32": "~1.2.1",
+        "ssf": "~0.11.2",
+        "wmf": "~1.0.1",
+        "word": "~0.3.0"
+      }
+    },
     "y18n": {
       "version": "5.0.8",
       "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",

+ 2 - 1
package.json

@@ -18,7 +18,8 @@
     "vue": "^2.6.14",
     "vue-router": "^3.5.1",
     "vuex": "^3.6.2",
-    "vuex-persistedstate": "^4.1.0"
+    "vuex-persistedstate": "^4.1.0",
+    "xlsx": "^0.18.5"
   },
   "devDependencies": {
     "@babel/core": "^7.12.16",

+ 15 - 1
src/assets/css/global.css

@@ -63,6 +63,18 @@ body,
 	background: transparent !important;
 }
 
+.el-button--success {
+	background: #85ce61 !important;
+	border-color: #85ce61 !important;
+	color: #FFF !important;
+}
+
+.el-button--success:hover {
+	color: #FFF !important;
+	background-color: #67C23A !important;
+	border-color: #67C23A !important;
+}
+
 .el-button--default:hover {
 	color: #409eff !important;
 }
@@ -327,9 +339,11 @@ body,
 .el-textarea__inner:hover {
 	border-color: #07c0e0 !important;
 }
-.el-textarea.is-disabled .el-textarea__inner{
+
+.el-textarea.is-disabled .el-textarea__inner {
 	border-color: rgba(255, 255, 255, .2) !important;
 }
+
 .el-radio {
 	color: #fff !important;
 }

+ 1 - 1
src/components/forms.vue

@@ -1,7 +1,7 @@
 <template>
   <!-- 表单 -->
   <div class="card_employee">
-    <el-form ref="ruleForm" :label-position="labelPosition" :model="ruleForm" :label-width="labelWidth">
+    <el-form ref="ruleForm" @submit.native.prevent :label-position="labelPosition" :model="ruleForm" :label-width="labelWidth">
       <el-row :gutter="10">
         <el-col :span="item.colWidth" v-for="(item, index) in formList" :key="index">
           <el-form-item class="card_independent" :label-width="item.labelWidth" :label="item.label" :prop="item.field"

+ 242 - 15
src/views/manufacture/cylinderCondition.vue

@@ -15,11 +15,11 @@
               <span class="item_index">{{index + 1}}</span>
               <div class="card_item_code">{{item.inner_code}}</div>
             </div>
-            <div class="card_red">删除</div>
+            <div class="card_red" @click="delSteelCylinder(item,1)">删除</div>
           </div>
         </div>
         <div v-else><el-empty :image="require('../../assets/image/empty.png')" description="暂无燃气瓶"></el-empty></div>
-        <div class="card_pagination center_in">
+        <div class="card_pagination center_in" v-if="bottleData.length > 0">
           <pagination :total="Pagination.Total" :pagerCountnum="5" layout="prev, pager, next, jumper"
             :currentPage="Pagination.PageIndex" @changeSize="changeSize" @changeCurrent="changeCurrent">
           </pagination>
@@ -40,11 +40,11 @@
               <span class="item_index">{{index + 1}}</span>
               <div class="card_item_code">{{item.inner_code}}</div>
             </div>
-            <div class="card_red">删除</div>
+            <div class="card_red" @click="delSteelCylinder(item,2)">删除</div>
           </div>
         </div>
         <div v-else><el-empty :image="require('../../assets/image/empty.png')" description="暂无燃气瓶"></el-empty></div>
-        <div class="card_pagination center_in">
+        <div class="card_pagination center_in" v-if="bottleData1.length > 0">
           <pagination :total="Pagination1.Total" :pagerCountnum="5" layout="prev, pager, next, jumper"
             :currentPage="Pagination1.PageIndex" @changeSize="changeSize1" @changeCurrent="changeCurrent1">
           </pagination>
@@ -65,11 +65,11 @@
               <span class="item_index">{{index + 1}}</span>
               <div class="card_item_code">{{item.inner_code}}</div>
             </div>
-            <div class="card_red">删除</div>
+            <div class="card_red" @click="delSteelCylinder(item,3)">删除</div>
           </div>
         </div>
         <div v-else><el-empty :image="require('../../assets/image/empty.png')" description="暂无燃气瓶"></el-empty></div>
-        <div class="card_pagination center_in">
+        <div class="card_pagination center_in" v-if="bottleData2.length > 0">
           <pagination :total="Pagination2.Total" :pagerCountnum="5" layout="prev, pager, next, jumper"
             :currentPage="Pagination2.PageIndex" @changeSize="changeSize2" @changeCurrent="changeCurrent2">
           </pagination>
@@ -77,9 +77,39 @@
       </div>
     </div>
     <!-- 添加钢瓶 -->
-    <el-dialog title="添加" :visible.sync="staffDialogVisible" width="600px" :close-on-click-modal="false"
+    <el-dialog :title="addTitle" :visible.sync="staffDialogVisible" width="600px" :close-on-click-modal="false"
       @close="closeDialog">
-      <forms ref="childRules" :formNewList="formRuleList" :ruleForm="ruleForm" labelWidth="100px"></forms>
+      <el-form :model="ruleForm" ref="ruleForm" label-width="100px" class="demo-ruleForm">
+        <el-row :gutter="20">
+          <el-col :span="16">
+            <el-form-item label="单位内编码" prop="code" :rules="formRuleList[0].rules">
+              <el-input v-model="ruleForm.code" placeholder="请输入单位内编码"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <div style="display: flex;align-items: center;">
+              <el-button type="primary" @click="addCode">添加</el-button>
+              <div style="display: flex;margin-left: 10px;">
+                <el-upload :auto-upload="false" :file-list="fileList" :on-change="handleChange"
+                  :on-remove="handleRemove" accept=".xlsx, .xls" :show-file-list="false" action class="upload-box">
+                  <el-button type="success" plain>批量上传</el-button>
+                </el-upload>
+              </div>
+            </div>
+          </el-col>
+          <el-col :span="24">
+            <div class="card_Code_list">
+              <div class="space_between_in card_item_codeil" v-for="(item,index) in numData" :key="index">
+                <div style="display: flex;">
+                  <span class="fontsize_17 title_num_code center_in">{{index + 1}}</span>
+                  <div class="fontsize_17" style="margin-left: 10px;">{{item}}</div>
+                </div>
+                <div class="title_red fontsize_17" style="cursor: pointer;" @click="delCode(item)">删除</div>
+              </div>
+            </div>
+          </el-col>
+        </el-row>
+      </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button plain @click="staffDialogVisible = false">取 消</el-button>
         <el-button type="primary" :loading="confirmLoading" @click="handleAdd">确 定</el-button>
@@ -96,6 +126,10 @@
   } from '@/api/condition'
   import pagination from '@/components/pagination'
   import forms from '@/components/forms'
+  import * as XLSX from 'xlsx/xlsx.mjs'
+  import {
+    number
+  } from 'echarts'
   export default {
     components: {
       pagination,
@@ -126,13 +160,27 @@
         },
         bottleData2: [],
         staffDialogVisible: false,
-        formRuleList: [],
+        formRuleList: [{
+          field: 'code',
+          label: '单位内编码',
+          placeholder: '单位内编码',
+          type: 'input',
+          colWidth: 24,
+          rules: [{
+            required: true,
+            message: '请输入单位内编码',
+            trigger: 'blur'
+          }]
+        }, ],
         ruleForm: {
-          name: '',
-          price: '',
-          remark: '',
+          code: '',
         },
         confirmLoading: false,
+        lastUid: null,
+        fileList: [],
+        numData: [],
+        addTitle: '添加',
+        codeType: 1,
       }
     },
     mounted() {
@@ -173,11 +221,149 @@
       },
       // 添加钢瓶
       AddCylinder(type) {
-        console.log(type, 222)
+        if (type == 1) {
+          this.addTitle = '重瓶添加'
+        } else if (type == 2) {
+          this.addTitle = '空瓶添加'
+        } else if (type == 3) {
+          this.addTitle = '不合格瓶添加'
+        }
+        this.codeType = type
         this.staffDialogVisible = true
       },
       handleAdd() {
-
+        if (this.numData.length > 0) {
+          this.getAddCode()
+        } else {
+          this.$refs['ruleForm'].validate((valid) => {
+            if (valid) {
+              this.numData.push(this.ruleForm.code)
+              this.numData = Array.from(new Set(this.numData));
+              this.getAddCode()
+            } else {
+              console.log('error submit!!');
+              return false;
+            }
+          });
+        }
+      },
+      // 添加钢瓶
+      getAddCode() {
+        addCylinderStatus({
+          status: this.codeType,
+          innerCodeList: this.numData,
+        }).then(res => {
+          if (res.code == 200) {
+            this.$message({
+              message: '操作成功',
+              type: 'success'
+            });
+            this.staffDialogVisible = false
+            if (this.codeType == 1) {
+              this.getList(1)
+            } else if (this.codeType == 2) {
+              this.getList1(2)
+            } else if (this.codeType == 3) {
+              this.getList2(3)
+            }
+          }
+        })
+      },
+      // 上传钢瓶文件
+      async handleChange(ev, fileList) {
+        if (fileList.length > 0) {
+          this.fileList = [fileList[fileList.length - 1]]
+        } else {
+          this.fileList = fileList[0]
+        }
+        let file = ev.raw
+        if (this.lastUid == file.uid) {
+          return
+        }
+        this.lastUid = file.uid
+        if (file) {
+          // console.log(file)
+          if (
+            file.name.indexOf('.xls') != -1 ||
+            file.name.indexOf('.xlsx') != -1
+          ) {
+            let data = await this.readFile(file)
+            let workbook = XLSX.read(data, {
+              type: 'binary',
+              cellDates: true
+            })
+            let worksheet = workbook.Sheets[workbook.SheetNames[0]]
+            let secondsheet = workbook.Sheets[workbook.SheetNames[1]]
+            let resultExcel = XLSX.utils.sheet_to_json(worksheet)
+            let tableHead = Object.keys(resultExcel[0]);
+            let numarr = String(tableHead)
+            this.numData.push(numarr)
+            resultExcel.forEach(item => {
+              const arr = String(item[tableHead])
+              this.numData.push(arr)
+            })
+            this.numData = Array.from(new Set(this.numData));
+          }
+        }
+      },
+      readFile(file) {
+        return new Promise(resolve => {
+          let reader = new FileReader()
+          reader.readAsBinaryString(file)
+          reader.onload = ev => {
+            resolve(ev.target.result)
+          }
+        })
+      },
+      handleRemove(file, fileList) {
+        this.fileList = []
+        this.resultExcel = []
+      },
+      // 添加编号
+      addCode() {
+        if (this.ruleForm.code) {
+          this.numData.push(this.ruleForm.code)
+          this.numData = Array.from(new Set(this.numData));
+          this.ruleForm.code = ''
+        }
+      },
+      // 删除编号数组
+      delCode(num) {
+        var index = this.numData.indexOf(num);
+        if (index !== -1) {
+          this.numData.splice(index, 1);
+        }
+      },
+      // 删除钢瓶
+      delSteelCylinder(value, type) {
+        this.$confirm('此操作将永久删除该钢瓶, 是否继续?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          delCylinderStatus({
+            id: value.id
+          }).then(res => {
+            if (res.code == 200) {
+              this.$message({
+                message: '删除成功',
+                type: 'success'
+              });
+              if (type == 1) {
+                this.getList(1)
+              } else if (type == 2) {
+                this.getList1(2)
+              } else if (type == 3) {
+                this.getList2(3)
+              }
+            }
+          })
+        }).catch(() => {
+          // this.$message({
+          //   type: 'info',
+          //   message: '已取消删除'
+          // });
+        });
       },
       // 重瓶区域
       changeSize(val) {
@@ -208,13 +394,15 @@
       },
       // 弹窗关闭
       closeDialog() {
+        this.ruleForm.code = ''
+        this.numData = []
         this.staffDialogVisible = false
       }
     }
   }
 </script>
 
-<style lang="scss">
+<style lang="scss" scoped>
   .card_cylinder_condition {
     display: flex;
     width: 100%;
@@ -282,12 +470,51 @@
     font-size: 18px;
   }
 
+  .card_item_codeil {
+    padding-right: 8px;
+    margin: 10px 0px;
+  }
+
+  .card_Code_list {
+    max-height: 500px;
+    overflow-y: auto;
+  }
+
   .card_red {
     cursor: pointer;
     color: #F56C6C;
     font-size: 18px;
   }
 
+  .title_num_code {
+    width: 20px;
+  }
+
+  .fontsize_17 {
+    font-size: 17px;
+  }
+
+  /* 自定义滚动条整体样式 */
+  ::-webkit-scrollbar {
+    width: 5px;
+    /* 设置滚动条的宽度 */
+  }
+
+  /* 自定义滚动条滑块样式 */
+  ::-webkit-scrollbar-thumb {
+    background-color: #66b1ff;
+    /* 设置滑块的颜色 */
+    border-radius: 5px;
+    /* 设置滑块的圆角 */
+  }
+
+  /* 自定义滚动条轨道样式 */
+  ::-webkit-scrollbar-track {
+    background-color: rgba(102, 177, 255, 0.5) !important;
+    border-radius: 5px;
+    /* 设置轨道的颜色 */
+  }
+
   .title_green {
     color: #67C23A;
   }

+ 58 - 0
yarn.lock

@@ -1841,6 +1841,11 @@
   "resolved" "https://registry.npmjs.org/address/-/address-1.2.2.tgz"
   "version" "1.2.2"
 
+"adler-32@~1.3.0":
+  "integrity" "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
+  "resolved" "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz"
+  "version" "1.3.1"
+
 "ajv-formats@^2.1.1":
   "integrity" "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA=="
   "resolved" "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz"
@@ -2328,6 +2333,14 @@
   "resolved" "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz"
   "version" "2.4.0"
 
+"cfb@~1.2.1":
+  "integrity" "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA=="
+  "resolved" "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz"
+  "version" "1.2.2"
+  dependencies:
+    "adler-32" "~1.3.0"
+    "crc-32" "~1.2.0"
+
 "chalk@^2.1.0":
   "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="
   "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
@@ -2457,6 +2470,11 @@
   "resolved" "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz"
   "version" "1.0.4"
 
+"codepage@~1.15.0":
+  "integrity" "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
+  "resolved" "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz"
+  "version" "1.15.0"
+
 "color-convert@^1.9.0":
   "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
   "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
@@ -2627,6 +2645,11 @@
     "path-type" "^4.0.0"
     "yaml" "^1.10.0"
 
+"crc-32@~1.2.0", "crc-32@~1.2.1":
+  "integrity" "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
+  "resolved" "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz"
+  "version" "1.2.2"
+
 "cross-spawn@^5.0.1":
   "integrity" "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A=="
   "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz"
@@ -3670,6 +3693,11 @@
   "resolved" "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz"
   "version" "0.2.0"
 
+"frac@~1.1.2":
+  "integrity" "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
+  "resolved" "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz"
+  "version" "1.1.2"
+
 "fraction.js@^4.3.6":
   "integrity" "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew=="
   "resolved" "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz"
@@ -6214,6 +6242,13 @@
   "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"
   "version" "1.0.3"
 
+"ssf@~0.11.2":
+  "integrity" "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g=="
+  "resolved" "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz"
+  "version" "0.11.2"
+  dependencies:
+    "frac" "~1.1.2"
+
 "ssri@^8.0.1":
   "integrity" "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ=="
   "resolved" "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz"
@@ -6995,6 +7030,16 @@
   "resolved" "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz"
   "version" "2.0.1"
 
+"wmf@~1.0.1":
+  "integrity" "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
+  "resolved" "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz"
+  "version" "1.0.2"
+
+"word@~0.3.0":
+  "integrity" "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
+  "resolved" "https://registry.npmmirror.com/word/-/word-0.3.0.tgz"
+  "version" "0.3.0"
+
 "wrap-ansi@^3.0.1":
   "integrity" "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ=="
   "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz"
@@ -7027,6 +7072,19 @@
   "resolved" "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz"
   "version" "8.16.0"
 
+"xlsx@^0.18.5":
+  "integrity" "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ=="
+  "resolved" "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz"
+  "version" "0.18.5"
+  dependencies:
+    "adler-32" "~1.3.0"
+    "cfb" "~1.2.1"
+    "codepage" "~1.15.0"
+    "crc-32" "~1.2.1"
+    "ssf" "~0.11.2"
+    "wmf" "~1.0.1"
+    "word" "~0.3.0"
+
 "y18n@^5.0.5":
   "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
   "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz"