details.vue 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956
  1. <template>
  2. <view class="details">
  3. <view class="zxtop">
  4. <view class="failtit" v-if="datainfo.auditType==4">该业务申请未通过风险部审核,可完善信息后进行申诉</view>
  5. <view class="detop">
  6. <!-- 归档 归档后没有业务进度-->
  7. <image :src="gdicoimg" class="gdimg" v-if="gdflag"></image>
  8. <block v-else>
  9. <view class="speed" v-if="checkPermi(['system:schedule:list'])" @click="getSpeedFn" :style="type=='ywjd'?'z-index: 6;':''">
  10. <image :src="speedimg"></image>
  11. <view>业务进度</view>
  12. </view>
  13. </block>
  14. <view class="head">
  15. <view class="top">
  16. <view class="toptit">{{datainfo.enterpriseName}}</view>
  17. <view class="statbox" v-if="datainfo.isNew=='Y'">专精特新<image :src="start"></image></view>
  18. </view>
  19. <view class="adr">企业地址 | {{datainfo.enterpriseName}}</view>
  20. <view class="adr">申报时间 | {{datainfo.applicationTime}}</view>
  21. <view class="adr" v-if="datainfo.fileTime">归档时间 | {{datainfo.fileTime}}</view>
  22. </view>
  23. <view class="deta">
  24. <view class="lists">
  25. <view class="tit">申请额度</view>
  26. <view class="txt">{{datainfo.applicationAmount}}<text>/万元</text></view>
  27. </view>
  28. <view class="lists">
  29. <view class="tit">使用期限</view>
  30. <view class="txt">{{datainfo.usagePeriod}}<text>/个月</text></view>
  31. </view>
  32. <view class="lists">
  33. <view class="tit">申贷银行</view>
  34. <view class="txt">{{kaType(datainfo.applicationBank,sdyhlist)}}</view>
  35. </view>
  36. <view class="lists">
  37. <view class="tit">资金用途</view>
  38. <view class="txt">{{datainfo.purposeFunds}}</view>
  39. </view>
  40. <view class="lists">
  41. <view class="tit">还款来源</view>
  42. <view class="txt">{{datainfo.repaymentSource}}</view>
  43. </view>
  44. <view class="lists">
  45. <view class="tit">担保类型</view>
  46. <view class="txt">{{kaType(datainfo.guaranteeType,dblxlist)}}</view>
  47. </view>
  48. </view>
  49. </view>
  50. </view>
  51. <view class="main">
  52. <!-- tab -->
  53. <view class="tabs" :class="fixedflag?'tabfix':''">
  54. <view class="tab" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tabList" :key="idx" @click="getTab(ite.val)">{{ite.tit}}</view>
  55. </view>
  56. <view style="height:116rpx;" v-if="fixedflag"></view>
  57. <!-- 企业信息 -->
  58. <view class="mainb" :style="'min-height: ' + minheight + 'px;'">
  59. <block v-if="tabval==0">
  60. <aqyxx @getDown="getDown" :qyinfo="qyinfo" :datainfo="datainfo" :basicFj="basicFj" ></aqyxx>
  61. </block>
  62. <block v-if="tabval==1">
  63. <bfrxx @getDown="getDown" :datainfo="datainfo" :yhlxlist="yhlxlist" :hyztlist="hyztlist" :basicFj="basicFj"></bfrxx>
  64. </block>
  65. <block v-if="tabval==2">
  66. <cfdbrxx @getDown="getDown" :datainfo="datainfo" :hyztlist="hyztlist" :basicFj="basicFj"></cfdbrxx>
  67. </block>
  68. <block v-if="tabval==3">
  69. <dfjxx @getDown="getDown" :datainfo="datainfo" :declareFj="datainfo.declareFj" :sbfjlist="sbfjlist" @getXzFn="getXzFn"></dfjxx>
  70. </block>
  71. <block v-if="tabval==4">
  72. <ewjcj @getDown="getDown" :datainfo="datainfo" @getDelwjFj="getDelwjFj" @getfjEdit="getfjEdit" :wjcjlist="wjcjlist" :fileFj="datainfo.fileFj"></ewjcj>
  73. </block>
  74. <block v-if="tabval==5">
  75. <fshxx @getDown="getDown" :shjdlist="shjdlist" :datalist="shlist" ></fshxx>
  76. </block>
  77. </view>
  78. <!-- 法人信息 -->
  79. </view>
  80. <block v-if="!gdflag">
  81. <view class="h50"></view>
  82. <view class="footbtns">
  83. <!-- (业务进度表查询进度列表):1:申报提交
  84. 2:业务审核/分配
  85. 3:担保初审
  86. 4:尽职调查
  87. 5:初审风险合规
  88. 6:评审会
  89. 7:合同签约
  90. 8:放款合规风险审核
  91. 9:放款通知
  92. 10:归档 -->
  93. <!-- 审核进度
  94. 1:业务审核/分配
  95. 2:A角色审核
  96. 3:B角色审核
  97. 4:风险审核
  98. 5:尽职调查
  99. 6:初审风险合规
  100. 7:上会评审 -->
  101. <!-- 申请审核 start-->
  102. <view class="fbtns bga" v-if="checkPermi(['system:application:edit'])&&stepval<3" @click="getedit">修改</view>
  103. <!-- <view class="fbtns bga" v-if="checkPermi(['system:application:remove'])" @click="getDel">删除</view> -->
  104. <view class="fbtns bga" v-if="auditSchedule==1&&checkPermi(['system:application:sh'])" @click="getShFn('sh')">审核</view>
  105. <view class="fbtns bga" v-if="auditSchedule==4&&checkPermi(['system:application:sh'])" @click="getShFn('fxsh')">风险审核</view>
  106. <!-- 业务审核后出具担保意向函-->
  107. <!-- <view class="fbtns bgb">上传文件</view>
  108. <view class="fbtns bga" @click="getSubmit">查看担保意向函</view> -->
  109. <!-- end -->
  110. <!-- a,b角按钮 start-->
  111. <view class="fbtns bgb" v-if="checkPermi(['system:application:sh'])&&userId==datainfo.aUserId&&auditSchedule==5" @click="getShFn('jztcsh')">尽职调查反馈</view>
  112. <view class="fbtns bga" v-if="checkPermi(['system:application:sh'])&&userId==datainfo.aUserId&&auditSchedule==2&&datainfo.auditType!=4" @click="getShFn('ajssh')">a审核</view>
  113. <view class="fbtns bga" v-if="checkPermi(['system:application:sh'])&&userId==datainfo.bUserId&&auditSchedule==3" @click="getShFn('bjssh')">b审核</view>
  114. <!-- 审核后 -->
  115. <!-- <view class="fbtns bga" @click="getMoreFn('more')">更多操作</view> -->
  116. <!-- 未通过申诉 -->
  117. <view class="fbtns bga" v-if="checkPermi(['system:application:ss'])&&datainfo.auditType==4" @click="getSsFn">申诉</view>
  118. <view class="fbtns bga" v-if="checkPermi(['system:application:cx'])&&auditSchedule>1" @click="getCxFn">撤销</view>
  119. <!-- end -->
  120. <!-- 风险部门 start-->
  121. <!-- <view class="fbtns bgb" @click="getMoreFn('wb')">外部工具平台</view>
  122. <view class="fbtns bga" @click="getMoreFn('fxmore')">更多操作</view> -->
  123. <!-- end -->
  124. <!-- 上会管理员 start -->
  125. <view class="fbtns bgb" @click="getMoreFn('shmore')">更多操作</view>
  126. <view class="fbtns bga" @click="getShFn('shsh')">审核</view>
  127. <!-- 上会管理员 end -->
  128. <!-- 合同签约start -->
  129. <view class="fbtns bgb" @click="getShFn('shhj')">上传附件</view>
  130. <view class="fbtns bga" @click="getMoreFn('htqy')">出具合同</view>
  131. <view class="fbtns bga" @click="getqmFn">签名</view>
  132. <!-- 合同签约end -->
  133. <!-- 风险部放款 start-->
  134. <!-- <view class="fbtns bgb" @click="getShFn('shhj')">上传附件</view>
  135. <view class="fbtns bga" @click="">出具放款合规表</view> -->
  136. <!-- end -->
  137. <!-- <view class="fbtns bga" @click="">放款通知书</view> -->
  138. <view class="fbtns bga" @click="getGdFn">一键归档</view>
  139. </view>
  140. </block>
  141. <!-- 更多操作 -->
  142. <view class="bgbox" @click="getClose" v-if="mtype"></view>
  143. <view v-if="mtype" class="morebox">
  144. <view class="molists">
  145. <!-- 审核详情后 -->
  146. <block v-if="mtype=='more'">
  147. <!-- <view class="mcoa" @click="getShFn('shhj')">上传附件</view> -->
  148. <view>撤回</view>
  149. </block>
  150. <!--风险部门 start 外部工具平台 -->
  151. <block v-if="mtype=='wb'">
  152. <view v-for="(ite,idx) in linkList" :key="idx" @click="getWebUel(ite.url)">{{ite.name}}</view>
  153. </block>
  154. <!-- 更多操作 -->
  155. <block v-if="mtype=='fxmore'">
  156. <view @click="getShFn('fxbmsh')" v-if="auditSchedule==6&&checkPermi(['system:application:sh'])">审核</view>
  157. <view class="mcoa">出具材料合规表</view>
  158. <view @click="getShFn('shhj')">上传附件</view>
  159. <view>撤回</view>
  160. </block>
  161. <!-- 风险部门 end -->
  162. <!-- 上会管理员 start -->
  163. <block v-if="mtype=='shmore'">
  164. <view>出具评审意见签批表</view>
  165. <view class="mcoa">上会纪要</view>
  166. <view @click="getShFn('shpsyj')">上传评审意见签批表</view>
  167. <view @click="getShFn('shshjy')">上传上会纪要</view>
  168. </block>
  169. <!-- 上会管理员 end -->
  170. <!-- 合同签约 start -->
  171. <block v-if="mtype=='htqy'">
  172. <view>委托保证合同</view>
  173. <block v-if="datainfo.guaranteeType=='2'">
  174. <view>保证反担保合同(法人)</view>
  175. <view>保证反担保合同(自然人)</view>
  176. </block>
  177. <block v-if="datainfo.guaranteeType=='1'">
  178. <view>抵押反担保合同(法人)</view>
  179. <view>抵押反担保合同(自然人)</view>
  180. </block>
  181. </block>
  182. <!-- 合同签约 end -->
  183. </view>
  184. <!-- <view class="surbtns" @click="getMoreSure">确认</view> -->
  185. </view>
  186. <pop-up :type="type" :shtg="shtg" :loanApplicationId="datainfo.loanApplicationId" :loanApplicationNumber="datainfo.loanApplicationNumber" :userList="userList"
  187. :stepList="stepList" :wjcjobj='wjcjobj' :stepval="stepval" :fjval="fjval"
  188. @getfjAdd="getfjAdd"
  189. @getClose="getClose" @getupSubmit="getupSubmit" @getSure="getSure"></pop-up>
  190. </view>
  191. </template>
  192. <script>
  193. import config from '@/config'
  194. const baseUrl = config.baseUrl
  195. const baseName = config.baseName
  196. import popUp from "@/work/components/popup/popup.vue"
  197. import aqyxx from "@/work/components/business/aqyxx.vue"
  198. import bfrxx from "@/work/components/business/bfrxx.vue"
  199. import cfdbrxx from "@/work/components/business/cfdbrxx.vue"
  200. import dfjxx from "@/work/components/business/dfjxx.vue"
  201. import ewjcj from "@/work/components/business/ewjcj.vue"
  202. import fshxx from "@/work/components/business/fshxx.vue"
  203. import {uploadmore,selectValue} from '@/utils/common.js'
  204. import {getDictionaryFn} from "@/api/mine/register.js"
  205. import {getUsernoPageList,getFjAdd,getFjDel} from "@/api/common.js"
  206. import {getApplicationDet,getScheduleList,getHyperlinkList,getApplicationDel,getApplicationSh,getCommentsList,getApplicationSs,getApplicationCx,getapplicationGd} from "@/api/mine/work.js"
  207. import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
  208. export default{
  209. components:{aqyxx,bfrxx,cfdbrxx,dfjxx,ewjcj,fshxx,popUp},
  210. data(){
  211. return{
  212. start:require('@/work/static/images/start.png'),
  213. titimg:require('@/work/static/images/infotit.png'),
  214. speedimg:require('@/work/static/images/speed.png'),
  215. gdicoimg:require('@/work/static/images/gdico.png'),
  216. tabval:0,
  217. type:'',
  218. tabList:[{tit:"企业信息",val:0},{tit:"法人信息",val:1},{tit:"反担保人信息",val:2},{tit:"附件信息",val:3},{tit:"文件出具",val:4},{tit:"审核信息",val:5},],
  219. stepList:[],
  220. stepval:0,
  221. gdflag:false,
  222. auditSchedule:'',//审核进度
  223. mtype:'',
  224. minheight:0,
  225. listTop:0,//距离顶部的距离
  226. fixedflag:false,
  227. dblxlist:[],
  228. sdyhlist:[],
  229. qyinfo:{},//企业信息
  230. datainfo:{
  231. // "createBy": "",//
  232. // "createTime": null,//
  233. // "updateBy": "",//
  234. // "updateTime": null,//
  235. // "remark": null,//
  236. "loanApplicationId": '',//贷款申请id
  237. "loanApplicationNumber": "",//贷款申请编号
  238. "applicationAmount": '',//申请额度(万元)
  239. "applicationBank": "",//申请银行
  240. "usagePeriod": "",//使用期限(月)
  241. "purposeFunds": "",//资金用途
  242. "repaymentSource": "",//还款来源
  243. "enterpriseName": "",//企业名称
  244. 'sysUserEnterprise':{},//企业对象具体字段查看营业执照
  245. "categoryType": "",//行业类型
  246. "isMake": "N",//是否是制造业
  247. "isNew": "N",//是否是精特新
  248. "isSmall": "N",//是否是小微企业
  249. "isDuty": "N",//是否是免税企业
  250. "companyIntroduction": "",//公司简介
  251. "customerType": "",//用户类型
  252. "corporationFront": "",//法人身份证正面
  253. "corporationBack": "",//法人身份证反面
  254. "corporationName": "",// 法人姓名
  255. "corporationIdCard": "",//法人身份证号
  256. "corporationPhone": "",// 法人手机号
  257. "familyPopulation": "",//家庭人口数
  258. "corporationJob": "",//法人职业
  259. "isLoan": "",//有无贷款
  260. "receivablePay": "",//应收应付款
  261. "businessSituation": "",//经营情况
  262. "businessEfficiency": "",//经营效益
  263. "corporationMaritalStatus": "",//法人婚姻状态
  264. "spouseFront": "",//配偶身份证正面
  265. "spouseBack": "",//配偶身份证反面
  266. "spouseName": "",//配偶姓名
  267. "spouseIdCard": "",//配偶身份证号
  268. "spousePhone": "",//配偶手机号
  269. "guaranteeType": "",//担保类型
  270. "guaranteeFront": "",//反担保人身份证正面
  271. "guaranteeBack": "",//反担保人身份证反面
  272. "guaranteeName": "",//反担保人姓名
  273. "guaranteeIdCard": "",//反担保人身份证号
  274. "guaranteePhone": "",//反担保人手机号
  275. // "guaranteeMaritalStatus": "",//反担保人婚姻状态
  276. // "guaranteeSpouseFront": "",//反担保人配偶身份证正面
  277. // "guaranteeSpouseBack": "",//反担保人配偶身份证反面
  278. // "guaranteeSpouseName": "",//反担保人配偶姓名
  279. // "guaranteeSpouseIdCard": "",//反担保人配偶身份证号
  280. // "guaranteeSpousePhone": "",//反担保人配偶手机号
  281. // "userId": '',//申请人用户ID
  282. // "idCard": "",//申请人身份证号码
  283. // "applicationTime": "",//申请时间
  284. "fileTime": "",//归档时间
  285. "loanSchedule": "",//贷款申请进度(业务进度表查询进度列表):1:申报提交2:业务审核/分配 3:担保初审 4:尽职调查 5:初审风险合规 6:评审会 7:合同签约 8:放款合规风险审核 9:放款通知 10:归档
  286. "loanScheduleName": '',//贷款申请进度名称(中文字)
  287. "auditSchedule": "",//审核进度1:担保初审 2:A角色审核 3:B角色审核 4:风险审核 5:尽职调查 6:上会评审
  288. "auditType": "",//审核状态 1:待审核 2:已通过 3:未通过 4:申诉
  289. "loanApplicationType": "",//贷款申请状态 1:暂存 2:正常 3:回收站 4:归档
  290. "aUserId": "",//A角色用户ID
  291. "aUserName": "",//A角色用户名称
  292. "bUserId": "",//B角色用户ID
  293. "bUserName": "",//B角色用户名称
  294. "shareholderFjList": [],//全体股东信息附件
  295. "loanApplicationFjList": [],//相关附件
  296. "basicFj": {},//基础附件
  297. "declareFj": {},//申报附件
  298. "fileFj": {},//文件出具
  299. "otherFj": {},//其他附件 key值是type类型 value值具体字段查看相关附件新增
  300. },
  301. gdlists:[],//股东信息
  302. basicFj:{},//基础附件
  303. yhlxlist:[],//用户类型
  304. hyztlist:[],//婚姻状态
  305. sbfjlist:[],//申报附件
  306. wjcjlist:[],//文件出具
  307. linkList:[],//外部链接
  308. userList:[],//用户列表
  309. shjdlist:[],//审核进度
  310. shlist:[],//审核信息
  311. shinfo:{},//审核信息
  312. wjcjobj:{},//文件出具对象
  313. fjval:'',//附件类型
  314. userId:this.$store.state.user.userId,
  315. contype:'',//二次确认弹窗
  316. mval:-1,
  317. mite:"",
  318. shtg:'',
  319. }
  320. },
  321. onUnload() {
  322. uni.$off('refreshywlist')
  323. },
  324. onLoad(e) {
  325. this.id=e.id;
  326. uni.$on('refreshywlist',(e) => {
  327. this.getDetail();
  328. })
  329. this.init()
  330. this.getDetail();
  331. this.getScheduleList();
  332. this.getHyperlinkList();//外部链接
  333. this.getUsernoPageList();//获取用户列表
  334. this.getCommentsList()//审核意见
  335. },
  336. mounted() {
  337. uni.getSystemInfo({
  338. success: (e) => {
  339. this.minheight = e.screenHeight- 50;
  340. }
  341. })
  342. this.getHeightFn()
  343. },
  344. onPageScroll(e) {
  345. var scrollTop = Number(e.scrollTop);
  346. var listTop=Number(this.listTop)
  347. if(scrollTop>listTop){
  348. this.fixedflag=true
  349. }else{
  350. this.fixedflag=false
  351. }
  352. },
  353. methods:{
  354. checkPermi, checkRole,
  355. kaType(ite,list){
  356. return selectValue(list, ite);
  357. },
  358. getedit(){
  359. var obj={
  360. type:'edit',
  361. id:this.id,
  362. }
  363. this.$tab.navigateTo('/work/pages/business/add?data='+encodeURIComponent(JSON.stringify(obj)))
  364. },
  365. // 删除
  366. getDelwjFj(id){
  367. var that=this;
  368. uni.showModal({
  369. title: '确认删除',
  370. content: "是否确认删除",
  371. cancelText: '取消',
  372. confirmText: '确认',
  373. success: function(res) {
  374. if (res.confirm) {
  375. getFjDel(id).then(res=>{
  376. if(res.code==200){
  377. that.$toast("删除成功")
  378. setTimeout(function(){
  379. that.getDetail()
  380. },1200)
  381. }
  382. })
  383. } else if (res.cancel) {
  384. }
  385. }
  386. });
  387. },
  388. getfjEdit(ite){
  389. console.log(ite,23)
  390. this.type='fjadd';
  391. this.fjval=ite
  392. },
  393. // 业务进度
  394. getScheduleList(){
  395. var params={
  396. loanApplicationId:this.id
  397. }
  398. getScheduleList(params).then(res=>{
  399. if(res.code==200){
  400. this.stepList=res.data
  401. }
  402. })
  403. },
  404. getWebUel(url){
  405. // this.mval=idx;
  406. // this.mite=ite
  407. this.mtype='';
  408. this.$tab.navigateTo("/pages/common/webview/index?url="+url)
  409. },
  410. getMoreSure(){
  411. var mttype=this.mtype;
  412. var mite=this.mite;
  413. if(mttype=='wb'){
  414. this.mtype='';
  415. this.$tab.navigateTo("/pages/common/webview/index?url="+mite.url)
  416. }
  417. },
  418. // 外部链接
  419. getHyperlinkList(){
  420. var params={
  421. type:1
  422. }
  423. getHyperlinkList(params).then(res=>{
  424. if(res.code==200){
  425. this.linkList=res.rows
  426. }
  427. })
  428. },
  429. // 用户-列表
  430. //用户类型(00系统用户 01注册用户 02管理用户
  431. getUsernoPageList(){
  432. var params={
  433. // userType:'02'
  434. }
  435. getUsernoPageList(params).then(res=>{
  436. if(res.code==200){
  437. this.userList=res.rows
  438. }
  439. })
  440. },
  441. getCommentsList(){
  442. var params={
  443. loanApplicationId:this.id,
  444. }
  445. getCommentsList(params).then(res=>{
  446. if(res.code==200){
  447. var newArr=res.rows;
  448. newArr.forEach(ite=>{
  449. if(ite.imageUrl){
  450. ite.imageUrl=ite.imageUrl.split(',')
  451. }
  452. })
  453. this.shlist=newArr
  454. // this.shlist = res.rows.map(v => {
  455. // return {
  456. // auditType: v.auditType,
  457. // auditView: v.auditView,
  458. // fjUrl:v.fjUrl,
  459. // imageUrl:v.imageUrl.split(',')||v.imageUrl
  460. // }
  461. // })
  462. // this.shlist=res.rows
  463. }
  464. })
  465. },
  466. init(){
  467. // 用户类型
  468. getDictionaryFn('customer_type').then(res=>{
  469. if(res.code==200){
  470. this.yhlxlist = res.data.map(v => {
  471. return {
  472. label: v.dictLabel,
  473. value: v.dictValue
  474. }
  475. })
  476. }
  477. })
  478. // 婚姻状况
  479. getDictionaryFn('marital_status').then(res=>{
  480. if(res.code==200){
  481. this.hyztlist = res.data.map(v => {
  482. return {
  483. label: v.dictLabel,
  484. value: v.dictValue
  485. }
  486. })
  487. }
  488. })
  489. // 申贷银行
  490. getDictionaryFn('shendai_bank').then(res=>{
  491. if(res.code==200){
  492. this.sdyhlist = res.data.map(v => {
  493. return {
  494. label: v.dictLabel,
  495. value: v.dictValue
  496. }
  497. })
  498. }
  499. })
  500. //担保类型
  501. getDictionaryFn('guarantee_type').then(res=>{
  502. if(res.code==200){
  503. this.dblxlist = res.data.map(v => {
  504. return {
  505. label: v.dictLabel,
  506. value: v.dictValue
  507. }
  508. })
  509. }
  510. })
  511. // 附件信息
  512. getDictionaryFn('application_fj_sb').then(res=>{
  513. if(res.code==200){
  514. this.sbfjlist = res.data.map(v => {
  515. return {
  516. label: v.dictLabel,
  517. val: v.dictValue,
  518. fjlist:[]
  519. }
  520. })
  521. }
  522. })
  523. // // 文件出具
  524. getDictionaryFn('application_fj_wjcj').then(res=>{
  525. if(res.code==200){
  526. var obj={}
  527. this.wjcjlist = res.data.map(v => {
  528. // var key=v.dictValue
  529. obj[v.dictValue]=v.dictLabel
  530. return {
  531. label: v.dictLabel,
  532. val: v.dictValue,
  533. fjlist:[]
  534. }
  535. })
  536. this.wjcjobj=obj
  537. }
  538. })
  539. //审核进度
  540. getDictionaryFn('audit_schedule').then(res=>{
  541. if(res.code==200){
  542. this.shjdlist = res.data.map(v => {
  543. return {
  544. label: v.dictLabel,
  545. value: v.dictValue,
  546. }
  547. })
  548. }
  549. })
  550. },
  551. getTab(val){
  552. this.tabval=val;
  553. uni.pageScrollTo({
  554. scrollTop: Number(this.listTop),
  555. duration: 0
  556. })
  557. if(val==5){
  558. this.getCommentsList()
  559. }
  560. },
  561. getClose(){
  562. this.type='';
  563. this.mtype='';
  564. },
  565. getupSubmit(data){
  566. this.shinfo=JSON.parse(JSON.stringify(data))
  567. var type=this.type;
  568. if(type=='ajssh'||type=='bjssh'){
  569. this.contype=this.type
  570. this.type='confirm'
  571. this.shtg=data.auditType
  572. }else{
  573. this.getApplicationSh()
  574. }
  575. },
  576. getSure(){
  577. this.getApplicationSh()
  578. },
  579. getfjAdd(data){
  580. var that=this;
  581. var params=JSON.parse(JSON.stringify(data));
  582. var fjUrl=params.fjUrl
  583. // params.loanApplicationId=this.id;
  584. // params.loanApplicationNumber=this.datainfo.loanApplicationNumber;
  585. // params.auditSchedule=this.auditSchedule;
  586. getFjAdd(fjUrl).then(res=>{
  587. if(res.code==200){
  588. that.$toast('上传附件成功')
  589. setTimeout(function(){
  590. that.getDetail();
  591. uni.$emit('refreshdatalist')
  592. that.type=''
  593. },1200)
  594. }
  595. })
  596. },
  597. getApplicationSh(){
  598. var that=this;
  599. var params=this.shinfo;
  600. params.loanApplicationId=this.id;
  601. params.loanApplicationNumber=this.datainfo.loanApplicationNumber;
  602. params.auditSchedule=this.auditSchedule;
  603. getApplicationSh(params).then(res=>{
  604. if(res.code==200){
  605. that.$toast('审核成功')
  606. setTimeout(function(){
  607. that.getDetail();
  608. uni.$emit('refreshdatalist')
  609. that.type=''
  610. },1200)
  611. }
  612. })
  613. },
  614. getShFn(type){
  615. this.type=type;
  616. this.mtype='';
  617. },
  618. getSsFn(){
  619. var that=this;
  620. uni.showModal({
  621. title: '确认申诉',
  622. content: "是否确认申诉",
  623. cancelText: '取消',
  624. confirmText: '确认',
  625. success: function(res) {
  626. if (res.confirm) {
  627. var params={
  628. loanApplicationId:that.id,
  629. aUserId:that.datainfo.aUserId
  630. }
  631. getApplicationSs(params).then(res=>{
  632. if(res.code==200){
  633. that.$toast("申诉成功")
  634. setTimeout(function(){
  635. uni.$emit('refreshdatalist')
  636. // uni.navigateBack({
  637. // delta:1
  638. // })
  639. },1200)
  640. }
  641. })
  642. } else if (res.cancel) {
  643. }
  644. }
  645. });
  646. },
  647. getCxFn(){
  648. var that=this;
  649. uni.showModal({
  650. title: '确认撤销',
  651. content: "是否确认撤销",
  652. cancelText: '取消',
  653. confirmText: '确认',
  654. success: function(res) {
  655. if (res.confirm) {
  656. var params={
  657. loanApplicationId:that.id,
  658. auditSchedule:that.auditSchedule,
  659. loanSchedule:that.datainfo.loanSchedule,
  660. loanApplicationType:that.datainfo.loanApplicationType
  661. }
  662. getApplicationCx(params).then(res=>{
  663. if(res.code==200){
  664. that.$toast("撤销成功")
  665. setTimeout(function(){
  666. uni.$emit('refreshywlist')
  667. // uni.navigateBack({
  668. // delta:1
  669. // })
  670. },1200)
  671. }
  672. })
  673. } else if (res.cancel) {
  674. }
  675. }
  676. });
  677. },
  678. getGdFn(){
  679. var that=this;
  680. uni.showModal({
  681. title: '确认归档',
  682. content: "是否确认归档",
  683. cancelText: '取消',
  684. confirmText: '确认',
  685. success: function(res) {
  686. if (res.confirm) {
  687. var params={
  688. loanApplicationId:that.id,
  689. auditSchedule:that.auditSchedule,
  690. loanSchedule:that.datainfo.loanSchedule,
  691. loanApplicationType:that.datainfo.loanApplicationType,
  692. loanApplicationNumber:that.datainfo.loanApplicationNumber
  693. }
  694. getapplicationGd(params).then(res=>{
  695. if(res.code==200){
  696. that.$toast("归档成功")
  697. setTimeout(function(){
  698. uni.$emit('refreshywlist')
  699. // uni.navigateBack({
  700. // delta:1
  701. // })
  702. },1200)
  703. }
  704. })
  705. } else if (res.cancel) {
  706. }
  707. }
  708. });
  709. },
  710. getMoreFn(type){
  711. this.mtype=type;
  712. this.mval=-1;
  713. this.mtit=''
  714. },
  715. getSpeedFn(){
  716. if(this.type){
  717. this.type=''
  718. }else{
  719. this.type='ywjd'
  720. }
  721. },
  722. getqmFn(){
  723. this.$tab.navigateTo("/work/pages/business/sign")
  724. },
  725. getDel(){
  726. var that=this;
  727. uni.showModal({
  728. title: '确认删除',
  729. content: "是否确认删除",
  730. cancelText: '取消',
  731. confirmText: '确认',
  732. success: function(res) {
  733. if (res.confirm) {
  734. getApplicationDel(that.id).then(res=>{
  735. if(res.code==200){
  736. that.$toast("删除成功")
  737. setTimeout(function(){
  738. uni.$emit('refreshdatalist')
  739. uni.navigateBack({
  740. delta:1
  741. })
  742. },1200)
  743. }
  744. })
  745. } else if (res.cancel) {
  746. }
  747. }
  748. });
  749. },
  750. getDetail(){
  751. getApplicationDet(this.id).then(res=>{
  752. if(res.code==200){
  753. this.datainfo=res.data;
  754. this.auditSchedule=res.data.auditSchedule
  755. if(res.data.sysUserEnterprise){
  756. this.qyinfo=res.data.sysUserEnterprise
  757. }
  758. this.stepval=res.data.loanSchedule||0;
  759. if(res.data.basicFj){
  760. this.basicFj=res.data.basicFj;
  761. }
  762. // var data=res.data;
  763. // if(data.shareholderFjList){
  764. // var shFjList=[]
  765. // var gdlist=data.shareholderFjList;
  766. // Object.keys(gdlist).some((key) => {
  767. // var fjurl={
  768. // shareholderFrontUrl:gdlist[key].shareholderFrontUrl,
  769. // shareholderBackUrl:gdlist[key].shareholderBackUrl,
  770. // zxurl:gdlist[key].shareholderZxUrl.split(','),
  771. // }
  772. // shFjList.push(fjurl)
  773. // })
  774. // this.gdlists=JSON.parse(JSON.stringify(shFjList))
  775. // }
  776. // this.declareFj=res.data.declareFj;
  777. // 附件信息
  778. // this.otherFj=res.data.otherFj||[]
  779. }
  780. })
  781. },
  782. getHeightFn(){
  783. let query = uni.createSelectorQuery().in(this);
  784. //需要给黄色区域设置一个id标识,在这里是demo
  785. query.select('.zxtop').boundingClientRect(data => {
  786. this.listTop = data.height//赋值,待会要用
  787. }).exec();
  788. },
  789. getPreview(url) {
  790. var newArr=[];
  791. newArr.push(url)
  792. uni.previewImage({
  793. urls: newArr,
  794. current:0,
  795. success: function(data) {
  796. },
  797. fail: function(err) {
  798. }
  799. });
  800. },
  801. onuploadEnd(item) {
  802. var newobj={}
  803. var responseText=JSON.parse(item.responseText)
  804. newobj.name=responseText.originalFilename;
  805. newobj.url=responseText.fileName;
  806. this.filelist.push(newobj)
  807. // this.datainfo.zsyzFjList=JSON.parse(JSON.stringify(this.filelist))
  808. },
  809. getEdit(){
  810. this.type='shhj'
  811. },
  812. getXzFn(ite){
  813. // 本地路径开头使用file://,跟上手机文件本地目录storage/emulated/0,
  814. // 后缀是用于文件命名和格式修改,大家可以使用变量。
  815. var url = baseUrl + ite.url;
  816. var name=ite.name;
  817. let dtask = plus.downloader.createDownload(url, {
  818. filename: 'file://storage/emulated/0/'+baseName+'/' + name
  819. }, (d, status) => {
  820. //d为下载的文件对象
  821. if (status == 200) {
  822. uni.hideLoading();
  823. uni.showToast({
  824. icon: 'none',
  825. mask: true,
  826. title: '已保存到文件夹:/'+baseName+'/'+ name, //保存路径
  827. duration: 3000,
  828. });
  829. //下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
  830. let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
  831. setTimeout(() => {
  832. plus.runtime.openFile(d.filename); //选择软件打开文件
  833. }, 1500)
  834. } else {
  835. //下载失败
  836. uni.hideLoading();
  837. plus.downloader.clear(); //清除下载任务
  838. uni.showToast({
  839. icon: 'none',
  840. mask: true,
  841. title: '下载失败,请稍后重试',
  842. });
  843. }
  844. })
  845. dtask.start();
  846. },
  847. getDown(e){
  848. uni.showLoading({
  849. title: '加载中'
  850. });
  851. var url=baseUrl+e;
  852. uni.downloadFile({
  853. url: url,//文件的下载路径
  854. success(result) {
  855. uni.hideLoading()
  856. var filePath = result.tempFilePath;
  857. uni.openDocument({
  858. filePath: filePath,
  859. showMenu: true,
  860. success: function (res) {
  861. // console.log('打开文档成功');
  862. }
  863. });
  864. },
  865. fail(res) {uni.hideLoading()}
  866. })
  867. },
  868. }
  869. }
  870. </script>
  871. <style lang="scss" scoped>
  872. .failtit{background: #FFECEC;font-weight: 500;font-size: 26rpx;color: #FF6969;text-align: center;line-height: 36rpx;padding: 22rpx;}
  873. .zxtop{padding-bottom: 2rpx;}
  874. .detop{background: #FFFFFF;padding:0rpx 24rpx;margin-bottom: 28rpx;flex: 0 0 auto;
  875. position: relative;
  876. .head{
  877. padding: 40rpx 2rpx;border-bottom: 2rpx solid #E6E6E6;
  878. .top{display: flex;align-items: center;overflow: hidden;
  879. .toptit{font-weight: bold;font-size: 40rpx;color: #222327;}
  880. .statbox{min-width: 140rpx;height: 36rpx;background-color: rgba(255,177,50,0.3);padding: 0 14rpx;box-sizing: border-box;font-weight: bold;font-size: 22rpx;color: #FF6924;display: flex;align-items: center;flex: 0 0 auto;border-radius: 10rpx;margin-left: 34rpx;
  881. image{width: 22rpx;height: 22rpx;margin-left: 6rpx;}
  882. }
  883. }
  884. .adr{font-weight: 500;font-size: 26rpx;color: #666666;margin-top: 12rpx;}
  885. }
  886. .deta{display: flex;flex-wrap: wrap;padding: 16rpx 0 28rpx;
  887. .lists{padding:20rpx 0;width: 33.3%;display: flex;flex-direction: column;align-items: center;position: relative;
  888. &::after{width: 2rpx;height: 60rpx;background: #E6E6E6;content: '';position: absolute;right: 0;top: 50%;margin-top: -30rpx;}
  889. &:nth-of-type(3n){
  890. &::after{display: none;}
  891. }
  892. .tit{font-weight: 500;font-size: 26rpx;color: #AAAAAA;margin-bottom: 38rpx;}
  893. .txt{font-weight: bold;font-size: 30rpx;color: #222327;
  894. text{font-size: 26rpx;color: #666666;font-weight: normal;}
  895. }
  896. }
  897. }
  898. }
  899. .details{
  900. // display: flex;flex-direction: column;height: 100vh;overflow: hidden;
  901. }
  902. .main{background-color: #FFFFFF;flex: 1;display: flex;flex-direction: column;overflow: hidden;
  903. .tabs{padding: 0 6rpx 0 36rpx;display: flex;flex-wrap: nowrap;overflow: auto;flex: 0 0 auto;
  904. &.tabfix{position: fixed;left: 0;right: 0;z-index: 2;top: 0;background-color: #ffffff;border-bottom: 2rpx solid #E6E6E6;}
  905. .tab{font-weight: 500;font-size: 26rpx;color: #666666;height: 116rpx;display: flex;align-items: center;margin-right: 26rpx;flex: 0 0 auto;position: relative;
  906. &.act{color: #00A9F0;font-weight: bold;
  907. &::after{width: 100%;background: #00A9F0;position: absolute;left: 0;bottom: 0;
  908. border-radius: 2rpx;height: 4rpx;content: '';}
  909. }
  910. }
  911. }
  912. .mainb{flex: 1;overflow: auto;}
  913. }
  914. .speed{width: 96rpx;height: 140rpx;background: #FFFFFF;box-shadow: 0px 0px 14rpx 0px rgba(184,184,184,0.76);border-radius: 20rpx;
  915. display: flex;align-items: center;flex-direction: column;justify-content: center;
  916. position: absolute;right: 28rpx;top: 86rpx;z-index: 2;padding: 0 26rpx;
  917. image{width: 26rpx;height: 28rpx;margin-bottom: 8rpx;}
  918. view{font-weight: 500;font-size: 22rpx;color: #666666;}
  919. }
  920. .gdimg{width: 110rpx;height: 86rpx;position: absolute;right: 40rpx;top: 130rpx;}
  921. .footbtns{width: 100%;height: 100rpx;position: fixed;left: 0;right: 0;bottom: 0;display: flex;border-top: 2rpx solid #E6E6E6;
  922. .fbtns{flex: 1;height: 100rpx;font-weight: bold;font-size: 30rpx;display: flex;align-items: center;justify-content: center;
  923. &.bga{background: $com-cd3;color: #FFFFFF;}
  924. &.bgb{background: #FFFFFF;;color: $com-cd3;}
  925. }
  926. }
  927. .morebox{
  928. position: fixed;left: 0;right: 0;bottom: 0;z-index: 10;
  929. .molists{
  930. view{width: 100%;background: #ffffff;font-weight: 500;font-size: 30rpx;color: #222327;border-bottom: 2rpx solid #E6E6E6;min-height: 100rpx;display: flex;align-items: center;justify-content: center;padding: 10rpx;
  931. box-sizing: border-box;
  932. &.mcoa{color: #00A9F0;}
  933. }
  934. }
  935. .surbtns{
  936. width: 100%;height: 100rpx;background: #00A9F0;display: flex;align-items: center;justify-content: center;
  937. font-size: 30rpx;color: #ffffff;margin-top: 24rpx;
  938. }
  939. }
  940. </style>