zhangyuewww 4 роки тому
батько
коміт
bf101e1bfb

Різницю між файлами не показано, бо вона завелика
+ 1351 - 656
package-lock.json


+ 2 - 1
package.json

@@ -43,6 +43,7 @@
   },
   "dependencies": {
     "@babel/polyfill": "^7.12.1",
+    "@babel/preset-env": "^7.14.4",
     "axios": "^0.20.0",
     "babel-polyfill": "^6.26.0",
     "base-core-lib": "^1.3.16",
@@ -78,7 +79,7 @@
     "xe-utils": "^2.3.0"
   },
   "devDependencies": {
-    "@babel/core": "7.0.0",
+    "@babel/core": "^7.0.0",
     "@babel/register": "7.0.0",
     "@pixul/node-rancher-api": "^1.4.0",
     "@vue/cli-plugin-babel": "3.6.0",

BIN
public/img/cangku.png


BIN
public/img/radio-check.png


BIN
public/img/radio.png


+ 15 - 6
src/api/V2/warehouse/index.js

@@ -8,9 +8,9 @@ export const API_GET_WAREHOUSE_CUSTOMDROPDOWN = '/warehouseBaseInfo/selectWareho
 //删除
 export const API_POST_WAREHOUSE_DELETE = '/warehouseBaseInfo/api/deleteWarehouse'
 //删除仓库列表
-export const API_GET_WAREHOUSE_DELETELIST ='/warehouseBaseInfo/selectAllWarehouse'
+export const API_GET_WAREHOUSE_DELETELIST = '/warehouseBaseInfo/selectAllWarehouse'
 //隐藏
-export const API_POST_WAREHOUSE_HIDE ='/warehouseBaseInfo/api/editShow'
+export const API_POST_WAREHOUSE_HIDE = '/warehouseBaseInfo/api/editShow'
 
 
 export const API_GET_WAREHOUSE_DELETE = '/warehouseBaseInfo/api/deleteWarehouse'
@@ -18,12 +18,21 @@ export const API_GET_WAREHOUSE_DELETE = '/warehouseBaseInfo/api/deleteWarehouse'
 //仓库编辑
 export const API_POST_WAREHOUSE_EDIT = '/warehouseBaseInfo/api/editWarehouse'
 //盘损
-export const API_POST_WAREHOUSE_IOSS = '/warehouseInventoryCountInfo/getInfo'
+export const API_GET_WAREHOUSE_IOSS = '/warehouseInventoryCountInfo/getInfo'
 //货名下拉
-export const API_POST_WAREHOUSE_NAME = '/warehousePositionStorageInfo/selectGoodsName'
-
+export const API_GET_WAREHOUSE_NAME = '/warehousePositionStorageInfo/selectGoodsName'
 // 货名等下拉
 export const API_GET_CUSTOMDROPDOWN_CUSTOMDROPDOWN = `/commonSysParameter/getInfo`
 // 入库添加
-export const API_POST_STORAGE_PUT = `/warehouseInOutInfo/InOutWarehouse `
 
+export const API_POST_STORAGE_PUT = `/warehouseInOutInfo/InOutWarehouse`
+//流转记录
+export const API_GET_SELECT_INFO = `/warehouseInOutInfo/selectInfo`
+// 盘损记录
+export const API_GET_WAREHOUSE_INVENTORYCOUNT = '/warehouseInventoryCountInfo/selectInfo'
+//盘损提交
+export const API_POST_STORAGE_IOSS = '/warehouseInventoryCountInfo/addInventory'
+//待完善记录
+export const API_GET_WAREHOUSE_COMPLETE = '/warehouseInOutInfo/selectWarehouseInOutInfo'
+// 编辑删除仓位
+export const API_POST_WAREHOUSE_DEL_POSITION = '/warehousePositionInfo/api/deleteWarehousePosition'

+ 58 - 18
src/components/mapdrag/mapdrag.vue

@@ -1,7 +1,7 @@
 <style lang='scss' scoped>
 .mapContent {
   position: relative;
-  margin-top: 40px;
+  margin-top: 64px;
 }
 #mapContainer {
   width: 300px;
@@ -28,6 +28,14 @@
     resize: none;
   }
 }
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-button--default {
+  color: #5878e8;
+  border-color: #5473e8;
+}
 </style>
 
 <template>
@@ -61,13 +69,15 @@
         >
         </el-option>
       </el-select>
-      <el-input
+      <!-- <el-input
         type="textarea"
         id="searchValue"
         placeholder="地址"
         v-model="address"
         clearable
-      ></el-input>
+      ></el-input> -->
+      <el-button @click="positions" type="primary">确定定位</el-button>
+      <el-button @click="anewselect">重新选择</el-button>
     </div>
   </div>
 </template>
@@ -89,6 +99,9 @@ export default {
       address: '',
       objPoint: [],
       markers: [],
+      zoomEnable: true,
+      dragEnable: true,
+      status: true,
     }
   },
   props: ['flagVisible', 'position'],
