TaskUploadData.vue 116 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027
  1. <template>
  2. <a-spin :spinning="uploading" size="large" tip="正在提交资料,请勿关闭当前网页...">
  3. <!-- 客户信息-->
  4. <a-page-header
  5. style="background-color: #FFFFFF;margin-bottom:10px"
  6. title="特审复开资料填写"
  7. sub-title=""
  8. @back="back"
  9. >
  10. <div>
  11. <a-form-model
  12. ref="form"
  13. :model="infoModel"
  14. :rules="rules"
  15. >
  16. <a-row v-if="specialResult.basicInfoState == '1' || detail">
  17. <a-col :span="6">
  18. <a-form-model-item label="用户选择" prop="userOpenState" v-bind="labelCol4">
  19. <span>{{ infoModel.userLable == '0' ? '个人户' : '单位户' }}</span>
  20. </a-form-model-item>
  21. </a-col>
  22. <a-col :span="6">
  23. <a-form-model-item label="申请复开号码" prop="openingNumber" v-bind="labelCol4">
  24. <span>{{ infoModel.openingNumber }}</span>
  25. </a-form-model-item>
  26. </a-col>
  27. <a-col :span="6">
  28. <a-form-model-item label="客户名称(使用人)" prop="customerName" v-bind="labelCol4">
  29. <span>{{ infoModel.customerName }}</span>
  30. </a-form-model-item>
  31. </a-col>
  32. <a-col :span="6">
  33. <a-form-model-item label="客户经理手机号" v-bind="labelCol4">
  34. <span>{{ infoModel.accountManagerPhone }}</span>
  35. </a-form-model-item>
  36. </a-col>
  37. <a-col :span="6" v-if="infoModel.userLable == '1'">
  38. <a-form-model-item label="单位名称" prop="unitName" v-bind="labelCol4">
  39. <span>{{ infoModel.unitName }}</span>
  40. </a-form-model-item>
  41. </a-col>
  42. <a-col :span="6">
  43. <a-form-model-item label="最后一次关停时间" prop="shutdownTime" v-bind="labelCol4">
  44. <span>{{ infoModel.shutdownTime }}</span>
  45. </a-form-model-item>
  46. </a-col>
  47. <a-col :span="6">
  48. <a-form-model-item label="申请复开原因" prop="reasonReopening" v-bind="labelCol4">
  49. <span>{{ infoModel.reasonReopening }}</span>
  50. </a-form-model-item>
  51. </a-col>
  52. <a-col :span="24">
  53. <a-form-model-item label="材料标签选择" prop="userOpenState" v-bind="labelCol1">
  54. <a-radio-group :disabled="true" v-model="infoModel.materialLabel" button-style="solid">
  55. <span>{{ infoModel.userLable == '0' ? '材料不全(有特审/签报)' : '材料齐全(无特审)' }}</span>
  56. </a-radio-group>
  57. </a-form-model-item>
  58. </a-col>
  59. <a-col :span="24">
  60. <a-form-model-item label="关停标签选择" prop="userOpenState" v-bind="labelCol1">
  61. <span v-if="infoModel.shutdownLabel.indexOf('0') > -1">安防停机(高危漫游地)</span>
  62. <span v-if="infoModel.shutdownLabel.indexOf('1') > -1">安防关停(紫名单)</span>
  63. <span v-if="infoModel.shutdownLabel.indexOf('2') > -1">安防停机(专班研判)</span>
  64. <span v-if="infoModel.shutdownLabel.indexOf('3') > -1">安防停机(可复开)</span>
  65. <span v-if="infoModel.shutdownLabel.indexOf('4') > -1">沉默移动卡保护性单停 </span>
  66. <span v-if="infoModel.shutdownLabel.indexOf('5') > -1">集团一点停复机(单停) </span>
  67. <span v-if="infoModel.shutdownLabel.indexOf('6') > -1">大数据保护停机单停 </span>
  68. <span v-if="infoModel.shutdownLabel.indexOf('7') > -1">工信部断卡单停 </span>
  69. <span v-if="infoModel.shutdownLabel.indexOf('8') > -1">实人核验未通过关停(单停)</span>
  70. <span v-if="infoModel.shutdownLabel.indexOf('999') > -1">其他 {{ infoModel.shutdownLabelOther }} </span>
  71. </a-form-model-item>
  72. </a-col>
  73. </a-row>
  74. <a-row v-if="(specialResult.basicInfoState == '0' || !rectification)">
  75. <a-col :span="6">
  76. <a-form-model-item label="用户选择" prop="userOpenState" v-bind="labelCol4">
  77. <a-radio-group v-model="infoModel.userLable" button-style="solid" @change="stepLoading">
  78. <a-radio-button value="0">个人户</a-radio-button>
  79. <a-radio-button value="1">单位户</a-radio-button>
  80. </a-radio-group>
  81. </a-form-model-item>
  82. </a-col>
  83. <a-col :span="6">
  84. <a-form-model-item label="申请复开号码" prop="openingNumber" v-bind="labelCol4">
  85. <a-input :disabled="rectificationInput" v-model="infoModel.openingNumber"
  86. placeholder="申请复开号码"></a-input>
  87. </a-form-model-item>
  88. </a-col>
  89. <a-col :span="6">
  90. <a-form-model-item label="客户名称(使用人)" prop="customerName" v-bind="labelCol4">
  91. <a-input :disabled="rectificationInput" v-model="infoModel.customerName"
  92. placeholder="客户名称/使用人名称"></a-input>
  93. </a-form-model-item>
  94. </a-col>
  95. <a-col :span="6" v-if="infoModel.userLable == '1'">
  96. <a-form-model-item label="单位名称" prop="unitName" v-bind="labelCol4">
  97. <a-input v-model="infoModel.unitName" placeholder="单位名称"></a-input>
  98. </a-form-model-item>
  99. </a-col>
  100. <a-col :span="6">
  101. <a-form-model-item label="客户经理手机号" v-bind="labelCol4">
  102. <a-input :disabled="rectificationInput" v-model="infoModel.accountManagerPhone"
  103. placeholder="客户经理手机号"></a-input>
  104. </a-form-model-item>
  105. </a-col>
  106. <a-col :span="6">
  107. <a-form-model-item label="最后一次关停时间" prop="shutdownTime" v-bind="labelCol4">
  108. <a-date-picker :style="{width:'100%'}" v-model="infoModel.shutdownTime"
  109. format="YYYY-MM-DD"
  110. showTime valueFormat="YYYY-MM-DD"/>
  111. </a-form-model-item>
  112. </a-col>
  113. <a-col :span="6">
  114. <a-form-model-item label="申请复开原因" prop="reasonReopening" v-bind="labelCol4">
  115. <a-input v-model="infoModel.reasonReopening" placeholder="申请复开原因"></a-input>
  116. </a-form-model-item>
  117. </a-col>
  118. <a-col :span="24" v-if="specialResult.basicInfoState != '1'">
  119. <a-form-model-item label="材料标签选择" prop="userOpenState" v-bind="labelCol1">
  120. <a-radio-group :disabled="rectificationInput" v-model="infoModel.materialLabel" button-style="solid"
  121. @change="stepLoading">
  122. <a-radio-button value="0">材料不全(有特审/签报)</a-radio-button>
  123. <a-radio-button value="1">材料齐全(无特审)</a-radio-button>
  124. </a-radio-group>
  125. </a-form-model-item>
  126. </a-col>
  127. <a-col :span="24" v-if="specialResult.basicInfoState != '1'">
  128. <a-form-model-item label="关停标签选择" prop="userOpenState" v-bind="labelCol1">
  129. <a-checkbox-group v-model="infoModel.shutdownLabel" button-style="solid" @change="stepLoading">
  130. <a-checkbox value="0">安防停机(高危漫游地)</a-checkbox>
  131. <a-checkbox value="1">安防关停(紫名单)</a-checkbox>
  132. <a-checkbox value="2">安防停机(专班研判)</a-checkbox>
  133. <a-checkbox value="3">安防停机(可复开)</a-checkbox>
  134. <a-checkbox value="4">沉默移动卡保护性单停</a-checkbox>
  135. <a-checkbox value="5">集团一点停复机(单停)</a-checkbox>
  136. <a-checkbox value="6">大数据保护停机单停</a-checkbox>
  137. <a-checkbox value="7">工信部断卡单停</a-checkbox>
  138. <a-checkbox value="8">实人核验未通过关停(单停)</a-checkbox>
  139. <a-checkbox value="999">其它(手动输入名称)</a-checkbox>
  140. <a-input style="width: 300px;left: 10px" v-show="infoModel.shutdownLabel.indexOf('999') > -1"
  141. v-model:value="infoModel.shutdownLabelOther" placeholder=请输入关停标签名称></a-input>
  142. </a-checkbox-group>
  143. </a-form-model-item>
  144. </a-col>
  145. </a-row>
  146. <!-- 基础信息稽核结果-->
  147. <div v-if="rectification">
  148. <a-form-model-item label="稽核是否通过" prop="basicCheckState" v-bind="labelCol1">
  149. <a-tag class="font-size-14" v-if="specialResult.basicInfoState == 0" color="#f50">未通过</a-tag>
  150. <a-tag class="font-size-14" v-if="specialResult.basicInfoState == 1" color="#2db7f5">通过</a-tag>
  151. </a-form-model-item>
  152. <a-form-model-item label="稽核结果备注" prop="basicCheckNote" v-bind="labelCol1">
  153. <a-tag class="font-size-14" color="orange">{{ specialResult.basicInfoNote }}</a-tag>
  154. </a-form-model-item>
  155. </div>
  156. </a-form-model>
  157. </div>
  158. </a-page-header>
  159. <!-- 步骤条-->
  160. <a-card style="margin-bottom:10px;width: 15%;float: left">
  161. <a-steps direction="vertical" :current="steps.current" size="small" @change="stepsClick">
  162. <a-step v-for="item in steps.stepsNow" :key="item.title" :status="item.status">
  163. <a-icon v-if="item.solution" style='color: #faad14;' type="solution" slot="icon"/>
  164. <span v-if="item.status=='wait'" slot="title">{{ item.title }}</span>
  165. <span v-if="item.status=='error' && !item.solution" style="color: red" slot="title">{{ item.title }}</span>
  166. <span v-if="item.status=='error' && item.solution" style="color: #faad14" slot="title">{{ item.title }}</span>
  167. <span v-if="item.status=='finish'" slot="title">{{ item.title }}</span>
  168. <span v-if="item.status=='process'" slot="title">{{ item.title }}</span>
  169. </a-step>
  170. </a-steps>
  171. <a-button v-if="!rectification" @click="stagingAuditLot" style="width: 100%" type="warn">暂存</a-button>
  172. <div v-if="!batchImproves">
  173. <a-button v-if="!detail" @click="submitAuditLot" style="width: 100%;position: relative;top: 5px"
  174. type="primary">
  175. 提交申请
  176. </a-button>
  177. <a-button v-if="!detail && rectification" @click="closeAuditLot"
  178. style="width: 100%;position: relative;top: 10px">
  179. 关闭复开
  180. </a-button>
  181. </div>
  182. </a-card>
  183. <!-- 系统实名制截图-->
  184. <a-card v-if="steps.currentId == 'nameFindCompliance'"
  185. style="margin-bottom:10px;
  186. float: left;width: 83%;left: 2%">
  187. <div slot="title">
  188. <span style="float: left;position: relative;top: 4px">系统实名制截图</span>
  189. </div>
  190. <!-- 附件-->
  191. <div>
  192. <div v-if="rectification">
  193. <a-form-model-item style="left: 0%;width: 90%;" label="稽核是否通过" prop="basicCheckState" v-bind="labelCol1Note">
  194. <a-tag class="font-size-14" v-if="specialResult.nameFindComplianceState == 0" color="#f50">未通过</a-tag>
  195. <a-tag class="font-size-14" v-if="specialResult.nameFindComplianceState == 1" color="#2db7f5">通过</a-tag>
  196. </a-form-model-item>
  197. <a-form-model-item style="left: 0%;width: 90%;" label="稽核结果备注" prop="basicCheckNote" v-bind="labelCol1Note">
  198. <a-tag class="font-size-14" color="orange">{{ specialResult.nameFindComplianceNote }}</a-tag>
  199. </a-form-model-item>
  200. </div>
  201. <a-form-model-item style="left: 0%;width: 90%;" label="实名制截图备注:" v-bind="labelCol1Note">
  202. <span v-if="specialResult.nameFindComplianceState == 1">{{ infoModel.nameFindComplianceRemark }}</span>
  203. <a-textarea v-else style="height: 77px"
  204. v-model="infoModel.nameFindComplianceRemark"
  205. @change="textareaChange('nameFindCompliance','nameFindComplianceRemark')"
  206. placeholder="如没有系统实名制截图,需要说明原因"
  207. />
  208. <!-- :auto-size="{ minRows: 3, maxRows: 5 }"-->
  209. </a-form-model-item>
  210. <!-- 文件上传-->
  211. <div class="file-div-minio-upload">
  212. <div class="thumb-example" style="position: relative">
  213. <!-- swiper1 -->
  214. <swiper
  215. class="swiper gallery-top"
  216. :options="swiperOptionTop"
  217. ref="swiperTop"
  218. >
  219. <swiper-slide class="slide-1" v-for="(item, index) in infoModel.nameFindCompliance" :key="item.id">
  220. <iframe
  221. v-if="item.urlBase"
  222. frameborder="1"
  223. :src="item.urlBase"
  224. ref="ifr"
  225. style="position: relative;"
  226. width="100%"
  227. height="500px"
  228. scrolling="auto">
  229. </iframe>
  230. <img style="width: 100%;height: 500px;border: 1px solid;"
  231. v-if="!item.urlBase" :src="noDataPng" border="1">
  232. <a-button
  233. v-if="infoModel.nameFindCompliance.length && item.urlBase && specialResult.nameFindComplianceState != 1"
  234. style="display: block;margin-top: 10px;border-color: red;color: red;float: left"
  235. danger @click="removeFile(item,'nameFindCompliance')">移除
  236. </a-button>
  237. <a-button
  238. style="display: block;position: relative;left:20px;margin-top: 10px;border-color: #1890FF;color: #1890FF"
  239. v-if="infoModel.nameFindCompliance.length && item.urlBase"
  240. @click="jumpUrl(item.urlBase)">预览
  241. </a-button>
  242. </swiper-slide>
  243. <!-- <div
  244. class="swiper-button-next swiper-button-white"
  245. slot="button-next"
  246. ></div>
  247. <div
  248. class="swiper-button-prev swiper-button-white"
  249. slot="button-prev"
  250. ></div>-->
  251. </swiper>
  252. <!-- swiper2 Thumbs -->
  253. <swiper
  254. class="swiper gallery-thumbs"
  255. :options="swiperOptionThumbs"
  256. ref="swiperThumbs"
  257. >
  258. <swiper-slide
  259. class="slide"
  260. style="width:100px;height:100px;"
  261. v-for="(item, index) in infoModel.nameFindCompliance"
  262. :key="item.id"
  263. >
  264. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  265. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  266. </div>
  267. <img style="width: 100%;height: 96px"
  268. v-if="!item.urlBase" :src="noDataPng" border="1">
  269. </swiper-slide>
  270. <!-- 点我上传文件按钮-->
  271. <div class="clearfix">
  272. <a-upload
  273. listType="picture-card"
  274. name="file"
  275. :multiple="false"
  276. :action="importMinioUploadAction"
  277. :customRequest="e => selfUploadContract(e, 'nameFindCompliance')"
  278. :headers="tokenHeader"
  279. :showUploadList="false"
  280. :beforeUpload="importBeforeUpload"
  281. @change="importHandleChange"
  282. >
  283. <div v-if="infoModel.nameFindCompliance.length < 10 && specialResult.nameFindComplianceState != 1 && !detail">
  284. <a-icon type="plus"/>
  285. <div class="ant-upload-text">点我上传合同</div>
  286. </div>
  287. </a-upload>
  288. </div>
  289. <div class="swiper-button-next swiper-button-white" slot="button-next">
  290. <div>
  291. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  292. </div>
  293. </div>
  294. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  295. <div>
  296. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  297. </div>
  298. </div>
  299. </swiper>
  300. </div>
  301. </div>
  302. </div>
  303. </a-card>
  304. <!-- 身份证照片正反面-->
  305. <a-card v-if="steps.currentId == 'fileListIdCard'"
  306. style="margin-bottom:10px;
  307. float: left;width: 83%;left: 2%">
  308. <div slot="title">
  309. <span style="float: left;position: relative;top: 4px">身份证照片正反面</span>
  310. </div>
  311. <!-- 附件-->
  312. <div>
  313. <div v-if="rectification">
  314. <a-form-model-item style="left: 0%;width: 90%;" label="稽核是否通过" prop="basicCheckState" v-bind="labelCol1Note">
  315. <a-tag class="font-size-14" v-if="specialResult.idCardState == 0" color="#f50">未通过</a-tag>
  316. <a-tag class="font-size-14" v-if="specialResult.idCardState == 1" color="#2db7f5">通过</a-tag>
  317. </a-form-model-item>
  318. <a-form-model-item style="left: 0%;width: 90%;" label="稽核结果备注" prop="basicCheckNote" v-bind="labelCol1Note">
  319. <a-tag class="font-size-14" color="orange">{{ specialResult.idCardNote }}</a-tag>
  320. </a-form-model-item>
  321. </div>
  322. <a-form-model-item style="width: 90%;" label="身份证正反面备注:" v-bind="labelCol1Note">
  323. <span v-if="specialResult.idCardState == 1">{{ infoModel.fileListIdCardRemark }}</span>
  324. <a-textarea v-else style="height: 77px"
  325. @change="textareaChange('fileListIdCard','fileListIdCardRemark')"
  326. v-model="infoModel.fileListIdCardRemark"
  327. placeholder="如没有身份证正反面照片,需要说明原因"
  328. />
  329. <!-- :auto-size="{ minRows: 3, maxRows: 5 }"-->
  330. </a-form-model-item>
  331. </div>
  332. <!-- 文件上传-->
  333. <div class="file-div-minio-upload">
  334. <div class="thumb-example" style="position: relative">
  335. <!-- swiper1 -->
  336. <swiper
  337. class="swiper gallery-top"
  338. :options="swiperOptionTop"
  339. ref="swiperTop"
  340. >
  341. <swiper-slide class="slide-1" v-for="(item, index) in infoModel.fileListIdCard" :key="item.id">
  342. <iframe
  343. v-if="item.urlBase"
  344. frameborder="1"
  345. :src="item.urlBase"
  346. ref="ifr"
  347. width="100%"
  348. height="500px"
  349. scrolling="auto">
  350. </iframe>
  351. <img style="width: 100%;height: 500px;border: 1px solid;"
  352. v-if="!item.urlBase" :src="noDataPng" border="1">
  353. <a-button v-if="infoModel.fileListIdCard.length && item.urlBase && specialResult.idCardState != 1"
  354. style="display: block;margin-top: 10px;border-color: red;color: red;float: left"
  355. danger @click="removeFile(item,'fileListIdCard')">移除
  356. </a-button>
  357. <a-button
  358. style="display: block;position: relative;left:20px;margin-top: 10px;border-color: #1890FF;color: #1890FF"
  359. v-if="infoModel.fileListIdCard.length && item.urlBase"
  360. @click="jumpUrl(item.urlBase)">预览
  361. </a-button>
  362. </swiper-slide>
  363. <!-- <div
  364. class="swiper-button-next swiper-button-white"
  365. slot="button-next"
  366. ></div>
  367. <div
  368. class="swiper-button-prev swiper-button-white"
  369. slot="button-prev"
  370. ></div>-->
  371. </swiper>
  372. <!-- swiper2 Thumbs -->
  373. <swiper
  374. class="swiper gallery-thumbs"
  375. :options="swiperOptionThumbs"
  376. ref="swiperThumbs"
  377. >
  378. <swiper-slide
  379. class="slide"
  380. style="width:100px;height:100px;"
  381. v-for="(item, index) in infoModel.fileListIdCard"
  382. :key="item.id"
  383. >
  384. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  385. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  386. </div>
  387. <img style="width: 100%;height: 96px"
  388. v-if="!item.urlBase" :src="noDataPng" border="1">
  389. </swiper-slide>
  390. <!-- 点我上传文件按钮-->
  391. <div class="clearfix">
  392. <a-upload
  393. listType="picture-card"
  394. name="file"
  395. :multiple="false"
  396. :action="importMinioUploadAction"
  397. :customRequest="e => selfUploadContract(e, 'fileListIdCard')"
  398. :headers="tokenHeader"
  399. :showUploadList="false"
  400. :beforeUpload="importBeforeUpload"
  401. @change="importHandleChange"
  402. >
  403. <div v-if="infoModel.fileListIdCard.length < 20 && specialResult.idCardState != 1 && !detail">
  404. <a-icon type="plus"/>
  405. <div class="ant-upload-text">点我上传身份证正反面</div>
  406. </div>
  407. </a-upload>
  408. </div>
  409. <div class="swiper-button-next swiper-button-white" slot="button-next">
  410. <div>
  411. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  412. </div>
  413. </div>
  414. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  415. <div>
  416. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  417. </div>
  418. </div>
  419. </swiper>
  420. </div>
  421. </div>
  422. </a-card>
  423. <!-- 手持半身照-->
  424. <a-card v-if="steps.currentId == 'handCertificate'"
  425. style="margin-bottom:10px;
  426. float: left;width: 83%;left: 2%">
  427. <div slot="title">
  428. <span style="float: left;position: relative;top: 4px">手持证件半身照片</span>
  429. </div>
  430. <!-- 附件-->
  431. <div>
  432. <div v-if="rectification">
  433. <a-form-model-item style="left: 0%;width: 90%;" label="稽核是否通过" prop="basicCheckState" v-bind="labelCol1Note">
  434. <a-tag class="font-size-14" v-if="specialResult.handCertificateState == 0" color="#f50">未通过</a-tag>
  435. <a-tag class="font-size-14" v-if="specialResult.handCertificateState == 1" color="#2db7f5">通过</a-tag>
  436. </a-form-model-item>
  437. <a-form-model-item style="left: 0%;width: 90%;" label="稽核结果备注" prop="basicCheckNote" v-bind="labelCol1Note">
  438. <a-tag class="font-size-14" color="orange">{{ specialResult.handCertificateNote }}</a-tag>
  439. </a-form-model-item>
  440. </div>
  441. <a-form-model-item style="width: 90%;" label="手持身份证半身照片备注:" v-bind="labelCol1Note">
  442. <span v-if="specialResult.handCertificateState == 1">{{ infoModel.handCertificateRemark }}</span>
  443. <a-textarea v-else style="height: 77px"
  444. @change="textareaChange('handCertificate','handCertificateRemark')"
  445. v-model="infoModel.handCertificateRemark"
  446. placeholder="如没有手持证件半身照片,需要说明原因"
  447. />
  448. <!-- :auto-size="{ minRows: 3, maxRows: 5 }"-->
  449. </a-form-model-item>
  450. </div>
  451. <!-- 文件上传-->
  452. <div class="file-div-minio-upload">
  453. <div class="thumb-example" style="position: relative">
  454. <!-- swiper1 -->
  455. <swiper
  456. class="swiper gallery-top"
  457. :options="swiperOptionTop"
  458. ref="swiperTop"
  459. >
  460. <swiper-slide class="slide-1" v-for="(item, index) in infoModel.handCertificate" :key="item.id">
  461. <iframe
  462. v-if="item.urlBase"
  463. frameborder="1"
  464. :src="item.urlBase"
  465. ref="ifr"
  466. width="90%"
  467. height="500px"
  468. style="display:block"
  469. scrolling="auto">
  470. </iframe>
  471. <img style="width: 100%;height: 500px;border: 1px solid;"
  472. v-if="!item.urlBase" :src="noDataPng" border="1">
  473. <a-button
  474. v-if="infoModel.handCertificate.length && item.urlBase && specialResult.handCertificateState != 1"
  475. style="display: block;margin-top: 10px;border-color: red;color: red"
  476. danger @click="removeFile(item,'handCertificate')">移除
  477. </a-button>
  478. <a-button
  479. style="display: block;position: relative;left:20px;margin-top: 10px;border-color: #1890FF;color: #1890FF"
  480. v-if="infoModel.handCertificate.length && item.urlBase"
  481. @click="jumpUrl(item.urlBase)">预览
  482. </a-button>
  483. </swiper-slide>
  484. <!-- <div
  485. class="swiper-button-next swiper-button-white"
  486. slot="button-next"
  487. ></div>
  488. <div
  489. class="swiper-button-prev swiper-button-white"
  490. slot="button-prev"
  491. ></div>-->
  492. </swiper>
  493. <!-- swiper2 Thumbs -->
  494. <swiper
  495. class="swiper gallery-thumbs"
  496. :options="swiperOptionThumbs"
  497. ref="swiperThumbs"
  498. >
  499. <swiper-slide
  500. class="slide"
  501. style="width:100px;height:100px;"
  502. v-for="(item, index) in infoModel.handCertificate"
  503. :key="item.id"
  504. >
  505. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  506. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  507. </div>
  508. <img style="width: 100%;height: 96px"
  509. v-if="!item.urlBase" :src="noDataPng" border="1">
  510. </swiper-slide>
  511. <!-- 点我上传文件按钮-->
  512. <div class="clearfix">
  513. <a-upload
  514. listType="picture-card"
  515. name="file"
  516. :multiple="false"
  517. :action="importMinioUploadAction"
  518. :customRequest="e => selfUploadContract(e, 'handCertificate')"
  519. :headers="tokenHeader"
  520. :showUploadList="false"
  521. :beforeUpload="importBeforeUpload"
  522. @change="importHandleChange"
  523. >
  524. <div v-if="infoModel.handCertificate.length < 20 && specialResult.handCertificateState != 1 && !detail">
  525. <a-icon type="plus"/>
  526. <div class="ant-upload-text">点我上传手持证件半身照片</div>
  527. </div>
  528. </a-upload>
  529. </div>
  530. <div class="swiper-button-next swiper-button-white" slot="button-next">
  531. <div>
  532. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  533. </div>
  534. </div>
  535. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  536. <div>
  537. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  538. </div>
  539. </div>
  540. </swiper>
  541. </div>
  542. </div>
  543. </a-card>
  544. <!-- 防诈骗承若函-->
  545. <a-card v-if="steps.currentId == 'fraudPrevention'"
  546. style="margin-bottom:10px;
  547. float: left;width: 83%;left: 2%">
  548. <div slot="title">
  549. <span style="float: left;position: relative;top: 4px"> 防诈骗承诺涵(使用人签署)</span>
  550. </div>
  551. <div>
  552. <div v-if="rectification">
  553. <a-form-model-item style="left: 0%;width: 90%;" label="稽核是否通过" prop="basicCheckState" v-bind="labelCol1Note">
  554. <a-tag class="font-size-14" v-if="specialResult.fraudPreventionState == 0" color="#f50">未通过</a-tag>
  555. <a-tag class="font-size-14" v-if="specialResult.fraudPreventionState == 1" color="#2db7f5">通过</a-tag>
  556. </a-form-model-item>
  557. <a-form-model-item style="left: 0%;width: 90%;" label="稽核结果备注" prop="basicCheckNote" v-bind="labelCol1Note">
  558. <a-tag class="font-size-14" color="orange">{{ specialResult.fraudPreventionNote }}</a-tag>
  559. </a-form-model-item>
  560. </div>
  561. <a-form-model-item style="width: 90%;" label="防诈骗承诺涵备注:" v-bind="labelCol1Note">
  562. <span v-if="specialResult.fraudPreventionState == 1">{{ infoModel.fraudPreventionRemark }}</span>
  563. <a-textarea v-else style="height: 77px"
  564. @change="textareaChange('fraudPrevention','fraudPreventionRemark')"
  565. v-model="infoModel.fraudPreventionRemark"
  566. placeholder="如没有防诈骗承诺涵,需要说明原因"
  567. />
  568. <!-- :auto-size="{ minRows: 3, maxRows: 5 }"-->
  569. </a-form-model-item>
  570. </div>
  571. <!-- 文件上传-->
  572. <div class="file-div-minio-upload">
  573. <div class="thumb-example" style="position: relative">
  574. <!-- swiper1 -->
  575. <swiper
  576. class="swiper gallery-top"
  577. :options="swiperOptionTop"
  578. ref="swiperTop"
  579. >
  580. <swiper-slide class="slide-1" v-for="(item, index) in infoModel.fraudPrevention" :key="item.id">
  581. <iframe
  582. v-if="item.urlBase"
  583. frameborder="1"
  584. :src="item.urlBase"
  585. ref="ifr"
  586. width="100%"
  587. height="500px"
  588. scrolling="auto">
  589. </iframe>
  590. <img style="width: 100%;height: 500px;border: 1px solid;"
  591. v-if="!item.urlBase" :src="noDataPng" border="1">
  592. <a-button
  593. v-if="infoModel.fraudPrevention.length && item.urlBase && specialResult.fraudPreventionState != 1"
  594. style="display: block;margin-top: 10px;border-color: red;color: red;float: left"
  595. danger @click="removeFile(item,'fraudPrevention')">移除
  596. </a-button>
  597. <a-button
  598. style="display: block;position: relative;left:20px;margin-top: 10px;border-color: #1890FF;color: #1890FF"
  599. v-if="infoModel.fraudPrevention.length > 0 && item.urlBase"
  600. @click="jumpUrl(item.urlBase)">预览
  601. </a-button>
  602. </swiper-slide>
  603. <!-- <div
  604. class="swiper-button-next swiper-button-white"
  605. slot="button-next"
  606. ></div>
  607. <div
  608. class="swiper-button-prev swiper-button-white"
  609. slot="button-prev"
  610. ></div>-->
  611. </swiper>
  612. <!-- swiper2 Thumbs -->
  613. <swiper
  614. class="swiper gallery-thumbs"
  615. :options="swiperOptionThumbs"
  616. ref="swiperThumbs"
  617. >
  618. <swiper-slide
  619. class="slide"
  620. style="width:100px;height:100px;"
  621. v-for="(item, index) in infoModel.fraudPrevention"
  622. :key="item.id"
  623. >
  624. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  625. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  626. </div>
  627. <img style="width: 100%;height: 96px"
  628. v-if="!item.urlBase" :src="noDataPng" border="1">
  629. </swiper-slide>
  630. <!-- 点我上传文件按钮-->
  631. <div class="clearfix">
  632. <a-upload
  633. listType="picture-card"
  634. name="file"
  635. :multiple="false"
  636. :action="importMinioUploadAction"
  637. :customRequest="e => selfUploadContract(e, 'fraudPrevention')"
  638. :headers="tokenHeader"
  639. :showUploadList="false"
  640. :beforeUpload="importBeforeUpload"
  641. @change="importHandleChange"
  642. >
  643. <div v-if="infoModel.fraudPrevention.length < 20 && specialResult.fraudPreventionState != 1 && !detail">
  644. <a-icon type="plus"/>
  645. <div class="ant-upload-text">点我上传手持证件半身照片</div>
  646. </div>
  647. </a-upload>
  648. </div>
  649. <div class="swiper-button-next swiper-button-white" slot="button-next">
  650. <div>
  651. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  652. </div>
  653. </div>
  654. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  655. <div>
  656. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  657. </div>
  658. </div>
  659. </swiper>
  660. </div>
  661. </div>
  662. <!-- 附件-->
  663. </a-card>
  664. <!-- 特审单-->
  665. <a-card v-if="steps.currentId == 'specialReviewForm'"
  666. style="margin-bottom:10px;
  667. float: left;width: 83%;left: 2%">
  668. <div slot="title">
  669. <span style="float: left;position: relative;top: 4px"> 特审单</span>
  670. </div>
  671. <!-- 附件-->
  672. <div>
  673. <div v-if="rectification">
  674. <a-form-model-item style="left: 0%;width: 90%;" label="稽核是否通过" prop="basicCheckState" v-bind="labelCol1Note">
  675. <a-tag class="font-size-14" v-if="specialResult.specialReviewFormState == 0" color="#f50">未通过</a-tag>
  676. <a-tag class="font-size-14" v-if="specialResult.specialReviewFormState == 1" color="#2db7f5">通过</a-tag>
  677. </a-form-model-item>
  678. <a-form-model-item style="left: 0%;width: 90%;" label="稽核结果" prop="basicCheckNote" v-bind="labelCol1Note">
  679. <a-tag class="font-size-14" color="orange">{{ specialResult.specialReviewFormNote }}</a-tag>
  680. </a-form-model-item>
  681. </div>
  682. <a-form-model-item style="width: 90%;" label="特审单备注:" v-bind="labelCol1Note">
  683. <span v-if="specialResult.specialReviewFormState == 1">{{ infoModel.specialReviewFormRemark }}</span>
  684. <a-textarea v-else style="height: 77px"
  685. @change="textareaChange('specialReviewForm','specialReviewFormRemark')"
  686. v-model="infoModel.specialReviewFormRemark"
  687. placeholder="如没有特审单,需要说明原因"
  688. />
  689. <!-- :auto-size="{ minRows: 3, maxRows: 5 }"-->
  690. </a-form-model-item>
  691. </div>
  692. <!-- 文件上传-->
  693. <div class="file-div-minio-upload">
  694. <div class="thumb-example" style="position: relative">
  695. <!-- swiper1 -->
  696. <swiper
  697. class="swiper gallery-top"
  698. :options="swiperOptionTop"
  699. ref="swiperTop"
  700. >
  701. <swiper-slide class="slide-1" v-for="(item, index) in infoModel.specialReviewForm" :key="item.id">
  702. <iframe
  703. v-if="item.urlBase"
  704. frameborder="1"
  705. :src="item.urlBase"
  706. ref="ifr"
  707. width="100%"
  708. height="500px"
  709. scrolling="auto">
  710. </iframe>
  711. <img style="width: 100%;height: 500px;border: 1px solid;"
  712. v-if="!item.urlBase" :src="noDataPng" border="1">
  713. <a-button
  714. v-if="infoModel.specialReviewForm.length && item.urlBase && specialResult.specialReviewFormState != 1"
  715. style="display: block;margin-top: 10px;border-color: red;color: red;float: left"
  716. danger @click="removeFile(item,'specialReviewForm')">移除
  717. </a-button>
  718. <a-button
  719. style="display: block;position: relative;left:20px;margin-top: 10px;border-color: #1890FF;color: #1890FF"
  720. v-if="infoModel.specialReviewForm.length && item.urlBase"
  721. @click="jumpUrl(item.urlBase)">预览
  722. </a-button>
  723. </swiper-slide>
  724. <!-- <div
  725. class="swiper-button-next swiper-button-white"
  726. slot="button-next"
  727. ></div>
  728. <div
  729. class="swiper-button-prev swiper-button-white"
  730. slot="button-prev"
  731. ></div>-->
  732. </swiper>
  733. <!-- swiper2 Thumbs -->
  734. <swiper
  735. class="swiper gallery-thumbs"
  736. :options="swiperOptionThumbs"
  737. ref="swiperThumbs"
  738. >
  739. <swiper-slide
  740. class="slide"
  741. style="width:100px;height:100px;"
  742. v-for="(item, index) in infoModel.specialReviewForm"
  743. :key="item.id"
  744. >
  745. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  746. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  747. </div>
  748. <img style="width: 100%;height: 96px"
  749. v-if="!item.urlBase" :src="noDataPng" border="1">
  750. </swiper-slide>
  751. <!-- 点我上传文件按钮-->
  752. <div class="clearfix">
  753. <a-upload
  754. listType="picture-card"
  755. name="file"
  756. :multiple="false"
  757. :action="importMinioUploadAction"
  758. :customRequest="e => selfUploadContract(e, 'specialReviewForm')"
  759. :headers="tokenHeader"
  760. :showUploadList="false"
  761. :beforeUpload="importBeforeUpload"
  762. @change="importHandleChange"
  763. >
  764. <div v-if="infoModel.specialReviewForm.length < 20 && specialResult.specialReviewFormState != 1 && !detail">
  765. <a-icon type="plus"/>
  766. <div class="ant-upload-text">点我上传特审单</div>
  767. </div>
  768. </a-upload>
  769. </div>
  770. <div class="swiper-button-next swiper-button-white" slot="button-next">
  771. <div>
  772. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  773. </div>
  774. </div>
  775. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  776. <div>
  777. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  778. </div>
  779. </div>
  780. </swiper>
  781. </div>
  782. </div>
  783. </a-card>
  784. <!-- 单位户-使用人证件-->
  785. <a-card v-if="steps.currentId == 'userCertificate'"
  786. style="margin-bottom:10px;
  787. float: left;width: 83%;left: 2%">
  788. <div slot="title">
  789. <span style="float: left;position: relative;top: 4px"> 使用人证件</span>
  790. </div>
  791. <!-- 附件-->
  792. <div>
  793. <div v-if="rectification">
  794. <a-form-model-item style="left: 0%;width: 90%;" label="稽核是否通过" prop="basicCheckState" v-bind="labelCol1Note">
  795. <a-tag class="font-size-14" v-if="specialResult.userCertificateState == 0" color="#f50">未通过</a-tag>
  796. <a-tag class="font-size-14" v-if="specialResult.userCertificateState == 1" color="#2db7f5">通过</a-tag>
  797. </a-form-model-item>
  798. <a-form-model-item style="left: 0%;width: 90%;" label="稽核结果" prop="basicCheckNote" v-bind="labelCol1Note">
  799. <a-tag class="font-size-14" color="orange">{{ specialResult.userCertificateNote }}</a-tag>
  800. </a-form-model-item>
  801. </div>
  802. <a-form-model-item style="width: 90%;" label="使用人证件备注:" v-bind="labelCol1Note">
  803. <span v-if="specialResult.userCertificateState == 1">{{ infoModel.userCertificateRemark }}</span>
  804. <a-textarea v-else style="height: 77px"
  805. @change="textareaChange('userCertificate','userCertificateRemark')"
  806. v-model="infoModel.userCertificateRemark"
  807. placeholder="如没有使用人证件,需要说明原因"
  808. />
  809. <!-- :auto-size="{ minRows: 3, maxRows: 5 }"-->
  810. </a-form-model-item>
  811. </div>
  812. <!-- 文件上传-->
  813. <div class="file-div-minio-upload">
  814. <div class="thumb-example" style="position: relative">
  815. <!-- swiper1 -->
  816. <swiper
  817. class="swiper gallery-top"
  818. :options="swiperOptionTop"
  819. ref="swiperTop"
  820. >
  821. <swiper-slide class="slide-1" v-for="(item, index) in infoModel.userCertificate" :key="item.id">
  822. <iframe
  823. v-if="item.urlBase"
  824. frameborder="1"
  825. :src="item.urlBase"
  826. ref="ifr"
  827. width="100%"
  828. height="500px"
  829. scrolling="auto">
  830. </iframe>
  831. <img style="width: 100%;height: 500px;border: 1px solid;"
  832. v-if="!item.urlBase" :src="noDataPng" border="1">
  833. <a-button
  834. v-if="infoModel.userCertificate.length && item.urlBase && specialResult.userCertificateState != 1"
  835. style="display: block;margin-top: 10px;border-color: red;color: red;float: left"
  836. danger @click="removeFile(item,'userCertificate')">移除
  837. </a-button>
  838. <a-button
  839. style="display: block;position: relative;left:20px;margin-top: 10px;border-color: #1890FF;color: #1890FF"
  840. v-if="infoModel.userCertificate.length && item.urlBase"
  841. @click="jumpUrl(item.urlBase)">预览
  842. </a-button>
  843. </swiper-slide>
  844. <!-- <div
  845. class="swiper-button-next swiper-button-white"
  846. slot="button-next"
  847. ></div>
  848. <div
  849. class="swiper-button-prev swiper-button-white"
  850. slot="button-prev"
  851. ></div>-->
  852. </swiper>
  853. <!-- swiper2 Thumbs -->
  854. <swiper
  855. class="swiper gallery-thumbs"
  856. :options="swiperOptionThumbs"
  857. ref="swiperThumbs"
  858. >
  859. <swiper-slide
  860. class="slide"
  861. style="width:100px;height:100px;"
  862. v-for="(item, index) in infoModel.userCertificate"
  863. :key="item.id"
  864. >
  865. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  866. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  867. </div>
  868. <img style="width: 100%;height: 96px"
  869. v-if="!item.urlBase" :src="noDataPng" border="1">
  870. </swiper-slide>
  871. <!-- 点我上传文件按钮-->
  872. <div class="clearfix">
  873. <a-upload
  874. listType="picture-card"
  875. name="file"
  876. :multiple="false"
  877. :action="importMinioUploadAction"
  878. :customRequest="e => selfUploadContract(e, 'userCertificate')"
  879. :headers="tokenHeader"
  880. :showUploadList="false"
  881. :beforeUpload="importBeforeUpload"
  882. @change="importHandleChange"
  883. >
  884. <div v-if="infoModel.userCertificate.length < 20 && specialResult.userCertificateState != 1 && !detail">
  885. <a-icon type="plus"/>
  886. <div class="ant-upload-text">点我上传使用人证件</div>
  887. </div>
  888. </a-upload>
  889. </div>
  890. <div class="swiper-button-next swiper-button-white" slot="button-next">
  891. <div>
  892. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  893. </div>
  894. </div>
  895. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  896. <div>
  897. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  898. </div>
  899. </div>
  900. </swiper>
  901. </div>
  902. </div>
  903. </a-card>
  904. <!-- 单位户-营业执照副本(盖公章)-->
  905. <a-card v-if="steps.currentId == 'businessLicense'"
  906. style="margin-bottom:10px;
  907. float: left;width: 83%;left: 2%">
  908. <div slot="title">
  909. <span style="float: left;position: relative;top: 4px"> 营业执照副本(盖公章)</span>
  910. </div>
  911. <!-- 附件-->
  912. <div>
  913. <div v-if="rectification">
  914. <a-form-model-item style="left: 0%;width: 90%;" label="稽核是否通过" prop="basicCheckState" v-bind="labelCol1Note">
  915. <a-tag class="font-size-14" v-if="specialResult.businessLicenseState == 0" color="#f50">未通过</a-tag>
  916. <a-tag class="font-size-14" v-if="specialResult.businessLicenseState == 1" color="#2db7f5">通过</a-tag>
  917. </a-form-model-item>
  918. <a-form-model-item style="left: 0%;width: 90%;" label="稽核结果" prop="basicCheckNote" v-bind="labelCol1Note">
  919. <a-tag class="font-size-14" color="orange">{{ specialResult.businessLicenseNote }}</a-tag>
  920. </a-form-model-item>
  921. </div>
  922. <a-form-model-item style="width: 90%;" label="使用人证件备注:" v-bind="labelCol1Note">
  923. <span v-if="specialResult.businessLicenseState == 1">{{ infoModel.businessLicenseRemark }}</span>
  924. <a-textarea v-else style="height: 77px"
  925. v-model="infoModel.businessLicenseRemark"
  926. @change="textareaChange('businessLicense','businessLicenseRemark')"
  927. placeholder="如没有营业执照副本(盖公章),需要说明原因"
  928. />
  929. <!-- :auto-size="{ minRows: 3, maxRows: 5 }"-->
  930. </a-form-model-item>
  931. </div>
  932. <!-- 文件上传-->
  933. <div class="file-div-minio-upload">
  934. <div class="thumb-example" style="position: relative">
  935. <!-- swiper1 -->
  936. <swiper
  937. class="swiper gallery-top"
  938. :options="swiperOptionTop"
  939. ref="swiperTop"
  940. >
  941. <swiper-slide class="slide-1" v-for="(item, index) in infoModel.businessLicense" :key="item.id">
  942. <iframe
  943. v-if="item.urlBase"
  944. frameborder="1"
  945. :src="item.urlBase"
  946. ref="ifr"
  947. width="100%"
  948. height="500px"
  949. scrolling="auto">
  950. </iframe>
  951. <img style="width: 100%;height: 500px;border: 1px solid;"
  952. v-if="!item.urlBase" :src="noDataPng" border="1">
  953. <a-button
  954. v-if="infoModel.businessLicense.length && item.urlBase && specialResult.businessLicenseState != 1"
  955. style="display: block;margin-top: 10px;border-color: red;color: red;float: left"
  956. danger @click="removeFile(item,'businessLicense')">移除
  957. </a-button>
  958. <a-button
  959. style="display: block;position: relative;left:20px;margin-top: 10px;border-color: #1890FF;color: #1890FF"
  960. v-if="infoModel.businessLicense.length >0 && item.urlBase"
  961. @click="jumpUrl(item.urlBase)">预览
  962. </a-button>
  963. </swiper-slide>
  964. <!-- <div
  965. class="swiper-button-next swiper-button-white"
  966. slot="button-next"
  967. ></div>
  968. <div
  969. class="swiper-button-prev swiper-button-white"
  970. slot="button-prev"
  971. ></div>-->
  972. </swiper>
  973. <!-- swiper2 Thumbs -->
  974. <swiper
  975. class="swiper gallery-thumbs"
  976. :options="swiperOptionThumbs"
  977. ref="swiperThumbs"
  978. >
  979. <swiper-slide
  980. class="slide"
  981. style="width:100px;height:100px;"
  982. v-for="(item, index) in infoModel.businessLicense"
  983. :key="item.id"
  984. >
  985. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  986. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  987. </div>
  988. <img style="width: 100%;height: 96px"
  989. v-if="!item.urlBase" :src="noDataPng" border="1">
  990. </swiper-slide>
  991. <!-- 点我上传文件按钮-->
  992. <div class="clearfix">
  993. <a-upload
  994. listType="picture-card"
  995. name="file"
  996. :multiple="false"
  997. :action="importMinioUploadAction"
  998. :customRequest="e => selfUploadContract(e, 'businessLicense')"
  999. :headers="tokenHeader"
  1000. :showUploadList="false"
  1001. :beforeUpload="importBeforeUpload"
  1002. @change="importHandleChange"
  1003. >
  1004. <div v-if="infoModel.businessLicense.length < 20 && specialResult.businessLicenseState != 1 && !detail">
  1005. <a-icon type="plus"/>
  1006. <div class="ant-upload-text">点我上传营业执照副本(盖公章)</div>
  1007. </div>
  1008. </a-upload>
  1009. </div>
  1010. <div class="swiper-button-next swiper-button-white" slot="button-next">
  1011. <div>
  1012. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  1013. </div>
  1014. </div>
  1015. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  1016. <div>
  1017. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  1018. </div>
  1019. </div>
  1020. </swiper>
  1021. </div>
  1022. </div>
  1023. </a-card>
  1024. <!-- 单位户-介绍信-->
  1025. <a-card v-if="steps.currentId == 'letterIntroduction'"
  1026. style="margin-bottom:10px;
  1027. float: left;width: 83%;left: 2%">
  1028. <div slot="title">
  1029. <span style="float: left;position: relative;top: 4px"> 介绍信</span>
  1030. </div>
  1031. <!-- 附件-->
  1032. <div>
  1033. <div v-if="rectification">
  1034. <a-form-model-item style="left: 0%;width: 90%;" label="稽核是否通过" prop="basicCheckState" v-bind="labelCol1Note">
  1035. <a-tag class="font-size-14" v-if="specialResult.letterIntroductionState == 0" color="#f50">未通过</a-tag>
  1036. <a-tag class="font-size-14" v-if="specialResult.letterIntroductionState == 1" color="#2db7f5">通过</a-tag>
  1037. </a-form-model-item>
  1038. <a-form-model-item style="left: 0%;width: 90%;" label="稽核结果" prop="basicCheckNote" v-bind="labelCol1Note">
  1039. <a-tag class="font-size-14" color="orange">{{ specialResult.letterIntroductionNote }}</a-tag>
  1040. </a-form-model-item>
  1041. </div>
  1042. <a-form-model-item style="width: 90%;" label="介绍信备注:" v-bind="labelCol1Note">
  1043. <span v-if="specialResult.letterIntroductionState == 1">{{ infoModel.letterIntroductionRemark }}</span>
  1044. <a-textarea v-else style="height: 77px"
  1045. @change="textareaChange('letterIntroduction','letterIntroductionRemark')"
  1046. v-model="infoModel.letterIntroductionRemark"
  1047. placeholder="介绍信"
  1048. />
  1049. <!-- :auto-size="{ minRows: 3, maxRows: 5 }"-->
  1050. </a-form-model-item>
  1051. </div>
  1052. <!-- 文件上传-->
  1053. <div class="file-div-minio-upload">
  1054. <div class="thumb-example" style="position: relative">
  1055. <!-- swiper1 -->
  1056. <swiper
  1057. class="swiper gallery-top"
  1058. :options="swiperOptionTop"
  1059. ref="swiperTop"
  1060. >
  1061. <swiper-slide class="slide-1" v-for="(item, index) in infoModel.letterIntroduction" :key="item.id">
  1062. <iframe
  1063. v-if="item.urlBase"
  1064. frameborder="1"
  1065. :src="item.urlBase"
  1066. ref="ifr"
  1067. width="100%"
  1068. height="500px"
  1069. scrolling="auto">
  1070. </iframe>
  1071. <img style="width: 100%;height: 500px;border: 1px solid;"
  1072. v-if="!item.urlBase" :src="noDataPng" border="1">
  1073. <a-button
  1074. v-if="infoModel.letterIntroduction.length && item.urlBase && specialResult.letterIntroductionState != 1"
  1075. style="display: block;margin-top: 10px;border-color: red;color: red;float: left"
  1076. danger @click="removeFile(item,'letterIntroduction')">移除
  1077. </a-button>
  1078. <a-button
  1079. style="display: block;position: relative;left:20px;margin-top: 10px;border-color: #1890FF;color: #1890FF"
  1080. v-if="infoModel.letterIntroduction.length && item.urlBase"
  1081. @click="jumpUrl(item.urlBase)">预览
  1082. </a-button>
  1083. </swiper-slide>
  1084. <!-- <div
  1085. class="swiper-button-next swiper-button-white"
  1086. slot="button-next"
  1087. ></div>
  1088. <div
  1089. class="swiper-button-prev swiper-button-white"
  1090. slot="button-prev"
  1091. ></div>-->
  1092. </swiper>
  1093. <!-- swiper2 Thumbs -->
  1094. <swiper
  1095. class="swiper gallery-thumbs"
  1096. :options="swiperOptionThumbs"
  1097. ref="swiperThumbs"
  1098. >
  1099. <swiper-slide
  1100. class="slide"
  1101. style="width:100px;height:100px;"
  1102. v-for="(item, index) in infoModel.letterIntroduction"
  1103. :key="item.id"
  1104. >
  1105. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  1106. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  1107. </div>
  1108. <img style="width: 100%;height: 96px"
  1109. v-if="!item.urlBase" :src="noDataPng" border="1">
  1110. </swiper-slide>
  1111. <!-- 点我上传文件按钮-->
  1112. <div class="clearfix">
  1113. <a-upload
  1114. listType="picture-card"
  1115. name="file"
  1116. :multiple="false"
  1117. :action="importMinioUploadAction"
  1118. :customRequest="e => selfUploadContract(e, 'letterIntroduction')"
  1119. :headers="tokenHeader"
  1120. :showUploadList="false"
  1121. :beforeUpload="importBeforeUpload"
  1122. @change="importHandleChange"
  1123. >
  1124. <div v-if="infoModel.letterIntroduction.length < 20 && specialResult.letterIntroductionState != 1 && !detail">
  1125. <a-icon type="plus"/>
  1126. <div class="ant-upload-text">点我上传介绍信</div>
  1127. </div>
  1128. </a-upload>
  1129. </div>
  1130. <div class="swiper-button-next swiper-button-white" slot="button-next">
  1131. <div>
  1132. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  1133. </div>
  1134. </div>
  1135. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  1136. <div>
  1137. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  1138. </div>
  1139. </div>
  1140. </swiper>
  1141. </div>
  1142. </div>
  1143. </a-card>
  1144. <!-- 个人户-号卡照片-->
  1145. <a-card v-if="steps.currentId == 'numberCard'"
  1146. style="margin-bottom:10px;
  1147. float: left;width: 83%;left: 2%">
  1148. <div slot="title">
  1149. <span style="float: left;position: relative;top: 4px"> 号卡照片</span>
  1150. </div>
  1151. <!-- 附件-->
  1152. <div>
  1153. <div v-if="rectification">
  1154. <a-form-model-item style="left: 0%;width: 90%;" label="稽核是否通过" prop="basicCheckState" v-bind="labelCol1Note">
  1155. <a-tag class="font-size-14" v-if="specialResult.numberCardState == 0" color="#f50">未通过</a-tag>
  1156. <a-tag class="font-size-14" v-if="specialResult.numberCardState == 1" color="#2db7f5">通过</a-tag>
  1157. </a-form-model-item>
  1158. <a-form-model-item style="left: 0%;width: 90%;" label="稽核结果" prop="basicCheckNote" v-bind="labelCol1Note">
  1159. <a-tag class="font-size-14" color="orange">{{ specialResult.numberCardNote }}</a-tag>
  1160. </a-form-model-item>
  1161. </div>
  1162. <a-form-model-item style="width: 90%;" label="号码备注:" v-bind="labelCol1Note">
  1163. <span v-if="specialResult.numberCardState == 1">{{ infoModel.numberCardRemark }}</span>
  1164. <a-textarea v-else style="height: 77px"
  1165. @change="textareaChange('numberCard','numberCardRemark')"
  1166. v-model="infoModel.numberCardRemark"
  1167. placeholder="介绍信"
  1168. />
  1169. <!-- :auto-size="{ minRows: 3, maxRows: 5 }"-->
  1170. </a-form-model-item>
  1171. </div>
  1172. <!-- 文件上传-->
  1173. <div class="file-div-minio-upload">
  1174. <div class="thumb-example" style="position: relative">
  1175. <!-- swiper1 -->
  1176. <swiper
  1177. class="swiper gallery-top"
  1178. :options="swiperOptionTop"
  1179. ref="swiperTop"
  1180. >
  1181. <swiper-slide class="slide-1" v-for="(item, index) in infoModel.numberCard" :key="item.id">
  1182. <iframe
  1183. v-if="item.urlBase"
  1184. frameborder="1"
  1185. :src="item.urlBase"
  1186. ref="ifr"
  1187. width="100%"
  1188. height="500px"
  1189. scrolling="auto">
  1190. </iframe>
  1191. <img style="width: 100%;height: 500px;border: 1px solid;"
  1192. v-if="!item.urlBase" :src="noDataPng" border="1">
  1193. <a-button v-if="infoModel.numberCard.length && item.urlBase && specialResult.numberCardState != 1"
  1194. style="display: block;margin-top: 10px;border-color: red;color: red;float: left"
  1195. danger @click="removeFile(item,'numberCard')">移除
  1196. </a-button>
  1197. <a-button
  1198. style="display: block;position: relative;left:20px;margin-top: 10px;border-color: #1890FF;color: #1890FF"
  1199. v-if="infoModel.numberCard.length && item.urlBase"
  1200. @click="jumpUrl(item.urlBase)">预览
  1201. </a-button>
  1202. </swiper-slide>
  1203. <!-- <div
  1204. class="swiper-button-next swiper-button-white"
  1205. slot="button-next"
  1206. ></div>
  1207. <div
  1208. class="swiper-button-prev swiper-button-white"
  1209. slot="button-prev"
  1210. ></div>-->
  1211. </swiper>
  1212. <!-- swiper2 Thumbs -->
  1213. <swiper
  1214. class="swiper gallery-thumbs"
  1215. :options="swiperOptionThumbs"
  1216. ref="swiperThumbs"
  1217. >
  1218. <swiper-slide
  1219. class="slide"
  1220. style="width:100px;height:100px;"
  1221. v-for="(item, index) in infoModel.numberCard"
  1222. :key="item.id"
  1223. >
  1224. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  1225. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  1226. </div>
  1227. <img style="width: 100%;height: 96px"
  1228. v-if="!item.urlBase" :src="noDataPng" border="1">
  1229. </swiper-slide>
  1230. <!-- 点我上传文件按钮-->
  1231. <div class="clearfix">
  1232. <a-upload
  1233. listType="picture-card"
  1234. name="file"
  1235. :multiple="false"
  1236. :action="importMinioUploadAction"
  1237. :customRequest="e => selfUploadContract(e, 'numberCard')"
  1238. :headers="tokenHeader"
  1239. :showUploadList="false"
  1240. :beforeUpload="importBeforeUpload"
  1241. @change="importHandleChange"
  1242. >
  1243. <div v-if="infoModel.numberCard.length < 20 && specialResult.numberCardState != 1 && !detail">
  1244. <a-icon type="plus"/>
  1245. <div class="ant-upload-text">点我上传号卡</div>
  1246. </div>
  1247. </a-upload>
  1248. </div>
  1249. <div class="swiper-button-next swiper-button-white" slot="button-next">
  1250. <div>
  1251. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  1252. </div>
  1253. </div>
  1254. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  1255. <div>
  1256. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  1257. </div>
  1258. </div>
  1259. </swiper>
  1260. </div>
  1261. </div>
  1262. </a-card>
  1263. <!-- 个人户-手持号卡照片-->
  1264. <a-card v-if="steps.currentId == 'handNumberCard'"
  1265. style="margin-bottom:10px;
  1266. float: left;width: 83%;left: 2%">
  1267. <div slot="title">
  1268. <span style="float: left;position: relative;top: 4px"> 手持号卡照片</span>
  1269. </div>
  1270. <!-- 附件-->
  1271. <div>
  1272. <div v-if="rectification">
  1273. <a-form-model-item style="left: 0%;width: 90%;" label="稽核是否通过" prop="basicCheckState" v-bind="labelCol1Note">
  1274. <a-tag class="font-size-14" v-if="specialResult.handNumberCardState == 0" color="#f50">未通过</a-tag>
  1275. <a-tag class="font-size-14" v-if="specialResult.handNumberCardState == 1" color="#2db7f5">通过</a-tag>
  1276. </a-form-model-item>
  1277. <a-form-model-item style="left: 0%;width: 90%;" label="稽核结果" prop="basicCheckNote" v-bind="labelCol1Note">
  1278. <a-tag class="font-size-14" color="orange">{{ specialResult.handNumberCardNote }}</a-tag>
  1279. </a-form-model-item>
  1280. </div>
  1281. <a-form-model-item style="width: 90%;" label="手持号卡备注:" v-bind="labelCol1Note">
  1282. <span v-if="specialResult.handNumberCardState == 1">{{ infoModel.handNumberCardRemark }}</span>
  1283. <a-textarea v-else style="height: 77px"
  1284. @change="textareaChange('handNumberCard','handNumberCardRemark')"
  1285. v-model="infoModel.handNumberCardRemark"
  1286. placeholder="介绍信"
  1287. />
  1288. <!-- :auto-size="{ minRows: 3, maxRows: 5 }"-->
  1289. </a-form-model-item>
  1290. </div>
  1291. <!-- 文件上传-->
  1292. <div class="file-div-minio-upload">
  1293. <div class="thumb-example" style="position: relative">
  1294. <!-- swiper1 -->
  1295. <swiper
  1296. class="swiper gallery-top"
  1297. :options="swiperOptionTop"
  1298. ref="swiperTop"
  1299. >
  1300. <swiper-slide class="slide-1" v-for="(item, index) in infoModel.handNumberCard" :key="item.id">
  1301. <iframe
  1302. v-if="item.urlBase"
  1303. frameborder="1"
  1304. :src="item.urlBase"
  1305. ref="ifr"
  1306. width="100%"
  1307. height="500px"
  1308. scrolling="auto">
  1309. </iframe>
  1310. <img style="width: 100%;height: 500px;border: 1px solid;"
  1311. v-if="!item.urlBase" :src="noDataPng" border="1">
  1312. <a-button v-if="infoModel.handNumberCard.length && item.urlBase && specialResult.handNumberCardState != 1"
  1313. style="display: block;margin-top: 10px;border-color: red;color: red;float: left"
  1314. danger @click="removeFile(item,'handNumberCard')">移除
  1315. </a-button>
  1316. <a-button
  1317. style="display: block;position: relative;left:20px;margin-top: 10px;border-color: #1890FF;color: #1890FF"
  1318. v-if="infoModel.handNumberCard.length && item.urlBase"
  1319. @click="jumpUrl(item.urlBase)">预览
  1320. </a-button>
  1321. </swiper-slide>
  1322. <!-- <div
  1323. class="swiper-button-next swiper-button-white"
  1324. slot="button-next"
  1325. ></div>
  1326. <div
  1327. class="swiper-button-prev swiper-button-white"
  1328. slot="button-prev"
  1329. ></div>-->
  1330. </swiper>
  1331. <!-- swiper2 Thumbs -->
  1332. <swiper
  1333. class="swiper gallery-thumbs"
  1334. :options="swiperOptionThumbs"
  1335. ref="swiperThumbs"
  1336. >
  1337. <swiper-slide
  1338. class="slide"
  1339. style="width:100px;height:100px;"
  1340. v-for="(item, index) in infoModel.handNumberCard"
  1341. :key="item.id"
  1342. >
  1343. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  1344. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  1345. </div>
  1346. <img style="width: 100%;height: 96px"
  1347. v-if="!item.urlBase" :src="noDataPng" border="1">
  1348. </swiper-slide>
  1349. <!-- 点我上传文件按钮-->
  1350. <div class="clearfix">
  1351. <a-upload
  1352. listType="picture-card"
  1353. name="file"
  1354. :multiple="false"
  1355. :action="importMinioUploadAction"
  1356. :customRequest="e => selfUploadContract(e, 'handNumberCard')"
  1357. :headers="tokenHeader"
  1358. :showUploadList="false"
  1359. :beforeUpload="importBeforeUpload"
  1360. @change="importHandleChange"
  1361. >
  1362. <div v-if="infoModel.handNumberCard.length < 20 && specialResult.handNumberCardState != 1 && !detail">
  1363. <a-icon type="plus"/>
  1364. <div class="ant-upload-text">点我上传手持号卡</div>
  1365. </div>
  1366. </a-upload>
  1367. </div>
  1368. <div class="swiper-button-next swiper-button-white" slot="button-next">
  1369. <div>
  1370. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  1371. </div>
  1372. </div>
  1373. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  1374. <div>
  1375. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  1376. </div>
  1377. </div>
  1378. </swiper>
  1379. </div>
  1380. </div>
  1381. </a-card>
  1382. <!-- 消费凭证-->
  1383. <a-card v-if="steps.currentId == 'consumptionVoucher'"
  1384. style="margin-bottom:10px;
  1385. float: left;width: 83%;left: 2%">
  1386. <div slot="title">
  1387. <span style="float: left;position: relative;top: 4px"> 消费凭证</span>
  1388. </div>
  1389. <!-- 附件-->
  1390. <div>
  1391. <div v-if="rectification">
  1392. <a-form-model-item style="left: 0%;width: 90%;" label="稽核是否通过" prop="basicCheckState" v-bind="labelCol1Note">
  1393. <a-tag class="font-size-14" v-if="specialResult.consumptionVoucherState == 0" color="#f50">未通过</a-tag>
  1394. <a-tag class="font-size-14" v-if="specialResult.consumptionVoucherState == 1" color="#2db7f5">通过</a-tag>
  1395. </a-form-model-item>
  1396. <a-form-model-item style="left: 0%;width: 90%;" label="稽核结果" prop="basicCheckNote" v-bind="labelCol1Note">
  1397. <a-tag class="font-size-14" color="orange">{{ specialResult.consumptionVoucherNote }}</a-tag>
  1398. </a-form-model-item>
  1399. </div>
  1400. <a-form-model-item style="width: 90%;" label="消费凭证备注:" v-bind="labelCol1Note">
  1401. <span v-if="specialResult.consumptionVoucherState == 1">{{ infoModel.consumptionVoucherRemark }}</span>
  1402. <a-textarea v-else style="height: 77px"
  1403. @change="textareaChange('consumptionVoucher','consumptionVoucherRemark')"
  1404. v-model="infoModel.consumptionVoucherRemark"
  1405. placeholder="介绍信"
  1406. />
  1407. <!-- :auto-size="{ minRows: 3, maxRows: 5 }"-->
  1408. </a-form-model-item>
  1409. </div>
  1410. <!-- 文件上传-->
  1411. <div class="file-div-minio-upload">
  1412. <div class="thumb-example" style="position: relative">
  1413. <!-- swiper1 -->
  1414. <swiper
  1415. class="swiper gallery-top"
  1416. :options="swiperOptionTop"
  1417. ref="swiperTop"
  1418. >
  1419. <swiper-slide class="slide-1" v-for="(item, index) in infoModel.consumptionVoucher" :key="item.id">
  1420. <iframe
  1421. v-if="item.urlBase"
  1422. frameborder="1"
  1423. :src="item.urlBase"
  1424. ref="ifr"
  1425. width="100%"
  1426. height="500px"
  1427. scrolling="auto">
  1428. </iframe>
  1429. <img style="width: 100%;height: 500px;border: 1px solid;"
  1430. v-if="!item.urlBase" :src="noDataPng" border="1">
  1431. <a-button
  1432. v-if="infoModel.consumptionVoucher.length && item.urlBase && specialResult.consumptionVoucherState != 1"
  1433. style="display: block;margin-top: 10px;border-color: red;color: red;float: left"
  1434. danger @click="removeFile(item,'consumptionVoucher')">移除
  1435. </a-button>
  1436. <a-button
  1437. style="display: block;position: relative;left:20px;margin-top: 10px;border-color: #1890FF;color: #1890FF"
  1438. v-if="infoModel.consumptionVoucher.length && item.urlBase"
  1439. @click="jumpUrl(item.urlBase)">预览
  1440. </a-button>
  1441. </swiper-slide>
  1442. <!-- <div
  1443. class="swiper-button-next swiper-button-white"
  1444. slot="button-next"
  1445. ></div>
  1446. <div
  1447. class="swiper-button-prev swiper-button-white"
  1448. slot="button-prev"
  1449. ></div>-->
  1450. </swiper>
  1451. <!-- swiper2 Thumbs -->
  1452. <swiper
  1453. class="swiper gallery-thumbs"
  1454. :options="swiperOptionThumbs"
  1455. ref="swiperThumbs"
  1456. >
  1457. <swiper-slide
  1458. class="slide"
  1459. style="width:100px;height:100px;"
  1460. v-for="(item, index) in infoModel.consumptionVoucher"
  1461. :key="item.id"
  1462. >
  1463. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  1464. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  1465. </div>
  1466. <img style="width: 100%;height: 96px"
  1467. v-if="!item.urlBase" :src="noDataPng" border="1">
  1468. </swiper-slide>
  1469. <!-- 点我上传文件按钮-->
  1470. <div class="clearfix">
  1471. <a-upload
  1472. listType="picture-card"
  1473. name="file"
  1474. :multiple="false"
  1475. :action="importMinioUploadAction"
  1476. :customRequest="e => selfUploadContract(e, 'consumptionVoucher')"
  1477. :headers="tokenHeader"
  1478. :showUploadList="false"
  1479. :beforeUpload="importBeforeUpload"
  1480. @change="importHandleChange"
  1481. >
  1482. <div v-if="infoModel.consumptionVoucher.length < 20 && specialResult.consumptionVoucherState != 1 && !detail">
  1483. <a-icon type="plus"/>
  1484. <div class="ant-upload-text">点我上传消费凭证</div>
  1485. </div>
  1486. </a-upload>
  1487. </div>
  1488. <div class="swiper-button-next swiper-button-white" slot="button-next">
  1489. <div>
  1490. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  1491. </div>
  1492. </div>
  1493. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  1494. <div>
  1495. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  1496. </div>
  1497. </div>
  1498. </swiper>
  1499. </div>
  1500. </div>
  1501. </a-card>
  1502. <!-- 承诺视频-->
  1503. <a-card v-if="steps.currentId == 'commitmentVideo'"
  1504. style="margin-bottom:10px;
  1505. float: left;width: 83%;left: 2%">
  1506. <div slot="title">
  1507. <span style="float: left;position: relative;top: 4px"> 承诺视频</span>
  1508. </div>
  1509. <!-- 附件-->
  1510. <div>
  1511. <div v-if="rectification">
  1512. <a-form-model-item style="left: 0%;width: 90%;" label="稽核是否通过" prop="basicCheckState" v-bind="labelCol1Note">
  1513. <a-tag class="font-size-14" v-if="specialResult.commitmentVideoState == 0" color="#f50">未通过</a-tag>
  1514. <a-tag class="font-size-14" v-if="specialResult.commitmentVideoState == 1" color="#2db7f5">通过</a-tag>
  1515. </a-form-model-item>
  1516. <a-form-model-item style="left: 0%;width: 90%;" label="稽核结果" prop="basicCheckNote" v-bind="labelCol1Note">
  1517. <a-tag class="font-size-14" color="orange">{{ specialResult.commitmentVideoNote }}</a-tag>
  1518. </a-form-model-item>
  1519. </div>
  1520. <a-form-model-item style="width: 90%;" label="承诺视频备注:" v-bind="labelCol1Note">
  1521. <span v-if="specialResult.commitmentVideoState == 1">{{ infoModel.commitmentVideoRemark }}</span>
  1522. <a-textarea v-else style="height: 77px"
  1523. @change="textareaChange('commitmentVideo','commitmentVideoRemark')"
  1524. v-model="infoModel.commitmentVideoRemark"
  1525. placeholder="介绍信"
  1526. />
  1527. <!-- :auto-size="{ minRows: 3, maxRows: 5 }"-->
  1528. </a-form-model-item>
  1529. </div>
  1530. <!-- 文件上传-->
  1531. <div class="file-div-minio-upload">
  1532. <div class="thumb-example" style="position: relative">
  1533. <!-- swiper1 -->
  1534. <swiper
  1535. class="swiper gallery-top"
  1536. :options="swiperOptionTop"
  1537. ref="swiperTop"
  1538. >
  1539. <swiper-slide class="slide-1" v-for="(item, index) in infoModel.commitmentVideo" :key="item.id">
  1540. <iframe
  1541. v-if="item.urlBase"
  1542. frameborder="1"
  1543. :src="item.urlBase"
  1544. ref="ifr"
  1545. width="100%"
  1546. height="500px"
  1547. scrolling="auto">
  1548. </iframe>
  1549. <img style="width: 100%;height: 500px;border: 1px solid;"
  1550. v-if="!item.urlBase" :src="noDataPng" border="1">
  1551. <a-button
  1552. v-if="infoModel.commitmentVideo.length && item.urlBase && specialResult.commitmentVideoState != 1"
  1553. style="display: block;margin-top: 10px;border-color: red;color: red;float: left"
  1554. danger @click="removeFile(item,'commitmentVideo')">移除
  1555. </a-button>
  1556. <a-button
  1557. style="display: block;position: relative;left:20px;margin-top: 10px;border-color: #1890FF;color: #1890FF"
  1558. v-if="infoModel.commitmentVideo.length && item.urlBase"
  1559. @click="jumpUrl(item.urlBase)">预览
  1560. </a-button>
  1561. </swiper-slide>
  1562. <!-- <div
  1563. class="swiper-button-next swiper-button-white"
  1564. slot="button-next"
  1565. ></div>
  1566. <div
  1567. class="swiper-button-prev swiper-button-white"
  1568. slot="button-prev"
  1569. ></div>-->
  1570. </swiper>
  1571. <!-- swiper2 Thumbs -->
  1572. <swiper
  1573. class="swiper gallery-thumbs"
  1574. :options="swiperOptionThumbs"
  1575. ref="swiperThumbs"
  1576. >
  1577. <swiper-slide
  1578. class="slide"
  1579. style="width:100px;height:100px;"
  1580. v-for="(item, index) in infoModel.commitmentVideo"
  1581. :key="item.id"
  1582. >
  1583. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  1584. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  1585. </div>
  1586. <img style="width: 100%;height: 96px"
  1587. v-if="!item.urlBase" :src="noDataPng" border="1">
  1588. </swiper-slide>
  1589. <!-- 点我上传文件按钮-->
  1590. <div class="clearfix">
  1591. <a-upload
  1592. listType="picture-card"
  1593. name="file"
  1594. :multiple="false"
  1595. :action="importMinioUploadAction"
  1596. :customRequest="e => selfUploadContract(e, 'commitmentVideo')"
  1597. :headers="tokenHeader"
  1598. :showUploadList="false"
  1599. :beforeUpload="importBeforeUpload"
  1600. @change="importHandleChange"
  1601. >
  1602. <div v-if="infoModel.commitmentVideo.length < 20">
  1603. <a-icon type="plus"/>
  1604. <div class="ant-upload-text">点我上传承诺视频</div>
  1605. </div>
  1606. </a-upload>
  1607. </div>
  1608. <div class="swiper-button-next swiper-button-white" slot="button-next">
  1609. <div>
  1610. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  1611. </div>
  1612. </div>
  1613. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  1614. <div>
  1615. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  1616. </div>
  1617. </div>
  1618. </swiper>
  1619. </div>
  1620. </div>
  1621. </a-card>
  1622. <!-- 其它资料-->
  1623. <a-card v-if="steps.currentId == 'notes'"
  1624. style="margin-bottom:10px;
  1625. float: left;width: 83%;left: 2%">
  1626. <div slot="title">
  1627. <span style="float: left;position: relative;top: 4px"> 其它资料(非必传)</span>
  1628. </div>
  1629. <!-- 附件-->
  1630. <div>
  1631. <div v-if="rectification">
  1632. <a-form-model-item style="left: 0%;width: 90%;" label="稽核是否通过" prop="basicCheckState" v-bind="labelCol1Note">
  1633. <a-tag class="font-size-14" v-if="specialResult.notesState == 0" color="#f50">未通过</a-tag>
  1634. <a-tag class="font-size-14" v-if="specialResult.notesState == 1" color="#2db7f5">通过</a-tag>
  1635. </a-form-model-item>
  1636. <a-form-model-item style="left: 0%;width: 90%;" label="稽核结果" prop="basicCheckNote" v-bind="labelCol1Note">
  1637. <a-tag class="font-size-14" color="orange">{{ specialResult.notesNote }}</a-tag>
  1638. </a-form-model-item>
  1639. </div>
  1640. <a-form-model-item style="width: 90%;" label="其他资料备注:" v-bind="labelCol1Note">
  1641. <span v-if="specialResult.notesNote == 1">{{ infoModel.notesRemark }}</span>
  1642. <a-textarea v-else style="height: 77px"
  1643. @change="textareaChange('notes','notesRemark')"
  1644. v-model="infoModel.notesRemark"
  1645. placeholder="其它资料"
  1646. />
  1647. <!-- :auto-size="{ minRows: 3, maxRows: 5 }"-->
  1648. </a-form-model-item>
  1649. </div>
  1650. <!-- 文件上传-->
  1651. <div class="file-div-minio-upload">
  1652. <div class="thumb-example">
  1653. <!-- swiper1 -->
  1654. <swiper
  1655. class="swiper gallery-top"
  1656. :options="swiperOptionTop"
  1657. ref="swiperTop"
  1658. >
  1659. <swiper-slide class="slide-1" v-for="(item, index) in infoModel.notes" :key="item.id">
  1660. <iframe
  1661. v-if="item.urlBase"
  1662. frameborder="1"
  1663. :src="item.urlBase"
  1664. ref="ifr"
  1665. width="100%"
  1666. height="500px"
  1667. scrolling="auto">
  1668. </iframe>
  1669. <img style="width: 100%;height: 500px;border: 1px solid;"
  1670. v-if="!item.urlBase" :src="noDataPng" border="1">
  1671. <a-button
  1672. v-if="infoModel.notes.length && item.urlBase && specialResult.notesState != 1"
  1673. style="display: block;margin-top: 10px;border-color: red;color: red;float: left"
  1674. danger @click="removeFile(item,'notes')">移除
  1675. </a-button>
  1676. <a-button
  1677. style="display: block;position: relative;left:20px;margin-top: 10px;border-color: #1890FF;color: #1890FF"
  1678. v-if="infoModel.notes.length && item.urlBase"
  1679. @click="jumpUrl(item.urlBase)">预览
  1680. </a-button>
  1681. </swiper-slide>
  1682. <div
  1683. class="swiper-button-next swiper-button-white"
  1684. slot="button-next"
  1685. ></div>
  1686. <div
  1687. class="swiper-button-prev swiper-button-white"
  1688. slot="button-prev"
  1689. ></div>
  1690. </swiper>
  1691. <!-- swiper2 Thumbs -->
  1692. <swiper
  1693. class="swiper gallery-thumbs"
  1694. :options="swiperOptionThumbs"
  1695. ref="swiperThumbs"
  1696. >
  1697. <swiper-slide
  1698. class="slide"
  1699. style="width:100px;height:100px;"
  1700. v-for="(item, index) in infoModel.notes"
  1701. :key="item.id"
  1702. >
  1703. <div v-if="item.urlBase" style="width: 100%;height: 96px;background: rgb(68,142,247);color: white">
  1704. <span style="white-space:normal; word-break:break-all;overflow:hidden;">{{ item.fileName }}</span>
  1705. </div>
  1706. <img style="width: 100%;height: 96px"
  1707. v-if="!item.urlBase" :src="noDataPng" border="1">
  1708. </swiper-slide>
  1709. <!-- 点我上传文件按钮-->
  1710. <div class="clearfix">
  1711. <a-upload
  1712. listType="picture-card"
  1713. name="file"
  1714. :multiple="false"
  1715. :action="importMinioUploadAction"
  1716. :customRequest="e => selfUploadContract(e, 'notes')"
  1717. :headers="tokenHeader"
  1718. :showUploadList="false"
  1719. :beforeUpload="importBeforeUpload"
  1720. @change="importHandleChange"
  1721. >
  1722. <div v-if="infoModel.notes.length < 20 && specialResult.notesState != 1 && !detail">
  1723. <a-icon type="plus"/>
  1724. <div class="ant-upload-text">点我上传其它资料</div>
  1725. </div>
  1726. </a-upload>
  1727. </div>
  1728. <div class="swiper-button-next swiper-button-white" slot="button-next">
  1729. <div>
  1730. <!-- <img src="../../../../assets/images/nextImg.png" alt=""/>-->
  1731. </div>
  1732. </div>
  1733. <div class="swiper-button-prev swiper-button-white" slot="button-prev">
  1734. <div>
  1735. <!-- <img src="../../../../assets/images/prevImg.png" alt=""/>-->
  1736. </div>
  1737. </div>
  1738. </swiper>
  1739. </div>
  1740. </div>
  1741. </a-card>
  1742. </a-spin>
  1743. </template>
  1744. <script>
  1745. import {getAction, httpAction, postAction} from "@api/manage";
  1746. import { Modal } from 'ant-design-vue';
  1747. /*无数据图片*/
  1748. import noDataPng from '@/assets/nodata.png'
  1749. import Vue from "vue";
  1750. import {ACCESS_TOKEN, TENANT_ID} from "@/store/mutation-types";
  1751. let Base64 = require('js-base64').Base64
  1752. export default {
  1753. name: 'TaskUploadData',
  1754. inject: ['closeCurrent'],
  1755. components: {
  1756. noDataPng,
  1757. Modal
  1758. },
  1759. data() {
  1760. return {
  1761. //缩略与大图数据源
  1762. swiperId: 1,
  1763. //轮播配置
  1764. swiperOptionTop: {
  1765. zoom: true,
  1766. loop: false,
  1767. loopedSlides: 5, // looped slides should be the same
  1768. spaceBetween: 10,
  1769. observer: true, //修改swiper自己或子元素时,自动初始化swiper
  1770. observeParents: true, //修改swiper的父元素时,自动初始化swiper
  1771. // autoplay: { //自动轮播
  1772. // delay: 2000,
  1773. // disableOnInteraction: false
  1774. // },
  1775. navigation: {
  1776. nextEl: '.swiper-button-next',
  1777. prevEl: '.swiper-button-prev'
  1778. }
  1779. },
  1780. swiperOptionThumbs: {
  1781. loop: false,
  1782. loopedSlides: 5, // looped slides should be the same
  1783. spaceBetween: 10,
  1784. centeredSlides: true,
  1785. slidesPerView: 'auto',
  1786. touchRatio: 0.2,
  1787. slideToClickedSlide: true,
  1788. navigation: {
  1789. nextEl: '.swiper-button-next',
  1790. prevEl: '.swiper-button-prev'
  1791. }
  1792. },
  1793. /**无数据图片*/
  1794. noDataPng: noDataPng,
  1795. url: {
  1796. // 获取客户信息
  1797. "getInfoDataById": "/smsCheck/customerInfo/queryById",
  1798. // 上传文件
  1799. "minioUpload": "/smsCheck/customerData/uploadMinio",
  1800. // 暂存
  1801. "staging": "/special/examination/staging",
  1802. // 批量暂存
  1803. "stagingList": "/special/examination/staging/list",
  1804. // 特审复开资料查询
  1805. "getSpecialByinfoId": "/special/examination/find/user/id",
  1806. // 提交
  1807. "editInfo": "/special/examination/edit/info",
  1808. // 批量提交
  1809. "batchEditInfo": "/special/examination/batch/edit/info",
  1810. // 获取稽核结果
  1811. "findCheckState": "/special/examination/find/check/log",
  1812. // 关闭复开
  1813. "closeId": "/special/examination/close",
  1814. },
  1815. //是否批量上传
  1816. batchImproves: false,
  1817. // 是否整改
  1818. rectification: false,
  1819. // 基础信息输入框是否禁用
  1820. rectificationInput: true,
  1821. // 详情
  1822. detail: false,
  1823. specialResult: {
  1824. //基础信息
  1825. basicInfoState: null,
  1826. basicInfoNote: "",
  1827. //系统实名截图
  1828. nameFindComplianceState: null,
  1829. nameFindComplianceNote: "",
  1830. //特审单
  1831. specialReviewFormState: null,
  1832. specialReviewFormNote: "",
  1833. //身份证照片/正反面
  1834. idCardState: null,
  1835. idCardNote: "",
  1836. //手持证件半身照片
  1837. handCertificateState: null,
  1838. handCertificateNote: "",
  1839. //号卡照片
  1840. numberCardState: null,
  1841. numberCardNote: "",
  1842. //手持号卡照片
  1843. handNumberCardState: null,
  1844. handNumberCardNote: "",
  1845. //使用人证件
  1846. userCertificateState: null,
  1847. userCertificateNote: "",
  1848. //营业执照
  1849. businessLicenseState: null,
  1850. businessLicenseNote: "",
  1851. //介绍信
  1852. letterIntroductionState: null,
  1853. letterIntroductionNote: "",
  1854. //防诈骗承诺函
  1855. fraudPreventionState: null,
  1856. fraudPreventionNote: "",
  1857. //消费凭证
  1858. consumptionVoucherState: null,
  1859. consumptionVoucherNote: "",
  1860. //承诺视频
  1861. commitmentVideoState: null,
  1862. commitmentVideoNote: "",
  1863. // 其它资料
  1864. notesState: null,
  1865. notesNote: ""
  1866. },
  1867. // 全局是否是在加载中
  1868. uploading: false,
  1869. //上级传参
  1870. query: {
  1871. data: {},
  1872. infoId: "",
  1873. },
  1874. // 客户资料信息
  1875. infoModel: {
  1876. // 单位名称
  1877. unitName: "",
  1878. // 材料补不全有特审
  1879. materialLabel: "0",
  1880. // 用户类型
  1881. userLable: "0",
  1882. // 申请复开号码
  1883. openingNumber: "",
  1884. // 申请复开原因
  1885. reasonReopening: "",
  1886. // 客户名称
  1887. customerName: "",
  1888. // 客户经理手机号
  1889. accountManagerPhone: "",
  1890. // 最后一次关停时间
  1891. shutdownTime: "",
  1892. // 关停标签
  1893. shutdownLabel: ['0'],
  1894. // 关停标签-其他
  1895. shutdownLabelOther: "",
  1896. // 系统实名制截图
  1897. nameFindCompliance: [{}],
  1898. // 实名制截图原因
  1899. nameFindComplianceRemark: "",
  1900. // 身份证正反面
  1901. fileListIdCard: [{}],
  1902. fileListIdCardRemark: "",
  1903. // 手持证件半身照片
  1904. handCertificate: [{}],
  1905. handCertificateRemark: "",
  1906. // 防诈骗承若函
  1907. fraudPrevention: [{}],
  1908. fraudPreventionRemark: "",
  1909. // 有无特审单
  1910. specialReviewForm: [{}],
  1911. specialReviewFormRemark: "",
  1912. // 单位户-使用人证件
  1913. userCertificate: [{}],
  1914. userCertificateRemark: "",
  1915. // 单位户-营业执照副本
  1916. businessLicense: [{}],
  1917. businessLicenseRemark: "",
  1918. // 单位户-介绍信
  1919. letterIntroduction: [{}],
  1920. letterIntroductionRemark: "",
  1921. // 个人户-号卡照片
  1922. numberCard: [{}],
  1923. numberCardRemark: "",
  1924. // 个人户-手持号卡照片
  1925. handNumberCard: [{}],
  1926. handNumberCardRemark: "",
  1927. // 消费凭证
  1928. consumptionVoucher: [{}],
  1929. consumptionVoucherRemark: "",
  1930. // 承诺视频
  1931. commitmentVideo: [{}],
  1932. commitmentVideoRemark: "",
  1933. // 其它资料
  1934. notes: [{}],
  1935. notesRemark: "",
  1936. },
  1937. //表单验证
  1938. rules: {
  1939. shutdownTime: [
  1940. {required: true, message: '请选择关停时间'},
  1941. ],
  1942. reasonReopening: [
  1943. {required: true, message: '请输入申请复开原因'},
  1944. ]
  1945. },
  1946. labelCol4: {
  1947. labelCol: {
  1948. xs: {span: 24},
  1949. sm: {span: 8},
  1950. },
  1951. wrapperCol: {
  1952. xs: {span: 24},
  1953. sm: {span: 14},
  1954. }
  1955. },
  1956. labelCol1: {
  1957. labelCol: {
  1958. xs: {span: 24},
  1959. sm: {span: 2},
  1960. },
  1961. wrapperCol: {
  1962. xs: {span: 24},
  1963. sm: {span: 22},
  1964. }
  1965. },
  1966. labelCol1Note: {
  1967. labelCol: {
  1968. xs: {span: 24},
  1969. sm: {span: 4},
  1970. },
  1971. wrapperCol: {
  1972. xs: {span: 24},
  1973. sm: {span: 20},
  1974. }
  1975. },
  1976. // 步骤条相关
  1977. steps: {
  1978. // 当前所在第几部
  1979. current: 0,
  1980. currentId: "",
  1981. stepsNow: {},
  1982. // 默认
  1983. steps00: [
  1984. {
  1985. title: '系统实名制截图',
  1986. content: 'First-content',
  1987. id: "nameFindCompliance",
  1988. status: "wait"
  1989. },
  1990. {
  1991. title: '身份证照片/正反面',
  1992. content: 'First-content',
  1993. id: "fileListIdCard",
  1994. status: "wait"
  1995. },
  1996. {
  1997. title: '手持证件半身照片',
  1998. content: 'First-content',
  1999. id: "handCertificate",
  2000. status: "wait"
  2001. },
  2002. {
  2003. title: ' 防诈骗承诺涵(使用人签署)',
  2004. content: 'First-content',
  2005. id: "fraudPrevention",
  2006. status: "wait"
  2007. }
  2008. ],
  2009. // 有特审
  2010. stepsMaterial: [
  2011. {
  2012. title: '特审单',
  2013. content: 'First-content',
  2014. id: "specialReviewForm",
  2015. status: "wait"
  2016. }
  2017. ],
  2018. // 单位户
  2019. stepUserLable1: [
  2020. {
  2021. title: '使用人证件',
  2022. content: 'First-content',
  2023. id: "userCertificate",
  2024. status: "wait"
  2025. },
  2026. {
  2027. title: '营业执照副本(盖公章)',
  2028. content: 'First-content',
  2029. id: "businessLicense",
  2030. status: "wait"
  2031. },
  2032. {
  2033. title: '介绍信',
  2034. content: 'First-content',
  2035. id: "letterIntroduction",
  2036. status: "wait"
  2037. }
  2038. ],
  2039. // 个人户
  2040. stepUserLable0: [
  2041. {
  2042. title: '号卡照片',
  2043. content: 'First-content',
  2044. id: "numberCard",
  2045. status: "wait"
  2046. },
  2047. {
  2048. title: '手持号卡照片',
  2049. content: 'First-content',
  2050. id: "handNumberCard",
  2051. status: "wait"
  2052. },
  2053. ],
  2054. // 材料标签
  2055. shutdownLabel0: [
  2056. {
  2057. title: '消费凭证',
  2058. content: 'First-content',
  2059. id: "consumptionVoucher",
  2060. status: "wait"
  2061. },
  2062. ],
  2063. // 承诺视频
  2064. shutdownLabel5: [
  2065. {
  2066. title: '承诺视频',
  2067. content: 'First-content',
  2068. id: "commitmentVideo",
  2069. status: "wait"
  2070. },
  2071. ],
  2072. },
  2073. }
  2074. },
  2075. computed: {
  2076. importMinioUploadAction() {
  2077. return window._CONFIG['domianURL'] + this.url.minioUpload;
  2078. },
  2079. tokenHeader() {
  2080. let head = {'X-Access-Token': Vue.ls.get(ACCESS_TOKEN)}
  2081. let tenantid = Vue.ls.get(TENANT_ID)
  2082. if (tenantid) {
  2083. head['tenant-id'] = tenantid
  2084. }
  2085. return head;
  2086. }
  2087. },
  2088. props: {},
  2089. watch: {},
  2090. updated() {
  2091. // 实现swiper双向控制
  2092. this.$nextTick(() => {
  2093. const swiperTop = this.$refs.swiperTop.swiper
  2094. const swiperThumbs = this.$refs.swiperThumbs.swiper
  2095. swiperTop.controller.control = swiperThumbs
  2096. swiperThumbs.controller.control = swiperTop
  2097. })
  2098. },
  2099. created() {
  2100. // 是否批量上传
  2101. this.batchImproves = this.$route.query.batchImproves;
  2102. // 步骤条默认公用
  2103. this.steps.stepsNow = this.steps.steps00;
  2104. this.steps.currentId = this.steps.stepsNow[0].id
  2105. // 整改
  2106. this.rectification = this.$route.query.rectification;
  2107. if (this.rectification) {
  2108. // 整改时input解除禁用
  2109. this.rectificationInput = false;
  2110. }
  2111. // 详情
  2112. this.detail = this.$route.query.detail;
  2113. // 批量
  2114. if (this.batchImproves) {
  2115. //批量上传id
  2116. this.ids = this.$route.query.ids;
  2117. } else {
  2118. //客户ID
  2119. this.query.infoId = this.$route.query.id;
  2120. // 获取客户基础信息
  2121. this.getInfoDataById(this.query.infoId)
  2122. }
  2123. },
  2124. methods: {
  2125. /**整改->获取稽核结果*/
  2126. findCheckState(id) {
  2127. let that = this;
  2128. let model = {
  2129. "dataId": id,
  2130. }
  2131. postAction(this.url.findCheckState, model)
  2132. .then((res) => {
  2133. if (res.success) {
  2134. if (res.result == null) {
  2135. return;
  2136. }
  2137. that.specialResult = res.result;
  2138. // 整改->处理步骤条状态
  2139. if (that.rectification) {
  2140. for (var i in that.steps.stepsNow) {
  2141. let id = that.steps.stepsNow[i].id;
  2142. if (id == 'fileListIdCard') {
  2143. id = "idCard"
  2144. }
  2145. let specialResultElement = that.specialResult[id + "State"];
  2146. if (specialResultElement == 0) {
  2147. that.steps.stepsNow[i].status = 'error'
  2148. } else if (specialResultElement == 1) {
  2149. that.steps.stepsNow[i].status = 'finish'
  2150. }
  2151. }
  2152. }
  2153. }
  2154. })
  2155. },
  2156. /**备注监听*/
  2157. textareaChange(name, nameRemark) {
  2158. if (!this.rectification) {
  2159. if (this.infoModel[nameRemark].length > 0) {
  2160. this.steps.stepsNow[this.steps.current].status = "finish"
  2161. } else if (this.infoModel[name].length > 0 && this.infoModel[name][0].urlBase) {
  2162. this.steps.stepsNow[this.steps.current].status = "finish"
  2163. } else {
  2164. this.steps.stepsNow[this.steps.current].status = "wait"
  2165. }
  2166. } else {
  2167. this.steps.stepsNow[this.steps.current].solution = true;
  2168. }
  2169. },
  2170. // 步骤条动态变化
  2171. stepLoading() {
  2172. this.steps.stepsNow = this.steps.stepsNow.splice(0, 4)
  2173. //材料不全有特审步骤条
  2174. this.stepsMaterialLabel()
  2175. /**用户标签点击事件*/
  2176. this.userLableClick()
  2177. /**材料标签点击事件*/
  2178. this.shutdownLabelClick()
  2179. this.steps.stepsNow.push(
  2180. {
  2181. title: ' 其它资料(非必传)',
  2182. content: 'First-content',
  2183. id: "notes",
  2184. status: "wait"
  2185. })
  2186. },
  2187. //材料不全有特审步骤条
  2188. stepsMaterialLabel() {
  2189. if (this.infoModel.materialLabel == "0") {
  2190. let stepsMaterial = this.steps.stepsMaterial;
  2191. for (var i in stepsMaterial) {
  2192. this.steps.stepsNow.push(stepsMaterial[i])
  2193. }
  2194. }
  2195. },
  2196. /**用户标签点击事件*/
  2197. userLableClick() {
  2198. var that = this;
  2199. //材料不全有特审步骤条
  2200. //that.stepsMaterialLabel();
  2201. let userLable = that.infoModel.userLable;
  2202. switch (userLable) {
  2203. case "0":
  2204. //个人户
  2205. let stepUserLable0 = this.steps.stepUserLable0;
  2206. for (var i in stepUserLable0) {
  2207. this.steps.stepsNow.push(stepUserLable0[i])
  2208. }
  2209. break
  2210. case "1":
  2211. //单位户
  2212. let stepUserLable1 = this.steps.stepUserLable1;
  2213. for (var j in stepUserLable1) {
  2214. this.steps.stepsNow.push(stepUserLable1[j])
  2215. }
  2216. break
  2217. }
  2218. },
  2219. /**材料标签点击事件*/
  2220. shutdownLabelClick() {
  2221. var that = this;
  2222. //材料不全有特审步骤条
  2223. //that.stepsMaterialLabel();
  2224. let shutdownLabel = that.infoModel.shutdownLabel;
  2225. // 其它包含所有
  2226. if (shutdownLabel.indexOf("0") > -1) {
  2227. let shutdownLabel0 = this.steps.shutdownLabel0;
  2228. for (var i in shutdownLabel0) {
  2229. this.steps.stepsNow.push(shutdownLabel0[i])
  2230. }
  2231. }
  2232. },
  2233. /**移除文件*/
  2234. removeFile(fileData, fileAttribute) {
  2235. let that = this.infoModel;
  2236. //处理轮播数据
  2237. let swiperImg = that[fileAttribute];
  2238. if (swiperImg) {
  2239. let number = swiperImg.indexOf(fileData);
  2240. swiperImg.splice(number, 1)
  2241. if (swiperImg.length == 0) {
  2242. swiperImg.push({})
  2243. that[fileAttribute] = swiperImg
  2244. let textId = fileAttribute + "Remark";
  2245. if (!this.rectification) {
  2246. if (this.infoModel[textId].trim() > 0) {
  2247. this.steps.stepsNow[this.steps.current].status = "finish"
  2248. } else {
  2249. this.steps.stepsNow[this.steps.current].status = "wait"
  2250. }
  2251. }
  2252. } else {
  2253. if (!this.rectification) {
  2254. this.steps.stepsNow[this.steps.current].status = "finish"
  2255. }
  2256. }
  2257. }
  2258. },
  2259. /**自定义的上传文件方法*/
  2260. selfUploadContract(data, fileAttribute) {
  2261. var that = this;
  2262. if (data.file) {
  2263. let formData = new FormData();
  2264. formData.append('file', data.file)
  2265. postAction(this.url.minioUpload, formData).then((res) => {
  2266. if (res.success) {
  2267. that.swiperId = that.swiperId + 1;
  2268. //文件链接
  2269. let filePath = res.message;
  2270. let swipData = {
  2271. id: that.swiperId,
  2272. urlBase: window._CONFIG['onlinePreviewDomainURL'] + '?url='
  2273. + encodeURIComponent(
  2274. Base64.encode(
  2275. (filePath)
  2276. )),
  2277. url: filePath,
  2278. fileName: data.file.name
  2279. }
  2280. if (that.infoModel[fileAttribute][0].urlBase) {
  2281. that.infoModel[fileAttribute].push(swipData)
  2282. } else {
  2283. that.infoModel[fileAttribute] = []
  2284. //数据发生变化
  2285. that.infoModel[fileAttribute][0] = swipData;
  2286. }
  2287. if (!that.rectification) {
  2288. // 改变步骤条状态
  2289. if (that.infoModel[fileAttribute].length > 0) {
  2290. that.steps.stepsNow[that.steps.current].status = "finish"
  2291. } else {
  2292. that.steps.stepsNow[that.steps.current].status = "wait"
  2293. }
  2294. } else {
  2295. that.steps.stepsNow[that.steps.current].solution = true
  2296. }
  2297. }
  2298. })
  2299. }
  2300. },
  2301. /**文件格式限制*/
  2302. importBeforeUpload(file) {
  2303. var fileType = file.type;
  2304. if (fileType === 'image') {
  2305. if (fileType.indexOf('image') < 0) {
  2306. this.$message.warning('请上传图片');
  2307. return false;
  2308. }
  2309. } else if (fileType === 'file') {
  2310. if (fileType.indexOf('image') >= 0) {
  2311. this.$message.warning('请上传文件');
  2312. return false;
  2313. }
  2314. }
  2315. return true
  2316. },
  2317. /**文件上传成功后回调*/
  2318. importHandleChange(info) {
  2319. },
  2320. /**暂存事件*/
  2321. stagingAuditLot() {
  2322. let that = this;
  2323. let url = that.url.staging
  2324. let data = that.getDataNow();
  2325. // 是否为批量上传
  2326. if (that.batchImproves) {
  2327. url = that.url.stagingList
  2328. }
  2329. postAction(url, data).then((res) => {
  2330. if (res.code == 200) {
  2331. this.$router.go(-1);
  2332. //关闭当前页
  2333. this.closeCurrent();
  2334. } else {
  2335. that.$message.warning(res.message);
  2336. }
  2337. })
  2338. },
  2339. getDataNow() {
  2340. let that = this
  2341. let infoModel = that.infoModel
  2342. var data = {
  2343. "infoIds": that.ids,
  2344. "infoId": that.query.infoId,
  2345. // 申请复开号码
  2346. "openingNumber": infoModel.openingNumber,
  2347. // 客户名称/使用人名称
  2348. "customerName": infoModel.customerName,
  2349. // 客户经理手机号
  2350. "accountManagerPhone": infoModel.accountManagerPhone,
  2351. // 用户标签
  2352. "userLable": infoModel.userLable,
  2353. // 关停标签
  2354. "shutdownLabel": infoModel.shutdownLabel.join(),
  2355. // 关停标签其他-名称
  2356. "shutdownLabelOther": infoModel.shutdownLabelOther,
  2357. // 最后一次关停时间
  2358. "shutdownTime": infoModel.shutdownTime,
  2359. // 申请复开原因
  2360. "reasonReopening": infoModel.reasonReopening,
  2361. // 材料标签选择
  2362. "materialLabel": infoModel.materialLabel,
  2363. // 单位名称
  2364. "unitName": infoModel.unitName,
  2365. // 身份证正反面
  2366. idCard: this.urlBaseJoin(infoModel.fileListIdCard, "url"),
  2367. idCardRemark: infoModel.fileListIdCardRemark,
  2368. // 手持证件半身照片
  2369. handCertificate: this.urlBaseJoin(infoModel.handCertificate, "url"),
  2370. handCertificateRemark: infoModel.handCertificateRemark,
  2371. // 号卡照片
  2372. numberCard: this.urlBaseJoin(infoModel.numberCard, "url"),
  2373. numberCardRemark: infoModel.numberCardRemark,
  2374. // 手持号卡照片
  2375. handNumberCard: this.urlBaseJoin(infoModel.handNumberCard, "url"),
  2376. handNumberCardRemark: infoModel.handNumberCardRemark,
  2377. // 防诈骗承诺函
  2378. fraudPrevention: this.urlBaseJoin(infoModel.fraudPrevention, "url"),
  2379. fraudPreventionRemark: infoModel.fraudPreventionRemark,
  2380. // 营业执照副本
  2381. businessLicense: this.urlBaseJoin(infoModel.businessLicense, "url"),
  2382. businessLicenseRemark: infoModel.businessLicenseRemark,
  2383. // 介绍信
  2384. letterIntroduction: this.urlBaseJoin(infoModel.letterIntroduction, "url"),
  2385. letterIntroductionRemark: infoModel.letterIntroductionRemark,
  2386. // 使用人证件
  2387. userCertificate: this.urlBaseJoin(infoModel.userCertificate, "url"),
  2388. userCertificateRemark: infoModel.userCertificateRemark,
  2389. // 消费凭证
  2390. consumptionVoucher: this.urlBaseJoin(infoModel.consumptionVoucher, "url"),
  2391. // 消费凭证备注
  2392. consumptionVoucherRemark: infoModel.consumptionVoucherRemark,
  2393. // 承诺视频
  2394. commitmentVideo: this.urlBaseJoin(infoModel.commitmentVideo, "url"),
  2395. // 承诺视频备注
  2396. commitmentVideoRemark: infoModel.commitmentVideoRemark,
  2397. // 系统实名制截图
  2398. nameFindCompliance: this.urlBaseJoin(infoModel.nameFindCompliance, "url"),
  2399. // 系统实名制截图备注
  2400. nameFindComplianceRemark: infoModel.nameFindComplianceRemark,
  2401. // 特审单
  2402. specialReviewForm: this.urlBaseJoin(infoModel.specialReviewForm, "url"),
  2403. // 特审单备注
  2404. specialReviewFormRemark: infoModel.specialReviewFormRemark,
  2405. // 其它资料
  2406. notes: this.urlBaseJoin(infoModel.notes, "url"),
  2407. // 其它资料备注
  2408. notesRemark: infoModel.notesRemark,
  2409. }
  2410. return data;
  2411. },
  2412. /**提交申请事件*/
  2413. submitAuditLot() {
  2414. // 表单效验证结果
  2415. let fromValid = false;
  2416. // 是否为单位户
  2417. if (this.infoModel.userLable == '1') {
  2418. this.rules["unitName"] = [{required: true, message: '请输入单位名称 '}]
  2419. } else {
  2420. this.rules["unitName"] = [{required: false, message: '请输入单位名称 '}]
  2421. }
  2422. // 触发表单验证
  2423. this.$refs.form.validate(valid => {
  2424. // 验证是否通过
  2425. fromValid = valid;
  2426. })
  2427. // 表单效验是否通过
  2428. if (!fromValid) {
  2429. this.$warning({
  2430. title: '提示',
  2431. content: '请完成全部特审资料填写',
  2432. })
  2433. return;
  2434. }
  2435. // 关停标签
  2436. if (this.infoModel.shutdownLabel.length == 0) {
  2437. this.$warning({
  2438. title: '提示',
  2439. content: '至少选择一个关停标签',
  2440. })
  2441. return;
  2442. }
  2443. // 材料不全,必须上传特深单
  2444. if (this.infoModel.materialLabel == '0') {
  2445. if (!this.labelValidation(['specialReviewForm'])) {
  2446. this.$warning({
  2447. title: '提示',
  2448. content: '材料不全,请上传特审单',
  2449. })
  2450. return;
  2451. }
  2452. }
  2453. // 无特审,所有材料必须上传
  2454. // 公用效验参数
  2455. var labels = ["nameFindCompliance", "fileListIdCard", "handCertificate", "fraudPrevention"]
  2456. // 单位户或个人
  2457. if (this.infoModel.userLable == '0') {
  2458. // 个人->号卡照片
  2459. labels.push('numberCard', 'handNumberCard')
  2460. } else {
  2461. // 单位户 -> 使用人证件,营业执照副本,介绍信
  2462. labels.push('userCertificate')
  2463. labels.push('businessLicense')
  2464. labels.push('letterIntroduction')
  2465. }
  2466. // 关停标签 -> 安防停机(高危漫游地)
  2467. if (this.infoModel.shutdownLabel.indexOf('0') > -1) {
  2468. labels.push('consumptionVoucher')
  2469. }
  2470. if (!this.labelValidation(labels)) {
  2471. this.$warning({
  2472. title: '提示',
  2473. content: '请上传全部文件材料!',
  2474. })
  2475. return;
  2476. }
  2477. let data = this.getDataNow();
  2478. let url = this.url.editInfo;
  2479. // 是否批量提交
  2480. if (this.batchImproves) {
  2481. url = this.url.batchEditInfo;
  2482. }
  2483. this.uploading = true;
  2484. httpAction(url, data, "POST")
  2485. .then((res) => {
  2486. if (res.success) {
  2487. this.uploading = false;
  2488. this.$message.success("提交成功");
  2489. this.$router.go(-1);
  2490. this.closeCurrent();
  2491. } else {
  2492. this.uploading = false;
  2493. this.$error({
  2494. title: '提示',
  2495. content: res.message,
  2496. })
  2497. }
  2498. }).finally(() => {
  2499. this.uploading = false;
  2500. })
  2501. },
  2502. /**关闭复开申请*/
  2503. closeAuditLot() {
  2504. let that = this;
  2505. Modal.confirm({
  2506. title: '确认关闭该复开信息吗?',
  2507. content: '关闭后无法恢复!',
  2508. okText: '确认',
  2509. okType: 'danger',
  2510. cancelText: '取消',
  2511. onOk() {
  2512. that.closeOk()
  2513. },
  2514. onCancel() {
  2515. },
  2516. });
  2517. },
  2518. /**关闭确认*/
  2519. closeOk() {
  2520. let that = this;
  2521. let data = {
  2522. "id": that.query.infoId,
  2523. }
  2524. let url = that.url.closeId;
  2525. httpAction(url, data, "POST")
  2526. .then((res) => {
  2527. if (res.success) {
  2528. this.$message.success("关闭成功");
  2529. this.$router.go(-1);
  2530. this.closeCurrent();
  2531. }else {
  2532. this.$error({
  2533. title: '提示',
  2534. content: res.message,
  2535. })
  2536. }
  2537. })
  2538. },
  2539. /**标签效验*/
  2540. labelValidation(lableName) {
  2541. let boolean = true;
  2542. let infoModel = this.infoModel;
  2543. for (var i in lableName) {
  2544. let value = lableName[i];
  2545. let valueRemark = value + "Remark";
  2546. // 去除两端空格
  2547. if (infoModel[valueRemark] != null) {
  2548. infoModel[valueRemark] = infoModel[valueRemark].trim();
  2549. }
  2550. if ((infoModel[value].length == 0 || !infoModel[value][0].urlBase)
  2551. && (infoModel[valueRemark] == null || infoModel[valueRemark].length == 0)) {
  2552. boolean = false
  2553. break;
  2554. }
  2555. }
  2556. return boolean;
  2557. }
  2558. ,
  2559. /**步骤条点击事件*/
  2560. stepsClick(current) {
  2561. if (!this.rectification) {
  2562. this.steps.current = current;
  2563. this.steps.currentId = this.steps.stepsNow[current].id
  2564. for (var i in this.steps.stepsNow) {
  2565. if (this.steps.stepsNow[i].status != "finish") {
  2566. this.steps.stepsNow[i].status = "wait"
  2567. }
  2568. }
  2569. if (this.steps.stepsNow[current].status != "finish") {
  2570. this.steps.stepsNow[current].status = "process"
  2571. }
  2572. } else {
  2573. this.steps.current = current;
  2574. this.steps.currentId = this.steps.stepsNow[current].id
  2575. }
  2576. }
  2577. ,
  2578. /**返回上一级*/
  2579. back() {
  2580. this.$router.go(-1);
  2581. //关闭当前页
  2582. this.closeCurrent();
  2583. }
  2584. ,
  2585. /**获取客户信息*/
  2586. getInfoDataById(id) {
  2587. var that = this;
  2588. if (id) {
  2589. var data = {
  2590. "id": id,
  2591. }
  2592. getAction(this.url.getInfoDataById, data).then((res) => {
  2593. if (res.success) {
  2594. let result = res.result;
  2595. // 复开号码
  2596. that.infoModel.openingNumber = result.smsNumber
  2597. // 机主姓名
  2598. that.infoModel.customerName = result.customerName
  2599. // 有无特殊审单
  2600. that.infoModel.materialLabel = result.materialLabel == "无" ? "1" : "0"
  2601. // 客户经理手机号
  2602. that.infoModel.accountManagerPhone = result.accountManagerPhone;
  2603. // 特审步骤条
  2604. that.stepLoading();
  2605. // 获取客户文件信息
  2606. that.getInfoSpecialData(this.query.infoId);
  2607. }
  2608. })
  2609. }
  2610. }
  2611. ,
  2612. /**获取特审复开数据*/
  2613. getInfoSpecialData(infoId) {
  2614. let that = this;
  2615. let infoModel = that.infoModel;
  2616. postAction(that.url.getSpecialByinfoId, {infoId}).then((res) => {
  2617. if (res.result != null) {
  2618. let result = res.result;
  2619. // 单位名称
  2620. infoModel.unitName = result.unitName;
  2621. // 身份证正反面
  2622. infoModel.fileListIdCard = that.packageArr(result.idCard);
  2623. infoModel.fileListIdCardRemark = result.idCardRemark;
  2624. // 系统实名制截图
  2625. infoModel.nameFindCompliance = that.packageArr(result.nameFindCompliance)
  2626. infoModel.nameFindComplianceRemark = result.nameFindComplianceRemark;
  2627. // 手持证件半身照片
  2628. infoModel.handCertificate = that.packageArr(result.handCertificate)
  2629. infoModel.handCertificateRemark = result.handCertificateRemark
  2630. // 防诈骗承若函
  2631. infoModel.fraudPrevention = that.packageArr(result.fraudPrevention)
  2632. infoModel.fraudPreventionRemark = result.fraudPreventionRemark
  2633. // 有无特审单
  2634. infoModel.specialReviewForm = that.packageArr(result.specialReviewForm)
  2635. infoModel.specialReviewFormRemark = result.specialReviewFormRemark
  2636. // 使用人证件
  2637. infoModel.userCertificate = that.packageArr(result.userCertificate)
  2638. infoModel.userCertificateRemark = result.userCertificateRemark
  2639. // 单位户-营业执照副本
  2640. infoModel.businessLicense = that.packageArr(result.businessLicense)
  2641. infoModel.businessLicenseRemark = result.businessLicenseRemark
  2642. // 单位户-介绍信
  2643. infoModel.letterIntroduction = that.packageArr(result.letterIntroduction)
  2644. infoModel.letterIntroductionRemark = result.letterIntroductionRemark
  2645. // 个人户-号卡照片
  2646. infoModel.numberCard = that.packageArr(result.numberCard)
  2647. infoModel.numberCardRemark = result.numberCardRemark
  2648. // 个人户-手持号卡照片
  2649. infoModel.handNumberCard = that.packageArr(result.handNumberCard)
  2650. infoModel.handNumberCardRemark = result.handNumberCardRemark
  2651. // 消费凭证
  2652. infoModel.consumptionVoucher = that.packageArr(result.consumptionVoucher)
  2653. infoModel.consumptionVoucherRemark = result.consumptionVoucherRemark
  2654. // 承诺视频
  2655. infoModel.commitmentVideo = that.packageArr(result.commitmentVideo)
  2656. infoModel.commitmentVideoRemark = result.commitmentVideoRemark
  2657. // 其它资料
  2658. infoModel.notes = that.packageArr(result.notes)
  2659. infoModel.notesRemark = result.notesRemark
  2660. // 用户标签
  2661. if (result.userLable) {
  2662. infoModel.userLable = result.userLable.toString()
  2663. }
  2664. // 关停标签
  2665. if (result.shutdownLabel) {
  2666. infoModel.shutdownLabel = result.shutdownLabel.split(",")
  2667. }
  2668. // 关停标签其他-名称
  2669. infoModel.shutdownLabelOther = result.shutdownLabelOther
  2670. // 最后一次关停时间
  2671. infoModel.shutdownTime = result.shutdownTime
  2672. // 申请复开原因
  2673. infoModel.reasonReopening = result.reasonReopening
  2674. that.infoModel = infoModel
  2675. // 步骤条
  2676. that.stepLoading();
  2677. that.findCheckState(result.id)
  2678. }
  2679. })
  2680. }
  2681. ,
  2682. // 照片格式转换
  2683. urlBaseJoin(dataArray, name) {
  2684. let newDataArr = [];
  2685. for (var i in dataArray) {
  2686. let dataArrayElementElement = dataArray[i][name];
  2687. newDataArr.push(dataArrayElementElement);
  2688. }
  2689. return newDataArr.toString();
  2690. }
  2691. ,
  2692. /**包装轮播数据*/
  2693. packageArr(data) {
  2694. let id = 0;
  2695. let newArr = []
  2696. if (data == null || data.length == 0) {
  2697. newArr.push({})
  2698. return newArr;
  2699. }
  2700. let splice = data.split(",");
  2701. for (var i in splice) {
  2702. id = id + 1;
  2703. let filePath = splice[i];
  2704. if (filePath == "") {
  2705. break;
  2706. }
  2707. let fileName = filePath.split("/");
  2708. fileName = fileName[fileName.length - 1];
  2709. let swipData = {
  2710. id: id,
  2711. urlBase: window._CONFIG['onlinePreviewDomainURL'] + '?url='
  2712. + encodeURIComponent(
  2713. Base64.encode(
  2714. (filePath)
  2715. )),
  2716. url: filePath,
  2717. fileName: fileName
  2718. }
  2719. newArr.push(swipData);
  2720. }
  2721. return newArr;
  2722. }
  2723. ,
  2724. // 点击方法 url为传入的第三方链接或网址 如'www.baidu.com' url前面不要加协议哦!
  2725. jumpUrl(url) {
  2726. var a = document.createElement("a");
  2727. a.setAttribute("href", url);
  2728. a.setAttribute("target", "_blank");
  2729. a.click();
  2730. },
  2731. }
  2732. }
  2733. </script>
  2734. <style lang="less">
  2735. .ant-input[disabled] {
  2736. color: #1e80ff;
  2737. background-color: #f5f5f5;
  2738. cursor: not-allowed;
  2739. opacity: 1;
  2740. }
  2741. .ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked {
  2742. color: #fff;
  2743. background-color: #1e80ff;
  2744. border-color: #d9d9d9;
  2745. box-shadow: none;
  2746. }
  2747. </style>
  2748. <style lang="less">
  2749. .thumb-example {
  2750. width: 80%;
  2751. margin-top: 20px;
  2752. // background: #000;
  2753. }
  2754. .swiper-slide {
  2755. background-size: cover;
  2756. background-position: center;
  2757. }
  2758. .gallery-top {
  2759. // height: 80% !important;
  2760. /*height: 600px;*/
  2761. width: 100%;
  2762. margin-bottom: 30px
  2763. }
  2764. .gallery-thumbs {
  2765. height: 20% !important;
  2766. box-sizing: border-box;
  2767. padding: 10px 0px;
  2768. /* width: 864px;*/
  2769. margin-left: 2px;
  2770. .swiper-button-next {
  2771. right: 0px;
  2772. }
  2773. .swiper-button-prev {
  2774. left: 0px;
  2775. }
  2776. .swiper-button-next,
  2777. .swiper-button-prev {
  2778. background: #fff;
  2779. width: 45px;
  2780. text-align: center;
  2781. height: 101px;
  2782. top: 26%;
  2783. div {
  2784. margin-top: 30px;
  2785. background: rgb(207, 205, 205);
  2786. height: 45px;
  2787. border-radius: 50%;
  2788. img {
  2789. margin: 7px 0 0 2px;
  2790. width: 30px;
  2791. }
  2792. }
  2793. }
  2794. .swiper-button-next:hover div {
  2795. background: rgb(189, 186, 186);
  2796. }
  2797. .swiper-button-prev:hover div {
  2798. background: rgb(189, 186, 186);
  2799. }
  2800. }
  2801. .gallery-thumbs .swiper-slide {
  2802. width: 20%;
  2803. height: 80px;
  2804. // opacity: 0.4;
  2805. }
  2806. .gallery-thumbs .swiper-slide-active {
  2807. border: 2px solid red;
  2808. }
  2809. .markdown ul > li {
  2810. color: #000000d9;
  2811. font-size: 15px;
  2812. line-height: 3;
  2813. margin-left: 20px;
  2814. padding-left: 4px;
  2815. list-style-type: circle;
  2816. }
  2817. .file-div-minio-upload {
  2818. height: 100%;
  2819. position: relative;
  2820. left: 10%
  2821. }
  2822. .font-size-14 {
  2823. font-size: 14px
  2824. }
  2825. .ant-form-item-children>span{
  2826. white-space: normal;
  2827. overflow-wrap: break-word;
  2828. }
  2829. </style>