Browse Source

Merge branch 'dev' of http://10.87.10.227:4000/jzyd_yyds/soc_app into dev

# Conflicts:
#	src/plugins/vant.js
#	src/router/router.config.js
jiawuxian 2 năm trước cách đây
mục cha
commit
461f5ceeca

+ 247 - 71
package-lock.json

@@ -1953,49 +1953,6 @@
         "webpack-merge": "^5.7.3",
         "webpack-virtual-modules": "^0.4.2",
         "whatwg-fetch": "^3.6.2"
-      },
-      "dependencies": {
-        "@vue/vue-loader-v15": {
-          "version": "npm:vue-loader@15.10.1",
-          "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.1.tgz",
-          "integrity": "sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA==",
-          "dev": true,
-          "requires": {
-            "@vue/component-compiler-utils": "^3.1.0",
-            "hash-sum": "^1.0.2",
-            "loader-utils": "^1.1.0",
-            "vue-hot-reload-api": "^2.3.0",
-            "vue-style-loader": "^4.1.0"
-          },
-          "dependencies": {
-            "hash-sum": {
-              "version": "1.0.2",
-              "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz",
-              "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
-              "dev": true
-            }
-          }
-        },
-        "json5": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz",
-          "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.0"
-          }
-        },
-        "loader-utils": {
-          "version": "1.4.2",
-          "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz",
-          "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
-          "dev": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^1.0.1"
-          }
-        }
       }
     },
     "@vue/cli-shared-utils": {
@@ -2160,6 +2117,47 @@
         }
       }
     },
+    "@vue/vue-loader-v15": {
+      "version": "npm:vue-loader@15.10.2",
+      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.2.tgz",
+      "integrity": "sha512-ndeSe/8KQc/nlA7TJ+OBhv2qalmj1s+uBs7yHDRFaAXscFTApBzY9F1jES3bautmgWjDlDct0fw8rPuySDLwxw==",
+      "dev": true,
+      "requires": {
+        "@vue/component-compiler-utils": "^3.1.0",
+        "hash-sum": "^1.0.2",
+        "loader-utils": "^1.1.0",
+        "vue-hot-reload-api": "^2.3.0",
+        "vue-style-loader": "^4.1.0"
+      },
+      "dependencies": {
+        "hash-sum": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+          "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
+          "dev": true
+        },
+        "json5": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+          "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.2",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+          "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        }
+      }
+    },
     "@vue/web-component-wrapper": {
       "version": "1.3.0",
       "resolved": "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz",
@@ -2536,15 +2534,6 @@
         "object.assign": "^4.1.0"
       }
     },
-    "babel-plugin-import": {
-      "version": "1.13.8",
-      "resolved": "https://registry.npmmirror.com/babel-plugin-import/-/babel-plugin-import-1.13.8.tgz",
-      "integrity": "sha512-36babpjra5m3gca44V6tSTomeBlPA7cHUynrE2WiQIm3rEGD9xy28MKsx5IdO45EbnpJY7Jrgd00C6Dwt/l/2Q==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-imports": "^7.0.0"
-      }
-    },
     "babel-plugin-polyfill-corejs2": {
       "version": "0.4.5",
       "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz",
@@ -2602,8 +2591,7 @@
     "big.js": {
       "version": "5.2.2",
       "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz",
-      "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
-      "dev": true
+      "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
     },
     "binary-extensions": {
       "version": "2.2.0",
@@ -3107,6 +3095,14 @@
       "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
       "dev": true
     },
+    "copy-anything": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz",
+      "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==",
+      "requires": {
+        "is-what": "^3.14.1"
+      }
+    },
     "copy-webpack-plugin": {
       "version": "9.1.0",
       "resolved": "https://registry.npmmirror.com/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz",
@@ -3403,6 +3399,24 @@
       "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz",
       "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
     },
+    "date-fns": {
+      "version": "2.30.0",
+      "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz",
+      "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==",
+      "requires": {
+        "@babel/runtime": "^7.21.0"
+      }
+    },
+    "date-fns-tz": {
+      "version": "1.3.8",
+      "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-1.3.8.tgz",
+      "integrity": "sha512-qwNXUFtMHTTU6CFSFjoJ80W8Fzzp24LntbjFFBgL/faqds4e5mo9mftoRLgr3Vi1trISsg4awSpYVsOQCRnapQ=="
+    },
+    "dayjs": {
+      "version": "1.11.9",
+      "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz",
+      "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA=="
+    },
     "debug": {
       "version": "4.3.4",
       "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
@@ -3681,8 +3695,7 @@
     "emojis-list": {
       "version": "3.0.0",
       "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz",
-      "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
-      "dev": true
+      "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="
     },
     "encodeurl": {
       "version": "1.0.2",
@@ -3715,6 +3728,15 @@
       "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
       "dev": true
     },
+    "errno": {
+      "version": "0.1.8",
+      "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
+      "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+      "optional": true,
+      "requires": {
+        "prr": "~1.0.1"
+      }
+    },
     "error-ex": {
       "version": "1.3.2",
       "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz",
@@ -4166,8 +4188,7 @@
     "graceful-fs": {
       "version": "4.2.11",
       "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
-      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
-      "dev": true
+      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
     },
     "gzip-size": {
       "version": "6.0.0",
@@ -4430,6 +4451,12 @@
       "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
       "dev": true
     },
+    "image-size": {
+      "version": "0.5.5",
+      "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
+      "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
+      "optional": true
+    },
     "immutable": {
       "version": "4.3.1",
       "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.1.tgz",
@@ -4567,6 +4594,11 @@
       "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
       "dev": true
     },
+    "is-what": {
+      "version": "3.14.1",
+      "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz",
+      "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA=="
+    },
     "is-wsl": {
       "version": "2.2.0",
       "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz",
@@ -4724,6 +4756,81 @@
         "launch-editor": "^2.6.0"
       }
     },
+    "less": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz",
+      "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==",
+      "requires": {
+        "copy-anything": "^2.0.1",
+        "errno": "^0.1.1",
+        "graceful-fs": "^4.1.2",
+        "image-size": "~0.5.0",
+        "make-dir": "^2.1.0",
+        "mime": "^1.4.1",
+        "needle": "^3.1.0",
+        "parse-node-version": "^1.0.1",
+        "source-map": "~0.6.0",
+        "tslib": "^2.3.0"
+      },
+      "dependencies": {
+        "make-dir": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+          "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+          "optional": true,
+          "requires": {
+            "pify": "^4.0.1",
+            "semver": "^5.6.0"
+          }
+        },
+        "semver": {
+          "version": "5.7.2",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+          "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+          "optional": true
+        }
+      }
+    },
+    "less-loader": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz",
+      "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==",
+      "requires": {
+        "clone": "^2.1.1",
+        "loader-utils": "^1.1.0",
+        "pify": "^3.0.0"
+      },
+      "dependencies": {
+        "clone": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+          "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="
+        },
+        "json5": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+          "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.2",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+          "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        },
+        "pify": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+          "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg=="
+        }
+      }
+    },
     "lilconfig": {
       "version": "2.1.0",
       "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz",
@@ -4765,8 +4872,7 @@
     "lodash": {
       "version": "4.17.21",
       "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
-      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
-      "dev": true
+      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
     },
     "lodash.debounce": {
       "version": "4.0.8",
@@ -5047,8 +5153,7 @@
     "mime": {
       "version": "1.6.0",
       "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz",
-      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
-      "dev": true
+      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
     },
     "mime-db": {
       "version": "1.52.0",
@@ -5137,8 +5242,7 @@
     "minimist": {
       "version": "1.2.8",
       "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz",
-      "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
-      "dev": true
+      "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
     },
     "minipass": {
       "version": "3.3.6",
@@ -5181,8 +5285,7 @@
     "ms": {
       "version": "2.1.2",
       "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
-      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
-      "dev": true
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
     },
     "multicast-dns": {
       "version": "7.2.5",
@@ -5210,6 +5313,37 @@
       "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz",
       "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
     },
+    "needle": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz",
+      "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==",
+      "optional": true,
+      "requires": {
+        "debug": "^3.2.6",
+        "iconv-lite": "^0.6.3",
+        "sax": "^1.2.4"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.7",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+          "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+          "optional": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "iconv-lite": {
+          "version": "0.6.3",
+          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+          "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+          "optional": true,
+          "requires": {
+            "safer-buffer": ">= 2.1.2 < 3.0.0"
+          }
+        }
+      }
+    },
     "negotiator": {
       "version": "0.6.3",
       "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
@@ -5540,6 +5674,11 @@
         "lines-and-columns": "^1.1.6"
       }
     },
+    "parse-node-version": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz",
+      "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA=="
+    },
     "parse5": {
       "version": "5.1.1",
       "resolved": "https://registry.npmmirror.com/parse5/-/parse5-5.1.1.tgz",
@@ -5626,6 +5765,12 @@
       "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
       "dev": true
     },
+    "pify": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+      "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+      "optional": true
+    },
     "pkg-dir": {
       "version": "4.2.0",
       "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz",
@@ -6067,6 +6212,12 @@
       "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
       "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
     },
