Commit e3de6ee7 authored by 李晓兵's avatar 李晓兵

'待签约认证'

parent 0dfac473
......@@ -10,5 +10,5 @@ module.exports = {
filePath: '"http://180.104.121.66:8088/r/api/app/fileViewSvc?sysName=XCMG_DEV&apiName=file_view&"',
ocrPath:'"http://180.104.121.66:8088/r/api"',
appId: '"com.xcmg.app"',
currentVersion: '"1.1.8"'
currentVersion: '"1.1.9"'
}
......@@ -59,8 +59,8 @@ import Jpush from './scripts/jpushService'
import Jmessage from './scripts/jmessageService'
// if (process.env.CONFIG_ENV === 'uat') {
const VConsole = require('vconsole')
new VConsole() // eslint-disable-line
// const VConsole = require('vconsole')
// new VConsole() // eslint-disable-line
// }
Vue.use(componentInstall)
......
......@@ -62,218 +62,256 @@
</h-view>
</template>
<script>
export default {
data () {
return {
downNum: false,
time: 60,
lastTime: 3,
code: '',
file: '',
sessionId: '',
codeList: [],
}
},
methods: {
recordVdeo () { // 开始录制
let vm = this
vm.downNum = false // 模态框消失
let onSuccess = function (mediaFiles) {
// 遍历获取录制的文件(iOS 只支持一次录制一个视频)
/* for (let i = 0; i < mediaFiles.length; i++) {
alert('录制成功!\n\n' + '文件名:' + mediaFiles[i].name + '\n' + '大小:' + mediaFiles[i].size + '\n\n' + 'localURL地址:' + mediaFiles[i].localURL + '\n\n' + 'fullPath地址:' + mediaFiles[i].fullPath)
} */
console.log('录制成功!\n\n' + '文件名:' + mediaFiles[0].name + '\n' + '大小:' + mediaFiles[0].size + '\n\n' + 'localURL地址:' + mediaFiles[0].localURL + '\n\n' + 'fullPath地址:' + mediaFiles[0].fullPath)
vm.succesCall(mediaFiles[0].fullPath) // 开始检测
// vm.svaeVideo(mediaFiles[0].fullPath) // 上传视频文件至业务系统
}
let onError = function (error) {
hlsPopup.showLongcenter('录制失败,请重新录制')
export default {
data () {
return {
downNum: false,
time: 60,
lastTime: 3,
code: '',
file: '',
sessionId: '',
codeList: [],
}
hlsUtil.captureVideo(onSuccess, onError)
},
svaeVideo (fullPath) {
let vm = this
vm.videoListUpload = []
let obj = {
pkvalue: vm.$route.params.check_id,
source_type: 'PRJ_CDD_ITEM_CHECK',
picture: '',
filePath: fullPath,
attachment_id: '',
user_id: 1,
fileName: 'video',
}
vm.videoListUpload.push(obj)
vm.saveVideoStart(vm.videoListUpload) // 开始存视频
},
// 视频保存
saveVideoStart (list) {
console.log('list ' + JSON.stringify(list))
let vm = this
if (list.length) {
var alreadyUploadNum = 0
var attLength = 0
var recordUploadInterval = setInterval(function () {
if (alreadyUploadNum === attLength) {
clearInterval(recordUploadInterval)
}
}, 500)
for (var i = 0; i < list.length; i++) {
let uploadSuccess = function (res) {
if (res.result === 'S') {
alreadyUploadNum++
for (var j = 0; j < list.length; j++) {
if (list[j].filePath === res.response.filePath) {
list[j].attachment_id = res.response.attachment_id
console.log('%%%%%%%%%%%%% ' + JSON.stringify(res.response))
break
methods: {
recordVdeo () { // 开始录制
let vm = this
vm.downNum = false // 模态框消失
let onSuccess = function (mediaFiles) {
// 遍历获取录制的文件(iOS 只支持一次录制一个视频)
console.log('录制成功!\n\n' + '文件名:' + mediaFiles[0].name + '\n' + '大小:' + mediaFiles[0].size + '\n\n' + 'localURL地址:' + mediaFiles[0].localURL + '\n\n' + 'fullPath地址:' + mediaFiles[0].fullPath)
vm.succesCall(mediaFiles[0].fullPath) // 开始检测
// vm.svaeVideo(mediaFiles[0].fullPath) // 上传视频文件至业务系统
}
let onError = function (error) {
hlsPopup.showLongcenter('录制失败,请重新录制')
}
hlsUtil.captureVideo(onSuccess, onError)
},
svaeVideo (fullPath) {
let vm = this
vm.videoListUpload = []
let obj = {
pkvalue: vm.$route.params.check_id,
source_type: 'PRJ_CDD_ITEM_CHECK',
picture: '',
filePath: fullPath,
attachment_id: '',
user_id: 1,
fileName: 'video',
}
vm.videoListUpload.push(obj)
vm.saveVideoStart(vm.videoListUpload) // 开始存视频
},
// 视频保存
saveVideoStart (list) {
console.log('list ' + JSON.stringify(list))
let vm = this
if (list.length) {
var alreadyUploadNum = 0
var attLength = 0
var recordUploadInterval = setInterval(function () {
if (alreadyUploadNum === attLength) {
clearInterval(recordUploadInterval)
}
}, 500)
for (var i = 0; i < list.length; i++) {
let uploadSuccess = function (res) {
if (res.result === 'S') {
alreadyUploadNum++
for (var j = 0; j < list.length; j++) {
if (list[j].filePath === res.response.filePath) {
list[j].attachment_id = res.response.attachment_id
console.log('%%%%%%%%%%%%% ' + JSON.stringify(res.response))
break
}
}
} else {
hlsPopup.hideLoading()
}
} else {
hlsPopup.hideLoading()
}
if (!list[i].attachment_id) {
attLength++
hlsUtil.fileUploadSvc(list[i], uploadSuccess)
}
}
if (!list[i].attachment_id) {
attLength++
hlsUtil.fileUploadSvc(list[i], uploadSuccess)
}
}
} else {
hlsPopup.hideLoading()
}
},
succesCall (fileUrl) { // 录制成功后进行检测
let vm = this
console.log('fileUrl ' + fileUrl)
console.log('sessionId ' + vm.sessionId)
let url = process.env.ocrPath + '/baidu/ocr/videoFaceliveness'
let param = {
fileUrl: fileUrl,
sessionId: vm.sessionId,
}
vm.hlsPopup.showLoading('正在检测')
var flag = false
var loadInterval = setInterval(function () {
vm.hlsPopup.showLoading('视频过大,请耐心等待')
if (flag) {
vm.hlsPopup.hideLoading()
clearInterval(loadInterval)
}
}, 5000)
hlsUtil.baiduOcrVideo(param, url, function (res) {
flag = true
vm.hlsPopup.hideLoading()
console.log('##########res ' + JSON.stringify(res))
if (res.result.result.thresholds.frr_1e - 2 < 0.9) {
vm.hlsPopup.showLongCenter('检测失败,请重新尝试')
} else {
vm.hlsPopup.showLongCenter('检测成功')
hlsPopup.hideLoading()
}
})
},
getCode () { // 获取验证码
// this.downNum = true
this.computeTime()
this.time = 60
this.lastTime = 3
let vm = this
let url = process.env.ocrPath + '/baidu/ocr/videoSessioncode'
let param = {}
vm.hlsPopup.showLoading('请稍后')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.success) {
vm.codeList = [...res.result.result.code]
vm.sessionId = res.result.result.session_id
vm.downNum = true
},
succesCall (fileUrl) { // 录制成功后进行检测
let vm = this
console.log('fileUrl ' + fileUrl)
console.log('sessionId ' + vm.sessionId)
let url = process.env.ocrPath + '/baidu/ocr/videoFaceliveness'
let param = {
fileUrl: fileUrl,
sessionId: vm.sessionId,
}
})
/* let str = '098672'
vm.codeList = [...str] */
},
computeTime () { // 倒计时
let vm = this
let timer = setInterval(() => {
if (vm.time > 0) {
vm.time--
} else {
clearInterval(timer)
}
}, 1000)
let lastTime = setInterval(() => {
if (vm.lastTime > 0) {
vm.lastTime--
} else {
clearInterval(lastTime)
vm.hlsPopup.showLoading('正在检测')
var flag = false
var loadInterval = setInterval(function () {
vm.hlsPopup.showLoading('视频过大,请耐心等待')
if (flag) {
vm.hlsPopup.hideLoading()
clearInterval(loadInterval)
}
}, 5000)
hlsUtil.baiduOcrVideo(param, url, function (res) {
flag = true
vm.hlsPopup.hideLoading()
console.log('##########res ' + JSON.stringify(res))
if (res.result.result.thresholds.frr_1e - 2 < 0.9) {
hlsPopup.showConfirm({
title: '提示',
content: `检测失败,是否重新重新尝试?`,
onConfirm: data => {
if (data) {
// 重新尝试
vm.getCode()
} else {
}
},
})
vm.hlsPopup.showLongCenter('检测失败,请重新尝试')
} else {
hlsPopup.showPopup({
title: '提示',
content: `检测成功,请进行电子签认证`,
onConfirm: () => {
// 电子签认证
vm.goElectronicSign()
},
})
}
})
},
getCode () { // 获取验证码
// this.downNum = true
this.computeTime()
this.time = 60
this.lastTime = 3
let vm = this
let url = process.env.ocrPath + '/baidu/ocr/videoSessioncode'
let param = {}
vm.hlsPopup.showLoading('请稍后')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.success) {
vm.codeList = [...res.result.result.code]
vm.sessionId = res.result.result.session_id
vm.downNum = true
}
})
/* let str = '098672'
vm.codeList = [...str] */
},
goElectronicSign () { // 电子签
let vm = this
let url = process.env.basePath + 'get_sign_url'
let param = {
confirm_id: vm.$route.params.confirm_id,
data_class: 'PRJ_PROJECT',
}
}, 1000)
vm.hlsPopup.showLoading('请稍后')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.info.msg === 'success') {
/* vm.$router.push({
name: 'ElectronicSign',
params: {
url: res.info.data.url,
},
})*/
cordova.InAppBrowser.open(res.info.data.url, '_blank', 'location=yes')
} else {
vm.hlsPopup.showLongCenter(res.info.msg)
}
})
},
computeTime () { // 倒计时
let vm = this
let timer = setInterval(() => {
if (vm.time > 0) {
vm.time--
} else {
clearInterval(timer)
}
}, 1000)
let lastTime = setInterval(() => {
if (vm.lastTime > 0) {
vm.lastTime--
} else {
clearInterval(lastTime)
}
}, 1000)
},
},
},
}
}
</script>
<style lang="less" scoped>
#body-check {
.trans-enter-active,
.trans-leave-active {
transition: opacity 0.5s;
}
.trans-enter,
.trans-leave-active {
opacity: 0;
}
.modal-show {
width: 100%;
height: 100%;
position: absolute;
z-index: 900;
background-color: rgba(56, 63, 69, 0.3);
display: flex;
justify-content: center;
align-items: center;
.modal-box {
width: 314px;
display: flex;
justify-content: center;
flex-flow: wrap row;
#body-check {
.trans-enter-active,
.trans-leave-active {
transition: opacity 0.5s;
}
.down {
position: relative;
width: 314px;
height: 286px;
background-size: 301px 24.7px;
background-color: #fff;
.trans-enter,
.trans-leave-active {
opacity: 0;
}
.modal-show {
width: 100%;
height: 100%;
position: absolute;
z-index: 900;
background-color: rgba(56, 63, 69, 0.3);
display: flex;
justify-content: center;
flex-flow: wrap row;
.button{
align-items: center;
.modal-box {
width: 314px;
display: flex;
justify-content: center;
flex-flow: wrap row;
}
.down {
position: relative;
width: 314px;
height: 286px;
background-size: 301px 24.7px;
background-color: #fff;
display: flex;
justify-content: center;
flex-flow: wrap row;
.button{
width:90%;
height: 50px;
background-color: #0073eb;
color: #fff !important;
border-radius: 4px;
}
.down-content {
width: 290px;
margin: 0 auto;
margin-top: 30px;
text-align: center;
.title {
font-size: 16px;
color: #333;
}
.compute {
margin-top: 16px;
font-size: 14px;
line-height: 20px;
color: #666;
span {
color: red;
.down-content {
width: 290px;
margin: 0 auto;
margin-top: 30px;
text-align: center;
.title {
font-size: 16px;
color: #333;
}
.compute {
margin-top: 16px;
font-size: 14px;
line-height: 20px;
color: #666;
span {
color: red;
}
}
}
}
.number {
.number {
width: 100%;
display: flex;
justify-content: center;
......@@ -290,85 +328,85 @@ export default {
text-align: center;
}
}
}
.close {
border: 1px solid #fff;
width: 40px;
height: 40px;
color: #fff;
background-color: rgba(0, 0, 0, 0.3);
margin-top: 20px;
border-radius: 50%;
text-align: center;
line-height: 40px;
}
}
.close {
border: 1px solid #fff;
width: 40px;
height: 40px;
color: #fff;
background-color: rgba(0, 0, 0, 0.3);
margin-top: 20px;
border-radius: 50%;
text-align: center;
line-height: 40px;
.content{
display: flex;
flex-direction: column;
}
}
.content{
display: flex;
flex-direction: column;
}
.top {
height: 340px;
background-color: #f4f4f4;
display: flex;
justify-content: center;
align-items: flex-start;
.top-box {
width: 60%;
.top {
height: 340px;
background-color: #f4f4f4;
display: flex;
justify-content: center;
flex-wrap: wrap;
img {
width: 80%;
height: 100%;
margin-top: 10px;
}
span {
font-size: 14px;
color: #999;
line-height: 25px;
letter-spacing: 2px;
}
}
}
.bottom {
flex: 1;
background-color: #fff;
box-shadow: 0 -4px 10px 0 #e8e8e8;
display: flex;
justify-content: center;
ul {
width: 80%;
margin-top: 40px;
li {
height: 60px;
p {
height: 35px;
border-left: 1px solid #0073eb;
margin-left: 12px;
align-items: flex-start;
.top-box {
width: 60%;
display: flex;
justify-content: center;
flex-wrap: wrap;
img {
width: 80%;
height: 100%;
margin-top: 10px;
}
span:first-child {
border-radius: 50%;
border: 1px solid #0073eb;
text-align: center;
color: #0073eb;
display: inline-block;
width: 25px;
height: 25px;
span {
font-size: 14px;
color: #999;
line-height: 25px;
font-size: 12px;
margin-right: 10px;
letter-spacing: 0;
letter-spacing: 2px;
}
}
}
.bottom {
flex: 1;
background-color: #fff;
box-shadow: 0 -4px 10px 0 #e8e8e8;
display: flex;
justify-content: center;
ul {
width: 80%;
margin-top: 40px;
li {
height: 60px;
p {
height: 35px;
border-left: 1px solid #0073eb;
margin-left: 12px;
}
span:first-child {
border-radius: 50%;
border: 1px solid #0073eb;
text-align: center;
color: #0073eb;
display: inline-block;
width: 25px;
height: 25px;
line-height: 25px;
font-size: 12px;
margin-right: 10px;
letter-spacing: 0;
}
}
}
}
.approve {
background: @headerColor;
border-radius: 4px;
color: #fff;
font-family: PingFangSC-Semibold;
font-size: 15px;
}
}
.approve {
background: @headerColor;
border-radius: 4px;
color: #fff;
font-family: PingFangSC-Semibold;
font-size: 15px;
}
}
</style>
......@@ -109,12 +109,12 @@
<p>本人同意接收来自于徐工融资租赁有限公司或第三方发出的提醒付款、确认付款、催款等短信(不含广告),同意接收来自于徐工融资租赁有限公司的录音电话,并积极配合。</p>
</div>
</div>
<div v-if="tabNum === 1" class="bodyCheck">
<button @click="goBodyCheck">活体检测</button>
</div>
<div v-if="tabNum === 1" class="sign-elect">
<button @click="goElectronicSign">电子签</button>
</div>
<!-- <div v-if="tabNum === 1" class="bodyCheck">
<button @click="iFram">iFram</button>
</div>-->
<!-- <div v-if="tabNum === 1" class="sign-elect">
<button @click="goElectronicSign">电子签</button>
</div>-->
</div>
</h-content>
<h-content v-if="num === 2">
......@@ -266,14 +266,11 @@
</div>
</div>
</h-content>
<!-- <bottom-tab v-if="con_confirm_status == 'SUBMIT'">
<tab-button class="footer" @click.native="inSure">
审批
<bottom-tab v-if="con_confirm_status!=='APPROVED'" class="add-box">
<tab-button class="before" @click.native="takePhonto">
<img src="@/assets/constractSigning/certification.png" >认证
</tab-button>
</bottom-tab>-->
<bottom-tab v-if="con_confirm_status!=='APPROVED'" class="footer-button">
<!-- <tab-button class="approve" @click.native="showModalValue=true"> -->
<tab-button class="approve" @click.native="inSure">
<tab-button class="next" @click.native="inSure">
<img src="@/assets/intoApproval/approve.png" >审批
</tab-button>
</bottom-tab>
......@@ -444,36 +441,38 @@ export default {
}
})
},
goBodyCheck () { // 活体检测
goBodyCheck (confirm_id) { // 活体检测
this.$router.push({
name: 'BodyCheck',
params: {
check_id: this.$route.params.check_id,
confirm_id: confirm_id,
},
})
},
goElectronicSign () { // 电子签
let vm = this
let url = process.env.basePath + 'get_sign_url'
let param = {
confirm_id: vm.confirm_id,
data_class: 'PRJ_PROJECT',
}
vm.hlsPopup.showLoading('请稍后')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.info.msg === 'success') {
vm.$router.push({
name: 'ElectronicSign',
params: {
url: res.info.data.url,
},
})
} else {
vm.hlsPopup.showLongCenter(res.info.msg)
}
})
},
/* goElectronicSign () { // 电子签
let vm = this
let url = process.env.basePath + 'get_sign_url'
let param = {
confirm_id: vm.confirm_id,
data_class: 'PRJ_PROJECT',
}
vm.hlsPopup.showLoading('请稍后')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.info.msg === 'success') {
/!* vm.$router.push({
name: 'ElectronicSign',
params: {
url: res.info.data.url,
},
})*!/
cordova.InAppBrowser.open(res.info.data.url, '_blank', 'location=yes')
} else {
vm.hlsPopup.showLongCenter(res.info.msg)
}
})
}, */
charge (val, status) {
let vm = this
this.hlsPopup.showConfirm({
......@@ -481,25 +480,24 @@ export default {
content: `您确认${val}吗?`,
onConfirm: data => {
if (data) {
// 执行同意的逻辑,先打开相机自拍一张
vm.takePhonto(status)
// this.confirmContractSign()
// 需要先校验是否认证通过
vm.doConfirm(status)
}
},
})
},
takePhonto (status) {
takePhonto () {
let vm = this
hlsPopup.showPopup({
title: '提示',
content: `请自拍一张`,
onConfirm: () => {
vm.takePhontoOpenCamera(status)
vm.takePhontoOpenCamera()
},
})
},
// 打开相机自拍
takePhontoOpenCamera (status) {
takePhontoOpenCamera () {
let vm = this
vm.faceListUpload = []
let obj = {
......@@ -518,7 +516,7 @@ export default {
let success = function (imgdata) {
obj.filePath = imgdata
// obj.filePath = 'http://hlsapp.hand-china.com/file/XCMG/2.jpg'
vm.confirmContractSign(imgdata, status)
vm.confirmContractSign(imgdata)
vm.faceListUpload.push(obj)
}
let error = function () {
......@@ -527,11 +525,11 @@ export default {
hlsUtil.openCamera(cameraoptions, success, error)
// this.confirmContractSign('', status)
},
// 执行同意的逻辑(查询对应的身份证正面图片->人脸识别->确认签约)
async confirmContractSign (faceImg, status) {
// 执行同意的逻辑(查询对应的身份证正面图片->人脸识别->活体检测)
async confirmContractSign (faceImg) {
let idCardImgUrl = await this.idCardImgUrlGet()
if (idCardImgUrl) {
this.faceIdentify(faceImg, idCardImgUrl, status)
this.faceIdentify(faceImg, idCardImgUrl)
}
},
// 获取身份证照片
......@@ -546,11 +544,11 @@ export default {
hlsPopup.hideLoading()
if (res.result === 'S' && res.info) {
let cardUrl =
process.env.filePath +
'attachment_id=' +
res.info.attachment_id +
'&access_token=' +
window.localStorage.access_token
process.env.filePath +
'attachment_id=' +
res.info.attachment_id +
'&access_token=' +
window.localStorage.access_token
return cardUrl
} else if (res.result === 'S' && !res.info) {
hlsPopup.showLongCenter('未找到身份证照片')
......@@ -561,7 +559,7 @@ export default {
}
},
// 人脸比对
faceIdentify (faceImg, idCardImgUrl, status) {
faceIdentify (faceImg, idCardImgUrl) {
let vm = this
let obj = {
fileUrl: faceImg,
......@@ -572,21 +570,31 @@ export default {
hlsUtil.baiduOcrFace(obj, url, function (res) {
hlsPopup.hideLoading()
if (res.success) {
vm.save_picture(vm.faceListUpload)
let identifyScore = res.result.result.score.toFixed(0)
hlsPopup.showConfirm({
hlsPopup.showPopup({
title: '提示',
content: `识别分数为${identifyScore}`,
onConfirm: data => {
if (data) {
vm.doConfirm(status)
} else {
}
content: `识别分数为${identifyScore},请进行活体检测`,
onConfirm: () => {
// 进入活体检测页面
vm.goBodyCheck(vm.confirm_id)
},
})
} else {
hlsPopup.showLongCenter('比对失败,请保证和绑定时是同一个人')
}
})
/* vm.save_picture(vm.faceListUpload)
let identifyScore = 90
hlsPopup.showPopup({
title: '提示',
content: `识别分数为${identifyScore},请进行活体检测`,
onConfirm: () => {
// 进入活体检测页面
vm.goBodyCheck(vm.confirm_id)
},
}) */
},
// 确认签约逻辑
doConfirm (status) {
......@@ -603,7 +611,6 @@ export default {
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.save_picture(vm.faceListUpload)
vm.hlsPopup.showSuccess('审批成功')
window.localStorage.setItem('backFlag', true)
vm.$routeGo()
......@@ -624,7 +631,7 @@ export default {
if (alreadyUploadNum === attLength) {
clearInterval(recordUploadInterval)
/* hlsPopup.hideLoading()
hlsPopup.showLongCenter('图片上传成功') */
hlsPopup.showLongCenter('图片上传成功') */
}
}, 500)
for (var i = 0; i < list.length; i++) {
......@@ -848,611 +855,629 @@ export default {
}
</script>
<style lang="less" rel="stylesheet">
#contract-details {
.sign-elect {
width:100%;
height:1.1rem;
position: fixed;
bottom: 43px;
// margin-top: 20px;
background: #fff;
display: flex;
justify-content: center;
align-items: center;
button {
width: 7.172rem;
height: 0.88rem;
background: #1d3fff;
border-radius: 0.08rem;
color: #fff;
font-family: PingFangSC-Semibold;
font-size: 0.3rem;
line-height: 0.4rem;
letter-spacing: 0.2rem;
#contract-details {
.sign-elect {
width:100%;
height:1.1rem;
position: fixed;
bottom: 43px;
// margin-top: 20px;
background: #fff;
display: flex;
justify-content: center;
align-items: center;
button {
width: 7.172rem;
height: 0.88rem;
background: #1d3fff;
border-radius: 0.08rem;
color: #fff;
font-family: PingFangSC-Semibold;
font-size: 0.3rem;
line-height: 0.4rem;
letter-spacing: 0.2rem;
}
}
}
.bodyCheck{
width:100%;
height:1.1rem;
position: fixed;
bottom: 92px;
background: #fff;
display: flex;
justify-content: center;
align-items: center;
button {
width: 7.172rem;
height: 0.88rem;
background: #1d3fff;
border-radius: 0.08rem;
color: #fff;
font-family: PingFangSC-Semibold;
font-size: 0.3rem;
line-height: 0.88rem;
letter-spacing: 0.2rem;
.bodyCheck{
width:100%;
height:1.1rem;
position: fixed;
bottom: 92px;
background: #fff;
display: flex;
justify-content: center;
align-items: center;
button {
width: 7.172rem;
height: 0.88rem;
background: #1d3fff;
border-radius: 0.08rem;
color: #fff;
font-family: PingFangSC-Semibold;
font-size: 0.3rem;
line-height: 0.88rem;
letter-spacing: 0.2rem;
}
}
}
.footer-button {
.approve {
width: 358.6px;
height: 44px;
background: @headerColor;
border-radius: 4px;
color: #fff;
font-family: PingFangSC-Semibold;
font-size: 15px;
line-height: 20px;
letter-spacing: 10px;
img {
width: 16.8px;
height: 16.8px;
.footer-button {
.approve {
width: 358.6px;
height: 44px;
background: @headerColor;
border-radius: 4px;
color: #fff;
font-family: PingFangSC-Semibold;
font-size: 15px;
line-height: 20px;
letter-spacing: 10px;
img {
width: 16.8px;
height: 16.8px;
}
}
}
}
.name-box {
display: inline-block;
text-align: center;
line-height: 16px;
color: #00469c;
width: 16px;
height: 16px;
background: #cddbec;
border-radius: 4px;
}
.name {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #383f45;
letter-spacing: 0;
margin-left: 10px;
}
.card-num {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #383f45;
letter-spacing: 0;
display: block;
margin-left: 31px;
margin-top: 7px;
}
.right {
position: relative;
}
.right span {
float: right;
margin-right: 48px;
display: block;
font-family: PingFangSC-Regular;
font-size: 14px;
color: rgba(56, 63, 69, 0.6);
letter-spacing: 0;
line-height: 18px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 150px;
margin-top: -10px;
text-align: right;
}
.right span:last-child {
margin-top: 7px;
}
.right img {
position: absolute;
top: 30%;
left: 88%;
width: 14px;
height: 16px;
}
.alert {
padding-bottom: 160px;
width: 100%;
//margin-top: -10px;
background: #fbf2d2;
}
.alert-fund {
margin-top: -10px;
}
.alert-content {
width: 334px;
margin: 0 auto;
padding-top: 16px;
}
.info-word {
font-family: PingFangSC-Semibold;
font-size: 14px;
color: #fcc800;
letter-spacing: 0.5px;
margin-left: 8px;
}
.title {
display: flex;
align-items: center;
}
.top-word {
p {
.name-box {
display: inline-block;
text-align: center;
line-height: 16px;
color: #00469c;
width: 16px;
height: 16px;
background: #cddbec;
border-radius: 4px;
}
.name {
font-family: PingFangSC-Regular;
font-size: 12px;
color: #656464;
letter-spacing: 0.37px;
font-size: 14px;
color: #383f45;
letter-spacing: 0;
margin-left: 10px;
}
.card-num {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #383f45;
letter-spacing: 0;
display: block;
margin-left: 31px;
margin-top: 7px;
line-height: 15px;
text-indent: 16px;
}
.right {
position: relative;
}
p::before {
content: "";
.right span {
float: right;
margin-right: 48px;
display: block;
font-family: PingFangSC-Regular;
font-size: 14px;
color: rgba(56, 63, 69, 0.6);
letter-spacing: 0;
line-height: 18px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 150px;
margin-top: -10px;
text-align: right;
}
.right span:last-child {
margin-top: 7px;
}
.right img {
position: absolute;
top: 5px;
left: 0px;
width: 4px;
height: 4px;
border-radius: 20px;
background-color: #fcc800;
top: 30%;
left: 88%;
width: 14px;
height: 16px;
}
.alert {
padding-bottom: 30px;
width: 100%;
//margin-top: -10px;
background: #fbf2d2;
}
.alert-fund {
margin-top: -10px;
}
.alert-content {
width: 334px;
margin: 0 auto;
padding-top: 16px;
}
}
.top-info {
font-family: PingFangSC-Regular;
font-size: 12px;
color: #656464;
letter-spacing: 0.37px;
margin-top: 7px;
line-height: 15px;
span {
.info-word {
font-family: PingFangSC-Semibold;
font-size: 14px;
color: #fcc800;
letter-spacing: 0.5px;
margin-left: 8px;
}
}
.alert img {
width: 18px;
height: 18px;
}
.font-color {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #656464;
letter-spacing: 0;
}
.repay-plan {
height: 44px;
width: 100%;
margin-top: -10px;
background: #f2f2f2;
p {
font-family: PingFangSC-Semibold;
.title {
display: flex;
align-items: center;
}
.top-word {
p {
font-family: PingFangSC-Regular;
font-size: 12px;
color: #656464;
letter-spacing: 0.37px;
margin-top: 7px;
line-height: 15px;
text-indent: 16px;
position: relative;
}
p::before {
content: "";
display: block;
position: absolute;
top: 5px;
left: 0px;
width: 4px;
height: 4px;
border-radius: 20px;
background-color: #fcc800;
}
}
.top-info {
font-family: PingFangSC-Regular;
font-size: 12px;
color: #656464;
letter-spacing: 0.37px;
margin-top: 7px;
line-height: 15px;
span {
color: #fcc800;
}
}
.alert img {
width: 18px;
height: 18px;
}
.font-color {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #00469c;
color: #656464;
letter-spacing: 0;
height: 44px;
width: 84px;
line-height: 44px;
font-weight: bold;
text-decoration: underline;
margin-left: 16px;
}
}
.equipment-list-fund {
height: 40px;
line-height: 40px;
background-color: #fafafa;
display: flex;
align-items: center;
color: #00469c;
font-size: 15px;
//margin-left: 16px;
position: relative;
//margin-top: -10px;
span {
width: 4px;
height: 20px;
background: #00469c;
.repay-plan {
height: 44px;
width: 100%;
margin-top: -10px;
background: #f2f2f2;
p {
font-family: PingFangSC-Semibold;
font-size: 14px;
color: #00469c;
letter-spacing: 0;
height: 44px;
width: 84px;
line-height: 44px;
font-weight: bold;
text-decoration: underline;
margin-left: 16px;
}
}
p {
padding-left: 10px;
.equipment-list-fund {
height: 40px;
line-height: 40px;
background-color: #fafafa;
display: flex;
align-items: center;
color: #00469c;
font-size: 15px;
//margin-left: 16px;
position: relative;
//margin-top: -10px;
span {
width: 4px;
height: 20px;
background: #00469c;
}
p {
padding-left: 10px;
}
}
}
.all {
position: absolute;
background-color: transparent;
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: 2;
.prompt {
.all {
position: absolute;
top: 50%;
left: 50%;
margin-top: -75px;
margin-left: -121px;
background-color: #fff;
box-shadow: 0 1px 2px 1px rgba(128, 128, 128, 0.1);
border-radius: 4px;
width: 242px;
height: 150px;
background-color: transparent;
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: 2;
.top {
height: 105px;
border-bottom: 1px solid #f1f0f5;
.prompt {
position: absolute;
top: 50%;
left: 50%;
margin-top: -75px;
margin-left: -121px;
background-color: #fff;
box-shadow: 0 1px 2px 1px rgba(128, 128, 128, 0.1);
border-radius: 4px;
width: 242px;
height: 150px;
div:first-child {
font-family: PingFangSC-Semibold;
font-size: 14px;
color: #e50020;
letter-spacing: 0.5px;
font-weight: 700;
margin-top: 13px;
.top {
height: 105px;
border-bottom: 1px solid #f1f0f5;
img {
width: 18px;
line-height: 12px;
display: block;
margin: -3px 5px 0 40%;
float: left;
div:first-child {
font-family: PingFangSC-Semibold;
font-size: 14px;
color: #e50020;
letter-spacing: 0.5px;
font-weight: 700;
margin-top: 13px;
img {
width: 18px;
line-height: 12px;
display: block;
margin: -3px 5px 0 40%;
float: left;
}
}
div:nth-child(2) {
margin-top: 22px;
font-family: PingFangSC-Regular;
font-size: 13px;
color: #383f45;
letter-spacing: 0.4px;
padding: 0 22px;
line-height: 20px;
}
}
div:nth-child(2) {
margin-top: 22px;
.bottom {
text-align: center;
font-family: PingFangSC-Regular;
font-size: 13px;
color: #383f45;
letter-spacing: 0.4px;
padding: 0 22px;
line-height: 20px;
font-size: 14px;
color: #00469c;
line-height: 32px;
}
}
}
.bottom {
text-align: center;
font-family: PingFangSC-Regular;
.tab-style {
display: flex;
justify-content: center;
padding-top: 12px;
padding-bottom: 8px;
align-items: center;
background-color: #fff;
box-shadow: 0 2px 3px 0 rgba(220, 220, 221, 0.5);
div {
display: block;
height: 32px;
width: 172px;
border-radius: 16px;
border-radius: 16px;
font-family: PingFangSC-Semibold;
font-size: 14px;
color: #00469c;
letter-spacing: 0.43px;
margin: 0 4px;
line-height: 32px;
}
}
}
.tab-style {
display: flex;
justify-content: center;
padding-top: 12px;
padding-bottom: 8px;
align-items: center;
background-color: #fff;
box-shadow: 0 2px 3px 0 rgba(220, 220, 221, 0.5);
div {
display: block;
height: 32px;
width: 172px;
border-radius: 16px;
border-radius: 16px;
font-family: PingFangSC-Semibold;
font-size: 14px;
letter-spacing: 0.43px;
margin: 0 4px;
line-height: 32px;
}
.undone {
background: rgba(220, 220, 221, 0.26);
color: #383f45;
}
.done {
background: rgba(0, 70, 156, 0.1);
color: #00469c;
}
img {
width: 16px;
display: block;
float: left;
margin: 8px 5px 0 20px;
}
span:nth-of-type(2) {
margin-left: 7px;
}
}
.content {
height: 87%;
.contract-text {
.border-red {
border: 2px solid rgba(255, 0, 0, 0.4);
.undone {
background: rgba(220, 220, 221, 0.26);
color: #383f45;
}
.done {
background: rgba(0, 70, 156, 0.1);
color: #00469c;
}
.hls-item {
margin-top: 8px;
background-color: #fff;
img {
width: 16px;
display: block;
float: left;
margin: 8px 5px 0 20px;
}
.contents {
padding: 0;
span:nth-of-type(2) {
margin-left: 7px;
}
}
.in-detail {
background-color: rgba(0, 70, 156, 0.08);
width: 48px;
height: 56px;
text-align: center;
line-height: 65px;
.content {
height: 87%;
img {
width: 16px;
.contract-text {
.border-red {
border: 2px solid rgba(255, 0, 0, 0.4);
}
}
.in-all {
//width: 96px;
display: flex;
.hls-item {
margin-top: 8px;
background-color: #fff;
}
img {
width: 16px;
.contents {
padding: 0;
}
div {
.in-detail {
background-color: rgba(0, 70, 156, 0.08);
width: 48px;
height: 56px;
text-align: center;
line-height: 65px;
}
div:first-child {
background-color: rgba(252, 200, 0, 0.1);
img {
width: 16px;
}
}
div:nth-child(2) {
background-color: rgba(0, 70, 156, 0.08);
}
}
}
}
.in-all {
//width: 96px;
display: flex;
.business-condition {
.equipment-list {
height: 40px;
line-height: 40px;
background-color: #fafafa;
color: #00469c;
font-size: 15px;
margin-left: 16px;
position: relative;
}
img {
width: 16px;
}
.equipment-list::before {
content: "";
display: block;
width: 4px;
height: 20px;
background-color: #00469c;
position: absolute;
left: -15px;
top: 10px;
}
div {
width: 48px;
height: 56px;
text-align: center;
line-height: 65px;
}
div {
font-family: PingFangSC-Regular;
color: #656464;
letter-spacing: 0;
}
div:first-child {
background-color: rgba(252, 200, 0, 0.1);
}
section {
font-family: PingFangSC-Regular;
color: rgba(56, 63, 69, 0.6);
letter-spacing: 0;
div:nth-child(2) {
background-color: rgba(0, 70, 156, 0.08);
}
}
}
}
}
.aguremrnt-list {
display: flex;
flex-direction: row;
.business-condition {
.equipment-list {
height: 40px;
line-height: 40px;
background-color: #fafafa;
color: #00469c;
font-size: 15px;
margin-left: 16px;
position: relative;
}
.pic {
margin-left: -3px;
}
.equipment-list::before {
content: "";
display: block;
width: 4px;
height: 20px;
background-color: #00469c;
position: absolute;
left: -15px;
top: 10px;
}
.pics {
// width: 21px;
height: 30px;
}
div {
font-family: PingFangSC-Regular;
color: #656464;
letter-spacing: 0;
}
.read {
height: 16px;
margin-top: 8px;
margin-left: 6px;
section {
font-family: PingFangSC-Regular;
color: rgba(56, 63, 69, 0.6);
letter-spacing: 0;
}
}
.second {
height: 32px;
line-height: 32px;
font-family: PingFangSC-Regular;
font-size: 14px;
margin-left: 16px;
color: #383f45;
letter-spacing: 0.43px;
}
.aguremrnt-list {
display: flex;
flex-direction: row;
.first {
margin-left: 13px;
}
}
.pic {
margin-left: -3px;
}
.myModal {
width: 100%;
height: 100%;
position: absolute;
z-index: 999;
background-color: rgba(56, 63, 69, 0.3);
display: flex;
justify-content: center;
align-items: center;
.box {
position: relative;
width: 301px;
height: 467px;
background: url("../../assets/intoApproval/top.png") no-repeat;
background-size: 301px 24.7px;
background-color: #fff;
button {
width: 240px;
height: 40px;
position: absolute;
color: #fff;
bottom: 16px;
left: 30.5px;
background-color: rgba(56, 63, 69, 0.5);
.pics {
// width: 21px;
height: 30px;
}
.title-box {
width: 100%;
display: block;
text-align: center;
margin-top: 37px;
font-family: PingFangSC-Semibold;
font-size: 16px;
color: #00469c;
.read {
height: 16px;
margin-top: 8px;
margin-left: 6px;
}
.content-box {
width: 240px;
height: 280px;
.second {
height: 32px;
line-height: 32px;
font-family: PingFangSC-Regular;
font-size: 12px;
font-size: 14px;
margin-left: 16px;
color: #383f45;
margin: 0 auto;
margin-top: 12px;
overflow-y: scroll;
div {
height: 20px;
line-height: 20px;
letter-spacing: 0.43px;
}
.first {
margin-left: 13px;
}
}
.myModal {
width: 100%;
height: 100%;
position: absolute;
z-index: 999;
background-color: rgba(56, 63, 69, 0.3);
display: flex;
justify-content: center;
align-items: center;
.box {
position: relative;
width: 301px;
height: 467px;
background: url("../../assets/intoApproval/top.png") no-repeat;
background-size: 301px 24.7px;
background-color: #fff;
button {
width: 240px;
height: 40px;
position: absolute;
color: #fff;
bottom: 16px;
left: 30.5px;
background-color: rgba(56, 63, 69, 0.5);
}
p {
text-indent: 22px;
line-height: 16px;
margin-top: 6px;
.title-box {
width: 100%;
display: block;
text-align: center;
margin-top: 37px;
font-family: PingFangSC-Semibold;
font-size: 16px;
color: #00469c;
}
.font-blod {
font-weight: bold;
text-indent: 0;
.content-box {
width: 240px;
height: 280px;
font-family: PingFangSC-Regular;
font-size: 12px;
color: #383f45;
margin: 0 auto;
margin-top: 12px;
overflow-y: scroll;
div {
height: 20px;
line-height: 20px;
}
p {
text-indent: 22px;
line-height: 16px;
margin-top: 6px;
}
.font-blod {
font-weight: bold;
text-indent: 0;
}
.sec {
text-indent: 22px;
}
}
.sec {
text-indent: 22px;
.confirm {
width: 240px;
height: 20px;
padding-top: 25px;
margin: 0 auto;
font-family: PingFangSC-Regular;
font-size: 12px;
color: #383f45;
line-height: 20px;
display: flex;
justify-content: center;
align-items: center;
input {
width: 16px;
height: 16px;
margin-right: 8px;
background: none;
}
input::before {
content: "";
display: block;
background-image: url("../../assets/intoApproval/top.png");
}
}
}
.confirm {
width: 240px;
height: 20px;
padding-top: 25px;
margin: 0 auto;
font-family: PingFangSC-Regular;
font-size: 12px;
color: #383f45;
line-height: 20px;
display: flex;
justify-content: center;
align-items: center;
input {
width: 16px;
height: 16px;
margin-right: 8px;
background: none;
}
input::before {
content: "";
display: block;
background-image: url("../../assets/intoApproval/top.png");
}
.approveContent {
position: absolute;
top: 50%;
background-color: #fafafa;
overflow-y: scroll;
}
.approveBottom {
width: 343px;
margin: 0 auto;
span {
display: block;
width: 100%;
font-family: PingFangSC-Semibold;
font-size: 15px;
color: #00469c;
height: 21px;
line-height: 21px;
margin: 16px 0;
img {
float: right;
}
}
textarea {
width: 343px;
height: 178px;
border-radius: 2px;
padding: 10px;
}
span::after {
content: "";
display: block;
position: relative;
left: 70px;
top: -17px;
width: 14px;
height: 14px;
background: url("../../assets/intoApproval/approv.png");
background-size: 14px 14px;
}
}
}
.approveContent {
position: absolute;
top: 50%;
background-color: #fafafa;
overflow-y: scroll;
}
.approveBottom {
width: 343px;
margin: 0 auto;
span {
display: block;
width: 100%;
.reject,
.same {
width: 175px;
height: 40px;
border-radius: 4px;
font-family: PingFangSC-Semibold;
font-size: 15px;
color: #00469c;
height: 21px;
line-height: 21px;
margin: 16px 0;
img {
float: right;
width: 13px;
height: 13px;
}
}
textarea {
width: 343px;
height: 178px;
border-radius: 2px;
padding: 10px;
.reject {
color: #656464;
border: 1px solid #656464;
}
span::after {
content: "";
display: block;
position: relative;
left: 70px;
top: -17px;
width: 14px;
height: 14px;
background: url("../../assets/intoApproval/approv.png");
background-size: 14px 14px;
.same {
color: #ffffff;
background: #00469c;
border: 1px solid #00469c;
}
}
.reject,
.same {
width: 175px;
height: 40px;
border-radius: 4px;
font-family: PingFangSC-Semibold;
font-size: 15px;
img {
width: 13px;
height: 13px;
.add-box {
.before {
border: 1px solid #fdb62f;
border-radius: 4px;
color: #fdb62f;
img{
width: 18px;
}
}
.next {
background: #1d3fff;
border-radius: 4px;
color: #fff;
img{
width: 18px;
}
}
}
}
.reject {
color: #656464;
border: 1px solid #656464;
}
.same {
color: #ffffff;
background: #00469c;
border: 1px solid #00469c;
.modal {
background-color: rgba(0, 0, 0, 0) !important;
}
}
.modal {
background-color: rgba(0, 0, 0, 0) !important;
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment