Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
Support
提交反馈
为 GitLab 提交贡献
登录/注册
切换导航
M
mcep-h5
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
jiangzaicheng
mcep-h5
提交
ce638afd
提交
ce638afd
编写于
8月 18, 2022
作者:
jiangzaicheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
-m
bug
上级
6bb1523c
变更
39
展开全部
显示空白字符变更
内嵌
并排
正在显示
39 个修改的文件
包含
3092 行增加
和
228 行删除
+3092
-228
demo_index.html
src/assets/iconfont/demo_index.html
+5
-5
iconfont.css
src/assets/iconfont/iconfont.css
+3
-3
iconfont.ttf
src/assets/iconfont/iconfont.ttf
+0
-0
iconfont.woff
src/assets/iconfont/iconfont.woff
+0
-0
iconfont.woff2
src/assets/iconfont/iconfont.woff2
+0
-0
CardPottom.vue
src/components/common/CardPottom.vue
+12
-6
Person.vue
src/components/common/Person.vue
+4
-4
Picket.vue
src/components/common/Picket.vue
+4
-3
PicketAcced.vue
src/components/common/PicketAcced.vue
+8
-13
ProductCard.vue
src/components/common/ProductCard.vue
+12
-7
Tool.vue
src/components/common/Tool.vue
+2
-2
Calculate.vue
...ch/company-common-functions/auxiliary-tools/Calculate.vue
+198
-0
FinancialTrial.vue
...mpany-common-functions/auxiliary-tools/FinancialTrial.vue
+77
-0
InterestPricing.vue
...pany-common-functions/auxiliary-tools/InterestPricing.vue
+109
-0
LoanCalculation.vue
...pany-common-functions/auxiliary-tools/LoanCalculation.vue
+345
-0
RepaymentTrial.vue
...mpany-common-functions/auxiliary-tools/RepaymentTrial.vue
+375
-0
ManufacturingTrial.vue
...ns/auxiliary-tools/financial-trial/ManufacturingTrial.vue
+261
-0
UnManufacturingTrial.vue
.../auxiliary-tools/financial-trial/UnManufacturingTrial.vue
+261
-0
ContractSigningAndBilling.vue
...-functions/business-inquiry/ContractSigningAndBilling.vue
+18
-0
LoanApplication.vue
...any-common-functions/business-inquiry/LoanApplication.vue
+18
-0
MarketingTask.vue
...mpany-common-functions/business-inquiry/MarketingTask.vue
+248
-0
PeriodicInspection.vue
...-common-functions/business-inquiry/PeriodicInspection.vue
+18
-0
ProcessQuery.vue
...ompany-common-functions/business-inquiry/ProcessQuery.vue
+437
-0
RiskWarning.vue
...company-common-functions/business-inquiry/RiskWarning.vue
+18
-0
AllOutlets.vue
...ch/company-common-functions/online-enquiry/AllOutlets.vue
+18
-0
Area.vue
...orkbench/company-common-functions/online-enquiry/Area.vue
+18
-0
Nearby.vue
...kbench/company-common-functions/online-enquiry/Nearby.vue
+94
-0
login-mgt.api.ts
src/constants/api/login/login-mgt.api.ts
+3
-4
index.ts
src/router/index.ts
+2
-1
login.mgt.routing.ts
src/router/login.mgt.routing.ts
+9
-1
api.service.ts
src/services/api.service.ts
+6
-9
LevelSent.vue
src/views/MyView/LevelSent.vue
+2
-15
LoginByID.vue
src/views/authentication/LoginByID.vue
+272
-0
LoginView.vue
src/views/authentication/LoginView.vue
+34
-13
Register.vue
src/views/login/Register.vue
+78
-45
Main.vue
src/views/main/Main.vue
+23
-9
AccommodDetails.vue
src/views/workbench/AccommodDetails.vue
+27
-17
AccommodMain.vue
src/views/workbench/AccommodMain.vue
+64
-65
Accommodation.vue
src/views/workbench/Accommodation.vue
+9
-6
未找到文件。
src/assets/iconfont/demo_index.html
浏览文件 @
ce638afd
...
...
@@ -3,8 +3,8 @@
<head>
<meta
charset=
"utf-8"
/>
<title>
iconfont Demo
</title>
<link
rel=
"shortcut icon"
href=
"//img.alicdn.com/imgextra/i
2/O1CN01ZyAlrn1MwaMhqz36G_!!6000000001499-73-tps-64-64.ico
"
type=
"image/x-icon"
/>
<link
rel=
"icon"
type=
"image/svg+xml"
href=
"//img.alicdn.com/imgextra/i4/O1CN01
EYTRnJ297D6vehehJ_!!6000000008020-55-tps-64-64
.svg"
/>
<link
rel=
"shortcut icon"
href=
"//img.alicdn.com/imgextra/i
4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg
"
type=
"image/x-icon"
/>
<link
rel=
"icon"
type=
"image/svg+xml"
href=
"//img.alicdn.com/imgextra/i4/O1CN01
Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82
.svg"
/>
<link
rel=
"stylesheet"
href=
"https://g.alicdn.com/thx/cube/1.3.2/cube.min.css"
>
<link
rel=
"stylesheet"
href=
"demo.css"
>
<link
rel=
"stylesheet"
href=
"iconfont.css"
>
...
...
@@ -960,9 +960,9 @@
<pre><code
class=
"language-css"
>
@font-face {
font-family: 'iconfont';
src: url('iconfont.woff2?t=16
58900592121
') format('woff2'),
url('iconfont.woff?t=16
58900592121
') format('woff'),
url('iconfont.ttf?t=16
58900592121
') format('truetype');
src: url('iconfont.woff2?t=16
60790093357
') format('woff2'),
url('iconfont.woff?t=16
60790093357
') format('woff'),
url('iconfont.ttf?t=16
60790093357
') format('truetype');
}
</code></pre>
<h3
id=
"-iconfont-"
>
第二步:定义使用 iconfont 的样式
</h3>
...
...
src/assets/iconfont/iconfont.css
浏览文件 @
ce638afd
@font-face
{
font-family
:
"iconfont"
;
/* Project id 3289090 */
src
:
url('iconfont.woff2?t=16
58900592121
')
format
(
'woff2'
),
url('iconfont.woff?t=16
58900592121
')
format
(
'woff'
),
url('iconfont.ttf?t=16
58900592121
')
format
(
'truetype'
);
src
:
url('iconfont.woff2?t=16
60790093357
')
format
(
'woff2'
),
url('iconfont.woff?t=16
60790093357
')
format
(
'woff'
),
url('iconfont.ttf?t=16
60790093357
')
format
(
'truetype'
);
}
.iconfont
{
...
...
src/assets/iconfont/iconfont.ttf
浏览文件 @
ce638afd
无法预览此类型文件
src/assets/iconfont/iconfont.woff
浏览文件 @
ce638afd
无法预览此类型文件
src/assets/iconfont/iconfont.woff2
浏览文件 @
ce638afd
无法预览此类型文件
src/components/common/CardPottom.vue
浏览文件 @
ce638afd
...
...
@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-07 16:13:13
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-0
7-12 10:4
7:05
* @LastEditTime: 2022-0
8-18 11:0
7:05
* @FilePath: \mcep-h5\src\components\common\Bottom.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
...
...
@@ -18,16 +18,22 @@
<van-col
offset=
"4"
span=
"11"
class=
"money"
>
100,000,00
</van-col>
<van-col
span=
"9"
class=
"moneytitle"
>
壹佰元整
</van-col>
</van-row>
<!--
<van-row
type=
"flex"
class=
"title"
>
<van-col
span=
"24"
>
已使用贷款金额(元)
</van-col>
</van-row>
<van-row
type=
"flex"
class=
"mumMoney"
>
<van-col
offset=
"4"
span=
"11"
class=
"money"
>
6,0000
</van-col>
<van-col
span=
"9"
class=
"moneytitle"
>
壹佰元整
</van-col>
</van-row>
-->
<van-row
type=
"flex"
justify=
"center"
class=
"integral"
>
<van-col
span=
"8"
>
2456
</van-col>
<van-col
span=
"8"
>
12
</van-col>
<van-col
span=
"8"
>
10
</van-col>
<van-col
span=
"12"
>
已使用贷款金额(元)
</van-col>
<van-col
span=
"12"
>
6,0000壹佰元整
</van-col>
</van-row>
<van-row
type=
"flex"
justify=
"center"
class=
"integrall"
>
<
!--
<
van-row
type=
"flex"
justify=
"center"
class=
"integrall"
>
<van-col
span=
"8"
>
我的积分
</van-col>
<van-col
span=
"8"
>
卡券
</van-col>
<van-col
span=
"8"
>
我的特权
</van-col>
</van-row>
</van-row>
-->
</div>
</div>
</
template
>
...
...
src/components/common/Person.vue
浏览文件 @
ce638afd
...
...
@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-04 16:24:00
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-0
7-25 18:31:14
* @LastEditTime: 2022-0
8-18 11:00:05
* @FilePath: \mcep-h5\src\components\common\Tatle.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
...
...
@@ -94,9 +94,9 @@ export default class Person extends Vue {
//星星的点击事件
pushStarts
(){
this
.
$router
.
push
({
name
:
"
level
"
})
//
this.$router.push({
//
name:"level"
//
})
}
layoutDiss
(){
this
.
$router
.
push
({
...
...
src/components/common/Picket.vue
浏览文件 @
ce638afd
...
...
@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-04 16:24:00
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-0
7-12 15:54:23
* @LastEditTime: 2022-0
8-18 13:55:42
* @FilePath: \mcep-h5\src\components\common\Tatle.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
...
...
@@ -89,9 +89,10 @@ export default class Picket extends Vue {
-moz-font-feature-settings
:
"kern"
;
-moz-font-feature-settings
:
"kern=1"
;
font-kerning
:
normal
;
width
:
50%
;
//
width: 50%;
border-radius
:
4px
;
text-align
:
center
;
padding-left
:
1%
;
// text-align: center;
}
.limitrange
{
// margin-left: 3%;
...
...
src/components/common/PicketAcced.vue
浏览文件 @
ce638afd
...
...
@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-04 16:24:00
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-0
7-25 14:28:53
* @LastEditTime: 2022-0
8-18 14:13:40
* @FilePath: \mcep-h5\src\components\common\Tatle.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
...
...
@@ -10,16 +10,11 @@
<!--
<div>
-->
<div
class=
"d-tatle"
>
<div
class=
"card"
v-for=
"(item, index) in productParam"
:key=
"index"
>
<div
@
click=
"onClickDetails()"
>
<div
@
click=
"onClickDetails(
item.status
)"
>
<van-row>
<van-col
span=
"16"
>
<van-col
span=
"12"
class=
"lable"
><span>
合同编号:
</span></van-col>
<van-col
span=
"24"
class=
"priductName"
>
{{
item
.
productname
}}
</van-col>
<van-col
style=
" width: 100%; margin-left: 8%; line-height: 2;"
>
<van-row
gutter=
"20"
>
<van-col
span=
"12"
class=
"lable"
><span>
申请金额:万元
</span></van-col>
...
...
@@ -46,15 +41,15 @@
<use
xlink:href=
"#icon-a-yifafang60x60px"
></use>
</svg>
<svg
class=
"icon"
aria-hidden=
"true"
v-if=
"item.status === 2"
>
<use
xlink:href=
"#icon-
a-yifafang60x60px
"
></use>
<use
xlink:href=
"#icon-
shenqingzhong
"
></use>
</svg>
<svg
class=
"icon"
aria-hidden=
"true"
v-if=
"item.status === 3"
>
<use
xlink:href=
"#icon-
a-yijieqing60x60px
"
></use>
<use
xlink:href=
"#icon-
yijieqing
"
></use>
</svg>
</van-col>
</van-row>
</div>
<van-row
v-if=
"item.status ===
2
"
type=
"flex"
class=
"bottom"
@
click=
"onClickPicket()"
>
<van-row
v-if=
"item.status ===
1
"
type=
"flex"
class=
"bottom"
@
click=
"onClickPicket()"
>
<van-col
span=
"24"
class=
"lablel"
><span>
还款计划
</span>
<svg
class=
"iconl"
aria-hidden=
"true"
>
<use
xlink:href=
"#icon-a-xiayiye24x24px"
></use>
...
...
@@ -81,8 +76,8 @@ export default class PicketAcced extends Vue {
this
.
$emit
(
"
onClickPicket
"
)
}
//调用父组件的值
onClickDetails
()
{
this
.
$emit
(
"
onClickDetails
"
)
onClickDetails
(
status
:
any
)
{
this
.
$emit
(
"
onClickDetails
"
,
status
)
}
}
</
script
>
...
...
src/components/common/ProductCard.vue
浏览文件 @
ce638afd
...
...
@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-07 16:13:13
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-0
7-25 18:18:42
* @LastEditTime: 2022-0
8-18 14:04:18
* @FilePath: \mcep-h5\src\components\common\Bottom.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
...
...
@@ -15,7 +15,7 @@
<van-col
span=
"24"
class=
"title"
>
最高贷款额度
</van-col>
</van-row>
<van-row
type=
"flex"
justify=
"center"
class=
"integral"
>
<van-col
span=
"24"
style=
"font-size: 24px;font-weight: 900;"
>
{{
money
}}
</van-col>
<van-col
span=
"24"
style=
"font-size: 24px;font-weight: 900;
margin-top: 5%;
"
>
{{
money
}}
</van-col>
</van-row>
<van-row
type=
"flex"
justify=
"center"
class=
"integrall"
>
<van-col
span=
"24"
>
{{
moneyName
}}
</van-col>
...
...
@@ -27,18 +27,23 @@
</van-row>
</div>
<div>
<scroller-view
v-calculate-height
:height=
"10000"
>
<van-collapse
v-model=
"activeNames"
style=
" margin-top: 20%;
border: 1px solid;
width: 100%;
height: 100%;
border-radius: 8px;
margin: 20% auto;
box-shadow: 0 y-shadow 10px 10px rgba(0, 0, 0, .2);
"
>
<van-collapse-item
title=
"标题1"
name=
"1"
>
内容
</van-collapse-item>
<van-collapse-item
title=
"标题2"
name=
"2"
>
内容
</van-collapse-item>
<van-collapse-item
title=
"标题3"
name=
"3"
>
内容
</van-collapse-item>
<van-collapse-item
title=
"产品介绍"
name=
"1"
>
农村信用社向符合条件的客户发放的用于满足个人消费、生产经营流动资金等需求的一项贷款业务。
</van-collapse-item>
<van-collapse-item
title=
"产品特点"
name=
"2"
>
一次核定,三年有效,随用随贷,循环使用。
</van-collapse-item>
<van-collapse-item
title=
"货款对象"
name=
"3"
>
货款对象
</van-collapse-item>
<van-collapse-item
title=
"货款期限"
name=
"4"
>
最长不超过3年。
</van-collapse-item>
<van-collapse-item
title=
"担保方式"
name=
"5"
>
以借款人自有或第三人提供有权处置的有效资产抵押担保。
</van-collapse-item>
<!--
<van-collapse-item
title=
"担保方式"
name=
"5"
>
以借款人自有或第三人提供有权处置的有效资产抵押担保。
</van-collapse-item>
-->
</van-collapse>
</scroller-view>
</div>
</div>
</
template
>
...
...
@@ -55,7 +60,7 @@ export default class ProductCard extends Vue {
@
Prop
({
default
:
""
})
money
:
string
|
undefined
;
//额度
@
Prop
({
default
:
""
})
moneyName
:
string
|
undefined
;
//额度大写
//立即登录
activeNames
=
[
"
1
"
];
activeNames
=
[
""
];
lodiing
()
{
this
.
$router
.
push
({
path
:
"
/Recognition
"
,
...
...
src/components/common/Tool.vue
浏览文件 @
ce638afd
...
...
@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-04 16:24:00
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-0
7-26 15:20:42
* @LastEditTime: 2022-0
8-18 11:09:51
* @FilePath: \mcep-h5\src\components\common\Tatle.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
...
...
@@ -34,7 +34,7 @@
</van-col>
</van-row>
<van-row
class=
"imgNo"
>
<van-col
span=
"6"
class=
"imglocal"
@
click=
"pushTrial"
>
存款
利息试算
</van-col>
<van-col
span=
"6"
class=
"imglocal"
@
click=
"pushTrial"
>
利息试算
</van-col>
<van-col
span=
"6"
class=
"imglocal"
@
click=
"pushManage"
>
理财产品
</van-col>
<van-col
span=
"6"
class=
"imglocal"
@
click=
"pushSelf"
>
自助贷款
</van-col>
<van-col
span=
"6"
class=
"imglocal"
>
积分商城
</van-col>
...
...
src/components/workbench/company-common-functions/auxiliary-tools/Calculate.vue
0 → 100644
浏览文件 @
ce638afd
<
template
>
<div
class=
"content"
>
<div
style=
"width: 100%"
>
<van-form
label-width=
"25%"
@
submit=
"onSubmit"
>
<!--
<mobile-input
v-model=
"type_of_certificate"
placeholder=
"营业执照"
readonly
label=
"证件类型"
/>
-->
<d-select
placeholder=
"请选择"
label=
"证件类型"
:value=
"IdentTp"
border=
"true"
:required=
"true"
v-model=
"IdentTp"
sfield=
"IdentTp"
size=
"small"
:rules=
"[
{ required: true, message: '证件类型不能为空' }]"
>
</d-select>
<mobile-input
:formatter=
"formatter"
format-trigger=
"reset"
v-model=
"IdentNo"
:required=
"true"
:rules=
"[
{ validator, message: msg == '' ? '类型不能为空' : msg }]"
label="证件号码"
/>
<mobile-input
v-show=
"companyName != ''"
class=
"contact_tel"
placeholder=
"请输入联系电话"
label=
"公司名称"
readonly
v-model=
"companyName"
/>
<div
style=
"margin: 16px; display: flex; justify-content: space-around"
>
<van-button
@
click=
"reset"
style=
"width: 40%"
round
color=
"#999999"
native-type=
"info"
plain
>
重置
</van-button
>
<van-button
style=
"width: 40%"
round
type=
"info"
native-type=
"submit"
>
计算
</van-button
>
</div>
</van-form>
<div
class=
"content-style"
v-show=
"LOAN_BAL != '' && LOAN_BAL != null"
>
<table-single-view
:data=
"AUMInfo"
:keyValue=
"keyValueAum"
></table-single-view>
</div>
</div>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
}
from
"
vue-property-decorator
"
;
import
nettyApi
from
"
@/constants/api/ms-netty/netty.api.ts
"
;
import
systemApi
from
"
@/constants/api/ms-system/system.api.ts
"
;
import
IF
from
"
@/public/factory/InterFaceFactory
"
;
import
{
NativeUI
}
from
"
@/public/ts/NativeUI
"
;
import
TableSingleView
from
"
@/public/TableSingleView.vue
"
;
// import emUtil from '@/public/js/em.util';
/**
* @Description 年日均计算
* @Author JiangTao
* @Date 2021-11-10 下午 03:36
*/
@
Component
({
name
:
"
Calculate
"
,
components
:
{
TableSingleView
},
})
export
default
class
Calculate
extends
Vue
{
IdentTp
=
""
;
IdentNo
=
""
;
msg
=
"
输入不能为空
"
;
cusInfo
:
any
=
{};
AUMInfo
:
any
=
{};
//查询AUM返回的信息
keyValueAum
=
{
LOAN_BAL
:
"
贷款总额
"
,
LOAN_YEAR_DAY_AVG
:
"
贷款年日均
"
,
};
LOAN_BAL
=
""
;
companyName
=
""
;
onSubmit
()
{
this
.
selectCustInfo
();
}
formatter
()
{}
reset
()
{
this
.
IdentNo
=
""
;
this
.
IdentTp
=
""
;
}
// 暂无拍照接口
// ocrScan(bse64Img:any) {
// if (!this.IdentTp) {
// NativeUI.toast('请先选择证件类型');
// } else {
// emUtil.captureImage().then(localData => {
// let _this = this;
// let fileImage = _this.base64ToFile(localData);
// NativeUI.showWaiting('正在识别...');
// IF.transferFile(systemApi.ocrCertificateIdentify, { file: fileImage }).then(res => {
// NativeUI.closeWaiting();
// console.log(res);
// if (res.ret_code == '000000') {
// NativeUI.toast(res.msg);
// _this.IdentNo = res.REGISTER_ID;
// // _this.CstNm = res.COMPANY_NAME;
// // _this.displayValue = res.COMPANY_TYPE;
// } else {
// NativeUI.toast(res.msg || 'OCR识别失败');
// }
// });
// });
// }
// }
//证件号校验规则
validator
(
val
:
any
)
{
if
(
this
.
IdentTp
==
"
1
"
)
{
this
.
msg
=
"
组织机构代码输入有误
"
;
return
/
[
A-Z0-9
]{8}
-
[
A-Z0-9
]
$|
[
A-Z0-9
]{8}
-
[
A-Z0-9
]
-
[
0-9
]{2}
$/
.
test
(
val
);
}
else
if
(
this
.
IdentTp
==
"
2
"
)
{
//社会统一信用代码
this
.
msg
=
"
社会统一信用代码输入有误
"
;
return
/
[
1-9A-GY
]{1}[
1239
]{1}[
1-5
]{1}[
0-9
]{5}[
0-9A-Z
]{10}
/
.
test
(
val
);
}
}
//查询年日均AUM
selectAUMInfo
()
{
const
param
=
{
CUST_NO
:
this
.
cusInfo
.
cus_id
,
//'1003813734'
CUST_NAME
:
this
.
cusInfo
.
cus_name
,
//'成***',
tc
:
nettyApi
.
TRADE_CODE
.
selectCompanyAumInfo
,
};
NativeUI
.
showWaiting
(
"
正在查询...
"
);
return
IF
.
transferDataInter
(
nettyApi
.
commonRq
,
param
).
then
((
res
:
any
)
=>
{
NativeUI
.
closeWaiting
();
if
(
res
.
rc
==
"
1
"
)
{
if
(
res
.
LOAN_BAL
!=
null
)
{
this
.
AUMInfo
=
res
;
this
.
LOAN_BAL
=
res
.
LOAN_BAL
;
}
else
{
NativeUI
.
toast
(
"
此用户无AUM数据
"
);
}
}
else
{
NativeUI
.
toast
(
res
.
msg
);
}
});
}
//查询客户列表
selectCustInfo
(
pageNo
=
1
)
{
const
param
=
{
cus_status
:
""
,
cert_code
:
this
.
IdentNo
,
cus_type
:
""
,
maxLine
:
"
1
"
,
targetPage
:
1
,
tc
:
nettyApi
.
TRADE_CODE
.
selectXDGSXX
,
};
NativeUI
.
showWaiting
(
"
正在查询...
"
);
return
IF
.
transferDataInter
(
nettyApi
.
commonRq
,
param
).
then
((
res
:
any
)
=>
{
NativeUI
.
closeWaiting
();
if
(
res
.
rc
==
"
1
"
)
{
if
(
res
.
CusComList
.
length
>
0
)
{
this
.
cusInfo
=
res
.
CusComList
[
0
];
this
.
companyName
=
res
.
CusComList
[
0
].
cus_name
;
this
.
selectAUMInfo
();
}
else
{
NativeUI
.
toast
(
"
信贷系统无此用户
"
);
}
}
else
{
NativeUI
.
toast
(
res
.
msg
);
}
});
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
.content
{
width
:
50%
;
padding-top
:
5%
;
margin
:
0
auto
;
}
::v-deep
.van-button--info
{
background-color
:
#fd5065
;
border
:
1px
solid
#fd5065
;
}
::v-deep
.van-button__text
{
font-size
:
16px
;
}
.content-style
{
margin-left
:
100px
;
margin-top
:
100px
;
}
</
style
>
src/components/workbench/company-common-functions/auxiliary-tools/FinancialTrial.vue
0 → 100644
浏览文件 @
ce638afd
<
template
>
<div
class=
"content"
>
<van-tabs
class=
"label"
type=
"card"
>
<van-tab
@
click=
"manufacturing_trial_click"
title=
"制造业试算"
>
<manufacturing-trial></manufacturing-trial>
</van-tab>
<van-tab
@
click=
"unmanufacturing_trial_click"
title=
"非制造业试算"
>
<un-manufacturing-trial></un-manufacturing-trial>
</van-tab>
</van-tabs>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
}
from
"
vue-property-decorator
"
;
import
{
Tab
,
Tabs
}
from
"
vant
"
;
import
ManufacturingTrial
from
"
@/components/workbench/company-common-functions/auxiliary-tools/financial-trial/ManufacturingTrial.vue
"
;
import
UnManufacturingTrial
from
"
@/components/workbench/company-common-functions/auxiliary-tools/financial-trial/UnManufacturingTrial.vue
"
;
/**
* @Description 财务试算
* @Author JiangTao
* @Date 2021-11-10 下午 03:36
*/
Vue
.
use
(
Tab
);
Vue
.
use
(
Tabs
);
@
Component
({
name
:
"
FinancialTrial
"
,
components
:
{
ManufacturingTrial
,
UnManufacturingTrial
},
})
export
default
class
FinancialTrial
extends
Vue
{
manufacturing_trial
=
true
;
un_manufacturing_trial
=
false
;
manufacturing_trial_click
()
{
// console.log("aaaaaaaaaaa");
this
.
manufacturing_trial
=
true
;
this
.
un_manufacturing_trial
=
false
;
}
unmanufacturing_trial_click
()
{
// console.log("bbbbbbbbbbbbb");
this
.
manufacturing_trial
=
false
;
this
.
un_manufacturing_trial
=
true
;
}
}
</
script
>
<
style
scoped
>
.content
{
width
:
90%
;
margin
:
0
auto
;
margin-top
:
2%
;
}
.label
{
width
:
30%
;
margin
:
0
auto
;
margin-bottom
:
4%
;
}
::v-deep
.van-tabs
{
margin
:
0
;
width
:
98%
;
}
::v-deep
.van-tabs--card
>
.van-tabs__wrap
{
width
:
300px
;
margin
:
0
auto
;
}
::v-deep
.van-tab__text--ellipsis
{
font-size
:
16px
;
}
::v-deep
.van-tabs__wrap
,
::v-deep
.van-tabs__nav--card
{
height
:
40px
;
}
::v-deep
.van-tabs--card
>
.van-tabs__wrap
{
margin-bottom
:
4%
;
}
</
style
>
src/components/workbench/company-common-functions/auxiliary-tools/InterestPricing.vue
0 → 100644
浏览文件 @
ce638afd
<
template
>
<div
class=
"content"
>
<div
v-if=
"getData[0]"
class=
"personal-mortgage"
>
<div></div>
<div
@
click=
"selectInfo(0)"
>
《
{{
getData
[
0
].
fileName
}}
》
</div>
</div>
<div
v-if=
"getData[1]"
class=
"personal-consumption"
>
<div></div>
<div
@
click=
"selectInfo(1)"
>
《
{{
getData
[
1
].
fileName
}}
》
</div>
</div>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
}
from
"
vue-property-decorator
"
;
import
nettyApi
from
"
@/constants/api/ms-netty/netty.api.ts
"
;
import
systemApi
from
"
@/constants/api/ms-system/system.api.ts
"
;
import
IF
from
"
@/public/factory/InterFaceFactory
"
;
import
{
NativeUI
}
from
"
@/public/ts/NativeUI
"
;
/**
* @Description 利率定价
* @Author JiangTao
* @Date 2021-10-25 下午 08:55
*/
@
Component
({
name
:
"
InterestPricing
"
,
})
export
default
class
InterestPricing
extends
Vue
{
getData
:
any
[]
=
[];
itemInfo
:
any
=
{};
//查询个贷利率定价
selectPerLoanPrice
()
{
NativeUI
.
showWaiting
(
"
正在查询...
"
);
return
IF
.
transferDataInter
(
systemApi
.
selectPerLoanPrice
,
{}).
then
(
(
res
:
any
)
=>
{
NativeUI
.
closeWaiting
();
if
(
res
.
code
==
1
)
{
this
.
getData
=
res
.
data
;
console
.
log
(
this
.
getData
);
for
(
let
i
=
0
;
i
<
this
.
getData
.
length
;
i
++
)
{
let
temp
=
this
.
getData
[
i
].
docName
;
// let strs = temp.spit('个');
let
index
=
temp
.
indexOf
(
"
个人
"
);
let
fileDate
=
temp
.
substr
(
0
,
index
);
let
fileName
=
temp
.
substr
(
index
);
this
.
getData
[
i
].
fileDate
=
fileDate
;
this
.
getData
[
i
].
fileName
=
fileName
;
}
// console.log(this.getData,'-----------------------------------------------');
}
else
{
NativeUI
.
toast
(
res
.
msg
);
}
}
);
}
selectInfo
(
index
=
0
)
{
const
urlFront
=
"
http://15.1.48.24:8888/
"
;
//http://15.1.48.24:8888/
if
(
index
==
0
)
{
window
.
location
.
href
=
urlFront
+
this
.
getData
[
0
].
mcepFileKey
;
}
else
if
(
index
==
1
)
{
window
.
location
.
href
=
urlFront
+
this
.
getData
[
1
].
mcepFileKey
;
}
}
mounted
()
{
this
.
selectPerLoanPrice
();
}
}
</
script
>
<
style
scoped
>
.content
{
width
:
100%
;
height
:
100%
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
.personal-mortgage
,
.personal-consumption
{
width
:
30%
;
height
:
33%
;
background-image
:
url("~@/assets/images/auxiliary-tools-Interest-pricing.png")
;
background-repeat
:
no-repeat
;
background-size
:
90%
;
}
.personal-mortgage
div
:nth-child
(
1
),
.personal-consumption
div
:nth-child
(
1
)
{
width
:
50%
;
height
:
30%
;
margin-top
:
10%
;
margin-left
:
8%
;
background-image
:
url("~@/assets/images/chengdu-bank-logo.png")
;
background-repeat
:
no-repeat
;
background-size
:
75%
;
}
.personal-mortgage
div
:nth-child
(
2
),
.personal-consumption
div
:nth-child
(
2
)
{
width
:
50%
;
margin
:
0
auto
;
margin-left
:
20%
;
font-size
:
115%
;
}
</
style
>
src/components/workbench/company-common-functions/auxiliary-tools/LoanCalculation.vue
0 → 100644
浏览文件 @
ce638afd
此差异已折叠。
点击以展开。
src/components/workbench/company-common-functions/auxiliary-tools/RepaymentTrial.vue
0 → 100644
浏览文件 @
ce638afd
此差异已折叠。
点击以展开。
src/components/workbench/company-common-functions/auxiliary-tools/financial-trial/ManufacturingTrial.vue
0 → 100644
浏览文件 @
ce638afd
<
template
>
<div>
<van-form
@
submit=
"onSubmit"
>
<table>
<tr>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" type="number" format-trigger="reset" v-model="manufacturingObject.GPM"
label="销售毛利率(%)" size="small" />
</td>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset" v-model="manufacturingObject.ROE" type="number" label="净资产收益率(%)"
size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" type="number" format-trigger="reset" v-model="manufacturingObject.ASSET"
label="资产负债率(%)" size="small" />
</td>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset"
v-model="manufacturingObject.EARNED" label="已获利息倍数" type="number" size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset"
v-model="manufacturingObject.InterBearing" type="number" label="有息负债率(%)" size="small" />
</td>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset"
v-model="manufacturingObject.ACCRECETRUN" type="number" label="应收账款周转率(%)" size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset" v-model="manufacturingObject.DEPTURN"
label="存款周转率(%)" type="number" size="small" />
</td>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset"
v-model="manufacturingObject.FAT" type="number" label="固定资产周转率(%)" size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset" v-model="manufacturingObject.ITR"
label="存货周转率(%)" type="number" size="small" />
</td>
<td>
<mobile-input
:formatter=
"formatter"
:required=
"true"
type=
"number"
format-trigger=
"reset"
v-model=
"manufacturingObject.SARE"
label=
"销售收入(元)"
size=
"small"
/>
</td>
</tr>
<tr>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ pattern, message: '年限为整数' }]" :required="true" format-trigger="reset" v-model="manufacturingObject.ESYEAR"
label="成立年限" type="digit" size="small" />
</td>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: floatMsg }]" :required="true" format-trigger="reset" v-model="manufacturingObject.TASS"
label="总资产(元)" type="digit" size="small" />
</td>
</tr>
<tr>
<td
colspan=
"2"
>
<mobile-input
:required=
"true"
:rules=
"[
{ validator: testFloat, message: floatMsg }]" :formatter="formatter" format-trigger="reset" v-model="manufacturingObject.NASS"
label="净资产(元)" type="number" size="small" />
</td>
</tr>
<tr>
<td
colspan=
"2"
>
<div
style=
"margin: 16px; display: flex; justify-content: space-around"
>
<van-button
@
click=
"reset"
style=
"width: 25%"
round
color=
"#999999"
native-type=
"button"
plain
>
重置
</van-button>
<van-button
style=
"width: 25%"
round
type=
"info"
native-type=
"submit"
>
试算
</van-button>
</div>
</td>
</tr>
</table>
</van-form>
<van-dialog
:show-cancel-button=
"false"
:show-confirm-button=
"false"
:close-on-click-overlay=
"true"
v-model=
"showDialogReject"
>
<div
class=
"dialog-box"
style=
"position: relative"
>
<div
class=
"dialog-title"
>
测算结果
</div>
<div
class=
"score-box"
>
{{
totalScore
}}
</div>
<svg
class=
"icon icon-img"
aria-hidden=
"true"
>
<use
xlink:href=
"#icon-a-cepingjieguo110x110ziyuan40"
></use>
</svg>
<van-button
class=
"submitstyle3"
block
native-type=
"button"
@
click=
"showDialogReject = false"
>
知道了
</van-button>
</div>
</van-dialog>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
}
from
"
vue-property-decorator
"
;
import
systemApi
from
"
@/constants/api/ms-system/system.api.ts
"
;
import
IF
from
"
@/public/factory/InterFaceFactory
"
;
import
{
NativeUI
}
from
"
@/public/ts/NativeUI
"
;
/**
* @Description 制造业试算
* @Author 王航
* @Date 2022-2-23 下午 04:32
*/
@
Component
({
name
:
"
ManufacturingTrial
"
})
export
default
class
ManufacturingTrial
extends
Vue
{
manufacturingObject
:
any
=
{
//制造业对象
GPM
:
''
,
//销售毛利率
ROE
:
''
,
//净资产收益率
ASSET
:
''
,
//资产负债率
EARNED
:
''
,
//已获息倍数
InterBearing
:
''
,
//有息负债率
ACCRECETRUN
:
''
,
//应收账款周转率
DEPTURN
:
''
,
//存款周转率
FAT
:
''
,
//固定资产周转率
ITR
:
''
,
//存货周转率
SARE
:
''
,
//销售收入
ESYEAR
:
''
,
//成立年限
TASS
:
''
,
//总资产
NASS
:
''
//净资产
};
pattern
=
/^
[
1-9
]\d
*$/
;
//整数校验
totalScore
:
any
=
''
;
//总分数
showDialogReject
=
false
;
floatMsg
=
''
;
//浮点数验证信息
formatter
()
{
}
onSubmit
(
values
:
any
)
{
// console.log("submit", values);
this
.
selectCompanyComputeInfo
();
}
selectCompanyComputeInfo
()
{
let
param
=
{
GPM
:
this
.
manufacturingObject
.
GPM
,
//销售毛利率
ROE
:
this
.
manufacturingObject
.
ROE
,
//净资产收益率
ASSET
:
this
.
manufacturingObject
.
ASSET
,
//资产负债率
EARNED
:
this
.
manufacturingObject
.
EARNED
,
//已获息倍数
InterBearing
:
this
.
manufacturingObject
.
InterBearing
,
//有息负债率
ACCRECETRUN
:
this
.
manufacturingObject
.
ACCRECETRUN
,
//应收账款周转率
DEPTURN
:
this
.
manufacturingObject
.
DEPTURN
,
//存款周转率
FAT
:
this
.
manufacturingObject
.
FAT
,
//固定资产周转率
ITR
:
this
.
manufacturingObject
.
ITR
,
//存货周转率
SARE
:
this
.
manufacturingObject
.
SARE
,
//销售收入
ESYEAR
:
this
.
manufacturingObject
.
ESYEAR
,
//成立年限
TASS
:
this
.
manufacturingObject
.
TASS
,
//总资产
NASS
:
this
.
manufacturingObject
.
NASS
,
//净资产
COMTYPE
:
'
0
'
//0表示制造业企业,1表示非制造业
};
NativeUI
.
showWaiting
(
'
正在查询...
'
);
return
IF
.
transferDataInter
(
systemApi
.
companyMoneyComputed
,
param
).
then
((
res
:
any
)
=>
{
NativeUI
.
closeWaiting
();
if
(
res
.
code
==
1
)
{
this
.
totalScore
=
res
.
data
.
totalAch
;
//总分
console
.
log
(
this
.
totalScore
);
this
.
showDialogReject
=
true
;
}
else
{
NativeUI
.
toast
(
res
.
message
);
}
});
}
formatDate
(
date
:
any
)
{
return
`
${
date
.
getFullYear
()}
-
${
date
.
getMonth
()
+
1
}
-
${
date
.
getDate
()}
`
;
}
reset
()
{
this
.
manufacturingObject
.
GPM
=
''
;
this
.
manufacturingObject
.
ROE
=
''
;
this
.
manufacturingObject
.
ASSET
=
''
;
this
.
manufacturingObject
.
EARNED
=
''
;
this
.
manufacturingObject
.
InterBearing
=
''
;
this
.
manufacturingObject
.
ACCRECETRUN
=
''
;
this
.
manufacturingObject
.
DEPTURN
=
''
;
this
.
manufacturingObject
.
FAT
=
''
;
this
.
manufacturingObject
.
ITR
=
''
;
this
.
manufacturingObject
.
SARE
=
''
;
this
.
manufacturingObject
.
ESYEAR
=
''
;
this
.
manufacturingObject
.
TASS
=
''
;
this
.
manufacturingObject
.
NASS
=
''
;
}
testFloat
(
val
:
any
)
{
if
(
parseFloat
(
val
)
<
0
)
{
// this.floatMsg = '必须为正数';
return
false
;
}
else
{
// this.floatMsg = '必须为整数或者小数';
return
/^
(
-
?\d
+
)(\.\d
+
)?
$/
.
test
(
val
);
}
}
}
</
script
>
<
style
scoped
>
table
{
width
:
90%
;
margin
:
0
auto
;
}
::v-deep
.van-button--info
{
background-color
:
#fd5065
;
border
:
1px
solid
#fd5065
;
}
::v-deep
.van-button__text
{
font-size
:
16px
;
}
.dialog-box
{
margin
:
0
auto
;
background
:
#fff
;
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
width
:
300px
;
height
:
306px
;
}
.icon-img
{
width
:
120px
;
height
:
120px
;
margin-top
:
20px
;
margin-bottom
:
20px
;
color
:
rgb
(
17
,
167
,
30
);
}
.dialog-title
{
font-weight
:
bold
;
margin-top
:
10%
;
font-size
:
16px
;
color
:
#333
;
}
.score-box
{
position
:
absolute
;
font-size
:
36px
;
font-weight
:
400
;
top
:
105px
;
z-index
:
999
;
color
:
#f59a23
;
}
.submitstyle3
{
width
:
268px
;
height
:
36px
;
border-radius
:
6px
;
margin-top
:
30px
;
color
:
#fff
;
background-color
:
#ff574c
;
border-color
:
#ff574c
;
font-size
:
16px
;
text-align
:
center
;
font-weight
:
400
;
}
</
style
>
src/components/workbench/company-common-functions/auxiliary-tools/financial-trial/UnManufacturingTrial.vue
0 → 100644
浏览文件 @
ce638afd
<
template
>
<div>
<van-form
@
submit=
"onSubmit"
>
<table>
<tr>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" type="number" format-trigger="reset" v-model="noManufacturingObject.GPM"
label="销售毛利率(%)" size="small" />
</td>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset" v-model="noManufacturingObject.ROE" type="number" label="净资产收益率(%)"
size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" type="number" format-trigger="reset" v-model="noManufacturingObject.ASSET"
label="资产负债率(%)" size="small" />
</td>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset"
v-model="noManufacturingObject.EARNED" label="已获利息倍数" type="number" size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset"
v-model="noManufacturingObject.InterBearing" type="number" label="有息负债率(%)" size="small" />
</td>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset"
v-model="noManufacturingObject.ACCRECETRUN" type="number" label="应收账款周转率(%)" size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset" v-model="noManufacturingObject.DEPTURN"
label="存款周转率(%)" type="number" size="small" />
</td>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset"
v-model="noManufacturingObject.FAT" type="number" label="固定资产周转率(%)" size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset" v-model="noManufacturingObject.ITR"
label="存货周转率(%)" type="number" size="small" />
</td>
<td>
<mobile-input
:formatter=
"formatter"
:required=
"true"
type=
"number"
format-trigger=
"reset"
v-model=
"noManufacturingObject.SARE"
label=
"销售收入(元)"
size=
"small"
/>
</td>
</tr>
<tr>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ pattern, message: '年限为整数' }]" :required="true" format-trigger="reset" v-model="noManufacturingObject.ESYEAR"
label="成立年限" type="digit" size="small" />
</td>
<td>
<mobile-input
:formatter=
"formatter"
:rules=
"[
{ validator: testFloat, message: floatMsg }]" :required="true" format-trigger="reset" v-model="noManufacturingObject.TASS"
label="总资产(元)" type="digit" size="small" />
</td>
</tr>
<tr>
<td
colspan=
"2"
>
<mobile-input
:required=
"true"
:rules=
"[
{ validator: testFloat, message: floatMsg }]" :formatter="formatter" format-trigger="reset" v-model="noManufacturingObject.NASS"
label="净资产(元)" type="number" size="small" />
</td>
</tr>
<tr>
<td
colspan=
"2"
>
<div
style=
"margin: 16px; display: flex; justify-content: space-around"
>
<van-button
@
click=
"reset"
style=
"width: 25%"
round
color=
"#999999"
native-type=
"button"
plain
>
重置
</van-button>
<van-button
style=
"width: 25%"
round
type=
"info"
native-type=
"submit"
>
试算
</van-button>
</div>
</td>
</tr>
</table>
</van-form>
<van-dialog
:show-cancel-button=
"false"
:show-confirm-button=
"false"
:close-on-click-overlay=
"true"
v-model=
"showDialogReject"
>
<div
class=
"dialog-box"
style=
"position: relative"
>
<div
class=
"dialog-title"
>
测算结果
</div>
<div
class=
"score-box"
>
{{
totalScore
}}
</div>
<svg
class=
"icon icon-img"
aria-hidden=
"true"
>
<use
xlink:href=
"#icon-a-cepingjieguo110x110ziyuan40"
></use>
</svg>
<van-button
class=
"submitstyle3"
block
native-type=
"button"
@
click=
"showDialogReject = false"
>
知道了
</van-button>
</div>
</van-dialog>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
}
from
"
vue-property-decorator
"
;
import
systemApi
from
"
@/constants/api/ms-system/system.api.ts
"
;
import
IF
from
"
@/public/factory/InterFaceFactory
"
;
import
{
NativeUI
}
from
"
@/public/ts/NativeUI
"
;
/**
* @Description 非制造业试算
* @Author 王航
* @Date 2022-2-23 下午 04:32
*/
@
Component
({
name
:
"
NoManufacturingTrial
"
})
export
default
class
NoManufacturingTrial
extends
Vue
{
noManufacturingObject
:
any
=
{
//非制造业对象
GPM
:
''
,
//销售毛利率
ROE
:
''
,
//净资产收益率
ASSET
:
''
,
//资产负债率
EARNED
:
''
,
//已获息倍数
InterBearing
:
''
,
//有息负债率
ACCRECETRUN
:
''
,
//应收账款周转率
DEPTURN
:
''
,
//存款周转率
FAT
:
''
,
//固定资产周转率
ITR
:
''
,
//存货周转率
SARE
:
''
,
//销售收入
ESYEAR
:
''
,
//成立年限
TASS
:
''
,
//总资产
NASS
:
''
//净资产
};
pattern
=
/^
[
1-9
]\d
*$/
;
//整数校验
totalScore
:
any
=
''
;
//总分数
showDialogReject
=
false
;
floatMsg
=
''
;
//浮点数验证信息
formatter
()
{
}
onSubmit
(
values
:
any
)
{
// console.log("submit", values);
this
.
selectCompanyComputeInfo
();
}
selectCompanyComputeInfo
()
{
let
param
=
{
GPM
:
this
.
noManufacturingObject
.
GPM
,
//销售毛利率
ROE
:
this
.
noManufacturingObject
.
ROE
,
//净资产收益率
ASSET
:
this
.
noManufacturingObject
.
ASSET
,
//资产负债率
EARNED
:
this
.
noManufacturingObject
.
EARNED
,
//已获息倍数
InterBearing
:
this
.
noManufacturingObject
.
InterBearing
,
//有息负债率
ACCRECETRUN
:
this
.
noManufacturingObject
.
ACCRECETRUN
,
//应收账款周转率
DEPTURN
:
this
.
noManufacturingObject
.
DEPTURN
,
//存款周转率
FAT
:
this
.
noManufacturingObject
.
FAT
,
//固定资产周转率
ITR
:
this
.
noManufacturingObject
.
ITR
,
//存货周转率
SARE
:
this
.
noManufacturingObject
.
SARE
,
//销售收入
ESYEAR
:
this
.
noManufacturingObject
.
ESYEAR
,
//成立年限
TASS
:
this
.
noManufacturingObject
.
TASS
,
//总资产
NASS
:
this
.
noManufacturingObject
.
NASS
,
//净资产
COMTYPE
:
'
1
'
//0表示制造业企业,1表示非制造业
};
NativeUI
.
showWaiting
(
'
正在查询...
'
);
return
IF
.
transferDataInter
(
systemApi
.
companyMoneyComputed
,
param
).
then
((
res
:
any
)
=>
{
NativeUI
.
closeWaiting
();
if
(
res
.
code
==
1
)
{
this
.
totalScore
=
res
.
data
.
totalAch
;
//总分
console
.
log
(
this
.
totalScore
);
this
.
showDialogReject
=
true
;
}
else
{
NativeUI
.
toast
(
res
.
message
);
}
});
}
formatDate
(
date
:
any
)
{
return
`
${
date
.
getFullYear
()}
-
${
date
.
getMonth
()
+
1
}
-
${
date
.
getDate
()}
`
;
}
reset
()
{
this
.
noManufacturingObject
.
GPM
=
''
;
this
.
noManufacturingObject
.
ROE
=
''
;
this
.
noManufacturingObject
.
ASSET
=
''
;
this
.
noManufacturingObject
.
EARNED
=
''
;
this
.
noManufacturingObject
.
InterBearing
=
''
;
this
.
noManufacturingObject
.
ACCRECETRUN
=
''
;
this
.
noManufacturingObject
.
DEPTURN
=
''
;
this
.
noManufacturingObject
.
FAT
=
''
;
this
.
noManufacturingObject
.
ITR
=
''
;
this
.
noManufacturingObject
.
SARE
=
''
;
this
.
noManufacturingObject
.
ESYEAR
=
''
;
this
.
noManufacturingObject
.
TASS
=
''
;
this
.
noManufacturingObject
.
NASS
=
''
;
}
testFloat
(
val
:
any
)
{
if
(
parseFloat
(
val
)
<
0
)
{
// this.floatMsg = '必须为正数';
return
false
;
}
else
{
// this.floatMsg = '必须为整数或者小数';
return
/^
(
-
?\d
+
)(\.\d
+
)?
$/
.
test
(
val
);
}
}
}
</
script
>
<
style
scoped
>
table
{
width
:
90%
;
margin
:
0
auto
;
}
::v-deep
.van-button--info
{
background-color
:
#fd5065
;
border
:
1px
solid
#fd5065
;
}
::v-deep
.van-button__text
{
font-size
:
16px
;
}
.dialog-box
{
margin
:
0
auto
;
background
:
#fff
;
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
width
:
300px
;
height
:
306px
;
}
.icon-img
{
width
:
120px
;
height
:
120px
;
margin-top
:
20px
;
margin-bottom
:
20px
;
color
:
rgb
(
17
,
167
,
30
);
}
.dialog-title
{
font-weight
:
bold
;
margin-top
:
10%
;
font-size
:
16px
;
color
:
#333
;
}
.score-box
{
position
:
absolute
;
font-size
:
36px
;
font-weight
:
400
;
top
:
105px
;
z-index
:
999
;
color
:
#f59a23
;
}
.submitstyle3
{
width
:
268px
;
height
:
36px
;
border-radius
:
6px
;
margin-top
:
30px
;
color
:
#fff
;
background-color
:
#ff574c
;
border-color
:
#ff574c
;
font-size
:
16px
;
text-align
:
center
;
font-weight
:
400
;
}
</
style
>
src/components/workbench/company-common-functions/business-inquiry/ContractSigningAndBilling.vue
0 → 100644
浏览文件 @
ce638afd
<
template
>
<div>
合同签订及出账
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
}
from
"
vue-property-decorator
"
;
/**
* @Description 合同签订及出账
* @Author JiangTao
* @Date 2021-11-10 下午 03:32
*/
@
Component
({
name
:
"
ContractSigningAndBilling
"
,
})
export
default
class
ContractSigningAndBilling
extends
Vue
{}
</
script
>
<
style
scoped
></
style
>
src/components/workbench/company-common-functions/business-inquiry/LoanApplication.vue
0 → 100644
浏览文件 @
ce638afd
<
template
>
<div>
贷款申请
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
}
from
"
vue-property-decorator
"
;
/**
* @Description 贷款申请
* @Author JiangTao
* @Date 2021-11-10 下午 03:32
*/
@
Component
({
name
:
"
LoanApplication
"
,
})
export
default
class
LoanApplication
extends
Vue
{}
</
script
>
<
style
scoped
></
style
>
src/components/workbench/company-common-functions/business-inquiry/MarketingTask.vue
0 → 100644
浏览文件 @
ce638afd
<
template
>
<div
class=
"content"
>
<div
class=
"content-top"
>
<div
class=
"content-top-left"
>
营销业务12笔
</div>
<div
class=
"content-top-right"
>
<div
class=
"content-top-right-left"
>
<van-field
readonly
class=
"choose-content"
clickable
:value=
"choose_content"
@
click=
"choose = true"
/>
<van-popup
v-model=
"choose"
style=
"width: 30%"
round
position=
"center"
>
<van-picker
show-toolbar
:columns=
"type"
@
cancel=
"choose = false"
@
confirm=
"choose_t"
:default-index=
"1"
/>
</van-popup>
</div>
<div
class=
"content-top-right-right"
>
<div
class=
"search-logo"
><img
src=
"../../../../assets/images/search-logo.png"
alt=
""
/></div>
<div
class=
"search-bar"
>
<van-form>
<van-field
class=
"name"
v-model=
"companyname"
name=
"companyname"
placeholder=
"请输入企业名称"
/>
</van-form>
</div>
<div
class=
"search"
>
搜索
</div>
</div>
</div>
</div>
<div
class=
"content-bottm"
>
<div
class=
"task-list"
>
<div
class=
"task-list-left"
>
<div
class=
"task-list-left-logo"
>
<div><img
src=
"../../../../assets/svg/title.svg"
alt=
""
/></div>
</div>
<div
class=
"task-list-left-text"
>
<div
class=
"task-list-name"
>
花儿影业有限公司-客户拜访
</div>
<div
class=
"task-list-address"
>
<div><img
src=
"../../../../assets/svg/position-2.svg"
alt=
""
/></div>
<div>
0.3km
</div>
<div>
成都市武侯区天谷7路腾飞科汇城
</div>
</div>
</div>
</div>
<div
class=
"task-list-right"
>
发送短信
</div>
</div>
<div
class=
"task-list"
>
<div
class=
"task-list-left"
>
<div
class=
"task-list-left-logo"
>
<div><img
src=
"../../../../assets/svg/title.svg"
alt=
""
/></div>
</div>
<div
class=
"task-list-left-text"
>
<div
class=
"task-list-name"
>
花儿影业有限公司-客户拜访
</div>
<div
class=
"task-list-address"
>
<div><img
src=
"../../../../assets/svg/position-2.svg"
alt=
""
/></div>
<div>
0.3km
</div>
<div>
成都市武侯区天谷7路腾飞科汇城
</div>
</div>
</div>
</div>
<div
class=
"task-list-right"
>
发送短信
</div>
</div>
<div
class=
"task-list"
>
<div
class=
"task-list-left"
>
<div
class=
"task-list-left-logo"
>
<div><img
src=
"../../../../assets/svg/title.svg"
alt=
""
/></div>
</div>
<div
class=
"task-list-left-text"
>
<div
class=
"task-list-name"
>
花儿影业有限公司-客户拜访
</div>
<div
class=
"task-list-address"
>
<div><img
src=
"../../../../assets/svg/position-2.svg"
alt=
""
/></div>
<div>
0.3km
</div>
<div>
成都市武侯区天谷7路腾飞科汇城
</div>
</div>
</div>
</div>
<div
class=
"task-list-right"
>
发送短信
</div>
</div>
</div>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
}
from
"
vue-property-decorator
"
;
import
{
Picker
}
from
"
vant
"
;
Vue
.
use
(
Picker
);
/**
* @Description 营销任务
* @Author JiangTao
* @Date 2021-11-10 下午 03:32
*/
@
Component
({
name
:
"
MarketingTask
"
,
})
export
default
class
MarketingTask
extends
Vue
{
companyname
=
""
;
choose
=
false
;
choose_content
=
""
;
type
=
[
"
全部营销
"
,
"
客户拜访
"
,
"
精准营销专项
"
,
"
公司精准信息摸排
"
,
"
招商引资企业营销
"
];
choose_t
(
value
:
any
)
{
this
.
choose_content
=
value
;
this
.
choose
=
false
;
}
}
</
script
>
<
style
scoped
>
.content
{
width
:
100%
;
height
:
calc
(
100vh
-
117px
);
padding
:
2.5%
3%
;
}
.content-top
{
width
:
100%
;
}
.content-top
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
}
.content-top-left
{
font-family
:
"Arial Normal"
,
"Arial"
;
color
:
#999999
;
}
.content-top-right
{
width
:
45%
;
display
:
flex
;
align-items
:
flex-end
;
justify-content
:
space-between
;
}
.content-top-right-right
{
width
:
60%
;
display
:
flex
;
justify-content
:
flex-end
;
align-items
:
center
;
padding-top
:
0.5%
;
}
.search-logo
{
margin-right
:
-7%
;
}
.search-bar
{
width
:
99%
;
height
:
34px
;
}
.choose-content
{
width
:
100%
;
border
:
1px
solid
rgba
(
228
,
228
,
228
,
1
);
border-radius
:
5px
;
padding
:
0
;
padding-left
:
8%
;
}
.name
{
border
:
1px
solid
rgba
(
228
,
228
,
228
,
1
);
width
:
100%
;
line-height
:
200%
;
padding-top
:
1.48%
;
padding-bottom
:
0
;
border-bottom-left-radius
:
6px
;
border-top-left-radius
:
6px
;
padding-left
:
15%
;
display
:
flex
;
background-color
:
rgba
(
255
,
255
,
255
,
0
);
}
.search
{
width
:
21.85%
;
line-height
:
34px
;
background-color
:
#fd5065
;
color
:
white
;
font-size
:
115%
;
text-align
:
center
;
border-top-right-radius
:
6px
;
border-bottom-right-radius
:
6px
;
}
::v-deep
.van-cell
{
width
:
100%
;
}
::v-deep
.van-field__control
:read-only
{
height
:
32px
;
}
.task-list
{
width
:
48%
;
display
:
flex
;
justify-content
:
space-between
;
border-bottom
:
1px
solid
rgba
(
242
,
242
,
242
,
1
);
margin-left
:
0.4%
;
padding-bottom
:
1%
;
padding-top
:
2.2%
;
}
.task-list-left
{
width
:
85%
;
display
:
flex
;
justify-content
:
flex-start
;
padding-left
:
2%
;
}
.task-list-left-logo
{
padding
:
1.775%
;
border-radius
:
7px
;
background-color
:
#d0f1ff
;
}
.task-list-left-logo
div
{
width
:
44px
;
height
:
44px
;
margin
:
0
auto
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
background-image
:
url("../../../../assets/svg/blue-circle.svg")
;
background-repeat
:
no-repeat
;
}
.task-list-left-logo
div
img
{
width
:
59.1%
;
}
.task-list-left-text
{
width
:
84%
;
display
:
flex
;
flex-direction
:
column
;
padding-left
:
2.5%
;
}
.task-list-name
{
width
:
100%
;
font-size
:
115%
;
color
:
#333333
;
margin-top
:
0.5%
;
margin-bottom
:
1%
;
}
.task-list-right
{
width
:
14%
;
display
:
flex
;
align-items
:
center
;
}
.task-list-address
{
display
:
flex
;
align-items
:
flex-end
;
}
.task-list-address
>
div
:nth-child
(
1
)
{
background-image
:
url("../../../../assets/svg/position-1.svg")
;
background-repeat
:
no-repeat
;
background-position-x
:
50%
;
background-position-y
:
50%
;
margin-left
:
1.5%
;
margin-right
:
1.5%
;
}
.task-list-address
>
div
:nth-child
(
2
)
{
color
:
#999999
;
}
.task-list-address
>
div
:nth-child
(
3
)
{
margin-left
:
1%
;
color
:
#999999
;
}
.content-bottm
{
display
:
flex
;
flex-wrap
:
wrap
;
justify-content
:
space-between
;
}
</
style
>
src/components/workbench/company-common-functions/business-inquiry/PeriodicInspection.vue
0 → 100644
浏览文件 @
ce638afd
<
template
>
<div>
定期检查
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
}
from
"
vue-property-decorator
"
;
/**
* @Description 定期检查
* @Author JiangTao
* @Date 2021-11-10 下午 03:33
*/
@
Component
({
name
:
"
PeriodicInspection
"
,
})
export
default
class
PeriodicInspection
extends
Vue
{}
</
script
>
<
style
scoped
></
style
>
src/components/workbench/company-common-functions/business-inquiry/ProcessQuery.vue
0 → 100644
浏览文件 @
ce638afd
此差异已折叠。
点击以展开。
src/components/workbench/company-common-functions/business-inquiry/RiskWarning.vue
0 → 100644
浏览文件 @
ce638afd
<
template
>
<div>
风险预警
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
}
from
"
vue-property-decorator
"
;
/**
* @Description 风险预警
* @Author JiangTao
* @Date 2021-11-10 下午 03:33
*/
@
Component
({
name
:
"
RiskWarning
"
,
})
export
default
class
RiskWarning
extends
Vue
{}
</
script
>
<
style
scoped
></
style
>
src/components/workbench/company-common-functions/online-enquiry/AllOutlets.vue
0 → 100644
浏览文件 @
ce638afd
<
template
>
<div>
AllOutlets
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
}
from
"
vue-property-decorator
"
;
/**
* @Description 全部
* @Author JiangTao
* @Date 2021-11-10 下午 03:33
*/
@
Component
({
name
:
"
AllOutlets
"
,
})
export
default
class
AllOutlets
extends
Vue
{}
</
script
>
<
style
scoped
></
style
>
src/components/workbench/company-common-functions/online-enquiry/Area.vue
0 → 100644
浏览文件 @
ce638afd
<
template
>
<div>
Area
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
}
from
"
vue-property-decorator
"
;
/**
* @Description 区域查询
* @Author JiangTao
* @Date 2021-11-10 下午 03:33
*/
@
Component
({
name
:
"
Area
"
,
})
export
default
class
Area
extends
Vue
{}
</
script
>
<
style
scoped
></
style
>
src/components/workbench/company-common-functions/online-enquiry/Nearby.vue
0 → 100644
浏览文件 @
ce638afd
<
template
>
<div>
<div
class=
"list-content"
>
<div>
<div>
壮锦支行
</div>
<div>
10.0Km
</div>
</div>
<div>
电话:
<span>
18688888888
</span></div>
<div>
导航:
<span>
成都市
</span></div>
<div>
<div><img
src=
"../../../../assets/svg/orange-navigation-logo.svg"
alt=
""
/>
导航
</div>
<div><img
src=
"../../../../assets/svg/tel.svg"
alt=
""
/>
电话
</div>
</div>
</div>
<div
class=
"list-content"
>
<div>
<div>
壮锦支行
</div>
<div>
10.0Km
</div>
</div>
<div>
电话:
<span>
18688888888
</span></div>
<div>
导航:
<span>
成都市
</span></div>
<div>
<div><img
src=
"../../../../assets/svg/orange-navigation-logo.svg"
alt=
""
/>
导航
</div>
<div><img
src=
"../../../../assets/svg/tel.svg"
alt=
""
/>
电话
</div>
</div>
</div>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
}
from
"
vue-property-decorator
"
;
/**
* @Description 我的附近
* @Author JiangTao
* @Date 2021-11-10 下午 03:34
*/
@
Component
({
name
:
"
Nearby
"
,
})
export
default
class
Nearby
extends
Vue
{}
</
script
>
<
style
scoped
>
.list-content
{
width
:
95%
;
margin
:
0
auto
;
margin-bottom
:
4%
;
padding
:
2%
0
0
2%
;
background-color
:
white
;
}
.list-content
>
div
:nth-child
(
1
)
{
width
:
96%
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
flex-end
;
padding-left
:
2%
;
padding-bottom
:
1.5%
;
border-bottom
:
1px
solid
rgb
(
217
,
207
,
207
);
}
.list-content
>
div
:nth-child
(
1
)
>
div
:nth-child
(
1
)
{
font-size
:
115%
;
color
:
black
;
}
.list-content
>
div
:nth-child
(
1
)
>
div
:nth-child
(
2
)
{
font-size
:
75%
;
color
:
red
;
}
.list-content
>
div
:nth-child
(
2
),
.list-content
>
div
:nth-child
(
3
)
{
color
:
#999999
;
margin
:
3%
1%
;
}
span
{
font-family
:
"Arial Normal"
,
"Arial"
;
color
:
black
;
}
.list-content
>
div
:nth-child
(
4
)
>
*
{
width
:
47%
;
text-align
:
center
;
color
:
black
;
margin
:
3.5%
0
;
}
.list-content
>
div
:nth-child
(
4
)
>
div
:nth-child
(
1
)
{
border-right
:
1px
solid
rgb
(
217
,
207
,
207
);
}
.list-content
>
div
:nth-child
(
4
)
{
border-top
:
1px
solid
rgb
(
217
,
207
,
207
);
display
:
flex
;
justify-content
:
space-around
;
}
img
{
margin-right
:
10%
;
}
</
style
>
src/constants/api/login/login-mgt.api.ts
浏览文件 @
ce638afd
...
...
@@ -2,14 +2,13 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-05 14:56:29
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-0
7-06 15:09
:50
* @LastEditTime: 2022-0
8-17 19:55
:50
* @FilePath: \mcep-h5\src\constants\api\login\login-mgt.api.ts
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import
{
MethodType
}
from
"
@/constants/enum/general/method-type.enum
"
;
import
{
HeaderType
}
from
"
@/constants/enum/general/header-type.enum
"
;
// http://10.0.1.9:9130
const
prefix
=
"
http://localhost:9135//ms-system/api/v1/sysCustInfo/permit_endpoint
"
const
prefix
=
"
http://localhost:9130/ms-system/api/v1/sysCustInfo/permit_endpoint
"
const
loginApi
=
{
updatePicCode
:
{
...
...
src/router/index.ts
浏览文件 @
ce638afd
...
...
@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-04 15:41:06
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-0
7-22 16:54:54
* @LastEditTime: 2022-0
8-18 13:50:06
* @FilePath: \mcep-h5\src\router\index.ts
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
...
...
@@ -33,6 +33,7 @@ const routes: Array<RouteConfig> = [
},
{
path
:
"
/login
"
,
name
:
"
login
"
,
component
:
()
=>
import
(
/* webpackChunkName: "login" */
"
@/views/authentication/LoginView.vue
"
),
//component: () => import(/* webpackChunkName: "login" */ "@/components/common/Tool.vue"),
meta
:
{
keepAlive
:
true
,
requiresAuth
:
true
},
...
...
src/router/login.mgt.routing.ts
浏览文件 @
ce638afd
...
...
@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-05 10:08:57
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-0
7-12 14:30:24
* @LastEditTime: 2022-0
8-18 13:42:05
* @FilePath: \mcep-h5\src\router\login.mgt.routing.ts
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
...
...
@@ -32,5 +32,13 @@ const loginRoutes = [
props
:
propsConvert
,
meta
:
{
keepAlive
:
false
,
requiresAuth
:
true
,
name
:
"
主页
"
},
}
,{
path
:
`/LoginByID`
,
name
:
'
LoginByID
'
,
component
:
()
=>
import
(
/* webpackChunkName: "customer-mgt" */
"
@/views/authentication/LoginByID.vue
"
),
props
:
propsConvert
,
meta
:
{
keepAlive
:
false
,
requiresAuth
:
true
,
name
:
"
主页
"
},
}
]
export
default
loginRoutes
;
src/services/api.service.ts
浏览文件 @
ce638afd
...
...
@@ -32,8 +32,7 @@ class ApiService {
Vue
.
axios
.
interceptors
.
request
.
use
(
config
=>
{
config
.
headers
[
'
Access-Control-Allow-Origin
'
]
=
'
*
'
;
//开启
// config.headers['MCEP'] = 'MCEP';
if
(
!
config
.
headers
[
'
Content-Type
'
]){
config
.
headers
[
'
Content-Type
'
]
=
'
application/json; charset=utf-8
'
;
}
...
...
@@ -176,12 +175,10 @@ class ApiService {
path
=
query
!=
null
?
this
.
urlQueryConvert
(
path
,
query
)
:
path
;
console
.
log
(
"
服务调用--
"
+
path
);
return
Vue
.
axios
.
post
(
`
${
path
}
`
,
params
,
requestConfig
).
then
(
res
=>
{
//TODO
console
.
log
(
res
);
return
res
.
data
});
return
Vue
.
axios
.
post
(
`
${
path
}
`
,
params
,
requestConfig
).
then
(
this
.
createBusCodeHandler
(
query
)).
catch
(
this
.
createErrorHandler
());
}
/**
* POST请求 文件上传
...
...
@@ -324,7 +321,7 @@ class ApiService {
console
.
log
(
data
);
//成功
// data = data.data;
debugger
//
debugger
if
(
typeof
data
!=
'
object
'
)
data
=
JSON
.
parse
(
data
);
data
=
data
.
sm4key
?
SMUtil
.
decodeData
(
data
)
:
data
;
if
(
typeof
data
!=
'
object
'
)
{
...
...
src/views/MyView/LevelSent.vue
浏览文件 @
ce638afd
...
...
@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-14 13:57:33
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-0
7-25 19:35:52
* @LastEditTime: 2022-0
8-18 10:59:51
* @FilePath: \mcep-h5\src\views\MyView\LevelSent.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
...
...
@@ -64,20 +64,7 @@
<van-row
type=
"flex"
class=
""
>
<van-col
span=
"24"
>
我的特权
</van-col>
<div>
<template>
<el-table
:data=
"tableData"
:border=
"true"
:stripe=
"true"
>
<el-table-column
fixed
prop=
"level"
label=
"等级权限"
width=
"30"
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"姓名"
width=
"30"
>
</el-table-column>
<el-table-column
prop=
"province"
label=
"省份"
width=
"30"
>
</el-table-column>
<el-table-column
prop=
"city"
label=
"市区"
width=
"30"
>
</el-table-column>
<el-table-column
prop=
"address"
label=
"地址"
width=
"30"
>
</el-table-column>
</el-table>
</
template
>
</div>
</van-row>
...
...
src/views/authentication/LoginByID.vue
0 → 100644
浏览文件 @
ce638afd
<!--
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-04 15:41:06
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-08-18 16:10:19
* @FilePath: \mcep-h5\src\views\authentication\LoginView.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<
template
>
<div
class=
"loginform"
>
<div
class=
"rarle"
>
<tatle-bar
:tatle=
"tatleName"
></tatle-bar>
</div>
<div
class=
"login"
>
<van-row
class=
""
style=
"padding: 10% 0%;"
>
<van-col
span=
"24"
>
<p
class=
"polog"
><span
class=
"font-size-18-dhc"
style=
"padding: 2% 0%;font-weight: 600;"
>
登录
</span>
</p>
</van-col>
<van-col
span=
"24"
><span
class=
"font-size-12-dhc"
style=
"font-weight: 400; font-family: 'Arial Normal', 'Arial';
}"
>
请使用身份证号登录
</span></van-col>
</van-row>
<van-form>
<div
class=
"logindiv"
>
<span
class=
"sopan"
>
身份证号
</span>
<van-field
v-model=
"idcard"
placeholder=
"身份证号"
:rules=
"[
{ validator: verifyPhone, message: '请输入正确的身份证号码' }]" />
</div>
<!--
<div
class=
"logindiv"
>
-->
<span
class=
"sopan"
>
密码
</span>
<van-field
v-model=
"password"
:type=
"passwordType"
center
clearable
placeholder=
"请填写密码"
>
<template
slot=
"right-icon"
>
<span
class=
"solts"
@
click=
"switchPasswordType"
>
<van-icon
name=
"eye"
v-if=
"passwordType === 'password'"
/>
<van-icon
name=
"closed-eye"
v-else
/>
</span>
</
template
>
</van-field>
<!-- <van-divider /> -->
<!-- </div> -->
<!-- <div class="d-flex ">
<div class="p-2 mr-auto ">
<span class="sopan">验证码</span>
<van-field center clearable v-model="imageSrcValue" placeholder="请输入验证码" />
</div>
<div class="p-2 ">
<img :src="imageSrc" style="max-width: 100px; max-height: 200px;" @click="_updatePicCode()" />
</div>
</div> -->
<!-- <template >
<img :src="imageSrc" style="max-width: 100px; max-height: 200px;" />
</template> -->
<!-- <span class="sopan">短信验证码</span>
<van-row class="">
<van-col span="16">
<van-field v-model="sms" center clearable placeholder="请输入短信验证码">
</van-field>
</van-col>
<van-col span="8"><a style="color:#3672F1" @click="getPhonePost()">{{ getCmstotal }}</a></van-col>
</van-row> -->
<div
style=
"margin: 16px;"
>
<van-button
square
block
type=
"info"
native-type=
"submit"
@
click=
"loginSystem()"
>
登录
</van-button>
</div>
</van-form>
<!-- <div>
<van-row type="flex" justify="center">
<van-col span="12"><a class="font-size-12-dhc"> 忘记密码</a></van-col>
<van-col span="12"><a class="font-size-12-dhc"> 用户注册</a></van-col>
</van-row>
</div> -->
<div
class=
"d-flex "
style=
"padding: 0px 10px 0px 10px;color: #3672F1;"
>
<div
class=
"p-3 mr-auto "
><a
class=
"font-size-12-dhc"
@
click=
"forgetspass()"
>
忘记密码
</a></div>
<div
class=
"p-3 "
style=
"margin-right: 13%;"
><a
class=
"font-size-12-dhc"
@
click=
"loginbyid()"
>
手机号登录
</a></div>
<div
class=
"p-3 "
><a
class=
"font-size-12-dhc"
@
click=
"regeist()"
>
用户注册
</a></div>
<!-- <div class="p-3 "><a class="font-size-12-dhc" @click="demo()"> demo测试</a></div> -->
</div>
</div>
</div>
</template>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
}
from
"
vue-property-decorator
"
;
import
{
Image
as
VanImage
,
Toast
}
from
'
vant
'
;
import
apiService
from
"
@/services/api.service
"
;
import
loginApi
from
"
@/constants/api/login/login-mgt.api
"
;
import
{
Code
}
from
"
@/constants/enum/general/code.enum
"
;
import
{
RestfulResponse
}
from
"
@/model/domain/RestfulResponse
"
;
import
commonApi
from
"
@/constants/api/login/common.api
"
;
import
{
sys
}
from
"
typescript
"
;
import
{
log
}
from
"
mathjs
"
;
@
Component
({
name
:
"
LoginView
"
,
[
VanImage
.
name
]:
VanImage
,
})
export
default
class
LoginView
extends
Vue
{
getCmstotal
=
"
获取短信验证码
"
;
tatleName
=
"
用户登录
"
;
idcard
:
string
=
""
;
//电话
password
:
string
=
""
;
//密码
imageSrc
:
any
=
""
;
//图形
imageSrcValue
:
string
=
""
;
//图形验证码
sms
:
string
=
""
;
//短信验证
timer
:
any
=
""
;
//定时器
time
:
number
=
60
;
//计数
imageVerifyKey
:
string
=
""
//验证码Key
passwordType
=
"
password
"
//方法
switchPasswordType
()
{
this
.
passwordType
=
this
.
passwordType
===
'
password
'
?
'
text
'
:
'
password
'
}
//身份证号登录
loginbyid
()
{
this
.
$router
.
push
({
name
:
`login`
})
}
//手机号
verifyPhone
()
{
const
card18
=
/^
[
1-9
]\d{5}(
18|19|
([
23
]\d))\d{2}((
0
[
1-9
])
|
(
10|11|12
))(([
0-2
][
1-9
])
|10|20|30|31
)\d{3}[
0-9Xx
]
$/
return
card18
.
test
(
this
.
idcard
)
}
//获取图形验证码
_updatePicCode
()
{
//请求图形验证码
apiService
.
general
(
loginApi
.
updatePicCode
,
undefined
,
undefined
,
undefined
).
then
((
response
:
RestfulResponse
)
=>
{
if
(
response
.
code
==
Code
.
SUCCESS
.
code
)
{
this
.
imageSrc
=
'
data:image/png;base64,
'
+
response
.
data
.
imageVerifyCodeStr
.
replace
(
/
[\r\n]
/g
,
""
);
this
.
imageVerifyKey
=
response
.
data
.
imageVerifyKey
}
});
}
//计时器
changeCmstotal
()
{
this
.
getCmstotal
=
this
.
time
+
"
s重发验证码
"
;
this
.
timer
=
setInterval
(()
=>
{
this
.
time
--
;
this
.
getCmstotal
=
this
.
time
+
"
s重发验证码
"
;
if
(
this
.
time
<
0
)
{
clearInterval
(
this
.
time
)
this
.
getCmstotal
=
"
获取短信验证码
"
;
}
},
1000
)
}
//获取短信验证码
// getPhonePost() {
// let param = {
// phoneCode: this.phone
// }
// apiService.general(commonApi.getPicCode, param, undefined, undefined).then((response: RestfulResponse) => {
// if (response.code == Code.SUCCESS.code) {
// Toast('短信发送成功,5分钟有效');
// this.changeCmstotal()
// } else {
// Toast('短信发送失败,请重试');
// }
// })
// }
loginSystem
()
{
//TODO
//登录失败刷新
//验证码失败刷新
//this._updatePicCode();
// let param = {
// phone: this.phone,
// //图形验证码
// imageVerifyKey: this.imageSrcValue,
// //渠道
// loginType: "2",
// //手机验证码
// messCode: this.sms,
// //密码
// passWord: this.password
// }
// apiService.general(loginApi.loginSystem, undefined, param, undefined).then((response: RestfulResponse) => {
// console.log(response);
// if (response.code == Code.SUCCESS.code) {
// this.$router.push({
// name: `Mianview`,
// params: {
// data: response.data
// }
// })
// } else {
// this._updatePicCode();
// Toast(response.msg + "");
// }
// });
}
created
()
{
this
.
_updatePicCode
()
}
//忘记密码
forgetspass
()
{
this
.
$router
.
push
({
name
:
`ForgetPass`
,
// params: {
// phone: this.phone
// }
});
}
regeist
()
{
this
.
$router
.
push
({
path
:
`Register`
,
})
}
// demo() {
// this.$router.push({
// path: `Mianview`,
// })
// }
demoll
()
{
this
.
$router
.
push
({
path
:
`workbench/commonly-used/personal/business-inquiry`
,
})
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.loginform
{
width
:
100%
;
height
:
100%
;
}
.logindiv
{
line-height
:
20px
;
}
.van-button
{
border-radius
:
6px
;
}
.polog
{
margin
:
0px
;
text-rendering
:
optimizeLegibility
;
font-feature-settings
:
"kern"
1
;
-webkit-font-feature-settings
:
"kern"
;
-moz-font-feature-settings
:
"kern"
;
-moz-font-feature-settings
:
"kern=1"
;
font-kerning
:
normal
;
}
.van-col--15
{
margin-top
:
2%
;
}
.van-col--24
{
margin-left
:
6%
;
}
.forget
{}
.sopan
{
margin-top
:
5px
;
margin-left
:
6%
;
}
// .login{
// margin-top: 20%;
// }
</
style
>
src/views/authentication/LoginView.vue
浏览文件 @
ce638afd
...
...
@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-04 15:41:06
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-0
7-22 15:10:30
* @LastEditTime: 2022-0
8-18 13:43:29
* @FilePath: \mcep-h5\src\views\authentication\LoginView.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
...
...
@@ -11,7 +11,6 @@
<div
class=
"rarle"
>
<tatle-bar
:tatle=
"tatleName"
></tatle-bar>
</div>
<div
class=
"login"
>
<van-row
class=
""
style=
"padding: 10% 0%;"
>
<van-col
span=
"24"
>
...
...
@@ -23,13 +22,20 @@
<van-form>
<div
class=
"logindiv"
>
<span
class=
"sopan"
>
手机号
</span>
<van-field
v-model=
"phone"
label=
"+86 |"
:border=
"true"
placeholder=
"请输入手机号"
/>
<van-divider
/>
<van-field
v-model=
"phone"
label=
"+86 |"
:border=
"true"
placeholder=
"请输入手机号"
:rules=
"[
{ validator: verifyPhone, message: '请输入正确的手机号码' }]"
/>
</div>
<!--
<div
class=
"logindiv"
>
-->
<span
class=
"sopan"
>
密码
</span>
<van-field
v-model=
"password"
type=
"password"
center
clearable
placeholder=
"请填写密码"
/>
<van-field
v-model=
"password"
:type=
"passwordType"
center
clearable
placeholder=
"请填写密码"
>
<template
slot=
"right-icon"
>
<span
class=
"solts"
@
click=
"switchPasswordType"
>
<van-icon
name=
"eye"
v-if=
"passwordType === 'password'"
/>
<van-icon
name=
"closed-eye"
v-else
/>
</span>
</
template
>
</van-field>
<!-- <van-divider /> -->
<!-- </div> -->
<div
class=
"d-flex "
>
...
...
@@ -67,10 +73,11 @@
</van-row>
</div> -->
<div
class=
"d-flex "
style=
"padding: 0px 10px 0px 10px;color: #3672F1;"
>
<div
class=
"p-2 mr-auto "
><a
class=
"font-size-12-dhc"
@
click=
"forgetspass()"
>
忘记密码
</a></div>
<div
class=
"p-2 "
><a
class=
"font-size-12-dhc"
@
click=
"regeist()"
>
用户注册
</a></div>
<div
class=
"p-2 "
><a
class=
"font-size-12-dhc"
@
click=
"demo()"
>
demo测试
</a></div>
<div
class=
"p-2 "
><a
class=
"font-size-12-dhc"
@
click=
"demoll()"
>
demo测试111
</a></div>
<div
class=
"p-3 mr-auto "
><a
class=
"font-size-12-dhc"
@
click=
"forgetspass()"
>
忘记密码
</a></div>
<div
class=
"p-3 "
><a
class=
"font-size-12-dhc"
@
click=
"loginbyid()"
>
身份证号登录
</a></div>
<div
class=
"p-3 "
><a
class=
"font-size-12-dhc"
@
click=
"regeist()"
>
用户注册
</a></div>
<div
class=
"p-3 "
><a
class=
"font-size-12-dhc"
@
click=
"demo()"
>
demo测试
</a></div>
</div>
</div>
</div>
...
...
@@ -102,12 +109,26 @@ export default class LoginView extends Vue {
timer
:
any
=
""
;
//定时器
time
:
number
=
60
;
//计数
imageVerifyKey
:
string
=
""
//验证码Key
passwordType
=
"
password
"
//方法
switchPasswordType
()
{
this
.
passwordType
=
this
.
passwordType
===
'
password
'
?
'
text
'
:
'
password
'
}
//身份证号登录
loginbyid
()
{
this
.
$router
.
push
({
name
:
`LoginByID`
})
}
//手机号
verifyPhone
()
{
return
/^1
\d{10}
$/
.
test
(
this
.
phone
)
// 返回true或false
}
//获取图形验证码
_updatePicCode
()
{
//请求图形验证码
apiService
.
general
(
loginApi
.
updatePicCode
,
undefined
,
undefined
,
undefined
).
then
((
response
:
RestfulResponse
)
=>
{
//console.log(response);
if
(
response
.
code
==
Code
.
SUCCESS
.
code
)
{
this
.
imageSrc
=
'
data:image/png;base64,
'
+
response
.
data
.
imageVerifyCodeStr
.
replace
(
/
[\r\n]
/g
,
""
);
this
.
imageVerifyKey
=
response
.
data
.
imageVerifyKey
...
...
src/views/login/Register.vue
浏览文件 @
ce638afd
...
...
@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-04 15:41:06
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-0
7-25 09:50:14
* @LastEditTime: 2022-0
8-18 16:13:39
* @FilePath: \mcep-h5\src\views\authentication\LoginView.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
...
...
@@ -23,42 +23,59 @@
<van-form>
<div
class=
"logindiv"
>
<span
class=
"sopan"
>
手机号码
</span>
<van-field
v-model=
"phone"
label=
"+86 |"
:border=
"true"
placeholder=
"请输入手机号"
/>
<van-divider
:style=
"
{margin :0 }">
</van-divider>
<van-field
v-model=
"phone"
label=
"+86 |"
:border=
"true"
placeholder=
"请输入手机号"
:rules=
"[
{ validator: verifyPhone, message: '请输入正确的手机号码' }]" />
</div>
<div
class=
"logindiv"
>
<span
class=
"sopan"
>
身份证号
</span>
<van-field
v-model=
"idCard"
:border=
"true"
placeholder=
"请输入身份证号"
/>
<van-field
v-model=
"idCard"
:border=
"true"
placeholder=
"请输入身份证号"
:rules=
"[
{ validator: verifyid, message: '请输入正确的身份证号码' }]" />
<!--
<van-divider
/>
-->
<van-divider
:style=
"
{
margin :
0 }">
</van-divider>
<van-divider
:style=
"
{
margin:
0 }">
</van-divider>
</div>
<div
class=
"logindiv"
><span
class=
"sopan"
>
短信验证码
</span>
<van-row
>
<van-row>
<van-col
span=
"16"
>
<van-field
v-model=
"sms"
center
clearable
placeholder=
"请输入短信验证码"
>
<!--
<van-divider
/>
-->
</van-field>
</van-col>
<van-col
span=
"8"
><span
style=
"color:blue"
@
click=
"getPhonePost()"
>
{{
getCmstotal
}}
</span></van-col>
<van-col
span=
"8"
><span
style=
"color:blue"
@
click=
"getPhonePost()"
>
{{
getCmstotal
}}
</span></van-col>
</van-row>
<van-divider
:style=
"
{margin :
0 }">
</van-divider>
<van-divider
:style=
"
{ margin:
0 }">
</van-divider>
</div>
<div
class=
"logindiv"
>
<span
class=
"sopan"
>
设置密码
</span>
<van-field
v-model=
"password"
type=
"password"
center
clearable
placeholder=
"请填写新密码"
/
>
<van-field
v-model=
"password"
:type=
"passwordType"
center
clearable
placeholder=
"请填写新密码"
>
<!--
<van-divider
/>
-->
<van-divider
:style=
"
{margin :0 }">
</van-divider>
<template
slot=
"right-icon"
>
<span
class=
"solts"
@
click=
"switchPasswordType"
>
<van-icon
name=
"eye"
v-if=
"passwordType === 'password'"
/>
<van-icon
name=
"closed-eye"
v-else
/>
</span>
</
template
>
</van-field>
<van-divider
:style=
"{ margin: 0 }"
></van-divider>
</div>
<div
class=
"logindiv"
>
<span
class=
"sopan"
>
确认密码
</span>
<van-field
v-model=
"restpassword"
type=
"password"
center
clearable
placeholder=
"请确认新密码"
/>
<!--
<van-divider
/>
-->
<van-divider
:style=
"
{margin :0 }">
</van-divider>
<van-field
v-model=
"restpassword"
:type=
"passwordType"
center
clearable
placeholder=
"请确认新密码"
>
<
template
slot=
"right-icon"
>
<span
class=
"solts"
@
click=
"switchPasswordType"
>
<van-icon
name=
"eye"
v-if=
"passwordType === 'password'"
/>
<van-icon
name=
"closed-eye"
v-else
/>
</span>
</
template
>
</van-field>
<van-divider
:style=
"{ margin: 0 }"
></van-divider>
</div>
...
...
@@ -93,6 +110,7 @@ import { Toast } from "vant";
})
export
default
class
ForgetPassView
extends
Vue
{
tatleName
=
"
用户注册
"
idCard
=
""
phone
:
string
=
""
//电话
password
:
string
=
""
//密码
restpassword
:
string
=
""
//确认密码
...
...
@@ -103,6 +121,21 @@ export default class ForgetPassView extends Vue {
time
:
number
=
60
;
//计数
radio
:
string
=
"
0
"
checked
:
boolean
=
false
;
passwordType
=
"
password
"
//方法
switchPasswordType
()
{
this
.
passwordType
=
this
.
passwordType
===
'
password
'
?
'
text
'
:
'
password
'
}
//手机号
verifyPhone
()
{
return
/^1
\d{10}
$/
.
test
(
this
.
phone
)
// 返回true或false
}
//身份证号
verifyid
()
{
const
card18
=
/^
[
1-9
]\d{5}(
18|19|
([
23
]\d))\d{2}((
0
[
1-9
])
|
(
10|11|12
))(([
0-2
][
1-9
])
|10|20|30|31
)\d{3}[
0-9Xx
]
$/
return
card18
.
test
(
this
.
idCard
)
}
registSystem
()
{
if
(
this
.
password
===
this
.
restpassword
&&
this
.
checked
)
{
...
...
@@ -111,9 +144,9 @@ export default class ForgetPassView extends Vue {
//短信验证码TODO
phoneVerifyCode
:
this
.
sms
,
//数字渠道
method
:
"
3
"
,
method
:
"
3
"
,
pwd
:
this
.
password
,
serviceAgreeStatus
:
this
.
checked
serviceAgreeStatus
:
this
.
checked
}
apiService
.
general
(
registApi
.
registSystem
,
undefined
,
param
,
undefined
).
then
((
response
:
RestfulResponse
)
=>
{
console
.
log
(
response
);
...
...
@@ -129,7 +162,7 @@ export default class ForgetPassView extends Vue {
}
}
//计时器
//计时器
changeCmstotal
()
{
this
.
getCmstotal
=
this
.
time
+
"
s重发验证码
"
;
this
.
timer
=
setInterval
(()
=>
{
...
...
@@ -142,22 +175,22 @@ export default class ForgetPassView extends Vue {
},
1000
)
}
getPhonePost
()
{
let
param
=
{
phoneCode
:
this
.
phone
getPhonePost
()
{
let
param
=
{
phoneCode
:
this
.
phone
}
apiService
.
general
(
commonApi
.
getPicCode
,
param
,
undefined
,
undefined
).
then
((
response
:
RestfulResponse
)
=>
{
apiService
.
general
(
commonApi
.
getPicCode
,
param
,
undefined
,
undefined
).
then
((
response
:
RestfulResponse
)
=>
{
if
(
response
.
code
==
Code
.
SUCCESS
.
code
)
{
Toast
(
'
短信发送成功,5分钟有效
'
);
this
.
changeCmstotal
()
}
else
{
}
else
{
Toast
(
'
短信发送失败,请重试
'
);
}
})
}
}
created
()
{
...
...
src/views/main/Main.vue
浏览文件 @
ce638afd
...
...
@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-05 14:05:30
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-0
7-28 15:44:01
* @LastEditTime: 2022-0
8-18 13:52:56
* @FilePath: \mcep-h5\src\views\main\MainView.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
...
...
@@ -211,7 +211,7 @@
</van-dropdown-item>
</van-dropdown-menu>
</div>
<scroller-view
v-calculate-height
>
<scroller-view
v-calculate-height
:height=
"10000"
>
<div
v-for=
"(item, index) in productList"
:key=
"index"
style=
"margin: 4% auto;"
>
<picket-bar
:productname=
"item.productname"
:describe=
"item.describe"
:limitrange=
"item.limitrange"
:interestrate=
"item.interestrate"
:loanterm=
"item.loanterm"
@
onClickPicket=
"onClickPicket"
></picket-bar>
...
...
@@ -328,6 +328,19 @@ export default class Main extends Vue {
productList
:
ProductData
[]
=
[{
productname
:
"
金融消费贷
"
,
//产品名称
describe
:
"
一次核查 三年有效 随用随贷 循环使用
"
,
//描述
limitrange
:
"
1000~2000
"
,
//额度范围
interestrate
:
"
19%~20%
"
,
//利率
loanterm
:
"
89个月
"
,
//贷款期限
},
{
productname
:
"
白领贷
"
,
//产品名称
describe
:
"
额度较大 使用人群 工薪阶级
"
,
//描述
limitrange
:
"
1000~2000
"
,
//额度范围
interestrate
:
"
19%~20%
"
,
//利率
loanterm
:
"
89个月
"
,
//贷款期限
},
{
productname
:
"
金融消费贷
"
,
//产品名称
describe
:
"
1年100万
"
,
//描述
limitrange
:
"
1000~2000
"
,
//额度范围
...
...
@@ -336,11 +349,12 @@ export default class Main extends Vue {
},
{
productname
:
"
金融消费贷
"
,
//产品名称
describe
:
"
1年100万
三年内还清了
"
,
//描述
describe
:
"
1年100万
"
,
//描述
limitrange
:
"
1000~2000
"
,
//额度范围
interestrate
:
"
19%~20%
"
,
//利率
loanterm
:
"
89个月
"
,
//贷款期限
}];
}
];
//点击picket跳转界面
onClickPicket
()
{
this
.
$router
.
push
({
...
...
src/views/workbench/AccommodDetails.vue
浏览文件 @
ce638afd
...
...
@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-07 16:13:13
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-0
7-25 13:47:03
* @LastEditTime: 2022-0
8-18 14:19:37
* @FilePath: \mcep-h5\src\components\common\Bottom.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
...
...
@@ -14,7 +14,7 @@
</div>
<div>
<van-tabs>
<van-tab
title=
"
申请
详情"
>
<van-tab
title=
"
借据
详情"
>
<div
class=
"layout"
>
<van-row
type=
"flex"
class=
"CoolName"
>
<van-col
span=
"24"
class=
"coollayout"
>
个人信息
</van-col>
...
...
@@ -43,13 +43,13 @@
</van-row>
</div>
<van-row
type=
"flex"
class=
"CoolName"
>
<van-col
span=
"24"
class=
"coollayout"
>
借
款
信息
</van-col>
<van-col
span=
"24"
class=
"coollayout"
>
借
据
信息
</van-col>
</van-row>
<div
class=
"layoutbody"
>
<van-row
type=
"flex"
class=
"layoutName"
>
<van-col
span=
"24"
>
<van-cell-group>
<van-field
label=
"贷款
品种
"
:value=
"varieties"
readonly
input-align=
"right"
/>
<van-field
label=
"贷款
账号
"
:value=
"varieties"
readonly
input-align=
"right"
/>
</van-cell-group>
</van-col>
</van-row>
...
...
@@ -63,7 +63,7 @@
<van-row
type=
"flex"
class=
"layoutName"
>
<van-col
span=
"24"
>
<van-cell-group>
<van-field
label=
"借款
期限
"
:value=
"borrow"
readonly
input-align=
"right"
/>
<van-field
label=
"借款
到期日
"
:value=
"borrow"
readonly
input-align=
"right"
/>
</van-cell-group>
</van-col>
</van-row>
...
...
@@ -77,28 +77,28 @@
<van-row
type=
"flex"
class=
"layoutName"
>
<van-col
span=
"24"
>
<van-cell-group>
<van-field
label=
"
业务办理地区
"
:value=
"area"
readonly
input-align=
"right"
/>
<van-field
label=
"
担保方式
"
:value=
"area"
readonly
input-align=
"right"
/>
</van-cell-group>
</van-col>
</van-row>
<van-row
type=
"flex"
class=
"layoutName"
>
<van-col
span=
"24"
>
<van-cell-group>
<van-field
label=
"
意向机构
"
:value=
"intentions"
readonly
input-align=
"right"
/>
<van-field
label=
"
还款方式
"
:value=
"intentions"
readonly
input-align=
"right"
/>
</van-cell-group>
</van-col>
</van-row>
<van-row
type=
"flex"
class=
"layoutName"
>
<van-col
span=
"24"
>
<van-cell-group>
<van-field
label=
"
客户经理
"
:value=
"customer"
readonly
input-align=
"right"
/>
<van-field
label=
"
借款利率
"
:value=
"customer"
readonly
input-align=
"right"
/>
</van-cell-group>
</van-col>
</van-row>
</div>
</div>
</van-tab>
<van-tab
title=
"业务进度"
>
<van-tab
title=
"业务进度"
v-if=
"status === statusl"
>
<van-steps
direction=
"vertical"
:active=
"0"
>
<van-step>
...
...
@@ -146,6 +146,7 @@
</
template
>
<
script
lang=
"ts"
>
import
{
number
}
from
"
mathjs
"
;
import
{
Component
,
Vue
,
Prop
,
Watch
,
Emit
}
from
"
vue-property-decorator
"
;
/*
* title
...
...
@@ -155,6 +156,9 @@ import { Component, Vue, Prop, Watch, Emit } from "vue-property-decorator";
})
export
default
class
AccommodDetails
extends
Vue
{
tatleName
=
"
我的贷款
"
//状态
status
=
2
;
statusl
:
any
;
//身份证
idcard
=
"
23232111978211
"
//姓名
...
...
@@ -162,19 +166,25 @@ export default class AccommodDetails extends Vue {
//电话
phone
=
"
15665025053
"
//贷款详情
varieties
=
"
一般经营性贷款
"
varieties
=
"
230000009000000
"
//借款金融
amount
=
"
500万
"
//
借款期限
borrow
=
"
2
4月
"
//
到期日
borrow
=
"
2
022-02-01
"
//借款用途
purposes
=
"
经营
"
//
业务办理地区
area
=
"
黑龙江省-哈尔滨市-松北区
"
//
担保方式
area
=
"
抵押
"
//意向机构
intentions
=
"
哈尔滨农信社松北区枝江大道分社
"
//客户经理
customer
=
"
赵恒请
"
intentions
=
"
等额本息
"
//借款利率
customer
=
"
2.54%
"
created
()
{
// debugger
this
.
statusl
=
this
.
$route
.
params
.
status
}
}
...
...
src/views/workbench/AccommodMain.vue
浏览文件 @
ce638afd
...
...
@@ -21,12 +21,13 @@
<van-col
style=
" width: 100%; margin-left: 8%; line-height: 2;"
>
<van-row
gutter=
"20"
>
<van-col
span=
"12"
class=
"lable"
><span>
合同类型:
</span></van-col>
<van-col
span=
"12"
class=
"contractType"
>
{{
item
.
contractType
}}
</van-col>
<van-col
span=
"12"
class=
"contractType"
>
{{
item
.
contractType
}}
</van-col>
</van-row>
<van-row
gutter=
"20"
>
<van-col
span=
"12"
class=
"lable"
><span>
合同金额:
</span></van-col>
<van-col
span=
"12"
class=
"contractAmount"
style=
"color:rgb(255, 204, 0);"
>
{{
item
.
contractAmount
}}
</van-col>
<van-col
span=
"12"
class=
"contractAmount"
style=
"color:rgb(255, 204, 0);"
>
{{
item
.
contractAmount
}}
</van-col>
</van-row>
<van-row
gutter=
"20"
>
...
...
@@ -43,24 +44,21 @@
</van-col>
<van-col
span=
"8"
>
<svg
class=
"icon"
aria-hidden=
"true"
v-if=
"item.status === 1"
>
<use
xlink:href=
"#icon-a-yifafang60x60px
"
></use>
<use
xlink:href=
"#icon-yiqianding
"
></use>
</svg>
<svg
class=
"icon"
aria-hidden=
"true"
v-if=
"item.status === 2"
>
<use
xlink:href=
"#icon-a-yifafang60x60px"
></use>
</svg>
<svg
class=
"icon"
aria-hidden=
"true"
v-if=
"item.status === 3"
>
<use
xlink:href=
"#icon-a-yijieqing60x60px"
></use>
<use
xlink:href=
"#icon-weiqianding"
></use>
</svg>
</van-col>
</van-row>
</div>
<van-row
v-if=
"item.status === 2"
type=
"flex"
class=
"bottom"
@
click=
"onClickPicket()"
>
<van-col
span=
"24"
class=
"lablel"
><span>
查看借据
</span>
<!--
<van-row
type=
"flex"
class=
"bottom"
@
click=
"onClickPicket()"
>
<van-col
span=
"24"
class=
"lablel"
><span>
查看合同
</span>
<svg
class=
"iconl"
aria-hidden=
"true"
>
<use
xlink:href=
"#icon-a-xiayiye24x24px"
></use>
</svg>
</van-col>
</van-row
>
</van-row>
--
>
</div>
</div>
</div>
...
...
@@ -76,13 +74,13 @@ import { Component, Vue, Prop, Watch, Emit } from "vue-property-decorator";
})
export
default
class
AccommodMain
extends
Vue
{
tatleName
=
"
我的贷款
"
//
未
结清贷款计划
//结清贷款计划
productParam
=
[{
contractNo
:
"
117647289092
"
,
contractType
:
"
一般借款合同
"
,
contractAmount
:
"
30,000.00
"
,
contractRate
:
"
4.13%
"
,
paymentMethod
:
"
等额本金
"
,
paymentMethod
:
"
等额本金
"
,
status
:
2
},
{
...
...
@@ -90,19 +88,19 @@ export default class AccommodMain extends Vue {
contractType
:
"
一般借款合同
"
,
contractAmount
:
"
30,000.00
"
,
contractRate
:
"
1.13%
"
,
paymentMethod
:
"
等额本金
"
,
status
:
3
}]
//已结清
productParamlist
=
[{
productname
:
"
'llll'流动之星贷款
"
,
money
:
"
30
"
,
guarantee
:
"
担保
"
,
status
:
3
,
month
:
"
12
"
,
time
:
"
2022-02-18
"
paymentMethod
:
"
等额本金
"
,
status
:
2
},
{
contractNo
:
"
117647289092
"
,
contractType
:
"
一般借款合同
"
,
contractAmount
:
"
30,000.00
"
,
contractRate
:
"
1.13%
"
,
paymentMethod
:
"
等额本金
"
,
status
:
1
}]
//点击还款计划事件
onClickDetails
()
{
this
.
$router
.
push
({
...
...
@@ -130,6 +128,7 @@ export default class AccommodMain extends Vue {
width
:
100%
;
height
:
20%
;
}
.icon
{
width
:
80px
;
height
:
80px
;
...
...
src/views/workbench/Accommodation.vue
浏览文件 @
ce638afd
...
...
@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-07 16:13:13
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-0
7-25 14:38:19
* @LastEditTime: 2022-0
8-18 14:18:52
* @FilePath: \mcep-h5\src\components\common\Bottom.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
...
...
@@ -16,10 +16,10 @@
<van-tabs>
<van-tab
title=
"未结清"
>
<picket-acced
:productParam=
"productParam"
class=
"acced"
@
onClickDetails=
"onClickDetails"
@
onClickPicket=
"onClickPicket"
></picket-acced>
@
onClickPicket=
"onClickPicket"
></picket-acced>
</van-tab>
<van-tab
title=
"已结清"
>
<picket-acced
:productParam=
"productParamlist"
class=
"acced"
></picket-acced>
<picket-acced
:productParam=
"productParamlist"
@
onClickDetails=
"onClickDetails"
class=
"acced"
></picket-acced>
</van-tab>
</van-tabs>
...
...
@@ -43,7 +43,7 @@ export default class Accommodation extends Vue {
money
:
"
30
"
,
guarantee
:
"
担保
"
,
month
:
"
12
"
,
status
:
2
,
status
:
1
,
time
:
"
2022-02-18
"
},
{
productname
:
"
'企业之星'流动之星贷款
"
,
...
...
@@ -64,9 +64,12 @@ export default class Accommodation extends Vue {
}]
//点击还款计划事件
onClickDetails
()
{
onClickDetails
(
status
:
any
)
{
this
.
$router
.
push
({
name
:
"
AccommodDetails
"
name
:
"
AccommodDetails
"
,
params
:{
status
:
status
}
})
}
//点击body事件
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录