Commit f7cfd082 authored by 郑娟's avatar 郑娟

审批流、融租方案确认、融租方案创建设备清单新增

parent 645b95c0
......@@ -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.8.9"'
currentVersion: '"4.0.4"'
}
......@@ -44,7 +44,7 @@ export default {
return {
prolists: [],
title: this.$route.query.name === 'confirmList' ? '批量签署电子合同' : '批量签署征信授权书',
buttonName: this.$route.query.name === 'confirmList' ? '签署电子合同' : '签署征信授权',
buttonName: this.$route.query.name === 'confirmList' ? '签署电子文件' : '签署电子文件',
list: JSON.parse(window.localStorage.getItem('handleContact')),
checkList: [], // 需要进行签署的合同
......
......@@ -327,7 +327,7 @@ export default {
}
},
changePage () {
window.localStorage.setItem('formPage', 'sale')
window.localStorage.setItem('fromPage', 'sale')
this.$router.push({
name: 'SalesInfo',
})
......
......@@ -20,6 +20,11 @@
<span class="line" />
<div class="item">
<span>3</span>
<p>设备清单</p>
</div>
<span class="line" />
<div class="item">
<span>4</span>
<p>附件信息</p>
</div>
</div>
......@@ -34,6 +39,11 @@
<p>租赁信息</p>
</div>
<span class="line"/>
<div class="item">
<img src="@/assets/contractCreate/finished.png">
<p>设备清单</p>
</div>
<span class="line"/>
<div class="item">
<img src="@/assets/contractCreate/finished.png">
<p>附件信息</p>
......@@ -715,7 +725,9 @@ export default {
vm.$post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.bp_agent_id = res.info.bp_agent_id
if (res.info) {
vm.bp_agent_id = res.info.bp_agent_id ? res.info.bp_agent_id : ''
}
} else {
hlsPopup.showLongCenter(res.message)
}
......@@ -1164,6 +1176,8 @@ export default {
}
p {
margin-top: 10px;
width: 9vw;
text-align: center;
}
}
.item:nth-of-type(1) {
......
......@@ -19,7 +19,12 @@
</div>
<span class="line" />
<div class="item">
<span v-if="!isReadOnly">3</span>
<img src="@/assets/contractCreate/finished.png" >
<p>设备清单</p>
</div>
<span class="line" />
<div class="item">
<span v-if="!isReadOnly">4</span>
<img v-if="isReadOnly" src="@/assets/contractCreate/finished.png" >
<p style="color: #383F45;">附件信息</p>
</div>
......@@ -748,9 +753,11 @@ export default {
}
p {
margin-top: 10px;
width: 9vw;
text-align: center;
}
}
.item:nth-of-type(3) {
.item:nth-of-type(4) {
font-family: PingFangSC-Semibold;
font-size: 12px;
color: rgb(56, 63, 69);
......
This diff is collapsed.
......@@ -82,7 +82,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>
<div v-show="num == 1 && !isRadio" class="button-box">
......
......@@ -119,7 +119,7 @@
>
</item>
<item>
<div slot="name" >是否提供挂靠协议</div>
<div slot="name" :class="info.associate_flag==='Y'?'required':''">是否提供挂靠协议</div>
<input
slot="content"
v-model="info.associate_agreement_n"
......@@ -129,7 +129,7 @@
>
</item>
<item>
<div slot="name" >租赁物是否办理抵押</div>
<div slot="name" :class="info.associate_flag==='Y'?'required':''">租赁物是否办理抵押</div>
<input
slot="content"
v-model="info.lease_mortgage_n"
......@@ -1059,6 +1059,10 @@ export default {
hlsPopup.showLongCenter('请输入开票日期')
} else if (this.info.associate_flag === 'Y' && !this.info.associate_company) {
hlsPopup.showLongCenter('请输入挂靠单位全称')
} else if (this.info.associate_flag === 'Y' && !this.info.associate_agreement) {
hlsPopup.showLongCenter('请选择是否提供挂靠协议')
} else if (this.info.associate_flag === 'Y' && !this.info.lease_mortgage) {
hlsPopup.showLongCenter('请选择租赁物是否办理抵押')
} else if (!this.info.gps_flag) {
hlsPopup.showLongCenter('请选择gps是否安裝')
} else {
......
......@@ -53,7 +53,7 @@
label="是否挂靠" @click="showPicker('associate_flag',pi)" /> -->
<!-- 挂靠单位全称 -->
<!-- <Field
v-model="p.Associate_company" :readonly="showFlag"
v-model="p.associate_company" :readonly="showFlag"
:required="p.associate_flag==='Y' && editFlag" :rules="[{ required: p.associate_flag==='Y' && editFlag,message:'请输入'}]" input-align="right"
label="挂靠单位全称"/> -->
<!-- 是否提供挂靠协议 -->
......
<!-- 承租人 -->
<template>
<list-item :item-height="44">
<!-- <item v-for="(ele, i) of formdata" :key="ele.title">
<div slot="name" class="font-color">{{ ele.title }}</div>
<span slot="content" v-if="ele.type === 'currency'">{{ lesseeData[ele.prop] || currency }}</span>
<span slot="content" v-else-if="ele.type === 'bool'">{{ lesseeData[ele.prop] === 'Y' ? '是' : '否' }}</span>
<span slot="content" v-else="ele.type === 'text'">{{ lesseeData[ele.prop] }}</span>
</item> -->
<div>
<!-- <div class="equipment-list-fund">
<span />
<p>设备清单</p>
</div> -->
<Collapse v-model="equipActive">
<CollapseItem v-for="(item, index) of equipmentData" :key="index">
<template #title>
<div class="equipment">
<!-- <div class="left">
<span>
{{index+1}}
</span>
</div> -->
<div class="center">
<span>租赁物信息</span>
<p>
设备识别号
<span>{{ item.product_code }}-{{ (index + 1) | lengthCheck }}</span>
</p>
</div>
</div>
</template>
<list-item :item-height="44" class="second-part">
<item>
<div slot="name" class="font-color">车架号</div>
<input slot="content" v-model="item.frame_number" readonly>
</item>
<item>
<div slot="name" class="font-color">发动机号</div>
<input slot="content" v-model="item.engine" readonly>
</item>
<item>
<div slot="name" class="font-color">合格证编号</div>
<input slot="content" v-model="item.certificate_number" readonly>
</item>
<item>
<div slot="name" class="font-color">产品型号</div>
<input slot="content" v-model="item.product_code" readonly>
</item>
<item>
<div slot="name" class="font-color">发车日期</div>
<input slot="content" v-model="item.departure_date" readonly>
</item>
<item>
<div slot="name" class="font-color">开票日期</div>
<input slot="content" v-model="item.invoice_date" readonly>
</item>
<item>
<div slot="name" class="font-color">是否上牌</div>
<input slot="content" v-model="item.register_flag_n" readonly>
</item>
<item>
<div slot="name" class="font-color">是否挂靠</div>
<input slot="content" v-model="item.associate_flag_n" readonly>
</item>
<item>
<div slot="name" class="font-color">挂靠单位名称</div>
<input slot="content" v-model="item.associate_company" readonly>
</item>
<item>
<div slot="name" class="font-color">是否提供挂靠协议</div>
<input slot="content" v-model="item.associate_agreement_n" readonly>
</item>
<item>
<div slot="name" class="font-color">租赁物是否办理抵押</div>
<input slot="content" v-model="item.lease_mortgage_n" readonly>
</item>
<item>
<div slot="name" class="font-color">gps是否安装</div>
<input slot="content" v-model="item.gps_flag_n" readonly>
</item>
<item>
<div slot="name" class="font-color">设备是否办理保险</div>
<input slot="content" v-model="item.insurance_flag_n" readonly>
</item>
</list-item>
</CollapseItem>
</Collapse>
</div>
</list-item>
</template>
<script>
import { Collapse, CollapseItem } from 'vant'
import 'vant/lib/collapse/style'
import 'vant/lib/collapse-item/style'
export default {
components: {
Collapse,
CollapseItem,
},
props: ["equipmentData"],
data() {
return {
equipActive: ['0']
}
},
computed: {
formdata() {
return this.createForm()
}
},
methods: {
factory(arr) {
let outArr = []
if (arr.length) {
arr.forEach(ele => {
let [title, prop, type] = ele
outArr.push({
title: title || '',
prop: prop || 'fdf',
type: type || 'text'
})
});
}
return outArr
},
createForm() {
let formArr = [
['车架号', 'frame_number', 'text'],
['发动机号', 'engine', 'text'],
['合格证编码', 'certificate_number', 'text'],
['产品型号', 'product_code', 'text'],
['发车日期', 'departure_date', 'date'],
['开票日期', 'invoice_date', 'date'],
['是否上牌', 'register_flag_n', 'text'],
['是否挂靠', 'associate_flag_n', 'text'],
['挂靠单位名称', 'associate_company', 'text'],
['是否提供挂靠协议', 'associate_agreement_n', 'text'],
['租赁物是否办理抵押', 'lease_mortgage_n', 'text'],
['gps是否安装', 'gps_flag_n', 'text'],
['设备是否办理保险', 'insurance_flag_n', 'text'],
]
let nowForm = formArr
return this.factory(nowForm)
}
}
}
</script>
<style lang="less" scoped>
.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;
}
}
.equipment {
// width: 359px;
// height: 72px;
// background-color: #fff;
margin: 0 auto;
display: flex;
.left {
flex: 1;
span {
display: block;
width: 30px;
height: 30px;
// background-color: #e8e9ed;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
margin-left: 10px;
margin-top: 8px;
img {
width: 11px;
height: 14px;
}
}
}
.center {
flex: 6;
span:first-child {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #383f45;
letter-spacing: 0.43px;
margin-left: 10px;
margin-top: 12px;
}
.status {
display: inline-block;
width: 46px;
height: 16px;
text-align: center;
line-height: 16px;
font-family: PingFangSC-Medium;
font-size: 12px;
color: #ffffff;
letter-spacing: 0;
margin-left: 21px;
margin-top: 12px;
}
p {
font-family: PingFangSC-Regular;
font-size: 13px;
color: rgba(56, 63, 69, 0.6);
letter-spacing: 0.4px;
margin-left: 10px;
margin-top: 10px;
span {
font-family: Helvetica;
font-size: 13px;
color: rgba(56, 63, 69, 0.6);
}
}
}
.right {
flex: 1;
display: flex;
align-items: center;
img {
width: 13px;
height: 13px;
}
}
}
</style>
\ No newline at end of file
......@@ -11,13 +11,13 @@
<h-content style="overflow-y: auto;">
<!-- 审批历史 -->
<div :class="[history_Coll ? 'history_active' : '']" class="history" @click="triggerHistory">
<History :isOpen="history_Coll" :historyData="historyData"/>
<History :isOpen="history_Coll" :historyData="historyData" />
</div>
<!-- 销售信息折叠 -->
<Collapse v-model="collActiveTab">
<CollapseItem title="销售信息" name="1">
<Sale :lesseeData="lesseeData"/>
<Sale :lesseeData="lesseeData" />
</CollapseItem>
</Collapse>
......@@ -33,26 +33,35 @@
商业伙伴
</div>
<div :class="{ 'done': tabNum === 4, 'undone': tabNum !== 4 }" @click="tabNum = 4;">
设备清单
</div>
<div :class="{ 'done': tabNum === 5, 'undone': tabNum !== 5 }" @click="tabNum = 5;">
附件
</div>
</div>
<div v-if="tabNum === 1" class="z100">
<Lessee :lesseeData="lesseeData"/>
<Lessee :lesseeData="lesseeData" />
</div>
<div v-show="tabNum === 2" class="z100">
<Plan ref="myform_30" :planData="planData" :editFlag="isEditType" :showFlag="isShowType"/>
<Plan ref="myform_30" :planData="planData" :editFlag="isEditType" :showFlag="isShowType" />
</div>
<div v-if="tabNum === 3" class="z100">
<Partner :bplist="bplist"/>
<Partner :bplist="bplist" />
</div>
<div v-if="tabNum === 4" class="z100">
<Appendix ref="myappendix" :appendixData="appendixData" @upData="getData"/>
<Equipment v-if="equipmentData.length>0" :equipmentData="equipmentData" />
<Empty v-else description="无"/>
</div>
<div v-if="tabNum === 5" class="z100">
<Appendix ref="myappendix" :appendixData="appendixData" @upData="getData" />
<div v-show="isTodo" class="approveBottom">
<span> 审批意见 </span>
<textarea v-model="confirm_note" cols="8" rows="5" placeholder="请输入" />
</div>
<div v-show="isTodo" class="foot-bottom">
<button v-if="this.$route.params.node_sequence_num === '20'" style="background-color: orange; color: white;"
@click="getSign20">主机厂签约</button>
<button class="success" @click="approv('1')">通 过</button>
<button class="refused" @click="approv('2')">拒 绝</button>
</div>
......@@ -62,15 +71,17 @@
</template>
<script>
import { Collapse, CollapseItem } from 'vant'
import { Collapse, CollapseItem, Empty } from 'vant'
import 'vant/lib/collapse/style'
import 'vant/lib/collapse-item/style'
import 'vant/lib/empty/style'
import Plan from './components/plan.vue'
import Sale from './components/Sale.vue'
import Partner from './components/Partner.vue'
import Appendix from './components/Appendix.vue'
import Lessee from './components/Lessee.vue'
import History from './components/History.vue'
import Equipment from './components/equipment.vue'
import axios from 'axios'
export default {
......@@ -83,14 +94,17 @@ export default {
Appendix,
Lessee,
History,
Equipment,
Empty,
},
data () {
data() {
return {
tabNum: 1,
collActiveTab: ['2'],
history_Coll: false,
confirm_note: '',
bplist: [], // 商业伙伴信息
equipmentData: [], // 设备清单
lesseeData: {}, // 承租人, 销售信息
planData: [], // 商务方案
historyData: [],
......@@ -98,23 +112,83 @@ export default {
isTodo: true,
isEditType: false, // 30节点可编辑合同类型、开票类型
isShowType: false, // 75节点可见合同类型、开票类型
isSign20: false, // 主机厂签约标志
}
},
beforeRouteEnter (to, from, next) {
next(vm => {
})
},
mounted () {
mounted() {
console.log(this.$route.params)
this.isEditType = this.$route.params.node_sequence_num === '30'
this.isShowType = this.$route.params.node_sequence_num === '75'
this.isTodo = this.$route.params.type === 'todo'
this.getHistory()
this.getData()
this.getEquipList()
},
methods: {
getData () {
getEquipList () {
let vm = this
let url = process.env.basePath + 'prj_equip_list_query'
let param = {
project_id: this.$route.params.document_id,
pagesize: 1,
pagenum: 999,
}
hlsPopup.showLoading('请稍候')
vm.$post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.equipmentData = res.lists
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
async getSign20 () {
let vm = this
hlsPopup.showLoading('请稍候')
let url1 = process.env.basePath + 'zj_wfl_20_sign_check'
let param1 = {
project_id: this.$route.params.document_id,
}
let res = await vm.hlsHttp.post(url1, param1)
hlsPopup.hideLoading()
if (res.result === 'S') {
let flag_s = true // 不进行签约 标志
if (res.lists.length > 0) {
res.lists.map(item => {
if (item.signed_flag === 'N') {
flag_s = false
}
})
}
if (flag_s) {
this.hlsPopup.showLongCenter('已签约或无需签约')
} else {
let param = {
master: {
project_id: this.$route.params.document_id,
},
}
console.log(param)
let url = process.env.basePath + 'zj_wfl_20_auto_sign'
console.log(url)
this.hlsPopup.showLoading('请稍候')
this.hlsHttp.post(url, param).then((res) => {
this.hlsPopup.hideLoading()
if (res.result === 'S') {
this.isSign20 = true
this.hlsPopup.showLongCenter(res.message)
} else {
this.hlsPopup.showLongCenter(res.message)
}
})
}
} else {
this.hlsPopup.showLongCenter(res.message)
}
},
getData() {
let project_id = this.$route.params.document_id
this.hlsPopup.showLoading('请稍候')
let url = $config.basePath + 'prj_project_info_query'
......@@ -143,13 +217,13 @@ export default {
}
})
},
getHistory () {
getHistory() {
this.historyData = this.$route.params.approve_history_lists.reverse()
},
triggerHistory () {
triggerHistory() {
this.history_Coll = !this.history_Coll
},
async approv (action_type) {
async approv(action_type) {
if (this.isEditType) { // 30节点编辑后的校验
let isSave = window.localStorage.getItem('myform_30_isSave')
let flag = await this.$refs.myform_30.validate()
......@@ -165,6 +239,10 @@ export default {
}
}
}
if (!this.isSign20 && this.$route.params.node_sequence_num === '20') {
hlsPopup.showLongCenter('请进行主机厂签约!')
return
}
let params = this.$route.params
let param = {
master: {
......@@ -333,7 +411,7 @@ export default {
button {
height: 40px;
padding: 10px 1rem;
padding: 0 5vw;
border-radius: 10px;
}
......
This diff is collapsed.
......@@ -1412,7 +1412,7 @@ export default {
return
}
for (var key1 in vm.lastInfo) {
if (!vm.lastInfo[key1] && key1 !== 'phone' && !key.includes('_c') && !key.includes('business_term_')) {
if (!vm.lastInfo[key1] && key1 !== 'phone' && !key1.includes('_c') && !key1.includes('business_term_')) {
console.log('key', key1)
switch (key1) {
case 'bp_type':
......
......@@ -638,9 +638,6 @@ export default {
}
})
},
created () {
this.getDrivingLicenseType()
},
updated () {
let myArea = document.querySelectorAll('textarea')
myArea.forEach(i => {
......@@ -737,7 +734,7 @@ export default {
let res = await vm.$post(url, param)
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
Object.assign(vm.hauseInfo, res.info)
Object.assign(vm.hauseInfo, res.lists)
// vm.hauseInfo = res.info
return true
} else {
......@@ -760,7 +757,7 @@ export default {
// vm.hlsPopup.hideLoading()
console.log('行驶证信息查询', res)
if (res.result === 'S') {
Object.assign(vm.carInfo, res.info)
Object.assign(vm.carInfo, res.lists)
// vm.carInfo = res.info
return true
} else {
......@@ -781,7 +778,7 @@ export default {
// vm.hlsPopup.hideLoading()
console.log('不动产权证查询', res)
if (res.result === 'S') {
Object.assign(vm.propertyInfo, res.info)
Object.assign(vm.propertyInfo, res.lists)
return true
// vm.propertyInfo = res.info
} else {
......@@ -1162,6 +1159,7 @@ export default {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
console.log('load_picture....1111 ', res.lists)
if (res.lists.length === 0) return
res.lists.forEach(item => {
item['url'] = process.env.filePath + 'attachment_id=' + item.attachment_id + '&access_token=' + window.localStorage.access_token
})
......
......@@ -133,6 +133,7 @@ const ContractCreateList = resolve => require.ensure([], () => { resolve(require
const SalesInfo = resolve => require.ensure([], () => { resolve(require('@/pages/contractCreate/sales-info')) }, 'contractCreate')
const PickLessee = resolve => require.ensure([], () => { resolve(require('@/pages/contractCreate/pick-lessee')) }, 'contractCreate')
const CreateBaseInfo = resolve => require.ensure([], () => { resolve(require('@/pages/contractCreate/create-base-info')) }, 'contractCreate')
const CreateEquipInfo = resolve => require.ensure([], () => { resolve(require('@/pages/contractCreate/create-equip-info')) }, 'contractCreate')
const CreateRentInfo = resolve => require.ensure([], () => { resolve(require('@/pages/contractCreate/creat-rent-info')) }, 'contractCreate')
const CreateEnclosureInfo = resolve => require.ensure([], () => { resolve(require('@/pages/contractCreate/create-enclosure-info')) }, 'contractCreate')
const previewPdf = resolve => require.ensure([], () => { resolve(require('@/pages/contractSigning/previewPdf')) }, 'contractSigning')
......@@ -347,6 +348,7 @@ export default new Router({
{path: '/sales-info', component: SalesInfo, name: 'SalesInfo', meta: {keepAlive: true}},
{path: '/pick-lessee', component: PickLessee, name: 'PickLessee', meta: {keepAlive: true}},
{path: '/create-base-info', component: CreateBaseInfo, name: 'CreateBaseInfo', meta: {keepAlive: true}},
{path: '/create-equip-info', component: CreateEquipInfo, name: 'CreateEquipInfo', meta: {keepAlive: false}},
{path: '/create-rent-info', component: CreateRentInfo, name: 'CreateRentInfo', meta: {keepAlive: true}},
{path: '/create-enclosure-info', component: CreateEnclosureInfo, name: 'CreateEnclosureInfo', meta: {keepAlive: true}},
{path: '/previewPdf', component: previewPdf, name: 'previewPdf', meta: {keepAlive: false}},
......
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