Browse Source

前端gjy

18513069273 4 years ago
parent
commit
a17841769d

+ 112 - 26
package-lock.json

@@ -5940,7 +5940,6 @@
       "version": "4.0.1",
       "resolved": "https://registry.npm.taobao.org/clone-deep/download/clone-deep-4.0.1.tgz",
       "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=",
-      "dev": true,
       "requires": {
         "is-plain-object": "^2.0.4",
         "kind-of": "^6.0.2",
@@ -7525,6 +7524,13 @@
         "verror": "^1.10.0"
       },
       "dependencies": {
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true,
+          "optional": true
+        },
         "cli-truncate": {
           "version": "1.1.0",
           "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-1.1.0.tgz",
@@ -7532,7 +7538,36 @@
           "dev": true,
           "optional": true,
           "requires": {
-            "slice-ansi": "^1.0.0"
+            "slice-ansi": "^1.0.0",
+            "string-width": "^2.0.0"
+          }
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true,
+          "optional": true
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz",
+          "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^4.0.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-regex": "^3.0.0"
           }
         }
       }
@@ -10131,7 +10166,66 @@
       "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.6.tgz",
       "integrity": "sha512-1NBe55C75bKGZaY9UHxvXG3G0gEp0ziht7quhuFrW3SPgZDw9HI6qvYXRSV5M/Eupyu8ljuJ6Cba+ec15PZ4Xw==",
       "dev": true,
-      "optional": true
+      "optional": true,
+      "requires": {
+        "cli-truncate": "^1.1.0",
+        "node-addon-api": "^1.6.3"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true,
+          "optional": true
+        },
+        "cli-truncate": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npm.taobao.org/cli-truncate/download/cli-truncate-1.1.0.tgz",
+          "integrity": "sha1-Ky39g8U8/TVyuH/E1DCoCK+wQIY=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "slice-ansi": "^1.0.0",
+            "string-width": "^2.0.0"
+          }
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true,
+          "optional": true
+        },
+        "node-addon-api": {
+          "version": "1.7.2",
+          "resolved": "https://registry.nlark.com/node-addon-api/download/node-addon-api-1.7.2.tgz",
+          "integrity": "sha1-PfMLlXILU8JOWZSLSVMrZiRE9U0=",
+          "dev": true,
+          "optional": true
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz",
+          "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^4.0.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-regex": "^3.0.0"
+          }
+        }
+      }
     },
     "iconv-lite": {
       "version": "0.4.24",
@@ -10671,7 +10765,6 @@
       "version": "2.0.4",
       "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz",
       "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=",
-      "dev": true,
       "requires": {
         "isobject": "^3.0.1"
       }
@@ -10784,8 +10877,7 @@
     "isobject": {
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-      "dev": true
+      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
     },
     "isstream": {
       "version": "0.1.2",
@@ -11030,8 +11122,7 @@
     "kind-of": {
       "version": "6.0.3",
       "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz?cache=0&sync_timestamp=1579194040958&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-6.0.3.tgz",
-      "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=",
-      "dev": true
+      "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0="
     },
     "ko-sleep": {
       "version": "1.0.3",
@@ -12475,8 +12566,7 @@
     "neo-async": {
       "version": "2.6.1",
       "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.1.tgz",
-      "integrity": "sha1-rCetpmFn+ohJpq3dg39rGJrSCBw=",
-      "dev": true
+      "integrity": "sha1-rCetpmFn+ohJpq3dg39rGJrSCBw="
     },
     "netmask": {
       "version": "1.0.6",
@@ -12742,7 +12832,7 @@
     },
     "node-sass": {
       "version": "4.14.1",
-      "resolved": "https://registry.npm.taobao.org/node-sass/download/node-sass-4.14.1.tgz",
+      "resolved": "https://registry.nlark.com/node-sass/download/node-sass-4.14.1.tgz?cache=0&sync_timestamp=1620488284683&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnode-sass%2Fdownload%2Fnode-sass-4.14.1.tgz",
       "integrity": "sha1-mch+wu+3BH7WOPtMnbfzpC4iF7U=",
       "requires": {
         "async-foreach": "^0.1.3",
@@ -12766,12 +12856,12 @@
       "dependencies": {
         "ansi-styles": {
           "version": "2.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz",
           "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
         },
         "chalk": {
           "version": "1.1.3",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+          "resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz",
           "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
           "requires": {
             "ansi-styles": "^2.2.1",
@@ -12783,7 +12873,7 @@
         },
         "cross-spawn": {
           "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
+          "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz?cache=0&sync_timestamp=1609302869441&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-3.0.1.tgz",
           "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
           "requires": {
             "lru-cache": "^4.0.1",
@@ -12792,7 +12882,7 @@
         },
         "lru-cache": {
           "version": "4.1.5",
-          "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz",
+          "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427569171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz",
           "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
           "requires": {
             "pseudomap": "^1.0.2",
@@ -12801,7 +12891,7 @@
         },
         "node-gyp": {
           "version": "3.8.0",
-          "resolved": "https://registry.npm.taobao.org/node-gyp/download/node-gyp-3.8.0.tgz",
+          "resolved": "https://registry.nlark.com/node-gyp/download/node-gyp-3.8.0.tgz",
           "integrity": "sha1-VAMEJhwzDoDQ1e3OJTpoyzlkIYw=",
           "requires": {
             "fstream": "^1.0.0",
@@ -12828,12 +12918,12 @@
         },
         "semver": {
           "version": "5.3.0",
-          "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz?cache=0&sync_timestamp=1616463540350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.3.0.tgz",
           "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
         },
         "supports-color": {
           "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1618561027869&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz",
           "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
         },
         "tar": {
@@ -12848,7 +12938,7 @@
         },
         "yallist": {
           "version": "2.1.2",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+          "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz",
           "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
         }
       }
@@ -13599,8 +13689,7 @@
     "pify": {
       "version": "4.0.1",
       "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz",
-      "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=",
-      "dev": true
+      "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE="
     },
     "pinkie": {
       "version": "2.0.4",
@@ -15599,7 +15688,6 @@
       "version": "7.3.1",
       "resolved": "https://registry.npm.taobao.org/sass-loader/download/sass-loader-7.3.1.tgz",
       "integrity": "sha1-pb9ooEvOocE/+ELXRxUPerfQ0j8=",
-      "dev": true,
       "requires": {
         "clone-deep": "^4.0.1",
         "loader-utils": "^1.0.1",
@@ -15611,8 +15699,7 @@
         "semver": {
           "version": "6.3.0",
           "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz",
-          "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
-          "dev": true
+          "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0="
         }
       }
     },
@@ -15856,7 +15943,6 @@
       "version": "3.0.1",
       "resolved": "https://registry.npm.taobao.org/shallow-clone/download/shallow-clone-3.0.1.tgz",
       "integrity": "sha1-jymBrZJTH1UDWwH7IwdppA4C76M=",
-      "dev": true,
       "requires": {
         "kind-of": "^6.0.2"
       }
@@ -19863,4 +19949,4 @@
       "integrity": "sha512-TNloHe0ums6zxbHfnaCryM61J4IWDajZwNq6dHk9vfWhhysO/OeFvvR0drBs/nbXha2YxSzfQj2FiCd6RVBe+Q=="
     }
   }
-}
+}

+ 2 - 1
package.json

@@ -59,6 +59,7 @@
     "pinyin": "^2.9.1",
     "querystring": "^0.2.0",
     "register-service-worker": "^1.0.0",
+    "sass-loader": "^7.1.0",
     "script-loader": "^0.7.2",
     "sortablejs": "^1.8.4",
     "tinymce": "4.9.2",
@@ -99,7 +100,7 @@
     "lint-staged": "^10.2.13",
     "mockjs": "^1.0.1-beta3",
     "node-rancher-client-api": "^1.1.1",
-    "node-sass": "^4.12.0",
+    "node-sass": "^4.14.1",
     "postcss-import": "^11.1.0",
     "postcss-loader": "^2.0.8",
     "postcss-url": "^7.2.1",

+ 26 - 2
src/lang/zh.js

@@ -491,6 +491,19 @@
     //仓库管理、
     warehouseManagementList:'仓库管理',
     warehouseManagementAdd:'仓库管理添加',
+    warehouseManagementEdit:'仓库管理编辑',
+    warehouseManagementPut:'入库',
+    warehouseManagementDelivery:'出库',
+    warehouseManagementIossRecord:'盘损详情',
+    warehouseManagementLook:'仓库管理查看',
+    warehouseManagementDelete:'仓库管理删除',
+    warehouseManagementIoss:'仓库管理盘损',
+    warehouseManagementRecord:'记录',
+    warehouseManagementNoComplete:'待完成',
+    warehouseManagementPerfectput:'编辑',
+  
+
+
     // 采购模块
     procurement: '采购管理',
     sparepart: '备件采购',
@@ -4655,9 +4668,9 @@
     monthlyReport: '月报',
     customTime: '自定义时间'
   },
-  // 合同管理
+  //合同管理
   sales: {
-    salesContract: '销售合同',
+     salesContract: '销售合同',
     salesContractEdit: '销售合同编辑',
     salesContractExamine: '销售合同查看',
     purchaseContractExamine: '采购合同查看',
@@ -4673,6 +4686,17 @@
   warehouseManagement:{
     warehouseManagementList:'仓库管理',
     warehouseManagementAdd:'仓库管理添加',
+    warehouseManagementEdit:'仓库管理编辑',
+    warehouseManagementPut:'入库',
+    warehouseManagementDelivery:'出库',
+    warehouseManagementLook:'仓库管理查看',
+    warehouseManagementDelete:'仓库管理删除',
+    warehouseManagementIoss:'仓库管理盘损',
+    warehouseManagementIossRecord:'盘损详情',
+    warehouseManagementRecord:'记录',
+    warehouseManagementNoComplete:'待完成',
+    warehouseManagementPerfectput:'编辑',
+
   },
   // 年度培训
   annualTraining: {

+ 1 - 1
src/views/contractManagement/component/routers/route.js

@@ -130,7 +130,7 @@ const contractManagementRouter = {
       },
       hidden: true
     }
-
+    
   ],
 
 };

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

@@ -43,6 +43,160 @@ const warehouseManagementRouter = {
       },
       hidden: true
     },
+
+    {
+      path: 'warehouseManagementEdit',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/warehouse/warehouseManagementEdit'),
+      name: 'warehouseManagementEdit',
+      meta: {
+        title: 'warehouseManagementEdit',
+        shortcutEntrance: 'warehouseManagementEdit',
+        module: 'warehouse.warehouseManagementEdit',
+      },
+      hidden: true
+    },
+    {
+      path: 'warehouseManagementLook',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/warehouse/warehouseManagementLook'),
+      name: 'warehouseManagementLook',
+      meta: {
+        title: 'warehouseManagementLook',
+        shortcutEntrance: 'warehouseManagementLook',
+        module: 'warehouse.warehouseManagementLook',
+
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
+    {
+
+      path: 'warehouseManagementPut',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/warehouse/warehouseManagementPut'),
+      name: 'warehouseManagementPut',
+      meta: {
+        title: 'warehouseManagementPut',
+        shortcutEntrance: 'warehouseManagementPut',
+        module: 'warehouse.warehouseManagementPut',
+      },
+      hidden: true
+    },
+    {
+      path: 'warehouseManagementDelete',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/warehouse/warehouseManagementDelete'),
+      name: 'warehouseManagementDelete',
+      meta: {
+        title: 'warehouseManagementDelete',
+        shortcutEntrance: 'warehouseManagementDelete',
+        module: 'warehouse.warehouseManagementDelete',
+
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
+  
+    {
+      path: 'warehouseManagementDelivery',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/warehouse/warehouseManagementDelivery'),
+      name: 'warehouseManagementDelivery',
+      meta: {
+        title: 'warehouseManagementDelivery',
+        shortcutEntrance: 'warehouseManagementDelivery',
+        module: 'warehouse.warehouseManagementDelivery',
+      },
+      hidden: true
+    },
+    {
+      path: 'warehouseManagementIoss',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/warehouse/warehouseManagementIoss'),
+      name: 'warehouseManagementIoss',
+      meta: {
+        title: 'warehouseManagementIoss',
+        shortcutEntrance: 'warehouseManagementIoss',
+        module: 'warehouse.warehouseManagementIoss',
+
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
+
+    {
+      path: 'warehouseManagementIossRecord',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/warehouse/warehouseManagementIossRecord'),
+      name: 'warehouseManagementIossRecord',
+      meta: {
+        title: 'warehouseManagementIossRecord',
+        shortcutEntrance: 'warehouseManagementIossRecord',
+        module: 'warehouse.warehouseManagementIossRecord',
+
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
+
+    {
+      path: 'warehouseManagementRecord',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/warehouse/warehouseManagementRecord'),
+      name: 'warehouseManagementRecord',
+      meta: {
+        title: 'warehouseManagementRecord',
+        shortcutEntrance: 'warehouseManagementRecord',
+        module: 'warehouse.warehouseManagementRecord',
+
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
+
+    {
+      path: 'warehouseManagementNoComplete',
+            
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/warehouse/warehouseManagementNoComplete'),
+      name: 'warehouseManagementNoComplete',
+      meta: {
+        title: 'warehouseManagementNoComplete',
+        shortcutEntrance: 'warehouseManagementNoComplete',
+        module: 'warehouse.warehouseManagementNoComplete',
+        permissicon: [],
+        keepAlive: true
+      },
+      hidden:true
+    },
+    {
+      path: 'warehouseManagementPerfectput',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/warehouse/warehouseManagementPerfectput'),
+      name: 'warehouseManagementPerfectput',
+      meta: {
+        title: 'warehouseManagementPerfectput',
+        shortcutEntrance: 'warehouseManagementPerfectput',
+        module: 'warehouse.warehouseManagementPerfectput',
+
+
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
   ],
 };
 export default warehouseManagementRouter;

+ 3 - 0
src/views/warehouse/warehouseManagementAdd.vue

@@ -789,4 +789,7 @@ export default {
 .readonly {
   width: 16%;
 }
+.ws-info-table .el-form-item {
+  width: 33.33%;
+}
 </style>

+ 391 - 0
src/views/warehouse/warehouseManagementDelete.vue

@@ -0,0 +1,391 @@
+<template>
+  <div >
+      
+     <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>
+   <div class="connert">
+      <el-table
+        class="wenzi"
+        :data="contractList.records"
+        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="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="address" label="操作" width="200">
+          <!-- <template slot-scope="scope"> -->
+            <ws-button
+              type="primary"
+              @click="handleAdd()"
+              v-hasPermission="
+                `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
+              "
+              >隐藏</ws-button
+            >
+
+            <ws-button
+              type="primary"
+              @click="handleAdd()"
+              v-hasPermission="
+                `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
+              "
+              >删除</ws-button
+            >
+          <!-- </template> -->
+        </el-table-column>
+      </el-table>
+      
+    </div>
+  </div>
+</template>
+<script>
+import {
+  getList,
+  export1,
+  editstatus,
+  billoperatehis,
+} from '@/model/contarct/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+import { dayjs, fmoney, 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,
+      // 提交类型
+      submitType: true,
+      size: 10,
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM'),
+      },
+      contractList: [],
+      deptBudgetList: {},
+      historyList: [],
+
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+      taskTypeList: [
+        { value: '未完成', type: 1 },
+        { value: '已完成', type: 2 },
+        { value: '全部合同', type: '' },
+      ],
+      pickerOptions: {
+        shortcuts: [
+          {
+            text: '本周',
+            onClick(picker) {
+              const end = new Date()
+              const start = new Date()
+              var thisDay = start.getDay()
+              var thisDate = start.getDate()
+              if (thisDay != 0) {
+                start.setDate(thisDate - thisDay)
+              }
+              picker.$emit('pick', [start, end])
+            },
+          },
+          {
+            text: '本月',
+            onClick(picker) {
+              const end = new Date()
+              const start = new Date()
+              start.setDate(1)
+              picker.$emit('pick', [start, end])
+            },
+          },
+          {
+            text: '本季度',
+            onClick(picker) {
+              var oDate = new Date()
+
+              var thisYear = oDate.getFullYear()
+              var thisMonth = oDate.getMonth() + 1
+
+              var n = Math.ceil(thisMonth / 3) // 季度
+
+              var Month = n * 3 - 1
+
+              var start = new Date(thisYear, Month - 2, 1)
+              var end = new Date()
+
+              picker.$emit('pick', [start, end])
+            },
+          },
+        ],
+      },
+      value1: '',
+      value2: '',
+    }
+  },
+  activated() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.getList()
+    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
+    },
+    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() {
+      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
+        })
+    },
+    // 上传附件
+    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
+    },
+    editClick(row) {
+      var status = ''
+      if (row.status == '待执行' || row.status == '已完成') {
+        status = '执行中'
+      } else if (row.status == '执行中') {
+        status = '已完成'
+      }
+      //cancelButtonClass: "btn-custom-cancel"
+      this.$confirm(`是否将状态改为${status}`, {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          editstatus({ id: row.id })
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '状态修改成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {
+              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    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
+        })
+    },
+    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(
+        {
+          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>
+.connert {
+  width: 90%;
+  margin: 0 auto;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+
+</style>

+ 525 - 0
src/views/warehouse/warehouseManagementDelivery.vue

@@ -0,0 +1,525 @@
+// 出库登记
+<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>
+    <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-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="shippingType">
+          <ws-input
+            v-model="deptBudgetList.shippingType"
+            placeholder="请输入毛重"
+            maxlength="20"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--皮重(吨)-->
+        <ws-form-item label="皮重(吨)" span="1" prop="buyer" class="readonly">
+          <ws-input
+            v-model="deptBudgetList.buyer"
+            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>
+        <!-- 品级 -->
+        <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-input
+            v-model="deptBudgetList.seller"
+            placeholder="请输入出库经办人姓名"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <!--出库日期-->
+        <ws-form-item label="出库日期" span="1" prop="signingDate">
+          <ws-date-picker 
+            v-model="deptBudgetList.signingDate"
+            type="date"
+            placeholder="请选择出库日期"
+            value-format="yyyy-MM-dd"
+          />
+        </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-input
+            v-model="deptBudgetList.sourceGoods"
+            placeholder="请输入车牌号"
+            maxlength="20"
+            size="small"
+          />
+        </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>
+
+        <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> 
+  </div>
+</template>
+<script>
+import { getList, export1, billoperatehis } from '@/model/contarct/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,
+      selectpackingMethod:{},
+
+      appendixIdsAdd:{},
+      uploadSuccess:{},
+      onChange:{},
+
+      size: 10,
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      packtypeList: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM'),
+      },
+      contractList: [],
+      deptBudgetList: {},
+      historyList: [],
+
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  activated() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    //返回按钮
+    returnWarehouse() {
+      this.$router.push({ path: 'warehouseManagementList' })
+    },
+    //提交按钮
+    submit() {
+      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
+    },
+    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() {
+      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) {
+          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
+        })
+    },
+    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(
+        {
+          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>
+.container .bg-left {
+  margin-left: 40px;
+}
+.container .bg-bottom {
+  position: absolute;
+  float: right;
+  top: 15px;
+  right: 20px;
+}
+.center {
+  position: relative;
+  top: 50px;
+  width: 50%;
+  height: 2000px;
+  margin: 0 auto;
+}
+
+/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%;
+}
+.container {
+  overflow: scroll;
+  height: 120vh;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label{
+  text-align: center;
+}
+.deliverydate{
+  width: 35%;
+}
+.center{
+  margin-top: -60px;
+}
+</style>

+ 1227 - 0
src/views/warehouse/warehouseManagementEdit.vue

@@ -0,0 +1,1227 @@
+<!--仓库修改-->
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="12">
+        <h2 class="bg-left title">修改仓库</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right">
+        <el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="returnsales()"
+          ><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"
+      :rules="mainReportAdd"
+      :model="deptBudgetList"
+    >
+     
+      <ws-info-table>
+        <!--仓库名称-->
+        <ws-form-item
+          label="仓库名称"
+          span="1"
+          prop="contractNo"
+          class="readonly"
+        >
+          <ws-input
+            v-model="deptBudgetList.contractNo"
+            placeholder="默认拼音首字母排序的第一的库"
+            maxlength="20"
+            size="small"
+            :rules="ruleDeptBudget"
+          />
+        </ws-form-item>
+        <!--负责人-->
+        <ws-form-item label="负责人" span="1" prop="buyer" class="readonly">
+          <ws-input
+            v-model="deptBudgetList.buyer"
+            placeholder="请输入负责人姓名"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--负责人电话-->
+        <ws-form-item label="负责人电话" span="1" prop="shippingType">
+          <ws-input
+            v-model="deptBudgetList.shippingType"
+            placeholder="请输入负责人手机号码"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--仓库所在地-->
+        <ws-form-item label="仓库所在地" span="1" prop="acceptanceMethod">
+          <el-select
+            v-model="deptBudgetList.acceptanceMethod"
+            placeholder="请选择仓库所在地"
+            style="width: 100%"
+            filterable
+            @change="selectunitList"
+          >
+            <el-option
+              v-for="(item, index) in unitList"
+              :key="item.constValue"
+              :label="item.constValue"
+              :value="item.constValue"
+            >
+              <span class="unit-left" style="float: left">
+                <span v-if="item.flag == 'delete'"> {{ item.constValue }}</span>
+                <!-- 新增文本框 -->
+                <div
+                  style="width: 160px"
+                  v-if="item.flag !== 'delete'"
+                  @click.stop
+                >
+                  <ws-input
+                    v-model="item.constValue"
+                    clearable
+                    maxlength="10"
+                    style="width: 100%"
+                  ></ws-input>
+                </div>
+              </span>
+              <span style="float: right; color: #8492a6; font-size: 13px">
+                <!-- 对号 -->
+                <i
+                  class="el-icon-check"
+                  style="line-height: 29px; margin-left: 10px"
+                  v-if="item.flag !== 'delete'"
+                  @click.stop="saveClick(item, index)"
+                ></i>
+                <!-- 编辑 -->
+                <i
+                  class="el-icon-edit"
+                  style="line-height: 29px; margin-left: 10px"
+                  v-if="item.flag == 'delete'"
+                  @click.stop="editClick(item, index)"
+                ></i>
+                <!-- 删除 -->
+                <i
+                  class="el-icon-delete"
+                  style="line-height: 29px"
+                  @click.stop="deleteClick(item, index)"
+                ></i>
+              </span>
+            </el-option>
+            <!-- 新增按钮 -->
+            <el-option value="" label="">
+              <div
+                style="
+                  text-align: right;
+                  border-top: 1px solid #dcdfe6;
+                  padding: 5px;
+                "
+              >
+                <ws-button type="primary" @click.stop="addClick">{{
+                  $t('button.add')
+                }}</ws-button>
+              </div>
+            </el-option>
+          </el-select>
+        </ws-form-item>
+
+        <!--详细地址-->
+        <ws-form-item label="详细地址" span="1" prop="buyer" class="readonly">
+          <ws-input
+            v-model="deptBudgetList.buyer"
+            placeholder="请输入详细地址"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--总吨量(吨)-->
+        <ws-form-item label="总吨量(吨)" span="1" prop="settlementMethod">
+          <ws-input
+            v-model="deptBudgetList.settlementMethod"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+       <!--仓库编号-->
+      <ws-form-item
+          label="仓库编号"
+          span="1"
+          prop="contractNo"
+          class="readonly"
+        >
+          <ws-input
+            v-model="deptBudgetList.contractNo"
+            placeholder="请输入仓库编号"
+            maxlength="20"
+            size="small"
+            :rules="ruleDeptBudget"
+          />
+        </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>
+
+        <!--备注(选项)-->
+        <ws-form-item label="备注(选项)" span="1" prop="placeDelivery">
+          <ws-input
+            v-model="deptBudgetList.placeDelivery"
+            placeholder="请输入交货地"
+            maxlength="100"
+            size="small"
+          />
+           
+        </ws-form-item>
+        
+        <ws-form-item
+          label="仓库编号"
+          span="1"
+          prop="contractNo"
+          class="readonly"
+        >
+          <ws-input
+            v-model="deptBudgetList.contractNo"
+            placeholder="请输入仓库编号"
+            maxlength="20"
+            size="small"
+            :rules="ruleDeptBudget"
+          />
+        </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>
+
+        <!--备注(选项)-->
+        <ws-form-item label="备注(选项)" span="1" prop="placeDelivery">
+          <ws-input
+            v-model="deptBudgetList.placeDelivery"
+            placeholder="请输入交货地"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <ws-form-item
+          label="仓库编号"
+          span="1"
+          prop="contractNo"
+          class="readonly"
+        >
+          <ws-input
+            v-model="deptBudgetList.contractNo"
+            placeholder="请输入仓库编号"
+            maxlength="20"
+            size="small"
+            :rules="ruleDeptBudget"
+          />
+        </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>
+
+        <!--备注(选项)-->
+        <ws-form-item label="备注(选项)" span="1" prop="placeDelivery">
+          <ws-input
+            v-model="deptBudgetList.placeDelivery"
+            placeholder="请输入交货地"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+       
+      </ws-info-table>
+        <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"
+      />
+       <!--仓库定位-->
+      <ws-form-item label="仓库定位:" span="1" prop="seller" class="readonly">
+        
+          <ws-input
+            v-model="deptBudgetList.seller"
+            placeholder="请输入地名,北京"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+      
+        
+    </ws-form>
+    
+      <!-- 提交 -->
+    <div style="text-align: right; padding: 10px" class="center">
+      <el-button
+        class="bg-bottom"
+        type="primary"
+        size="small"
+        @click="submit(deptBudgetList)"
+        >提交</el-button
+      >
+
+      
+    </div>
+
+  </div>
+</template>
+<script>
+//  import { getVesselOne } from '@/model/procurement/basic'
+//  import { dayjs } from 'base-core-lib'
+import {
+  packList,
+  addList,
+  xiala,
+  addxiala,
+  editxiala,
+  delxiala,
+} from '@/model/contarct/index'
+import WsUpload from '@/components/WsUpload'
+
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+  },
+  watch: {
+    vesselId(val) {
+      this.getVesselData()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      // 提交类型
+      submitType: true,
+      tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
+
+      packtypeList: [],
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      mainReportAdd: {},
+      appendixIdsAdd: '',
+      size: 10,
+      // uploadSuccess: {},
+      // onChange:{},
+      unitList: [],
+      goodnameList: [],
+      value1: '袋装',
+      value2: '未回收',
+      gradeList: [],
+      ChapterTwoList: [],
+
+      deptBudgetList: {
+        contractGoodsInfo: {
+          goodsName: '',
+        },
+        contractProcessInfo: {},
+      },
+
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      // selectpackingMethod: {},
+      // selectgrade: {},
+      // selectunitList: {},
+      // selectDuty: {},
+      // isEdited: false,
+      // registered: {},
+      // selectCrtDuty: {},
+      // dutyList: {},
+      // sexList: {},
+      ruleDeptBudget: {
+        contractNo: [
+          { required: true, message: '请输入活动名称', trigger: 'blur' },
+          {
+            min: 6,
+            max: 20,
+            message: '长度在 6 到 20 个字符',
+            trigger: 'blur',
+          },
+        ],
+      },
+      selectIntendedShip: {},
+      interviewTypeList: {},
+    }
+  },
+  activated() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.deptBudgetList.packingMethod = '袋装'
+    this.deptBudgetList.packingMethodKey = 2
+    this.deptBudgetList.contractGoodsInfo.goodsName = '玉米'
+    this.deptBudgetList.contractGoodsInfo.goodsNameKey = 1
+    this.deptBudgetList.contractProcessInfo.grade = '未回收'
+    this.deptBudgetList.contractProcessInfo.gradeKey = 1
+    this.loaddata()
+    this.showType = this.isShow
+  },
+  methods: {
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+    returnsales() {
+      this.$router.push({ path: 'warehouseManagementList' })
+    },
+    loaddata() {
+      // 包装方式
+      packList({ constId: 'CON1' })
+        .toPromise()
+        .then((response) => {
+          this.packtypeList = response
+        })
+      // 验收方式
+      this.getUnitList()
+      // 货名
+      packList({ constId: 'CON2' })
+        .toPromise()
+        .then((response) => {
+          this.goodnameList = response
+        })
+      // 品级
+      packList({ constId: 'CON3' })
+        .toPromise()
+        .then((response) => {
+          this.gradeList = response
+        })
+      // 双章
+      packList({ constId: 'CON4' })
+        .toPromise()
+        .then((response) => {
+          this.ChapterTwoList = response
+        })
+    },
+    // 上传附件
+    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
+    },
+    onChange(files) {
+      this.fileNum = files
+      this.$refs.upload.handleSaveBill().then((res) => {
+        console.log(files)
+      })
+    },
+    getUnitList() {
+      xiala({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        constCode: 'TYPEYAN',
+      })
+        .toPromise()
+        .then((response) => {
+          this.unitList = response
+          let currItem
+          this.unitList.forEach((item, index, arr) => {
+            item.flag = 'delete'
+            if (this.vModel == item.constKey) {
+              currItem = item
+            }
+          })
+          //
+          if (currItem) {
+            this.selectContract(currItem.constValue)
+          }
+        })
+    },
+
+    submit() {
+      if (!this.deptBudgetList.contractNo) {
+        this.$message({
+          message: '请输入合同编号',
+          type: 'warning',
+        })
+        return
+      }
+      console.log(this.deptBudgetList.contractNo.length)
+      if (
+        this.deptBudgetList.contractNo.length < 6 ||
+        this.deptBudgetList.contractNo.length > 20
+      ) {
+        this.$message({
+          message: '合同编号长度不符合要求,请输入6到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.shippingType) {
+        this.$message({
+          message: '请输入运输方式!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.shippingType.length < 1 ||
+        this.deptBudgetList.shippingType.length > 20
+      ) {
+        this.$message({
+          message: '运输方式长度不符合要求,请输入1到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.buyer) {
+        this.$message({
+          message: '请输入买方名称!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.buyer.length < 4 ||
+        this.deptBudgetList.buyer.length > 30
+      ) {
+        this.$message({
+          message: '买方名称长度不符合要求,请输入4到30个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.seller) {
+        this.$message({
+          message: '请输入卖方名称!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.seller.length < 4 ||
+        this.deptBudgetList.seller.length > 30
+      ) {
+        this.$message({
+          message: '卖方名称长度不符合要求,请输入4到30个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.buyerPhone) {
+        this.$message({
+          message: '请输入买方电话!',
+          type: 'warning',
+        })
+        return
+      }
+      if (isNaN(this.deptBudgetList.buyerPhone)) {
+        this.$message({
+          message: '输入买方电话有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.buyerPhone.length < 7 ||
+        this.deptBudgetList.buyerPhone.length > 20
+      ) {
+        this.$message({
+          message: '买方电话长度不符合要求,请输入7到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.sellerPhone) {
+        this.$message({
+          message: '请输入卖方电话!',
+          type: 'warning',
+        })
+        return
+      }
+      if (isNaN(this.deptBudgetList.sellerPhone)) {
+        this.$message({
+          message: '输入卖方电话有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.buyerPhone.length < 7 ||
+        this.deptBudgetList.buyerPhone.length > 20
+      ) {
+        this.$message({
+          message: '卖方电话长度不符合要求,请输入7到20个字符之内!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.settlementMethod) {
+        this.$message({
+          message: '请输入结算方式!',
+          type: 'warning',
+        })
+        return
+      }
+
+      if (!this.deptBudgetList.sourceGoods) {
+        this.$message({
+          message: '请输入货源地!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.placeDelivery) {
+        this.$message({
+          message: '请输入交货地!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.weight) {
+        this.$message({
+          message: '请输入重量!',
+          type: 'warning',
+        })
+        return
+      }
+
+      if (
+        isNaN(this.deptBudgetList.weight) ||
+        /\.\d{3}$/.test(this.deptBudgetList.weight) == false ||
+        this.deptBudgetList.weight < 0 ||
+        this.deptBudgetList.weight > 200000
+      ) {
+        this.$message({
+          message: '输入重量有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.overShort &&
+        isNaN(this.deptBudgetList.overShort)
+      ) {
+        this.$message({
+          message: '溢短装输入有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.unitContractPrice &&
+        isNaN(this.deptBudgetList.unitContractPrice)
+      ) {
+        this.$message({
+          message: '合同单价输入有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.totalContractPrice &&
+        isNaN(this.deptBudgetList.totalContractPrice)
+      ) {
+        this.$message({
+          message: '合同总价输入有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.deliveryDateStart) {
+        this.$message({
+          message: '请选择交货日期(起)',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.deliveryDateEnd) {
+        this.$message({
+          message: '请选择交货日期(止)',
+          type: 'warning',
+        })
+        return
+      }
+      //时间
+      if (
+        new Date(this.deptBudgetList.deliveryDateStart).getTime() >
+        new Date(this.deptBudgetList.deliveryDateEnd).getTime()
+      ) {
+        this.$message({
+          message: '交货日期(止)选择错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.signingDate) {
+        this.$message({
+          message: '请选择签订日期',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.goodsName) {
+        this.$message({
+          message: '请选择货名',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.waterContent) {
+        this.$message({
+          message: '请选择水分',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.contractGoodsInfo.grade) {
+        this.$message({
+          message: '请选择品级',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.impurity ||
+        /\.\d{2}$/.test(this.deptBudgetList.contractGoodsInfo.impurity)
+      ) {
+        this.$message({
+          message: '杂质输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.bulkDensity ||
+        /\.\d{2}$/.test(this.deptBudgetList.contractGoodsInfo.bulkDensity)
+      ) {
+        this.$message({
+          message: '容重输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.mildewGrain ||
+        /\.\d{2}$/.test(this.deptBudgetList.contractGoodsInfo.mildewGrain)
+      ) {
+        this.$message({
+          message: '霉变粒输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.jiaorenli ||
+        /\.\d{2}$/.test(this.deptBudgetList.contractGoodsInfo.jiaorenli)
+      ) {
+        this.$message({
+          message: '热损伤输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        !this.deptBudgetList.contractGoodsInfo.imperfectGrain ||
+        /\.\d{2}$/.test(this.deptBudgetList.contractGoodsInfo.imperfectGrain)
+      ) {
+        this.$message({
+          message: '不完整粒输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        (!this.deptBudgetList.contractProcessInfo.goodsNameKey > 1000000000) |
+          (this.deptBudgetList.contractProcessInfo.goodsNameKey < 0) ||
+        /\.\d{2}$/.test(this.deptBudgetList.contractProcessInfo.goodsNameKey) ==
+          false
+      ) {
+        this.$message({
+          message: '合同收入金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        (!this.deptBudgetList.contractProcessInfo.waterContent > 10000000) |
+          (this.deptBudgetList.contractProcessInfo.waterContent < 0) ||
+        /\.\d{2}$/.test(this.deptBudgetList.contractProcessInfo.waterContent) ==
+          false
+      ) {
+        this.$message({
+          message: '费用金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        (!this.deptBudgetList.contractProcessInfo.mildewGrain > 1000000000) |
+          (this.deptBudgetList.contractProcessInfo.mildewGrain < 0) ||
+        /\.\d{2}$/.test(this.deptBudgetList.contractProcessInfo.mildewGrain) ==
+          false
+      ) {
+        this.$message({
+          message: '未回款金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        (!this.deptBudgetList.contractProcessInfo.goodsName > 1000000000) |
+          (this.deptBudgetList.contractProcessInfo.goodsName < 0) ||
+        /\.\d{2}$/.test(this.deptBudgetList.contractProcessInfo.goodsName) ==
+          false
+      ) {
+        this.$message({
+          message: '已开发票金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        (!this.deptBudgetList.contractProcessInfo.impurity > 1000000000) |
+          (this.deptBudgetList.contractProcessInfo.impurity < 0) ||
+        /\.\d{2}$/.test(this.deptBudgetList.contractProcessInfo.impurity) ==
+          false
+      ) {
+        this.$message({
+          message: '未开发票金额输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        (!this.deptBudgetList.contractProcessInfo.imperfectGrain > 200000) |
+          (this.deptBudgetList.contractProcessInfo.imperfectGrain < 0) ||
+        /\.\d{3}$/.test(
+          this.deptBudgetList.contractProcessInfo.imperfectGrain
+        ) == false
+      ) {
+        this.$message({
+          message: '已完成发运量输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      this.$refs.deptBudgetList.validate((valid) => {
+        if (valid) {
+          this.deptBudgetList.compId = this.compId
+          this.deptBudgetList.contractType = 2
+          addList(this.deptBudgetList)
+            .toPromise()
+            .then((response) => {
+              this.$message.success('添加成功')
+              this.$router.push({ path: 'salesContract' })
+            })
+        } else {
+          EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+          return false
+        }
+      })
+    },
+    resetForm(deptBudgetList) {
+      this.$refs[deptBudgetList].resetFields()
+    },
+    saveClick(item, index) {
+      console.log(item)
+
+      if (Object.is(item.id, 1)) {
+        return
+      }
+      if (Object.is(this.unitList[index].flag, 'delete')) {
+        this.$set(this.unitList, index, { flag: 'check' })
+      } else {
+        this.$set(this.unitList, index, { flag: 'delete' })
+      }
+      if (!item.constValue) {
+        this.unitList.splice(index, 1)
+        return
+      }
+      if (item.flag == 'add') {
+        item.constKey = Math.random() * 20
+        this.trainingMethods.compId = sessionStorage.getItem('ws-pf_compId')
+        this.trainingMethods.constKey = item.constKey
+        this.trainingMethods.constCode = 'TYPEYAN'
+        this.trainingMethods.constValue = item.constValue
+        this.trainingMethods.id = item.id
+        addxiala(this.trainingMethods)
+          .toPromise()
+          .then((response) => {
+            this.getUnitList()
+          })
+      } else if (item.flag == 'check') {
+        this.trainingMethods.compId = sessionStorage.getItem('ws-pf_compId')
+        this.trainingMethods.constKey = item.constKey
+        this.trainingMethods.constCode = 'TYPEYAN'
+        this.trainingMethods.constValue = item.constValue
+        this.trainingMethods.id = item.id
+        editxiala(this.trainingMethods)
+          .toPromise()
+          .then((response) => {
+            this.getUnitList()
+          })
+      }
+    },
+    // selectContract(val) {
+    //   let key = this.unitList.find((item) => item.constValue === val).constKey
+    //   this.pleaseChoose = val
+    // },
+
+    handleExamine() {},
+    approve() {},
+    // returnsales() {
+    //   this.$router.push({ path: 'purchaseContract' })
+    // },
+    selectChapterTwo(e) {
+      for (var i = 0; i < this.ChapterTwoList.length; i++) {
+        if (this.ChapterTwoList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.ChapterTwoList[i].constKey
+        }
+      }
+    },
+    selectunitList(e) {
+      for (var i = 0; i < this.unitList.length; i++) {
+        if (this.unitList[i].constValue == e) {
+          this.deptBudgetList.acceptanceMethodKey = this.unitList[i].constKey
+        }
+      }
+    },
+    selectgrade(e) {
+      for (var i = 0; i < this.gradeList.length; i++) {
+        if (this.gradeList[i].constValue == e) {
+          this.deptBudgetList.gradeKey = this.gradeList[i].constKey
+        }
+      }
+    },
+    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
+        }
+      }
+    },
+    // 编辑
+    editClick(item, index) {
+      const map = JSON.parse(JSON.stringify(item))
+      if (Object.is(item.id, 1)) {
+        return
+      }
+      if (Object.is(this.unitList[index].flag, 'delete')) {
+        map.flag = 'check'
+        this.$set(this.unitList, index, map)
+      } else {
+        map.flag = 'delete'
+        this.$set(this.unitList, index, map)
+      }
+    },
+    // 删除
+    deleteClick(item, index) {
+      if (Object.is(item.constKey, 1)) {
+        return
+      }
+      if (!item.constValue) {
+        this.unitList.splice(index, 1)
+        return
+      }
+      delxiala({ id: this.unitList[index].id })
+        .toPromise()
+        .then((response) => {
+          this.getUnitList()
+          this.pleaseChoose = ''
+        })
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+.el-form {
+  padding: 0 15%;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid #cdd2dc;
+  border-bottom: 1px solid #cdd2dc;
+}
+.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;
+}
+.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 #cdd2dc;
+  background: #fafbfc;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 140px;
+  text-align: center;
+  background: #f0f2f6;
+  // border: 1px solid #cdd2dc;
+}
+.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;
+}
+.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;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 130px;
+}
+.ws-info-table .el-form-item{
+  width: 30%;
+}
+.readonly :after{
+  display: none;
+}
+.el-textarea__inner{
+  display: none;
+}
+.el-form{
+  margin-top: 50px;
+}
+.readonly{
+  width: 16%;
+}
+.readonly :after{
+  display: none;
+}
+.ws-info-table{
+  margin-top: 50px;
+}
+.ws-info-table .el-form-item{
+  width: 33.33%;
+}
+.readonly{
+  display: none;
+}
+
+</style>

+ 369 - 0
src/views/warehouse/warehouseManagementIoss.vue

@@ -0,0 +1,369 @@
+<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>
+    <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-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="shippingType">
+          <ws-input
+            v-model="deptBudgetList.shippingType"
+            placeholder="当期累计入库量(吨)"
+            maxlength="20"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--当期累计出库量(吨)-->
+        <ws-form-item
+          label="当期累计出库量(吨)"
+          span="1"
+          prop="buyer"
+          class="readonly"
+        >
+          <ws-input
+            v-model="deptBudgetList.buyer"
+            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>
+
+        <!--实际库存(吨)-->
+        <ws-form-item
+          label="实际库存(吨)"
+          span="1"
+          prop="seller"
+          class="readonly"
+        >
+          <ws-input
+            v-model="deptBudgetList.seller"
+            placeholder="实际库存(吨)"
+            maxlength="100"
+            size="small"
+          />
+        </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>
+
+        <!--库损比例-->
+        <ws-form-item label="库损比例" span="1" prop="contractNo">
+          <ws-input
+            v-model.number="deptBudgetList.buyerPhone"
+            placeholder="库损比例"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <p>注:提交成功后,当期实际库存将作为下一期的初始库存。</p>
+      </ws-form>
+
+      <div style="text-align: right; padding: 10px">
+        <el-button
+          class="bg-bottom-up"
+          type="primary"
+          size="small"
+          @click="submit()"
+          >提交</el-button
+        >
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import {
+  getList,
+  export1,
+  billoperatehis,
+} from '@/model/contarct/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,
+      // 提交类型
+      submitType: true,
+      selectpackingMethod: {},
+      size: 10,
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      packtypeList: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM'),
+      },
+      contractList: [],
+      deptBudgetList: {},
+      historyList: [],
+
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  activated() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    //返回按钮
+    returnWarehouse() {
+      this.$router.push({ path: 'warehouseManagementList' })
+    },
+    //提交按钮
+    submit(){
+      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
+    },
+    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() {
+      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) {
+          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
+        })
+    },
+    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(
+        {
+          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>
+.center {
+  position: relative;
+  margin-top: 100px;
+  top: 100px;
+  width: 40%;
+  height: 700px;
+  margin: 0 auto; 
+}
+/deep/.el-form-item__label {
+    width: 160px;
+}
+/deep/.el-input--small{
+  width: 70%;
+}
+.container .bg-bottom {
+  position: absolute;
+  float: right;
+  top: 15px;
+  right: 20px;
+}
+</style>

+ 317 - 0
src/views/warehouse/warehouseManagementIossRecord.vue

@@ -0,0 +1,317 @@
+<!--仓库管理-->
+<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>
+    <div class="connert">
+      <h2>鲅鱼圈一号库  102仓位</h2>
+      <el-table
+        class="wenzi"
+        :data="contractList.records"
+        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="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="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>
+      
+    </div>
+  </div>
+</template>
+<script>
+import {
+  getList,
+  export1,
+  editstatus,
+  billoperatehis,
+} from '@/model/contarct/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: '',
+      currentPage: 1,
+      pageSize: 10,
+      searchType: 1,
+       searchTypeText: '未完成',
+       searchKeyWord: '',
+      contractType: 2,
+      startDate: null,
+      endDate: null,
+      // 提交类型
+      submitType: true,
+      size: 10,
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM'),
+      },
+      contractList: [],
+      deptBudgetList: {},
+      historyList: [],
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  activated() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    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
+    },
+    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() {
+      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
+        })
+    },
+    editClick(row) {
+      var status = ''
+      if (row.status == '待执行' || row.status == '已完成') {
+        status = '执行中'
+      } else if (row.status == '执行中') {
+        status = '已完成'
+      }
+      //cancelButtonClass: "btn-custom-cancel"
+      this.$confirm(`是否将状态改为${status}`, {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(() => {
+          editstatus({ id: row.id })
+            .toPromise()
+            .then((response) => {
+              this.$notify.success({
+                title: '成功',
+                message: '状态修改成功',
+              })
+              this.getList()
+            })
+            .catch((response) => {
+              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
+            })
+        })
+        .catch(() => {
+          return false
+        })
+    },
+    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
+        })
+    },
+    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(
+        {
+          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',
+      })
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.container .bg-left {
+  margin-left: 40px;
+}
+.container .bg-bottom {
+  position: absolute;
+  float: right;
+  top: 15px;
+  right: 20px;
+}
+.connert {
+  width: 90%;
+  margin: 0 auto;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+
+
+</style>

+ 141 - 491
src/views/warehouse/warehouseManagementList.vue

@@ -38,7 +38,7 @@
       </template>
       <template slot="right">
         <ws-input
-          v-model="warehouseName"
+          v-model="searchKeyWord"
           placeholder="请输入仓库名"
           clearable
           maxlength="500"
@@ -67,108 +67,84 @@
         /></ws-button>
       </template>
     </BaseHeaderLayout>
-    <el-table
-      class="wenzi"
-      :data="warehouselist.records"
-      style="width: 100%; margin-top: 10px"
-    >
-      <!-- <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="仓库名" width="80">
-      </el-table-column>
-      <el-table-column prop="goodsName" label="仓库编号" width="80">
-      </el-table-column>
-      <el-table-column prop="grade" label="容量(吨)" width="80">
-        <!-- <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="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="address" label="操作" width="200">
-        <template slot-scope="scope">
-          <img
-            width="16"
-            height="16"
-            style="vertical-align: text-top; margin: 0 6px"
-            src="../../../public/img/chakan.png"
-            @click="handleExamine(scope.row)"
-            alt=""
-          />
-          <img
-            width="17"
-            height="16"
-            style="vertical-align: text-top; margin: 0 6px"
-            src="../../../public/img/bianji.png"
-            @click="handleEdit(scope.row)"
-            alt=""
-          />
-          <img
-            width="16"
-            height="17"
-            style="
-              vertical-align: text-top;
-              position: relative;
-              top: -1px;
-              margin: 0 6px;
+    <div class="connert">
+      <el-table
+        class="wenzi"
+        :data="contractList.records"
+        style="width: 100%; margin-top: 20px"
+        height="780"
+      >
+        <el-table-column prop="contractNo" label="仓库名" width="80">
+        </el-table-column>
+        <el-table-column prop="goodsName" label="仓库编号" width="80">
+        </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="seller" label="出入库" width="160">
+          <button
+            type="primary"
+            @click="nocomplete()"
+            v-hasPermission="
+              `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
             "
-            src="../../../public/img/shanchu.png"
-            @click="handleDelete(scope.row)"
-            alt=""
-          />
-        </template>
-      </el-table-column>
-    </el-table>
-    <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>
-    <!-- 附件弹框 -->
-    <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>
+          >
+            待完成
+          </button>
+          <button
+            type="primary"
+            @click="delivery()"
+            v-hasPermission="
+              `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
+            "
+          >
+            出库
+          </button>
+          <button
+            type="primary"
+            @click="warehousing()"
+            v-hasPermission="
+              `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
+            "
+          >
+            入库
+          </button>
+        </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> -->
+        </el-table-column>
+      </el-table>
+    </div>
   </div>
 </template>
 <script>
-import { getList } from '@/model/warehouse/index'
+import {
+  getList,
+  export1,
+  editstatus,
+  billoperatehis,
+} from '@/model/contarct/index'
 import { downloadFile } from '@/utils/batchDown'
 import Pagination from '@/components/Pagination'
 import WsUpload from '@/components/WsUpload'
@@ -194,14 +170,15 @@ export default {
       dialogApproveFormVisible: false,
       // 船舶类型
       monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+
       // 是否显示
       showType: true,
       // 年
       year: '',
-      deptBudgetTotal: 0,
       currentPage: 1,
       pageSize: 10,
-      appendixIdsAdd: '',
       searchType: 1,
       searchTypeText: '未完成',
       searchKeyWord: '',
@@ -210,69 +187,22 @@ export default {
       endDate: null,
       // 提交类型
       submitType: true,
-      contractForm: {},
-      categoryIndex: 0,
-      rulesVendor: {},
-
       size: 10,
       compId: sessionStorage.getItem('ws-pf_compId'),
-      handleCurrentChange: {},
       deptCircularPage: {},
       date: {
         year: dayjs().format('YYYY'),
         month: dayjs().format('MM'),
       },
-      warehouselist: [],
+      contractList: [],
       deptBudgetList: {},
       historyList: [],
-      accessoryTFs: false,
-      warehouseName: '',
-      pickerOptions: {
-        shortcuts: [
-          {
-            text: '本周',
-            onClick(picker) {
-              const end = new Date()
-              const start = new Date()
-              var thisDay = start.getDay()
-              var thisDate = start.getDate()
-              if (thisDay != 0) {
-                start.setDate(thisDate - thisDay)
-              }
-              picker.$emit('pick', [start, end])
-            },
-          },
-          {
-            text: '本月',
-            onClick(picker) {
-              const end = new Date()
-              const start = new Date()
-              start.setDate(1)
-              picker.$emit('pick', [start, end])
-            },
-          },
-          {
-            text: '本季度',
-            onClick(picker) {
-              var oDate = new Date()
-
-              var thisYear = oDate.getFullYear()
-              var thisMonth = oDate.getMonth() + 1
-
-              var n = Math.ceil(thisMonth / 3) // 季度
-
-              var Month = n * 3 - 1
-
-              var start = new Date(thisYear, Month - 2, 1)
-              var end = new Date()
-
-              picker.$emit('pick', [start, end])
-            },
-          },
-        ],
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
       },
-      value1: '',
-      value2: '',
+      accessoryTFs: false,
     }
   },
   activated() {
@@ -283,12 +213,41 @@ export default {
     this.showType = this.isShow
   },
   methods: {
-    handleLook() {},
+    //出库
+    delivery() {
+      this.$router.push({ path: 'warehouseManagementDelivery' })
+    },
+    //入库
+    warehousing() {
+      this.$router.push({ path: 'warehouseManagementPut' })
+    },
+    //待完成
+    nocomplete() {
+      this.$router.push({ path: 'warehouseManagementNoComplete' })
+    },
+    //记录
+    record() {
+      this.$router.push({ path: 'warehouseManagementRecord' })
+    },
+    //盘损
+    loss() {
+      this.$router.push({ path: 'warehouseManagementIoss' })
+    },
+    //查看
+    handleLook() {
+      this.$router.push({ path: 'warehouseManagementLook' })
+    },
+    //添加
     handleAdd() {
       this.$router.push({ path: 'warehouseManagementAdd' })
     },
-    handleEdit() {},
-    handleDelete() {},
+    //编辑
+    handleEdit() {
+      this.$router.push({ path: 'warehouseManagementEdit' })
+    },
+    handleDelete() {
+      this.$router.push({ path: 'warehouseManagementDelete' })
+    },
     dateFormat(fmt, date) {
       let ret
       const opt = {
@@ -327,25 +286,32 @@ export default {
     getList() {
       getList({
         compId: sessionStorage.getItem('ws-pf_compId'),
-        warehouseName: this.warehouseName,
+        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) => {
-          this.warehouselist = response
-          console.log(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
         })
     },
-    // 上传附件
-    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
-    },
     editClick(row) {
       var status = ''
       if (row.status == '待执行' || row.status == '已完成') {
@@ -404,7 +370,6 @@ export default {
         query: { id: row.id },
       })
     },
-
     // 关闭 dialog时 处理文件url 初始化upload组件
     handleCloe() {
       this.dialogViewSpareMoney = false
@@ -446,331 +411,16 @@ export default {
         type: 'xls',
       })
     },
-    // deletecontract(){},
-    //删除
-
-    approve() {},
-    listQuery() {},
-    total() {},
-    clearfiltQuery() {},
-    selectCrtDuty() {},
   },
 }
 </script>
 <style lang="scss" scoped>
+.connert {
+  width: 90%;
+  margin: 0 auto;
+}
 .vertical-text-left {
   width: 62px;
   text-align: right;
 }
-.flex {
-  display: flex;
-}
-.el-range-editor.el-input__inner {
-  margin-left: 10px;
-}
-/deep/.base_header_layout .grid-content.right .find.el-button--primary {
-  width: 30px;
-  margin-left: -10px;
-  border-top-left-radius: 0px;
-  border-bottom-left-radius: 0px;
-}
-.el-button--primary {
-  background-color: #5878e8;
-  border-color: #5878e8;
-}
-.el-button--default {
-  border: 1px solid #5473e8;
-  color: #5473e8;
-}
-.warning {
-  width: 100%;
-  height: 2px;
-  background: red;
-}
-.executory,
-.inExecution,
-.done {
-  width: 6px;
-  height: 6px;
-  display: inline-block;
-  border-radius: 50%;
-  position: relative;
-  top: -1px;
-}
-.executory {
-  background: #ff9f24;
-}
-.inExecution {
-  background: #5878e8;
-}
-.done {
-  background: #50cad4;
-}
-.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;
-}
-.wrap {
-  width: 400px;
-  position: absolute;
-  top: 131px;
-  left: 794px;
-  transform-origin: right center;
-  z-index: 2005;
-}
-.vertical-line {
-  height: 100px;
-  border-left: 2px solid #e9ecf7;
-  margin-left: 4px;
-  padding: 0 3px;
-  // border-image: -webkit-linear-gradient(#00eba7, #08b8e6) 30 30;
-  // border-image: -moz-linear-gradient(#00eba7, #08b8e6) 30 30;
-  // border-image: linear-gradient(#00eba7, #08b8e6) 30 30;
-}
-.el-pagination {
-  padding: 10px 15px;
-  margin-bottom: 0;
-  text-align: center;
-}
-/deep/.el-pager li.active {
-  color: #5878e8;
-  cursor: default;
-}
-/deep/.el-pager li:hover {
-  color: #5878e8;
-  cursor: default;
-}
-.vertical-circle {
-  width: 10px;
-  height: 10px;
-  border: 2px solid #5878e8;
-  background-color: #ffffff;
-  -webkit-border-radius: 100px;
-}
-.vertical-circle:first-child {
-  color: red;
-}
-.vertical-text {
-  margin: 0 10px;
-  color: #8890b1;
-  font-size: 12px;
-  margin-top: -4px;
-}
-/deep/.el-table .el-table__header .cell,
-/deep/.el-table .el-table__body .cell {
-  text-align: center;
-}
-.typeselect {
-  width: 500px;
-}
-.padding-xs {
-  padding: 15px;
-  text-align: right;
-}
-.clearfix:after {
-  content: '';
-  display: block;
-  clear: both;
-}
-.el-table {
-  font-size: 16px;
-}
-.taskType {
-  width: 100%;
-  background-color: #fff;
-  margin-top: 2px;
-  margin-bottom: 10px;
-  list-style: none;
-  // padding-bottom: 20px;
-  li {
-    float: left;
-    border: 1px solid #6ea0f3;
-    border-radius: 5px;
-    max-width: 190px;
-    padding: 0 5px;
-    text-align: center;
-    margin: 10px 20px;
-    cursor: pointer;
-    font-size: 14px;
-    p {
-      margin: 8px 0px;
-      span {
-        color: #e74c3c;
-      }
-    }
-  }
-  li:hover {
-    background-color: #e4eeff;
-    color: #1d6ced;
-  }
-}
-.el-date-editor--date {
-  margin: 0 10px;
-}
-.findValue {
-  margin: 0 10px;
-}
-/deep/.findValue .el-input__inner {
-  border-top-right-radius: 0px;
-  border-bottom-right-radius: 0px;
-}
-.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;
-}
-/*.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;
-  }
-  .el-message-box {
-    width: 440px;
-    height: 160px;
-    background: #ffffff;
-    box-shadow: 0px 2px 31px 0px rgba(66, 75, 112, 0.23);
-    border-radius: 4px;
-  }
-  /deep/.el-message-box__message p {
-    width: 351px;
-    height: 20px;
-    font-size: 14px;
-    font-family: PingFangSC-Regular, PingFang SC;
-    font-weight: 400;
-    color: #191919;
-    line-height: 20px;
-  }
-  .el-message-box__title {
-    width: 440px;
-    height: 160px;
-    background: #ffffff;
-    box-shadow: 0px 2px 31px 0px rgba(66, 75, 112, 0.23);
-    border-radius: 4px;
-  }
-}
 </style>

+ 436 - 0
src/views/warehouse/warehouseManagementLook.vue

@@ -0,0 +1,436 @@
+<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>
+    <div class="center">
+      <ws-form ref="deptBudgetList" :model="deptBudgetList">
+        <!--基本信息-->
+        <ws-info-table>
+          <!--仓库名称-->
+          <ws-form-item
+            label="仓库名称"
+            span="1"
+            prop="contractNo"
+            class="readonly"
+          >
+            <ws-select
+              v-model="deptBudgetList.packingMethod"
+              placeholder=""
+              class="typeselect"
+              @change="selectpackingMethod"
+            >
+              <ws-option
+                v-for="item in packtypeList"
+                :key="item.constKey"
+                :label="item.constValue"
+                :value="item.constValue"
+              />
+            </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>
+          <!--负责人电话-->
+          <ws-form-item
+            label="负责人电话"
+            span="1"
+            prop="buyer"
+            class="readonly"
+          >
+            <ws-input
+              v-model="deptBudgetList.buyer"
+              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>
+          <!--详细地址-->
+          <ws-form-item
+            label="详细地址"
+            span="1"
+            prop="seller"
+            class="readonly"
+          >
+            <ws-input
+              v-model="deptBudgetList.seller"
+              placeholder="请输入详细地址"
+              maxlength="100"
+              size="small"
+            />
+          </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>
+          <!--仓位编号-->
+          <ws-form-item label="仓位编号" span="1" prop="contractNo">
+            <ws-input
+              v-model.number="deptBudgetList.buyerPhone"
+              placeholder="请输入仓位编号"
+              maxlength="100"
+              size="small"
+            />
+          </ws-form-item>
+          <!--最大储量(吨)-->
+          <ws-form-item label="最大储量(吨)" span="1" prop="placeDelivery">
+            <ws-input
+              v-model="deptBudgetList.placeDelivery"
+              placeholder="请输入最大储量(吨)"
+              maxlength="20"
+              size="small"
+            />
+          </ws-form-item>
+          <!--现有储量-->
+          <ws-form-item label="现有储量" span="1" prop="sellerPhone">
+            <ws-input
+              v-model="deptBudgetList.sellerPhone"
+              placeholder="请输入现有储量"
+              maxlength="100"
+              size="small"
+            />
+          </ws-form-item>
+          <!--备注(选项)-->
+          <ws-form-item label="备注(选项)" span="1" prop="sellerPhone">
+            <ws-input
+              v-model="deptBudgetList.sellerPhone"
+              placeholder="请输入备注(选项)"
+              maxlength="100"
+              size="small"
+            />
+          </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>
+
+          <!--最大储量(吨)-->
+          <ws-form-item label="最大储量(吨)" span="1" prop="placeDelivery">
+            <ws-input
+              v-model="deptBudgetList.placeDelivery"
+              placeholder="请输入最大储量(吨)"
+              maxlength="20"
+              size="small"
+            />
+          </ws-form-item>
+          <!--现有储量-->
+          <ws-form-item label="现有储量" span="1" prop="sellerPhone">
+            <ws-input
+              v-model="deptBudgetList.sellerPhone"
+              placeholder="请输入现有储量"
+              maxlength="100"
+              size="small"
+            />
+          </ws-form-item>
+          <!--备注(选项)-->
+          <ws-form-item label="备注(选项)" span="1" prop="sellerPhone">
+            <ws-input
+              v-model="deptBudgetList.sellerPhone"
+              placeholder="请输入备注(选项)"
+              maxlength="100"
+              size="small"
+            />
+          </ws-form-item>
+        </ws-info-table>
+      </ws-form>
+    </div>
+
+    <div style="text-align: right; padding: 10px">
+      <el-button
+        class="bg-bottom-up"
+        type="primary"
+        size="small"
+        @click="returnWarehouse()"
+        >关闭</el-button
+      >
+    </div>
+  </div>
+</template>
+<script>
+import {
+  getList,
+  export1,
+  editstatus,
+  billoperatehis,
+} from '@/model/contarct/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+import { dayjs, fmoney, 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,
+      // 提交类型
+      submitType: true,
+      selectpackingMethod:{},
+      size: 10,
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      packtypeList:{},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM'),
+      },
+      contractList: [],
+      deptBudgetList: {},
+      historyList: [],
+
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  activated() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.getList()
+    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
+    },
+    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() {
+      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) {
+          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
+        })
+    },
+    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(
+        {
+          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>
+.center {
+  position: relative;
+  margin-top: 100px;
+  top: 100px;
+  width: 90%;
+  height: 500px;
+  margin: 0 auto;
+}
+.container .bg-left {
+  margin-left: 40px;
+}
+.container .bg-bottom {
+  position: absolute;
+  float: right;
+  top: 15px;
+  right: 20px;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+/deep/.el-form-item {
+    width: 33%;
+}
+</style>

+ 329 - 0
src/views/warehouse/warehouseManagementNoComplete.vue

@@ -0,0 +1,329 @@
+<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>
+    <div class="center">
+      <h2>鲅鱼圈一号库 102仓位(容量100吨)</h2>
+      <ws-form ref="deptBudgetList" :model="deptBudgetList">
+        <el-table>
+          <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="address" label="操作" width="200">
+          <ws-button
+            type="primary"
+            @click="edits()"
+            v-hasPermission="
+              `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
+            "
+            >编辑</ws-button
+          >
+          <ws-button
+            type="primary"
+            @click="deletes()"
+            v-hasPermission="
+              `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
+            "
+            >删除</ws-button
+          >
+          <!-- </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>
+      </ws-form>
+    </div>
+  </div>
+</template>
+<script>
+import {
+  getList,
+  export1,
+  editstatus,
+  billoperatehis,
+} from '@/model/contarct/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+import { dayjs, fmoney, 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,
+      // 提交类型
+      submitType: true,
+      selectpackingMethod: {},
+      size: 10,
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      packtypeList: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM'),
+      },
+      contractList: [],
+      deptBudgetList: {},
+      historyList: [],
+
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  activated() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    //返回按钮
+    returnWarehouse() {
+      this.$router.push({ path: 'warehouseManagementList' })
+    },
+    //删除
+    deletes(){
+
+    },
+    //编辑
+    edits(){
+      this.$router.push({ path: 'warehouseManagementPerfectput' })
+    },
+    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
+    },
+    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() {
+      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) {
+          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
+        })
+    },
+    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(
+        {
+          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>
+.center {
+  position: relative;
+  top: 50px;
+  width: 90%;
+  height: 500px;
+  margin: 0 auto;
+}
+.container .bg-left {
+  margin-left: 40px;
+}
+.container .bg-bottom {
+  position: absolute;
+  float: right;
+  top: 15px;
+  right: 20px;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+/deep/.el-form-item {
+  width: 33%;
+}
+</style>

+ 516 - 0
src/views/warehouse/warehouseManagementPerfectput.vue

@@ -0,0 +1,516 @@
+// 完善入库信息
+<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="returnNoComplete()"
+          >返回</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-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="shippingType">
+          <ws-input
+            v-model="deptBudgetList.shippingType"
+            placeholder="请输入毛重"
+            maxlength="20"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--皮重(吨)-->
+        <ws-form-item label="皮重(吨)" span="1" prop="buyer" class="readonly">
+          <ws-input
+            v-model="deptBudgetList.buyer"
+            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>
+        <!-- 品级 -->
+        <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-input
+            v-model="deptBudgetList.seller"
+            placeholder="请输入出库经办人姓名"
+            maxlength="100"
+            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>
+        <!-- 入库类型 -->
+        <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-input
+            v-model="deptBudgetList.sourceGoods"
+            placeholder="请输入车牌号"
+            maxlength="20"
+            size="small"
+          />
+        </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>
+
+        <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> 
+  </div>
+</template>
+<script>
+import { getList, export1, billoperatehis } from '@/model/contarct/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,
+      selectpackingMethod:{},
+
+      appendixIdsAdd:{},
+      uploadSuccess:{},
+      onChange:{},
+
+      size: 10,
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      packtypeList: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM'),
+      },
+      contractList: [],
+      deptBudgetList: {},
+      historyList: [],
+
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  activated() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    //返回按钮
+    returnNoComplete() {
+      this.$router.push({ path: 'warehouseManagementNoComplete' })
+    },
+    //提交按钮
+    submit() {
+      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
+    },
+    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() {
+      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) {
+          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
+        })
+    },
+    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(
+        {
+          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>
+.center {
+  position: relative;
+  top: 50px;
+  width: 40%;
+  height: 2000px;
+  margin: 0 auto;
+}
+/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%;
+}
+.container {
+  overflow: scroll;
+  height: 120vh;
+}
+/deep/.ws-info-table[data-v-850a44a6] .el-form-item .el-form-item__label{
+  text-align: center;
+}
+.deliverydate{
+  width: 35%;
+}
+.center[data-v-32a9842f]{
+  margin-top: -60px;
+}
+</style>

+ 516 - 0
src/views/warehouse/warehouseManagementPut.vue

@@ -0,0 +1,516 @@
+// 入库登记
+<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>
+    <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-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="shippingType">
+          <ws-input
+            v-model="deptBudgetList.shippingType"
+            placeholder="请输入毛重"
+            maxlength="20"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--皮重(吨)-->
+        <ws-form-item label="皮重(吨)" span="1" prop="buyer" class="readonly">
+          <ws-input
+            v-model="deptBudgetList.buyer"
+            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>
+        <!-- 品级 -->
+        <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-input
+            v-model="deptBudgetList.seller"
+            placeholder="请输入出库经办人姓名"
+            maxlength="100"
+            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>
+        <!-- 入库类型 -->
+        <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-input
+            v-model="deptBudgetList.sourceGoods"
+            placeholder="请输入车牌号"
+            maxlength="20"
+            size="small"
+          />
+        </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>
+
+        <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> 
+  </div>
+</template>
+<script>
+import { getList, export1, billoperatehis } from '@/model/contarct/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,
+      selectpackingMethod:{},
+
+      appendixIdsAdd:{},
+      uploadSuccess:{},
+      onChange:{},
+
+      size: 10,
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      packtypeList: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM'),
+      },
+      contractList: [],
+      deptBudgetList: {},
+      historyList: [],
+
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  activated() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    //返回按钮
+    returnWarehouse() {
+      this.$router.push({ path: 'warehouseManagementList' })
+    },
+    //提交按钮
+    submit() {
+      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
+    },
+    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() {
+      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) {
+          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
+        })
+    },
+    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(
+        {
+          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>
+.center {
+  position: relative;
+  top: 50px;
+  width: 40%;
+  height: 2000px;
+  margin: 0 auto;
+}
+/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%;
+}
+.container {
+  overflow: scroll;
+  height: 120vh;
+}
+/deep/.ws-info-table[data-v-850a44a6] .el-form-item .el-form-item__label{
+  text-align: center;
+}
+.deliverydate{
+  width: 35%;
+}
+.center[data-v-32a9842f]{
+  margin-top: -60px;
+}
+</style>

+ 332 - 0
src/views/warehouse/warehouseManagementRecord.vue

@@ -0,0 +1,332 @@
+<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="iossrecord()"
+          >盘损记录</el-button
+        >
+      </el-col>
+    </el-row>
+    <div class="center">
+      <h2>鲅鱼圈一号库 102仓位(容量100吨)</h2>
+      <p>我是备注我是备注。。。。。。。。。。。。。</p>
+      <ws-form ref="deptBudgetList" :model="deptBudgetList">
+        <ws-button
+          type="primary"
+          @click="1"
+          v-hasPermission="
+            `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
+          "
+          >全部记录</ws-button
+        >
+        <ws-button
+          type="primary"
+          @click="1"
+          v-hasPermission="
+            `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
+          "
+          >出库记录</ws-button
+        >
+        <ws-button
+          type="primary"
+          @click="1"
+          v-hasPermission="
+            `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
+          "
+          >入库记录</ws-button
+        >
+        <el-table>
+          <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="buyer" label="录入时间"> </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>
+      </ws-form>
+    </div>
+  </div>
+</template>
+<script>
+import {
+  getList,
+  export1,
+  editstatus,
+  billoperatehis,
+} from '@/model/contarct/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+import { dayjs, fmoney, 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,
+      // 提交类型
+      submitType: true,
+      selectpackingMethod: {},
+      size: 10,
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      packtypeList: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM'),
+      },
+      contractList: [],
+      deptBudgetList: {},
+      historyList: [],
+
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  activated() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    //返回按钮
+    returnWarehouse() {
+      this.$router.push({ path: 'warehouseManagementList' })
+    },
+    //
+    iossrecord() {
+      this.$router.push({ path: 'warehouseManagementIossRecord' })
+    },
+    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
+    },
+    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() {
+      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) {
+          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
+        })
+    },
+    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(
+        {
+          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>
+.center {
+  position: relative;
+  top: 50px;
+  width: 90%;
+  height: 500px;
+  margin: 0 auto;
+}
+.container .bg-left {
+  margin-left: 40px;
+}
+.container .bg-bottom {
+  position: absolute;
+  float: right;
+  top: 15px;
+  right: 20px;
+}
+.vertical-text-left {
+  width: 62px;
+  text-align: right;
+}
+/deep/.el-form-item {
+  width: 33%;
+}
+</style>