TaskCheckAudit.vue 112 KB

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