YangJian0701 1 year ago
parent
commit
a6f05061a4
52 changed files with 299 additions and 15 deletions
  1. 2 0
      src/api/module/storagePut.ts
  2. 9 0
      src/plugins/rulesData.ts
  3. 9 0
      src/plugins/selectData.ts
  4. 1 1
      src/views/stockcontrol/storageFrom/scanCode.vue
  5. 6 2
      src/views/stockcontrol/storagePut/index.vue
  6. 10 4
      src/views/stockcontrol/storagePut/inputSearch.vue
  7. 1 1
      src/views/stockcontrol/storagePut/scanCode.vue
  8. 225 0
      src/views/stockcontrol/storagePut/transportScanCode.vue
  9. 35 6
      src/views/stockcontrol/transmitReceive/downing.vue
  10. BIN
      出入库管理系统.rar
  11. 0 0
      出入库管理系统/css/674.4b5d2e9a.css
  12. 0 0
      出入库管理系统/css/76.2b0d00a5.css
  13. 0 0
      出入库管理系统/css/782.8b596f1b.css
  14. 1 1
      出入库管理系统/index.html
  15. 0 0
      出入库管理系统/js/1.9ca1de6b.js
  16. 0 0
      出入库管理系统/js/1.9ca1de6b.js.map
  17. 0 0
      出入库管理系统/js/134.8dbab92c.js
  18. 0 0
      出入库管理系统/js/134.8dbab92c.js.map
  19. 0 0
      出入库管理系统/js/178.6f066411.js
  20. 0 0
      出入库管理系统/js/178.6f066411.js.map
  21. 0 0
      出入库管理系统/js/253.ed2529f6.js
  22. 0 0
      出入库管理系统/js/253.ed2529f6.js.map
  23. 0 0
      出入库管理系统/js/348.d25472db.js
  24. 0 0
      出入库管理系统/js/348.d25472db.js.map
  25. 0 0
      出入库管理系统/js/401.cf64a3b5.js
  26. 0 0
      出入库管理系统/js/401.cf64a3b5.js.map
  27. 0 0
      出入库管理系统/js/422.b481bb4a.js
  28. 0 0
      出入库管理系统/js/422.b481bb4a.js.map
  29. 0 0
      出入库管理系统/js/549.2a016e73.js
  30. 0 0
      出入库管理系统/js/549.2a016e73.js.map
  31. 0 0
      出入库管理系统/js/549.380ddc7e.js
  32. 0 0
      出入库管理系统/js/549.380ddc7e.js.map
  33. 0 0
      出入库管理系统/js/670.0ffbab19.js
  34. 0 0
      出入库管理系统/js/670.0ffbab19.js.map
  35. 0 0
      出入库管理系统/js/674.789537c4.js
  36. 0 0
      出入库管理系统/js/674.789537c4.js.map
  37. 0 0
      出入库管理系统/js/691.e5eec10d.js
  38. 0 0
      出入库管理系统/js/691.e5eec10d.js.map
  39. 0 0
      出入库管理系统/js/76.235b5117.js
  40. 0 0
      出入库管理系统/js/76.235b5117.js.map
  41. 0 0
      出入库管理系统/js/782.724f4689.js
  42. 0 0
      出入库管理系统/js/782.724f4689.js.map
  43. 0 0
      出入库管理系统/js/894.8e9c3b64.js
  44. 0 0
      出入库管理系统/js/894.8e9c3b64.js.map
  45. 0 0
      出入库管理系统/js/940.1ca9f9f5.js
  46. 0 0
      出入库管理系统/js/940.1ca9f9f5.js.map
  47. 0 0
      出入库管理系统/js/app.2b01591f.js
  48. 0 0
      出入库管理系统/js/app.2b01591f.js.map
  49. 0 0
      出入库管理系统/js/app.ad795a1a.js
  50. 0 0
      出入库管理系统/js/app.ad795a1a.js.map
  51. 0 0
      出入库管理系统/service-worker.js
  52. 0 0
      出入库管理系统/service-worker.js.map

+ 2 - 0
src/api/module/storagePut.ts

@@ -50,5 +50,7 @@ export const medicListScanCode = (params: any) => $http.post('/medicine-template
  */
 export const medicMsfx = (params: any) => $http.get('/medicine/msfx-query', params)
 
+export const medicTransport = (params: any) => $http.get('/stock-template/transport-record/barcode-info', params)
+
 export const stockCodein = (params: any) => $http.post('/stock-template/scan-code-in', params)
 

+ 9 - 0
src/plugins/rulesData.ts

@@ -36,6 +36,15 @@ export let scanCodeTable = [
     { prop: 'date', label: '入库日期', width: 0 },
     { prop: 'operation', label: '操作', fixed: 'right',"min-width":200}
 ]
+//入库
+export let TranscanCodeTable = [
+    { prop: 'quantity', label: '数量', width: 0 },
+    { prop: 'operator', label: '经办人', width: 0 },
+    { prop: 'unit_price', label: '购进单价', width: 0 },
+    { prop: 'forwardingUnit', label: '发货单位', width: 0 },
+    { prop: 'date', label: '入库日期', width: 0 },
+    { prop: 'operation', label: '操作', fixed: 'right',"min-width":200}
+]
 
 //出库
 export let columnsTableOut = [

+ 9 - 0
src/plugins/selectData.ts

@@ -18,6 +18,15 @@ export async function LotNumber() {
 }
 
 /**
+ * 收货单位
+ * @param params 
+ */
+export async function shoubat() {
+    const reslut:any =await stockunit({type:2})
+    return reslut.data.list || []
+}
+
+/**
  * 规格
  */
 export async function specification(){

+ 1 - 1
src/views/stockcontrol/storageFrom/scanCode.vue

@@ -95,7 +95,7 @@ const showDia = async () => {
     medicListStockFun()//获取入库表单
     itemPirFun()
     nextTick(()=>{
-        console.log('inputSearchRef',inputSearchRef.value)
+        console.log('inputSearchRef111',inputSearchRef.value)
         inputSearchRef.value?.inputFocus()
     })
 }

+ 6 - 2
src/views/stockcontrol/storagePut/index.vue

@@ -36,7 +36,8 @@
         <bg istitle="基本信息">
             <template #btn>
                 <Labour @scanCode="scanCodeFun" style="margin-right: 20px;"></Labour>
-                <scanCode @scanCode="scanCodeFun"></scanCode>
+                <scanCode @scanCode="scanCodeFun" style="margin-right: 20px;"></scanCode>
+                <transportScanCode @scanCode="scanCodeFun"></transportScanCode>
             </template>
             <template #bg>
                 <tables ref="TableRef" :requestApi="stockInList" :columns="columns" :initParam="initParam">
@@ -63,6 +64,9 @@ import searchAdd from "@/components/searchAdd.vue";
 import bg from '@/components/bg.vue'
 import Labour from './Labour.vue'
 import scanCode from './scanCode.vue'
+import transportScanCode from './transportScanCode.vue'
+
+
 
 import Editinventory from './Editinventory.vue'
 
@@ -124,7 +128,7 @@ const editinventFun = async ()=>{
 // 渲染表格
 onMounted(async () => {
      const r:any = await medicineColumns({})
-     console.log('r',r)
+     console.log('rrr',r)
      if(r.code==200){
         let obj = [...r.data?.list]
         TableRef.value.tableColumns = [...obj,...columnsTable]

+ 10 - 4
src/views/stockcontrol/storagePut/inputSearch.vue

@@ -4,7 +4,7 @@
             <img src="@/assets/img/BarCodeQR.svg" style="width: 80%;height: 80%;">
         </div>
         <div class="Qr-input">
-            <input class="Qr-input-type" ref="myInput" v-model="data.value" type="text" placeholder="请扫描追溯码">
+            <input class="Qr-input-type" ref="myInput" v-model="data.value" type="text" :placeholder="props.placeholderData">
             <el-icon :size="18" style="cursor: pointer;" @click="CloseFn">
                 <CircleClose />
             </el-icon>
@@ -14,18 +14,24 @@
 </template>
 
 <script setup lang="ts">
-import { ref, reactive,watch} from "vue";
-import { ElMessage, ElMessageBox } from 'element-plus'
+import { ref, reactive} from "vue";
+import { ElMessage } from 'element-plus'
 const myInput = ref()
 const data: any = reactive({
     value: '',
     num:0
 })
-
+const props = defineProps({
+    placeholderData:({
+        type:String,
+        default: () =>'请扫描追溯码'
+    })
+})
 const emit: any = defineEmits(['inputSearchData',])
 //函数
 const inputFocus = async () => {
     setTimeout(() => {
+        console.log('myInputmyInputmyInput',myInput)
         myInput.value.focus()
     }, 1000)
 }

+ 1 - 1
src/views/stockcontrol/storagePut/scanCode.vue

@@ -119,7 +119,7 @@ const findFun = (data: any, list: any) => {
 const medicListStockFun = async () => {
     data.columns = []
     const reslut: any = await medicListScanCode({})
-    console.log('表格', reslut)
+    console.log('表格1234', reslut)
     if (reslut.code == 200 && reslut.msg == '查询成功') {
         data.showDiaData = reslut.data?.list
         data.rules1 = {}

+ 225 - 0
src/views/stockcontrol/storagePut/transportScanCode.vue

@@ -0,0 +1,225 @@
+<!-- 运输扫码 -->
+<template>
+    <div class="">
+        <el-button el-button type="primary" icon="Camera" @click="showDia">条码入库</el-button>
+        <el-dialog v-model="dialogFormVisible" title="扫描运输条码入库" :append-to-body="true" draggable :close-on-click-modal="false"
+            :close-on-press-escape="false" width="95%">
+            <inputSearch ref="inputSearchRef" placeholderData="请扫描运输条码" style="margin:0 auto 40px auto;" @inputSearchData="inputSearchfn"></inputSearch>
+            <el-table :data="data.tableData" style="width: 100%" border height="450" row-class-name="success-row">
+                <el-table-column :label="item.label" v-for="item, i in data.columns" :key="i" min-width="110" show-overflow-tooltip>
+                    <template #default="scope">
+                        {{ scope.row[item.prop] }}
+                    </template>
+                </el-table-column>
+                <el-table-column :label="item.label" min-width="150" v-for="item,index in TranscanCodeTable" :key="index"
+                :fixed="item.prop == 'operation'&&'right'">
+                    <template #default="scope">
+                        <el-input v-if="['quantity','unit_price'].includes(item.prop)" v-model="scope.row[item.prop]" style="width: 100px;"/>
+                        <el-autocomplete v-if="item.prop == 'operator'" v-model="scope.row[item.prop]"
+                         :fetch-suggestions="querySearch2" clearable style="width: 120px;" />
+                        <el-date-picker v-if="item.prop == 'date'" v-model="scope.row[item.prop]" type="date" value-format="YYYY-MM-DD" style="width: 120px;"/>
+                        <el-autocomplete v-if="item.prop == 'forwardingUnit'" v-model="scope.row[item.prop]"
+                         :fetch-suggestions="querySearch1" clearable style="width: 120px;" />
+                        <el-button v-if="item.prop == 'operation'" type="danger" :icon="Delete" @click="deltable(scope.$index)">删除</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <template #footer>
+                <span class="dialog-footer">
+                    <el-button @click="dialogFormVisible = false">关闭</el-button>
+                    <el-button type="danger" @click="resetForm">重置数据</el-button>
+                    <el-button type="primary" :disabled="data.tableData.length==0?true:false" @click="subStock">立即入库</el-button>
+                </span>
+            </template>
+        </el-dialog>
+    </div>
+</template>
+
+<script setup lang="ts">
+import { reactive, ref,nextTick,watch, onMounted} from 'vue'
+import inputSearch from "./inputSearch.vue";
+import {TranscanCodeTable } from "@/plugins/rulesData";
+import { timesFn } from "@/plugins/settime";
+
+
+const dialogFormVisible = ref(false)
+watch(() => dialogFormVisible.value, (dy: any) => {
+  if(!dy)resetForm()
+})
+const inputSearchRef = ref<InstanceType<typeof inputSearch> | null>(null)
+import { 
+    stockunit,//收发货单位
+    stockCodein
+} from "@/api";
+import { ElMessage } from 'element-plus'
+import { Delete} from '@element-plus/icons-vue'
+import { syrulesData } from "@/plugins/rulesData";
+
+import {
+    medicListScanCode,
+    medicTransport,
+    operatorList
+} from "@/api";
+let data: any = reactive({
+    tableData: [],
+    showDiaData: [],
+    itemPir: [],
+    rules1: {},
+    columns: [],// 渲染表格
+    selectType: [],//表格的下拉对应
+    editStrot: false,
+    editIndex: null,
+    qr:''
+})
+
+
+let rules: any = reactive({})
+const showDia = async () => {
+    dialogFormVisible.value = true
+    medicListStockFun()//获取入库表单
+    itemPirFun()
+    itemPirFun2()
+    nextTick(()=>{
+        console.log('inputSearchRef',inputSearchRef.value)
+        inputSearchRef.value?.inputFocus()
+    })
+}
+
+//获取入库表单Api
+const medicListStockFun = async () => {
+    data.columns = []
+    const reslut: any = await medicListScanCode({})
+    console.log('表格888', reslut)
+    if (reslut.code == 200 && reslut.msg == '查询成功') {
+        data.showDiaData = reslut.data?.list
+        data.rules1 = {}
+        data.columns = []
+        reslut.data?.list.forEach((value: any) => { //value设置成key
+            data.columns.push({ prop: value.field_name, label: value.name, list: value.list })
+            // initParam.medicineInfo[value.field_name] = ''; // 这里可以根据需要设置其他值作为键的内容
+        });
+        Object.assign(rules, { ...data.rules1, ...syrulesData })
+        dialogFormVisible.value = true
+    }
+}
+const emit: any = defineEmits(['scanCode'])
+const subStock = async ()=>{
+    const ab = data.tableData.every((item:any) => item.quantity != '' && item.operator != '' && item.date != '')
+    if(!ab){ElMessage.error('缺少数据提示:【数量】、【经办人】、【入库日期】是必填项哦!');return;}
+    else{
+        const arr = [...data.tableData]
+        let arrData:any = []
+        arr.forEach((item:any)=>{
+            item.quantity = Number(item.quantity)
+            item.unit_price = Number(item.unit_price)
+            arrData.push({
+                date:item.date,
+                forwardingUnit:item.forwardingUnit,
+                medicineInfo:item,
+                operator:item.operator,
+                quantity:item.quantity,
+                unitPrice:item.unit_price
+            })
+        })
+        const reslut:any = await stockCodein({stockInList:arrData})
+        if(reslut.code==200){
+            ElMessage.success(reslut.msg)
+            dialogFormVisible.value = false
+            emit('scanCode', '')
+        }
+    }
+}
+/**
+ * 搜索
+ * @param e 追溯码
+ */
+const inputSearchfn = async (e:any)=>{
+    data.qr = e
+    const reslut:any = await medicTransport({code:e})
+    if (reslut.code==200 && reslut.msg=='查询成功') {
+        console.log('reslut.data',reslut.data)
+        let arr = [... reslut.data] || []
+        arr.forEach((item:any)=>{ item.date = timesFn()})
+        data.tableData = [...arr]
+    }
+}
+
+/**
+ * 删除
+ * @param index 
+ */
+const deltable = async (index:any)=>{
+    data.tableData.splice(index,1)
+    nextTick(()=>{
+        inputSearchRef.value?.inputFocus()
+    })
+}
+
+//经半人
+const itemPirFun2 = async () => {
+    const reslut: any = await operatorList({})
+    const arrMap = reslut.data?.list
+    const arr:any = []
+    arrMap.forEach((item:any)=>{
+        arr.push({ value: item, link: item})  
+    })
+    restaurants2.value = arr
+}
+const restaurants2 = ref<RestaurantItem[]>([])
+const querySearch2 = (queryString: string, cb: any) => {
+  const results = queryString
+    ? restaurants2.value.filter(createFilter(queryString))
+    : restaurants2.value
+  cb(results)
+}
+
+
+
+//收发货单位
+const itemPirFun = async () => {
+    const reslut: any = await stockunit({ type: 3 })
+    const arrMap = reslut.data?.list
+    const arr:any = []
+    arrMap.forEach((item:any)=>{
+        arr.push({ value: item, link: item})  
+    })
+    restaurants1.value = arr
+}
+interface RestaurantItem {
+  value: string
+  link: string
+}
+const restaurants1 = ref<RestaurantItem[]>([])
+const querySearch1 = (queryString: string, cb: any) => {
+  const results = queryString
+    ? restaurants1.value.filter(createFilter(queryString))
+    : restaurants1.value
+  cb(results)
+}
+const createFilter = (queryString: string) => {
+  return (restaurant: RestaurantItem) => {
+    return (
+      restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0
+    )
+  }
+}
+/**
+ * 重置
+ */
+const resetForm = async ()=>{
+    data.tableData = []
+    inputSearchRef?.value?.ClearFn()
+    inputSearchRef.value?.inputFocus()
+}
+</script>
+<style lang="scss">
+.inputWidth {
+    width: 200px;
+}
+.el-table .warning-row {
+  --el-table-tr-bg-color: var(--el-color-warning-light-9);
+}
+.el-table .success-row {
+  --el-table-tr-bg-color: var(--el-color-success-light-9);
+}
+</style>

+ 35 - 6
src/views/stockcontrol/transmitReceive/downing.vue

@@ -1,6 +1,6 @@
 <template> 
     <el-button el-button type="primary" icon="Download" @click="showdialog">收发登记表</el-button>
-    <el-button el-button type="primary" icon="Download" @click="dialogFormVisible1 = true">运输登记表</el-button>
+    <el-button el-button type="primary" icon="Download" @click="showdialogdialog">运输登记表</el-button>
     <el-dialog v-model="dialogFormVisible" title="收发登记表" :append-to-body="true" draggable width="30%">
         <el-form :model="initParam" ref="ruleFormRef" :rules="rules">
             <el-form-item label="品名" :label-width="formLabelWidth" prop="productId">
@@ -47,11 +47,14 @@
                     style="width: 100%;" />
             </el-form-item>
             <el-form-item label="收货单位" :label-width="formLabelWidth" prop="receivingUnit">
-                <el-select v-model.number="initParamWord.receivingUnit" filterable remote reserve-keyword placeholder="收货单位"
+                <!-- <el-select v-model.number="initParamWord.receivingUnit" filterable remote reserve-keyword placeholder="收货单位"
                     :remote-method="remoteMethod4" :loading="loading" clearable style="width: 100%;"
                     @clear="initParamWord.receivingUnit = null" @click="click4">
                     <el-option v-for="item in options4" :key="item.value" :label="item.label" :value="item.value" />
-                </el-select>
+                </el-select> -->
+
+                <el-autocomplete v-model="initParamWord.receivingUnit" :fetch-suggestions="querySearch1" clearable class="inputWidth"
+                        placeholder="收货单位" style="width: 100%;" />
             </el-form-item>
             <el-form-item label="品名" :label-width="formLabelWidth">
                 <el-select v-model.number="initParamWord.productId" filterable remote reserve-keyword placeholder="品名"
@@ -73,8 +76,8 @@
 </template>
 
 <script setup lang="ts">
-import { inventoryExcel, transportWord } from "@/api";
-import { gradeName, enterpriseFun, stockunitFun, specification, LotNumber } from "@/plugins/selectData";
+import { inventoryExcel, transportWord,stockunit } from "@/api";
+import { gradeName, enterpriseFun, stockunitFun, specification, LotNumber,shoubat } from "@/plugins/selectData";
 import { reactive, ref, onMounted } from 'vue'
 import { downPDF, downloadExcelFun } from "@/utils/download";
 import type { FormInstance } from 'element-plus'
@@ -106,7 +109,7 @@ interface RuleForm1 {
 }
 const initParamWord = reactive<RuleForm1>({//请求参数
     "date": null,
-    "receivingUnit": null,
+    "receivingUnit": '',
     "productId": null,
     "type": ''
 })
@@ -229,6 +232,8 @@ const querySearch = (queryString: string, cb: any) => {
     : restaurants.value
   cb(results)
 }
+
+
 const createFilter = (queryString: string) => {
   return (restaurant: RestaurantItem) => {
     return (
@@ -239,6 +244,30 @@ const createFilter = (queryString: string) => {
 
 
 
+
+
+//显示运输登记
+const showdialogdialog = async ()=>{
+    dialogFormVisible1.value = true
+    const reslut:any  = await shoubat()
+    console.log('数据1',reslut)
+    const arrMap = reslut
+    const arr:any = []
+    arrMap.forEach((item:any)=>{
+        arr.push({ value: item, link: item})  
+    })
+    restaurants1.value = arr
+    console.log('数据2',restaurants1.value)
+}
+const restaurants1 = ref<RestaurantItem[]>([])
+const querySearch1 = (queryString: string, cb: any) => {
+  const results = queryString
+    ? restaurants1.value.filter(createFilter(queryString))
+    : restaurants1.value
+  cb(results)
+}
+
+
 const rules = reactive({
     batchNumber: [{ required: true, message: '必填项', trigger: 'change' }],
     enterpriseId: [{ required: true, message: '必填项', trigger: 'change' }],

BIN
出入库管理系统.rar


+ 0 - 0
出入库管理系统/css/691.4b5d2e9a.css → 出入库管理系统/css/674.4b5d2e9a.css


+ 0 - 0
出入库管理系统/css/178.cfdbba09.css → 出入库管理系统/css/76.2b0d00a5.css


+ 0 - 0
出入库管理系统/css/348.8b596f1b.css → 出入库管理系统/css/782.8b596f1b.css


+ 1 - 1
出入库管理系统/index.html

@@ -83,4 +83,4 @@
       100% {
         transform: rotateZ(360deg) rotateX(66deg) rotateZ(360deg);
       }
-    }</style><script defer="defer" src="/js/chunk-vendors.4c222c47.js"></script><script defer="defer" src="/js/app.ad795a1a.js"></script><link href="/css/chunk-vendors.c5343724.css" rel="stylesheet"><link href="/css/app.8d6d02ba.css" rel="stylesheet"><!--[if IE]><link rel="icon" type="image/svg+xml" href="/img/icons/favicon.svg"><![endif]--><link rel="icon" type="image/png" sizes="32x32" href="/./favicon.ico"><link rel="icon" type="image/png" sizes="16x16" href="/./favicon.ico"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#4DBA87"><meta name="apple-mobile-web-app-capable" content="no"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="apple-mobile-web-app-title" content="baozhidao-putoutstorage"><link rel="apple-touch-icon" href="/./favicon.ico"><link rel="mask-icon" href="/./favicon.ico" color="#4DBA87"><meta name="msapplication-TileImage" content="/./favicon.ico"><meta name="msapplication-TileColor" content="#000000"></head><body><noscript><strong>We're sorry but baozhidao-putoutstorage doesn't work properly without JavaScript enabled.Please enable it to continue.</strong></noscript><div id="app"><div class="loadingSpinn"><div class="atom-spinner"><div class="spinner-inner"><div class="spinner-line"></div><div class="spinner-line"></div><div class="spinner-line"></div><div class="spinner-circle">&#9679;</div></div></div></div></div></body></html>
+    }</style><script defer="defer" src="/js/chunk-vendors.4c222c47.js"></script><script defer="defer" src="/js/app.2b01591f.js"></script><link href="/css/chunk-vendors.c5343724.css" rel="stylesheet"><link href="/css/app.8d6d02ba.css" rel="stylesheet"><!--[if IE]><link rel="icon" type="image/svg+xml" href="/img/icons/favicon.svg"><![endif]--><link rel="icon" type="image/png" sizes="32x32" href="/./favicon.ico"><link rel="icon" type="image/png" sizes="16x16" href="/./favicon.ico"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#4DBA87"><meta name="apple-mobile-web-app-capable" content="no"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="apple-mobile-web-app-title" content="baozhidao-putoutstorage"><link rel="apple-touch-icon" href="/./favicon.ico"><link rel="mask-icon" href="/./favicon.ico" color="#4DBA87"><meta name="msapplication-TileImage" content="/./favicon.ico"><meta name="msapplication-TileColor" content="#000000"></head><body><noscript><strong>We're sorry but baozhidao-putoutstorage doesn't work properly without JavaScript enabled.Please enable it to continue.</strong></noscript><div id="app"><div class="loadingSpinn"><div class="atom-spinner"><div class="spinner-inner"><div class="spinner-line"></div><div class="spinner-line"></div><div class="spinner-line"></div><div class="spinner-circle">&#9679;</div></div></div></div></div></body></html>

File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/1.9ca1de6b.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/1.9ca1de6b.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/134.8dbab92c.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/134.8dbab92c.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/178.6f066411.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/178.6f066411.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/253.ed2529f6.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/253.ed2529f6.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/348.d25472db.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/348.d25472db.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/401.cf64a3b5.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/401.cf64a3b5.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/422.b481bb4a.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/422.b481bb4a.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/549.2a016e73.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/549.2a016e73.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/549.380ddc7e.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/549.380ddc7e.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/670.0ffbab19.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/670.0ffbab19.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/674.789537c4.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/674.789537c4.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/691.e5eec10d.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/691.e5eec10d.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/76.235b5117.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/76.235b5117.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/782.724f4689.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/782.724f4689.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/894.8e9c3b64.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/894.8e9c3b64.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/940.1ca9f9f5.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/940.1ca9f9f5.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/app.2b01591f.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/app.2b01591f.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/app.ad795a1a.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/js/app.ad795a1a.js.map


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/service-worker.js


File diff suppressed because it is too large
+ 0 - 0
出入库管理系统/service-worker.js.map


Some files were not shown because too many files changed in this diff