details.vue 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. <template>
  2. <view class="details">
  3. <view class="zxtop">
  4. <view class="failtit">该业务申请未通过风险部审核,可完善信息后进行申诉</view>
  5. <view class="detop">
  6. <!-- 归档 归档后没有业务进度-->
  7. <image :src="gdicoimg" class="gdimg" v-if="gdflag"></image>
  8. <view class="speed" v-else @click="getSpeedFn" :style="type=='ywjd'?'z-index: 6;':''">
  9. <image :src="speedimg"></image>
  10. <view>业务进度</view>
  11. </view>
  12. <view class="head">
  13. <view class="top">
  14. <view class="toptit">安徽嘉欣医疗用品有限公司</view>
  15. <view class="statbox">专精特新<image :src="start"></image></view>
  16. </view>
  17. <view class="adr">企业地址 | 潜山市经济开发区</view>
  18. <view class="adr">申报时间 | 2024-03-21 15:12:48</view>
  19. <view class="adr">归档时间 | 2024-03-21 15:12:48</view>
  20. </view>
  21. <view class="deta">
  22. <view class="lists">
  23. <view class="tit">申请额度</view>
  24. <view class="txt">500<text>/万元</text></view>
  25. </view>
  26. <view class="lists">
  27. <view class="tit">使用期限</view>
  28. <view class="txt">12<text>/个月</text></view>
  29. </view>
  30. <view class="lists">
  31. <view class="tit">申贷银行</view>
  32. <view class="txt">农商行</view>
  33. </view>
  34. <view class="lists">
  35. <view class="tit">资金用途</view>
  36. <view class="txt">流动资金周转</view>
  37. </view>
  38. <view class="lists">
  39. <view class="tit">还款来源</view>
  40. <view class="txt">营业收入</view>
  41. </view>
  42. <view class="lists">
  43. <view class="tit">担保类型</view>
  44. <view class="txt">担保贷款</view>
  45. </view>
  46. </view>
  47. </view>
  48. </view>
  49. <view class="main">
  50. <!-- tab -->
  51. <view class="tabs" :class="fixedflag?'tabfix':''">
  52. <view class="tab" :class="tabval==ite.val?'act':''" v-for="(ite,idx) in tabList" :key="idx" @click="getTab(ite.val)">{{ite.tit}}</view>
  53. </view>
  54. <view style="height:116rpx;" v-if="fixedflag"></view>
  55. <!-- 企业信息 -->
  56. <view class="mainb" :style="'min-height: ' + minheight + 'px;'">
  57. <block v-if="tabval==0">
  58. <aqyxx @getDown="getDown" :datainfo="datainfo"></aqyxx>
  59. </block>
  60. <block v-if="tabval==1">
  61. <bfrxx @getDown="getDown" :datainfo="datainfo"></bfrxx>
  62. </block>
  63. <block v-if="tabval==2">
  64. <cfdbrxx @getDown="getDown" :datainfo="datainfo"></cfdbrxx>
  65. </block>
  66. <block v-if="tabval==3">
  67. <dfjxx @getDown="getDown" :datainfo="datainfo"></dfjxx>
  68. </block>
  69. <block v-if="tabval==4">
  70. <ewjcj @getDown="getDown" :datainfo="datainfo" @getEdit="getEdit"></ewjcj>
  71. </block>
  72. </view>
  73. <!-- 法人信息 -->
  74. </view>
  75. <block v-if="!gdflag">
  76. <view class="h50"></view>
  77. <view class="footbtns">
  78. <!-- 申请审核 start-->
  79. <view class="fbtns bga" @click="getShFn('sh')">审核</view>
  80. <!-- 业务审核后出具担保意向函-->
  81. <!-- <view class="fbtns bgb">上传文件</view>
  82. <view class="fbtns bga" @click="getSubmit">查看担保意向函</view> -->
  83. <!-- end -->
  84. <!-- a,b角按钮 start-->
  85. <view class="fbtns bgb" @click="getShFn('jztcsh')">尽职调查反馈</view>
  86. <view class="fbtns bga" @click="getShFn('ajssh')">a审核</view>
  87. <view class="fbtns bga" @click="getShFn('bjssh')">b审核</view>
  88. <!-- 审核后 -->
  89. <view class="fbtns bga" @click="getMoreFn('more')">更多操作</view>
  90. <!-- 未通过申诉 -->
  91. <view class="fbtns bga">申诉</view>
  92. <!-- end -->
  93. <!-- 风险部门 start-->
  94. <view class="fbtns bgb" @click="getMoreFn('wb')">外部工具平台</view>
  95. <view class="fbtns bga" @click="getMoreFn('fxmore')">更多操作</view>
  96. <!-- end -->
  97. <!-- 上会管理员 start -->
  98. <view class="fbtns bgb" @click="getMoreFn('shmore')">更多操作</view>
  99. <view class="fbtns bga" @click="getShFn('shsh')">审核</view>
  100. <!-- 上会管理员 end -->
  101. <!-- 合同签约start -->
  102. <view class="fbtns bgb" @click="getShFn('shhj')">上传附件</view>
  103. <view class="fbtns bga" @click="getMoreFn('htqy')">出具合同</view>
  104. <view class="fbtns bga" @click="getqmFn">签名</view>
  105. <!-- 合同签约end -->
  106. <!-- 风险部放款 start-->
  107. <view class="fbtns bgb" @click="getShFn('shhj')">上传附件</view>
  108. <view class="fbtns bga" @click="">出具放款合规表</view>
  109. <!-- end -->
  110. <view class="fbtns bga" @click="">放款通知书</view>
  111. <view class="fbtns bga" @click="">一键归档</view>
  112. </view>
  113. </block>
  114. <!-- 更多操作 -->
  115. <view class="bgbox" @click="getClose" v-if="moreflag"></view>
  116. <view v-if="moreflag" class="morebox">
  117. <view class="molists">
  118. <!-- 审核详情后 -->
  119. <block v-if="mtype=='more'">
  120. <view class="mcoa" @click="getShFn('shhj')">上传附件</view>
  121. <view>撤回</view>
  122. </block>
  123. <!--风险部门 start 外部工具平台 -->
  124. <block v-if="mtype=='wb'">
  125. <view >中国个人信用查询网</view>
  126. <view class="mcoa">中国执行信息公开网</view>
  127. <view>最高人民法院诉讼服务网</view>
  128. <view>国家企业信用信息公示系统</view>
  129. </block>
  130. <!-- 更多操作 -->
  131. <block v-if="mtype=='fxmore'">
  132. <view @click="getShFn('fxbmsh')">审核</view>
  133. <view class="mcoa">出具材料合规表</view>
  134. <view @click="getShFn('shhj')">上传附件</view>
  135. <view>撤回</view>
  136. </block>
  137. <!-- 风险部门 end -->
  138. <!-- 上会管理员 start -->
  139. <block v-if="mtype=='shmore'">
  140. <view>出具评审意见签批表</view>
  141. <view class="mcoa">上会纪要</view>
  142. <view @click="getShFn('shhj')">上传附件</view>
  143. </block>
  144. <!-- 上会管理员 end -->
  145. <!-- 合同签约 start -->
  146. <block v-if="mtype=='htqy'">
  147. <view>委托保证合同</view>
  148. <view class="mcoa">保证反担保合同(法人)</view>
  149. <view>保证反担保合同(自然人)</view>
  150. <view>抵押反担保合同(法人)</view>
  151. <view>抵押反担保合同(自然人)</view>
  152. </block>
  153. <!-- 合同签约 end -->
  154. </view>
  155. <view class="surbtns">确认</view>
  156. </view>
  157. <pop-up :type="type" :stepList="stepList" :stepval="stepval" @getClose="getClose" @getupSubmit="getupSubmit"></pop-up>
  158. </view>
  159. </template>
  160. <script>
  161. import config from '@/config'
  162. const baseUrl = config.baseUrl
  163. import popUp from "@/work/components/popup/popup.vue"
  164. import aqyxx from "@/work/components/business/aqyxx.vue"
  165. import bfrxx from "@/work/components/business/bfrxx.vue"
  166. import cfdbrxx from "@/work/components/business/cfdbrxx.vue"
  167. import dfjxx from "@/work/components/business/dfjxx.vue"
  168. import ewjcj from "@/work/components/business/ewjcj.vue"
  169. import {uploadmore} from '@/utils/common.js'
  170. import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
  171. export default{
  172. components:{aqyxx,bfrxx,cfdbrxx,dfjxx,ewjcj,popUp},
  173. data(){
  174. return{
  175. start:require('@/work/static/images/start.png'),
  176. titimg:require('@/work/static/images/infotit.png'),
  177. speedimg:require('@/work/static/images/speed.png'),
  178. gdicoimg:require('@/work/static/images/gdico.png'),
  179. datainfo:{},
  180. tabval:3,
  181. type:'',
  182. tabList:[{tit:"企业信息",val:0},{tit:"法人信息",val:1},{tit:"反担保人信息",val:2},{tit:"附件信息",val:3},{tit:"文件出具",val:4},],
  183. stepList:[
  184. {tit:"业务审核、分配",time:'2024-03-10 16:12',val:0},
  185. {tit:"担保初审",time:'2024-03-10 16:12',val:1},
  186. {tit:"尽职调查",time:'2024-03-10 16:12',val:2},
  187. {tit:"初审风险合规",time:'2024-03-10 16:12',val:3},
  188. {tit:"评审会",time:'2024-03-10 16:12',val:4},
  189. {tit:"合同签约",time:'2024-03-10 16:12',val:4},
  190. {tit:"放款合规风险审核",time:'2024-03-10 16:12',val:4},
  191. {tit:"放款通知",time:'2024-03-10 16:12',val:4},
  192. {tit:"归档",time:'2024-03-10 16:12',val:4},
  193. ],
  194. stepval:2,
  195. gdflag:false,
  196. moreflag:false,
  197. mtype:'',
  198. minheight:0,
  199. listTop:0,//距离顶部的距离
  200. fixedflag:false,
  201. }
  202. },
  203. mounted() {
  204. uni.getSystemInfo({
  205. success: (e) => {
  206. this.minheight = e.screenHeight- 50;
  207. }
  208. })
  209. this.getHeightFn()
  210. },
  211. onPageScroll(e) {
  212. var scrollTop = Number(e.scrollTop);
  213. var listTop=Number(this.listTop)
  214. if(scrollTop>listTop){
  215. this.fixedflag=true
  216. }else{
  217. this.fixedflag=false
  218. }
  219. },
  220. methods:{
  221. checkPermi, checkRole,
  222. getTab(val){
  223. this.tabval=val;
  224. uni.pageScrollTo({
  225. scrollTop: Number(this.listTop),
  226. duration: 0
  227. })
  228. },
  229. getClose(){
  230. this.type='';
  231. this.moreflag=false;
  232. },
  233. getupSubmit(){
  234. if(this.type=='ajssh'||this.type=='bjssh'||this.type=='fxbmsh'){
  235. this.type='confirm'
  236. }
  237. },
  238. getShFn(type){
  239. this.type=type;
  240. this.moreflag=false;
  241. },
  242. getMoreFn(type){
  243. this.mtype=type;
  244. this.moreflag=true
  245. },
  246. getSpeedFn(){
  247. if(this.type){
  248. this.type=''
  249. }else{
  250. this.type='ywjd'
  251. }
  252. },
  253. getqmFn(){
  254. this.$tab.navigateTo("/work/pages/business/sign")
  255. },
  256. getHeightFn(){
  257. let query = uni.createSelectorQuery().in(this);
  258. //需要给黄色区域设置一个id标识,在这里是demo
  259. query.select('.zxtop').boundingClientRect(data => {
  260. this.listTop = data.height//赋值,待会要用
  261. }).exec();
  262. },
  263. getPreview(url) {
  264. var newArr=[];
  265. newArr.push(url)
  266. uni.previewImage({
  267. urls: newArr,
  268. current:0,
  269. success: function(data) {
  270. },
  271. fail: function(err) {
  272. }
  273. });
  274. },
  275. onuploadEnd(item) {
  276. var newobj={}
  277. var responseText=JSON.parse(item.responseText)
  278. newobj.name=responseText.originalFilename;
  279. newobj.url=responseText.fileName;
  280. this.filelist.push(newobj)
  281. // this.datainfo.zsyzFjList=JSON.parse(JSON.stringify(this.filelist))
  282. },
  283. getEdit(){
  284. this.type='shhj'
  285. },
  286. getDown(e){
  287. uni.showLoading({
  288. title: '加载中'
  289. });
  290. var url=baseUrl+e;
  291. uni.downloadFile({
  292. url: url,//文件的下载路径
  293. success(result) {
  294. uni.hideLoading()
  295. var filePath = result.tempFilePath;
  296. uni.openDocument({
  297. filePath: filePath,
  298. showMenu: true,
  299. success: function (res) {
  300. // console.log('打开文档成功');
  301. }
  302. });
  303. },
  304. fail(res) {uni.hideLoading()}
  305. })
  306. },
  307. }
  308. }
  309. </script>
  310. <style lang="scss" scoped>
  311. .failtit{background: #FFECEC;font-weight: 500;font-size: 26rpx;color: #FF6969;text-align: center;line-height: 36rpx;padding: 22rpx;}
  312. .zxtop{padding-bottom: 2rpx;}
  313. .detop{background: #FFFFFF;padding:0rpx 24rpx;margin-bottom: 28rpx;flex: 0 0 auto;
  314. position: relative;
  315. .head{
  316. padding: 40rpx 2rpx;border-bottom: 2rpx solid #E6E6E6;
  317. .top{display: flex;align-items: center;overflow: hidden;
  318. .toptit{font-weight: bold;font-size: 40rpx;color: #222327;}
  319. .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;
  320. image{width: 22rpx;height: 22rpx;margin-left: 6rpx;}
  321. }
  322. }
  323. .adr{font-weight: 500;font-size: 26rpx;color: #666666;margin-top: 12rpx;}
  324. }
  325. .deta{display: flex;flex-wrap: wrap;padding: 16rpx 0 28rpx;
  326. .lists{padding:20rpx 0;width: 33.3%;display: flex;flex-direction: column;align-items: center;position: relative;
  327. &::after{width: 2rpx;height: 60rpx;background: #E6E6E6;content: '';position: absolute;right: 0;top: 50%;margin-top: -30rpx;}
  328. &:nth-of-type(3n){
  329. &::after{display: none;}
  330. }
  331. .tit{font-weight: 500;font-size: 26rpx;color: #AAAAAA;margin-bottom: 38rpx;}
  332. .txt{font-weight: bold;font-size: 30rpx;color: #222327;
  333. text{font-size: 26rpx;color: #666666;font-weight: normal;}
  334. }
  335. }
  336. }
  337. }
  338. .details{
  339. // display: flex;flex-direction: column;height: 100vh;overflow: hidden;
  340. }
  341. .main{background-color: #FFFFFF;flex: 1;display: flex;flex-direction: column;overflow: hidden;
  342. .tabs{padding: 0 6rpx 0 36rpx;display: flex;flex-wrap: nowrap;overflow: auto;flex: 0 0 auto;
  343. &.tabfix{position: fixed;left: 0;right: 0;z-index: 2;top: 0;background-color: #ffffff;border-bottom: 2rpx solid #E6E6E6;}
  344. .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;
  345. &.act{color: #00A9F0;font-weight: bold;
  346. &::after{width: 100%;background: #00A9F0;position: absolute;left: 0;bottom: 0;
  347. border-radius: 2rpx;height: 4rpx;content: '';}
  348. }
  349. }
  350. }
  351. .mainb{flex: 1;overflow: auto;}
  352. }
  353. .speed{width: 96rpx;height: 140rpx;background: #FFFFFF;box-shadow: 0px 0px 14rpx 0px rgba(184,184,184,0.76);border-radius: 20rpx;
  354. display: flex;align-items: center;flex-direction: column;justify-content: center;
  355. position: absolute;right: 28rpx;top: 86rpx;z-index: 2;padding: 0 26rpx;
  356. image{width: 26rpx;height: 28rpx;margin-bottom: 8rpx;}
  357. view{font-weight: 500;font-size: 22rpx;color: #666666;}
  358. }
  359. .gdimg{width: 110rpx;height: 86rpx;position: absolute;right: 40rpx;top: 130rpx;}
  360. .footbtns{width: 100%;height: 100rpx;position: fixed;left: 0;right: 0;bottom: 0;display: flex;border-top: 2rpx solid #E6E6E6;
  361. .fbtns{flex: 1;height: 100rpx;font-weight: bold;font-size: 30rpx;display: flex;align-items: center;justify-content: center;
  362. &.bga{background: $com-cd3;color: #FFFFFF;}
  363. &.bgb{background: #FFFFFF;;color: $com-cd3;}
  364. }
  365. }
  366. .morebox{
  367. position: fixed;left: 0;right: 0;bottom: 0;z-index: 10;
  368. .molists{
  369. 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;
  370. box-sizing: border-box;
  371. &.mcoa{color: #00A9F0;}
  372. }
  373. }
  374. .surbtns{
  375. width: 100%;height: 100rpx;background: #00A9F0;display: flex;align-items: center;justify-content: center;
  376. font-size: 30rpx;color: #ffffff;margin-top: 24rpx;
  377. }
  378. }
  379. </style>