+    "prr": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+      "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
+      "optional": true
+    },
     "pseudomap": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz",
@@ -6353,8 +6504,7 @@
     "safer-buffer": {
       "version": "2.1.2",
       "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
-      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
-      "dev": true
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
     },
     "sass": {
       "version": "1.64.2",
@@ -6376,6 +6526,12 @@
         "neo-async": "^2.6.2"
       }
     },
+    "sax": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+      "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+      "optional": true
+    },
     "schema-utils": {
       "version": "2.7.1",
       "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz",
@@ -6964,8 +7120,7 @@
     "tslib": {
       "version": "2.6.1",
       "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.1.tgz",
-      "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==",
-      "dev": true
+      "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
     },
     "type-fest": {
       "version": "0.6.0",
@@ -7066,6 +7221,17 @@
       "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
       "dev": true
     },
+    "v-calendar": {
+      "version": "2.4.1",
+      "resolved": "https://registry.npmjs.org/v-calendar/-/v-calendar-2.4.1.tgz",
+      "integrity": "sha512-nhzOlHM2cinv+8jIcnAx+nTo63U40szv3Ig41uLMpGK1U5sApgCP6ggigprsnlMOM5VRq1G/1B8rNHkRrLbGjw==",
+      "requires": {
+        "core-js": "^3.15.2",
+        "date-fns": "^2.22.1",
+        "date-fns-tz": "^1.1.4",
+        "lodash": "^4.17.21"
+      }
+    },
     "validate-npm-package-license": {
       "version": "3.0.4",
       "resolved": "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
@@ -7105,7 +7271,7 @@
     },
     "vue-hot-reload-api": {
       "version": "2.3.4",
-      "resolved": "https://registry.npmmirror.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
+      "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
       "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
       "dev": true
     },
@@ -7176,6 +7342,16 @@
         }
       }
     },
+    "vue-quick-calendar": {
+      "version": "1.0.92",
+      "resolved": "https://registry.npmjs.org/vue-quick-calendar/-/vue-quick-calendar-1.0.92.tgz",
+      "integrity": "sha512-VyqAXSo7aidOjwSTnC6vkfAnRzGHTXzDdfuP1pnZvuF3g47P/UDLX4nVkWzzRQibLsLl5kOXq3E+EhvAsbNsrg==",
+      "requires": {
+        "less": "^4.1.1",
+        "less-loader": "^4.1.0",
+        "vue": "^2.5.11"
+      }
+    },
     "vue-router": {
       "version": "3.6.5",
       "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-3.6.5.tgz",

+ 11 - 0
src/api/protection.js

@@ -24,3 +24,14 @@ export function get(id) {
     method: "get",
   });
 }
+
+// 更新状态
+export function history(query) {
+  // query.startTime=new Date().toLocaleString()
+  // delete query.updateTime;
+  return request({
+    url: `/core/resumption/protection/log/page`,
+    method: "get",
+    params:query
+  });
+}

+ 1 - 0
src/assets/css/index.scss

@@ -10,4 +10,5 @@ body .app {
 
 .app-container {
   padding-bottom: 100px;
+  background-color: rgb(245, 245, 249);
 }

+ 0 - 2
src/components/Calendar/index.vue

@@ -124,12 +124,10 @@ export default {
         });
         this.attrs = list;
         this.date = new Date();