@@ -114,16 +127,20 @@ export default {
       this.map = new AMap.Map('mapContainer', {
         resizeEnable: true,
         zoom: 10,
+        zoomEnable: this.zoomEnable,
+        dragEnable: this.dragEnable,
       })
       this.map.on('click', function (e) {
-        var marker = new AMap.Marker({
-          position: new AMap.LngLat(e.lnglat.getLng(), e.lnglat.getLat()), // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
-        })
-        that.map.remove(that.markers)
-        that.$emit('marker', e)
-        that.markers.push(marker)
-        // 将创建的点标记添加到已有的地图实例:
-        that.map.add(marker)
+        if (this.status) {
+          var marker = new AMap.Marker({
+            position: new AMap.LngLat(e.lnglat.getLng(), e.lnglat.getLat()), // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
+          })
+          that.map.remove(that.markers)
+          that.$emit('marker', e)
+          that.markers.push(marker)
+          // 将创建的点标记添加到已有的地图实例:
+          that.map.add(marker)
+        }
       })
       this.marker = new AMap.Marker({
         icon: new AMap.Icon({
@@ -150,7 +167,6 @@ export default {
             that.marker.setPosition(e.poi.location)
             placeSearch.search() // 关键字查询查询
             geocoder.getAddress(e.poi.location, function (status, result) {
-              console.log(status)
               if (status === 'complete') {
                 var obj = {}
                 that.province = result.regeocode.addressComponent.province
@@ -221,6 +237,24 @@ export default {
     this.loadmap()
   },
   methods: {
+    positions() {
+      this.status = false
+      var status = {
+        zoomEnable: false,
+        dragEnable: false,
+      }
+      this.map.setStatus(status)
+      this.loadmap()
+    },
+    anewselect() {
+      this.status = true
+      var status = {
+        zoomEnable: true,
+        dragEnable: true,
+      }
+      this.map.setStatus(status)
+      this.loadmap()
+    },
     loadmap(val) {
       let params = val
       var that = this // 插件
@@ -278,16 +312,22 @@ export default {
       })
     },
     selectP(val) {
-      this.loadmap(val)
-      this.city = ''
-      this.district = ''
+      if (this.status) {
+        this.loadmap(val)
+        this.city = ''
+        this.district = ''
+      }
     },
     selectC(val) {
-      this.loadmap(val)
-      this.district = ''
+      if (this.status) {
+        this.loadmap(val)
+        this.district = ''
+      }
     },
     selectD(val) {
-      this.loadmap(val)
+      if (this.status) {
+        this.loadmap(val)
+      }
     },
   },
 }

+ 2 - 1
src/lang/zh.js

@@ -501,11 +501,11 @@
     warehouseManagementRecord:'记录',
     warehouseManagementNoComplete:'待完成',
     warehouseManagementPerfectput:'编辑',
-    
     //运输管理
     tranManagement: '运输管理',
     tranManagementDriver:'司机管理',
     tranManagementDriverAdd:'添加司机',
+    warehouseManagementPerfectDelivery:'编辑',
 
     // 采购模块
     procurement: '采购管理',
@@ -4699,6 +4699,7 @@
     warehouseManagementRecord:'记录',
     warehouseManagementNoComplete:'待完成',
     warehouseManagementPerfectput:'编辑',
+    warehouseManagementPerfectDelivery:'编辑',
 
   },
   //运输管理

+ 23 - 9
src/model/warehouse/index.js

@@ -8,12 +8,16 @@ import {
     API_POST_WAREHOUSE_DELETE,
     API_GET_WAREHOUSE_DELETELIST,
     API_POST_WAREHOUSE_HIDE,
-    API_GET_WAREHOUSE_DELETE,
     API_POST_WAREHOUSE_EDIT,
-    API_POST_WAREHOUSE_IOSS,
-    API_POST_WAREHOUSE_NAME,
+    API_GET_WAREHOUSE_IOSS,
+    API_GET_WAREHOUSE_NAME,
     API_GET_CUSTOMDROPDOWN_CUSTOMDROPDOWN,
-    API_POST_STORAGE_PUT
+    API_POST_STORAGE_PUT,
+    API_GET_SELECT_INFO,
+    API_GET_WAREHOUSE_INVENTORYCOUNT,
+    API_POST_STORAGE_IOSS,
+    API_GET_WAREHOUSE_COMPLETE,
+    API_POST_WAREHOUSE_DEL_POSITION
 } from '@/api/V2/warehouse'
 // 列表
 export const getList = appRx.get(API_GET_WAREHOUSE_BASEINFO, errorCatcher, errorHandle, filter)
@@ -22,7 +26,7 @@ export const addList = appRx.post(API_POST_ADD_WAREHOUSE_BASEINFO, errorCatcher,
 //仓库查看
 export const getLook = appRx.get(API_GET_WAREHOUSE_LOOK, errorCatcher, errorHandle, filter)
 //仓库下拉
-export const xiala = appRx.get( API_GET_WAREHOUSE_CUSTOMDROPDOWN, errorCatcher, errorHandle, filter)
+export const xiala = appRx.get(API_GET_WAREHOUSE_CUSTOMDROPDOWN, errorCatcher, errorHandle, filter)
 //删除
 
 export const deletewarehouse = appRx.post(API_POST_WAREHOUSE_DELETE, errorCatcher, errorHandle, filter)
@@ -30,16 +34,26 @@ export const deletewarehouse = appRx.post(API_POST_WAREHOUSE_DELETE, errorCatche
 export const delectlist = appRx.get(API_GET_WAREHOUSE_DELETELIST, errorCatcher, errorHandle, filter)
 //隐藏
 export const hide = appRx.post(API_POST_WAREHOUSE_HIDE, errorCatcher, errorHandle, filter)
-
-export const deletewarehouse = appRx.get(API_GET_WAREHOUSE_DELETE, errorCatcher, errorHandle, filter)
 //仓库编辑
 export const edit = appRx.post(API_POST_WAREHOUSE_EDIT, errorCatcher, errorHandle, filter)
 //盘损
-export const ioss = appRx.post(API_POST_WAREHOUSE_IOSS, errorCatcher, errorHandle, filter)
+export const ioss = appRx.get(API_GET_WAREHOUSE_IOSS, errorCatcher, errorHandle, filter)
 //货名下拉
-export const goodsname = appRx.get(API_POST_WAREHOUSE_NAME, errorCatcher, errorHandle, filter)
+export const goodsname = appRx.get(API_GET_WAREHOUSE_NAME, errorCatcher, errorHandle, filter)
 // 货名等下拉
 export const pullDown = appRx.get(API_GET_CUSTOMDROPDOWN_CUSTOMDROPDOWN, errorCatcher, errorHandle, filter)
 // 入库添加
 export const addstorageputList = appRx.post(API_POST_STORAGE_PUT, errorCatcher, errorHandle, filter)
+// 流转记录
+export const addselectinfoList = appRx.get(API_GET_SELECT_INFO, errorCatcher, errorHandle, filter)
+// 盘损记录
+export const adjustmentrecordList = appRx.get(API_GET_WAREHOUSE_INVENTORYCOUNT, errorCatcher, errorHandle, filter)
+//盘损提交
+export const submitioss = appRx.post(API_POST_STORAGE_IOSS, errorCatcher, errorHandle, filter)
+//待完善记录
+export const complete = appRx.get(API_GET_WAREHOUSE_COMPLETE, errorCatcher, errorHandle, filter)
+// 编辑删除仓位
+
+export const delPosition = appRx.post(API_POST_WAREHOUSE_DEL_POSITION, errorCatcher, errorHandle, filter)
+
 

+ 0 - 1
src/views/contractManagement/salesContractAdd.vue

@@ -716,7 +716,6 @@ export default {
         })
         return
       }
-      console.log(this.deptBudgetList.contractNo.length)
       if (
         this.deptBudgetList.contractNo.length < 6 ||
         this.deptBudgetList.contractNo.length > 20

+ 19 - 0
src/views/warehouse/component/router/index.js

@@ -198,6 +198,25 @@ const warehouseManagementRouter = {
       },
       hidden: true
     },
+    {
+      path: 'warehouseManagementPerfectDelivery',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/warehouse/warehouseManagementPerfectDelivery'),
+      name: 'warehouseManagementPerfectDelivery',
+      meta: {
+        title: 'warehouseManagementPerfectDelivery',
+        shortcutEntrance: 'warehouseManagementPerfectDelivery',
+        module: 'warehouse.warehouseManagementPerfectDelivery',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
+
+
+
+    
   ],
 };
 export default warehouseManagementRouter;

+ 206 - 56
src/views/warehouse/warehouseManagementAdd.vue

@@ -25,17 +25,12 @@ npm install vue-amap --save// 仓库添加
     <ws-form
       class="position"
       ref="deptBudgetList"
-      :rules="mainReportAdd"
+      :rules="rules"
       :model="deptBudgetList"
-    >
+      ><div class="small-title">基本信息</div>
       <ws-info-table>
         <!--仓库名称-->
-        <ws-form-item
-          label="仓库名称"
-          span="1"
-          prop="contractNo"
-          class="readonly"
-        >
+        <ws-form-item label="仓库名称" span="1" prop="warehouseName">
           <ws-input
             v-model="deptBudgetList.warehouseName"
             placeholder="请输入仓库名"
@@ -44,7 +39,12 @@ npm install vue-amap --save// 仓库添加
           />
         </ws-form-item>
         <!--负责人-->
-        <ws-form-item label="负责人" span="1" prop="buyer" class="readonly">
+        <ws-form-item
+          label="负责人"
+          span="1"
+          prop="personCharge"
+          class="readonly"
+        >
           <ws-input
             v-model="deptBudgetList.personCharge"
             placeholder="请输入负责人姓名"
@@ -54,7 +54,7 @@ npm install vue-amap --save// 仓库添加
         </ws-form-item>
 
         <!--负责人电话-->
-        <ws-form-item label="负责人电话" span="1" prop="shippingType">
+        <ws-form-item label="负责人电话" span="1" prop="personPhone">
           <ws-input
             v-model="deptBudgetList.personPhone"
             placeholder="请输入负责人手机号码"
@@ -70,7 +70,7 @@ npm install vue-amap --save// 仓库添加
             v-model="selectedOptions"
             clearable
             size="large"
-            placeholder="请选择交货地"
+            placeholder="请选择仓库所在地"
             style="width: 200%"
             @change="handleChange"
           />
@@ -94,6 +94,7 @@ npm install vue-amap --save// 仓库添加
         <!--总吨量(吨)-->
         <ws-form-item label="总吨量(吨)" span="1" prop="settlementMethod">
           <ws-input
+            class="totalStorage"
             :readonly="true"
             v-model="totalStorage"
             maxlength="100"
@@ -106,14 +107,14 @@ npm install vue-amap --save// 仓库添加
           v-for="(item, index) in freightspace"
         >
           <ws-form-item
-            label="仓编号"
+            label="仓编号"
             span="1"
             prop="contractNo"
             class="readonly"
           >
             <ws-input
               v-model="item.binNumber"
-              placeholder="请输入仓编号"
+              placeholder="请输入仓编号"
               maxlength="20"
               size="small"
             />
@@ -131,7 +132,7 @@ npm install vue-amap --save// 仓库添加
             <ws-input
               v-model="item.remark"
               placeholder="请输入交货地"
-              maxlength="100"
+              maxlength="20"
               size="small"
             />
           </ws-form-item>
@@ -155,6 +156,7 @@ npm install vue-amap --save// 仓库添加
       </ws-info-table>
     </ws-form>
     <ws-form ref="deptBudgetList" :model="deptBudgetList">
+      <div class="small-title">上传仓库照片</div>
       <ws-upload
         ref="upload"
         table-name="maintain_work_order"
@@ -167,9 +169,9 @@ npm install vue-amap --save// 仓库添加
         @onChange="onChange"
         accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar"
       />
+      <div style="margin-bottom: 5px" class="small-title">仓库定位</div>
+      <map-drag @marker="marker" @selectedAddress="selectedAddress"></map-drag>
     </ws-form>
-    <!-- <ws-button @click="exportlist()"></ws-button> -->
-    <map-drag @marker="marker" @selectedAddress="selectedAddress"></map-drag>
     <!-- 提交 -->
     <div style="text-align: right; padding: 10px" class="center">
       <el-button
@@ -186,14 +188,7 @@ npm install vue-amap --save// 仓库添加
 //  import { getVesselOne } from '@/model/procurement/basic'
 //  import { dayjs } from 'base-core-lib'
 import { regionData, CodeToText, TextToCode } from 'element-china-area-data'
-import {
-  packList,
-  addList,
-  xiala,
-  addxiala,
-  editxiala,
-  delxiala,
-} from '@/model/warehouse/index'
+import { addList, addxiala, editxiala, delxiala } from '@/model/warehouse/index'
 import WsUpload from '@/components/WsUpload'
 import mapDrag from '@/components/mapdrag/mapdrag'
 export default {
@@ -245,13 +240,28 @@ export default {
       listDate: { country: '中国', level: 'country', city: '' },
       citylist: [],
       compId: sessionStorage.getItem('ws-pf_compId'),
-      mainReportAdd: {},
+      rules: {
+        warehouseName: [
+          {
+            required: true,
+            message: '请输入仓库名称',
+            trigger: 'blur',
+          },
+          {
+            min: 2,
+            max: 20,
+            message: '仓库名长度不符合要求,请输入2-20字符之内',
+            trigger: 'blur',
+          },
+        ],
+      },
       appendixIdsAdd: '',
       size: 10,
       value1: '',
       unitList: [],
       freightspace: [{ binNumber: '', maxStorage: '', remark: '' }],
       name: '',
+      list: [],
     }
   },
   activated() {},
@@ -297,7 +307,7 @@ export default {
       this.selectedOptions = value
     },
     returnsales() {
-      this.$router.push({ path: 'purchaseContract' })
+      this.$router.push({ path: 'warehouseManagementList' })
     },
     // confirmPosition() {
     //   this.draggable = false
@@ -321,30 +331,102 @@ export default {
     },
 
     submit() {
-      console.log(this.freightspace)
-
-      this.$refs.deptBudgetList.validate((valid) => {
-        if (valid) {
-          this.deptBudgetList.compId = sessionStorage.getItem('ws-pf_compId')
-          this.deptBudgetList.warehousePrivate =
-            CodeToText[this.selectedOptions[0]]
-          this.deptBudgetList.warehouseCity =
-            CodeToText[this.selectedOptions[1]]
-          this.deptBudgetList.warehouseArea =
-            CodeToText[this.selectedOptions[2]]
-          this.deptBudgetList.warehousePositionInfoList = this.freightspace
-          this.deptBudgetList.totalStorage = this.totalStorage
-          addList(this.deptBudgetList)
-            .toPromise()
-            .then((response) => {
-              this.$message.success('添加成功')
-              this.$router.push({ path: 'warehouseManagementList' })
+      console.log(this.deptBudgetList)
+      if (!this.deptBudgetList.warehouseName) {
+        this.$message({
+          message: '仓库名称不能为空',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.warehouseName.length < 2 ||
+        this.deptBudgetList.warehouseName.length > 20
+      ) {
+        this.$message({
+          message: '仓库名称长度不符合要求,请控制在2-20字符之内',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.personCharge.length < 2 ||
+        this.deptBudgetList.personCharge.length > 10
+      ) {
+        this.$message({
+          message: '负责人长度不符合要求,请控制在2-10字符之内',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.deptBudgetList.personPhone.length > 11) {
+        this.$message({
+          message: '手机号输入有误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.detailedAddress.length < 2 ||
+        this.deptBudgetList.detailedAddress.length > 20
+      ) {
+        this.$message({
+          message: '详细地址长度不符合要求,请控制在2-20字符之内',
+          type: 'warning',
+        })
+        return
+      }
+      for (var i = 0; i < this.freightspace.length; i++) {
+        for (var j = i + 1; j < this.freightspace.length; j++) {
+          console.log(
+            this.freightspace[i].binNumber,
+            this.freightspace[j].binNumber
+          )
+          if (
+            this.freightspace[i].binNumber == this.freightspace[j].binNumber
+          ) {
+            this.$message({
+              message: '仓位编号重复',
+              type: 'warning',
             })
-        } else {
-          EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
-          return false
+            return
+          }
         }
+      }
+      this.$confirm(`确定提交仓库信息?`, {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
       })
+        .then(() => {
+          this.$refs.deptBudgetList.validate((valid) => {
+            if (valid) {
+              this.deptBudgetList.compId = sessionStorage.getItem(
+                'ws-pf_compId'
+              )
+              this.deptBudgetList.warehousePrivate =
+                CodeToText[this.selectedOptions[0]]
+              this.deptBudgetList.warehouseCity =
+                CodeToText[this.selectedOptions[1]]
+              this.deptBudgetList.warehouseArea =
+                CodeToText[this.selectedOptions[2]]
+              this.deptBudgetList.warehousePositionInfoList = this.freightspace
+              this.deptBudgetList.totalStorage = this.totalStorage
+              addList(this.deptBudgetList)
+                .toPromise()
+                .then((response) => {
+                  this.$message.success('添加成功')
+                  this.$router.push({ path: 'warehouseManagementList' })
+                })
+            } else {
+              EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              return false
+            }
+          })
+        })
+        .catch(() => {
+          return false
+        })
     },
     resetForm(deptBudgetList) {
       this.$refs[deptBudgetList].resetFields()
@@ -469,6 +551,24 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+/deep/.totalStorage .el-input__inner {
+  color: #afb5cb;
+  background: #f5f7fa;
+}
+.small-title {
+  position: relative;
+  padding: 10px;
+}
+.small-title::before {
+  position: absolute;
+  content: '';
+  display: block;
+  background: #5473e8;
+  width: 4px;
+  height: 14px;
+  left: 0px;
+  top: 13px;
+}
 .position {
   position: relative;
 }
@@ -490,8 +590,8 @@ export default {
   padding: 0 15%;
 }
 /deep/.ws-info-table .el-form-item {
-  border-right: 1px solid #cdd2dc;
-  border-bottom: 1px solid #cdd2dc;
+  border-right: 1px solid transparent;
+  border-bottom: 1px solid transparent;
 }
 .readonly {
   position: relative;
@@ -517,6 +617,10 @@ export default {
   position: absolute;
   left: 0;
 }
+.ws-info-table {
+  border-left: 1px solid transparent;
+  border-top: 1px solid transparent;
+}
 .el-button--primary {
   background-color: #5878e8;
   border-color: #5878e8;
@@ -526,13 +630,13 @@ export default {
 }
 /deep/.ws-info-table .el-form-item .el-form-item__content {
   padding: 0 25px;
-  border-left: 1px solid #cdd2dc;
-  background: #fafbfc;
+  border-left: 1px solid transparent;
+  background: #fff;
 }
 /deep/.ws-info-table .el-form-item .el-form-item__label {
-  width: 140px;
+  width: 100px;
   text-align: center;
-  background: #f0f2f6;
+  background: #fff;
   // border: 1px solid #cdd2dc;
 }
 .button-container {
@@ -693,9 +797,6 @@ export default {
   overflow: scroll;
   height: 93vh;
 }
-/deep/.ws-info-table .el-form-item .el-form-item__label {
-  width: 130px;
-}
 .ws-info-table .el-form-item {
   width: 33.3333%;
 }
@@ -714,4 +815,53 @@ export default {
 .ws-info-table .el-form-item {
   width: 33.33%;
 }
+//去边框
+/deep/.el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+}
+/deep/.ws-info-table {
+  border-left: 0px;
+  border-top: 0px;
+}
+.ws-info-table .el-form-item .el-form-item__content {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  background: #f5f7fa;
+  border-radius: 4px;
+  border: 1px solid #d8dce6;
+  font-family: PingFangSC-Regular, PingFang SC;
+  margin-bottom: 5px;
+  background-color: #fff;
+  font-size: 14px;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  background-color: #fff;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  border: 0px;
+}
+//地图
+// .position{
+//   margin: 0 auto;
+// }
 </style>

+ 389 - 111
src/views/warehouse/warehouseManagementDelete.vue

@@ -1,9 +1,14 @@
 //删除仓库
 <template>
-  <div > 
-     <el-row>
+<<<<<<< HEAD
+  <div class="homepage">
+=======
+
+  <div class="homepage"> 
+>>>>>>> d4735dcb0df4848656d61f1789e8f8d7efc5fd5a
+    <el-row>
       <el-col :span="20">
-        <h2 class="bg-left title">删除仓库</h2>
+        <h2 class="bg-left title">删除库</h2>
       </el-col>
       <el-col :span="4" class="bg-right">
         <el-button
@@ -11,72 +16,78 @@
           type="primary"
           size="small"
           @click="returnWarehouse()"
-          >返回</el-button
+          ><img
+            width="6"
+            height="10"
+            style="vertical-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />返回</el-button
         >
       </el-col>
     </el-row>
-   <div class="connert">
+    <div class="connert">
       <el-table
         class="wenzi"
         :data="warehouseList"
         style="width: 100%; margin-top: 20px"
         height="780"
       >
-         <el-table-column type="index" label="序号" >
-        <template scope="scope">
-          <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
-          <span v-else>{{ scope.$index + 1 }}</span>
-        </template>
-      </el-table-column> 
-        <el-table-column prop="warehouseName" label="仓库名称" >
+        <el-table-column type="index" label="序号">
+          <template scope="scope">
+            <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+            <span v-else>{{ scope.$index + 1 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="warehouseName" label="仓库名称">
         </el-table-column>
-        <el-table-column prop="warehouseLocation" label="仓库所在地" >
+        <el-table-column prop="warehouseLocation" label="仓库所在地">
         </el-table-column>
-        <el-table-column prop="nowStorage" label="应余库存(吨)"> </el-table-column>
-        <el-table-column prop="personCharge;" label="负责人">
+        <el-table-column prop="nowStorage" label="应余库存(吨)">
         </el-table-column>
-       
-        
+        <el-table-column prop="personCharge;" label="负责人"> </el-table-column>
+
         <el-table-column prop="address" label="操作" width="200">
-          <template slot-scope="scope" >
+          <!-- <template slot-scope="scope">
             <ws-button
               type="primary"
               @click="handleHide(scope.row)"
               v-hasPermission="
-             
                 `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
               "
-              v-if="scope.row.showFlag==0"
+              v-if="scope.row.showFlag == 0"
               >显示</ws-button
             >
             <ws-button
               type="primary"
               @click="handleHide(scope.row)"
               v-hasPermission="
-             
                 `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
               "
-              v-if="scope.row.showFlag==1"
+              v-if="scope.row.showFlag == 1"
               >隐藏</ws-button
             >
             <ws-button
               type="primary"
-              @click="handleDelete(scope.row)"
+              @click="handleDelete(sv-ifcope.row)"
               v-hasPermission="
                 `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
               "
               >删除</ws-button
             >
+          </template> -->
+           <template slot-scope="scope">
+            <div class="record" v-if="scope.row.showFlag == 0" @click="handleHide(scope.row)">显示</div>
+            <div class="record" v-if="scope.row.showFlag == 1" @click="handleHide(scope.row)">隐藏</div>
+            <div class="adjustment"  @click="handleDelete(scope.row)">删除</div>
           </template>
         </el-table-column>
       </el-table>
-      
     </div>
   </div>
 </template>
 <script>
-
-import{
+import {
   getList,
   delectlist,
   deletewarehouse,
@@ -102,7 +113,7 @@ export default {
   },
   data() {
     return {
-      isshow:false,
+      isshow: false,
       //弹出框
       dialogViewSpareMoney: false,
       dialogApproveFormVisible: false,
@@ -122,9 +133,9 @@ export default {
       contractType: 2,
       startDate: null,
       endDate: null,
-      warehouseList:[],
-      scope:[],
-      show:'隐藏',
+      warehouseList: [],
+      scope: [],
+      show: '隐藏',
       // 提交类型
       submitType: true,
       size: 10,
@@ -146,16 +157,16 @@ export default {
     }
   },
   activated() {
-  this.getList()
+    this.getList()
     this.showType = this.isShow
   },
   methods: {
-    returnWarehouse(){
+    returnWarehouse() {
       this.$router.push({ path: 'warehouseManagementList' })
     },
-    
+
     //列表
-     getList() {
+    getList() {
       delectlist({
         compId: sessionStorage.getItem('ws-pf_compId'),
       })
@@ -175,93 +186,360 @@ export default {
       this.dialogViewSpareMoney = false
     },
     //隐藏
-    handleHide(row) { 
-      console.log(row.showFlag)
-      if(row.showFlag==1){
+    handleHide(row) {
+      if (row.showFlag == 1) {
         this.$confirm(`隐藏后将对其他用户不可见,是否确认隐藏`, {
-        cancelButtonText: '取消',
-        confirmButtonText: '确定',
-        type: 'warning',
-      })
-        .then(() => {
-        hide({ id: row.id})
-            .toPromise()
-            .then((response) => {
-              this.$notify.success({
-                title: '成功',
-                message: '隐藏成功',
-              })
-              this.getList()
-            })
-            .catch((response) => {
-              // console.log(3333)
-             // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
-            })
-        })
-        .catch(() => {
-          return false
+          cancelButtonText: '取消',
+          confirmButtonText: '确定',
+          type: 'warning',
         })
-      }else{
-        hide({ id: row.id})
-            .toPromise()
-            .then((response) => {
-              this.$notify.success({
-                title: '成功',
-                message: '显示成功',
+          .then(() => {
+            hide({ id: row.id })
+              .toPromise()
+              .then((response) => {
+                this.$notify.success({
+                  title: '成功',
+                  message: '隐藏成功',
+                })
+                this.getList()
               })
-              this.getList()
-            })
-            .catch((response) => {
-              // console.log(3333)
-             // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              .catch((response) => {
+                // console.log(3333)
+                // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              })
+          })
+          .catch(() => {
+            return false
+          })
+      } else {
+        hide({ id: row.id })
+          .toPromise()
+          .then((response) => {
+            this.$notify.success({
+              title: '成功',
+              message: '显示成功',
             })
+            this.getList()
+          })
+          .catch((response) => {
+            // console.log(3333)
+            // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+          })
       }
-    }   
     },
-    handleDelete(row) {
-      // console.log(row)
-      this.$confirm(`此操作永久删除该仓库全部信息,是否确认删除`, {
-        cancelButtonText: '取消',
-        confirmButtonText: '确定',
-        type: 'warning',
-      })
-        .then(() => {
-        deletewarehouse({ id: row.id})
-            .toPromise()
-            .then((response) => {
-              this.$notify.success({
-                title: '成功',
-                message: '删除成功',
-              })
-              this.getList()
-            })
-            .catch((response) => {
-              // console.log(3333)
-             // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+  },
+  handleDelete(row) {
+    // console.log(row)
+    this.$confirm(`此操作永久删除该仓库全部信息,是否确认删除`, {
+      cancelButtonText: '取消',
+      confirmButtonText: '确定',
+      type: 'warning',
+    })
+      .then(() => {
+        deletewarehouse({ id: row.id })
+          .toPromise()
+          .then((response) => {
+            this.$notify.success({
+              title: '成功',
+              message: '删除成功',
             })
-        })
-        .catch(() => {
-          return false
-        })
-    },
-    // deletecontract(){},
-    //删除
-    approve() {},
-    listQuery() {},
-    total() {},
-    clearfiltQuery() {},
-    selectCrtDuty() {},
-    delectlist(){},
-    deletewarehouse(){},
-    }
+            this.getList()
+          })
+          .catch((response) => {
+            // console.log(3333)
+            // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+          })
+      })
+      .catch(() => {
+        return false
+      })
+  },
+  // deletecontract(){},
+  //删除
+  approve() {},
+  listQuery() {},
+  total() {},
+  clearfiltQuery() {},
+  selectCrtDuty() {},
+  delectlist() {},
+  deletewarehouse() {},
+}
 </script>
 <style lang="scss" scoped>
-.connert {
-  width: 90%;
-  margin: 0 auto;
+/deep/.totalStorage .el-input__inner {
+  color: #afb5cb;
+  background: #f5f7fa;
+}
+.add,
+.del {
+  position: absolute;
+  right: -38px;
+  top: 9px;
+  cursor: pointer;
+}
+.del {
+  right: -70px;
+}
+.amap-page-container {
+  width: 300px;
+  height: 300px;
+}
+.el-form {
+  padding: 0 15%;
+}
+.readonly {
+  position: relative;
+}
+.readonly:after {
+  content: '*';
+  color: #ff2727;
+  position: absolute;
+  right: 8px;
+  z-index: 10;
+  top: 21%;
+  font-size: 20px;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.ws-info-table {
+  border-left: 1px solid transparent;
+  border-top: 1px solid transparent;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+/deep/.el-table .el-table__header .cell,
+/deep/.el-table .el-table__body .cell {
+  text-align: center;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
 }
-.vertical-text-left {
-  width: 62px;
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+.bg-left {
+  padding-left: 30px;
+}
+.bg-right {
+  padding-right: 10px;
   text-align: right;
 }
+.bg-bottom {
+  margin: 15px 0px;
+}
+.wenzi {
+  width: 900px;
+  margin: 0 auto;
+}
+.wenzi h3 {
+  display: inline-block;
+  left: 10px;
+}
+.wenzi p {
+  display: inline-block;
+}
+.center {
+  width: 900px;
+  margin: 0 auto;
+}
+.el-form-item {
+  width: 50%;
+}
+.el-form-item__label {
+  text-align: center;
+}
+.ce {
+  width: 900px;
+  margin: 0 auto;
+}
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
+}
+
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
+}
+.winseaview-view {
+  padding: 0 0 20px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+.ws-info-table .el-form-item {
+  width: 33.3333%;
+}
+.readonly:after {
+  display: none;
+}
+.el-textarea__inner {
+  display: none;
+}
+.el-form {
+  margin-top: 50px;
+}
+.readonly {
+  width: 16%;
+}
+.ws-info-table .el-form-item {
+  width: 33.33%;
+}
+//去边框
+/deep/.el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+}
+/deep/.ws-info-table {
+  border-left: 0px;
+  border-top: 0px;
+}
+
+.connert {
+  padding: 10px 40px;
+}
+
+//表格文字居中
+/deep/.el-table th.is-leaf,
+/deep/.el-table td {
+  text-align: center;
+}
+//表格数据文字
+/deep/.el-table .el-table__body .cell {
+  font-size: 14px;
+}
+.record,
+.adjustment {
+  display: inline-block;
+  color: #5878e8;
+  padding: 0 4px !important;
+  position: relative;
+}
+.record:after {
+  position: absolute;
+  content: '';
+  display: block;
+  top: 5px;
+  right: -2px;
+  width: 1px;
+  height: 12px;
+  background: #e9ecf7;
+}
 </style>

+ 325 - 110
src/views/warehouse/warehouseManagementDelivery.vue

@@ -1,9 +1,9 @@
-// 库登记
+// 库登记
 <template>
   <div class="container">
     <el-row>
       <el-col :span="20">
-        <h2 class="bg-left title">库登记</h2>
+        <h2 class="bg-left title">库登记</h2>
       </el-col>
       <el-col :span="4" class="bg-right">
         <el-button
@@ -15,13 +15,13 @@
         >
       </el-col>
     </el-row>
-
     <ws-form ref="deptBudgetList" :model="deptBudgetList" :rules="rules">
       <div class="basicInformation">
         <h2>
           {{ deptBudgetList.warehouseName }}库
-          {{ deptBudgetList.binNumber }}仓位
+          <span class="position"> {{ deptBudgetList.binNumber }}仓位 </span>
         </h2>
+        <div class="small-title">基本信息</div>
         <ws-info-table>
           <!-- 货名 -->
           <ws-form-item label="货名" span="1">
@@ -34,8 +34,8 @@
               <ws-option
                 v-for="item in goodnameList"
                 :key="item.constKey"
-                :label="item.constValue"
-                :value="item.constValue"
+                :label="item.goodsName"
+                :value="item.goodsName"
               />
             </ws-select>
           </ws-form-item>
@@ -49,7 +49,6 @@
               size="small"
             />
           </ws-form-item>
-
           <!--皮重(吨)-->
           <ws-form-item
             label="皮重(吨)"
@@ -65,10 +64,10 @@
               size="small"
             />
           </ws-form-item>
-
           <!--净重(吨)-->
           <ws-form-item label="净重(吨)" span="1" prop="netWeight">
             <ws-input
+              :readonly="readonly"
               v-model.number="deptBudgetList.netWeight"
               placeholder="不可编辑,自动计算"
               type="number"
@@ -92,7 +91,6 @@
               />
             </ws-select>
           </ws-form-item>
-
           <!--经办人-->
           <ws-form-item label="经办人" span="1" prop="agent">
             <ws-input
@@ -132,7 +130,6 @@
               />
             </ws-select>
           </ws-form-item>
-
           <!--车牌号-->
           <ws-form-item label="车牌号" span="1" prop="sourceGoods">
             <ws-input
@@ -142,7 +139,6 @@
               size="small"
             />
           </ws-form-item>
-
           <!--合同编号-->
           <ws-form-item label="合同编号" span="1" prop="contractNo">
             <ws-input
@@ -154,6 +150,7 @@
           </ws-form-item>
         </ws-info-table>
       </div>
+      <div class="small-title">上传仓库照片</div>
       <ws-upload
         ref="upload"
         table-name="maintain_work_order"
@@ -166,8 +163,8 @@
         @onChange="onChange"
         accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar"
       />
-      <h2>化验数据(选填)</h2>
-      <ws-info-table>
+      <div class="small-title">化验数据(选填)</div>
+      <div class="inspector">
         <!--自检员-->
         <ws-form-item label="质检员" span="1" prop="qualityInspector">
           <ws-input
@@ -177,63 +174,73 @@
             size="small"
           />
         </ws-form-item>
-
-        <!--水分(%)<=-->
-        <ws-form-item label="水分(%)<=" span="1" prop="waterContent">
-          <ws-input
-            v-model="deptBudgetList.warehouseInOutDetail.waterContent"
-            placeholder="请输入水分占比"
-            maxlength="120"
-            size="small"
-          />
-        </ws-form-item>
-        <!--杂质(%)<=-->
-        <ws-form-item label="杂质(%)<=" span="1" prop="impurity">
-          <ws-input
-            v-model="deptBudgetList.warehouseInOutDetail.impurity"
-            placeholder="请输入杂质占比"
-            maxlength="120"
-            size="small"
-          />
-        </ws-form-item>
-        <!--容重(克/升)>=-->
-        <ws-form-item label="容重(克/升)>=" span="1" prop="bulkDensity">
-          <ws-input
-            v-model="deptBudgetList.warehouseInOutDetail.bulkDensity"
-            placeholder="请输入容重"
-            maxlength="120"
-            size="small"
-          />
-        </ws-form-item>
-        <!--霉变粒(%)<=-->
-        <ws-form-item label="霉变粒(%)<=" span="1" prop="mildewGrain">
-          <ws-input
-            v-model="deptBudgetList.warehouseInOutDetail.mildewGrain"
-            placeholder="请输入霉变粒占比"
-            maxlength="120"
-            size="small"
-          />
-        </ws-form-item>
-        <!--热损伤(%)<=-->
-        <ws-form-item label="热损伤(%)<=" span="1" prop="jiaorenli">
-          <ws-input
-            v-model="deptBudgetList.warehouseInOutDetail.jiaorenli"
-            placeholder="请输入热损伤占比"
-            maxlength="120"
-            size="small"
-          />
-        </ws-form-item>
-        <!--不完整粒(%)<=-->
-        <ws-form-item label="不完整粒(%)<=" span="1" prop="imperfectGrain">
-          <ws-input
-            v-model="deptBudgetList.warehouseInOutDetail.imperfectGrain"
-            placeholder="请输入不完整粒占比"
-            maxlength="120"
-            size="small"
-          />
-        </ws-form-item>
-      </ws-info-table>
+      </div>
+      <div class="neifor">
+        <ws-info-table>
+          <!--水分(%)<=-->
+          <ws-form-item label="水分(%)<=" span="1" prop="waterContent">
+            <ws-input
+              v-model="deptBudgetList.warehouseInOutDetail.waterContent"
+              placeholder="请输入水分占比"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+          <!--杂质(%)<=-->
+          <ws-form-item label="杂质(%)<=" span="1" prop="impurity">
+            <ws-input
+              v-model="deptBudgetList.warehouseInOutDetail.impurity"
+              placeholder="请输入杂质占比"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+          <!--容重(克/升)>=-->
+          <ws-form-item label="容重(克/升)>=" span="1" prop="bulkDensity">
+            <ws-input
+              v-model="deptBudgetList.warehouseInOutDetail.bulkDensity"
+              placeholder="请输入容重"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+          <!--霉变粒(%)<=-->
+          <ws-form-item label="霉变粒(%)<=" span="1" prop="mildewGrain">
+            <ws-input
+              v-model="deptBudgetList.warehouseInOutDetail.mildewGrain"
+              placeholder="请输入霉变粒占比"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+          <!--热损伤(%)<=-->
+          <ws-form-item label="热损伤(%)<=" span="1" prop="jiaorenli">
+            <ws-input
+              v-model="deptBudgetList.warehouseInOutDetail.jiaorenli"
+              placeholder="请输入热损伤占比"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+          <!--不完整粒(%)<=-->
+          <ws-form-item label="不完整粒(%)<=" span="1" prop="imperfectGrain">
+            <ws-input
+              v-model="deptBudgetList.warehouseInOutDetail.imperfectGrain"
+              placeholder="请输入不完整粒占比"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+        </ws-info-table>
+      </div>
       <div style="text-align: right; padding: 10px">
+        <el-button
+          class="bg-bottom-up"
+          type="primary"
+          size="small"
+          @click="temporaryStorage()"
+          >暂存</el-button
+        >
         <el-button
           class="bg-bottom-up"
           type="primary"
@@ -246,7 +253,7 @@
   </div>
 </template>
 <script>
-import { pullDown, addstorageputList } from '@/model/warehouse/index'
+import { pullDown, addstorageputList, goodsname } from '@/model/warehouse/index'
 import { downloadFile } from '@/utils/batchDown'
 import Pagination from '@/components/Pagination'
 import WsUpload from '@/components/WsUpload'
@@ -277,6 +284,7 @@ export default {
       tableDate: [],
       // 是否显示
       showType: true,
+      readonly: true,
       // 年
       year: '',
       deptBudgetTotal: 0,
@@ -335,26 +343,178 @@ export default {
     this.deptBudgetList.binNumber = this.$route.query.binNumber
     this.getList()
   },
-  // activated() {
-  //   //cg.viewBudget
-  //   //cg.viewSpareMoney
-  //   // this.getVesselData();
-  //   console.log(2222)
-  //   this.getList()
-  //   console.log(1111)
-  //   this.showType = this.isShow
-  // },
   methods: {
     //返回按钮
     returnWarehouse() {
       this.$router.push({ path: 'warehouseManagementList' })
     },
+    temporaryStorage() {
+      this.$confirm(`暂存后可在待完成页面查看,确定暂存`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+      })
+        .then(() => {
+          this.$refs.deptBudgetList.validate((valid) => {
+            if (valid) {
+              this.deptBudgetList.compId = sessionStorage.getItem(
+                'ws-pf_compId'
+              )
+              this.deptBudgetList.inOutFlag = 1
+              this.deptBudgetList.statusFlag = 1
+              addstorageputList(this.deptBudgetList)
+                .toPromise()
+                .then((response) => {
+                  this.$message.success('暂存成功')
+                  this.$router.push({ path: 'warehouseManagementList' })
+                })
+            } else {
+              EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              return false
+            }
+          })
+        })
+        .catch(() => {
+          return false
+        })
+    },
     //提交按钮
     submit() {
+      if (!this.deptBudgetList.goodsName) {
+        this.$message({
+          message: '货名不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.grossWeight) {
+        this.$message({
+          message: '毛重不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        isNaN(this.deptBudgetList.grossWeight) &&
+        this.deptBudgetList.grossWeight > 0 &&
+        this.deptBudgetList.grossWeight <= 10000
+      ) {
+        this.$message({
+          message: '毛重输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.tare) {
+        this.$message({
+          message: '皮重不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        isNaN(this.deptBudgetList.tare) &&
+        this.deptBudgetList.tare > 0 &&
+        this.deptBudgetList.tare <= 10000
+      ) {
+        this.$message({
+          message: '皮重输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.netWeight) {
+        this.$message({
+          message: '净重不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        isNaN(this.deptBudgetList.netWeight) &&
+        this.deptBudgetList.tare > 0 &&
+        this.deptBudgetList.tare <= 10000
+      ) {
+        this.$message({
+          message: '净重输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.grade) {
+        this.$message({
+          message: '品级不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.agent) {
+        this.$message({
+          message: '经办人不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.agent.length < 2 &&
+        this.deptBudgetList.agent.length > 10
+      ) {
+        this.$message({
+          message: '经办人姓名输入有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.inOutDate) {
+        this.$message({
+          message: '出库日期不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.inOutType) {
+        this.$message({
+          message: '出库类型不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.carNo) {
+        this.$message({
+          message: '车牌号不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.deptBudgetList.carNo.length != 7) {
+        this.$message({
+          message: '车牌号输入有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractNo) {
+        this.$message({
+          message: '合同编号不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractNo.length < 6 &&
+        this.deptBudgetList.contractNo.length > 20
+      ) {
+        this.$message({
+          message: '合同编号输入有误!',
+          type: 'warning',
+        })
+        return
+      }
       this.$refs.deptBudgetList.validate((valid) => {
         if (valid) {
           this.deptBudgetList.compId = sessionStorage.getItem('ws-pf_compId')
           this.deptBudgetList.inOutFlag = 1
+          this.deptBudgetList.statusFlag = 3
           addstorageputList(this.deptBudgetList)
             .toPromise()
             .then((response) => {
@@ -417,7 +577,7 @@ export default {
     },
     getList() {
       // 货名
-      pullDown({ constId: 'CON2' })
+      goodsname({ positionId: this.$route.query.positionId })
         .toPromise()
         .then((response) => {
           this.goodnameList = response
@@ -429,7 +589,7 @@ export default {
           this.gradeList = response
         })
       // 类型
-      pullDown({ constId: 'CON5' })
+      pullDown({ constId: 'CON6' })
         .toPromise()
         .then((response) => {
           this.storageType = response
@@ -476,29 +636,29 @@ export default {
         })
     },
 
-    async exportlist() {
-      const { data } = await export1(
-        {
-          compId: sessionStorage.getItem('ws-pf_compId'),
-          contractType: this.contractType,
-          currentPage: this.currentPage,
-          pageSize: this.pageSize,
-          searchType: this.searchType,
-          searchKeyWord: this.searchKeyWord,
-          startDate: this.startDate,
-          endDate: this.endDate,
-        },
-        {},
-        { responseType: 'blob' }
-      ).toPromise()
-      downloadFile({
-        res: data,
-        fileName: `${
-          this.date.year + (this.date.month ? `-${this.date.month}` : '')
-        }_采购合同`,
-        type: 'xls',
-      })
-    },
+    // async exportlist() {
+    //   const { data } = await export1(
+    //     {
+    //       compId: sessionStorage.getItem('ws-pf_compId'),
+    //       contractType: this.contractType,
+    //       currentPage: this.currentPage,
+    //       pageSize: this.pageSize,
+    //       searchType: this.searchType,
+    //       searchKeyWord: this.searchKeyWord,
+    //       startDate: this.startDate,
+    //       endDate: this.endDate,
+    //     },
+    //     {},
+    //     { responseType: 'blob' }
+    //   ).toPromise()
+    //   downloadFile({
+    //     res: data,
+    //     fileName: `${
+    //       this.date.year + (this.date.month ? `-${this.date.month}` : '')
+    //     }_采购合同`,
+    //     type: 'xls',
+    //   })
+    // },
     // deletecontract(){},
     //删除
     approve() {},
@@ -563,9 +723,7 @@ export default {
 /deep/.el-form-item__label {
   width: 160px;
 }
-/deep/.el-input--small {
-  width: 70%;
-}
+
 //选填
 /deep/.el-form-item {
   width: 50%;
@@ -574,13 +732,70 @@ export default {
   overflow: scroll;
   height: 120vh;
 }
-/deep/.ws-info-table[data-v-850a44a6] .el-form-item .el-form-item__label {
+/deep/.ws-info-table .el-form-item .el-form-item__label {
   text-align: center;
 }
 .deliverydate {
-  width: 35%;
+  display: inline-block;
+  width: 10%;
 }
-.center[data-v-32a9842f] {
+.center {
   margin-top: -60px;
+  width: 80%;
+}
+//仓位
+.position {
+  width: 52px;
+  height: 20px;
+  background: #afb5cb;
+  border-radius: 2px;
+  font-size: 12px;
+  font-family: PingFangSC-Medium, PingFang SC;
+  color: #ffffff;
+  line-height: 20px;
+}
+//表格文字
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  text-align: left;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+//质检员
+.inspector .el-form-item__content {
+  text-align: left;
+  margin-left: 0px;
+}
+.small-title {
+  position: relative;
+  padding: 10px;
+}
+.small-title::before {
+  position: absolute;
+  content: '';
+  display: block;
+  background: #5473e8;
+  width: 4px;
+  height: 14px;
+  left: 0px;
+  top: 13px;
+}
+//下面列表
+.neifor {
+  width: 80%;
+  background-color: #f6f7fc;
+}
+/deep/.neifor .ws-info-table .el-form-item .el-form-item__label {
+  width: 35%;
+  text-align: center;
+}
+/deep/.neifor .ws-info-table .el-form-item .el-form-item__content {
+  width: 60%;
+  background-color: #f6f7fc;
+}
+/deep/.neifor .el-input--small .el-input__inner {
+  width: 120%;
 }
 </style>

+ 417 - 43
src/views/warehouse/warehouseManagementEdit.vue

@@ -14,8 +14,9 @@
         >
       </el-col>
     </el-row>
-    <div class="center">
+    <div>
       <ws-form ref="deptBudgetList" :model="deptBudgetList">
+        <div class="small-title">基本信息</div>
         <!--基本信息-->
         <ws-info-table>
           <!--仓库名称-->
@@ -49,7 +50,12 @@
             />
           </ws-form-item>
           <!--负责人电话-->
-          <ws-form-item label="负责人电话" span="1"  prop="personPhone" class="readonly">
+          <ws-form-item
+            label="负责人电话"
+            span="1"
+            prop="personPhone"
+            class="readonly"
+          >
             <ws-input
               v-model="deptBudgetList.personPhone"
               placeholder="请输入负责人电话"
@@ -90,7 +96,7 @@
             />
           </ws-form-item>
         </ws-info-table>
-        <div v-for="item in deptBudgetList.warehousePositionInfoList">
+        <div v-for="(item, index) in deptBudgetList.warehousePositionInfoList">
           <ws-info-table>
             <!--仓位编号-->
             <ws-form-item label="仓位编号" span="1" prop="binNumber">
@@ -119,9 +125,46 @@
                 size="small"
               />
             </ws-form-item>
+            <img
+              width="22"
+              height="22"
+              class="add"
+              @click="add"
+              src="../../../public/img/add.png"
+              alt=""
+            />
+            <img
+              width="22"
+              height="22"
+              class="del"
+              @click="del(index, item)"
+              src="../../../public/img/del.png"
+              alt=""
+            />
           </ws-info-table>
         </div>
       </ws-form>
+      <ws-form ref="deptBudgetList" :model="deptBudgetList">
+        <div class="small-title">上传仓库照片</div>
+        <ws-upload
+          ref="upload"
+          table-name="maintain_work_order"
+          oss-key="mainPlan"
+          :comp-id="compId"
+          :appendix-ids="appendixIdsAdd"
+          :vesselId="deptBudgetList.addressUrl"
+          :size-limit="size"
+          @uploadSuccess="uploadSuccess"
+          @onChange="onChange"
+          accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar"
+        />
+        <div class="small-title">仓库定位</div>
+        <map-drag
+          @marker="marker"
+          @selectedAddress="selectedAddress"
+        ></map-drag>
+      </ws-form>
+      <!-- <ws-button @click="exportlist()"></ws-button> -->
     </div>
     <div style="text-align: right; padding: 10px">
       <el-button
@@ -135,16 +178,24 @@
   </div>
 </template>
 <script>
-import { xiala, billoperatehis, getLook, edit } from '@/model/warehouse/index'
+import {
+  xiala,
+  billoperatehis,
+  getLook,
+  edit,
+  delPosition,
+} from '@/model/warehouse/index'
 import { downloadFile } from '@/utils/batchDown'
 import Pagination from '@/components/Pagination'
 import WsUpload from '@/components/WsUpload'
+import mapDrag from '@/components/mapdrag/mapdrag'
 import { dayjs, fmoney, EventBus } from 'base-core-lib'
 export default {
   name: 'viewSpareMoney',
   components: {
     WsUpload,
     Pagination,
+    mapDrag,
   },
   watch: {
     vesselId(val) {
@@ -176,6 +227,7 @@ export default {
       startDate: null,
       endDate: null,
       unitList: [],
+      baseId: '',
       // 提交类型
       submitType: true,
       size: 10,
@@ -189,7 +241,7 @@ export default {
       contractList: [],
       deptBudgetList: {},
       historyList: [],
-
+      appendixIdsAdd: '',
       pickerBeginDateBefore: {
         disabledDate: (time) => {
           return time.getTime() > Date.now()
@@ -202,32 +254,28 @@ export default {
     this.loaddata()
     this.showType = this.isShow
   },
+
   methods: {
     //返回按钮
     returnWarehouse() {
       this.$router.push({ path: 'warehouseManagementList' })
     },
-    dateFormat(fmt, date) {
-      let ret
-      const opt = {
-        'Y+': date.getFullYear().toString(), // 年
-        'm+': (date.getMonth() + 1).toString(), // 月
-        'd+': date.getDate().toString(), // 日
-        'H+': date.getHours().toString(), // 时
-        // "M+": date.getMinutes().toString(),         // 分
-        // "S+": date.getSeconds().toString()          // 秒
-        // 有其他格式化字符需求可以继续添加,必须转化成字符串
-      }
-      for (let k in opt) {
-        ret = new RegExp('(' + k + ')').exec(fmt)
-        if (ret) {
-          fmt = fmt.replace(
-            ret[1],
-            ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
-          )
-        }
-      }
-      return fmt
+    marker: function (item) {
+      this.deptBudgetList.warehousePositioning =
+        item.lnglat.lat + ',' + item.lnglat.lng
+    },
+    selectedAddress(e) {
+      this.deptBudgetList.warehousePositioning =
+        e.center.lat + ',' + e.center.lng
+    },
+    uploadSuccess(data, files, url) {
+      console.log(data, files, url)
+    },
+    onChange(files) {
+      this.fileNum = files
+      this.$refs.upload.handleSaveBill().then((res) => {
+        console.log(files)
+      })
     },
     handleClose() {
       this.accessoryTFs = false
@@ -243,13 +291,52 @@ export default {
       this.getList()
     },
     selectpackingMethod(e) {
-      console.log(e)
       for (var i = 0; i < this.packtypeList.length; i++) {
         if (this.packtypeList[i].warehouseName == e) {
+          this.baseId = this.packtypeList[i].id
           this.getLook(this.packtypeList[i].id)
         }
       }
     },
+    add() {
+      this.deptBudgetList.warehousePositionInfoList.push({
+        binNumber: '',
+        maxStorage: '',
+        remark: '',
+      })
+    },
+    del(index, item) {
+      if (item.nowStorage > 0) {
+        this.$message.warning('尚有剩余库存,不可删除')
+      } else {
+        this.$confirm(`此操作将永久删除该仓位的全部信息,是否确定删除`, {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
+        })
+          .then(() => {
+            if (item.id) {
+              delPosition({ id: item.id })
+                .toPromise()
+                .then((response) => {
+                  this.$message.success('删除成功')
+                })
+                .catch((response) => {
+                  EventBus.$emit(
+                    'error',
+                    this.$t('showMessage.asteriskRequired')
+                  )
+                })
+            }
+            if (this.deptBudgetList.warehousePositionInfoList.length > 1) {
+              this.deptBudgetList.warehousePositionInfoList.splice(index, 1)
+            }
+          })
+          .catch(() => {
+            return false
+          })
+      }
+    },
     loaddata() {
       // 仓库名称
       xiala({ compId: sessionStorage.getItem('ws-pf_compId') })
@@ -294,12 +381,14 @@ export default {
     submit() {
       this.$refs.deptBudgetList.validate((valid) => {
         if (valid) {
+          this.deptBudgetList.baseId = this.baseId
           this.deptBudgetList.compId = this.compId
           this.deptBudgetList.contractType = 1
           edit(this.deptBudgetList)
             .toPromise()
             .then((response) => {
               this.$message.success('编辑成功')
+              this.deptBudgetList = {}
               this.$router.push({ path: 'warehouseManagementList' })
             })
         } else {
@@ -308,7 +397,7 @@ export default {
         }
       })
     },
-   
+
     // 关闭 dialog时 处理文件url 初始化upload组件
     handleCloe() {
       this.dialogViewSpareMoney = false
@@ -332,28 +421,313 @@ export default {
 }
 </script>
 <style lang="scss" scoped>
-.center {
+/deep/.totalStorage .el-input__inner {
+  color: #afb5cb;
+  background: #f5f7fa;
+}
+.small-title {
   position: relative;
-  margin-top: 100px;
-  top: 100px;
-  width: 90%;
-  height: 500px;
-  margin: 0 auto;
+  padding: 10px;
 }
-.container .bg-left {
-  margin-left: 40px;
+.small-title::before {
+  position: absolute;
+  content: '';
+  display: block;
+  background: #5473e8;
+  width: 4px;
+  height: 14px;
+  left: 0px;
+  top: 13px;
 }
-.container .bg-bottom {
+.position {
+  position: relative;
+}
+.add,
+.del {
   position: absolute;
-  float: right;
-  top: 15px;
-  right: 20px;
+  right: -38px;
+  top: 9px;
+  cursor: pointer;
+}
+.del {
+  right: -70px;
+}
+.amap-page-container {
+  width: 300px;
+  height: 300px;
+}
+.el-form {
+  padding: 0 15%;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid transparent;
+  border-bottom: 1px solid transparent;
+}
+.readonly {
+  position: relative;
+}
+.readonly:after {
+  content: '*';
+  color: #ff2727;
+  position: absolute;
+  right: 8px;
+  z-index: 10;
+  top: 21%;
+  font-size: 20px;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.ws-info-table {
+  border-left: 1px solid transparent;
+  border-top: 1px solid transparent;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+  border-left: 1px solid transparent;
+  background: #fff;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 100px;
+  text-align: center;
+  background: #fff;
+  // border: 1px solid #cdd2dc;
 }
-.vertical-text-left {
-  width: 62px;
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
+}
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+.bg-left {
+  padding-left: 30px;
+}
+.bg-right {
+  padding-right: 10px;
   text-align: right;
 }
-/deep/.el-form-item {
+.bg-bottom {
+  margin: 15px 0px;
+}
+.wenzi {
+  width: 900px;
+  margin: 0 auto;
+}
+.wenzi h3 {
+  display: inline-block;
+  left: 10px;
+}
+.wenzi p {
+  display: inline-block;
+}
+.center {
+  width: 900px;
+  margin: 0 auto;
+}
+.el-form-item {
+  width: 50%;
+}
+.el-form-item__label {
+  text-align: center;
+}
+.ce {
+  width: 900px;
+  margin: 0 auto;
+}
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
+}
+
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
+}
+.winseaview-view {
+  padding: 0 0 20px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+.ws-info-table .el-form-item {
+  width: 33.3333%;
+}
+.readonly:after {
+  display: none;
+}
+.el-textarea__inner {
+  display: none;
+}
+.el-form {
+  margin-top: 50px;
+}
+.readonly {
+  width: 16%;
+}
+.ws-info-table .el-form-item {
   width: 33.33%;
 }
+//去边框
+/deep/.el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+}
+/deep/.ws-info-table {
+  border-left: 0px;
+  border-top: 0px;
+}
+.ws-info-table .el-form-item .el-form-item__content {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  background: #f5f7fa;
+  border-radius: 4px;
+  border: 1px solid #d8dce6;
+  font-family: PingFangSC-Regular, PingFang SC;
+  margin-bottom: 5px;
+  background-color: #fff;
+  font-size: 14px;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  background-color: #fff;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  border: 0px;
+}
 </style>

+ 208 - 106
src/views/warehouse/warehouseManagementIoss.vue

@@ -2,27 +2,39 @@
   <div class="container">
     <el-row>
       <el-col :span="20">
-        <h2 class="bg-left title">盘损当期仓损</h2>
+        <h2 class="bg-left title">&nbsp;&nbsp;盘损当期仓损</h2>
       </el-col>
       <el-col :span="4" class="bg-right">
-        <el-button
+         <el-button
           class="bg-bottom"
           type="primary"
           size="small"
           @click="returnWarehouse()"
-          >返回</el-button
+          ><img
+            width="6"
+            height="10"
+            style="vertical-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />返回</el-button
         >
       </el-col>
     </el-row>
-    <div class="center">
-      <h2>鲅鱼圈一号库  102仓位</h2>
-      <ws-form ref="deptBudgetList" :model="deptBudgetList">
+    <div class="center">  
+      <ws-form ref="deptBudgetList" :model="deptBudgetList" :rules="rules">
+        <h2>                      
+          {{deptBudgetList1.warehouseName }}库
+          <span class="position">
+          {{deptBudgetList1.binNumber }}仓位
+          </span>
+      </h2>
         <!-- 货名 -->
-        <ws-form-item label="货名" span="1"  class="readonly">
+        <ws-form-item label="货名:" span="1" prop="goodsName" class="goodsname">
           <ws-select
+            v-model="deptBudgetList.goodsName"
             placeholder=""
             class="typeselect"
-            @change="selectpackingMethod"
+            @change="changeioss"
           >
             <ws-option
               v-for="item in goodnameList"
@@ -33,75 +45,37 @@
           </ws-select>
         </ws-form-item>
         <!--当期累计入库量-->
-        <ws-form-item label="当期累计入库量(吨)" span="1" prop="shippingType">
-          <ws-input
-            v-model="deptBudgetList.shippingType"
-            placeholder="当期累计入库量(吨)"
-            maxlength="20"
-            size="small"
-          />
+        <ws-form-item label="当期累计入库量(吨):" span="1" prop="cumulativeStockIn" class="readonly">
+          {{deptBudgetList.cumulativeStockIn}}
         </ws-form-item>
-
-        <!--当期累计出库量(吨)-->
-        <ws-form-item
-          label="当期累计出库量(吨)"
-          span="1"
-          prop="buyer"
-          class="readonly"
-        >
+        <!--实际库存(吨)-->
+        <ws-form-item label="实际库存(吨):" span="1" prop="physicalInventory" class="readonly">
           <ws-input
-            v-model="deptBudgetList.buyer"
-            placeholder="当期累计出库量(吨)"
+            v-model="deptBudgetList.physicalInventory"
+            placeholder=""
             maxlength="100"
             size="small"
           />
         </ws-form-item>
-
-        <!--应余库存(吨)-->
-        <ws-form-item label="应余库存(吨)" span="1" prop="settlementMethod">
-          <ws-input
-            v-model="deptBudgetList.settlementMethod"
-            placeholder="应余库存(吨)"
-            maxlength="120"
-            size="small"
-          />
+        <!--当期累计出库量(吨)-->
+        <ws-form-item label="当期累计出库量(吨):" span="1" prop="cumulativeStockOut" class="readonly">
+          {{deptBudgetList.cumulativeStockOut}}
         </ws-form-item>
-
-        <!--实际库存(吨)-->
-        <ws-form-item
-          label="实际库存(吨)"
-          span="1"
-          prop="seller"
-          class="readonly"
-        >
-          <ws-input
-            v-model="deptBudgetList.seller"
-            placeholder="实际库存(吨)"
-            maxlength="100"
-            size="small"
-          />
+           <!--损耗量(吨)-->
+        <ws-form-item label="损耗量(吨):" span="1" prop="ioss" class="readonly">
+          {{ioss1 > 0 ? ioss1 : 0}}
         </ws-form-item>
-
-        <!--损耗量(吨)-->
-        <ws-form-item label="损耗量(吨)" span="1" prop="sourceGoods">
-          <ws-input
-            v-model="deptBudgetList.sourceGoods"
-            placeholder="损耗量(吨)"
-            maxlength="20"
-            size="small"
-          />
+        <!--应余库存(吨)-->
+        <ws-form-item label="应余库存(吨):" span="1" prop="surplusInventory" class='readonly'>
+         {{surplusInventory1 > 0 ? surplusInventory1 : 0 }}
         </ws-form-item>
-
         <!--库损比例-->
-        <ws-form-item label="库损比例" span="1" prop="contractNo">
-          <ws-input
-            v-model.number="deptBudgetList.buyerPhone"
-            placeholder="库损比例"
-            maxlength="100"
-            size="small"
-          />
+        <ws-form-item label="库损比例:" span="1" prop="inventoryRatio" class="readonly">
+          <!-- .占比=损耗量÷(累计入库-实际库存) -->
+          <span class="proportion" v-show="inventoryRatio1 > 3">{{inventoryRatio1 > 0 ? inventoryRatio1 : 0}} {{'‰'}}</span> 
+          <span class="proportion1" v-show="inventoryRatio1 <3">{{inventoryRatio1 > 0 ? inventoryRatio1 : 0}} {{'‰'}}</span>
         </ws-form-item>
-        <p>注:提交成功后,当期实际库存将作为下一期的初始库存。</p>
+        <p class="fontsize">注:提交成功后,当期实际库存将作为下一期的初始库存。</p>
       </ws-form>
 
       <div style="text-align: right; padding: 10px">
@@ -119,6 +93,8 @@
 <script>
 import {
   goodsname,
+  ioss,
+  submitioss,
 } from '@/model/warehouse/index'
 
 import { downloadFile } from '@/utils/batchDown'
@@ -169,14 +145,26 @@ export default {
       compId: sessionStorage.getItem('ws-pf_compId'),
       deptCircularPage: {},
       packtypeList: {},
+      deptBudgetList1:[],
       date: {
         year: dayjs().format('YYYY'),
         month: dayjs().format('MM'),
       },
       contractList: [],
-      deptBudgetList: {},
+      deptBudgetList:{
+        physicalInventory:0
+      },
       historyList: [],
-
+       rules: {
+        netWeight: [
+          {
+            required: true,
+            type: 'number',
+            message: '请输入活动名称',
+            trigger: 'blur',
+          },
+        ],
+      },
       pickerBeginDateBefore: {
         disabledDate: (time) => {
           return time.getTime() > Date.now()
@@ -185,12 +173,47 @@ export default {
       accessoryTFs: false,
     }
   },
+   computed:{
+        ioss1 :function() {
+     return (this.deptBudgetList.cumulativeStockIn-this.deptBudgetList.cumulativeStockOut)-this.deptBudgetList.physicalInventory
+      // return this.message.split('').reverse().join('')
+    },
+    surplusInventory1: function(){
+      return this.deptBudgetList.cumulativeStockIn-this.deptBudgetList.cumulativeStockOut
+    },
+    inventoryRatio1 : function(){
+      var loss=(this.deptBudgetList.cumulativeStockIn-this.deptBudgetList.cumulativeStockOut)-this.deptBudgetList.physicalInventory
+      var defect=this.deptBudgetList.cumulativeStockIn-this.deptBudgetList.physicalInventory
+      if((loss/defect)==1){
+        var num=0
+      }else{
+        // .占比=损耗量÷(累计入库-实际库存)
+        num = Math.floor((loss/defect)*1000000)/1000
+      }
+     
+     return num;
+    }
+   },
   activated() {
     //cg.viewBudget
     //cg.viewSpareMoney
     // this.getVesselData();
     this.loaddata()
     this.showType = this.isShow
+  },
+   mounted() {
+    this.deptBudgetList.baseId = this.$route.query.baseId
+    this.deptBudgetList.positionId = this.$route.query.positionId
+    this.deptBudgetList.warehouseName = this.$route.query.warehouseName
+    this.deptBudgetList.binNumber = this.$route.query.binNumber
+    this.deptBudgetList1.warehouseName = this.$route.query.warehouseName
+    this.deptBudgetList1.binNumber = this.$route.query.binNumber
+   this.deptBudgetList1.baseId=this.$route.query.baseId
+    this.deptBudgetList1.positionId=this.$route.query.positionId
+    // this.deptBudgetList.inventoryRatio=((deptBudgetList.cumulativeStockIn-deptBudgetList.cumulativeStockOut)-deptBudgetList.physicalInventory)/(deptBudgetList.cumulativeStockIn-deptBudgetList.physicalInventory)*100
+    // this.deptBudgetList.ioss=(deptBudgetList.cumulativeStockIn-deptBudgetList.cumulativeStockOut)-deptBudgetList.physicalInventory
+    // this.deptBudgetList1.goodsNameKey=this.deptBudgetList.goodsNameKey
+    // this.getList()
   },
   methods: {
     //返回按钮
@@ -199,7 +222,34 @@ export default {
     },
     //提交按钮
     submit(){
-      this.$router.push({ path: 'warehouseManagementList' })
+       this.$refs.deptBudgetList.validate((valid) => {
+        if (valid) {
+          this.deptBudgetList.surplusInventory=this.deptBudgetList.cumulativeStockIn-this.deptBudgetList.cumulativeStockOut
+          this.deptBudgetList.loss=(this.deptBudgetList.cumulativeStockIn-this.deptBudgetList.cumulativeStockOut)-this.deptBudgetList.physicalInventory
+         this.deptBudgetList.inventoryRatio=((this.deptBudgetList.cumulativeStockIn-this.deptBudgetList.cumulativeStockOut)-this.deptBudgetList.physicalInventory)/(this.deptBudgetList.cumulativeStockIn-this.deptBudgetList.physicalInventory)
+         this.deptBudgetList.baseId=this.deptBudgetList1.baseId
+          this.deptBudgetList.positionId=this.deptBudgetList1.positionId
+          this.deptBudgetList.binNumber=this.deptBudgetList1.binNumber
+          this.deptBudgetList.warehouseName=this.deptBudgetList1.warehouseName
+       for (var i = 0; i < this.goodnameList.length; i++) {
+        if (this.goodnameList[i].goodsName == this.deptBudgetList.goodsName) {
+          this.deptBudgetList.goodsNameKey = this.goodnameList[i].goodsNameKey
+        }
+      }
+         this.deptBudgetList.compId = this.compId
+          this.deptBudgetList.contractType = 1
+          console.log(this.deptBudgetList)
+         submitioss(this.deptBudgetList)
+            .toPromise()
+            .then((response) => {
+              this.$message.success('提交成功')
+              this.$router.push({ path: 'warehouseManagementList' })
+            })
+        } else {
+          //EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+          return false
+        }
+      })
     },
     dateFormat(fmt, date) {
       let ret
@@ -235,44 +285,32 @@ export default {
       this.currentPage = val
       console.log(`当前页: ${val}`)
       this.getList()
+    },
+    changeioss(e){
+        for (var i = 0; i < this.goodnameList.length; i++) {
+        if (this.goodnameList[i].goodsName == e) {
+          this.deptBudgetList.goodsNameKey = this.goodnameList[i].goodsNameKey
+        }
+      }  
+      this.ioss()
+    },
+     ioss(){
+      ioss(
+        this.deptBudgetList
+      )
+        .toPromise()
+        .then((response) => {
+         this.deptBudgetList=response     
+        })
     },
      loaddata() {
       // 货名
-      goodsname({ constId: 'CON2' })
+      goodsname({positionId : this.$route.query.positionId})
         .toPromise()
         .then((response) => {
           this.goodnameList = response
         })
     },
-    // getList() {
-    //   getList({
-    //     compId: sessionStorage.getItem('ws-pf_compId'),
-    //     contractType: this.contractType,
-    //     currentPage: this.currentPage,
-    //     pageSize: this.pageSize,
-    //     searchType: this.searchType,
-    //     searchKeyWord: this.searchKeyWord,
-    //     startDate: this.startDate,
-    //     endDate: this.endDate,
-    //     contrPage: this.contrPage,
-    //   })
-    //     .toPromise()
-    //     .then((response) => {
-    //       for (var i = 0; i < response.records.length; i++) {
-    //         if (response.records[i].addressUrl != null) {
-    //           response.records[i].addressUrlArray = response.records[
-    //             i
-    //           ].addressUrl.split(',')
-    //         } else {
-    //           response.records[i].addressUrlArray = []
-    //         }
-    //       }
-    //       this.deptCircularPage.currentPage = response.current
-    //       this.deptCircularPage.pageSize = response.size
-    //       this.deptBudgetTotal = response.total
-    //       this.contractList = response
-    //     })
-    // },
     selecttaskType(e) {
       for (var i = 0; i < this.taskTypeList.length; i++) {
         if (this.taskTypeList[i].value == e) {
@@ -292,7 +330,6 @@ export default {
           this.historyList = response
         })
     },
-   
     // deletecontract(){},
     //删除
     approve() {},
@@ -304,10 +341,11 @@ export default {
 }
 </script>
 <style lang="scss" scoped>
+.container {
+  padding: 20px;
+}
 .center {
-  position: relative;
-  margin-top: 100px;
-  top: 100px;
+  top: 50px;
   width: 40%;
   height: 700px;
   margin: 0 auto; 
@@ -318,10 +356,74 @@ export default {
 /deep/.el-input--small{
   width: 70%;
 }
+/deep/.bg-right{
+    padding-right: 10px;
+    text-align: right;
+}
 .container .bg-bottom {
+ margin: 15px 0px;
+}
+
+//仓位
+.position{
+ width: 52px;
+height: 20px;
+background: #AFB5CB;
+border-radius: 2px;
+font-size: 12px;
+font-family: PingFangSC-Medium, PingFang SC;
+color: #FFFFFF;
+line-height: 20px;
+}
+//表格
+.readonly{
+    width: 49%;
+    display: inline-flex;
+    height: 40px;
+}
+/deep/.el-form-item__label {
+    width: 170px;
+    text-align: left;
+    font-size: 14px;
+font-family: PingFangSC-Regular, PingFang SC;
+font-weight: 400;
+color: #8890B1;
+line-height: 16px;
+}
+//下拉框
+.goodsname{
+  width: 40%;
+}
+.goodsname:first-child{
+  width: 140px;
+}
+//注意字体
+.fontsize{
+  width: 312px;
+height: 17px;
+font-size: 12px;
+font-family: PingFangSC-Regular, PingFang SC;
+font-weight: 400;
+color: #AFB5CB;
+line-height: 17px;
+}
+//比例文字
+.proportion{
+color: #FF2C58;
+}
+.proportion1{
+color: black;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
   position: absolute;
-  float: right;
-  top: 15px;
-  right: 20px;
+  left: 0;
 }
 </style>

+ 122 - 54
src/views/warehouse/warehouseManagementIossRecord.vue

@@ -1,7 +1,7 @@
 <!--仓库管理-->
 <template>
   <div class="container">
-     <el-row>
+    <el-row>
       <el-col :span="20">
         <h2 class="bg-left title">盘损详情</h2>
       </el-col>
@@ -11,54 +11,89 @@
           type="primary"
           size="small"
           @click="returnWarehouse()"
-          >返回</el-button
+          ><img
+            width="6"
+            height="10"
+            style="vertical-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />返回</el-button
         >
       </el-col>
     </el-row>
     <div class="connert">
-      <h2>鲅鱼圈一号库  102仓位</h2>
+      <h2>
+        <img
+          style="position: relative; top: 2px"
+          width="19"
+          height="19"
+          src="../../../public/img/cangku.png"
+          alt=""
+        />
+        <span style="color: #323233">{{ deptBudgetList.warehouseName }}库</span>
+        <span class="ware">{{ binNumber }}仓位</span>
+      </h2>
       <el-table
         class="wenzi"
         :data="contractList.records"
         style="width: 100%; margin-top: 20px"
-        height="780"
+        height="630"
       >
-      <el-table-column type="index" label="序号">
-        <template scope="scope">
-          <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
-          <span v-else>{{ scope.$index + 1 }}</span>
-        </template>
-      </el-table-column> 
-        <el-table-column prop="contractNo" label="货名" >
+        <el-table-column type="index" label="序号">
+          <template scope="scope">
+            <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
+            <span v-else>{{ scope.$index + 1 }}</span>
+          </template>
         </el-table-column>
-        <el-table-column prop="goodsName" label="当前累计入库(吨)" >
+        <el-table-column prop="goodsName" label="货名"> </el-table-column>
+        <el-table-column prop="cumulativeStockIn" label="当前累计入库(吨)">
         </el-table-column>
-        <el-table-column prop="weight" label="当前累计出库(吨)">
-         </el-table-column>
-        <el-table-column prop="unitContractPrice" label="应余库存">
+        <el-table-column prop="cumulativeStockOut" label="当前累计出库(吨)">
         </el-table-column>
-        <el-table-column prop="packingMethod" label="实际库存(吨)">
+        <el-table-column prop="surplusInventory" label="应余库存">
         </el-table-column>
-        <el-table-column prop="buyer" label="损耗量(吨)"> 
+        <el-table-column prop="physicalInventory" label="实际库存(吨)">
+          <template slot-scope="scope">
+            <span style="color: #5473e8">{{
+              scope.row.physicalInventory
+            }}</span>
+          </template>
         </el-table-column>
-        <el-table-column prop="seller" label="库损比例(‰)">
-         </el-table-column>
-         <el-table-column prop="seller" label="内勤" >
-         </el-table-column>
-          <el-table-column prop="seller" label="录入时间" >
-         </el-table-column>
+        <el-table-column prop="loss" label="损耗量(吨)">
+          <template slot-scope="scope">
+            <span style="color: #ff9f24">{{ scope.row.loss }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="inventoryRatio" label="库损比例(‰)">
+          <template slot-scope="scope">
+            <span v-if="scope.row.inventoryRatio < 3" style="color: #8890b1">{{
+              scope.row.inventoryRatio
+            }}</span>
+            <span v-if="scope.row.inventoryRatio > 3" style="color: #fc5061">{{
+              scope.row.inventoryRatio
+            }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="qualityInspector" label="内勤">
+        </el-table-column>
+        <el-table-column prop="createDate" label="录入时间"> </el-table-column>
       </el-table>
-      
+      <div style="text-align: center; padding: 10px">
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-size="deptCircularPage.pageSize"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="deptBudgetTotal"
+        >
+        </el-pagination>
+      </div>
     </div>
   </div>
 </template>
 <script>
-import {
-  getList,
-  export1,
-  editstatus,
-  billoperatehis,
-} from '@/model/contarct/index'
+import { adjustmentrecordList } from '@/model/warehouse/index'
 import { downloadFile } from '@/utils/batchDown'
 import Pagination from '@/components/Pagination'
 import WsUpload from '@/components/WsUpload'
@@ -94,9 +129,9 @@ export default {
       year: '',
       currentPage: 1,
       pageSize: 10,
-      searchType: 1,
-       searchTypeText: '未完成',
-       searchKeyWord: '',
+      searchType: '',
+      searchTypeText: '未完成',
+      searchKeyWord: '',
       contractType: 2,
       startDate: null,
       endDate: null,
@@ -112,11 +147,10 @@ export default {
       contractList: [],
       deptBudgetList: {},
       historyList: [],
-      pickerBeginDateBefore: {
-        disabledDate: (time) => {
-          return time.getTime() > Date.now()
-        },
-      },
+      binNumber: '',
+      deptBudgetTotal: 0,
+      currentPage: 1,
+      pageSize: 10,
       accessoryTFs: false,
     }
   },
@@ -124,10 +158,17 @@ export default {
     //cg.viewBudget
     //cg.viewSpareMoney
     // this.getVesselData();
+    this.deptBudgetList.baseId = this.$route.query.baseId
+    this.deptBudgetList.positionId = this.$route.query.positionId
+    this.deptBudgetList.warehouseName = this.$route.query.warehouseName
+    this.binNumber = this.$route.query.binNumber
     this.getList()
     this.showType = this.isShow
   },
   methods: {
+    returnWarehouse() {
+      this.$router.go(-1)
+    },
     dateFormat(fmt, date) {
       let ret
       const opt = {
@@ -164,16 +205,14 @@ export default {
       this.getList()
     },
     getList() {
-      getList({
+      adjustmentrecordList({
         compId: sessionStorage.getItem('ws-pf_compId'),
-        contractType: this.contractType,
+        baseId: this.deptBudgetList.baseId,
+        positionId: this.deptBudgetList.positionId,
+        warehouseName: this.deptBudgetList.warehouseName,
+        searchType: this.searchType,
         currentPage: this.currentPage,
         pageSize: this.pageSize,
-        searchType: this.searchType,
-        searchKeyWord: this.searchKeyWord,
-        startDate: this.startDate,
-        endDate: this.endDate,
-        contrPage: this.contrPage,
       })
         .toPromise()
         .then((response) => {
@@ -295,14 +334,12 @@ export default {
 }
 </script>
 <style lang="scss" scoped>
-.container .bg-left {
-  margin-left: 40px;
+.bg-left {
+  padding-left: 10px;
 }
-.container .bg-bottom {
-  position: absolute;
-  float: right;
-  top: 15px;
-  right: 20px;
+.bg-right {
+  padding: 16px;
+  text-align: right;
 }
 .connert {
   width: 90%;
@@ -312,6 +349,37 @@ export default {
   width: 62px;
   text-align: right;
 }
-
-
+.ware {
+  font-size: 12px;
+  color: rgb(255, 255, 255);
+  background: rgb(175, 181, 203);
+  padding: 3px;
+  position: relative;
+  top: -1px;
+  border-radius: 3px;
+  text-align: center;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.ws-info-table {
+  border-left: 1px solid transparent;
+  border-top: 1px solid transparent;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
 </style>

+ 134 - 73
src/views/warehouse/warehouseManagementList.vue

@@ -5,22 +5,27 @@
       <template slot="left">
         <ws-button
           type="primary"
-          @click="handleLook()"
+          @click="handleAdd()"
           v-hasPermission="
             `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
           "
-          >查看</ws-button
+          ><img
+            width="11"
+            height="11"
+            style="position: relative; top: 1px"
+            src="../../../public/img/header-add.png"
+            alt=""
+          />
+          添加</ws-button
         >
         <ws-button
-          type="primary"
-          @click="handleAdd()"
+          @click="handleLook()"
           v-hasPermission="
             `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
           "
-          >添加</ws-button
+          >查看</ws-button
         >
         <ws-button
-          type="primary"
           @click="handleEdit()"
           v-hasPermission="
             `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
@@ -28,7 +33,6 @@
           >编辑</ws-button
         >
         <ws-button
-          type="primary"
           @click="handleDelete()"
           v-hasPermission="
             `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
@@ -38,7 +42,7 @@
       </template>
       <template slot="right">
         <ws-input
-          v-model="searchKeyWord"
+          v-model="warehouseName"
           placeholder="请输入仓库名"
           clearable
           maxlength="500"
@@ -67,7 +71,7 @@
         /></ws-button>
       </template>
     </BaseHeaderLayout>
-    <div class="connert">
+    <div>
       <el-table
         class="wenzi"
         :data="warehouseList"
@@ -87,30 +91,42 @@
             </div>
           </template>
         </el-table-column>
-        <el-table-column label="品种">
+        <el-table-column class="table_td" label="品种">
           <template slot-scope="scope">
-            <div v-for="(item, i) in scope.row.warehouseNumViewList">
+            <div
+              style="height: 24px"
+              v-for="(item, i) in scope.row.warehouseNumViewList"
+            >
               {{ item.goodsName }}
             </div>
           </template>
         </el-table-column>
-        <el-table-column label="入库量(吨)">
+        <el-table-column class="table_td" label="入库量(吨)">
           <template slot-scope="scope">
-            <div v-for="(item, i) in scope.row.warehouseNumViewList">
+            <div
+              style="height: 24px"
+              v-for="(item, i) in scope.row.warehouseNumViewList"
+            >
               {{ item.inNetWeight }}
             </div>
           </template>
         </el-table-column>
-        <el-table-column label="出库量(吨)">
+        <el-table-column class="table_td" label="出库量(吨)">
           <template slot-scope="scope">
-            <div v-for="(item, i) in scope.row.warehouseNumViewList">
+            <div
+              style="height: 24px"
+              v-for="(item, i) in scope.row.warehouseNumViewList"
+            >
               {{ item.outNetWeight }}
             </div>
           </template>
         </el-table-column>
-        <el-table-column label="应余量(吨)">
+        <el-table-column class="table_td" label="应余量(吨)">
           <template slot-scope="scope">
-            <div v-for="(item, i) in scope.row.warehouseNumViewList">
+            <div
+              style="height: 24px"
+              v-for="(item, i) in scope.row.warehouseNumViewList"
+            >
               {{ item.storage }}
             </div>
           </template>
@@ -118,8 +134,8 @@
         <el-table-column prop="seller" label="出入库" width="300">
           <template slot-scope="scope">
             <ws-button
-              type="primary"
-              @click="nocomplete()"
+              class="completed"
+              @click="nocomplete(scope.row)"
               v-hasPermission="
                 `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
               "
@@ -127,7 +143,7 @@
               待完成({{ scope.row.number }})
             </ws-button>
             <ws-button
-              type="primary"
+              class="putstorage"
               @click="warehousing(scope.row)"
               v-hasPermission="
                 `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
@@ -136,7 +152,7 @@
               入库
             </ws-button>
             <ws-button
-              type="primary"
+              class="deliverystorage"
               @click="delivery(scope.row)"
               v-hasPermission="
                 `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
@@ -147,25 +163,10 @@
           </template>
         </el-table-column>
         <el-table-column prop="address" label="操作" width="200">
-          <!-- <template slot-scope="scope"> -->
-          <ws-button
-            type="primary"
-            @click="record()"
-            v-hasPermission="
-              `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
-            "
-            >记录</ws-button
-          >
-
-          <ws-button
-            type="primary"
-            @click="loss()"
-            v-hasPermission="
-              `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
-            "
-            >盘损</ws-button
-          >
-          <!-- </template> -->
+          <template slot-scope="scope">
+            <div class="record" @click="record(scope.row)">记录</div>
+            <div class="adjustment" @click="loss(scope.row)">盘损</div>
+          </template>
         </el-table-column>
       </el-table>
     </div>
@@ -216,18 +217,13 @@ export default {
       searchTypeText: '未完成',
       searchKeyWord: '',
       contractType: 2,
-      startDate: null,
-      endDate: null,
       // 提交类型
       submitType: true,
       size: 10,
       spanArr: [],
+      warehouseName: '',
       compId: sessionStorage.getItem('ws-pf_compId'),
       deptCircularPage: {},
-      date: {
-        year: dayjs().format('YYYY'),
-        month: dayjs().format('MM'),
-      },
       warehouseList: [],
       deptBudgetList: {},
       historyList: [],
@@ -305,22 +301,46 @@ export default {
         // }
       })
     },
-    //待完成
-    nocomplete() {
-      this.$router.push({ path: 'warehouseManagementNoComplete' })
+    //待完成//传参
+    nocomplete(row) {
+      this.$router.push({
+        path: 'warehouseManagementNoComplete',
+        query: { baseId: row.warehouseId,
+         positionId: row.binNumberId,
+         warehouseName: row.warehouseName,
+          binNumber : row.binNumber
+              
+
+        },
+      })
     },
     //记录
-    record() {
-      this.$router.push({ path: 'warehouseManagementRecord' })
+    record(item) {
+      this.$router.push({
+        name: 'warehouseManagementRecord',
+        query: {
+          baseId: item.warehouseId,
+          positionId: item.binNumberId,
+          warehouseName: item.warehouseName,
+        },
+        params: {
+          remark: item.remark,
+          binNumber: item.binNumber,
+          capacity: item.capacity,
+        },
+      })
     },
     //盘损
-    loss() {
-      // console.log(row.positionId)
-      // this.$router.push({
-      //   name: 'warehouseManagementIoss',
-      //   params: {positionId: row.positionId },
-      // })
-       this.$router.push({ path: 'warehouseManagementIoss' })
+    loss(item) {
+      this.$router.push({
+        path: 'warehouseManagementIoss',
+        query: {
+          baseId: item.warehouseId,
+          positionId: item.binNumberId,
+          warehouseName: item.warehouseName,
+          binNumber: item.binNumber,
+        },
+      })
     },
     //查看
     handleLook() {
@@ -375,22 +395,10 @@ export default {
     getList() {
       getList({
         compId: sessionStorage.getItem('ws-pf_compId'),
+        warehouseName: this.warehouseName,
       })
         .toPromise()
         .then((response) => {
-          this.getSpanArr(response)
-          // for (var i = 0; i < response.records.length; i++) {
-          //   if (response.records[i].addressUrl != null) {
-          //     response.records[i].addressUrlArray = response.records[
-          //       i
-          //     ].addressUrl.split(',')
-          //   } else {
-          //     response.records[i].addressUrlArray = []
-          //   }
-          // }
-          // this.deptCircularPage.currentPage = response.current
-          // this.deptCircularPage.pageSize = response.size
-          // this.deptBudgetTotal = response.total
           this.warehouseList = response
         })
     },
@@ -465,8 +473,6 @@ export default {
         })
     },
     find() {
-      this.startDate = this.dateFormat('YYYY-mm-dd', this.value2[0])
-      this.endDate = this.dateFormat('YYYY-mm-dd', this.value2[1])
       this.currentPage = 1
       this.getList()
     },
@@ -505,4 +511,59 @@ export default {
   width: 62px;
   text-align: right;
 }
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-button--default {
+  color: #8890b1;
+  border-color: #e8eaf1;
+}
+/deep/.base_header_layout .grid-content.right .find.el-button--primary {
+  width: 30px;
+  margin-left: 0;
+  border-top-left-radius: 0px;
+  border-bottom-left-radius: 0px;
+}
+/deep/.findValue .el-input__inner {
+  border-top-right-radius: 0px;
+  border-bottom-right-radius: 0px;
+}
+.completed.el-button--default {
+  border-color: #5878e8;
+  background-color: #f6f7fc;
+  color: #5878e8;
+}
+.putstorage.el-button--default,
+.deliverystorage.el-button--default {
+  border-color: #8890b1;
+  background-color: #fff;
+  color: #8890b1;
+}
+/deep/.el-table td,
+/deep/.el-table th.is-leaf {
+  border-right: 1px solid #e9ecf7;
+  text-align: center;
+}
+/deep/.el-table tr td:first-child,
+/deep/.el-table tr th.is-leaf:first-child {
+  border-left: 1px solid #e9ecf7;
+}
+.record,
+.adjustment {
+  display: inline-block;
+  color: #5878e8;
+  padding: 0 4px !important;
+  position: relative;
+}
+.record:after {
+  position: absolute;
+  content: '';
+  display: block;
+  top: 5px;
+  right: -2px;
+  width: 1px;
+  height: 12px;
+  background: #e9ecf7;
+}
 </style>

+ 159 - 47
src/views/warehouse/warehouseManagementLook.vue

@@ -10,24 +10,31 @@
           type="primary"
           size="small"
           @click="returnWarehouse()"
-          >返回</el-button
+          ><img
+            width="6"
+            height="10"
+            style="vertical-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />返回</el-button
         >
       </el-col>
     </el-row>
     <div class="center">
       <ws-form ref="deptBudgetList" :model="deptBudgetList">
+        <div class="small-title">基本信息</div>
         <!--基本信息-->
         <ws-info-table>
           <!--仓库名称-->
           <ws-form-item
+            class="warehouseName"
             label="仓库名称"
             span="1"
             prop="warehouseName"
-            class="readonly"
           >
             <ws-select
               v-model="deptBudgetList.warehouseName"
-              placeholder=""
+              placeholder="请输入仓库名称"
               class="typeselect"
               @change="selectpackingMethod"
             >
@@ -41,7 +48,7 @@
           </ws-form-item>
           <!--负责人-->
           <ws-form-item label="负责人" span="1" prop="personCharge">
-            {{deptBudgetList.personCharge}}
+            {{ deptBudgetList.personCharge }}
           </ws-form-item>
           <!--负责人电话-->
           <ws-form-item
@@ -50,66 +57,82 @@
             prop="personPhone"
             class="readonly"
           >
-            {{deptBudgetList.personPhone}}
+            {{ deptBudgetList.personPhone }}
           </ws-form-item>
           <!--仓库所在地-->
           <ws-form-item label="仓库所在地" span="1" prop="warehouseLocation">
-            {{deptBudgetList.warehouseLocation}}
+            {{ deptBudgetList.warehouseLocation }}
           </ws-form-item>
           <!--详细地址-->
-          <ws-form-item label="详细地址" span="1" prop="detailedAddress" class="readonly">
-           {{deptBudgetList.detailedAddress}}
+          <ws-form-item
+            label="详细地址"
+            span="1"
+            prop="detailedAddress"
+            class="readonly"
+          >
+            {{ deptBudgetList.detailedAddress }}
           </ws-form-item>
           <!--总储量(吨)-->
-          <ws-form-item label="总储量(吨)" span="1" prop="totalStorage">      
-            {{deptBudgetList.totalStorage}}
+          <ws-form-item label="总储量(吨)" span="1" prop="totalStorage">
+            {{ deptBudgetList.totalStorage }}
           </ws-form-item>
-          </ws-info-table>
-          
-          <div v-for='item in deptBudgetList.warehousePositionInfoList'>
-            <ws-info-table>
-          <!--仓位编号-->
-          <ws-form-item label="仓位编号" span="1" prop="binNumber" class="forlist">
-            <!-- <ws-input
+        </ws-info-table>
+
+        <div v-for="item in deptBudgetList.warehousePositionInfoList">
+          <ws-info-table>
+            <!--仓位编号-->
+            <ws-form-item
+              label="仓位编号"
+              span="1"
+              prop="binNumber"
+              class="forlist"
+            >
+              <!-- <ws-input
               v-model.number="item.binNumber"
               placeholder="请输入仓位编号"
               maxlength="100"
               size="small"
             /> -->
-            {{item.binNumber}}
-          </ws-form-item>
-          <!--最大储量(吨)-->
-          <ws-form-item label="最大储量(吨)" span="1" prop="maxStorage" class="forlist">
-            <!-- <ws-input
+              {{ item.binNumber }}
+            </ws-form-item>
+            <!--最大储量(吨)-->
+            <ws-form-item
+              label="最大储量(吨)"
+              span="1"
+              prop="maxStorage"
+              class="forlist"
+            >
+              <!-- <ws-input
               v-model="item.maxStorage"
               placeholder="请输入最大储量(吨)"
               maxlength="20"
               size="small"
             /> -->
-            {{item.maxStorage}}
-          </ws-form-item>
-          <!--现有储量-->
-          <ws-form-item label="现有储量" span="1" prop="nowStorage">
-            <!-- <ws-input
+              {{ item.maxStorage }}
+            </ws-form-item>
+            <!--现有储量-->
+            <ws-form-item label="现有储量" span="1" prop="nowStorage">
+              <!-- <ws-input
               v-model="item.nowStorage"
               placeholder="请输入现有储量"
               maxlength="100"
               size="small"
             /> -->
-            {{item.nowStorage}}
-          </ws-form-item>
-          <!--备注(选填)-->
-          <ws-form-item label="备注(选填)" span="1" prop="remark">
-            <!-- <ws-input
+              {{ item.nowStorage }}
+            </ws-form-item>
+            <!--备注(选填)-->
+            <ws-form-item label="备注(选填)" span="1" prop="remark">
+              <!-- <ws-input
               v-model="item.remark"
               placeholder="请输入备注(选项)"
               maxlength="100"
               size="small"
             /> -->
-            {{item.remark}}
-          </ws-form-item>
+              {{ item.remark }}
+            </ws-form-item>
           </ws-info-table>
-          </div>
+        </div>
+        <div class="small-title">仓库照片</div>
       </ws-form>
     </div>
     <div style="text-align: right; padding: 10px">
@@ -235,9 +258,9 @@ export default {
       console.log(e)
       for (var i = 0; i < this.packtypeList.length; i++) {
         if (this.packtypeList[i].warehouseName == e) {
-         this.getLook(this.packtypeList[i].id)
+          this.getLook(this.packtypeList[i].id)
         }
-      }    
+      }
     },
     loaddata() {
       // 仓库名称
@@ -253,8 +276,8 @@ export default {
       })
         .toPromise()
         .then((response) => {
-         this.deptBudgetList=response
-         console.log(this.deptBudgetList)
+          this.deptBudgetList = response
+          //  console.log(this.deptBudgetList)
         })
     },
     // 关闭 dialog时 处理文件url 初始化upload组件
@@ -283,19 +306,17 @@ export default {
 .center {
   position: relative;
   margin-top: 100px;
-  top: 100px;
+  top: 30px;
   width: 90%;
   height: 500px;
   margin: 0 auto;
 }
 .container .bg-left {
-  margin-left: 40px;
+  padding-left: 40px;
 }
-.container .bg-bottom {
-  position: absolute;
-  float: right;
-  top: 15px;
-  right: 20px;
+.bg-right {
+  padding: 16px;
+  text-align: right;
 }
 .vertical-text-left {
   width: 62px;
@@ -304,7 +325,98 @@ export default {
 /deep/.el-form-item {
   width: 33.33%;
 }
-.forlist{
+.forlist {
   width: 16.67%;
 }
+//文字基本信息
+.center h3 {
+  margin-left: 42px;
+}
+//去边框
+/deep/.el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+}
+/deep/.ws-info-table {
+  border-left: 0px;
+  border-top: 0px;
+}
+.ws-info-table .el-form-item .el-form-item__content {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+//背景
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  background: #f5f7fa;
+  border-radius: 4px;
+  border: 1px solid #d8dce6;
+  font-family: PingFangSC-Regular, PingFang SC;
+  margin-bottom: 5px;
+  font-size: 14px;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  background-color: #fff;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+//多选框
+/deep/.el-input__inner {
+  display: inline-block;
+  background-color: #fff;
+}
+/deep/.ws-info-table .warehouseName.el-form-item .el-form-item__content {
+  background: #fff;
+  border: none;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.ws-info-table {
+  border-left: 1px solid transparent;
+  border-top: 1px solid transparent;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+.small-title {
+  position: relative;
+  padding: 10px;
+}
+.small-title::before {
+  position: absolute;
+  content: '';
+  display: block;
+  background: #5473e8;
+  width: 4px;
+  height: 14px;
+  left: 0px;
+  top: 13px;
+}
 </style>

+ 260 - 82
src/views/warehouse/warehouseManagementNoComplete.vue

@@ -9,53 +9,96 @@
           class="bg-bottom"
           type="primary"
           size="small"
-          @click="returnWarehouse"
-          >返回</el-button
+          @click="returnWarehouse()"
+          ><img
+            width="6"
+            height="10"
+            style="vertical-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />返回</el-button
         >
       </el-col>
     </el-row>
+<ws-form ref="deptBudgetList" :v-model="deptBudgetList">
     <div class="center">
-      <h2>鲅鱼圈一号库 102仓位(容量100吨)</h2>
-      <ws-form ref="deptBudgetList" :model="deptBudgetList">
-        <el-table>
+     <h2 style="padding-left: 20px">
+        <img
+          style="position: relative; top: 2px"
+          width="19"
+          height="19"
+          src="../../../public/img/cangku.png"
+          alt=""
+        />
+        {{ this.$route.query.warehouseName}}库
+        <span class="position">
+          {{ this.$route.query.binNumber }}仓位
+          </span>
+      </h2>
+        <el-table
+        :data="improved.records"
+        >
           <el-table-column type="index" label="序号">
             <template scope="scope">
               <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
               <span v-else>{{ scope.$index + 1 }}</span>
             </template>
           </el-table-column>
-          <el-table-column prop="contractNo" label="货名"> </el-table-column>
-          <el-table-column prop="goodsName" label="毛重(吨)"></el-table-column>
-          <el-table-column prop="weight" label="皮重(吨)"> </el-table-column>
-          <el-table-column prop="unitContractPrice" label="净重(吨)"></el-table-column>   
-          <el-table-column prop="packingMethod" label="品级"> </el-table-column>
-          <el-table-column prop="buyer" label="出入库日期"> </el-table-column>
-          <el-table-column prop="buyer" label="类型"> </el-table-column>
-          <el-table-column prop="buyer" label="合同编号"> </el-table-column>
-          <el-table-column prop="buyer" label="车牌号"> </el-table-column>
-          <el-table-column prop="buyer" label="经办人"> </el-table-column>
-          <el-table-column prop="buyer" label="内勤"> </el-table-column>
-          <el-table-column prop="buyer" label="保存时间"> </el-table-column>
+          <el-table-column prop="goodsName" label="货名"> </el-table-column>
+          <el-table-column prop="tare" label="毛重(吨)"></el-table-column>
+          <el-table-column prop="grossWeight" label="皮重(吨)"> </el-table-column>
+          <el-table-column prop="netWeight" label="净重(吨)"></el-table-column>   
+          <el-table-column prop="grade" label="品级">
+            <template slot-scope="scope">
+          <span v-if="scope.row.grade == '一等品'" class="top-grade">{{
+            scope.row.grade
+          }}</span>
+          <span v-if="scope.row.grade == '二等品'" class="second-class">{{
+            scope.row.grade
+          }}</span>
+          <span v-if="scope.row.grade == '三等品'" class="third-class">{{
+            scope.row.grade
+          }}</span>
+          <span v-if="scope.row.grade == '等外'" class="substandard">{{
+            scope.row.grade
+          }}</span>
+        </template>
+            
+             </el-table-column>
+          <el-table-column prop="inOutDate" label="出入库日期"> </el-table-column>
+          <el-table-column prop="inOutType" label="类型">
+             </el-table-column>
+          <el-table-column prop="contractNo" label="合同编号"> </el-table-column>
+          <el-table-column prop="carNo" label="车牌号"> </el-table-column>
+          <el-table-column prop="agent" label="经办人"> </el-table-column>
+          <el-table-column prop="backOffice" label="内勤"> </el-table-column>
+          <el-table-column prop="updateDate" label="保存时间"> </el-table-column>
           <el-table-column prop="address" label="操作" width="200">
-          <ws-button
+            <!-- <template scope="scope"> -->
+          <!-- <ws-button
             type="primary"
-            @click="edits()"
+             @click="edits(scope.row)"
             v-hasPermission="
               `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
-            "
+            "    
             >编辑</ws-button
-          >
-          <ws-button
+          > -->
+          <!-- <ws-button
             type="primary"
-            @click="deletes()"
+            @click="handleDelete(scope.row)"
             v-hasPermission="
               `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
             "
             >删除</ws-button
-          >
+          > -->
           <!-- </template> -->
+          <template slot-scope="scope">
+            <div class="record" @click="edits(scope.row)">编辑</div>
+            <div class="adjustment" @click="handleDelete(scope.row)">删除</div>
+          </template>
         </el-table-column>
         </el-table>
+        
         <div style="text-align: right; padding: 10px">
           <el-button
             class="bg-bottom-up"
@@ -63,19 +106,23 @@
             size="small"
             @click="returnWarehouse()"
             >关闭</el-button
-          >
+          >    
         </div>
-      </ws-form>
+     
     </div>
+     </ws-form>
   </div>
 </template>
 <script>
 import {
+  complete,
   getList,
   export1,
   editstatus,
   billoperatehis,
-} from '@/model/contarct/index'
+  deletewarehouse,
+  warehouseName,
+} from '@/model/warehouse/index'
 import { downloadFile } from '@/utils/batchDown'
 import Pagination from '@/components/Pagination'
 import WsUpload from '@/components/WsUpload'
@@ -115,6 +162,13 @@ export default {
       contractType: 2,
       startDate: null,
       endDate: null,
+      deletewarehouse:[],
+      pageSize:10,
+      currentPage:'1',
+      improved:[],
+      row:[],
+      deptBudgetList1:[],
+
       // 提交类型
       submitType: true,
       selectpackingMethod: {},
@@ -129,7 +183,8 @@ export default {
       contractList: [],
       deptBudgetList: {},
       historyList: [],
-
+      deletewarehouse:[],
+    // inOutDate:null,
       pickerBeginDateBefore: {
         disabledDate: (time) => {
           return time.getTime() > Date.now()
@@ -142,7 +197,11 @@ export default {
     //cg.viewBudget
     //cg.viewSpareMoney
     // this.getVesselData();
-    this.getList()
+     this.deptBudgetList1.warehouseName = this.$route.query.warehouseName
+     this.binNumber = this.$route.params.binNumber
+    
+    //接参
+    this.getList(this.$route.query.baseId,this.$route.query.positionId)
     this.showType = this.isShow
   },
   methods: {
@@ -152,11 +211,32 @@ export default {
     },
     //删除
     deletes(){
-
+     this.$router.push({path:'warehouseManagementDelete'})
     },
     //编辑
-    edits(){
-      this.$router.push({ path: 'warehouseManagementPerfectput' })
+    edits(row){
+      if(row.inOutFlag==2){
+         this.$router.push({
+           path:'warehouseManagementPerfectput',
+           query:{
+             warehouseName:row.warehouseName,
+            binNumber:row.binNumber,
+            baseId: row.warehouseId,
+            positionId: row.binNumberId,
+           }
+           })
+      }else if(row.inOutFlag==1){
+        this.$router.push({
+          path:'warehouseManagementPerfectDelivery',
+          query:{
+            warehouseName:row.warehouseName,
+            binNumber:row.binNumber,
+            baseId: row.warehouseId,
+            positionId: row.binNumberId,
+          }
+          })
+      }
+     
     },
     dateFormat(fmt, date) {
       let ret
@@ -193,63 +273,55 @@ export default {
       console.log(`当前页: ${val}`)
       this.getList()
     },
-    getList() {
-      getList({
-        compId: sessionStorage.getItem('ws-pf_compId'),
-        contractType: this.contractType,
-        currentPage: this.currentPage,
-        pageSize: this.pageSize,
-        searchType: this.searchType,
-        searchKeyWord: this.searchKeyWord,
-        startDate: this.startDate,
-        endDate: this.endDate,
-        contrPage: this.contrPage,
-      })
-        .toPromise()
+  //收
+  getList(id,id1){
+   complete({
+          // compId: sessionStorage.getItem('ws-pf_compId'),
+          baseId:id,
+          positionId:id1,
+          pageSize:this.pageSize,
+          currentPage:this.currentPage,
+          
+          // inOutDate:this.inOutDate
+    })
+    .toPromise()
         .then((response) => {
-          for (var i = 0; i < response.records.length; i++) {
-            if (response.records[i].addressUrl != null) {
-              response.records[i].addressUrlArray = response.records[
-                i
-              ].addressUrl.split(',')
-            } else {
-              response.records[i].addressUrlArray = []
-            }
-          }
-          this.deptCircularPage.currentPage = response.current
-          this.deptCircularPage.pageSize = response.size
-          this.deptBudgetTotal = response.total
-          this.contractList = response
+          this.improved = response
         })
     },
-    selecttaskType(e) {
-      for (var i = 0; i < this.taskTypeList.length; i++) {
-        if (this.taskTypeList[i].value == e) {
-          this.searchType = this.taskTypeList[i].type
-        }
-      }
-    },
-    fujian(row) {
-      if (
-        row.receiveAttachmentPath === null ||
-        row.receiveAttachmentPath === ''
-      ) {
-        EventBus.$emit(
-          'warning',
-          this.$t('system.noticeCircular.NoInformation')
-        )
-      } else {
-        this.accessoryTFs = true
-      }
-      this.appendixIdss = row.receiveAttachmentPath
-    },
     handleExamine(row) {
       this.$router.push({
         name: 'salesContractExamine',
         query: { id: row.id },
       })
     },
-
+    //删除
+      handleDelete(row) {
+      // console.log(row)
+      this.$confirm(`删除后不可恢复,确认删除?`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+      })
+        .then(() => {
+        deletewarehouse({ baseId:row.baseId, positionId:row.positionId, pageSize:row.pageSize, currentPage: row.currentPage })
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '删除成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {
+              
+            })
+        })
+        .catch(() => {
+          return false
+        })
+      }
+    },
     // 关闭 dialog时 处理文件url 初始化upload组件
     handleCloe() {
       this.dialogViewSpareMoney = false
@@ -299,8 +371,8 @@ export default {
     total() {},
     clearfiltQuery() {},
     selectCrtDuty() {},
-  },
-}
+  }
+
 </script>
 <style lang="scss" scoped>
 .center {
@@ -326,4 +398,110 @@ export default {
 /deep/.el-form-item {
   width: 33%;
 }
+.el-row{
+  background: #F6F7FC;
+  // box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.5);
+  border-radius: 4px 4px 1px 1px;
+}
+.container .bg-bottom{
+  width: 74px;
+  height: 32px;
+  background: #5473E8;
+  border-radius: 4px;
+}
+.bg-bottom {
+    margin-top: 5px 0px;
+}
+.el-table .el-table__header tr{
+  width: 1091px;
+  height: 50px;
+  background: #F6F7FC;
+  border: 1px solid #E8ECF6;
+  text-align: center;
+}
+.el-table .cell{
+  text-align: center;
+  width: 29px;
+height: 20px;
+font-size: 14px;
+font-family: PingFangSC-Regular, PingFang SC;
+font-weight: 400;
+color: #5878E8;
+line-height: 20px;
+}
+.default .winseaview-main .el-table th>.cell{
+  color: #8890B1;
+}
+.record, .adjustment {
+    display: inline-block;
+    color: #5878e8;
+    padding: 0 4px !important;
+    position: relative;
+}
+/deep/.el-table td, .el-table th {
+  text-align: center;
+}
+/deep/.el-table .el-table__header th {
+    border-bottom-width: 0px;
+    text-align: center;
+}
+.top-grade {
+  background: linear-gradient(90deg, #5678e9, #7993f6);
+  color: #fff;
+  padding: 3px;
+  border-radius: 2px;
+}
+.second-class {
+  background: linear-gradient(90deg, #50cdd9, #82e2ea);
+  color: #fff;
+  padding: 3px;
+  border-radius: 2px;
+}
+.third-class {
+  background: linear-gradient(90deg, #ffa735, #ffbf70);
+  color: #fff;
+  padding: 3px;
+  border-radius: 2px;
+}
+.substandard {
+  background: linear-gradient(90deg, #b2b4bb, #ced0d5);
+  color: #fff;
+  padding: 3px;
+  border-radius: 2px;
+}
+// .container .bg-left{
+// width: 663px;
+// height: 28px;
+// font-size: 18px;
+// font-family: PingFangSC-Medium, PingFang SC;
+// font-weight: 500;
+// color: #262626;
+// line-height: 28px;
+// text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5);
+// }
+.a{
+  width: 19px;
+height: 19px;
+background: #AFB5CB;
+margin-left: 10px;
+}
+.container .bg-left{
+  width: 140px;
+height: 29px;
+font-size: 21px;
+font-family: PingFangSC-Semibold, PingFang SC;
+font-weight: 600;
+color: #323233;
+line-height: 29px;
+}
+.position {
+    width: 52px;
+    height: 20px;
+    background: #AFB5CB;
+    border-radius: 2px;
+    font-size: 12px;
+    font-family: PingFangSC-Medium, PingFang SC;
+    color: #FFFFFF;
+    line-height: 20px;
+}
 </style>

+ 717 - 0
src/views/warehouse/warehouseManagementPerfectDelivery.vue

@@ -0,0 +1,717 @@
+
+
+
+
+// 完善出库信息
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="20">
+        <h2 class="bg-left title">完善出库登记</h2>
+      </el-col>
+      <el-col :span="4" class="bg-right">
+        <el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="returnWarehouse()"
+          >返回</el-button
+        >
+      </el-col>
+    </el-row>
+
+    <ws-form ref="deptBudgetList" :model="deptBudgetList" :rules="rules">
+      <div class="basicInformation">
+        <h2>
+          {{ this.deptBudgetList1.warehouseName}}库
+           <span class="position">
+          {{this.deptBudgetList1.binNumber }}仓位
+          </span>
+        </h2>
+       <div class="small-title">基本信息</div>
+        <ws-info-table>
+          <!-- 货名 -->
+          <ws-form-item label="货名" span="1">
+            <ws-select
+              v-model="deptBudgetList.goodsName"
+              placeholder=""
+              class="typeselect"
+              @change="selectgoodsName"
+            >
+              <ws-option
+                v-for="item in goodnameList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </ws-select>
+          </ws-form-item>
+          <!--毛重(吨)-->
+          <ws-form-item label="毛重(吨)" span="1" prop="grossWeight">
+            <ws-input
+              @input="grossWeightchange"
+              v-model="deptBudgetList.grossWeight"
+              placeholder="请输入毛重"
+              maxlength="20"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--皮重(吨)-->
+          <ws-form-item
+            label="皮重(吨)"
+            span="1"
+            prop="tare"
+            class="readonly"
+          >
+            <ws-input
+              @input="tarechange"
+              v-model="deptBudgetList.tare"
+              placeholder="请输入皮重"
+              maxlength="100"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--净重(吨)-->
+          <ws-form-item label="净重(吨)" span="1" prop="netWeight">
+            <ws-input
+              v-model.number="deptBudgetList.netWeight"
+              placeholder="不可编辑,自动计算"
+              type="number"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+          <!-- 品级 -->
+          <ws-form-item label="品级" span="1" class="readonly">
+            <ws-select
+              v-model="deptBudgetList.grade"
+              placeholder=""
+              class="typeselect"
+              @change="selectpackingMethod"
+            >
+              <ws-option
+                v-for="item in gradeList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </ws-select>
+          </ws-form-item>
+
+          <!--经办人-->
+          <ws-form-item label="经办人" span="1" prop="agent">
+            <ws-input
+              v-model="deptBudgetList.agent"
+              placeholder="请输入出库经办人姓名"
+              maxlength="100"
+              size="small"
+            />
+          </ws-form-item>
+          <!--出库日期-->
+          <ws-form-item label="出库日期" span="1" prop="inOutDate" class="deliverydate">
+            <ws-date-picker
+              v-model="deptBudgetList.inOutDate"
+              type="date"
+              placeholder="请选择出库日期"
+              value-format="yyyy-MM-dd"
+            />
+          </ws-form-item>
+          <!-- 入库类型 -->
+          <ws-form-item label="出库类型" span="1">
+            <ws-select
+              v-model="deptBudgetList.inOutType"
+              placeholder=""
+              class="typeselect"
+              @change="selectstorageType"
+            >
+              <ws-option
+                v-for="item in storageType"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </ws-select>
+          </ws-form-item>
+
+          <!--车牌号-->
+          <ws-form-item label="车牌号" span="1" prop="sourceGoods">
+            <ws-input
+              v-model="deptBudgetList.carNo"
+              placeholder="请输入车牌号"
+              maxlength="20"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--合同编号-->
+          <ws-form-item label="合同编号" span="1" prop="contractNo">
+            <ws-input
+              v-model="deptBudgetList.contractNo"
+              placeholder="请输入合同编号"
+              maxlength="100"
+              size="small"
+            />
+          </ws-form-item>
+        </ws-info-table>
+      </div>
+       <div class="small-title">上传仓库照片</div>
+      <ws-upload
+        ref="upload"
+        table-name="maintain_work_order"
+        oss-key="mainPlan"
+        :comp-id="compId"
+        :appendix-ids="appendixIdsAdd"
+        :vesselId="deptBudgetList.addressUrl"
+        :size-limit="size"
+        @uploadSuccess="uploadSuccess"
+        @onChange="onChange"
+        accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar"
+      />
+     <div class="small-title">化验数据(选填)</div>
+      <div class="inspector">
+       <!--自检员-->
+        <ws-form-item label="质检员" span="1" prop="qualityInspector" >
+          <ws-input
+            v-model="deptBudgetList.warehouseInOutDetail.qualityInspector"
+            placeholder="请输入质检员姓名"
+            maxlength="120"
+            size="small"
+          />
+        </ws-form-item>
+        </div>
+        <div class="neifor">
+      <ws-info-table>
+        <!--水分(%)<=-->
+        <ws-form-item label="水分(%)<=" span="1" prop="waterContent">
+          <ws-input
+            v-model="deptBudgetList.warehouseInOutDetail.waterContent"
+            placeholder="请输入水分占比"
+            maxlength="120"
+            size="small"
+          />
+        </ws-form-item>
+        <!--杂质(%)<=-->
+        <ws-form-item label="杂质(%)<=" span="1" prop="impurity">
+          <ws-input
+            v-model="deptBudgetList.warehouseInOutDetail.impurity"
+            placeholder="请输入杂质占比"
+            maxlength="120"
+            size="small"
+          />
+        </ws-form-item>
+        <!--容重(克/升)>=-->
+        <ws-form-item label="容重(克/升)>=" span="1" prop="bulkDensity">
+          <ws-input
+            v-model="deptBudgetList.warehouseInOutDetail.bulkDensity"
+            placeholder="请输入容重"
+            maxlength="120"
+            size="small"
+          />
+        </ws-form-item>
+        <!--霉变粒(%)<=-->
+        <ws-form-item label="霉变粒(%)<=" span="1" prop="mildewGrain">
+          <ws-input
+            v-model="deptBudgetList.warehouseInOutDetail.mildewGrain"
+            placeholder="请输入霉变粒占比"
+            maxlength="120"
+            size="small"
+          />
+        </ws-form-item>
+        <!--热损伤(%)<=-->
+        <ws-form-item label="热损伤(%)<=" span="1" prop="jiaorenli">
+          <ws-input
+            v-model="deptBudgetList.warehouseInOutDetail.jiaorenli"
+            placeholder="请输入热损伤占比"
+            maxlength="120"
+            size="small"
+          />
+        </ws-form-item>
+        <!--不完整粒(%)<=-->
+        <ws-form-item label="不完整粒(%)<=" span="1" prop="imperfectGrain">
+          <ws-input
+            v-model="deptBudgetList.warehouseInOutDetail.imperfectGrain"
+            placeholder="请输入不完整粒占比"
+            maxlength="120"
+            size="small"
+          />
+        </ws-form-item>
+       
+      </ws-info-table>
+      </div>
+      <div style="text-align: right; padding: 10px">
+        <el-button
+          class="bg-bottom-up"
+          type="primary"
+          size="small"
+          @click="temporaryStorage()"
+          >暂存</el-button
+        >
+        <el-button
+          class="bg-bottom-up"
+          type="primary"
+          size="small"
+          @click="submit()"
+          >提交</el-button
+        >
+      </div>
+    </ws-form>
+  </div>
+</template>
+<script>
+import { pullDown, addstorageputList } from '@/model/warehouse/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+// import { dayjs, fmoney, EventBus } from 'base-core-lib'
+import { dayjs, EventBus } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    Pagination,
+  },
+  watch: {
+    // vesselId(val) {
+    //   this.getList()
+    // },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      deptBudgetTotal: 0,
+      currentPage: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchKeyWord: '',
+      contractType: 2,
+      startDate: null,
+      endDate: null,
+      goodnameList: {},
+      // 提交类型
+      submitType: true,
+      storageType: [],
+      appendixIdsAdd: '',
+      uploadSuccess: {},
+      onChange: {},
+      deptBudgetList1:[],
+      gradeList: [],
+      rules: {
+        netWeight: [
+          {
+            required: true,
+            type: 'number',
+            message: '请输入活动名称',
+            trigger: 'blur',
+          },
+        ],
+      },
+      size: 10,
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      packtypeList: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM'),
+      },
+      contractList: [],
+      deptBudgetList: {
+        warehouseInOutDetail: {},
+      },
+      historyList: [],
+
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  mounted() {
+    this.deptBudgetList.baseId = this.$route.query.baseId
+    this.deptBudgetList.positionId = this.$route.query.positionId
+    this.deptBudgetList1.warehouseName = this.$route.query.warehouseName
+    this.deptBudgetList1.binNumber = this.$route.query.binNumber
+    this.getList()
+  },
+  methods: {
+    //返回按钮
+    returnWarehouse() {
+      this.$router.push({ path: 'warehouseManagementNoComplete' })
+    },
+    //暂存按钮
+    temporaryStorage() {
+      this.$confirm(`暂存后可在待完成页面查看,确定暂存`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+      })
+        .then(() => {
+          this.$refs.deptBudgetList.validate((valid) => {
+            if (valid) {
+              this.deptBudgetList.compId = sessionStorage.getItem(
+                'ws-pf_compId'
+              )
+              this.deptBudgetList.inOutFlag = 1
+              this.deptBudgetList.statusFlag = 1
+              addstorageputList(this.deptBudgetList)
+                .toPromise()
+                .then((response) => {
+                  this.$message.success('暂存成功')
+                  this.$router.push({ path: 'warehouseManagementList' })
+                })
+            } else {
+              EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              return false
+            }
+          })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    //提交按钮
+    submit() {
+     if (this.deptBudgetList.warehouseInOutDetail.qualityInspector.length<2 || deptBudgetList.warehouseInOutDetail.qualityInspector > 10
+      ) {
+        this.$message({
+          message: '质检员姓名长度错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.deptBudgetList.warehouseInOutDetail.qualityInspector.length<2 || deptBudgetList.warehouseInOutDetail.qualityInspector > 10
+      ) {
+        this.$message({
+          message: '质检员姓名长度错误!',
+          type: 'warning',
+        })
+        return
+      }
+
+
+      this.$refs.deptBudgetList.validate((valid) => {
+        if (valid) {
+          this.deptBudgetList.compId = sessionStorage.getItem('ws-pf_compId')
+          this.deptBudgetList.inOutFlag = 1
+          this.deptBudgetList.statusFlag = 3
+          addstorageputList(this.deptBudgetList)
+            .toPromise()
+            .then((response) => {
+              this.$message.success('添加成功')
+              this.$router.push({ path: 'warehouseManagementList' })
+            })
+        } else {
+          EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+          return false
+        }
+      })
+    },
+    //暂存按钮
+    returnWarehouse() {
+      this.$refs.deptBudgetList.validate((valid) => {
+        if (valid) {
+          this.deptBudgetList.compId = sessionStorage.getItem('ws-pf_compId')
+          this.deptBudgetList.statusFlag = 1
+          addstorageputList(this.deptBudgetList)
+            .toPromise()
+            .then((response) => {
+              this.$message.success('添加成功')
+              this.$router.push({ path: 'warehouseManagementList' })
+            })
+        } else {
+          EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+          return false
+        }
+      })
+    },
+    tarechange(e) {
+      if (this.deptBudgetList.grossWeight && this.deptBudgetList.tare) {
+        this.deptBudgetList.netWeight = Number(
+          this.deptBudgetList.grossWeight - this.deptBudgetList.tare
+        )
+      }
+    },
+    grossWeightchange(e) {
+      if (this.deptBudgetList.grossWeight && this.deptBudgetList.tare) {
+        this.deptBudgetList.netWeight = Number(
+          this.deptBudgetList.grossWeight - this.deptBudgetList.tare
+        )
+      }
+    },
+    selectgoodsName(e) {
+      for (var i = 0; i < this.goodnameList.length; i++) {
+        if (this.goodnameList[i].constValue == e) {
+          this.deptBudgetList.goodsNameKey = this.goodnameList[i].constKey
+        }
+      }
+    },
+    selectpackingMethod(e) {
+      for (var i = 0; i < this.packtypeList.length; i++) {
+        if (this.packtypeList[i].constValue == e) {
+          this.deptBudgetList.packingMethodKey = this.packtypeList[i].constKey
+        }
+      }
+    },
+    selectstorageType(e) {
+      for (var i = 0; i < this.storageType.length; i++) {
+        if (this.storageType[i].constValue == e) {
+          this.deptBudgetList.inOutTypeKey = this.storageType[i].constKey
+        }
+      }
+    },
+    handleClose() {
+      this.accessoryTFs = false
+    },
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`)
+      this.pageSize = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val
+      console.log(`当前页: ${val}`)
+      this.getList()
+    },
+    getList() {
+      // 货名
+      pullDown({ constId: 'CON2' })
+        .toPromise()
+        .then((response) => {
+          this.goodnameList = response
+        })
+      // 品级
+      pullDown({ constId: 'CON3' })
+        .toPromise()
+        .then((response) => {
+          this.gradeList = response
+        })
+      // 类型
+      pullDown({ constId: 'CON5' })
+        .toPromise()
+        .then((response) => {
+          this.storageType = response
+        })
+    },
+    selecttaskType(e) {
+      for (var i = 0; i < this.taskTypeList.length; i++) {
+        if (this.taskTypeList[i].value == e) {
+          this.searchType = this.taskTypeList[i].type
+        }
+      }
+    },
+    fujian(row) {
+      if (
+        row.receiveAttachmentPath === null ||
+        row.receiveAttachmentPath === ''
+      ) {
+        EventBus.$emit(
+          'warning',
+          this.$t('system.noticeCircular.NoInformation')
+        )
+      } else {
+        this.accessoryTFs = true
+      }
+      this.appendixIdss = row.receiveAttachmentPath
+    },
+    handleExamine(row) {
+      this.$router.push({
+        name: 'salesContractExamine',
+        query: { id: row.id },
+      })
+    },
+
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleCloe() {
+      this.dialogViewSpareMoney = false
+    },
+    history(row) {
+      console.log(row)
+      billoperatehis({ id: row.id })
+        .toPromise()
+        .then((response) => {
+          this.historyList = response
+        })
+    },
+
+    async exportlist() {
+      const { data } = await export1(
+        {
+          compId: sessionStorage.getItem('ws-pf_compId'),
+          contractType: this.contractType,
+          currentPage: this.currentPage,
+          pageSize: this.pageSize,
+          searchType: this.searchType,
+          searchKeyWord: this.searchKeyWord,
+          startDate: this.startDate,
+          endDate: this.endDate,
+        },
+        {},
+        { responseType: 'blob' }
+      ).toPromise()
+      downloadFile({
+        res: data,
+        fileName: `${
+          this.date.year + (this.date.month ? `-${this.date.month}` : '')
+        }_采购合同`,
+        type: 'xls',
+      })
+    },
+    // deletecontract(){},
+    //删除
+    approve() {},
+    listQuery() {},
+    total() {},
+    clearfiltQuery() {},
+    selectCrtDuty() {},
+  },
+}
+</script>
+<style lang="scss" scoped>
+/deep/.basicInformation {
+  .ws-info-table {
+    border: none;
+  }
+  .el-form-item {
+    width: 33.3333%;
+    border: none;
+    .el-form-item__label {
+      background: transparent;
+      border: none;
+    }
+    .el-form-item__content {
+      border: none;
+    }
+  }
+}
+.title {
+  position: relative;
+  padding-left: 10px;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-form {
+  padding: 0 10%;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+.bg-right {
+  text-align: right;
+  padding: 16px 20px;
+}
+.center {
+  position: relative;
+  top: 50px;
+  width: 40%;
+  height: 2000px;
+  margin: 0 auto;
+}
+/deep/.el-form-item__label {
+  width: 160px;
+}
+
+//选填
+/deep/.el-form-item {
+  width: 50%;
+}
+.container {
+  overflow: scroll;
+  height: 120vh;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  text-align: center;
+}
+.deliverydate {
+  display: inline-block;
+  width: 10%;
+}
+.center {
+  margin-top: -60px;
+    width: 80%;
+}
+//仓位
+.position{
+ width: 52px;
+height: 20px;
+background: #AFB5CB;
+border-radius: 2px;
+font-size: 12px;
+font-family: PingFangSC-Medium, PingFang SC;
+color: #FFFFFF;
+line-height: 20px;
+}
+//表格文字
+/deep/.ws-info-table .el-form-item .el-form-item__label{
+  text-align: left;
+font-size: 14px;
+font-family: PingFangSC-Regular, PingFang SC;
+font-weight: 400;
+color: #8890B1;
+line-height: 16px;
+}
+//质检员
+.inspector .el-form-item__content{
+  text-align: left;
+  margin-left: 0px;
+}
+.small-title {
+  position: relative;
+  padding: 10px;
+}
+.small-title::before {
+  position: absolute;
+  content: '';
+  display: block;
+  background: #5473e8;
+  width: 4px;
+  height: 14px;
+  left: 0px;
+  top: 13px;
+}
+//下面列表
+.neifor{
+  width: 80%;
+  background-color: #F6F7FC;
+}
+/deep/.neifor .ws-info-table .el-form-item .el-form-item__label{
+  width: 35%;
+  text-align: center;
+}
+/deep/.neifor .ws-info-table .el-form-item .el-form-item__content{
+  width: 60%;
+  background-color: #F6F7FC;
+}
+/deep/.neifor .el-input--small .el-input__inner{
+  width: 120%;
+}
+.el-input__inner{
+  width: 150px;
+}
+</style>

+ 476 - 281
src/views/warehouse/warehouseManagementPerfectput.vue

@@ -3,254 +3,260 @@
   <div class="container">
     <el-row>
       <el-col :span="20">
-        <h2 class="bg-left title">完善入库信息</h2>
+        <h2 class="bg-left title">完善入库登记</h2>
       </el-col>
       <el-col :span="4" class="bg-right">
         <el-button
           class="bg-bottom"
           type="primary"
           size="small"
-          @click="returnNoComplete()"
+          @click="returnWarehouse()"
           >返回</el-button
         >
       </el-col>
     </el-row>
-    <div class="center">
-      <h2>鲅鱼圈一号库 102仓位</h2>
-      <ws-form ref="deptBudgetList" :model="deptBudgetList">
-        <!-- 货名 -->
-        <ws-form-item label="货名" span="1" class="readonly">
-          <ws-select
-            placeholder=""
-            class="typeselect"
-            @change="selectpackingMethod"
+
+    <ws-form ref="deptBudgetList" :model="deptBudgetList" :rules="rules">
+      <div class="basicInformation">
+        <h2>
+          {{ deptBudgetList1.warehouseName }}库
+           <span class="position">
+          {{deptBudgetList1.binNumber }}仓位
+          </span>
+        </h2>
+       <div class="small-title">基本信息</div>
+        <ws-info-table>
+          <!-- 货名 -->
+          <ws-form-item label="货名" span="1">
+            <ws-select
+              v-model="deptBudgetList.goodsName"
+              placeholder=""
+              class="typeselect"
+              @change="selectgoodsName"
+            >
+              <ws-option
+                v-for="item in goodnameList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </ws-select>
+          </ws-form-item>
+          <!--毛重(吨)-->
+          <ws-form-item label="毛重(吨)" span="1" prop="grossWeight">
+            <ws-input
+              @input="grossWeightchange"
+              v-model="deptBudgetList.grossWeight"
+              placeholder="请输入毛重"
+              maxlength="20"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--皮重(吨)-->
+          <ws-form-item
+            label="皮重(吨)"
+            span="1"
+            prop="tare"
+            class="readonly"
           >
-            <ws-option
-              v-for="item in goodnameList"
-              :key="item.constKey"
-              :label="item.constValue"
-              :value="item.constValue"
+            <ws-input
+              @input="tarechange"
+              v-model="deptBudgetList.tare"
+              placeholder="请输入皮重"
+              maxlength="100"
+              size="small"
             />
-          </ws-select>
-        </ws-form-item>
-        <!--毛重(吨)-->
-        <ws-form-item label="毛重(吨)" span="1" prop="shippingType">
+          </ws-form-item>
+
+          <!--净重(吨)-->
+          <ws-form-item label="净重(吨)" span="1" prop="netWeight">
+            <ws-input
+              v-model.number="deptBudgetList.netWeight"
+              placeholder="不可编辑,自动计算"
+              type="number"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+          <!-- 品级 -->
+          <ws-form-item label="品级" span="1" class="readonly">
+            <ws-select
+              v-model="deptBudgetList.grade"
+              placeholder=""
+              class="typeselect"
+              @change="selectpackingMethod"
+            >
+              <ws-option
+                v-for="item in gradeList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </ws-select>
+          </ws-form-item>
+
+          <!--经办人-->
+          <ws-form-item label="经办人" span="1" prop="agent">
+            <ws-input
+              v-model="deptBudgetList.agent"
+              placeholder="请输入出库经办人姓名"
+              maxlength="100"
+              size="small"
+            />
+          </ws-form-item>
+          <!--出库日期-->
+          <ws-form-item label="出库日期" span="1" prop="inOutDate" class="deliverydate">
+            <ws-date-picker
+              v-model="deptBudgetList.inOutDate"
+              type="date"
+              placeholder="请选择出库日期"
+              value-format="yyyy-MM-dd"
+            />
+          </ws-form-item>
+          <!-- 入库类型 -->
+          <ws-form-item label="出库类型" span="1">
+            <ws-select
+              v-model="deptBudgetList.inOutType"
+              placeholder=""
+              class="typeselect"
+              @change="selectstorageType"
+            >
+              <ws-option
+                v-for="item in storageType"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </ws-select>
+          </ws-form-item>
+
+          <!--车牌号-->
+          <ws-form-item label="车牌号" span="1" prop="sourceGoods">
+            <ws-input
+              v-model="deptBudgetList.carNo"
+              placeholder="请输入车牌号"
+              maxlength="20"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--合同编号-->
+          <ws-form-item label="合同编号" span="1" prop="contractNo">
+            <ws-input
+              v-model="deptBudgetList.contractNo"
+              placeholder="请输入合同编号"
+              maxlength="100"
+              size="small"
+            />
+          </ws-form-item>
+        </ws-info-table>
+      </div>
+       <div class="small-title">上传仓库照片</div>
+      <ws-upload
+        ref="upload"
+        table-name="maintain_work_order"
+        oss-key="mainPlan"
+        :comp-id="compId"
+        :appendix-ids="appendixIdsAdd"
+        :vesselId="deptBudgetList.addressUrl"
+        :size-limit="size"
+        @uploadSuccess="uploadSuccess"
+        @onChange="onChange"
+        accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar"
+      />
+     <div class="small-title">化验数据(选填)</div>
+      <div class="inspector">
+       <!--自检员-->
+        <ws-form-item label="质检员" span="1" prop="qualityInspector" >
           <ws-input
-            v-model="deptBudgetList.shippingType"
-            placeholder="请输入毛重"
-            maxlength="20"
+            v-model="deptBudgetList.warehouseInOutDetail.qualityInspector"
+            placeholder="请输入质检员姓名"
+            maxlength="120"
             size="small"
           />
         </ws-form-item>
-
-        <!--皮重(吨)-->
-        <ws-form-item label="皮重(吨)" span="1" prop="buyer" class="readonly">
+        </div>
+        <div class="neifor">
+      <ws-info-table>
+        <!--水分(%)<=-->
+        <ws-form-item label="水分(%)<=" span="1" prop="waterContent">
           <ws-input
-            v-model="deptBudgetList.buyer"
-            placeholder="请输入皮重"
-            maxlength="100"
+            v-model="deptBudgetList.warehouseInOutDetail.waterContent"
+            placeholder="请输入水分占比"
+            maxlength="120"
             size="small"
           />
         </ws-form-item>
-
-        <!--净重(吨)-->
-        <ws-form-item label="净重(吨)" span="1" prop="settlementMethod">
+        <!--杂质(%)<=-->
+        <ws-form-item label="杂质(%)<=" span="1" prop="impurity">
           <ws-input
-            v-model="deptBudgetList.settlementMethod"
-            placeholder="不可编辑,自动计算"
+            v-model="deptBudgetList.warehouseInOutDetail.impurity"
+            placeholder="请输入杂质占比"
             maxlength="120"
             size="small"
           />
         </ws-form-item>
-        <!-- 品级 -->
-        <ws-form-item label="品级" span="1" class="readonly">
-          <ws-select
-            placeholder=""
-            class="typeselect"
-            @change="selectpackingMethod"
-          >
-            <ws-option
-              v-for="item in goodnameList"
-              :key="item.constKey"
-              :label="item.constValue"
-              :value="item.constValue"
-            />
-          </ws-select>
-        </ws-form-item>
-
-        <!--经办人-->
-        <ws-form-item label="经办人" span="1" prop="seller" class="readonly">
+        <!--容重(克/升)>=-->
+        <ws-form-item label="容重(克/升)>=" span="1" prop="bulkDensity">
           <ws-input
-            v-model="deptBudgetList.seller"
-            placeholder="请输入出库经办人姓名"
-            maxlength="100"
+            v-model="deptBudgetList.warehouseInOutDetail.bulkDensity"
+            placeholder="请输入容重"
+            maxlength="120"
             size="small"
           />
         </ws-form-item>
-        <!--出库日期-->
-        <ws-form-item
-          label="出库日期"
-          span="1"
-          prop="signingDate"
-          class="deliverydate"
-        >
-          <ws-date-picker
-            v-model="deptBudgetList.signingDate"
-            type="date"
-            placeholder="请选择出库日期"
-            value-format="yyyy-MM-dd"
+        <!--霉变粒(%)<=-->
+        <ws-form-item label="霉变粒(%)<=" span="1" prop="mildewGrain">
+          <ws-input
+            v-model="deptBudgetList.warehouseInOutDetail.mildewGrain"
+            placeholder="请输入霉变粒占比"
+            maxlength="120"
+            size="small"
           />
         </ws-form-item>
-        <!-- 入库类型 -->
-        <ws-form-item label="入库类型" span="1" class="readonly">
-          <ws-select
-            placeholder=""
-            class="typeselect"
-            @change="selectpackingMethod"
-          >
-            <ws-option
-              v-for="item in goodnameList"
-              :key="item.constKey"
-              :label="item.constValue"
-              :value="item.constValue"
-            />
-          </ws-select>
-        </ws-form-item>
-
-        <!--车牌号-->
-        <ws-form-item label="车牌号" span="1" prop="sourceGoods">
+        <!--热损伤(%)<=-->
+        <ws-form-item label="热损伤(%)<=" span="1" prop="jiaorenli">
           <ws-input
-            v-model="deptBudgetList.sourceGoods"
-            placeholder="请输入车牌号"
-            maxlength="20"
+            v-model="deptBudgetList.warehouseInOutDetail.jiaorenli"
+            placeholder="请输入热损伤占比"
+            maxlength="120"
             size="small"
           />
         </ws-form-item>
-
-        <!--合同编号-->
-        <ws-form-item label="合同编号" span="1" prop="contractNo">
+        <!--不完整粒(%)<=-->
+        <ws-form-item label="不完整粒(%)<=" span="1" prop="imperfectGrain">
           <ws-input
-            v-model.number="deptBudgetList.buyerPhone"
-            placeholder="请输入合同编号"
-            maxlength="100"
+            v-model="deptBudgetList.warehouseInOutDetail.imperfectGrain"
+            placeholder="请输入不完整粒占比"
+            maxlength="120"
             size="small"
           />
         </ws-form-item>
-
-        <ws-upload
-          ref="upload"
-          table-name="maintain_work_order"
-          oss-key="mainPlan"
-          :comp-id="compId"
-          :appendix-ids="appendixIdsAdd"
-          :vesselId="deptBudgetList.addressUrl"
-          :size-limit="size"
-          @uploadSuccess="uploadSuccess"
-          @onChange="onChange"
-          accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar"
-        />
-
-        <div class="choice">
-          <h2>化验数据(选填)</h2>
-          <ws-info-table>
-            <!--自检员-->
-            <ws-form-item label="自检员" span="1" prop="settlementMethod">
-              <ws-input
-                v-model="deptBudgetList.settlementMethod"
-                placeholder="请输入自检员姓名"
-                maxlength="120"
-                size="small"
-              />
-            </ws-form-item>
-
-            <!--水分(%)<=-->
-            <ws-form-item label="水分(%)<=" span="1" prop="settlementMethod">
-              <ws-input
-                v-model="deptBudgetList.settlementMethod"
-                placeholder="请输入水分占比"
-                maxlength="120"
-                size="small"
-              />
-            </ws-form-item>
-            <!--杂质(%)<=-->
-            <ws-form-item label="杂质(%)<=" span="1" prop="settlementMethod">
-              <ws-input
-                v-model="deptBudgetList.settlementMethod"
-                placeholder="请输入杂质占比"
-                maxlength="120"
-                size="small"
-              />
-            </ws-form-item>
-            <!--容重(克/升)>=-->
-            <ws-form-item
-              label="容重(克/升)>="
-              span="1"
-              prop="settlementMethod"
-            >
-              <ws-input
-                v-model="deptBudgetList.settlementMethod"
-                placeholder="请输入容重"
-                maxlength="120"
-                size="small"
-              />
-            </ws-form-item>
-            <!--霉变粒(%)<=-->
-            <ws-form-item
-              label="霉变粒(%)<="
-              span="1"
-              prop="settlementMethod"
-            >
-              <ws-input
-                v-model="deptBudgetList.settlementMethod"
-                placeholder="请输入霉变粒占比"
-                maxlength="120"
-                size="small"
-              />
-            </ws-form-item>
-            <!--热损伤(%)<=-->
-            <ws-form-item
-              label="热损伤(%)<="
-              span="1"
-              prop="settlementMethod"
-            >
-              <ws-input
-                v-model="deptBudgetList.settlementMethod"
-                placeholder="请输入热损伤占比"
-                maxlength="120"
-                size="small"
-              />
-            </ws-form-item>
-            <!--不完整粒(%)<=-->
-            <ws-form-item
-              label="不完整粒(%)<="
-              span="1"
-              prop="settlementMethod"
-            >
-              <ws-input
-                v-model="deptBudgetList.settlementMethod"
-                placeholder="请输入不完整粒占比"
-                maxlength="120"
-                size="small"
-              />
-            </ws-form-item>
-          </ws-info-table>
-        </div>
-
-        <div style="text-align: right; padding: 10px">
-          <el-button
-            class="bg-bottom-up"
-            type="primary"
-            size="small"
-            @click="submit()"
-            >提交</el-button
-          >
-        </div>
-      </ws-form>
-    </div>
+       
+      </ws-info-table>
+      </div>
+      <div style="text-align: right; padding: 10px">
+        <el-button
+          class="bg-bottom-up"
+          type="primary"
+          size="small"
+          @click="temporaryStorage()"
+          >暂存</el-button
+        >
+        <el-button
+          class="bg-bottom-up"
+          type="primary"
+          size="small"
+          @click="submit()"
+          >提交</el-button
+        >
+      </div>
+    </ws-form>
   </div>
 </template>
 <script>
-import { getList, export1, billoperatehis } from '@/model/contarct/index'
+import { pullDown, addstorageputList } from '@/model/warehouse/index'
 import { downloadFile } from '@/utils/batchDown'
 import Pagination from '@/components/Pagination'
 import WsUpload from '@/components/WsUpload'
@@ -263,9 +269,9 @@ export default {
     Pagination,
   },
   watch: {
-    vesselId(val) {
-      this.getList()
-    },
+    // vesselId(val) {
+    //   this.getList()
+    // },
     isShow(val) {
       this.showType = val
     },
@@ -294,12 +300,22 @@ export default {
       goodnameList: {},
       // 提交类型
       submitType: true,
-      selectpackingMethod: {},
-
-      appendixIdsAdd: {},
+      storageType: [],
+      appendixIdsAdd: '',
       uploadSuccess: {},
       onChange: {},
-
+      deptBudgetList1:[],
+      gradeList: [],
+      rules: {
+        netWeight: [
+          {
+            required: true,
+            type: 'number',
+            message: '请输入活动名称',
+            trigger: 'blur',
+          },
+        ],
+      },
       size: 10,
       compId: sessionStorage.getItem('ws-pf_compId'),
       deptCircularPage: {},
@@ -309,7 +325,9 @@ export default {
         month: dayjs().format('MM'),
       },
       contractList: [],
-      deptBudgetList: {},
+      deptBudgetList: {
+        warehouseInOutDetail: {},
+      },
       historyList: [],
 
       pickerBeginDateBefore: {
@@ -320,43 +338,139 @@ export default {
       accessoryTFs: false,
     }
   },
-  activated() {
-    //cg.viewBudget
-    //cg.viewSpareMoney
-    // this.getVesselData();
+  mounted() {
+    console.log(this.$route.query)
+    this.deptBudgetList.baseId = this.$route.query.baseId
+    this.deptBudgetList.positionId = this.$route.query.positionId
+    this.deptBudgetList1.warehouseName = this.$route.query.warehouseName
+    this.deptBudgetList1.binNumber = this.$route.query.binNumber
     this.getList()
-    this.showType = this.isShow
   },
   methods: {
     //返回按钮
-    returnNoComplete() {
+    returnWarehouse() {
       this.$router.push({ path: 'warehouseManagementNoComplete' })
     },
+    //暂存按钮
+    temporaryStorage() {
+      this.$confirm(`暂存后可在待完成页面查看,确定暂存`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+      })
+        .then(() => {
+          this.$refs.deptBudgetList.validate((valid) => {
+            if (valid) {
+              this.deptBudgetList.compId = sessionStorage.getItem(
+                'ws-pf_compId'
+              )
+              this.deptBudgetList.inOutFlag = 1
+              this.deptBudgetList.statusFlag = 1
+              addstorageputList(this.deptBudgetList)
+                .toPromise()
+                .then((response) => {
+                  this.$message.success('暂存成功')
+                  this.$router.push({ path: 'warehouseManagementList' })
+                })
+            } else {
+              EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              return false
+            }
+          })
+        })
+        .catch(() => {
+          return false
+        })
+    },
     //提交按钮
     submit() {
-      this.$router.push({ path: 'warehouseManagementList' })
+     if (this.deptBudgetList.warehouseInOutDetail.qualityInspector.length<2 || deptBudgetList.warehouseInOutDetail.qualityInspector > 10
+      ) {
+        this.$message({
+          message: '质检员姓名长度错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.deptBudgetList.warehouseInOutDetail.qualityInspector.length<2 || deptBudgetList.warehouseInOutDetail.qualityInspector > 10
+      ) {
+        this.$message({
+          message: '质检员姓名长度错误!',
+          type: 'warning',
+        })
+        return
+      }
+
+
+      this.$refs.deptBudgetList.validate((valid) => {
+        if (valid) {
+          this.deptBudgetList.compId = sessionStorage.getItem('ws-pf_compId')
+          this.deptBudgetList.inOutFlag = 1
+          this.deptBudgetList.statusFlag = 3
+          addstorageputList(this.deptBudgetList)
+            .toPromise()
+            .then((response) => {
+              this.$message.success('添加成功')
+              this.$router.push({ path: 'warehouseManagementList' })
+            })
+        } else {
+          EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+          return false
+        }
+      })
+    },
+    //暂存按钮
+    returnWarehouse() {
+      this.$refs.deptBudgetList.validate((valid) => {
+        if (valid) {
+          this.deptBudgetList.compId = sessionStorage.getItem('ws-pf_compId')
+          this.deptBudgetList.statusFlag = 1
+          addstorageputList(this.deptBudgetList)
+            .toPromise()
+            .then((response) => {
+              this.$message.success('添加成功')
+              this.$router.push({ path: 'warehouseManagementList' })
+            })
+        } else {
+          EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+          return false
+        }
+      })
     },
-    dateFormat(fmt, date) {
-      let ret
-      const opt = {
-        'Y+': date.getFullYear().toString(), // 年
-        'm+': (date.getMonth() + 1).toString(), // 月
-        'd+': date.getDate().toString(), // 日
-        'H+': date.getHours().toString(), // 时
-        // "M+": date.getMinutes().toString(),         // 分
-        // "S+": date.getSeconds().toString()          // 秒
-        // 有其他格式化字符需求可以继续添加,必须转化成字符串
+    tarechange(e) {
+      if (this.deptBudgetList.grossWeight && this.deptBudgetList.tare) {
+        this.deptBudgetList.netWeight = Number(
+          this.deptBudgetList.grossWeight - this.deptBudgetList.tare
+        )
+      }
+    },
+    grossWeightchange(e) {
+      if (this.deptBudgetList.grossWeight && this.deptBudgetList.tare) {
+        this.deptBudgetList.netWeight = Number(
+          this.deptBudgetList.grossWeight - this.deptBudgetList.tare
+        )
+      }
+    },
+    selectgoodsName(e) {
+      for (var i = 0; i < this.goodnameList.length; i++) {
+        if (this.goodnameList[i].constValue == e) {
+          this.deptBudgetList.goodsNameKey = this.goodnameList[i].constKey
+        }
+      }
+    },
+    selectpackingMethod(e) {
+      for (var i = 0; i < this.packtypeList.length; i++) {
+        if (this.packtypeList[i].constValue == e) {
+          this.deptBudgetList.packingMethodKey = this.packtypeList[i].constKey
+        }
       }
-      for (let k in opt) {
-        ret = new RegExp('(' + k + ')').exec(fmt)
-        if (ret) {
-          fmt = fmt.replace(
-            ret[1],
-            ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
-          )
+    },
+    selectstorageType(e) {
+      for (var i = 0; i < this.storageType.length; i++) {
+        if (this.storageType[i].constValue == e) {
+          this.deptBudgetList.inOutTypeKey = this.storageType[i].constKey
         }
       }
-      return fmt
     },
     handleClose() {
       this.accessoryTFs = false
@@ -372,32 +486,23 @@ export default {
       this.getList()
     },
     getList() {
-      getList({
-        compId: sessionStorage.getItem('ws-pf_compId'),
-        contractType: this.contractType,
-        currentPage: this.currentPage,
-        pageSize: this.pageSize,
-        searchType: this.searchType,
-        searchKeyWord: this.searchKeyWord,
-        startDate: this.startDate,
-        endDate: this.endDate,
-        contrPage: this.contrPage,
-      })
+      // 货名
+      pullDown({ constId: 'CON2' })
         .toPromise()
         .then((response) => {
-          for (var i = 0; i < response.records.length; i++) {
-            if (response.records[i].addressUrl != null) {
-              response.records[i].addressUrlArray = response.records[
-                i
-              ].addressUrl.split(',')
-            } else {
-              response.records[i].addressUrlArray = []
-            }
-          }
-          this.deptCircularPage.currentPage = response.current
-          this.deptCircularPage.pageSize = response.size
-          this.deptBudgetTotal = response.total
-          this.contractList = response
+          this.goodnameList = response
+        })
+      // 品级
+      pullDown({ constId: 'CON3' })
+        .toPromise()
+        .then((response) => {
+          this.gradeList = response
+        })
+      // 类型
+      pullDown({ constId: 'CON5' })
+        .toPromise()
+        .then((response) => {
+          this.storageType = response
         })
     },
     selecttaskType(e) {
@@ -440,12 +545,7 @@ export default {
           this.historyList = response
         })
     },
-    find() {
-      this.startDate = this.dateFormat('YYYY-mm-dd', this.value2[0])
-      this.endDate = this.dateFormat('YYYY-mm-dd', this.value2[1])
-      this.currentPage = 1
-      this.getList()
-    },
+
     async exportlist() {
       const { data } = await export1(
         {
@@ -480,6 +580,49 @@ export default {
 }
 </script>
 <style lang="scss" scoped>
+/deep/.basicInformation {
+  .ws-info-table {
+    border: none;
+  }
+  .el-form-item {
+    width: 33.3333%;
+    border: none;
+    .el-form-item__label {
+      background: transparent;
+      border: none;
+    }
+    .el-form-item__content {
+      border: none;
+    }
+  }
+}
+.title {
+  position: relative;
+  padding-left: 10px;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-form {
+  padding: 0 10%;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+.bg-right {
+  text-align: right;
+  padding: 16px 20px;
+}
 .center {
   position: relative;
   top: 50px;
@@ -490,15 +633,7 @@ export default {
 /deep/.el-form-item__label {
   width: 160px;
 }
-/deep/.el-input--small {
-  width: 70%;
-}
-.container .bg-bottom {
-  position: absolute;
-  float: right;
-  top: 15px;
-  right: 20px;
-}
+
 //选填
 /deep/.el-form-item {
   width: 50%;
@@ -507,13 +642,73 @@ export default {
   overflow: scroll;
   height: 120vh;
 }
-/deep/.ws-info-table[data-v-850a44a6] .el-form-item .el-form-item__label {
+/deep/.ws-info-table .el-form-item .el-form-item__label {
   text-align: center;
 }
 .deliverydate {
-  width: 35%;
+  display: inline-block;
+  width: 10%;
 }
-.center[data-v-32a9842f] {
+.center {
   margin-top: -60px;
+    width: 80%;
+}
+//仓位
+.position{
+ width: 52px;
+height: 20px;
+background: #AFB5CB;
+border-radius: 2px;
+font-size: 12px;
+font-family: PingFangSC-Medium, PingFang SC;
+color: #FFFFFF;
+line-height: 20px;
+}
+//表格文字
+/deep/.ws-info-table .el-form-item .el-form-item__label{
+  text-align: left;
+font-size: 14px;
+font-family: PingFangSC-Regular, PingFang SC;
+font-weight: 400;
+color: #8890B1;
+line-height: 16px;
+}
+//质检员
+.inspector .el-form-item__content{
+  text-align: left;
+  margin-left: 0px;
+}
+.small-title {
+  position: relative;
+  padding: 10px;
+}
+.small-title::before {
+  position: absolute;
+  content: '';
+  display: block;
+  background: #5473e8;
+  width: 4px;
+  height: 14px;
+  left: 0px;
+  top: 13px;
+}
+//下面列表
+.neifor{
+  width: 80%;
+  background-color: #F6F7FC;
+}
+/deep/.neifor .ws-info-table .el-form-item .el-form-item__label{
+  width: 35%;
+  text-align: center;
+}
+/deep/.neifor .ws-info-table .el-form-item .el-form-item__content{
+  width: 60%;
+  background-color: #F6F7FC;
+}
+/deep/.neifor .el-input--small .el-input__inner{
+  width: 120%;
+}
+.el-input__inner{
+  width: 150px;
 }
 </style>

+ 208 - 31
src/views/warehouse/warehouseManagementPut.vue

@@ -21,7 +21,7 @@
         <h2>
           {{ deptBudgetList.warehouseName }}库
           {{ deptBudgetList.binNumber }}仓位
-        </h2>
+        </h2> 
         <ws-info-table>
           <!-- 货名 -->
           <ws-form-item label="货名" span="1">
@@ -69,9 +69,9 @@
           <!--净重(吨)-->
           <ws-form-item label="净重(吨)" span="1" prop="netWeight">
             <ws-input
-              v-model.number="deptBudgetList.netWeight"
+              readonly="readonly"
+              v-model="deptBudgetList.netWeight"
               placeholder="不可编辑,自动计算"
-              type="number"
               maxlength="120"
               size="small"
             />
@@ -134,7 +134,7 @@
           </ws-form-item>
 
           <!--车牌号-->
-          <ws-form-item label="车牌号" span="1" prop="sourceGoods">
+          <ws-form-item label="车牌号" span="1" prop="carNo">
             <ws-input
               v-model="deptBudgetList.carNo"
               placeholder="请输入车牌号"
@@ -234,6 +234,13 @@
         </ws-form-item>
       </ws-info-table>
       <div style="text-align: right; padding: 10px">
+        <el-button
+          class="bg-bottom-up"
+          type="primary"
+          size="small"
+          @click="temporaryStorage()"
+          >暂存</el-button
+        >
         <el-button
           class="bg-bottom-up"
           type="primary"
@@ -291,6 +298,7 @@ export default {
       // 提交类型
       submitType: true,
       storageType: [],
+      readonly: true,
       appendixIdsAdd: '',
       uploadSuccess: {},
       onChange: {},
@@ -334,16 +342,23 @@ export default {
     this.deptBudgetList.warehouseName = this.$route.query.warehouseName
     this.deptBudgetList.binNumber = this.$route.query.binNumber
     this.getList()
+    this.deptBudgetList.goodsName = '玉米'
+    this.deptBudgetList.goodsNameKey = '1'
+    this.deptBudgetList.grade = '一等品'
+    this.deptBudgetList.gradeKey = '1'
+    this.deptBudgetList.inOutType = '采购入库'
+    this.deptBudgetList.inOutTypeKey = '1'
+  },
+  activated() {
+    //   //cg.viewBudget
+    //   //cg.viewSpareMoney
+    //   // this.getVesselData();
+    //   console.log(2222)
+    //   this.getList()
+    //   console.log(1111)
+    //   this.showType = this.isShow
+    // this.getList(this.$route.query.baseId,)
   },
-  // activated() {
-  //   //cg.viewBudget
-  //   //cg.viewSpareMoney
-  //   // this.getVesselData();
-  //   console.log(2222)
-  //   this.getList()
-  //   console.log(1111)
-  //   this.showType = this.isShow
-  // },
   methods: {
     //返回按钮
     returnWarehouse() {
@@ -351,21 +366,188 @@ export default {
     },
     //提交按钮
     submit() {
-      this.$refs.deptBudgetList.validate((valid) => {
-        if (valid) {
-          this.deptBudgetList.compId = sessionStorage.getItem('ws-pf_compId')
-          this.deptBudgetList.inOutFlag = 2
-          addstorageputList(this.deptBudgetList)
-            .toPromise()
-            .then((response) => {
-              this.$message.success('添加成功')
-              this.$router.push({ path: 'warehouseManagementList' })
-            })
-        } else {
-          EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+      if (!this.deptBudgetList.goodsName) {
+        this.$message({
+          message: '货名不能为空',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.grossWeight < 0 ||
+        this.deptBudgetList.grossWeight > 10000 ||
+        (String(this.deptBudgetList.grossWeight).indexOf('.') != -1 &&
+          String(this.deptBudgetList.grossWeight).length -
+            (String(this.deptBudgetList.grossWeight).indexOf('.') + 1) >
+            3)
+      ) {
+        this.$message({
+          message: '毛重输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.tare < 0 ||
+        this.deptBudgetList.tare > 10000 ||
+        (String(this.deptBudgetList.tare).indexOf('.') != -1 &&
+          String(this.deptBudgetList.tare).length -
+            (String(this.deptBudgetList.tare).indexOf('.') + 1) >
+            3)
+      ) {
+        this.$message({
+          message: '皮重输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.car.length < 2 ||
+        this.deptBudgetList.agent.length > 10
+      ) {
+        this.$message({
+          message: '经办人输入有误',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.deptBudgetList.carNo.length > 7) {
+        this.$message({
+          message: '车牌号输入错误,请输入7个字符之内',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractNo.length < 6 ||
+        this.deptBudgetList.contractNo.length > 20
+      ) {
+        this.$message({
+          message: '合同编号长度不符合要求,请输入6-20个字符之内',
+          type: 'warning',
+        })
+        return
+      }
+      this.$confirm(`确定提交入库信息`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+      })
+        .then(() => {
+          this.$refs.deptBudgetList.validate((valid) => {
+            if (valid) {
+              this.deptBudgetList.compId = sessionStorage.getItem(
+                'ws-pf_compId'
+              )
+              this.deptBudgetList.inOutFlag = 2
+              this.deptBudgetList.statusFlag = 3
+              addstorageputList(this.deptBudgetList)
+                .toPromise()
+                .then((response) => {
+                  this.$message.success('添加成功')
+                  this.$router.push({ path: 'warehouseManagementList' })
+                })
+            } else {
+              EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              return false
+            }
+          })
+        })
+        .catch(() => {
           return false
-        }
+        })
+    },
+    temporaryStorage() {
+      if (!this.deptBudgetList.goodsName) {
+        this.$message({
+          message: '货名不能为空',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.grossWeight < 0 ||
+        this.deptBudgetList.grossWeight > 10000 ||
+        (String(this.deptBudgetList.grossWeight).indexOf('.') != -1 &&
+          String(this.deptBudgetList.grossWeight).length -
+            (String(this.deptBudgetList.grossWeight).indexOf('.') + 1) >
+            3)
+      ) {
+        this.$message({
+          message: '毛重输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.tare < 0 ||
+        this.deptBudgetList.tare > 10000 ||
+        (String(this.deptBudgetList.tare).indexOf('.') != -1 &&
+          String(this.deptBudgetList.tare).length -
+            (String(this.deptBudgetList.tare).indexOf('.') + 1) >
+            3)
+      ) {
+        this.$message({
+          message: '皮重输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.car.length < 2 ||
+        this.deptBudgetList.agent.length > 10
+      ) {
+        this.$message({
+          message: '经办人输入有误',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.deptBudgetList.carNo.length > 7) {
+        this.$message({
+          message: '车牌号输入错误,请输入7个字符之内',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.contractNo.length < 6 ||
+        this.deptBudgetList.contractNo.length > 20
+      ) {
+        this.$message({
+          message: '合同编号长度不符合要求,请输入6-20个字符之内',
+          type: 'warning',
+        })
+        return
+      }
+      this.$confirm(`暂存后可在待完成页面查看,确定暂存`, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
       })
+        .then(() => {
+          this.$refs.deptBudgetList.validate((valid) => {
+            if (valid) {
+              this.deptBudgetList.compId = sessionStorage.getItem(
+                'ws-pf_compId'
+              )
+              this.deptBudgetList.inOutFlag = 2
+              this.deptBudgetList.statusFlag = 1
+              addstorageputList(this.deptBudgetList)
+                .toPromise()
+                .then((response) => {
+                  this.$message.success('暂存成功')
+                  this.$router.push({ path: 'warehouseManagementList' })
+                })
+            } else {
+              EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+              return false
+            }
+          })
+        })
+        .catch(() => {
+          return false
+        })
     },
     tarechange(e) {
       if (this.deptBudgetList.grossWeight && this.deptBudgetList.tare) {
@@ -536,9 +718,6 @@ export default {
 /deep/.el-form-item__label {
   width: 160px;
 }
-/deep/.el-input--small {
-  width: 70%;
-}
 //选填
 /deep/.el-form-item {
   width: 50%;
@@ -549,14 +728,12 @@ export default {
 }
 
 /deep/.ws-info-table .el-form-item .el-form-item__label {
-
   text-align: center;
 }
 .deliverydate {
   width: 35%;
 }
 .center {
-
   margin-top: -60px;
 }
 </style>

+ 580 - 83
src/views/warehouse/warehouseManagementRecord.vue

@@ -1,88 +1,252 @@
 <template>
   <div class="container">
     <el-row>
-      <el-col :span="20">
+      <el-col :span="18">
         <h2 class="bg-left title">流转记录</h2>
       </el-col>
-      <el-col :span="4" class="bg-right">
+      <el-col :span="6" class="bg-right">
         <el-button
-          class="bg-bottom"
+          class="bg-bottom adjustment"
           type="primary"
           size="small"
           @click="iossrecord()"
           >盘损记录</el-button
         >
+        <el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="returnWarehouse()"
+          >返回</el-button
+        >
       </el-col>
     </el-row>
     <div class="center">
-      <h2>鲅鱼圈一号库 102仓位(容量100吨)</h2>
-      <p>我是备注我是备注。。。。。。。。。。。。。</p>
+      <h2 style="padding-left: 20px">
+        <img
+          style="position: relative; top: 2px"
+          width="19"
+          height="19"
+          src="../../../public/img/cangku.png"
+          alt=""
+        />
+        <span style="color: #323233">{{ deptBudgetList.warehouseName }}库</span>
+        <span class="ware">{{ binNumber }}仓位(容量{{ capacity }}吨)</span>
+      </h2>
+      <p
+        style="
+          margin-left: 42px;
+          background: #f6f7fc;
+          color: #afb5cb;
+          width: 245px;
+        "
+      >
+        备注:{{ remark }}
+      </p>
+
       <ws-form ref="deptBudgetList" :model="deptBudgetList">
-        <ws-button
-          type="primary"
-          @click="1"
-          v-hasPermission="
-            `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
-          "
-          >全部记录</ws-button
+        <div
+          class="record"
+          :class="{ active: status == 1 }"
+          @click="record('', 1)"
         >
-        <ws-button
-          type="primary"
-          @click="1"
-          v-hasPermission="
-            `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
-          "
-          >出库记录</ws-button
+          <img
+            v-if="status != 1"
+            width="14"
+            height="14"
+            src="../../../public/img/radio.png"
+            alt=""
+          />
+          <img
+            v-if="status == 1"
+            width="18"
+            height="18"
+            src="../../../public/img/radio-check.png"
+            alt=""
+          />全部记录
+        </div>
+        <div
+          class="record"
+          :class="{ active: status == 2 }"
+          @click="record(1, 2)"
         >
-        <ws-button
-          type="primary"
-          @click="1"
-          v-hasPermission="
-            `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
-          "
-          >入库记录</ws-button
+          <img
+            v-if="status != 2"
+            width="14"
+            height="14"
+            src="../../../public/img/radio.png"
+            alt=""
+          />
+          <img
+            v-if="status == 2"
+            width="18"
+            height="18"
+            src="../../../public/img/radio-check.png"
+            alt=""
+          />出库记录
+        </div>
+        <div
+          class="record"
+          :class="{ active: status == 3 }"
+          @click="record(2, 3)"
         >
-        <el-table>
+          <img
+            v-if="status != 3"
+            width="14"
+            height="14"
+            src="../../../public/img/radio.png"
+            alt=""
+          />
+          <img
+            v-if="status == 3"
+            width="18"
+            height="18"
+            src="../../../public/img/radio-check.png"
+            alt=""
+          />入库记录
+        </div>
+        <el-table :data="warehouseList.records" height="560">
+          <el-table-column type="expand">
+            <template #default="props">
+              <ws-form ref="deptBudgetList" :model="deptBudgetList">
+                <ws-info-table>
+                  <ws-form-item label="水分(%)<=" span="1" prop="waterContent">
+                    {{ props.row.waterContent }}
+                  </ws-form-item>
+                  <ws-form-item label="容重(%)<=" span="1" prop="bulkDensity">
+                    {{ props.row.bulkDensity }}
+                  </ws-form-item>
+                  <ws-form-item label="热损伤(%)<=" span="1" prop="jiaorenli">
+                    {{ props.row.jiaorenli }}
+                  </ws-form-item>
+                  <ws-form-item label="杂质(%)<=" span="1" prop="impurity">
+                    {{ props.row.impurity }}
+                  </ws-form-item>
+                  <ws-form-item label="霉变粒(%)<=" span="1" prop="mildewGrain">
+                    {{ props.row.mildewGrain }}
+                  </ws-form-item>
+                  <ws-form-item
+                    label="不完善粒(%)<="
+                    span="1"
+                    prop="imperfectGrain"
+                  >
+                    {{ props.row.imperfectGrain }}
+                  </ws-form-item>
+                  <ws-form-item label="质检员" span="1" prop="qualityInspector">
+                    {{ props.row.qualityInspector }}
+                  </ws-form-item>
+                </ws-info-table>
+              </ws-form>
+            </template>
+          </el-table-column>
           <el-table-column type="index" label="序号">
             <template scope="scope">
               <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
               <span v-else>{{ scope.$index + 1 }}</span>
             </template>
           </el-table-column>
-          <el-table-column prop="contractNo" label="货名"> </el-table-column>
-          <el-table-column prop="goodsName" label="毛重(吨)"></el-table-column>
-          <el-table-column prop="weight" label="皮重(吨)"> </el-table-column>
-          <el-table-column prop="unitContractPrice" label="净重(吨)"></el-table-column>   
-          <el-table-column prop="packingMethod" label="品级"> </el-table-column>
-          <el-table-column prop="buyer" label="出入库日期"> </el-table-column>
-          <el-table-column prop="buyer" label="类型"> </el-table-column>
-          <el-table-column prop="buyer" label="合同编号"> </el-table-column>
-          <el-table-column prop="buyer" label="车牌号"> </el-table-column>
-          <el-table-column prop="buyer" label="经办人"> </el-table-column>
+          <el-table-column prop="goodsName" label="货名"> </el-table-column>
+          <el-table-column
+            prop="grossWeight"
+            label="毛重(吨)"
+          ></el-table-column>
+          <el-table-column prop="tare" label="皮重(吨)"> </el-table-column>
+          <el-table-column
+            prop="netWeight"
+            label="净重(吨)"
+          ></el-table-column>
+          <el-table-column prop="grade" label="品级">
+            <template slot-scope="scope">
+              <span v-if="scope.row.grade == '一等品'" class="top-grade">{{
+                scope.row.grade
+              }}</span>
+              <span v-if="scope.row.grade == '二等品'" class="second-class">{{
+                scope.row.grade
+              }}</span>
+              <span v-if="scope.row.grade == '三等品'" class="third-class">{{
+                scope.row.grade
+              }}</span>
+              <span v-if="scope.row.grade == '等外'" class="substandard">{{
+                scope.row.grade
+              }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="inOutDate" label="出入库日期">
+            <template slot-scope="scope">
+              <span style="color: #8890b1">{{ scope.row.inOutDate }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="inOutType" label="类型"> </el-table-column>
+          <el-table-column prop="contractNo" label="合同编号">
+            <template slot-scope="scope">
+              <span style="color: #8890b1">{{ scope.row.contractNo }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="carNo" label="车牌号">
+            <template slot-scope="scope">
+              <span style="color: #8890b1">{{ scope.row.carNo }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="qualityInspector" label="经办人">
+          </el-table-column>
           <el-table-column prop="buyer" label="内勤"> </el-table-column>
-          <el-table-column prop="buyer" label="附件"> </el-table-column>
-          <el-table-column prop="buyer" label="录入时间"> </el-table-column>
+          <el-table-column prop="addressUrl" label="附件">
+            <template slot-scope="scope">
+              <img
+                width="18"
+                height="20"
+                style="vertical-align: text-top; position: relative; top: -1px"
+                src="../../../public/img/fujian.png"
+                @click="fujian(scope.row)"
+                alt=""
+              />
+              <span v-if="scope.row.addressUrlArray.length > 0">{{
+                scope.row.addressUrlArray.length
+              }}</span>
+              <!-- <i @click="fujian(scope.row)" class="el-icon-paperclip iconCss"></i> -->
+            </template>
+          </el-table-column>
+          <el-table-column prop="createDate" label="录入时间">
+            <template slot-scope="scope">
+              <span style="color: #8890b1">{{ scope.row.createDate }}</span>
+            </template>
+          </el-table-column>
         </el-table>
-        <div style="text-align: right; padding: 10px">
-          <el-button
-            class="bg-bottom-up"
-            type="primary"
-            size="small"
-            @click="returnWarehouse()"
-            >关闭</el-button
+        <div style="text-align: center; padding: 10px">
+          <el-pagination
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-size="deptCircularPage.pageSize"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="deptBudgetTotal"
           >
+          </el-pagination>
         </div>
       </ws-form>
     </div>
+    <WinseaContentModal
+      v-model="accessoryTFs"
+      :title="$t('system.noticeCircular.information')"
+      @on-cancel="handleClose"
+    >
+      <p>查看附件</p>
+      <ws-upload
+        ref="upload"
+        table-name="maintain_work_order"
+        oss-key="mainPlan"
+        :comp-id="compId"
+        :appendix-ids="appendixIdsAdd"
+        :vesselId="deptBudgetList.addressUrl"
+        :size-limit="size"
+        @uploadSuccess="uploadSuccess"
+        accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar"
+      />
+    </WinseaContentModal>
   </div>
 </template>
 <script>
-import {
-  getList,
-  export1,
-  editstatus,
-  billoperatehis,
-} from '@/model/contarct/index'
+import { addselectinfoList } from '@/model/warehouse/index'
 import { downloadFile } from '@/utils/batchDown'
 import Pagination from '@/components/Pagination'
 import WsUpload from '@/components/WsUpload'
@@ -110,6 +274,7 @@ export default {
       monetaryKey: null,
       // 表格显示数据
       tableDate: [],
+      appendixIdsAdd: '',
       // 是否显示
       showType: true,
       // 年
@@ -117,11 +282,15 @@ export default {
       deptBudgetTotal: 0,
       currentPage: 1,
       pageSize: 10,
-      searchType: 1,
+      radiostatus: 1,
+      capacity: '',
       searchKeyWord: '',
       contractType: 2,
       startDate: null,
       endDate: null,
+      remark: '',
+      binNumber: '',
+      status: 1,
       // 提交类型
       submitType: true,
       selectpackingMethod: {},
@@ -129,14 +298,17 @@ export default {
       compId: sessionStorage.getItem('ws-pf_compId'),
       deptCircularPage: {},
       packtypeList: {},
+      currentPage: 1,
+      pageSize: 10,
       date: {
         year: dayjs().format('YYYY'),
         month: dayjs().format('MM'),
       },
-      contractList: [],
+      warehouseList: [],
       deptBudgetList: {},
       historyList: [],
-
+      searchType: '',
+      allurl: '../../../public/img/radio.png',
       pickerBeginDateBefore: {
         disabledDate: (time) => {
           return time.getTime() > Date.now()
@@ -146,9 +318,13 @@ export default {
     }
   },
   activated() {
-    //cg.viewBudget
-    //cg.viewSpareMoney
-    // this.getVesselData();
+    this.deptBudgetList.baseId = this.$route.query.baseId
+    this.deptBudgetList.positionId = this.$route.query.positionId
+    this.deptBudgetList.warehouseName = this.$route.query.warehouseName
+    this.remark = this.$route.params.remark
+    this.binNumber = this.$route.params.binNumber
+    this.capacity = this.$route.params.capacity
+    console.log(111)
     this.getList()
     this.showType = this.isShow
   },
@@ -159,7 +335,15 @@ export default {
     },
     //
     iossrecord() {
-      this.$router.push({ path: 'warehouseManagementIossRecord' })
+      this.$router.push({
+        path: 'warehouseManagementIossRecord',
+        query: {
+          baseId: this.deptBudgetList.baseId,
+          positionId: this.deptBudgetList.positionId,
+          warehouseName: this.deptBudgetList.warehouseName,
+          binNumber: this.binNumber,
+        },
+      })
     },
     dateFormat(fmt, date) {
       let ret
@@ -196,17 +380,31 @@ export default {
       console.log(`当前页: ${val}`)
       this.getList()
     },
+    record(status, status1) {
+      this.status = status1
+      this.searchType = status
+      this.getList()
+    },
+    // 上传附件
+    uploadSuccess(data, files, url) {
+      console.log(data, files, url)
+
+      // this.deptBudgetList.
+      // this.formData.append('files', files)
+      // this.feedbackObj.uploadNameAttachment = data.appendixName
+      // this.feedbackObj.pathUploadAttachment = data.appendixPath
+      // // this.newAppendixs = files
+      // this.onChangeFlag = true
+    },
     getList() {
-      getList({
+      addselectinfoList({
         compId: sessionStorage.getItem('ws-pf_compId'),
-        contractType: this.contractType,
+        baseId: this.deptBudgetList.baseId,
+        positionId: this.deptBudgetList.positionId,
+        warehouseName: this.deptBudgetList.warehouseName,
+        searchType: this.searchType,
         currentPage: this.currentPage,
         pageSize: this.pageSize,
-        searchType: this.searchType,
-        searchKeyWord: this.searchKeyWord,
-        startDate: this.startDate,
-        endDate: this.endDate,
-        contrPage: this.contrPage,
       })
         .toPromise()
         .then((response) => {
@@ -222,7 +420,7 @@ export default {
           this.deptCircularPage.currentPage = response.current
           this.deptCircularPage.pageSize = response.size
           this.deptBudgetTotal = response.total
-          this.contractList = response
+          this.warehouseList = response
         })
     },
     selecttaskType(e) {
@@ -306,30 +504,329 @@ export default {
 }
 </script>
 <style lang="scss" scoped>
-.center {
+/deep/.totalStorage .el-input__inner {
+  color: #afb5cb;
+  background: #f5f7fa;
+}
+.small-title {
   position: relative;
-  top: 50px;
-  width: 90%;
-  height: 500px;
-  margin: 0 auto;
+  padding: 10px;
+}
+.small-title::before {
+  position: absolute;
+  content: '';
+  display: block;
+  background: #5473e8;
+  width: 4px;
+  height: 14px;
+  left: 0px;
+  top: 13px;
+}
+.position {
+  position: relative;
+}
+.add,
+.del {
+  position: absolute;
+  right: -38px;
+  top: 9px;
+  cursor: pointer;
 }
-.center button{
-  margin-bottom: 15px;
+.del {
+  right: -70px;
 }
-.container .bg-left {
-  margin-left: 40px;
+.amap-page-container {
+  width: 300px;
+  height: 300px;
 }
-.container .bg-bottom {
+.ware {
+  font-size: 12px;
+  color: rgb(255, 255, 255);
+  background: rgb(175, 181, 203);
+  padding: 3px;
+  position: relative;
+  top: -1px;
+  border-radius: 3px;
+  text-align: center;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
   position: absolute;
-  float: right;
-  top: 15px;
-  right: 20px;
+  left: 0;
+}
+.ws-info-table {
+  border-left: 1px solid transparent;
+  border-top: 1px solid transparent;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.adjustment.el-button--primary {
+  background-color: #51cdd9;
+  border-color: #51cdd9;
 }
-.vertical-text-left {
-  width: 62px;
+.el-col {
+  background: #f6f7fc;
+}
+.record {
+  background: #fff;
+  color: #8890b1;
+  border-color: #fff;
+  display: inline-block;
+  margin-bottom: 10px;
+  cursor: pointer;
+  margin-left: 5px;
+  margin-right: 5px;
+}
+.record img {
+  position: relative;
+  top: 2px;
+}
+.record.active img {
+  position: relative;
+  top: 4px;
+}
+.record.active {
+  color: #262626;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
+}
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.top-grade {
+  background: linear-gradient(90deg, #5678e9, #7993f6);
+  color: #fff;
+  padding: 3px;
+  border-radius: 2px;
+}
+.second-class {
+  background: linear-gradient(90deg, #50cdd9, #82e2ea);
+  color: #fff;
+  padding: 3px;
+  border-radius: 2px;
+}
+.third-class {
+  background: linear-gradient(90deg, #ffa735, #ffbf70);
+  color: #fff;
+  padding: 3px;
+  border-radius: 2px;
+}
+.substandard {
+  background: linear-gradient(90deg, #b2b4bb, #ced0d5);
+  color: #fff;
+  padding: 3px;
+  border-radius: 2px;
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+.bg-left {
+  padding-left: 30px;
+}
+.bg-right {
+  padding-right: 10px;
   text-align: right;
 }
+.bg-bottom {
+  margin: 15px 0px;
+}
+.wenzi {
+  width: 900px;
+  margin: 0 auto;
+}
+.wenzi h3 {
+  display: inline-block;
+  left: 10px;
+}
+.wenzi p {
+  display: inline-block;
+}
+.center {
+  padding: 0 1%;
+}
+.el-form-item {
+  width: 50%;
+}
+.el-form-item__label {
+  text-align: center;
+}
+.ce {
+  width: 900px;
+  margin: 0 auto;
+}
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
+}
+
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
+}
+.winseaview-view {
+  padding: 0 0 20px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+.el-textarea__inner {
+  display: none;
+}
+.readonly {
+  width: 16%;
+}
+.ws-info-table .el-form-item {
+  width: 14.28%;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  background-color: #f6f7fc;
+  font-size: 12px;
+  height: 45px;
+}
+//去边框
 /deep/.el-form-item {
-  width: 33%;
+  border-right: 0px;
+  border-bottom: 0px;
+}
+/deep/.ws-info-table {
+  border-left: 0px;
+  border-top: 0px;
+}
+.ws-info-table .el-form-item .el-form-item__content {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 0px;
+  border-bottom: 0px;
+  border-left: 0px;
+  border-top: 0px;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  background: #f5f7fa;
+  border-radius: 4px;
+  border: 1px solid #d8dce6;
+  font-family: PingFangSC-Regular, PingFang SC;
+  margin-bottom: 5px;
+  background-color: #fff;
+  font-size: 14px;
+  font-weight: 400;
+  color: #8890b1;
+  line-height: 16px;
+}
+
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  border: 0px;
 }
 </style>

+ 1 - 0
vue.config.js

@@ -144,6 +144,7 @@ module.exports = {
         // target: 'http://standard-dev.winsea.com/', //目标地址
         // target: 'http://localhost:8090/',
         // target: 'http://192.168.1.124:8090/',
+        // target: 'http://192.168.1.124:8090/',
         target: 'http://192.168.1.124:8090/',
         // target: 'http://192.168.24.5:8098',//目标地址
         // target: 'http://product-server.winsea.com/',

Деякі файли не було показано, через те що забагато файлів було змінено