Commit 1016637d authored by 胡's avatar

fix

parent 329e9d2c
......@@ -11,5 +11,5 @@ module.exports = {
ocrPath:'"http://180.104.121.66:8088/r/api"',
fileUploadSvcPath:'"http://180.104.121.66:8088/r/api/app/fileUploadSvc?sysName=XCMG_UAT&apiName="',
appId: '"com.xcmg.app.dev"',
currentVersion: '"3.2.9"'
currentVersion: '"3.3.0"'
}
......@@ -2,21 +2,21 @@
<h-view id="batch-sign" class="public-style" :title="title">
<h-header class="bar-custom">
<div slot="left" class="h-header-btn">
<img src="@/assets/userBind/arrow.png" @click="$router.go(-1)" />
<img src="@/assets/userBind/arrow.png" @click="goBack()" />
</div>
<div slot="center" class="top-word">{{ title }}</div>
</h-header>
<scroll ref="scrollLists" :updateData="[prolists]" :pullUp="false">
<div class="hint-info">
<img src="@/assets/contractCreate/hint.png" />提示: 红色为已签署合同
</div>
<div class="scroll-box">
<div
class="box"
v-for="item of list"
:key="item.project_id"
@click="doCheck(item.project_id)"
>
<div class="box" v-for="item of list" :key="item.project_id">
<!-- 颜色 d6204b -->
<div class="name">
<img src="@/assets/login/contract.png" alt="icon" />
<img v-if="item.checked" src="@/assets/login/contract-red.png" alt="icon" />
<img v-else src="@/assets/login/contract.png" alt="icon" />
<span>{{ item.project_name }}</span>
</div>
<div>{{ item.project_number }}</div>
......@@ -24,10 +24,6 @@
</div>
</scroll>
<!-- <button class="submit">
<img src="@/assets/login/addUser.png" alt="自然人" /> 添加新用户
</button>-->
<bottom-tab class="add-box">
<tab-button class="before" @click.native="signContact">签署电子合同</tab-button>
<tab-button class="next" @click.native="submit">提交审核</tab-button>
......@@ -37,27 +33,84 @@
<script>
export default {
name: 'myBindUser',
name: 'batch-sign',
data() {
return {
prolists: [],
title: this.$route.query.name === 'confirmList' ? '批量签署电子合同' : '',
title: this.$route.query.name === 'confirmList' ? '批量签署电子合同' : '批量签署电子合同',
list: JSON.parse(window.localStorage.getItem('handleContact')),
checkList: [], // 需要进行签署的合同
}
},
mounted() {
this.checkSigned();
},
methods: {
// 检测已经签署的合同,进行过滤
async checkSigned() {
let url = process.env.basePath + 'batch_check_sign';
let data_class = this.$route.query.name === "confirmList" ? "LEASE_ITEM" : "PRJ_CONFIRM";
let param = { "master": this.list.map(item => ({ confirm_id: item.confirm_id, data_class })) };
hlsPopup.showLoading('请稍候');
let res = await this.$post(url, param);
this.hlsPopup.hideLoading();
if (res.result === "S") {
let checkList = res.lists.filter(ele => ele.signed_flag === 'N').map(ele => ele.confirm_id);
this.checkList = this.list.filter(ele => checkList.includes(ele.confirm_id));
// 加标识, checked为true 为 已签署
this.list = this.list.map(ele => {
ele.checked = !checkList.includes(ele.confirm_id);
return ele;
})
} else {
hlsPopup.showLongCenter(res.message);
}
},
// 提交
async submit() {
let data_class = this.$route.query.name === "confirmList" ? "LEASE_ITEM" : "PRJ_CONFIRM";
let confirm_list = this.list.filter(item => item.checked).map(item => ({ confirm_id: item.confirm_id, data_class, confirm_status: "APPROVED" }));
if (!confirm_list.length) return hlsPopup.showLongCenter("无可提交审核的合同");
let url = process.env.basePath + 'batch_do_confirm_bp';
let param = { master: { confirm_list } };
hlsPopup.showLoading('提交数据中');
let res = await this.$post(url, param);
this.hlsPopup.hideLoading();
if (res.result === 'S') {
this.hlsPopup.showSuccess('提交成功');
let successList = res.info.filter(item => item.status == 'S').map(item => item.confirm_id);
this.list = this.list.filter(item => !successList.includes(item.confirm_id));
window.localStorage.setItem('handleContact', JSON.stringify(this.list));
await this.checkSigned();
} else {
this.hlsPopup.showLongCenter(res.message);
}
},
// 签署
async signContact() {
if (!this.checkList.length) return hlsPopup.showLongCenter("无可需要签署的电子合同");
let url = process.env.basePath + 'batch_sign';
let data_class = this.$route.query.name === "confirmList" ? "LEASE_ITEM" : "PRJ_CONFIRM";
let param = {
"master": {
"project_id": this.list.map(item => item.project_id),
"bp_id": JSON.parse(window.localStorage.getItem('now_user_bp_bind_id')).bp_id
master: {
project_list: this.checkList.map(item => ({ project_id: item.project_id, data_class })),
bp_id: JSON.parse(window.localStorage.getItem('now_user_bp_bind_id')).bp_id
}
}
hlsPopup.showLoading('请稍候');
let res = await this.$post(url, param);
this.hlsPopup.hideLoading()
......@@ -71,12 +124,11 @@ export default {
hlsPopup.showLongCenter(res.message || res.info.msg)
}
},
doCheck(id) {
this.list = this.list.map(item => {
item.checked = item.project_id == id;
return item;
})
},
// 返回,清缓存
goBack() {
window.localStorage.removeItem("handleContact");
this.$router.go(-1);
}
},
}
</script>
......@@ -87,7 +139,24 @@ export default {
.scrollContent {
background-color: rgb(242, 242, 242);
}
.hint-info {
width: 100%;
height: 36px;
font-family: PingFangSC-Regular;
font-size: 14px;
color: #fcc800;
letter-spacing: 0.5px;
background-color: #faf5e0;
display: flex;
align-items: center;
img {
width: 16px;
height: 16px;
margin-left: 17px;
margin-right: 12px;
}
}
.add-box {
.before {
border: 1px solid #fdb62f;
......
......@@ -53,13 +53,10 @@
<span :style="{ color: chooseAll ? '#1d3fff' : 'rgb(212,214,212)' }">全选</span>
</div>
<button class="cancel" @click="cancelRadio">× 取消批量</button>
<button
class="sign"
@click="$router.push({ path: '/batchSign', query: { name: 'confirmList' } })"
>签订电子合同</button>
<button class="sign" @click="sign">签订电子合同</button>
</div>
<button v-show="!isRadio" class="go-radio" @click="isRadio = true">
<button v-show="!tabNum && !isRadio" class="go-radio" @click="isRadio = true">
<img src="@/assets/login/write.png" alt="icon" />
<span>批量签署</span>
</button>
......@@ -120,6 +117,12 @@ export default {
})
},
methods: {
sign() {
let list = this.showList.filter(item => item.checked);
if (!list.length) return hlsPopup.showLongCenter('请选择合同');
window.localStorage.setItem('handleContact', JSON.stringify(list));
this.$router.push({ path: '/batchSign', query: { name: 'confirmList' } });
},
clickRadio(item) {
item.checked = !item.checked;
......@@ -181,7 +184,8 @@ export default {
}
},
getTabNum(i) {
this.tabNum = i
this.tabNum = i;
this.isRadio = false;
this.$refs.scroll.update(false)
this.$refs.scroll.scrollToTop()
},
......@@ -275,7 +279,7 @@ export default {
display: flex;
justify-content: center;
align-items: center;
font-size: 0.15rem;
font-size: 0.25rem;
img {
width: 16px;
margin-right: 4px;
......
<template>
<h-view id="repay-details" class="public-style">
<h-header :proportion="[5,1,1]" class="bar-custom">
<h-header :proportion="[5, 1, 1]" class="bar-custom">
<div slot="left" class="h-header-btn">
<img src="@/assets/userBind/arrow.png" @click="$routeGo()">
<img src="@/assets/userBind/arrow.png" @click="$routeGo()" />
<span>合同明细</span>
</div>
</h-header>
......@@ -23,15 +23,15 @@
</item>
<item>
<div slot="name">产品名称</div>
<div slot="content">{{ detailInfo.division_n?detailInfo.division_n:"暂无数据" }}</div>
<div slot="content">{{ detailInfo.division_n ? detailInfo.division_n : "暂无数据" }}</div>
</item>
<item>
<div slot="name">产品型号</div>
<div slot="content" >{{ detailInfo.product_code?detailInfo.product_code:"暂无数据" }}</div>
<div slot="content">{{ detailInfo.product_code ? detailInfo.product_code : "暂无数据" }}</div>
</item>
<item>
<div slot="name">合同金额</div>
<div slot="content">{{ detailInfo.total_price|currency }}</div>
<div slot="content">{{ detailInfo.total_price | currency }}</div>
</item>
<item>
<div slot="name">商务政策</div>
......@@ -41,18 +41,15 @@
<div slot="name">租赁物数量</div>
<div slot="content">{{ detailInfo.product_num }}</div>
</item>
</list-item>
<div class="header">设备清单</div>
<scroll
ref="scroll" :updateData="[lists]" :pullUp="true"
@pullingUp="getEquipment">
<scroll ref="scroll" :updateData="[lists]" :pullUp="true" @pullingUp="getEquipment">
<list-item :item-height="104" class="equipment-list">
<item v-for="(item,index) in lists" :proportion="[2,1]" :key="index">
<item v-for="(item,index) in lists" :proportion="[2, 1]" :key="index">
<div slot="name" class="parameters">
<div class="list">
<p>设备识别号</p>
<span class="bold">{{ item.product_code }}-{{ index+1 |lengthCheck }}</span>
<span class="bold">{{ item.product_code }}-{{ index + 1 | lengthCheck }}</span>
</div>
<div class="list">
<p>发动机号</p>
......@@ -68,15 +65,19 @@
</div>
</div>
<div slot="content">
<span v-if="item.overdue_times!=0" :class="['status','red']">逾期{{ item.overdue_times }}</span>
<span
v-if="item.overdue_times != 0"
:class="['status', 'red']"
>逾期{{ item.overdue_times }}</span>
<div class="plan" @click="toRepayPlan(item.contract_id)">
<img src="@/assets/contractRepayment/plan.png" alt="">
<img src="@/assets/contractRepayment/plan.png" alt />
<span>还款计划</span>
</div>
</div>
</item>
</list-item>
</scroll></h-content>
</scroll>
</h-content>
</h-view>
</template>
......@@ -94,7 +95,7 @@ export default {
}
},
},
data () {
data() {
return {
pagenum: 1,
detailInfo: {
......@@ -112,7 +113,7 @@ export default {
},
computed: {},
watch: {},
beforeRouteEnter (to, from, next) {
beforeRouteEnter(to, from, next) {
next(vm => {
if (from.name === 'ContractRepayment') {
vm.pagenum = 1
......@@ -123,7 +124,7 @@ export default {
})
},
methods: {
getEquipment () {
getEquipment() {
let vm = this
let url = process.env.basePath + 'con_equip_list'
let param = {
......@@ -157,7 +158,7 @@ export default {
}
})
},
getDetail () {
getDetail() {
let vm = this
let url = process.env.basePath + 'con_repayment_detial'
let param = {
......@@ -173,7 +174,7 @@ export default {
}
})
},
toRepayPlan (e) {
toRepayPlan(e) {
this.$router.push({
name: 'RepayPlan',
params: {
......@@ -186,18 +187,18 @@ export default {
</script>
<style lang='less' >
#repay-details {
.status{
margin-bottom:20px;
.status {
margin-bottom: 20px;
display: inline-block;
}
.red{
color: red;
border-bottom: 1px solid red;
}
.blue{
color: blue;
border-bottom: 1px solid blue;
}
.red {
color: red;
border-bottom: 1px solid red;
}
.blue {
color: blue;
border-bottom: 1px solid blue;
}
.h-header {
background-color: @headerColor;
.h-header-btn {
......@@ -225,10 +226,10 @@ export default {
line-height: 40px;
font-family: PingFangSC-Semibold;
font-size: 14px;
color: #21254C;
color: #21254c;
font-weight: 700;
text-indent: 1em;
border-bottom: 1px solid #F1F0F5;
border-bottom: 1px solid #f1f0f5;
&:before {
content: "";
......@@ -244,8 +245,8 @@ export default {
.invoice {
margin-bottom: 0px;
.hls-item{
.contents{
.hls-item {
.contents {
.add-name {
font-family: PingFangSC-Regular;
font-size: 14px;
......@@ -255,7 +256,7 @@ export default {
.add-content {
font-family: PingFangSC-Regular;
font-size: 14px;
color: rgba(56,63,69,0.60);
color: rgba(56, 63, 69, 0.6);
}
}
}
......@@ -266,14 +267,14 @@ export default {
background-color: transparent;
.hls-item {
border-top: 1px solid #D9DBDF;
border-bottom: 1px solid #D9DBDF;
border-top: 1px solid #d9dbdf;
border-bottom: 1px solid #d9dbdf;
background-color: #fff;
margin-bottom: 10px;
.contents {
padding-top: 8px;
.add-name{
.add-name {
display: flex;
flex-direction: column;
......@@ -283,23 +284,23 @@ export default {
.list {
display: flex;
margin-bottom:0;
margin-bottom: 0;
p {
font-family: PingFangSC-Regular;
font-size: 13px;
color: rgba(56,63,69,0.60);
color: rgba(56, 63, 69, 0.6);
letter-spacing: 0.4px;
text-align: right;
flex: 1;
}
span {
flex:1;
flex: 1;
margin-left: 15px;
font-family: PingFangSC-Regular;
font-size: 13px;
color: #383F45;
color: #383f45;
letter-spacing: 0.4px;
}
......@@ -316,7 +317,7 @@ export default {
position: relative;
width: 100px;
height: 30px;
background: rgba(29, 63, 255,.2);
background: rgba(29, 63, 255, 0.2);
border-radius: 4px;
img {
......@@ -337,7 +338,6 @@ export default {
}
}
}
}
}
}
......@@ -360,7 +360,7 @@ export default {
@media (device-width: 375px) and (device-height: 812px) and (-webkit-min-device-pixel-ratio: 3) {
.platform-ios {
#repay-details{
#repay-details {
.scrollContent {
// padding-top: 3.72rem;
}
......@@ -370,7 +370,7 @@ export default {
// iPhoneXR适配
@media (device-width: 414px) and (device-height: 896px) {
.platform-ios {
#repay-details{
#repay-details {
.scrollContent {
// padding-top: 3.72rem;
}
......
......@@ -7,7 +7,7 @@
</div>
</h-header>
<div class="tab-style has-header">
<div :class="{ 'done': num === 1, 'undone': num !== 1 }" @click="num = 1; isRadio = false">
<div :class="{ 'done': num === 1, 'undone': num !== 1 }" @click="num = 1; isRadio = false">
<img :src="num === 1 ? check1 : uncheck1" />
<span>待确认</span>
</div>
......@@ -80,10 +80,7 @@
<span :style="{ color: chooseAll ? '#1d3fff' : 'rgb(212,214,212)' }">全选</span>
</div>
<button class="cancel" @click="cancelRadio">× 取消批量</button>
<button
class="sign"
@click="signContract"
>签订电子合同</button>
<button class="sign" @click="signContract">签订电子合同</button>
</div>
<button v-show="num == 1 && !isRadio" class="go-radio" @click="isRadio = true">
......@@ -188,21 +185,21 @@ export default {
methods: {
signContract() {
let list = this.showLists.filter(item => item.checked);
if(!list.length) return hlsPopup.showLongCenter('请选择合同');
if (!list.length) return hlsPopup.showLongCenter('请选择合同');
window.localStorage.setItem('handleContact', JSON.stringify(list));
this.$router.push({ path: '/batchSign', query: { name: 'confirmList'}});
this.$router.push({ path: '/batchSign', query: { name: 'contract' } });
},
clickRadio(item) {
item.checked = !item.checked;
this.chooseAll = this.showLists.every(item => item.checked);
},
allChoose(status) {
this.chooseAll = status;
allChoose(status) {
this.chooseAll = status;
this.showLists = this.showLists.map(item => {
item.checked = status;
return item;
});
});
},
cancelRadio() {
this.isRadio = false; // 关闭多选菜单
......@@ -512,7 +509,7 @@ export default {
display: flex;
justify-content: center;
align-items: center;
font-size: 0.15rem;
font-size: 0.25rem;
img {
width: 16px;
margin-right: 4px;
......@@ -715,6 +712,10 @@ export default {
.scrollContent {
padding-top: 3.8rem;
}
.check-bottom {
bottom: 32px;
}
}
}
}
......@@ -739,6 +740,10 @@ export default {
color: #888c8f;
}
}
.check-bottom {
bottom: 32px;
}
}
}
}
......
......@@ -668,7 +668,7 @@ export default {
let vm = this
let url = process.env.basePath + 'prj_cdd_check_update'
let param = {
document_id: window.localStorage.bp_id,
document_id: JSON.parse(window.localStorage.getItem('handleUser')).bp_id,
tab_group: 'HLS_ORG_AUTH',
}
vm.hlsPopup.showLoading('请稍候')
......
......@@ -14,7 +14,7 @@
<!-- <div :class="['top',(multipleRole!=='GUTA'&&user_bp_type!=='GUTA')?'has':'antiHas']" style="margin-top:-1px;"> -->
<div class="top" style="margin-top: -1px">
<div class="card-top" :style="{height: nowBind.bp_type==='MANAGER'?'170px' : '2.4rem'}">
<div class="card-top" :style="{height: nowBind.bp_type==='MANAGER'?'3.4rem' : '2.4rem'}">
<img :src="upLoadObj" @click="checkType" />
<div class="sign">
<span>{{ user_phone }}</span>
......
......@@ -30,9 +30,10 @@
:class="['normal', { unbind: item.bp_status === 'APPROVED' }]"
@click.stop="doStatus(item)"
>
<span
<!-- <span
style="font-size: .3rem;"
>{{ item.bp_status === 'APPROVED' ? '×' : '' }}</span>
>{{ item.bp_status === 'APPROVED' ? '×' : '' }}</span> -->
<img v-if="item.bp_status === 'APPROVED'" src="../../assets/login/cha.png" alt="cha">
{{ item.bp_status === 'APPROVED' ? ' 解绑' : item.bp_status === 'NEW' ? '待提交' : item.bp_status_n }}
</div>
</div>
......@@ -369,6 +370,14 @@ export default {
.normal {
background-color: #1d3fff;
color: white;
display: flex;
justify-content: center;
align-items: center;
img {
height: 12px;
margin-right: 3px;
}
}
.unbind {
......
......@@ -117,7 +117,7 @@ export default {
let vm = this
let url = process.env.basePath + 'payment_prj_list_query'
let param = {
bp_id: window.localStorage.getItem('bp_id'),
bp_id: JSON.parse(window.localStorage.getItem('now_user_bp_bind_id')).bp_id,
}
hlsPopup.showLoading('请稍候')
vm.$post(url, param).then(function (res) {
......
......@@ -208,7 +208,7 @@ export default {
'&index' +
`'${randomString}'`
let param = {
bp_id: window.localStorage.getItem('bp_id'),
bp_id: JSON.parse(window.localStorage.getItem('now_user_bp_bind_id')).bp_id,
searchInput: vm.keyWords,
}
hlsPopup.showLoading('请稍候')
......
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no,width=device-width,viewport-fit=cover"><meta name=format-detection content="telephone=no"><meta name=format-detection content="email=no"><meta name=apple-mobile-web-app-capable content=yes><meta name=apple-mobile-web-app-status-bar-style content=black><script type=text/javascript src=./static/vuePlatform.js></script><script type=text/javascript src=./static/prototype.js></script><script type=text/javascript src=./cordova.js></script><script type=text/javascript src="http://api.map.baidu.com/api?v=2.0&ak=Eoo0EtfjYCdAy7r8D19gZ0vMojdZpHqU"></script><title>徐工金服</title><link href=./static/css/app.e7e2377302829c9967e8db68dae2bfee.css rel=stylesheet></head><body><div id=app-box></div><script type=text/javascript src=./static/js/manifest.0220c1f499aeb5db00f1.js></script><script type=text/javascript src=./static/js/vendor.ab3a82a5a65cc1afd48b.js></script><script type=text/javascript src=./static/js/app.dea6ba33c7164ae80cb8.js></script></body></html>
\ No newline at end of file
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