Compare commits
18 Commits
b2712087a0
...
feature-ar
Author | SHA1 | Date | |
---|---|---|---|
893b697d5a | |||
eb133c0365 | |||
49a207a9d5 | |||
eb22d61fcc | |||
56398fe9d6 | |||
96079ea519 | |||
b5010930f2 | |||
405e3984b6 | |||
bab8d6bf6f | |||
e4260780bc | |||
92553a9ba9 | |||
18d4620729 | |||
3313414c70 | |||
330f5fa1e4 | |||
ef9472b334 | |||
12dd277a2a | |||
e99d092862 | |||
ef78c2e42e |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -724,3 +724,7 @@ local.properties
|
|||||||
|
|
||||||
target
|
target
|
||||||
target/*
|
target/*
|
||||||
|
|
||||||
|
# oracle
|
||||||
|
*.~pck
|
||||||
|
*.~sql
|
||||||
|
10
README.md
10
README.md
@@ -19,4 +19,12 @@
|
|||||||
|
|
||||||
# 坐席主机配置
|
# 坐席主机配置
|
||||||
|
|
||||||
需要安装插件,插件目录 AppData\Local\Programs\Lively Wallpaper\Plugins。
|
需要安装插件,插件目录 AppData\Local\Programs\Lively Wallpaper\Plugins。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
datacenter.dc_yzh_cfqd2023表
|
||||||
|
|
||||||
|
车非渗透率 车非融合保费 / 车险个人客户保费, 为月初至当日的总量。
|
357
code/db/pkg/telsale_archievement_pkg.pck
Normal file
357
code/db/pkg/telsale_archievement_pkg.pck
Normal 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;
|
||||||
|
/
|
288
code/db/车非基础数据.sql
Normal file
288
code/db/车非基础数据.sql
Normal 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>
|
@@ -84,7 +84,7 @@ module.exports = {
|
|||||||
"@typescript-eslint/quotes": ["error", "double",],
|
"@typescript-eslint/quotes": ["error", "double",],
|
||||||
"@typescript-eslint/space-before-function-paren": "off",
|
"@typescript-eslint/space-before-function-paren": "off",
|
||||||
"@typescript-eslint/strict-boolean-expressions": ["error", {
|
"@typescript-eslint/strict-boolean-expressions": ["error", {
|
||||||
"allowString": true,
|
"allowString": false,
|
||||||
},],
|
},],
|
||||||
"comma-style": ["error", "last",], //逗号在行位
|
"comma-style": ["error", "last",], //逗号在行位
|
||||||
"array-bracket-spacing": ["error", "never",],
|
"array-bracket-spacing": ["error", "never",],
|
||||||
|
@@ -3,4 +3,7 @@ $color-bg-01: #fecb96;
|
|||||||
$color-bg-02: #f7954e;
|
$color-bg-02: #f7954e;
|
||||||
$color-bg-03: #f27620;
|
$color-bg-03: #f27620;
|
||||||
$color-bg-04: #da3703;
|
$color-bg-04: #da3703;
|
||||||
$color-bg-05: #ba1800;
|
$color-bg-05: #ba1800;
|
||||||
|
|
||||||
|
$color-charts-bg:#ffffff9f;
|
||||||
|
$color-honorlist-bg: rgba(255, 255, 255, 0.3);
|
BIN
code/web/task_schedule/src/assets/img/ranking/copper_medal.png
Normal file
BIN
code/web/task_schedule/src/assets/img/ranking/copper_medal.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 78 KiB |
BIN
code/web/task_schedule/src/assets/img/ranking/medal.png
Normal file
BIN
code/web/task_schedule/src/assets/img/ranking/medal.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 169 KiB |
BIN
code/web/task_schedule/src/assets/img/ranking/stop.png
Normal file
BIN
code/web/task_schedule/src/assets/img/ranking/stop.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 45 KiB |
@@ -2,42 +2,41 @@
|
|||||||
* @Author: Kane
|
* @Author: Kane
|
||||||
* @Date: 2023-03-04 16:09:31
|
* @Date: 2023-03-04 16:09:31
|
||||||
* @LastEditors: Kane
|
* @LastEditors: Kane
|
||||||
* @FilePath: /task_schedule/src/components/ArchievementComponent.vue
|
* @FilePath: /task_schedule/src/components/ArchievementChartComponent.vue
|
||||||
* @Description:
|
* @Description: 业绩图表组件
|
||||||
*
|
*
|
||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<div class="archievement-wrapper">
|
<div class="archievement-wrapper">
|
||||||
<span>总业绩</span>
|
|
||||||
<span>¥ {{ archivement_count }}</span>
|
|
||||||
<div id="chartWrapper"></div>
|
<div id="chartWrapper"></div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { reactive, computed, onMounted } from "vue";
|
import { reactive, onMounted } from "vue";
|
||||||
import * as echarts from "echarts";
|
import * as echarts from "echarts";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "ArchievementComponent",
|
name: "ArchievementChartComponent",
|
||||||
setup()
|
props: {
|
||||||
|
chart_data: {
|
||||||
|
type: Array,
|
||||||
|
require: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
setup(props)
|
||||||
{
|
{
|
||||||
const ui = reactive({
|
const ui = reactive({
|
||||||
total_archievement: 435220,
|
chart_data: props.chart_data,
|
||||||
});
|
|
||||||
|
|
||||||
const archivement_count = computed(() =>
|
|
||||||
{
|
|
||||||
return ui.total_archievement;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
//设置图表
|
//设置图表
|
||||||
const initCharts = () =>
|
const initCharts = () =>
|
||||||
{
|
{
|
||||||
const chartDom = document.getElementById("chartWrapper");
|
const chartDom = document.getElementById("chartWrapper");
|
||||||
//@ts-ignore
|
// @ts-ignore
|
||||||
const myChart = echarts.init((chartDom));
|
const myChart = echarts.init(chartDom);
|
||||||
const option = {
|
const option = {
|
||||||
xAxis: {
|
xAxis: {
|
||||||
type: "category",
|
type: "category",
|
||||||
@@ -49,7 +48,7 @@ export default {
|
|||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
data: [200, 230, 224, 218, 135, 147, 260,],
|
data: props.chart_data,
|
||||||
type: "line",
|
type: "line",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@@ -69,38 +68,38 @@ export default {
|
|||||||
initCharts();
|
initCharts();
|
||||||
});
|
});
|
||||||
|
|
||||||
return { ui, archivement_count, initCharts, };
|
return { ui, initCharts, };
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.archievement-wrapper {
|
.archievement-wrapper {
|
||||||
height: 360px;
|
height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
// display: flex;
|
||||||
flex-direction: column;
|
// flex-direction: column;
|
||||||
justify-content: center;
|
// justify-content: center;
|
||||||
align-items: stretch;
|
// align-items: stretch;
|
||||||
|
|
||||||
span {
|
// span {
|
||||||
display: block;
|
// display: block;
|
||||||
width: 100%;
|
// width: 100%;
|
||||||
color: #25e6e6;
|
// color: #25e6e6;
|
||||||
text-align: center;
|
// text-align: center;
|
||||||
|
|
||||||
font: {
|
// font: {
|
||||||
size: 35px;
|
// size: 35px;
|
||||||
family: "FZ-ZHUOHEI";
|
// family: "FZ-ZHUOHEI";
|
||||||
}
|
// }
|
||||||
|
|
||||||
flex-grow: 0;
|
// flex-grow: 0;
|
||||||
}
|
// }
|
||||||
|
|
||||||
#chartWrapper {
|
#chartWrapper {
|
||||||
min-height: 200px;
|
min-height: 200px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background-color: #ffffffaf;
|
background-color: $color-charts-bg;
|
||||||
backdrop-filter: blur(10px);
|
backdrop-filter: blur(10px);
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
@@ -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>
|
@@ -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>
|
128
code/web/task_schedule/src/components/HonorListComponent.vue
Normal file
128
code/web/task_schedule/src/components/HonorListComponent.vue
Normal 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>
|
@@ -2,31 +2,31 @@
|
|||||||
* @Author: Kane
|
* @Author: Kane
|
||||||
* @Date: 2023-02-28 14:48:30
|
* @Date: 2023-02-28 14:48:30
|
||||||
* @LastEditors: Kane
|
* @LastEditors: Kane
|
||||||
* @FilePath: /task_schedule/src/data/cpicxim/StuffInfo.ts
|
* @FilePath: /task_schedule/src/data/cpicxim/StaffInfo.ts
|
||||||
* @Description:
|
* @Description:
|
||||||
*
|
*
|
||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class StaffInfo
|
class StaffInfo
|
||||||
{
|
{
|
||||||
constructor(
|
constructor(
|
||||||
p13uid: string,
|
p13uid: string,
|
||||||
staff_code: string,
|
staffCode: string,
|
||||||
staff_name: string,
|
staffName: string,
|
||||||
department_code: string,
|
departmentCode: string,
|
||||||
department_name: string,
|
departmentName: string,
|
||||||
section_office_code: string,
|
sectionOfficeCode: string,
|
||||||
section_office_name: string
|
sectionOfficeName: string
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
this._stuffCode = staff_code;
|
this._stuffCode = staffCode;
|
||||||
this._stuffName = staff_name;
|
this._stuffName = staffName;
|
||||||
this._p13uid = p13uid;
|
this._p13uid = p13uid;
|
||||||
this._department_code = department_code;
|
this._departmentCode = departmentCode;
|
||||||
this._department_name = department_name;
|
this._departmentName = departmentName;
|
||||||
this._section_office_code = section_office_code;
|
this._sectionOfficeCode = sectionOfficeCode;
|
||||||
this._section_office_name = section_office_name;
|
this._sectionOfficeName = sectionOfficeName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public get stuffCode(): string
|
public get stuffCode(): string
|
||||||
@@ -34,9 +34,9 @@ class StaffInfo
|
|||||||
return this._stuffCode;
|
return this._stuffCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public set stuffCode(stuff_code: string)
|
public set stuffCode(stuffCode: string)
|
||||||
{
|
{
|
||||||
this._stuffCode = stuff_code;
|
this._stuffCode = stuffCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public get stuffName(): string
|
public get stuffName(): string
|
||||||
@@ -44,9 +44,9 @@ class StaffInfo
|
|||||||
return this._stuffName;
|
return this._stuffName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public set stuffName(stuff_name: string)
|
public set stuffName(stuffName: string)
|
||||||
{
|
{
|
||||||
this._stuffName = stuff_name;
|
this._stuffName = stuffName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public get P13UID(): string
|
public get P13UID(): string
|
||||||
@@ -59,34 +59,33 @@ class StaffInfo
|
|||||||
this._p13uid = p13uid;
|
this._p13uid = p13uid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public set departmentCode(department_code: string)
|
public set departmentCode(departmentCode: string)
|
||||||
{
|
{
|
||||||
this._department_code = department_code;
|
this._departmentCode = departmentCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public get departmentCode()
|
public get departmentCode(): string
|
||||||
{
|
{
|
||||||
return this._department_code;
|
return this._departmentCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public set departmentName(department_name: string)
|
public set departmentName(departmentName: string)
|
||||||
{
|
{
|
||||||
this._department_name = department_name;
|
this._departmentName = departmentName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public get departmentName()
|
public get departmentName(): string
|
||||||
{
|
{
|
||||||
return this._department_name;
|
return this._departmentName;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _stuffCode: string;
|
private _stuffCode: string;
|
||||||
private _stuffName: string;
|
private _stuffName: string;
|
||||||
private _p13uid: string;
|
private _p13uid: string;
|
||||||
private _department_code: string;
|
private _departmentCode: string;
|
||||||
private _department_name: string;
|
private _departmentName: string;
|
||||||
private _section_office_code: string;
|
private readonly _sectionOfficeCode: string;
|
||||||
private _section_office_name: string;
|
private readonly _sectionOfficeName: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export { StaffInfo };
|
export { StaffInfo };
|
||||||
|
|
||||||
|
@@ -4,8 +4,8 @@
|
|||||||
* @LastEditors: Kane
|
* @LastEditors: Kane
|
||||||
* @FilePath: /task_schedule/src/store/index.ts
|
* @FilePath: /task_schedule/src/store/index.ts
|
||||||
* @Description: vuex配置文件
|
* @Description: vuex配置文件
|
||||||
*
|
*
|
||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
*/
|
*/
|
||||||
import { createStore } from "vuex";
|
import { createStore } from "vuex";
|
||||||
import app from "./modules/app";
|
import app from "./modules/app";
|
||||||
@@ -16,4 +16,4 @@ const store = createStore({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
export default store;
|
export default store;
|
||||||
|
@@ -3,9 +3,9 @@
|
|||||||
* @Date: 2023-03-01 23:03:02
|
* @Date: 2023-03-01 23:03:02
|
||||||
* @LastEditors: Kane
|
* @LastEditors: Kane
|
||||||
* @FilePath: /task_schedule/src/store/modules/app.ts
|
* @FilePath: /task_schedule/src/store/modules/app.ts
|
||||||
* @Description:
|
* @Description:
|
||||||
*
|
*
|
||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
*/
|
*/
|
||||||
const state = {
|
const state = {
|
||||||
staffInfo: null,
|
staffInfo: null,
|
||||||
@@ -21,4 +21,4 @@ export default {
|
|||||||
getters,
|
getters,
|
||||||
mutations,
|
mutations,
|
||||||
actions,
|
actions,
|
||||||
};
|
};
|
||||||
|
28
code/web/task_schedule/src/test/test.ts
Normal file
28
code/web/task_schedule/src/test/test.ts
Normal 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);
|
||||||
|
});
|
50
code/web/task_schedule/src/test/tsconfig.json
Normal file
50
code/web/task_schedule/src/test/tsconfig.json
Normal 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",
|
||||||
|
]
|
||||||
|
}
|
@@ -3,28 +3,29 @@
|
|||||||
* @Date: 2023-03-02 14:48:35
|
* @Date: 2023-03-02 14:48:35
|
||||||
* @LastEditors: Kane
|
* @LastEditors: Kane
|
||||||
* @FilePath: /task_schedule/src/utils/account.ts
|
* @FilePath: /task_schedule/src/utils/account.ts
|
||||||
* @Description:
|
* @Description:
|
||||||
*
|
*
|
||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { service as instance } from "./api/request";
|
import { type AxiosResponse } from "axios";
|
||||||
import { API_URL } from "./api/config";
|
import { service as instance } from "./api/request.js";
|
||||||
|
import { API_URL } from "./api/config.js";
|
||||||
interface LoginInfo
|
interface LoginInfo
|
||||||
{
|
{
|
||||||
p13account: string;
|
p13account: string;
|
||||||
password: string;
|
password: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
function login(data: LoginInfo)
|
async function login(data: LoginInfo): Promise<AxiosResponse<any, any>>
|
||||||
{
|
{
|
||||||
return instance.request(
|
return await instance.request(
|
||||||
{
|
{
|
||||||
method: "post",
|
method: "post",
|
||||||
url: API_URL.URL_LOGIN,
|
url: API_URL.URL_LOGIN,
|
||||||
data: data,
|
data,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export { LoginInfo, login };
|
export { type LoginInfo, login };
|
||||||
|
@@ -8,5 +8,6 @@
|
|||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
*/
|
*/
|
||||||
export const API_URL = {
|
export const API_URL = {
|
||||||
URL_LOGIN: import.meta.env.VITE_URL_LOGIN,
|
// URL_LOGIN: import.meta.env.VITE_URL_LOGIN,
|
||||||
|
URL_LOGIN: "http://222.76.244.118:11001/admin-system/account/p13_account_check",
|
||||||
};
|
};
|
||||||
|
@@ -3,11 +3,11 @@
|
|||||||
* @Date: 2023-02-28 09:26:45
|
* @Date: 2023-02-28 09:26:45
|
||||||
* @LastEditors: Kane
|
* @LastEditors: Kane
|
||||||
* @FilePath: /task_schedule/src/utils/api/localStorage.ts
|
* @FilePath: /task_schedule/src/utils/api/localStorage.ts
|
||||||
* @Description:
|
* @Description:
|
||||||
*
|
*
|
||||||
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
* Copyright (c) ${2022} by Kane, All Rights Reserved.
|
||||||
*/
|
*/
|
||||||
import { StaffInfo } from "@/data/cpicxim/StaffInfo";
|
import { StaffInfo } from "@/data/cpicxim/StaffInfo.js";
|
||||||
|
|
||||||
const STUFF_ITEM = "stuff_info";
|
const STUFF_ITEM = "stuff_info";
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ function loadStaffInfo(): StaffInfo
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
obj = JSON.parse(window.localStorage.getItem(STUFF_ITEM) || "{}");
|
obj = JSON.parse(window.localStorage.getItem(STUFF_ITEM) ?? "{}");
|
||||||
}
|
}
|
||||||
catch (error)
|
catch (error)
|
||||||
{
|
{
|
||||||
@@ -25,23 +25,22 @@ function loadStaffInfo(): StaffInfo
|
|||||||
}
|
}
|
||||||
|
|
||||||
const stuff = new StaffInfo(
|
const stuff = new StaffInfo(
|
||||||
obj._p13uid || "",
|
obj._p13uid ?? "",
|
||||||
obj._stuffCode || "",
|
obj._stuffCode ?? "",
|
||||||
obj._stuffName || "",
|
obj._stuffName ?? "",
|
||||||
obj._department_code || "",
|
obj._department_code ?? "",
|
||||||
obj._department_name || "",
|
obj._department_name ?? "",
|
||||||
obj._section_office_code || "",
|
obj._section_office_code ?? "",
|
||||||
obj._section_office_name || "");
|
obj._section_office_name ?? "");
|
||||||
|
|
||||||
|
|
||||||
return stuff;
|
return stuff;
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveStaffInfo(stuff: StaffInfo)
|
function saveStaffInfo(stuff: StaffInfo): void
|
||||||
{
|
{
|
||||||
const json = JSON.stringify(stuff);
|
const json = JSON.stringify(stuff);
|
||||||
|
|
||||||
window.localStorage.setItem(STUFF_ITEM, json);
|
window.localStorage.setItem(STUFF_ITEM, json);
|
||||||
};
|
};
|
||||||
|
|
||||||
export { loadStaffInfo, saveStaffInfo };
|
export { loadStaffInfo, saveStaffInfo };
|
||||||
|
@@ -1,37 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* @Author: Kane
|
||||||
|
* @Date: 2023-02-28 17:47:22
|
||||||
|
* @LastEditors: Kane
|
||||||
|
* @FilePath: /task_schedule/src/utils/api/request.ts
|
||||||
|
* @Description:
|
||||||
|
*
|
||||||
|
* 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: "",
|
baseURL: "",
|
||||||
timeout: 10000,
|
timeout: 10000,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
//请求拦截
|
// 请求拦截
|
||||||
service.interceptors.request.use(
|
service.interceptors.request.use(
|
||||||
(config) =>
|
(config) =>
|
||||||
{
|
{
|
||||||
return config;
|
return config;
|
||||||
},
|
},
|
||||||
(error) =>
|
async (error) =>
|
||||||
{
|
{
|
||||||
console.log(error);
|
console.log(error);
|
||||||
|
|
||||||
return Promise.reject(error);
|
return await Promise.reject(error);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
//响应拦截
|
// 响应拦截
|
||||||
service.interceptors.response.use(
|
service.interceptors.response.use(
|
||||||
(response) =>
|
(response) =>
|
||||||
{
|
{
|
||||||
return response;
|
return response;
|
||||||
},
|
},
|
||||||
(error) =>
|
async (error) =>
|
||||||
{
|
{
|
||||||
return Promise.reject(error);
|
return await Promise.reject(error);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
export { service };
|
export { service };
|
||||||
|
@@ -75,7 +75,7 @@ function getParamsFromURL(url: string): stringkey
|
|||||||
|
|
||||||
const param = item.split("=");
|
const param = item.split("=");
|
||||||
|
|
||||||
paramObj[param[0]] = param[1] || "";
|
paramObj[param[0]] = param[1] ?? "";
|
||||||
});
|
});
|
||||||
|
|
||||||
return paramObj;
|
return paramObj;
|
||||||
|
@@ -12,12 +12,22 @@
|
|||||||
<div class="center-wrapper">
|
<div class="center-wrapper">
|
||||||
<span class="slogan">对标先进 比学赶超</span>
|
<span class="slogan">对标先进 比学赶超</span>
|
||||||
<div class="total-archievement-wrapper">
|
<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">
|
<div class="total-archievement-charts-wrapper">
|
||||||
<Archievement />
|
<ArchievementChart total_archievement="435220" :chart_data="ui.chartData" />
|
||||||
</div>
|
</div>
|
||||||
</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>
|
||||||
<div class="right-wrapper">
|
<div class="right-wrapper">
|
||||||
|
|
||||||
@@ -26,20 +36,45 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
// import { reactive, onBeforeMount } from "vue";
|
import { computed, reactive } from "vue";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
// import { StaffInfo } from "@/data/cpicxim/StaffInfo";
|
import { loadStaffInfo } from "@/utils/api/localStorage.js";
|
||||||
import { loadStaffInfo } from "@/utils/api/localStorage";
|
|
||||||
import { ElMessage } from "element-plus";
|
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 {
|
export default {
|
||||||
name: "DesktopArchievement",
|
name: "DesktopArchievement",
|
||||||
components: { Archievement, },
|
components: {
|
||||||
|
ArchievementChart,
|
||||||
|
ArchievementCompleteRateComponent,
|
||||||
|
HonorListComponent,
|
||||||
|
DishonorListComponent,
|
||||||
|
},
|
||||||
setup()
|
setup()
|
||||||
{
|
{
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const staffInfo = loadStaffInfo();
|
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 == "")
|
if (staffInfo.P13UID == "")
|
||||||
@@ -52,6 +87,8 @@ export default {
|
|||||||
|
|
||||||
router.push("/login");
|
router.push("/login");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return { ui, getTotalArchievement, };
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@@ -67,11 +104,6 @@ export default {
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: end;
|
justify-content: end;
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
|
|
||||||
div {
|
|
||||||
// border: 1px solid red;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.left-wrapper {
|
.left-wrapper {
|
||||||
@@ -92,6 +124,7 @@ export default {
|
|||||||
padding: 15px 0px;
|
padding: 15px 0px;
|
||||||
display: block;
|
display: block;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
flex-grow: 0;
|
||||||
|
|
||||||
font: {
|
font: {
|
||||||
family: "FZ-ZHUOHEI";
|
family: "FZ-ZHUOHEI";
|
||||||
@@ -111,24 +144,48 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.total-archievement-wrapper {
|
.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;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
|
|
||||||
|
>*+* {
|
||||||
|
margin-left: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
.total-archievement-rate-wrapper {
|
.total-archievement-rate-wrapper {
|
||||||
//业绩比例
|
//业绩比例
|
||||||
width: 25%;
|
// width: 20%;
|
||||||
|
width: 140px;
|
||||||
|
min-width: 140px;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.total-archievement-charts-wrapper {
|
.total-archievement-charts-wrapper {
|
||||||
//业绩图表
|
//业绩图表
|
||||||
width: 75%;
|
width: 70%;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
@@ -138,7 +195,16 @@ export default {
|
|||||||
|
|
||||||
.reward-wrapper {
|
.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,
|
||||||
$color-bg-05);
|
$color-bg-05);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div {
|
||||||
|
// border: 1px solid red;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
@@ -12,7 +12,7 @@
|
|||||||
"forceConsistentCasingInFileNames": true,
|
"forceConsistentCasingInFileNames": true,
|
||||||
"useDefineForClassFields": true,
|
"useDefineForClassFields": true,
|
||||||
"target": "ESNext",
|
"target": "ESNext",
|
||||||
"module": "ESNext",
|
"module": "CommonJS",
|
||||||
"moduleResolution": "node",
|
"moduleResolution": "node",
|
||||||
"strict": true,
|
"strict": true,
|
||||||
"jsx": "preserve",
|
"jsx": "preserve",
|
||||||
@@ -26,8 +26,8 @@
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
"lib": [
|
"lib": [
|
||||||
"esnext",
|
"ESNext",
|
||||||
"dom"
|
"DOM"
|
||||||
],
|
],
|
||||||
"types": [
|
"types": [
|
||||||
"vite/client"
|
"vite/client"
|
||||||
@@ -41,4 +41,7 @@
|
|||||||
"src/router/index.js",
|
"src/router/index.js",
|
||||||
"src/router/index.js",
|
"src/router/index.js",
|
||||||
],
|
],
|
||||||
|
"exclude": [
|
||||||
|
"./node_modules",
|
||||||
|
]
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user