lansir 1 жил өмнө
parent
commit
ed2a87c1c7

+ 8 - 0
common/plus.css

@@ -18,6 +18,14 @@
 	flex: 1;
 }
 
+.ui-hover{
+    transition: 100ms;
+}
+.ui-hover:hover{
+    background-color: #f3f4f6;
+    cursor: pointer;
+}
+
 /*lijie新增*/
 .ui-flex{
 	display: flex;

+ 5 - 6
main.js

@@ -2,10 +2,15 @@ import App from './App'
 import store from './store'
 import dd from '@/static/dd.js'
 import moment from "moment"
+import ElementUI from 'element-ui';
+import 'element-ui/lib/theme-chalk/index.css';
+
 // #ifndef VUE3
 import Vue from 'vue'
 import Http from './common/js/http.js'
 
+Vue.use(ElementUI);
+
 // main.js
 import uView from "uview-ui"
 Vue.use(uView)
@@ -29,13 +34,7 @@ const app = new Vue({
 })
 app.$mount()
 // #endif
-// window.addEventListener("popstate", function(e) {
-// 	// self.location.reload();
 
-// 	if (event.persisted) {} else {
-// 		location.reload();
-// 	}
-// }, false);
 // #ifdef VUE3
 import {
 	createSSRApp

+ 324 - 0
package-lock.json

@@ -12,6 +12,7 @@
         "@dcloudio/uni-app-plus": "^2.0.2-3081220230817001",
         "@vant/weapp": "^1.11.1",
         "echarts": "^5.4.3",
+        "element-ui": "^2.15.14",
         "js-base64": "^3.6.0",
         "jweixin-module": "^1.6.0",
         "moment": "^2.30.1",
@@ -19,6 +20,18 @@
         "vuedraggable": "^2.24.3"
       }
     },
+    "node_modules/@babel/parser": {
+      "version": "7.24.5",
+      "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.5.tgz",
+      "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==",
+      "peer": true,
+      "bin": {
+        "parser": "bin/babel-parser.js"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
     "node_modules/@dcloudio/uni-app-plus": {
       "version": "2.0.2-3081220230817001",
       "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-plus/-/uni-app-plus-2.0.2-3081220230817001.tgz",
@@ -29,6 +42,63 @@
       "resolved": "https://registry.npmjs.org/@vant/weapp/-/weapp-1.11.1.tgz",
       "integrity": "sha512-2QddSq3MsozbTBAgEmW1rhzsEJNWPF2VS427M5pOOn0a7/f6lW+tymwdTcOQCzQONavhFwBv6Lebbs/UjE3Yig=="
     },
+    "node_modules/@vue/compiler-sfc": {
+      "version": "2.7.16",
+      "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz",
+      "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==",
+      "peer": true,
+      "dependencies": {
+        "@babel/parser": "^7.23.5",
+        "postcss": "^8.4.14",
+        "source-map": "^0.6.1"
+      },
+      "optionalDependencies": {
+        "prettier": "^1.18.2 || ^2.0.0"
+      }
+    },
+    "node_modules/async-validator": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-1.8.5.tgz",
+      "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
+      "dependencies": {
+        "babel-runtime": "6.x"
+      }
+    },
+    "node_modules/babel-helper-vue-jsx-merge-props": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmmirror.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
+      "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
+    },
+    "node_modules/babel-runtime": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz",
+      "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
+      "dependencies": {
+        "core-js": "^2.4.0",
+        "regenerator-runtime": "^0.11.0"
+      }
+    },
+    "node_modules/core-js": {
+      "version": "2.6.12",
+      "resolved": "https://registry.npmmirror.com/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.",
+      "hasInstallScript": true
+    },
+    "node_modules/csstype": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
+      "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+      "peer": true
+    },
+    "node_modules/deepmerge": {
+      "version": "1.5.2",
+      "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz",
+      "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
     "node_modules/echarts": {
       "version": "5.4.3",
       "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.4.3.tgz",
@@ -38,6 +108,22 @@
         "zrender": "5.4.4"
       }
     },
