diff --git a/src/config/CodeTable/index.js b/src/config/CodeTable/index.js
index ccfcbe5..19902b7 100644
--- a/src/config/CodeTable/index.js
+++ b/src/config/CodeTable/index.js
@@ -7719,32 +7719,32 @@ const CodeTable = {
     ],
     sndto: [],
     objtypcodetable: [
-        { label: 'Party', value: 'PTY   ' },
-        { label: 'Account', value: 'ACT   ' },
-        { label: 'Export L/C', value: 'LED   ' },
-        { label: 'Imoprt L/C', value: 'LID   ' },
-        { label: 'Country', value: 'CTY   ' },
-        { label: 'Guarantee', value: 'GID   ' },
-        { label: 'Reimbursement', value: 'RMD   ' },
-        { label: 'Import Collection', value: 'BCD   ' },
-        { label: 'Export Collection', value: 'BOD   ' },
-        { label: 'Advance', value: 'BPD   ' },
-        { label: 'Clean Payment', value: 'CPD   ' },
-        { label: 'Export L/C (Ind.)', value: 'LED   ' },
-        { label: 'Transferable L/C', value: 'LTD   ' },
-        { label: 'Manual Contract', value: 'MCD   ' },
-        { label: 'Participation', value: 'PAD   ' },
-        { label: 'Loan', value: 'TRD   ' },
-        { label: 'Condition', value: 'FEC   ' },
-        { label: 'Export L/C Documents', value: 'BED   ' },
-        { label: 'Import L/C Documents', value: 'BRD   ' },
-        { label: 'Transfer Documents', value: 'BTD   ' },
-        { label: 'Export Doc. (Ind.)', value: 'DED   ' },
-        { label: 'Reimbursement Claim', value: 'RCD   ' },
-        { label: '', value: 'BDD   ' },
-        { label: '', value: 'CLD   ' },
-        { label: '', value: 'DID   ' },
-        { label: '', value: 'GCD   ' },
+        { label: 'Party', value: 'PTY' },
+        { label: 'Account', value: 'ACT' },
+        { label: 'Export L/C', value: 'LED' },
+        { label: 'Imoprt L/C', value: 'LID' },
+        { label: 'Country', value: 'CTY' },
+        { label: 'Guarantee', value: 'GID' },
+        { label: 'Reimbursement', value: 'RMD' },
+        { label: 'Import Collection', value: 'BCD' },
+        { label: 'Export Collection', value: 'BOD' },
+        { label: 'Advance', value: 'BPD' },
+        { label: 'Clean Payment', value: 'CPD' },
+        { label: 'Export L/C (Ind.)', value: 'LED' },
+        { label: 'Transferable L/C', value: 'LTD' },
+        { label: 'Manual Contract', value: 'MCD' },
+        { label: 'Participation', value: 'PAD' },
+        { label: 'Loan', value: 'TRD' },
+        { label: 'Condition', value: 'FEC' },
+        { label: 'Export L/C Documents', value: 'BED' },
+        { label: 'Import L/C Documents', value: 'BRD' },
+        { label: 'Transfer Documents', value: 'BTD' },
+        { label: 'Export Doc. (Ind.)', value: 'DED' },
+        { label: 'Reimbursement Claim', value: 'RCD' },
+        { label: '', value: 'BDD' },
+        { label: '', value: 'CLD' },
+        { label: '', value: 'DID' },
+        { label: '', value: 'GCD' },
     ],
     subtypcodetable: [
         { label: 'General', value: 'INF' },
diff --git a/src/service/test/dia.js b/src/service/test/dia.js
new file mode 100644
index 0000000..f1aae32
--- /dev/null
+++ b/src/service/test/dia.js
@@ -0,0 +1,25 @@
+import Api from "~/service/Api"
+
+export function queryByPage(data) {
+    return Api.post("/service/dia/queryByPage", data)
+}
+
+export function queryById(data) {
+    return Api.post(`/service/dia/queryById`, data)
+}
+
+export function queryDetailById(data) {
+    return Api.post(`/service/dia/queryDetailById`, data)
+}
+
+export function add(data) {
+    return Api.post("/service/dia/add", data)
+}
+
+export function edit(data) {
+    return Api.post("/service/dia/edit", data)
+}
+
+export function deleteById(data) {
+    return Api.post(`/service/dia/deleteById`, data)
+}
\ No newline at end of file
diff --git a/src/service/test/fec.js b/src/service/test/fec.js
index 5a19bd8..44516cd 100644
--- a/src/service/test/fec.js
+++ b/src/service/test/fec.js
@@ -1,33 +1,33 @@
 import Api from "~/service/Api"
 
 export function queryByPage(data) {
-    return Api.post("/manager/fec/queryByPage", data)
+    return Api.post("/service/fec/queryByPage", data)
 }
 
 export function queryDetailById(inr) {
-    return Api.post(`/manager/fec/queryDetailById?inr=${inr}`)
+    return Api.post(`/service/fec/queryDetailById?inr=${inr}`)
 }
 
 export function add(data) {
-    return Api.post("/manager/fec/add", data)
+    return Api.post("/service/fec/add", data)
 }
 
 export function edit(data) {
-    return Api.post("/manager/fec/edit", data)
+    return Api.post("/service/fec/edit", data)
 }
 
 export function deleteById(inr) {
-    return Api.post(`/manager/fec/deleteById?inr=${inr}`)
+    return Api.post(`/service/fec/deleteById?inr=${inr}`)
 }
 
 export function addFeeData(inr,data) {
-    return Api.post(`/manager/fec/addFeeData?inr=${inr}`, data)
+    return Api.post(`/service/fec/addFeeData?inr=${inr}`, data)
 }
 
 export function editFeeData(inr,data) {
-    return Api.post(`/manager/fec/editFeeData?inr=${inr}`, data)
+    return Api.post(`/service/fec/editFeeData?inr=${inr}`, data)
 }
 
 export function deleteFeeData(data) {
-    return Api.post(`/manager/fec/deleteFeeData`, data)
+    return Api.post(`/service/fec/deleteFeeData`, data)
 }
\ No newline at end of file
diff --git a/src/service/test/fee.js b/src/service/test/fee.js
new file mode 100644
index 0000000..eb0db6f
--- /dev/null
+++ b/src/service/test/fee.js
@@ -0,0 +1,21 @@
+import Api from "~/service/Api"
+
+export function queryByPage(data) {
+    return Api.post("/service/fee/queryByPage", data)
+}
+
+export function queryById(inr) {
+    return Api.post(`/service/fee/queryById?inr=${inr}`)
+}
+
+export function add(data) {
+    return Api.post("/service/fee/add", data)
+}
+
+export function edit(data) {
+    return Api.post("/service/fee/edit", data)
+}
+
+export function deleteById(inr) {
+    return Api.post(`/service/fee/deleteById?inr=${inr}`)
+}
diff --git a/src/service/test/gtx.js b/src/service/test/gtx.js
index 848c3d0..5b955b1 100644
--- a/src/service/test/gtx.js
+++ b/src/service/test/gtx.js
@@ -1,21 +1,21 @@
 import Api from "~/service/Api"
 
 export function queryByPage(data) {
-    return Api.post("/manager/gtx/queryByPage", data)
+    return Api.post("/service/gtx/queryByPage", data)
 }
 
 export function queryDetailById(inr) {
-    return Api.post(`/manager/gtx/queryDetailById?inr=${inr}`)
+    return Api.post(`/service/gtx/queryDetailById?inr=${inr}`)
 }
 
 export function add(data) {
-    return Api.post("/manager/gtx/add", data)
+    return Api.post("/service/gtx/add", data)
 }
 
 export function edit(data) {
-    return Api.post("/manager/gtx/edit", data)
+    return Api.post("/service/gtx/edit", data)
 }
 
 export function deleteById(inr) {
-    return Api.post(`/manager/gtx/deleteById?inr=${inr}`)
+    return Api.post(`/service/gtx/deleteById?inr=${inr}`)
 }
diff --git a/src/service/test/lgb.js b/src/service/test/lgb.js
new file mode 100644
index 0000000..bd3fa5a
--- /dev/null
+++ b/src/service/test/lgb.js
@@ -0,0 +1,32 @@
+import Api from "~/service/Api"
+
+export function queryByPage(data) {
+    return Api.post("/service/lgb/queryByPage", data)
+}
+
+export function queryDetailById(inr) {
+    return Api.post(`/service/lgb/queryDetailById?inr=${inr}`)
+}
+
+export function queryPageByIdFromLgbAndLga(data) {
+    return Api.post("/service/lgb/queryPageByIdFromLgbAndLga", data)
+}
+
+export function queryByIdFromLgbAndLga(inr) {
+    return Api.post(`/service/lgb/queryByIdFromLgbAndLga?inr=${inr}`)
+}
+
+export function queryByIdFromLgo(inr) {
+    return Api.post(`/service/lgb/queryByIdFromLgo?inr=${inr}`)
+}
+export function add(data) {
+    return Api.post("/service/lgb/add", data)
+}
+
+export function edit(data) {
+    return Api.post("/service/lgb/edit", data)
+}
+
+export function deleteById(inr) {
+    return Api.post(`/service/lgb/deleteById?inr=${inr}`)
+}
diff --git a/src/service/test/ptm.js b/src/service/test/ptm.js
new file mode 100644
index 0000000..40cd873
--- /dev/null
+++ b/src/service/test/ptm.js
@@ -0,0 +1,26 @@
+import Api from "~/service/Api";
+
+export function queryByPage(data) {
+  return Api.post("/service/ptm/queryByPage", data);
+}
+
+export function queryById(inr) {
+  return Api.post(`/service/ptm/queryById?inr=${inr}`)
+}
+
+
+export function queryDetailById(inr) {
+  return Api.post(`/service/ptm/queryDetailById?inr=${inr}`)
+}
+
+export function add(data) {
+  return Api.post("/service/ptm/add", data);
+}
+
+export function edit(data) {
+  return Api.post("/service/ptm/edit", data);
+}
+
+export function deleteById(data) {
+  return Api.post(`/service/ptm/deleteById`, { data });
+}
diff --git a/src/service/test/tdh.js b/src/service/test/tdh.js
new file mode 100644
index 0000000..024fed7
--- /dev/null
+++ b/src/service/test/tdh.js
@@ -0,0 +1,33 @@
+import Api from "~/service/Api"
+
+export function queryByPage(data) {
+    return Api.post("/service/tdh/queryByPage", data)
+}
+
+export function queryById(inr) {
+    return Api.post(`/service/tdh/queryById?inr=${inr}`)
+}
+
+export function queryDetailById(data) {
+    return Api.post(`/service/tdh/queryDetailById`, data)
+}
+
+export function add(data) {
+    return Api.post("/service/tdh/add", data)
+}
+
+export function edit(data) {
+    return Api.post("/service/tdh/edit", data)
+}
+
+export function deleteById(data) {
+    return Api.post(`/service/tdh/deleteById`, data)
+}
+
+export function queryYearList(data) {
+    return Api.post(`/service/tdh/queryYearList`, data)
+}
+
+export function queryCalList(data) {
+    return Api.post(`/service/tdh/queryCalList`, data)
+}
\ No newline at end of file
diff --git a/src/service/test/ucl.js b/src/service/test/ucl.js
new file mode 100644
index 0000000..4263d3f
--- /dev/null
+++ b/src/service/test/ucl.js
@@ -0,0 +1,9 @@
+import Api from "~/service/Api"
+
+export function queryByPage(data) {
+    return Api.post("/manager/ucl/queryByPage", data)
+}
+
+export function edit(data) {
+    return Api.post("/manager/ucl/edit", data)
+}
\ No newline at end of file
diff --git a/src/service/test/usr.js b/src/service/test/usr.js
index 52abd44..b167065 100644
--- a/src/service/test/usr.js
+++ b/src/service/test/usr.js
@@ -1,44 +1,44 @@
 import Api from "~/service/Api"
 
 export function queryByPage(data) {
-    return Api.post("/manager/usr/queryByPage", data)
+    return Api.post("/service/usr/queryByPage", data)
 }
 
 export function queryDetailById(inr) {
-    return Api.post(`/manager/usr/queryDetailById?inr=${inr}`)
+    return Api.post(`/service/usr/queryDetailById?inr=${inr}`)
 }
 
 export function add(data) {
-    return Api.post("/manager/usr/add", data)
+    return Api.post("/service/usr/add", data)
 }
 
 export function edit(data) {
-    return Api.post("/manager/usr/edit", data)
+    return Api.post("/service/usr/edit", data)
 }
 
 export function deleteById(inr) {
-    return Api.post(`/manager/usr/deleteById?inr=${inr}`)
+    return Api.post(`/service/usr/deleteById?inr=${inr}`)
 }
 
 export function addUbrData(data) {
-    return Api.post(`/manager/usr/addUbrData`, data)
+    return Api.post(`/service/usr/addUbrData`, data)
 }
 
 export function updateUbrData(data) {
-    return Api.post(`/manager/usr/updateUbrData`, data)
+    return Api.post(`/service/usr/updateUbrData`, data)
 }
 
 export function deleteUbrData(inr) {
-    return Api.post(`/manager/usr/deleteUbrData?inr=${inr}`, inr)
+    return Api.post(`/service/usr/deleteUbrData?inr=${inr}`, inr)
 }
 export function addUclData(inr,data) {
-    return Api.post(`/manager/usr/addUclData?inr=${inr}`, data)
+    return Api.post(`/service/usr/addUclData?inr=${inr}`, data)
 }
 
 export function updateUclData(inr,data) {
-    return Api.post(`/manager/usr/updateUclData?inr=${inr}`, data)
+    return Api.post(`/service/usr/updateUclData?inr=${inr}`, data)
 }
 
 export function deleteUclData(usr, branchinr) {
-    return Api.post(`/manager/usr/deleteUclData?usr=${usr}&&branchinr=${branchinr}`, usr, branchinr)
+    return Api.post(`/service/usr/deleteUclData?usr=${usr}&&branchinr=${branchinr}`, usr, branchinr)
 }
\ No newline at end of file
diff --git a/src/views/Business/BusRouter.js b/src/views/Business/BusRouter.js
index 78d1b7d..73a3f2f 100644
--- a/src/views/Business/BusRouter.js
+++ b/src/views/Business/BusRouter.js
@@ -98,12 +98,13 @@ import Infbpd from "./Infbpd"
 import Inftxm from "./Inftxm"
 import Bctdav from "./Bctdav"
 import Bctcan from "./Bctcan"
-import Inffee from "./Inffee"
 import Infbcd from "./Infbcd"
 import Bdtcan from "./Bdtcan"
 import Fctcan from "./Fctcan"
 import Fctopn from "./Fctopn"
 
+
+
 import Bttcan from "./Bttcan"
 import Bttacc from "./Bttacc"
 import Cltdav from "./Cltdav"
@@ -270,6 +271,11 @@ import Dbfdel from "./Dbfdel"
 import Dbfinf from "./Dbfinf"
 
 //添加静态交易路由
+import Infact from "~/views/Statics/Act/views/Infact";
+import Dbiact from "~/views/Statics/Act/views/Dbiact";
+import Dbaact from "~/views/Statics/Act/views/Dbaact";
+import Dbeact from "~/views/Statics/Act/views/Dbeact";
+import Dbdact from "~/views/Statics/Act/views/Dbdact";
 
 import Infatp from "~/views/Statics/Atp/views/Infatp";
 import Dbiatp from "~/views/Statics/Atp/views/Dbiatp";
@@ -295,23 +301,45 @@ import Dbaoit from "~/views/Statics/Oit/views/Dbaoit"
 import Dbdoit from "~/views/Statics/Oit/views/Dbdoit"
 import Dbeoit from "~/views/Statics/Oit/views/Dbeoit"
 
+import Infptm from "~/views/Statics/Ptm/views/Infptm"
+import Dbiptm from "~/views/Statics/Ptm/views/Dbiptm"
+import Dbeptm from "~/views/Statics/Ptm/views/Dbeptm"
+
+import Inflgb from "~/views/Statics/Lgb/views/Inflgb"
+import Dbilgb from "~/views/Statics/Lgb/views/Dbilgb"
+import Dbalgb from "~/views/Statics/Lgb/views/Dbalgb"
+import Dbdlgb from "~/views/Statics/Lgb/views/Dbdlgb"
+import Dbelgb from "~/views/Statics/Lgb/views/Dbelgb"
+
 import Infcur from "~/views/Statics/cur/views/Infcur";
 import Dbacur from "~/views/Statics/cur/views/Dbacur";
 import Dbicur from "~/views/Statics/cur/views/Dbicur";
 import Dbecur from "~/views/Statics/cur/views/Dbecur";
 import Dbdcur from "~/views/Statics/cur/views/Dbdcur";
 
-import Inffec from "~/views/Statics/Inffec";
-import Dbifec from "~/views/Statics/Dbifec";
-import Dbafec from "~/views/Statics/Dbafec";
-import Dbefec from "~/views/Statics/Dbefec";
-import Dbdfec from "~/views/Statics/Dbdfec";
-
-import Infgtx from "~/views/Statics/Infgtx";
-import Dbigtx from "~/views/Statics/Dbigtx";
-import Dbagtx from "~/views/Statics/Dbagtx";
-import Dbegtx from "~/views/Statics/Dbegtx";
-import Dbdgtx from "~/views/Statics/Dbdgtx";
+import Inffee from "~/views/Statics/Fee/views/Inffee";
+import Dbifee from "~/views/Statics/Fee/views/Dbifee";
+import Dbafee from "~/views/Statics/Fee/views/Dbafee";
+import Dbefee from "~/views/Statics/Fee/views/Dbefee";
+import Dbdfee from "~/views/Statics/Fee/views/Dbdfee";
+
+import Inffec from "~/views/Statics/Fec/views/Inffec";
+import Dbifec from "~/views/Statics/Fec/views/Dbifec";
+import Dbafec from "~/views/Statics/Fec/views/Dbafec";
+import Dbefec from "~/views/Statics/Fec/views/Dbefec";
+import Dbdfec from "~/views/Statics/Fec/views/Dbdfec";
+
+import Infdia from "~/views/Statics/dia/views/Infdia"
+import Dbidia from '~/views/Statics/dia/views/Dbidia'
+import Dbadia from '~/views/Statics/dia/views/Dbadia'
+import Dbedia from '~/views/Statics/dia/views/Dbedia'
+import Dbddia from '~/views/Statics/dia/views/Dbddia'
+
+import Infgtx from "~/views/Statics/Gtx/views/Infgtx";
+import Dbigtx from "~/views/Statics/Gtx/views/Dbigtx";
+import Dbagtx from "~/views/Statics/Gtx/views/Dbagtx";
+import Dbegtx from "~/views/Statics/Gtx/views/Dbegtx";
+import Dbdgtx from "~/views/Statics/Gtx/views/Dbdgtx";
 
 import Infpty from "~/views/Statics/Infpty";
 import Dbipty from "~/views/Statics/Dbipty";
@@ -343,6 +371,12 @@ import Dbaxrt from "~/views/Statics/Xrt/views/Dbaxrt";
 import Dbexrt from "~/views/Statics/Xrt/views/Dbexrt";
 import Dbdxrt from "~/views/Statics/Xrt/views/Dbdxrt";
 
+import Dbatdh from "~/views/Statics/Tdh/views/Dbatdh";
+import Dbdtdh from "~/views/Statics/Tdh/views/Dbdtdh";
+import Dbetdh from "~/views/Statics/Tdh/views/Dbetdh";
+import Dbitdh from "~/views/Statics/Tdh/views/Dbitdh";
+import Inftdh from "~/views/Statics/Tdh/views/Inftdh";
+
 
 import Dbaswm from "~/views/Statics/Swm/views/Dbaswm";
 import Dbdswm from "~/views/Statics/Swm/views/Dbdswm";
@@ -496,7 +530,6 @@ const BusRouter = [
     { path: 'botcan', component: Botcan, name: 'Botcan', meta: { title: '出口托收闭卷' } },
     { path: 'inffec', component: Botset, name: 'Inffec', meta: { title: '费用条件查询' } },
     { path: 'inffee', component: Inffee, name: 'Inffee', meta: { title: '费用管理' } },
-    { path: 'infptm', component: Botset, name: 'Infptm', meta: { title: '客户BIC查询' } },
     { path: 'infbcd', component: Infbcd, name: 'Infbcd', meta: { title: '进口代收查询' } },
     { path: 'bdtcan', component: Bdtcan, name: 'Bdtcan', meta: { title: '买方信用证单据注销' } },
     { path: 'ditdla', component: Ditdla, name: 'Ditdla', meta: { title: '买方信用证减额接受' } },
@@ -636,11 +669,11 @@ const BusRouter = [
 
     { path: 'dzsys/:path', name: 'DzSys', meta: { title: (tag) => { return '电证 - ' + tag.params.title } } },
 
-    // { path: 'infact', component: Infact, name: 'StaticsInfact', meta: { title: '资金账户查询' } },
-    // { path: 'dbaact', component: Dbaact, name: 'StaticsDbaact', meta: { title: '资金账户新增' } },
-    // { path: 'dbiact/:inr', component: Dbiact, name: 'StaticsDbiact', meta: { title: (tag) => { return '资金账户详情: ' + tag.params.inr } } },
-    // { path: 'dbeact/:inr', component: Dbeact, name: 'StaticsDbeact', meta: { title: (tag) => { return '资金账户修改: ' + tag.params.inr } } },
-    // { path: 'dbdact/:inr', component: Dbdact, name: 'StaticsDbdact', meta: { title: (tag) => { return '资金账户删除: ' + tag.params.inr } } },
+    { path: 'infact', component: Infact, name: 'StaticsInfact', meta: { title: '资金账户查询' } },
+    { path: 'dbaact', component: Dbaact, name: 'StaticsDbaact', meta: { title: '资金账户新增' } },
+    { path: 'dbiact/:inr', component: Dbiact, name: 'StaticsDbiact', meta: { title: (tag) => { return '资金账户详情: ' + tag.params.inr } } },
+    { path: 'dbeact/:inr', component: Dbeact, name: 'StaticsDbeact', meta: { title: (tag) => { return '资金账户修改: ' + tag.params.inr } } },
+    { path: 'dbdact/:inr', component: Dbdact, name: 'StaticsDbdact', meta: { title: (tag) => { return '资金账户删除: ' + tag.params.inr } } },
 
     { path: 'infoit', component: Infoit, name: 'StaticsInfoit', meta: { title: '查询消息信息' } },
     { path: 'dbaoit', component: Dbaoit, name: 'StaticsDbaoit', meta: { title: '新增消息信息' } },
@@ -648,6 +681,10 @@ const BusRouter = [
     { path: 'dbeoit/:inr', component: Dbeoit, name: 'StaticsDbeoit', meta: { title: (tag) => { return '修改消息信息: ' + tag.params.inr } } },
     { path: 'dbdoit/:inr', component: Dbdoit, name: 'StaticsDbdoit', meta: { title: (tag) => { return '删除消息信息: ' + tag.params.inr } } },
 
+    { path: 'dbiptm/:inr', component:Dbiptm, name: 'StaticsDbiptm', meta: {  title: (tag) => { return '客户详情: ' + tag.params.inr } } },
+    { path: 'infptm', component:Infptm, name: 'StaticsInfptm', meta: { title: '银行密押查询' } },
+    { path: 'dbeptm/:inr', component: Dbeptm, name: 'StaticsDbeptm', meta: { title: (tag) => { return '银行密押更新: ' + tag.params.inr } } },
+
 
     { path: 'infatp', component: Infatp, name: 'StaticsInfatp', meta: { title: '交易配置信息查询' } },
     { path: 'dbaatp', component: Dbaatp, name: 'StaticsDbaatp', meta: { title: '交易配置信息新增' } },
@@ -673,6 +710,18 @@ const BusRouter = [
     { path: 'dbecur/:inr', component: Dbecur, name: 'StaticsDbecur', meta: { title: (tag) => { return '币种修改: ' + tag.params.inr } } },
     { path: 'dbdcur/:inr', component: Dbdcur, name: 'StaticsDbdcur', meta: { title: (tag) => { return '币种删除: ' + tag.params.inr } } },
 
+    { path: 'infdia', component: Infdia, name: 'StaticsInfdia', meta: { title: '交易备忘录查询' } },
+    { path: 'dbadia', component: Dbadia, name: 'StaticsDbadia', meta: { title: '交易备忘录新增' } },
+    { path: 'dbidia/:inr', component: Dbidia, name: 'StaticsDbidia', meta: { title: (tag) => { return '交易备忘录详情: ' + tag.params.inr } } },
+    { path: 'dbedia/:inr', component: Dbedia, name: 'StaticsDbedia', meta: { title: (tag) => { return '交易备忘录修改: ' + tag.params.inr } } },
+    { path: 'dbddia/:inr', component: Dbddia, name: 'StaticsDbddia', meta: { title: (tag) => { return '交易备忘录删除: ' + tag.params.inr } } },
+
+    { path: 'inffee', component: Inffee, name: 'StaticsInffee', meta: { title: '费用代码查询' } },
+    { path: 'dbafee', component: Dbafee, name: 'StaticsDbafee', meta: { title: '费用代码新增' } },
+    { path: 'dbifee/:inr', component: Dbifee, name: 'StaticsDbifee', meta: { title: (tag) => { return '费用代码详情: ' + tag.params.inr } } },
+    { path: 'dbefee/:inr', component: Dbefee, name: 'StaticsDbefee', meta: { title: (tag) => { return '费用代码修改: ' + tag.params.inr } } },
+    { path: 'dbdfee/:inr', component: Dbdfee, name: 'StaticsDbdfee', meta: { title: (tag) => { return '费用代码删除: ' + tag.params.inr } } },
+
     { path: 'inffec', component: Inffec, name: 'StaticsInffec', meta: { title: '费率查询' } },
     { path: 'dbafec', component: Dbafec, name: 'StaticsDbafec', meta: { title: '费率新增' } },
     { path: 'dbifec/:inr', component: Dbifec, name: 'StaticsDbifec', meta: { title: (tag) => { return '费率详情: ' + tag.params.inr } } },
@@ -720,5 +769,18 @@ const BusRouter = [
     { path: 'dbaxrt', component: Dbaxrt, name: 'StaticsDbaxrt', meta: { title: '牌价新增' } },
     { path: 'dbexrt/:inr', component: Dbexrt, name: 'StaticsDbexrt', meta: { title: (tag) => { return '牌价修改: ' + tag.params.inr } } },
     { path: 'dbdxrt/:inr', component: Dbdxrt, name: 'StaticsDbdxrt', meta: { title: (tag) => { return '牌价删除: ' + tag.params.inr } } },
+
+    { path: 'inflgb', component: Inflgb, name: 'StaticsInflgb', meta: { title: '查询保函额度信息' } },
+    { path: 'dbalgb', component: Dbalgb, name: 'StaticsDbalgb', meta: { title: '新增保函额度信息' } },
+    { path: 'dbilgb/:inr', component: Dbilgb, name: 'StaticsDbilgb', meta: { title: (tag) => { return '查看保函额度详情信息: ' + tag.params.inr } } },
+    { path: 'dbelgb/:inr', component: Dbelgb, name: 'StaticsDbelgb', meta: { title: (tag) => { return '修改保函额度信息: ' + tag.params.inr } } },
+    { path: 'dbdlgb/:inr', component: Dbdlgb, name: 'StaticsDbdlgb', meta: { title: (tag) => { return '删除保函额度信息: ' + tag.params.inr } } },
+ 
+
+    { path: 'inftdh', component: Inftdh, name: 'StaticsInftdh', meta: { title: '节假日信息查询' } },
+    { path: 'dbitdh/:inr', component: Dbitdh, name: 'StaticsDbitdh', meta: { title: (tag) => { return '节假日信息详情: ' + tag.params.inr } } },
+    { path: 'dbatdh', component: Dbatdh, name: 'StaticsDbatdh', meta: { title: '节假日新增' } },
+    { path: 'dbetdh/:inr', component: Dbetdh, name: 'StaticsDbetdh', meta: { title: (tag) => { return '节假日修改: ' + tag.params.inr } } },
+    { path: 'dbdtdh/:inr', component: Dbdtdh, name: 'StaticsDbdtdh', meta: { title: (tag) => { return '节假日删除: ' + tag.params.inr } } },
 ]
 export default BusRouter
\ No newline at end of file
diff --git a/src/views/Layout/SideMenu.vue b/src/views/Layout/SideMenu.vue
index a788a95..4fe6696 100644
--- a/src/views/Layout/SideMenu.vue
+++ b/src/views/Layout/SideMenu.vue
@@ -194,6 +194,7 @@ export default {
         { inifrm: "infatp", ininam: "交易模式配置查询", pntmiu: "10" },
          { inifrm: "infbch", ininam: "机构信息查询", pntmiu: "10" },
          { inifrm: 'infoit', ininam: '消息信息查询OIT', pntmiu: '10' },
+         { inifrm: 'infptm', ininam: '银行密押查询', pntmiu: '10' }, 
         { inifrm: "infcty", ininam: "国别信息查询", pntmiu: "10" },
          { inifrm: "infcur", ininam: "币种信息查询", pntmiu: "10" },
         { inifrm: "inffec", ininam: "费率信息查询", pntmiu: "10" },
@@ -201,6 +202,7 @@ export default {
         { inifrm: "infpty", ininam: "客户信息查询", pntmiu: "10" },
         { inifrm: "inftrl", ininam: "交易权限查询", pntmiu: "10" },
         { inifrm: "infusr", ininam: "柜员信息查询", pntmiu: "10" },
+        { inifrm: "infdia", ininam: "交易备忘录查询", pntmiu: "10" },
         // { inifrm: "gitset", ininam: "进口保函赔付", pntmiu: "13" },
         // { inifrm: "gitcrq", ininam: "进口保函索赔登记", pntmiu: "13" },
         { inifrm: "14", ininam: "服务管理", pntmiu: "" },
diff --git a/src/views/Statics/Act/model/Act.js b/src/views/Statics/Act/model/Act.js
new file mode 100644
index 0000000..29f8689
--- /dev/null
+++ b/src/views/Statics/Act/model/Act.js
@@ -0,0 +1,184 @@
+export default class Act {
+	constructor() {
+		this.data = {
+        inr: "",
+        pri: "",
+        cur: "",
+        extkey: "",
+        seracc: "",
+        sernam: "",
+        serptytyp: "",
+        serptyinr: "",
+        holacc: "",
+        holnam: "",
+        holptytyp: "",
+        holptyinr: "",
+        cvrflg: "",
+        rmbflg: "",
+        delflg: "",
+        ver: "",
+        dirflg: "",
+        othbnkflg: "",
+        othptynam: "",
+        othownflg: "",
+        othbic6: "",
+        iban: "",
+        etgextkey: "",
+        nam: "",
+        exttyp: "",
+        typ: "",
+        extact: "",
+        trmtyp: "",
+        acctyp: "",
+        zmqacc: "",
+        actpro: "",
+        ptyExtkey:"",
+        ptyInr:"",
+        holPtyExtkey:"",
+        serPtyExtkey:"",
+      }
+    }
+  }
+
+export const Pattern = {
+  "inr": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+	],
+  "pri": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+	],
+	"cur": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 3, "message": "最大长度3个字符", "trigger": "blur" }
+	],
+	"extkey": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 34, "message": "最大长度34个字符", "trigger": "blur" }
+	],
+	"seracc": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 34, "message": "最大长度34个字符", "trigger": "blur" }
+	],
+	"sernam": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 40, "message": "最大长度40个字符", "trigger": "blur" }
+	],
+	"serptytyp": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+	],
+	"serptyinr": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+	],
+	"holacc": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 34, "message": "最大长度34个字符", "trigger": "blur" }
+	],
+	"holnam": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 40, "message": "最大长度40个字符", "trigger": "blur" }
+	],
+	"holptytyp": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+	],
+	"holptyinr": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+	],
+	"cvrflg": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+	],
+	"rmbflg": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+	],
+	"delflg": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+	],
+	"ver": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 4, "message": "最大长度4个字符", "trigger": "blur" }
+	],
+	"dirflg": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+	],
+	"othbnkflg": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+	],
+	"othptynam": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 40, "message": "最大长度40个字符", "trigger": "blur" }
+	],
+	"othownflg": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+	],
+	"othbic6": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 6, "message": "最大长度6个字符", "trigger": "blur" }
+	],
+	"iban": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 34, "message": "最大长度34个字符", "trigger": "blur" }
+	],
+	"etgextkey": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+	],
+	"nam": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 40, "message": "最大长度40个字符", "trigger": "blur" }
+	],
+	"exttyp": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 3, "message": "最大长度3个字符", "trigger": "blur" }
+	],
+	"typ": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 3, "message": "最大长度3个字符", "trigger": "blur" }
+	],
+	"extact": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+	],
+	"trmtyp": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 6, "message": "最大长度6个字符", "trigger": "blur" }
+	],
+	"acctyp": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+	],
+	"zmqacc": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 35, "message": "最大长度35个字符", "trigger": "blur" }
+	],
+	"actpro": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 4, "message": "最大长度4个字符", "trigger": "blur" }
+	],
+  "ptyInr": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+	],
+  "holPtyExtkey": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 24, "message": "最大长度24个字符", "trigger": "blur" }
+	],
+  "serPtyExtkey": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 24, "message": "最大长度24个字符", "trigger": "blur" }
+	],
+  "ptyExtkey": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 24, "message": "最大长度24个字符", "trigger": "blur" }
+	],
+}
\ No newline at end of file
diff --git a/src/views/Statics/Act/views/Dbaact/index.vue b/src/views/Statics/Act/views/Dbaact/index.vue
new file mode 100644
index 0000000..107e384
--- /dev/null
+++ b/src/views/Statics/Act/views/Dbaact/index.vue
@@ -0,0 +1,22 @@
+<template>
+	<m-act title="dbaact" type="add"></m-act>
+</template>
+
+<script>
+import Dbiact from "~/views/Statics/Act/views/Dbiact";
+
+export default {
+  name: "StaticsDbaact",
+	components: {
+		"m-act": Dbiact
+	},
+  data() {
+    return {};
+  },
+  mounted() {
+  }
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Act/views/Dbdact/index.vue b/src/views/Statics/Act/views/Dbdact/index.vue
new file mode 100644
index 0000000..dcfb536
--- /dev/null
+++ b/src/views/Statics/Act/views/Dbdact/index.vue
@@ -0,0 +1,20 @@
+<template>
+	<m-act title="dbdact" type="delete"></m-act>
+</template>
+
+<script>
+import Dbiact from "~/views/Statics/Act/views/Dbiact";
+
+export default {
+  name: "StaticsDbdact",
+	components: {
+		"m-act": Dbiact
+	},
+  data() {
+    return {};
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Act/views/Dbeact/index.vue b/src/views/Statics/Act/views/Dbeact/index.vue
new file mode 100644
index 0000000..ec196cc
--- /dev/null
+++ b/src/views/Statics/Act/views/Dbeact/index.vue
@@ -0,0 +1,20 @@
+<template>
+	<m-act title="dbeact" type="edit"></m-act>
+</template>
+
+<script>
+import Dbiact from "~/views/Statics/Act/views/Dbiact";
+
+export default {
+  name: "StaticsDbeact",
+	components: {
+		"m-act": Dbiact
+	},
+  data() {
+    return {};
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Act/views/Dbiact/ActInfo.vue b/src/views/Statics/Act/views/Dbiact/ActInfo.vue
new file mode 100644
index 0000000..ef06646
--- /dev/null
+++ b/src/views/Statics/Act/views/Dbiact/ActInfo.vue
@@ -0,0 +1,243 @@
+<template>
+    <div class="eibs-tab">
+        <!-- =============================================左边=========================================== -->
+
+    <c-col :span="12" class="col-left">
+      <!-- <c-col :span="24">
+        <el-form-item label="inr" prop="inr">
+            <c-input
+                v-model="model.inr"
+                placeholder="请输入inr"
+            >
+            </c-input>
+        </el-form-item>
+    </c-col> -->
+      <c-col :span="24" v-if="model.serPtyExtkey=='' || model.serPtyExtkey==null" disabled>
+        <el-form-item label="holPtyExtkey" prop="holPtyExtkey">
+          <c-input v-model="model.holPtyExtkey" placeholder=""> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24" v-if="model.holPtyExtkey==''|| model.holPtyExtkey==null" disabled>
+        <el-form-item label="serPtyExtkey" prop="serPtyExtkey">
+          <c-input v-model="model.serPtyExtkey" placeholder=""> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="账号优先级" prop="pri">
+          <c-select style="width: 100%"
+                v-model="model.pri"
+               placeholder="请选择账号优先级"
+                :code="getCodesByKey('pri')"
+            >
+            </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="账号币种" prop="cur">
+          <c-select v-model="model.cur" style="width: 100%" placeholder="请选择账号币种" :code="getCodesByKey('curtxt')"> </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="账号" prop="extkey">
+          <c-input v-model="model.extkey" placeholder="请输入账号" > </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="账号提供机构的账号" prop="seracc">
+          <c-input v-model="model.seracc" placeholder="请输入账号提供机构的账号" > </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="账号提供机构名称" prop="sernam">
+          <c-input v-model="model.sernam" placeholder="请输入账号提供机构名称" > </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="账号提供机构种类" prop="serptytyp">
+          <c-select v-model="model.serptytyp" style="width: 100%" placeholder="请选择账号提供机构种类" :code="getCodesByKey('ptytyp')">
+          </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="账号提供机构INR号" prop="serptyinr">
+          <c-input v-model="model.serptyinr" placeholder="请输入serptyinr" >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="账号开户机构的账号" prop="holacc">
+          <c-input v-model="model.holacc" placeholder="请输入账号开户机构的账号" > </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="账号开户机构名称" prop="holnam">
+          <c-input v-model="model.holnam" placeholder="请输入账号开户机构名称" > </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="账号开户机构类型" prop="holptytyp">
+          <c-select v-model="model.holptytyp" style="width: 100%" placeholder="请选择账号开户机构类型" :code="getCodesByKey('ptytyp')">
+          </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="账号开户机构INR号" prop="holptyinr">
+          <c-input v-model="model.holptyinr" placeholder="请输入holptyinr" >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="头寸账户标志" prop="cvrflg">
+          <c-input v-model="model.cvrflg" placeholder="请输入头寸账户标志" > </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="偿付账户标志" prop="rmbflg">
+          <c-input v-model="model.rmbflg" placeholder="请输入偿付账户标志" > </c-input>
+        </el-form-item>
+      </c-col>
+      <!-- <c-col :span="24">
+        <el-form-item label="版本文本" prop="ver">
+          <c-input v-model="model.ver" placeholder="请输入ver" > </c-input>
+        </el-form-item>
+      </c-col> -->
+    </c-col>
+    <!-- =============================================右边=========================================== -->
+    <c-col :span="12" class="col-right">
+      <c-col :span="24">
+        <el-form-item label="借贷标志" prop="dirflg">
+          <c-select v-model="model.dirflg" style="width: 100%" placeholder="请输入借贷标志" >
+            <el-option
+              v-for="item in dirflg"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="是否账户行账号标志" prop="othbnkflg">
+          <c-input v-model="model.othbnkflg" placeholder="请输入othbnkflg" >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="账户行名称" prop="othptynam">
+          <c-input v-model="model.othptynam" placeholder="请输入账户行名称" >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="是否我方账户行标志" prop="othownflg">
+          <c-input v-model="model.othownflg" placeholder="请输入othownflg" >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="账户行的6位BIC" prop="othbic6">
+          <c-input v-model="model.othbic6" placeholder="请输入账户行的6位BIC" >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="国际银行账户号" prop="iban">
+          <c-input v-model="model.iban" placeholder="请输入国际银行账户号" > </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="实体组" prop="etgextkey">
+          <c-input v-model="model.etgextkey" placeholder="请输入实体组" >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="账号名称" prop="nam">
+          <c-input v-model="model.nam" placeholder="请输入账号名称" > </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="外部账号类型" prop="exttyp">
+          <c-input v-model="model.exttyp" placeholder="请输入外部账号类型" > </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="账号类型" prop="typ">
+          <c-select style="width: 100%"
+                v-model="model.typ"
+               placeholder="请选择账号类型"
+                :code="getCodesByKey('acttyp')"
+            >
+            </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="外部账号" prop="extact">
+          <c-input v-model="model.extact" placeholder="请输入外部账号" > </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="科目代码" prop="trmtyp">
+          <c-input v-model="model.trmtyp" placeholder="请输入科目代码" > 
+          </c-input>
+          <!-- :code="getCodesByKey('trmmix')" td上看码表-->
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="账户类型" prop="acctyp">
+          <c-select v-model="model.acctyp" style="width: 100%" placeholder="请选择账户类型" > 
+            <el-option
+              v-for="item in acctyp"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="zmqacc" prop="zmqacc">
+          <c-input v-model="model.zmqacc" placeholder="请输入zmqacc" > </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="actpro" prop="actpro">
+          <c-input v-model="model.actpro" placeholder="请输入actpro" > </c-input>
+        </el-form-item>
+      </c-col>
+    </c-col>
+  </div>
+</template>
+
+<script>
+import codes from "~/config/CodeTable";
+export default {
+  name: '',
+  props: ['model'],
+  data() {
+    return {
+      acctyp: [
+        { label: "客户分户账", value: "C" },
+        { label: "内部分户账", value: "O" },
+      ],
+      dirflg: [
+        { label: "可以借记或贷记", value: " " },
+        { label: "只能贷记", value: "C" },
+        { label: "只能借记", value: "D" },
+      ],
+    }
+  },
+
+  mounted() {},
+
+  methods: {
+    getCodesByKey(key) {
+      return codes[key] ?? [];
+    },
+  },
+}
+</script>
+
+<style></style>
diff --git a/src/views/Statics/Act/views/Dbiact/index.vue b/src/views/Statics/Act/views/Dbiact/index.vue
new file mode 100644
index 0000000..b34e3a1
--- /dev/null
+++ b/src/views/Statics/Act/views/Dbiact/index.vue
@@ -0,0 +1,172 @@
+<template>
+  <div class="eContainer">
+    <c-page :title="title">
+      <el-form
+        ref="modelForm"
+        label-width="150px"
+        size="small"
+        label-position="right"
+        :model="model"
+        :rules="rules"
+        :validate-on-rule-change="false"
+        :disabled="isDisabled"
+      >
+        <c-tabs v-model="tabVal" ref="elment" type="card">
+          <el-tab-pane label="基本信息" name="act">
+            <c-content>
+              <m-act-info :model="model" />
+            </c-content>
+          </el-tab-pane>
+        </c-tabs>
+      </el-form>
+      <div style="text-align: center">
+        <c-button
+          type="primary"
+          style="margin-right: 10px"
+          @click="commitAdd"
+          v-if="type === 'add'"
+          >提 交</c-button
+        >
+        <c-button
+          type="primary"
+          style="margin-right: 10px"
+          @click="commitEdit"
+          v-if="type === 'edit'"
+          >提 交</c-button
+        >
+        <c-button
+          type="primary"
+          style="margin-right: 10px"
+          @click="commitDelete"
+          v-if="type === 'delete'"
+          >删 除</c-button
+        >
+        <c-button type="primary" @click="goBack">返 回</c-button>
+      </div>
+    </c-page>
+  </div>
+</template>
+
+<script>
+import Utils from "~/utils";
+
+import Act, { Pattern } from "../../model/Act.js";
+
+import ActInfo from "./ActInfo.vue";
+
+import { queryDetailById, add, edit, deleteById } from "~/service/test/act.js";
+
+export default {
+  name: "StaticsDbiact",
+  components: {
+    "m-act-info": ActInfo,
+  },
+  provide() {
+    return {
+      root: this,
+    };
+  },
+  props: {
+		type: {
+			type: String,
+			default: "info"
+		},
+		title: {
+			type: String,
+			default: "dbiact"
+		}
+	},
+  data() {
+    return {
+      model: new Act().data,
+      tabVal: "act",
+      rules: Pattern,
+    };
+  },
+  computed: {
+    isDisabled() {
+      return this.type === "info" || this.type === "delete";
+    },
+  },
+  created() {
+    if (this.type !== "add") {
+      const inr = this.$route.params.inr;
+      queryDetailById(inr).then((res) => {
+        if (res.inr) {
+          this.model = res;
+        } else {
+          this.$message.error("资金账户不存在")
+        }
+      });
+    }
+  },
+  methods: {
+    commitAdd() {
+      this.$refs.modelForm.validate((validated) => {
+        if (validated) {
+          add(this.model)
+            .then((res) => {
+              this.$message.success("保存成功!");
+              this.goBack(true)
+            })
+            .catch((err) => {
+              this.$message.error("保存失败!");
+            });
+        } else {
+          Utils.formValidateTips(this.$refs.modelForm.fields)
+        }
+      });
+    },
+    commitEdit() {
+      this.$refs.modelForm.validate((validated) => {
+        if (validated) {
+          edit(this.model)
+            .then((res) => {
+              this.$message.success("保存成功!");
+              this.goBack()
+            })
+            .catch((err) => {
+              this.$message.error("保存失败!");
+            });
+        } else {
+          Utils.formValidateTips(this.$refs.modelForm.fields)
+        }
+      });
+    },
+    commitDelete() {
+      this.$confirm("是否确认删除?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          deleteById(this.model.inr)
+            .then((res) => {
+              this.$message.success("删除成功!");
+              this.goBack(true)
+            })
+            .catch((err) => {
+              this.$message.error("删除失败!");
+            });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
+    },
+    /**
+     * update 是否更新infpty的查询列表
+     */
+    goBack(update) {
+      this.$store.dispatch("TagsView/delView", this.$route);
+      this.$router.push({ name: "StaticsInfact", params: { update } });
+    },
+
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Act/views/Infact/Infsea.vue b/src/views/Statics/Act/views/Infact/Infsea.vue
new file mode 100644
index 0000000..929909d
--- /dev/null
+++ b/src/views/Statics/Act/views/Infact/Infsea.vue
@@ -0,0 +1,235 @@
+<template>
+  <div class="eibs-tab">
+    <!-- 参照TD上infxxx,如infpty/infact交易的search panel面板,对应布局查询条件字段 -->
+    <!-- ----------左 ---------->
+    <c-col :span="12" class="col-left">
+      <c-col :span="24">
+        <!-- Account No. -->
+        <el-form-item label="资金账号" prop="extkey">
+            <c-input
+                v-model="model.extkey"
+                placeholder="请输入资金账号"
+            >
+            </c-input>
+        </el-form-item>
+    </c-col>
+    <c-col :span="24">
+      <!-- Holding Party -->
+        <el-form-item label="客户账户" prop="ptyExtkey">
+            <c-input
+                v-model="model.ptyExtkey"
+                placeholder="请输入客户账户"
+            >
+            </c-input>
+        </el-form-item>
+    </c-col>
+      <c-col :span="24">
+        <el-form-item label="账号类型" prop="typ">
+          <c-select
+            v-model="model.typ"
+            placeholder="请选择账号类型"
+            style="width: 100%"
+            :code="getCodesByKey('recgrptyp')"
+          ></c-select>
+        </el-form-item>
+      </c-col>
+    </c-col>
+    <!-- =========================------------- 右 ----------======================= -->
+    <c-col :span="12" class="col-right">
+      <c-col :span="24">
+        <el-form-item label="账号名称" prop="nam">
+          <c-input
+            v-model="model.nam"
+            placeholder="请输入账号名称"
+          ></c-input>
+        </el-form-item>
+      </c-col>
+
+      <c-col :span="24">
+        <el-form-item label="国际银行账户号 " prop="iban">
+          <c-input
+            v-model="model.iban"
+            maxlength="34"
+            placeholder="请输入国际银行账户号"
+          ></c-input>
+        </el-form-item>
+      </c-col>
+
+      <c-col :span="24">
+        <el-form-item label="账号币种" prop="cur">
+          <c-select
+            v-model="model.cur"
+            style="width: 100%"
+            placeholder="请选择账号币种"
+            :code="getCodesByKey('infled_Cur')"
+          >
+          </c-select>
+        </el-form-item>
+      </c-col>
+    </c-col>
+
+    <c-col :span="24">
+      <c-col :span="12" style="text-align: left">
+        <el-button type="primary" size="small" @click="actAdd">新增</el-button>
+      </c-col>
+      <c-col :span="12" style="text-align: right">
+        <el-button size="small" @click="handleReset">重置</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="small"
+          @click="onSearch()"
+          >查询
+        </el-button>
+      </c-col>
+    </c-col>
+    <c-col :span="24">
+      <c-paging-table 
+        :data="actData"
+        :columns="actColumns"
+        :pageNumber="model.pageNum"
+        :pageSize="model.pageSize"
+        :total="model.total"
+        v-on:queryFunc="queryFunc"
+        :border="true"
+      >
+        <c-table-column fixed="right" prop="op" label="操作" width="240px">
+          <template slot-scope="{ scope }">
+            <c-button
+              style="margin-left: 0"
+              size="small"
+              @click="actInfo(scope.$index, scope.row)"
+              >详情</c-button
+            >
+            <c-button
+              style="margin-left: 5px"
+              size="small"
+              type="primary"
+              @click="actEdit(scope.$index, scope.row)"
+              >修改</c-button
+            >
+            <c-button
+              size="small"
+              style="margin-left: 5px"
+              @click="actDelete(scope.$index, scope.row)"
+              >删除</c-button
+            >
+            <el-popover placement="top-start" width="50" trigger="click">
+              <ul class="table-button-item-list">
+                <li>
+                  <c-button size="small" style="margin-left: 0">指派</c-button>
+                </li>
+                <li>
+                  <c-button size="small" style="margin-left: 0">删除</c-button>
+                </li>
+              </ul>
+              <a
+                slot="reference"
+                href="javascript:void(0)"
+                style="margin-left: 5px"
+              >
+                <i class="el-icon-more"></i>
+              </a>
+            </el-popover>
+          </template>
+        </c-table-column>
+      </c-paging-table>
+    </c-col>
+  </div>
+</template>
+
+<script>
+import codes from "~/config/CodeTable";
+
+import { queryByPage } from "~/service/test/act.js";
+
+export default {
+  name: "",
+  props: ["model"],
+  inject: ["root"],
+  data() {
+    return {
+      actData: [],
+      actColumns: [
+        { label: 'HolPtyExtkey', prop: 'holPtyExtkey', width: '200' },
+				{ label: 'SerPtyExtkey', prop: 'serPtyExtkey', width: '200' },
+        { label: '账号名称', prop: 'nam', width: '200' },
+				{ label: '账号类型', prop: 'typ', width: '100' },
+				{ label: '账号币种', prop: 'cur', width: '100' },
+				{ label: '资金账号', prop: 'extkey', width: '200' },
+				{ label: '账号开户机构的账号', prop: 'holacc', width: '200' },
+				{ label: '账号提供机构的账号', prop: 'seracc', width: '200' },
+        { label: '客户账户', prop: 'serPtyExtkey', width: '200' },
+        { label: '国际银行账户号', prop: 'iban', width: '200' },
+			],
+    };
+  },
+  computed: {
+  },
+  activated() {
+    const { update } = this.$route.params
+    if (update) {
+      this.onInfactSearch()
+    }
+  },
+  methods: {
+    handleReset() {
+      this.root.$refs.modelForm.resetFields();
+    },
+    onSearch(){
+        this.model.pageNum = 1;
+        this.model.pageSize = 5;
+        this.onInfactSearch();
+
+    },
+    onInfactSearch() {
+			queryByPage(this.model).then(res => {
+        /**
+         * pageNumber: 0
+         * pageSize:	0
+         * total: 69
+         * totalPage: 0
+         */
+        const list = res.list
+        this.actData = list
+        this.model.pageNum = res.pageNumber
+        this.model.pageSize = res.pageSize
+        this.model.total = res.total
+      }) 
+		},
+    queryFunc(pageNumber, pageSize) {
+      this.model.pageNum = pageNumber
+      this.model.pageSize = pageSize
+      this.onInfactSearch()
+    },
+    getCodesByKey(key) {
+      return codes[key] ?? [];
+    },
+    actAdd() {
+			this.$router.push(`/statics/dbaact`)
+		},
+    actInfo(index, row) {
+			this.$router.push(`/statics/dbiact/${row.inr}`)
+		},
+    actEdit(index, row) {
+			this.$router.push(`/statics/dbeact/${row.inr}`)
+		},
+    actDelete(index, row) {
+			this.$router.push(`/statics/dbdact/${row.inr}`)
+		},
+  },
+};
+</script>
+
+<style scoped>
+.table-button-item-list {
+  padding: 0;
+  margin: 0;
+}
+.table-button-item-list li {
+  list-style: none;
+  padding: 5px 0;
+  text-align: center;
+  color: #606266;
+  cursor: pointer;
+}</style>
diff --git a/src/views/Statics/Act/views/Infact/index.vue b/src/views/Statics/Act/views/Infact/index.vue
new file mode 100644
index 0000000..0b7fd05
--- /dev/null
+++ b/src/views/Statics/Act/views/Infact/index.vue
@@ -0,0 +1,57 @@
+<template>
+  <div class="eContainer">
+    <c-page title="资金账户信息查询">
+      <el-form
+        :model="model"
+        ref="modelForm"
+        label-width="120px"
+        label-position="right"
+        size="small"
+      >
+        <c-tabs v-model="tabVal" ref="elment" type="card">
+          <!--PD000039 -->
+          <el-tab-pane label="资金账户查询" name="infsea">
+            <c-content>
+              <m-infsea :model="model" ref="infsea" />
+            </c-content>
+          </el-tab-pane>
+        </c-tabs>
+      </el-form>
+    </c-page>
+  </div>
+</template>
+
+<script>
+import Infsea from "./Infsea";
+
+export default {
+  name: "StaticsInfact",
+  components: {
+    "m-infsea": Infsea,
+  },
+  provide() {
+    return {
+      root: this,
+    };
+  },
+  data() {
+    return {
+      tabVal: "infsea",
+      model: {
+        // act,查询条件的字段
+        extkey: "",
+        nam: "",
+        iban: "",
+        typ: "",
+        cur: "",
+        ptyExtkey:"",
+        pageNum: 1,
+        pageSize: 5,
+        total: 0
+      },
+    };
+  },
+};
+</script>
+
+<style></style>
diff --git a/src/views/Statics/Apf/model/Apf.js b/src/views/Statics/Apf/model/Apf.js
new file mode 100644
index 0000000..b3d2223
--- /dev/null
+++ b/src/views/Statics/Apf/model/Apf.js
@@ -0,0 +1,47 @@
+export default class Apf {
+	constructor() {
+		this.data = {
+			inr: "",
+            cod: "",
+            typ: "",
+            cnt: "",
+            edtflg: "",
+            tef: "",
+            pri: "",
+            ver: "",
+		}
+	}
+}
+
+export const Pattern = {
+	"inr": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+	],
+	"cod": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 6, "message": "最大长度6个字符", "trigger": "blur" }
+	],
+	"typ": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 3, "message": "最大长度3个字符", "trigger": "blur" }
+	],
+	"cnt": [
+		{ "required": true, "message": "必输项", "trigger": "blur" },
+		{ "pattern": /^-?\d{0,4}$/, "message": "整数不能超过4位", "trigger": "blur" }
+	],
+	"edtflg": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+	],
+	"tef": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 3, "message": "最大长度3个字符", "trigger": "blur" }
+	],
+	"pri": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 2, "message": "最大长度2个字符", "trigger": "blur" }
+	]
+}
+
+
diff --git a/src/views/Statics/Apf/views/Dbaapf/index.vue b/src/views/Statics/Apf/views/Dbaapf/index.vue
new file mode 100644
index 0000000..c59fc43
--- /dev/null
+++ b/src/views/Statics/Apf/views/Dbaapf/index.vue
@@ -0,0 +1,20 @@
+<template>
+	<m-apf ref="apf" title="dbaapf" type="add"></m-apf>
+</template>
+
+<script>
+import Dbiapf from "~/views/Statics/Apf/views/Dbiapf";
+
+export default {
+  name: "StaticsDbaapf",
+	components: {
+		"m-apf": Dbiapf
+	},
+  data() {
+    return {};
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Apf/views/Dbdapf/index.vue b/src/views/Statics/Apf/views/Dbdapf/index.vue
new file mode 100644
index 0000000..36a1386
--- /dev/null
+++ b/src/views/Statics/Apf/views/Dbdapf/index.vue
@@ -0,0 +1,20 @@
+<template>
+	<m-apf title="dbdapf" type="delete"></m-apf>
+</template>
+
+<script>
+import Dbiapf from "~/views/Statics/Apf/views/Dbiapf";
+
+export default {
+  name: "StaticsDbdapf",
+	components: {
+		"m-apf": Dbiapf
+	},
+  data() {
+    return {};
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Apf/views/Dbeapf/index.vue b/src/views/Statics/Apf/views/Dbeapf/index.vue
new file mode 100644
index 0000000..13ebfc4
--- /dev/null
+++ b/src/views/Statics/Apf/views/Dbeapf/index.vue
@@ -0,0 +1,20 @@
+<template>
+	<m-apf title="dbeapf" type="edit"></m-apf>
+</template>
+
+<script>
+import Dbiapf from "~/views/Statics/Apf/views/Dbiapf";
+
+export default {
+  name: "StaticsDbeapf",
+	components: {
+		"m-apf": Dbiapf
+	},
+  data() {
+    return {};
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Apf/views/Dbiapf/ApfInfo.vue b/src/views/Statics/Apf/views/Dbiapf/ApfInfo.vue
new file mode 100644
index 0000000..72b7275
--- /dev/null
+++ b/src/views/Statics/Apf/views/Dbiapf/ApfInfo.vue
@@ -0,0 +1,57 @@
+<template>
+  <div class="eibs-tab">
+    <c-col :span="12" style="padding-right: 20px;">
+      <c-col :span="24">
+        <el-form-item label="样式设置" prop="cod">
+          <c-input v-model="model.cod" placeholder="请输入样式设置"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="类型" prop="typ">
+          <c-input v-model="model.typ" placeholder="请输入类型"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="数量" prop="cnt">
+          <c-input v-model="model.cnt" placeholder="请输入数量"> </c-input>
+        </el-form-item>
+      </c-col>
+    </c-col>
+    <c-col :span="12" style="padding-left: 20px;">
+      <c-col :span="24">
+        <el-form-item label="编辑标志" prop="edtflg">
+          <c-input v-model="model.edtflg" placeholder="请输入编辑标志"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="所用纸张类型" prop="tef">
+          <c-input v-model="model.tef" placeholder="请输入所用纸张类型"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="优先级" prop="pri">
+          <c-input v-model="model.pri" placeholder="请输入优先级"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="版本号" prop="ver">
+          <c-input v-model="model.ver" placeholder="请输入版本号"> </c-input>
+        </el-form-item>
+      </c-col>
+    </c-col>
+  </div>
+</template>
+  
+<script>
+import codes from "~/config/CodeTable";
+export default {
+  name: "",
+  props: ["model"],
+  data() {
+    return {};
+  },
+};
+</script>
+  
+  <style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Apf/views/Dbiapf/index.vue b/src/views/Statics/Apf/views/Dbiapf/index.vue
new file mode 100644
index 0000000..3f163e7
--- /dev/null
+++ b/src/views/Statics/Apf/views/Dbiapf/index.vue
@@ -0,0 +1,172 @@
+<template>
+  <div class="eContainer">
+    <c-page :title="title">
+      <el-form
+        ref="modelForm"
+        label-width="160px"
+        size="small"
+        label-position="right"
+        :model="model"
+        :rules="rules"
+        :validate-on-rule-change="false"
+        :disabled="isDisabled"
+      >
+        <c-tabs v-model="tabVal" ref="elment" type="card">
+          <el-tab-pane label="基本信息" name="apf">
+            <c-content>
+              <m-apf-info :model="model" />
+            </c-content>
+          </el-tab-pane>
+        </c-tabs>
+      </el-form>
+      <div style="text-align: center">
+        <c-button
+          type="primary"
+          style="margin-right: 10px"
+          @click="commitAdd"
+          v-if="type === 'add'"
+          >提 交</c-button
+        >
+        <c-button
+          type="primary"
+          style="margin-right: 10px"
+          @click="commitEdit"
+          v-if="type === 'edit'"
+          >提 交</c-button
+        >
+        <c-button
+          type="primary"
+          style="margin-right: 10px"
+          @click="commitDelete"
+          v-if="type === 'delete'"
+          >提 交</c-button
+        >
+        <c-button type="primary" @click="goBack">返 回</c-button>
+      </div>
+    </c-page>
+  </div>
+</template>
+  
+  <script>
+import Utils from "~/utils";
+import Apf, { Pattern } from "../../model/Apf.js";
+
+import ApfInfo from "./ApfInfo.vue";
+
+import { queryById, add, edit, deleteById } from "~/service/test/apf.js";
+
+export default {
+  name: "StaticsDbiapf",
+  components: {
+    "m-apf-info": ApfInfo,
+  },
+  provide() {
+    return {
+      root: this,
+    };
+  },
+  props: {
+    type: {
+      type: String,
+      default: "info",
+    },
+    title: {
+      type: String,
+      default: "dbiapf",
+    },
+  },
+  data() {
+    return {
+      model: new Apf().data,
+      tabVal: "apf",
+      rules: Pattern,
+    };
+  },
+  computed: {
+    isDisabled() {
+      return this.type === "info" || this.type === "delete";
+    },
+  },
+  created() {
+    if (this.type !== "add") {
+      const inr = this.$route.params.inr;
+      const data = { inr: inr };
+      queryById(data).then((res) => {
+        if (res.inr) {
+          this.model = res;
+        } else {
+          this.$message.error("客户不存在");
+        }
+      });
+    }
+  },
+  methods: {
+    commitAdd() {
+      this.$refs.modelForm.validate((validated) => {
+        if (validated) {
+          add(this.model)
+            .then((res) => {
+              this.$message.success("保存成功!");
+              this.goBack(true);
+            })
+            .catch((err) => {
+              this.$message.error("保存失败!");
+            });
+        } else {
+          Utils.formValidateTips(this.$refs.modelForm.fields);
+        }
+      });
+    },
+    commitEdit() {
+      this.$refs.modelForm.validate((validated) => {
+        if (validated) {
+          edit(this.model)
+            .then((res) => {
+              this.$message.success("保存成功!");
+              this.goBack();
+            })
+            .catch((err) => {
+              this.$message.error("保存失败!");
+            });
+        } else {
+          Utils.formValidateTips(this.$refs.modelForm.fields);
+        }
+      });
+    },
+    commitDelete() {
+      this.$confirm("是否确认删除?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          const data = { inr: this.model.inr };
+          deleteById(data)
+            .then((res) => {
+              this.$message.success("删除成功!");
+              this.goBack(true);
+            })
+            .catch((err) => {
+              this.$message.error("删除失败!");
+            });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
+    },
+    /**
+     * update 是否更新infapf的查询列表
+     */
+    goBack(update) {
+      this.$store.dispatch("TagsView/delView", this.$route);
+      this.$router.push({ name: "StaticsDblapf", params: { update } });
+    },
+  },
+};
+</script>
+  
+  <style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Dbifec/Fec.js b/src/views/Statics/Fec/model/Fec.js
similarity index 100%
rename from src/views/Statics/Dbifec/Fec.js
rename to src/views/Statics/Fec/model/Fec.js
diff --git a/src/views/Statics/Dbafec/index.vue b/src/views/Statics/Fec/views/Dbafec/index.vue
similarity index 94%
rename from src/views/Statics/Dbafec/index.vue
rename to src/views/Statics/Fec/views/Dbafec/index.vue
index f4c9e16..7245827 100644
--- a/src/views/Statics/Dbafec/index.vue
+++ b/src/views/Statics/Fec/views/Dbafec/index.vue
@@ -3,7 +3,7 @@
 </template>
 
 <script>
-import Dbifec from "~/views/Statics/Dbifec";
+import Dbifec from "~/views/Statics/Fec/views/Dbifec";
 
 export default {
   name: "StaticsDbafec",
diff --git a/src/views/Statics/Dbdfec/index.vue b/src/views/Statics/Fec/views/Dbdfec/index.vue
similarity index 94%
rename from src/views/Statics/Dbdfec/index.vue
rename to src/views/Statics/Fec/views/Dbdfec/index.vue
index 6cccd15..2e31269 100644
--- a/src/views/Statics/Dbdfec/index.vue
+++ b/src/views/Statics/Fec/views/Dbdfec/index.vue
@@ -3,7 +3,7 @@
 </template>
 
 <script>
-import Dbifec from "~/views/Statics/Dbifec";
+import Dbifec from "~/views/Statics/Fec/views/Dbifec";
 
 export default {
   name: "StaticsDbdfec",
diff --git a/src/views/Statics/Dbefec/index.vue b/src/views/Statics/Fec/views/Dbefec/index.vue
similarity index 94%
rename from src/views/Statics/Dbefec/index.vue
rename to src/views/Statics/Fec/views/Dbefec/index.vue
index bb460cd..0d02822 100644
--- a/src/views/Statics/Dbefec/index.vue
+++ b/src/views/Statics/Fec/views/Dbefec/index.vue
@@ -3,7 +3,7 @@
 </template>
 
 <script>
-import Dbifec from "~/views/Statics/Dbifec";
+import Dbifec from "~/views/Statics/Fec/views/Dbifec";
 
 export default {
   name: "StaticsDbefec",
diff --git a/src/views/Statics/Dbifec/FecInfo.vue b/src/views/Statics/Fec/views/Dbifec/FecInfo.vue
similarity index 100%
rename from src/views/Statics/Dbifec/FecInfo.vue
rename to src/views/Statics/Fec/views/Dbifec/FecInfo.vue
diff --git a/src/views/Statics/Dbifec/FeeInfo.vue b/src/views/Statics/Fec/views/Dbifec/FeeInfo.vue
similarity index 100%
rename from src/views/Statics/Dbifec/FeeInfo.vue
rename to src/views/Statics/Fec/views/Dbifec/FeeInfo.vue
diff --git a/src/views/Statics/Dbifec/index.vue b/src/views/Statics/Fec/views/Dbifec/index.vue
similarity index 99%
rename from src/views/Statics/Dbifec/index.vue
rename to src/views/Statics/Fec/views/Dbifec/index.vue
index 3812dd7..61462f7 100644
--- a/src/views/Statics/Dbifec/index.vue
+++ b/src/views/Statics/Fec/views/Dbifec/index.vue
@@ -54,7 +54,7 @@
 
 <script>
 import Utils from "~/utils";
-import Fec, { Pattern } from "./Fec.js";
+import Fec, { Pattern } from "~/views/Statics/Fec/model/Fec.js";
 
 import FecInfo from "./FecInfo.vue";
 import FeeInfo from "./FeeInfo.vue";
diff --git a/src/views/Statics/Inffec/Infsea.vue b/src/views/Statics/Fec/views/Inffec/Infsea.vue
similarity index 100%
rename from src/views/Statics/Inffec/Infsea.vue
rename to src/views/Statics/Fec/views/Inffec/Infsea.vue
diff --git a/src/views/Statics/Inffec/index.vue b/src/views/Statics/Fec/views/Inffec/index.vue
similarity index 100%
rename from src/views/Statics/Inffec/index.vue
rename to src/views/Statics/Fec/views/Inffec/index.vue
diff --git a/src/views/Statics/Fee/model/Fee.js b/src/views/Statics/Fee/model/Fee.js
new file mode 100644
index 0000000..d8d7c73
--- /dev/null
+++ b/src/views/Statics/Fee/model/Fee.js
@@ -0,0 +1,112 @@
+export default class Pty {
+	constructor() {
+		this.data = {
+			inr	:"",
+			cod	:"",
+			sftcod	:"",
+			rol	:"",
+			incflg	:"",
+			staflg	:"",
+			vatflg	:"",
+			acc	:"",
+			accacr	:"",
+			eno	:"",
+			reltir	:"",
+			grpcod	:"",
+			ver	:"",
+			dscmodflg	:"",
+			reltrn	:"",
+			begdat	:"",
+			enddat	:"",
+			dtacod	:"",
+			etgextkey	:"",
+			taxacc	:"",
+			taxflg	:""
+		}
+	}
+}
+
+export const Pattern = {
+	"inr": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+	],
+	"cod": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 6, "message": "最大长度6个字符","trigger": "blur" }
+	],
+	"sftcod": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 4, "message": "最大长度4个字符","trigger": "blur" }
+	],
+	"rol": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 3, "message": "最大长度3个字符","trigger": "blur" }
+	],
+	"incflg": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+	],
+	"staflg": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+	],
+	"vatflg": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+	],
+	"vatflg": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+	],
+	"acc": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 34, "message": "最大长度34个字符", "trigger": "blur" }
+	],
+	"accacr": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 34, "message": "最大长度34个字符", "trigger": "blur" }
+	],
+	"eno": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 3, "message": "最大长度3个字符", "trigger": "blur" }
+	],
+	"reltir": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 6, "message": "最大长度6个字符", "trigger": "blur" }
+	],
+	"grpcod": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "trigger": "blur" }
+	],
+	"ver": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 4, "message": "最大长度4个字符", "trigger": "blur" }
+	],
+	"dscmodflg": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+	],
+	"reltrn": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 40, "message": "最大长度40个字符", "trigger": "blur" }
+	],
+	"dtacod": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "trigger": "blur" }
+	],
+	"etgextkey": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 8, "message": "最大长度40个字符", "trigger": "blur" }
+	],
+	"taxacc": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 34, "message": "最大长度40个字符", "trigger": "blur" }
+	],
+	"taxflg": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 4, "message": "最大长度40个字符", "trigger": "blur" }
+	]	
+}
+
+
diff --git a/src/views/Statics/Fee/views/Dbafee/index.vue b/src/views/Statics/Fee/views/Dbafee/index.vue
new file mode 100644
index 0000000..cfc8a1a
--- /dev/null
+++ b/src/views/Statics/Fee/views/Dbafee/index.vue
@@ -0,0 +1,23 @@
+<template>
+	<m-fee ref="fee" title="dbafee" type="add"></m-fee>
+</template>
+
+<script>
+import Dbifee from "../Dbifee";
+
+export default {
+  name: "StaticsDbafee",
+	components: {
+		"m-fee": Dbifee
+	},
+  data() {
+    return {};
+  },
+  mounted() {
+    
+  }
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Fee/views/Dbdfee/index.vue b/src/views/Statics/Fee/views/Dbdfee/index.vue
new file mode 100644
index 0000000..711fb89
--- /dev/null
+++ b/src/views/Statics/Fee/views/Dbdfee/index.vue
@@ -0,0 +1,20 @@
+<template>
+	<m-fee title="dbdfee" type="delete"></m-fee>
+</template>
+
+<script>
+import Dbifee from "../Dbifee";
+
+export default {
+  name: "StaticsDbdfee",
+	components: {
+		"m-fee": Dbifee
+	},
+  data() {
+    return {};
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Fee/views/Dbefee/index.vue b/src/views/Statics/Fee/views/Dbefee/index.vue
new file mode 100644
index 0000000..f87bf71
--- /dev/null
+++ b/src/views/Statics/Fee/views/Dbefee/index.vue
@@ -0,0 +1,20 @@
+<template>
+	<m-fee title="dbefee" type="edit"></m-fee>
+</template>
+
+<script>
+import Dbifee from "../Dbifee";
+
+export default {
+  name: "StaticsDbefee",
+	components: {
+		"m-fee": Dbifee
+	},
+  data() {
+    return {};
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Fee/views/Dbifee/FeeInfo.vue b/src/views/Statics/Fee/views/Dbifee/FeeInfo.vue
new file mode 100644
index 0000000..0adc932
--- /dev/null
+++ b/src/views/Statics/Fee/views/Dbifee/FeeInfo.vue
@@ -0,0 +1,166 @@
+<template>
+  <div class="eibs-tab">
+    <c-col :span="12" class="col-left">
+      <c-col :span="24">
+        <el-form-item label="费用代码" prop="cod">
+          <!-- <c-select
+            style="width: 100%"
+            v-model="model.cod"
+            placeholder="请选择费用代码"
+            :code="getCodesByKey('feecod3')"
+          >
+          </c-select> -->
+          <c-input v-model="model.cod" placeholder="请输入费用代码"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="计算费用相关的金额类型" prop="reltir">
+          <c-select
+            style="width: 100%"
+            v-model="model.reltir"
+            placeholder="请选择计算费用相关的金额类型"
+            :code="getCodesByKey('calcbs')"
+          >
+          </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="SWIFT报文费用代码" prop="sftcod">
+          <c-select
+            style="width: 100%"
+            v-model="model.sftcod"
+            placeholder="请选择SWIFT报文费用代码"
+            :code="getCodesByKey('swtcod')"
+          >
+          </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="DTA报文中的费用代码" prop="dtacod">
+          <c-select
+            style="width: 100%"
+            v-model="model.dtacod"
+            placeholder="请选择DTA报文中的费用代码"
+            :code="getCodesByKey('dtacod')"
+          >
+          </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="统计标志" prop="staflg">
+          <c-select
+            style="width: 100%"
+            v-model="model.staflg"
+            placeholder="请选择统计标志"
+            :code="getCodesByKey('staflgFee')"
+          >
+          </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+          <el-form-item label="是否计入收费标志" prop="incflgFee">
+              <c-select style="width: 100%"
+                v-model="model.incflg"
+                :code="getCodesByKey('incflgFee')"
+            >
+            </c-select>
+          </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="默认付费角色" prop="rol">
+          <c-select
+            style="width: 100%"
+            v-model="model.rol"
+            placeholder="请选择默认付费角色"
+            :code="getCodesByKey('rol')"
+          >
+          </c-select>
+        </el-form-item>
+       </c-col>
+      <c-col :span="24">
+        <el-form-item label="费用账号" prop="acc">
+          <c-input v-model="model.acc" placeholder="请输入费用账号"> </c-input>
+        </el-form-item>
+      </c-col>
+    </c-col>
+    <c-col :span="12" class="col-right">
+      <c-col :span="24">
+          <el-form-item label="费用描述是否允许修改" prop="dscmodflg">
+              <c-select style="width: 100%"
+                v-model="model.dscmodflg"
+                :code="getCodesByKey('dscmodflg')"
+            >
+            </c-select>
+          </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="计提摊销账号" prop="accacr">
+          <c-input v-model="model.accacr" placeholder="请输入计提摊销账号">
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="相关的交易名称或者业务品种" prop="reltrn">
+            <c-input  v-model="model.reltrn" maxlength="40"  placeholder="请输入相关的交易名称或者业务品种"></c-input>
+        </el-form-item>
+       </c-col>
+       <c-col :span="24">
+        <el-form-item label="费用生效日期" prop="begdat">
+            <c-date-picker type="date"  v-model="model.begdat" style="width:100%"  placeholder="请选择开始日期"></c-date-picker>
+        </el-form-item>
+       </c-col>
+                                   
+       <c-col :span="24">
+        <el-form-item label="费用失效日期" prop="enddat">
+            <c-date-picker type="date"  v-model="model.enddat" style="width:100%"  placeholder="请选择结束日期"></c-date-picker>
+        </el-form-item>
+       </c-col>
+                                   
+       <c-col :span="24">
+        <el-form-item label="费用组代码" prop="grpcod">
+            <c-select 
+            v-model="model.grpcod" 
+            style="width:100%" 
+            placeholder="请选择费用组代码" 
+            :code="getCodesByKey('grpcod')"
+            >
+              </c-select>
+        </el-form-item>
+       </c-col>
+       <c-col :span="24">
+        <el-form-item label="价税分离标志" prop="taxflg" placeholder="是/否">
+          <c-select
+            style="width: 100%"
+            v-model="model.taxflg"
+            :code="getCodesByKey('taxflg')"
+          >
+          </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="税则账号" prop="taxacc">
+            <c-input  v-model="model.taxacc" maxlength="34"  placeholder="请输入税则账号"></c-input>
+        </el-form-item>
+       </c-col>
+    </c-col>
+  </div>
+</template>
+
+<script>
+import codes from "~/config/CodeTable";
+export default {
+  name: "",
+  props: ["model"],
+  data() {
+    return {};
+  },
+  methods: {
+    getCodesByKey(key) {
+      return codes[key] ?? [];
+    },
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Fee/views/Dbifee/index.vue b/src/views/Statics/Fee/views/Dbifee/index.vue
new file mode 100644
index 0000000..2926683
--- /dev/null
+++ b/src/views/Statics/Fee/views/Dbifee/index.vue
@@ -0,0 +1,187 @@
+<template>
+  <div class="eContainer">
+    <c-page :title="title">
+
+
+      <el-form
+        ref="modelForm"
+        label-width="160px"
+        size="small"
+        label-position="right"
+        :model="model"
+        :rules="rules"
+        :validate-on-rule-change="false"
+        :disabled="isDisabled"
+      >
+        <c-tabs v-model="tabVal" ref="elment" type="card">
+          <el-tab-pane label="基本信息" name="fee">
+            <c-content>
+              <m-fee-info :model="model" />
+            </c-content>
+          </el-tab-pane>
+        </c-tabs>
+      </el-form>
+
+
+      <div style="text-align: center">
+        <c-button
+          type="primary"
+          style="margin-right: 10px"
+          @click="commitAdd"
+          v-if="type === 'add'"
+          >提 交</c-button
+        >
+        <c-button
+          type="primary"
+          style="margin-right: 10px"
+          @click="commitEdit"
+          v-if="type === 'edit'"
+          >提 交</c-button
+        >
+        <c-button
+          type="primary"
+          style="margin-right: 10px"
+          @click="commitDelete"
+          v-if="type === 'delete'"
+          >提 交</c-button
+        >
+        <c-button type="primary" @click="goBack">返 回</c-button>
+      </div>
+    </c-page>
+  </div>
+</template>
+
+<script>
+import Utils from "~/utils";
+import Fee, { Pattern } from "~/views/Statics/Fee/model/Fee.js";
+
+import FeeInfo from "./FeeInfo.vue"
+
+// import PtyInfo from "./PtyInfo.vue";
+// import AdrList from "./AdrList.vue";
+// import ActInfo from "./ActInfo.vue";
+// import PtcInfo from "./PtcInfo.vue";
+// import RatInfo from "./RatInfo.vue";
+
+import { queryById, add, edit, deleteById } from "~/service/test/fee.js";
+
+export default {
+  name: "StaticsDbifee",
+  components: {
+     "m-fee-info": FeeInfo,
+    // "m-adr-list": AdrList,
+    // "m-act-info": ActInfo,
+    // "m-ptc-info": PtcInfo,
+    // "m-rat-info": RatInfo,
+  },
+  provide() {
+    return {
+      root: this,
+    };
+  },
+  props: {
+		type: {
+			type: String,
+			default: "info"
+		},
+		title: {
+			type: String,
+			default: "dbifee"
+		}
+	},
+  data() {
+    return {
+      model: new Fee().data,
+      tabVal: "fee",
+      rules: Pattern,
+    };
+  },
+  computed: {
+    isDisabled() {
+      return this.type === "info" || this.type === "delete";
+    },
+  },
+  created() {
+    if (this.type !== "add") {
+      const inr = this.$route.params.inr;
+      const data = {"inr":inr}
+      queryById(data).then((res) => {
+        if (res.inr) {
+          this.model = res;
+        } else {
+          this.$message.error("客户不存在")
+        }
+      });
+    }
+  },
+  methods: {
+    commitAdd() {
+      this.$refs.modelForm.validate((validated) => {
+        if (validated) {
+          add(this.model)
+            .then((res) => {
+              this.$message.success("保存成功!");
+              this.goBack(true)
+            })
+            .catch((err) => {
+              this.$message.error("保存失败!");
+            });
+        } else {
+          Utils.formValidateTips(this.$refs.modelForm.fields)
+        }
+      });
+    },
+    commitEdit() {
+      this.$refs.modelForm.validate((validated) => {
+        if (validated) {
+          edit(this.model)
+            .then((res) => {
+              this.$message.success("保存成功!");
+              this.goBack(true)
+            })
+            .catch((err) => {
+              this.$message.error("保存失败!");
+            });
+        } else {
+          Utils.formValidateTips(this.$refs.modelForm.fields)
+        }
+      });
+    },
+    commitDelete() {
+      this.$confirm("是否确认删除?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          const data = {"inr":this.model.inr}
+          deleteById(data)
+            .then((res) => {
+              this.$message.success("删除成功!");
+              this.goBack(true)
+            })
+            .catch((err) => {
+              this.$message.error("删除失败!");
+            });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
+    },
+    /**
+     * update 是否更新inffee的查询列表
+     */
+    goBack(update) {
+      this.$store.dispatch("TagsView/delView", this.$route);
+      this.$router.push({ name: "StaticsInffee", params: { update } });
+    },
+
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Fee/views/Inffee/Infsea.vue b/src/views/Statics/Fee/views/Inffee/Infsea.vue
new file mode 100644
index 0000000..947e11b
--- /dev/null
+++ b/src/views/Statics/Fee/views/Inffee/Infsea.vue
@@ -0,0 +1,221 @@
+<template>
+  <div class="eibs-tab">
+  
+    <c-col :span="12" class="col-left">
+      <c-col :span="24">
+        <el-form-item label="费用代码" prop="cod">
+            <c-input
+                v-model="model.cod"
+                placeholder="请输入费用代码"
+                style="width: 100%"
+            >
+            </c-input>
+        </el-form-item>
+    </c-col>
+    </c-col>
+
+      
+      <c-col :span="12" class="col-right">
+        <c-col :span="24">
+          <el-form-item label="名称" prop="nam">
+            <c-input
+                v-model="model.nam"
+                placeholder="请输入名称"
+                style="width: 100%"
+            >
+            </c-input>
+        </el-form-item>
+        </c-col>
+      </c-col>
+
+    <c-col :span="24">
+      <c-col :span="12" style="text-align: left">
+        <el-button type="primary" size="small" @click="feeAdd">新增</el-button>
+      </c-col>
+      <c-col :span="12" style="text-align: right">
+        <el-button size="small" @click="handleReset">重置</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="small"
+          @click="onSearch()"
+          >查询
+        </el-button>
+      </c-col>
+    </c-col>
+    <c-col :span="24">
+      <c-paging-table 
+        :data="feeData"
+        :columns="feeColumns"
+        :pageNumber="model.pageNum"
+        :pageSize="model.pageSize"
+        :total="model.total"
+        v-on:queryFunc="queryFunc"
+        :border="true"
+      >
+        <c-table-column fixed="right" prop="op" label="操作" width="240px">
+          <template slot-scope="{ scope }">
+            <c-button
+              style="margin-left: 0"
+              size="small"
+              @click="feeInfo(scope.$index, scope.row)"
+              >详情</c-button
+            >
+            <c-button
+              style="margin-left: 5px"
+              size="small"
+              type="primary"
+              @click="feeEdit(scope.$index, scope.row)"
+              >修改</c-button
+            >
+            <c-button
+              size="small"
+              style="margin-left: 5px"
+              @click="feeDelete(scope.$index, scope.row)"
+              >删除</c-button
+            >
+            <el-popover placement="top-start" width="50" trigger="click">
+              <ul class="table-button-item-list">
+                <li>
+                  <c-button size="small" style="margin-left: 0">指派</c-button>
+                </li>
+                <li>
+                  <c-button size="small" style="margin-left: 0">删除</c-button>
+                </li>
+              </ul>
+              <a
+                slot="reference"
+                href="javascript:void(0)"
+                style="margin-left: 5px"
+              >
+                <i class="el-icon-more"></i>
+              </a>
+            </el-popover>
+          </template>
+        </c-table-column>
+      </c-paging-table>
+    </c-col>
+  </div>
+</template>
+
+<script>
+import codes from "~/config/CodeTable";
+
+import { queryByPage } from "~/service/test/fee.js";
+
+export default {
+  name: "",
+  props: ["model"],
+  inject: ["root"],
+  data() {
+    return {
+      feeData: [],
+      feeColumns: [
+				{ label: '费用代码', prop: 'cod', width: '120' },
+        { label: '名称', prop: 'descrp', width: '120' },
+				{ label: '计算费用相关的金额类型', prop: 'reltir', width: '190' },
+				{ label: 'SWIFT报文费用代码', prop: 'sftcod', width: '170' },
+        { label: 'DTA报文中的费用代码', prop: 'dtacod', width: '170' },
+				{ label: '统计标志', prop: 'staflg', width: '120' },
+				{ label: '默认付费角色', prop: 'rol', width: '170' },
+        { label: '费用账号', prop: 'acc', width: '120' }
+			],
+    };
+  },
+  computed: {
+  },
+  activated() {
+    const { update } = this.$route.params
+    if (update) {
+      this.onInffeeSearch()
+    }
+  },
+  methods: {
+    handleReset() {
+      this.root.$refs.modelForm.resetFields();
+    },
+    onSearch(){
+        this.model.pageNum = 1;
+        this.model.pageSize = 5;
+        this.onInffeeSearch();
+    },
+    onInffeeSearch() {
+      var objectArr = codes['fepfeecod'];
+      var map = new Map();
+      for(let i =0;i<objectArr.length;i++){
+        map.set(objectArr[i].value,objectArr[i].label);
+      }
+      var feeList = [];
+      if(!this.model.cod&&this.model.nam){
+        for(var fee of map){
+        if(fee[1].includes(this.model.nam)){
+            feeList.push(fee[0])
+          }
+        }
+      }
+      if(this.model.cod&&this.model.nam){
+        for(var fee of map){
+        if(fee[0].includes(this.model.cod)&&fee[1].includes(this.model.nam)){
+            feeList.push(fee[0])
+          }
+        }
+      }
+      this.model.feelist = feeList;
+      this.model.etgextkey = 'CEBGRP';
+			queryByPage(this.model).then(res => {
+        /**
+         * pageNumber: 0
+         * pageSize:	0
+         * total: 69
+         * totalPage: 0
+         */
+      const list = res.list;
+      this.feeData = list;
+      for(let i =0;i<list.length;i++){
+        this.feeData[i].descrp = map.get(this.feeData[i].cod)
+      }
+        this.model.pageNum = res.pageNumber
+        this.model.pageSize = res.pageSize
+        this.model.total = res.total
+        this.model.feelist=[];
+      }) 
+		},
+    queryFunc(pageNumber, pageSize) {
+      this.model.pageNum = pageNumber
+      this.model.pageSize = pageSize
+      this.onInffeeSearch()
+    },
+    feetypeChange(val) {
+      this.model.feetyp = val;
+    },
+    getCodesByKey(key) {
+      return codes[key] ?? [];
+    },
+    feeAdd() {
+			this.$router.push(`/statics/dbafee`)
+		},
+    feeInfo(index, row) {
+			this.$router.push(`/statics/dbifee/${row.inr}`)
+		},
+    feeEdit(index, row) {
+			this.$router.push(`/statics/dbefee/${row.inr}`)
+		},
+    feeDelete(index, row) {
+			this.$router.push(`/statics/dbdfee/${row.inr}`)
+		},
+  },
+};
+</script>
+
+<style scoped>
+.table-button-item-list {
+  padding: 0;
+  margin: 0;
+}
+.table-button-item-list li {
+  list-style: none;
+  padding: 5px 0;
+  text-align: center;
+  color: #606266;
+  cursor: pointer;
+}</style>
diff --git a/src/views/Statics/Fee/views/Inffee/index.vue b/src/views/Statics/Fee/views/Inffee/index.vue
new file mode 100644
index 0000000..d6f4aa8
--- /dev/null
+++ b/src/views/Statics/Fee/views/Inffee/index.vue
@@ -0,0 +1,52 @@
+<template>
+  <div class="eContainer">
+    <c-page title="费用代码信息查询">
+      <el-form
+        :model="model"
+        ref="modelForm"
+        label-width="120px"
+        label-position="right"
+        size="small"
+      >
+        <c-tabs v-model="tabVal" ref="elment" type="card">
+          <!--PD000039 -->
+          <el-tab-pane label="费用查询" name="infsea">
+            <c-content>
+              <m-infsea :model="model" ref="infsea" />
+            </c-content>
+          </el-tab-pane>
+        </c-tabs>
+      </el-form>
+    </c-page>
+  </div>
+</template>
+
+<script>
+import Infsea from "./Infsea";
+
+export default {
+  name: "StaticsInffee",
+  components: {
+    "m-infsea": Infsea,
+  },
+  provide() {
+    return {
+      root: this,
+    };
+  },
+  data() {
+    return {
+      tabVal: "infsea",
+      model: {
+        cod:"",
+        nam:"",
+        pageNum: 1,
+        pageSize: 5,
+        total: 0
+      },
+    };
+  },
+};
+</script>
+
+<style></style>
diff --git a/src/views/Statics/Dbigtx/Gtx.js b/src/views/Statics/Gtx/model/Gtx.js
similarity index 100%
rename from src/views/Statics/Dbigtx/Gtx.js
rename to src/views/Statics/Gtx/model/Gtx.js
diff --git a/src/views/Statics/Dbagtx/index.vue b/src/views/Statics/Gtx/views/Dbagtx/index.vue
similarity index 94%
rename from src/views/Statics/Dbagtx/index.vue
rename to src/views/Statics/Gtx/views/Dbagtx/index.vue
index 5c6a4b0..d6f5fed 100644
--- a/src/views/Statics/Dbagtx/index.vue
+++ b/src/views/Statics/Gtx/views/Dbagtx/index.vue
@@ -3,7 +3,7 @@
 </template>
 
 <script>
-import Dbigtx from "~/views/Statics/Dbigtx";
+import Dbigtx from "../Dbigtx";
 
 export default {
   name: "StaticsDbagtx",
diff --git a/src/views/Statics/Dbdgtx/index.vue b/src/views/Statics/Gtx/views/Dbdgtx/index.vue
similarity index 94%
rename from src/views/Statics/Dbdgtx/index.vue
rename to src/views/Statics/Gtx/views/Dbdgtx/index.vue
index 2627bba..ea2c9cc 100644
--- a/src/views/Statics/Dbdgtx/index.vue
+++ b/src/views/Statics/Gtx/views/Dbdgtx/index.vue
@@ -3,7 +3,7 @@
 </template>
 
 <script>
-import Dbigtx from "~/views/Statics/Dbigtx";
+import Dbigtx from "../Dbigtx";
 
 export default {
   name: "StaticsDbdgtx",
diff --git a/src/views/Statics/Dbegtx/index.vue b/src/views/Statics/Gtx/views/Dbegtx/index.vue
similarity index 94%
rename from src/views/Statics/Dbegtx/index.vue
rename to src/views/Statics/Gtx/views/Dbegtx/index.vue
index 1847b29..1b8985a 100644
--- a/src/views/Statics/Dbegtx/index.vue
+++ b/src/views/Statics/Gtx/views/Dbegtx/index.vue
@@ -3,7 +3,7 @@
 </template>
 
 <script>
-import Dbigtx from "~/views/Statics/Dbigtx";
+import Dbigtx from "../Dbigtx";
 
 export default {
   name: "StaticsDbegtx",
diff --git a/src/views/Statics/Dbigtx/GtxInfo.vue b/src/views/Statics/Gtx/views/Dbigtx/GtxInfo.vue
similarity index 100%
rename from src/views/Statics/Dbigtx/GtxInfo.vue
rename to src/views/Statics/Gtx/views/Dbigtx/GtxInfo.vue
diff --git a/src/views/Statics/Dbigtx/index.vue b/src/views/Statics/Gtx/views/Dbigtx/index.vue
similarity index 99%
rename from src/views/Statics/Dbigtx/index.vue
rename to src/views/Statics/Gtx/views/Dbigtx/index.vue
index b85c650..eb019c2 100644
--- a/src/views/Statics/Dbigtx/index.vue
+++ b/src/views/Statics/Gtx/views/Dbigtx/index.vue
@@ -49,7 +49,7 @@
 
 <script>
 import Utils from "~/utils";
-import Gtx, { Pattern } from "./Gtx.js";
+import Gtx, { Pattern } from "~/views/Statics/Gtx/model/Gtx.js";
 
 import GtxInfo from "./GtxInfo.vue";
 
diff --git a/src/views/Statics/Infgtx/Infsea.vue b/src/views/Statics/Gtx/views/Infgtx/Infsea.vue
similarity index 100%
rename from src/views/Statics/Infgtx/Infsea.vue
rename to src/views/Statics/Gtx/views/Infgtx/Infsea.vue
diff --git a/src/views/Statics/Infgtx/index.vue b/src/views/Statics/Gtx/views/Infgtx/index.vue
similarity index 100%
rename from src/views/Statics/Infgtx/index.vue
rename to src/views/Statics/Gtx/views/Infgtx/index.vue
diff --git a/src/views/Statics/Lgb/model/Lgb.js b/src/views/Statics/Lgb/model/Lgb.js
new file mode 100644
index 0000000..ea2bd43
--- /dev/null
+++ b/src/views/Statics/Lgb/model/Lgb.js
@@ -0,0 +1,74 @@
+export default class Lgb {
+	constructor() {
+		this.data = {
+			inr: "",
+		extkey: "",
+		nam: "",
+		typ: "",
+		cur: "",
+		amt: "",
+		sta: "",
+		expdat: "",
+		usecur: "",
+		useamt: "",
+		naccur: "",
+		nacamt: "",
+		
+		}
+	}
+}
+
+export const Pattern = {
+	//pty
+	"extkey": [
+		{ "type": "string", "trigger": "blur" },
+		{ "max": 24, "message": "最大长度24个字符", "trigger": "blur" }
+	],
+	"nam": [
+		{ "type": "string", "trigger": "blur" },
+		{ "max": 44, "message": "最大长度44个字符", "trigger": "blur" }
+	],
+	"inr": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+	],
+	//lgb
+	"cur": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 3, "message": "最大长度3个字符", "trigger": "blur" }
+	],
+	"amt": [
+		{ "required": true, "message": "必输项", "trigger": "blur" },
+		{ "pattern": /^-?\d{0,18}(\.\d{1,3})?$/, "message": "整数不能超过18位,小数不能超过3位", "trigger": "blur" }
+	],
+	"sta": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+	],
+	"expdat": [
+		{ "type": "string", "trigger": "blur" }
+	],
+	"typ": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+	],
+	//lga
+	"usecur": [
+		{ "type": "string", "trigger": "blur" },
+		{ "max": 3, "message": "最大长度3个字符", "trigger": "blur" }
+	],
+	"useamt": [
+		{ "trigger": "blur" },
+		{ "pattern": /^-?\d{0,18}(\.\d{1,3})?$/, "message": "整数不能超过18位,小数不能超过3位", "trigger": "blur" }
+	],
+	"naccur": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 3, "message": "最大长度3个字符", "trigger": "blur" }
+	],
+	"nacamt": [
+		{ "trigger": "blur" },
+		{ "pattern": /^-?\d{0,18}(\.\d{1,3})?$/, "message": "整数不能超过18位,小数不能超过3位", "trigger": "blur" }
+	]
+}
+
+
diff --git a/src/views/Statics/Lgb/views/Dbalgb/index.vue b/src/views/Statics/Lgb/views/Dbalgb/index.vue
new file mode 100644
index 0000000..ce8964e
--- /dev/null
+++ b/src/views/Statics/Lgb/views/Dbalgb/index.vue
@@ -0,0 +1,22 @@
+<template>
+	<m-lgb title="dbalgb" type="add"></m-lgb>
+</template>
+
+<script>
+import Dbilgb from "../Dbilgb";
+
+export default {
+  name: "StaticsDbalgb",
+	components: {
+		"m-lgb": Dbilgb
+	},
+  data() {
+    return {};
+  },
+  mounted() {
+  }
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Lgb/views/Dbdlgb/index.vue b/src/views/Statics/Lgb/views/Dbdlgb/index.vue
new file mode 100644
index 0000000..27af3b9
--- /dev/null
+++ b/src/views/Statics/Lgb/views/Dbdlgb/index.vue
@@ -0,0 +1,22 @@
+<template>
+	<m-lgb title="dbalgb" type="delete"></m-lgb>
+</template>
+
+<script>
+import Dbilgb from "../Dbilgb";
+
+export default {
+  name: "StaticsDbdlgb",
+	components: {
+		"m-lgb": Dbilgb
+	},
+  data() {
+    return {};
+  },
+  mounted() {
+  }
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Lgb/views/Dbelgb/index.vue b/src/views/Statics/Lgb/views/Dbelgb/index.vue
new file mode 100644
index 0000000..54ecaa0
--- /dev/null
+++ b/src/views/Statics/Lgb/views/Dbelgb/index.vue
@@ -0,0 +1,22 @@
+<template>
+	<m-lgb title="dbalgb" type="edit"></m-lgb>
+</template>
+
+<script>
+import Dbilgb from "../Dbilgb";
+
+export default {
+  name: "StaticsDbelgb",
+	components: {
+		"m-lgb": Dbilgb
+	},
+  data() {
+    return {};
+  },
+  mounted() {
+  }
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Lgb/views/Dbilgb/LgbInfo.vue b/src/views/Statics/Lgb/views/Dbilgb/LgbInfo.vue
new file mode 100644
index 0000000..34bca8d
--- /dev/null
+++ b/src/views/Statics/Lgb/views/Dbilgb/LgbInfo.vue
@@ -0,0 +1,250 @@
+<template>
+  <div class="eibs-tab">
+    <c-row>
+      <c-col :span="12" style="padding-right: 20px;">
+        <c-col :span="24">
+          <el-form-item label="保函额度品种" prop="sealsntyp">
+            <c-select style="width: 100%"
+                v-model="model.sealsntyp"
+                placeholder="请选择保函额度品种"
+                :code="getCodesByKey('sealsntyp')"
+            >
+            </c-select>
+          </el-form-item>
+        </c-col>
+      </c-col>
+    </c-row>
+    <c-row>
+      <c-col :span="12" style="padding-right: 20px;">
+        <c-col :span="24">
+        <el-form-item
+          label="客户号"
+          prop="extkey"
+          style="width: 100%"
+        >
+        <c-input
+              v-model="model.extkey"
+              maxlength="40"
+              placeholder="请输入客户号"
+              disabled
+            ></c-input>
+        </el-form-item>
+      </c-col>
+      </c-col>
+
+      <c-col :span="12" style="padding-left: 20px;">
+        <c-col :span="24">
+          <c-form-item label="客户名称" prop="nam">
+            <c-input
+              v-model="model.nam"
+              maxlength="40"
+              placeholder="请输入客户名称"
+              
+            ></c-input>
+          </c-form-item>
+        </c-col>
+      </c-col>
+    </c-row>
+
+    <!---------------左------------------->
+    <c-row>
+      <c-col :span="12" style="padding-right: 20px;">
+        <c-col :span="24">
+          <c-form-item label="总额度类型" prop="typ">
+            <c-select
+              v-model="model.typ"
+              maxlength="40"
+              placeholder="请输入总额度类型"
+              :code="getCodesByKey('lgbtyp')"
+            ></c-select>
+          </c-form-item>
+        </c-col>
+        <c-col :span="24">
+          <c-form-item label="总额度状态" prop="sta">
+            <c-select
+              v-model="model.sta"
+              maxlength="40"
+              placeholder="请输入总额度状态"
+              :code="getCodesByKey('lgbsta')"
+            ></c-select>
+          </c-form-item>
+        </c-col>
+        <c-col :span="24">
+          <c-form-item label="总额度到期时间" prop="expdat">
+            <c-date-picker
+              v-model="model.expdat"
+              maxlength="40"
+              placeholder="请输入总额度到期时间"
+           
+            ></c-date-picker>
+          </c-form-item>
+        </c-col>
+      </c-col>
+
+<!-------------------右 --------------------->
+      <c-col :span="12" style="padding-left: 20px;">
+        <c-col :span="24">
+          <c-col :span="12">
+              <el-form-item label="总额度" prop="cur">
+              <c-select
+                 v-model="model.cur"
+                 maxlength="3"
+                 style="width: 100%"
+                 placeholder="请输入总额度币种"
+                 :code="getCodesByKey('curtxt1')"
+                ></c-select>
+             </el-form-item>
+        </c-col>
+        <c-col :span="12">
+           <el-form-item style="text-align: left; margin-left: 5px"
+           label-width="0px"
+           prop="amt"
+           >
+            <c-input-currency
+              v-model="model.amt"
+             style="text-align: left; width: 90%"
+              placeholder="请输入总额度金额"
+            
+            ></c-input-currency>
+             </el-form-item>
+            </c-col>
+        </c-col>
+
+        <c-col :span="24">
+          <c-col :span="12">
+              <el-form-item label="已使用额度" prop="usecur">
+              <c-input
+                 v-model="model.usecur"
+                 maxlength="3"
+                 style="width: 100%"
+                 placeholder="请输入已使用额度币种"
+                 
+                ></c-input>
+             </el-form-item>
+        </c-col>
+        <c-col :span="12">
+           <el-form-item style="text-align: left; margin-left: 5px"
+           label-width="0px"
+           prop="useamt"
+           >
+            <c-input-currency
+              v-model="model.useamt"
+             style="text-align: left; width: 90%"
+              placeholder="请输入已使用额度金额"
+             
+            ></c-input-currency>
+             </el-form-item>
+            </c-col>
+        </c-col>
+
+        <c-col :span="24">
+          <c-col :span="12">
+              <el-form-item label="可使用额度" prop="opncur">
+              <c-input
+                 v-model="model.opncur"
+                 maxlength="3"
+                 style="width: 100%"
+                 placeholder="请输入可使用额度币种"
+                
+                ></c-input>
+             </el-form-item>
+        </c-col>
+        <c-col :span="12">
+           <el-form-item style="text-align: left; margin-left: 5px"
+           label-width="0px"
+           prop="opnamt"
+           >
+            <c-input-currency
+              v-model="model.opnamt"
+             style="text-align: left; width: 90%"
+              placeholder="请输入可使用额度金额"
+             
+            ></c-input-currency>
+             </el-form-item>
+            </c-col>
+        </c-col>
+
+        <c-col :span="24">
+          <c-col :span="12">
+              <el-form-item label="待复核额度" prop="naccur">
+              <c-input
+                 v-model="model.naccur"
+                 maxlength="3"
+                 style="width: 100%"
+                 placeholder="请输入待复核额度币种"
+                
+                ></c-input>
+             </el-form-item>
+        </c-col>
+        <c-col :span="12">
+           <el-form-item style="text-align: left; margin-left: 5px"
+           label-width="0px"
+           prop="nacamt"
+           >
+            <c-input-currency
+              v-model="model.nacamt"
+             style="text-align: left; width: 90%"
+              placeholder="请输入待复核额度金额"
+              
+            ></c-input-currency>
+             </el-form-item>
+            </c-col>
+        </c-col>
+      </c-col>
+    </c-row>
+    <!-- lgo表查询结果展示区域 -->
+    <c-col :span="24">
+      <c-paging-table 
+        :data="lgoVoData1"
+        :columns="lgoVoColumns"
+        :pageNumber="model.pageNum"
+        :pageSize="model.pageSize"
+        :total="model.total"
+        v-on:queryFunc="queryFunc"
+        :border="true"
+      >
+       
+      </c-paging-table>
+    </c-col>
+  </div>
+</template>
+
+<script>
+import codes from "@/config/CodeTable";
+
+export default {
+  name: "",
+  inject: ["root"],
+  props: {
+    model:Object,
+    lgoVoData:Array
+  },
+  data() {
+    return {
+      lgoVoColumns: [
+      { label: 'ownref', prop: 'ownref', width: 'auto' },	
+      { label: 'objtyp', prop: 'objtyp', width: 'auto' },
+      { label: 'objinr', prop: 'objinr', width: 'auto' },
+      { label: 'cur', prop: 'cur', width: 'auto' },
+	    { label: 'amt', prop: 'amt', width: 'auto' },
+      { label: 'xrfcur', prop: 'xrfcur', width: 'auto' },
+	    { label: 'xrfamt', prop: 'xrfamt', width: 'auto' },
+      { label: 'rate', prop: 'rate', width: 'auto' },
+	    { label: 'pending', prop: 'pending', width: 'auto' },
+    ], 
+    };
+  },
+  methods: {
+    getCodesByKey(key) {
+      // console.log(this.lgoVoData)
+       this.lgoVoData1=this.lgoVoData
+      // console.log(this.lgoVoData1)
+      return codes[key] ?? [];
+    },
+    queryFunc(){}
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Lgb/views/Dbilgb/index.vue b/src/views/Statics/Lgb/views/Dbilgb/index.vue
new file mode 100644
index 0000000..fea3172
--- /dev/null
+++ b/src/views/Statics/Lgb/views/Dbilgb/index.vue
@@ -0,0 +1,185 @@
+<template>
+  <div class="eContainer">
+    <c-page :title="title">
+      <el-form
+        ref="modelForm"
+        label-width="150px"
+        size="small"
+        label-position="right"
+        :model="model"
+        :rules="rules"
+        :validate-on-rule-change="false"
+        :disabled="isDisabled"
+      >
+        <c-tabs v-model="tabVal" ref="elment" type="card">
+          <el-tab-pane label="基本信息" name="lgb">
+            <c-content>
+              <m-lgb-info :model="model" :lgoVoData="lgoVoData"/>
+            </c-content>
+          </el-tab-pane>
+        </c-tabs>
+      </el-form>
+      <div style="text-align: center">
+        <c-button
+          type="primary"
+          style="margin-right: 10px"
+          @click="commitAdd"
+          v-if="type === 'add'"
+          >提 交</c-button
+        >
+        <c-button
+          type="primary"
+          style="margin-right: 10px"
+          @click="commitEdit"
+          v-if="type === 'edit'"
+          >提 交</c-button
+        >
+        <c-button
+          type="primary"
+          style="margin-right: 10px"
+          @click="commitDelete"
+          v-if="type === 'delete'"
+          >提 交</c-button
+        >
+        <c-button type="primary" @click="goBack">返 回</c-button>
+      </div>
+    </c-page>
+  </div>
+</template>
+
+<script>
+import Utils from "~/utils";
+import Lgb, { Pattern } from "~/views/Statics/Lgb/model/Lgb.js";
+
+import LgbInfo from "./LgbInfo.vue";
+
+
+import { queryByIdFromLgbAndLga,queryByIdFromLgo,add, edit, deleteById } from "~/service/test/lgb.js";
+
+export default {
+  name: "StaticsDbilgb",
+  components: {
+    "m-lgb-info": LgbInfo,
+  },
+  provide() {
+    return {
+      root: this,
+    };
+  },
+  props: {
+		type: {
+			type: String,
+			default: "info"
+		},
+		title: {
+			type: String,
+			default: "dbilgb"
+		}
+	},
+  data() {
+    return {
+      model: new Lgb().data,
+      tabVal: "lgb",
+      rules: Pattern,
+      lgoVoData:[]
+
+    };
+  },
+  computed: {
+    isDisabled() {
+      return this.type === "info" || this.type === "delete";
+    },
+  },
+  created() {
+    if (this.type !== "add") {
+      const inr = this.$route.params.inr;
+      console.log(inr)
+      queryByIdFromLgo(inr).then((res) => {
+          const list = res
+          this.lgoVoData = list
+          console.log(this.lgoVoData )
+      });
+      queryByIdFromLgbAndLga(inr).then((res) => {
+       
+          const list = res
+        
+          this.model = list;
+       
+      });
+      
+    }
+    if(this.type === "add"){
+        this.model.extkey= "EVERCNBJXXX"
+        this.model.nam="CHINA EVERBRIGHT BANK"
+      }
+  },
+  methods: {
+    commitAdd() {
+      this.$refs.modelForm.validate((validated) => {
+        if (validated) {
+          add(this.model)
+            .then((res) => {
+              this.$message.success("保存成功!");
+              this.goBack(true)
+            })
+            .catch((err) => {
+              this.$message.error("保存失败!");
+            });
+        } else {
+          Utils.formValidateTips(this.$refs.modelForm.fields)
+        }
+      });
+    },
+    commitEdit() {
+      this.$refs.modelForm.validate((validated) => {
+        if (validated) {
+          edit(this.model)
+            .then((res) => {
+              this.$message.success("保存成功!");
+              this.goBack(true)
+            })
+            .catch((err) => {
+              this.$message.error("保存失败!");
+            });
+        } else {
+          Utils.formValidateTips(this.$refs.modelForm.fields)
+        }
+      });
+    },
+    commitDelete() {
+      this.$confirm("是否确认删除?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          deleteById(this.model.inr)
+            .then((res) => {
+              this.$message.success("删除成功!");
+              this.goBack(true)
+            })
+            .catch((err) => {
+              this.$message.error("删除失败!");
+            });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
+    },
+    /**
+     * update 是否更新infpty的查询列表
+     */
+    goBack(update) {
+      this.$store.dispatch("TagsView/delView", this.$route);
+      this.$router.push({ name: "StaticsInflgb", params: { update } });
+    },
+
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Lgb/views/Inflgb/Infsea.vue b/src/views/Statics/Lgb/views/Inflgb/Infsea.vue
new file mode 100644
index 0000000..22a5b3c
--- /dev/null
+++ b/src/views/Statics/Lgb/views/Inflgb/Infsea.vue
@@ -0,0 +1,344 @@
+<template>
+  <div class="eibs-tab">
+
+    <c-row>
+      <c-col :span="12" style="padding-right: 20px;">
+        <c-col :span="24">
+          <el-form-item label="保函额度品种" prop="sealsntyp">
+            <c-select style="width: 100%"
+                v-model="model.sealsntyp"
+                placeholder="请选择保函额度品种"
+                :code="getCodesByKey('sealsntyp')"
+            >
+            </c-select>
+          </el-form-item>
+        </c-col>
+      </c-col>
+    </c-row>
+
+    <c-row>
+      <c-col :span="12" style="padding-right: 20px;">
+        <c-col :span="24">
+        <el-form-item
+          label="客户号"
+          prop="extkey"
+          style="width: 100%"
+        >
+          <c-fullbox>
+            <c-input
+              v-model="model.extkey"
+              maxlength="8"
+              placeholder="请输入客户号"
+              :disabled="true"
+            ></c-input>
+            <template slot="footer">
+              <c-button
+                style="margin-left: 10px; padding: 0 12px"
+                size="small"
+                type="primary"
+                @click="onSeainf"
+              >
+                 <i class="el-icon-info" style="font-size:15px"></i>
+              </c-button>
+            </template>
+          </c-fullbox>
+        </el-form-item>
+      </c-col>
+      </c-col>
+
+      <c-col :span="12" style="padding-left: 20px;">
+        <c-col :span="24">
+          <c-form-item label="客户名称" prop="nam">
+            <c-input
+              v-model="model.nam"
+              maxlength="40"
+              placeholder="请输入客户名称"
+              disabled
+            ></c-input>
+          </c-form-item>
+        </c-col>
+      </c-col>
+
+    </c-row>
+
+    <!-- ----------左 --------
+    <c-col :span="12" class="col-left">
+	
+	<c-col :span="24">
+        <el-form-item label="保函文本用途" prop="atxcod">
+            <c-select style="width: 100%"
+                v-model="model.atxcod"
+               placeholder="请选择保函文本用途"
+                :code="getCodesByKey('atxcod')"
+            >
+            </c-select>
+        </el-form-item>
+    </c-col>
+    </c-col>
+  <c-col :span="12" class="col-right">
+       <c-col :span="24">
+        <el-form-item label="保函文本名" prop="nam">
+            <c-input
+                v-model="model.nam"
+                placeholder="请输入保函文本名"
+            >
+            </c-input>
+        </el-form-item>
+    </c-col>
+
+  </c-col>
+
+
+    <c-col :span="12" v-if="(this.model.atxcod==`1`)" class="col-left">
+    <c-col :span="24">
+        <el-form-item label="出具目的" prop="gtxpurpos">
+            <c-select style="width: 100%"
+                v-model="model.gtxpurpos"
+               placeholder="请选择出具目的"
+                :code="getCodesByKey('gtxpurpos') "
+            >
+            </c-select>
+        </el-form-item>
+    </c-col>
+
+    <c-col :span="24">
+        <el-form-item label="保函包含类型" prop="gtxgartyp">
+            <c-select style="width: 100%"
+                v-model="model.gtxgartyp"
+               placeholder="请选择保函包含类型"
+                :code="getCodesByKey('gtxgartyp')"
+            >
+            </c-select>
+        </el-form-item>
+    </c-col>
+	
+	<c-col :span="24">
+        <el-form-item label="保函格式" prop="gtxlegfrm">
+             <c-select style="width: 100%"
+                v-model="model.sealegfrm"
+               placeholder="请选择保函格式"
+                :code="getCodesByKey('gtxlegfrm')"
+            >
+            </c-select>
+        </el-form-item>
+    </c-col>
+</c-col>
+
+右 -->
+<!-- <c-col :span="12" v-if="(this.model.atxcod==`1`)" class="col-right">
+	<c-col :span="24">
+        <el-form-item label="语言" prop="gtxuil">
+            <c-select style="width: 100%"
+                v-model="model.gtxuil"
+               placeholder="请选择语言"
+                :code="getCodesByKey('gtxuil')"
+            >
+            </c-select>
+        </el-form-item>
+    </c-col>
+	
+	 <c-col :span="24">
+        <el-form-item label="保函无责任担保标志" prop="gtxexpflg">
+            <c-select style="width: 100%"
+                v-model="model.gtxexpflg"
+               placeholder="请选择保函无责任担保标志"
+                :code="getCodesByKey('gtxexpflg')"
+            >
+            </c-select>
+        </el-form-item>
+    </c-col>
+</c-col>
+<c-col :span="12" v-if="(this.model.atxcod==`2`)" class="col-left">
+    <c-col :span="24"> -->
+       <!--  -->
+    <!-- </c-col>
+</c-col>
+<c-col :span="12" v-if="(this.model.atxcod==`2`)" class="col-right">
+    <c-col :span="24"> -->
+       <!--  -->
+    <!-- </c-col>
+</c-col> -->
+
+    <!-- 条件输入框下面的按钮 -->
+    <c-col :span="24">
+      <c-col :span="12" style="text-align: left">
+        <el-button type="primary" size="small" @click="lgbAdd">新增</el-button>
+      </c-col>
+      <c-col :span="12" style="text-align: right">
+        <el-button size="small" @click="handleReset">重置</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="small"
+          @click="onSearch()"
+          >查询
+        </el-button>
+      </c-col>
+    </c-col>
+
+    <!-- 查询结果展示区域 -->
+    <c-col :span="24">
+      <c-paging-table 
+        :data="lgbPageVoData"
+        :columns="lgbPageVoColumns"
+        :pageNumber="model.pageNum"
+        :pageSize="model.pageSize"
+        :total="model.total"
+        v-on:queryFunc="queryFunc"
+        :border="true"
+      >
+        <c-table-column fixed="right" prop="op" label="操作" width="240px">
+          <template slot-scope="{ scope }">
+            <c-button
+              style="margin-left: 0"
+              size="small"
+              @click="lgbInfo(scope.$index, scope.row)"
+              >详情</c-button
+            >
+            <c-button
+              style="margin-left: 5px"
+              size="small"
+              type="primary"
+              @click="lgbEdit(scope.$index, scope.row)"
+              >修改</c-button
+            >
+            <c-button
+              size="small"
+              style="margin-left: 5px"
+              @click="lgbDelete(scope.$index, scope.row)"
+              >删除</c-button
+            >
+            <!-- <el-popover placement="top-start" width="50" trigger="click">
+              <ul class="table-button-item-list">
+                <li>
+                  <c-button size="small" style="margin-left: 0">指派</c-button>
+                </li>
+                <li>
+                  <c-button size="small" style="margin-left: 0">删除</c-button>
+                </li>
+              </ul>
+              <a
+                slot="reference"
+                href="javascript:void(0)"
+                style="margin-left: 5px"
+              >
+                <i class="el-icon-more"></i>
+              </a>
+            </el-popover> -->
+          </template>
+        </c-table-column>
+      </c-paging-table>
+    </c-col>
+  </div>
+</template>
+
+<script>
+import codes from "~/config/CodeTable";
+
+import { queryByPage } from "~/service/test/lgb.js";
+
+export default {
+  name: "",
+  props: ["model","codes"],
+  inject: ["root"],
+  data() {
+    return {
+      lgbPageVoData: [],
+      lgbPageVoColumns: [
+      //查出结果的种类
+      //{ label: 'typ', prop: 'typ', width: 'auto' },
+      { label: '总额度类型', prop: 'typ', width: 'auto' },
+      //{ label: 'cur', prop: 'cur', width: 'auto' },
+      { label: '总额度币种', prop: 'cur', width: 'auto' },
+	    //{ label: 'amt', prop: 'amt', width: 'auto' },
+	    { label: '总额度金额', prop: 'amt', width: 'auto' },
+      //{ label: 'sta', prop: 'sta', width: 'auto' },
+      { label: '总额度状态', prop: 'sta', width: 'auto' },
+      //{ label: 'expdat', prop: 'expdat', width: 'auto' },
+      { label: '总额度到期时间', prop: 'expdat', width: 'auto' },
+      //{ label: 'usecur', prop: 'usecur', width: 'auto' },
+      { label: '已使用额度币种', prop: 'usecur', width: 'auto' },
+	    //{ label: 'useamt', prop: 'useamt', width: 'auto' },
+      { label: '已使用额度金额', prop: 'useamt', width: 'auto' },
+	    //{ label: 'naccur', prop: 'naccur', width: 'auto' },
+      { label: '待复核额度币种', prop: 'naccur', width: 'auto' },
+	    //{ label: 'nacamt', prop: 'nacamt', width: 'auto' },
+      { label: '待复核额度金额', prop: 'nacamt', width: 'auto' }
+			],
+    };
+  },
+  computed: {
+  },
+  
+  activated() {
+    const { update } = this.$route.params
+    if (update) {
+      this.onInflgbSearch()
+    }
+  },
+  methods: {
+    handleReset() {
+      this.root.$refs.modelForm.resetFields();
+    },
+    onSearch() {
+      this.model.pageSize = 5;
+      this.model.pageNum = 1;
+      this.onInflgbSearch();
+    },
+    onInflgbSearch() {
+			queryByPage(this.model).then(res => {
+        /**
+         * pageNumber: 0
+         * pageSize:	0
+         * total: 69
+         * totalPage: 0
+         */
+        const list = res.list
+        // console.log(res)
+        // console.log(list)
+        this.lgbPageVoData = list
+        // console.log(lgbPageVoData)
+        this.model.pageNum = res.pageNumber
+        this.model.pageSize = res.pageSize
+        this.model.total = res.total
+      }) 
+		},
+    queryFunc(pageNumber, pageSize) {
+      this.model.pageNum = pageNumber
+      this.model.pageSize = pageSize
+      this.onInflgbSearch()
+    },
+    // atxtypeChange(val) {
+    //   this.model.atxtyp = val;
+    // },
+    getCodesByKey(key) {
+      return codes[key] ?? [];
+    },
+   lgbAdd() {
+			this.$router.push(`/statics/dbalgb`)
+		},
+    lgbInfo(index, row) {
+			this.$router.push(`/statics/dbilgb/${row.inr}`)
+		},
+    lgbEdit(index, row) {
+			this.$router.push(`/statics/dbelgb/${row.inr}`)
+		},
+    lgbDelete(index, row) {
+			this.$router.push(`/statics/dbdlgb/${row.inr}`)
+		},
+  },
+};
+</script>
+
+<style scoped>
+.table-button-item-list {
+  padding: 0;
+  margin: 0;
+}
+.table-button-item-list li {
+  list-style: none;
+  padding: 5px 0;
+  text-align: center;
+  color: #606266;
+  cursor: pointer;
+}</style>
diff --git a/src/views/Statics/Lgb/views/Inflgb/index.vue b/src/views/Statics/Lgb/views/Inflgb/index.vue
new file mode 100644
index 0000000..a5592fa
--- /dev/null
+++ b/src/views/Statics/Lgb/views/Inflgb/index.vue
@@ -0,0 +1,57 @@
+<template>
+  <div class="eContainer">
+    <c-page title="保函额度查询">
+      <el-form
+        :model="model"
+        ref="modelForm"
+        label-width="140px"
+        label-position="right"
+        size="small"
+      >
+        <c-tabs v-model="tabVal" ref="elment" type="card">
+          <!--PD000039 -->
+          <el-tab-pane label="保函额度查询" name="infsea">
+            <c-content>
+              <m-infsea :model="model" ref="infsea" />
+            </c-content>
+          </el-tab-pane>
+        </c-tabs>
+      </el-form>
+    </c-page>
+  </div>
+</template>
+
+<script>
+import Infsea from "./Infsea";
+
+export default {
+  name: "StaticsInflgb",
+  components: {
+    "m-infsea": Infsea,
+  },
+  provide() {
+    return {
+      root: this,
+    };
+  },
+  data() {
+    return {
+      tabVal: "infsea",
+      model: {
+        // 保函额度品种
+        sealsntyp: "",
+        //客户号
+		    extkey: "",
+        //客户名称
+		    nam: "",
+        // paging
+        pageNum: 1,
+        pageSize: 5,
+        total: 0
+      },
+    };
+  },
+};
+</script>
+
+<style></style>
diff --git a/src/views/Statics/Oit/views/Dbioit/index.vue b/src/views/Statics/Oit/views/Dbioit/index.vue
index a393c3d..4d7efc6 100644
--- a/src/views/Statics/Oit/views/Dbioit/index.vue
+++ b/src/views/Statics/Oit/views/Dbioit/index.vue
@@ -49,7 +49,7 @@
 
 <script>
 import Utils from '~/utils'
-import Oit, { Pattern } from '../../model/Oit.js'
+import Oit, { Pattern } from '../../model/Oit'
 
 // import Bchp0 from "./Bchp0.vue";
 import OitInfo from './OitInfo.vue'
diff --git a/src/views/Statics/Oit/views/Infoit/infsea.vue b/src/views/Statics/Oit/views/Infoit/infsea.vue
index a6cd537..01e038c 100644
--- a/src/views/Statics/Oit/views/Infoit/infsea.vue
+++ b/src/views/Statics/Oit/views/Infoit/infsea.vue
@@ -169,10 +169,7 @@ export default {
          * total: 69
          * totalPage: 0
          */
-        console.log(res)
         const list = res.list
-        console.log("============")
-        console.log(list)
         // Object.keys(list).forEach((item) => {
         //   let obj = list[item]
         //   let typArr = codes['objtypcodetable']
@@ -185,9 +182,6 @@ export default {
           let objtypArr = codes['objtypcodetable'].filter((i) => {
             return i.value == obj.objtyp
           })
-          console.log(obj)
-          console.log(">>>>>>>>>")
-        console.log(objtypArr)
           obj.objtypCn = objtypArr[0].label
           let subtypArr = codes['subtypcodetable'].filter((i) => {
             return i.value == obj.subtyp
diff --git a/src/views/Statics/Ptm/model/ptm.js b/src/views/Statics/Ptm/model/ptm.js
new file mode 100644
index 0000000..ffc7787
--- /dev/null
+++ b/src/views/Statics/Ptm/model/ptm.js
@@ -0,0 +1,48 @@
+export default class Ptm {
+	constructor() {
+		this.data = {
+				inr: "",
+				ptainr: "",
+				cortyp: "",
+				coradr: "",
+				autflg: "",
+				autdet: "",
+				ver: "",
+				etyextkey: "",
+		
+		}
+	}
+}
+
+export const Pattern = {
+	
+		"inr": [
+			{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+			{ "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+		],
+		"ptainr": [
+			{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+			{ "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+		],
+		"cortyp": [
+			{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+			{ "max": 3, "message": "最大长度3个字符", "trigger": "blur" }
+		],
+		"coradr": [
+			{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+			{ "max": 80, "message": "最大长度80个字符", "trigger": "blur" }
+		],
+		"autflg": [
+			{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+			{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+		],
+		"autdet": [
+			{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+			{ "max": 40, "message": "最大长度40个字符", "trigger": "blur" }
+		],
+		"ver": [
+			{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+			{ "max": 4, "message": "最大长度4个字符", "trigger": "blur" }
+		],
+	}
+	
\ No newline at end of file
diff --git a/src/views/Statics/Ptm/views/Dbaptm/index.vue b/src/views/Statics/Ptm/views/Dbaptm/index.vue
new file mode 100644
index 0000000..aacb6da
--- /dev/null
+++ b/src/views/Statics/Ptm/views/Dbaptm/index.vue
@@ -0,0 +1,19 @@
+<template>
+  <m-ptm title="dbaptm" type="add"></m-ptm>
+</template>
+
+<script>
+import Dbiptm from '~/views/Statics/Ptm/views/Dbiptm'
+
+export default {
+  name: 'StaticsDbdptm',
+  components: {
+    'm-ptm': Dbiptm,
+  },
+  data() {
+    return {}
+  },
+}
+</script>
+
+<style></style>
\ No newline at end of file
diff --git a/src/views/Statics/Ptm/views/Dbdptm/index.vue b/src/views/Statics/Ptm/views/Dbdptm/index.vue
new file mode 100644
index 0000000..ec306f2
--- /dev/null
+++ b/src/views/Statics/Ptm/views/Dbdptm/index.vue
@@ -0,0 +1,19 @@
+<template>
+  <m-ptm title="dbdptm" type="delete"></m-ptm>
+</template>
+
+<script>
+import Dbiptm from '~/views/Statics/Ptm/views/Dbiptm'
+
+export default {
+  name: 'StaticsDbdptm',
+  components: {
+    'm-ptm': Dbiptm,
+  },
+  data() {
+    return {}
+  },
+}
+</script>
+
+<style></style>
diff --git a/src/views/Statics/Ptm/views/Dbeptm/index.vue b/src/views/Statics/Ptm/views/Dbeptm/index.vue
new file mode 100644
index 0000000..337e1cd
--- /dev/null
+++ b/src/views/Statics/Ptm/views/Dbeptm/index.vue
@@ -0,0 +1,22 @@
+<template>
+  <m-ptm ref="ptm" title="dbeptm" type="edit"></m-ptm>
+</template>
+
+<script>
+import Dbiptm from "~/views/Statics/Ptm/views/Dbiptm";
+
+export default {
+  name: "StaticsDbeptm",
+  components: {
+    "m-ptm": Dbiptm
+  },
+  data() {
+    return {
+      rules:{required:false}
+    };
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Ptm/views/Dbiptm/PtmInfo.vue b/src/views/Statics/Ptm/views/Dbiptm/PtmInfo.vue
new file mode 100644
index 0000000..daa38a2
--- /dev/null
+++ b/src/views/Statics/Ptm/views/Dbiptm/PtmInfo.vue
@@ -0,0 +1,68 @@
+<template>
+  <div class="eibs-tab">
+    <c-col :span="12" class="col-left">
+      <c-col :span="24">
+        <el-form-item label="ID号" prop="inr">
+          <c-input v-model="model.inr" placeholder="请输入ID号"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="关联地址" prop="ptainr">
+          <c-input v-model="model.ptainr" placeholder="请输入关联地址"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="类型" prop="cortyp">
+          <c-input v-model="model.cortyp" placeholder="请输入类型"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="BIC" prop="coradr">
+          <c-input v-model="model.coradr" placeholder="请输入BIC"> </c-input>
+        </el-form-item>
+      </c-col>
+    </c-col>
+    <c-col :span="12" class="col-right">
+      <c-col :span="24">
+        <el-form-item label="验证标志" prop="autflg">
+          <c-input v-model="model.autflg" placeholder="请输入验证标志"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="可选的验证关键字" prop="autdet">
+          <c-input v-model="model.autdet" placeholder="请输入可选的验证关键字"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="版本控制" prop="ver">
+          <c-input v-model="model.ver" placeholder="请输入版本控制"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="关联实体拥有的PTM" prop="etyextkey">
+          <c-input v-model="model.etyextkey" placeholder="请输入关联实体拥有的PTM">
+          </c-input>
+        </el-form-item>
+      </c-col>
+    </c-col>
+  </div>
+</template>
+
+<script>
+import codes from "~/config/CodeTable";
+export default {
+  name: "",
+  props: ["model"],
+  data() {
+    return {};
+  },
+  methods: {
+    getCodesByKey(key) {
+      return codes[key] ?? [];
+    },
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Ptm/views/Dbiptm/index.vue b/src/views/Statics/Ptm/views/Dbiptm/index.vue
new file mode 100644
index 0000000..200d9c7
--- /dev/null
+++ b/src/views/Statics/Ptm/views/Dbiptm/index.vue
@@ -0,0 +1,175 @@
+<template>
+  <div class="eContainer">
+    <c-page :title="title">
+      <el-form
+        ref="modelForm"
+        label-width="160px"
+        size="small"
+        label-position="right"
+        :model="model"
+        :rules="rules"
+        :validate-on-rule-change="false"
+        :disabled="isDisabled"
+      >
+        <c-tabs v-model="tabVal" ref="elment" type="card">
+          <el-tab-pane label="基本信息" name="ptm">
+            <c-content>
+              <m-ptm-info :model="model" />
+            </c-content>
+          </el-tab-pane>
+        </c-tabs>
+      </el-form>
+      <div style="text-align: center">
+        <c-button
+          type="primary"
+          style="margin-right: 10px"
+          @click="commitAdd"
+          v-if="type === 'add'"
+          >提 交</c-button
+        >
+        <c-button
+          type="primary"
+          style="margin-right: 10px"
+          @click="commitEdit"
+          v-if="type === 'edit'"
+          >提 交</c-button
+        >
+        <c-button
+          type="primary"
+          style="margin-right: 10px"
+          @click="commitDelete"
+          v-if="type === 'delete'"
+          >提 交</c-button
+        >
+        <c-button type="primary" @click="goBack">返 回</c-button>
+      </div>
+    </c-page>
+  </div>
+</template>
+
+<script>
+import Utils from "~/utils";
+import Ptm, { Pattern } from "../../model/ptm.js";
+
+import PtmInfo from "./PtmInfo.vue";
+
+import {  add, edit, deleteById, queryDetailById,queryById} from "~/service/test/ptm.js";
+
+
+export default {
+  name: "StaticsDbiptm",
+  components: {
+    "m-ptm-info": PtmInfo,
+  },
+  provide() {
+    return {
+      root: this,
+    };
+  },
+  props: {
+		type: {
+			type: String,
+			default: "info"
+		},
+		title: {
+			type: String,
+			default: "dbiptm"
+		}
+	},
+  data() {
+    return {
+      model: new Ptm().data,
+      tabVal: "ptm",
+      rules: Pattern,
+    };
+  },
+  computed: {
+    isDisabled() {
+      return this.type === "info" || this.type === "delete";
+    },
+  },
+  created() {
+  if (this.type !== "add") {
+    const inr = this.$route.params.inr;
+    // this.model.inr = this.$route.params.inr;
+    console.log(inr);
+    queryById(inr).then((res) => {
+      debugger
+      if (res.inr) {
+        this.model = res;
+      } else {
+        this.$message.error("不存在")
+      }
+    });
+  }
+},
+  methods: {
+    commitAdd() {
+      this.$refs.modelForm.validate((validated) => {
+        if (validated) {
+          add(this.model)
+            .then((res) => {
+              this.$message.success("保存成功!");
+              this.goBack(true)
+            })
+            .catch((err) => {
+              this.$message.error("保存失败!");
+            });
+        } else {
+          Utils.formValidateTips(this.$refs.modelForm.fields)
+        }
+      });
+    },
+    commitEdit() {
+      this.$refs.modelForm.validate((validated) => {
+        if (validated) {
+          edit(this.model)
+            .then((res) => {
+              this.$message.success("保存成功!");
+              this.goBack()
+            })
+            .catch((err) => {
+              this.$message.error("保存失败!");
+            });
+        } else {
+          Utils.formValidateTips(this.$refs.modelForm.fields)
+        }
+      });
+    },
+    commitDelete() {
+      this.$confirm("是否确认删除?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          deleteById(this.model.inr)
+            .then((res) => {
+              this.$message.success("删除成功!");
+              this.goBack(true)
+            })
+            .catch((err) => {
+              this.$message.error("删除失败!");
+            });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
+    },
+    /**
+     * update 是否更新infptm的查询列表
+     */
+    goBack(update) {
+      this.$store.dispatch("TagsView/delView", this.$route);
+      this.$router.push({ name: "StaticsInfptm", params: { update } });
+    },
+
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Ptm/views/Infptm/Infsea.vue b/src/views/Statics/Ptm/views/Infptm/Infsea.vue
new file mode 100644
index 0000000..2eadb7e
--- /dev/null
+++ b/src/views/Statics/Ptm/views/Infptm/Infsea.vue
@@ -0,0 +1,210 @@
+<template>
+  <div class="eibs-tab">
+    <!-- 查询条件 -->
+    <c-col :span="12" class="col-left">
+      <c-col :span="24">
+        <el-form-item label="ID号" prop="inr">
+          <c-input v-model="model.inr" placeholder="请输入ID号"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="关联地址" prop="ptainr">
+          <c-input v-model="model.ptainr" placeholder="请输入关联地址"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="类型" prop="cortyp">
+          <c-input v-model="model.cortyp" placeholder="请输入类型"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="BIC" prop="coradr">
+          <c-input v-model="model.coradr" placeholder="请输入BIC"> </c-input>
+        </el-form-item>
+      </c-col>
+    </c-col>
+    <c-col :span="12" class="col-right">
+      <c-col :span="24">
+        <el-form-item label="验证标志" prop="autflg">
+          <c-input v-model="model.autflg" placeholder="请输入验证标志"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="可选的验证关键字" prop="autdet">
+          <c-input v-model="model.autdet" placeholder="请输入可选的验证关键字"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="版本控制" prop="ver">
+          <c-input v-model="model.ver" placeholder="请输入版本控制"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="关联实体拥有的PTM" prop="etyextkey">
+          <c-input v-model="model.etyextkey" placeholder="请输入关联实体拥有的PTM">
+          </c-input>
+        </el-form-item>
+      </c-col>
+    </c-col>
+
+    <!-- 操作按钮 -->
+    <c-col :span="24">
+      <c-col :span="12" style="text-align: left">
+        <el-button type="primary" size="small" @click="ptmAdd">新增</el-button>
+      </c-col>
+      <c-col :span="12" style="text-align: right">
+        <el-button size="small" @click="handleReset">重置</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="small"
+          @click="onSearch"
+          >查询
+        </el-button>
+      </c-col>
+    </c-col>
+    <!-- 查询结果 -->
+    <c-col :span="24">
+      <c-paging-table
+        :data="ptmData"
+        :columns="ptmColumns"
+        :pageNumber="model.pageNum"
+        :pageSize="model.pageSize"
+        :total="model.total"
+        v-on:queryFunc="queryFunc"
+        :border="true"
+      >
+        <c-table-column fixed="right" prop="op" label="操作" width="240px">
+          <template slot-scope="{ scope }">
+            <c-button
+              style="margin-left: 0"
+              size="small"
+              @click="ptmInfo(scope.$index, scope.row)"
+              >详情</c-button
+            >
+            <c-button
+              style="margin-left: 5px"
+              size="small"
+              type="primary"
+              @click="ptmEdit(scope.$index, scope.row)"
+              >更新</c-button
+            >
+            <!-- 
+            <c-button
+              size="small"
+              style="margin-left: 5px"
+              @click="ptmDelete(scope.$index, scope.row)"
+              >删除</c-button
+            > -->
+            <!-- <el-popover placement="top-start" width="50" trigger="click">
+              <ul class="table-button-item-list">
+                <li>
+                  <c-button size="small" style="margin-left: 0">指派</c-button>
+                </li>
+                <li>
+                  <c-button size="small" style="margin-left: 0">删除</c-button>
+                </li>
+              </ul>
+              <a
+                slot="reference"
+                href="javascript:void(0)"
+                style="margin-left: 5px"
+              >
+                <i class="el-icon-more"></i>
+              </a>
+            </el-popover> -->
+          </template>
+        </c-table-column>
+      </c-paging-table>
+    </c-col>
+  </div>
+</template>
+
+<script>
+import { queryByPage } from "~/service/test/ptm.js";
+import CodeTable from "~/config/CodeTable";
+
+export default {
+  name: "",
+  props: ["model"],
+  inject: ["root"],
+  data() {
+    return {
+      entyGrp: [],
+      lang: CodeTable["uiltxt"],
+      ptmData: [],
+      ptmColumns: [
+        { label: "ID号", prop: "inr", width: "120" },
+        { label: "关联地址", prop: "ptainr", width: "120" },
+        { label: "类型", prop: "cortyp", width: "120" },
+        { label: "BIC", prop: "coradr", width: "120" },
+        { label: "验证标志", prop: "autflg", width: "120" },
+        { label: "可选的验证关键字", prop: "autdet", width: "150" },
+        { label: "版本控制", prop: "ver", width: "120" },
+        { label: "关联实体拥有的PTM", prop: "etyextkey", width: "170" },
+      ],
+    };
+  },
+  activated() {
+    const { update } = this.$route.params;
+    if (update) {
+      this.onInfptmSearch();
+    }
+  },
+  methods: {
+    handleReset() {
+      this.root.$refs.modelForm.resetFields();
+    },
+    onSearch() {
+      this.model.pageSize = 5;
+      this.model.pageNum = 1;
+      this.onInfptmSearch();
+    },
+    langValue(key) {
+      return this.lang.filter((item) => item.value === key)[0]?.label;
+    },
+    onInfptmSearch() {
+      queryByPage(this.model).then((res) => {
+        const list = res.list ?? [];
+        list.map((item) => (item.uil = this.langValue(item.uil) ?? item.uil));
+        this.ptmData = list;
+        this.model.pageNum = res.pageNumber;
+        this.model.pageSize = res.pageSize;
+        this.model.total = res.total;
+      });
+    },
+    queryFunc(pageNumber, pageSize) {
+      this.model.pageNum = pageNumber;
+      this.model.pageSize = pageSize;
+      this.onInfptmSearch();
+    },
+    ptmAdd() {
+      this.$router.push(`/statics/dbaptm`);
+    },
+    ptmInfo(index, row) {
+      this.$router.push(`/statics/dbiptm/${row.inr}`);
+    },
+    ptmEdit(index, row) {
+      this.$router.push(`/statics/dbeptm/${row.inr}`);
+    },
+    ptmDelete(index, row) {
+      this.$router.push(`/statics/dbdptm/${row.inr}`);
+    },
+  },
+};
+</script>
+
+<style scoped>
+.table-button-item-list {
+  padding: 0;
+  margin: 0;
+}
+
+.table-button-item-list li {
+  list-style: none;
+  padding: 5px 0;
+  text-align: center;
+  color: #606266;
+  cursor: pointer;
+}
+</style>
diff --git a/src/views/Statics/Ptm/views/Infptm/index.vue b/src/views/Statics/Ptm/views/Infptm/index.vue
new file mode 100644
index 0000000..9c3e59b
--- /dev/null
+++ b/src/views/Statics/Ptm/views/Infptm/index.vue
@@ -0,0 +1,48 @@
+<template>
+  <div class="eContainer">
+    <c-page title="固定格式文本查询">
+      <el-form :model="model" ref="modelForm" label-width="120px" label-position="right" size="small">
+        <c-tabs v-model="tabVal" ref="elment" type="card">
+          <el-tab-pane label="固定格式文本查询" name="infsea">
+            <c-content>
+              <m-infsea :model="model" ref="infsea" />
+            </c-content>
+          </el-tab-pane>
+        </c-tabs>
+      </el-form>
+    </c-page>
+  </div>
+</template>
+
+<script>
+import Infsea from "./Infsea";
+
+export default {
+  name: "StaticsInfptm",
+  components: {
+    "m-infsea": Infsea,
+  },
+  provide() {
+    return {
+      root: this,
+    };
+  },
+  data() {
+    return {
+      tabVal: "infsea",
+      model: {
+        etgextkey: "",
+        nam: "",
+        uil: "",
+        pageSize: 5,
+        pageNum: 1,
+        total: 0,
+      },
+    };
+  },
+};
+</script>
+
+<style>
+
+</style>
diff --git a/src/views/Statics/StaticsRouter.js b/src/views/Statics/StaticsRouter.js
index 3cceed5..b8772fd 100644
--- a/src/views/Statics/StaticsRouter.js
+++ b/src/views/Statics/StaticsRouter.js
@@ -14,18 +14,34 @@ import Dbiusr from "./Dbiusr";
 import Dbeusr from "./Dbeusr";
 import Dbdusr from "./Dbdusr";
 
+import Dbatdh from "./Tdh/views/Dbatdh";
+import Dbdtdh from "./Tdh/views/Dbdtdh";
+import Dbetdh from "./Tdh/views/Dbetdh";
+import Dbitdh from "./Tdh/views/Dbitdh";
+import Inftdh from "./Tdh/views/Inftdh";
+
 import Infcty from "./cty/views/Infcty";
 import Dbicty from "./cty/views/Dbicty";
 import Dbacty from "./cty/views/Dbacty";
 import Dbecty from "./cty/views/Dbecty";
 import Dbdcty from "./cty/views/Dbdcty";
 
+import Infdia from "./dia/views/Infdia";
+import Dbidia from "./dia/views/Dbidia";
+import Dbadia from "./dia/views/Dbadia";
+import Dbedia from "./dia/views/Dbedia";
+import Dbddia from "./dia/views/Dbddia";
+
 import Infoit from "./Oit/views/Infoit"
 import Dbioit from "./Oit/views/Dbioit"
 import Dbaoit from "./Oit/views/Dbaoit"
 import Dbdoit from "./Oit/views/Dbdoit"
 import Dbeoit from "./Oit/views/Dbeoit"
 
+import Infptm from "./Ptm/views/Infptm"
+import Dbiptm from "./Ptm/views/Dbiptm"
+import Dbeptm from "./Ptm/views/Dbeptm"
+
 import Dbaswm from "./Swm/views/Dbaswm";
 import Dbdswm from "./Swm/views/Dbdswm";
 import Dbeswm from "./Swm/views/Dbeswm";
@@ -33,26 +49,34 @@ import Dbiswm from "./Swm/views/Dbiswm";
 import Infswm from "./Swm/views/Infswm";
 
 
+import Inflgb from "./Lgb/views/Inflgb"
+import Dbilgb from "./Lgb/views/Dbilgb"
+import Dbalgb from "./Lgb/views/Dbalgb"
+import Dbdlgb from "./Lgb/views/Dbdlgb"
+import Dbelgb from "./Lgb/views/Dbelgb"
 
-
-
+import Inffee from "./Fee/views/Inffee";
+import Dbifee from "./Fee/views/Dbifee";
+import Dbafee from "./Fee/views/Dbafee";
+import Dbefee from "./Fee/views/Dbefee";
+import Dbdfee from "./Fee/views/Dbdfee";
 // import Infcty from "./Infcty";
 // import Dbicty from "./Dbicty";
 // import Dbacty from "./Dbacty";
 // import Dbecty from "./Dbecty";
 // import Dbdcty from "./Dbdcty";
 
-import Inffec from "./Inffec";
-import Dbifec from "./Dbifec";
-import Dbafec from "./Dbafec";
-import Dbefec from "./Dbefec";
-import Dbdfec from "./Dbdfec";
+import Inffec from "./Fec/views/Inffec";
+import Dbifec from "./Fec/views/Dbifec";
+import Dbafec from "./Fec/views/Dbafec";
+import Dbefec from "./Fec/views/Dbefec";
+import Dbdfec from "./Fec/views/Dbdfec";
 
-import Infgtx from "./Infgtx";
-import Dbigtx from "./Dbigtx";
-import Dbagtx from "./Dbagtx";
-import Dbegtx from "./Dbegtx";
-import Dbdgtx from "./Dbdgtx";
+import Infgtx from "./Gtx/views/Infgtx";
+import Dbigtx from "./Gtx/views/Dbigtx";
+import Dbagtx from "./Gtx/views/Dbagtx";
+import Dbegtx from "./Gtx/views/Dbegtx";
+import Dbdgtx from "./Gtx/views/Dbdgtx";
 
 import Infcur from "./cur/views/Infcur";
 import Dbacur from "./cur/views/Dbacur";
@@ -66,6 +90,12 @@ import Dbabch from "./Dbabch";
 import Dbebch from "./Dbebch";
 import Dbdbch from "./Dbdbch";
 
+import Infact from "./Act/views/Infact";
+import Dbaact from "./Act/views/Dbaact";
+import Dbiact from "./Act/views/Dbiact";
+import Dbeact from "./Act/views/Dbeact";
+import Dbdact from "./Act/views/Dbdact";
+
 import Infatp from "./Atp/views/Infatp";
 import Dbiatp from "./Atp/views/Dbiatp";
 import Dbaatp from "./Atp/views/Dbaatp";
@@ -151,11 +181,11 @@ const StaticsRouter = [
     { path: 'dbdatp/:inr', component: Dbdatp, name: 'StaticsDbdatp', meta: { title: (tag) => { return '客户删除: ' + tag.params.inr } } },
     { path: 'dbiatp/:inr', component: Dbiatp, name: 'StaticsDbiatp', meta: { title: (tag) => { return '交易配置信息详情: ' + tag.params.inr } } },
 
-    // { path: 'infact', component: Infact, name: 'StaticsInfact', meta: { title: '资金账户查询' } },
-    // { path: 'dbaact', component: Dbaact, name: 'StaticsDbaact', meta: { title: '资金账户新增' } },
-    // { path: 'dbiact/:inr', component: Dbiact, name: 'StaticsDbiact', meta: { title: (tag) => { return '资金账户详情: ' + tag.params.inr } } },
-    // { path: 'dbeact/:inr', component: Dbeact, name: 'StaticsDbeact', meta: { title: (tag) => { return '资金账户修改: ' + tag.params.inr } } },
-    // { path: 'dbdact/:inr', component: Dbdact, name: 'StaticsDbdact', meta: { title: (tag) => { return '资金账户删除: ' + tag.params.inr } } },
+    { path: 'infact', component: Infact, name: 'StaticsInfact', meta: { title: '资金账户查询' } },
+    { path: 'dbaact', component: Dbaact, name: 'StaticsDbaact', meta: { title: '资金账户新增' } },
+    { path: 'dbiact/:inr', component: Dbiact, name: 'StaticsDbiact', meta: { title: (tag) => { return '资金账户详情: ' + tag.params.inr } } },
+    { path: 'dbeact/:inr', component: Dbeact, name: 'StaticsDbeact', meta: { title: (tag) => { return '资金账户修改: ' + tag.params.inr } } },
+    { path: 'dbdact/:inr', component: Dbdact, name: 'StaticsDbdact', meta: { title: (tag) => { return '资金账户删除: ' + tag.params.inr } } },
 
     { path: 'infatx', component: Infatx, name: 'StaticsInfatx', meta: { title: '保函文本查询' } },
     { path: 'dbaatx', component: Dbaatx, name: 'StaticsDbaatx', meta: { title: '保函文本新增' } },
@@ -175,12 +205,61 @@ const StaticsRouter = [
     { path: 'dbeoit/:inr', component: Dbeoit, name: 'StaticsDbeoit', meta: { title: (tag) => { return '修改消息信息: ' + tag.params.inr } } },
     { path: 'dbdoit/:inr', component: Dbdoit, name: 'StaticsDbdoit', meta: { title: (tag) => { return '删除消息信息: ' + tag.params.inr } } },
 
+    { path: 'inffee', component: Inffee, name: 'StaticsInffee', meta: { title: '费用代码查询' } },
+    { path: 'dbafee', component: Dbafee, name: 'StaticsDbafee', meta: { title: '费用代码新增' } },
+    { path: 'dbifee/:inr', component: Dbifee, name: 'StaticsDbifee', meta: { title: (tag) => { return '费用代码详情: ' + tag.params.inr } } },
+    { path: 'dbefee/:inr', component: Dbefee, name: 'StaticsDbefee', meta: { title: (tag) => { return '费用代码修改: ' + tag.params.inr } } },
+    { path: 'dbdfee/:inr', component: Dbdfee, name: 'StaticsDbdfee', meta: { title: (tag) => { return '费用代码删除: ' + tag.params.inr } } },
+
+
+    { path: 'infxrt', component: Infxrt, name: 'StaticsInfxrt', meta: { title: '牌价查询' } },
+    { path: 'dblxrt/:inr', component: Dblxrt, name: 'StaticsDblxrt', meta: { title: (tag) => { return '牌价详情: ' + tag.params.inr } } },
+    { path: 'dbaxrt', component: Dbaxrt, name: 'StaticsDbaxrt', meta: { title: '牌价新增' } },
+    { path: 'dbexrt/:inr', component: Dbexrt, name: 'StaticsDbexrt', meta: { title: (tag) => { return '牌价修改: ' + tag.params.inr } } },
+    { path: 'dbdxrt/:inr', component: Dbdxrt, name: 'StaticsDbdxrt', meta: { title: (tag) => { return '牌价删除: ' + tag.params.inr } } },
+
+    { path: 'dbiptm/:inr', component:Dbiptm, name: 'StaticsDbiptm', meta: {  title: (tag) => { return '客户详情: ' + tag.params.inr } } },
+    { path: 'infptm', component:Infptm, name: 'StaticsInfptm', meta: { title: '银行密押查询' } },
+    { path: 'dbeptm/:inr', component: Dbeptm, name: 'StaticsDbeptm', meta: { title: (tag) => { return '银行密押更新: ' + tag.params.inr } } },
+
+    { path: 'inffec', component: Inffec, name: 'StaticsInffec', meta: { title: '费率查询' } },
+    { path: 'dbafec', component: Dbafec, name: 'StaticsDbafec', meta: { title: '费率新增' } },
+    { path: 'dbifec/:inr', component: Dbifec, name: 'StaticsDbifec', meta: { title: (tag) => { return '费率详情: ' + tag.params.inr } } },
+    { path: 'dbefec/:inr', component: Dbefec, name: 'StaticsDbefec', meta: { title: (tag) => { return '费率修改: ' + tag.params.inr } } },
+    { path: 'dbdfec/:inr', component: Dbdfec, name: 'StaticsDbdfec', meta: { title: (tag) => { return '费率删除: ' + tag.params.inr } } },
+
+    { path: 'infdia', component: Infdia, name: 'StaticsInfdia', meta: { title: '交易备忘录查询' } },
+    { path: 'dbadia', component: Dbadia, name: 'StaticsDbadia', meta: { title: '交易备忘录新增' } },
+    { path: 'dbidia/:inr', component: Dbidia, name: 'StaticsDbidia', meta: { title: (tag) => { return '交易备忘录详情: ' + tag.params.inr } } },
+    { path: 'dbedia/:inr', component: Dbedia, name: 'StaticsDbedia', meta: { title: (tag) => { return '交易备忘录修改: ' + tag.params.inr } } },
+    { path: 'dbddia/:inr', component: Dbddia, name: 'StaticsDbddia', meta: { title: (tag) => { return '交易备忘录删除: ' + tag.params.inr } } },
+
+
 
     { path: 'infxrt', component: Infxrt, name: 'StaticsInfxrt', meta: { title: '牌价查询' } },
     { path: 'dblxrt/:inr', component: Dblxrt, name: 'StaticsDblxrt', meta: { title: (tag) => { return '牌价详情: ' + tag.params.inr } } },
     { path: 'dbaxrt', component: Dbaxrt, name: 'StaticsDbaxrt', meta: { title: '牌价新增' } },
     { path: 'dbexrt/:inr', component: Dbexrt, name: 'StaticsDbexrt', meta: { title: (tag) => { return '牌价修改: ' + tag.params.inr } } },
     { path: 'dbdxrt/:inr', component: Dbdxrt, name: 'StaticsDbdxrt', meta: { title: (tag) => { return '牌价删除: ' + tag.params.inr } } },
+
+    { path: 'inffec', component: Inffec, name: 'StaticsInffec', meta: { title: '费率查询' } },
+    { path: 'dbafec', component: Dbafec, name: 'StaticsDbafec', meta: { title: '费率新增' } },
+    { path: 'dbifec/:inr', component: Dbifec, name: 'StaticsDbifec', meta: { title: (tag) => { return '费率详情: ' + tag.params.inr } } },
+    { path: 'dbefec/:inr', component: Dbefec, name: 'StaticsDbefec', meta: { title: (tag) => { return '费率修改: ' + tag.params.inr } } },
+    { path: 'dbdfec/:inr', component: Dbdfec, name: 'StaticsDbdfec', meta: { title: (tag) => { return '费率删除: ' + tag.params.inr } } },
+
+    { path: 'inflgb', component: Inflgb, name: 'StaticsInflgb', meta: { title: '查询保函额度信息' } },
+    { path: 'dbalgb', component: Dbalgb, name: 'StaticsDbalgb', meta: { title: '新增保函额度信息' } },
+    { path: 'dbilgb/:inr', component: Dbilgb, name: 'StaticsDbilgb', meta: { title: (tag) => { return '查看保函额度详情信息: ' + tag.params.inr } } },
+    { path: 'dbelgb/:inr', component: Dbelgb, name: 'StaticsDbelgb', meta: { title: (tag) => { return '修改保函额度信息: ' + tag.params.inr } } },
+    { path: 'dbdlgb/:inr', component: Dbdlgb, name: 'StaticsDbdlgb', meta: { title: (tag) => { return '删除保函额度信息: ' + tag.params.inr } } },
+ 
+
+    { path: 'inftdh', component: Inftdh, name: 'StaticsInftdh', meta: { title: '节假日信息查询' } },
+    { path: 'dbitdh/:inr', component: Dbitdh, name: 'StaticsDbitdh', meta: { title: (tag) => { return '节假日信息详情: ' + tag.params.inr } } },
+    { path: 'dbatdh', component: Dbatdh, name: 'StaticsDbatdh', meta: { title: '节假日新增' } },
+    { path: 'dbetdh/:inr', component: Dbetdh, name: 'StaticsDbetdh', meta: { title: (tag) => { return '节假日修改: ' + tag.params.inr } } },
+    { path: 'dbdtdh/:inr', component: Dbdtdh, name: 'StaticsDbdtdh', meta: { title: (tag) => { return '节假日删除: ' + tag.params.inr } } },
 ]
 
 export default StaticsRouter
diff --git a/src/views/Statics/Tdh/model/Tdh.js b/src/views/Statics/Tdh/model/Tdh.js
new file mode 100644
index 0000000..b83dd3a
--- /dev/null
+++ b/src/views/Statics/Tdh/model/Tdh.js
@@ -0,0 +1,28 @@
+export default class Tdh {
+    constructor() {
+        this.data = {
+            inr: "",
+            calyear: "",
+            calendarName: "",
+            calendar: "",
+            ver: "",
+            dat: "",
+			dateday: "",
+        }
+    }
+}
+
+export const Pattern = {
+	"dat": [
+		{ "required": true, "message": "必输项", "type": "date", "trigger": "blur" },
+	],
+    "calendar": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+	],
+    "dateday": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+	],
+    "calendarname": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+	],
+}
diff --git a/src/views/Statics/Tdh/views/Dbatdh/index.vue b/src/views/Statics/Tdh/views/Dbatdh/index.vue
new file mode 100644
index 0000000..506b54c
--- /dev/null
+++ b/src/views/Statics/Tdh/views/Dbatdh/index.vue
@@ -0,0 +1,22 @@
+<template>
+	<m-tdh title="dbatdh" type="add"></m-tdh>
+</template>
+
+<script>
+import Dbitdh from "~/views/Statics/Tdh/views/Dbitdh";
+
+export default {
+  name: "StaticsDbatdh",
+	components: {
+		"m-tdh": Dbitdh
+	},
+  data() {
+    return {};
+  },
+  mounted() {
+  }
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Tdh/views/Dbdtdh/index.vue b/src/views/Statics/Tdh/views/Dbdtdh/index.vue
new file mode 100644
index 0000000..1e6acf8
--- /dev/null
+++ b/src/views/Statics/Tdh/views/Dbdtdh/index.vue
@@ -0,0 +1,20 @@
+<template>
+	<m-tdh title="dbdtdh" type="delete"></m-tdh>
+</template>
+
+<script>
+import Dbitdh from "~/views/Statics/Tdh/views/Dbitdh";
+
+export default {
+  name: "StaticsDbdtdh",
+	components: {
+		"m-tdh": Dbitdh
+	},
+  data() {
+    return {};
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Tdh/views/Dbetdh/index.vue b/src/views/Statics/Tdh/views/Dbetdh/index.vue
new file mode 100644
index 0000000..094ca81
--- /dev/null
+++ b/src/views/Statics/Tdh/views/Dbetdh/index.vue
@@ -0,0 +1,20 @@
+<template>
+	<m-tdh title="dbetdh" type="edit"></m-tdh>
+</template>
+
+<script>
+import Dbitdh from "~/views/Statics/Tdh/views/Dbitdh";
+
+export default {
+  name: "StaticsDbetdh",
+	components: {
+		"m-tdh": Dbitdh
+	},
+  data() {
+    return {};
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Tdh/views/Dbitdh/TdhInfo.vue b/src/views/Statics/Tdh/views/Dbitdh/TdhInfo.vue
new file mode 100644
index 0000000..946ae79
--- /dev/null
+++ b/src/views/Statics/Tdh/views/Dbitdh/TdhInfo.vue
@@ -0,0 +1,54 @@
+<template>
+    <div class="eibs-tab">
+        <!-- =============================================左边=========================================== -->
+
+    <c-col :span="12" class="col-left">
+      <c-col :span="24">
+        <el-form-item label="日期" prop="dat">
+          <c-date-picker type="date"  v-model="model.dat" style="width:100%"  placeholder="请选择日期"></c-date-picker>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="日历代码" prop="calendar">
+          <c-input :disabled="type === 'edit'" v-model="model.calendar" placeholder="请输入日历代码" style="width: 100%">
+          </c-input>
+        </el-form-item>
+      </c-col>
+    </c-col>
+    <!-- =============================================右边=========================================== -->
+    <c-col :span="12" class="col-right">
+      <c-col :span="24">
+        <el-form-item label="节日名" prop="dateday">
+          <c-input v-model="model.dateday" style="width: 100%" placeholder="请输入节日名"> </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="日历名称" prop="calendarname">
+          <c-input :disabled="type === 'edit'" v-model="model.calendarname" style="width: 100%" placeholder="请输入日历名称"> </c-input>
+        </el-form-item>
+      </c-col>
+    </c-col>
+  </div>
+</template>
+
+<script>
+import codes from "~/config/CodeTable";
+export default {
+  name: '',
+  props: ['model', 'type'],
+  data() {
+    return {
+    }
+  },
+
+  mounted() {},
+
+  methods: {
+    getCodesByKey(key) {
+      return codes[key] ?? [];
+    },
+  },
+}
+</script>
+
+<style></style>
diff --git a/src/views/Statics/Tdh/views/Dbitdh/index.vue b/src/views/Statics/Tdh/views/Dbitdh/index.vue
new file mode 100644
index 0000000..77239a2
--- /dev/null
+++ b/src/views/Statics/Tdh/views/Dbitdh/index.vue
@@ -0,0 +1,172 @@
+<template>
+    <div class="eContainer">
+      <c-page :title="title">
+        <el-form
+          ref="modelForm"
+          label-width="120px"
+          size="small"
+          label-position="right"
+          :model="model"
+          :rules="rules"
+          :validate-on-rule-change="false"
+          :disabled="isDisabled"
+        >
+          <c-tabs v-model="tabVal" ref="elment" type="card">
+            <el-tab-pane label="节假日查询" name="tdh">
+              <c-content>
+                <m-tdh-info :model="model" :type="type" />
+              </c-content>
+            </el-tab-pane>
+          </c-tabs>
+        </el-form>
+        <div style="text-align: center">
+          <c-button
+            type="primary"
+            style="margin-right: 10px"
+            @click="commitAdd"
+            v-if="type === 'add'"
+            >提 交</c-button
+          >
+          <c-button
+            type="primary"
+            style="margin-right: 10px"
+            @click="commitEdit"
+            v-if="type === 'edit'"
+            >提 交</c-button
+          >
+          <c-button
+            type="primary"
+            style="margin-right: 10px"
+            @click="commitDelete"
+            v-if="type === 'delete'"
+            >提 交</c-button
+          >
+          <c-button type="primary" @click="goBack">返 回</c-button>
+        </div>
+      </c-page>
+    </div>
+  </template>
+  
+  <script>
+  import Utils from "~/utils";
+  import Tdh, { Pattern } from "~/views/Statics/Tdh/model/Tdh.js";
+  
+  import TdhInfo from "./TdhInfo.vue";
+  
+  import { queryById, add, edit, deleteById, queryDetailById } from "~/service/test/tdh.js";
+  
+  export default {
+    name: "StaticsDbitdh",
+    components: {
+      "m-tdh-info": TdhInfo,
+    },
+    provide() {
+      return {
+        root: this,
+      };
+    },
+    props: {
+          type: {
+              type: String,
+              default: "info"
+          },
+          title: {
+              type: String,
+              default: "dbitdh"
+          }
+      },
+    data() {
+      return {
+        model: new Tdh().data,
+        tabVal: "tdh",
+        rules: Pattern,
+      };
+    },
+    computed: {
+      isDisabled() {
+        return this.type === "info" || this.type === "delete";
+      },
+    },
+    created() {
+      if (this.type !== "add") {
+        const inr = this.$route.params.inr;
+        queryById(inr).then((res) => {
+          if (res.inr) {  
+            this.model = res;
+          } else {
+            this.$message.error("数据不存在")
+          }
+        });
+      }
+    },
+    methods: {
+      commitAdd() {
+        this.$refs.modelForm.validate((validated) => {
+          if (validated) {
+            add(this.model)
+              .then((res) => {
+                this.$message.success("保存成功!")
+                this.goBack(true)
+              })
+              .catch((err) => {
+                this.$message.error("保存失败!");
+              });
+          } else {
+            Utils.formValidateTips(this.$refs.modelForm.fields)
+          }
+        });
+      },
+      commitEdit() {
+        this.$refs.modelForm.validate((validated) => {
+          if (validated) {
+            edit(this.model)
+              .then((res) => {
+                this.$message.success("保存成功!");
+                this.goBack(true)
+              })
+              .catch((err) => {
+                this.$message.error("保存失败!");
+              });
+          } else {
+            Utils.formValidateTips(this.$refs.modelForm.fields)
+          }
+        });
+      },
+      commitDelete() {
+        this.$confirm("是否确认删除?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+          .then(() => {
+            let data = {"inr":this.model.inr}
+            deleteById(data)
+              .then((res) => {
+                this.$message.success("删除成功!");
+                this.goBack(true)
+              })
+              .catch((err) => {
+                this.$message.error("删除失败!");
+              });
+          })
+          .catch(() => {
+            this.$message({
+              type: "info",
+              message: "已取消删除",
+            });
+          });
+      },
+      /**
+       * update 是否更新inftdh的查询列表
+       */
+      goBack(update) {
+        this.$store.dispatch("TagsView/delView", this.$route);
+        this.$router.push({ name: "StaticsInftdh", params: { update } });
+      },
+  
+    },
+  };
+  </script>
+  
+  <style>
+  </style>
\ No newline at end of file
diff --git a/src/views/Statics/Tdh/views/Inftdh/Infsea.vue b/src/views/Statics/Tdh/views/Inftdh/Infsea.vue
new file mode 100644
index 0000000..8129288
--- /dev/null
+++ b/src/views/Statics/Tdh/views/Inftdh/Infsea.vue
@@ -0,0 +1,168 @@
+<template>
+  <div class="eibs-tab">
+
+    <c-col :span="12" class="col-left">
+      <c-col :span="24">
+        <el-form-item label="日历名称" prop="calendarname">
+          <c-select v-model="model.calendarname" placeholder="请选择日历名称" @change="getTdhYearList">
+            <el-option v-for="item in tdhCalList" :key="item.lable" :label="item.lable" :value="item.value"></el-option>
+          </c-select>
+        </el-form-item>
+      </c-col>
+    </c-col>
+    <!------------- 右 ---------->
+    <c-col :span="12" class="col-right">
+      <c-col :span="24">
+        <el-form-item label="年份" prop="calyear">
+          <c-select v-model="model.calyear" placeholder="请选择年份">
+            <el-option v-for="item in tdhYearList" :key="item.lable" :label="item.lable"
+              :value="item.value"></el-option>
+          </c-select>
+        </el-form-item>
+      </c-col>
+    </c-col>
+
+    <c-col :span="24">
+      <c-col :span="12" style="text-align: left">
+        <el-button type="primary" size="small" @click="tdhAdd">新增</el-button>
+      </c-col>
+      <c-col :span="12" style="text-align: right">
+        <el-button size="small" @click="handleReset">重置</el-button>
+        <el-button type="primary" icon="el-icon-search" size="small" @click="onSearch()">查询
+        </el-button>
+      </c-col>
+    </c-col>
+    <c-col :span="24">
+      <c-paging-table :data="tdhData" :columns="tdhColumns" :pageNumber="model.pageNum" :pageSize="model.pageSize"
+        :total="model.total" v-on:queryFunc="queryFunc" :border="true">
+        <c-table-column fixed="right" prop="op" label="操作" width="240px">
+          <template slot-scope="{ scope }">
+            <c-button style="margin-left: 0" size="small" @click="tdhInfo(scope.$index, scope.row)">详情</c-button>
+            <c-button style="margin-left: 5px" size="small" type="primary"
+              @click="tdhEdit(scope.$index, scope.row)">修改</c-button>
+            <c-button size="small" style="margin-left: 5px" @click="tdhDelete(scope.$index, scope.row)">删除</c-button>
+            <el-popover placement="top-start" width="50" trigger="click">
+              <ul class="table-button-item-list">
+                <li>
+                  <c-button size="small" style="margin-left: 0">指派</c-button>
+                </li>
+                <li>
+                  <c-button size="small" style="margin-left: 0">删除</c-button>
+                </li>
+              </ul>
+              <a slot="reference" href="javascript:void(0)" style="margin-left: 5px">
+                <i class="el-icon-more"></i>
+              </a>
+            </el-popover>
+          </template>
+        </c-table-column>
+      </c-paging-table>
+    </c-col>
+  </div>
+</template>
+
+<script>
+import codes from "~/config/CodeTable";
+
+import { queryByPage, queryYearList, queryCalList } from "~/service/test/tdh.js";
+
+export default {
+  name: "",
+  props: ["model"],
+  inject: ["root"],
+  data() {
+    return {
+      tdhData: [],
+      tdhColumns: [
+        { label: '日期', prop: 'datStr', width: 'auto' },
+        { label: '节日名', prop: 'dateday', width: 'auto' }
+      ],
+      tdhYearList: [],
+      tdhCalList: [],
+    };
+  },
+  computed: {
+  },
+  created() {
+    this.getTdhCalList()
+  },
+  activated() {
+    this.getTdhCalList()
+    const { update } = this.$route.params
+    if (update) {
+      this.onInftdhSearch()
+    }
+  },
+  methods: {
+    getTdhCalList() {
+      queryCalList(this.model).then(res => {
+        this.tdhCalList = res.list
+      })
+    },
+    getTdhYearList() {
+      this.model.calyear ? this.model.calyear = '' : ''
+      queryYearList(this.model).then(res => {
+        this.tdhYearList = res.list
+      })
+    },
+    getCodesByKey(key) {
+      return codes[key] ?? [];
+    },
+    handleReset() {
+      this.root.$refs.modelForm.resetFields();
+    },
+    onSearch() {
+      this.model.pageSize = 5;
+      this.model.pageNum = 1;
+      this.onInftdhSearch();
+    },
+    onInftdhSearch() {
+      queryByPage(this.model).then(res => {
+        const list = res.list
+        this.tdhData = list
+        this.model.pageNum = res.pageNumber
+        this.model.pageSize = res.pageSize
+        this.model.total = res.total
+      })
+    },
+    queryFunc(pageNumber, pageSize) {
+      this.model.pageNum = pageNumber
+      this.model.pageSize = pageSize
+      this.onInftdhSearch()
+    },
+    tdhtypeChange(val) {
+      this.model.fectyp = val;
+    },
+    tdhCodesByKey(key) {
+      return codes[key] ?? [];
+    },
+    tdhAdd() {
+      this.$router.push(`/statics/dbatdh`)
+    },
+    tdhInfo(index, row) {
+      this.$router.push(`/statics/dbitdh/${row.inr}`)
+    },
+    tdhEdit(index, row) {
+      this.$router.push(`/statics/dbetdh/${row.inr}`)
+    },
+    tdhDelete(index, row) {
+      this.$router.push(`/statics/dbdtdh/${row.inr}`)
+    },
+  },
+};
+</script>
+
+<style scoped>
+.table-button-item-list {
+  padding: 0;
+  margin: 0;
+}
+
+.table-button-item-list li {
+  list-style: none;
+  padding: 5px 0;
+  text-align: center;
+  color: #606266;
+  cursor: pointer;
+}
+</style>
diff --git a/src/views/Statics/Tdh/views/Inftdh/index.vue b/src/views/Statics/Tdh/views/Inftdh/index.vue
new file mode 100644
index 0000000..9f82fc3
--- /dev/null
+++ b/src/views/Statics/Tdh/views/Inftdh/index.vue
@@ -0,0 +1,49 @@
+<template>
+    <div class="eContainer">
+      <c-page title="节假日查询">
+        <el-form :model="model" ref="modelForm" label-width="120px" label-position="right" size="small">
+          <c-tabs v-model="tabVal" ref="elment" type="card">
+            <!--PD000039 -->
+            <el-tab-pane label="查询面板" name="infsea">
+              <c-content>
+                <m-infsea :model="model" ref="infsea" />
+              </c-content>
+            </el-tab-pane>
+          </c-tabs>
+        </el-form>
+      </c-page>
+    </div>
+  </template>
+  
+  <script>
+  import Infsea from "./Infsea";
+  
+  export default {
+    name: "StaticsInftdh",
+    components: {
+      "m-infsea": Infsea,
+    },
+    provide() {
+      return {
+        root: this,
+      };
+    },
+    data() {
+      return {
+        tabVal: "infsea",
+        model: {
+          cod: "",
+          pageSize:5,
+          pageNum:1,
+          total:0
+  
+        },
+      };
+    },
+  };
+  </script>
+  
+  <style>
+  
+  </style>
+  
\ No newline at end of file
diff --git a/src/views/Statics/Usr/model/Ubr.js b/src/views/Statics/Usr/model/Ubr.js
new file mode 100644
index 0000000..cb76b7b
--- /dev/null
+++ b/src/views/Statics/Usr/model/Ubr.js
@@ -0,0 +1,61 @@
+export default class Ubr {
+    constructor() {
+        this.data = {
+            usrinr: "",
+            bussec: "",
+            relcur: "",
+            relamt: "",
+            relamt2nd: "",
+            relgrp: "",
+            trncod: "",
+            branchinr: "",
+            autcur: "",
+            autamt: "",
+        }
+    }
+}
+
+export const Pattern = {
+    "inr": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+    ],
+    "usrinr": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+    ],
+    "bussec": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 2, "message": "最大长度2个字符", "trigger": "blur" }
+    ],
+    "relcur": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 3, "message": "最大长度3个字符", "trigger": "blur" }
+    ],
+    "relamt": [
+        { "required": true, "message": "必输项", "trigger": "blur" },
+        { "pattern": /^-?\d{0,18}(\.\d{1,3})?$/, "message": "整数不能超过18位,小数不能超过3位", "trigger": "blur" }
+    ],
+    "relamt2nd": [
+        { "required": true, "message": "必输项", "trigger": "blur" },
+        { "pattern": /^-?\d{0,18}(\.\d{1,3})?$/, "message": "整数不能超过18位,小数不能超过3位", "trigger": "blur" }
+    ],
+    "relgrp": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+    ],
+    "trncod": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 6, "message": "最大长度6个字符", "trigger": "blur" }
+    ],
+    "branchinr": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+    ],
+    "autcur": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 3, "message": "最大长度3个字符", "trigger": "blur" }
+    ],
+    "autamt": [
+    ],
+}
\ No newline at end of file
diff --git a/src/views/Statics/Usr/model/Ucl.js b/src/views/Statics/Usr/model/Ucl.js
new file mode 100644
index 0000000..e5170f9
--- /dev/null
+++ b/src/views/Statics/Usr/model/Ucl.js
@@ -0,0 +1,35 @@
+export default class Ucl {
+    constructor() {
+        this.data = {
+            usrdef: "",
+            usr: "",
+            mannam: "",
+            branchinr: "",
+            objlst: "",
+            assignflg: "",
+        }
+    }
+}
+
+export const Pattern = {
+    "usrdef": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+    ],
+    "usr": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+    ],
+    "mannam": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 40, "message": "最大长度40个字符", "trigger": "blur" }
+    ],
+    "branchinr": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+    ],
+    "objlst": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 80, "message": "最大长度80个字符", "trigger": "blur" }
+    ],
+}
\ No newline at end of file
diff --git a/src/views/Statics/Usr/model/Usr.js b/src/views/Statics/Usr/model/Usr.js
new file mode 100644
index 0000000..6591d24
--- /dev/null
+++ b/src/views/Statics/Usr/model/Usr.js
@@ -0,0 +1,131 @@
+export default class Pty {
+    constructor() {
+        this.data = {
+            "inr": "",
+            "extkey": "",
+            "nam": "",
+            "lgiflg": "",
+            "ssnbegdattim": "",
+            "ssninr": "",
+            "ver": "",
+            "pri": "",
+            "ety": "",
+            "usg": "",
+            "lstdiadat": "",
+            "relcur": "",
+            "relamt": "",
+            "relamt2nd": "",
+            "relgrp": "",
+            "tel": "",
+            "fax": "",
+            "eml": "",
+            "quepow": "",
+            "etyextkey": "",
+            "oenr": "",
+            "etaextkey": "",
+            "resusrflg": "",
+            "secsta": "",
+            "letoenr": "",
+            "ubrList": [],
+            "uclList": [],
+        }
+    }
+}
+
+export const Pattern = {
+    "inr": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+    ],
+    "extkey": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+    ],
+    "nam": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 40, "message": "最大长度40个字符", "trigger": "blur" }
+    ],
+    "lgiflg": [
+        { "required": false, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+    ],
+    "ssnbegdattim": [ {"required": true,"type": "string"}
+    ],
+    "ssninr": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+    ],
+    "ver": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 4, "message": "最大长度4个字符", "trigger": "blur" }
+    ],
+    "pri": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+    ],
+    "ety": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+    ],
+    "usg": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 6, "message": "最大长度6个字符", "trigger": "blur" }
+    ],
+    "lstdiadat": [
+        { "required": true,"type": "string"}
+    ],
+    "relcur": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 3, "message": "最大长度3个字符", "trigger": "blur" }
+    ],
+    "relamt": [
+        { "required": true, "message": "必输项", "trigger": "blur" },
+        { "pattern": /^-?\d{0,18}(\.\d{1,3})?$/, "message": "整数不能超过18位,小数不能超过3位", "trigger": "blur" }
+    ],
+    "relamt2nd": [
+        { "required": true, "message": "必输项", "trigger": "blur" },
+        { "pattern": /^-?\d{0,18}(\.\d{1,3})?$/, "message": "整数不能超过18位,小数不能超过3位", "trigger": "blur" }
+    ],
+    "relgrp": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+    ],
+    "tel": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 30, "message": "最大长度30个字符", "trigger": "blur" }
+    ],
+    "fax": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 30, "message": "最大长度30个字符", "trigger": "blur" }
+    ],
+    "eml": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 80, "message": "最大长度80个字符", "trigger": "blur" }
+    ],
+    "quepow": [
+        { "required": true, "message": "必输项", "trigger": "blur" },
+        { "pattern": /^-?\d{0,6}(\.\d{1,2})?$/, "message": "整数不能超过6位,小数不能超过2位", "trigger": "blur" }
+    ],
+    "etyextkey": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+    ],
+    "oenr": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 4, "message": "最大长度4个字符", "trigger": "blur" }
+    ],
+    "etaextkey": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+    ],
+    "resusrflg": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+    ],
+    "secsta": [
+        { "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+        { "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
+    ],
+}
+
+
diff --git a/src/views/Statics/Usr/views/Dbausr/index.vue b/src/views/Statics/Usr/views/Dbausr/index.vue
new file mode 100644
index 0000000..9f0c188
--- /dev/null
+++ b/src/views/Statics/Usr/views/Dbausr/index.vue
@@ -0,0 +1,25 @@
+<template>
+  <m-usr ref="usr" title="dbausr" type="add"></m-usr>
+</template>
+
+<script>
+import DbiUsr from "../Dbiusr";
+
+export default {
+  name: "StaticsDbausr",
+  components: {
+    "m-usr": DbiUsr
+  },
+  data() {
+    return {};
+  },
+  mounted() {
+    // this.$refs.usr.rules['ptaList'] = [
+    //   { type: 'array', required: true, min: 1, message: '地址信息栏不能为空' }
+    // ]
+  }
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Usr/views/Dbdusr/index.vue b/src/views/Statics/Usr/views/Dbdusr/index.vue
new file mode 100644
index 0000000..f27b698
--- /dev/null
+++ b/src/views/Statics/Usr/views/Dbdusr/index.vue
@@ -0,0 +1,20 @@
+<template>
+  <m-usr title="dbdusr" type="delete"></m-usr>
+</template>
+
+<script>
+import DbiUsr from "../Dbiusr";
+
+export default {
+  name: "StaticsDbdusr",
+  components: {
+    "m-usr": DbiUsr
+  },
+  data() {
+    return {};
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Usr/views/Dbeusr/index.vue b/src/views/Statics/Usr/views/Dbeusr/index.vue
new file mode 100644
index 0000000..b061fe2
--- /dev/null
+++ b/src/views/Statics/Usr/views/Dbeusr/index.vue
@@ -0,0 +1,20 @@
+<template>
+  <m-usr title="dbeusr" type="edit"></m-usr>
+</template>
+
+<script>
+import DbiUsr from "../Dbiusr";
+
+export default {
+  name: "StaticsDbeusr",
+  components: {
+    "m-usr": DbiUsr
+  },
+  data() {
+    return {};
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Usr/views/Dbiusr/UbrInfo.vue b/src/views/Statics/Usr/views/Dbiusr/UbrInfo.vue
new file mode 100644
index 0000000..eeb57df
--- /dev/null
+++ b/src/views/Statics/Usr/views/Dbiusr/UbrInfo.vue
@@ -0,0 +1,115 @@
+<template>
+  <div class="eibs">
+    <el-form
+        ref="modelForm"
+        label-width="120px"
+        size="small"
+        label-position="right"
+        :model="ubr"
+        :rules="rules"
+        :validate-on-rule-change="false"
+        :disabled="operate === 'details'"
+    >
+      <c-col :span="12" class="col-left">
+        <c-col :span="24">
+          <el-form-item label="交易名" prop="bussec">
+            <c-input
+                v-model="ubr.bussec"
+                placeholder="请输入交易名"
+            >
+            </c-input>
+          </el-form-item>
+        </c-col>
+        <c-col :span="24">
+          <el-form-item label="授权币种" prop="relcur">
+            <c-select v-model="ubr.relcur" style="width: 100%" placeholder="请选择授权币种" :code="getCodesByKey('curtxt')"> </c-select>
+          </el-form-item>
+        </c-col>
+        <c-col :span="24">
+          <el-form-item label="授权金额" prop="relamt">
+            <c-input-currency class="input-currency-left"
+                v-model="ubr.relamt"
+                placeholder="请输入授权金额"
+            >
+            </c-input-currency>
+          </el-form-item>
+        </c-col>
+        <c-col :span="24">
+          <el-form-item label="第二授权金额" prop="relamt2nd">
+            <c-input-currency class="input-currency-left"
+                v-model="ubr.relamt2nd"
+                placeholder="请输入第二授权金额"
+            >
+            </c-input-currency>
+          </el-form-item>
+        </c-col>
+        <c-col :span="24">
+          <el-form-item label="授权状态" prop="relgrp">
+            <c-select v-model="ubr.relgrp" style="width: 100%" placeholder="请选择授权状态" :code="getCodesByKey('relgrp')"> </c-select>
+          </el-form-item>
+        </c-col>
+      </c-col>
+      <c-col :span="12" class="col-right">
+        <c-col :span="24">
+          <el-form-item label="交易代码" prop="trncod">
+            <c-input
+                v-model="ubr.trncod"
+                placeholder="请输入交易代码"
+            >
+            </c-input>
+          </el-form-item>
+        </c-col>
+        <c-col :span="24">
+          <el-form-item label="交易所属机构" prop="branchinr">
+            <c-input
+                v-model="ubr.branchinr"
+                placeholder="请输入交易所属机构"
+            >
+            </c-input>
+          </el-form-item>
+        </c-col>
+        <c-col :span="24">
+          <el-form-item label="一次性授权" prop="autcur">
+            <c-input
+                v-model="ubr.autcur"
+                placeholder="请输入一次性授权"
+            >
+            </c-input>
+          </el-form-item>
+        </c-col>
+        <c-col :span="24">
+          <el-form-item label="一次性释放授权" prop="autamt">
+            <c-input-currency class="input-currency-left"
+                v-model="ubr.autamt"
+                placeholder="请输入一次性释放授权"
+            >
+            </c-input-currency>
+          </el-form-item>
+        </c-col>
+      </c-col>
+    </el-form>
+  </div>
+</template>
+
+<script>
+import { Pattern } from "../../model/Ubr";
+import codes from "~/config/CodeTable";
+
+export default {
+  name: "",
+  props: ['ubr', 'operate'],
+  data() {
+    return {
+      rules: Pattern,
+    };
+  },
+  methods:{
+    getCodesByKey(key) {
+      return codes[key] ?? [];
+    },
+  },
+};
+</script>
+
+<style>
+</style>
diff --git a/src/views/Statics/Usr/views/Dbiusr/UbrList.vue b/src/views/Statics/Usr/views/Dbiusr/UbrList.vue
new file mode 100644
index 0000000..c94c7d8
--- /dev/null
+++ b/src/views/Statics/Usr/views/Dbiusr/UbrList.vue
@@ -0,0 +1,230 @@
+<template>
+  <div class="eibs-tab">
+    <div style="text-align: right">
+      <c-button size="small" type="primary" @click="ubrAdd()" :disabled="false"> 新增 </c-button>
+    </div>
+    <el-form-item label="" label-width="0" prop="ubrList">
+      <c-table :columnsConfig="columns" :list="model.ubrList">
+        <c-table-column fixed="right" prop="op" label="操作" width="200px">
+          <template slot-scope="{ scope }">
+            <button
+                class="el-button el-button--default el-button--small"
+                style="margin-left: 0"
+                size="small"
+                :disabled="false"
+                @click.prevent="ubrInfo(scope.$index, scope.row)"
+            >
+              <span>详情</span>
+            </button>
+            <c-button
+                style="margin-left: 5px"
+                size="small"
+                type="primary"
+                @click="ubrEdit(scope.$index, scope.row)"
+            >
+              修改
+            </c-button>
+            <c-button
+                style="margin-left: 5px"
+                size="small"
+                type="primary"
+                @click="ubrDelete(scope.$index, scope.row)"
+            >
+              删除
+            </c-button>
+          </template>
+        </c-table-column>
+      </c-table>
+    </el-form-item>
+
+    <el-dialog
+        :title="
+        '柜员权限信息:' +
+        (operate === 'details' ? '详情' : operate === 'edit' ? '修改' : '新增')
+      "
+        :visible.sync="ubrDialog"
+        top="10vh"
+        width="80%"
+        :destroy-on-close="true"
+        :before-close="handleClose"
+    >
+      <m-ubr-inf ref="ubr" :ubr="ubr" :operate="operate"></m-ubr-inf>
+      <span slot="footer" class="dialog-footer">
+        <button
+            class="el-button el-button--default el-button--small"
+            style="margin-left: 0"
+            size="small"
+            :disabled="false"
+            @click.prevent="cancel"
+        >
+          <span>取 消</span>
+        </button>
+        <c-button type="primary" @click="cancel" v-if="operate === 'details'"
+        >确 定</c-button
+        >
+        <c-button type="primary" @click="editUbr" v-if="operate === 'edit'"
+        >保 存</c-button
+        >
+        <c-button type="primary" @click="saveUbr" v-if="operate === 'add'"
+        >保 存</c-button
+        >
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import Ubr from "../../model/Ubr";
+import UbrInfo from "./UbrInfo";
+
+import {
+  addUbrData,
+  updateUbrData,
+  deleteUbrData,
+} from "~/service/test/usr";
+
+export default {
+  name: "UbrList",
+  props: ["model"],
+  inject: ["root"],
+  components: {
+    "m-ubr-inf": UbrInfo,
+  },
+  data() {
+    return {
+      ubrDialog: false,
+      ubr: null,
+      operate: "",
+      operateIdx: 0,
+      columns: [
+        //  表结构说明:
+        // { label: '唯一ID', prop: 'inr', width: 'auto' },
+        { label: '用户ID', prop: 'usrinr', width: 'auto' },
+        { label: '交易名', prop: 'bussec', width: 'auto' },
+        { label: '授权币种', prop: 'relcur', width: 'auto' },
+        { label: '授权金额', prop: 'relamt', width: 'auto' },
+        { label: '第二授权金额', prop: 'relamt2nd', width: 'auto' },
+        { label: '授权状态', prop: 'relgrp', width: 'auto' },
+        { label: '交易代码', prop: 'trncod', width: 'auto' },
+        { label: '交易所属机构', prop: 'branchinr', width: 'auto' },
+        { label: '一次性授权', prop: 'autcur', width: 'auto' },
+        { label: '一次性释放授权', prop: 'autamt', width: 'auto' },
+      ],
+    };
+  },
+
+  methods: {
+    /**
+     * 详情
+     */
+    ubrInfo(index, row) {
+      this.ubr = { ...row };
+      this.operate = "details";
+      this.operateIdx = index;
+      this.ubrDialog = true;
+    },
+    /**
+     * 新增
+     */
+    ubrAdd() {
+      this.ubr = new Ubr().data;
+      this.ubr.usrinr=this.model.inr;
+      this.operate = "add";
+      this.ubrDialog = true;
+    },
+    /**
+     * 修改
+     */
+    ubrEdit(index, row) {
+      this.ubr = { ...row };
+      this.operate = "edit";
+      this.operateIdx = index;
+      this.ubrDialog = true;
+    },
+    /**
+     * 删除
+     */
+    ubrDelete(index, row) {
+      this.$confirm("是否真的删除?", "提示", {
+        confirmButtonText: "确认",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then((res) => {
+        deleteUbrData(row.inr).then((res) => {
+          if (res) {
+            this.model.ubrList.splice(index, 1);
+            this.$message.success("删除成功!");
+          } else {
+            this.$message.error("删除失败!");
+          }
+        });
+      });
+    },
+    cancel() {
+      this.handleClose();
+    },
+    editUbr() {
+      this.$refs.ubr.$refs.modelForm.validate((validated) => {
+        if (validated) {
+          updateUbrData(this.ubr)
+              .then((res) => {
+                if (res) {
+                  this.$message.success("修改柜员权限信息成功!");
+                  //TODO model.uclList回填
+                  this.model.ubrList = res.ubrList;
+                  this.handleClose();
+                }
+              })
+              .catch((error) => {
+                this.$message.error("修改柜员权限信息失败!");
+              });
+        }
+      });
+    },
+
+    saveUbr() {
+      for (const key in this.ubr) {
+        if (Object.hasOwnProperty.call(this.ubr, key)) {
+          const v = this.ubr[key];
+          if (typeof v === 'string' && v === '') {
+            this.ubr[key] = " "
+          }
+        }
+      }
+      if (this.root.type === "add") {
+        this.model.ubrList.push(this.ubr);
+        this.handleClose();
+      } else {
+        this.$refs.ubr.$refs.modelForm.validate((validated) => {
+          if (validated) {
+            // this.ubr.inr = this.model.inr
+                addUbrData(this.ubr)
+                .then((res) => {
+                  if (res) {
+                    this.$message.success("保存柜员权限信息成功!");
+                    //TODO model.uclList回填
+                    // this.model.ubrList = res.ubrList;
+                    this.model.ubrList = res.ubrList;
+                    this.handleClose();
+                  }
+                })
+                .catch((error) => {
+                  this.$message.error("保存柜员权限信息失败!");
+                });
+          }
+        });
+      }
+    },
+
+    handleClose(done) {
+      this.ubrDialog = false;
+      if (done && typeof done === "function") {
+        done();
+      }
+    },
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Usr/views/Dbiusr/UclInfo.vue b/src/views/Statics/Usr/views/Dbiusr/UclInfo.vue
new file mode 100644
index 0000000..7a2d4d2
--- /dev/null
+++ b/src/views/Statics/Usr/views/Dbiusr/UclInfo.vue
@@ -0,0 +1,92 @@
+<template>
+  <div class="eibs">
+    <el-form
+        ref="modelForm"
+        label-width="160px"
+        size="small"
+        label-position="right"
+        :model="ucl"
+        :rules="rules"
+        :validate-on-rule-change="false"
+        :disabled="operate === 'details'"
+    >
+      <c-col :span="12" class="col-left">
+        <c-col :span="24">
+          <el-form-item label="默认的机构标志" prop="usrdef">
+            <c-input
+                v-model="ucl.usrdef"
+                placeholder="请输入默认的机构标志"
+            >
+            </c-input>
+          </el-form-item>
+        </c-col>
+        <c-col :span="24">
+          <el-form-item label="用户ID" prop="usr">
+            <c-input
+                v-model="ucl.usr"
+                placeholder="请输入用户ID"
+                disabled=true
+            >
+            </c-input>
+          </el-form-item>
+        </c-col>
+        <c-col :span="24">
+          <el-form-item label="用户所在机构和用户名称" prop="mannam">
+            <c-input
+                v-model="ucl.mannam"
+                placeholder="请输入用户所在机构和用户名称"
+            >
+            </c-input>
+          </el-form-item>
+        </c-col>
+      </c-col>
+      <c-col :span="12" class="col-right">
+        <c-col :span="24">
+          <el-form-item label="机构INR" prop="branchinr">
+            <c-input
+                v-model="ucl.branchinr"
+                placeholder="请输入机构INR"
+            >
+            </c-input>
+          </el-form-item>
+        </c-col>
+        <c-col :span="24">
+          <el-form-item label="用户可作业务的列表" prop="objlst">
+            <c-input
+                v-model="ucl.objlst"
+                placeholder="请输入用户可作业务的列表"
+            >
+            </c-input>
+          </el-form-item>
+        </c-col>
+        <c-col :span="24">
+          <el-form-item label="是否参与任务分配" prop="assignflg">
+            <c-input
+                v-model="ucl.assignflg"
+                placeholder="是否参与任务分配"
+            >
+            </c-input>
+          </el-form-item>
+        </c-col>
+      </c-col>
+
+    </el-form>
+  </div>
+</template>
+
+<script>
+import { Pattern } from "../../model/Ucl";
+
+export default {
+  name: "",
+  props: ['ucl', 'operate'],
+  data() {
+    return {
+      rules: Pattern,
+    };
+  }
+}
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Usr/views/Dbiusr/UclList.vue b/src/views/Statics/Usr/views/Dbiusr/UclList.vue
new file mode 100644
index 0000000..3ad8a2b
--- /dev/null
+++ b/src/views/Statics/Usr/views/Dbiusr/UclList.vue
@@ -0,0 +1,223 @@
+<template>
+  <div class="eibs-tab">
+    <div style="text-align: right">
+      <c-button size="small" type="primary" @click="uclAdd()"> 新增 </c-button>
+    </div>
+
+    <el-form-item label="" label-width="0" prop="uclList">
+      <c-table :columnsConfig="columns" :list="model.uclList">
+        <c-table-column fixed="right" prop="op" label="操作" width="200px">
+          <template slot-scope="{ scope }">
+            <button
+                class="el-button el-button--default el-button--small"
+                style="margin-left: 0"
+                size="small"
+                :disabled="false"
+                @click.prevent="uclInfo(scope.$index, scope.row)"
+            >
+              <span>详情</span>
+            </button>
+            <c-button
+                style="margin-left: 5px"
+                size="small"
+                type="primary"
+                @click="uclEdit(scope.$index, scope.row)"
+            >
+              修改
+            </c-button>
+            <c-button
+                style="margin-left: 5px"
+                size="small"
+                type="primary"
+                @click="uclDelete(scope.$index, scope.row)"
+            >
+              删除
+            </c-button>
+          </template>
+        </c-table-column>
+      </c-table>
+    </el-form-item>
+
+    <el-dialog
+        :title="
+        '柜员组信息:' +
+        (operate === 'details' ? '详情' : operate === 'edit' ? '修改' : '新增')
+      "
+        :visible.sync="uclDialog"
+        top="10vh"
+        width="80%"
+        :destroy-on-close="true"
+        :before-close="handleClose"
+    >
+      <m-ucl-inf ref="ucl" :ucl="ucl" :operate="operate"></m-ucl-inf>
+      <span slot="footer" class="dialog-footer">
+        <button
+            class="el-button el-button--default el-button--small"
+            style="margin-left: 0"
+            size="small"
+            :disabled="false"
+            @click.prevent="cancel"
+        >
+          <span>取 消</span>
+        </button>
+        <c-button type="primary" @click="cancel" v-if="operate === 'details'"
+        >确 定</c-button
+        >
+        <c-button type="primary" @click="editUcl" v-if="operate === 'edit'"
+        >保 存</c-button
+        >
+        <c-button type="primary" @click="saveUcl" v-if="operate === 'add'"
+        >保 存</c-button
+        >
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import UclInfo from "./UclInfo";
+import Ucl from "../../model/Ucl";
+
+import {
+  addUclData,
+  updateUclData,
+  deleteUclData,
+} from "@/service/test/usr";
+
+export default {
+  name: "UclList",
+  inject: ["root"],
+  props: ["model"],
+  components: {
+    "m-ucl-inf": UclInfo,
+  },
+  data() {
+    return {
+      uclDialog: false,
+      ucl: null,
+      operate: "",
+      operateIdx: 0,
+      columns: [
+        { label: '默认的机构标志', prop: 'usrdef', width: 'auto' },
+        { label: '用户ID', prop: 'usr', width: 'auto' },
+        { label: '用户所在机构和用户名称', prop: 'mannam', width: 'auto' },
+        { label: '机构INR', prop: 'branchinr', width: 'auto' },
+        { label: '用户可作业务的列表', prop: 'objlst', width: 'auto' },
+        { label: '是否参与任务分配', prop: 'assignflg', width: 'auto' },
+      ],
+    };
+  },
+  methods: {
+    /**
+     * 信息详情
+     */
+    uclInfo(index, row) {
+      this.ucl = { ...row };
+      this.operate = "details";
+      this.operateIdx = index;
+      this.uclDialog = true;
+    },
+    /**
+     * 新增
+     */
+    uclAdd() {
+      this.ucl = new Ucl().data;
+      this.ucl.usr=this.model.extkey;
+      this.operate = "add";
+      this.uclDialog = true;
+    },
+    /**
+     * 修改
+     */
+    uclEdit(index, row) {
+      this.ucl = { ...row };
+      this.operate = "edit";
+      this.operateIdx = index;
+      this.uclDialog = true;
+    },
+    /**
+     * 删除
+     */
+    uclDelete(index, row) {
+      this.$confirm("是否真的删除?", "提示", {
+        confirmButtonText: "确认",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then((res) => {
+        console.log(row.branchinr)
+        deleteUclData(row.usr, row.branchinr).then((res) => {
+          if (res) {
+            this.model.uclList.splice(index, 1);
+            this.$message.success("删除成功!");
+          } else {
+            this.$message.error("删除失败!");
+          }
+        });
+      });
+    },
+    cancel() {
+      this.handleClose();
+    },
+    editUcl() {
+      this.$refs.ucl.$refs.modelForm.validate((validated) => {
+        if (validated) {
+          updateUclData(this.model.inr,this.ucl)
+              .then((res) => {
+                if (res) {
+                  this.$message.success("修改柜员组信息成功!");
+                  //TODO model.uclList回填
+                  this.model.uclList = res.uclList;
+                  this.handleClose();
+                }
+              })
+              .catch((error) => {
+                this.$message.error("修改柜员组信息失败!");
+              });
+        }
+      });
+    },
+
+    saveUcl() {
+      for (const key in this.ucl) {
+        if (Object.hasOwnProperty.call(this.ucl, key)) {
+          const v = this.ucl[key];
+          if (typeof v === 'string' && v === '') {
+            this.ucl[key] = " "
+          }
+        }
+      }
+      if (this.root.type === "add") {
+        this.model.uclList.push(this.ucl);
+        this.handleClose();
+      } else {
+        this.$refs.ucl.$refs.modelForm.validate((validated) => {
+          if (validated) {
+            addUclData(this.model.inr,this.ucl)
+                .then((res) => {
+                  if (res) {
+                    this.$message.success("保存柜员组信息成功!");
+                    //TODO model.uclList回填
+                    this.model.uclList = res.uclList;
+                    this.handleClose();
+                  }
+                })
+                .catch((error) => {
+                  this.$message.error("保存柜员组信息失败!");
+                });
+          }
+        });
+      }
+    },
+
+    handleClose(done) {
+      this.uclDialog = false;
+      if (done && typeof done === "function") {
+        done();
+      }
+    },
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Usr/views/Dbiusr/UsrInfo.vue b/src/views/Statics/Usr/views/Dbiusr/UsrInfo.vue
new file mode 100644
index 0000000..6db3dfb
--- /dev/null
+++ b/src/views/Statics/Usr/views/Dbiusr/UsrInfo.vue
@@ -0,0 +1,252 @@
+<template>
+  <div class="eibs-tab">
+    <c-col :span="12" class="col-left">
+      <c-col :span="24">
+        <el-form-item label="用户ID" prop="extkey">
+          <c-input
+              v-model="model.extkey"
+              placeholder="请输入用户ID"
+          >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="用户名" prop="nam">
+          <c-input
+              v-model="model.nam"
+              placeholder="请输入用户名"
+          >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="禁止登录" prop="lgiflg">
+          <c-select style="width: 100%"
+                v-model="model.lgiflg"
+               placeholder="请选择禁止登录标识"
+                :code="getCodesByKey('lgiflg')"
+            >
+            </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="最近登录时间" prop="ssnbegdattim">
+          <c-date-picker
+              style="width: 100%"
+              v-model="model.ssnbegdattim"
+              placeholder="请选择最近登录时间"
+          >
+          </c-date-picker>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="SSN ID" prop="ssninr">
+          <c-input
+              v-model="model.ssninr"
+              placeholder="请输入SSN ID"
+          >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="实体标志" prop="pri">
+          <c-input
+              v-model="model.pri"
+              placeholder="请输入实体标志"
+          >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="实体" prop="ety">
+          <c-input
+              v-model="model.ety"
+              placeholder="请输入实体"
+          >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="用户组" prop="usg">
+          <c-input
+              v-model="model.usg"
+              placeholder="请输入用户组"
+          >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="最近DIA查看时间" prop="lstdiadat">
+          <c-date-picker
+              style="width: 100%"
+              v-model="model.lstdiadat"
+              placeholder="请选择最近DIA查看时间"
+          >
+          </c-date-picker>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="授权币种" prop="relcur">
+          <c-select v-model="model.relcur" style="width: 100%" placeholder="请选择账号币种" :code="getCodesByKey('curtxt')"> </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="授权金额" prop="relamt">
+          <c-input-currency class="input-currency-left"
+              v-model="model.relamt"
+              placeholder="请输入授权金额"
+          >
+          </c-input-currency>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="第二授权金额" prop="relamt2nd">
+          <c-input-currency class="input-currency-left"
+              v-model="model.relamt2nd"
+              placeholder="请输入第二授权金额"
+          >
+          </c-input-currency>
+        </el-form-item>
+      </c-col>
+    </c-col>
+
+    <c-col :span="12" class="col-right">
+      <c-col :span="24">
+        <el-form-item label="授权组" prop="relgrp">
+          <c-input
+              v-model="model.relgrp"
+              placeholder="请输入授权组"
+          >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="电话" prop="tel">
+          <c-input
+              v-model="model.tel"
+              placeholder="请输入电话"
+          >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="传真" prop ="fax">
+          <c-input
+              v-model="model.fax"
+              placeholder="请输入传真"
+          >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="电子邮箱" prop="eml">
+          <c-input
+              v-model="model.eml"
+              placeholder="请输入电子邮箱"
+          >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="可用时间" prop="quepow">
+          <c-input-currency class="input-currency-left"
+              v-model="model.quepow"
+              placeholder="请输入可用时间"
+          >
+          </c-input-currency>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="实体名称" prop="etyextkey">
+          <c-input
+              v-model="model.etyextkey"
+              placeholder="请输入实体名称"
+          >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="组织" prop="oenr">
+          <c-input
+              v-model="model.oenr"
+              placeholder="请输入组织"
+          >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="实体地址" prop="etaextkey">
+          <c-input
+              v-model="model.etaextkey"
+              placeholder="请输入实体地址"
+          >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="客户经理" prop="resusrflg">
+          <c-input
+              v-model="model.resusrflg"
+              placeholder="请输入客户经理"
+          >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="用户状态" prop="secsta">
+          <c-input
+              v-model="model.secsta"
+              placeholder="请输入用户状态"
+          >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="信件的组织单位" prop="letoenr">
+          <c-input
+              v-model="model.letoenr"
+              placeholder="请输入信件的组织单位"
+          >
+          </c-input>
+        </el-form-item>
+      </c-col>
+<!--      <c-col :span="24">-->
+<!--        <el-form-item label="ubrList" prop="ubrList">-->
+<!--          <c-input-->
+<!--              v-model="model.ubrList"-->
+<!--              placeholder="请输入ubrList"-->
+<!--          >-->
+<!--          </c-input>-->
+<!--        </el-form-item>-->
+<!--      </c-col>-->
+<!--      <c-col :span="24">-->
+<!--        <el-form-item label="uclList" prop="uclList">-->
+<!--          <c-input-->
+<!--              v-model="model.uclList"-->
+<!--              placeholder="请输入uclList"-->
+<!--          >-->
+<!--          </c-input>-->
+<!--        </el-form-item>-->
+<!--      </c-col>-->
+    </c-col>
+  </div>
+</template>
+
+<script>
+import codes from "~/config/CodeTable";
+export default {
+  name: "",
+  props: ["model"],
+  data() {
+    return {};
+  },
+  methods: {
+    getCodesByKey(key) {
+      return codes[key] ?? [];
+    },
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Usr/views/Dbiusr/index.vue b/src/views/Statics/Usr/views/Dbiusr/index.vue
new file mode 100644
index 0000000..64e2b67
--- /dev/null
+++ b/src/views/Statics/Usr/views/Dbiusr/index.vue
@@ -0,0 +1,196 @@
+<template>
+  <div class="eContainer">
+    <c-page :title="title">
+      <el-form
+          ref="modelForm"
+          label-width="120px"
+          size="small"
+          label-position="right"
+          :model="model"
+          :rules="rules"
+          :validate-on-rule-change="false"
+          :disabled="isDisabled"
+      >
+        <c-tabs v-model="tabVal" ref="elment" type="card">
+          <el-tab-pane label="基本信息" name="usr">
+            <c-content>
+              <m-usr-info :model="model" />
+            </c-content>
+          </el-tab-pane>
+          <el-tab-pane label="柜员权限信息" name="ubr">
+            <c-content>
+              <m-ubr-list :model="model" />
+            </c-content>
+          </el-tab-pane>
+          <el-tab-pane label="柜员组" name="ucl">
+            <c-content>
+              <m-ucl-list :model="model" />
+            </c-content>
+          </el-tab-pane>
+<!--          <el-tab-pane label="联系人信息" name="ptc">-->
+<!--            <c-content>-->
+<!--              <m-ptc-info :model="model" />-->
+<!--            </c-content>-->
+<!--          </el-tab-pane>-->
+<!--          <el-tab-pane label="汇率/费率信息" name="ptyrat,fec,fee">-->
+<!--            <c-content>-->
+<!--              <m-rat-info :model="model" />-->
+<!--            </c-content>-->
+<!--          </el-tab-pane>-->
+        </c-tabs>
+      </el-form>
+      <div style="text-align: center">
+        <c-button
+            type="primary"
+            style="margin-right: 10px"
+            @click="commitAdd"
+            v-if="type === 'add'"
+        >提 交</c-button
+        >
+        <c-button
+            type="primary"
+            style="margin-right: 10px"
+            @click="commitEdit"
+            v-if="type === 'edit'"
+        >提 交</c-button
+        >
+        <c-button
+            type="primary"
+            style="margin-right: 10px"
+            @click="commitDelete"
+            v-if="type === 'delete'"
+        >提 交</c-button
+        >
+        <c-button type="primary" @click="goBack">返 回</c-button>
+      </div>
+    </c-page>
+  </div>
+</template>
+
+<script>
+import Utils from "~/utils";
+import Usr, { Pattern } from "../../model/Usr.js";
+import UsrInfo from "./UsrInfo";
+import UBrInfo from "./UbrList";
+import UclInfo from "./UclList";
+
+import { add, edit, deleteById, queryDetailById } from "~/service/test/usr";
+
+export default {
+  name: "StaticsDbiusr",
+  components: {
+    "m-usr-info": UsrInfo,
+    "m-ubr-list": UBrInfo,
+    "m-ucl-list": UclInfo,
+  },
+  provide() {
+    return {
+      root: this,
+    };
+  },
+  props: {
+    type: {
+      type: String,
+      default: "info"
+    },
+    title: {
+      type: String,
+      default: "dbiusr"
+    }
+  },
+  data() {
+    return {
+      model: new Usr().data,
+      tabVal: "usr",
+      rules: Pattern,
+    };
+  },
+  computed: {
+    isDisabled() {
+      return this.type === "info" || this.type === "delete";
+    },
+  },
+  created() {
+    if (this.type !== "add") {
+      const inr = this.$route.params.inr;
+      // this.model.inr = this.$route.params.inr;
+      console.log(inr);
+      queryDetailById(inr).then((res) => {
+        if (res.inr) {
+          this.model = res;
+        } else {
+          this.$message.error("柜员不存在")
+        }
+      });
+    }
+  },
+  methods: {
+    commitAdd() {
+      this.$refs.modelForm.validate((validated) => {
+        if (validated) {
+          add(this.model)
+              .then((res) => {
+                this.$message.success("保存成功!");
+                this.goBack(true)
+              })
+              .catch((err) => {
+                this.$message.error("保存失败!");
+              });
+        } else {
+          Utils.formValidateTips(this.$refs.modelForm.fields)
+        }
+      });
+    },
+    commitEdit() {
+      this.$refs.modelForm.validate((validated) => {
+        if (validated) {
+          edit(this.model)
+              .then((res) => {
+                this.$message.success("保存成功!");
+                this.goBack()
+              })
+              .catch((err) => {
+                this.$message.error("保存失败!");
+              });
+        } else {
+          Utils.formValidateTips(this.$refs.modelForm.fields)
+        }
+      });
+    },
+    commitDelete() {
+      this.$confirm("是否确认删除?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+          .then(() => {
+            deleteById(this.model.inr)
+                .then((res) => {
+                  this.$message.success("删除成功!");
+                  this.goBack(true)
+                })
+                .catch((err) => {
+                  this.$message.error("删除失败!");
+                });
+          })
+          .catch(() => {
+            this.$message({
+              type: "info",
+              message: "已取消删除",
+            });
+          });
+    },
+    /**
+     * update 是否更新infusr的查询列表
+     */
+    goBack(update) {
+      this.$store.dispatch("TagsView/delView", this.$route);
+      this.$router.push({ name: "StaticsInfusr", params: { update } });
+    },
+
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/Usr/views/Infusr/Infsea.vue b/src/views/Statics/Usr/views/Infusr/Infsea.vue
new file mode 100644
index 0000000..16f05d2
--- /dev/null
+++ b/src/views/Statics/Usr/views/Infusr/Infsea.vue
@@ -0,0 +1,228 @@
+<template>
+  <div class="eibs-tab">
+    <!-- ----------左 ---------->
+    <c-col :span="12" class="col-left">
+      <c-col :span="24">
+        <el-form-item label="用户ID" prop="extkey">
+          <c-input
+            v-model="model.extkey"
+            placeholder="请输入user-id"
+          ></c-input>
+        </el-form-item>
+      </c-col>
+    </c-col>
+    <!------------- 右 ---------->
+    <c-col :span="12" class="col-right">
+      <c-col :span="24">
+        <el-form-item label="用户名" prop="name">
+          <c-input
+            v-model="model.nam"
+            placeholder="请输入name"
+          ></c-input>
+        </el-form-item>
+      </c-col>
+    </c-col>
+
+    <c-col :span="24">
+      <c-col :span="12" style="text-align: left">
+        <el-button type="primary" size="small" @click="usrAdd">新增</el-button>
+      </c-col>
+      <c-col :span="12" style="text-align: right">
+        <el-button size="small" @click="handleReset">重置</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="small"
+          @click="onSearch()"
+          >查询
+        </el-button>
+      </c-col>
+    </c-col>
+
+
+    <c-col :span="24">
+      <c-paging-table 
+        :data="usrData"
+        :columns="usrColumns"
+        :pageNumber="model.pageNum"
+        :pageSize="model.pageSize"
+        :total="model.total"
+        v-on:queryFunc="queryFunc"
+        :border="true"
+      >
+        <c-table-column fixed="right" prop="op" label="操作" width="320px">
+          <template slot-scope="{ scope }">
+            <c-button
+              style="margin-left: 0"
+              size="small"
+              @click="usrInfo(scope.$index, scope.row)"
+              >详情</c-button
+            >
+            <c-button
+              style="margin-left: 5px"
+              size="small"
+              type="primary"
+              @click="usrEdit(scope.$index, scope.row)"
+              >修改</c-button
+            >
+            <c-button
+              size="small"
+              style="margin-left: 5px"
+              @click="usrDelete(scope.$index, scope.row)"
+              >删除</c-button
+            >
+            <c-button id="useButton" size="small" style="margin-left: 5px" :disabled="useButtonVisible" @click="use(scope.row)">使用</c-button>
+<!--            <el-popover placement="top-start" width="50" trigger="click">-->
+<!--              <ul class="table-button-item-list">-->
+<!--                <li>-->
+<!--                  <c-button size="small" style="margin-left: 0">指派</c-button>-->
+<!--                </li>-->
+<!--                <li>-->
+<!--                  <c-button size="small" style="margin-left: 0">删除</c-button>-->
+<!--                </li>-->
+<!--              </ul>-->
+<!--              <a-->
+<!--                slot="reference"-->
+<!--                href="javascript:void(0)"-->
+<!--                style="margin-left: 5px"-->
+<!--              >-->
+<!--                <i class="el-icon-more"></i>-->
+<!--              </a>-->
+<!--            </el-popover>-->
+          </template>
+        </c-table-column>
+      </c-paging-table>
+    </c-col>
+  </div>
+</template>
+
+<script>
+import { queryByPage } from "~/service/test/usr.js";
+
+export default {
+  name: "infsea",
+  props: ["model"],
+  inject: ["root"],
+  data() {
+    return {
+      usrData: [],
+      usrColumns: [
+        // { label: 'inr', prop: 'inr', width: 'auto' },
+        { label: '用户ID', prop: 'extkey', width: 'auto' },
+        { label: '用户名称', prop: 'nam', width: 'auto' },
+        // { label: '禁止登录', prop: 'lgiflg', width: 'auto' },
+        // { label: '最近登录时间', prop: 'ssnbegdattim', width: 'auto' },
+        // { label: 'SSN ID', prop: 'ssninr', width: 'auto' },
+        // { label: '版本号', prop: 'ver', width: 'auto' },
+        // { label: '实体标志', prop: 'pri', width: 'auto' },
+        // { label: '实体', prop: 'ety', width: 'auto' },
+        { label: '用户组', prop: 'usg', width: 'auto' },
+        // { label: '
+        // ', prop: 'lstdiadat', width: 'auto' },
+        { label: '授权币种', prop: 'relcur', width: 'auto' },
+        { label: '授权金额', prop: 'relamt', width: 'auto' },
+        // { label: '第二授权金额', prop: 'relamt2nd', width: 'auto' },
+        // { label: '授权组', prop: 'relgrp', width: 'auto' },
+        // { label: '电话', prop: 'tel', width: 'auto' },
+        // { label: '传真', prop: 'fax', width: 'auto' },
+        // { label: '电子信箱', prop: 'eml', width: 'auto' },
+        // { label: '可用时间', prop: 'quepow', width: 'auto' },
+        // { label: '实体名称', prop: 'etyextkey', width: 'auto' },
+        // { label: '组织', prop: 'oenr', width: 'auto' },
+        { label: '实体地址', prop: 'etaextkey', width: 'auto' },
+        { label: '客户经理', prop: 'resusrflg', width: 'auto' },
+        // { label: 'secsta', prop: 'secsta', width: 'auto' },
+        // { label: 'letoenr', prop: 'letoenr', width: 'auto' },
+        // { label: 'ubrList', prop: 'ubrList', width: 'auto' },
+        // { label: 'uclList', prop: 'uclList', width: 'auto' },
+      ],
+      useButtonVisible: true
+    };
+  },
+  // activated:已进入页面便可触发
+  activated() {
+    const { update } = this.$route.params
+    if (update) {
+      this.onInfusrSearch()
+    }
+  },
+  created() {
+    const { from } = this.$route.params
+    if (from != undefined && from != null) {
+      this.useButtonVisible = false
+    }
+  },
+  methods: {
+    use(row) {
+      const extkey = row.extkey
+      const { from } = this.$route.params
+      this.$store.dispatch("TagsView/delView", this.$route)
+      this.$router.push({
+        name: from,
+        params: {
+          extkey: extkey
+        }
+      })
+    },
+    handleReset() {
+      this.root.$refs.modelForm.resetFields();
+    },
+    onSearch(){
+        this.model.pageNum = 1;
+        this.model.pageSize = 5;
+        this.onInfusrSearch();
+    },
+    onInfusrSearch() {
+			queryByPage(this.model).then(res => {
+        /**
+         * pageNumber: 0
+         * pageSize:	0
+         * total:
+         * totalPage: 0
+         */
+        const list = res.list
+        this.usrData = list
+        this.model.pageNum = res.pageNumber
+        this.model.pageSize = res.pageSize
+        this.model.total = res.total
+      }) 
+		},
+    queryFunc(pageNumber, pageSize) {
+      this.model.pageNum = pageNumber
+      this.model.pageSize = pageSize
+      this.onInfusrSearch()
+    },
+    // ptytypeChange(val) {
+    //   this.model.ptytyp = val;
+    // },
+    // getCodesByKey(key) {
+    //   return codes[key] ?? [];
+    // },
+    usrAdd() {
+			this.$router.push(`/statics/dbausr`)
+		},
+    usrInfo(index, row) {
+			this.$router.push(`/statics/dbiusr/${row.inr}`)
+		},
+    usrEdit(index, row) {
+			this.$router.push(`/statics/dbeusr/${row.inr}`)
+		},
+    usrDelete(index, row) {
+			this.$router.push(`/statics/dbdusr/${row.inr}`)
+		},
+  },
+};
+</script>
+
+<style scoped>
+.table-button-item-list {
+  padding: 0;
+  margin: 0;
+}
+.table-button-item-list li {
+  list-style: none;
+  padding: 5px 0;
+  text-align: center;
+  color: #606266;
+  cursor: pointer;
+}</style>
diff --git a/src/views/Statics/Usr/views/Infusr/index.vue b/src/views/Statics/Usr/views/Infusr/index.vue
new file mode 100644
index 0000000..d3f621c
--- /dev/null
+++ b/src/views/Statics/Usr/views/Infusr/index.vue
@@ -0,0 +1,54 @@
+<template>
+  <div class="eContainer">
+    <c-page title="柜员信息查询">
+      <el-form
+        :model="model"
+        ref="modelForm"
+        label-width="120px"
+        label-position="right"
+        size="small"
+      >
+        <c-tabs v-model="tabVal" ref="elment" type="card">
+          <!--PD000039 -->
+          <el-tab-pane label="柜员查询" name="infsea">
+            <c-content>
+              <m-infsea :model="model" ref="infsea"/>
+            </c-content>
+          </el-tab-pane>
+        </c-tabs>
+      </el-form>
+    </c-page>
+  </div>
+</template>
+
+<script>
+import Infsea from "./Infsea";
+
+export default {
+  name: "StaticsInfusr",
+  components: {
+    "m-infsea": Infsea,
+  },
+  provide() {
+    return {
+      root: this,
+    };
+  },
+  data() {
+    return {
+      tabVal: "infsea",
+      model: {
+        // condition
+        nam: "",
+        extkey: "",
+        // paging
+        pageNum: 1,
+        pageSize: 5,
+        total: 0
+      },
+    };
+  },
+};
+</script>
+
+<style></style>
diff --git a/src/views/Statics/dia/model/Dia.js b/src/views/Statics/dia/model/Dia.js
new file mode 100644
index 0000000..407c548
--- /dev/null
+++ b/src/views/Statics/dia/model/Dia.js
@@ -0,0 +1,40 @@
+export default class Dia {
+    constructor() {
+        this.data = {
+            inr: "",
+            bchkey: "",
+            trn: "",
+            relcur: "",
+            relamt: "",
+            ver: "",
+            relflg: "",
+        }
+    }
+}
+
+export const Pattern = {
+	"cod": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 3, "message": "最大长度3个字符", "trigger": "blur" }
+	],
+	"objref": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 16, "message": "最大长度16个字符", "trigger": "blur" }
+	],
+	"ownusr": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+	],
+	"ownusg": [
+		{ "required": true, "message": "必输项", "trigger": "blur" },
+		{ "max": 6, "message": "最大长度6个字符", "trigger": "blur" }
+	],
+	"frm": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 6, "message": "最大长度6个字符", "trigger": "blur" }
+	],
+	"usr": [
+		{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
+		{ "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
+	],
+}
diff --git a/src/views/Statics/dia/views/Dbadia/index.vue b/src/views/Statics/dia/views/Dbadia/index.vue
new file mode 100644
index 0000000..9aeecd8
--- /dev/null
+++ b/src/views/Statics/dia/views/Dbadia/index.vue
@@ -0,0 +1,22 @@
+<template>
+	<m-dia title="dbadia" type="add"></m-dia>
+</template>
+
+<script>
+import Dbidia from "~/views/Statics/dia/views/Dbidia";
+
+export default {
+  name: "StaticsDbadia",
+	components: {
+		"m-dia": Dbidia
+	},
+  data() {
+    return {};
+  },
+  mounted() {
+  }
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/dia/views/Dbddia/index.vue b/src/views/Statics/dia/views/Dbddia/index.vue
new file mode 100644
index 0000000..cb2da08
--- /dev/null
+++ b/src/views/Statics/dia/views/Dbddia/index.vue
@@ -0,0 +1,20 @@
+<template>
+	<m-dia title="dbddia" type="delete"></m-dia>
+</template>
+
+<script>
+import Dbidia from "~/views/Statics/dia/views/Dbidia";
+
+export default {
+  name: "StaticsDbddia",
+	components: {
+		"m-dia": Dbidia
+	},
+  data() {
+    return {};
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/dia/views/Dbedia/index.vue b/src/views/Statics/dia/views/Dbedia/index.vue
new file mode 100644
index 0000000..ae9b504
--- /dev/null
+++ b/src/views/Statics/dia/views/Dbedia/index.vue
@@ -0,0 +1,20 @@
+<template>
+	<m-dia title="dbedia" type="edit"></m-dia>
+</template>
+
+<script>
+import Dbidia from "~/views/Statics/dia/views/Dbidia";
+
+export default {
+  name: "StaticsDbedia",
+	components: {
+		"m-dia": Dbidia
+	},
+  data() {
+    return {};
+  },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/Statics/dia/views/Dbidia/DiaInfo.vue b/src/views/Statics/dia/views/Dbidia/DiaInfo.vue
new file mode 100644
index 0000000..86296ab
--- /dev/null
+++ b/src/views/Statics/dia/views/Dbidia/DiaInfo.vue
@@ -0,0 +1,163 @@
+<template>
+    <div class="eibs-tab">
+        <!-- =============================================左边=========================================== -->
+
+    <c-col :span="12" class="col-left">
+      <c-col :span="24">
+        <el-form-item label="Business Sector" prop="subObjTyp">
+          <c-select :disabled="type === 'edit'" style="width: 100%" v-model="model.subObjTyp" placeholder="请选择Business Sector" :code="getCodesByKey('dia_bustxt')">
+          </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="参考号" prop="objref">
+          <c-fullbox>
+            <c-input :disabled="false" v-model="model.objref" placeholder="请输入参考号"> </c-input>
+            <template slot="footer">
+              <c-button
+                :disabled="type === 'edit'"
+                style="margin-left: 10px; padding: 0 12px"
+                size="small"
+                type="primary"
+                @click="onSeainf"
+                icon="el-icon-info"
+              >
+              </c-button>
+            </template>
+          </c-fullbox>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="参考号描述" prop="ownrefDesc">
+          <c-input :disabled="type === 'edit'" v-model="model.ownrefDesc" style="width: 100%" placeholder="请输入参考号描述"> </c-input>
+        </el-form-item>
+      </c-col>
+      <!-- <c-col :span="24">
+        <el-form-item label="交易名" prop="frm">
+          <c-select style="width: 100%" v-model="model.frm" placeholder="请选择交易名">
+          </c-select>
+        </el-form-item>
+      </c-col> -->
+      <c-col :span="24">
+        <el-form-item label="交易" prop="frm">
+          <c-select style="width: 100%" v-model="model.frm" placeholder="请选择交易" :code="getCodesByKey('atptxt')">
+          </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="备忘录名称" prop="nam">
+          <c-input v-model="model.nam" style="width: 100%" placeholder="请输入备忘录名称">
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="明细信息" prop="inftxt">
+          <c-input v-model="model.inftxt" placeholder="请输入明细信息" > </c-input>
+        </el-form-item>
+      </c-col>
+      <div v-if="model.cod == 'RAM'">
+        <c-col :span="24">
+        <el-form-item label="客户号" prop="ptyextkey">
+          <c-input v-model="model.ptyextkey" placeholder="请输入客户号" > </c-input>
+        </el-form-item>
+        </c-col>
+        <c-col :span="24">
+          <el-form-item label="客户名称" prop="ptynam">
+            <c-input v-model="model.ptynam" placeholder="请输入客户名称" > </c-input>
+          </el-form-item>
+        </c-col>
+      </div>
+    </c-col>
+    <!-- =============================================右边=========================================== -->
+    <c-col :span="12" class="col-right">
+      <c-col :span="24">
+        <el-form-item label="经办用户" prop="ownusr">
+          <c-fullbox>
+            <c-input :disabled="false" v-model="model.ownusr" placeholder="请输入经办用户" > </c-input>
+            <template slot="footer">
+              <c-button
+                :disabled="type === 'edit'"
+                style="margin-left: 10px; padding: 0 12px"
+                size="small"
+                type="primary"
+                @click="onSeainf"
+                icon="el-icon-info"
+              >
+              </c-button>
+            </template>
+          </c-fullbox>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="经办用户组" prop="ownusg">
+          <c-select style="width: 100%" v-model="model.ownusg" placeholder="请选择经办用户组" :code="getCodesByKey('usgtxt')">
+          </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="创建/修改人" prop="usr">
+          <c-input :disabled="type === 'edit'" v-model="model.usr" placeholder="请输入创建/修改人" >
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="是否完成" prop="donflg">
+          <c-select style="width: 100%" v-model="model.donflg" placeholder="请选择是否完成" :code="getCodesByKey('dia_donflg')">
+          </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="类型" prop="cod">
+          <c-select :disabled="type === 'edit'" style="width: 100%" v-model="model.cod" placeholder="请选择类型" :code="getCodesByKey('diatxt')">
+          </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="日期" prop="dat">
+          <c-date-picker type="date"  v-model="model.dat"  style="width:100%"  placeholder="请选择日期"></c-date-picker>
+        </el-form-item>
+      </c-col>
+      <div v-if="model.cod == 'RAM'">
+        <c-col :span="24">
+        <el-form-item label="付款币种" prop="paycur">
+          <c-input v-model="model.paycur" placeholder="请输入付款币种" >
+          </c-input>
+        </el-form-item>
+        </c-col>
+        <c-col :span="24">
+          <el-form-item label="付款金额" prop="payamt">
+            <c-input v-model="model.payamt" placeholder="请输入付款金额" >
+            </c-input>
+          </el-form-item>
+        </c-col>
+        <c-col :span="24">
+          <el-form-item label="预计核验日期" prop="prechkdat">
+            <c-date-picker type="date"  v-model="model.prechkdat"  style="width:100%"  placeholder="请选择预计核验日期"></c-date-picker>
+          </el-form-item>
+        </c-col>
+      </div>
+    </c-col>
+  </div>
+</template>
+
+<script>
+import codes from "~/config/CodeTable";
+export default {
+  name: '',
+  props: ['model', 'type'],
+  data() {
+    return {
+    }
+  },
+
+  mounted() {},
+
+  methods: {
+    getCodesByKey(key) {
+      return codes[key] ?? [];
+    },
+  },
+}
+</script>
+
+<style></style>
diff --git a/src/views/Statics/dia/views/Dbidia/index.vue b/src/views/Statics/dia/views/Dbidia/index.vue
new file mode 100644
index 0000000..66c7b8b
--- /dev/null
+++ b/src/views/Statics/dia/views/Dbidia/index.vue
@@ -0,0 +1,177 @@
+<template>
+    <div class="eContainer">
+      <c-page :title="title">
+        <el-form
+          ref="modelForm"
+          label-width="120px"
+          size="small"
+          label-position="right"
+          :model="model"
+          :rules="rules"
+          :validate-on-rule-change="false"
+          :disabled="isDisabled"
+        >
+          <c-tabs v-model="tabVal" ref="elment" type="card">
+            <el-tab-pane label="交易备忘录查询" name="dia">
+              <c-content>
+                <m-dia-info :model="model" :type="type" />
+              </c-content>
+            </el-tab-pane>
+          </c-tabs>
+        </el-form>
+        <div style="text-align: center">
+          <c-button
+            type="primary"
+            style="margin-right: 10px"
+            @click="commitAdd"
+            v-if="type === 'add'"
+            >提 交</c-button
+          >
+          <c-button
+            type="primary"
+            style="margin-right: 10px"
+            @click="commitEdit"
+            v-if="type === 'edit'"
+            >提 交</c-button
+          >
+          <c-button
+            type="primary"
+            style="margin-right: 10px"
+            @click="commitDelete"
+            v-if="type === 'delete'"
+            >提 交</c-button
+          >
+          <c-button type="primary" @click="goBack">返 回</c-button>
+        </div>
+      </c-page>
+    </div>
+  </template>
+  
+  <script>
+  import Utils from "~/utils";
+  import Dia, { Pattern } from "../../model/Dia.js";
+  
+  import DiaInfo from "./DiaInfo.vue";
+  
+  import { queryById, add, edit, deleteById, queryDetailById } from "~/service/test/dia.js";
+  
+  export default {
+    name: "StaticsDbidia",
+    components: {
+      "m-dia-info": DiaInfo,
+    },
+    provide() {
+      return {
+        root: this,
+      };
+    },
+    props: {
+          type: {
+              type: String,
+              default: "info"
+          },
+          title: {
+              type: String,
+              default: "dbidia"
+          }
+      },
+    data() {
+      return {
+        model: new Dia().data,
+        tabVal: "dia",
+        rules: Pattern,
+      };
+    },
+    computed: {
+      isDisabled() {
+        return this.type === "info" || this.type === "delete";
+      },
+    },
+    created() {
+      if (this.type !== "add") {
+        const data = {"inr":this.$route.params.inr};
+        queryDetailById(data).then((res) => {
+          if (res.inr) {  
+            this.model = res;
+          } else {
+            this.$message.error("数据不存在")
+          }
+        });
+      }
+    },
+    methods: {
+      commitAdd() {
+        this.$refs.modelForm.validate((validated) => {
+          if (validated) {
+            add(this.model)
+              .then((res) => {
+                console.log('返回结果'+res.messsage);
+                if (res.messsage !== null && Object.keys(res.messsage).length > 0) {
+                  this.$message.error(res.messsage)
+                } else {
+                  this.$message.success("保存成功!")
+                  this.goBack(true)
+                }
+              })
+              .catch((err) => {
+                this.$message.error("保存失败!");
+              });
+          } else {
+            Utils.formValidateTips(this.$refs.modelForm.fields)
+          }
+        });
+      },
+      commitEdit() {
+        this.$refs.modelForm.validate((validated) => {
+          if (validated) {
+            edit(this.model)
+              .then((res) => {
+                this.$message.success("保存成功!");
+                this.goBack(true)
+              })
+              .catch((err) => {
+                this.$message.error("保存失败!");
+              });
+          } else {
+            Utils.formValidateTips(this.$refs.modelForm.fields)
+          }
+        });
+      },
+      commitDelete() {
+        this.$confirm("是否确认删除?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+          .then(() => {
+            let data = {"inr":this.model.inr}
+            deleteById(data)
+              .then((res) => {
+                this.$message.success("删除成功!");
+                this.goBack(true)
+              })
+              .catch((err) => {
+                this.$message.error("删除失败!");
+              });
+          })
+          .catch(() => {
+            this.$message({
+              type: "info",
+              message: "已取消删除",
+            });
+          });
+      },
+      /**
+       * update 是否更新infdia的查询列表
+       */
+      goBack(update) {
+        this.$store.dispatch("TagsView/delView", this.$route);
+        this.$router.push({ name: "StaticsInfdia", params: { update } });
+      },
+  
+    },
+  };
+  </script>
+  
+  <style>
+  </style>
\ No newline at end of file
diff --git a/src/views/Statics/dia/views/Infdia/Infsea.vue b/src/views/Statics/dia/views/Infdia/Infsea.vue
new file mode 100644
index 0000000..35676a3
--- /dev/null
+++ b/src/views/Statics/dia/views/Infdia/Infsea.vue
@@ -0,0 +1,227 @@
+<template>
+  <div class="eibs-tab">
+
+    <c-col :span="12" class="col-left">
+      <c-col :span="24">
+        <el-form-item label="类型" prop="cod">
+          <c-select style="width: 100%" v-model="model.cod" placeholder="请选择类型" :code="getCodesByKey('diatxt')">
+          </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="参考号" prop="objref">
+          <c-input v-model="model.objref" placeholder="请输入参考号" style="width: 100%">
+          </c-input>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="经办用户" prop="ownusr">
+          <c-fullbox>
+            <c-input :disabled="true" v-model="model.ownusr" placeholder="请输入经办用户" style="width: 100%"></c-input>
+            <template slot="footer">
+              <c-button :disabled="type === 'edit'" style="margin-left: 10px; padding: 0 12px" size="small"
+                type="primary" @click="queryOwnusr()" icon="el-icon-info" />
+            </template>
+          </c-fullbox>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="是否完成标志" prop="donflg">
+          <c-select style="width: 100%" v-model="model.donflg" placeholder="请选择是否完成标志"
+            :code="getCodesByKey('dia_donflg')">
+          </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="经办用户组" prop="ownusg">
+          <c-select style="width: 100%" v-model="model.ownusg" placeholder="请选择经办用户组" :code="getCodesByKey('usgtxt')">
+          </c-select>
+        </el-form-item>
+      </c-col>
+    </c-col>
+    <!------------- 右 ---------->
+    <c-col :span="12" class="col-right">
+      <c-col :span="24">
+        <el-form-item label="开始日期" prop="datFrom">
+          <c-date-picker type="date"  v-model="model.datFrom" style="width:100%"  placeholder="请选择开始日期"></c-date-picker>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="截止日期" prop="datTo">
+          <c-date-picker type="date"  v-model="model.datTo" style="width:100%"  placeholder="请选择截止日期"></c-date-picker>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="交易名" prop="frm">
+          <c-select style="width: 100%" v-model="model.frm" placeholder="请选择交易名" :code="getCodesByKey('atptxt')">
+          </c-select>
+        </el-form-item>
+      </c-col>
+      <c-col :span="24">
+        <el-form-item label="创建/修改人" prop="usr">
+          <c-fullbox>
+            <c-input :disabled="true" v-model="model.usr" placeholder="请输入创建/修改人" style="width: 100%"></c-input>
+            <template slot="footer">
+              <c-button :disabled="type === 'edit'" style="margin-left: 10px; padding: 0 12px" size="small"
+                type="primary" @click="onSeainf" icon="el-icon-info" />
+            </template>
+          </c-fullbox>
+        </el-form-item>
+      </c-col>
+    </c-col>
+
+    <c-col :span="24">
+      <c-col :span="12" style="text-align: left">
+        <el-button type="primary" size="small" @click="diaAdd">新增</el-button>
+      </c-col>
+      <c-col :span="12" style="text-align: right">
+        <el-button size="small" @click="handleReset">重置</el-button>
+        <el-button type="primary" icon="el-icon-search" size="small" @click="onSearch()">查询
+        </el-button>
+      </c-col>
+    </c-col>
+    <c-col :span="24">
+      <c-paging-table :data="diaData" :columns="diaColumns" :pageNumber="model.pageNum" :pageSize="model.pageSize"
+        :total="model.total" v-on:queryFunc="queryFunc" :border="true">
+        <c-table-column fixed="right" prop="op" label="操作" width="240px">
+          <template slot-scope="{ scope }">
+            <c-button style="margin-left: 0" size="small" @click="diaInfo(scope.$index, scope.row)">详情</c-button>
+            <c-button style="margin-left: 5px" size="small" type="primary"
+              @click="diaEdit(scope.$index, scope.row)">修改</c-button>
+            <c-button size="small" style="margin-left: 5px" @click="diaDelete(scope.$index, scope.row)">删除</c-button>
+          </template>
+        </c-table-column>
+      </c-paging-table>
+    </c-col>
+  </div>
+</template>
+
+<script>
+import codes from "~/config/CodeTable";
+
+import { queryByPage } from "~/service/test/dia.js";
+
+export default {
+  name: "",
+  props: ["model"],
+  inject: ["root"],
+  data() {
+    return {
+      diaData: [],
+      diaColumns: [
+        { label: '日期', prop: 'dat', width: 'auto' },
+        { label: '类型', prop: 'cod', width: 'auto' },
+        { label: '参考号', prop: 'objref', width: 'auto' },
+        { label: '备忘录名称', prop: 'nam', width: 'auto' },
+        { label: '交易名', prop: 'frm', width: 'auto' },
+        { label: '经办用户', prop: 'ownusr', width: 'auto' },
+        { label: '经办用户组', prop: 'ownusg', width: 'auto' },
+        { label: '是否完成', prop: 'donflg', width: 'auto' },
+      ],
+      dialogFormVisible: false,
+    };
+  },
+  computed: {
+  },
+  activated() {
+    this.$forceUpdate()
+    // 填充ownusr查询条件
+    const { extkey } = this.$route.params
+    if (extkey != undefined && extkey != null) {
+      this.model.ownusr = extkey
+    }
+    // 查询数据
+    const { update } = this.$route.params
+    if (update) {
+      this.onInfdiaSearch()
+    }
+
+  },
+  methods: {
+    getCodesByKey(key) {
+      return codes[key] ?? [];
+    },
+    handleReset() {
+      this.root.$refs.modelForm.resetFields();
+    },
+    onSearch() {
+      this.model.pageSize = 5;
+      this.model.pageNum = 1;
+      this.onInfdiaSearch();
+    },
+    onInfdiaSearch() {
+      queryByPage(this.model).then(res => {
+        const list = res.list
+        // Object.keys(list).forEach((item) => {
+        //   let obj = list[item]
+        //   let codArr = codes['diatxt'].filter((i) => {
+        //     return i.value == obj.cod
+        //   })
+        //   obj.codCn = codArr[0].label
+        //   let donflgArr = codes['dia_donflg'].filter((i) => {
+        //     return i.value == obj.donflg
+        //   })
+        //   obj.donflgCn = donflgArr[0].label
+        // })
+        this.diaData = list
+        this.model.pageNum = res.pageNumber
+        this.model.pageSize = res.pageSize
+        this.model.total = res.total
+      })
+    },
+    queryFunc(pageNumber, pageSize) {
+      this.model.pageNum = pageNumber
+      this.model.pageSize = pageSize
+      this.onInfdiaSearch()
+    },
+    diatypeChange(val) {
+      this.model.fectyp = val;
+    },
+    diaCodesByKey(key) {
+      return codes[key] ?? [];
+    },
+    diaAdd() {
+      this.$router.push(`/statics/dbadia`)
+    },
+    diaInfo(index, row) {
+      this.$router.push(`/statics/dbidia/${row.inr}`)
+    },
+    diaEdit(index, row) {
+      this.$router.push(`/statics/dbedia/${row.inr}`)
+    },
+    diaDelete(index, row) {
+      this.$router.push(`/statics/dbddia/${row.inr}`)
+    },
+    queryOwnusr() {
+      this.$router.push({
+        name: 'StaticsInfusr',
+        params: {
+          from: "StaticsInfdia"
+        }
+      })
+    },
+    // 通过user页面的返回信息填充查询条件
+    fillOwnusrByRoute() {
+      const { extkey } = this.$route.params
+      if (extkey != undefined && extkey != null) {
+        this.model.ownusr = extkey
+      }
+    },
+  },
+};
+</script>
+
+<style scoped>
+.table-button-item-list {
+  padding: 0;
+  margin: 0;
+}
+
+.table-button-item-list li {
+  list-style: none;
+  padding: 5px 0;
+  text-align: center;
+  color: #606266;
+  cursor: pointer;
+}
+</style>
diff --git a/src/views/Statics/dia/views/Infdia/index.vue b/src/views/Statics/dia/views/Infdia/index.vue
new file mode 100644
index 0000000..a19b133
--- /dev/null
+++ b/src/views/Statics/dia/views/Infdia/index.vue
@@ -0,0 +1,49 @@
+<template>
+    <div class="eContainer">
+      <c-page title="交易备忘录查询">
+        <el-form :model="model" ref="modelForm" label-width="120px" label-position="right" size="small">
+          <c-tabs v-model="tabVal" ref="elment" type="card">
+            <!--PD000039 -->
+            <el-tab-pane label="查询面板" name="infsea">
+              <c-content>
+                <m-infsea :model="model" ref="infsea" />
+              </c-content>
+            </el-tab-pane>
+          </c-tabs>
+        </el-form>
+      </c-page>
+    </div>
+  </template>
+  
+  <script>
+  import Infsea from "./Infsea";
+  
+  export default {
+    name: "StaticsInfdia",
+    components: {
+      "m-infsea": Infsea,
+    },
+    provide() {
+      return {
+        root: this,
+      };
+    },
+    data() {
+      return {
+        tabVal: "infsea",
+        model: {
+          cod: "",
+          pageSize:5,
+          pageNum:1,
+          total:0
+  
+        },
+      };
+    },
+  };
+  </script>
+  
+  <style>
+  
+  </style>
+  
\ No newline at end of file