15 Commits

Author SHA1 Message Date
893b697d5a 数据 2023-03-14 09:47:53 +08:00
eb133c0365 111 2023-03-12 23:33:27 +08:00
49a207a9d5 Merge branch 'feature-archievement' of http://222.76.244.118:3000/CPICXIM/desktop_task_schedule into feature-archievement 2023-03-10 23:47:49 +08:00
eb22d61fcc 保存进度! 2023-03-10 23:46:56 +08:00
56398fe9d6 保存进度! 2023-03-10 17:35:17 +08:00
96079ea519 保存进度! 2023-03-10 17:34:12 +08:00
b5010930f2 保存进度! 2023-03-10 17:32:13 +08:00
405e3984b6 。。。 2023-03-09 15:15:25 +08:00
bab8d6bf6f 完成业绩部分的布局。 2023-03-08 20:14:41 +08:00
e4260780bc 保存进度! 2023-03-08 16:35:40 +08:00
92553a9ba9 保存进度! 2023-03-08 13:24:12 +08:00
18d4620729 将组件数据参数化 2023-03-08 10:29:35 +08:00
3313414c70 保存进度! 2023-03-08 00:56:38 +08:00
330f5fa1e4 保存进度! 2023-03-07 23:04:03 +08:00
ef9472b334 保存进度! 2023-03-07 22:55:30 +08:00
17 changed files with 1146 additions and 57 deletions

4
.gitignore vendored
View File

@@ -724,3 +724,7 @@ local.properties
target
target/*
# oracle
*.~pck
*.~sql

View File

@@ -19,4 +19,12 @@
# 坐席主机配置
需要安装插件,插件目录 AppData\Local\Programs\Lively Wallpaper\Plugins。
需要安装插件,插件目录 AppData\Local\Programs\Lively Wallpaper\Plugins。
datacenter.dc_yzh_cfqd2023表
车非渗透率 车非融合保费 / 车险个人客户保费, 为月初至当日的总量。

View File

@@ -0,0 +1,357 @@
CREATE OR REPLACE PACKAGE telsale_archievement_pkg IS
-- Author : WANGWEI-202
-- Created : 2023/3/10 15:13:34
-- Purpose : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɰ<EFBFBD>
PROCEDURE <20><><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(
a_start_date IN DATE,
a_end_date IN DATE
);
PROCEDURE gen_<6E><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
(
a_start_date IN DATE,
a_end_date IN DATE
);
END telsale_archievement_pkg;
/
CREATE OR REPLACE PACKAGE BODY telsale_archievement_pkg IS
PROCEDURE <20><><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(
a_start_date IN DATE,
a_end_date IN DATE
) IS
--l_count INTEGER; --<2D><><EFBFBD>м<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BEGIN
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
gen_<6E><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>(a_start_date,
a_end_date);
FOR caller_record IN (SELECT *
FROM <20><><EFBFBD><EFBFBD>ÿ<EFBFBD>ձ<EFBFBD><D5B1><EFBFBD>_t)
LOOP
BEGIN
DELETE <20><><EFBFBD><EFBFBD>ÿ<EFBFBD>ձ<EFBFBD><D5B1><EFBFBD> cf
WHERE cf.ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = caller_record.ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AND cf.<2E><><EFBFBD><EFBFBD> = caller_record.<2E><><EFBFBD><EFBFBD>
AND cf.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>n = caller_record.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>n
AND cf.<2E><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD> = caller_record.<2E><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>;
EXCEPTION
WHEN no_data_found THEN
NULL;
END;
INSERT INTO <20><><EFBFBD><EFBFBD>ÿ<EFBFBD>ձ<EFBFBD><D5B1><EFBFBD>
VALUES caller_record;
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
PROCEDURE gen_<6E><5F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
(
a_start_date IN DATE,
a_end_date IN DATE
) IS
BEGIN
EXECUTE IMMEDIATE 'truncate table <20><><EFBFBD><EFBFBD>ÿ<EFBFBD>ձ<EFBFBD><D5B1><EFBFBD>_t';
INSERT INTO <20><><EFBFBD><EFBFBD>ÿ<EFBFBD>ձ<EFBFBD><D5B1><EFBFBD>_t
WITH aa AS
(SELECT to_char(t.signature_date,
'yyyy-mm-dd') ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
(to_char(T.signature_date,
'mm')) || '<27><>' mm,
t.policy_no bdh,
t.endorsement_no pdh,
qt.t_cre tid,
QT.B_CRE BTID, -----<2D><><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>
e.inception_date qbsj,
e.planned_end_date zzsj,
pt.premium_amount - nvl(pt.tax_amount,
0) bf,
nt.ecompensation_rate * (pt.premium_amount - nvl(pt.tax_amount,
0)) fxbf,
z.department_name bm,
CASE
WHEN (et.telpartnercode LIKE '%HC%' OR
zx.workerno IN (SELECT code
FROM datacenter.dc_lsj_zx_hc)) THEN
'<27><><EFBFBD>׷ῥ'
ELSE
''
END <20>Ƿ<EFBFBD><C7B7>ῥ,
nvl(zx.workerno,
et.telpartnercode) <20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>,
(CASE
WHEN nvl(zx.workerno,
et.telpartnercode) = 'DX001' AND
xx.staff_name LIKE '%<25><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%' THEN
'<27><>ΰ<EFBFBD><CEB0>'
WHEN nvl(zx.workerno,
et.telpartnercode) = 'DX001' AND
xx.staff_name NOT LIKE '%<25><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%' THEN
'<27><><EFBFBD><EFBFBD>'
ELSE
to_char(ys.<2E><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>)
END) <20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>,
YS.<2E>Ŷ<EFBFBD> <20><>ϯ<EFBFBD>Ŷ<EFBFBD>,
nvl(YS.<2E>Ŷ<EFBFBD>,
y.section_office_name) <20><><EFBFBD><EFBFBD>N,
nvl((CASE
WHEN nvl(zx.workerno,
et.telpartnercode) = 'DX001' AND
xx.staff_name LIKE '%<25><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%' THEN
'<27><>ΰ<EFBFBD><CEB0>'
WHEN nvl(zx.workerno,
et.telpartnercode) = 'DX001' AND
xx.staff_name NOT LIKE '%<25><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%' THEN
'<27><><EFBFBD><EFBFBD>'
ELSE
to_char(ys.<2E><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>)
END),
xx.staff_name) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N
FROM idst0.auto_agreement_request_t t
LEFT JOIN idst0.auto_agreement_t e
ON e.policy_no = t.policy_no
LEFT JOIN idst0.motorised_vehicle_t v
ON v.policy_no = e.policy_no
LEFT JOIN idst0.auto_premium_t pt
ON pt.policy_no = t.policy_no
AND pt.endorsement_no = t.endorsement_no
LEFT JOIN ywglxt.w_dxbd_i i
ON e.policy_no = i.bdh
LEFT JOIN idst0.rydm_t xx
ON xx.staff_code = nvl(i.zhjywy,
e.operator_code)
LEFT JOIN idst0.ks_t y
ON y.section_office_code = nvl(xx.section_office_code,
e.section_office_code)
LEFT JOIN idst0.bm_t z
ON z.department_code = nvl(xx.department_code,
e.department_code)
--left join datacenter.dc_cx_csteam ct on ct.jbrcode = xx.staff_code
LEFT JOIN idst0.auto_new_product_info_t nt
ON nt.policy_no = t.policy_no
AND nt.endorsement_no = t.endorsement_no
--left join ywglxt.q_auto_agreement_extend_t qe on qe.policy_no = e.policy_no
LEFT JOIN ywglxt.q_auto_agreement_t qt
ON qt.policy_no = e.policy_no
LEFT JOIN datacenter.dc_yangg_qdcode qd
ON qd.code = e.selling_channel_type
LEFT JOIN datacenter.dc_tb_jc_c_tag cl
ON cl.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = e.policy_no
LEFT JOIN datacenter.dc_yangg_basecode_teams fg
ON fg.bm = z.department_name
AND fg.ks = y.section_office_name
--left join idst0.t_sell_policy_autobase_t zx on zx.policy_no=e.policy_no
--left join idst0.auto_agreement_extend_t et on et.policy_no = e.policy_no
LEFT JOIN idst0.auto_agreement_extend_t et
ON et.policy_no = e.policy_no
LEFT JOIN idst0.t_sell_policy_autobase_t zx
ON zx.policy_no = e.policy_no
LEFT JOIN datacenter.dc_YZH_ZXYS YS
ON YS.<2E><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD> = nvl(zx.workerno,
et.telpartnercode)
WHERE t.signature_date >= to_date('2023-01-01 00:00:00',
'yyyy-mm-dd hh24:mi:ss')
AND t.signature_date < to_date(to_char(SYSDATE - 1,
'yyyy-mm-dd') || ' 23:59:59',
'yyyy-mm-dd hh24:mi:ss')
--and t.endorsement_no = '<27><>'
AND e.policy_status = '1' --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
AND qt.tflag = '0' --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
AND qt.usage_xm = '<27><>ͥ<EFBFBD><CDA5><EFBFBD>ó<EFBFBD>'
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B3B5>Ħ<EFBFBD>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AND e.planned_end_date - e.inception_date >= 360
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
)
-----<2D><><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>
,
dd2 AS
(SELECT ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
mm,
bm,
<20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>,
<20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>,
<20><>ϯ<EFBFBD>Ŷ<EFBFBD>,
<20><><EFBFBD><EFBFBD>N,
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N,
CASE
WHEN pdh = '<27><>' THEN
tid
END tid,
to_number('1') <20>ͻ<EFBFBD><CDBB><EFBFBD>,
COUNT(DISTINCT CASE
WHEN pdh = '<27><>' THEN
bdh
END) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
SUM(bf) <20><><EFBFBD><EFBFBD>
FROM (SELECT DISTINCT *
FROM aa) aa
GROUP BY bm,
CASE
WHEN pdh = '<27><>' THEN
tid
END,
mm,
BTID,
<20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>,
<20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>,
<20><>ϯ<EFBFBD>Ŷ<EFBFBD>,
ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<20><><EFBFBD><EFBFBD>N,
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N
UNION
SELECT ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
mm,
bm,
<20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>,
<20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>,
<20><>ϯ<EFBFBD>Ŷ<EFBFBD>,
<20><><EFBFBD><EFBFBD>N,
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N,
CASE
WHEN btid = tid THEN
''
ELSE
btid
END btid,
to_number('0') <20>ͻ<EFBFBD><CDBB><EFBFBD>,
to_number('0') <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
to_number('0') <20><><EFBFBD><EFBFBD>
FROM (SELECT DISTINCT *
FROM aa) aa),
DD AS
(SELECT *
FROM DD2
WHERE TID IS NOT NULL)
--select * from dd
,
bb AS
(SELECT DISTINCT q.policy_no bdh,
q.endorsement_no pdh,
qna.t_cre tid,
to_number(to_char(q.signature_date,
'yyyy')) || '<27><>' nf,
(to_char(q.signature_date,
'mm')) || '<27><>' mm_f,
to_char(q.signature_date,
'dd') || '<27><>' dd,
q.signature_date sj,
round((pt.premium_amount - nvl(pt.taxamount,
0)) * c.rate / 100,
2) bf,
z.department_name bm
FROM idst0.nonauto_agreement_request_t q
LEFT JOIN idst0.nonauto_agreement_t e
ON e.policy_no = q.policy_no
LEFT JOIN idst0.nonauto_premium_t pt
ON pt.endorsement_no = q.endorsement_no
AND pt.policy_no = q.policy_no
LEFT JOIN idst0.reinsurance_t r
ON r.reinsurance_policy_no = e.policy_no
LEFT JOIN idst0.exrate_month_t c
ON pt.currency_code = c.bzh
AND to_char(q.signature_date,
'YYYY') = c.theyear
AND to_char(q.signature_date,
'fmmm') = c.themonth
LEFT JOIN idst0.rydm_t x
ON x.staff_code = e.operator_code
LEFT JOIN idst0.ks_t y
ON y.section_office_code = x.section_office_code
LEFT JOIN idst0.bm_t z
ON z.department_code = x.department_code
LEFT JOIN ywglxt.q_nonauto_agreement_t qna
ON qna.policy_no = q.policy_no
LEFT JOIN datacenter.dc_yangg_gkxzh gk
ON gk.product_code = e.product_code --<2D><>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LEFT JOIN dd
ON dd.tid = qna.t_cre
WHERE qna.tflag = '0'
AND (CASE
WHEN q.endorsement_no != '<27><>' AND
round((pt.premium_amount - nvl(pt.taxamount,
0)) * c.rate / 100,
2) != 0 THEN
'<27><>'
END) IS NULL
AND e.policy_status = '1'
AND gk.product_code IS NOT NULL
AND (e.product_code LIKE '2%' OR e.product_code LIKE '1106%' --<2D>⽡ --<2D><><EFBFBD><EFBFBD>
OR e.product_code LIKE '1107%' OR e.product_code LIKE '1108%' OR e.product_code LIKE '1307%' OR e.product_code LIKE '1304A400%' --<2D>Ҳ<EFBFBD>
)
AND q.signature_date >= to_date('2023-01-01 00:00:00',
'yyyy-mm-dd hh24:mi:ss')
AND q.signature_date < to_date(to_char(SYSDATE - 1,
'yyyy-mm-dd') || ' 23:59:59',
'yyyy-mm-dd hh24:mi:ss')
AND e.planned_end_date - e.inception_date >= 90
AND dd.tid IS NOT NULL
--<2D><><EFBFBD>ո<EFBFBD><D5B8>˿ͻ<CBBF>)
)
--SELECT * FROM BB
,
cc AS
(SELECT mm_f,
tid <20>ں<EFBFBD>֤<EFBFBD><D6A4>,
COUNT(DISTINCT bdh) <20>ںϱ<DABA><CFB1><EFBFBD>,
SUM(bf) <20>ںϱ<DABA><CFB1><EFBFBD>
FROM bb
GROUP BY tid,
mm_f),
ff AS
(SELECT dd.*,
cc.*
FROM dd
LEFT JOIN cc
ON cc.<2E>ں<EFBFBD>֤<EFBFBD><D6A4> = dd.tid
AND cc.mm_f = dd.mm)
SELECT to_date(ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
'yyyy-mm-dd'),
mm <20>·<EFBFBD>,
bm <20><><EFBFBD><EFBFBD>,
<20><><EFBFBD><EFBFBD>N,
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N,
<20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>,
<20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>,
<20><>ϯ<EFBFBD>Ŷ<EFBFBD>,
nvl(SUM(<28><><EFBFBD><EFBFBD>),
0) <20><><EFBFBD>ո<EFBFBD><D5B8>˿ͻ<CBBF><CDBB><EFBFBD><EFBFBD><EFBFBD>,
nvl(SUM(<28>ںϱ<DABA><CFB1><EFBFBD>),
0) <20><><EFBFBD><EFBFBD><EFBFBD>ںϱ<DABA><CFB1><EFBFBD>
FROM ff
WHERE ff.ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> >= to_char(a_start_date,
'yyyy-mm-dd')
AND ff.ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <= to_char(a_end_date,
'yyyy-mm-dd')
AND bm IN ('<27><><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>',
'<27><><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>˾')
GROUP BY ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
mm,
bm,
<20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>,
<20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>,
<20><>ϯ<EFBFBD>Ŷ<EFBFBD>,
<20><><EFBFBD><EFBFBD>N,
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N
ORDER BY <20><><EFBFBD><EFBFBD>,
<20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>;
END;
BEGIN
NULL;
END telsale_archievement_pkg;
/

View File

@@ -0,0 +1,288 @@
WITH aa AS
(SELECT to_char(t.signature_date,
'yyyy-mm-dd') ǩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
(to_char(T.signature_date,
'mm')) || '<EFBFBD><EFBFBD>' mm,
t.policy_no bdh,
t.endorsement_no pdh,
qt.t_cre tid,
QT.B_CRE BTID, -----<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>
e.inception_date qbsj,
e.planned_end_date zzsj,
pt.premium_amount - nvl(pt.tax_amount,
0) bf
--,qt.qdbf - nvl(qt.qdbf_tax_amount,0) bf
,
nt.ecompensation_rate * (pt.premium_amount - nvl(pt.tax_amount,
0)) fxbf,
z.department_name bm,
CASE
WHEN (et.telpartnercode LIKE '%HC%' OR zx.workerno IN (SELECT code
FROM datacenter.dc_lsj_zx_hc)) THEN
'<EFBFBD><EFBFBD><EFBFBD>׷ῥ'
ELSE
''
END <EFBFBD>Ƿ<EFBFBD><EFBFBD>,
nvl(zx.workerno,
et.telpartnercode) <EFBFBD><EFBFBD>ϯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
(CASE
WHEN nvl(zx.workerno,
et.telpartnercode) = 'DX001' AND
xx.staff_name LIKE '%<25><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%' THEN
'<EFBFBD><EFBFBD>ΰ<EFBFBD><EFBFBD>'
WHEN nvl(zx.workerno,
et.telpartnercode) = 'DX001' AND
xx.staff_name NOT LIKE '%<25><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%' THEN
'<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
ELSE
to_char(ys.<EFBFBD><EFBFBD>ϯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
END) <EFBFBD><EFBFBD>ϯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
YS.<EFBFBD>Ŷ<EFBFBD> <EFBFBD><EFBFBD>ϯ<EFBFBD>Ŷ<EFBFBD>,
nvl(YS.<EFBFBD>Ŷ<EFBFBD>,
y.section_office_name) <EFBFBD><EFBFBD><EFBFBD><EFBFBD>N,
nvl((CASE
WHEN nvl(zx.workerno,
et.telpartnercode) = 'DX001' AND
xx.staff_name LIKE '%<25><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%' THEN
'<EFBFBD><EFBFBD>ΰ<EFBFBD><EFBFBD>'
WHEN nvl(zx.workerno,
et.telpartnercode) = 'DX001' AND
xx.staff_name NOT LIKE '%<25><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%' THEN
'<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
ELSE
to_char(ys.<EFBFBD><EFBFBD>ϯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
END),
xx.staff_name) <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N
FROM idst0.auto_agreement_request_t t
LEFT JOIN idst0.auto_agreement_t e
ON e.policy_no = t.policy_no
LEFT JOIN idst0.motorised_vehicle_t v
ON v.policy_no = e.policy_no
LEFT JOIN idst0.auto_premium_t pt
ON pt.policy_no = t.policy_no
AND pt.endorsement_no = t.endorsement_no
LEFT JOIN ywglxt.w_dxbd_i i
ON e.policy_no = i.bdh
LEFT JOIN idst0.rydm_t xx
ON xx.staff_code = nvl(i.zhjywy,
e.operator_code)
LEFT JOIN idst0.ks_t y
ON y.section_office_code = nvl(xx.section_office_code,
e.section_office_code)
LEFT JOIN idst0.bm_t z
ON z.department_code = nvl(xx.department_code,
e.department_code)
--left join datacenter.dc_cx_csteam ct on ct.jbrcode = xx.staff_code
LEFT JOIN idst0.auto_new_product_info_t nt
ON nt.policy_no = t.policy_no
AND nt.endorsement_no = t.endorsement_no
--left join ywglxt.q_auto_agreement_extend_t qe on qe.policy_no = e.policy_no
LEFT JOIN ywglxt.q_auto_agreement_t qt
ON qt.policy_no = e.policy_no
LEFT JOIN datacenter.dc_yangg_qdcode qd
ON qd.code = e.selling_channel_type
LEFT JOIN datacenter.dc_tb_jc_c_tag cl
ON cl.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = e.policy_no
LEFT JOIN datacenter.dc_yangg_basecode_teams fg
ON fg.bm = z.department_name
AND fg.ks = y.section_office_name
--left join idst0.t_sell_policy_autobase_t zx on zx.policy_no=e.policy_no
--left join idst0.auto_agreement_extend_t et on et.policy_no = e.policy_no
LEFT JOIN idst0.auto_agreement_extend_t et
ON et.policy_no = e.policy_no
LEFT JOIN idst0.t_sell_policy_autobase_t zx
ON zx.policy_no = e.policy_no
LEFT JOIN datacenter.dc_YZH_ZXYS YS
ON YS.<EFBFBD><EFBFBD>ϯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = nvl(zx.workerno,
et.telpartnercode)
--left join v_lsj_dimian dm on dm.vin=v.vin and e.selling_channel_type='25' and dm.MEMO like'%<25><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%'
--left join datacenter.dc_lsj_zx_team zt on zt.name=coalesce(zc.name,zc1.name,bc.name,dm.JBRMC)
WHERE t.signature_date >= to_date('2023-01-01 00:00:00',
'yyyy-mm-dd hh24:mi:ss')
AND t.signature_date < to_date(to_char(SYSDATE - 1,
'yyyy-mm-dd') || ' 23:59:59',
'yyyy-mm-dd hh24:mi:ss')
--and t.endorsement_no = '<EFBFBD><EFBFBD>'
AND e.policy_status = '1' --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
AND qt.tflag = '0' --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AND qt.usage_xm = '<EFBFBD><EFBFBD>ͥ<EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD>'
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ħ<EFBFBD>г<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--and e.policy_no in ('AXIMC90Y1419B038594J','AXIMC90CTP19B039593R','AXIMC04CTP19B013473X')
AND e.planned_end_date - e.inception_date >= 360
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
)
-----<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>
,
dd2 AS
(SELECT ǩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
mm,
bm,
<EFBFBD><EFBFBD>ϯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD>ϯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD>ϯ<EFBFBD>Ŷ<EFBFBD>,
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>N,
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N,
CASE
WHEN pdh = '<EFBFBD><EFBFBD>' THEN
tid
END tid,
to_number('1') <EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD>,
COUNT(DISTINCT CASE
WHEN pdh = '<EFBFBD><EFBFBD>' THEN
bdh
END) <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
SUM(bf) <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FROM (SELECT DISTINCT *
FROM aa) aa
GROUP BY bm,
CASE
WHEN pdh = '<EFBFBD><EFBFBD>' THEN
tid
END,
mm,
BTID,
<EFBFBD><EFBFBD>ϯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD>ϯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD>ϯ<EFBFBD>Ŷ<EFBFBD>,
ǩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>N,
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N
UNION
SELECT ǩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
mm,
bm,
<EFBFBD><EFBFBD>ϯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD>ϯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD>ϯ<EFBFBD>Ŷ<EFBFBD>,
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>N,
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N,
CASE
WHEN btid = tid THEN
''
ELSE
btid
END btid,
to_number('0') <EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD>,
to_number('0') <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
to_number('0') <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FROM (SELECT DISTINCT *
FROM aa) aa),
DD AS
(SELECT *
FROM DD2
WHERE TID IS NOT NULL)
--select * from dd
,
bb AS
(SELECT DISTINCT q.policy_no bdh,
q.endorsement_no pdh,
qna.t_cre tid,
to_number(to_char(q.signature_date,
'yyyy')) || '<EFBFBD><EFBFBD>' nf,
(to_char(q.signature_date,
'mm')) || '<EFBFBD><EFBFBD>' mm_f,
to_char(q.signature_date,
'dd') || '<EFBFBD><EFBFBD>' dd,
q.signature_date sj,
round((pt.premium_amount - nvl(pt.taxamount,
0)) * c.rate / 100,
2) bf,
z.department_name bm
FROM idst0.nonauto_agreement_request_t q
LEFT JOIN idst0.nonauto_agreement_t e
ON e.policy_no = q.policy_no
LEFT JOIN idst0.nonauto_premium_t pt
ON pt.endorsement_no = q.endorsement_no
AND pt.policy_no = q.policy_no
LEFT JOIN idst0.reinsurance_t r
ON r.reinsurance_policy_no = e.policy_no
LEFT JOIN idst0.exrate_month_t c
ON pt.currency_code = c.bzh
AND to_char(q.signature_date,
'YYYY') = c.theyear
AND to_char(q.signature_date,
'fmmm') = c.themonth
LEFT JOIN idst0.rydm_t x
ON x.staff_code = e.operator_code
LEFT JOIN idst0.ks_t y
ON y.section_office_code = x.section_office_code
LEFT JOIN idst0.bm_t z
ON z.department_code = x.department_code
LEFT JOIN ywglxt.q_nonauto_agreement_t qna
ON qna.policy_no = q.policy_no
LEFT JOIN datacenter.dc_yangg_gkxzh gk
ON gk.product_code = e.product_code --<EFBFBD><EFBFBD>ɢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--left join datacenter.dc_yangg_zbxzh zb on zb.product_code = e.product_code --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LEFT JOIN dd
ON dd.tid = qna.t_cre
WHERE qna.tflag = '0'
AND (CASE
WHEN q.endorsement_no != '<EFBFBD><EFBFBD>' AND
round((pt.premium_amount - nvl(pt.taxamount,
0)) * c.rate / 100,
2) != 0 THEN
'<EFBFBD><EFBFBD>'
END) IS NULL
--and q.endorsement_no = '<EFBFBD><EFBFBD>'
AND e.policy_status = '1'
AND gk.product_code IS NOT NULL
AND (e.product_code LIKE '2%' OR e.product_code LIKE '1106%' --<EFBFBD> --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OR e.product_code LIKE '1107%' OR e.product_code LIKE '1108%' OR e.product_code LIKE '1307%' OR e.product_code LIKE '1304A400%' --<EFBFBD>Ҳ<EFBFBD>
)
--and e.product_code not in ('22KC9800')
AND q.signature_date >= to_date('2023-01-01 00:00:00',
'yyyy-mm-dd hh24:mi:ss')
AND q.signature_date < to_date(to_char(SYSDATE - 1,
'yyyy-mm-dd') || ' 23:59:59',
'yyyy-mm-dd hh24:mi:ss')
AND e.planned_end_date - e.inception_date >= 90
AND dd.tid IS NOT NULL
--<EFBFBD><EFBFBD><EFBFBD>ո<EFBFBD><EFBFBD>˿ͻ<EFBFBD>)
)
--SELECT * FROM BB
,
cc AS
(SELECT mm_f,
tid <EFBFBD>ں<EFBFBD>֤<EFBFBD><EFBFBD>,
COUNT(DISTINCT bdh) <EFBFBD>ںϱ<EFBFBD><EFBFBD><EFBFBD>,
SUM(bf) <EFBFBD>ںϱ<EFBFBD><EFBFBD><EFBFBD>
FROM bb
GROUP BY tid,
mm_f),
ff AS
(SELECT dd.*,
cc.*
FROM dd
LEFT JOIN cc
ON cc.<EFBFBD>ں<EFBFBD>֤<EFBFBD><EFBFBD> = dd.tid
AND cc.mm_f = dd.mm) --OR cc.<EFBFBD>ں<EFBFBD>֤<EFBFBD><EFBFBD> = dd.btid
--select * from ff
SELECT ǩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
--mm,
bm <EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>N,
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N,
<EFBFBD><EFBFBD>ϯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD>ϯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD>ϯ<EFBFBD>Ŷ<EFBFBD>,
nvl(SUM(<EFBFBD><EFBFBD><EFBFBD><EFBFBD>),
0) <EFBFBD><EFBFBD><EFBFBD>ո<EFBFBD><EFBFBD>˿ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
nvl(SUM(<EFBFBD>ںϱ<EFBFBD><EFBFBD><EFBFBD>),
0) <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ںϱ<EFBFBD><EFBFBD><EFBFBD>
FROM ff
WHERE ff.ǩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = '2023-03-09'
AND bm IN ('<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
'<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>˾')
GROUP BY ǩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
mm,
bm,
<EFBFBD><EFBFBD>ϯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD>ϯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD>ϯ<EFBFBD>Ŷ<EFBFBD>,
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>N,
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N
ORDER BY <EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD>ϯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>

View File

@@ -5,4 +5,5 @@ $color-bg-03: #f27620;
$color-bg-04: #da3703;
$color-bg-05: #ba1800;
$color-charts-bg:#ffffff9f;
$color-charts-bg:#ffffff9f;
$color-honorlist-bg: rgba(255, 255, 255, 0.3);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 184 KiB

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 45 KiB

View File

@@ -2,42 +2,41 @@
* @Author: Kane
* @Date: 2023-03-04 16:09:31
* @LastEditors: Kane
* @FilePath: /task_schedule/src/components/ArchievementComponent.vue
* @Description:
* @FilePath: /task_schedule/src/components/ArchievementChartComponent.vue
* @Description: 业绩图表组件
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
-->
<template>
<div class="archievement-wrapper">
<span>总业绩</span>
<span>¥&nbsp;{{ archivement_count }}</span>
<div id="chartWrapper"></div>
</div>
</template>
<script lang="ts">
import { reactive, computed, onMounted } from "vue";
import { reactive, onMounted } from "vue";
import * as echarts from "echarts";
export default {
name: "ArchievementComponent",
setup()
name: "ArchievementChartComponent",
props: {
chart_data: {
type: Array,
require: true,
},
},
setup(props)
{
const ui = reactive({
total_archievement: 435220,
});
const archivement_count = computed(() =>
{
return ui.total_archievement;
chart_data: props.chart_data,
});
//
const initCharts = () =>
{
const chartDom = document.getElementById("chartWrapper");
//@ts-ignore
const myChart = echarts.init((chartDom));
// @ts-ignore
const myChart = echarts.init(chartDom);
const option = {
xAxis: {
type: "category",
@@ -49,7 +48,7 @@ export default {
},
series: [
{
data: [200, 230, 224, 218, 135, 147, 260,],
data: props.chart_data,
type: "line",
},
],
@@ -69,33 +68,33 @@ export default {
initCharts();
});
return { ui, archivement_count, initCharts, };
return { ui, initCharts, };
},
};
</script>
<style lang="scss">
.archievement-wrapper {
height: 360px;
height: 100%;
width: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: stretch;
// display: flex;
// flex-direction: column;
// justify-content: center;
// align-items: stretch;
span {
display: block;
width: 100%;
color: #25e6e6;
text-align: center;
// span {
// display: block;
// width: 100%;
// color: #25e6e6;
// text-align: center;
font: {
size: 35px;
family: "FZ-ZHUOHEI";
}
// font: {
// size: 35px;
// family: "FZ-ZHUOHEI";
// }
flex-grow: 0;
}
// flex-grow: 0;
// }
#chartWrapper {
min-height: 200px;

View File

@@ -0,0 +1,80 @@
<!--
* @Author: Kane
* @Date: 2023-03-07 23:22:13
* @LastEditors: Kane
* @FilePath: /task_schedule/src/components/ArchievementCompleteRateComponent.vue
* @Description: 业绩完成率组件
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
-->
<template>
<div class="complete-rate-wrapper">
<el-progress type="circle" :percentage="ui.percentage">
<template #default="{ percentage }">
<span class="percentage-label">{{ ui.indicator }}</span>
<span class="percentage-value">{{ percentage }}%</span>
</template>
</el-progress>
</div>
</template>
<script lang="ts">
import { reactive } from "vue";
export default {
name: "ArchievementCompleteRateComponent",
props: {
percentage: {
type: String,
require: true,
},
indicator: {
type: String,
default: "",
},
},
setup(props)
{
const percentage = Number(props.percentage).valueOf();
const ui = reactive({
percentage: percentage,
indicator: props.indicator,
});
return { ui, };
},
};
</script>
<style lang="scss">
.complete-rate-wrapper {
// display: flex;
// flex-direction: column;
// justify-content: center;
// align-items: center;
span {
display: block;
width: 100%;
color: #fff;
}
.el-progress {
margin: 5px;
}
.percentage-value {
display: block;
margin-top: 10px;
font-size: 28px;
}
.percentage-label {
display: block;
margin-top: 10px;
font-size: 12px;
}
}
</style>

View File

@@ -0,0 +1,75 @@
<!--
* @Author: Kane
* @Date: 2023-03-08 18:32:13
* @LastEditors: Kane
* @FilePath: /task_schedule/src/components/DishonorListComponent.vue
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
-->
<template>
<div class="dishonorlist-wrapper">
<div class="banner-wrapper">
<img src="@/assets/img/ranking/stop.png" alt="">
<div class="title-wrapper">
<span>"消7灭6"突围战</span>
<span>二月入营坐席</span>
</div>
</div>
</div>
</template>
<script lang="ts">
export default {
name: "DishonorListComponent",
props: {
month: {
type: String,
require: true,
},
dishonorPersons: {
type: Array,
require: true,
},
},
setup() { },
};
</script>
<style scoped lang="scss">
.dishonorlist-wrapper {
height: 240px;
width: 360px;
border-radius: 5px;
background-color: $color-honorlist-bg;
backdrop-filter: blur(10px);
padding: 10px;
.banner-wrapper {
display: flex;
justify-content: center;
align-items: stretch;
img {
// width: 70px;
height: 60px;
}
span {
display: block;
width: 100%;
text-align: center;
font: {
family: "fz-zhuohei";
size: 1.7rem;
weight: 100;
}
color: #fff;
}
}
}
</style>

View File

@@ -0,0 +1,128 @@
<!--
* @Author: Kane
* @Date: 2023-03-08 14:18:39
* @LastEditors: Kane
* @FilePath: /task_schedule/src/components/HonorListComponent.vue
* @Description: 光荣榜组件
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
-->
<template>
<div class="honorlist-wrapper">
<span class="title">90俱乐部{{ $props.month }}月入围坐席</span>
<div class="reward-wrapper">
<div class="leading-reward-wrapper">
<div class="banner-wrapper">
<img src="@/assets/img/ranking/medal.png" alt="领跑奖">
<span>领跑奖</span>
</div>
</div>
<div class="advance-reward-wrapper">
<div class="banner-wrapper">
<img src="@/assets/img/ranking/copper_medal.png" alt="飞跃奖">
<span>飞跃奖</span>
</div>
</div>
</div>
</div>
</template>
<script lang="ts">
export default {
name: "HonorListComponent",
props: {
month: {
type: String,
require: true,
},
leadingReward: {
type: String,
require: true,
},
advanceReward: {
type: String,
require: true,
},
},
setup(props)
{
return {};
},
};
</script>
<style scoped lang="scss">
.honorlist-wrapper {
height: 240px;
width: 360px;
border-radius: 5px;
background-color: $color-honorlist-bg;
backdrop-filter: blur(10px);
padding: 10px;
>*+* {
margin-top: 10px;
}
.title {
display: block;
text-align: center;
font: {
family: "FZ-ZHUOHEI";
size: 1.4rem;
}
color: goldenrod;
}
.reward-wrapper {
width: 100%;
display: flex;
justify-content: center;
align-items: stretch;
>*+* {
margin-left: 10px;
}
.leading-reward-wrapper {
width: 165px;
height: 100%;
}
.advance-reward-wrapper {
width: 165px;
height: 100%;
}
.banner-wrapper {
display: flex;
justify-content: center;
align-items: center;
img {
width: 30px;
height: 30px;
}
span {
display: inline-block;
text-align: center;
color: #fff;
font: {
size: 1.5rem;
family: "FZ-ZHUOHEI";
weight: 100;
}
}
}
}
}
</style>

View File

@@ -0,0 +1,28 @@
/*
* @Author: Kane
* @Date: 2023-03-02 15:48:44
* @LastEditors: Kane
* @FilePath: /task_schedule/src/test/test.ts
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
import { type LoginInfo, login } from "../utils/account.js";
const loginInfo: LoginInfo = {
p13account: "wangwei-202",
password: "Kane@1983",
};
login(loginInfo)
.then((response: any) =>
{
const data = response.data ?? {};
console.log(data);
})
.catch((error: any) =>
{
console.log(error);
});

View File

@@ -0,0 +1,50 @@
/*
* @Author: Kane
* @Date: 2023-03-01 23:38:12
* @LastEditors: Kane
* @FilePath: /task_schedule/src/test/tsconfig.json
* @Description: tsconfig使
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
{
"compilerOptions": {
"forceConsistentCasingInFileNames": true,
"useDefineForClassFields": true,
"target": "ESNext",
"module": "ESNext",
// "module": "CommonJS",
// "moduleResolution": "node",
"moduleResolution": "nodenext",
"strict": true,
"jsx": "preserve",
"sourceMap": true,
"resolveJsonModule": true,
"esModuleInterop": false,
"baseUrl": "./", // paths 路径解析起点
"paths": { // 别名路径设置
"@/*": [
"src/*"
],
},
"lib": [
"ESNext",
"DOM"
],
"types": [
"vite/client"
]
},
"include": [
"src/**/*.ts",
"src/**/*.tsx",
"src/**/*.vue",
"*.d.ts",
"src/router/index.js",
"src/router/index.js",
"./**/*.ts",
],
"exclude": [
"./node_modules",
]
}

