You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1039 lines
32 KiB
1039 lines
32 KiB
3 years ago
|
<template>
|
||
|
<view class="evan-form-show">
|
||
|
<view class="bottom-border">
|
||
|
<view class="left-border"><text class="mgl10">项目信息</text></view>
|
||
|
</view>
|
||
|
<uni-forms :value="formData" ref="form" validate-trigger="bind" err-show-type="toast">
|
||
|
<uni-forms-item name="code" :label="fromData[0]&&fromData[0].name?fromData[0].name:'客户编号'">
|
||
|
<uni-easyinput disabled="" type="text" :inputBorder="true" v-model="WorkDepartmentFrom.code" :placeholder="fromData[0]&&fromData[0].prompt?fromData[0].prompt:'请输入'"></uni-easyinput>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item name="name" :label="fromData[1]&&fromData[1].name?fromData[1].name:'客户名称'">
|
||
|
<uni-easyinput disabled type="text" :inputBorder="true" v-model="WorkDepartmentFrom.name" :placeholder="fromData[1]&&fromData[1].prompt?fromData[1].prompt:'客户名称'"></uni-easyinput>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item name="time" :label="fromData[7]&&fromData[7].name?fromData[7].name:'法人代表'">
|
||
|
<uni-easyinput disabled type="text" :inputBorder="true" v-model="WorkDepartmentFrom.legalName" :placeholder="fromData[7]&&fromData[7].prompt?fromData[7].prompt:'请输入'"></uni-easyinput>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item name="phone" :label="fromData[2]&&fromData[2].name?fromData[2].name:'联系电话'">
|
||
|
<uni-easyinput disabled type="text" :inputBorder="true" v-model="WorkDepartmentFrom.legalPhone" :placeholder="fromData[2]&&fromData[2].prompt?fromData[2].prompt:'联系电话'"></uni-easyinput>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item name="time" :label="fromData[8]&&fromData[8].name?fromData[8].name:'联系人'">
|
||
|
<uni-easyinput disabled type="text" :inputBorder="true" v-model="WorkDepartmentFrom.linkman" :placeholder="fromData[8]&&fromData[8].prompt?fromData[8].prompt:'请输入'"></uni-easyinput>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item name="phone" :label="fromData[4]&&fromData[4].name?fromData[4].name:'联系电话'">
|
||
|
<uni-easyinput disabled type="text" :inputBorder="true" v-model="WorkDepartmentFrom.linkPhone" :placeholder="fromData[4]&&fromData[4].prompt?fromData[4].prompt:'联系电话'"></uni-easyinput>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item name="phone" :label="fromData[5]&&fromData[5].name?fromData[5].name:'申请额度'">
|
||
|
<uni-easyinput disabled type="text" :inputBorder="true" v-model="WorkDepartmentFrom.applyAmount" :placeholder="fromData[5]&&fromData[5].prompt?fromData[5].prompt:'请输入'"></uni-easyinput>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item name="phone" :label="fromData[3]&&fromData[3].name?fromData[3].name:'业务类别'">
|
||
|
<uni-easyinput disabled type="text" :inputBorder="true" v-model="WorkDepartmentFrom.amountWide" :placeholder="fromData[3]&&fromData[3].prompt?fromData[3].prompt:'业务类别'"></uni-easyinput>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item class="margin-top" name="phone" required :label="fromData[9]&&fromData[9].name?fromData[9].name:'参会评委'">
|
||
|
<uni-easyinput disabled type="textarea" v-model="juryNames" :placeholder="fromData[9]&&fromData[9].prompt?fromData[9].prompt:'参会评委'"></uni-easyinput>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item name="enGuaranteeMeasures" :label="fromData[6]&&fromData[6].name?fromData[6].name:'反担保措施'">
|
||
|
<uni-data-checkbox multiple mode="list" v-model="WorkDepartmentFrom.enGuaranteeMeasure" :localdata="easuresList"></uni-data-checkbox>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item name="name" label="反担保措施描述">
|
||
|
<uni-easyinput disabled type="textarea" v-model="WorkDepartmentFrom.description" :placeholder="fromData[6]&&fromData[6].prompt?fromData[6].prompt:'反担保措施描述'"></uni-easyinput>
|
||
|
</uni-forms-item>
|
||
|
|
||
|
<uni-forms-item name="name" :label="fromData[10]&&fromData[10].name?fromData[10].name:'担保部A角审核意见'">
|
||
|
<view class="audit-box radius">
|
||
|
<text>{{WorkDepartmentFrom.aauditOpinion||''}}</text>
|
||
|
<view class="mgt20">
|
||
|
<view class="flex">
|
||
|
<text>姓名:</text>
|
||
|
<text class="mgl10">{{WorkDepartmentFrom.aname}}</text>
|
||
|
</view>
|
||
|
<view class="flex mgt20">
|
||
|
<text>时间:</text>
|
||
|
<text class="mgl10">{{WorkDepartmentFrom.aTime}}</text>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item name="name" :label="fromData[11]&&fromData[11].name?fromData[11].name:'担保部B角审核意见'">
|
||
|
<view class="audit-box radius">
|
||
|
<text>{{WorkDepartmentFrom.bauditOpinion||''}}</text>
|
||
|
<view class="mgt20">
|
||
|
<view class="flex">
|
||
|
<text>姓名:</text>
|
||
|
<text class="mgl10">{{WorkDepartmentFrom.bname}}</text>
|
||
|
</view>
|
||
|
<view class="flex mgt20">
|
||
|
<text>时间:</text>
|
||
|
<text class="mgl10">{{WorkDepartmentFrom.bTime}}</text>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item name="name" :label="fromData[12]&&fromData[12].name?fromData[12].name:'资产管理部审核意见'">
|
||
|
<view class="audit-box radius">
|
||
|
<text>{{WorkDepartmentFrom.assetAuditOpinion||''}}</text>
|
||
|
<view class="mgt20">
|
||
|
<view class="flex">
|
||
|
<text>姓名:</text>
|
||
|
<text class="mgl10">{{WorkDepartmentFrom.assetName}}</text>
|
||
|
</view>
|
||
|
<view class="flex mgt20">
|
||
|
<text>时间:</text>
|
||
|
<text class="mgl10">{{WorkDepartmentFrom.assetTime}}</text>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item name="name" :label="fromData[13]&&fromData[13].name?fromData[13].name:'信息服务部审核意见'">
|
||
|
<view class="audit-box radius">
|
||
|
<text>{{WorkDepartmentFrom.messageAuditOpinion||''}}</text>
|
||
|
<view class="mgt20">
|
||
|
<view class="flex">
|
||
|
<text>姓名:</text>
|
||
|
<text class="mgl10">{{WorkDepartmentFrom.messageName}}</text>
|
||
|
</view>
|
||
|
<view class="flex mgt20">
|
||
|
<text>时间:</text>
|
||
|
<text class="mgl10">{{WorkDepartmentFrom.messageTime}}</text>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item name="name" :label="fromData[14]&&fromData[14].name?fromData[14].name:'法规监督部审核意见'">
|
||
|
<view class="audit-box radius">
|
||
|
<text>{{WorkDepartmentFrom.regulationAuditOpinion||''}}</text>
|
||
|
<view class="mgt20">
|
||
|
<view class="flex">
|
||
|
<text>姓名:</text>
|
||
|
<text class="mgl10">{{WorkDepartmentFrom.regulationName}}</text>
|
||
|
</view>
|
||
|
<view class="flex mgt20">
|
||
|
<text>时间:</text>
|
||
|
<text class="mgl10">{{WorkDepartmentFrom.regulationTime}}</text>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</uni-forms-item>
|
||
|
</uni-forms>
|
||
|
|
||
|
<view class="bottom-border">
|
||
|
<view class="left-border"><text class="mgl10">审核</text></view>
|
||
|
</view>
|
||
|
|
||
|
<uni-forms :value="formData" ref="form" validate-trigger="bind" err-show-type="toast">
|
||
|
<uni-forms-item name="name" required label="贷审会议定事项">
|
||
|
<uni-easyinput :disabled="handle=='watch'" type="textarea" v-model="loansAuditFrom.agreedItems" placeholder="议定事项"></uni-easyinput>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item name="name" required label="贷审会附加事项">
|
||
|
<uni-easyinput :disabled="handle=='watch'" type="textarea" v-model="loansAuditFrom.additionalItems" placeholder="附加事项"></uni-easyinput>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item name="name" required label="贷审会意见">
|
||
|
<view class="audit-box radius ">
|
||
|
<text style="display: inline;">为了控制公司担保集中代偿的风险,以及公司担保贷款转换的需要,同意该笔</text>
|
||
|
<!-- <input class="wd10" type="text" v-model="loansAuditFrom.loanMoney" /> -->
|
||
|
<uni-easyinput :disabled="handle=='watch'" class="small-input" type="digit" :inputBorder="true" v-model="loansAuditFrom.loanMoney" placeholder="金额"></uni-easyinput>
|
||
|
<text style="display: inline;">万元贷款担保,期限</text>
|
||
|
<picker :disabled="handle=='watch'" class="small-checkbox" mode="selector" :range="timelimitDatas" range-key="label" :value="loansAuditFrom.loanTern" @change="loansTime" @cancel="applyTimeCencle">
|
||
|
<view class="picker-view flex-between" :style="handle=='watch'?'background-color:#eee':''">
|
||
|
<text>{{loansAuditFrom.loanTern ? loansAuditFrom.loanTern : '期限'}}</text>
|
||
|
<text class="cuIcon-unfold lg text-gray"></text>
|
||
|
</view>
|
||
|
</picker>
|
||
|
</view>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item name="name" required label="贷审会日期">
|
||
|
<picker v-if="handle!=='watch'" mode="date" :value="loansAuditFrom.passingTime" @change="relatedtimeChange">
|
||
|
<view class="picker-view flex-between">
|
||
|
<text>{{loansAuditFrom.passingTime ? loansAuditFrom.passingTime : '请选择'}}</text>
|
||
|
<text class="cuIcon-unfold lg text-gray"></text>
|
||
|
</view>
|
||
|
</picker>
|
||
|
<uni-easyinput v-if="handle=='watch'" disabled type="text" :inputBorder="true" v-model="loansAuditFrom.passingTime" placeholder="请输入"></uni-easyinput>
|
||
|
</uni-forms-item>
|
||
|
<uni-forms-item name="name" required label="参会委员意见">
|
||
|
<text class="jury-text">同意</text>
|
||
|
<view class="check-jury margin-tb-sm">
|
||
|
<view class="more-select" @tap="handle!='watch'?pass = true:pass = false">
|
||
|
<text class="" >{{passInfo || "请选择同意的委员"}}</text>
|
||
|
</view>
|
||
|
</view>
|
||
|
<text class="jury-text margin-top">拒绝</text>
|
||
|
<view class="check-jury margin-tb-sm">
|
||
|
<view class="more-select" @tap="handle!='watch'? nopass = true : nopass = false">
|
||
|
<text class="" >{{nopassInfo || "请选择拒绝的委员"}}</text>
|
||
|
</view>
|
||
|
</view>
|
||
|
</uni-forms-item>
|
||
|
<!-- 上传会议纪要 -->
|
||
|
<view class="cu-bar bg-white">
|
||
|
<view class="action">
|
||
|
<text class="is-required">*</text>
|
||
|
<text class="label-color">上传会议纪要</text>
|
||
|
</view>
|
||
|
</view>
|
||
|
<view class="cu-form-group">
|
||
|
<upload @upload="uploadFile" :files="filesArray" :handle="handle!=='watch'"></upload>
|
||
|
</view>
|
||
|
</uni-forms>
|
||
|
<view class="bottom-border" v-if="handle==='audit'||handle=='watch'&&roleManage||handle=='watch'&&roleLeader">
|
||
|
<view class="left-border"><text class="mgl10">审核意见</text></view>
|
||
|
<uni-easyinput type="textarea" v-model="loansAuditFrom.refuseOpinion" placeholder="请输入审核意见"></uni-easyinput>
|
||
|
</view>
|
||
|
<view class="foot-btn btn-rig pad-bt">
|
||
|
<button plain class="mini-btn round plain-btn" type="primary" size="mini" @tap="back()">返回</button>
|
||
|
<!-- 领导 -->
|
||
|
<button v-if="handle==='audit'" class="mini-btn round suc-btn mar-lr" type="primary" size="mini" @tap="loansAudit(1)">同意</button>
|
||
|
<button v-if="handle==='audit'" class="mini-btn round ref-btn mar-lr" type="primary" size="mini" @tap="loansAudit(3)">拒绝</button>
|
||
|
<button v-if="handle==='audit'" class="mini-btn round cancel-btn mar-lr" type="primary" size="mini" @tap="loansAudit(2)">驳回</button>
|
||
|
</view>
|
||
|
|
||
|
<timeline></timeline>
|
||
|
<!-- 参会委员同意调起下方选择框 -->
|
||
|
<multiple-select
|
||
|
v-model="pass"
|
||
|
:data="passDatas"
|
||
|
:default-selected="passSelected"
|
||
|
@confirm="passJury()"
|
||
|
></multiple-select>
|
||
|
<!-- 参会委员拒绝 -->
|
||
|
|
||
|
<multiple-select
|
||
|
v-model="nopass"
|
||
|
:data="noPassDatas"
|
||
|
:default-selected="nopassSelected"
|
||
|
@confirm="nopassJury()"
|
||
|
></multiple-select>
|
||
|
</view>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import upload from '../../../components/pretty-uploadFile/pretty-uploadFile.vue'
|
||
|
import utils from '@/components/evan-form/utils.js'
|
||
|
const CONTACT_INFO={
|
||
|
name:'',
|
||
|
phone:'',
|
||
|
duty:''
|
||
|
}
|
||
|
export default {
|
||
|
components: {
|
||
|
upload
|
||
|
},
|
||
|
data() {
|
||
|
return {
|
||
|
EvaluationList: [{
|
||
|
text: '房产',
|
||
|
value: '0',
|
||
|
InputValue: ''
|
||
|
},
|
||
|
{
|
||
|
text: '车辆',
|
||
|
value: '1',
|
||
|
InputValue: ''
|
||
|
},
|
||
|
{
|
||
|
text: '设备',
|
||
|
value: '2',
|
||
|
InputValue: ''
|
||
|
},
|
||
|
{
|
||
|
text: '其他',
|
||
|
value: '3',
|
||
|
InputValue: ''
|
||
|
}],//评估价值列表
|
||
|
employeeMsg: [{
|
||
|
name: '个人',
|
||
|
value: '3'
|
||
|
},
|
||
|
{
|
||
|
name: '企业',
|
||
|
value: '4'
|
||
|
}],//客户经理列表
|
||
|
genderList: [{
|
||
|
text: '男',
|
||
|
value: 1
|
||
|
},
|
||
|
{
|
||
|
text: '女',
|
||
|
value: 0
|
||
|
}],//性别列表
|
||
|
easuresList: [{
|
||
|
text: '第三方保证',
|
||
|
value: '第三方保证',
|
||
|
disabled:true
|
||
|
},
|
||
|
{
|
||
|
text: '抵押',
|
||
|
value: '抵押',
|
||
|
disabled:true
|
||
|
},
|
||
|
{
|
||
|
text: '个人无限责任连带',
|
||
|
value: '个人无限责任连带',
|
||
|
disabled:true
|
||
|
},
|
||
|
{
|
||
|
text: '质押',
|
||
|
value: '质押',
|
||
|
disabled:true
|
||
|
}],
|
||
|
imgList: [],
|
||
|
maritalList: ['未婚','已婚','离异','再婚'],//婚姻状况列表
|
||
|
educationList: ['本科','大专','高职','中专','其他'],//学历列表
|
||
|
isExistList: [{
|
||
|
text: '否',
|
||
|
value: 0
|
||
|
},
|
||
|
{
|
||
|
text: '是',
|
||
|
value: 1
|
||
|
}],//是否存在关联人列表
|
||
|
manager: '',
|
||
|
enterpriseFrom: {
|
||
|
maritalStatus: 0,//婚姻状况
|
||
|
gender: 1,//性别
|
||
|
education: 0, //学历
|
||
|
legalGender: 1, //关联人性别
|
||
|
isExistRelated: 0, //是否存在关联人
|
||
|
enGuaranteeMeasures: ''
|
||
|
},//个人form
|
||
|
enterpriseForm: {},//企业form
|
||
|
hideRequiredAsterisk: false,
|
||
|
// 表单的内容必须初始化
|
||
|
info: {
|
||
|
name: '',
|
||
|
email: '',
|
||
|
desc: '',
|
||
|
phone: '',
|
||
|
sex: '',
|
||
|
},
|
||
|
rules: {},
|
||
|
info2:{
|
||
|
name:'',
|
||
|
email:'',
|
||
|
phone:''
|
||
|
},
|
||
|
rules2:{},
|
||
|
dynamicInfo:{
|
||
|
test1:'',
|
||
|
test2:'',
|
||
|
list:[{...CONTACT_INFO}]
|
||
|
},
|
||
|
dynamicRules:{
|
||
|
test1:[{required:true,message:'请输入rule规则字段'},{min:4,max:8,message:'必须4-8位'}]
|
||
|
},
|
||
|
showRuleParam:true,
|
||
|
showRequiredParam:true,
|
||
|
mobileRules:[{required:true,message:'请输入手机号'},{pattern:'^1\\d{10}$',message:'手机号格式不正确'}], // 注意这里由于小程序的缘故正则表达式需要通过string的方式传递并且去除两边的斜杠,中间的斜杠变成两个斜杠
|
||
|
timelimitDatas:[ // 多选框选项
|
||
|
{ value: '1个月', label: '1个月' },
|
||
|
{ value: '3个月', label: '3个月' },
|
||
|
{ value: '6个月', label: '6个月' },
|
||
|
{ value: '9个月', label: '9个月' },
|
||
|
{ value: '12个月', label: '12个月' },
|
||
|
{ value: '24个月', label: '24个月' },
|
||
|
],
|
||
|
// 展示表单
|
||
|
WorkDepartmentFrom:{
|
||
|
enGuaranteeMeasure:[],
|
||
|
},
|
||
|
|
||
|
pass:false,// 触发选择委员
|
||
|
nopass:false,// 触发选择委员
|
||
|
|
||
|
nopassInfo:'',// 贷审会意见--拒绝委员
|
||
|
passInfo:'',// 同意委员
|
||
|
|
||
|
juryArrs:[],// 备份委员---还原选项组的委员
|
||
|
|
||
|
passDatas:[],// 同意选项组
|
||
|
noPassDatas:[],// 拒绝选项组
|
||
|
|
||
|
loansAuditFrom:{
|
||
|
passingTime:''
|
||
|
},// 贷审会审议表单
|
||
|
|
||
|
handle:'',// 操作状态
|
||
|
getItem:{},// 获取列表传值
|
||
|
|
||
|
passSelected:[],// 委员通过勾选项---用于审议选择是否同意的委员,进行组件的双向绑定勾选
|
||
|
nopassSelected:[],// 委员拒绝项
|
||
|
|
||
|
juryNames:"",// 展示评委名称
|
||
|
|
||
|
filesArray:[],
|
||
|
|
||
|
fromData:[],// 表单值
|
||
|
|
||
|
}
|
||
|
},
|
||
|
destroyed() {// 销毁组件操作
|
||
|
uni.removeStorageSync('handleGe')
|
||
|
uni.removeStorageSync('applyMsg')
|
||
|
uni.removeStorageSync('copyData')
|
||
|
},
|
||
|
async created() {
|
||
|
// 判断来自待处理否
|
||
|
if(uni.getStorageSync('decideIndex')){
|
||
|
let data = JSON.parse(uni.getStorageSync('decideIndex'))
|
||
|
this.getItem.iid = data.detailId
|
||
|
this.handle = 'audit'
|
||
|
uni.removeStorageSync('decideIndex')
|
||
|
}else if(uni.getStorageSync('copyData')){
|
||
|
let data =JSON.parse(uni.getStorageSync('copyData'))
|
||
|
this.handle = 'watch'
|
||
|
this.getItem.id = data.detailId
|
||
|
this.getItem.businessId = data.businessId
|
||
|
}else{
|
||
|
this.handle = uni.getStorageSync('handleGe')// 取得操作状态
|
||
|
if(uni.getStorageSync('applyMsg')){ // 取得传参,取得ID等
|
||
|
this.getItem = JSON.parse(uni.getStorageSync('applyMsg'))
|
||
|
this.businessId = this.getItem.businessId
|
||
|
}
|
||
|
}
|
||
|
// 判断操作禁用
|
||
|
if(this.handle==='survey'){// 处于调查时
|
||
|
|
||
|
}else{// 非调查时
|
||
|
this.loansJudge(this.getItem.id)
|
||
|
}
|
||
|
// 基础信息
|
||
|
await this.workOpinion()
|
||
|
// 贷审会信息
|
||
|
this.loansDetail()
|
||
|
this.designFrom()
|
||
|
},
|
||
|
mounted() {
|
||
|
// 这里必须放在mounted中,不然h5,支付宝小程序等会找不到this.$refs.form
|
||
|
this.$refs.form.setRules(this.rules)
|
||
|
},
|
||
|
methods: {
|
||
|
designFrom(){// 表单数据接口
|
||
|
this.$http.get('/api-guarantee/form/design/list',{
|
||
|
processId: 7
|
||
|
}).then(res=>{
|
||
|
if(!res.data||res.data.length==0) return
|
||
|
this.fromData = res.data
|
||
|
this.fromData.sort(this.compare('id'))// 排序对象
|
||
|
})
|
||
|
},
|
||
|
compare(key){ // 用于对象数组排序
|
||
|
return function(value1,value2){
|
||
|
let val1=value1[key];
|
||
|
let val2=value2[key];
|
||
|
return val1-val2;
|
||
|
}
|
||
|
},
|
||
|
relatedtimeChange(e) {
|
||
|
this.loansAuditFrom.passingTime = e.detail.value
|
||
|
},
|
||
|
// 选择委员赋值
|
||
|
passJury(data) {
|
||
|
let arr = data.map(e=>{
|
||
|
return e.value
|
||
|
})
|
||
|
// 重新赋值拒绝的值,然后把已选中的重新勾选?
|
||
|
|
||
|
// 1,根据已有的同意的值---去删除 拒绝的选项
|
||
|
// 2,删除拒绝前,需要重新赋值拒绝的值(因为可能会有取消同意)
|
||
|
// 3,执行删除操作后,把已有的值重新勾选
|
||
|
|
||
|
// 4,首次删除已有的值---成功去掉了对面的值
|
||
|
// 5,反过来删除时:需要先赋值,然后删除己方的值,然后给对面勾选他已选中的值
|
||
|
this.noPassDatas = JSON.parse(JSON.stringify(this.juryArrs))
|
||
|
let len = data.length
|
||
|
// 根据选中的同意,删除对应的拒绝选项
|
||
|
for(let i=0;i<len;i++){
|
||
|
// 此时的nopass是全部的值,定位的下标失去准确度
|
||
|
let num = this.noPassDatas.findIndex((e)=>{return e.value == data[i].value})
|
||
|
if(num!==-1){
|
||
|
this.noPassDatas.splice(num,1)
|
||
|
}
|
||
|
}
|
||
|
// 记录当前被勾选中的值
|
||
|
this.passSelected = data.map(e=>e.value)
|
||
|
this.passInfo = arr.join(",")
|
||
|
},
|
||
|
// 首先:选中的值--删除对应的同意值选项
|
||
|
|
||
|
// 拒绝委员赋值
|
||
|
nopassJury(data) {
|
||
|
let arr = data.map(e=>{
|
||
|
return e.value
|
||
|
})
|
||
|
// 重新赋值同意的选项
|
||
|
this.passDatas = JSON.parse(JSON.stringify(this.juryArrs))
|
||
|
let len = data.length
|
||
|
// 选中的拒绝--删除对应的同意
|
||
|
//
|
||
|
for(let i=0;i<len;i++){
|
||
|
let num = this.passDatas.findIndex((e)=>{return e.value == data[i].value})
|
||
|
if(num!==-1){
|
||
|
this.passDatas.splice(num,1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.nopassSelected = data.map(e=>e.value)
|
||
|
|
||
|
this.nopassInfo = arr.join(",")
|
||
|
},
|
||
|
loansTime(e){// 贷审会意见--期限选择赋值
|
||
|
this.$set(this.loansAuditFrom,'loanTern',this.timelimitDatas[+e.detail.value].value)
|
||
|
},
|
||
|
applyTimeCencle(e){// 申请期限取消赋值
|
||
|
this.$set(this.loansAuditFrom,'loanTern','')
|
||
|
},
|
||
|
//客户类型选择
|
||
|
cusChange(e) {
|
||
|
this.cusType = e.detail.value
|
||
|
},
|
||
|
//性别选择
|
||
|
genderChange(e) {
|
||
|
this.personageForm.gender = e.detail.value
|
||
|
},
|
||
|
//婚姻状况选择
|
||
|
maritalChange(e) {
|
||
|
this.personageForm.maritalStatus = e.detail.value
|
||
|
},
|
||
|
//学历选择
|
||
|
educationChange(e) {
|
||
|
this.personageForm.education = e.detail.value
|
||
|
},
|
||
|
//关联人性别选择
|
||
|
legalGenderChange(e) {
|
||
|
this.personageForm.legalGender = e.detail.value
|
||
|
},
|
||
|
isExistChange(e) {
|
||
|
this.personageForm.isExistRelated = e.detail.value
|
||
|
},
|
||
|
bindPickerChange: function(e) {
|
||
|
// this.cusType = e.target.value
|
||
|
},
|
||
|
save() {
|
||
|
this.$refs.form.validate((res) => {
|
||
|
if (res) {
|
||
|
uni.showToast({
|
||
|
title: '验证通过'
|
||
|
})
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
promiseSave(){
|
||
|
this.$refs.form.validate().then((res)=>{
|
||
|
uni.showToast({
|
||
|
title: '验证通过'
|
||
|
})
|
||
|
}).catch(()=>{
|
||
|
})
|
||
|
},
|
||
|
async asyncSave(){
|
||
|
try{
|
||
|
const result=await this.$refs.form.validate()
|
||
|
if(result){
|
||
|
uni.showToast({
|
||
|
title: '验证通过'
|
||
|
})
|
||
|
}
|
||
|
} catch(e){
|
||
|
}
|
||
|
},
|
||
|
saveForm2(){
|
||
|
this.$refs.form2.validate((res) => {
|
||
|
if (res) {
|
||
|
uni.showToast({
|
||
|
title: '验证通过'
|
||
|
})
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
utilsSave() {
|
||
|
utils.validate(this.info, this.rules, (res, errors) => {
|
||
|
if (res) {
|
||
|
uni.showToast({
|
||
|
title: '验证通过'
|
||
|
})
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
validateSingle() {
|
||
|
this.$refs.form.validateField('email', (res) => {
|
||
|
if (res) {
|
||
|
uni.showToast({
|
||
|
title: '验证通过'
|
||
|
})
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
validateMultiple() {
|
||
|
this.$refs.form.validateField(['email', 'phone'], (res) => {
|
||
|
if (res) {
|
||
|
uni.showToast({
|
||
|
title: '验证通过'
|
||
|
})
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
isMobilePhone() {
|
||
|
const reg = /^1\d{10}$/
|
||
|
if (reg.test(value)) {
|
||
|
return true
|
||
|
}
|
||
|
return false
|
||
|
},
|
||
|
isMobile(rule, value, callback) {
|
||
|
if (this.$utils.isMobilePhone(value)) {
|
||
|
callback()
|
||
|
} else {
|
||
|
callback(new Error('手机号格式不正确'))
|
||
|
}
|
||
|
},
|
||
|
sexChange(e) {
|
||
|
this.info.sex = e.detail.value
|
||
|
},
|
||
|
addContact(){
|
||
|
this.dynamicInfo.list.push({...CONTACT_INFO})
|
||
|
},
|
||
|
deleteContact(index){
|
||
|
this.dynamicInfo.list.splice(index,1)
|
||
|
},
|
||
|
toggleRuleParam(){
|
||
|
this.showRuleParam=!this.showRuleParam
|
||
|
},
|
||
|
toggleRequiredParam(){
|
||
|
this.showRequiredParam=!this.showRequiredParam
|
||
|
},
|
||
|
dynamicSave(){
|
||
|
this.$refs.dynamicForm.validate((res)=>{
|
||
|
if(res){
|
||
|
uni.showToast({
|
||
|
title: '验证通过'
|
||
|
})
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
ViewImage(e) {
|
||
|
uni.previewImage({
|
||
|
urls: this.imgList,
|
||
|
current: e.currentTarget.dataset.url
|
||
|
});
|
||
|
},
|
||
|
DelImg(e) {
|
||
|
uni.showModal({
|
||
|
title: '提示',
|
||
|
content: '确定要删除该文件吗?',
|
||
|
cancelText: '取消',
|
||
|
confirmText: '确定',
|
||
|
success: res => {
|
||
|
if (res.confirm) {
|
||
|
this.imgList.splice(e.currentTarget.dataset.index, 1)
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
ChooseImage() {
|
||
|
uni.chooseImage({
|
||
|
count: 4, //默认9
|
||
|
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
|
||
|
sourceType: ['album'], //从相册选择
|
||
|
success: (res) => {
|
||
|
if (this.imgList.length != 0) {
|
||
|
this.imgList = this.imgList.concat(res.tempFilePaths)
|
||
|
} else {
|
||
|
this.imgList = res.tempFilePaths
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
// 贷审会-查看
|
||
|
loansDetail(id){
|
||
|
this.$http.get('/api-guarantee/committee/consider/query',{id:this.getItem.id}).then(res=>{
|
||
|
let data = res.data
|
||
|
// 查看时才进行复制
|
||
|
if(this.handle!=='audit'){
|
||
|
this.$set(this.loansAuditFrom,'agreedItems',data.agreedItems)
|
||
|
this.$set(this.loansAuditFrom,'additionalItems',data.additionalItems)
|
||
|
this.$set(this.loansAuditFrom,'loanMoney',data.loanMoney)
|
||
|
this.$set(this.loansAuditFrom,'loanTern',data.loanTern)
|
||
|
this.passSelected = data.agreePersons // 评委同意拒绝赋值
|
||
|
this.passInfo = this.passSelected.join()
|
||
|
this.nopassSelected = data.disagreePersons
|
||
|
this.nopassInfo = this.nopassSelected.join()
|
||
|
this.$set(this.loansAuditFrom,'passingTime',data.time)
|
||
|
}
|
||
|
this.loansAuditFrom.fileUrls = data.fileUrls // 文件--上传的赋值
|
||
|
this.handleFiles(data.fileUrls)
|
||
|
// this.$set(this.loansAuditFrom,'agreedItems',data.agreedItems)
|
||
|
})
|
||
|
},
|
||
|
// 贷审会-获取抽取的评委
|
||
|
loansJudge(id,type){
|
||
|
return this.$http.get('/api-guarantee/committee/consider/theJudgesDrawn',{id:id}).then(res=>{
|
||
|
if(res.success){
|
||
|
this.juryNames = res.data.join()
|
||
|
let arr = []
|
||
|
res.data.map(e=>{
|
||
|
let obj = {}
|
||
|
obj.label = e
|
||
|
obj.value = e
|
||
|
arr.push(obj)
|
||
|
})
|
||
|
this.juryArrs = arr// 备份起来
|
||
|
this.passDatas = arr
|
||
|
this.noPassDatas = arr
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
// 贷审会--审议--同意
|
||
|
async testSuccess(val){
|
||
|
// 重新赋值拒绝的值
|
||
|
await this.loansJudge(this.getItem.id,2)
|
||
|
let len = val.length
|
||
|
// 根据选中的同意,删除对应的拒绝选项
|
||
|
for(let i=0;i<len;i++){
|
||
|
if(this.noPassDatas.indexOf(val[i])!==-1){
|
||
|
this.noPassDatas.splice(this.noPassDatas.indexOf(val[i]),1)
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
// 贷审会--审议--拒绝
|
||
|
async testFull(val){
|
||
|
// 重新赋值同意的选项
|
||
|
await this.loansJudge(this.getItem.id,1)
|
||
|
let len = val.length
|
||
|
// 选中的拒绝--删除对应的同意
|
||
|
for(let i=0;i<len;i++){
|
||
|
if(this.passDatas.indexOf(val[i])!==-1){
|
||
|
this.passDatas.splice(this.passDatas.indexOf(val[i]),1)
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
// 贷审会-审议
|
||
|
loansAudit(type){
|
||
|
// status: 操作,1:通过,2:拒绝,3:驳回
|
||
|
this.loansAuditFrom.status = type
|
||
|
this.loansAuditFrom.id = this.getItem.id
|
||
|
// 拒绝驳回--展示审核意见框
|
||
|
if(type===2&&!this.loansAuditFrom.refuseOpinion||type===3&&!this.loansAuditFrom.refuseOpinion){
|
||
|
return uni.showToast({
|
||
|
title:'请输入审核意见!',icon:'none'
|
||
|
})
|
||
|
}
|
||
|
if(type===1){
|
||
|
if(!this.loansAuditFrom.loanMoney||!this.loansAuditFrom.loanTern){
|
||
|
return uni.showToast({
|
||
|
title:'请输入金额和期限!',icon:'none'
|
||
|
})
|
||
|
}
|
||
|
if(!this.loansAuditFrom.fileUrls||this.loansAuditFrom.fileUrls&&!this.loansAuditFrom.fileUrls.length===0){
|
||
|
return uni.showToast({
|
||
|
title:'请上传会议纪要!',icon:'none'
|
||
|
})
|
||
|
}
|
||
|
if(!this.loansAuditFrom.agreedItems||!this.loansAuditFrom.additionalItems){
|
||
|
return uni.showToast({
|
||
|
title:'请输入贷审会议定事项与贷审会附加事项!',icon:'none'
|
||
|
})
|
||
|
}
|
||
|
if(this.nopassSelected.length===0&&this.passSelected.length===0){
|
||
|
return uni.showToast({
|
||
|
title:'请选择同意或拒绝的委员意见!',icon:'none'
|
||
|
})
|
||
|
}
|
||
|
if(this.nopassSelected.length+this.passSelected.length!==this.juryArrs.length){
|
||
|
return uni.showToast({
|
||
|
title:'请把委员投票选完!',icon:'none'
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.loansAuditFrom.agreePersons = this.passSelected //同意
|
||
|
this.loansAuditFrom.disagreePersons = this.nopassSelected//拒绝
|
||
|
this.$http.post('/api-guarantee/committee/consider/check',this.loansAuditFrom).then(res=>{
|
||
|
uni.showToast({
|
||
|
title:'操作成功!'
|
||
|
})
|
||
|
setTimeout(()=>{
|
||
|
this.back()
|
||
|
},500)
|
||
|
}).catch(err=>{
|
||
|
|
||
|
})
|
||
|
},
|
||
|
|
||
|
workDetail(id){// 工作会-查看详情
|
||
|
this.$http.get('/api-guarantee/work/conference/query',{id:this.getItem.id}).then(res=>{
|
||
|
// if(res.code===10000){
|
||
|
this.$set(this.workAuditFrom,'empNames',res.data.joinJudges)
|
||
|
this.$set(this.workAuditFrom,'opinion',res.data.remark)
|
||
|
// }
|
||
|
})
|
||
|
},
|
||
|
/* 上传文件 */
|
||
|
uploadFile(e) {
|
||
|
let fileList = e.map(r => r.url)
|
||
|
this.loansAuditFrom.fileUrls = fileList
|
||
|
},
|
||
|
// 传入对应的index
|
||
|
handleFiles(data){
|
||
|
if(!data||!data.length) return
|
||
|
data.map(e=>{
|
||
|
if(e=='') return
|
||
|
let obj = {},
|
||
|
num= e.lastIndexOf("."),
|
||
|
ext = e.substr(num+1);
|
||
|
// 判断格式--图片或者其他
|
||
|
if(e.toLowerCase().includes('jpg','jpeg','png','bmp','gif')){
|
||
|
obj.book = 'img'
|
||
|
}else{
|
||
|
obj.book = "file"
|
||
|
if(ext=='png'){
|
||
|
obj.book = 'img'
|
||
|
}
|
||
|
}
|
||
|
// 确定文件格式
|
||
|
obj.ext = ext
|
||
|
obj.url = e
|
||
|
// 接收的数组
|
||
|
this.filesArray.push(obj)
|
||
|
})
|
||
|
},
|
||
|
// 工作会-所有审核意见
|
||
|
workOpinion(){
|
||
|
// this.businessId = id
|
||
|
// sessionStorage.setItem('work-detail',id)
|
||
|
this.$http.get('/api-guarantee/work/conference/getAuditOpinion',{businessId:this.getItem.businessId}).then(res=>{
|
||
|
if(res.success){
|
||
|
let data = res.data
|
||
|
this.$set(this.WorkDepartmentFrom,'aTime',data.aTime)
|
||
|
this.$set(this.WorkDepartmentFrom,'aauditOpinion',data.aauditOpinion)
|
||
|
this.$set(this.WorkDepartmentFrom,'aname',data.aname)
|
||
|
this.$set(this.WorkDepartmentFrom,'bTime',data.bTime)
|
||
|
this.$set(this.WorkDepartmentFrom,'bauditOpinion',data.bauditOpinion)
|
||
|
this.$set(this.WorkDepartmentFrom,'bname',data.bname)
|
||
|
this.$set(this.WorkDepartmentFrom,'assetTime',data.assetTime)
|
||
|
this.$set(this.WorkDepartmentFrom,'assetName',data.assetName)
|
||
|
this.$set(this.WorkDepartmentFrom,'assetAuditOpinion',data.assetAuditOpinion)
|
||
|
this.$set(this.WorkDepartmentFrom,'messageName',data.messageName)
|
||
|
this.$set(this.WorkDepartmentFrom,'messageTime',data.messageTime)
|
||
|
this.$set(this.WorkDepartmentFrom,'messageAuditOpinion',data.messageAuditOpinion)
|
||
|
this.$set(this.WorkDepartmentFrom,'regulationAuditOpinion',data.regulationAuditOpinion)
|
||
|
this.$set(this.WorkDepartmentFrom,'regulationName',data.regulationName)
|
||
|
this.$set(this.WorkDepartmentFrom,'regulationTime',data.regulationTime)
|
||
|
// 上为审核意见
|
||
|
this.$set(this.WorkDepartmentFrom,'code',res.data.dgBusinessCompany.code)
|
||
|
this.$set(this.WorkDepartmentFrom,'name',res.data.dgBusinessCompany.name)
|
||
|
this.$set(this.WorkDepartmentFrom,'applyAmount',res.data.dgApplyAmountInfo.applyAmount)
|
||
|
this.$set(this.WorkDepartmentFrom,'applyTime',res.data.dgApplyAmountInfo.applyTime)
|
||
|
this.$set(this.WorkDepartmentFrom,'amountWide',res.data.dgApplyAmountInfo.amountWide)
|
||
|
|
||
|
this.$set(this.WorkDepartmentFrom,'enGuaranteeMeasure',res.data.dgApplyAmountInfo.enGuaranteeMeasure)
|
||
|
|
||
|
this.$set(this.WorkDepartmentFrom,'description',res.data.dgApplyAmountInfo.description)
|
||
|
// 还有法人信息,联系电话,关联人电话没有匹配
|
||
|
this.$set(this.WorkDepartmentFrom,'legalName',data.dgBusinessCompany.legalName)
|
||
|
this.$set(this.WorkDepartmentFrom,'linkman',data.dgBusinessCompany.linkman)
|
||
|
this.$set(this.WorkDepartmentFrom,'legalPhone',data.dgBusinessCompany.legalPhone)
|
||
|
this.$set(this.WorkDepartmentFrom,'linkPhone',data.dgBusinessCompany.linkPhone)
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style lang="scss" scoped>
|
||
|
.evan-form-show {
|
||
|
padding: 0 30rpx;
|
||
|
background-color: #fff;
|
||
|
|
||
|
.form-input {
|
||
|
font-size: 28rpx;
|
||
|
color: #333;
|
||
|
text-align: right;
|
||
|
width: 100%;
|
||
|
box-sizing: border-box;
|
||
|
height: 60rpx;
|
||
|
&.textarea{
|
||
|
height: 240rpx;
|
||
|
padding: 24rpx 0;
|
||
|
text-align: left;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.form-input-placeholder {
|
||
|
font-size: 28rpx;
|
||
|
color: #999;
|
||
|
}
|
||
|
|
||
|
&__button {
|
||
|
width: 100%;
|
||
|
height: 88rpx;
|
||
|
border-radius: 8rpx;
|
||
|
display: flex;
|
||
|
align-items: center;
|
||
|
justify-content: center;
|
||
|
padding: 0;
|
||
|
font-size: 36rpx;
|
||
|
color: #fff;
|
||
|
margin-top: 20rpx;
|
||
|
background-color: #2D87D5;
|
||
|
|
||
|
&::before,
|
||
|
&::after {
|
||
|
border: none;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.customize-form-item {
|
||
|
&__label {
|
||
|
font-size: 28rpx;
|
||
|
color: #333;
|
||
|
margin-bottom: 16rpx;
|
||
|
}
|
||
|
|
||
|
&__radio {
|
||
|
display: flex;
|
||
|
align-items: center;
|
||
|
margin-bottom: 16rpx;
|
||
|
|
||
|
&__text {
|
||
|
font-size: 28rpx;
|
||
|
color: #333;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
.label-color{
|
||
|
color: #00B9FF;
|
||
|
}
|
||
|
// 必填
|
||
|
.is-required {
|
||
|
color: $uni-color-error;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
.checklist-group {
|
||
|
/* #ifndef APP-NVUE */
|
||
|
display: flex;
|
||
|
/* #endif */
|
||
|
flex-direction: row;
|
||
|
flex-wrap: wrap;
|
||
|
}
|
||
|
|
||
|
.checklist-box {
|
||
|
/* #ifndef APP-NVUE */
|
||
|
display: flex;
|
||
|
/* #endif */
|
||
|
flex-direction: row;
|
||
|
align-items: center;
|
||
|
margin: 10rpx 0;
|
||
|
margin-right: 50rpx;
|
||
|
}
|
||
|
|
||
|
.checklist-content {
|
||
|
/* #ifndef APP-NVUE */
|
||
|
display: flex;
|
||
|
/* #endif */
|
||
|
flex: 1;
|
||
|
flex-direction: row;
|
||
|
align-items: center;
|
||
|
justify-content: space-between;
|
||
|
}
|
||
|
|
||
|
.checklist-text {
|
||
|
font-size: 28rpx;
|
||
|
color: #333;
|
||
|
margin-left: 10rpx;
|
||
|
transition: color 0.2s;
|
||
|
}
|
||
|
|
||
|
.checkbox__inner {
|
||
|
flex-shrink: 0;
|
||
|
position: relative;
|
||
|
border: 2rpx solid #DCDFE6;
|
||
|
border-radius: 4rpx;
|
||
|
box-sizing: border-box;
|
||
|
width: 32rpx;
|
||
|
height: 32rpx;
|
||
|
background-color: #fff;
|
||
|
z-index: 1;
|
||
|
transition: border-color 0.1s;
|
||
|
}
|
||
|
|
||
|
.checkbox__inner-icon {
|
||
|
border: 2rpx solid #fff;
|
||
|
border-left: 0;
|
||
|
border-top: 0;
|
||
|
height: 16rpx;
|
||
|
left: 10rpx;
|
||
|
position: absolute;
|
||
|
top: 2rpx;
|
||
|
width: 6rpx;
|
||
|
opacity: 0;
|
||
|
transition: transform .2s;
|
||
|
transform-origin: center;
|
||
|
transform: rotate(40deg) scaleY(0.4);
|
||
|
}
|
||
|
.audit-box{
|
||
|
padding: 15rpx 15rpx;
|
||
|
margin-left: 99rpx;
|
||
|
width: 392rpx;
|
||
|
min-height: 120rpx;
|
||
|
border: 1rpx solid #e5e5e5;
|
||
|
// background-color: #eee;
|
||
|
border-radius: 35rpx;
|
||
|
|
||
|
}
|
||
|
.small-input{
|
||
|
display: inline-block;
|
||
|
width: 65%;
|
||
|
// padding-left: 30rpx;
|
||
|
/deep/ .uni-easyinput{
|
||
|
margin-left: 0;
|
||
|
width: 90%;
|
||
|
}
|
||
|
/deep/ .uni-easyinput__content{
|
||
|
min-height: 60rpx;
|
||
|
margin-bottom: 5rpx;
|
||
|
margin-top: 5rpx;
|
||
|
}
|
||
|
}
|
||
|
.small-checkbox{
|
||
|
display: inline-block;
|
||
|
width: 60%;
|
||
|
.picker-view{
|
||
|
width: 99%;
|
||
|
margin-left: 1%;
|
||
|
min-height: 60rpx;
|
||
|
}
|
||
|
}
|
||
|
.check-jury{
|
||
|
width: 392rpx;
|
||
|
min-height: 50rpx;
|
||
|
margin-left: 99rpx;
|
||
|
border: 1rpx solid #e5e5e5;
|
||
|
border-radius: 35rpx;
|
||
|
background-color: #eee;
|
||
|
|
||
|
.more-select{
|
||
|
|
||
|
text-align: center;
|
||
|
width: 100%;
|
||
|
line-height: 50rpx;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
.pass-warp{
|
||
|
padding: 15rpx 15rpx;
|
||
|
margin-left: 99rpx;
|
||
|
width: 392rpx;
|
||
|
min-height: 80rpx;
|
||
|
border: 1rpx solid #e5e5e5;
|
||
|
border-radius: 35rpx;
|
||
|
}
|
||
|
.jury-text{
|
||
|
margin-left: 99rpx;
|
||
|
margin-top: 5rpx;
|
||
|
}
|
||
|
</style>
|