保存进度!
This commit is contained in:
parent
f391880c9c
commit
2e02b9182d
@ -60,6 +60,7 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_DEV_PKG IS
|
|||||||
) IS
|
) IS
|
||||||
L_FIRSTDAY DATE;
|
L_FIRSTDAY DATE;
|
||||||
L_DEPARTMENT_NAME VARCHAR2(100);
|
L_DEPARTMENT_NAME VARCHAR2(100);
|
||||||
|
L_RENEWAL_RATE_TARGET NUMBER;
|
||||||
BEGIN
|
BEGIN
|
||||||
L_FIRSTDAY := TO_DATE(TO_CHAR(SYSDATE,
|
L_FIRSTDAY := TO_DATE(TO_CHAR(SYSDATE,
|
||||||
'yyyy') || '-01-01 00:00:00',
|
'yyyy') || '-01-01 00:00:00',
|
||||||
@ -87,24 +88,47 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_DEV_PKG IS
|
|||||||
A_ATTACHING_RATE_TARGET
|
A_ATTACHING_RATE_TARGET
|
||||||
FROM DESKTOP_ARCHIEVEMENT_ADMIN.BI机构渗透率跟踪表 DEPT
|
FROM DESKTOP_ARCHIEVEMENT_ADMIN.BI机构渗透率跟踪表 DEPT
|
||||||
WHERE DEPT.部门 = L_DEPARTMENT_NAME;
|
WHERE DEPT.部门 = L_DEPARTMENT_NAME;
|
||||||
|
|
||||||
|
--解决round导致小数缺0的问题
|
||||||
|
SELECT DECODE(SUBSTR(A_ATTACHING_RATE_TARGET,
|
||||||
|
1,
|
||||||
|
1),
|
||||||
|
'.',
|
||||||
|
'0' || A_ATTACHING_RATE_TARGET,
|
||||||
|
A_ATTACHING_RATE_TARGET)
|
||||||
|
INTO A_ATTACHING_RATE_TARGET
|
||||||
|
FROM DUAL;
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
WHEN NO_DATA_FOUND THEN
|
WHEN NO_DATA_FOUND THEN
|
||||||
A_ATTACHING_RATE := '0.0';
|
A_ATTACHING_RATE := '0.0';
|
||||||
|
A_ATTACHING_RATE_TARGET := '0.0';
|
||||||
END;
|
END;
|
||||||
|
|
||||||
--续保率
|
--续保率&目标差距
|
||||||
BEGIN
|
BEGIN
|
||||||
SELECT ROUND(t."个车续保率(全月)(%)",
|
SELECT ROUND(t."个车续保率(序时)(%)",
|
||||||
|
2),
|
||||||
|
ROUND(t."个车续保率(序时)(%)" - t."机构目标值1(%)",
|
||||||
2)
|
2)
|
||||||
INTO A_RENEWAL_RATE
|
INTO A_RENEWAL_RATE,
|
||||||
|
A_RENEWAL_RATE_TARGET
|
||||||
FROM BI机构当月个车续保率跟踪表 T
|
FROM BI机构当月个车续保率跟踪表 T
|
||||||
WHERE T.责任部门 = L_DEPARTMENT_NAME;
|
WHERE T.责任部门 = L_DEPARTMENT_NAME;
|
||||||
|
|
||||||
|
--解决round导致小数缺0的问题
|
||||||
|
SELECT DECODE(SUBSTR(A_RENEWAL_RATE_TARGET,
|
||||||
|
1,
|
||||||
|
1),
|
||||||
|
'.',
|
||||||
|
'0' || A_RENEWAL_RATE_TARGET,
|
||||||
|
A_RENEWAL_RATE_TARGET)
|
||||||
|
INTO A_RENEWAL_RATE_TARGET
|
||||||
|
FROM DUAL;
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
WHEN NO_DATA_FOUND THEN
|
WHEN NO_DATA_FOUND THEN
|
||||||
A_RENEWAL_RATE := '0.0';
|
A_RENEWAL_RATE := '0.0';
|
||||||
END;
|
|
||||||
-- 续保率模板差值
|
|
||||||
A_RENEWAL_RATE_TARGET := '0.0';
|
A_RENEWAL_RATE_TARGET := '0.0';
|
||||||
|
END;
|
||||||
|
|
||||||
--总业绩
|
--总业绩
|
||||||
A_TOTAL := 0;
|
A_TOTAL := 0;
|
||||||
|
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",
|
"mitt": "^3.0.1",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
"sass-loader": "^13.3.2",
|
"sass-loader": "^13.3.2",
|
||||||
"vue": "^3.3.11",
|
"vue": "^3.3.12",
|
||||||
"vue-router": "^4.2.5",
|
"vue-router": "^4.2.5",
|
||||||
"vuex": "^4.1.0"
|
"vuex": "^4.1.0"
|
||||||
},
|
},
|
||||||
@ -28,7 +28,7 @@
|
|||||||
"axios": "^1.6.2",
|
"axios": "^1.6.2",
|
||||||
"babel": "^6.23.0",
|
"babel": "^6.23.0",
|
||||||
"eslint-config-recommended": "^4.1.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",
|
"eslint-plugin-vue": "^9.19.2",
|
||||||
"node-sass": "^9.0.0",
|
"node-sass": "^9.0.0",
|
||||||
"sass": "^1.69.5",
|
"sass": "^1.69.5",
|
||||||
@ -2318,36 +2318,36 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@vue/compiler-core": {
|
"node_modules/@vue/compiler-core": {
|
||||||
"version": "3.3.11",
|
"version": "3.3.12",
|
||||||
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.11.tgz",
|
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.12.tgz",
|
||||||
"integrity": "sha512-h97/TGWBilnLuRaj58sxNrsUU66fwdRKLOLQ9N/5iNDfp+DZhYH9Obhe0bXxhedl8fjAgpRANpiZfbgWyruQ0w==",
|
"integrity": "sha512-qAtjyG3GBLG0chzp5xGCyRLLe6wFCHmjI82aGzwuGKyznNP+GJJMxjc0wOYWDB2YKfho7niJFdoFpo0CZZQg9w==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/parser": "^7.23.5",
|
"@babel/parser": "^7.23.5",
|
||||||
"@vue/shared": "3.3.11",
|
"@vue/shared": "3.3.12",
|
||||||
"estree-walker": "^2.0.2",
|
"estree-walker": "^2.0.2",
|
||||||
"source-map-js": "^1.0.2"
|
"source-map-js": "^1.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/compiler-dom": {
|
"node_modules/@vue/compiler-dom": {
|
||||||
"version": "3.3.11",
|
"version": "3.3.12",
|
||||||
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.11.tgz",
|
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.12.tgz",
|
||||||
"integrity": "sha512-zoAiUIqSKqAJ81WhfPXYmFGwDRuO+loqLxvXmfUdR5fOitPoUiIeFI9cTTyv9MU5O1+ZZglJVTusWzy+wfk5hw==",
|
"integrity": "sha512-RdJU9oEYaoPKUdGXCy0l+i4clesdDeLmbvRlszoc9iagsnBnMmQtYfCPVQ5BHB6o7K4SCucDdJM2Dh3oXB0D6g==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/compiler-core": "3.3.11",
|
"@vue/compiler-core": "3.3.12",
|
||||||
"@vue/shared": "3.3.11"
|
"@vue/shared": "3.3.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/compiler-sfc": {
|
"node_modules/@vue/compiler-sfc": {
|
||||||
"version": "3.3.11",
|
"version": "3.3.12",
|
||||||
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.11.tgz",
|
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.12.tgz",
|
||||||
"integrity": "sha512-U4iqPlHO0KQeK1mrsxCN0vZzw43/lL8POxgpzcJweopmqtoYy9nljJzWDIQS3EfjiYhfdtdk9Gtgz7MRXnz3GA==",
|
"integrity": "sha512-yy5b9e7b79dsGbMmglCe/YnhCQgBkHO7Uf6JfjWPSf2/5XH+MKn18LhzhHyxbHdJgnA4lZCqtXzLaJz8Pd8lMw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/parser": "^7.23.5",
|
"@babel/parser": "^7.23.5",
|
||||||
"@vue/compiler-core": "3.3.11",
|
"@vue/compiler-core": "3.3.12",
|
||||||
"@vue/compiler-dom": "3.3.11",
|
"@vue/compiler-dom": "3.3.12",
|
||||||
"@vue/compiler-ssr": "3.3.11",
|
"@vue/compiler-ssr": "3.3.12",
|
||||||
"@vue/reactivity-transform": "3.3.11",
|
"@vue/reactivity-transform": "3.3.12",
|
||||||
"@vue/shared": "3.3.11",
|
"@vue/shared": "3.3.12",
|
||||||
"estree-walker": "^2.0.2",
|
"estree-walker": "^2.0.2",
|
||||||
"magic-string": "^0.30.5",
|
"magic-string": "^0.30.5",
|
||||||
"postcss": "^8.4.32",
|
"postcss": "^8.4.32",
|
||||||
@ -2355,12 +2355,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/compiler-ssr": {
|
"node_modules/@vue/compiler-ssr": {
|
||||||
"version": "3.3.11",
|
"version": "3.3.12",
|
||||||
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.11.tgz",
|
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.12.tgz",
|
||||||
"integrity": "sha512-Zd66ZwMvndxRTgVPdo+muV4Rv9n9DwQ4SSgWWKWkPFebHQfVYRrVjeygmmDmPewsHyznCNvJ2P2d6iOOhdv8Qg==",
|
"integrity": "sha512-adCiMJPznfWcQyk/9HSuXGja859IaMV+b8UNSVzDatqv7h0PvT9BEeS22+gjkWofDiSg5d78/ZLls3sLA+cn3A==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/compiler-dom": "3.3.11",
|
"@vue/compiler-dom": "3.3.12",
|
||||||
"@vue/shared": "3.3.11"
|
"@vue/shared": "3.3.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/component-compiler-utils": {
|
"node_modules/@vue/component-compiler-utils": {
|
||||||
@ -2459,60 +2459,60 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/reactivity": {
|
"node_modules/@vue/reactivity": {
|
||||||
"version": "3.3.11",
|
"version": "3.3.12",
|
||||||
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.11.tgz",
|
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.12.tgz",
|
||||||
"integrity": "sha512-D5tcw091f0nuu+hXq5XANofD0OXnBmaRqMYl5B3fCR+mX+cXJIGNw/VNawBqkjLNWETrFW0i+xH9NvDbTPVh7g==",
|
"integrity": "sha512-vOJORzO8DlIx88cgTnMLIf2GlLYpoXAKsuoQsK6SGdaqODjxO129pVPTd2s/N/Mb6KKZEFIHIEwWGmtN4YPs+g==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/shared": "3.3.11"
|
"@vue/shared": "3.3.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/reactivity-transform": {
|
"node_modules/@vue/reactivity-transform": {
|
||||||
"version": "3.3.11",
|
"version": "3.3.12",
|
||||||
"resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.11.tgz",
|
"resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.12.tgz",
|
||||||
"integrity": "sha512-fPGjH0wqJo68A0wQ1k158utDq/cRyZNlFoxGwNScE28aUFOKFEnCBsvyD8jHn+0kd0UKVpuGuaZEQ6r9FJRqCg==",
|
"integrity": "sha512-g5TijmML7FyKkLt6QnpqNmA4KD7K/T5SbXa88Bhq+hydNQEkzA8veVXWAQuNqg9rjaFYD0rPf0a9NofKA0ENgg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/parser": "^7.23.5",
|
"@babel/parser": "^7.23.5",
|
||||||
"@vue/compiler-core": "3.3.11",
|
"@vue/compiler-core": "3.3.12",
|
||||||
"@vue/shared": "3.3.11",
|
"@vue/shared": "3.3.12",
|
||||||
"estree-walker": "^2.0.2",
|
"estree-walker": "^2.0.2",
|
||||||
"magic-string": "^0.30.5"
|
"magic-string": "^0.30.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/runtime-core": {
|
"node_modules/@vue/runtime-core": {
|
||||||
"version": "3.3.11",
|
"version": "3.3.12",
|
||||||
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.11.tgz",
|
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.12.tgz",
|
||||||
"integrity": "sha512-g9ztHGwEbS5RyWaOpXuyIVFTschclnwhqEbdy5AwGhYOgc7m/q3NFwr50MirZwTTzX55JY8pSkeib9BX04NIpw==",
|
"integrity": "sha512-5iL4w7MZrSGKEZU2wFAYhDZdZmgn+s//73EfgDXW1M+ZUOl36md7tlWp1QFK/ladiq4FvQ82shVjo0KiPDPr0A==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/reactivity": "3.3.11",
|
"@vue/reactivity": "3.3.12",
|
||||||
"@vue/shared": "3.3.11"
|
"@vue/shared": "3.3.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/runtime-dom": {
|
"node_modules/@vue/runtime-dom": {
|
||||||
"version": "3.3.11",
|
"version": "3.3.12",
|
||||||
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.11.tgz",
|
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.12.tgz",
|
||||||
"integrity": "sha512-OlhtV1PVpbgk+I2zl+Y5rQtDNcCDs12rsRg71XwaA2/Rbllw6mBLMi57VOn8G0AjOJ4Mdb4k56V37+g8ukShpQ==",
|
"integrity": "sha512-8mMzqiIdl+IYa/OXwKwk6/4ebLq7cYV1pUcwCSwBK2KerUa6cwGosen5xrCL9f8o2DJ9TfPFwbPEvH7OXzUpoA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/runtime-core": "3.3.11",
|
"@vue/runtime-core": "3.3.12",
|
||||||
"@vue/shared": "3.3.11",
|
"@vue/shared": "3.3.12",
|
||||||
"csstype": "^3.1.2"
|
"csstype": "^3.1.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/server-renderer": {
|
"node_modules/@vue/server-renderer": {
|
||||||
"version": "3.3.11",
|
"version": "3.3.12",
|
||||||
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.11.tgz",
|
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.12.tgz",
|
||||||
"integrity": "sha512-AIWk0VwwxCAm4wqtJyxBylRTXSy1wCLOKbWxHaHiu14wjsNYtiRCSgVuqEPVuDpErOlRdNnuRgipQfXRLjLN5A==",
|
"integrity": "sha512-OZ0IEK5TU5GXb5J8/wSplyxvGGdIcwEmS8EIO302Vz8K6fGSgSJTU54X0Sb6PaefzZdiN3vHsLXO8XIeF8crQQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/compiler-ssr": "3.3.11",
|
"@vue/compiler-ssr": "3.3.12",
|
||||||
"@vue/shared": "3.3.11"
|
"@vue/shared": "3.3.12"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"vue": "3.3.11"
|
"vue": "3.3.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vue/shared": {
|
"node_modules/@vue/shared": {
|
||||||
"version": "3.3.11",
|
"version": "3.3.12",
|
||||||
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.11.tgz",
|
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.12.tgz",
|
||||||
"integrity": "sha512-u2G8ZQ9IhMWTMXaWqZycnK4UthG1fA238CD+DP4Dm4WJi5hdUKKLg0RMRaRpDPNMdkTwIDkp7WtD0Rd9BH9fLw=="
|
"integrity": "sha512-6p0Yin0pclvnER7BLNOQuod9Z+cxSYh8pSh7CzHnWNjAIP6zrTlCdHRvSCb1aYEx6i3Q3kvfuWU7nG16CgG1ag=="
|
||||||
},
|
},
|
||||||
"node_modules/@vue/vue-loader-v15": {
|
"node_modules/@vue/vue-loader-v15": {
|
||||||
"name": "vue-loader",
|
"name": "vue-loader",
|
||||||
@ -6777,9 +6777,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint-config-standard-with-typescript": {
|
"node_modules/eslint-config-standard-with-typescript": {
|
||||||
"version": "42.0.0",
|
"version": "43.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-42.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-43.0.0.tgz",
|
||||||
"integrity": "sha512-m1/2g/Sicun1uFZOFigJVeOqo9fE7OkMsNtilcpHwdCdcGr21qsGqYiyxYSvvHfJwY7w5OTQH0hxk8sM2N5Ohg==",
|
"integrity": "sha512-AT0qK01M5bmsWiE3UZvaQO5da1y1n6uQckAKqGNe6zPW5IOzgMLXZxw77nnFm+C11nxAZXsCPrbsgJhSrGfX6Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/parser": "^6.4.0",
|
"@typescript-eslint/parser": "^6.4.0",
|
||||||
@ -14412,15 +14412,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vue": {
|
"node_modules/vue": {
|
||||||
"version": "3.3.11",
|
"version": "3.3.12",
|
||||||
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.11.tgz",
|
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.12.tgz",
|
||||||
"integrity": "sha512-d4oBctG92CRO1cQfVBZp6WJAs0n8AK4Xf5fNjQCBeKCvMI1efGQ5E3Alt1slFJS9fZuPcFoiAiqFvQlv1X7t/w==",
|
"integrity": "sha512-jYNv2QmET2OTHsFzfWHMnqgCfqL4zfo97QwofdET+GBRCHhSCHuMTTvNIgeSn0/xF3JRT5OGah6MDwUFN7MPlg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/compiler-dom": "3.3.11",
|
"@vue/compiler-dom": "3.3.12",
|
||||||
"@vue/compiler-sfc": "3.3.11",
|
"@vue/compiler-sfc": "3.3.12",
|
||||||
"@vue/runtime-dom": "3.3.11",
|
"@vue/runtime-dom": "3.3.12",
|
||||||
"@vue/server-renderer": "3.3.11",
|
"@vue/server-renderer": "3.3.12",
|
||||||
"@vue/shared": "3.3.11"
|
"@vue/shared": "3.3.12"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"typescript": "*"
|
"typescript": "*"
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
"mitt": "^3.0.1",
|
"mitt": "^3.0.1",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
"sass-loader": "^13.3.2",
|
"sass-loader": "^13.3.2",
|
||||||
"vue": "^3.3.11",
|
"vue": "^3.3.12",
|
||||||
"vue-router": "^4.2.5",
|
"vue-router": "^4.2.5",
|
||||||
"vuex": "^4.1.0"
|
"vuex": "^4.1.0"
|
||||||
},
|
},
|
||||||
@ -29,7 +29,7 @@
|
|||||||
"axios": "^1.6.2",
|
"axios": "^1.6.2",
|
||||||
"babel": "^6.23.0",
|
"babel": "^6.23.0",
|
||||||
"eslint-config-recommended": "^4.1.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",
|
"eslint-plugin-vue": "^9.19.2",
|
||||||
"node-sass": "^9.0.0",
|
"node-sass": "^9.0.0",
|
||||||
"sass": "^1.69.5",
|
"sass": "^1.69.5",
|
||||||
|
@ -12,18 +12,18 @@
|
|||||||
<el-progress
|
<el-progress
|
||||||
type="circle"
|
type="circle"
|
||||||
:percentage="ui.percentage"
|
:percentage="ui.percentage"
|
||||||
:status="ui.color"
|
:status="ui.warningLevel"
|
||||||
>
|
>
|
||||||
<template #default>
|
<template #default>
|
||||||
<span class="percentage-label">{{ ui.indicator }}</span>
|
<span class="percentage-label">{{ ui.indicator }}</span>
|
||||||
<span class="percentage-value">{{ percentage }}%</span>
|
<span :class="warningLevelClass">{{ percentage }}%</span>
|
||||||
</template>
|
</template>
|
||||||
</el-progress>
|
</el-progress>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { reactive } from "vue";
|
import { reactive, computed } from "vue";
|
||||||
export default {
|
export default {
|
||||||
name: "ArchievementCompleteRateComponent",
|
name: "ArchievementCompleteRateComponent",
|
||||||
props: {
|
props: {
|
||||||
@ -36,7 +36,7 @@ export default {
|
|||||||
type: String,
|
type: String,
|
||||||
default: "",
|
default: "",
|
||||||
},
|
},
|
||||||
color: {
|
warningLevel: { // 警告等级
|
||||||
type: String,
|
type: String,
|
||||||
default: "success",
|
default: "success",
|
||||||
},
|
},
|
||||||
@ -45,13 +45,33 @@ export default {
|
|||||||
{
|
{
|
||||||
const percentage = Number( props.percentage ).valueOf();
|
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({
|
const ui = reactive({
|
||||||
percentage,
|
percentage,
|
||||||
indicator: props.indicator,
|
indicator: props.indicator,
|
||||||
color: props.color,
|
warningLevel: props.warningLevel,
|
||||||
});
|
});
|
||||||
|
|
||||||
return { ui, };
|
return { ui, warningLevelClass, };
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@ -79,6 +99,20 @@ export default {
|
|||||||
font-size: 28px;
|
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 {
|
.percentage-label {
|
||||||
display: block;
|
display: block;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
|
@ -25,10 +25,12 @@
|
|||||||
<ArchievementCompleteRateComponent
|
<ArchievementCompleteRateComponent
|
||||||
indicator="续保完成率"
|
indicator="续保完成率"
|
||||||
:percentage="ui.insurance_renewal_rate"
|
:percentage="ui.insurance_renewal_rate"
|
||||||
|
:warning-level="renewalRateWarningLevel(ui.insurance_renewal_rate_target)"
|
||||||
/>
|
/>
|
||||||
<ArchievementCompleteRateComponent
|
<ArchievementCompleteRateComponent
|
||||||
indicator="车非渗透率"
|
indicator="车非渗透率"
|
||||||
:percentage="ui.attaching_rate"
|
:percentage="ui.attaching_rate"
|
||||||
|
:warning-level="attachingRateWarningLevel(ui.attaching_rate_target)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="total-archievement-charts-wrapper">
|
<div class="total-archievement-charts-wrapper">
|
||||||
@ -103,7 +105,9 @@ interface ui
|
|||||||
chartData: number[];
|
chartData: number[];
|
||||||
totalArchievement: number;
|
totalArchievement: number;
|
||||||
attaching_rate: string;
|
attaching_rate: string;
|
||||||
|
attaching_rate_target: string;
|
||||||
insurance_renewal_rate: string; // 续保率
|
insurance_renewal_rate: string; // 续保率
|
||||||
|
insurance_renewal_rate_target: string; // 续保率
|
||||||
leading_reward_gainers: string[]; // 领跑奖
|
leading_reward_gainers: string[]; // 领跑奖
|
||||||
advance_reward_gainers: string[]; // 飞跃奖
|
advance_reward_gainers: string[]; // 飞跃奖
|
||||||
dishonorPersons: string[];
|
dishonorPersons: string[];
|
||||||
@ -153,7 +157,9 @@ export default {
|
|||||||
chartData: [0,], // 业绩表
|
chartData: [0,], // 业绩表
|
||||||
totalArchievement: 0, // 总业绩
|
totalArchievement: 0, // 总业绩
|
||||||
attaching_rate: "", // 车非渗透率
|
attaching_rate: "", // 车非渗透率
|
||||||
|
attaching_rate_target: "", // 车非渗透率目标值
|
||||||
insurance_renewal_rate: "", // 续保率
|
insurance_renewal_rate: "", // 续保率
|
||||||
|
insurance_renewal_rate_target: "", // 续保率目标值
|
||||||
leading_reward_gainers: ["",], // 领跑奖
|
leading_reward_gainers: ["",], // 领跑奖
|
||||||
advance_reward_gainers: ["",], // 飞跃奖
|
advance_reward_gainers: ["",], // 飞跃奖
|
||||||
dishonorPersons: ["",],
|
dishonorPersons: ["",],
|
||||||
@ -201,7 +207,9 @@ export default {
|
|||||||
// ui.chartData = data.mensual_archievement_list;
|
// ui.chartData = data.mensual_archievement_list;
|
||||||
// ui.totalArchievement = data.total_archievement;
|
// ui.totalArchievement = data.total_archievement;
|
||||||
ui.attaching_rate = data.attaching_rate;
|
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 = data.insurance_renewal_rate;
|
||||||
|
ui.insurance_renewal_rate_target = data.insurance_renewal_rate_target;
|
||||||
ui.leading_reward_gainers = data.leading_reward_gainers;
|
ui.leading_reward_gainers = data.leading_reward_gainers;
|
||||||
ui.advance_reward_gainers = data.advance_reward_gainers;
|
ui.advance_reward_gainers = data.advance_reward_gainers;
|
||||||
ui.dishonorPersons = data.backward_list;
|
ui.dishonorPersons = data.backward_list;
|
||||||
@ -331,6 +339,52 @@ export default {
|
|||||||
clearInterval( timerHandler );
|
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 {
|
return {
|
||||||
ui,
|
ui,
|
||||||
callerInfo,
|
callerInfo,
|
||||||
@ -339,6 +393,8 @@ export default {
|
|||||||
renderData: applyDepartmentArchievementData,
|
renderData: applyDepartmentArchievementData,
|
||||||
refresh,
|
refresh,
|
||||||
logoutDesktopArchievement,
|
logoutDesktopArchievement,
|
||||||
|
attachingRateWarningLevel,
|
||||||
|
renewalRateWarningLevel,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user