View File

@@ -8,9 +8,9 @@
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
import axios from "axios";
import axios, { type AxiosInstance } from "axios";
const service = axios.create(
const service: AxiosInstance = axios.create(
{
baseURL: "",
timeout: 10000,

View File

@@ -12,12 +12,22 @@
<div class="center-wrapper">
<span class="slogan">对标先进&nbsp;比学赶超</span>
<div class="total-archievement-wrapper">
<div class="total-archievement-rate-wrapper"></div>
<span>总业绩</span>
<span>{{ getTotalArchievement }}</span>
</div>
<div class="archievement-wrapper">
<div class="total-archievement-rate-wrapper">
<ArchievementCompleteRateComponent indicator="续保完成率" percentage=95 />
<ArchievementCompleteRateComponent indicator="车非渗透率" percentage=95 />
</div>
<div class="total-archievement-charts-wrapper">
<Archievement />
<ArchievementChart total_archievement="435220" :chart_data="ui.chartData" />
</div>
</div>
<div class="reward-wrapper"></div>
<div class="reward-wrapper">
<HonorListComponent month="二" leading-reward="王炜" advance-reward="王炜" />
<DishonorListComponent month="二" :dishonorPersons="ui.dishonorPersons" />
</div>
</div>
<div class="right-wrapper">
@@ -26,20 +36,45 @@
</template>
<script lang="ts">
// import { reactive, onBeforeMount } from "vue";
import { computed, reactive } from "vue";
import { useRouter } from "vue-router";
// import { StaffInfo } from "@/data/cpicxim/StaffInfo";
import { loadStaffInfo } from "@/utils/api/localStorage";
import { loadStaffInfo } from "@/utils/api/localStorage.js";
import { ElMessage } from "element-plus";
import Archievement from "@/components/ArchievementComponent.vue";
import ArchievementChart from "@/components/ArchievementChartComponent.vue";
import ArchievementCompleteRateComponent from "@/components/ArchievementCompleteRateComponent.vue";
import HonorListComponent from "@/components/HonorListComponent.vue";
import DishonorListComponent from "@/components/DishonorListComponent.vue";
export default {
name: "DesktopArchievement",
components: { Archievement, },
components: {
ArchievementChart,
ArchievementCompleteRateComponent,
HonorListComponent,
DishonorListComponent,
},
setup()
{
const router = useRouter();
const staffInfo = loadStaffInfo();
const ui = reactive({
chartData: [200, 230, 224, 218, 135, 147, 260, 800,],
totalArchievement: 120000000,
dishonorPersons: ["张三", "李四",],
});
const getTotalArchievement = computed(() =>
{
const cnyFormat = new Intl.NumberFormat("zh-cn",
{
style: "currency",
currency: "CNY",
minimumFractionDigits: 0,
});
const archievement = cnyFormat.format(ui.totalArchievement);
return archievement;
});
//检查存储的登录信息,不存在则返回登录页面
if (staffInfo.P13UID == "")
@@ -52,6 +87,8 @@ export default {
router.push("/login");
}
return { ui, getTotalArchievement, };
},
};
</script>
@@ -67,11 +104,6 @@ export default {
display: flex;
justify-content: end;
align-items: stretch;
div {
// border: 1px solid red;
box-sizing: border-box;
}
}
.left-wrapper {
@@ -92,6 +124,7 @@ export default {
padding: 15px 0px;
display: block;
text-align: center;
flex-grow: 0;
font: {
family: "FZ-ZHUOHEI";
@@ -111,24 +144,48 @@ export default {
}
.total-archievement-wrapper {
height: 80px;
span {
display: block;
width: 100%;
color: #25e6e6;
text-align: center;
font: {
size: 35px;
family: "FZ-ZHUOHEI";
}
flex-grow: 0;
}
}
.archievement-wrapper {
//业绩部分
height: 360px;
height: 280px;
display: flex;
justify-content: center;
align-items: stretch;
>*+* {
margin-left: 15px;
}
.total-archievement-rate-wrapper {
//业绩比例
width: 25%;
// width: 20%;
width: 140px;
min-width: 140px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.total-archievement-charts-wrapper {
//业绩图表
width: 75%;
width: 70%;
display: flex;
justify-content: center;
@@ -138,7 +195,16 @@ export default {
.reward-wrapper {
//奖励部分
height: 240px;
// height: 280px;
padding: 15px;
display: flex;
justify-content: center;
align-items: center;
>*+* {
margin-left: 15px;
}
}
}
@@ -157,4 +223,9 @@ body {
$color-bg-05,
$color-bg-05);
}
div {
// border: 1px solid red;
box-sizing: border-box;
}
</style>

View File

@@ -12,8 +12,8 @@
"forceConsistentCasingInFileNames": true,
"useDefineForClassFields": true,
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "nodenext",
"module": "CommonJS",
"moduleResolution": "node",
"strict": true,
"jsx": "preserve",
"sourceMap": true,