+    "node_modules/element-ui": {
+      "version": "2.15.14",
+      "resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.15.14.tgz",
+      "integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==",
+      "dependencies": {
+        "async-validator": "~1.8.1",
+        "babel-helper-vue-jsx-merge-props": "^2.0.0",
+        "deepmerge": "^1.2.0",
+        "normalize-wheel": "^1.0.1",
+        "resize-observer-polyfill": "^1.5.0",
+        "throttle-debounce": "^1.0.1"
+      },
+      "peerDependencies": {
+        "vue": "^2.5.17"
+      }
+    },
     "node_modules/js-base64": {
       "version": "3.6.0",
       "resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-3.6.0.tgz",
@@ -56,11 +142,97 @@
         "node": "*"
       }
     },
+    "node_modules/nanoid": {
+      "version": "3.3.7",
+      "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
+      "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+      "peer": true,
+      "bin": {
+        "nanoid": "bin/nanoid.cjs"
+      },
+      "engines": {
+        "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+      }
+    },
+    "node_modules/normalize-wheel": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
+      "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA=="
+    },
+    "node_modules/picocolors": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
+      "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+      "peer": true
+    },
+    "node_modules/postcss": {
+      "version": "8.4.38",
+      "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz",
+      "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
+      "peer": true,
+      "dependencies": {
+        "nanoid": "^3.3.7",
+        "picocolors": "^1.0.0",
+        "source-map-js": "^1.2.0"
+      },
+      "engines": {
+        "node": "^10 || ^12 || >=14"
+      }
+    },
+    "node_modules/prettier": {
+      "version": "2.8.8",
+      "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz",
+      "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+      "optional": true,
+      "peer": true,
+      "bin": {
+        "prettier": "bin-prettier.js"
+      },
+      "engines": {
+        "node": ">=10.13.0"
+      }
+    },
+    "node_modules/regenerator-runtime": {
+      "version": "0.11.1",
+      "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+      "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
+    },
+    "node_modules/resize-observer-polyfill": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+      "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
+    },
     "node_modules/sortablejs": {
       "version": "1.10.2",
       "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.2.tgz",
       "integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A=="
     },
+    "node_modules/source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "peer": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/source-map-js": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz",
+      "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
+      "peer": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/throttle-debounce": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
+      "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==",
+      "engines": {
+        "node": ">=4"
+      }
+    },
     "node_modules/tslib": {
       "version": "2.3.0",
       "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
@@ -74,6 +246,17 @@
         "HBuilderX": "^3.1.0"
       }
     },
+    "node_modules/vue": {
+      "version": "2.7.16",
+      "resolved": "https://registry.npmmirror.com/vue/-/vue-2.7.16.tgz",
+      "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==",
+      "deprecated": "Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.",
+      "peer": true,
+      "dependencies": {
+        "@vue/compiler-sfc": "2.7.16",
+        "csstype": "^3.1.0"
+      }
+    },
     "node_modules/vuedraggable": {
       "version": "2.24.3",
       "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.24.3.tgz",
@@ -92,6 +275,12 @@
     }
   },
   "dependencies": {
+    "@babel/parser": {
+      "version": "7.24.5",
+      "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.5.tgz",
+      "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==",
+      "peer": true
+    },
     "@dcloudio/uni-app-plus": {
       "version": "2.0.2-3081220230817001",
       "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-plus/-/uni-app-plus-2.0.2-3081220230817001.tgz",
@@ -102,6 +291,56 @@
       "resolved": "https://registry.npmjs.org/@vant/weapp/-/weapp-1.11.1.tgz",
       "integrity": "sha512-2QddSq3MsozbTBAgEmW1rhzsEJNWPF2VS427M5pOOn0a7/f6lW+tymwdTcOQCzQONavhFwBv6Lebbs/UjE3Yig=="
     },
+    "@vue/compiler-sfc": {
+      "version": "2.7.16",
+      "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz",
+      "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==",
+      "peer": true,
+      "requires": {
+        "@babel/parser": "^7.23.5",
+        "postcss": "^8.4.14",
+        "prettier": "^1.18.2 || ^2.0.0",
+        "source-map": "^0.6.1"
+      }
+    },
+    "async-validator": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-1.8.5.tgz",
+      "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
+      "requires": {
+        "babel-runtime": "6.x"
+      }
+    },
+    "babel-helper-vue-jsx-merge-props": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmmirror.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
+      "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
+    },
+    "babel-runtime": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz",
+      "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
+      "requires": {
+        "core-js": "^2.4.0",
+        "regenerator-runtime": "^0.11.0"
+      }
+    },
+    "core-js": {
+      "version": "2.6.12",
+      "resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz",
+      "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
+    },
+    "csstype": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
+      "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+      "peer": true
+    },
+    "deepmerge": {
+      "version": "1.5.2",
+      "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz",
+      "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ=="
+    },
     "echarts": {
       "version": "5.4.3",
       "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.4.3.tgz",
@@ -111,6 +350,19 @@
         "zrender": "5.4.4"
       }
     },
