保存进度!
This commit is contained in:
		
							
								
								
									
										128
									
								
								code/web/task_schedule/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										128
									
								
								code/web/task_schedule/package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -14,7 +14,7 @@
 | 
			
		||||
        "mitt": "^3.0.1",
 | 
			
		||||
        "moment": "^2.29.4",
 | 
			
		||||
        "sass-loader": "^13.3.2",
 | 
			
		||||
        "vue": "^3.3.11",
 | 
			
		||||
        "vue": "^3.3.12",
 | 
			
		||||
        "vue-router": "^4.2.5",
 | 
			
		||||
        "vuex": "^4.1.0"
 | 
			
		||||
      },
 | 
			
		||||
@@ -28,7 +28,7 @@
 | 
			
		||||
        "axios": "^1.6.2",
 | 
			
		||||
        "babel": "^6.23.0",
 | 
			
		||||
        "eslint-config-recommended": "^4.1.0",
 | 
			
		||||
        "eslint-config-standard-with-typescript": "^42.0.0",
 | 
			
		||||
        "eslint-config-standard-with-typescript": "^43.0.0",
 | 
			
		||||
        "eslint-plugin-vue": "^9.19.2",
 | 
			
		||||
        "node-sass": "^9.0.0",
 | 
			
		||||
        "sass": "^1.69.5",
 | 
			
		||||
@@ -2318,36 +2318,36 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@vue/compiler-core": {
 | 
			
		||||
      "version": "3.3.11",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.11.tgz",
 | 
			
		||||
      "integrity": "sha512-h97/TGWBilnLuRaj58sxNrsUU66fwdRKLOLQ9N/5iNDfp+DZhYH9Obhe0bXxhedl8fjAgpRANpiZfbgWyruQ0w==",
 | 
			
		||||
      "version": "3.3.12",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.12.tgz",
 | 
			
		||||
      "integrity": "sha512-qAtjyG3GBLG0chzp5xGCyRLLe6wFCHmjI82aGzwuGKyznNP+GJJMxjc0wOYWDB2YKfho7niJFdoFpo0CZZQg9w==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@babel/parser": "^7.23.5",
 | 
			
		||||
        "@vue/shared": "3.3.11",
 | 
			
		||||
        "@vue/shared": "3.3.12",
 | 
			
		||||
        "estree-walker": "^2.0.2",
 | 
			
		||||
        "source-map-js": "^1.0.2"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@vue/compiler-dom": {
 | 
			
		||||
      "version": "3.3.11",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.11.tgz",
 | 
			
		||||
      "integrity": "sha512-zoAiUIqSKqAJ81WhfPXYmFGwDRuO+loqLxvXmfUdR5fOitPoUiIeFI9cTTyv9MU5O1+ZZglJVTusWzy+wfk5hw==",
 | 
			
		||||
      "version": "3.3.12",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.12.tgz",
 | 
			
		||||
      "integrity": "sha512-RdJU9oEYaoPKUdGXCy0l+i4clesdDeLmbvRlszoc9iagsnBnMmQtYfCPVQ5BHB6o7K4SCucDdJM2Dh3oXB0D6g==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@vue/compiler-core": "3.3.11",
 | 
			
		||||
        "@vue/shared": "3.3.11"
 | 
			
		||||
        "@vue/compiler-core": "3.3.12",
 | 
			
		||||
        "@vue/shared": "3.3.12"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@vue/compiler-sfc": {
 | 
			
		||||
      "version": "3.3.11",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.11.tgz",
 | 
			
		||||
      "integrity": "sha512-U4iqPlHO0KQeK1mrsxCN0vZzw43/lL8POxgpzcJweopmqtoYy9nljJzWDIQS3EfjiYhfdtdk9Gtgz7MRXnz3GA==",
 | 
			
		||||
      "version": "3.3.12",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.12.tgz",
 | 
			
		||||
      "integrity": "sha512-yy5b9e7b79dsGbMmglCe/YnhCQgBkHO7Uf6JfjWPSf2/5XH+MKn18LhzhHyxbHdJgnA4lZCqtXzLaJz8Pd8lMw==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@babel/parser": "^7.23.5",
 | 
			
		||||
        "@vue/compiler-core": "3.3.11",
 | 
			
		||||
        "@vue/compiler-dom": "3.3.11",
 | 
			
		||||
        "@vue/compiler-ssr": "3.3.11",
 | 
			
		||||
        "@vue/reactivity-transform": "3.3.11",
 | 
			
		||||
        "@vue/shared": "3.3.11",
 | 
			
		||||
        "@vue/compiler-core": "3.3.12",
 | 
			
		||||
        "@vue/compiler-dom": "3.3.12",
 | 
			
		||||
        "@vue/compiler-ssr": "3.3.12",
 | 
			
		||||
        "@vue/reactivity-transform": "3.3.12",
 | 
			
		||||
        "@vue/shared": "3.3.12",
 | 
			
		||||
        "estree-walker": "^2.0.2",
 | 
			
		||||
        "magic-string": "^0.30.5",
 | 
			
		||||
        "postcss": "^8.4.32",
 | 
			
		||||