-        console.log(list,'lisst')
       })
     },
     //点击日期
     onDayClick(day){
-      console.log(day,'day')
       let dayInfo = {};
       day.attributes.forEach(v=>{
         if(v.key != 'select-drag'){

+ 114 - 0
src/components/DatePicker/index.vue

@@ -0,0 +1,114 @@
+<template>
+  <div class="date-picker">
+    <div class="date-picker-box">
+      <vc-date-picker
+        ref="Calendar"
+        class="calendar"
+        v-model="date"
+        :min-date='new Date()'
+        @transition-start="queryMoth"
+        @dayclick="onDayClick">
+      </vc-date-picker>
+    </div>
+    <span class="hide-line" @click="foldBox">^</span>
+  </div>
+</template>
+
+<script>
+export default {
+  data(){
+    return{
+      date:new Date(),
+      showPicker:true,
+      num:4,
+      height:null,
+    }
+  },
+  mounted() {
+
+  },
+  watch:{
+    //
+    showPicker (){
+      let weeksBox = document.getElementsByClassName('vc-day');
+      let pickerBox = document.getElementsByClassName('date-picker-box')[0];
+      if( this.showPicker){
+        for(let i = 0; i < weeksBox.length;i++){
+          weeksBox[i].style.transform = `translate(0, 0px)`;
+        }
+        pickerBox.style.height = `${this.height}px`;
+        console.log('show')
+      }else {
+        this.height = pickerBox.offsetHeight;
+        for(let i = 0; i < weeksBox.length;i++){
+          weeksBox[i].style.transform = `translate(0, -${this.num * 32}px)`;
+        }
+        pickerBox.style.height =  `100px`;
+        console.log('hide')
+      }
+    }
+  },
+  methods:{
+    foldBox(){
+      this.showPicker = !this.showPicker;
+    },
+    // 获取年、月份
+    queryMoth(){
+      let Calendar = this.$refs.Calendar;
+      let year = Calendar.$refs.calendar.pages[0].year;
+      let month = Calendar.$refs.calendar.pages[0].month;
+      this.$emit('Mouth',{year,month});
+      if(!this.showPicker) this.showPicker = true;
+    },
+    //点击日期
+    onDayClick(day){
+      let dayLine = day.classes[7].substring(5);
+      this.num = dayLine -1;
+      this.$emit('day',day.id)
+    },
+  }
+}
+</script>
+
+<style lang="scss">
+.date-picker {
+  width: 100%;
+  background-color: #fff;
+  box-sizing: border-box;
+  .calendar {
+    border: none;
+    width: 100%;
+  }
+  .vc-header{
+    width: 100%;
+    background-color: #fff;
+    position: relative;
+    z-index:10;
+  }
+  .vc-arrow{
+    position: relative;
+    z-index:10;
+  }
+  .vc-weeks{
+    overflow: hidden;
+  }
+  .vc-weekday{
+    position: relative;
+    background-color: #fff;
+    z-index:10;
+  }
+  .date-picker-box{
+    overflow: hidden;
+  }
+  .hide-line{
+    box-sizing: border-box;
+    display: inline-block;
+    height: 1px;
+    width: 100%;
+    margin-top: 30px;
+    background-color: red;
+    text-align: center;
+    align-items: center;
+  }
+}
+</style>

+ 35 - 0
src/components/card/index.vue

@@ -0,0 +1,35 @@
+<template>
+  <div class="card">
+    <div class="title" v-show="title">{{ title }}</div>
+    <slot></slot>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {}
+  },
+  props: {
+    title: {
+      type: String
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.card {
+    margin-top:24px;
+//   margin-bottom: 24px;
+  padding: 24px;
+  background-color: #fff;
+  border-radius: 12px;
+  box-shadow: 0 8px 12px #ebedf0;
+
+  .title{
+    font-size:0.4rem;
+    padding-top:5px;
+    padding-bottom:5px;
+    // font-weight:500
+  }
+}
+</style>

+ 12 - 14
src/components/list/index.vue

@@ -1,13 +1,10 @@
 <template>
   <div class="k-list">
-    <slot name="header" style="width:100%"> </slot>
+    <slot name="header" style="width: 100%"> </slot>
     <van-list v-model="isLoading" :finished="isFinished" finished-text @load="next">
       <slot v-for="(data, index) in dataList" :data="data" :index="index"></slot>
     </van-list>
-    <van-empty
-      v-if="dataList.length == 0 && !isLoading"
-      description="暂无数据"
-    />
+    <van-empty v-if="dataList.length == 0 && !isLoading" description="暂无数据" />
   </div>
 </template>
 <script>
@@ -20,8 +17,8 @@ export default {
       isLoading: false,
       isFinished: true,
       page: {
-        pageNum: 1,
-        pageSize: 10
+        page: 0,
+        size: 10
       },
       dataList: []
     }
@@ -32,7 +29,7 @@ export default {
       deep: true,
       handler: debounce(
         function () {
-          this.page = { pageNum: 1, pageSize: 10 }
+          this.page = { page: 0, size: 10 }
           this.dataList = []
           this.next()
         },
@@ -42,7 +39,7 @@ export default {
     }
   },
   props: {
-    list: {type:Function,required:true},
+    list: { type: Function, required: true },
     params: {},
     wrap: {
       default() {
@@ -61,18 +58,19 @@ export default {
   methods: {
     //
     async next() {
-      this.page.pageNum++
+      this.page.page++
       try {
         this.isLoading = true
+
         const data = await this.list({
           ...this.params,
           ...this.page
         })
         // 工程商列表获取接口/api/service/find/v2/all返回结构为dataList
-        const content = data.content ? data.content : data.dataList || data
-        this.isFinished = content.length < this.page.pageSize
+        const content = data.rows ? data.rows : data.dataList || data
+        this.isFinished = content.length < this.page.size
         await this.wrap(content)
-        if (this.page.pageNum === 0) {
+        if (this.page.page === 0) {
           this.dataList = content
         } else {
           this.dataList = this.dataList.concat(content)
@@ -97,7 +95,7 @@ export default {
   }
 }
 </script>
-<style lang="less">
+<style lang="scss">
 .k-list {
 }
 </style>

+ 1 - 1
src/main.js

@@ -2,7 +2,7 @@
 // https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md#babelpolyfill
 //import 'core-js/stable'
 //import 'regenerator-runtime/runtime'
-
+require("@/assets/css/index.scss")
 import Vue from 'vue'
 import App from './App.vue'
 import Vant from 'vant';

+ 4 - 2
src/plugins/vant.js

@@ -1,6 +1,6 @@
 // 按需全局引入 vant组件
 import Vue from 'vue'
-import { Button,Form,Field, List, Cell, Tabbar, TabbarItem ,Checkbox , CheckboxGroup , Radio, RadioGroup,Dialog, CellGroup,Card  } from 'vant'
+import { Button,Form,Field, List, Cell, Tabbar, TabbarItem ,Checkbox , CheckboxGroup , Radio, RadioGroup,Dialog, CellGroup,Card,Grid ,GridItem  } from 'vant'
 Vue.use(Button)
 Vue.use(Form)
 Vue.use(Field)
@@ -13,4 +13,6 @@ Vue.use(Radio);
 Vue.use(RadioGroup);
 Vue.use(Dialog);
 Vue.use(CellGroup);
-Vue.use(Card);
+Vue.use(Card);
+Vue.use(Grid);
+Vue.use(GridItem);

+ 12 - 0
src/router/router.config.js

@@ -49,6 +49,18 @@ export let routers = [
         meta: { title: '作息管理', keepAlive: false }
       },
       {
+        path: '/nfc',
+        name: 'nfc',
+        component: () => import('@/views/menu/NFCmanage/index'),
+        meta: { title: '履职登记', keepAlive: false }
+      },
+      {
+        path: '/lvzhi',
+        name: 'lvzhi',
+        component: () => import('@/views/menu/LZRegister/index'),
+        meta: { title: '履职登记', keepAlive: false }
+      },
+      {
         path: '/protection',
         name: 'protection',
         component: () => import('@/views/menu/protection/index'),

+ 2 - 1
src/utils/optionEx.js

@@ -1,5 +1,6 @@
 const getLabel=(options,value)=>{
     let option=options.find(o=>o.value===value);
-    return option?option.label:'';
+    // console.info(option)
+    return option?option.text:'';
   }
   export { getLabel};

+ 26 - 8
src/views/home/menu.vue

@@ -4,12 +4,13 @@
     <div class="menu-list">
       <div class="menu-list-item" v-for="(v,i) in menuList" :key="i">
         <p @click="onclick">{{v.name}}</p>
-        <ul>
-          <li v-for="(item,index) in v.list" :key="index">
-            <div></div>
-            <p>{{item.menu}}</p>
-          </li>
-        </ul>
+        <van-grid border :column-num="3">
+          <van-grid-item v-for="(item,index) in v.list" :key="index" icon="smile-o" :text="item.menu" :to="item.path" />
+        </van-grid>
+<!--          <li v-for="(item,index) in v.list" :key="index">-->
+<!--            <div></div>-->
+<!--            <p>{{item.menu}}</p>-->
+<!--          </li>-->
       </div>
     </div>
   </div>
@@ -24,6 +25,23 @@ export default {
     return {
       menuList:[
         {
+          name:'系统管理',
+          list:[
+            {
+              menu:'作息管理',
+              path:'/workTime',
+            },
+            {
+              menu:'NFC管理',
+              path:'/nfc',
+            },
+            {
+              menu:'履职登记',
+              path:'/lvzhi',
+            },
+          ]
+        },
+        {
           name:'履职',
           list:[
             {
@@ -134,12 +152,12 @@ export default {
   }
   .menu-list-item{
     background-color: #fff;
-    border-radius: 5px;
+    border-radius: 10px;
     box-shadow: 0 10px 20px #eee;
-    padding:25px;
     margin:20px;
     >p{
       font-size: 30px;
+      padding: 10px 10px 10px 20px;
     }
     >ul{
       display: flex;

+ 41 - 0
src/views/menu/LZRegister/index.vue

@@ -0,0 +1,41 @@
+<template>
+  <div class="lvzhi">
+    <nav-bar></nav-bar>
+    <DatePicker></DatePicker>
+  </div>
+</template>
+
+<script>
+import NavBar from '@/components/NavBar';
+import DatePicker from '@/components/DatePicker';
+import {mapGetters} from "vuex";
+export default {
+  components:{NavBar,DatePicker},
+  data(){
+    return{
+      date:new Date(),
+
+    }
+  },
+  mounted() {
+
+  },
+  computed:{
+    ...mapGetters(['orgName','orgId']),
+  },
+  methods:{
+    queryMoth(){
+
+    },
+    onDayClick(){
+
+    },
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+  .lvzhi{
+
+  }
+</style>

+ 51 - 0
src/views/menu/NFCmanage/index.vue

@@ -0,0 +1,51 @@
+<template>
+  <div class="works-time">
+    <nav-bar></nav-bar>
+
+  </div>
+</template>
+
+<script>
+import NavBar from '@/components/NavBar';
+import {mapGetters} from "vuex";
+import {deptTreeList} from "@/api/public";
+import {editWorkTime} from "@/views/menu/workTime/api";
+export default {
+  components:{NavBar},
+  data(){
+    return{
+
+    }
+  },
+  mounted() {
+
+  },
+  computed:{
+    ...mapGetters(['orgName','orgId']),
+  },
+  methods:{
+
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+  .works-time{
+    background-color: #fff;
+  }
+  .form-box{
+    height: calc(100vh - 180px);
+    padding: 0 30px 50px 30px;
+    overflow: auto;
+  }
+  .radio-box{
+    height: 100px;
+    padding: 30px;
+  }
+  .org-name{
+    font-size: 30px;
+    line-height: 80px;
+    height: 80px;
+    text-align: center;
+  }
+</style>

+ 23 - 21
src/views/menu/protection/components/item.vue

@@ -1,18 +1,17 @@
 <template>
-  <div class="flex flex-col justify-center k-app-edu-training-list__item">
+  <div class="flex flex-col justify-center k-app-protection-list__item van-clearfix">
     <div class="top flex flex-row items-center justify-between">
-      <label style="width: 70%">{{ data.title }}</label>
-      <div style="width: 30%; text-align: right">
-        <span>{{ data.name }}</span>
-        <van-button size="mini" type="primary" @click="updateStatus(data.id, '1')" v-if="data.status != '1'"
+      <label style="width: 70%">{{ data.name }}</label>
+      <label style="width: 30%; text-align: right">
+        <van-button size="mini" type="primary" @click="updateStatus(data, '1')" v-if="data.status != '1'"
           >布防</van-button
         >
-        <van-button size="mini" type="primary" @click="updateStatus(data.id, '0')" v-if="data.status != '0'"
+        <van-button size="mini" type="primary" @click="updateStatus(data, '0')" v-if="data.status != '0'"
           >撤防</van-button
         >
-      </div>
+      </label>
     </div>
-    <van-cell-group  clickable @click="itemClick">
+    <van-cell-group clickable @click="itemClick">
       <van-cell title="防区状态" :value="getLabel(statusOptions, data.status)" />
       <van-cell
         v-if="data.status == '0' || data.status == '1'"
@@ -30,9 +29,7 @@ import { Dialog } from 'vant'
 export default {
   components: {},
   data() {
-    return {
-      
-    }
+    return {}
   },
   computed: {},
   watch: {},
@@ -45,41 +42,46 @@ export default {
     formatDate(dateStr) {
       return toFormatStr(dateStr)
     },
-    updateStatus(id, status) {
+    updateStatus(data, status) {
       Dialog.confirm({
         message: `防区状态将变更为${this.getLabel(this.statusOptions, status)},请确认`
       })
         .then(() => {
-          api.updateStatus(id, status)
+          api.updateStatus(data.id, status).then(r => {
+            if (r.data) {
+              data.status = status
+            }
+          })
         })
         .catch(() => {
           // on cancel
         })
     },
-    itemClick(){
-
+    itemClick() {
+      this.$router.push('/protection/detail?id=' + this.data.id)
     }
   },
   async created() {},
   async mounted() {}
 }
 </script>
-<style lang="less" scoped>
-.k-app-edu-training-list__item {
+<style lang="scss" scoped>
+.k-app-protection-list__item {
   //   height: 11.85rem;
   background: #ffffff;
   margin: 0.625rem 0.625rem 0;
-
+  font-size: 3.733333vw;
   .top {
-    min-height: 3rem;
-    padding: 0 1rem;
+    // min-height: 3rem;
+    padding: 0.05rem 0.05rem;
+    font-weight: 700;
     display: flex;
     flex-direction: row;
     align-items: center;
     border-bottom: 1px solid #f3f4f5;
     > label {
       //   height: 1.38rem;
-      font-size: 1rem;
+      // font-size: 1rem;
       //   line-height: 1.25rem;
       color: #323233;
       opacity: 1;

+ 62 - 20
src/views/menu/protection/detail.vue

@@ -1,35 +1,39 @@
 <template>
-  <div>
+  <div class="detail">
+    <nav-bar></nav-bar>
     <van-cell-group>
       <van-cell title="防区名称" :value="info.name" />
       <van-cell title="所属机构" :value="info.orgName" />
       <van-cell title="24小时防区" :value="info.allHour ? '是' : '否'" />
     </van-cell-group>
-    <van-card title="布撤防历史">
+    <card title="布撤防历史" class="history">
       <template>
-        <k-list url="/core/resumption/protection/log/page" :params="search">         
+        <k-list :list="history" :params="search">
           <template v-slot:header>
-            <div style="diaplay: flex; flex-direction: row;font-weight: 700;background-color:rgb(240,240,240);">
-              <span style="width: 33%">防区状态</span>
-              <span style="width: 34%">布撤防时间</span>
-              <span style="width: 33%">上报人</span>
+            <div class="header">
+              <span>防区状态</span>
+              <span>布撤防时间</span>
+              <span>上报人</span>
             </div>
           </template>
           <template slot-scope="{ data }">
-            <div style="diaplay: flex; flex-direction: row">
-              <span style="width: 33%">{{ getLabel(statusOptions, data.status) }}</span>
-              <span style="width: 34%">{{ data.updateTime }}</span>
-              <span style="width: 33%">{{ data.statusUpdatorName }}</span>
+            <div class="datarow">
+              <span >{{ getLabel(statusOptions, data.status) }}</span>
+              <span>{{ data.updateTime }}</span>
+              <span>{{ data.statusUpdatorName }}</span>
             </div>
           </template>
         </k-list>
       </template>
-    </van-card>
+    </card>
   </div>
 </template>
 <script>
 import KList from '@/components/list/index.vue'
-import * as api from '@/api/protection.js'
+import { get, history } from '@/api/protection.js'
+import Card from '@/components/card/index.vue'
+import { getLabel } from '@/utils/optionEx'
+import NavBar from '@/components/NavBar'
 export default {
   data() {
     return {
@@ -39,21 +43,59 @@ export default {
       },
       statusOptions: [
         { value: -1, text: '防区状态' },
-        { value: 0, text: '撤防' },
-        { value: 1, text: '布防' },
-        { value: 2, text: '未知' }
+        { value: '0', text: '撤防' },
+        { value: '1', text: '布防' },
+        { value: '2', text: '未知' }
       ]
     }
   },
-  components: { KList },
-  mounted() {},
+  components: { NavBar,KList, Card },
+  mounted() {
+    this.getInfo()
+  },
   methods: {
+    history,
+    getLabel,
     getInfo() {
-      api.get(this.search.protectionId).then(r => {
+      get(this.search.protectionId).then(r => {
         this.info = r.data
       })
     }
   }
 }
 </script>
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+.detail{
+  margin:15px
+}
+.history {
+  ::v-deep .header {
+    display: flex;
+    flex-direction: row;
+    background-color: rgb(240, 240, 240);
+    padding-top: 10px;
+    padding-bottom: 10px;
+    
+  }
+
+  ::v-deep .header > span {
+    width: 33.333333%;
+    display: inline-block;
+    text-align: center;
+  }
+
+  ::v-deep .datarow{
+    display: flex;
+    flex-direction: row;
+    padding-top: 15px;
+    padding-bottom: 10px;
+    border-bottom: 1px solid rgb(240, 240, 240);
+  }
+
+  ::v-deep .datarow > span {
+    width: 33.333333%;
+    display: inline-block;
+    text-align: center;
+  }
+}
+</style>

+ 16 - 37
src/views/menu/protection/index.vue

@@ -2,30 +2,7 @@
   <div class="protection_list">
     <nav-bar></nav-bar>
     <van-search v-model="value" placeholder="请输入搜索关键词" />
-
-    <!-- <div style="width:34%;"
-        @click="
-          () => {
-            showOrg = true
-          }
-        "
-      >
-        {{ orgName }}
-      </div> -->
-    <!-- <van-cell
-        is-link
-        readonly
-        title="机构"
-        :label="orgInfo.orgName"
-        
-      /> -->
-    <van-dropdown-menu>
-      <!-- <div role="button" tabindex="0" class="van-dropdown-menu__item">
-        <span class="van-dropdown-menu__title van-dropdown-menu__title--active van-dropdown-menu__title--down">
-          <div class="van-ellipsis">'abadfasd'</div></span
-        >
-      </div> -->
-      
+    <van-dropdown-menu>      
       <van-dropdown-item :title="orgName" @open="onItemClick"/>
       <van-dropdown-item v-model="search.status" :options="statusOptions" />
       <van-dropdown-item v-model="search.hour" :options="hourOptions" />
@@ -45,9 +22,9 @@
       />
     </van-popup>
     <div class="container">
-      <k-list :list="list" :params="search">
+      <k-list :list="list" :params="search" :auto="false" ref="list">
         <template slot-scope="{ data }">
-          <item :data="data"></item>
+          <item :data="data" :statusOptions="statusOptions"></item>
         </template>
       </k-list>
     </div>
@@ -61,8 +38,9 @@ import { mapGetters } from 'vuex'
 import { deptTreeList } from '@/api/public'
 import { list } from '@/api/protection.js'
 import KList from '@/components/list/index.vue'
+import Item from './components/item.vue'
 export default {
-  components: { NavBar, KList },
+  components: { NavBar, KList,Item },
   data() {
     return {
       options: [],
@@ -78,9 +56,9 @@ export default {
 
       statusOptions: [
         { value: null, text: '防区状态' },
-        { value: 0, text: '撤防' },
-        { value: 1, text: '布防' },
-        { value: 2, text: '未知' }
+        { value: '0', text: '撤防' },
+        { value: '1', text: '布防' },
+        { value: '2', text: '未知' }
       ],
       hourOptions: [
         { value: null, text: '上报时间' },
@@ -119,13 +97,15 @@ export default {
       }
     }
   },
-  created() {
-    this.search.orgId = this.orgId
-    this.orgOptions[0].value = this.orgId
-    this.orgOptions[0].text = this.orgName
+  created() {   
+   
+    
   },
   mounted() {
     this.getTreeList()
+    this.search.orgId = this.orgId
+    this.orgOptions[0].value = this.orgId
+    this.orgOptions[0].text = this.orgName
   },
   computed: {
     ...mapGetters(['orgName', 'orgId'])
@@ -142,7 +122,6 @@ export default {
       })
     },
     onItemClick(){
-      debugger
       this.showOrg=true;
     },
     //改变机构后将重新发起请求
@@ -162,10 +141,10 @@ export default {
 <style lang="scss" scoped>
 .protection_list {
   background-color: #fff;
-
+  display: block;
   .container {
     // overflow: auto;
-    //height: calc(100vh - 11rem);
+    // height: calc(100vh - 11rem);
     .k-content-repair {
       display: flex;
       flex-direction: column;