Procházet zdrojové kódy

Merge branch 'master' of http://192.168.1.41:3000/SmartCost/ConstructionOperation

zhangweicheng před 3 roky
rodič
revize
c2cd3d7bb5

+ 4 - 0
modules/all_models/user.js

@@ -34,6 +34,10 @@ let upgrade = mongoose.Schema({
         type:String,
         default: '',
     },
+    lock: { // 锁信息 1:借出;2:销售;
+        type: Number,
+        default: 0
+    },
 }, { _id: false })
 
 const userdList = mongoose.Schema({

+ 101 - 83
package-lock.json

@@ -35,7 +35,7 @@
     },
     "addressparser": {
       "version": "1.0.1",
-      "resolved": "http://192.168.1.90:4873/addressparser/-/addressparser-1.0.1.tgz",
+      "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz",
       "integrity": "sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y=",
       "optional": true
     },
@@ -988,7 +988,7 @@
     },
     "bl": {
       "version": "1.1.2",
-      "resolved": "http://192.168.1.90:4873/bl/-/bl-1.1.2.tgz",
+      "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz",
       "integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=",
       "optional": true,
       "requires": {
@@ -997,13 +997,13 @@
       "dependencies": {
         "process-nextick-args": {
           "version": "1.0.7",
-          "resolved": "http://192.168.1.90:4873/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+          "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
           "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
           "optional": true
         },
         "readable-stream": {
           "version": "2.0.6",
-          "resolved": "http://192.168.1.90:4873/readable-stream/-/readable-stream-2.0.6.tgz",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
           "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
           "optional": true,
           "requires": {
@@ -1017,7 +1017,7 @@
         },
         "string_decoder": {
           "version": "0.10.31",
-          "resolved": "http://192.168.1.90:4873/string_decoder/-/string_decoder-0.10.31.tgz",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
           "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
           "optional": true
         }
@@ -1092,7 +1092,7 @@
     },
     "boom": {
       "version": "2.10.1",
-      "resolved": "http://192.168.1.90:4873/boom/-/boom-2.10.1.tgz",
+      "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
       "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
       "optional": true,
       "requires": {
@@ -1194,7 +1194,7 @@
     },
     "buildmail": {
       "version": "4.0.1",
-      "resolved": "http://192.168.1.90:4873/buildmail/-/buildmail-4.0.1.tgz",
+      "resolved": "https://registry.npmjs.org/buildmail/-/buildmail-4.0.1.tgz",
       "integrity": "sha1-h393OLeHKYccmhBeO4N9K+EaenI=",
       "optional": true,
       "requires": {
@@ -1209,7 +1209,7 @@
       "dependencies": {
         "punycode": {
           "version": "1.4.1",
-          "resolved": "http://192.168.1.90:4873/punycode/-/punycode-1.4.1.tgz",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
           "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
           "optional": true
         }
@@ -1441,7 +1441,7 @@
     },
     "cryptiles": {
       "version": "2.0.5",
-      "resolved": "http://192.168.1.90:4873/cryptiles/-/cryptiles-2.0.5.tgz",
+      "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
       "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
       "optional": true,
       "requires": {
@@ -1475,12 +1475,12 @@
     "data-uri-to-buffer": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz",
-      "integrity": "sha1-dxY+qcINhkG0cH6PGKvfmnjzSDU=",
+      "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==",
       "optional": true
     },
     "date-format": {
       "version": "1.2.0",
-      "resolved": "http://192.168.1.90:4873/date-format/-/date-format-1.2.0.tgz",
+      "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz",
       "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg="
     },
     "debug": {
@@ -1653,7 +1653,7 @@
     },
     "double-ended-queue": {
       "version": "2.1.0-0",
-      "resolved": "http://192.168.1.90:4873/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz",
+      "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz",
       "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=",
       "optional": true
     },
@@ -1810,7 +1810,7 @@
     "exit-on-epipe": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
-      "integrity": "sha1-C92S6H1ShdJn2qgXHQ6wYVlolpI="
+      "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="
     },
     "express": {
       "version": "4.17.1",
@@ -1978,7 +1978,7 @@
     "file-uri-to-path": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
-      "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=",
+      "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
       "optional": true
     },
     "finalhandler": {
@@ -2139,7 +2139,7 @@
     },
     "generate-object-property": {
       "version": "1.2.0",
-      "resolved": "http://192.168.1.90:4873/generate-object-property/-/generate-object-property-1.2.0.tgz",
+      "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
       "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
       "optional": true,
       "requires": {
@@ -2180,15 +2180,6 @@
         "once": "^1.3.0"
       },
       "dependencies": {
-        "graceful-fs": {
-          "version": "3.0.12",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.12.tgz",
-          "integrity": "sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==",
-          "dev": true,
-          "requires": {
-            "natives": "^1.1.3"
-          }
-        },
         "minimatch": {
           "version": "1.0.0",
           "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz",
@@ -2204,12 +2195,16 @@
     "globals": {
       "version": "9.18.0",
       "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
-      "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo="
+      "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ=="
     },
     "graceful-fs": {
-      "version": "4.2.3",
-      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
-      "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
+      "version": "3.0.12",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.12.tgz",
+      "integrity": "sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==",
+      "dev": true,
+      "requires": {
+        "natives": "^1.1.3"
+      }
     },
     "har-schema": {
       "version": "2.0.0",
@@ -2249,7 +2244,7 @@
     },
     "hawk": {
       "version": "3.1.3",
-      "resolved": "http://192.168.1.90:4873/hawk/-/hawk-3.1.3.tgz",
+      "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
       "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
       "optional": true,
       "requires": {
@@ -2261,7 +2256,7 @@
     },
     "hipchat-notifier": {
       "version": "1.1.0",
-      "resolved": "http://192.168.1.90:4873/hipchat-notifier/-/hipchat-notifier-1.1.0.tgz",
+      "resolved": "https://registry.npmjs.org/hipchat-notifier/-/hipchat-notifier-1.1.0.tgz",
       "integrity": "sha1-ttJJdVQ3wZEII2d5nTupoPI7Ix4=",
       "optional": true,
       "requires": {
@@ -2271,7 +2266,7 @@
     },
     "hoek": {
       "version": "2.16.3",
-      "resolved": "http://192.168.1.90:4873/hoek/-/hoek-2.16.3.tgz",
+      "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
       "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
       "optional": true
     },
@@ -2360,7 +2355,7 @@
     },
     "httpntlm": {
       "version": "1.6.1",
-      "resolved": "http://192.168.1.90:4873/httpntlm/-/httpntlm-1.6.1.tgz",
+      "resolved": "https://registry.npmjs.org/httpntlm/-/httpntlm-1.6.1.tgz",
       "integrity": "sha1-rQFScUOi6Hc8+uapb1hla7UqNLI=",
       "optional": true,
       "requires": {
@@ -2370,7 +2365,7 @@
     },
     "httpreq": {
       "version": "0.4.24",
-      "resolved": "http://192.168.1.90:4873/httpreq/-/httpreq-0.4.24.tgz",
+      "resolved": "https://registry.npmjs.org/httpreq/-/httpreq-0.4.24.tgz",
       "integrity": "sha1-QzX/2CzZaWaKOUZckprGHWOTYn8=",
       "optional": true
     },
@@ -2519,12 +2514,12 @@
       "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.2.1.tgz",
       "integrity": "sha1-n69ltvttskt/XAYoR16nH5iEAeI=",
       "requires": {
-        "define-properties": "1.1.3"
+        "define-properties": "^1.1.1"
       }
     },
     "is-property": {
       "version": "1.0.2",
-      "resolved": "http://192.168.1.90:4873/is-property/-/is-property-1.0.2.tgz",
+      "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
       "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
       "optional": true
     },
@@ -2538,7 +2533,7 @@
     },
     "is-stream": {
       "version": "1.1.0",
-      "resolved": "http://192.168.1.90:4873/is-stream/-/is-stream-1.1.0.tgz",
+      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
       "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
       "optional": true
     },
@@ -2617,6 +2612,14 @@
       "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
       "requires": {
         "graceful-fs": "^4.1.6"
+      },
+      "dependencies": {
+        "graceful-fs": {
+          "version": "4.2.6",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
+          "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
+          "optional": true
+        }
       }
     },
     "jsonpointer": {
@@ -2664,13 +2667,13 @@
     },
     "libbase64": {
       "version": "0.1.0",
-      "resolved": "http://192.168.1.90:4873/libbase64/-/libbase64-0.1.0.tgz",
+      "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz",
       "integrity": "sha1-YjUag5VjrF/1vSbxL2Dpgwu3UeY=",
       "optional": true
     },
     "libmime": {
       "version": "3.0.0",
-      "resolved": "http://192.168.1.90:4873/libmime/-/libmime-3.0.0.tgz",
+      "resolved": "https://registry.npmjs.org/libmime/-/libmime-3.0.0.tgz",
       "integrity": "sha1-UaGp50SOy9Ms2lRCFnW7IbwJPaY=",
       "optional": true,
       "requires": {
@@ -2681,7 +2684,7 @@
       "dependencies": {
         "iconv-lite": {
           "version": "0.4.15",
-          "resolved": "http://192.168.1.90:4873/iconv-lite/-/iconv-lite-0.4.15.tgz",
+          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz",
           "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=",
           "optional": true
         }
@@ -2689,7 +2692,7 @@
     },
     "libqp": {
       "version": "1.1.0",
-      "resolved": "http://192.168.1.90:4873/libqp/-/libqp-1.1.0.tgz",
+      "resolved": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz",
       "integrity": "sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g=",
       "optional": true
     },
@@ -2751,7 +2754,7 @@
       "dependencies": {
         "axios": {
           "version": "0.15.3",
-          "resolved": "http://192.168.1.90:4873/axios/-/axios-0.15.3.tgz",
+          "resolved": "https://registry.npmjs.org/axios/-/axios-0.15.3.tgz",
           "integrity": "sha1-LJ1jiy4ZGgjqHWzJiOrda6W9wFM=",
           "optional": true,
           "requires": {
@@ -2775,7 +2778,7 @@
         },
         "follow-redirects": {
           "version": "1.0.0",
-          "resolved": "http://192.168.1.90:4873/follow-redirects/-/follow-redirects-1.0.0.tgz",
+          "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.0.0.tgz",
           "integrity": "sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc=",
           "optional": true,
           "requires": {
@@ -2797,7 +2800,7 @@
     },
     "loggly": {
       "version": "1.1.1",
-      "resolved": "http://192.168.1.90:4873/loggly/-/loggly-1.1.1.tgz",
+      "resolved": "https://registry.npmjs.org/loggly/-/loggly-1.1.1.tgz",
       "integrity": "sha1-Cg/B0/o6XsRP3HuJe+uipGlc6+4=",
       "optional": true,
       "requires": {
@@ -2808,25 +2811,25 @@
       "dependencies": {
         "assert-plus": {
           "version": "0.2.0",
-          "resolved": "http://192.168.1.90:4873/assert-plus/-/assert-plus-0.2.0.tgz",
+          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
           "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
           "optional": true
         },
         "aws-sign2": {
           "version": "0.6.0",
-          "resolved": "http://192.168.1.90:4873/aws-sign2/-/aws-sign2-0.6.0.tgz",
+          "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
           "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
           "optional": true
         },
         "caseless": {
           "version": "0.11.0",
-          "resolved": "http://192.168.1.90:4873/caseless/-/caseless-0.11.0.tgz",
+          "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
           "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
           "optional": true
         },
         "form-data": {
           "version": "2.0.0",
-          "resolved": "http://192.168.1.90:4873/form-data/-/form-data-2.0.0.tgz",
+          "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.0.0.tgz",
           "integrity": "sha1-bwrrrcxdoWwT4ezBETfYX5uIOyU=",
           "optional": true,
           "requires": {
@@ -2837,7 +2840,7 @@
         },
         "har-validator": {
           "version": "2.0.6",
-          "resolved": "http://192.168.1.90:4873/har-validator/-/har-validator-2.0.6.tgz",
+          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
           "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
           "optional": true,
           "requires": {
@@ -2849,7 +2852,7 @@
         },
         "http-signature": {
           "version": "1.1.1",
-          "resolved": "http://192.168.1.90:4873/http-signature/-/http-signature-1.1.1.tgz",
+          "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
           "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
           "optional": true,
           "requires": {
@@ -2860,31 +2863,31 @@
         },
         "node-uuid": {
           "version": "1.4.8",
-          "resolved": "http://192.168.1.90:4873/node-uuid/-/node-uuid-1.4.8.tgz",
+          "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz",
           "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=",
           "optional": true
         },
         "oauth-sign": {
           "version": "0.8.2",
-          "resolved": "http://192.168.1.90:4873/oauth-sign/-/oauth-sign-0.8.2.tgz",
+          "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
           "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
           "optional": true
         },
         "punycode": {
           "version": "1.4.1",
-          "resolved": "http://192.168.1.90:4873/punycode/-/punycode-1.4.1.tgz",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
           "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
           "optional": true
         },
         "qs": {
           "version": "6.2.3",
-          "resolved": "http://192.168.1.90:4873/qs/-/qs-6.2.3.tgz",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz",
           "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=",
           "optional": true
         },
         "request": {
           "version": "2.75.0",
-          "resolved": "http://192.168.1.90:4873/request/-/request-2.75.0.tgz",
+          "resolved": "https://registry.npmjs.org/request/-/request-2.75.0.tgz",
           "integrity": "sha1-0rgmiihtoT6qXQGt9dGMyQ9lfZM=",
           "optional": true,
           "requires": {
@@ -2913,7 +2916,7 @@
         },
         "tough-cookie": {
           "version": "2.3.4",
-          "resolved": "http://192.168.1.90:4873/tough-cookie/-/tough-cookie-2.3.4.tgz",
+          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
           "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
           "optional": true,
           "requires": {
@@ -2922,7 +2925,7 @@
         },
         "tunnel-agent": {
           "version": "0.4.3",
-          "resolved": "http://192.168.1.90:4873/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
+          "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
           "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
           "optional": true
         }
@@ -2962,7 +2965,7 @@
     },
     "mailcomposer": {
       "version": "4.0.1",
-      "resolved": "http://192.168.1.90:4873/mailcomposer/-/mailcomposer-4.0.1.tgz",
+      "resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-4.0.1.tgz",
       "integrity": "sha1-DhxEsqB890DuF9wUm6AJ8Zyt/rQ=",
       "optional": true,
       "requires": {
@@ -3197,8 +3200,8 @@
           "integrity": "sha1-TEYTm986HwMt7ZHbSfOO7AFlkFA=",
           "dev": true,
           "requires": {
-            "bson": "1.0.9",
-            "require_optional": "1.0.1"
+            "bson": "~1.0.4",
+            "require_optional": "~1.0.0"
           }
         },
         "process-nextick-args": {
@@ -3296,7 +3299,7 @@
     "mz": {
       "version": "2.7.0",
       "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
-      "integrity": "sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI=",
+      "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
       "requires": {
         "any-promise": "^1.0.0",
         "object-assign": "^4.0.1",
@@ -3344,14 +3347,14 @@
     "node-xlsx": {
       "version": "0.11.2",
       "resolved": "https://registry.npmjs.org/node-xlsx/-/node-xlsx-0.11.2.tgz",
-      "integrity": "sha1-C7A85hvprcCxhtVcSw+EBP4yGq4=",
+      "integrity": "sha512-EVKysbKISk0mWzYLq1kED/V/SEEjlMrdyyBN8xu9gilEeYvHX0G1NrvQU+CyYHxUeMh+stuPNhjwUdBuyyYIZw==",
       "requires": {
         "xlsx": "^0.11.10"
       }
     },
     "nodemailer": {
       "version": "2.7.2",
-      "resolved": "http://192.168.1.90:4873/nodemailer/-/nodemailer-2.7.2.tgz",
+      "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-2.7.2.tgz",
       "integrity": "sha1-8kLmSa7q45tsftdA73sGHEBNMPk=",
       "optional": true,
       "requires": {
@@ -3372,7 +3375,7 @@
         },
         "socks": {
           "version": "1.1.9",
-          "resolved": "http://192.168.1.90:4873/socks/-/socks-1.1.9.tgz",
+          "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.9.tgz",
           "integrity": "sha1-Yo1+TQSRJDVEWsC25Fk3bLPm1pE=",
           "optional": true,
           "requires": {
@@ -3384,7 +3387,7 @@
     },
     "nodemailer-direct-transport": {
       "version": "3.3.2",
-      "resolved": "http://192.168.1.90:4873/nodemailer-direct-transport/-/nodemailer-direct-transport-3.3.2.tgz",
+      "resolved": "https://registry.npmjs.org/nodemailer-direct-transport/-/nodemailer-direct-transport-3.3.2.tgz",
       "integrity": "sha1-6W+vuQNYVglH5WkBfZfmBzilCoY=",
       "optional": true,
       "requires": {
@@ -3394,13 +3397,13 @@
     },
     "nodemailer-fetch": {
       "version": "1.6.0",
-      "resolved": "http://192.168.1.90:4873/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz",
+      "resolved": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz",
       "integrity": "sha1-ecSQihwPXzdbc/6IjamCj23JY6Q=",
       "optional": true
     },
     "nodemailer-shared": {
       "version": "1.1.0",
-      "resolved": "http://192.168.1.90:4873/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz",
+      "resolved": "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz",
       "integrity": "sha1-z1mU4v0mjQD1zw+nZ6CBae2wfsA=",
       "optional": true,
       "requires": {
@@ -3409,7 +3412,7 @@
     },
     "nodemailer-smtp-pool": {
       "version": "2.8.2",
-      "resolved": "http://192.168.1.90:4873/nodemailer-smtp-pool/-/nodemailer-smtp-pool-2.8.2.tgz",
+      "resolved": "https://registry.npmjs.org/nodemailer-smtp-pool/-/nodemailer-smtp-pool-2.8.2.tgz",
       "integrity": "sha1-LrlNbPhXgLG0clzoU7nL1ejajHI=",
       "optional": true,
       "requires": {
@@ -3420,7 +3423,7 @@
     },
     "nodemailer-smtp-transport": {
       "version": "2.7.2",
-      "resolved": "http://192.168.1.90:4873/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.7.2.tgz",
+      "resolved": "https://registry.npmjs.org/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.7.2.tgz",
       "integrity": "sha1-A9ccdjFPFKx9vHvwM6am0W1n+3c=",
       "optional": true,
       "requires": {
@@ -3431,7 +3434,7 @@
     },
     "nodemailer-wellknown": {
       "version": "0.1.10",
-      "resolved": "http://192.168.1.90:4873/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz",
+      "resolved": "https://registry.npmjs.org/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz",
       "integrity": "sha1-WG24EB2zDLRDjrVGc3pBqtDPE9U=",
       "optional": true
     },
@@ -3641,7 +3644,7 @@
     },
     "path-proxy": {
       "version": "1.0.0",
-      "resolved": "http://192.168.1.90:4873/path-proxy/-/path-proxy-1.0.0.tgz",
+      "resolved": "https://registry.npmjs.org/path-proxy/-/path-proxy-1.0.0.tgz",
       "integrity": "sha1-GOijaFn8nS8aU7SN7hOFQ8Ag3l4=",
       "optional": true,
       "requires": {
@@ -3650,7 +3653,7 @@
       "dependencies": {
         "inflection": {
           "version": "1.3.8",
-          "resolved": "http://192.168.1.90:4873/inflection/-/inflection-1.3.8.tgz",
+          "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.3.8.tgz",
           "integrity": "sha1-y9Fg2p91sUw8xjV41POWeEvzAU4=",
           "optional": true
         }
@@ -3692,13 +3695,13 @@
     },
     "pinkie": {
       "version": "2.0.4",
-      "resolved": "http://192.168.1.90:4873/pinkie/-/pinkie-2.0.4.tgz",
+      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
       "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
       "optional": true
     },
     "pinkie-promise": {
       "version": "2.0.1",
-      "resolved": "http://192.168.1.90:4873/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+      "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
       "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
       "optional": true,
       "requires": {
@@ -3924,7 +3927,7 @@
     },
     "redis-parser": {
       "version": "2.6.0",
-      "resolved": "http://192.168.1.90:4873/redis-parser/-/redis-parser-2.6.0.tgz",
+      "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz",
       "integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs=",
       "optional": true
     },
@@ -4194,7 +4197,7 @@
     },
     "slack-node": {
       "version": "0.2.0",
-      "resolved": "http://192.168.1.90:4873/slack-node/-/slack-node-0.2.0.tgz",
+      "resolved": "https://registry.npmjs.org/slack-node/-/slack-node-0.2.0.tgz",
       "integrity": "sha1-3kuN3aqLeT9h29KTgQT9q/N9+jA=",
       "optional": true,
       "requires": {
@@ -4219,7 +4222,7 @@
     },
     "smtp-connection": {
       "version": "2.12.0",
-      "resolved": "http://192.168.1.90:4873/smtp-connection/-/smtp-connection-2.12.0.tgz",
+      "resolved": "https://registry.npmjs.org/smtp-connection/-/smtp-connection-2.12.0.tgz",
       "integrity": "sha1-1275EnyyPCJZ7bHoNJwujV4tdME=",
       "optional": true,
       "requires": {
@@ -4229,7 +4232,7 @@
     },
     "sntp": {
       "version": "1.0.9",
-      "resolved": "http://192.168.1.90:4873/sntp/-/sntp-1.0.9.tgz",
+      "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
       "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
       "optional": true,
       "requires": {
@@ -4279,7 +4282,7 @@
     "source-map-support": {
       "version": "0.4.18",
       "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
-      "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=",
+      "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
       "requires": {
         "source-map": "^0.5.6"
       }
@@ -4553,7 +4556,7 @@
     },
     "timespan": {
       "version": "2.3.0",
-      "resolved": "http://192.168.1.90:4873/timespan/-/timespan-2.3.0.tgz",
+      "resolved": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz",
       "integrity": "sha1-SQLOBAvRPYRcj1myfp1ZutbzmSk=",
       "optional": true
     },
@@ -4657,7 +4660,7 @@
     },
     "underscore": {
       "version": "1.7.0",
-      "resolved": "http://192.168.1.90:4873/underscore/-/underscore-1.7.0.tgz",
+      "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
       "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
       "optional": true
     },
@@ -4811,6 +4814,13 @@
             "graceful-fs": "^4.2.0",
             "jsonfile": "^4.0.0",
             "universalify": "^0.1.0"
+          },
+          "dependencies": {
+            "graceful-fs": {
+              "version": "4.2.6",
+              "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
+              "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
+            }
           }
         },
         "get-uri": {
@@ -4881,11 +4891,19 @@
           "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
           "requires": {
             "graceful-fs": "^4.1.6"
+          },
+          "dependencies": {
+            "graceful-fs": {
+              "version": "4.2.6",
+              "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
+              "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
+              "optional": true
+            }
           }
         },
         "lru-cache": {
           "version": "5.1.1",
-          "resolved": "http://192.168.1.90:4873/lru-cache/-/lru-cache-5.1.1.tgz",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
           "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
           "requires": {
             "yallist": "^3.0.2"
@@ -4893,7 +4911,7 @@
         },
         "ms": {
           "version": "2.1.2",
-          "resolved": "http://192.168.1.90:4873/ms/-/ms-2.1.2.tgz",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
           "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
         },
         "netmask": {
@@ -5035,7 +5053,7 @@
     },
     "when": {
       "version": "3.7.8",
-      "resolved": "http://192.168.1.90:4873/when/-/when-3.7.8.tgz",
+      "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz",
       "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=",
       "optional": true
     },

+ 24 - 0
public/web/id_tree.js

@@ -866,6 +866,30 @@ var idTree = {
             return datas;
         };
 
+        Tree.prototype.getExpState = function (nodes) {
+            let sessionExpanded = [];
+            function getStat(items){
+                for(let item of items){
+                    sessionExpanded.push(item.expanded ? 1 : 0);
+                }
+            }
+            getStat(nodes);
+            let expState = sessionExpanded.join('');
+            return expState;
+        };
+
+        //节点根据展开收起列表'010101'展开收起
+        Tree.prototype.setExpandedByState = function (nodes, expState) {
+            let expStateArr = expState.split('');
+            for(let i = 0; i < nodes.length; i++){
+                let expanded = expStateArr[i] == 1 ? true : false;
+                if(nodes[i].expanded === expanded){
+                    continue;
+                }
+                nodes[i].setExpanded(expanded);
+            }
+        };
+
         // 检查树结构数据有没问题
         Tree.prototype.check = function (roots) {
             return isValid(roots);

+ 19 - 0
web/maintain/billsGuidance_lib/html/zhiyin.html

@@ -132,6 +132,25 @@
             </div>
         </div>
     </div>
+    <div class="modal fade" id="delRationAlert" data-backdrop="static" style="display: none;" aria-hidden="true">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h5 class="modal-title">警告</h5>
+                    <button type="button"  class="close" data-dismiss="modal" aria-label="Close">
+                        <span aria-hidden="true">×</span>
+                    </button>
+                </div>
+                <div class="modal-body">
+                    <h5 class="text-danger">是否删除当前节点下的所有定额?</h5>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" class="btn btn-danger" id="delRationConfirm">确认</button>
+                    <button type="button" class="btn btn-secondary"  data-dismiss="modal">取消</button>
+                </div>
+            </div>
+        </div>
+    </div>
     <!-- JS. -->
     <script src="/lib/jquery/jquery.min.js"></script>
     <script src="/lib/tether/tether.min.js"></script>

+ 58 - 3
web/maintain/billsGuidance_lib/js/billsGuidance.js

@@ -977,14 +977,53 @@ const billsGuidance = (function () {
             $.bootstrapLoading.end();
         });
     }
+
+    // 删除定额(嵌套删除自身及后代定额)
+    function delRations() {
+        const selected = bills.tree.selected.guidance.tree.selected;
+        if (!selected) {
+            return;
+        }
+        if (selected.data.type === itemType.ration) {
+            del({ row: selected.serialNo(), col: 0, rowCount: 1, colCount: 1  });
+            return;
+        }
+        const rations = selected.getPosterity().filter(item => item.data.type === itemType.ration);
+        if (!rations.length) {
+            return;
+        }
+        const updateDatas = rations.map(item => ({ updateType: updateType.del, findData: { ID: item.data.ID } }));
+        const rationIDs = rations.map(r => r.data.ID);
+        $.bootstrapLoading.start();
+        updateGuideItems(updateDatas, function () {
+            const guideSheet = guideItem.workBook.getSheet(0);
+            const treeNodes = bills.tree.selected.guidance.tree.items.filter(item => !rationIDs.includes(item.data.ID));
+            const state = bills.tree.selected.guidance.tree.getExpState(treeNodes);
+            const treeData = treeNodes.map(item => item.data);
+            initTree(bills.tree.selected.guidance, guideSheet, guideItem.treeSetting, treeData);
+            bills.tree.selected.guidance.tree.setExpandedByState(bills.tree.selected.guidance.tree.items, state);
+            renderSheetFunc(guideSheet, function () {
+                TREE_SHEET_HELPER.refreshNodesVisible(bills.tree.selected.guidance.tree.roots, guideSheet, true);
+            });
+            //设置底色
+            setNodesColor(guideSheet, bills.tree.selected.guidance.tree.items);
+            //项目指引初始焦点
+            guideItemInitSel(guideSheet.getActiveRowIndex() ? guideSheet.getActiveRowIndex() : 0);
+            $.bootstrapLoading.end();
+            guideItem.workBook.focus(true)
+        });
+
+
+    }
+
     //项目指引删除操作
     //@return {void}
-    function del(){
+    function del(selArea = null){
         $.bootstrapLoading.start();
         let controller = bills.tree.selected.guidance.controller;
         let selNodes = [];
         let sheet = guideItem.workBook.getSheet(0);
-        let sel = sheet.getSelections()[0];
+        let sel = selArea ? selArea : sheet.getSelections()[0];
         if(sel){
             sel.row =  sel.row === -1 ? 0 : sel.row;
             for(let i = 0; i < sel.rowCount; i++){
@@ -1016,6 +1055,7 @@ const billsGuidance = (function () {
             }
         }
         updateGuideItems(updateDatas, function () {
+            console.log(blockNodes);
             controller.m_delete(blockNodes);
             guideItemInitSel(sheet.getActiveRowIndex());
             refreshBtn(bills.tree.selected.guidance.tree.selected);
@@ -1400,13 +1440,24 @@ const billsGuidance = (function () {
                                     let pasteNode = bills.tree.selected.guidance.tree.items[target.row];
                                     pasteBlock(pasteNode);
                                 }},
+                            "delRations": {
+                                name: '删除定额',
+                                disabled: function () {
+                                    let node = bills.tree.selected.guidance.tree.items[target.row];
+                                    return locked || !node
+                                },
+                                icon: "fa-remove",
+                                callback: function (key, opt) {
+                                    $('#delRationAlert').modal('show');
+                                }
+                            },
                             "del": {
                                 name: '删除',
                                 disabled: function () {
                                     let node = bills.tree.selected.guidance.tree.items[target.row];
                                     return locked || !node
                                 },
-                                icon: "fa-arrow-left",
+                                icon: "fa-remove",
                                 callback: function (key, opt) {
                                     $('#delAlert').modal('show');
                                 }
@@ -1452,6 +1503,10 @@ const billsGuidance = (function () {
             del();
             $('#delAlert').modal('hide');
         });
+        $('#delRationConfirm').click(function () {
+            delRations();
+            $('#delRationAlert').modal('hide');
+        });
         $('#del').click(function () {
             $('#delAlert').modal('show');
         });

+ 1 - 0
web/maintain/price_info_lib/js/index.js

@@ -802,6 +802,7 @@ const PRICE_BOOK = (() => {
 })();
 
 $(document).ready(() => {
+    console.log('进入信息价');
     $('[data-toggle="tooltip"]').tooltip();
     AREA_BOOK.handleSelectionChanged(0);
     const $range = $(document.body);

+ 18 - 9
web/over_write/crawler/guangdong_2018_price_crawler.js

@@ -233,11 +233,11 @@ function getDateForApi(journalList, period) {
   // 没匹配到月度数据,去匹配季度
   const month = period.split('-')[1];
   let quaterDate;
-  if (['1', '2', '3'].includes(month)) {
+  if (['1', '01', '2', '02', '3', '03'].includes(month)) {
     quaterDate = '03-15';
-  } else if (['4', '5', '6'].includes(month)) {
+  } else if (['4', '04', '5', '05', '6', '06'].includes(month)) {
     quaterDate = '06-15';
-  } else if (['7', '8', '9'].includes(month)) {
+  } else if (['7', '07', '8', '08', '9', '09'].includes(month)) {
     quaterDate = '09-15';
   } else if (['10', '11', '12'].includes(month)) {
     quaterDate = '12-15';
@@ -265,7 +265,7 @@ function getDateForApi(journalList, period) {
   if (fullYear) {
     return fullYear;
   }
-  return monthPeriod;
+  return null;
 }
 
 // 获取信息价
@@ -273,10 +273,6 @@ async function getPriceInfoSource(token, period, city, county) {
   const province = '广东';
   const area = `${province}-${city}-${county}`;
   const industry = 1;
-  /* const existData = await priceInfoSourceModel.find({ period, area, industry }).lean();
-  if (existData.length) {
-    return existData;
-  } */
   const body = {
     token,
     province,
@@ -288,7 +284,14 @@ async function getPriceInfoSource(token, period, city, county) {
   // 获取期刊数据
   const year = period.split('-')[0];
   const journalRst = await post('/gov/journal_list', { ...body, date: year });
-  const date = journalRst && journalRst.results ? getDateForApi(journalRst.results, period) : `${period}-05`;
+  if (!journalRst || !journalRst.results) {
+    // 不抛出错误,不同地区更新信息价期刊的时间不同,如果导入数据时,有地区没发布数据,直接跳过并提示
+    return `retCode: ${journalRst.retCode} ${journalRst.msg} (${period} ${city} ${county})`;
+  }
+  const date = getDateForApi(journalRst.results, period);
+  if (!date) {
+    return `retCode: 1000 暂无数据 (${period} ${city} ${county})`;
+  }
   const sourceData = await post('/gov/get', { ...body, date });
   if (!sourceData.results) {
     // 不抛出错误,不同地区更新信息价期刊的时间不同,如果导入数据时,有地区没发布数据,直接跳过并提示
@@ -476,6 +479,12 @@ async function crawlData(from, to, compilationID) {
       } else { // 需求变更,需要排序
         await priceInfoAreaModel.update({ ID: areaItem.ID }, { $set: { serialNo } });
       }
+
+      const existCount = await priceInfoItemModel.count({ compilationID, period, areaID: areaItem.ID });
+      if (existCount) {
+        continue;
+      }
+
       // 存入信息价相关数据
       const sourceData = await getPriceInfoSource(token, sourcePeriod, city, county);
       if (typeof sourceData === 'string') {