@@ -2355,12 +2355,12 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@vue/compiler-ssr": {
 | 
			
		||||
      "version": "3.3.11",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.11.tgz",
 | 
			
		||||
      "integrity": "sha512-Zd66ZwMvndxRTgVPdo+muV4Rv9n9DwQ4SSgWWKWkPFebHQfVYRrVjeygmmDmPewsHyznCNvJ2P2d6iOOhdv8Qg==",
 | 
			
		||||
      "version": "3.3.12",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.12.tgz",
 | 
			
		||||
      "integrity": "sha512-adCiMJPznfWcQyk/9HSuXGja859IaMV+b8UNSVzDatqv7h0PvT9BEeS22+gjkWofDiSg5d78/ZLls3sLA+cn3A==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@vue/compiler-dom": "3.3.11",
 | 
			
		||||
        "@vue/shared": "3.3.11"
 | 
			
		||||
        "@vue/compiler-dom": "3.3.12",
 | 
			
		||||
        "@vue/shared": "3.3.12"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@vue/component-compiler-utils": {
 | 
			
		||||
@@ -2459,60 +2459,60 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@vue/reactivity": {
 | 
			
		||||
      "version": "3.3.11",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.11.tgz",
 | 
			
		||||
      "integrity": "sha512-D5tcw091f0nuu+hXq5XANofD0OXnBmaRqMYl5B3fCR+mX+cXJIGNw/VNawBqkjLNWETrFW0i+xH9NvDbTPVh7g==",
 | 
			
		||||
      "version": "3.3.12",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.12.tgz",
 | 
			
		||||
      "integrity": "sha512-vOJORzO8DlIx88cgTnMLIf2GlLYpoXAKsuoQsK6SGdaqODjxO129pVPTd2s/N/Mb6KKZEFIHIEwWGmtN4YPs+g==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@vue/shared": "3.3.11"
 | 
			
		||||
        "@vue/shared": "3.3.12"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@vue/reactivity-transform": {
 | 
			
		||||
      "version": "3.3.11",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.11.tgz",
 | 
			
		||||
      "integrity": "sha512-fPGjH0wqJo68A0wQ1k158utDq/cRyZNlFoxGwNScE28aUFOKFEnCBsvyD8jHn+0kd0UKVpuGuaZEQ6r9FJRqCg==",
 | 
			
		||||
      "version": "3.3.12",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.12.tgz",
 | 
			
		||||
      "integrity": "sha512-g5TijmML7FyKkLt6QnpqNmA4KD7K/T5SbXa88Bhq+hydNQEkzA8veVXWAQuNqg9rjaFYD0rPf0a9NofKA0ENgg==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@babel/parser": "^7.23.5",
 | 
			
		||||
        "@vue/compiler-core": "3.3.11",
 | 
			
		||||
        "@vue/shared": "3.3.11",
 | 
			
		||||
        "@vue/compiler-core": "3.3.12",
 | 
			
		||||
        "@vue/shared": "3.3.12",
 | 
			
		||||
        "estree-walker": "^2.0.2",
 | 
			
		||||
        "magic-string": "^0.30.5"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@vue/runtime-core": {
 | 
			
		||||
      "version": "3.3.11",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.11.tgz",
 | 
			
		||||
      "integrity": "sha512-g9ztHGwEbS5RyWaOpXuyIVFTschclnwhqEbdy5AwGhYOgc7m/q3NFwr50MirZwTTzX55JY8pSkeib9BX04NIpw==",
 | 
			
		||||
      "version": "3.3.12",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.12.tgz",
 | 
			
		||||
      "integrity": "sha512-5iL4w7MZrSGKEZU2wFAYhDZdZmgn+s//73EfgDXW1M+ZUOl36md7tlWp1QFK/ladiq4FvQ82shVjo0KiPDPr0A==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@vue/reactivity": "3.3.11",
 | 
			
		||||
        "@vue/shared": "3.3.11"
 | 
			
		||||
        "@vue/reactivity": "3.3.12",
 | 
			
		||||
        "@vue/shared": "3.3.12"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@vue/runtime-dom": {
 | 
			
		||||
      "version": "3.3.11",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.11.tgz",
 | 
			
		||||
      "integrity": "sha512-OlhtV1PVpbgk+I2zl+Y5rQtDNcCDs12rsRg71XwaA2/Rbllw6mBLMi57VOn8G0AjOJ4Mdb4k56V37+g8ukShpQ==",
 | 
			
		||||
      "version": "3.3.12",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.12.tgz",
 | 
			
		||||
      "integrity": "sha512-8mMzqiIdl+IYa/OXwKwk6/4ebLq7cYV1pUcwCSwBK2KerUa6cwGosen5xrCL9f8o2DJ9TfPFwbPEvH7OXzUpoA==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@vue/runtime-core": "3.3.11",
 | 
			
		||||
        "@vue/shared": "3.3.11",
 | 
			
		||||
        "csstype": "^3.1.2"
 | 
			
		||||
        "@vue/runtime-core": "3.3.12",
 | 
			
		||||
        "@vue/shared": "3.3.12",
 | 
			
		||||
        "csstype": "^3.1.3"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@vue/server-renderer": {
 | 
			
		||||
      "version": "3.3.11",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.11.tgz",
 | 
			
		||||
      "integrity": "sha512-AIWk0VwwxCAm4wqtJyxBylRTXSy1wCLOKbWxHaHiu14wjsNYtiRCSgVuqEPVuDpErOlRdNnuRgipQfXRLjLN5A==",
 | 
			
		||||
      "version": "3.3.12",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.12.tgz",
 | 
			
		||||
      "integrity": "sha512-OZ0IEK5TU5GXb5J8/wSplyxvGGdIcwEmS8EIO302Vz8K6fGSgSJTU54X0Sb6PaefzZdiN3vHsLXO8XIeF8crQQ==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@vue/compiler-ssr": "3.3.11",
 | 
			
		||||
        "@vue/shared": "3.3.11"
 | 
			
		||||
        "@vue/compiler-ssr": "3.3.12",
 | 
			
		||||
        "@vue/shared": "3.3.12"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "vue": "3.3.11"
 | 
			
		||||
        "vue": "3.3.12"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@vue/shared": {
 | 
			
		||||
      "version": "3.3.11",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.11.tgz",
 | 
			
		||||
      "integrity": "sha512-u2G8ZQ9IhMWTMXaWqZycnK4UthG1fA238CD+DP4Dm4WJi5hdUKKLg0RMRaRpDPNMdkTwIDkp7WtD0Rd9BH9fLw=="
 | 
			
		||||
      "version": "3.3.12",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.12.tgz",
 | 
			
		||||
      "integrity": "sha512-6p0Yin0pclvnER7BLNOQuod9Z+cxSYh8pSh7CzHnWNjAIP6zrTlCdHRvSCb1aYEx6i3Q3kvfuWU7nG16CgG1ag=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@vue/vue-loader-v15": {
 | 
			
		||||
      "name": "vue-loader",
 | 
			
		||||
@@ -6777,9 +6777,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/eslint-config-standard-with-typescript": {
 | 
			
		||||
      "version": "42.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-42.0.0.tgz",
 | 
			
		||||
      "integrity": "sha512-m1/2g/Sicun1uFZOFigJVeOqo9fE7OkMsNtilcpHwdCdcGr21qsGqYiyxYSvvHfJwY7w5OTQH0hxk8sM2N5Ohg==",
 | 
			
		||||
      "version": "43.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-43.0.0.tgz",
 | 
			
		||||
      "integrity": "sha512-AT0qK01M5bmsWiE3UZvaQO5da1y1n6uQckAKqGNe6zPW5IOzgMLXZxw77nnFm+C11nxAZXsCPrbsgJhSrGfX6Q==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@typescript-eslint/parser": "^6.4.0",
 | 
			
		||||
@@ -14412,15 +14412,15 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/vue": {
 | 
			
		||||
      "version": "3.3.11",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.11.tgz",
 | 
			
		||||
      "integrity": "sha512-d4oBctG92CRO1cQfVBZp6WJAs0n8AK4Xf5fNjQCBeKCvMI1efGQ5E3Alt1slFJS9fZuPcFoiAiqFvQlv1X7t/w==",
 | 
			
		||||
      "version": "3.3.12",
 | 
			
		||||
      "resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.12.tgz",
 | 
			
		||||
      "integrity": "sha512-jYNv2QmET2OTHsFzfWHMnqgCfqL4zfo97QwofdET+GBRCHhSCHuMTTvNIgeSn0/xF3JRT5OGah6MDwUFN7MPlg==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@vue/compiler-dom": "3.3.11",
 | 
			
		||||
        "@vue/compiler-sfc": "3.3.11",
 | 
			
		||||
        "@vue/runtime-dom": "3.3.11",
 | 
			
		||||
        "@vue/server-renderer": "3.3.11",
 | 
			
		||||
        "@vue/shared": "3.3.11"
 | 
			
		||||
        "@vue/compiler-dom": "3.3.12",
 | 
			
		||||
        "@vue/compiler-sfc": "3.3.12",
 | 
			
		||||
        "@vue/runtime-dom": "3.3.12",
 | 
			
		||||
        "@vue/server-renderer": "3.3.12",
 | 
			
		||||
        "@vue/shared": "3.3.12"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "typescript": "*"
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,7 @@
 | 
			
		||||
    "mitt": "^3.0.1",
 | 
			
		||||
    "moment": "^2.29.4",
 | 
			
		||||
    "sass-loader": "^13.3.2",
 | 
			
		||||
    "vue": "^3.3.11",
 | 
			
		||||
    "vue": "^3.3.12",
 | 
			
		||||
    "vue-router": "^4.2.5",
 | 
			
		||||
    "vuex": "^4.1.0"
 | 
			
		||||
  },
 | 
			
		||||
