Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
C
contraceptives_app
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ynby
contraceptives_app
Commits
ecb1bc0b
Commit
ecb1bc0b
authored
Nov 27, 2022
by
gengchunlei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交
parent
114368d3
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
120 additions
and
13 deletions
+120
-13
.env.dev
.env.dev
+1
-1
index.html
public/index.html
+1
-1
index.js
src/router/index.js
+2
-0
api.js
src/utils/api.js
+5
-0
common.js
src/utils/common.js
+78
-0
collectRecords.vue
src/views/collectRecords.vue
+23
-4
noData.vue
src/views/component/noData.vue
+3
-3
manualDistribution.vue
src/views/manualDistribution/manualDistribution.vue
+3
-2
manualCollection.vue
src/views/medicalCollection/manualCollection.vue
+4
-2
yaoju_app_resident_2022_4_25.zip
yaoju_app_resident_2022_4_25.zip
+0
-0
yaoju_app_resident_2022_9_7.zip
yaoju_app_resident_2022_9_7.zip
+0
-0
No files found.
.env.dev
View file @
ecb1bc0b
NODE_ENV=dev
VUE_APP_BASE_URL1 = http://192.168.
1.132
:8889
VUE_APP_BASE_URL1 = http://192.168.
3.9
:8889
VUE_APP_BASE_URL = https://beta-yjservice.yiboshi.com
VUE_APP_BASE_URL1 = https://yaoju-service.yiboshi.com
public/index.html
View file @
ecb1bc0b
...
...
@@ -14,7 +14,7 @@
src=
"https://webapi.amap.com/maps?v=1.4.15&key=e8a56e9582dbac15d801174310ea43d7"
></script>
<script
src=
"https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"
></script>
<link
rel=
"stylesheet"
href=
"path/to/font-awesome/css/font-awesome.min.css"
>
<!--
<script src="https://cdn.bootcdn.net/ajax/libs/vConsole/3.3.4/vconsole.min.js"></script>-->
<!--
<script src="https://cdn.bootcdn.net/ajax/libs/vConsole/3.3.4/vconsole.min.js"></script>-->
<title>
云南省免费提供避孕药具服务平台
</title>
<!-- <script>-->
<!-- //声明_czc对象:-->
...
...
src/router/index.js
View file @
ecb1bc0b
...
...
@@ -10,6 +10,7 @@ import ReceiveSuccess from '../views/receiveSuccess'
import
ManualCollection
from
"../views/medicalCollection/manualCollection"
;
import
ManualSuccess
from
"../views/medicalCollection/manualSuccess"
;
import
ManualDistribution
from
'../views/manualDistribution/manualDistribution'
import
ReClaim
from
'../views/reClaim'
Vue
.
use
(
VueRouter
)
...
...
@@ -24,6 +25,7 @@ const routes = [
{
path
:
'/resident/manualDistribution'
,
name
:
'manualDistribution'
,
component
:
ManualDistribution
},
{
path
:
'/manualCollection'
,
name
:
'manualCollection'
,
component
:
ManualCollection
},
{
path
:
'/manualSuccess'
,
name
:
'manualSuccess'
,
component
:
ManualSuccess
},
{
path
:
'/reClaim'
,
name
:
'reClaim'
,
component
:
ReClaim
},
]
...
...
src/utils/api.js
View file @
ecb1bc0b
...
...
@@ -97,6 +97,11 @@ export const getManualNetworkMedical = params => {
return
apiInstance
.
get
(
`/stock-info/v1/api/phone-h5/stock-basic-info/phone-network-stock-info`
,
{
params
})
}
//获取重新领取可申领列表
export
const
getReClaimList
=
params
=>
{
return
apiInstance
.
get
(
`/stock-info/v1/api/phone-h5/stock-provide-record/anew-page-by-provide-id`
,
{
params
})
}
//人工网点领取
export
const
addManualMedicalRecord
=
params
=>
{
return
apiInstance
.
post
(
`/stock-info/v1/api/phone-h5/admin/stock-provide-record/artificial-receive`
,
params
)
...
...
src/utils/common.js
View file @
ecb1bc0b
...
...
@@ -53,3 +53,81 @@ export function callMobile(handlerInterface, parameters) {
}
}
}
// 验证身份证号 带校验位
export
const
validateIdCard
=
(
idCard
)
=>
{
let
flag
=
false
;
// 15位和18位身份证号码的正则表达式
const
regIdCard
=
/^
(
^
[
1-9
]\d{7}((
0
\d)
|
(
1
[
0-2
]))(([
0|1|2
]\d)
|3
[
0-1
])\d{3}
$
)
|
(
^
[
1-9
]\d{5}[
1-9
]\d{3}((
0
\d)
|
(
1
[
0-2
]))(([
0|1|2
]\d)
|3
[
0-1
])((\d{4})
|
\d{3}[
Xx
])
$
)
$/
;
// 如果通过该验证,说明身份证格式正确,但准确性还需计算
if
(
regIdCard
.
test
(
idCard
))
{
if
(
idCard
.
length
===
18
)
{
const
idCardWi
=
[
7
,
9
,
10
,
5
,
8
,
4
,
2
,
1
,
6
,
3
,
7
,
9
,
10
,
5
,
8
,
4
,
2
];
// 将前17位加权因子保存在数组里
const
idCardY
=
[
1
,
0
,
10
,
9
,
8
,
7
,
6
,
5
,
4
,
3
,
2
];
// 这是除以11后,可能产生的11位余数、验证码,也保存成数组
let
idCardWiSum
=
0
;
// 用来保存前17位各自乖以加权因子后的总和
for
(
let
i
=
0
;
i
<
17
;
i
++
)
{
idCardWiSum
+=
idCard
.
substring
(
i
,
i
+
1
)
*
idCardWi
[
i
];
}
const
idCardMod
=
idCardWiSum
%
11
;
// 计算出校验码所在数组的位置
const
idCardLast
=
idCard
.
substring
(
17
);
// 得到最后一位身份证号码
// 如果等于2,则说明校验码是10,身份证号码最后一位应该是X
if
(
idCardMod
===
2
)
{
flag
=
idCardLast
===
'X'
||
idCardLast
===
'x'
;
}
else
{
// 用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
flag
=
idCardLast
===
ToString
(
idCardY
[
idCardMod
]);
}
}
}
else
{
flag
=
false
;
}
return
flag
;
};
/**
* 身份证带校验位验证
* @param type 0 不限男女 1 男 2 女
*/
// 身份证正则
export
const
idCardReg
=
/
(
^
[
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
]
$
)
/
;
// 男性身份证正则
export
const
menIdCardReg
=
/
(
^
[
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{2}[
1|3|5|7|9
][
0-9Xx
]
$
)
/
;
// 女性身份证正则
export
const
womenIdCardReg
=
/
(
^
[
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{2}[
0|2|4|6|8
][
0-9Xx
]
$
)
/
;
export
const
idCardValidator
=
(
value
)
=>
{
const
reg
=
[
idCardReg
,
menIdCardReg
,
womenIdCardReg
][
0
];
const
val
=
value
.
trim
();
const
flag
=
validateIdCard
(
value
);
if
((
!
flag
||
!
reg
.
test
(
value
))
&&
val
)
{
return
new
Promise
(
resolve
=>
{
resolve
(
false
)
})
}
new
Promise
(
resolve
=>
{
resolve
(
true
)
})
};
//身份证方法校验
export
const
idCardV
=
(
value
,
type
=
0
)
=>
{
const
reg
=
[
idCardReg
,
menIdCardReg
,
womenIdCardReg
][
type
];
const
val
=
value
.
trim
();
const
flag
=
validateIdCard
(
value
);
if
((
!
flag
||
!
reg
.
test
(
value
))
&&
val
)
{
return
false
}
return
true
}
// 转换字符串
export
const
ToString
=
str
=>
{
if
(
str
===
0
)
{
return
"0"
;
}
str
=
str
||
""
;
return
str
.
toString
();
};
src/views/collectRecords.vue
View file @
ecb1bc0b
...
...
@@ -85,9 +85,9 @@
>
<div
class=
"content"
v-for=
"item in lossDetailInfo"
:key=
"item.id"
>
<!--可重新申领列表-->
<div
class=
"title"
style=
"display:flex;justify-content: space-between;align-items:
center
"
>
<div><span>
{{
item
.
medicalName
}}
</span></div>
<div
v-if=
"item.lossAuditStatus === 0"
style=
"min-width: 42px"
>
<div
class=
"title"
style=
"display:flex;justify-content: space-between;align-items:
flex-start
"
>
<div
style=
"word-break: break-all"
><span>
{{
item
.
medicalName
}}
</span></div>
<
!--
<
div
v-if=
"item.lossAuditStatus === 0"
style=
"min-width: 42px"
>
<div
style=
"color: #FA8C16;"
>
待审核
</div>
</div>
<div
v-if=
"item.lossAuditStatus === 1"
style=
"min-width: 42px"
>
...
...
@@ -95,6 +95,10 @@
</div>
<div
v-if=
"item.lossAuditStatus === 2"
style=
"min-width: 60px"
>
<div
style=
"border: 1px solid #F5222D;color: #F5222D;padding: 0px 8px"
>
已驳回
</div>
</div>
-->
<div
style=
"min-width: 110px"
v-if=
"item.isShow"
>
<div
class=
"sub1"
@
click=
"toApply(item)"
style=
"white-space: nowrap"
>
领取其他药具
</div>
</div>
</div>
<div
class=
"flex_center"
@
click=
"getCheckLossInfo(item)"
>
...
...
@@ -464,7 +468,6 @@
this
.
$notify
({
type
:
'success'
,
message
:
'申请成功!'
,
className
:
'toastIndex'
,});
}
else
{
this
.
$notify
({
type
:
'danger'
,
message
:
'申请失败!'
,
className
:
'toastIndex'
,});
}
}).
finally
(()
=>
{
this
.
btnLoad
=
false
...
...
@@ -500,6 +503,12 @@
this
.
adverseReaction
=
[...
this
.
adverseReaction
]
}
},
toApply
(
record
)
{
//领取该品类下的其他药具
let
par
=
{
...
record
,
}
this
.
$router
.
push
({
path
:
`/reClaim`
,
query
:
par
})
}
},
beforeDestroy
()
{
...
...
@@ -683,6 +692,16 @@
margin
:
15px
auto
;
/*margin-left: calc(50% - 100px) ;*/
}
.sub1
{
/*background: #1bd09f;*/
/*width: 70px;*/
color
:
#1890FF
!important
;
border
:
1px
solid
#1890FF
;
padding
:
2px
3px
;
border-radius
:
2px
;
text-align
:
center
;
margin
:
0px
0px
0px
0px
;
}
</
style
>
<
style
lang=
"less"
>
...
...
src/views/component/noData.vue
View file @
ecb1bc0b
<
template
>
<div>
<div
class=
"success-img"
>
<img
s
rc=
"./../../assets/img/noHave
.png"
/>
<img
s
tyle=
"width: 160px;height: 160px"
src=
"./../../assets/img/empty-image-default
.png"
/>
<div
class=
"tips"
>
<slot
name=
"content"
>
暂无数据...
</slot>
</div>
</div>
<div
class=
"backHome"
>
<
!--
<
div
class=
"backHome"
>
<slot
name=
"btn"
>
<mt-button
type=
"primary"
@
click=
"backHome"
>
返回首页
</mt-button>
</slot>
</div>
</div>
-->
</div>
</
template
>
...
...
src/views/manualDistribution/manualDistribution.vue
View file @
ecb1bc0b
...
...
@@ -46,7 +46,7 @@
<
script
>
import
{
Toast
}
from
'mint-ui'
import
{
getQueryVariable
}
from
"../../utils/common"
;
import
{
getQueryVariable
,
idCardV
}
from
"../../utils/common"
;
import
{
getCheckShortMessage
,
getShortMessage
,
getUserInfoByIdCard
}
from
"../../utils/api"
;
import
NoData
from
"../component/noData"
;
export
default
{
...
...
@@ -119,7 +119,8 @@
var
ckPhone
=
/^1
(?:
3
[
0-9
]
|4
[
5-9
]
|5
[
0-9
]
|6
[
12456
]
|7
[
0-8
]
|8
[
0-9
]
|9
[
0-9
])[
0-9
]{8}
$/
;
var
cktel
=
/^0
[
1-9
][
0-9
]{1,2}
-
[
2-8
][
0-9
]{6,7}
$/
;
let
idCardResult
=
/^
\d{6}(
18|19|20
)?\d{2}(
0
[
1-9
]
|1
[
012
])(
0
[
1-9
]
|
[
12
]\d
|3
[
01
])\d{3}(\d
|X
)
$/i
.
test
(
this
.
formData
.
idCar
)
if
(
!
idCardResult
)
{
let
idCardRes
=
idCardV
(
this
.
formData
.
idCar
)
if
(
!
idCardResult
||
!
idCardRes
)
{
return
Toast
({
message
:
'请输入正确的身份证号!'
,
duration
:
2000
...
...
src/views/medicalCollection/manualCollection.vue
View file @
ecb1bc0b
...
...
@@ -108,8 +108,8 @@
class=
"res_input"
placeholder=
"请输入领取人身份证号码(必填)"
:rules=
"[
{ required: true, message: '请
填身份证号码
' },
{
pattern: /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i
, message: '请输入正确的身份证号' }
{ required: true, message: '请
输入身份证号
' },
{
validator: idCardValidator
, message: '请输入正确的身份证号' }
]"
/>
<van-field
...
...
@@ -139,6 +139,7 @@
import
NoData
from
'../component/noData'
;
import
{
Toast
,
Indicator
}
from
'mint-ui'
;
import
{
receiveWay
}
from
"../../utils/dictionaries"
;
import
{
idCardValidator
}
from
'../../utils/common'
export
default
{
components
:
{
NoData
},
...
...
@@ -198,6 +199,7 @@
// this.sessionInfo = JSON.parse(window.sessionStorage.getItem('mobileTokenIno'))
},
methods
:
{
idCardValidator
,
//刷新
onRefresh
()
{
this
.
isLoading
=
true
...
...
yaoju_app_resident_2022_4_25.zip
deleted
100644 → 0
View file @
114368d3
File deleted
yaoju_app_resident_2022_9_7.zip
deleted
100644 → 0
View file @
114368d3
File deleted
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment