details.vue 38 KB

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