@@ -29,7 +29,7 @@
 | 
			
		||||
    "axios": "^1.6.2",
 | 
			
		||||
    "babel": "^6.23.0",
 | 
			
		||||
    "eslint-config-recommended": "^4.1.0",
 | 
			
		||||
    "eslint-config-standard-with-typescript": "^42.0.0",
 | 
			
		||||
    "eslint-config-standard-with-typescript": "^43.0.0",
 | 
			
		||||
    "eslint-plugin-vue": "^9.19.2",
 | 
			
		||||
    "node-sass": "^9.0.0",
 | 
			
		||||
    "sass": "^1.69.5",
 | 
			
		||||
 
 | 
			
		||||
@@ -12,18 +12,18 @@
 | 
			
		||||
        <el-progress
 | 
			
		||||
            type="circle"
 | 
			
		||||
            :percentage="ui.percentage"
 | 
			
		||||
            :status="ui.color"
 | 
			
		||||
            :status="ui.warningLevel"
 | 
			
		||||
        >
 | 
			
		||||
            <template #default>
 | 
			
		||||
                <span class="percentage-label">{{ ui.indicator }}</span>
 | 
			
		||||
                <span class="percentage-value">{{ percentage }}%</span>
 | 
			
		||||
                <span :class="warningLevelClass">{{ percentage }}%</span>
 | 
			
		||||
            </template>
 | 
			
		||||
        </el-progress>
 | 
			
		||||
    </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import { reactive } from "vue";
 | 
			
		||||
import { reactive, computed } from "vue";
 | 
			
		||||
export default {
 | 
			
		||||
    name: "ArchievementCompleteRateComponent",
 | 
			
		||||
    props: {
 | 
			
		||||
@@ -36,7 +36,7 @@ export default {
 | 
			
		||||
            type: String,
 | 
			
		||||
            default: "",
 | 
			
		||||
        },
 | 
			
		||||
        color: {
 | 
			
		||||
        warningLevel: { // 警告等级
 | 
			
		||||
            type: String,
 | 
			
		||||
            default: "success",
 | 
			
		||||
        },
 | 
			
		||||
@@ -45,13 +45,33 @@ export default {
 | 
			
		||||
    {
 | 
			
		||||
        const percentage = Number( props.percentage ).valueOf();
 | 
			
		||||
 | 
			
		||||
        const warningLevelClass = computed((): string =>
 | 
			
		||||
        {
 | 
			
		||||
            let textClass = "";
 | 
			
		||||
 | 
			
		||||
            if ( props.warningLevel === "success" )
 | 
			
		||||
            {
 | 
			
		||||
                textClass = "percentage-value";
 | 
			
		||||
            }
 | 
			
		||||
            else if ( props.warningLevel === "warning" )
 | 
			
		||||
            {
 | 
			
		||||
                textClass = "percentage-value-warning";
 | 
			
		||||
            }
 | 
			
		||||
            else if ( props.warningLevel === "exception" )
 | 
			
		||||
            {
 | 
			
		||||
                textClass = "percentage-value-exception";
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return textClass;
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        const ui = reactive({
 | 
			
		||||
            percentage,
 | 
			
		||||
            indicator: props.indicator,
 | 
			
		||||
            color: props.color,
 | 
			
		||||
            warningLevel: props.warningLevel,
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        return { ui, };
 | 
			
		||||
        return { ui, warningLevelClass, };
 | 
			
		||||
    },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
@@ -79,6 +99,20 @@ export default {
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .percentage-value-warning {
 | 
			
		||||
        display: block;
 | 
			
		||||
        margin-top: 10px;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        color: orange;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .percentage-value-exception {
 | 
			
		||||
        display: block;
 | 
			
		||||
        margin-top: 10px;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        color: red;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .percentage-label {
 | 
			
		||||
        display: block;
 | 
			
		||||
        margin-top: 10px;
 | 
			
		||||
 
 | 
			
		||||
@@ -25,10 +25,12 @@
 | 
			
		||||
                    <ArchievementCompleteRateComponent
 | 
			
		||||
                        indicator="续保完成率"
 | 
			
		||||
                        :percentage="ui.insurance_renewal_rate"
 | 
			
		||||
                        :warning-level="renewalRateWarningLevel(ui.insurance_renewal_rate_target)"
 | 
			
		||||
                    />
 | 
			
		||||
                    <ArchievementCompleteRateComponent
 | 
			
		||||
                        indicator="车非渗透率"
 | 
			
		||||
                        :percentage="ui.attaching_rate"
 | 
			
		||||
                        :warning-level="attachingRateWarningLevel(ui.attaching_rate_target)"
 | 
			
		||||
                    />
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="total-archievement-charts-wrapper">
 | 
			
		||||
@@ -103,7 +105,9 @@ interface ui
 | 
			
		||||
    chartData: number[];
 | 
			
		||||
    totalArchievement: number;
 | 
			
		||||
    attaching_rate: string;
 | 
			
		||||
    attaching_rate_target: string;
 | 
			
		||||
    insurance_renewal_rate: string; // 续保率
 | 
			
		||||
    insurance_renewal_rate_target: string; // 续保率
 | 
			
		||||
    leading_reward_gainers: string[]; // 领跑奖
 | 
			
		||||
    advance_reward_gainers: string[]; // 飞跃奖
 | 
			
		||||
    dishonorPersons: string[];
 | 
			
		||||
@@ -153,7 +157,9 @@ export default {
 | 
			
		||||
            chartData: [0,], // 业绩表
 | 
			
		||||
            totalArchievement: 0, // 总业绩
 | 
			
		||||
            attaching_rate: "", // 车非渗透率
 | 
			
		||||
            attaching_rate_target: "", // 车非渗透率目标值
 | 
			
		||||
            insurance_renewal_rate: "", // 续保率
 | 
			
		||||
            insurance_renewal_rate_target: "", // 续保率目标值
 | 
			
		||||
            leading_reward_gainers: ["",], // 领跑奖
 | 
			
		||||
            advance_reward_gainers: ["",], // 飞跃奖
 | 
			
		||||
            dishonorPersons: ["",],
 | 
			
		||||
@@ -201,7 +207,9 @@ export default {
 | 
			
		||||
            // ui.chartData = data.mensual_archievement_list;
 | 
			
		||||
            // ui.totalArchievement = data.total_archievement;
 | 
			
		||||
            ui.attaching_rate = data.attaching_rate;
 | 
			
		||||
            ui.attaching_rate_target = data.attaching_rate_target;
 | 
			
		||||
            ui.insurance_renewal_rate = data.insurance_renewal_rate;
 | 
			
		||||
            ui.insurance_renewal_rate_target = data.insurance_renewal_rate_target;
 | 
			
		||||
            ui.leading_reward_gainers = data.leading_reward_gainers;
 | 
			
		||||
            ui.advance_reward_gainers = data.advance_reward_gainers;
 | 
			
		||||
            ui.dishonorPersons = data.backward_list;
 | 
			
		||||
@@ -331,6 +339,52 @@ export default {
 | 
			
		||||
            clearInterval( timerHandler );
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        const attachingRateWarningLevel = ( attachingRateTarget: string ): string =>
 | 
			
		||||
        {
 | 
			
		||||
            const value: number = Number( attachingRateTarget );
 | 
			
		||||
            let warningLevel = "";
 | 
			
		||||
 | 
			
		||||
            console.log( "渗透率目标差值", attachingRateTarget, value );
 | 
			
		||||
 | 
			
		||||
            if ( value >= 0.0 )
 | 
			
		||||
            {
 | 
			
		||||
                warningLevel = "success";
 | 
			
		||||
            }
 | 
			
		||||
            else if ( value > -0.5 && value < 0.0 )
 | 
			
		||||
            {
 | 
			
		||||
                warningLevel = "warning";
 | 
			
		||||
            }
 | 
			
		||||
            else if ( value <= -0.5 )
 | 
			
		||||
            {
 | 
			
		||||
                warningLevel = "exception";
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return warningLevel;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        const renewalRateWarningLevel = ( attachingRateTarget: string ): string =>
 | 
			
		||||
        {
 | 
			
		||||
            const value: number = Number( attachingRateTarget );
 | 
			
		||||
            let warningLevel = "";
 | 
			
		||||
 | 
			
		||||
            console.log( "续保率目标差值", attachingRateTarget, value );
 | 
			
		||||
 | 
			
		||||
            if ( value >= 0.0 )
 | 
			
		||||
            {
 | 
			
		||||
                warningLevel = "success";
 | 
			
		||||
            }
 | 
			
		||||
            else if ( value >= -3 && value < 0.0 )
 | 
			
		||||
            {
 | 
			
		||||
                warningLevel = "warning";
 | 
			
		||||
            }
 | 
			
		||||
            else if ( value <= -3 )
 | 
			
		||||
            {
 | 
			
		||||
                warningLevel = "exception";
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return warningLevel;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        return {
 | 
			
		||||
            ui,
 | 
			
		||||
            callerInfo,
 | 
			
		||||
@@ -339,6 +393,8 @@ export default {
 | 
			
		||||
            renderData: applyDepartmentArchievementData,
 | 
			
		||||
            refresh,
 | 
			
		||||
            logoutDesktopArchievement,
 | 
			
		||||
            attachingRateWarningLevel,
 | 
			
		||||
            renewalRateWarningLevel,
 | 
			
		||||
        };
 | 
			
		||||
    },
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user