details.vue 39 KB

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