details.vue 34 KB

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