+    "element-ui": {
+      "version": "2.15.14",
+      "resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.15.14.tgz",
+      "integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==",
+      "requires": {
+        "async-validator": "~1.8.1",
+        "babel-helper-vue-jsx-merge-props": "^2.0.0",
+        "deepmerge": "^1.2.0",
+        "normalize-wheel": "^1.0.1",
+        "resize-observer-polyfill": "^1.5.0",
+        "throttle-debounce": "^1.0.1"
+      }
+    },
     "js-base64": {
       "version": "3.6.0",
       "resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-3.6.0.tgz",
@@ -126,11 +378,73 @@
       "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
       "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="
     },
+    "nanoid": {
+      "version": "3.3.7",
+      "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
+      "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+      "peer": true
+    },
+    "normalize-wheel": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
+      "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA=="
+    },
+    "picocolors": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
+      "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+      "peer": true
+    },
+    "postcss": {
+      "version": "8.4.38",
+      "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz",
+      "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
+      "peer": true,
+      "requires": {
+        "nanoid": "^3.3.7",
+        "picocolors": "^1.0.0",
+        "source-map-js": "^1.2.0"
+      }
+    },
+    "prettier": {
+      "version": "2.8.8",
+      "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz",
+      "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+      "optional": true,
+      "peer": true
+    },
+    "regenerator-runtime": {
+      "version": "0.11.1",
+      "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+      "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
+    },
+    "resize-observer-polyfill": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+      "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
+    },
     "sortablejs": {
       "version": "1.10.2",
       "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.2.tgz",
       "integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A=="
     },
+    "source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "peer": true
+    },
+    "source-map-js": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz",
+      "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
+      "peer": true
+    },
+    "throttle-debounce": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
+      "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg=="
+    },
     "tslib": {
       "version": "2.3.0",
       "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
@@ -141,6 +455,16 @@
       "resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.36.tgz",
       "integrity": "sha512-ASSZT6M8w3GTO1eFPbsgEFV0U5UujK+8pTNr+MSUbRNcRMC1u63DDTLJVeArV91kWM0bfAexK3SK9pnTqF9TtA=="
     },
+    "vue": {
+      "version": "2.7.16",
+      "resolved": "https://registry.npmmirror.com/vue/-/vue-2.7.16.tgz",
+      "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==",
+      "peer": true,
+      "requires": {
+        "@vue/compiler-sfc": "2.7.16",
+        "csstype": "^3.1.0"
+      }
+    },
     "vuedraggable": {
       "version": "2.24.3",
       "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.24.3.tgz",

+ 1 - 0
package.json

@@ -27,6 +27,7 @@
     "@dcloudio/uni-app-plus": "^2.0.2-3081220230817001",
     "@vant/weapp": "^1.11.1",
     "echarts": "^5.4.3",
+    "element-ui": "^2.15.14",
     "js-base64": "^3.6.0",
     "jweixin-module": "^1.6.0",
     "moment": "^2.30.1",

+ 43 - 0
pages/studentRanked/components/mark-score-list.vue

@@ -0,0 +1,43 @@
+<template>
+    <el-drawer append-to-body title="点评记录" :visible.sync="show" size="400px" direction="ltr" style="backdrop-filter: blur(4px);">
+        <u-cell-group v-for="index in 20">
+            <u-cell class="ui-hover" clickable title="李杰">
+                <image slot="icon" class="ui-mr10" src="https://zhxy.obs.cn-hz1.ctyun.cn:443/static/student_icon/0.png" style="width: 40px;height: 40px;"></image>
+                <!-- <view slot="title" class="ui-flex-row ui-flex-align-center">
+                    <u-tag plain size="mini" text="优秀发言"></u-tag>
+                    <text>李杰</text>
+                </view> -->
+                <text slot="label" class="txt-muted">今天 23:52:12</text>
+                <el-tag slot="value" plain>优秀发言 +1</el-tag>
+                <!-- <u-badge slot="value" value="+1" plain size="mini" type="success"></u-badge> -->
+            </u-cell>
+            <u-cell class="ui-hover" clickable title="李杰">
+                <image slot="icon" class="ui-mr10" src="https://zhxy.obs.cn-hz1.ctyun.cn:443/static/student_icon/0.png" style="width: 40px;height: 40px;"></image>
+                <text slot="label" class="txt-muted">今天 23:52:12</text>
+                <!-- <u-badge slot="value" value="-1" plain size="mini" type="error"></u-badge> -->
+                <el-tag slot="value" plain type="danger">上课开小差 -1</el-tag>
+            </u-cell>
+        </u-cell-group>
+        <view>
+            <text class="text-center ui-m ui-p">加载更多</text>
+        </view>
+    </el-drawer>
+</template>
+
+<script>
+    export default {
+        data(){
+            return {
+                show : false,
+            }
+        },
+        methods : {
+            open(){
+                this.show = true
+            }
+        }
+    }
+</script>
+
+<style>
+</style>

+ 87 - 38
pages/studentRanked/components/mark-score.vue

@@ -1,30 +1,44 @@
 <template>
-    <u-popup :show="show" @close="show = false" closeable :closeOnClickOverlay="false" mode="center" overlayStyle="background-color: #00142f63;backdrop-filter: blur(4px);">
-        <view class="ui-flex-column content" style="width: 600px;">
-            <view class="ui-p" style="background: #022c5a80;border-bottom: 2px solid #051d37;">
-                <text class="txt-white">标记点评给 马东/徐策 等5人 </text>
-            </view>
+    <el-dialog :visible.sync="show" title="标记点评给 马东/徐策 等5人" custom-class="content"
+        style="background-color: #00142f63;backdrop-filter: blur(4px);" width="600px">
+        <view class="ui-flex-column">
+            <!-- <view class="ui-p" style="background: #022c5a80;border-bottom: 2px solid #051d37;">
+                <text class="txt-white"> </text>
+            </view> -->
             <view class="ui-flex-row">
                 <view class="ui-flex-1 ui-flex-align-center ui-flex-row">
                     <view class="ui-pl20">
-                        <view class="ui-flex-row ui-border-radius-20" @click="showType=true" style="background-color: #1C63A8;padding: 4px 8px;">
+                        <view class="ui-flex-row ui-border-radius-20" @click="showType=true"
+                            style="background-color: #1C63A8;padding: 4px 8px;">
                             <text class="txt-white f26 ui-mr10">全部类型</text>
                             <u-icon color="#fff" name="list-dot"></u-icon>
                         </view>
                     </view>
                 </view>
                 <view style="width: 220px;" class="ui-p">
-                    <u-subsection :list="['表扬', '需改进']" mode="button" 
-                        bgColor="#1b63a8" inactiveColor="#aec3ee"
+                    <u-subsection :list="['表扬', '需改进']" mode="button" bgColor="#1b63a8" inactiveColor="#aec3ee"
                         :current="curIndex" @change="curIndex=$event"></u-subsection>
                 </view>
                 <view class="ui-flex-1"></view>
             </view>
-            
+            <view style="background: #0000003b;">
+                <u-tabs :list="list1" :scrollable="false" :activeStyle="{
+                    color: '#fff',
+                    fontWeight: 'bold',
+                    transform: 'scale(1.2)'
+                }"
+                :inactiveStyle="{
+                    color: '#959595',
+                    transform: 'scale(1)'
+                }"></u-tabs>
+            </view>
+
             <scroll-view scroll-y style="height: 400px;" show-scrollbar>
                 <u-grid :col="6" :border="false" @click="toActive">
-                    <u-grid-item v-for="(item, index) in tagList" :key="index" class="ui-p" :class="{'no-select' : activeId >= 0 && activeId != index}">
-                        <u--image :src="'https://zhxy.obs.cn-hz1.ctyun.cn:443/static/tag_learn/' + tagIcons[index]" width="46px" height="46px"></u--image>
+                    <u-grid-item v-for="(item, index) in tagList" :key="index" class="ui-p"
+                        :class="{'no-select' : activeId >= 0 && activeId != index}">
+                        <u--image :src="'https://zhxy.obs.cn-hz1.ctyun.cn:443/static/tag_learn/' + tagIcons[index]"
+                            width="46px" height="46px"></u--image>
                         <view class="ui-pt10">
                             <text class="grid-text txt-white f28">{{item}}</text>
                         </view>
@@ -32,16 +46,17 @@
                     </u-grid-item>
                 </u-grid>
             </scroll-view>
-            
+
             <view class="ui-p ui-flex" style="background-color: #1b63a870;justify-content: end;">
                 <view class="ui-flex" style="width: 250px;">
-                    <u-button size="small" plain :text="score ? '取消选择' : '关闭点评'" @click="cancelAct" style="background-color: #0d4980;" class="ui-mr10"></u-button>
+                    <u-button size="small" plain :text="score ? '取消选择' : '关闭点评'" @click="cancelAct"
+                        style="background-color: #0d4980;" class="ui-mr10"></u-button>
                     <u-button size="small" :disabled="!score" type="primary" @click="submit" text="提交点评"></u-button>
                 </view>
             </view>
         </view>
-        
-        <u-popup :show="showType" mode="left" @close="showType=false">
+
+        <el-drawer append-to-body :visible.sync="showType" direction="ltr">
             <view class="ui-p" style="width: 400px;">
                 <text>这里展示学生标签记录、以及类型切换</text>
             </view>
@@ -49,23 +64,43 @@
                 <u-cell icon="setting-fill" isLink title="个人设置"></u-cell>
                 <u-cell icon="integral-fill" isLink title="会员等级" value="新版本"></u-cell>
             </u-cell-group>
-        </u-popup>
-    </u-popup>
+        </el-drawer>
+    </el-dialog>
 </template>
 
 <script>
     export default {
-        data(){
+        data() {
             return {
-                show : false,
-                curIndex : 0,
-                
-                score : 0, //加扣分分数
-                activeId : -1, //选中项
-                
-                showType : false,
+                show: false,
+                curIndex: 0,
+
+                score: 0, //加扣分分数
+                activeId: -1, //选中项
+
+                showType: false,
+
+                list1: [{
+                    name: '全部',
+                }, {
+                    name: '语文',
+                }, {
+                    name: '数学'
+                }, {
+                    name: '科技'
+                }, {
+                    name: '音乐'
+                }, {
+                    name: '美术'
+                }, {
+                    name: '体育'
+                }, {
+                    name: '思想'
+                }, {
+                    name: '劳动'
+                }],
 
-                tagList : [
+                tagList: [
                     '小测优秀',
                     '作业加分',
                     '口算优秀',
@@ -116,7 +151,7 @@
                     // '爱国爱校',
                 ],
                 // 老师配置标签的时候,需要选择图标
-                tagIcons : [
+                tagIcons: [
                     'a-001-pencil.png',
                     'a-010-astronomy.png',
                     'a-017-protractor.png',
@@ -168,30 +203,30 @@
                 ]
             }
         },
-        methods : {
+        methods: {
             // 外部访问使用
             open(id) {
                 this.show = true;
             },
-            toActive(index){
+            toActive(index) {
                 // 是否旧的选中项
                 let always = this.activeId >= 0 && this.activeId == index;
                 this.activeId = index;
-                if(always){
-                    this.score ++;
-                }else{
+                if (always) {
+                    this.score++;
+                } else {
                     this.score = 1;
                 }
             },
-            cancelAct(){
-                if(this.score){
+            cancelAct() {
+                if (this.score) {
                     this.activeId = -1;
                     this.score = 0;
-                }else{
+                } else {
                     this.show = false;
                 }
             },
-            submit(){
+            submit() {
                 console.log('提交')
             }
         }
@@ -199,12 +234,26 @@
 </script>
 
 <style>
-    .content{
+    /deep/ .content {
         background-image: url('https://zhxy.obs.cn-hz1.ctyun.cn:443/static/desk_bg/class_bj.jpg');
         background-size: auto;
         border: 1px solid #0d5396;
     }
-    .no-select{
+
+    /deep/ .el-dialog__header {
+        background: #022c5a80;
+        border-bottom: 2px solid #051d37;
+    }
+
+    /deep/ .el-dialog__title {
+        color: #fff;
+    }
+
+    /deep/ .el-dialog__body {
+        padding: 0;
+    }
+
+    .no-select {
         opacity: .5;
     }
 </style>

+ 56 - 16
pages/studentRanked/studentRanked.vue

@@ -15,27 +15,43 @@
                 </view>
             </view>
         </u-popup> -->
-        
-        <view class="txt-white ui-flex-row ui-flex-align-center" style="border-bottom: 4px solid #4472C4;padding-left: 40rpx;height: 54px;" :style="{'background-color': multiSelect ? '#4472c4' : ''}">
+
+        <view class="txt-white ui-flex-row ui-flex-align-center"
+            style="border-bottom: 4px solid #4472C4;padding-left: 40rpx;height: 54px;"
+            :style="{'background-color': multiSelect ? '#4472c4' : ''}">
             <view class="ui-p ui-flex-row">
                 <text class="f40">{{chooseClassName}}</text>
-                <view class="ui-flex-row">
+                <!-- <view class="ui-flex-row">
                     <text class="f40 ui-ml30 ui-mr10">李老师</text>
                     <u-icon name="arrow-down-fill" color="#fff"></u-icon>
-                </view>
+                </view> -->
+                <el-dropdown trigger="click">
+                    <span class="f40 txt-white ui-ml30" style="cursor:pointer;">
+                        李老师<i class="el-icon-arrow-down el-icon--right"></i>
+                    </span>
+                    <el-dropdown-menu slot="dropdown">
+                        <el-dropdown-item>周老师</el-dropdown-item>
+                        <el-dropdown-item>陈老师</el-dropdown-item>
+                        <el-dropdown-item>方老师</el-dropdown-item>
+                        <el-dropdown-item disabled>金老师</el-dropdown-item>
+                        <el-dropdown-item divided>退出登录</el-dropdown-item>
+                    </el-dropdown-menu>
+                </el-dropdown>
+
             </view>
-            
+
             <view class="ui-p ui-flex ui-flex-1 ui-flex-align-center" style="justify-content: end;" v-if="multiSelect">
                 <view class="ui-mr30">
                     <text class="f32" style="#9ccbff">请点击选则学生批量点评</text>
                 </view>
                 <view class="ui-flex" style="width: 250px;">
-                    <u-button size="small" @click="setMulti" plain text="取消选择" style="background-color: #0d4980;"
-                        class="ui-mr10"></u-button>
-                    <u-button size="small" type="primary" @click="commentMulti()">
-                        <text class="ui-mr10">批量点评</text>
-                        <u-badge :value="activeList.length"></u-badge>
-                    </u-button>
+                    <el-button @click="setMulti" plain text="取消选择" style="background-color: #0d4980;"
+                        class="ui-mr10">取消选择</el-button>
+                    <el-badge :value="activeList.length">
+                        <el-button type="primary" @click="commentMulti()">
+                            批量点评
+                        </el-button>
+                    </el-badge>
                 </view>
             </view>
         </view>
@@ -46,9 +62,12 @@
                         'ui-mr10' : index2 == 1,
                         'ui-ml10' : index2 == 2
                     }">
-                    <view @click="Comment(item1)" v-for="(item1,index1) in list[index2+index-1].nodes" :key="item1.id" class="ui-flex-column ranked-item-tr ui-flex-align-center" 
+                    <view @click="Comment(item1)" v-for="(item1,index1) in list[index2+index-1].nodes" :key="item1.id"
+                        class="ui-flex-column ranked-item-tr ui-flex-align-center"
                         :class="{active : activeList.includes(item1.id)}">
-                        <image style="width: 100rpx;height: 100rpx;" :src="'https://zhxy.obs.cn-hz1.ctyun.cn:443/static/student_icon/'+ (index1%7) +'.png'" mode=""></image>
+                        <image style="width: 100rpx;height: 100rpx;"
+                            :src="'https://zhxy.obs.cn-hz1.ctyun.cn:443/static/student_icon/'+ (index1%7) +'.png'"
+                            mode=""></image>
 
                         <view class="stu-tag text-center ui-flex-row ui-mt10">
                             <view class="stu-tag-add ui-flex-1">72</view>
@@ -59,7 +78,8 @@
                             {{item1.title}}
                         </view>
 
-                        <u-badge absolute style="left: 10px;top: 10px;" :value="activeList.indexOf(item1.id) + 1"></u-badge>
+                        <u-badge absolute style="left: 10px;top: 10px;"
+                            :value="activeList.indexOf(item1.id) + 1"></u-badge>
                     </view>
                 </view>
             </view>
@@ -74,7 +94,15 @@
         <u-picker :show="show_classes" @confirm="doChooseClass" :columns="teachList" keyName="class_name"
             @cancel="show_classes=false"></u-picker>
 
+        <!-- 点评 -->
         <markScore ref="markScore"></markScore>
+        
+        <!-- 点评记录 -->
+        <markScoreList ref="markScoreList"></markScoreList>
+
+        <el-drawer title="排行榜" :visible.sync="showRankList" direction="rtl">
+            <span>我来啦!</span>
+        </el-drawer>
 
         <view class="ui-pull-bottom ui-flex-row ui-p"
             style="background-color: #0000006b;border-top: 1px solid #616161;">
@@ -85,6 +113,12 @@
                         <text class="txt-white f24">{{chooseClassName || '加载中...'}}</text>
                     </view>
                 </view>
+                <view class="ui-flex-column text-center ui-p bottom-btn-item" @click="$refs.markScoreList.open()">
+                    <image src="../../static/uni.png" style="width: 30px;height: 30px;" mode=""></image>
+                    <view style="line-height: 1;">
+                        <text class="txt-white f24">点评记录</text>
+                    </view>
+                </view>
                 <view class="ui-flex-column text-center ui-p bottom-btn-item" @click="$pageTo('./studentRankedChange')">
                     <image src="../../static/uni.png" style="width: 30px;height: 30px;" mode=""></image>
                     <view style="line-height: 1;">
@@ -102,7 +136,7 @@
             </view>
 
             <view class="ui-flex-row">
-                <view class="ui-flex-column text-center ui-p bottom-btn-item">
+                <view class="ui-flex-column text-center ui-p bottom-btn-item" @click="showRankList = true">
                     <image src="../../static/uni.png" style="width: 30px;height: 30px;" mode=""></image>
                     <view style="line-height: 1;">
                         <text class="txt-white f24">排行榜</text>
@@ -127,13 +161,15 @@
 
 <script>
     import markScore from './components/mark-score.vue'
+    import markScoreList from './components/mark-score-list.vue'
 
     import {
         getStuSchoolIdByStuClassId
     } from "@/common/api/stu.js"
     export default {
         components: {
-            markScore
+            markScore,
+            markScoreList
         },
         data() {
             return {
@@ -147,6 +183,9 @@
 
                 activeList: [],
                 multiSelect: false,
+
+                // 排行榜
+                showRankList: false,
             }
         },
         mounted() {
@@ -337,6 +376,7 @@
         box-sizing: border-box;
         width: 100%;
         cursor: pointer;
+        transition: 100ms;
 
         display: flex;
         justify-content: center;