From 387e8b0743240de72425e5b5c5709d629ace9aa4 Mon Sep 17 00:00:00 2001 From: “dzb” <2632970487@qq.com> Date: 星期二, 11 十月 2022 20:17:43 +0800 Subject: [PATCH] 新增消息界面、处理遗留问题 --- src/views/operate/management/myIndex/components/closure/index.vue | 2 package-lock.json | 117 + src/views/operate/message/mycontrol/createUser/index.vue | 194 +++ src/views/operate/message/myIndex/index.vue | 555 +++++++++ src/views/operate/message/myIndex/myview/index.vue | 55 src/views/operate/car/myIndex/update/law/index.vue | 227 +++ src/views/operate/myWait/index.vue | 1 src/views/layout/components/Menu/index.vue | 8 src/utils/helper.js | 7 src/views/operate/disposal/casepool/pool/index.vue | 26 src/components/illdetail/index.vue | 2 src/views/operate/car/myIndex/create/soil/index.vue | 310 +++++ src/views/operate/disposal/casepool/notDeal/index.vue | 10 src/views/operate/message/myIndex/update/index.vue | 179 +++ src/views/operate/car/myIndex/update/index.vue | 0 src/views/operate/message/index.vue | 3 src/components/process/index.vue | 47 src/views/operate/message/myIndex/createUser/index.vue | 206 +++ src/components/edit/index.vue | 41 src/views/operate/car/myIndex/create/law/index.vue | 269 ++++ src/components/dispatch/index.vue | 8 src/utils/mydate.js | 2 src/router/index.js | 17 src/views/operate/message/mycontrol/index.vue | 501 ++++++++ src/utils/validate.js | 6 src/utils/request.js | 47 /dev/null | 123 -- src/views/operate/message/mycontrol/update/index.vue | 175 ++ src/components/detail/index.vue | 4 src/views/operate/car/myIndex/index.vue | 67 package.json | 4 src/views/operate/management/myIndex/index.vue | 9 src/views/operate/car/myIndex/update/soil/index.vue | 265 ++++ 33 files changed, 3,261 insertions(+), 226 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8f48725..5147c26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,14 +11,14 @@ "@amap/amap-jsapi-loader": "^1.0.1", "axios": "^0.27.2", "core-js": "^3.8.3", - "element-ui": "^2.15.8", "normalize.css": "^8.0.1", "sass": "^1.54.8", "sass-loader": "^13.0.2", "vue": "^2.6.14", "vue-gemini-scrollbar": "^2.0.1", "vue-router": "^3.5.1", - "vuex": "^3.6.2" + "vuex": "^3.6.2", + "wangeditor": "^4.7.15" }, "devDependencies": { "@vue/cli-plugin-babel": "~5.0.0", @@ -27,6 +27,7 @@ "@vue/cli-service": "~5.0.0", "chalk": "4.1.0", "compression-webpack-plugin": "5.0.2", + "element-ui": "^2.15.8", "svg-sprite-loader": "5.1.1", "vue-template-compiler": "^2.6.14" } @@ -1721,8 +1722,19 @@ "version": "7.18.9", "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.18.9.tgz", "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", - "dev": true, "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.4.tgz", + "integrity": "sha512-HzjQ8+dzdx7dmZy4DQ8KV8aHi/74AjEbBGTFutBmg/pd3dY5/q1sfuOGPTFGEytlQhWoeVXqcK5BwMgIkRkNDQ==", + "dependencies": { + "core-js-pure": "^3.25.1", "regenerator-runtime": "^0.13.4" }, "engines": { @@ -3391,6 +3403,7 @@ "version": "1.8.5", "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz", "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==", + "dev": true, "dependencies": { "babel-runtime": "6.x" } @@ -3466,7 +3479,8 @@ "node_modules/babel-helper-vue-jsx-merge-props": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz", - "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==" + "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==", + "dev": true }, "node_modules/babel-loader": { "version": "8.2.5", @@ -3553,6 +3567,7 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "dev": true, "dependencies": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" @@ -3563,12 +3578,14 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, "hasInstallScript": true }, "node_modules/babel-runtime/node_modules/regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true }, "node_modules/balanced-match": { "version": "1.0.2", @@ -4806,6 +4823,16 @@ "semver": "bin/semver.js" } }, + "node_modules/core-js-pure": { + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.5.tgz", + "integrity": "sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", @@ -5256,6 +5283,7 @@ "version": "1.5.2", "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz", "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -5704,6 +5732,7 @@ "version": "2.15.8", "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.8.tgz", "integrity": "sha512-N54zxosRFqpYax3APY3GeRmtOZwIls6Z756WM0kdPZ5Q92PIeKHnZgF1StlamIg9bLxP1k+qdhTZvIeQlim09A==", + "dev": true, "dependencies": { "async-validator": "~1.8.1", "babel-helper-vue-jsx-merge-props": "^2.0.0", @@ -9149,7 +9178,8 @@ "node_modules/normalize-wheel": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", - "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==" + "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==", + "dev": true }, "node_modules/normalize.css": { "version": "8.0.1", @@ -10964,8 +10994,7 @@ "node_modules/regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "node_modules/regenerator-transform": { "version": "0.15.0", @@ -11142,7 +11171,8 @@ "node_modules/resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "dev": true }, "node_modules/resolve": { "version": "1.22.1", @@ -13710,6 +13740,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz", "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==", + "dev": true, "engines": { "node": ">=4" } @@ -13913,8 +13944,7 @@ "node_modules/tslib": { "version": "2.4.0", "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "node_modules/tty-browserify": { "version": "0.0.0", @@ -14415,6 +14445,16 @@ "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==", "peerDependencies": { "vue": "^2.0.0" + } + }, + "node_modules/wangeditor": { + "version": "4.7.15", + "resolved": "https://registry.npmjs.org/wangeditor/-/wangeditor-4.7.15.tgz", + "integrity": "sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@babel/runtime-corejs3": "^7.11.2", + "tslib": "^2.1.0" } }, "node_modules/watchpack": { @@ -16176,8 +16216,16 @@ "version": "7.18.9", "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.18.9.tgz", "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", - "dev": true, "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.4.tgz", + "integrity": "sha512-HzjQ8+dzdx7dmZy4DQ8KV8aHi/74AjEbBGTFutBmg/pd3dY5/q1sfuOGPTFGEytlQhWoeVXqcK5BwMgIkRkNDQ==", + "requires": { + "core-js-pure": "^3.25.1", "regenerator-runtime": "^0.13.4" } }, @@ -17593,6 +17641,7 @@ "version": "1.8.5", "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz", "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==", + "dev": true, "requires": { "babel-runtime": "6.x" } @@ -17640,7 +17689,8 @@ "babel-helper-vue-jsx-merge-props": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz", - "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==" + "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==", + "dev": true }, "babel-loader": { "version": "8.2.5", @@ -17710,6 +17760,7 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "dev": true, "requires": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" @@ -17718,12 +17769,14 @@ "core-js": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "dev": true }, "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true } } }, @@ -18694,6 +18747,11 @@ } } }, + "core-js-pure": { + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.5.tgz", + "integrity": "sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg==" + }, "core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", @@ -19027,7 +19085,8 @@ "deepmerge": { "version": "1.5.2", "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz", - "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==" + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", + "dev": true }, "default-gateway": { "version": "6.0.3", @@ -19381,6 +19440,7 @@ "version": "2.15.8", "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.8.tgz", "integrity": "sha512-N54zxosRFqpYax3APY3GeRmtOZwIls6Z756WM0kdPZ5Q92PIeKHnZgF1StlamIg9bLxP1k+qdhTZvIeQlim09A==", + "dev": true, "requires": { "async-validator": "~1.8.1", "babel-helper-vue-jsx-merge-props": "^2.0.0", @@ -22089,7 +22149,8 @@ "normalize-wheel": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", - "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==" + "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==", + "dev": true }, "normalize.css": { "version": "8.0.1", @@ -23446,8 +23507,7 @@ "regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "regenerator-transform": { "version": "0.15.0", @@ -23589,7 +23649,8 @@ "resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "dev": true }, "resolve": { "version": "1.22.1", @@ -25670,7 +25731,8 @@ "throttle-debounce": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz", - "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==" + "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==", + "dev": true }, "through2": { "version": "2.0.5", @@ -25844,8 +25906,7 @@ "tslib": { "version": "2.4.0", "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "tty-browserify": { "version": "0.0.0", @@ -26265,6 +26326,16 @@ "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==", "requires": {} }, + "wangeditor": { + "version": "4.7.15", + "resolved": "https://registry.npmjs.org/wangeditor/-/wangeditor-4.7.15.tgz", + "integrity": "sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg==", + "requires": { + "@babel/runtime": "^7.11.2", + "@babel/runtime-corejs3": "^7.11.2", + "tslib": "^2.1.0" + } + }, "watchpack": { "version": "2.4.0", "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz", diff --git a/package.json b/package.json index 107c5dc..4698577 100644 --- a/package.json +++ b/package.json @@ -12,14 +12,14 @@ "@amap/amap-jsapi-loader": "^1.0.1", "axios": "^0.27.2", "core-js": "^3.8.3", - "normalize.css": "^8.0.1", "sass": "^1.54.8", "sass-loader": "^13.0.2", "vue": "^2.6.14", "vue-gemini-scrollbar": "^2.0.1", "vue-router": "^3.5.1", - "vuex": "^3.6.2" + "vuex": "^3.6.2", + "wangeditor": "^4.7.15" }, "devDependencies": { "@vue/cli-plugin-babel": "~5.0.0", diff --git a/src/components/detail/index.vue b/src/components/detail/index.vue index f398e1a..9394f71 100644 --- a/src/components/detail/index.vue +++ b/src/components/detail/index.vue @@ -20,7 +20,7 @@ <label class="data-title"> 灏忕被鍚嶇О: </label> - <span class="data-detail">xxx</span> + <!-- <span class="data-detail">{{baseCase.violations}}</span> --> </div> <div class="data-item__right"> <label class="data-title"> @@ -118,7 +118,7 @@ </div> <div class="show-item"> <div class="show-wrap"> - <MyProcess v-if="activeIndex === 1" :handlePassVo="handlePassVo"></MyProcess> + <MyProcess v-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess> <MyFilePicture v-else-if="activeIndex === 2" :filesPictureVo="filesPictureVo" ></MyFilePicture> <MySovleProblem v-else-if="activeIndex === 3" :problemProVo="problemProVo"></MySovleProblem> <MyScene v-else :currentSitVo="currentSitVo"></MyScene> diff --git a/src/components/dispatch/index.vue b/src/components/dispatch/index.vue index 66d3df2..c5aebf1 100644 --- a/src/components/dispatch/index.vue +++ b/src/components/dispatch/index.vue @@ -300,17 +300,21 @@ }, // 浜哄憳鏇存敼 async handlePerChange(id){ - await this.getLawUser(id); + let obj = await this.getLawUser(id); + this.dispatch.lawEnforcerName = obj.nickName; + this.dispatch.contactWay = obj.mobile; }, // 鑾峰彇鎵ф硶浜哄憳淇℃伅 async getLawUser(id){ + let obj = {} await this.$axios({ method:'get', url:`sccg/admin/${id}` }) .then(res=>{ - console.log(res); + obj = res.data; }) + return obj; } } } diff --git a/src/components/edit/index.vue b/src/components/edit/index.vue new file mode 100644 index 0000000..7752241 --- /dev/null +++ b/src/components/edit/index.vue @@ -0,0 +1,41 @@ +<template> + <div id="edit"> + + </div> +</template> +<script> +import E from 'wangeditor' +export default { + data() { + return { + editor: null + } + }, + mounted() { + this.editor = new E('#edit'); + this.editor.config.height = 450; + this.editor.config.colors = [ + '#4b9bb7', + '#09152f' + ] + this.editor.create(); + }, + beforeDestroy() { + this.editor.destroy(); + this.editor = null; + } + +} +</script> +<style lang="scss" scoped> + #edit{ + :deep(.w-e-toolbar){ + background-color: #09152f !important; + color: #4b9bb7; + } + :deep(.w-e-text-container){ + background-color: #09152f !important; + color: #4b9bb7; + } + } +</style> \ No newline at end of file diff --git a/src/components/illdetail/index.vue b/src/components/illdetail/index.vue index 7606cf6..7ada2f5 100644 --- a/src/components/illdetail/index.vue +++ b/src/components/illdetail/index.vue @@ -77,7 +77,7 @@ </div> <div class="show-item"> <div class="show-wrap"> - <MyProcess v-if="activeIndex === 1" :handlePassVo="handlePassVo"></MyProcess> + <MyProcess v-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess> <MyFilePicture v-else-if="activeIndex === 2" :filesPictureVo="filesPictureVo" ></MyFilePicture> <MySovleProblem v-else-if="activeIndex === 3" :problemProVo="problemProVo"></MySovleProblem> <MyScene v-else :currentSitVo="currentSitVo"></MyScene> diff --git a/src/components/process/index.vue b/src/components/process/index.vue index ef53b8b..e66ea59 100644 --- a/src/components/process/index.vue +++ b/src/components/process/index.vue @@ -43,45 +43,26 @@ return { active: 0, list: [ - { - title: '涓婃姤', - status: 'success', - }, - { - title: '绔嬫', - status: 'process', - }, - { - title: '娲鹃仯', - status: 'process', - }, - { - title: '澶勭疆', - status: 'process', - }, - { - title: '鏍告煡', - status: 'process', - }, - { - title: '缁撴', - status: 'process', - } ], } }, - props:['handlePassVo'], + props:['handlePassVo','baseCase'], created(){ - console.log('process'); - const {handlePassVo:{workflowConfigSteps:mylist}} = this; + const {handlePassVo:{workflowConfigSteps:mylist},baseCase:{state:mystate}} = this; // console.log(this.handlePassVo.workflowConfigSteps[0].name); // console.log(mylist); - mylist.forEach(item=>{ - if(item.disposeRecords.length!==0){ - this.active ++; - } - }) - console.log(this.active); + console.log(mystate); + if(mystate===0){ + this.active = -1; + }else if(mystate ===6){ + this.active = 1; + }else if(mystate===7){ + this.active = 2; + }else if(mystate ===8){ + this.active = 3; + }else if(mystate ===9){ + this.active = 4; + } this.list = mylist; }, } diff --git a/src/router/index.js b/src/router/index.js index 9266767..d1422bc 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -199,6 +199,23 @@ component: () => import('@/views/operate/car/soilCar'), } ] + }, + { + path: 'message', + name: 'message', + component: () => import('@/views/operate/message'), + children: [ + { + path: 'messageIndex', + name: 'messageIndex', + component: () => import('@/views/operate/message/myIndex'), + }, + { + path:'mycontrol', + name:'mycontrol', + component: () => import('@/views/operate/message/mycontrol'), + }, + ] } ] }, diff --git a/src/utils/helper.js b/src/utils/helper.js index dcb709e..622cae1 100644 --- a/src/utils/helper.js +++ b/src/utils/helper.js @@ -29,7 +29,6 @@ let dd = Math.floor(time/24/60/60/1000), hh = Math.floor(time/60/60/1000-dd*24), mi = Math.floor(time/60/1000-dd*24*60-hh*60); - console.log(dd, hh, mi) return addDay(fillTime(dd)) + addHour(fillTime(hh)) + addMin(fillTime(mi)); } function fillTime(num) { @@ -40,21 +39,21 @@ } function addDay(str) { str = parseFloat(str); - if (str <= 0) { + if (str <0) { return; } return str + '澶�' } function addHour(str) { str = parseFloat(str); - if (str <= 0) { + if (str <0) { return; } return str + '灏忔椂' } function addMin(str) { str = parseFloat(str); - if (str <= 0) { + if (str < 0) { return; } return str + '鍒嗛挓' diff --git a/src/utils/mydate.js b/src/utils/mydate.js index 521b6d2..a76a17e 100644 --- a/src/utils/mydate.js +++ b/src/utils/mydate.js @@ -2,7 +2,7 @@ function filterTime(time){ const result = new Date(time); let yy = result.getFullYear(), - mm = result.getMonth(), + mm = result.getMonth()+1, dd = result.getDate(), hh = result.getHours(), mi = result.getMinutes(); diff --git a/src/utils/request.js b/src/utils/request.js index d6da1bf..402a567 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -1,7 +1,10 @@ import axios from 'axios'; import router from '@/router' +// 寮曞叆elementUI +import tip from 'element-ui'; const api = axios.create({ baseURL: 'http://42.193.1.25:8082/', // 璇锋眰鐨勫叕鍏卞湴鍧�閮ㄥ垎 + timeout: 15000 }) // 鎷︽埅鍣� // 璇锋眰 @@ -12,19 +15,57 @@ config.headers.Authorization = tokenHead + token; } return config; -},(err)=>{ +}, (err) => { console.log(err); } ) // 鍝嶅簲 api.interceptors.response.use( function (response) { + if (response.data.code === 401) { + tip.Message({ + type: 'warning', + message: '鐧诲綍韬唤宸茶繃鏈�', + }) + router.push('/login'); + } return response.data; }, function (error) { - const {code} = error.response.data; - if(code === 401){ + console.log(error); + if(error.code === "ECONNABORTED"){ + tip.Message({ + type:'error', + message:'缃戠粶璇锋眰瓒呭競', + duration: 3 * 1000, + }) + return; + } + const {code,status} = error.response.data; + if (error.code === 'ERR_NETWORK') { + console.log(1); + tip.Message({ + type: 'error', + message: '鏈嶅姟鍣ㄦ晠闅�' + }) + return; + } + if (code === 401) { + console.log(2); + tip.Message({ + type: 'warning', + message: '鐧诲綍韬唤宸茶繃鏈�', + }) router.push('/login'); + return; + } + if (status === 500) { + console.log(3); + tip.Message({ + type: 'error', + message: '缃戠粶璇锋眰鍑洪敊' + }) + return; } } ); diff --git a/src/utils/validate.js b/src/utils/validate.js index 159c39c..42e530d 100644 --- a/src/utils/validate.js +++ b/src/utils/validate.js @@ -24,5 +24,9 @@ const rep = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; return rep.test(str); } -// +// 楠岃瘉杞︾墝鍙� +export function validateCarNum(str){ + const regExp = /(^[浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹绮ら潚钘忓窛瀹佺惣浣块A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9鎸傚璀︽腐婢砞{1}$)/; + return regExp.test(str); +} diff --git a/src/views/layout/components/Menu/index.vue b/src/views/layout/components/Menu/index.vue index 3ee22e5..25195ae 100644 --- a/src/views/layout/components/Menu/index.vue +++ b/src/views/layout/components/Menu/index.vue @@ -119,7 +119,13 @@ </el-submenu> <el-menu-item index="/home/operate">鍥剧墖绠$悊</el-menu-item> <el-menu-item index="/home/operate">瑙嗛绠$悊</el-menu-item> - <el-menu-item index="/home/operate">娑堟伅绠$悊</el-menu-item> + <el-submenu index="/home/operate/message" class="secondMenu"> + <template slot="title"> + <span class="secondSpan">娑堟伅绠$悊</span> + </template> + <el-menu-item index="/home/operate/message/messageIndex">娑堟伅绠$悊</el-menu-item> + <el-menu-item index="/home/operate/message/mycontrol">鏍忕洰绠$悊</el-menu-item> + </el-submenu> <el-menu-item index="/home/operate">鐭俊绠$悊</el-menu-item> <el-menu-item index="/home/operate">鏃ュ織绠$悊</el-menu-item> </el-submenu> diff --git a/src/views/operate/car/myIndex/create/law/index.vue b/src/views/operate/car/myIndex/create/law/index.vue new file mode 100644 index 0000000..3519ff4 --- /dev/null +++ b/src/views/operate/car/myIndex/create/law/index.vue @@ -0,0 +1,269 @@ +<template> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form ref="user" label-width="140px" :rules="createCarRules" autoComplete="on" :model="car" + label-position="right"> + <!-- 杞︾墝鍙� --> + <el-form-item class="optionItem" label="杞︾墝鍙�:" prop="carNumber"> + <el-input v-model="car.carNumber" placeholder="璇峰~鍐欒溅鐗屽彿"></el-input> + </el-form-item> + <!-- 鎵�灞為儴闂� --> + <el-form-item class="optionItems" label="鎵�灞為儴闂�:" prop="depart"> + <el-input v-model="car.depart" placeholder="璇峰~鍐欐墍灞為儴闂�"></el-input> + <!-- <el-select v-model="car.group" placeholder="璇烽�夋嫨鎵�灞炵被鍨�"> + <el-option v-for="item in teamList" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> --> + </el-form-item> + <!-- 鎵�灞炲ぇ闃� --> + <el-form-item class="optionItems" label="鎵�灞炲ぇ闃�:" prop="belong"> + <el-input v-model="car.belong" placeholder="璇峰~鍐欐墍灞炲ぇ闃�"></el-input> + <!-- <el-select v-model="car.group" placeholder="璇烽�夋嫨鎵�灞炵被鍨�"> + <el-option v-for="item in teamList" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> --> + </el-form-item> + <!-- 杞︿富濮撳悕 --> + <el-form-item class="optionItem" label="杞︿富濮撳悕:" prop="ownerName"> + <el-input v-model="car.ownerName" placeholder="璇疯緭鍏ヨ溅涓诲鍚�"></el-input> + </el-form-item> + <!-- 杞﹁締浣跨敤浜哄憳 --> + <el-form-item class="optionItem" label="杞﹁締浣跨敤浜哄憳:" prop="vehicleUser"> + <el-input v-model="car.vehicleUser" placeholder="璇疯緭鍏ヨ溅杈嗕娇鐢ㄤ汉鍛�"></el-input> + </el-form-item> + <!-- 鑱旂郴鏂瑰紡 --> + <el-form-item class="optionItem" label="鑱旂郴鏂瑰紡:" prop="contact"> + <el-input v-model="car.contact" placeholder="璇疯緭鍏ヨ溅涓绘墜鏈哄彿鐮�"></el-input> + </el-form-item> + <!-- 杞ㄨ抗 --> + <el-form-item class="optionItem" label="杞ㄨ抗:" prop="trajectory"> + <el-input type="textarea" :rows="2" v-model="car.trajectory" placeholder="璇疯緭鍏ヨ溅杈嗚建杩�"></el-input> + </el-form-item> + <el-form-item> + <div class="optionBtn"> + <el-button type="primary" class="btn submit" @click.native.prevent="handleCar">纭 + </el-button> + <el-button class="btn cancel" @click.native.prevent="handleStop"> + 鍙栨秷 + </el-button> + </div> + </el-form-item> + </el-form> + + </div> + </main> + </div> +</template> +<script> +import {validateCarNum,validatePhone,validateName} from '@/utils/validate' +export default { + data() { + const checkCarNum = (rule, value, callback) => { + if (value) { + if(validateCarNum(value)){ + callback() + }else{ + callback(new Error('璇疯緭鍏ユ纭殑杞︾墝鍙�')); + } + } else { + callback(new Error('杞︾墝鍙蜂笉鑳戒负绌�')); + } + } + const checkName = (rule, value, callback) => { + if (value) { + if(validateName(value)){ + callback() + }else{ + callback(new Error('璇锋纭緭鍏ヨ溅涓诲鍚�')); + } + } else { + callback(new Error('杞︿富濮撳悕涓嶈兘涓虹┖')); + } + } + const checkUser = (rule, value, callback) => { + if (value) { + if(validateName(value)){ + callback() + }else{ + callback(new Error('璇锋纭緭鍏ヨ溅杈嗕娇鐢ㄤ汉鍛�')); + } + } else { + callback(new Error('杞﹁締浣跨敤浜哄憳涓嶈兘涓虹┖')); + } + } + const checkPhone = (rule, value, callback) => { + if (value) { + if(validatePhone(value)){ + callback() + }else{ + callback(new Error('璇疯緭鍏ユ纭殑鎵嬫満鍙�')); + } + } else { + callback(new Error('鎵嬫満鍙风爜涓嶈兘涓虹┖')); + } + } + return { + car: { + carNumber: "", + contact: "", + belong: "", + // id: 0, + ownerName: "", + trajectory: "", + vehicleUser: "", + depart:'', + }, + createCarRules: { + carNumber: [ + { + required: true, trigger:'blur', validator: checkCarNum + } + ], + contact: [ + { + required: true,trigger:'blur', validator: checkPhone + } + ], + // id: 0, + ownerName: [ + { + required: true,trigger:'blur', validator: checkName + } + ], + vehicleUser: [ + { + required: true,trigger:'blur', validator: checkUser + } + ] + }, + teamList: [ + { + label: '澶ч槦涓�', + value: 1, + }, + { + label: '澶ч槦浜�', + value: 2, + }, + ] + } + }, + created() { + }, + methods: { + // 娣诲姞杞﹁締 + handleCar() { + console.log(this.car); + this.$refs.user.validate((valid) => { + if (valid) { + const {car} = this; + this.$axios({ + method: 'post', + url: 'sccg/car_Manage/addition_enforce', + data: { + carNumber: car.carNumber, + contact: car.contact, + belong: car.belong, + // id: 0, + ownerName: car.ownerName, + trajectory: car.trajectory, + vehicleUser: car.vehicleUser, + depart:car.depart, + } + }) + .then(res=>{ + console.log(res); + if(res.code === 200){ + this.$message({ + type:'success', + message:'鏂板杞﹁締鎴愬姛', + }) + this.$emit('closeDialog',{flag:false,index:1}); + }else{ + this.$message({ + type:'error', + message:res.message, + }) + } + }) + } else { + return false; + } + }) + }, + handleStop(){ + this.$emit('closeDialog',{flag:false,index:0}); + } + + }, + props: ['closeDialog'] +} +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: #09152f; + + main { + // border: 1px solid #fff; + text-align: left; + padding: 0 55px; + background-color: #09152f; + padding-bottom: 50px; + + .mainContent { + display: flex; + justify-content: center; + padding-top: 50px; + + .el-form-item__content { + width: 400px; + + .el-select { + width: 100%; + } + } + + .optionHandleSp { + display: flex; + + .areaNumber, + .moreNumber { + flex: 1; + } + + .telNumber { + flex: 2; + } + } + + .optionBtn { + display: flex; + margin-top: 20px; + + .btn { + padding: 12px 50px; + } + } + + } + } + + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + ::v-deep .el-form-item__label { + color: #4b9bb7; + } + + ::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/car/myIndex/create/soil/index.vue b/src/views/operate/car/myIndex/create/soil/index.vue new file mode 100644 index 0000000..92c6e0d --- /dev/null +++ b/src/views/operate/car/myIndex/create/soil/index.vue @@ -0,0 +1,310 @@ +<template> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form ref="user" label-width="140px" :rules="createCarRules" autoComplete="on" :model="car" + label-position="right"> + <!-- 杞︾墝鍙� --> + <el-form-item class="optionItem" label="杞︾墝鍙�:" prop="carNumber"> + <el-input v-model="car.carNumber" placeholder="璇峰~鍐欒溅鐗屽彿"></el-input> + </el-form-item> + <!-- 杞﹀瀷 --> + <el-form-item class="optionItems" label="杞﹀瀷:" prop="carModel"> + <el-select v-model="car.carModel" placeholder="璇烽�夋嫨杞﹀瀷"> + <el-option v-for="item in carTypeList" :key="item.value" :label="item.label" + :value="item.label"> + </el-option> + </el-select> + </el-form-item> + <!-- 杞︿富濮撳悕 --> + <el-form-item class="optionItem" label="杞︿富濮撳悕:" prop="ownerName"> + <el-input v-model="car.ownerName" placeholder="璇疯緭鍏ヨ溅涓诲鍚�"></el-input> + </el-form-item> + <!-- 杞﹁締浣跨敤浜哄憳 --> + <el-form-item class="optionItem" label="杞﹁締浣跨敤浜哄憳:" prop="vehicleUser"> + <el-input v-model="car.vehicleUser" placeholder="璇疯緭鍏ヨ溅杈嗕娇鐢ㄤ汉鍛�"></el-input> + </el-form-item> + <!-- 鑱旂郴鏂瑰紡 --> + <el-form-item class="optionItem" label="鑱旂郴鏂瑰紡:" prop="contact"> + <el-input v-model="car.contact" placeholder="璇疯緭鍏ヨ溅涓绘墜鏈哄彿鐮�"></el-input> + </el-form-item> + <!-- 鏂藉伐鍗曚綅 --> + <el-form-item class="optionItems" label="鏂藉伐鍗曚綅:" prop="constructionOrg"> + <el-input v-model="car.constructionOrg" placeholder="璇峰~鍐欐柦宸ュ崟浣�"></el-input> + </el-form-item> + <!-- 鏂藉伐鍦板潃 --> + <el-form-item class="optionItems" label="鏂藉伐鍦板潃:" prop="geographicPosition"> + <el-input v-model="car.geographicPosition" placeholder="璇峰~鍐欐柦宸ュ湴鍧�"></el-input> + </el-form-item> + <!-- 杞ㄨ抗 --> + <el-form-item class="optionItem" label="杞ㄨ抗:" prop="trajectory"> + <el-input type="textarea" :rows="2" v-model="car.trajectory" placeholder="璇疯緭鍏ヨ溅杈嗚建杩�"></el-input> + </el-form-item> + <el-form-item> + <div class="optionBtn"> + <el-button type="primary" class="btn submit" @click.native.prevent="handleCar">纭 + </el-button> + <el-button class="btn cancel" @click.native.prevent="handleStop"> + 鍙栨秷 + </el-button> + </div> + </el-form-item> + </el-form> + + </div> + </main> + </div> +</template> +<script> +import {validateName,validatePhone,validateCarNum} from '@/utils/validate' +export default { + data() { + const checkCarNum = (rule, value, callback) => { + if (value) { + if(validateCarNum(value)){ + callback(); + }else{ + callback(new Error('璇疯緭鍏ユ纭殑杞︾墝鍙�')); + } + } else { + callback(new Error('杞︾墝鍙蜂笉鑳戒负绌�')); + } + } + const checkName = (rule, value, callback) => { + if (value) { + if(validateName(value)){ + callback(); + }else{ + callback(new Error('璇疯緭鍏ユ纭殑杞︿富濮撳悕')) + } + } else { + callback(new Error('杞︿富濮撳悕涓嶈兘涓虹┖')); + } + } + const checkUser = (rule, value, callback) => { + if (value) { + if(validateName(value)){ + callback(); + }else{ + callback(new Error('璇锋纭緭鍏ヨ溅杈嗕娇鐢ㄤ汉鍛�')) + } + } else { + callback(new Error('杞﹁締浣跨敤浜哄憳涓嶈兘涓虹┖')); + } + } + const checkPhone = (rule, value, callback) => { + if (value) { + if(validatePhone(value)){ + callback(); + }else{ + callback(new Error('璇疯緭鍏ユ纭殑鎵嬫満鍙�')) + } + } else { + callback(new Error('鎵嬫満鍙风爜涓嶈兘涓虹┖')); + } + } + const checkCarModel = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('杞﹁締鍨嬪彿涓嶈兘涓虹┖')); + } + } + const checkOrg = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('鏂藉伐鍗曚綅涓嶈兘涓虹┖')); + } + } + const checkPosition = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('鏂藉伐鍦板潃涓嶈兘涓虹┖')); + } + } + return { + car: { + carNumber: "", + contact: "", + belong: "", + // id: 0, + ownerName: "", + trajectory: "", + vehicleUser: "", + constructionOrg: '', + }, + createCarRules: { + carNumber: [ + { + required: true, trigger:'blur', validator: checkCarNum + } + ], + carModel: [ + { + required: true, trigger:'change',validator: checkCarModel + } + ], + contact: [ + { + required: true,trigger:'blur', validator: checkPhone + } + ], + // id: 0, + ownerName: [ + { + required: true,trigger:'blur', validator: checkName + } + ], + vehicleUser: [ + { + required: true, trigger:'blur',validator: checkUser + } + ], + constructionOrg: [ + { + required: true,trigger:'blur', validator: checkOrg + } + ], + geographicPosition: [ + { + required: true, trigger:'blur',validator: checkPosition + } + ] + }, + carTypeList: [ + { + label: '澶у瀷', + value: 1, + }, + { + label: '涓瀷', + value: 2, + }, + { + label: '灏忓瀷', + value: 3, + }, + ] + } + }, + created() { + }, + methods: { + // 娣诲姞杞﹁締 + handleCar() { + console.log(this.car); + this.$refs.user.validate((valid) => { + if (valid) { + const { car } = this; + this.$axios({ + method: 'post', + url: 'sccg/car_Manage/addition_slag', + data: { + carNumber: car.carNumber, + carModel:car.carModel, + carPhoto:'', + constructionOrg:car.constructionOrg, + geographicPosition:car.geographicPosition, + // contact: car.contact, + // belong: car.belong, + // id: 0, + // ownerName: car.ownerName, + trajectory: car.trajectory, + // vehicleUser: car.vehicleUser, + } + }) + .then(res => { + console.log(res); + if (res.code === 200) { + this.$message({ + type: 'success', + message: '鏂板杞﹁締鎴愬姛', + }) + this.$emit('closeDialog', { flag: false,index:1 }); + } else { + this.$message({ + type: 'error', + message: res.message, + }) + } + }) + } else { + return false; + } + }) + }, + handleStop(){ + this.$emit('closeDialog', { flag: false,index:0 }); + } + + }, + props: ['closeDialog'] +} +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: #09152f; + + main { + // border: 1px solid #fff; + text-align: left; + padding: 0 55px; + background-color: #09152f; + padding-bottom: 50px; + + .mainContent { + display: flex; + justify-content: center; + padding-top: 50px; + + .el-form-item__content { + width: 400px; + + .el-select { + width: 100%; + } + } + + .optionHandleSp { + display: flex; + + .areaNumber, + .moreNumber { + flex: 1; + } + + .telNumber { + flex: 2; + } + } + + .optionBtn { + display: flex; + margin-top: 20px; + + .btn { + padding: 12px 50px; + } + } + + } + } + + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + ::v-deep .el-form-item__label { + color: #4b9bb7; + } + + ::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/car/myIndex/createUser/index.vue b/src/views/operate/car/myIndex/createUser/index.vue deleted file mode 100644 index 792215e..0000000 --- a/src/views/operate/car/myIndex/createUser/index.vue +++ /dev/null @@ -1,172 +0,0 @@ -<template> - <div class="createUser"> - <main> - <div class="mainContent"> - <el-form ref="user" label-width="140px" :rules="createCarRules" autoComplete="on" :model="car" - label-position="right"> - <!-- 杞︾墝鍙� --> - <el-form-item class="optionItem" label="杞︾墝鍙�:" prop="carNumber"> - <el-input v-model="car.carNumber" placeholder="璇峰~鍐欒溅鐗屽彿"></el-input> - </el-form-item> - <!-- 鎵�灞炲ぇ闃� --> - <el-form-item class="optionItems" label="鎵�灞炲ぇ闃�:" prop="group"> - <el-select v-model="car.group" placeholder="璇烽�夋嫨鎵�灞炵被鍨�"> - <el-option v-for="item in teamList" :key="item.value" :label="item.label" :value="item.value"> - </el-option> - </el-select> - </el-form-item> - <!-- 杞︿富濮撳悕 --> - <el-form-item class="optionItem" label="杞︿富濮撳悕:" prop="ownerName"> - <el-input v-model="car.ownerName" placeholder="璇疯緭鍏ヨ溅涓诲鍚�"></el-input> - </el-form-item> - <!-- 杞﹁締浣跨敤浜哄憳 --> - <el-form-item class="optionItem" label="杞﹁締浣跨敤浜哄憳:" prop="vehicleUser"> - <el-input v-model="car.vehicleUser" placeholder="璇疯緭鍏ヨ溅杈嗕娇鐢ㄤ汉鍛�"></el-input> - </el-form-item> - <!-- 鑱旂郴鏂瑰紡 --> - <el-form-item class="optionItem" label="鑱旂郴鏂瑰紡:" prop="contact"> - <el-input v-model="car.contact" placeholder="璇疯緭鍏ヨ溅涓绘墜鏈哄彿鐮�"></el-input> - </el-form-item> - <!-- 杞ㄨ抗 --> - <el-form-item class="optionItem" label="杞ㄨ抗:" prop="trajectory"> - <el-input type="textarea" :rows="2" v-model="car.trajectory" placeholder="璇疯緭鍏ヨ溅杈嗚建杩�"></el-input> - </el-form-item> - <el-form-item> - <div class="optionBtn"> - <el-button type="primary" class="btn submit" @click.native.prevent="handleCar">纭 - </el-button> - <el-button class="btn submit" > - 鍙栨秷 - </el-button> - </div> - </el-form-item> - </el-form> - - </div> - </main> - </div> -</template> -<script> -export default { - data() { - return { - car: { - carNumber: "", - contact: "", - group: "", - // id: 0, - ownerName: "", - trajectory: "", - vehicleUser: "" - }, - createCarRules: { - carNumber:[ - { - required:true, - } - ], - contact:[ - { - required:true, - } - ], - // id: 0, - ownerName:[ - { - required:true, - } - ], - vehicleUser:[ - { - required:true, - } - ] - }, - teamList:[ - { - label:'澶ч槦涓�', - value:1, - }, - { - label:'澶ч槦浜�', - value:2, - }, - ] - } - }, - created() { - }, - methods: { - // 娣诲姞杞﹁締 - handleCar(){ - console.log(this.car); - } - }, - props: ['closeDialog'] -} -</script> -<style lang="scss" scoped> -.createUser { - border-radius: 1px; - background-color: #09152f; - - main { - // border: 1px solid #fff; - text-align: left; - padding: 0 55px; - background-color: #09152f; - padding-bottom: 50px; - - .mainContent { - display: flex; - justify-content: center; - padding-top: 50px; - - .el-form-item__content { - width: 400px; - - .el-select { - width: 100%; - } - } - - .optionHandleSp { - display: flex; - - .areaNumber, - .moreNumber { - flex: 1; - } - - .telNumber { - flex: 2; - } - } - - .optionBtn { - display: flex; - margin-top: 20px; - - .btn { - padding: 12px 50px; - } - } - - } - } - - &::v-deep .el-textarea__inner { - background-color: #09152f; - border: 1px solid #17324c; - } - - ::v-deep .el-form-item__label { - color: #4b9bb7; - } - - ::v-deep .el-input__inner { - background-color: #09152f; - border: 1px solid #17324c; - } -} -</style> \ No newline at end of file diff --git a/src/views/operate/car/myIndex/index.vue b/src/views/operate/car/myIndex/index.vue index 5bd43a7..0f0b869 100644 --- a/src/views/operate/car/myIndex/index.vue +++ b/src/views/operate/car/myIndex/index.vue @@ -5,7 +5,7 @@ <div class="search"> <span>杞﹁締鎼滅储:</span> <div class="option"> - <el-input placeholder="璇疯緭鍏ヨ溅鐗屽彿"></el-input> + <el-input @input="handleSearch" v-model="context" placeholder="璇疯緭鍏ヨ溅鐗屽彿"></el-input> </div> </div> <div class="addCar"> @@ -26,30 +26,24 @@ @selection-change="tableChange"> <el-table-column type="selection" min-width="5"> </el-table-column> - <el-table-column prop="code" label="杞︾墝鍙�" min-width="10"> - <template slot-scope="scope"> - <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link> - </template> + <el-table-column prop="carNumber" label="杞︾墝鍙�" min-width="10"> </el-table-column> - <el-table-column prop="code" label="杞﹀瀷" min-width="10" v-if="mystatus===2"> + <el-table-column prop="carModel" label="杞﹀瀷" min-width="10" v-if="mystatus===2"> </el-table-column> - <el-table-column prop="eventSource" label="杞︿富濮撳悕" min-width="10"> - <template slot-scope="scope"> - <span>{{scope.row.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛涓婁紶'}}</span> - </template> + <el-table-column prop="ownerName" label="杞︿富濮撳悕" min-width="10"> </el-table-column> - <el-table-column prop="category" label="杞﹁締浣跨敤浜哄憳" min-width="10"> + <el-table-column prop="vehicleUser" label="杞﹁締浣跨敤浜哄憳" min-width="10"> </el-table-column> - <el-table-column prop="type" label="鑱旂郴鏂瑰紡" min-width="10"> + <el-table-column prop="contact" label="鑱旂郴鏂瑰紡" min-width="10"> </el-table-column> - <el-table-column prop="actionCause" :label="mystatus === 1 ? '鎵�灞為儴闂�':'鏂藉伐鍦板潃'" min-width="10"> + <el-table-column :prop="mystatus===1 ? 'belong' : 'geographicPosition'" :label="mystatus === 1 ? '鎵�灞為儴闂�':'鏂藉伐鍦板潃'" min-width="10"> </el-table-column> - <el-table-column prop="site" :label="mystatus === 1 ? '鎵�灞炲ぇ闃�' : '鏂藉伐鍗曚綅'" min-width="10"> + <el-table-column :prop="mystatus===1 ? 'depart' : 'constructionOrg'" :label="mystatus === 1 ? '鎵�灞炲ぇ闃�' : '鏂藉伐鍗曚綅'" min-width="10"> </el-table-column> <el-table-column prop="operation" label="鎿嶄綔" min-width="20"> <template slot-scope="scope"> <div class="btn"> - <span @click="handleReset(scope.row)">鏌ョ湅</span> + <span @click="handleView(scope.row)">鏌ョ湅</span> <span class="line">|</span> <span>鍒犻櫎</span> </div> @@ -60,6 +54,13 @@ <el-dialog :visible.sync="dialogAdd" width="60%" title="鏂板杞﹁締" v-if="dialogAdd" :before-close="handleClose"> <Mycreate v-if="mystatus === 1" @closeDialog="closeDialog"></Mycreate> + <MySoil v-else @closeDialog="closeDialog"></MySoil> + </el-dialog> + <!-- 鏌ョ湅 --> + <el-dialog :visible.sync="dialogView" width="60%" title="鏌ョ湅杞﹁締淇℃伅" + v-if="dialogView" :before-close="handleNoClose"> + <MyViewLaw v-if="mystatus === 1" :info="info"></MyViewLaw> + <MyViewSoil v-else :info="info"></MyViewSoil> </el-dialog> <!-- tools --> <div class="tools"> @@ -90,17 +91,22 @@ </div> </template> <script> -import Mycreate from './createUser' +import Mycreate from './create/law' +import MySoil from './create/soil' +import MyViewLaw from './update/law' +import MyViewSoil from './update/soil' export default { components: { - Mycreate + Mycreate,MySoil,MyViewLaw, + MyViewSoil }, data() { return { tableData: [], context: "", dialogAdd:false, - info: {}, + dialogView:false, + info: '', totalNum: null, pageSize: 10, currentPage: 1, @@ -142,12 +148,22 @@ ], mystatus:1, caseId:'', + timer:null, } }, created() { this.getUserList(); }, methods: { + // 鎼滅储杞﹁締 + handleSearch(val){ + if(this.timer){ + clearTimeout(this.timer); + } + this.timer = setTimeout(()=>{ + this.getUserList(); + },1000); + }, // 娣诲姞杞﹁締 handleAddCar(){ this.dialogAdd = true; @@ -217,6 +233,7 @@ url:`sccg/car_Manage/query_enforce?current=${currentPage}&size=${pageSize}&carNum=${carNum}`, }) .then(res=>{ + console.log(res); arr = res.data; }) return arr; @@ -279,14 +296,24 @@ async JumpView(data){ await this.getEventInfo(data.code); }, + handleNoClose(done){ + done(); + }, opernDialog(data){ this.dialogAdd = true; this.caseId = data.id; // console.log(data); }, - // 鍏抽棴涓婁紶鐣岄潰 - closeDialog({flag}){ + // 鍏抽棴鐣岄潰 + closeDialog({flag,index}){ this.dialogAdd = flag; + if(index===1){ + this.getUserList(); + } + }, + handleView(data){ + this.info = data; + this.dialogView = true; } } } diff --git a/src/views/operate/car/myIndex/updateUser/index.vue b/src/views/operate/car/myIndex/update/index.vue similarity index 100% rename from src/views/operate/car/myIndex/updateUser/index.vue rename to src/views/operate/car/myIndex/update/index.vue diff --git a/src/views/operate/car/myIndex/update/law/index.vue b/src/views/operate/car/myIndex/update/law/index.vue new file mode 100644 index 0000000..1bc6994 --- /dev/null +++ b/src/views/operate/car/myIndex/update/law/index.vue @@ -0,0 +1,227 @@ +<template> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form ref="user" label-width="140px" :rules="createCarRules" autoComplete="on" :model="car" + label-position="right"> + <!-- 杞︾墝鍙� --> + <el-form-item class="optionItem" label="杞︾墝鍙�:" prop="carNumber"> + <el-input v-model="car.carNumber" placeholder="璇峰~鍐欒溅鐗屽彿"></el-input> + </el-form-item> + <!-- 鎵�灞為儴闂� --> + <el-form-item class="optionItems" label="鎵�灞為儴闂�:" prop="depart"> + <el-input v-model="car.depart" placeholder="璇峰~鍐欐墍灞為儴闂�"></el-input> + <!-- <el-select v-model="car.group" placeholder="璇烽�夋嫨鎵�灞炵被鍨�"> + <el-option v-for="item in teamList" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> --> + </el-form-item> + <!-- 鎵�灞炲ぇ闃� --> + <el-form-item class="optionItems" label="鎵�灞炲ぇ闃�:" prop="belong"> + <el-input v-model="car.belong" placeholder="璇峰~鍐欐墍灞炲ぇ闃�"></el-input> + <!-- <el-select v-model="car.group" placeholder="璇烽�夋嫨鎵�灞炵被鍨�"> + <el-option v-for="item in teamList" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> --> + </el-form-item> + <!-- 杞︿富濮撳悕 --> + <el-form-item class="optionItem" label="杞︿富濮撳悕:" prop="ownerName"> + <el-input v-model="car.ownerName" placeholder="璇疯緭鍏ヨ溅涓诲鍚�"></el-input> + </el-form-item> + <!-- 杞﹁締浣跨敤浜哄憳 --> + <el-form-item class="optionItem" label="杞﹁締浣跨敤浜哄憳:" prop="vehicleUser"> + <el-input v-model="car.vehicleUser" placeholder="璇疯緭鍏ヨ溅杈嗕娇鐢ㄤ汉鍛�"></el-input> + </el-form-item> + <!-- 鑱旂郴鏂瑰紡 --> + <el-form-item class="optionItem" label="鑱旂郴鏂瑰紡:" prop="contact"> + <el-input v-model="car.contact" placeholder="璇疯緭鍏ヨ溅涓绘墜鏈哄彿鐮�"></el-input> + </el-form-item> + <!-- 杞ㄨ抗 --> + <el-form-item class="optionItem" label="杞ㄨ抗:" prop="trajectory"> + <el-input type="textarea" :rows="2" v-model="car.trajectory" placeholder="璇疯緭鍏ヨ溅杈嗚建杩�"></el-input> + </el-form-item> + <!-- <el-form-item> + <div class="optionBtn"> + <el-button type="primary" class="btn submit" @click.native.prevent="handleCar">纭 + </el-button> + <el-button class="btn cancel" @click.native.prevent="handleStop"> + 鍙栨秷 + </el-button> + </div> + </el-form-item> --> + </el-form> + + </div> + </main> + </div> +</template> +<script> +import {validateCarNum,validatePhone,validateName} from '@/utils/validate' +export default { + data() { + const checkCarNum = (rule, value, callback) => { + if (value) { + if(validateCarNum(value)){ + callback() + }else{ + callback(new Error('璇疯緭鍏ユ纭殑杞︾墝鍙�')); + } + } else { + callback(new Error('杞︾墝鍙蜂笉鑳戒负绌�')); + } + } + const checkName = (rule, value, callback) => { + if (value) { + if(validateName(value)){ + callback() + }else{ + callback(new Error('璇锋纭緭鍏ヨ溅涓诲鍚�')); + } + } else { + callback(new Error('杞︿富濮撳悕涓嶈兘涓虹┖')); + } + } + const checkUser = (rule, value, callback) => { + if (value) { + if(validateName(value)){ + callback() + }else{ + callback(new Error('璇锋纭緭鍏ヨ溅杈嗕娇鐢ㄤ汉鍛�')); + } + } else { + callback(new Error('杞﹁締浣跨敤浜哄憳涓嶈兘涓虹┖')); + } + } + const checkPhone = (rule, value, callback) => { + if (value) { + if(validatePhone(value)){ + callback() + }else{ + callback(new Error('璇疯緭鍏ユ纭殑鎵嬫満鍙�')); + } + } else { + callback(new Error('鎵嬫満鍙风爜涓嶈兘涓虹┖')); + } + } + return { + car: { + carNumber: "", + contact: "", + belong: "", + // id: 0, + ownerName: "", + trajectory: "", + vehicleUser: "", + depart:'', + }, + createCarRules: { + carNumber: [ + { + required: true, trigger:'blur', validator: checkCarNum + } + ], + contact: [ + { + required: true,trigger:'blur', validator: checkPhone + } + ], + // id: 0, + ownerName: [ + { + required: true,trigger:'blur', validator: checkName + } + ], + vehicleUser: [ + { + required: true,trigger:'blur', validator: checkUser + } + ] + }, + teamList: [ + { + label: '澶ч槦涓�', + value: 1, + }, + { + label: '澶ч槦浜�', + value: 2, + }, + ] + } + }, + created() { + console.log(this.info); + this.car = JSON.parse(JSON.stringify(this.info)); + }, + methods: { + }, + props: ['info'] +} +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: #09152f; + + main { + // border: 1px solid #fff; + text-align: left; + padding: 0 55px; + background-color: #09152f; + padding-bottom: 50px; + + .mainContent { + display: flex; + justify-content: center; + padding-top: 50px; + + .el-form-item__content { + width: 400px; + + .el-select { + width: 100%; + } + } + + .optionHandleSp { + display: flex; + + .areaNumber, + .moreNumber { + flex: 1; + } + + .telNumber { + flex: 2; + } + } + + .optionBtn { + display: flex; + margin-top: 20px; + + .btn { + padding: 12px 50px; + } + } + + } + } + + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + ::v-deep .el-form-item__label { + color: #4b9bb7; + } + + ::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/car/myIndex/update/soil/index.vue b/src/views/operate/car/myIndex/update/soil/index.vue new file mode 100644 index 0000000..03c2a71 --- /dev/null +++ b/src/views/operate/car/myIndex/update/soil/index.vue @@ -0,0 +1,265 @@ +<template> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form ref="user" label-width="140px" :rules="createCarRules" autoComplete="on" :model="car" + label-position="right"> + <!-- 杞︾墝鍙� --> + <el-form-item class="optionItem" label="杞︾墝鍙�:" prop="carNumber"> + <el-input v-model="car.carNumber" placeholder="璇峰~鍐欒溅鐗屽彿"></el-input> + </el-form-item> + <!-- 杞﹀瀷 --> + <el-form-item class="optionItems" label="杞﹀瀷:" prop="carModel"> + <el-select v-model="car.carModel" placeholder="璇烽�夋嫨杞﹀瀷"> + <el-option v-for="item in carTypeList" :key="item.value" :label="item.label" + :value="item.label"> + </el-option> + </el-select> + </el-form-item> + <!-- 杞︿富濮撳悕 --> + <el-form-item class="optionItem" label="杞︿富濮撳悕:" prop="ownerName"> + <el-input v-model="car.ownerName" placeholder="璇疯緭鍏ヨ溅涓诲鍚�"></el-input> + </el-form-item> + <!-- 杞﹁締浣跨敤浜哄憳 --> + <el-form-item class="optionItem" label="杞﹁締浣跨敤浜哄憳:" prop="vehicleUser"> + <el-input v-model="car.vehicleUser" placeholder="璇疯緭鍏ヨ溅杈嗕娇鐢ㄤ汉鍛�"></el-input> + </el-form-item> + <!-- 鑱旂郴鏂瑰紡 --> + <el-form-item class="optionItem" label="鑱旂郴鏂瑰紡:" prop="contact"> + <el-input v-model="car.contact" placeholder="璇疯緭鍏ヨ溅涓绘墜鏈哄彿鐮�"></el-input> + </el-form-item> + <!-- 鏂藉伐鍗曚綅 --> + <el-form-item class="optionItems" label="鏂藉伐鍗曚綅:" prop="constructionOrg"> + <el-input v-model="car.constructionOrg" placeholder="璇峰~鍐欐柦宸ュ崟浣�"></el-input> + </el-form-item> + <!-- 鏂藉伐鍦板潃 --> + <el-form-item class="optionItems" label="鏂藉伐鍦板潃:" prop="geographicPosition"> + <el-input v-model="car.geographicPosition" placeholder="璇峰~鍐欐柦宸ュ湴鍧�"></el-input> + </el-form-item> + <!-- 杞ㄨ抗 --> + <el-form-item class="optionItem" label="杞ㄨ抗:" prop="trajectory"> + <el-input type="textarea" :rows="2" v-model="car.trajectory" placeholder="璇疯緭鍏ヨ溅杈嗚建杩�"></el-input> + </el-form-item> + <!-- <el-form-item> + <div class="optionBtn"> + <el-button type="primary" class="btn submit" @click.native.prevent="handleCar">纭 + </el-button> + <el-button class="btn cancel" @click.native.prevent="handleStop"> + 鍙栨秷 + </el-button> + </div> + </el-form-item> --> + </el-form> + + </div> + </main> + </div> +</template> +<script> +import {validateName,validatePhone,validateCarNum} from '@/utils/validate' +export default { + data() { + const checkCarNum = (rule, value, callback) => { + if (value) { + if(validateCarNum(value)){ + callback(); + }else{ + callback(new Error('璇疯緭鍏ユ纭殑杞︾墝鍙�')); + } + } else { + callback(new Error('杞︾墝鍙蜂笉鑳戒负绌�')); + } + } + const checkName = (rule, value, callback) => { + if (value) { + if(validateName(value)){ + callback(); + }else{ + callback(new Error('璇疯緭鍏ユ纭殑杞︿富濮撳悕')) + } + } else { + callback(new Error('杞︿富濮撳悕涓嶈兘涓虹┖')); + } + } + const checkUser = (rule, value, callback) => { + if (value) { + if(validateName(value)){ + callback(); + }else{ + callback(new Error('璇锋纭緭鍏ヨ溅杈嗕娇鐢ㄤ汉鍛�')) + } + } else { + callback(new Error('杞﹁締浣跨敤浜哄憳涓嶈兘涓虹┖')); + } + } + const checkPhone = (rule, value, callback) => { + if (value) { + if(validatePhone(value)){ + callback(); + }else{ + callback(new Error('璇疯緭鍏ユ纭殑鎵嬫満鍙�')) + } + } else { + callback(new Error('鎵嬫満鍙风爜涓嶈兘涓虹┖')); + } + } + const checkCarModel = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('杞﹁締鍨嬪彿涓嶈兘涓虹┖')); + } + } + const checkOrg = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('鏂藉伐鍗曚綅涓嶈兘涓虹┖')); + } + } + const checkPosition = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('鏂藉伐鍦板潃涓嶈兘涓虹┖')); + } + } + return { + car: { + carNumber: "", + contact: "", + belong: "", + // id: 0, + ownerName: "", + trajectory: "", + vehicleUser: "", + constructionOrg: '', + }, + createCarRules: { + carNumber: [ + { + required: true, trigger:'blur', validator: checkCarNum + } + ], + carModel: [ + { + required: true, trigger:'change',validator: checkCarModel + } + ], + contact: [ + { + required: true,trigger:'blur', validator: checkPhone + } + ], + // id: 0, + ownerName: [ + { + required: true,trigger:'blur', validator: checkName + } + ], + vehicleUser: [ + { + required: true, trigger:'blur',validator: checkUser + } + ], + constructionOrg: [ + { + required: true,trigger:'blur', validator: checkOrg + } + ], + geographicPosition: [ + { + required: true, trigger:'blur',validator: checkPosition + } + ] + }, + carTypeList: [ + { + label: '澶у瀷', + value: 1, + }, + { + label: '涓瀷', + value: 2, + }, + { + label: '灏忓瀷', + value: 3, + }, + ] + } + }, + created() { + console.log(this.info); + this.car = JSON.parse(JSON.stringify(this.info)); + }, + methods: { + }, + props: ['info'] +} +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: #09152f; + + main { + // border: 1px solid #fff; + text-align: left; + padding: 0 55px; + background-color: #09152f; + padding-bottom: 50px; + + .mainContent { + display: flex; + justify-content: center; + padding-top: 50px; + + .el-form-item__content { + width: 400px; + + .el-select { + width: 100%; + } + } + + .optionHandleSp { + display: flex; + + .areaNumber, + .moreNumber { + flex: 1; + } + + .telNumber { + flex: 2; + } + } + + .optionBtn { + display: flex; + margin-top: 20px; + + .btn { + padding: 12px 50px; + } + } + + } + } + + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + ::v-deep .el-form-item__label { + color: #4b9bb7; + } + + ::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/car/myIndex/updateUser/uploadResult/components/arrive/index.vue b/src/views/operate/car/myIndex/updateUser/uploadResult/components/arrive/index.vue deleted file mode 100644 index 858e326..0000000 --- a/src/views/operate/car/myIndex/updateUser/uploadResult/components/arrive/index.vue +++ /dev/null @@ -1,185 +0,0 @@ -<template> - <div class="arrive"> - <div class="arrive-title">鍒板ぇ鐜板満鎯呭喌</div> - <div class="arrive-form"> - <el-form ref="arriveForm" label-width="160px" :model="arrive" :rules="arriveRules" autoComplete="on"> - <!-- 鍒拌揪鏃堕棿 --> - <el-form-item label="鍒拌揪鏃堕棿:" prop="arrivalTime"> - <el-date-picker v-model="arrive.arrivalTime" type="datetime" placeholder="閫夋嫨鍒拌揪鏃堕棿"> - </el-date-picker> - </el-form-item> - <!-- 鍒拌揪鍦板潃 --> - <el-form-item label="鍒拌揪鍦板潃:" prop="arrivalAddress"> - <el-input v-model="arrive.arrivalAddress" placeholder="璇疯緭鍏ュ湴鍧�"></el-input> - </el-form-item> - <!-- 鐜板満鎯呭喌璇存槑 --> - <el-form-item label="鐜板満鎯呭喌璇存槑:" prop="situationExplain"> - <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4}" maxlength="200" show-word-limit - v-model="arrive.situationExplain" placeholder="璇疯緭鍏ユ儏鍐佃鏄�,闄愬埗200瀛椾互鍐�"></el-input> - </el-form-item> - <!-- 淇¤鍥炲璇存槑 --> - <el-form-item label="淇¤鍥炲璇存槑:" prop="replyExplain"> - <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4}" maxlength="200" show-word-limit - v-model="arrive.replyExplain" placeholder="璇疯緭鍏ュ洖璁胯鏄�,闄愬埗200瀛椾互鍐�"></el-input> - </el-form-item> - <!-- 鐜板満鎯呭喌鐓х墖 --> - <el-form-item label="鐜板満鎯呭喌鐓х墖:" prop="situationPic"> - <div class="upImg"> - <div class="img-list"> - <img :src="item" alt="" v-for="(item,index) in arrive.situationPic" :key="index"> - </div> - <div class="upload" v-if="arrive.situationPic.length<4"> - <el-upload :file-list="fileList" class="upload-demo" - action="http://42.193.1.25:8082/sccg/file/medias" multiple :show-file-list="false" - :limit="4" :on-success="handleSuccess" :headers="getToken()"> - <i class="el-icon-plus"></i> - </el-upload> - </div> - <div class="tip">{{arrive.situationPic.length}} / 4</div> - </div> - </el-form-item> - </el-form> - </div> - </div> -</template> -<script> -export default { - data() { - const checkTime = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('鍒拌揪鏃堕棿涓嶈兘涓虹┖')); - } - } - const checkAddress = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('鍒拌揪鍦板潃涓嶈兘涓虹┖')); - } - } - const checkSit = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('鐜板満鎯呭喌璇存槑涓嶈兘涓虹┖')); - } - } - const checkReplay = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('淇¤鍥炲璇存槑涓嶈兘涓虹┖')); - } - } - const checkSitPic = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(); - } - } - return { - arrive: { - situationPic: [], - }, - arriveRules: { - arrivalTime: [ - { trigger: 'blur', validator: checkTime } - ], - arrivalAddress: [ - { trigger: 'blur', validator: checkAddress } - ], - situationExplain: [ - { trigger: 'blur', validator: checkSit } - ], - replyExplain: [ - { trigger: 'blur', validator: checkReplay } - ], - situationPic: [ - { trigger: 'change', validator: checkSitPic } - ], - }, - fileList: [], - } - }, - props:['getArrive'], - methods: { - handleSuccess(res, file, filelist) { - const baseUrl = 'http://140.143.152.226:8410/'; - console.log(res); - if (this.arrive.situationPic.length < 4) { - this.arrive.situationPic.push(baseUrl + res.data.url1) - } - }, - getToken() { - const token = sessionStorage.getItem('token'); - const tokenHead = sessionStorage.getItem('tokenHead'); - if (token && tokenHead) { - return { Authorization: tokenHead + token } - } - }, - // 鑾峰彇arrive瀵硅薄 - backData(){ - const { arrive } = this; - this.$emit('getArrive',{arrive}); - } - } -} -</script> -<style lang="scss" scoped> -.arrive-title{ - line-height: 60px; - font-weight: 650; - font-size: 20px; - width: 160px; - padding-right: 12px; - text-align: right; - color: #4b9bb7; -} - -.upImg { - display: flex; - - .tip { - position: absolute; - bottom: 0; - right: 0; - } - - .img-list { - height: 80px; - position: relative; - - img { - width: 60px; - height: 60px; - } - } -} - -.upload { - width: 60px; - height: 60px; - display: flex; - align-items: center; - justify-content: center; - font-size: 20px; - background-color: #fbfdff; - border-radius: 4px; -} - -::v-deep .el-textarea__inner { - background-color: #09152f; - border: 1px solid #17324c; -} - -::v-deep .el-input__count { - background-color: #09152f; -} - -::v-deep .el-form-item__label { - color: #4b9bb7; -} -</style> \ No newline at end of file diff --git a/src/views/operate/car/myIndex/updateUser/uploadResult/components/book/index.vue b/src/views/operate/car/myIndex/updateUser/uploadResult/components/book/index.vue deleted file mode 100644 index a4903eb..0000000 --- a/src/views/operate/car/myIndex/updateUser/uploadResult/components/book/index.vue +++ /dev/null @@ -1,96 +0,0 @@ -<template> - <div class="book"> - <div class="book-title">鏂囩涔︾被</div> - <div class="book-form"> - <el-form ref="bookForm" label-width="160px" :model="book" :rules="bookRules" autoComplete="on"> - <!-- 鏂囦功绉嶇被 --> - <el-form-item label="鏂囦功绉嶇被:" prop="kind"> - <el-input v-model="book.kind"></el-input> - </el-form-item> - <!-- 鏂囦功缂栧彿 --> - <el-form-item label="鏂囦功缂栧彿:" prop="id"> - <el-input v-model="book.id"></el-input> - </el-form-item> - <!-- 杩濇硶绫诲瀷 --> - <el-form-item label="杩濇硶绫诲瀷:" prop="vioKind"> - <el-input v-model="book.vioKind"></el-input> - </el-form-item> - <!-- 鏂囦功鍙戞斁鏃堕棿 --> - <el-form-item label="鏂囦功鍙戞斁鏃堕棿:" prop="giveTime"> - <el-input v-model="book.giveTime"></el-input> - </el-form-item> - <!-- 鏂囦功闄愬畾鏃堕棿 --> - <el-form-item label="鏂囦功闄愬畾鏃堕棿" prop="limitTime"> - <el-input v-model="book.limitTime"></el-input> - </el-form-item> - <!-- 鏂囦功鍙戞斁鍐呭 --> - <el-form-item label="鏂囦功鍙戞斁鍐呭:" prop="content"> - <el-input v-model="book.content"></el-input> - </el-form-item> - <!-- 瀹為檯鏁存敼鏃堕棿 --> - <el-form-item label="瀹為檯鏁存敼鏃堕棿:" prop="updateTime"> - <el-input v-model="book.updateTime"></el-input> - </el-form-item> - <!-- 鏁存敼鎯呭喌 --> - <el-form-item label="鏁存敼鎯呭喌:" prop="condition"> - <el-input v-model="book.condition"></el-input> - </el-form-item> - <!-- 澶囨敞 --> - <el-form-item label="澶囨敞:" prop="note"> - <el-input v-model="book.note"></el-input> - </el-form-item> - <!-- 鏂囦功鐓х墖涓婁紶 --> - <el-form-item label="鏂囦功鐓х墖涓婁紶:" prop="bookPhoto"> - <el-input v-model="book.bookPhoto"></el-input> - </el-form-item> - <!-- 鏁存敼鍓嶇収鐗� --> - <el-form-item label="鏁存敼鍓嶇収鐗�:" prop="beforeUpdate"> - <el-input v-model="book.beforeUpdate"></el-input> - </el-form-item> - <!-- 鏁存敼鍚庣収鐗� --> - <el-form-item label="鏁存敼鍚庣収鐗�:" prop="afterUpdate"> - <el-input v-model="book.afterUpdate"></el-input> - </el-form-item> - <!-- 鍏朵粬鐓х墖 --> - <el-form-item label="鍏朵粬:" prop="other"> - <el-input v-model="book.other"></el-input> - </el-form-item> - </el-form> - </div> - </div> -</template> -<script> - export default{ - data(){ - return{ - book:{}, - bookRules:{ - - } - } - } - } -</script> -<style lang="scss" scoped> -.book-title{ - line-height: 60px; - font-weight: 650; - font-size: 20px; - width: 160px; - padding-right: 12px; - text-align: right; - color: #4b9bb7; -} -::v-deep .el-textarea__inner { - background-color: #09152f; - border: 1px solid #17324c; -} - -::v-deep .el-input__count { - background-color: #09152f; -} - -::v-deep .el-form-item__label { - color: #4b9bb7; -} -</style> \ No newline at end of file diff --git a/src/views/operate/car/myIndex/updateUser/uploadResult/components/evidence/index.vue b/src/views/operate/car/myIndex/updateUser/uploadResult/components/evidence/index.vue deleted file mode 100644 index d6606bb..0000000 --- a/src/views/operate/car/myIndex/updateUser/uploadResult/components/evidence/index.vue +++ /dev/null @@ -1,627 +0,0 @@ -<template> - <div class="evidence"> - <div class="evidence-title">璋冩煡鍙栬瘉</div> - <div class="evidence-form"> - <el-form ref="evidenceForm" label-width="160px" :model="evidence" :rules="evidenceRules" autoComplete="on"> - <!-- 鎵垮姙闃熷憳 --> - <el-form-item label="鎵垮姙闃熷憳:" prop="undertaker"> - <el-input v-model="evidence.undertaker" placeholder="璇疯緭鍏ュ鍚�"></el-input> - </el-form-item> - <!-- 鍗忓姙闃熷憳 --> - <el-form-item label="鍗忓姙闃熷憳:" prop="assistant"> - <el-input v-model="evidence.assistant" placeholder="璇疯緭鍏ュ鍚�"></el-input> - </el-form-item> - <!-- 鏃堕棿 --> - <el-form-item label="鏃堕棿:" prop="investigationTime"> - <el-date-picker v-model="evidence.investigationTime" type="datetime" placeholder="閫夋嫨鏃堕棿"> - </el-date-picker> - </el-form-item> - <!-- 鍦板潃 --> - <el-form-item label="鍦板潃:" prop="address"> - <el-input v-model="evidence.address" placeholder="璇疯緭鍏ュ湴鍧�"></el-input> - </el-form-item> - <!-- 妗堢敱 --> - <el-form-item label="妗堢敱:" prop="caseAction"> - <el-input v-model="evidence.caseAction" placeholder="璇疯緭鍏ユ鐢�"></el-input> - </el-form-item> - <!-- 褰撲簨浜轰俊鎭� --> - <el-form-item label="褰撲簨浜轰俊鎭�:" prop="userInfo"> - <el-input suffix-icon="el-icon-s-order" @focus="openDialog"></el-input> - </el-form-item> - <!-- 鎯呭喌鎻忚堪 --> - <el-form-item label="鎯呭喌鎻忚堪:" prop="description"> - <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4}" maxlength="200" show-word-limit - v-model="evidence.description" placeholder="璇疯緭鍏ユ儏鍐垫弿杩�,闄愬埗200瀛椾互鍐�"></el-input> - </el-form-item> - <!-- 鐓х墖闄勪欢 --> - <el-form-item label="鐓х墖闄勪欢:" prop="photo"> - <div class="upImg"> - <div class="img-list"> - <img :src="item" alt="" v-for="(item,index) in evidence.pic" :key="index"> - </div> - <div class="upload" v-if="evidence.pic.length<4"> - <el-upload :file-list="fileList" class="upload-demo" - action="http://42.193.1.25:8082/sccg/file/medias" multiple :show-file-list="false" - :limit="4" :on-success="handleSuccess2" :headers="getToken()"> - <i class="el-icon-plus"></i> - </el-upload> - </div> - <div class="tip">{{evidence.pic.length}} / 4</div> - </div> - </el-form-item> - </el-form> - </div> - <div class="user-form" v-show="userFlag"> - <div class="user-form-header"> - <span>璋冨害淇℃伅</span> - <i class="el-icon-close" @click="closeUserForm"></i> - </div> - <div class="user-form-content"> - <el-form ref="userForm" label-width="120px" :model="user" :rules="userRules" autoComplete="on"> - <!-- 杩濇硶绫诲瀷 --> - <el-form-item label="绫诲瀷:" prop="illegalType"> - <el-select v-model="user.illegalType" placeholder="璇烽�夋嫨"> - <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> - <!-- 濮撳悕銆佹墜鏈哄彿 --> - <div class="user-item"> - <!-- 濮撳悕 --> - <el-form-item label="褰撲簨浜哄鍚�:" prop="name"> - <el-input v-model="user.name"></el-input> - </el-form-item> - <!-- 鎵嬫満鍙� --> - <el-form-item label="鎵嬫満鍙风爜:" prop="phoneCode"> - <el-input v-model="user.phoneCode"></el-input> - </el-form-item> - </div> - <!-- 璇佷欢 --> - <div class="user-item"> - <el-form-item label="璇佷欢绫诲瀷:" prop="certificateType"> - <el-select v-model="user.certificateType" placeholder="璇烽�夋嫨"> - <el-option v-for="item in cardOptions" :key="item.value" :label="item.label" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="璇佷欢鍙风爜:" prop="certificateCode"> - <el-input v-model="user.certificateCode"></el-input> - </el-form-item> - </div> - <!-- 鏂囧寲绋嬪害\鑱屼笟 --> - <div class="user-item"> - <!-- 鏂囧寲绋嬪害 --> - <el-form-item label="鏂囧寲绋嬪害:" prop="educationDegree"> - <el-select v-model="user.educationDegree" placeholder="璇烽�夋嫨"> - <el-option v-for="item in degreeOptions" :key="item.value" :label="item.label" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> - <!-- 鑱屼笟 --> - <el-form-item label="鑱屼笟:" prop="career"> - <el-input v-model="user.career"></el-input> - </el-form-item> - </div> - <!-- 宸ヤ綔鍗曚綅鍙婅亴鍔� --> - <el-form-item label="宸ヤ綔鍗曚綅鍙婅亴鍔�:" prop="work"> - <el-input v-model="user.work"></el-input> - </el-form-item> - <!-- 姘戞棌\绫嶈疮 --> - <div class="user-item"> - <!-- 姘戞棌 --> - <el-form-item label="姘戞棌:" prop="nation"> - <el-input v-model="user.nation"></el-input> - </el-form-item> - <!-- 绫嶈疮 --> - <el-form-item label="绫嶈疮:" prop="nativePlace"> - <el-input v-model="user.nativePlace"></el-input> - </el-form-item> - </div> - <!-- 鐜颁綇鍧� --> - <el-form-item label="鐜颁綇鍧�:" prop="liveAddress"> - <el-input v-model="user.liveAddress"></el-input> - </el-form-item> - <!-- 鎴风睄鎵�鍦ㄥ湴 --> - <el-form-item label="鎴风睄鎵�鍦ㄥ湴:" prop="registerAddress"> - <el-input v-model="user.registerAddress"></el-input> - </el-form-item> - </el-form> - </div> - <div class="user-form-footer"> - <el-button type="primary" @click="checkUser">纭畾</el-button> - <el-button>杩斿洖</el-button> - </div> - </div> - </div> -</template> -<script> -export default { - data() { - const checkName = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('鎵垮姙闃熷憳鍚嶅瓧涓嶈兘涓虹┖')); - } - } - const checkName2 = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('鍗忓姙闃熷憳鍚嶅瓧涓嶈兘涓虹┖')); - } - } - const checkTime2 = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('姝ゅ鏃堕棿涓嶈兘涓虹┖')); - } - } - const checkAddress2 = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('姝ゅ鍦板潃涓嶈兘涓虹┖')); - } - } - const checkCase = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('妗堢敱涓嶈兘绌�')); - } - } - const checkDesc = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('鎯呭喌鎻忚堪涓嶈兘涓虹┖')); - } - } - const checkPic = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(); - } - } - const checkIll = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('妗堜欢绫诲瀷涓嶈兘涓虹┖')); - } - } - const checkName3 = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('褰撲簨浜哄鍚嶄笉鑳戒负绌�')); - } - } - const checkPhone = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('鎵嬫満鍙风爜涓嶈兘涓虹┖')); - } - } - const checkCard = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('璇佷欢绫诲瀷涓嶈兘涓虹┖')); - } - } - const checkCode = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('璇佷欢鍙风爜涓嶈兘涓虹┖')); - } - } - const checkWh = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('鏂囧寲绋嬪害涓嶈兘涓虹┖')); - } - } - const checkCareer = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('鑱屼笟涓嶈兘涓虹┖')); - } - } - const checkWork = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('宸ヤ綔鍗曚綅鍙婅亴鍔′笉鑳戒负绌�')); - } - } - const checkNation = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('姘戞棌涓嶈兘涓虹┖')); - } - } - const checkNaP = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('绫嶈疮涓嶈兘涓虹┖')); - } - } - const checkLiveAdd = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('鐜颁綇鍧�涓嶈兘涓虹┖')); - } - } - const checkRegAdd = (rule, value, callback) => { - if (value) { - callback() - } else { - callback(new Error('鎴风睄鎵�鍦ㄥ湴涓嶈兘涓虹┖')); - } - } - const checkFlag = (rule, value, callback) => { - if (value) { - callback(); - } else { - callback(new Error('鐢ㄦ埛淇℃伅涓嶈兘涓虹┖')) - } - } - return { - evidence: { - pic: [], - userInfo: false, - }, - evidenceRules: { - userInfo: [ - { trigger: 'change', validator: checkFlag } - ], - undertaker: [ - { - trigger: 'blur', validator: checkName - } - ], - assistant: [ - { - trigger: 'blur', validator: checkName2 - } - ], - investigationTime: [ - { - trigger: 'change', validator: checkTime2 - } - ], - address: [ - { - trigger: 'blur', validator: checkAddress2 - } - ], - caseAction: [ - { - trigger: 'blur', validator: checkCase - } - ], - description: [ - { - trigger: 'blur', validator: checkDesc - } - ], - pic: [ - { - trigger: 'blur', validator: checkPic - } - ], - }, - fileList: [], - user: { - illegalType: '', - name: '', - phoneCode: '', - certificateType: '', - certificateCode: '', - educationDegree: '', - career: '', - work: '', - nation: '', - nativePlace: '', - liveAddress: '', - registerAddress: '', - }, - userRules: { - illegalType: [ - { - trigger: 'change', validator: checkIll, - } - ], - name: [ - { - trigger: 'blur', validator: checkName3 - } - ], - phoneCode: [ - { - trigger: 'blur', validator: checkPhone - } - ], - certificateType: [ - { - trigger: 'change', validator: checkCard - } - ], - certificateCode: [ - { - trigger: 'blur', validator: checkCode - } - ], - educationDegree: [ - { - trigger: 'change', validator: checkWh - } - ], - career: [ - { - trigger: 'blur', validator: checkCareer - } - ], - work: [ - { - trigger: 'blur', validator: checkWork - } - ], - nation: [ - { - trigger: 'blur', validator: checkNation - } - ], - nativePlace: [ - { - trigger: 'blur', validator: checkNaP - } - ], - liveAddress: [ - { - trigger: 'blur', validator: checkLiveAdd - } - ], - registerAddress: [ - { - trigger: 'blur', validator: checkRegAdd - } - ], - }, - userFlag: false, - typeOptions: [ - { - label: '杩濇硶', - value: 1, - }, - { - label: '杩濆缓', - value: 2 - } - ], - cardOptions: [ - { - label: '韬唤璇�', - value: 1, - }, - { - label: '鍏朵粬', - value: 2 - } - ], - degreeOptions:[ - { - label:'灏忓', - value:1 - }, - { - label:'鍒濅腑', - value:2 - }, - { - label:'楂樹腑', - value:3 - }, - { - label:'澶у鍙婁互涓�', - value:4 - }, - ] - } - }, - props:['getEvidence'], - methods: { - handleSuccess2(res, file, filelist) { - const baseUrl = 'http://140.143.152.226:8410/'; - console.log(res); - if (this.evidence.pic.length < 4) { - this.evidence.pic.push(baseUrl + res.data.url1) - } - }, - getToken() { - const token = sessionStorage.getItem('token'); - const tokenHead = sessionStorage.getItem('tokenHead'); - if (token && tokenHead) { - return { Authorization: tokenHead + token } - } - }, - // 鎵撳紑褰撲簨浜轰俊鎭~鍐欒〃 - openDialog(e) { - this.userFlag = true; - this.userInfo = true; - }, - // 妫�楠寀ser - checkUser() { - // console.log(this.$refs.userForm.validate); - this.$refs.userForm.validate((valid) => { - console.log(valid); - if (valid) { - this.evidence.userInfo = true; - this.userFlag = false; - } else { - this.evidence.userInfo = false; - return false; - } - }) - }, - // 鍏抽棴褰撲簨浜轰俊鎭晫闈� - closeUserForm(){ - this.userFlag = false; - }, - // 杩斿洖褰撳墠evidence鍜寀ser瀵硅薄 - backData(){ - const {user,evidence} = this; - this.$emit('getEvidence',{user,evidence}); - } - } -} -</script> -<style lang="scss" scoped> -.evidence { - line-height: 60px; - position: relative; - .evidence-title { - line-height: 60px; - font-weight: 650; - font-size: 20px; - width: 160px; - padding-right: 12px; - text-align: right; - color: #4b9bb7; - } -} - -.upImg { - display: flex; - - .tip { - position: absolute; - bottom: 0; - right: 0; - } - - .img-list { - height: 80px; - position: relative; - - img { - width: 60px; - height: 60px; - } - } -} - -.upload { - width: 60px; - height: 60px; - display: flex; - align-items: center; - justify-content: center; - font-size: 20px; - background-color: #fbfdff; - border-radius: 4px; -} -.user-form{ - position: absolute; - top: 0; - z-index: 3000; - background-color: #06122c; - .user-form-header{ - background-color: #fff; - color: #4b9bb7; - display: flex; - justify-content: space-between; - align-items: center; - padding: 0 20px; - } - padding-bottom: 60px; -} -.user-form-content { - padding-top:20px; - - .user-item { - display: flex; - - .el-input { - flex: 1; - } - } - - ::v-deep .el-textarea__inner { - background-color: #09152f; - border: 1px solid #17324c; - } - - ::v-deep .el-input__count { - background-color: #09152f; - } - - ::v-deep .el-form-item__label { - color: #4b9bb7; - } - - ::v-deep .el-input__inner { - background-color: #09152f; - border: 1px solid #17324c; - } -} - -.user-form-footer { - display: flex; - justify-content: flex-end; -} - -::v-deep .el-textarea__inner { - background-color: #09152f; - border: 1px solid #17324c; -} - -::v-deep .el-input__count { - background-color: #09152f; -} - -::v-deep .el-form-item__label { - color: #4b9bb7; -} - -::v-deep .el-dialog__header, -::v-deep .el-dialog__body { - background-color: #06122c; -} - -::v-deep .el-dialog__header { - display: flex; - align-items: center; - background-color: #fff; - padding: 20px; - line-height: 60px; -} - -::v-deep .el-dialog__title { - color: #4b9bb7; -} - -::v-deep .el-dialog__close { - width: 20px; - height: 20px; - // color: #fff; -} - -::v-deep .el-dialog__body { - padding: 0; -} -</style> \ No newline at end of file diff --git a/src/views/operate/car/myIndex/updateUser/uploadResult/ill/index.vue b/src/views/operate/car/myIndex/updateUser/uploadResult/ill/index.vue deleted file mode 100644 index b74dfdb..0000000 --- a/src/views/operate/car/myIndex/updateUser/uploadResult/ill/index.vue +++ /dev/null @@ -1,48 +0,0 @@ -<template> - <div class="ill"> - <!-- 鍒拌揪鐜板満鎯呭喌 --> - <MyArrive></MyArrive> - <!-- 璋冩煡鍙栬瘉 --> - <MyEvidence></MyEvidence> - <!-- 鏂囩涔︾被 --> - <MyBook></MyBook> - <!-- 搴曢儴鎸夐挳 --> - <div class="footer"> - <el-button @click="handleSubmit" type="primary">纭畾</el-button> - <el-button>杩斿洖</el-button> - </div> - </div> -</template> -<script> -import MyArrive from '../components/arrive' -import MyEvidence from "../components/evidence" -import MyBook from "../components/book" -export default { - components:{ - MyArrive,MyEvidence,MyBook - }, - data() { - return { - - } - }, - props:['caseId'], - created(){ - console.log(this.caseId); - }, - methods:{ - handleSubmit(){ - - } - } -} -</script> -<style lang="scss" scoped> - .ill{ - padding: 20px 200px; - } -.footer { - display: flex; - justify-content: flex-end; - } -</style> \ No newline at end of file diff --git a/src/views/operate/car/myIndex/updateUser/uploadResult/vio/index.vue b/src/views/operate/car/myIndex/updateUser/uploadResult/vio/index.vue deleted file mode 100644 index a12edc3..0000000 --- a/src/views/operate/car/myIndex/updateUser/uploadResult/vio/index.vue +++ /dev/null @@ -1,123 +0,0 @@ -<template> - <div class="vio"> - <!-- 鍒拌揪鐜板満鎯呭喌 --> - <MyArrive ref="arrive" @getArrive="getArrive"></MyArrive> - <!-- 璋冩煡鍙栬瘉 --> - <MyEvidence ref="evidence" @getEvidence="getEvidence"></MyEvidence> - <!-- 搴曢儴鎸夐挳 --> - <div class="footer"> - <el-button @click="handleSubmit" type="primary">纭畾</el-button> - <el-button>杩斿洖</el-button> - </div> - </div> -</template> -<script> -import MyArrive from '../components/arrive' -import MyEvidence from "../components/evidence" -export default { - components: { - MyArrive, MyEvidence - }, - data() { - return { - - } - }, - props: ['caseId', 'closeDialog'], - created() { - console.log(this.caseId); - }, - methods: { - handleSubmit() { - const { arrive, evidence } = this.$refs; - const { arriveForm } = arrive.$refs; - const { evidenceForm } = evidence.$refs; - // console.log(evidence.$refs); - arriveForm.validate((valid) => { - // console.log(valid); - if (valid) { - evidenceForm.validate((flag) => { - if (flag) { - // arrive.arrive;evidence.user;evidence.evidence; - this.$axios({ - method: 'post', - url: `sccg/dispatch_handle/addition_dispose_result/${this.caseId}/${1}`, - data:{ - // arrivalAddress: arrive.arrive.arrivalAddress, - // arrivalTime: arrive.arrive.arrivalTime, - // situationExplain: arrive.arrive.situationExplain, - // replyExplain: arrive.arrive.replyExplain, - // situationPic: arrive.arrive.situationPic, - // // - // undertaker: evidence.evidence.undertaker, - // assistant: evidence.evidence.assistant, - // investigationTime: evidence.evidence.investigationTime, - // address: evidence.evidence.address, - // caseAction: evidence.evidence.caseAction, - // description: evidence.evidence.description, - // pic: evidence.evidence.pic, - // // - // illegalType: evidence.user.illegalType, - // name: evidence.user.name, - // phoneCode: evidence.user.phoneCode, - // certificateType: evidence.user.certificateType, - // certificateCode: evidence.user.certificateCode, - // educationDegree: evidence.user.educationDegree, - // career: evidence.user.career, - // work: evidence.user.work, - // nation: evidence.user.nation, - // nativePlace: evidence.user.nativePlace, - // liveAddress: evidence.user.liveAddress, - // registerAddress: evidence.user.registerAddress, - } - }) - .then(res => { - console.log(res); - if (res.code === 200) { - this.$message({ - type: 'success', - message:'涓婁紶鎴愬姛', - }) - this.$emit('closeDialog', { flag: false }); - }else{ - this.$message({ - type:'warning', - message:res.message - }) - } - }) - } else { - return false; - } - }) - } else { - evidenceForm.validate((flag) => { - if (!flag) { - return false; - } - }) - return false; - } - }) - }, - // 鑾峰緱arrive鐨勪俊鎭� - getArrive(obj) { - console.log(obj); - }, - // 鑾峰緱evidence瀵硅薄 - getEvidence(obj) { - console.log(obj); - } - } -} -</script> -<style lang="scss" scoped> -.vio { - padding: 20px 200px; -} - -.footer { - display: flex; - justify-content: flex-end; -} -</style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/notDeal/index.vue b/src/views/operate/disposal/casepool/notDeal/index.vue index ac2a9cb..a46df8e 100644 --- a/src/views/operate/disposal/casepool/notDeal/index.vue +++ b/src/views/operate/disposal/casepool/notDeal/index.vue @@ -50,7 +50,10 @@ </el-table-column> <el-table-column prop="streetId" label="鎵�灞炲尯鍩�" min-width="10"> </el-table-column> - <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="10"> + <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="15"> + <template slot-scope="scope"> + <span>{{filterTime(scope.row.alarmTime)}}</span> + </template> </el-table-column> <el-table-column prop="continueTime" label="鎸佺画鏃堕棿" min-width="10"> </el-table-column> @@ -106,6 +109,8 @@ import uploadVio from './updateUser/uploadResult/vio' import uploadIll from "./updateUser/uploadResult/ill" import MyDetail from '@/components/detail' +import helper from '@/utils/mydate' +import filterTime from '@/utils/mydate' export default { components: { // updateUser, @@ -358,6 +363,9 @@ // 鍏抽棴涓婁紶鐣岄潰 closeDialog({flag}){ this.dialogUpload = flag; + }, + filterTime(time){ + return helper(time); } } } diff --git a/src/views/operate/disposal/casepool/pool/index.vue b/src/views/operate/disposal/casepool/pool/index.vue index f45c45c..6ca0536 100644 --- a/src/views/operate/disposal/casepool/pool/index.vue +++ b/src/views/operate/disposal/casepool/pool/index.vue @@ -62,19 +62,26 @@ <span>{{scope.row.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛涓婁紶'}}</span> </template> </el-table-column> - <el-table-column prop="category" label="澶х被鍚嶇О" min-width="10"> + <el-table-column :prop="mystatus === 1 ? 'category' :'category'" :label="mystatus===1 ? '澶х被鍚嶇О' : '杩濆缓绫诲埆'" min-width="10"> </el-table-column> - <el-table-column prop="type" label="灏忕被鍚嶇О" min-width="10"> + <el-table-column :prop="mystatus === 1 ? 'type' :'site'" :label="mystatus===1 ? '灏忕被鍚嶇О' : '杩濆缓鍦扮偣'" min-width="10"> </el-table-column> - <el-table-column prop="actionCause" label="妗堢敱" min-width="10"> + <el-table-column :prop="mystatus === 1 ? 'actionCause' :'communityId'" :label="mystatus===1 ? '妗堢敱' : '鎵�灞炵ぞ鍖�'" min-width="10"> </el-table-column> - <el-table-column prop="site" label="鎶ヨ鐐逛綅" min-width="10"> + <el-table-column :prop="mystatus === 1 ? 'site' :''" :label="mystatus===1 ? '鎶ヨ鐐逛綅' : '杩濇硶寤虹瓚闀裤�佸銆侀珮'" min-width="10"> + <template slot-scope="scope"> + <div v-if="mystatus ===2"><span>{{scope.row.buildingLength+'绫�'+'銆�'+ scope.row.buildingWidth+'绫�'+'銆�'+scope.row.buildingHigh+'绫�'}}</span></div> + <div v-else>{{scope.row.site}}</div> + </template> </el-table-column> - <el-table-column prop="streetId" label="鎵�灞炲尯鍩�" min-width="10"> + <el-table-column :prop="mystatus === 1 ? 'streetId' :'buildingArea'" :label="mystatus===1 ? '鎵�灞炲尯鍩�' : '杩濇硶寤虹瓚闈㈢Н'" min-width="10"> </el-table-column> - <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="10"> + <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="15" v-if="mystatus===1"> + <template slot-scope="scope"> + <span>{{filterTime(scope.row.alarmTime)}}</span> + </template> </el-table-column> - <el-table-column prop="continueTime" label="鎸佺画鏃堕棿" min-width="10"> + <el-table-column :prop="mystatus === 1 ? 'continueTime' :'materials'" :label="mystatus===1 ? '鎸佺画鏃堕棿' : '杩濇硶寤虹瓚鏉愭枡'" min-width="10"> </el-table-column> <el-table-column prop="operation" label="鎿嶄綔" min-width="20"> <template slot-scope="scope"> @@ -138,6 +145,7 @@ import MyIll from './createUser/ill' import MyVio from './createUser/vio' import MyDispatch from '@/components/dispatch' +import helper from '@/utils/mydate' export default { components: { createUser, MyIll, MyVio, MyDetail, MyDispatch, MyIllDetail @@ -495,6 +503,10 @@ }) } }) + }, + // 澶勭悊鏃堕棿 + filterTime(time){ + return helper(time); } } } diff --git a/src/views/operate/management/myIndex/components/closure/index.vue b/src/views/operate/management/myIndex/components/closure/index.vue index d51a562..3336c6f 100644 --- a/src/views/operate/management/myIndex/components/closure/index.vue +++ b/src/views/operate/management/myIndex/components/closure/index.vue @@ -102,7 +102,7 @@ <el-button>杩斿洖</el-button> </div> </div> - <MyProcess v-else-if="activeIndex === 1" :handlePassVo="handlePassVo"></MyProcess> + <MyProcess v-else-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess> <MyFilePicture v-else-if="activeIndex === 2" :filesPictureVo="filesPictureVo"></MyFilePicture> <MySovleProblem v-else-if="activeIndex === 3" :problemProVo="problemProVo"></MySovleProblem> <MyScene v-else :currentSitVo="currentSitVo"></MyScene> diff --git a/src/views/operate/management/myIndex/index.vue b/src/views/operate/management/myIndex/index.vue index 39d0bde..29122f9 100644 --- a/src/views/operate/management/myIndex/index.vue +++ b/src/views/operate/management/myIndex/index.vue @@ -43,7 +43,10 @@ </el-table-column> <el-table-column prop="streetId" label="鎵�灞炲尯鍩�" min-width="10"> </el-table-column> - <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="10"> + <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="15"> + <template slot-scope="scope"> + <span>{{filterTime(scope.row.alarmTime)}}</span> + </template> </el-table-column> <el-table-column prop="continueTime" label="鎸佺画鏃堕棿" min-width="10"> </el-table-column> @@ -106,6 +109,7 @@ import MyClosure from './components/closure' import MyDetail from '@/components/detail' import MyIllDetail from '@/components/illdetail' +import helper from '@/utils/mydate' export default { components: { MyExamine,MyClosure,MyDetail,MyIllDetail @@ -342,6 +346,9 @@ // 瀹℃牳鐘舵�� changeInStatus(val){ this.getUserList(); + }, + filterTime(time){ + return helper(time); } } } diff --git a/src/views/operate/message/index.vue b/src/views/operate/message/index.vue new file mode 100644 index 0000000..e3bc8ac --- /dev/null +++ b/src/views/operate/message/index.vue @@ -0,0 +1,3 @@ +<template> + <router-view></router-view> +</template> \ No newline at end of file diff --git a/src/views/operate/message/myIndex/createUser/index.vue b/src/views/operate/message/myIndex/createUser/index.vue new file mode 100644 index 0000000..3b22823 --- /dev/null +++ b/src/views/operate/message/myIndex/createUser/index.vue @@ -0,0 +1,206 @@ +<template> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="createRoleRules" + label-position="right"> + <!-- 娑堟伅鏍忕洰 --> + <el-form-item class="optionItem" label="娑堟伅鏍忕洰:" prop="messageType"> + <div class="message-item"> + <el-input v-model="role.messageType" placeholder="璇峰~鍐欐秷鎭爮鐩�"></el-input> + <span>娣诲姞鏍忕洰</span> + </div> + </el-form-item> + <!-- 娑堟伅鏍囬 --> + <el-form-item class="optionItems" label="娑堟伅鏍囬:" prop="head"> + <el-select v-model="role.head" placeholder="璇烽�夋嫨娑堟伅鏍囬"> + <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <!-- 鎺ユ敹瀵硅薄 --> + <el-form-item class="optionItem" label="鎺ユ敹瀵硅薄:" prop="targetTo"> + <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹瀵硅薄"> + <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id"> + </el-option> + </el-select> + <!-- <el-input type="textarea" v-model="role.description" placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�"></el-input> --> + </el-form-item> + <!-- 娑堟伅鍐呭 --> + <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body"> + <MyEditor :content="role.body"></MyEditor> + <!-- <el-input type="textarea" v-model="role.description" placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�"></el-input> --> + </el-form-item> + <!-- 鎻愰啋鏂瑰紡 --> + <el-form-item class="optionItem" label="鎻愰啋鏂瑰紡:" prop="channelCode"> + <div class="message-item"> + <el-radio-group v-model="role.channelCode"> + <el-radio :label="1">绔欏唴淇�</el-radio> + <el-radio :label="2">閭欢</el-radio> + <el-radio :label="3">鐭俊</el-radio> + </el-radio-group> + <span class="message-tip">(鐭俊鍙敤鏁�: 1000鏉�)</span> + </div> + </el-form-item> + <el-form-item> + <div class="optionBtn"> + <el-button type="primary" class="btn save">淇濆瓨 + </el-button> + <el-button type="primary" class="btn submit">鍙戝竷 + </el-button> + <el-button type="primary" class="btn submit">棰勮 + </el-button> + <el-button class="btn cancel">閲嶇疆</el-button> + </div> + </el-form-item> + </el-form> + + </div> + </main> + </div> +</template> +<script> +import MyEditor from '@/components/edit' +export default { + components: { MyEditor }, + data() { + const validateNickname = (rule, value, callback) => { + if (!value) { + callback(new Error("璇峰~鍐欐秷鎭爮鐩�")); + } else { + callback(); + } + }; + const validatePass = (rule, value, callback) => { + if (!value) { + callback(); + } else { + callback(); + } + }; + const validateTruename = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(); + } + }; + return { + role: { + messageType:'', + head:'', + targetTo:'', + body:'', + channelCode:1 + }, + createRoleRules: { + name: [ + { required: true, trigger: "blur", validator: validateNickname }, + ], + type: [ + { required: false, trigger: "blur", validator: validatePass }, + ], + description: [ + { required: false, trigger: "blur", validator: validateTruename }, + ], + }, + typeList: [], + } + }, + created() { + }, + methods: { + }, + props: [''] +} +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: #09152f; + + main { + text-align: left; + padding: 0 55px; + background-color: #09152f; + padding-bottom: 50px; + + .mainContent { + display: flex; + justify-content: center; + padding-top: 50px; + + &::v-deep .el-form-item__label { + color: #4b9bb7; + } + + &::v-deep .el-input__inner { + width: 400px; + background-color: #09152f; + border: 1px solid #17324c; + } + + .el-form-item__content :deep(.el-select) { + width: 400px; + } + :deep(.el-input){ + width: 400px; + } + .message-item{ + display: flex; + span{ + margin-left: 20px; + color: #4b9bb7; + } + } + .message-tip { + margin-left: 20px; + } + + :deep(.el-input--suffix) { + width: 400px; + } + + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + .el-form-item__content { + width: 400px; + + .el-select { + width: 100%; + } + } + + .optionHandleSp { + display: flex; + + .areaNumber, + .moreNumber { + flex: 1; + } + + .telNumber { + flex: 2; + } + } + + .optionBtn { + display: flex; + margin-top: 20px; + + .btn { + padding: 12px 50px; + } + } + + } + } + :deep(.el-select-dropdown){ + width: 400px; + min-width: 400px !important; + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/message/myIndex/index.vue b/src/views/operate/message/myIndex/index.vue new file mode 100644 index 0000000..e939aee --- /dev/null +++ b/src/views/operate/message/myIndex/index.vue @@ -0,0 +1,555 @@ +<template> + <div class="userList"> + <header> + <div class="header-nav"> + <span class="nav-left">鏁版嵁绛涢��</span> + <span class="nav-right">楂樼骇鎼滅储</span> + </div> + <div class="header-content"> + <div class="search"> + <span>杈撳叆鏌ヨ:</span> + <el-input placeholder="璇疯緭鍏ュ唴瀹�" v-model="context"></el-input> + </div> + <div class="message-status"> + <span>娑堟伅鐘舵��:</span> + <el-input placeholder="璇疯緭鍏ュ唴瀹�" v-model="context"></el-input> + </div> + <div class="message-kind"> + <span>娑堟伅鍒嗙被:</span> + <el-input placeholder="璇疯緭鍏ュ唴瀹�" v-model="context"></el-input> + </div> + <div class="find"> + <el-button type="primary" icon="el-icon-search">鏌ヨ</el-button> + <el-button icon="el-icon-delete-solid">閲嶇疆</el-button> + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button type="primary" icon="el-icon-plus" @click="dialogCreate = true">娣诲姞</el-button> + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" + :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}" + :data="tableData" style="width: 100%" :row-class-name="tableRowClassName" + @selection-change="tableChange"> + <el-table-column type="selection" min-width="5"> + </el-table-column> + <el-table-column label="ID" min-width="5"> + <template slot-scope="scope">{{ scope.row.id }}</template> + </el-table-column> + <el-table-column prop="head" label="鏍囬" min-width="10"> + </el-table-column> + <el-table-column prop="updateTime" label="淇敼鏃堕棿" min-width="10"> + <template slot-scope="scope"> + <span>{{changeTime(scope.row)}}</span> + </template> + </el-table-column> + <el-table-column prop="targetFrom" label="鍙戝竷浜哄憳" min-width="10"> + </el-table-column> + <el-table-column prop="channelCode" label="娑堟伅鍒嗙被" min-width="10"> + <template slot-scope="scope"> + <span>{{scope.row.channelCode === '01' ? '绔欏唴淇�':scope.row.channelCode ==='02'?"閭欢":'鐭俊'}}</span> + </template> + </el-table-column> + <el-table-column prop="status" label="鍙戝竷鐘舵��" min-width="5"> + <template slot-scope="scope"> + {{scope.row.status === 0 ? '鏈彂甯�' :'宸插彂甯�'}} + <!-- <el-switch class="switchStyle" v-model="scope.row.status" active-text="寮�" inactive-text="鍏�" + active-color="#3fef9a" inactive-color="#000212" @change="handleChangeStatus(scope.row)"> + </el-switch> --> + </template> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="operation"> + <el-link icon="el-icon-view" :underline="false" @click="dialogView = true">鏌ョ湅</el-link> + <el-link icon="el-icon-edit" class="leftPx" :underline="false">缂栬緫</el-link> + <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false">鍒犻櫎</el-link> + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板缓娑堟伅 --> + <el-dialog title="鏂板缓娑堟伅" :visible.sync="dialogCreate" v-if="dialogCreate" width="80%" + :before-close="handleConfirmClose"> + <MyCreate></MyCreate> + </el-dialog> + <!-- 娑堟伅璇︽儏 --> + <el-dialog title="娑堟伅璇︽儏" :visible.sync="dialogView" v-if="dialogView" width="45%" + :before-close="handleClose"> + <MyView></MyView> + </el-dialog> + <!-- tools --> + <div class="tools"> + <div class="funs"> + <div class="funsItem"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + <div class="funsItem"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage" + @prev-click="handlePrev" @next-click="handleNext"> + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import helper from '@/utils/mydate' +import MyView from './myview' +import MyCreate from './createUser' +export default { + components: { + MyView,MyCreate + }, + data() { + return { + tableData: [], + context: "", + dialogCreate:false, + dialogView:false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + options: [ + { + value: 0, + label: '鎵归噺鎿嶄綔', + disabled: true, + }, + { + value: 1, + label: '鎵归噺鍚敤', + }, + { + value: 2, + label: '鎵归噺绂佺敤', + }, + { + value: 3, + label: '鎵归噺鍒犻櫎', + } + ], + tempList: [] + } + }, + created() { + this.setTableData(); + }, + methods: { + // 璁剧疆琛ㄦ牸鏁版嵁 + async setTableData() { + const arr = await this.getMessageList(); + this.tableData = arr.records; + this.totalNum = arr.total + }, + // 鑾峰彇娑堟伅鏁版嵁 + async getMessageList() { + let arr = []; + const {currentPage,pageSize} = this; + await this.$axios({ + method: 'post', + url: 'sccg/message/list', + data: { + body: "", + channelCode: "", + createUser: 0, + current: currentPage, + head: "", + messageType: 0, + pageSize: pageSize, + randomCode: "", + remark: "", + sendTime: "", + status: 0, + targetFrom: "", + targetTo: "" + } + }) + .then(res => { + arr = res.data; + }) + return arr; + }, + // 鎵归噺涓嬫媺妗嗘搷浣� + async selectChange(list) { + console.log(this.tempList); + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?') + .then(_ => { + this.$axios({ + method: 'post', + url: 'sccg/role/updateStatusBatch?ids=' + idArr + '&status=' + flag, + }) + .then(res => { + if (res.code === 200) { + this.$message({ + type: 'success', + message: '鏇存敼鐢ㄦ埛鐘舵�佹垚鍔�', + }) + this.getUserList(); + } else { + this.$message({ + type: 'error', + message: res.message + }) + } + console.log(res); + }) + }) + .catch(err => { console.log(err) }) + }, + // 琛ㄦ牸鐩戝惉 + tableChange(list) { + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.id); + }) + if (list.length === this.tableData.length) { + this.all = true; + } else { + this.all = false + } + }, + // 淇敼鏃堕棿鏍煎紡 + changeTime({ updateTime }) { + return helper(updateTime); + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + // 鍙嶉�� + disSame(list) { + list.forEach(row => { + this.$refs.multipleTable.toggleRowSelection(row) + }) + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 == 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + return ''; + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.search(); + }, + // 涓婁竴椤电偣鍑讳簨浠� + handlePrev(page) { + this.currentPage = page; + this.search(); + }, + // 涓嬩竴椤电偣鍑讳簨浠� + handleNext(page) { + this.currentPage = page; + this.search(); + }, + // 鍏抽棴寮圭獥 + handleClose(done){ + done(); + }, + // 纭鍏抽棴寮圭獥 + handleConfirmClose(done){ + this.$confirm('纭鍏抽棴?') + .then(_=>{ + done(); + }) + .catch(err=>{ + console.log(err); + }) + }, + // 鑷畾涔夊叧闂脊绐� + closeDialog({flag,index}){ + this.dialogView = flag; + if(index ===1 ){ + this.setTableData(); + } + } + } +} +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #4b9bb7; + + header { + background-color: #09152f; + border: 1pox solid #fff; + + .header-nav { + line-height: 40px; + padding: 0 30px; + display: flex; + justify-content: space-between; + font-weight: 650; + } + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + justify-content: space-between; + align-items: center; + + .search, + .message-status, + .message-kind { + display: flex; + justify-content: flex-start; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #1d3f57; + + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + } + + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + } + } + + main { + background-color: #09152f; + margin-top: 20px; + padding-bottom: 50px; + border: 1pox solid #fff; + .el-link{ + color: #4b9bb7; + } + .leftPx{ + margin-left: 10px; + } + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + border: 1px solid #17324c; + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + &::v-deep .el-input__inner { + border: none; + background-color: #09152f; + } + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + .el-pagination { + + &::v-deep li, + &::v-deep .btn-prev, + &::v-deep .btn-next { + background-color: #071f39; + color: #4b9bb7; + } + + &::v-deep .active { + background-color: #409eff; + color: #fff; + } + } + } + } + + .el-table { + color: #4b9bb7; + font-size: 10px; + + &::v-deep .el-table__empty-block { + background-color: #09152f; + } + + &::v-deep .el-table__empty-block { + color: #4b9bb7; + } + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + .el-table::v-deep .warning-row { + background: #06122c; + } + + .el-table::v-deep .success-row { + background: #071f39; + } + + &::v-deep .switchStyle .el-switch__label { + position: absolute; + display: none; + color: #fff; + } + + &::v-deep .el-switch__core { + background-color: rgba(166, 166, 166, 1); + } + + &::v-deep .switchStyle .el-switch__label--left { + z-index: 9; + left: 20px; + } + + &::v-deep .switchStyle .el-switch__label--right { + z-index: 9; + left: 4px; + } + + &::v-deep .switchStyle .el-switch__label.is-active { + display: block; + } + + &::v-deep .switchStyle.el-switch .el-switch__core, + &::v-deep .el-switch .el-switch__label { + width: 50px !important; + } + } + + &::v-deep .el-dialog__header, + &::v-deep .el-dialog__body { + background-color: #06122c; + } + + &::v-deep .el-dialog__header { + display: flex; + align-items: center; + background-color: #fff; + padding: 20px; + line-height: 60px; + } + + &::v-deep .el-dialog__title { + color: #4b9bb7; + } + + &::v-deep .el-dialog__close { + width: 20px; + height: 20px; + // color: #fff; + } + + &::v-deep .el-dialog__body { + padding: 0; + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/message/myIndex/myview/index.vue b/src/views/operate/message/myIndex/myview/index.vue new file mode 100644 index 0000000..e2a9bda --- /dev/null +++ b/src/views/operate/message/myIndex/myview/index.vue @@ -0,0 +1,55 @@ +<template> + <div class="myview"> + <header> + <div class="header-title"> + 鍩熷悕闅愮淇濇姢鏈嶅姟鏆傚仠閫氱煡 + </div> + <div class="header-time"> + 2018-05-25 14:19:20 + </div> + </header> + <main> + <div class="main-head"> 灏婃暚鐨勫鎴凤細鎮ㄥソ锛�</div> + <div class="main-content"> + 鏍规嵁ICANN锛堜簰鑱旂綉鍚嶇О涓庢暟瀛楀湴鍧�鍒嗛厤鏈烘瀯锛夈�婇�氱敤椤剁骇鍩熷悕娉ㄥ唽鏁版嵁涓存椂鏀跨瓥缁嗗垯锛圱emporary Specification for gTLD Registration Data锛夈�嬪拰娆х洘閫氱敤鏁版嵁淇濇姢鏉′緥锛圙DPR锛夊悎瑙勮姹傦紝鑷�2018骞�5鏈�25鏃ヨ捣锛岄樋閲屼簯鐨勫煙鍚峎HOIS淇℃伅鍏紑鏌ヨ缁撴灉涓皢涓嶅啀鏄剧ず鍩熷悕娉ㄥ唽浜�/娉ㄥ唽鏈烘瀯鐨勫悕绉帮紝浠ュ強鍩熷悕娉ㄥ唽浜�/娉ㄥ唽鏈烘瀯銆佺鐞嗚仈绯讳汉鍜屾妧鏈仈绯讳汉鐨勮仈绯讳俊鎭�� + </div> + <div class="main-footer"> + 閴翠簬浠ヤ笂璋冩暣鎺柦鐢熸晥鍚庯紝鍩熷悕娉ㄥ唽淇℃伅灏嗛粯璁ゅ緱鍒颁繚鎶わ紝闃块噷浜戝煙鍚嶉殣绉佷繚鎶ゆ湇鍔″皢鑷�2018骞�5鏈�25鏃ヨ捣鏆傚仠鏈嶅姟銆� + </div> + </main> + </div> +</template> +<style lang="scss" scoped> +.myview{ + color: #4b9bb7; + header{ + line-height: 100px; + display: flex; + flex-direction: column; + align-items: center; + .header-title{ + font-weight: 650; + font-size: 20px; + line-height: 60px; + } + .header-time{ + line-height: 20px; + } + padding-bottom: 20px; + border-bottom: 1px solid #4b9bb7; + } + main{ + padding: 30px 50px; + line-height: 100px; + .main-head{ + line-height: 40px; + } + .main-content{ + line-height: 30px; + } + .main-footer{ + line-height: 30px; + } + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/message/myIndex/update/index.vue b/src/views/operate/message/myIndex/update/index.vue new file mode 100644 index 0000000..76bddbc --- /dev/null +++ b/src/views/operate/message/myIndex/update/index.vue @@ -0,0 +1,179 @@ +<template> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="createRoleRules" + label-position="right"> + <!-- 鏍忕洰鍚嶇О --> + <el-form-item class="optionItem" label="鏍忕洰鍚嶇О:" prop="name"> + <el-input v-model="role.name" placeholder="璇峰~鍐欐爮鐩悕绉�"></el-input> + </el-form-item> + <!-- 瑙掕壊鎻忚堪 --> + <el-form-item class="optionItem" label="瑙掕壊鎻忚堪:" prop="description"> + <el-input type="textarea" :rows="5" maxlength="300" show-word-limit v-model="role.description" + placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�"></el-input> + </el-form-item> + <el-form-item> + <div class="optionBtn"> + <el-button class="btn cancel" @click.native.prevent="handleCancel">鍙栨秷</el-button> + <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">纭畾 + </el-button> + </div> + </el-form-item> + </el-form> + + </div> + </main> + </div> +</template> +<script> +export default { + data() { + const validateNickname = (rule, value, callback) => { + if (!value) { + callback(new Error("璇峰~鍐欐爮鐩悕绉�")); + } else { + callback(); + } + }; + const validateTruename = (rule, value, callback) => { + if (value) { + callback(); + } else { + // const rep = /^[\u4E00-\u9FA5]{2,4}$/; + // if (!rep.test(value)) { + // callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); + // } + callback(); + } + }; + return { + role: { + name: '', + description: '', + }, + createRoleRules: { + name: [ + { required: true, trigger: "blur", validator: validateNickname }, + ], + description: [ + { required: false, trigger: "blur", validator: validateTruename }, + ], + }, + typeList: [], + } + }, + created() { + }, + methods: { + handleUser() { + this.$refs['user'].validate((valid) => { + console.log(valid); + if (valid) { + const { role } = this; + console.log(role); + this.$axios({ + method: 'post', + url: 'sccg/message_column/addColumn', + data: { + columnName: role.name, + createUser: 3, + description: role.description, + isShow: 0, + } + }) + .then(res=>{ + if(res.code === 200){ + this.$message({ + type:'success', + message:'娣诲姞鎴愬姛' + }) + this.$emit('closeDialog',{flag:false,index:1}); + }else{ + this.$message({ + type:'error', + message:res.message + }) + } + }) + } else { + return false; + } + }) + }, + // 鍏抽棴寮圭獥 + handleCancel(){ + this.$emit('closeDialog',{flag:false,index:0}); + } + }, + props: ['closeDialog'] +} +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: #09152f; + + main { + text-align: left; + padding: 0 55px; + background-color: #09152f; + padding-bottom: 50px; + + .mainContent { + display: flex; + justify-content: center; + padding-top: 50px; + + &::v-deep .el-form-item__label { + color: #4b9bb7; + } + + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + :deep(.el-input__count) { + background-color: #09152f; + } + + .el-form-item__content { + width: 400px; + + .el-select { + width: 100%; + } + } + + .optionHandleSp { + display: flex; + + .areaNumber, + .moreNumber { + flex: 1; + } + + .telNumber { + flex: 2; + } + } + + .optionBtn { + display: flex; + margin-top: 20px; + + .btn { + padding: 12px 50px; + } + } + + } + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/message/mycontrol/createUser/index.vue b/src/views/operate/message/mycontrol/createUser/index.vue new file mode 100644 index 0000000..c68bc92 --- /dev/null +++ b/src/views/operate/message/mycontrol/createUser/index.vue @@ -0,0 +1,194 @@ +<template> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="createRoleRules" + label-position="right"> + <!-- 鏍忕洰鍚嶇О --> + <el-form-item class="optionItem" label="鏍忕洰鍚嶇О:" prop="name"> + <el-input v-model="role.name" placeholder="璇峰~鍐欐爮鐩悕绉�"></el-input> + </el-form-item> + <!-- 瑙掕壊鎻忚堪 --> + <el-form-item class="optionItem" label="瑙掕壊鎻忚堪:" prop="description"> + <el-input type="textarea" :rows="5" maxlength="300" show-word-limit v-model="role.description" + placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�"></el-input> + </el-form-item> + <el-form-item> + <div class="optionBtn"> + <el-button class="btn cancel" @click.native.prevent="handleCancel">鍙栨秷</el-button> + <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">纭畾 + </el-button> + </div> + </el-form-item> + </el-form> + + </div> + </main> + </div> +</template> +<script> +export default { + data() { + const validateNickname = (rule, value, callback) => { + if (!value) { + callback(new Error("璇峰~鍐欐爮鐩悕绉�")); + } else { + callback(); + } + }; + const validateTruename = (rule, value, callback) => { + if (value) { + callback(); + } else { + // const rep = /^[\u4E00-\u9FA5]{2,4}$/; + // if (!rep.test(value)) { + // callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); + // } + callback(); + } + }; + return { + role: { + name: '', + description: '', + }, + createRoleRules: { + name: [ + { required: true, trigger: "blur", validator: validateNickname }, + ], + description: [ + { required: false, trigger: "blur", validator: validateTruename }, + ], + }, + typeList: [], + } + }, + created() { + }, + methods: { + handleUser() { + this.$refs['user'].validate((valid) => { + console.log(valid); + if (valid) { + const { role } = this; + console.log(role); + this.$axios({ + method: 'post', + url: 'sccg/message_column/addColumn', + data: { + columnName: role.name, + createUser: 3, + description: role.description, + isShow: 0, + } + }) + .then(res=>{ + if(res.code === 200){ + this.$message({ + type:'success', + message:'娣诲姞鎴愬姛' + }) + this.$emit('closeDialog',{flag:false,index:1}); + }else{ + this.$message({ + type:'error', + message:res.message + }) + } + }) + } else { + return false; + } + }) + }, + // 鍏抽棴寮圭獥 + handleCancel(){ + this.$emit('closeDialog',{flag:false,index:0}); + } + // 鑾峰彇鍒涘缓鐢ㄦ埛淇℃伅 + // async getCreaterInfo(){ + // let id; + // const name = sessionStorage.getItem('name'); + // await this.$axios({ + // method:'get', + // url:'sccg/admin/info?name='+'name' + // }) + // .then(res=>{ + // console.log(res); + // if(res.code ===200){ + + // } + // }) + // } + }, + props: ['closeDialog'] +} +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: #09152f; + + main { + text-align: left; + padding: 0 55px; + background-color: #09152f; + padding-bottom: 50px; + + .mainContent { + display: flex; + justify-content: center; + padding-top: 50px; + + &::v-deep .el-form-item__label { + color: #4b9bb7; + } + + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + :deep(.el-input__count) { + background-color: #09152f; + } + + .el-form-item__content { + width: 400px; + + .el-select { + width: 100%; + } + } + + .optionHandleSp { + display: flex; + + .areaNumber, + .moreNumber { + flex: 1; + } + + .telNumber { + flex: 2; + } + } + + .optionBtn { + display: flex; + margin-top: 20px; + + .btn { + padding: 12px 50px; + } + } + + } + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/message/mycontrol/index.vue b/src/views/operate/message/mycontrol/index.vue new file mode 100644 index 0000000..2d18cb2 --- /dev/null +++ b/src/views/operate/message/mycontrol/index.vue @@ -0,0 +1,501 @@ +<template> + <div class="userList"> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button type="primary" icon="el-icon-plus" @click="dialogCreate = true">娣诲姞</el-button> + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" + :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}" + :data="tableData" style="width: 100%" :row-class-name="tableRowClassName" + @selection-change="tableChange"> + <el-table-column type="selection" min-width="5"> + </el-table-column> + <el-table-column prop="columnName" label="鏍忕洰鍚嶇О" min-width="10"> + </el-table-column> + <el-table-column prop="updateTime" label="淇敼鏃堕棿" min-width="10"> + <template slot-scope="scope"> + <span>{{changeTime(scope.row)}}</span> + </template> + </el-table-column> + <el-table-column prop="noticeAmount" label="鍏憡鏁伴噺" min-width="10"> + </el-table-column> + <el-table-column prop="isShow" label="鏄剧ず" min-width="5"> + <template slot-scope="scope"> + <el-switch class="switchStyle" v-model="scope.row.isShow" active-text="寮�" inactive-text="鍏�" + active-color="#3fef9a" inactive-color="#000212" @change="handleChangeStatus(scope.row)"> + </el-switch> + </template> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="operation"> + <el-link icon="el-icon-edit" :underline="false" @click="handleEdit(scope.row)">缂栬緫</el-link> + <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" + @click="handleDelete([scope.row.id])">鍒犻櫎</el-link> + </div> + </template> + </el-table-column> + </el-table> + <!-- 鍒涘缓椤甸潰 --> + <el-dialog title="娣诲姞鏍忕洰" :visible.sync="dialogCreate" v-if="dialogCreate" width="45%" + :before-close="handleClose"> + <MyCreate @closeDialog="closeDialog"></MyCreate> + </el-dialog> + <!-- 缂栬緫椤甸潰 --> + <el-dialog title="淇敼鏍忕洰" :visible.sync="dialogEdit" v-if="dialogEdit" width="45%" + :before-close="handleClose"> + <MyEdit @closeDialog="closeDialog" :info="info"></MyEdit> + </el-dialog> + <!-- tools --> + <!-- <div class="tools"> + <div class="funs"> + <div class="funsItem"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + <div class="funsItem"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage" + @prev-click="handlePrev" @next-click="handleNext"> + </el-pagination> + </div> + </div> --> + </div> + </main> + </div> +</template> +<script> +// 寮曞叆鍒涘缓鏍忕洰缁勪欢 +import MyCreate from './createUser' +// 寮曞叆缂栬緫缁勪欢 +import MyEdit from './update' +// 寮曞叆鏃ユ湡js +import helper from '@/utils/mydate' +export default { + components: { + MyCreate,MyEdit + }, + data() { + return { + tableData: [], + dialogCreate: false, + dialogEdit:false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + info:'', + options: [ + { + value: 0, + label: '鎵归噺鎿嶄綔', + disabled: true, + }, + { + value: 1, + label: '鎵归噺鍚敤', + }, + { + value: 2, + label: '鎵归噺绂佺敤', + }, + { + value: 3, + label: '鎵归噺鍒犻櫎', + } + ], + tempList: [] + } + }, + created() { + this.setTableData(); + }, + methods: { + // 缂栬緫 + handleEdit(data){ + this.info = data; + this.dialogEdit = true; + }, + // 鍒犻櫎鏁版嵁 + handleDelete(idArr) { + console.log(idArr); + this.$confirm('鏄惁纭畾纭畾鍒犻櫎鏍忕洰?') + .then(_ => { + this.$axios({ + method: 'post', + url: 'sccg/message_column/delete' + '?ids=' + idArr, + }) + .then(res => { + if (res.code === 200) { + this.$message({ + type: 'success', + message: '鍒犻櫎鎴愬姛', + }); + this.setTableData(); + } + }) + }) + .catch(err=>{ + console.log(err); + }) + }, + // 淇敼鏍忕洰鐘舵�� + handleChangeStatus({ id, status }) { + console.log(id, status); + status === true ? status = 1 : status = 0; + this.$axios({ + method: 'post', + url: `sccg/message_column/update/${id}`, + data: { + isShow: status, + } + }) + .then(res => { + if (res.code === 200) { + this.setTableData(); + } + }) + }, + // 鑾峰彇鍏ㄩ儴鏍忕洰 + async getColumnList() { + let arr = []; + await this.$axios({ + method: 'get', + url: 'sccg/message_column/getAllColumn', + }) + .then(res => { + res.data.forEach(item => { + item.isShow === 1 ? item.isShow = true : item.isShow = false; + }) + arr = res.data + // console.log(res); + }) + return arr; + }, + // 璁剧疆琛ㄦ牸鏁版嵁 + async setTableData() { + this.tableData = await this.getColumnList(); + this.totalNum = this.tableData.length; + }, + // 涓嬫媺妗嗙洃鍚� + async selectChange(list) { + console.log(this.tempList); + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?') + .then(_ => { + this.$axios({ + method: 'post', + url: 'sccg/role/updateStatusBatch?ids=' + idArr + '&status=' + flag, + }) + .then(res => { + if (res.code === 200) { + this.$message({ + type: 'success', + message: '鏇存敼鐢ㄦ埛鐘舵�佹垚鍔�', + }) + this.getUserList(); + } else { + this.$message({ + type: 'error', + message: res.message + }) + } + console.log(res); + }) + }) + .catch(err => { console.log(err) }) + }, + // 琛ㄦ牸鐘舵�佺洃鍚� + tableChange(list) { + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.id); + }) + if (list.length === this.tableData.length) { + this.all = true; + } else { + this.all = false + } + }, + // 鏀瑰彉鏃ユ湡鏍煎紡 + changeTime({ updateTime }) { + return helper(updateTime); + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + // 鍙嶉�� + disSame(list) { + list.forEach(row => { + this.$refs.multipleTable.toggleRowSelection(row) + }) + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 == 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + return ''; + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.search(); + }, + // 涓婁竴椤电偣鍑讳簨浠� + handlePrev(page) { + this.currentPage = page; + this.search(); + }, + // 涓嬩竴椤电偣鍑讳簨浠� + handleNext(page) { + this.currentPage = page; + this.search(); + }, + // 鍏抽棴寮圭獥 + handleClose(done) { + this.$confirm('纭畾鍏抽棴?') + .then(_ => { + done(); + }) + .catch(err => { + console.log(err); + }) + }, + // 鑷畾涔夊叧闂脊绐� + closeDialog({ flag, index }) { + this.dialogCreate = flag; + this.dialogEdit = flag; + if (index === 1) { + this.setTableData(); + } + } + } +} +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #4b9bb7; + + main { + background-color: #09152f; + margin-top: 20px; + padding-bottom: 50px; + border: 1pox solid #fff; + + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + border: 1px solid #17324c; + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + &::v-deep .el-input__inner { + border: none; + background-color: #09152f; + } + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + .el-pagination { + + &::v-deep li, + &::v-deep .btn-prev, + &::v-deep .btn-next { + background-color: #071f39; + color: #4b9bb7; + } + + &::v-deep .active { + background-color: #409eff; + color: #fff; + } + } + } + } + + .el-table { + color: #4b9bb7; + font-size: 10px; + + &::v-deep .el-table__empty-block { + background-color: #09152f; + } + + &::v-deep .el-table__empty-block { + color: #4b9bb7; + } + + .operation { + display: flex; + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + .el-table::v-deep .warning-row { + background: #06122c; + } + + .el-table::v-deep .success-row { + background: #071f39; + } + + &::v-deep .switchStyle .el-switch__label { + position: absolute; + display: none; + color: #fff; + } + + &::v-deep .el-switch__core { + background-color: rgba(166, 166, 166, 1); + } + + &::v-deep .switchStyle .el-switch__label--left { + z-index: 9; + left: 20px; + } + + &::v-deep .switchStyle .el-switch__label--right { + z-index: 9; + left: 4px; + } + + &::v-deep .switchStyle .el-switch__label.is-active { + display: block; + } + + &::v-deep .switchStyle.el-switch .el-switch__core, + &::v-deep .el-switch .el-switch__label { + width: 50px !important; + } + } + + &::v-deep .el-dialog__header, + &::v-deep .el-dialog__body { + background-color: #06122c; + } + + &::v-deep .el-dialog__header { + display: flex; + align-items: center; + background-color: #fff; + padding: 20px; + line-height: 60px; + } + + &::v-deep .el-dialog__title { + color: #4b9bb7; + } + + &::v-deep .el-dialog__close { + width: 20px; + height: 20px; + // color: #fff; + } + + &::v-deep .el-dialog__body { + padding: 0; + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/message/mycontrol/update/index.vue b/src/views/operate/message/mycontrol/update/index.vue new file mode 100644 index 0000000..b8c8b36 --- /dev/null +++ b/src/views/operate/message/mycontrol/update/index.vue @@ -0,0 +1,175 @@ +<template> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="createRoleRules" + label-position="right"> + <!-- 鏍忕洰鍚嶇О --> + <el-form-item class="optionItem" label="鏍忕洰鍚嶇О:" prop="columnName"> + <el-input v-model="role.columnName" placeholder="璇峰~鍐欐爮鐩悕绉�"></el-input> + </el-form-item> + <!-- 瑙掕壊鎻忚堪 --> + <el-form-item class="optionItem" label="瑙掕壊鎻忚堪:" prop="description"> + <el-input type="textarea" :rows="5" maxlength="300" show-word-limit v-model="role.description" + placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�"></el-input> + </el-form-item> + <el-form-item> + <div class="optionBtn"> + <el-button class="btn cancel" @click.native.prevent="handleCancel">鍙栨秷</el-button> + <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">淇敼 + </el-button> + </div> + </el-form-item> + </el-form> + + </div> + </main> + </div> +</template> +<script> +export default { + data() { + const validateNickname = (rule, value, callback) => { + if (!value) { + callback(new Error("璇峰~鍐欐爮鐩悕绉�")); + } else { + callback(); + } + }; + const validateTruename = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(); + } + }; + return { + role: { + }, + createRoleRules: { + columnName: [ + { required: true, trigger: "blur", validator: validateNickname }, + ], + description: [ + { required: false, trigger: "blur", validator: validateTruename }, + ], + }, + typeList: [], + } + }, + created() { + console.log(this.info); + this.role = JSON.parse(JSON.stringify(this.info)) ; + }, + methods: { + handleUser() { + this.$refs['user'].validate((valid) => { + console.log(valid); + if (valid) { + const { role } = this; + console.log(role); + this.$axios({ + method: 'post', + url: `sccg/message_column/update/${role.id}`, + data: { + columnName: role.columnName, + createUser: role.createUser, + description: role.description, + isShow: role.isShow===false ? 0 : 1, + } + }) + .then(res=>{ + if(res.code === 200){ + this.$message({ + type:'success', + message:'淇敼鎴愬姛' + }) + this.$emit('closeDialog',{flag:false,index:1}); + }else{ + this.$message({ + type:'error', + message:res.message + }) + } + }) + } else { + return false; + } + }) + }, + // 鍏抽棴寮圭獥 + handleCancel(){ + this.$emit('closeDialog',{flag:false,index:0}); + } + }, + props: ['closeDialog','info'] +} +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: #09152f; + + main { + text-align: left; + padding: 0 55px; + background-color: #09152f; + padding-bottom: 50px; + + .mainContent { + display: flex; + justify-content: center; + padding-top: 50px; + + &::v-deep .el-form-item__label { + color: #4b9bb7; + } + + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + :deep(.el-input__count) { + background-color: #09152f; + } + + .el-form-item__content { + width: 400px; + + .el-select { + width: 100%; + } + } + + .optionHandleSp { + display: flex; + + .areaNumber, + .moreNumber { + flex: 1; + } + + .telNumber { + flex: 2; + } + } + + .optionBtn { + display: flex; + margin-top: 20px; + + .btn { + padding: 12px 50px; + } + } + + } + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/myWait/index.vue b/src/views/operate/myWait/index.vue index ba01d51..6eaf02b 100644 --- a/src/views/operate/myWait/index.vue +++ b/src/views/operate/myWait/index.vue @@ -270,6 +270,7 @@ }, // 璁$畻鏃堕棿 getRestTime(time2){ + console.log(time2); return computeTime(time2); } } -- Gitblit v1.8.0